From 298af1f8f0f3cad186aab9804fbc2fe97621ca30 Mon Sep 17 00:00:00 2001 From: Shaun Struwig <41984034+Blargian@users.noreply.github.com> Date: Thu, 21 May 2026 11:18:45 +0200 Subject: [PATCH 1/2] Composable navigation and more QA fixes --- .../migrate-docusaurus-to-mintlify/SKILL.md | 24 +- AGENTS.md | 7 +- _migration/README.md | 26 + {scripts => _migration}/apply-slug-aliases.py | 10 +- {scripts => _migration}/find_dup_imports.py | 2 +- _migration/find_orphans.py | 106 + {scripts => _migration}/generate-slug-map.py | 6 +- {scripts => _migration}/match_slugless.py | 0 {scripts => _migration}/migrate.py | 136 +- {scripts => _migration}/slug-aliases.csv | 1280 ++-- slug-map.csv => _migration/slug-map.csv | 2444 +++---- .../suggest-slug-aliases.py | 12 +- {scripts => _migration}/verify_mapping.py | 0 _site/customizations/README.md | 17 + .../customizations/ask-ai-button.js | 0 .../customizations/cookie-banner.js | 0 .../customizations/custom-footer.js | 0 .../customizations/kapa-init.js | 0 .../customizations/navbar-cta.js | 0 favicon.svg => _site/favicon.svg | 0 {logo => _site/logo}/dark.svg | 0 {logo => _site/logo}/light.svg | 0 _site/redirects.json | 2682 ++++++++ .../scripts}/update_quickstarts.py | 0 .../scripts}/update_release_notes.py | 0 styles.css => _site/styles.css | 5 +- .../styles}/.markdownlint-cli2.yaml | 0 {styles => _site/styles}/.vale.ini | 0 .../headings_have_custom_anchors.js | 0 .../custom_rules/utility_functions.js | 0 .../styles}/vale/ClickHouse/Ability.yml | 0 .../vale/ClickHouse/BackTicksFormats.yml | 0 .../vale/ClickHouse/BackTicksFunctions.yml | 0 .../ClickHouse/BackTicksServerSettings.yml | 0 .../ClickHouse/BackTicksSessionSettings.yml | 0 .../vale/ClickHouse/BackTicksTableEngines.yml | 0 .../ClickHouse/BackTicksTableFunctions.yml | 0 .../styles}/vale/ClickHouse/BadPlurals.yml | 0 .../styles}/vale/ClickHouse/British.yml | 0 .../vale/ClickHouse/CodeblockFences.yml | 0 .../styles}/vale/ClickHouse/Colons.yml | 0 .../styles}/vale/ClickHouse/Contractions.yml | 0 .../styles}/vale/ClickHouse/CurrentStatus.yml | 0 .../styles}/vale/ClickHouse/EOLWhitespace.yml | 0 .../styles}/vale/ClickHouse/Exclamation.yml | 0 .../styles}/vale/ClickHouse/FutureTense.yml | 0 .../vale/ClickHouse/HeadingPunctuation.yml | 0 .../styles}/vale/ClickHouse/Headings.yml | 0 .../styles}/vale/ClickHouse/Ordinal.yml | 0 .../styles}/vale/ClickHouse/OxfordComma.yml | 0 .../styles}/vale/ClickHouse/Quotes.yml | 0 .../styles}/vale/ClickHouse/Repetition.yml | 0 .../vale/ClickHouse/SentenceLength.yml | 0 .../styles}/vale/ClickHouse/Units.yml | 0 .../styles}/vale/ClickHouse/Uppercase.yml | 0 .../styles}/vale/ClickHouse/Wordy.yml | 0 concepts/advanced-guides/index.mdx | 23 - .../settings/query-complexity.mdx | 115 - .../features/performance/caches/caches.mdx | 36 - .../external-authenticators/index.mdx | 20 - .../features/tools-and-utilities/index.mdx | 21 - core/README.md | 18 + core/concepts/README.md | 19 + .../best-practices/avoid-mutations.mdx | 0 .../best-practices/avoid-optimize-final.mdx | 0 .../best-practices/avoidnullablecolumns.mdx | 0 .../best-practices/choosing-a-primary-key.mdx | 10 +- .../concepts}/best-practices/index.mdx | 0 .../concepts}/best-practices/json-type.mdx | 16 +- .../minimize-optimize-joins.mdx | 14 +- .../best-practices/partitioning-keys.mdx | 16 +- .../best-practices/select-data-type.mdx | 6 +- .../selecting-an-insert-strategy.mdx | 22 +- .../best-practices/use-materialized-views.mdx | 8 +- .../using-data-skipping-indices.mdx | 14 +- .../core-concepts/academic-overview.mdx | 0 .../concepts}/core-concepts/glossary.mdx | 2 +- .../concepts}/core-concepts/index.mdx | 6 +- .../concepts}/core-concepts/merges.mdx | 40 +- .../concepts}/core-concepts/partitions.mdx | 40 +- .../concepts}/core-concepts/parts.mdx | 18 +- .../core-concepts/primary-indexes.mdx | 20 +- .../core-concepts/query-parallelism.mdx | 28 +- .../backup-restore/alternative-methods.mdx | 4 +- .../backup-restore/azure-blob-storage.mdx | 0 .../features/backup-restore/local-disk.mdx | 0 .../features/backup-restore/overview.mdx | 22 +- .../features/backup-restore/s3-endpoint.mdx | 2 +- .../features/backup-restore/snapshot.mdx | 16 +- .../server-config/composable-protocols.mdx | 2 +- .../server-config/configuration-files.mdx | 4 +- .../server-config/named-collections.mdx | 16 +- .../configuration/server-config/quotas.mdx | 4 +- .../server-config/startup-scripts.mdx | 0 .../server-config/storing-data.mdx | 34 +- .../server-config/workload-scheduling.mdx | 38 +- .../settings/alternative-query-languages.mdx | 2 +- .../settings/constraints-on-settings.mdx | 4 +- .../settings/memory-overcommit.mdx | 0 .../configuration/settings/overview.mdx | 10 +- .../settings/permissions-for-queries.mdx | 4 +- .../settings/query-complexity.mdx | 115 + .../settings/server-overload.mdx | 0 .../settings/settings-profiles.mdx | 2 +- .../settings/settings-query-level.mdx | 10 +- .../configuration/settings/settings-users.mdx | 10 +- .../settings/tcp-connection-limits.mdx | 2 +- .../features/dictionaries/best-practices.mdx | 6 +- .../concepts}/features/dictionaries/index.mdx | 24 +- .../concepts}/features/index.mdx | 20 +- .../features/interfaces}/arrowflight.mdx | 6 +- .../concepts/features/interfaces}/cli.mdx | 0 .../concepts/features/interfaces}/client.mdx | 20 +- .../concepts/features/interfaces}/cpp.mdx | 0 .../concepts/features/interfaces}/grpc.mdx | 4 +- .../concepts/features/interfaces}/http.mdx | 34 +- .../concepts/features/interfaces}/jdbc.mdx | 0 .../concepts/features/interfaces}/mysql.mdx | 14 +- .../native-clients-interfaces-index.mdx | 18 + .../concepts/features/interfaces}/odbc.mdx | 6 +- .../features/interfaces}/overview.mdx | 14 +- .../features/interfaces}/postgresql.mdx | 2 +- .../features/interfaces}/prometheus.mdx | 28 +- .../features/interfaces}/schema-inference.mdx | 244 +- .../concepts/features/interfaces}/ssh.mdx | 0 core/concepts/features/interfaces/tcp.mdx | 9 + .../interfaces}/third-party/index.mdx | 2 +- .../features/interfaces}/web-terminal.mdx | 2 +- .../cascading-materialized-views.mdx | 2 +- .../incremental-materialized-view.mdx | 30 +- .../features/materialized-views/index.mdx | 4 +- .../refreshable-materialized-view.mdx | 16 +- .../operations/delete/delete-mutations.mdx | 2 +- .../operations/delete/drop-partition.mdx | 4 +- .../features/operations/delete/index.mdx | 18 + .../operations/delete/lightweight-delete.mdx | 2 +- .../features}/operations/delete/overview.mdx | 20 +- .../features}/operations/delete/truncate.mdx | 0 .../features}/operations/delete/ttl.mdx | 4 +- .../operations/insert/asyncinserts.mdx | 0 .../operations/insert/bulkinserts.mdx | 0 .../deduplicating-inserts-on-retries.mdx | 12 +- .../operations/insert/deduplication.mdx | 4 +- .../operations/insert}/inserting-data.mdx | 32 +- .../operations/insert/transactions.mdx | 4 +- .../operations/select/joining-tables.mdx | 8 +- .../features}/operations/update/index.mdx | 4 +- .../operations/update/on-fly-mutations.mdx | 2 +- .../features}/operations/update/overview.mdx | 42 +- .../update/replacing-merge-tree.mdx | 8 +- .../performance/allocation-profiling-old.mdx | 6 +- .../performance/allocation-profiling.mdx | 8 +- .../features/performance/caches/caches.mdx | 36 + .../performance/caches/query-cache.mdx | 84 +- .../caches/query-condition-cache.mdx | 14 +- .../caches/userspace-page-cache.mdx | 6 +- core/concepts/features/performance/index.mdx | 33 + .../performance/lazy-materialization.mdx | 12 +- .../features/performance/prewhere.mdx | 8 +- .../skipping-indexes-examples.mdx | 40 +- .../skip-indexes/skipping-indexes.mdx | 16 +- .../troubleshoot/debugging-memory-issues.mdx | 2 +- .../troubleshoot/performance-test.mdx | 0 .../troubleshoot/sampling-query-profiler.mdx | 20 +- .../materialized-views-versus-projections.mdx | 2 +- .../features/projections/projections.mdx | 18 +- .../features/security/access-rights.mdx | 82 +- .../features/security/configuring-ldap.mdx | 6 +- .../security/external-authenticators/http.mdx | 2 +- .../external-authenticators/index.mdx | 20 + .../external-authenticators/kerberos.mdx | 2 +- .../security/external-authenticators/ldap.mdx | 6 +- .../external-authenticators/ssl-x509.mdx | 4 +- core/concepts/features/security/index.mdx | 25 + .../features/security/network-ports.mdx | 4 +- .../features/security/ssl-user-auth.mdx | 10 +- .../tls/configuring-tls-acme-client.mdx | 2 +- .../features/security/tls/configuring-tls.mdx | 6 +- .../concepts}/features/security/tls/index.mdx | 6 +- .../tools-and-utilities/backupview.mdx | 2 +- .../clickhouse-benchmark.mdx | 2 +- .../clickhouse-compressor.mdx | 0 .../tools-and-utilities/clickhouse-disks.mdx | 2 +- .../tools-and-utilities/clickhouse-format.mdx | 0 .../clickhouse-keeper-client.mdx | 0 .../clickhouse-keeper-http-api.mdx | 0 .../tools-and-utilities/clickhouse-local.mdx | 14 +- .../clickhouse-obfuscator.mdx | 0 .../features/tools-and-utilities/index.mdx | 21 + .../tools-and-utilities/odbc-bridge.mdx | 0 .../static-files-disk-uploader.mdx | 2 +- {concepts => core/concepts}/index.mdx | 8 +- core/concepts/navigation.json | 278 + core/get-started/README.md | 20 + .../get-started}/about/deployment-modes.mdx | 4 +- .../about/distinctive-features.mdx | 16 +- .../get-started}/about/intro.mdx | 14 +- .../get-started}/about/olap.mdx | 4 +- .../about/why-clickhouse-is-so-fast.mdx | 34 +- core/get-started/navigation.json | 201 + .../_academy-ctas/_academy_cta_generic.mdx | 0 .../_prerequisites/cloud_prerequisite.mdx | 3 + .../build-etl-pipeline-using-clickhouse.mdx | 4 +- .../connect-your-iceberg-catalog.mdx | 8 +- .../create-your-first-materialized-view.mdx | 22 +- .../create-your-first-mergetree-table.mdx | 18 +- .../create-your-first-projection.mdx | 24 +- .../create-your-first-service-on-cloud.mdx | 12 +- .../quickstarts}/creating-tables.mdx | 4 +- .../get-started}/quickstarts/home.mdx | 47 +- .../insert-data-using-clickhouse-client.mdx | 22 +- .../get-started/quickstarts}/mutations.mdx | 12 +- .../obtain-your-cloud-connection-details.mdx | 20 +- .../get-started}/quickstarts/tutorial.mdx | 12 +- .../quickstarts/working-with-the-map-type.mdx | 18 +- .../quickstarts}/writing-queries.mdx | 8 +- .../sample-datasets/amazon-reviews.mdx | 4 +- .../sample-datasets/amplab-benchmark.mdx | 0 .../anon-web-analytics-metrica.mdx | 2 +- .../sample-datasets/brown-benchmark.mdx | 0 .../sample-datasets/cell-towers.mdx | 4 +- .../get-started}/sample-datasets/covid19.mdx | 0 .../get-started}/sample-datasets/criteo.mdx | 0 .../get-started}/sample-datasets/dbpedia.mdx | 4 +- .../sample-datasets/environmental-sensors.mdx | 0 .../sample-datasets/foursquare-os-places.mdx | 2 +- .../sample-datasets/github-events.mdx | 0 .../get-started}/sample-datasets/github.mdx | 2 +- .../hacker-news-vector-search.mdx | 8 +- .../sample-datasets/hacker-news.mdx | 14 +- core/get-started/sample-datasets/index.mdx | 58 + .../get-started}/sample-datasets/laion.mdx | 6 +- .../get-started}/sample-datasets/laion5b.mdx | 8 +- .../get-started}/sample-datasets/menus.mdx | 10 +- .../get-started}/sample-datasets/noaa.mdx | 2 +- .../get-started}/sample-datasets/nyc-taxi.mdx | 2 +- .../sample-datasets/nypd-complaint-data.mdx | 12 +- .../get-started}/sample-datasets/ontime.mdx | 0 .../sample-datasets/playground.mdx | 4 +- .../sample-datasets/stackoverflow.mdx | 0 .../sample-datasets/star-schema.mdx | 2 +- .../get-started}/sample-datasets/tpcds.mdx | 2 +- .../get-started}/sample-datasets/tpch.mdx | 0 .../sample-datasets/tw-weather.mdx | 0 .../sample-datasets/uk-price-paid.mdx | 8 +- .../get-started}/sample-datasets/wikistat.mdx | 0 .../sample-datasets/youtube-dislikes.mdx | 8 +- .../get-started}/setup/cloud.mdx | 34 +- core/get-started/setup/install.mdx | 57 + .../setup/migration-guides/bigquery/index.mdx | 15 + .../bigquery/loading-data.mdx | 10 +- .../migrating-to-clickhouse-cloud.mdx | 46 +- .../migration-guides/bigquery/overview.mdx | 84 +- .../migration-guides/elastic/overview.mdx | 0 .../oss-to-cloud/clickhouse-to-cloud.mdx | 2 +- .../other-methods/clickhouse-local-etl.mdx | 8 +- .../other-methods/etl-tool-to-clickhouse.mdx | 0 .../object-storage-to-clickhouse.mdx | 10 +- .../setup/migration-guides/overview.mdx | 31 + .../migration-guides/postgres/appendix.mdx | 74 +- .../setup/migration-guides/postgres/index.mdx | 16 + .../migration-guide/migration-guide-part1.mdx | 18 +- .../migration-guide/migration-guide-part2.mdx | 6 +- .../migration-guide/migration-guide-part3.mdx | 34 +- .../migration-guides/postgres/overview.mdx | 6 +- .../redshift/migration-guide.mdx | 0 .../migration-guides/redshift/overview.mdx | 0 .../redshift/sql-translation-reference.mdx | 40 +- .../snowflake/migration-guide.mdx | 6 +- .../migration-guides/snowflake/overview.mdx | 6 +- .../snowflake/sql-translation-reference.mdx | 44 +- .../setup/self-managed/advanced.mdx | 2 +- .../setup/self-managed/debian-ubuntu.mdx | 0 .../setup/self-managed/docker.mdx | 0 .../get-started}/setup/self-managed/macos.mdx | 0 .../get-started}/setup/self-managed/nixos.mdx | 0 .../setup/self-managed/other-linux.mdx | 0 .../setup/self-managed/overview.mdx | 18 +- .../setup/self-managed/quick-install.mdx | 54 +- .../setup/self-managed/redhat.mdx | 0 .../setup/self-managed/windows.mdx | 0 .../use-cases/data-warehousing.mdx | 14 +- .../agent-facing-analytics.mdx | 0 .../machine-learning.mdx | 6 +- .../get-started}/use-cases/observability.mdx | 0 .../get-started}/use-cases/overview.mdx | 8 +- .../use-cases/real-time-analytics.mdx | 0 core/guides/README.md | 21 + .../data-formats/arrow-avro-orc.mdx | 28 +- .../clickhouse}/data-formats/binary.mdx | 34 +- .../clickhouse}/data-formats/csv-tsv.mdx | 46 +- .../guides/clickhouse}/data-formats/intro.mdx | 10 +- .../data-formats/json/exporting.mdx | 16 +- .../clickhouse}/data-formats/json/formats.mdx | 34 +- .../data-formats/json/inference.mdx | 30 +- .../clickhouse/data-formats/json/intro.mdx | 29 + .../clickhouse}/data-formats/json/loading.mdx | 20 +- .../clickhouse}/data-formats/json/other.mdx | 20 +- .../clickhouse}/data-formats/json/schema.mdx | 36 +- .../clickhouse}/data-formats/parquet.mdx | 24 +- .../guides/clickhouse}/data-formats/sql.mdx | 22 +- .../data-formats/templates-regex.mdx | 24 +- .../data-modelling/backfilling.mdx | 32 +- .../compression/compression-in-clickhouse.mdx | 8 +- .../compression/compression-modes.mdx | 6 +- .../data-modelling/denormalization.mdx | 8 +- .../data-modelling}/generating-test-data.mdx | 6 +- .../clickhouse/data-modelling/index.mdx | 18 + .../data-modelling/merge-table-function.mdx | 8 +- .../data-modelling/schema-design.mdx | 16 +- .../data-modelling/sparse-primary-indexes.mdx | 80 +- ...red-procedures-and-prepared-statements.mdx | 28 +- .../aggregate-function-combinators/anyIf.mdx | 6 +- .../argMaxIf.mdx | 10 +- .../argMinIf.mdx | 10 +- .../aggregate-function-combinators/avgIf.mdx | 6 +- .../aggregate-function-combinators/avgMap.mdx | 6 +- .../avgMerge.mdx | 12 +- .../avgMergeState.mdx | 12 +- .../avgResample.mdx | 8 +- .../avgState.mdx | 8 +- .../countIf.mdx | 6 +- .../countResample.mdx | 8 +- .../groupArrayDistinct.mdx | 8 +- .../groupArrayResample.mdx | 8 +- .../aggregate-function-combinators/maxMap.mdx | 6 +- .../maxSimpleState.mdx | 24 + .../aggregate-function-combinators/minMap.mdx | 6 +- .../minSimpleState.mdx | 10 +- .../quantilesTimingArrayIf.mdx | 8 +- .../quantilesTimingIf.mdx | 6 +- .../sumArray.mdx | 12 +- .../sumForEach.mdx | 8 +- .../aggregate-function-combinators/sumIf.mdx | 6 +- .../aggregate-function-combinators/sumMap.mdx | 6 +- .../sumSimpleState.mdx | 10 +- .../uniqArray.mdx | 12 +- .../uniqArrayIf.mdx | 8 +- core/guides/clickhouse/index.mdx | 34 + .../performance-and-monitoring/analyzer.mdx | 2 +- .../dynamic-column-selection.mdx | 12 +- .../query-optimization.mdx | 28 +- ...ding-query-execution-with-the-analyzer.mdx | 4 +- .../clickhouse}/working-with-arrays.mdx | 32 +- .../guides/clickhouse}/working-with-joins.mdx | 14 +- core/guides/navigation.json | 271 + .../sizing-and-hardware-recommendations.mdx | 8 +- .../guides}/oss/best-practices/tips.mdx | 2 +- .../cluster-discovery.mdx | 2 +- .../examples/1-shard-2-replicas.mdx | 10 +- .../examples/2-shards-1-replica.mdx | 14 +- .../examples/2-shards-2-replicas.mdx | 14 +- .../oss/deployment-and-scaling/index.mdx | 8 +- .../deployment-and-scaling/keeper/index.mdx | 16 +- .../keeper/ssl-zookeeper.mdx | 0 .../monitoring/monitoring.mdx | 10 +- .../monitoring/opentelemetry.mdx | 16 +- .../scaling-clusters.mdx | 6 +- .../separation-storage-compute.mdx | 4 +- .../oss/deployment-and-scaling/shards.mdx | 16 +- .../deployment-and-scaling/terminology.mdx | 0 {guides => core/guides}/oss/update.mdx | 0 .../ai-ml/MCP/ai-agent-libraries/agno.mdx | 0 .../ai-ml/MCP/ai-agent-libraries/chainlit.mdx | 0 .../ai-agent-libraries/claude-agent-sdk.mdx | 0 .../MCP/ai-agent-libraries/copilotkit.mdx | 0 .../ai-ml/MCP/ai-agent-libraries/crewai.mdx | 0 .../ai-ml/MCP/ai-agent-libraries/dspy.mdx | 0 .../ai-ml/MCP/ai-agent-libraries/index.mdx | 28 + .../MCP/ai-agent-libraries/langchain.mdx | 0 .../MCP/ai-agent-libraries/llamaindex.mdx | 0 .../MCP/ai-agent-libraries/mcp-agent.mdx | 0 .../microsoft-agent-framework.mdx | 0 .../MCP/ai-agent-libraries/openai-agents.mdx | 0 .../MCP/ai-agent-libraries/pydantic-ai.mdx | 0 .../ai-ml/MCP/ai-agent-libraries/slackbot.mdx | 0 .../MCP/ai-agent-libraries/streamlit.mdx | 0 .../ai-ml/MCP/ai-agent-libraries/upsonic.mdx | 0 .../use-cases}/ai-ml/MCP/anythingllm.mdx | 2 +- .../use-cases}/ai-ml/MCP/claude-desktop.mdx | 0 .../guides/use-cases}/ai-ml/MCP/index.mdx | 42 +- .../guides/use-cases}/ai-ml/MCP/janai.mdx | 0 .../guides/use-cases}/ai-ml/MCP/librechat.mdx | 2 +- .../guides/use-cases}/ai-ml/MCP/ollama.mdx | 0 .../use-cases}/ai-ml/MCP/open-webui.mdx | 0 .../ai-ml/ai-powered-sql-generation.mdx | 6 +- .../data-exploration/jupyter-notebook.mdx | 2 +- .../data-exploration/marimo-notebook.mdx | 4 +- core/guides/use-cases/ai-ml/index.mdx | 19 + .../guides/use-cases}/ai-ml/vector-search.mdx | 4 +- .../data-warehousing/biglake-catalog.mdx | 2 +- .../accelerating-analytics.mdx | 18 +- .../getting-started/connecting-catalogs.mdx | 16 +- .../getting-started/overview.mdx | 32 +- .../getting-started/querying-directly.mdx | 38 +- .../getting-started/writing-data.mdx | 4 +- .../data-warehousing/glue-catalog.mdx | 0 .../use-cases/data-warehousing/index.mdx | 62 + .../data-warehousing/lakekeeper-catalog.mdx | 0 .../data-warehousing/nessie-catalog.mdx | 0 .../data-warehousing/onelake-catalog.mdx | 0 .../data-warehousing/polaris-catalog.mdx | 0 .../data-warehousing/reference/index.mdx | 18 + .../data-warehousing/rest-catalog.mdx | 0 .../data-warehousing/support-matrix.mdx | 175 + .../data-warehousing/unity-catalog.mdx | 0 core/guides/use-cases/index.mdx | 24 + .../build-your-own/demo-application.mdx | 0 .../observability/build-your-own/grafana.mdx | 4 +- .../observability/build-your-own/index.mdx | 18 + .../integrating-opentelemetry.mdx | 32 +- .../build-your-own/introduction.mdx | 2 +- .../build-your-own/managing-data.mdx | 28 +- .../build-your-own/schema-design.mdx | 94 +- .../observability/cloud-monitoring.mdx | 2 +- .../guides/use-cases}/observability/index.mdx | 14 +- .../observability/self-managed-monitoring.mdx | 0 .../time-series/analysis-functions.mdx | 4 +- .../time-series/basic-operations.mdx | 14 +- .../time-series/date-time-data-types.mdx | 18 +- .../real-time-analytics/time-series/index.mdx | 10 +- .../time-series/materialized-view-rollup.mdx | 2 +- .../time-series/query-performance.mdx | 4 +- .../time-series/storage-efficiency.mdx | 0 .../time-series/time-series-filling-gaps.mdx | 2 +- core/reference/README.md | 22 + .../data-types/aggregatefunction.mdx | 20 +- .../reference}/data-types/array.mdx | 4 +- .../reference}/data-types/boolean.mdx | 0 .../data-types/data-types-binary-encoding.mdx | 2 +- .../reference}/data-types/date.mdx | 6 +- .../reference}/data-types/date32.mdx | 8 +- .../reference}/data-types/datetime.mdx | 28 +- .../reference}/data-types/datetime64.mdx | 20 +- .../reference}/data-types/decimal.mdx | 4 +- .../reference}/data-types/domains/index.mdx | 0 .../reference}/data-types/dynamic.mdx | 0 .../reference}/data-types/enum.mdx | 4 +- .../reference}/data-types/fixedstring.mdx | 4 +- .../reference}/data-types/float.mdx | 6 +- .../reference}/data-types/geo.mdx | 12 +- .../reference}/data-types/index.mdx | 4 +- .../reference}/data-types/int-uint.mdx | 0 .../reference}/data-types/ipv4.mdx | 2 +- .../reference}/data-types/ipv6.mdx | 2 +- .../reference}/data-types/lowcardinality.mdx | 18 +- .../reference}/data-types/map.mdx | 14 +- .../nested-data-structures/index.mdx | 4 +- .../reference}/data-types/newjson.mdx | 96 +- .../reference}/data-types/nullable.mdx | 10 +- .../reference}/data-types/qbit.mdx | 4 +- .../data-types/simpleaggregatefunction.mdx | 40 +- .../special-data-types/expression.mdx | 0 .../data-types/special-data-types/index.mdx | 0 .../special-data-types/interval.mdx | 8 +- .../data-types/special-data-types/nothing.mdx | 2 +- .../data-types/special-data-types/set.mdx | 2 +- .../reference}/data-types/string.mdx | 2 +- .../reference}/data-types/time.mdx | 22 +- .../reference}/data-types/time64.mdx | 26 +- .../reference}/data-types/tuple.mdx | 6 +- .../reference}/data-types/uuid.mdx | 6 +- .../reference}/data-types/variant.mdx | 0 core/reference/datalakes.mdx | 42 + .../engines/database-engines/atomic.mdx | 16 +- .../engines/database-engines/backup.mdx | 4 +- .../engines/database-engines/datalake.mdx | 4 +- .../engines/database-engines/index.mdx | 34 + .../materialized-postgresql.mdx | 4 +- .../engines/database-engines/mysql.mdx | 34 +- .../engines/database-engines/postgresql.mdx | 26 +- .../engines/database-engines/replicated.mdx | 18 +- .../engines/database-engines/shared.mdx | 0 .../engines/database-engines/sqlite.mdx | 32 +- .../reference}/engines/engines.mdx | 4 +- .../reference/engines/table-engines/index.mdx | 112 + .../integrations/ExternalDistributed.mdx | 12 +- .../integrations/arrowflight.mdx | 2 +- .../integrations/azure-queue.mdx | 12 +- .../integrations/azureBlobStorage.mdx | 12 +- .../table-engines/integrations/deltalake.mdx | 6 +- .../integrations/embedded-rocksdb.mdx | 4 +- .../table-engines/integrations/hdfs.mdx | 18 +- .../table-engines/integrations/hive.mdx | 2 +- .../table-engines/integrations/hudi.mdx | 4 +- .../table-engines/integrations/iceberg.mdx | 8 +- .../table-engines/integrations/index.mdx | 47 + .../table-engines/integrations/jdbc.mdx | 6 +- .../table-engines/integrations/kafka.mdx | 24 +- .../integrations/materialized-postgresql.mdx | 8 +- .../table-engines/integrations/mongodb.mdx | 2 +- .../table-engines/integrations/mysql.mdx | 14 +- .../table-engines/integrations/nats.mdx | 12 +- .../table-engines/integrations/odbc.mdx | 14 +- .../table-engines/integrations/paimon.mdx | 2 +- .../table-engines/integrations/postgresql.mdx | 16 +- .../table-engines/integrations/rabbitmq.mdx | 16 +- .../table-engines/integrations/redis.mdx | 4 +- .../engines/table-engines/integrations/s3.mdx | 26 +- .../table-engines/integrations/s3queue.mdx | 14 +- .../table-engines/integrations/sqlite.mdx | 22 +- .../integrations/time-series.mdx | 22 +- .../table-engines/integrations/ytsaurus.mdx | 4 +- .../table-engines/log-family/index.mdx | 10 +- .../engines/table-engines/log-family/log.mdx | 6 +- .../table-engines/log-family/stripelog.mdx | 6 +- .../table-engines/log-family/tinylog.mdx | 6 +- .../mergetree-family/aggregatingmergetree.mdx | 18 +- .../mergetree-family/annindexes.mdx | 70 +- .../mergetree-family/coalescingmergetree.mdx | 8 +- .../mergetree-family/collapsingmergetree.mdx | 20 +- .../custom-partitioning-key.mdx | 20 +- .../mergetree-family/graphitemergetree.mdx | 10 +- .../table-engines/mergetree-family/index.mdx | 41 + .../mergetree-family/invertedindexes.mdx | 84 +- .../mergetree-family/mergetree.mdx | 180 +- .../mergetree-family/replacingmergetree.mdx | 10 +- .../mergetree-family/replication.mdx | 32 +- .../mergetree-family/summingmergetree.mdx | 12 +- .../mergetree-family/textindexes.mdx | 132 +- .../versionedcollapsingmergetree.mdx | 10 +- .../engines/table-engines/special/alias.mdx | 2 +- .../engines/table-engines/special/buffer.mdx | 2 +- .../table-engines/special/dictionary.mdx | 6 +- .../table-engines/special/distributed.mdx | 42 +- .../table-engines/special/executable.mdx | 2 +- .../table-engines/special/external-data.mdx | 0 .../engines/table-engines/special/file.mdx | 24 +- .../engines/table-engines/special/filelog.mdx | 8 +- .../table-engines/special/generate.mdx | 2 +- .../engines/table-engines/special/index.mdx | 44 + .../engines/table-engines/special/join.mdx | 26 +- .../table-engines/special/keepermap.mdx | 0 .../engines/table-engines/special/memory.mdx | 2 +- .../engines/table-engines/special/merge.mdx | 8 +- .../engines/table-engines/special/null.mdx | 0 .../engines/table-engines/special/set.mdx | 2 +- .../engines/table-engines/special/url.mdx | 14 +- .../engines/table-engines/special/view.mdx | 0 .../reference}/formats/Arrow/Arrow.mdx | 58 +- .../reference}/formats/Arrow/ArrowStream.mdx | 0 .../reference}/formats/Avro/Avro.mdx | 10 +- .../reference}/formats/Avro/AvroConfluent.mdx | 6 +- .../Avro/_snippets/data-types-matching.mdx | 39 + .../reference}/formats/BSONEachRow.mdx | 86 +- .../reference}/formats/Buffers.mdx | 6 +- core/reference/formats/CSV/CSV.mdx | 71 + .../reference}/formats/CSV/CSVWithNames.mdx | 6 +- .../formats/CSV/CSVWithNamesAndTypes.mdx | 8 +- .../reference}/formats/CapnProto.mdx | 54 +- .../CustomSeparated/CustomSeparated.mdx | 22 +- .../CustomSeparatedIgnoreSpaces.mdx | 0 .../CustomSeparatedIgnoreSpacesWithNames.mdx | 0 ...SeparatedIgnoreSpacesWithNamesAndTypes.mdx | 0 .../CustomSeparatedWithNames.mdx | 6 +- .../CustomSeparatedWithNamesAndTypes.mdx | 8 +- .../reference}/formats/DWARF.mdx | 0 .../reference}/formats/Form.mdx | 0 .../reference}/formats/Hash.mdx | 0 .../reference}/formats/HiveText.mdx | 0 .../reference}/formats/JSON/JSON.mdx | 10 +- .../reference}/formats/JSON/JSONAsObject.mdx | 4 +- .../reference}/formats/JSON/JSONAsString.mdx | 6 +- .../reference}/formats/JSON/JSONColumns.mdx | 4 +- .../formats/JSON/JSONColumnsWithMetadata.mdx | 4 +- .../reference}/formats/JSON/JSONCompact.mdx | 2 +- .../formats/JSON/JSONCompactColumns.mdx | 2 +- .../formats/JSON/JSONCompactEachRow.mdx | 2 +- .../JSON/JSONCompactEachRowWithNames.mdx | 6 +- .../JSONCompactEachRowWithNamesAndTypes.mdx | 8 +- .../JSON/JSONCompactEachRowWithProgress.mdx | 0 .../formats/JSON/JSONCompactStrings.mdx | 2 +- .../JSON/JSONCompactStringsEachRow.mdx | 2 +- .../JSONCompactStringsEachRowWithNames.mdx | 6 +- ...CompactStringsEachRowWithNamesAndTypes.mdx | 8 +- .../JSONCompactStringsEachRowWithProgress.mdx | 2 +- .../reference}/formats/JSON/JSONEachRow.mdx | 2 +- .../formats/JSON/JSONEachRowWithProgress.mdx | 2 +- .../reference}/formats/JSON/JSONLines.mdx | 2 +- .../formats/JSON/JSONObjectEachRow.mdx | 62 +- .../reference}/formats/JSON/JSONStrings.mdx | 2 +- .../formats/JSON/JSONStringsEachRow.mdx | 2 +- .../JSON/JSONStringsEachRowWithProgress.mdx | 0 .../formats/JSON/PrettyJSONEachRow.mdx | 2 +- .../formats/JSON/format-settings.mdx | 37 + .../formats/LineAsString/LineAsString.mdx | 4 +- .../LineAsString/LineAsStringWithNames.mdx | 2 +- .../LineAsStringWithNamesAndTypes.mdx | 2 +- .../reference}/formats/Markdown.mdx | 0 core/reference/formats/MsgPack.mdx | 60 + .../reference}/formats/MySQLDump.mdx | 4 +- .../reference}/formats/MySQLWire.mdx | 0 .../reference}/formats/Native.mdx | 18 +- {reference => core/reference}/formats/Npy.mdx | 24 +- .../reference}/formats/Null.mdx | 0 .../reference}/formats/ODBCDriver2.mdx | 0 {reference => core/reference}/formats/ORC.mdx | 52 +- {reference => core/reference}/formats/One.mdx | 2 +- .../reference}/formats/Parquet/Parquet.mdx | 64 +- .../formats/Parquet/ParquetMetadata.mdx | 0 .../reference}/formats/PostgreSQLWire.mdx | 0 .../reference}/formats/Pretty/Pretty.mdx | 8 +- .../formats/Pretty/PrettyCompact.mdx | 2 +- .../formats/Pretty/PrettyCompactMonoBlock.mdx | 4 +- .../formats/Pretty/PrettyCompactNoEscapes.mdx | 2 +- .../PrettyCompactNoEscapesMonoBlock.mdx | 4 +- .../formats/Pretty/PrettyMonoBlock.mdx | 4 +- .../formats/Pretty/PrettyNoEscapes.mdx | 4 +- .../Pretty/PrettyNoEscapesMonoBlock.mdx | 2 +- .../reference}/formats/Pretty/PrettySpace.mdx | 2 +- .../formats/Pretty/PrettySpaceMonoBlock.mdx | 4 +- .../formats/Pretty/PrettySpaceNoEscapes.mdx | 2 +- .../Pretty/PrettySpaceNoEscapesMonoBlock.mdx | 4 +- .../common-pretty-format-settings.mdx | 14 + .../reference}/formats/Prometheus.mdx | 8 +- .../reference}/formats/Protobuf/Protobuf.mdx | 14 +- .../formats/Protobuf/ProtobufList.mdx | 2 +- .../formats/Protobuf/ProtobufSingle.mdx | 2 +- .../reference}/formats/RawBLOB.mdx | 6 +- .../reference}/formats/Regexp.mdx | 22 +- .../formats/RowBinary/RowBinary.mdx | 14 +- .../RowBinary/RowBinaryWithDefaults.mdx | 2 +- .../formats/RowBinary/RowBinaryWithNames.mdx | 6 +- .../RowBinary/RowBinaryWithNamesAndTypes.mdx | 8 +- .../common-row-binary-format-settings.mdx | 11 + .../reference}/formats/SQLInsert.mdx | 12 +- .../reference}/formats/TabSeparated/TSKV.mdx | 10 +- .../formats/TabSeparated/TabSeparated.mdx | 26 +- .../formats/TabSeparated/TabSeparatedRaw.mdx | 4 +- .../TabSeparated/TabSeparatedRawWithNames.mdx | 2 +- .../TabSeparatedRawWithNamesAndTypes.mdx | 2 +- .../TabSeparated/TabSeparatedWithNames.mdx | 6 +- .../TabSeparatedWithNamesAndTypes.mdx | 8 +- .../reference}/formats/Template/Template.mdx | 0 .../formats/Template/TemplateIgnoreSpaces.mdx | 2 +- .../reference}/formats/Values.mdx | 10 +- .../reference}/formats/Vertical.mdx | 2 +- {reference => core/reference}/formats/XML.mdx | 0 core/reference/formats/index.mdx | 163 + .../aggregate-functions/combinators.mdx | 14 +- .../aggregate-functions/grouping_function.mdx | 2 +- .../functions/aggregate-functions/index.mdx | 12 +- .../parametric-functions.mdx | 42 +- .../reference/aggThrow.mdx | 2 +- .../reference/analysis_of_variance.mdx | 6 +- .../aggregate-functions/reference/any.mdx | 4 +- .../reference/anyHeavy.mdx | 4 +- .../aggregate-functions/reference/anyLast.mdx | 6 +- .../reference/approxtopk.mdx | 14 +- .../reference/approxtopsum.mdx | 22 +- .../reference/argAndMax.mdx | 16 +- .../reference/argAndMin.mdx | 16 +- .../aggregate-functions/reference/argMax.mdx | 8 +- .../aggregate-functions/reference/argMin.mdx | 8 +- .../aggregate-functions/reference/avg.mdx | 4 +- .../reference/avgWeighted.mdx | 6 +- .../reference/boundrat.mdx | 6 +- .../reference/categoricalInformationValue.mdx | 6 +- .../reference/contingency.mdx | 8 +- .../aggregate-functions/reference/corr.mdx | 8 +- .../reference/corrMatrix.mdx | 4 +- .../reference/corrStable.mdx | 8 +- .../aggregate-functions/reference/count.mdx | 20 +- .../reference/covarPop.mdx | 8 +- .../reference/covarPopMatrix.mdx | 4 +- .../reference/covarPopStable.mdx | 8 +- .../reference/covarSamp.mdx | 8 +- .../reference/covarSampMatrix.mdx | 4 +- .../reference/covarSampStable.mdx | 8 +- .../reference/cramersV.mdx | 8 +- .../reference/cramersVBiasCorrected.mdx | 8 +- .../reference/deltaSum.mdx | 10 +- .../reference/deltaSumTimestamp.mdx | 10 +- .../reference/distinctDynamicTypes.mdx | 6 +- .../reference/distinctJSONPaths.mdx | 6 +- .../reference/distinctJSONPathsAndTypes.mdx | 6 +- .../aggregate-functions/reference/entropy.mdx | 4 +- .../reference/estimateCompressionRatio.mdx | 10 +- .../reference/exponentialMovingAverage.mdx | 8 +- .../reference/exponentialTimeDecayedAvg.mdx | 8 +- .../reference/exponentialTimeDecayedCount.mdx | 6 +- .../reference/exponentialTimeDecayedMax.mdx | 8 +- .../reference/exponentialTimeDecayedSum.mdx | 8 +- .../reference/first_value.mdx | 4 +- .../reference/flame_graph.mdx | 8 +- .../reference/groupArray.mdx | 6 +- .../reference/groupArrayArray.mdx | 2 +- .../reference/groupArrayInsertAt.mdx | 10 +- .../reference/groupArrayIntersect.mdx | 4 +- .../reference/groupArrayLast.mdx | 8 +- .../reference/groupArrayMovingAvg.mdx | 6 +- .../reference/groupArrayMovingSum.mdx | 6 +- .../reference/groupArraySample.mdx | 10 +- .../reference/groupArraySorted.mdx | 6 +- .../reference/groupBitAnd.mdx | 4 +- .../reference/groupBitOr.mdx | 4 +- .../reference/groupBitXor.mdx | 4 +- .../reference/groupBitmap.mdx | 6 +- .../reference/groupBitmapAnd.mdx | 6 +- .../reference/groupBitmapOr.mdx | 8 +- .../reference/groupBitmapXor.mdx | 6 +- .../reference/groupConcat.mdx | 10 +- .../reference/groupUniqArray.mdx | 8 +- .../aggregate-functions/reference/index.mdx | 166 + .../reference/intervalLengthSum.mdx | 6 +- .../reference/kolmogorovSmirnovTest.mdx | 10 +- .../aggregate-functions/reference/kurtPop.mdx | 4 +- .../reference/kurtSamp.mdx | 4 +- .../reference/largestTriangleThreeBuckets.mdx | 8 +- .../reference/last_value.mdx | 2 +- .../reference/mannWhitneyUTest.mdx | 10 +- .../aggregate-functions/reference/max.mdx | 4 +- .../reference/maxIntersections.mdx | 6 +- .../reference/maxIntersectionsPosition.mdx | 8 +- .../aggregate-functions/reference/maxMap.mdx | 6 +- .../reference/meanZTest.mdx | 12 +- .../aggregate-functions/reference/median.mdx | 45 + .../aggregate-functions/reference/min.mdx | 4 +- .../aggregate-functions/reference/minMap.mdx | 6 +- .../reference/quantile.mdx | 14 +- .../reference/quantileBFloat16.mdx | 10 +- .../reference/quantileDeterministic.mdx | 16 +- .../reference/quantileExact.mdx | 12 +- .../reference/quantileExactExclusive.mdx | 12 +- .../reference/quantileExactHigh.mdx | 10 +- .../reference/quantileExactInclusive.mdx | 12 +- .../reference/quantileExactLow.mdx | 10 +- .../reference/quantileExactWeighted.mdx | 16 +- .../quantileExactWeightedInterpolated.mdx | 14 +- .../reference/quantileGK.mdx | 12 +- .../quantileInterpolatedWeighted.mdx | 14 +- .../reference/quantilePrometheusHistogram.mdx | 16 +- .../reference/quantileTDigest.mdx | 14 +- .../reference/quantileTDigestWeighted.mdx | 18 +- .../reference/quantileTiming.mdx | 16 +- .../reference/quantileTimingWeighted.mdx | 14 +- .../reference/quantileddsketch.mdx | 12 +- .../reference/quantiles.mdx | 6 +- .../reference/quantilesExactExclusive.mdx | 8 +- .../reference/quantilesExactInclusive.mdx | 8 +- .../reference/quantilesGK.mdx | 10 +- .../reference/quantilesTimingWeighted.mdx | 16 +- .../reference/rankCorr.mdx | 6 +- .../reference/simpleLinearRegression.mdx | 6 +- .../reference/singleValueOrNull.mdx | 4 +- .../aggregate-functions/reference/skewPop.mdx | 4 +- .../reference/skewSamp.mdx | 4 +- .../reference/sparkbar.mdx | 12 +- .../reference/stddevPop.mdx | 8 +- .../reference/stddevPopStable.mdx | 6 +- .../reference/stddevSamp.mdx | 8 +- .../reference/stddevSampStable.mdx | 6 +- .../reference/stochasticLinearRegression.mdx | 16 +- .../stochasticLogisticRegression.mdx | 18 +- .../reference/studentTTest.mdx | 12 +- .../reference/studentTTestOneSample.mdx | 12 +- .../aggregate-functions/reference/sum.mdx | 4 +- .../reference/sumCount.mdx | 8 +- .../reference/sumKahan.mdx | 8 +- .../aggregate-functions/reference/sumMap.mdx | 10 +- .../reference/sumMapWithOverflow.mdx | 10 +- .../reference/sumWithOverflow.mdx | 4 +- .../aggregate-functions/reference/theilsU.mdx | 6 +- .../reference/timeSeriesChangesToGrid.mdx | 0 .../reference/timeSeriesDeltaToGrid.mdx | 14 +- .../reference/timeSeriesDerivToGrid.mdx | 0 .../reference/timeSeriesGroupArray.mdx | 6 +- .../timeSeriesInstantDeltaToGrid.mdx | 14 +- .../reference/timeSeriesInstantRateToGrid.mdx | 14 +- .../reference/timeSeriesLastTwoSamples.mdx | 6 +- .../timeSeriesPredictLinearToGrid.mdx | 0 .../reference/timeSeriesRateToGrid.mdx | 14 +- .../timeSeriesResampleToGridWithStaleness.mdx | 14 +- .../reference/timeSeriesResetsToGrid.mdx | 0 .../aggregate-functions/reference/topK.mdx | 22 +- .../reference/topKWeighted.mdx | 22 +- .../aggregate-functions/reference/uniq.mdx | 14 +- .../reference/uniqCombined.mdx | 18 +- .../reference/uniqCombined64.mdx | 22 +- .../reference/uniqExact.mdx | 14 +- .../reference/uniqHLL12.mdx | 14 +- .../reference/uniqthetasketch.mdx | 14 +- .../aggregate-functions/reference/varPop.mdx | 6 +- .../reference/varPopStable.mdx | 6 +- .../aggregate-functions/reference/varSamp.mdx | 8 +- .../reference/varSampStable.mdx | 8 +- .../reference/welchTTest.mdx | 10 +- core/reference/functions/index.mdx | 14 + .../regular-functions/ai-functions.mdx | 52 +- .../arithmetic-functions.mdx | 84 +- .../regular-functions/array-functions.mdx | 546 +- .../regular-functions/array-join.mdx | 8 +- .../regular-functions/bit-functions.mdx | 72 +- .../regular-functions/bitmap-functions.mdx | 84 +- .../comparison-functions.mdx | 58 +- .../conditional-functions.mdx | 20 +- .../regular-functions/date-time-functions.mdx | 760 +- .../regular-functions/distance-functions.mdx | 94 +- .../embedded-dict-functions.mdx | 68 +- .../regular-functions/encoding-functions.mdx | 92 +- .../encryption-functions.mdx | 64 +- .../regular-functions/ext-dict-functions.mdx | 288 +- .../functions/regular-functions/files.mdx | 6 +- .../regular-functions/financial-functions.mdx | 34 +- .../regular-functions/functions-for-nulls.mdx | 46 +- .../regular-functions/geo/coordinates.mdx | 8 +- .../regular-functions/geo/flipCoordinates.mdx | 8 +- .../regular-functions/geo/geohash.mdx | 22 +- .../regular-functions/geo/geometry.mdx | 16 +- .../functions/regular-functions/geo/h3.mdx | 226 +- .../functions/regular-functions/geo/index.mdx | 9 + .../regular-functions/geo/polygon.mdx | 16 +- .../functions/regular-functions/geo/s2.mdx | 74 +- .../functions/regular-functions/geo/svg.mdx | 6 +- .../regular-functions/hash-functions.mdx | 396 +- .../regular-functions/in-functions.mdx | 2 +- .../regular-functions/introspection.mdx | 44 +- .../ip-address-functions.mdx | 120 +- .../regular-functions/json-functions.mdx | 288 +- .../regular-functions/logical-functions.mdx | 22 +- .../machine-learning-functions.mdx | 10 +- .../regular-functions/math-functions.mdx | 186 +- .../regular-functions/nlp-functions.mdx | 40 +- .../numeric-indexed-vector-functions.mdx | 86 +- .../regular-functions/other-functions.mdx | 590 +- .../functions/regular-functions/overview.mdx | 4 +- .../regular-functions/random-functions.mdx | 124 +- .../regular-functions-index.mdx | 52 + .../regular-functions/rounding-functions.mdx | 48 +- .../splitting-merging-functions.mdx | 118 +- .../regular-functions/string-functions.mdx | 526 +- .../string-replace-functions.mdx | 86 +- .../string-search-functions.mdx | 406 +- .../time-series-functions.mdx | 172 +- .../time-window-functions.mdx | 66 +- .../regular-functions/tuple-functions.mdx | 124 +- .../regular-functions/tuple-map-functions.mdx | 148 +- .../type-conversion-functions.mdx | 1234 ++-- .../functions/regular-functions/udf.mdx | 16 +- .../regular-functions/ulid-functions.mdx | 12 +- .../regular-functions/uniqtheta-functions.mdx | 2 +- .../regular-functions/url-functions.mdx | 166 +- .../regular-functions/uuid-functions.mdx | 130 +- .../functions/regular-functions/wasm_udf.mdx | 2 +- .../functions/table-functions/arrowflight.mdx | 8 +- .../table-functions/azureBlobStorage.mdx | 8 +- .../azureBlobStorageCluster.mdx | 12 +- .../functions/table-functions/cluster.mdx | 12 +- .../functions/table-functions/deltalake.mdx | 4 +- .../table-functions/deltalakeCluster.mdx | 8 +- .../functions/table-functions/dictionary.mdx | 6 +- .../functions/table-functions/executable.mdx | 4 +- .../functions/table-functions/file.mdx | 24 +- .../functions/table-functions/fileCluster.mdx | 10 +- .../functions/table-functions/filesystem.mdx | 2 +- .../functions/table-functions/format.mdx | 4 +- .../functions/table-functions/fuzzJSON.mdx | 2 +- .../functions/table-functions/fuzzQuery.mdx | 0 .../functions/table-functions/gcs.mdx | 14 +- .../functions/table-functions/generate.mdx | 2 +- .../table-functions/generate_series.mdx | 0 .../functions/table-functions/hdfs.mdx | 14 +- .../functions/table-functions/hdfsCluster.mdx | 8 +- .../functions/table-functions/hudi.mdx | 8 +- .../functions/table-functions/hudiCluster.mdx | 10 +- .../functions/table-functions/iceberg.mdx | 4 +- .../table-functions/icebergCluster.mdx | 8 +- .../functions/table-functions/index.mdx | 149 + .../functions/table-functions/input.mdx | 2 +- .../functions/table-functions/jdbc.mdx | 0 .../functions/table-functions/loop.mdx | 0 .../functions/table-functions/merge.mdx | 6 +- .../table-functions/mergeTreeIndex.mdx | 0 .../table-functions/mergeTreeProjection.mdx | 0 .../table-functions/mergeTreeTextIndex.mdx | 0 .../functions/table-functions/mongodb.mdx | 4 +- .../functions/table-functions/mysql.mdx | 18 +- .../functions/table-functions/null.mdx | 6 +- .../functions/table-functions/numbers.mdx | 4 +- .../functions/table-functions/odbc.mdx | 6 +- .../functions/table-functions/paimon.mdx | 2 +- .../table-functions/paimonCluster.mdx | 6 +- .../functions/table-functions/postgresql.mdx | 8 +- .../functions/table-functions/primes.mdx | 2 +- .../table-functions/prometheusQuery.mdx | 0 .../table-functions/prometheusQueryRange.mdx | 0 .../functions/table-functions/redis.mdx | 6 +- .../functions/table-functions/remote.mdx | 22 +- .../functions/table-functions/s3.mdx | 22 +- .../functions/table-functions/s3Cluster.mdx | 18 +- .../functions/table-functions/sqlite.mdx | 10 +- .../table-functions/timeSeriesData.mdx | 4 +- .../table-functions/timeSeriesMetrics.mdx | 4 +- .../table-functions/timeSeriesSelector.mdx | 0 .../table-functions/timeSeriesTags.mdx | 4 +- .../functions/table-functions/url.mdx | 26 +- .../functions/table-functions/urlCluster.mdx | 16 +- .../functions/table-functions/values.mdx | 6 +- .../functions/table-functions/view.mdx | 6 +- .../functions/table-functions/ytsaurus.mdx | 6 +- .../functions/table-functions/zeros.mdx | 0 .../functions/window-functions/cume_dist.mdx | 4 +- .../functions/window-functions/dense_rank.mdx | 6 +- .../window-functions/first_value.mdx | 4 +- .../functions/window-functions/index.mdx | 16 +- .../functions/window-functions/lag.mdx | 6 +- .../functions/window-functions/lagInFrame.mdx | 4 +- .../functions/window-functions/last_value.mdx | 4 +- .../functions/window-functions/lead.mdx | 6 +- .../window-functions/leadInFrame.mdx | 4 +- .../functions/window-functions/nth_value.mdx | 2 +- .../window-functions/percent_rank.mdx | 2 +- .../functions/window-functions/rank.mdx | 6 +- .../functions/window-functions/row_number.mdx | 4 +- core/reference/home.mdx | 35 + core/reference/navigation.json | 1099 +++ .../reference}/operators/distributed-ddl.mdx | 0 .../reference}/operators/exists.mdx | 2 +- .../reference}/operators/index.mdx | 40 +- .../beta-and-experimental-features.mdx | 184 + .../reference}/settings/formats.mdx | 102 +- core/reference/settings/index.mdx | 32 + .../settings/merge-tree-settings.mdx | 66 +- .../_server_settings_outside_source.mdx | 142 +- .../_snippets/_system-log-parameters.mdx | 10 +- .../settings/server-settings/settings.mdx | 258 +- .../reference}/settings/session-settings.mdx | 526 +- .../statements/alter/apply-deleted-mask.mdx | 22 + .../statements/alter/apply-patches.mdx | 12 +- .../reference}/statements/alter/column.mdx | 30 +- .../reference}/statements/alter/comment.mdx | 6 +- .../statements/alter/constraint.mdx | 2 +- .../statements/alter/database-comment.mdx | 6 +- .../reference}/statements/alter/delete.mdx | 12 +- .../reference}/statements/alter/index.mdx | 50 +- .../statements/alter/masking-policy.mdx | 0 .../statements/alter/named-collection.mdx | 0 .../reference}/statements/alter/order-by.mdx | 4 +- .../reference}/statements/alter/partition.mdx | 24 +- .../statements/alter/projection.mdx | 22 +- .../reference}/statements/alter/quota.mdx | 6 +- .../reference}/statements/alter/role.mdx | 0 .../statements/alter/row-policy.mdx | 0 .../reference}/statements/alter/sample-by.mdx | 6 +- .../reference}/statements/alter/setting.mdx | 4 +- .../statements/alter/settings-profile.mdx | 0 .../statements/alter/skipping-index.mdx | 8 +- .../statements/alter/statistics.mdx | 4 +- .../reference}/statements/alter/ttl.mdx | 8 +- .../reference}/statements/alter/update.mdx | 14 +- .../reference}/statements/alter/user.mdx | 4 +- .../reference}/statements/alter/view.mdx | 6 +- .../reference}/statements/attach.mdx | 4 +- .../reference}/statements/check-grant.mdx | 2 +- .../reference}/statements/check-table.mdx | 10 +- .../reference}/statements/create/database.mdx | 4 +- .../statements/create/dictionary.mdx | 22 +- .../create/dictionary/attributes.mdx | 10 +- .../statements/create/dictionary/embedded.mdx | 0 .../create/dictionary/layouts/cache.mdx | 6 +- .../create/dictionary/layouts/direct.mdx | 6 +- .../create/dictionary/layouts/flat.mdx | 2 +- .../dictionary/layouts/hashed-array.mdx | 4 +- .../create/dictionary/layouts/hashed.mdx | 8 +- .../dictionary/layouts/hierarchical.mdx | 4 +- .../create/dictionary/layouts/ip-trie.mdx | 0 .../create/dictionary/layouts/overview.mdx | 157 + .../create/dictionary/layouts/polygon.mdx | 4 +- .../dictionary/layouts/range-hashed.mdx | 4 +- .../create/dictionary/layouts/regexp-tree.mdx | 10 +- .../create/dictionary/layouts/ssd-cache.mdx | 4 +- .../statements/create/dictionary/lifetime.mdx | 6 +- .../create/dictionary/sources/cassandra.mdx | 0 .../create/dictionary/sources/clickhouse.mdx | 4 +- .../dictionary/sources/executable-file.mdx | 6 +- .../dictionary/sources/executable-pool.mdx | 6 +- .../create/dictionary/sources/http.mdx | 6 +- .../create/dictionary/sources/local-file.mdx | 6 +- .../create/dictionary/sources/mongodb.mdx | 2 +- .../create/dictionary/sources/mysql.mdx | 2 +- .../create/dictionary/sources/null.mdx | 0 .../create/dictionary/sources/odbc.mdx | 2 +- .../create/dictionary/sources/overview.mdx | 32 +- .../create/dictionary/sources/postgresql.mdx | 2 +- .../create/dictionary/sources/redis.mdx | 0 .../dictionary/sources/yamlregexptree.mdx | 10 +- .../create/dictionary/sources/ytsaurus.mdx | 2 +- .../reference}/statements/create/function.mdx | 4 +- core/reference/statements/create/index.mdx | 9 + .../statements/create/masking-policy.mdx | 0 .../statements/create/named-collection.mdx | 6 +- .../reference}/statements/create/quota.mdx | 10 +- .../reference}/statements/create/role.mdx | 10 +- .../statements/create/row-policy.mdx | 4 +- .../statements/create/settings-profile.mdx | 4 +- .../reference}/statements/create/table.mdx | 36 +- .../reference}/statements/create/user.mdx | 10 +- .../reference}/statements/create/view.mdx | 38 +- .../reference}/statements/delete.mdx | 14 +- .../reference}/statements/describe-table.mdx | 18 +- .../reference}/statements/detach.mdx | 8 +- .../reference}/statements/distributed-ddl.mdx | 0 .../reference}/statements/drop.mdx | 4 +- .../reference}/statements/exchange.mdx | 6 +- .../reference}/statements/execute_as.mdx | 4 +- .../reference}/statements/exists.mdx | 0 .../reference}/statements/explain.mdx | 8 +- .../reference}/statements/grant.mdx | 44 +- .../reference}/statements/in.mdx | 18 +- core/reference/statements/index.mdx | 9 + .../reference}/statements/insert-into.mdx | 42 +- .../reference}/statements/kill.mdx | 4 +- .../reference}/statements/move.mdx | 0 .../reference}/statements/optimize.mdx | 22 +- .../reference}/statements/parallel_with.mdx | 4 +- .../reference}/statements/rename.mdx | 4 +- .../reference}/statements/revoke.mdx | 2 +- .../reference}/statements/select/all.mdx | 0 .../statements/select/apply_modifier.mdx | 0 .../statements/select/array-join.mdx | 14 +- .../reference}/statements/select/distinct.mdx | 6 +- .../reference}/statements/select/except.mdx | 4 +- .../statements/select/except_modifier.mdx | 0 .../reference}/statements/select/format.mdx | 4 +- .../reference}/statements/select/from.mdx | 16 +- .../reference}/statements/select/group-by.mdx | 30 +- .../reference}/statements/select/having.mdx | 2 +- .../reference}/statements/select/index.mdx | 54 +- .../statements/select/intersect.mdx | 4 +- .../statements/select/into-outfile.mdx | 6 +- .../reference}/statements/select/join.mdx | 44 +- .../reference}/statements/select/limit-by.mdx | 10 +- .../reference}/statements/select/limit.mdx | 10 +- .../reference}/statements/select/offset.mdx | 6 +- .../reference}/statements/select/order-by.mdx | 38 +- .../reference}/statements/select/prewhere.mdx | 8 +- .../reference}/statements/select/qualify.mdx | 2 +- .../statements/select/replace_modifier.mdx | 2 +- .../reference}/statements/select/sample.mdx | 8 +- .../reference}/statements/select/union.mdx | 8 +- .../reference}/statements/select/where.mdx | 30 +- .../reference}/statements/select/with.mdx | 8 +- .../reference}/statements/set-role.mdx | 0 .../reference}/statements/set.mdx | 8 +- .../reference}/statements/show.mdx | 80 +- .../reference}/statements/system.mdx | 58 +- .../reference}/statements/truncate.mdx | 14 +- .../reference}/statements/undrop.mdx | 2 +- .../reference}/statements/update.mdx | 26 +- .../reference}/statements/use.mdx | 0 .../reference}/statements/watch.mdx | 0 {reference => core/reference}/syntax.mdx | 38 +- .../aggregate_function_combinators.mdx | 4 +- .../aggregated_zookeeper_log.mdx | 28 +- .../system-tables/asynchronous_insert_log.mdx | 74 + .../system-tables/asynchronous_inserts.mdx | 53 + .../system-tables/asynchronous_loader.mdx | 44 +- .../system-tables/asynchronous_metric_log.mdx | 16 +- .../system-tables/asynchronous_metrics.mdx | 14 +- .../system-tables/azure_queue_log.mdx | 34 + .../azure_queue_metadata_cache.mdx | 24 + .../system-tables/azure_queue_settings.mdx | 26 + .../background_schedule_pool.mdx | 57 + .../background_schedule_pool_log.mdx | 63 + .../reference}/system-tables/backup_log.mdx | 40 +- core/reference/system-tables/backups.mdx | 33 + .../system-tables/blob_storage_log.mdx | 69 + .../system-tables/build_options.mdx | 4 +- core/reference/system-tables/certificates.mdx | 27 + core/reference/system-tables/clusters.mdx | 93 + .../reference}/system-tables/codecs.mdx | 16 +- .../reference}/system-tables/collations.mdx | 4 +- core/reference/system-tables/columns.mdx | 99 + .../reference}/system-tables/completions.mdx | 6 +- .../reference}/system-tables/contributors.mdx | 2 +- core/reference/system-tables/crash_log.mdx | 67 + .../system-tables/current_roles.mdx | 6 +- .../reference}/system-tables/dashboards.mdx | 8 +- .../system-tables/data_skipping_indices.mdx | 22 +- .../system-tables/data_type_families.mdx | 10 +- .../system-tables/database_engines.mdx | 2 +- .../system-tables/database_replicas.mdx | 49 + .../reference}/system-tables/databases.mdx | 16 +- .../system-tables/dead_letter_queue.mdx | 44 +- .../system-tables/delta_metadata_log.mdx | 16 +- .../system-tables/detached_parts.mdx | 35 + .../system-tables/detached_tables.mdx | 10 +- core/reference/system-tables/dictionaries.mdx | 107 + .../system-tables/dimensional_metrics.mdx | 16 +- core/reference/system-tables/disks.mdx | 50 + .../system-tables/distributed_ddl_queue.mdx | 32 +- .../system-tables/distribution_queue.mdx | 51 + .../reference}/system-tables/dns_cache.mdx | 16 +- .../system-tables/dropped_tables.mdx | 14 +- .../system-tables/dropped_tables_parts.mdx | 104 + .../system-tables/enabled_roles.mdx | 8 +- core/reference/system-tables/error_log.mdx | 60 + .../reference}/system-tables/errors.mdx | 20 +- .../reference}/system-tables/events.mdx | 14 +- .../reference}/system-tables/fail_points.mdx | 6 +- .../system-tables/filesystem_cache.mdx | 33 + .../system-tables/filesystem_cache_log.mdx | 32 + .../filesystem_cache_settings.mdx | 49 + .../filesystem_read_prefetches_log.mdx | 33 + core/reference/system-tables/formats.mdx | 29 + core/reference/system-tables/functions.mdx | 50 + .../reference}/system-tables/grants.mdx | 18 +- .../system-tables/graphite_retentions.mdx | 27 + .../system-tables/histogram_metric_log.mdx | 46 + .../system-tables/histogram_metrics.mdx | 8 +- .../system-tables/iceberg_history.mdx | 22 + .../system-tables/iceberg_metadata_log.mdx | 30 +- core/reference/system-tables/index.mdx | 180 + .../system-tables/information_schema.mdx | 364 + .../system-tables/instrumentation.mdx | 20 +- .../system-tables/jemalloc_bins.mdx | 16 +- .../system-tables/jemalloc_profile_text.mdx | 2 +- .../system-tables/jemalloc_stats.mdx | 2 +- .../system-tables/kafka_consumers.mdx | 74 + .../reference}/system-tables/keywords.mdx | 2 +- .../reference}/system-tables/licenses.mdx | 8 +- .../reference}/system-tables/macros.mdx | 4 +- .../system-tables/masking_policies.mdx | 32 + .../system-tables/merge_tree_settings.mdx | 24 +- core/reference/system-tables/merges.mdx | 45 + core/reference/system-tables/metric_log.mdx | 1814 +++++ .../reference}/system-tables/metrics.mdx | 6 +- .../reference}/system-tables/models.mdx | 8 +- core/reference/system-tables/moves.mdx | 43 + core/reference/system-tables/mutations.mdx | 87 + .../system-tables/named_collections.mdx | 8 +- .../reference}/system-tables/numbers.mdx | 0 .../reference}/system-tables/numbers_mt.mdx | 2 +- .../reference}/system-tables/one.mdx | 0 .../system-tables/opentelemetry_span_log.mdx | 62 + .../reference}/system-tables/overview.mdx | 14 +- core/reference/system-tables/part_log.mdx | 105 + .../part_moves_between_shards.mdx | 30 + core/reference/system-tables/parts.mdx | 154 + .../reference/system-tables/parts_columns.mdx | 127 + .../predicate_statistics_log.mdx | 90 + .../reference}/system-tables/primes.mdx | 2 +- .../reference}/system-tables/privileges.mdx | 8 +- core/reference/system-tables/processes.mdx | 107 + .../system-tables/processors_profile_log.mdx | 95 + .../system-tables/projection_parts.mdx | 76 + .../projection_parts_columns.mdx | 64 + .../reference}/system-tables/projections.mdx | 14 +- core/reference/system-tables/query_cache.mdx | 51 + .../system-tables/query_condition_cache.mdx | 8 +- core/reference/system-tables/query_log.mdx | 237 + .../system-tables/query_metric_log.mdx | 1316 ++++ .../system-tables/query_thread_log.mdx | 144 + .../system-tables/query_views_log.mdx | 95 + core/reference/system-tables/quota_limits.mdx | 32 + core/reference/system-tables/quota_usage.mdx | 54 + core/reference/system-tables/quotas.mdx | 28 + core/reference/system-tables/quotas_usage.mdx | 54 + .../system-tables/remote_data_paths.mdx | 22 +- core/reference/system-tables/replicas.mdx | 105 + .../system-tables/replicated_fetches.mdx | 68 + .../replicated_merge_tree_settings.mdx | 24 +- .../system-tables/replication_queue.mdx | 73 + core/reference/system-tables/resources.mdx | 46 + .../reference}/system-tables/rocksdb.mdx | 8 +- core/reference/system-tables/role_grants.mdx | 22 + core/reference/system-tables/roles.mdx | 23 + core/reference/system-tables/row_policies.mdx | 32 + .../system-tables/s3_queue_settings.mdx | 25 + core/reference/system-tables/s3queue_log.mdx | 34 + .../system-tables/s3queue_metadata_cache.mdx | 24 + core/reference/system-tables/scheduler.mdx | 89 + .../system-tables/schema_inference_cache.mdx | 18 +- .../system-tables/server_settings.mdx | 24 +- core/reference/system-tables/session_log.mdx | 76 + .../reference}/system-tables/settings.mdx | 42 +- .../system-tables/settings_changes.mdx | 10 +- .../settings_profile_elements.mdx | 31 + .../system-tables/settings_profiles.mdx | 27 + .../reference}/system-tables/stack_trace.mdx | 20 +- .../system-tables/storage_policies.mdx | 24 +- .../reference}/system-tables/symbols.mdx | 6 +- .../system-tables/system_warnings.mdx | 22 +- .../system-tables/table_engines.mdx | 24 +- .../system-tables/table_functions.mdx | 6 +- core/reference/system-tables/tables.mdx | 131 + core/reference/system-tables/text_log.mdx | 80 + .../reference}/system-tables/time_zones.mdx | 2 +- .../reference}/system-tables/tokenizers.mdx | 4 +- .../reference}/system-tables/trace_log.mdx | 62 +- core/reference/system-tables/transactions.mdx | 21 + .../system-tables/transactions_info_log.mdx | 31 + .../reference}/system-tables/unicode.mdx | 6 +- .../system-tables/user_defined_functions.mdx | 80 + .../system-tables/user_directories.mdx | 8 +- .../system-tables/user_processes.mdx | 8 +- core/reference/system-tables/users.mdx | 37 + .../system-tables/view_refreshes.mdx | 54 + .../reference}/system-tables/warnings.mdx | 4 +- .../reference}/system-tables/workloads.mdx | 8 +- .../reference}/system-tables/zeros.mdx | 2 +- .../reference}/system-tables/zeros_mt.mdx | 2 +- .../reference}/system-tables/zookeeper.mdx | 0 .../system-tables/zookeeper_connection.mdx | 28 +- .../zookeeper_connection_log.mdx | 28 +- .../system-tables/zookeeper_info.mdx | 58 + .../reference/system-tables/zookeeper_log.mdx | 130 + .../system-tables/zookeeper_watches.mdx | 18 +- customize-layout.js | 89 - docs.json | 6082 +---------------- .../_prerequisites/cloud_prerequisite.mdx | 3 - get-started/sample-datasets/index.mdx | 58 - .../setup/migration-guides/bigquery/index.mdx | 15 - .../setup/migration-guides/overview.mdx | 31 - .../setup/migration-guides/postgres/index.mdx | 16 - get-started/setup/overview.mdx | 22 - get-started/setup/self-managed/install.mdx | 45 - .../setup/self-managed/quick-install.mdx | 83 - guides/ai-ml/MCP/ai-agent-libraries/index.mdx | 28 - guides/ai-ml/index.mdx | 19 - guides/cloud-oss/data-modelling/index.mdx | 18 - .../maxSimpleState.mdx | 24 - guides/cloud/index.mdx | 24 - guides/data-modelling/deleting-data/index.mdx | 18 - guides/data-warehousing/index.mdx | 62 - guides/data-warehousing/reference/index.mdx | 18 - guides/data-warehousing/support-matrix.mdx | 175 - guides/observability/build-your-own/index.mdx | 18 - guides/performance-and-monitoring/index.mdx | 16 - guides/security/index.mdx | 12 - i18n/ja/index.mdx | 46 +- i18n/ko/index.mdx | 46 +- i18n/ru/index.mdx | 46 +- i18n/zh/index.mdx | 46 +- index.mdx | 69 +- .../clickpipes/bigquery/get-started.mdx | 2 +- integrations/clickpipes/home.mdx | 20 +- .../clickpipes/kafka/best-practices.mdx | 2 +- integrations/clickpipes/kafka/reference.mdx | 10 +- integrations/clickpipes/kinesis/overview.mdx | 6 +- integrations/clickpipes/mongodb/datatypes.mdx | 2 +- integrations/clickpipes/mongodb/faq.mdx | 2 +- integrations/clickpipes/mongodb/index.mdx | 2 +- .../clickpipes/mongodb/quickstart.mdx | 12 +- integrations/clickpipes/navigation.json | 187 + .../object-storage/amazon-s3/overview.mdx | 22 +- .../azure-blob-storage/overview.mdx | 22 +- .../google-cloud-storage/overview.mdx | 22 +- .../postgres/connecting-to-postgresql.mdx | 6 +- .../clickpipes/postgres/deduplication.mdx | 14 +- integrations/clickpipes/postgres/faq.mdx | 4 +- integrations/clickpipes/postgres/index.mdx | 2 +- .../clickpipes/postgres/inserting-data.mdx | 4 +- .../clickpipes/postgres/maintenance.mdx | 18 - .../clickpipes/postgres/ordering-keys.mdx | 4 +- .../AWS/integrating-s3-with-clickhouse.mdx | 42 +- .../data-ingestion/AWS/performance.mdx | 34 +- .../templates/bigquery-to-clickhouse.mdx | 14 +- .../connectors/data-ingestion/GCP/index.mdx | 614 -- .../data-ingestion/apache-flink.mdx | 16 +- .../azure/azure-data-factory/overview.mdx | 4 +- .../using-azureblobstorage.mdx | 14 +- .../using-http-interface.mdx | 16 +- .../data-formats/json/intro.mdx | 29 - .../etl-tools/airbyte-and-clickhouse.mdx | 4 +- .../data-ingestion/etl-tools/apache-beam.mdx | 2 +- .../etl-tools/apify-and-clickhouse.mdx | 6 +- .../dbt/features-and-configurations.mdx | 8 +- .../data-ingestion/etl-tools/dbt/guides.mdx | 6 +- .../data-ingestion/etl-tools/dbt/index.mdx | 18 +- .../dbt/materialization-materialized-view.mdx | 4 +- .../etl-tools/dbt/materializations.mdx | 30 +- .../etl-tools/dlt-and-clickhouse.mdx | 2 +- .../etl-tools/fivetran/reference.mdx | 38 +- .../etl-tools/fivetran/troubleshooting.mdx | 12 +- .../etl-tools/vector-to-clickhouse.mdx | 10 +- .../data-ingestion/insert-local-files.mdx | 6 +- .../data-ingestion/jdbc-with-clickhouse.mdx | 14 +- .../kafka/confluent/kafka-connect-http.mdx | 6 +- .../connectors/data-ingestion/kafka/index.mdx | 2 +- .../kafka/kafka-clickhouse-connect-sink.mdx | 10 +- .../kafka/kafka-connect-jdbc.mdx | 2 +- .../kafka-table-engine-named-collections.mdx | 4 +- .../kafka/kafka-table-engine.mdx | 24 +- .../data-ingestion/kafka/kafka-vector.mdx | 2 +- .../connectors/data-ingestion/mysql.mdx | 156 - .../postgresql/connecting-to-postgresql.mdx | 345 - .../postgresql/inserting-data.mdx | 16 - .../redshift/_snippets/_migration_guide.mdx | 2 +- .../native-clients-interfaces-index.mdx | 18 - .../drivers-and-interfaces/tcp.mdx | 9 - .../data-integrations/sql-clients/jupysql.mdx | 2 +- .../sql-clients/sql-console.mdx | 372 - .../connectors/data-sources/cassandra.mdx | 2 +- integrations/connectors/data-sources/gcs.mdx | 8 +- .../connectors/data-sources/index.mdx | 20 +- .../connectors/data-sources/mysql.mdx | 4 +- .../connectors/data-sources/postgres.mdx | 2 +- .../chartbrew-and-clickhouse.mdx | 2 +- .../community-integrations/deepnote.mdx | 2 +- .../explo-and-clickhouse.mdx | 2 +- .../mitzu-and-clickhouse.mdx | 2 +- .../data-visualization/grafana/config.mdx | 2 +- .../data-visualization/grafana/index.mdx | 4 +- .../grafana/query-builder.mdx | 40 +- .../metabase-and-clickhouse.mdx | 2 +- .../powerbi-and-clickhouse.mdx | 2 +- .../quicksight-and-clickhouse.mdx | 4 +- .../splunk-and-clickhouse.mdx | 2 +- .../superset-and-clickhouse.mdx | 2 +- .../tableau/tableau-analysis-tips.mdx | 46 +- .../tableau/tableau-connection-tips.mdx | 2 +- integrations/connectors/navigation.json | 242 + .../tools/pg_clickhouse/reference.mdx | 292 +- .../tools/pg_clickhouse/tutorial.mdx | 8 +- .../tools/third-party-libraries.mdx | 4 +- .../language-clients/csharp/overview.mdx | 12 +- .../language-clients/go/clickhouse-api.mdx | 14 +- .../language-clients/go/data-types.mdx | 8 +- .../language-clients/go/database-sql-api.mdx | 6 +- integrations/language-clients/go/index.mdx | 2 +- integrations/language-clients/java/client.mdx | 184 +- .../language-clients/java/client/v7.mdx | 508 -- .../language-clients/java/client/v8.mdx | 662 -- .../language-clients/java/date-time-guide.mdx | 4 +- integrations/language-clients/java/index.mdx | 2 +- integrations/language-clients/java/jdbc.mdx | 10 +- .../language-clients/java/jdbc/v7.mdx | 389 -- .../language-clients/java/jdbc/v8.mdx | 227 - integrations/language-clients/js.mdx | 28 +- integrations/language-clients/navigation.json | 83 + .../python/advanced-querying.mdx | 8 +- .../python/advanced-usage.mdx | 6 +- .../language-clients/python/driver-api.mdx | 6 +- integrations/language-clients/rust.mdx | 10 +- products/README.md | 32 + products/agentic-data-stack/navigation.json | 12 + products/bring-your-own-cloud/navigation.json | 58 + .../onboarding/azure-private-preview.mdx | 2 +- .../reference/aws-service-limits.mdx | 2 +- .../reference/billable-aws-services.mdx | 2 +- .../reference/cost-model-aws.mdx | 2 +- products/chdb/getting-started.mdx | 4 +- products/chdb/guides/clickhouse-local.mdx | 4 +- products/chdb/guides/querying-parquet.mdx | 4 +- products/chdb/guides/querying-s3-bucket.mdx | 8 +- products/chdb/index.mdx | 2 +- products/chdb/navigation.json | 85 + products/chdb/reference/data-formats.mdx | 2 +- products/chdb/reference/sql-reference.mdx | 18 +- .../management/howto-guides.mdx | 4 +- .../management/operational-guide.mdx | 4 +- products/clickhouse-private/navigation.json | 31 + .../api-reference}/hyperdx-openapi.json | 0 .../deployment/_snippets/_json_support.mdx | 2 +- .../deployment/hyperdx-clickhouse-cloud.mdx | 354 - products/clickstack/deployment/index.mdx | 20 - products/clickstack/deployment/managed.mdx | 12 +- .../features/dashboards/overview.mdx | 4 +- .../dashboards/sql-visualizations.mdx | 2 +- .../clickstack/getting-started/managed.mdx | 2 +- products/clickstack/home.mdx | 32 - products/clickstack/index.mdx | 2 +- .../clickstack/ingesting-data/collector.mdx | 12 +- .../clickstack/ingesting-data/kubernetes.mdx | 305 - .../ingesting-data/schema/map-vs-json.mdx | 8 +- products/clickstack/ingesting-data/vector.mdx | 16 +- .../integration-examples/cloudflare.mdx | 2 +- products/clickstack/managing/admin.mdx | 2 +- products/clickstack/{ => managing}/config.mdx | 8 +- .../managing/materialized-views.mdx | 34 +- .../{managing.mdx => managing/overview.mdx} | 2 +- .../managing/performance-tuning.mdx | 56 +- products/clickstack/managing/production.mdx | 22 +- products/clickstack/{ => managing}/ttl.mdx | 8 +- .../clickstack/migration/elastic/concepts.mdx | 46 +- .../migration/elastic/migrating-data.mdx | 30 +- .../clickstack/migration/elastic/search.mdx | 12 +- .../clickstack/migration/elastic/types.mdx | 78 +- products/clickstack/navigation.json | 227 + .../clickstack/styles/clickstack-homepage.css | 485 -- products/clickstack/text-to-chart.mdx | 2 +- products/cloud/.DS_Store | Bin 6148 -> 6148 bytes .../cloud/api-reference}/cloud-openapi.json | 0 products/cloud/cloud/auto-scaling.mdx | 3 - products/cloud/cloud/backups.mdx | 3 - products/cloud/cloud/create-service.mdx | 3 - products/cloud/cloud/security.mdx | 3 - products/cloud/concepts-overview.mdx | 70 - products/cloud/concepts.mdx | 17 - .../features/admin-features/upgrades.mdx | 2 +- .../aichat/customizing-semantic-layer.mdx | 0 .../features}/ai-ml/aichat/using-ai-chat.mdx | 0 products/cloud/features/ai-ml/ask-ai.mdx | 2 +- .../cloud/features/ai-ml}/mcp/remote-mcp.mdx | 2 +- products/cloud/features/ai-ml/remote-mcp.mdx | 6 +- .../cloud/features/autoscaling/idling.mdx | 2 +- products/cloud/features/cli.mdx | 2 +- products/cloud/features/data-catalogs.mdx | 16 +- .../infrastructure/deployment-options.mdx | 2 +- .../infrastructure/parallel-replicas.mdx | 12 +- .../features/infrastructure/warehouses.mdx | 4 +- .../monitoring/advanced-dashboard.mdx | 4 +- .../features/monitoring/notifications.mdx | 2 +- .../features/monitoring/system-tables.mdx | 6 +- .../sql-console-features/dashboards.mdx | 6 +- .../user-defined-functions.mdx | 6 +- .../getting-started/cloud-get-started.mdx | 4 +- .../cloud/getting-started/resource-tour.mdx | 2 +- .../backup-restore-using-commands.mdx | 2 +- .../export-backups-to-own-cloud-account.mdx | 4 +- .../backups/review-and-restore-backups.mdx | 2 +- .../guides/best-practices/multitenancy.mdx | 8 +- products/cloud/guides/cloud-compatibility.mdx | 6 +- products/cloud/guides/data-sources/index.mdx | 2 +- .../guides/data-sources/secure-azure.mdx | 4 +- products/cloud/guides/index.mdx | 10 +- .../deployment-options/byoc/architecture.mdx | 117 - .../deployment-options/byoc/faq/aws.mdx | 51 - .../byoc/observability/aws.mdx | 199 - .../byoc/onboarding/aws.mdx | 244 - .../deployment-options/byoc/overview.mdx | 4 +- .../migration/oss-to-cloud-backup-restore.mdx | 8 +- .../guides/migration/upload-a-csv-file.mdx | 2 +- .../cloud/guides/production-readiness.mdx | 4 +- .../audit-logging/byoc-security-playbook.mdx | 2 +- .../audit-logging/database-audit-log.mdx | 16 +- .../common-access-management-queries.mdx | 2 +- .../manage-database-service-accounts.mdx | 2 +- .../manage-database-users.mdx | 6 +- products/cloud/guides/security/cmek.mdx | 2 +- .../private-networking/aws-privatelink.mdx | 2 +- .../gcp-private-service-connect.mdx | 2 +- .../cloud/guides/security/data-masking.mdx | 22 +- .../guides/sql-console/query-endpoints.mdx | 6 +- products/cloud/home.mdx | 57 - products/cloud/navigation.json | 327 + .../reference/billing/billing-overview.mdx | 6 +- products/cloud/reference/settings.mdx | 6 +- .../guides/configuration.mdx | 6 +- .../guides/introduction.mdx | 4 +- .../clickhouse-integration.mdx | 2 +- products/managed-postgres/navigation.json | 66 + reference/datalakes.mdx | 42 - reference/engines/database-engines/index.mdx | 34 - reference/engines/table-engines/index.mdx | 112 - .../table-engines/integrations/index.mdx | 47 - .../table-engines/mergetree-family/index.mdx | 41 - .../engines/table-engines/special/index.mdx | 44 - .../Avro/_snippets/data-types-matching.mdx | 39 - reference/formats/CSV/CSV.mdx | 71 - reference/formats/JSON/format-settings.mdx | 37 - reference/formats/MsgPack.mdx | 60 - .../common-pretty-format-settings.mdx | 14 - .../common-row-binary-format-settings.mdx | 11 - reference/formats/index.mdx | 163 - .../aggregate-functions/reference/index.mdx | 166 - .../aggregate-functions/reference/median.mdx | 45 - reference/functions/index.mdx | 14 - .../functions/regular-functions/geo/index.mdx | 9 - .../regular-functions-index.mdx | 52 - reference/functions/table-functions/index.mdx | 149 - reference/home.mdx | 24 - reference/index.mdx | 11 - .../beta-and-experimental-features.mdx | 184 - reference/settings/index.mdx | 32 - .../statements/alter/apply-deleted-mask.mdx | 22 - .../create/dictionary/layouts/overview.mdx | 157 - reference/statements/create/index.mdx | 9 - reference/statements/index.mdx | 9 - .../system-tables/asynchronous_insert_log.mdx | 74 - .../system-tables/asynchronous_inserts.mdx | 53 - reference/system-tables/azure_queue_log.mdx | 34 - .../azure_queue_metadata_cache.mdx | 24 - .../system-tables/azure_queue_settings.mdx | 26 - .../background_schedule_pool.mdx | 57 - .../background_schedule_pool_log.mdx | 63 - reference/system-tables/backups.mdx | 33 - reference/system-tables/blob_storage_log.mdx | 69 - reference/system-tables/certificates.mdx | 27 - reference/system-tables/clusters.mdx | 93 - reference/system-tables/columns.mdx | 99 - reference/system-tables/crash_log.mdx | 67 - reference/system-tables/database_replicas.mdx | 49 - reference/system-tables/detached_parts.mdx | 35 - reference/system-tables/dictionaries.mdx | 107 - reference/system-tables/disks.mdx | 50 - .../system-tables/distribution_queue.mdx | 51 - .../system-tables/dropped_tables_parts.mdx | 104 - reference/system-tables/error_log.mdx | 60 - reference/system-tables/filesystem_cache.mdx | 33 - .../system-tables/filesystem_cache_log.mdx | 32 - .../filesystem_cache_settings.mdx | 49 - .../filesystem_read_prefetches_log.mdx | 33 - reference/system-tables/formats.mdx | 29 - reference/system-tables/functions.mdx | 50 - .../system-tables/graphite_retentions.mdx | 27 - .../system-tables/histogram_metric_log.mdx | 46 - reference/system-tables/iceberg_history.mdx | 22 - reference/system-tables/index.mdx | 180 - .../system-tables/information_schema.mdx | 364 - reference/system-tables/kafka_consumers.mdx | 74 - reference/system-tables/masking_policies.mdx | 32 - reference/system-tables/merges.mdx | 45 - reference/system-tables/metric_log.mdx | 1814 ----- reference/system-tables/moves.mdx | 43 - reference/system-tables/mutations.mdx | 87 - .../system-tables/opentelemetry_span_log.mdx | 62 - reference/system-tables/part_log.mdx | 105 - .../part_moves_between_shards.mdx | 30 - reference/system-tables/parts.mdx | 154 - reference/system-tables/parts_columns.mdx | 127 - .../predicate_statistics_log.mdx | 90 - reference/system-tables/processes.mdx | 107 - .../system-tables/processors_profile_log.mdx | 95 - reference/system-tables/projection_parts.mdx | 76 - .../projection_parts_columns.mdx | 64 - reference/system-tables/query_cache.mdx | 51 - reference/system-tables/query_log.mdx | 237 - reference/system-tables/query_metric_log.mdx | 1316 ---- reference/system-tables/query_thread_log.mdx | 144 - reference/system-tables/query_views_log.mdx | 95 - reference/system-tables/quota_limits.mdx | 32 - reference/system-tables/quota_usage.mdx | 54 - reference/system-tables/quotas.mdx | 28 - reference/system-tables/quotas_usage.mdx | 54 - reference/system-tables/replicas.mdx | 105 - .../system-tables/replicated_fetches.mdx | 68 - reference/system-tables/replication_queue.mdx | 73 - reference/system-tables/resources.mdx | 46 - reference/system-tables/role_grants.mdx | 22 - reference/system-tables/roles.mdx | 23 - reference/system-tables/row_policies.mdx | 32 - reference/system-tables/s3_queue_settings.mdx | 25 - reference/system-tables/s3queue_log.mdx | 34 - .../system-tables/s3queue_metadata_cache.mdx | 24 - reference/system-tables/scheduler.mdx | 89 - reference/system-tables/session_log.mdx | 76 - .../settings_profile_elements.mdx | 31 - reference/system-tables/settings_profiles.mdx | 27 - reference/system-tables/tables.mdx | 131 - reference/system-tables/text_log.mdx | 80 - reference/system-tables/transactions.mdx | 21 - .../system-tables/transactions_info_log.mdx | 31 - .../system-tables/user_defined_functions.mdx | 80 - reference/system-tables/users.mdx | 37 - reference/system-tables/view_refreshes.mdx | 54 - reference/system-tables/zookeeper_info.mdx | 58 - reference/system-tables/zookeeper_log.mdx | 130 - resources/about/index.mdx | 2 +- resources/about/navigation.json | 16 + .../changelogs/{cloud.mdx => cloud/2026.mdx} | 6 +- resources/changelogs/cloud/archive/2022.mdx | 2 +- resources/changelogs/cloud/archive/2023.mdx | 10 +- resources/changelogs/cloud/archive/2024.mdx | 10 +- resources/changelogs/cloud/changelog.mdx | 22 +- .../changelogs/cloud/release-notes/24_02.mdx | 2 +- .../changelogs/cloud/release-notes/24_12.mdx | 2 +- .../changelogs/cloud/release-notes/25_08.mdx | 74 +- resources/changelogs/navigation.json | 59 + resources/changelogs/oss/2017.mdx | 2 +- resources/changelogs/oss/2021.mdx | 2 +- resources/changelogs/oss/2023.mdx | 4 +- resources/changelogs/oss/2024.mdx | 2 +- resources/changelogs/oss/2025.mdx | 6 +- resources/changelogs/oss/2026.mdx | 4 +- resources/contribute/index.mdx | 38 - .../contribute/native-protocol/columns.mdx | 46 - .../build}/build-cross-arm.mdx | 0 .../build}/build-cross-loongarch.mdx | 0 .../build}/build-cross-osx.mdx | 4 +- .../build}/build-cross-riscv.mdx | 0 .../build}/build-cross-s390x.mdx | 2 +- .../build}/build-e2k.mdx | 0 .../build}/build-osx.mdx | 4 +- .../build}/build.mdx | 4 +- .../contribute/backports.mdx | 0 .../building-and-benchmarking-deflate-qpl.mdx | 10 +- .../contribute/continuous-integration.mdx | 14 +- .../contribute/contrib.mdx | 0 .../contribute/integrating-rust-libraries.mdx | 0 .../profile-guided-optimization.mdx | 0 .../contribute/style.mdx | 2 +- .../contribute/tests.mdx | 4 +- .../images/concurrency.png | Bin .../images/find-build-artifact.png | Bin resources/develop-contribute/index.mdx | 38 + .../introduction}/architecture.mdx | 2 +- .../introduction}/developer-instruction.mdx | 8 +- .../native-protocol/basics.mdx | 0 .../native-protocol/client.mdx | 2 +- .../native-protocol/columns.mdx | 46 + .../native-protocol/hash.mdx | 0 .../native-protocol/server.mdx | 6 +- resources/develop-contribute/navigation.json | 56 + .../roadmap.mdx | 0 .../custom-dns-alias-for-instance.mdx | 2 +- .../execute-system-queries-in-cloud.mdx | 6 +- .../ingest-failures-23-9-release.mdx | 4 +- .../multi-region-replication.mdx | 2 +- .../about-quotas-and-query-complexity.mdx | 2 +- .../alter-user-settings-exception.mdx | 6 +- .../cannot-append-data-to-parquet-format.mdx | 2 +- .../data-import-export/file-export.mdx | 8 +- ...ng-and-working-with-json-array-objects.mdx | 2 +- ...ting-geojason-with-nested-object-array.mdx | 6 +- .../json-extract-example.mdx | 2 +- .../data-import-export/json-import.mdx | 8 +- .../kafka-clickhouse-json.mdx | 4 +- .../mysql-to-parquet-csv-json.mdx | 4 +- .../parquet-to-csv-json.mdx | 6 +- .../postgresql-to-parquet-csv-json.mdx | 6 +- ...ate-ratio-of-zero-sparse-serialization.mdx | 4 +- .../data-management/read-consistency.mdx | 4 +- .../data-management/when-is-ttl-applied.mdx | 4 +- .../general-faqs/columnar-database.mdx | 2 +- .../general-faqs/distributed-join.mdx | 2 +- .../knowledge-base/general-faqs/faq-index.mdx | 2 +- .../knowledge-base/general-faqs/index.mdx | 6 +- .../knowledge-base/general-faqs/key-value.mdx | 4 +- .../knowledge-base/general-faqs/olap.mdx | 2 +- .../general-faqs/operations-index.mdx | 8 +- .../general-faqs/separate-storage.mdx | 2 +- .../general-faqs/time-series.mdx | 8 +- .../use-clickhouse-for-log-analytics.mdx | 2 +- .../general-faqs/vector-search.mdx | 2 +- ...mmend-clickhouse-keeper-over-zookeeper.mdx | 2 +- ...set-up-ch-on-docker-odbc-connect-mssql.mdx | 2 +- .../knowledge-base/integrations/index.mdx | 4 +- ...rialized-views-inserted-asynchronously.mdx | 2 +- .../check-query-cache-in-use.mdx | 4 +- .../profiling-clickhouse-with-llvm-xray.mdx | 14 +- .../monitoring-debugging/send-logs-level.mdx | 2 +- .../view-number-of-active-mutations.mdx | 2 +- .../which-processes-are-currently-running.mdx | 16 +- .../why-default-logging-verbose.mdx | 2 +- .../async-vs-optimize-read-in-order.mdx | 6 +- .../find-expensive-queries.mdx | 4 +- ...ding-expensive-queries-by-memory-usage.mdx | 2 +- .../improve-map-performance.mdx | 2 +- .../insert-select-settings-tuning.mdx | 10 +- .../memory-limit-exceeded-for-query.mdx | 12 +- .../why-is-my-primary-key-not-used.mdx | 6 +- .../queries-sql/compare-resultsets.mdx | 2 +- .../queries-sql/filtered-aggregates.mdx | 4 +- ...-a-clickhouse-table-by-an-array-column.mdx | 2 +- .../knowledge-base/queries-sql/pivot.mdx | 6 +- .../security/row-column-policy.mdx | 4 +- ...-between-official-builds-and-3rd-party.mdx | 2 +- .../how-to-increase-thread-pool-size.mdx | 2 +- .../setup-installation/production.mdx | 2 +- .../tables-schema/add-column.mdx | 6 +- .../tables-schema/delete-old-data.mdx | 12 +- .../exchangeStatementToSwitchTables.mdx | 2 +- ...able-to-query-multiple-remote-clusters.mdx | 4 +- .../certificate-verify-failed-error.mdx | 2 +- ...connection-timeout-remote-remoteSecure.mdx | 2 +- resources/support-center/navigation.json | 250 + .../tips-and-tricks/community-wisdom.mdx | 2 +- .../tips-and-tricks/cost-optimization.mdx | 8 +- .../tips-and-tricks/debugging-insights.mdx | 8 +- .../tips-and-tricks/materialized-views.mdx | 2 +- .../performance-optimization.mdx | 8 +- .../tips-and-tricks/too-many-parts.mdx | 6 +- .../support-center/troubleshooting/index.mdx | 84 +- .../troubleshooting}/troubleshooting.mdx | 16 +- .../generate-slug-map.cpython-314.pyc | Bin 13671 -> 0 bytes .../update_release_notes.cpython-314.pyc | Bin 17970 -> 0 bytes snippets/_async_inserts.mdx | 20 +- snippets/_avoid_mutations.mdx | 8 +- snippets/_avoid_nullable_columns.mdx | 2 +- snippets/_avoid_optimize_final.mdx | 6 +- snippets/_bulk_inserts.mdx | 4 +- snippets/_cli_install.mdx | 2 +- snippets/_clickhouse_mysql_cloud_setup.mdx | 6 +- .../_clickhouse_mysql_on_premise_setup.mdx | 4 +- snippets/_create_clickpipe.mdx | 2 +- snippets/_docker.mdx | 8 +- snippets/_generic_settings.mdx | 4 +- snippets/_json_support.mdx | 2 +- snippets/_macos.mdx | 2 +- snippets/_migration_guide.mdx | 2 +- ...rmance_optimizations_table_of_contents.mdx | 30 +- snippets/_quick_install.mdx | 6 +- snippets/_redshift_migration_guide.mdx | 2 +- .../_replication-sharding-terminology.mdx | 2 +- snippets/_syntax.mdx | 2 +- snippets/_system-log-parameters.mdx | 10 +- snippets/_system_table_cloud.mdx | 2 +- snippets/_table_of_contents.mdx | 20 +- snippets/_windows_install.mdx | 4 +- snippets/alter-delete.mdx | 12 +- snippets/clickstack/_json_support.mdx | 2 +- snippets/clickstack/_navigate_managed.mdx | 2 +- .../clickstack/_setup_managed_ingestion.mdx | 6 +- snippets/common-pretty-format-settings.mdx | 16 +- .../common-row-binary-format-settings.mdx | 10 +- snippets/compatibility.mdx | 2 +- .../QuickStartsGrid/QuickStartsGrid.jsx | 2 +- snippets/connecting-to-postgresql.mdx | 6 +- snippets/data-types-matching.mdx | 52 +- snippets/delete.mdx | 14 +- .../table-engines/integrations/odbc.mdx | 14 +- snippets/recommendations.mdx | 2 +- snippets/truncate.mdx | 14 +- use-cases/index.mdx | 16 - 1706 files changed, 30757 insertions(+), 35537 deletions(-) create mode 100644 _migration/README.md rename {scripts => _migration}/apply-slug-aliases.py (93%) rename {scripts => _migration}/find_dup_imports.py (98%) create mode 100644 _migration/find_orphans.py rename {scripts => _migration}/generate-slug-map.py (97%) rename {scripts => _migration}/match_slugless.py (100%) rename {scripts => _migration}/migrate.py (94%) rename {scripts => _migration}/slug-aliases.csv (60%) rename slug-map.csv => _migration/slug-map.csv (50%) rename {scripts => _migration}/suggest-slug-aliases.py (93%) rename {scripts => _migration}/verify_mapping.py (100%) create mode 100644 _site/customizations/README.md rename ask-ai-button.js => _site/customizations/ask-ai-button.js (100%) rename cookie-banner.js => _site/customizations/cookie-banner.js (100%) rename custom-footer.js => _site/customizations/custom-footer.js (100%) rename kapa-init.js => _site/customizations/kapa-init.js (100%) rename navbar-cta.js => _site/customizations/navbar-cta.js (100%) rename favicon.svg => _site/favicon.svg (100%) rename {logo => _site/logo}/dark.svg (100%) rename {logo => _site/logo}/light.svg (100%) create mode 100644 _site/redirects.json rename {scripts => _site/scripts}/update_quickstarts.py (100%) rename {scripts => _site/scripts}/update_release_notes.py (100%) rename styles.css => _site/styles.css (99%) rename {styles => _site/styles}/.markdownlint-cli2.yaml (100%) rename {styles => _site/styles}/.vale.ini (100%) rename {styles => _site/styles}/markdownlint/custom_rules/headings_have_custom_anchors.js (100%) rename {styles => _site/styles}/markdownlint/custom_rules/utility_functions.js (100%) rename {styles => _site/styles}/vale/ClickHouse/Ability.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/BackTicksFormats.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/BackTicksFunctions.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/BackTicksServerSettings.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/BackTicksSessionSettings.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/BackTicksTableEngines.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/BackTicksTableFunctions.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/BadPlurals.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/British.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/CodeblockFences.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/Colons.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/Contractions.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/CurrentStatus.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/EOLWhitespace.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/Exclamation.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/FutureTense.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/HeadingPunctuation.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/Headings.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/Ordinal.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/OxfordComma.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/Quotes.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/Repetition.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/SentenceLength.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/Units.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/Uppercase.yml (100%) rename {styles => _site/styles}/vale/ClickHouse/Wordy.yml (100%) delete mode 100644 concepts/advanced-guides/index.mdx delete mode 100644 concepts/features/configuration/settings/query-complexity.mdx delete mode 100644 concepts/features/performance/caches/caches.mdx delete mode 100644 concepts/features/security/external-authenticators/index.mdx delete mode 100644 concepts/features/tools-and-utilities/index.mdx create mode 100644 core/README.md create mode 100644 core/concepts/README.md rename {concepts => core/concepts}/best-practices/avoid-mutations.mdx (100%) rename {concepts => core/concepts}/best-practices/avoid-optimize-final.mdx (100%) rename {concepts => core/concepts}/best-practices/avoidnullablecolumns.mdx (100%) rename {concepts => core/concepts}/best-practices/choosing-a-primary-key.mdx (90%) rename {concepts => core/concepts}/best-practices/index.mdx (100%) rename {concepts => core/concepts}/best-practices/json-type.mdx (89%) rename {concepts => core/concepts}/best-practices/minimize-optimize-joins.mdx (86%) rename {concepts => core/concepts}/best-practices/partitioning-keys.mdx (78%) rename {concepts => core/concepts}/best-practices/select-data-type.mdx (97%) rename {concepts => core/concepts}/best-practices/selecting-an-insert-strategy.mdx (74%) rename {concepts => core/concepts}/best-practices/use-materialized-views.mdx (87%) rename {concepts => core/concepts}/best-practices/using-data-skipping-indices.mdx (93%) rename {concepts => core/concepts}/core-concepts/academic-overview.mdx (100%) rename {concepts => core/concepts}/core-concepts/glossary.mdx (99%) rename {concepts => core/concepts}/core-concepts/index.mdx (73%) rename {concepts => core/concepts}/core-concepts/merges.mdx (57%) rename {concepts => core/concepts}/core-concepts/partitions.mdx (76%) rename {concepts => core/concepts}/core-concepts/parts.mdx (66%) rename {concepts => core/concepts}/core-concepts/primary-indexes.mdx (83%) rename {concepts => core/concepts}/core-concepts/query-parallelism.mdx (80%) rename {concepts => core/concepts}/features/backup-restore/alternative-methods.mdx (93%) rename {concepts => core/concepts}/features/backup-restore/azure-blob-storage.mdx (100%) rename {concepts => core/concepts}/features/backup-restore/local-disk.mdx (100%) rename {concepts => core/concepts}/features/backup-restore/overview.mdx (91%) rename {concepts => core/concepts}/features/backup-restore/s3-endpoint.mdx (98%) rename {concepts => core/concepts}/features/backup-restore/snapshot.mdx (81%) rename {concepts => core/concepts}/features/configuration/server-config/composable-protocols.mdx (98%) rename {concepts => core/concepts}/features/configuration/server-config/configuration-files.mdx (95%) rename {concepts => core/concepts}/features/configuration/server-config/named-collections.mdx (95%) rename {concepts => core/concepts}/features/configuration/server-config/quotas.mdx (97%) rename {concepts => core/concepts}/features/configuration/server-config/startup-scripts.mdx (100%) rename {concepts => core/concepts}/features/configuration/server-config/storing-data.mdx (95%) rename {concepts => core/concepts}/features/configuration/server-config/workload-scheduling.mdx (87%) rename {concepts => core/concepts}/features/configuration/settings/alternative-query-languages.mdx (97%) rename {concepts => core/concepts}/features/configuration/settings/constraints-on-settings.mdx (97%) rename {concepts => core/concepts}/features/configuration/settings/memory-overcommit.mdx (100%) rename {concepts => core/concepts}/features/configuration/settings/overview.mdx (71%) rename {concepts => core/concepts}/features/configuration/settings/permissions-for-queries.mdx (88%) create mode 100644 core/concepts/features/configuration/settings/query-complexity.mdx rename {concepts => core/concepts}/features/configuration/settings/server-overload.mdx (100%) rename {concepts => core/concepts}/features/configuration/settings/settings-profiles.mdx (95%) rename {concepts => core/concepts}/features/configuration/settings/settings-query-level.mdx (93%) rename {concepts => core/concepts}/features/configuration/settings/settings-users.mdx (94%) rename {concepts => core/concepts}/features/configuration/settings/tcp-connection-limits.mdx (95%) rename {concepts => core/concepts}/features/dictionaries/best-practices.mdx (95%) rename {concepts => core/concepts}/features/dictionaries/index.mdx (85%) rename {concepts => core/concepts}/features/index.mdx (53%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/arrowflight.mdx (98%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/cli.mdx (100%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/client.mdx (96%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/cpp.mdx (100%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/grpc.mdx (95%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/http.mdx (95%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/jdbc.mdx (100%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/mysql.mdx (83%) create mode 100644 core/concepts/features/interfaces/native-clients-interfaces-index.mdx rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/odbc.mdx (97%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/overview.mdx (68%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/postgresql.mdx (95%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/prometheus.mdx (79%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/schema-inference.mdx (91%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/ssh.mdx (100%) create mode 100644 core/concepts/features/interfaces/tcp.mdx rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/third-party/index.mdx (68%) rename {integrations/connectors/data-integrations/drivers-and-interfaces => core/concepts/features/interfaces}/web-terminal.mdx (91%) rename {concepts => core/concepts}/features/materialized-views/cascading-materialized-views.mdx (99%) rename {concepts => core/concepts}/features/materialized-views/incremental-materialized-view.mdx (95%) rename {concepts => core/concepts}/features/materialized-views/index.mdx (65%) rename {concepts => core/concepts}/features/materialized-views/refreshable-materialized-view.mdx (91%) rename {concepts => core/concepts/features}/operations/delete/delete-mutations.mdx (82%) rename {concepts => core/concepts/features}/operations/delete/drop-partition.mdx (94%) create mode 100644 core/concepts/features/operations/delete/index.mdx rename {concepts => core/concepts/features}/operations/delete/lightweight-delete.mdx (82%) rename {concepts => core/concepts/features}/operations/delete/overview.mdx (57%) rename {concepts => core/concepts/features}/operations/delete/truncate.mdx (100%) rename {concepts => core/concepts/features}/operations/delete/ttl.mdx (99%) rename {concepts => core/concepts/features}/operations/insert/asyncinserts.mdx (100%) rename {concepts => core/concepts/features}/operations/insert/bulkinserts.mdx (100%) rename {concepts => core/concepts/features}/operations/insert/deduplicating-inserts-on-retries.mdx (94%) rename {concepts => core/concepts/features}/operations/insert/deduplication.mdx (98%) rename {get-started/oss/starter-guides => core/concepts/features/operations/insert}/inserting-data.mdx (88%) rename {concepts => core/concepts/features}/operations/insert/transactions.mdx (97%) rename {concepts => core/concepts/features}/operations/select/joining-tables.mdx (92%) rename {concepts => core/concepts/features}/operations/update/index.mdx (57%) rename {concepts => core/concepts/features}/operations/update/on-fly-mutations.mdx (98%) rename {concepts => core/concepts/features}/operations/update/overview.mdx (80%) rename {concepts => core/concepts/features}/operations/update/replacing-merge-tree.mdx (92%) rename {concepts => core/concepts}/features/performance/allocation-profiling-old.mdx (97%) rename {concepts => core/concepts}/features/performance/allocation-profiling.mdx (98%) create mode 100644 core/concepts/features/performance/caches/caches.mdx rename {concepts => core/concepts}/features/performance/caches/query-cache.mdx (66%) rename {concepts => core/concepts}/features/performance/caches/query-condition-cache.mdx (83%) rename {concepts => core/concepts}/features/performance/caches/userspace-page-cache.mdx (94%) create mode 100644 core/concepts/features/performance/index.mdx rename {concepts => core/concepts}/features/performance/lazy-materialization.mdx (81%) rename {concepts => core/concepts}/features/performance/prewhere.mdx (92%) rename {concepts => core/concepts}/features/performance/skip-indexes/skipping-indexes-examples.mdx (76%) rename {concepts => core/concepts}/features/performance/skip-indexes/skipping-indexes.mdx (92%) rename {concepts => core/concepts}/features/performance/troubleshoot/debugging-memory-issues.mdx (97%) rename {concepts => core/concepts}/features/performance/troubleshoot/performance-test.mdx (100%) rename {concepts => core/concepts}/features/performance/troubleshoot/sampling-query-profiler.mdx (87%) rename {concepts => core/concepts}/features/projections/materialized-views-versus-projections.mdx (98%) rename {concepts => core/concepts}/features/projections/projections.mdx (96%) rename {concepts => core/concepts}/features/security/access-rights.mdx (82%) rename {concepts => core/concepts}/features/security/configuring-ldap.mdx (96%) rename {concepts => core/concepts}/features/security/external-authenticators/http.mdx (94%) create mode 100644 core/concepts/features/security/external-authenticators/index.mdx rename {concepts => core/concepts}/features/security/external-authenticators/kerberos.mdx (95%) rename {concepts => core/concepts}/features/security/external-authenticators/ldap.mdx (95%) rename {concepts => core/concepts}/features/security/external-authenticators/ssl-x509.mdx (62%) create mode 100644 core/concepts/features/security/index.mdx rename {concepts => core/concepts}/features/security/network-ports.mdx (91%) rename {concepts => core/concepts}/features/security/ssl-user-auth.mdx (92%) rename {concepts => core/concepts}/features/security/tls/configuring-tls-acme-client.mdx (99%) rename {concepts => core/concepts}/features/security/tls/configuring-tls.mdx (98%) rename {concepts => core/concepts}/features/security/tls/index.mdx (50%) rename {concepts => core/concepts}/features/tools-and-utilities/backupview.mdx (97%) rename {concepts => core/concepts}/features/tools-and-utilities/clickhouse-benchmark.mdx (97%) rename {concepts => core/concepts}/features/tools-and-utilities/clickhouse-compressor.mdx (100%) rename {concepts => core/concepts}/features/tools-and-utilities/clickhouse-disks.mdx (97%) rename {concepts => core/concepts}/features/tools-and-utilities/clickhouse-format.mdx (100%) rename {concepts => core/concepts}/features/tools-and-utilities/clickhouse-keeper-client.mdx (100%) rename {concepts => core/concepts}/features/tools-and-utilities/clickhouse-keeper-http-api.mdx (100%) rename {concepts => core/concepts}/features/tools-and-utilities/clickhouse-local.mdx (89%) rename {concepts => core/concepts}/features/tools-and-utilities/clickhouse-obfuscator.mdx (100%) create mode 100644 core/concepts/features/tools-and-utilities/index.mdx rename {concepts => core/concepts}/features/tools-and-utilities/odbc-bridge.mdx (100%) rename {concepts => core/concepts}/features/tools-and-utilities/static-files-disk-uploader.mdx (98%) rename {concepts => core/concepts}/index.mdx (52%) create mode 100644 core/concepts/navigation.json create mode 100644 core/get-started/README.md rename {get-started => core/get-started}/about/deployment-modes.mdx (91%) rename {get-started => core/get-started}/about/distinctive-features.mdx (79%) rename {get-started => core/get-started}/about/intro.mdx (93%) rename {get-started => core/get-started}/about/olap.mdx (93%) rename {get-started => core/get-started}/about/why-clickhouse-is-so-fast.mdx (77%) create mode 100644 core/get-started/navigation.json rename {get-started => core/get-started}/quickstarts/_academy-ctas/_academy_cta_generic.mdx (100%) create mode 100644 core/get-started/quickstarts/_prerequisites/cloud_prerequisite.mdx rename {get-started => core/get-started}/quickstarts/build-etl-pipeline-using-clickhouse.mdx (88%) rename {get-started => core/get-started}/quickstarts/connect-your-iceberg-catalog.mdx (88%) rename {get-started => core/get-started}/quickstarts/create-your-first-materialized-view.mdx (88%) rename {get-started => core/get-started}/quickstarts/create-your-first-mergetree-table.mdx (93%) rename {get-started => core/get-started}/quickstarts/create-your-first-projection.mdx (86%) rename {get-started => core/get-started}/quickstarts/create-your-first-service-on-cloud.mdx (90%) rename {get-started/oss/starter-guides => core/get-started/quickstarts}/creating-tables.mdx (94%) rename {get-started => core/get-started}/quickstarts/home.mdx (72%) rename {get-started => core/get-started}/quickstarts/insert-data-using-clickhouse-client.mdx (82%) rename {get-started/oss/starter-guides => core/get-started/quickstarts}/mutations.mdx (88%) rename {get-started => core/get-started}/quickstarts/obtain-your-cloud-connection-details.mdx (84%) rename {get-started => core/get-started}/quickstarts/tutorial.mdx (96%) rename {get-started => core/get-started}/quickstarts/working-with-the-map-type.mdx (93%) rename {get-started/oss/starter-guides => core/get-started/quickstarts}/writing-queries.mdx (88%) rename {get-started => core/get-started}/sample-datasets/amazon-reviews.mdx (97%) rename {get-started => core/get-started}/sample-datasets/amplab-benchmark.mdx (100%) rename {get-started => core/get-started}/sample-datasets/anon-web-analytics-metrica.mdx (98%) rename {get-started => core/get-started}/sample-datasets/brown-benchmark.mdx (100%) rename {get-started => core/get-started}/sample-datasets/cell-towers.mdx (99%) rename {get-started => core/get-started}/sample-datasets/covid19.mdx (100%) rename {get-started => core/get-started}/sample-datasets/criteo.mdx (100%) rename {get-started => core/get-started}/sample-datasets/dbpedia.mdx (98%) rename {get-started => core/get-started}/sample-datasets/environmental-sensors.mdx (100%) rename {get-started => core/get-started}/sample-datasets/foursquare-os-places.mdx (99%) rename {get-started => core/get-started}/sample-datasets/github-events.mdx (100%) rename {get-started => core/get-started}/sample-datasets/github.mdx (99%) rename {get-started => core/get-started}/sample-datasets/hacker-news-vector-search.mdx (96%) rename {get-started => core/get-started}/sample-datasets/hacker-news.mdx (96%) create mode 100644 core/get-started/sample-datasets/index.mdx rename {get-started => core/get-started}/sample-datasets/laion.mdx (97%) rename {get-started => core/get-started}/sample-datasets/laion5b.mdx (96%) rename {get-started => core/get-started}/sample-datasets/menus.mdx (94%) rename {get-started => core/get-started}/sample-datasets/noaa.mdx (98%) rename {get-started => core/get-started}/sample-datasets/nyc-taxi.mdx (99%) rename {get-started => core/get-started}/sample-datasets/nypd-complaint-data.mdx (96%) rename {get-started => core/get-started}/sample-datasets/ontime.mdx (100%) rename {get-started => core/get-started}/sample-datasets/playground.mdx (80%) rename {get-started => core/get-started}/sample-datasets/stackoverflow.mdx (100%) rename {get-started => core/get-started}/sample-datasets/star-schema.mdx (98%) rename {get-started => core/get-started}/sample-datasets/tpcds.mdx (93%) rename {get-started => core/get-started}/sample-datasets/tpch.mdx (100%) rename {get-started => core/get-started}/sample-datasets/tw-weather.mdx (100%) rename {get-started => core/get-started}/sample-datasets/uk-price-paid.mdx (93%) rename {get-started => core/get-started}/sample-datasets/wikistat.mdx (100%) rename {get-started => core/get-started}/sample-datasets/youtube-dislikes.mdx (99%) rename {get-started => core/get-started}/setup/cloud.mdx (82%) create mode 100644 core/get-started/setup/install.mdx create mode 100644 core/get-started/setup/migration-guides/bigquery/index.mdx rename {get-started => core/get-started}/setup/migration-guides/bigquery/loading-data.mdx (84%) rename {get-started => core/get-started}/setup/migration-guides/bigquery/migrating-to-clickhouse-cloud.mdx (82%) rename {get-started => core/get-started}/setup/migration-guides/bigquery/overview.mdx (74%) rename {get-started => core/get-started}/setup/migration-guides/elastic/overview.mdx (100%) rename {get-started => core/get-started}/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud.mdx (96%) rename {get-started => core/get-started}/setup/migration-guides/other-methods/clickhouse-local-etl.mdx (85%) rename {get-started => core/get-started}/setup/migration-guides/other-methods/etl-tool-to-clickhouse.mdx (100%) rename {get-started => core/get-started}/setup/migration-guides/other-methods/object-storage-to-clickhouse.mdx (76%) create mode 100644 core/get-started/setup/migration-guides/overview.mdx rename {get-started => core/get-started}/setup/migration-guides/postgres/appendix.mdx (79%) create mode 100644 core/get-started/setup/migration-guides/postgres/index.mdx rename {get-started => core/get-started}/setup/migration-guides/postgres/migration-guide/migration-guide-part1.mdx (80%) rename {get-started => core/get-started}/setup/migration-guides/postgres/migration-guide/migration-guide-part2.mdx (95%) rename {get-started => core/get-started}/setup/migration-guides/postgres/migration-guide/migration-guide-part3.mdx (81%) rename {get-started => core/get-started}/setup/migration-guides/postgres/overview.mdx (91%) rename {get-started => core/get-started}/setup/migration-guides/redshift/migration-guide.mdx (100%) rename {get-started => core/get-started}/setup/migration-guides/redshift/overview.mdx (100%) rename {get-started => core/get-started}/setup/migration-guides/redshift/sql-translation-reference.mdx (78%) rename {get-started => core/get-started}/setup/migration-guides/snowflake/migration-guide.mdx (87%) rename {get-started => core/get-started}/setup/migration-guides/snowflake/overview.mdx (97%) rename {get-started => core/get-started}/setup/migration-guides/snowflake/sql-translation-reference.mdx (76%) rename {get-started => core/get-started}/setup/self-managed/advanced.mdx (95%) rename {get-started => core/get-started}/setup/self-managed/debian-ubuntu.mdx (100%) rename {get-started => core/get-started}/setup/self-managed/docker.mdx (100%) rename {get-started => core/get-started}/setup/self-managed/macos.mdx (100%) rename {get-started => core/get-started}/setup/self-managed/nixos.mdx (100%) rename {get-started => core/get-started}/setup/self-managed/other-linux.mdx (100%) rename {get-started => core/get-started}/setup/self-managed/overview.mdx (50%) rename get-started/oss/oss.mdx => core/get-started/setup/self-managed/quick-install.mdx (81%) rename {get-started => core/get-started}/setup/self-managed/redhat.mdx (100%) rename {get-started => core/get-started}/setup/self-managed/windows.mdx (100%) rename {get-started => core/get-started}/use-cases/data-warehousing.mdx (66%) rename {get-started => core/get-started}/use-cases/machine-learning-and-genai/agent-facing-analytics.mdx (100%) rename {get-started => core/get-started}/use-cases/machine-learning-and-genai/machine-learning.mdx (97%) rename {get-started => core/get-started}/use-cases/observability.mdx (100%) rename {get-started => core/get-started}/use-cases/overview.mdx (52%) rename {get-started => core/get-started}/use-cases/real-time-analytics.mdx (100%) create mode 100644 core/guides/README.md rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/arrow-avro-orc.mdx (74%) rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/binary.mdx (78%) rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/csv-tsv.mdx (81%) rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/intro.mdx (68%) rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/json/exporting.mdx (81%) rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/json/formats.mdx (89%) rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/json/inference.mdx (84%) create mode 100644 core/guides/clickhouse/data-formats/json/intro.mdx rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/json/loading.mdx (88%) rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/json/other.mdx (90%) rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/json/schema.mdx (88%) rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/parquet.mdx (83%) rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/sql.mdx (73%) rename {integrations/connectors/data-ingestion => core/guides/clickhouse}/data-formats/templates-regex.mdx (85%) rename {guides/cloud-oss => core/guides/clickhouse}/data-modelling/backfilling.mdx (84%) rename {guides/cloud-oss => core/guides/clickhouse}/data-modelling/compression/compression-in-clickhouse.mdx (98%) rename {guides/cloud-oss => core/guides/clickhouse}/data-modelling/compression/compression-modes.mdx (85%) rename {guides/cloud-oss => core/guides/clickhouse}/data-modelling/denormalization.mdx (96%) rename {get-started/oss/starter-guides => core/guides/clickhouse/data-modelling}/generating-test-data.mdx (95%) create mode 100644 core/guides/clickhouse/data-modelling/index.mdx rename {guides/cloud-oss => core/guides/clickhouse}/data-modelling/merge-table-function.mdx (94%) rename {guides/cloud-oss => core/guides/clickhouse}/data-modelling/schema-design.mdx (94%) rename {guides/cloud-oss => core/guides/clickhouse}/data-modelling/sparse-primary-indexes.mdx (89%) rename {guides/cloud-oss => core/guides/clickhouse}/data-modelling/stored-procedures-and-prepared-statements.mdx (93%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/anyIf.mdx (79%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/argMaxIf.mdx (78%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/argMinIf.mdx (80%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/avgIf.mdx (80%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/avgMap.mdx (86%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/avgMerge.mdx (50%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/avgMergeState.mdx (92%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/avgResample.mdx (81%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/avgState.mdx (93%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/countIf.mdx (81%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/countResample.mdx (79%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/groupArrayDistinct.mdx (73%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/groupArrayResample.mdx (84%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/maxMap.mdx (86%) create mode 100644 core/guides/clickhouse/examples/aggregate-function-combinators/maxSimpleState.mdx rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/minMap.mdx (86%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/minSimpleState.mdx (90%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/quantilesTimingArrayIf.mdx (84%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/quantilesTimingIf.mdx (87%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/sumArray.mdx (74%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/sumForEach.mdx (79%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/sumIf.mdx (95%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/sumMap.mdx (86%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/sumSimpleState.mdx (84%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/uniqArray.mdx (80%) rename {guides/cloud-oss => core/guides/clickhouse}/examples/aggregate-function-combinators/uniqArrayIf.mdx (84%) create mode 100644 core/guides/clickhouse/index.mdx rename {guides/cloud-oss => core/guides/clickhouse}/performance-and-monitoring/analyzer.mdx (98%) rename {guides/cloud-oss => core/guides/clickhouse}/performance-and-monitoring/dynamic-column-selection.mdx (90%) rename {guides/cloud-oss => core/guides/clickhouse}/performance-and-monitoring/query-optimization.mdx (89%) rename {guides/cloud-oss => core/guides/clickhouse}/performance-and-monitoring/understanding-query-execution-with-the-analyzer.mdx (98%) rename {guides/cloud-oss => core/guides/clickhouse}/working-with-arrays.mdx (88%) rename {guides/cloud-oss => core/guides/clickhouse}/working-with-joins.mdx (94%) create mode 100644 core/guides/navigation.json rename {guides => core/guides}/oss/best-practices/sizing-and-hardware-recommendations.mdx (90%) rename {guides => core/guides}/oss/best-practices/tips.mdx (99%) rename {guides => core/guides}/oss/deployment-and-scaling/cluster-discovery.mdx (98%) rename {guides => core/guides}/oss/deployment-and-scaling/examples/1-shard-2-replicas.mdx (98%) rename {guides => core/guides}/oss/deployment-and-scaling/examples/2-shards-1-replica.mdx (97%) rename {guides => core/guides}/oss/deployment-and-scaling/examples/2-shards-2-replicas.mdx (97%) rename {guides => core/guides}/oss/deployment-and-scaling/index.mdx (52%) rename {guides => core/guides}/oss/deployment-and-scaling/keeper/index.mdx (98%) rename {guides => core/guides}/oss/deployment-and-scaling/keeper/ssl-zookeeper.mdx (100%) rename {guides => core/guides}/oss/deployment-and-scaling/monitoring/monitoring.mdx (62%) rename {guides => core/guides}/oss/deployment-and-scaling/monitoring/opentelemetry.mdx (79%) rename {guides => core/guides}/oss/deployment-and-scaling/scaling-clusters.mdx (57%) rename {guides => core/guides}/oss/deployment-and-scaling/separation-storage-compute.mdx (97%) rename {guides => core/guides}/oss/deployment-and-scaling/shards.mdx (74%) rename {guides => core/guides}/oss/deployment-and-scaling/terminology.mdx (100%) rename {guides => core/guides}/oss/update.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/agno.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/chainlit.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/copilotkit.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/crewai.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/dspy.mdx (100%) create mode 100644 core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/index.mdx rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/langchain.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/llamaindex.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/mcp-agent.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/openai-agents.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/pydantic-ai.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/slackbot.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/streamlit.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ai-agent-libraries/upsonic.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/anythingllm.mdx (97%) rename {guides => core/guides/use-cases}/ai-ml/MCP/claude-desktop.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/index.mdx (53%) rename {guides => core/guides/use-cases}/ai-ml/MCP/janai.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/librechat.mdx (98%) rename {guides => core/guides/use-cases}/ai-ml/MCP/ollama.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/MCP/open-webui.mdx (100%) rename {guides => core/guides/use-cases}/ai-ml/ai-powered-sql-generation.mdx (93%) rename {guides => core/guides/use-cases}/ai-ml/data-exploration/jupyter-notebook.mdx (98%) rename {guides => core/guides/use-cases}/ai-ml/data-exploration/marimo-notebook.mdx (97%) create mode 100644 core/guides/use-cases/ai-ml/index.mdx rename {guides => core/guides/use-cases}/ai-ml/vector-search.mdx (98%) rename {guides => core/guides/use-cases}/data-warehousing/biglake-catalog.mdx (97%) rename {guides => core/guides/use-cases}/data-warehousing/getting-started/accelerating-analytics.mdx (78%) rename {guides => core/guides/use-cases}/data-warehousing/getting-started/connecting-catalogs.mdx (80%) rename {guides => core/guides/use-cases}/data-warehousing/getting-started/overview.mdx (65%) rename {guides => core/guides/use-cases}/data-warehousing/getting-started/querying-directly.mdx (65%) rename {guides => core/guides/use-cases}/data-warehousing/getting-started/writing-data.mdx (96%) rename {guides => core/guides/use-cases}/data-warehousing/glue-catalog.mdx (100%) create mode 100644 core/guides/use-cases/data-warehousing/index.mdx rename {guides => core/guides/use-cases}/data-warehousing/lakekeeper-catalog.mdx (100%) rename {guides => core/guides/use-cases}/data-warehousing/nessie-catalog.mdx (100%) rename {guides => core/guides/use-cases}/data-warehousing/onelake-catalog.mdx (100%) rename {guides => core/guides/use-cases}/data-warehousing/polaris-catalog.mdx (100%) create mode 100644 core/guides/use-cases/data-warehousing/reference/index.mdx rename {guides => core/guides/use-cases}/data-warehousing/rest-catalog.mdx (100%) create mode 100644 core/guides/use-cases/data-warehousing/support-matrix.mdx rename {guides => core/guides/use-cases}/data-warehousing/unity-catalog.mdx (100%) create mode 100644 core/guides/use-cases/index.mdx rename {guides => core/guides/use-cases}/observability/build-your-own/demo-application.mdx (100%) rename {guides => core/guides/use-cases}/observability/build-your-own/grafana.mdx (94%) create mode 100644 core/guides/use-cases/observability/build-your-own/index.mdx rename {guides => core/guides/use-cases}/observability/build-your-own/integrating-opentelemetry.mdx (93%) rename {guides => core/guides/use-cases}/observability/build-your-own/introduction.mdx (98%) rename {guides => core/guides/use-cases}/observability/build-your-own/managing-data.mdx (81%) rename {guides => core/guides/use-cases}/observability/build-your-own/schema-design.mdx (89%) rename {guides => core/guides/use-cases}/observability/cloud-monitoring.mdx (97%) rename {guides => core/guides/use-cases}/observability/index.mdx (59%) rename {guides => core/guides/use-cases}/observability/self-managed-monitoring.mdx (100%) rename {guides => core/guides/use-cases}/real-time-analytics/time-series/analysis-functions.mdx (96%) rename {guides => core/guides/use-cases}/real-time-analytics/time-series/basic-operations.mdx (85%) rename {guides => core/guides/use-cases}/real-time-analytics/time-series/date-time-data-types.mdx (80%) rename {guides => core/guides/use-cases}/real-time-analytics/time-series/index.mdx (68%) rename {guides => core/guides/use-cases}/real-time-analytics/time-series/materialized-view-rollup.mdx (99%) rename {guides => core/guides/use-cases}/real-time-analytics/time-series/query-performance.mdx (93%) rename {guides => core/guides/use-cases}/real-time-analytics/time-series/storage-efficiency.mdx (100%) rename {guides => core/guides/use-cases}/real-time-analytics/time-series/time-series-filling-gaps.mdx (99%) create mode 100644 core/reference/README.md rename {reference => core/reference}/data-types/aggregatefunction.mdx (78%) rename {reference => core/reference}/data-types/array.mdx (89%) rename {reference => core/reference}/data-types/boolean.mdx (100%) rename {reference => core/reference}/data-types/data-types-binary-encoding.mdx (99%) rename {reference => core/reference}/data-types/date.mdx (81%) rename {reference => core/reference}/data-types/date32.mdx (60%) rename {reference => core/reference}/data-types/datetime.mdx (82%) rename {reference => core/reference}/data-types/datetime64.mdx (85%) rename {reference => core/reference}/data-types/decimal.mdx (96%) rename {reference => core/reference}/data-types/domains/index.mdx (100%) rename {reference => core/reference}/data-types/dynamic.mdx (100%) rename {reference => core/reference}/data-types/enum.mdx (97%) rename {reference => core/reference}/data-types/fixedstring.mdx (88%) rename {reference => core/reference}/data-types/float.mdx (91%) rename {reference => core/reference}/data-types/geo.mdx (92%) rename {reference => core/reference}/data-types/index.mdx (62%) rename {reference => core/reference}/data-types/int-uint.mdx (100%) rename {reference => core/reference}/data-types/ipv4.mdx (95%) rename {reference => core/reference}/data-types/ipv6.mdx (96%) rename {reference => core/reference}/data-types/lowcardinality.mdx (54%) rename {reference => core/reference}/data-types/map.mdx (92%) rename {reference => core/reference}/data-types/nested-data-structures/index.mdx (94%) rename {reference => core/reference}/data-types/newjson.mdx (92%) rename {reference => core/reference}/data-types/nullable.mdx (77%) rename {reference => core/reference}/data-types/qbit.mdx (91%) rename {reference => core/reference}/data-types/simpleaggregatefunction.mdx (58%) rename {reference => core/reference}/data-types/special-data-types/expression.mdx (100%) rename {reference => core/reference}/data-types/special-data-types/index.mdx (100%) rename {reference => core/reference}/data-types/special-data-types/interval.mdx (90%) rename {reference => core/reference}/data-types/special-data-types/nothing.mdx (78%) rename {reference => core/reference}/data-types/special-data-types/set.mdx (72%) rename {reference => core/reference}/data-types/string.mdx (81%) rename {reference => core/reference}/data-types/time.mdx (75%) rename {reference => core/reference}/data-types/time64.mdx (77%) rename {reference => core/reference}/data-types/tuple.mdx (92%) rename {reference => core/reference}/data-types/uuid.mdx (88%) rename {reference => core/reference}/data-types/variant.mdx (100%) create mode 100644 core/reference/datalakes.mdx rename {reference => core/reference}/engines/database-engines/atomic.mdx (58%) rename {reference => core/reference}/engines/database-engines/backup.mdx (93%) rename {reference => core/reference}/engines/database-engines/datalake.mdx (96%) create mode 100644 core/reference/engines/database-engines/index.mdx rename {reference => core/reference}/engines/database-engines/materialized-postgresql.mdx (97%) rename {reference => core/reference}/engines/database-engines/mysql.mdx (70%) rename {reference => core/reference}/engines/database-engines/postgresql.mdx (80%) rename {reference => core/reference}/engines/database-engines/replicated.mdx (84%) rename {reference => core/reference}/engines/database-engines/shared.mdx (100%) rename {reference => core/reference}/engines/database-engines/sqlite.mdx (74%) rename {reference => core/reference}/engines/engines.mdx (54%) create mode 100644 core/reference/engines/table-engines/index.mdx rename {reference => core/reference}/engines/table-engines/integrations/ExternalDistributed.mdx (75%) rename {reference => core/reference}/engines/table-engines/integrations/arrowflight.mdx (96%) rename {reference => core/reference}/engines/table-engines/integrations/azure-queue.mdx (89%) rename {reference => core/reference}/engines/table-engines/integrations/azureBlobStorage.mdx (93%) rename {reference => core/reference}/engines/table-engines/integrations/deltalake.mdx (94%) rename {reference => core/reference}/engines/table-engines/integrations/embedded-rocksdb.mdx (97%) rename {reference => core/reference}/engines/table-engines/integrations/hdfs.mdx (90%) rename {reference => core/reference}/engines/table-engines/integrations/hive.mdx (99%) rename {reference => core/reference}/engines/table-engines/integrations/hudi.mdx (93%) rename {reference => core/reference}/engines/table-engines/integrations/iceberg.mdx (96%) create mode 100644 core/reference/engines/table-engines/integrations/index.mdx rename {reference => core/reference}/engines/table-engines/integrations/jdbc.mdx (93%) rename {reference => core/reference}/engines/table-engines/integrations/kafka.mdx (93%) rename {reference => core/reference}/engines/table-engines/integrations/materialized-postgresql.mdx (82%) rename {reference => core/reference}/engines/table-engines/integrations/mongodb.mdx (99%) rename {reference => core/reference}/engines/table-engines/integrations/mysql.mdx (83%) rename {reference => core/reference}/engines/table-engines/integrations/nats.mdx (95%) rename {reference => core/reference}/engines/table-engines/integrations/odbc.mdx (81%) rename {reference => core/reference}/engines/table-engines/integrations/paimon.mdx (99%) rename {reference => core/reference}/engines/table-engines/integrations/postgresql.mdx (82%) rename {reference => core/reference}/engines/table-engines/integrations/rabbitmq.mdx (91%) rename {reference => core/reference}/engines/table-engines/integrations/redis.mdx (90%) rename {reference => core/reference}/engines/table-engines/integrations/s3.mdx (94%) rename {reference => core/reference}/engines/table-engines/integrations/s3queue.mdx (96%) rename {reference => core/reference}/engines/table-engines/integrations/sqlite.mdx (67%) rename {reference => core/reference}/engines/table-engines/integrations/time-series.mdx (90%) rename {reference => core/reference}/engines/table-engines/integrations/ytsaurus.mdx (94%) rename {reference => core/reference}/engines/table-engines/log-family/index.mdx (82%) rename {reference => core/reference}/engines/table-engines/log-family/log.mdx (89%) rename {reference => core/reference}/engines/table-engines/log-family/stripelog.mdx (92%) rename {reference => core/reference}/engines/table-engines/log-family/tinylog.mdx (91%) rename {reference => core/reference}/engines/table-engines/mergetree-family/aggregatingmergetree.mdx (84%) rename {reference => core/reference}/engines/table-engines/mergetree-family/annindexes.mdx (89%) rename {reference => core/reference}/engines/table-engines/mergetree-family/coalescingmergetree.mdx (86%) rename {reference => core/reference}/engines/table-engines/mergetree-family/collapsingmergetree.mdx (93%) rename {reference => core/reference}/engines/table-engines/mergetree-family/custom-partitioning-key.mdx (82%) rename {reference => core/reference}/engines/table-engines/mergetree-family/graphitemergetree.mdx (90%) create mode 100644 core/reference/engines/table-engines/mergetree-family/index.mdx rename {reference => core/reference}/engines/table-engines/mergetree-family/invertedindexes.mdx (72%) rename {reference => core/reference}/engines/table-engines/mergetree-family/mergetree.mdx (78%) rename {reference => core/reference}/engines/table-engines/mergetree-family/replacingmergetree.mdx (91%) rename {reference => core/reference}/engines/table-engines/mergetree-family/replication.mdx (88%) rename {reference => core/reference}/engines/table-engines/mergetree-family/summingmergetree.mdx (82%) rename {reference => core/reference}/engines/table-engines/mergetree-family/textindexes.mdx (79%) rename {reference => core/reference}/engines/table-engines/mergetree-family/versionedcollapsingmergetree.mdx (90%) rename {reference => core/reference}/engines/table-engines/special/alias.mdx (98%) rename {reference => core/reference}/engines/table-engines/special/buffer.mdx (98%) rename {reference => core/reference}/engines/table-engines/special/dictionary.mdx (88%) rename {reference => core/reference}/engines/table-engines/special/distributed.mdx (83%) rename {reference => core/reference}/engines/table-engines/special/executable.mdx (96%) rename {reference => core/reference}/engines/table-engines/special/external-data.mdx (100%) rename {reference => core/reference}/engines/table-engines/special/file.mdx (64%) rename {reference => core/reference}/engines/table-engines/special/filelog.mdx (92%) rename {reference => core/reference}/engines/table-engines/special/generate.mdx (92%) create mode 100644 core/reference/engines/table-engines/special/index.mdx rename {reference => core/reference}/engines/table-engines/special/join.mdx (74%) rename {reference => core/reference}/engines/table-engines/special/keepermap.mdx (100%) rename {reference => core/reference}/engines/table-engines/special/memory.mdx (98%) rename {reference => core/reference}/engines/table-engines/special/merge.mdx (92%) rename {reference => core/reference}/engines/table-engines/special/null.mdx (100%) rename {reference => core/reference}/engines/table-engines/special/set.mdx (93%) rename {reference => core/reference}/engines/table-engines/special/url.mdx (79%) rename {reference => core/reference}/engines/table-engines/special/view.mdx (100%) rename {reference => core/reference}/formats/Arrow/Arrow.mdx (50%) rename {reference => core/reference}/formats/Arrow/ArrowStream.mdx (100%) rename {reference => core/reference}/formats/Avro/Avro.mdx (88%) rename {reference => core/reference}/formats/Avro/AvroConfluent.mdx (92%) create mode 100644 core/reference/formats/Avro/_snippets/data-types-matching.mdx rename {reference => core/reference}/formats/BSONEachRow.mdx (50%) rename {reference => core/reference}/formats/Buffers.mdx (82%) create mode 100644 core/reference/formats/CSV/CSV.mdx rename {reference => core/reference}/formats/CSV/CSVWithNames.mdx (91%) rename {reference => core/reference}/formats/CSV/CSVWithNamesAndTypes.mdx (88%) rename {reference => core/reference}/formats/CapnProto.mdx (58%) rename {reference => core/reference}/formats/CustomSeparated/CustomSeparated.mdx (68%) rename {reference => core/reference}/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.mdx (100%) rename {reference => core/reference}/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.mdx (100%) rename {reference => core/reference}/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.mdx (100%) rename {reference => core/reference}/formats/CustomSeparated/CustomSeparatedWithNames.mdx (92%) rename {reference => core/reference}/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.mdx (89%) rename {reference => core/reference}/formats/DWARF.mdx (100%) rename {reference => core/reference}/formats/Form.mdx (100%) rename {reference => core/reference}/formats/Hash.mdx (100%) rename {reference => core/reference}/formats/HiveText.mdx (100%) rename {reference => core/reference}/formats/JSON/JSON.mdx (88%) rename {reference => core/reference}/formats/JSON/JSONAsObject.mdx (81%) rename {reference => core/reference}/formats/JSON/JSONAsString.mdx (86%) rename {reference => core/reference}/formats/JSON/JSONColumns.mdx (94%) rename {reference => core/reference}/formats/JSON/JSONColumnsWithMetadata.mdx (82%) rename {reference => core/reference}/formats/JSON/JSONCompact.mdx (97%) rename {reference => core/reference}/formats/JSON/JSONCompactColumns.mdx (97%) rename {reference => core/reference}/formats/JSON/JSONCompactEachRow.mdx (95%) rename {reference => core/reference}/formats/JSON/JSONCompactEachRowWithNames.mdx (86%) rename {reference => core/reference}/formats/JSON/JSONCompactEachRowWithNamesAndTypes.mdx (84%) rename {reference => core/reference}/formats/JSON/JSONCompactEachRowWithProgress.mdx (100%) rename {reference => core/reference}/formats/JSON/JSONCompactStrings.mdx (94%) rename {reference => core/reference}/formats/JSON/JSONCompactStringsEachRow.mdx (95%) rename {reference => core/reference}/formats/JSON/JSONCompactStringsEachRowWithNames.mdx (87%) rename {reference => core/reference}/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.mdx (89%) rename {reference => core/reference}/formats/JSON/JSONCompactStringsEachRowWithProgress.mdx (92%) rename {reference => core/reference}/formats/JSON/JSONEachRow.mdx (97%) rename {reference => core/reference}/formats/JSON/JSONEachRowWithProgress.mdx (77%) rename {reference => core/reference}/formats/JSON/JSONLines.mdx (97%) rename {reference => core/reference}/formats/JSON/JSONObjectEachRow.mdx (56%) rename {reference => core/reference}/formats/JSON/JSONStrings.mdx (98%) rename {reference => core/reference}/formats/JSON/JSONStringsEachRow.mdx (97%) rename {reference => core/reference}/formats/JSON/JSONStringsEachRowWithProgress.mdx (100%) rename {reference => core/reference}/formats/JSON/PrettyJSONEachRow.mdx (97%) create mode 100644 core/reference/formats/JSON/format-settings.mdx rename {reference => core/reference}/formats/LineAsString/LineAsString.mdx (83%) rename {reference => core/reference}/formats/LineAsString/LineAsStringWithNames.mdx (88%) rename {reference => core/reference}/formats/LineAsString/LineAsStringWithNamesAndTypes.mdx (93%) rename {reference => core/reference}/formats/Markdown.mdx (100%) create mode 100644 core/reference/formats/MsgPack.mdx rename {reference => core/reference}/formats/MySQLDump.mdx (93%) rename {reference => core/reference}/formats/MySQLWire.mdx (100%) rename {reference => core/reference}/formats/Native.mdx (89%) rename {reference => core/reference}/formats/Npy.mdx (58%) rename {reference => core/reference}/formats/Null.mdx (100%) rename {reference => core/reference}/formats/ODBCDriver2.mdx (100%) rename {reference => core/reference}/formats/ORC.mdx (52%) rename {reference => core/reference}/formats/One.mdx (91%) rename {reference => core/reference}/formats/Parquet/Parquet.mdx (85%) rename {reference => core/reference}/formats/Parquet/ParquetMetadata.mdx (100%) rename {reference => core/reference}/formats/PostgreSQLWire.mdx (100%) rename {reference => core/reference}/formats/Pretty/Pretty.mdx (90%) rename {reference => core/reference}/formats/Pretty/PrettyCompact.mdx (82%) rename {reference => core/reference}/formats/Pretty/PrettyCompactMonoBlock.mdx (77%) rename {reference => core/reference}/formats/Pretty/PrettyCompactNoEscapes.mdx (78%) rename {reference => core/reference}/formats/Pretty/PrettyCompactNoEscapesMonoBlock.mdx (76%) rename {reference => core/reference}/formats/Pretty/PrettyMonoBlock.mdx (77%) rename {reference => core/reference}/formats/Pretty/PrettyNoEscapes.mdx (72%) rename {reference => core/reference}/formats/Pretty/PrettyNoEscapesMonoBlock.mdx (82%) rename {reference => core/reference}/formats/Pretty/PrettySpace.mdx (84%) rename {reference => core/reference}/formats/Pretty/PrettySpaceMonoBlock.mdx (77%) rename {reference => core/reference}/formats/Pretty/PrettySpaceNoEscapes.mdx (79%) rename {reference => core/reference}/formats/Pretty/PrettySpaceNoEscapesMonoBlock.mdx (76%) create mode 100644 core/reference/formats/Pretty/_snippets/common-pretty-format-settings.mdx rename {reference => core/reference}/formats/Prometheus.mdx (94%) rename {reference => core/reference}/formats/Protobuf/Protobuf.mdx (92%) rename {reference => core/reference}/formats/Protobuf/ProtobufList.mdx (87%) rename {reference => core/reference}/formats/Protobuf/ProtobufSingle.mdx (73%) rename {reference => core/reference}/formats/RawBLOB.mdx (91%) rename {reference => core/reference}/formats/Regexp.mdx (62%) rename {reference => core/reference}/formats/RowBinary/RowBinary.mdx (96%) rename {reference => core/reference}/formats/RowBinary/RowBinaryWithDefaults.mdx (86%) rename {reference => core/reference}/formats/RowBinary/RowBinaryWithNames.mdx (69%) rename {reference => core/reference}/formats/RowBinary/RowBinaryWithNamesAndTypes.mdx (68%) create mode 100644 core/reference/formats/RowBinary/_snippets/common-row-binary-format-settings.mdx rename {reference => core/reference}/formats/SQLInsert.mdx (57%) rename {reference => core/reference}/formats/TabSeparated/TSKV.mdx (91%) rename {reference => core/reference}/formats/TabSeparated/TabSeparated.mdx (72%) rename {reference => core/reference}/formats/TabSeparated/TabSeparatedRaw.mdx (93%) rename {reference => core/reference}/formats/TabSeparated/TabSeparatedRawWithNames.mdx (97%) rename {reference => core/reference}/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.mdx (96%) rename {reference => core/reference}/formats/TabSeparated/TabSeparatedWithNames.mdx (90%) rename {reference => core/reference}/formats/TabSeparated/TabSeparatedWithNamesAndTypes.mdx (87%) rename {reference => core/reference}/formats/Template/Template.mdx (100%) rename {reference => core/reference}/formats/Template/TemplateIgnoreSpaces.mdx (96%) rename {reference => core/reference}/formats/Values.mdx (62%) rename {reference => core/reference}/formats/Vertical.mdx (78%) rename {reference => core/reference}/formats/XML.mdx (100%) create mode 100644 core/reference/formats/index.mdx rename {reference => core/reference}/functions/aggregate-functions/combinators.mdx (89%) rename {reference => core/reference}/functions/aggregate-functions/grouping_function.mdx (95%) rename {reference => core/reference}/functions/aggregate-functions/index.mdx (71%) rename {reference => core/reference}/functions/aggregate-functions/parametric-functions.mdx (93%) rename {reference => core/reference}/functions/aggregate-functions/reference/aggThrow.mdx (96%) rename {reference => core/reference}/functions/aggregate-functions/reference/analysis_of_variance.mdx (81%) rename {reference => core/reference}/functions/aggregate-functions/reference/any.mdx (95%) rename {reference => core/reference}/functions/aggregate-functions/reference/anyHeavy.mdx (90%) rename {reference => core/reference}/functions/aggregate-functions/reference/anyLast.mdx (83%) rename {reference => core/reference}/functions/aggregate-functions/reference/approxtopk.mdx (75%) rename {reference => core/reference}/functions/aggregate-functions/reference/approxtopsum.mdx (69%) rename {reference => core/reference}/functions/aggregate-functions/reference/argAndMax.mdx (71%) rename {reference => core/reference}/functions/aggregate-functions/reference/argAndMin.mdx (71%) rename {reference => core/reference}/functions/aggregate-functions/reference/argMax.mdx (74%) rename {reference => core/reference}/functions/aggregate-functions/reference/argMin.mdx (77%) rename {reference => core/reference}/functions/aggregate-functions/reference/avg.mdx (77%) rename {reference => core/reference}/functions/aggregate-functions/reference/avgWeighted.mdx (85%) rename {reference => core/reference}/functions/aggregate-functions/reference/boundrat.mdx (81%) rename {reference => core/reference}/functions/aggregate-functions/reference/categoricalInformationValue.mdx (92%) rename {reference => core/reference}/functions/aggregate-functions/reference/contingency.mdx (76%) rename {reference => core/reference}/functions/aggregate-functions/reference/corr.mdx (71%) rename {reference => core/reference}/functions/aggregate-functions/reference/corrMatrix.mdx (85%) rename {reference => core/reference}/functions/aggregate-functions/reference/corrStable.mdx (70%) rename {reference => core/reference}/functions/aggregate-functions/reference/count.mdx (68%) rename {reference => core/reference}/functions/aggregate-functions/reference/covarPop.mdx (69%) rename {reference => core/reference}/functions/aggregate-functions/reference/covarPopMatrix.mdx (89%) rename {reference => core/reference}/functions/aggregate-functions/reference/covarPopStable.mdx (66%) rename {reference => core/reference}/functions/aggregate-functions/reference/covarSamp.mdx (75%) rename {reference => core/reference}/functions/aggregate-functions/reference/covarSampMatrix.mdx (87%) rename {reference => core/reference}/functions/aggregate-functions/reference/covarSampStable.mdx (76%) rename {reference => core/reference}/functions/aggregate-functions/reference/cramersV.mdx (82%) rename {reference => core/reference}/functions/aggregate-functions/reference/cramersVBiasCorrected.mdx (75%) rename {reference => core/reference}/functions/aggregate-functions/reference/deltaSum.mdx (73%) rename {reference => core/reference}/functions/aggregate-functions/reference/deltaSumTimestamp.mdx (60%) rename {reference => core/reference}/functions/aggregate-functions/reference/distinctDynamicTypes.mdx (85%) rename {reference => core/reference}/functions/aggregate-functions/reference/distinctJSONPaths.mdx (85%) rename {reference => core/reference}/functions/aggregate-functions/reference/distinctJSONPathsAndTypes.mdx (94%) rename {reference => core/reference}/functions/aggregate-functions/reference/entropy.mdx (87%) rename {reference => core/reference}/functions/aggregate-functions/reference/estimateCompressionRatio.mdx (75%) rename {reference => core/reference}/functions/aggregate-functions/reference/exponentialMovingAverage.mdx (94%) rename {reference => core/reference}/functions/aggregate-functions/reference/exponentialTimeDecayedAvg.mdx (88%) rename {reference => core/reference}/functions/aggregate-functions/reference/exponentialTimeDecayedCount.mdx (93%) rename {reference => core/reference}/functions/aggregate-functions/reference/exponentialTimeDecayedMax.mdx (88%) rename {reference => core/reference}/functions/aggregate-functions/reference/exponentialTimeDecayedSum.mdx (92%) rename {reference => core/reference}/functions/aggregate-functions/reference/first_value.mdx (82%) rename {reference => core/reference}/functions/aggregate-functions/reference/flame_graph.mdx (94%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupArray.mdx (85%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupArrayArray.mdx (90%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupArrayInsertAt.mdx (91%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupArrayIntersect.mdx (89%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupArrayLast.mdx (83%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupArrayMovingAvg.mdx (92%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupArrayMovingSum.mdx (90%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupArraySample.mdx (88%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupArraySorted.mdx (88%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupBitAnd.mdx (83%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupBitOr.mdx (83%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupBitXor.mdx (83%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupBitmap.mdx (83%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupBitmapAnd.mdx (88%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupBitmapOr.mdx (80%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupBitmapXor.mdx (89%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupConcat.mdx (88%) rename {reference => core/reference}/functions/aggregate-functions/reference/groupUniqArray.mdx (81%) create mode 100644 core/reference/functions/aggregate-functions/reference/index.mdx rename {reference => core/reference}/functions/aggregate-functions/reference/intervalLengthSum.mdx (86%) rename {reference => core/reference}/functions/aggregate-functions/reference/kolmogorovSmirnovTest.mdx (88%) rename {reference => core/reference}/functions/aggregate-functions/reference/kurtPop.mdx (71%) rename {reference => core/reference}/functions/aggregate-functions/reference/kurtSamp.mdx (79%) rename {reference => core/reference}/functions/aggregate-functions/reference/largestTriangleThreeBuckets.mdx (72%) rename {reference => core/reference}/functions/aggregate-functions/reference/last_value.mdx (95%) rename {reference => core/reference}/functions/aggregate-functions/reference/mannWhitneyUTest.mdx (83%) rename {reference => core/reference}/functions/aggregate-functions/reference/max.mdx (93%) rename {reference => core/reference}/functions/aggregate-functions/reference/maxIntersections.mdx (84%) rename {reference => core/reference}/functions/aggregate-functions/reference/maxIntersectionsPosition.mdx (78%) rename {reference => core/reference}/functions/aggregate-functions/reference/maxMap.mdx (86%) rename {reference => core/reference}/functions/aggregate-functions/reference/meanZTest.mdx (82%) create mode 100644 core/reference/functions/aggregate-functions/reference/median.mdx rename {reference => core/reference}/functions/aggregate-functions/reference/min.mdx (91%) rename {reference => core/reference}/functions/aggregate-functions/reference/minMap.mdx (87%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantile.mdx (63%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileBFloat16.mdx (78%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileDeterministic.mdx (67%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileExact.mdx (64%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileExactExclusive.mdx (68%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileExactHigh.mdx (73%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileExactInclusive.mdx (68%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileExactLow.mdx (73%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileExactWeighted.mdx (66%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileExactWeightedInterpolated.mdx (79%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileGK.mdx (80%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileInterpolatedWeighted.mdx (71%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantilePrometheusHistogram.mdx (79%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileTDigest.mdx (61%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileTDigestWeighted.mdx (66%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileTiming.mdx (75%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileTimingWeighted.mdx (78%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantileddsketch.mdx (76%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantiles.mdx (75%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantilesExactExclusive.mdx (74%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantilesExactInclusive.mdx (74%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantilesGK.mdx (74%) rename {reference => core/reference}/functions/aggregate-functions/reference/quantilesTimingWeighted.mdx (74%) rename {reference => core/reference}/functions/aggregate-functions/reference/rankCorr.mdx (90%) rename {reference => core/reference}/functions/aggregate-functions/reference/simpleLinearRegression.mdx (89%) rename {reference => core/reference}/functions/aggregate-functions/reference/singleValueOrNull.mdx (91%) rename {reference => core/reference}/functions/aggregate-functions/reference/skewPop.mdx (81%) rename {reference => core/reference}/functions/aggregate-functions/reference/skewSamp.mdx (88%) rename {reference => core/reference}/functions/aggregate-functions/reference/sparkbar.mdx (78%) rename {reference => core/reference}/functions/aggregate-functions/reference/stddevPop.mdx (70%) rename {reference => core/reference}/functions/aggregate-functions/reference/stddevPopStable.mdx (64%) rename {reference => core/reference}/functions/aggregate-functions/reference/stddevSamp.mdx (73%) rename {reference => core/reference}/functions/aggregate-functions/reference/stddevSampStable.mdx (67%) rename {reference => core/reference}/functions/aggregate-functions/reference/stochasticLinearRegression.mdx (89%) rename {reference => core/reference}/functions/aggregate-functions/reference/stochasticLogisticRegression.mdx (86%) rename {reference => core/reference}/functions/aggregate-functions/reference/studentTTest.mdx (71%) rename {reference => core/reference}/functions/aggregate-functions/reference/studentTTestOneSample.mdx (70%) rename {reference => core/reference}/functions/aggregate-functions/reference/sum.mdx (70%) rename {reference => core/reference}/functions/aggregate-functions/reference/sumCount.mdx (76%) rename {reference => core/reference}/functions/aggregate-functions/reference/sumKahan.mdx (64%) rename {reference => core/reference}/functions/aggregate-functions/reference/sumMap.mdx (91%) rename {reference => core/reference}/functions/aggregate-functions/reference/sumMapWithOverflow.mdx (86%) rename {reference => core/reference}/functions/aggregate-functions/reference/sumWithOverflow.mdx (85%) rename {reference => core/reference}/functions/aggregate-functions/reference/theilsU.mdx (82%) rename {reference => core/reference}/functions/aggregate-functions/reference/timeSeriesChangesToGrid.mdx (100%) rename {reference => core/reference}/functions/aggregate-functions/reference/timeSeriesDeltaToGrid.mdx (84%) rename {reference => core/reference}/functions/aggregate-functions/reference/timeSeriesDerivToGrid.mdx (100%) rename {reference => core/reference}/functions/aggregate-functions/reference/timeSeriesGroupArray.mdx (84%) rename {reference => core/reference}/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid.mdx (84%) rename {reference => core/reference}/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid.mdx (84%) rename {reference => core/reference}/functions/aggregate-functions/reference/timeSeriesLastTwoSamples.mdx (94%) rename {reference => core/reference}/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid.mdx (100%) rename {reference => core/reference}/functions/aggregate-functions/reference/timeSeriesRateToGrid.mdx (84%) rename {reference => core/reference}/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness.mdx (83%) rename {reference => core/reference}/functions/aggregate-functions/reference/timeSeriesResetsToGrid.mdx (100%) rename {reference => core/reference}/functions/aggregate-functions/reference/topK.mdx (66%) rename {reference => core/reference}/functions/aggregate-functions/reference/topKWeighted.mdx (72%) rename {reference => core/reference}/functions/aggregate-functions/reference/uniq.mdx (71%) rename {reference => core/reference}/functions/aggregate-functions/reference/uniqCombined.mdx (70%) rename {reference => core/reference}/functions/aggregate-functions/reference/uniqCombined64.mdx (64%) rename {reference => core/reference}/functions/aggregate-functions/reference/uniqExact.mdx (65%) rename {reference => core/reference}/functions/aggregate-functions/reference/uniqHLL12.mdx (67%) rename {reference => core/reference}/functions/aggregate-functions/reference/uniqthetasketch.mdx (66%) rename {reference => core/reference}/functions/aggregate-functions/reference/varPop.mdx (73%) rename {reference => core/reference}/functions/aggregate-functions/reference/varPopStable.mdx (71%) rename {reference => core/reference}/functions/aggregate-functions/reference/varSamp.mdx (75%) rename {reference => core/reference}/functions/aggregate-functions/reference/varSampStable.mdx (74%) rename {reference => core/reference}/functions/aggregate-functions/reference/welchTTest.mdx (78%) create mode 100644 core/reference/functions/index.mdx rename {reference => core/reference}/functions/regular-functions/ai-functions.mdx (80%) rename {reference => core/reference}/functions/regular-functions/arithmetic-functions.mdx (85%) rename {reference => core/reference}/functions/regular-functions/array-functions.mdx (82%) rename {reference => core/reference}/functions/regular-functions/array-join.mdx (85%) rename {reference => core/reference}/functions/regular-functions/bit-functions.mdx (83%) rename {reference => core/reference}/functions/regular-functions/bitmap-functions.mdx (72%) rename {reference => core/reference}/functions/regular-functions/comparison-functions.mdx (88%) rename {reference => core/reference}/functions/regular-functions/conditional-functions.mdx (92%) rename {reference => core/reference}/functions/regular-functions/date-time-functions.mdx (75%) rename {reference => core/reference}/functions/regular-functions/distance-functions.mdx (76%) rename {reference => core/reference}/functions/regular-functions/embedded-dict-functions.mdx (88%) rename {reference => core/reference}/functions/regular-functions/encoding-functions.mdx (87%) rename {reference => core/reference}/functions/regular-functions/encryption-functions.mdx (88%) rename {reference => core/reference}/functions/regular-functions/ext-dict-functions.mdx (79%) rename {reference => core/reference}/functions/regular-functions/files.mdx (58%) rename {reference => core/reference}/functions/regular-functions/financial-functions.mdx (82%) rename {reference => core/reference}/functions/regular-functions/functions-for-nulls.mdx (84%) rename {reference => core/reference}/functions/regular-functions/geo/coordinates.mdx (89%) rename {reference => core/reference}/functions/regular-functions/geo/flipCoordinates.mdx (83%) rename {reference => core/reference}/functions/regular-functions/geo/geohash.mdx (82%) rename {reference => core/reference}/functions/regular-functions/geo/geometry.mdx (85%) rename {reference => core/reference}/functions/regular-functions/geo/h3.mdx (78%) create mode 100644 core/reference/functions/regular-functions/geo/index.mdx rename {reference => core/reference}/functions/regular-functions/geo/polygon.mdx (98%) rename {reference => core/reference}/functions/regular-functions/geo/s2.mdx (79%) rename {reference => core/reference}/functions/regular-functions/geo/svg.mdx (81%) rename {reference => core/reference}/functions/regular-functions/hash-functions.mdx (82%) rename {reference => core/reference}/functions/regular-functions/in-functions.mdx (82%) rename {reference => core/reference}/functions/regular-functions/introspection.mdx (93%) rename {reference => core/reference}/functions/regular-functions/ip-address-functions.mdx (84%) rename {reference => core/reference}/functions/regular-functions/json-functions.mdx (81%) rename {reference => core/reference}/functions/regular-functions/logical-functions.mdx (77%) rename {reference => core/reference}/functions/regular-functions/machine-learning-functions.mdx (90%) rename {reference => core/reference}/functions/regular-functions/math-functions.mdx (67%) rename {reference => core/reference}/functions/regular-functions/nlp-functions.mdx (86%) rename {reference => core/reference}/functions/regular-functions/numeric-indexed-vector-functions.mdx (79%) rename {reference => core/reference}/functions/regular-functions/other-functions.mdx (84%) rename {reference => core/reference}/functions/regular-functions/overview.mdx (95%) rename {reference => core/reference}/functions/regular-functions/random-functions.mdx (71%) create mode 100644 core/reference/functions/regular-functions/regular-functions-index.mdx rename {reference => core/reference}/functions/regular-functions/rounding-functions.mdx (78%) rename {reference => core/reference}/functions/regular-functions/splitting-merging-functions.mdx (70%) rename {reference => core/reference}/functions/regular-functions/string-functions.mdx (83%) rename {reference => core/reference}/functions/regular-functions/string-replace-functions.mdx (83%) rename {reference => core/reference}/functions/regular-functions/string-search-functions.mdx (82%) rename {reference => core/reference}/functions/regular-functions/time-series-functions.mdx (78%) rename {reference => core/reference}/functions/regular-functions/time-window-functions.mdx (66%) rename {reference => core/reference}/functions/regular-functions/tuple-functions.mdx (66%) rename {reference => core/reference}/functions/regular-functions/tuple-map-functions.mdx (79%) rename {reference => core/reference}/functions/regular-functions/type-conversion-functions.mdx (75%) rename {reference => core/reference}/functions/regular-functions/udf.mdx (93%) rename {reference => core/reference}/functions/regular-functions/ulid-functions.mdx (81%) rename {reference => core/reference}/functions/regular-functions/uniqtheta-functions.mdx (97%) rename {reference => core/reference}/functions/regular-functions/url-functions.mdx (87%) rename {reference => core/reference}/functions/regular-functions/uuid-functions.mdx (78%) rename {reference => core/reference}/functions/regular-functions/wasm_udf.mdx (99%) rename {reference => core/reference}/functions/table-functions/arrowflight.mdx (83%) rename {reference => core/reference}/functions/table-functions/azureBlobStorage.mdx (96%) rename {reference => core/reference}/functions/table-functions/azureBlobStorageCluster.mdx (88%) rename {reference => core/reference}/functions/table-functions/cluster.mdx (80%) rename {reference => core/reference}/functions/table-functions/deltalake.mdx (96%) rename {reference => core/reference}/functions/table-functions/deltalakeCluster.mdx (86%) rename {reference => core/reference}/functions/table-functions/dictionary.mdx (74%) rename {reference => core/reference}/functions/table-functions/executable.mdx (94%) rename {reference => core/reference}/functions/table-functions/file.mdx (79%) rename {reference => core/reference}/functions/table-functions/fileCluster.mdx (86%) rename {reference => core/reference}/functions/table-functions/filesystem.mdx (94%) rename {reference => core/reference}/functions/table-functions/format.mdx (96%) rename {reference => core/reference}/functions/table-functions/fuzzJSON.mdx (96%) rename {reference => core/reference}/functions/table-functions/fuzzQuery.mdx (100%) rename {reference => core/reference}/functions/table-functions/gcs.mdx (92%) rename {reference => core/reference}/functions/table-functions/generate.mdx (99%) rename {reference => core/reference}/functions/table-functions/generate_series.mdx (100%) rename {reference => core/reference}/functions/table-functions/hdfs.mdx (81%) rename {reference => core/reference}/functions/table-functions/hdfsCluster.mdx (88%) rename {reference => core/reference}/functions/table-functions/hudi.mdx (90%) rename {reference => core/reference}/functions/table-functions/hudiCluster.mdx (90%) rename {reference => core/reference}/functions/table-functions/iceberg.mdx (99%) rename {reference => core/reference}/functions/table-functions/icebergCluster.mdx (87%) create mode 100644 core/reference/functions/table-functions/index.mdx rename {reference => core/reference}/functions/table-functions/input.mdx (97%) rename {reference => core/reference}/functions/table-functions/jdbc.mdx (100%) rename {reference => core/reference}/functions/table-functions/loop.mdx (100%) rename {reference => core/reference}/functions/table-functions/merge.mdx (85%) rename {reference => core/reference}/functions/table-functions/mergeTreeIndex.mdx (100%) rename {reference => core/reference}/functions/table-functions/mergeTreeProjection.mdx (100%) rename {reference => core/reference}/functions/table-functions/mergeTreeTextIndex.mdx (100%) rename {reference => core/reference}/functions/table-functions/mongodb.mdx (95%) rename {reference => core/reference}/functions/table-functions/mysql.mdx (85%) rename {reference => core/reference}/functions/table-functions/null.mdx (69%) rename {reference => core/reference}/functions/table-functions/numbers.mdx (90%) rename {reference => core/reference}/functions/table-functions/odbc.mdx (94%) rename {reference => core/reference}/functions/table-functions/paimon.mdx (97%) rename {reference => core/reference}/functions/table-functions/paimonCluster.mdx (89%) rename {reference => core/reference}/functions/table-functions/postgresql.mdx (91%) rename {reference => core/reference}/functions/table-functions/primes.mdx (97%) rename {reference => core/reference}/functions/table-functions/prometheusQuery.mdx (100%) rename {reference => core/reference}/functions/table-functions/prometheusQueryRange.mdx (100%) rename {reference => core/reference}/functions/table-functions/redis.mdx (87%) rename {reference => core/reference}/functions/table-functions/remote.mdx (80%) rename {reference => core/reference}/functions/table-functions/s3.mdx (92%) rename {reference => core/reference}/functions/table-functions/s3Cluster.mdx (86%) rename {reference => core/reference}/functions/table-functions/sqlite.mdx (68%) rename {reference => core/reference}/functions/table-functions/timeSeriesData.mdx (84%) rename {reference => core/reference}/functions/table-functions/timeSeriesMetrics.mdx (83%) rename {reference => core/reference}/functions/table-functions/timeSeriesSelector.mdx (100%) rename {reference => core/reference}/functions/table-functions/timeSeriesTags.mdx (84%) rename {reference => core/reference}/functions/table-functions/url.mdx (72%) rename {reference => core/reference}/functions/table-functions/urlCluster.mdx (76%) rename {reference => core/reference}/functions/table-functions/values.mdx (96%) rename {reference => core/reference}/functions/table-functions/view.mdx (72%) rename {reference => core/reference}/functions/table-functions/ytsaurus.mdx (78%) rename {reference => core/reference}/functions/table-functions/zeros.mdx (100%) rename {reference => core/reference}/functions/window-functions/cume_dist.mdx (95%) rename {reference => core/reference}/functions/window-functions/dense_rank.mdx (90%) rename {reference => core/reference}/functions/window-functions/first_value.mdx (94%) rename {reference => core/reference}/functions/window-functions/index.mdx (96%) rename {reference => core/reference}/functions/window-functions/lag.mdx (88%) rename {reference => core/reference}/functions/window-functions/lagInFrame.mdx (95%) rename {reference => core/reference}/functions/window-functions/last_value.mdx (94%) rename {reference => core/reference}/functions/window-functions/lead.mdx (92%) rename {reference => core/reference}/functions/window-functions/leadInFrame.mdx (96%) rename {reference => core/reference}/functions/window-functions/nth_value.mdx (97%) rename {reference => core/reference}/functions/window-functions/percent_rank.mdx (97%) rename {reference => core/reference}/functions/window-functions/rank.mdx (90%) rename {reference => core/reference}/functions/window-functions/row_number.mdx (92%) create mode 100644 core/reference/home.mdx create mode 100644 core/reference/navigation.json rename {reference => core/reference}/operators/distributed-ddl.mdx (100%) rename {reference => core/reference}/operators/exists.mdx (94%) rename {reference => core/reference}/operators/index.mdx (81%) create mode 100644 core/reference/settings/beta-and-experimental-features.mdx rename {reference => core/reference}/settings/formats.mdx (94%) create mode 100644 core/reference/settings/index.mdx rename {reference => core/reference}/settings/merge-tree-settings.mdx (97%) rename {reference => core/reference}/settings/server-settings/_server_settings_outside_source.mdx (92%) rename {reference => core/reference}/settings/server-settings/_snippets/_system-log-parameters.mdx (75%) rename {reference => core/reference}/settings/server-settings/settings.mdx (93%) rename {reference => core/reference}/settings/session-settings.mdx (93%) create mode 100644 core/reference/statements/alter/apply-deleted-mask.mdx rename {reference => core/reference}/statements/alter/apply-patches.mdx (63%) rename {reference => core/reference}/statements/alter/column.mdx (85%) rename {reference => core/reference}/statements/alter/comment.mdx (90%) rename {reference => core/reference}/statements/alter/constraint.mdx (90%) rename {reference => core/reference}/statements/alter/database-comment.mdx (89%) rename {reference => core/reference}/statements/alter/delete.mdx (68%) rename {reference => core/reference}/statements/alter/index.mdx (56%) rename {reference => core/reference}/statements/alter/masking-policy.mdx (100%) rename {reference => core/reference}/statements/alter/named-collection.mdx (100%) rename {reference => core/reference}/statements/alter/order-by.mdx (59%) rename {reference => core/reference}/statements/alter/partition.mdx (89%) rename {reference => core/reference}/statements/alter/projection.mdx (89%) rename {reference => core/reference}/statements/alter/quota.mdx (88%) rename {reference => core/reference}/statements/alter/role.mdx (100%) rename {reference => core/reference}/statements/alter/row-policy.mdx (100%) rename {reference => core/reference}/statements/alter/sample-by.mdx (51%) rename {reference => core/reference}/statements/alter/setting.mdx (87%) rename {reference => core/reference}/statements/alter/settings-profile.mdx (100%) rename {reference => core/reference}/statements/alter/skipping-index.mdx (76%) rename {reference => core/reference}/statements/alter/statistics.mdx (84%) rename {reference => core/reference}/statements/alter/ttl.mdx (82%) rename {reference => core/reference}/statements/alter/update.mdx (66%) rename {reference => core/reference}/statements/alter/user.mdx (93%) rename {reference => core/reference}/statements/alter/view.mdx (93%) rename {reference => core/reference}/statements/attach.mdx (94%) rename {reference => core/reference}/statements/check-grant.mdx (91%) rename {reference => core/reference}/statements/check-table.mdx (94%) rename {reference => core/reference}/statements/create/database.mdx (85%) rename {reference => core/reference}/statements/create/dictionary.mdx (70%) rename {reference => core/reference}/statements/create/dictionary/attributes.mdx (83%) rename {reference => core/reference}/statements/create/dictionary/embedded.mdx (100%) rename {reference => core/reference}/statements/create/dictionary/layouts/cache.mdx (85%) rename {reference => core/reference}/statements/create/dictionary/layouts/direct.mdx (62%) rename {reference => core/reference}/statements/create/dictionary/layouts/flat.mdx (89%) rename {reference => core/reference}/statements/create/dictionary/layouts/hashed-array.mdx (83%) rename {reference => core/reference}/statements/create/dictionary/layouts/hashed.mdx (88%) rename {reference => core/reference}/statements/create/dictionary/layouts/hierarchical.mdx (90%) rename {reference => core/reference}/statements/create/dictionary/layouts/ip-trie.mdx (100%) create mode 100644 core/reference/statements/create/dictionary/layouts/overview.mdx rename {reference => core/reference}/statements/create/dictionary/layouts/polygon.mdx (94%) rename {reference => core/reference}/statements/create/dictionary/layouts/range-hashed.mdx (95%) rename {reference => core/reference}/statements/create/dictionary/layouts/regexp-tree.mdx (91%) rename {reference => core/reference}/statements/create/dictionary/layouts/ssd-cache.mdx (86%) rename {reference => core/reference}/statements/create/dictionary/lifetime.mdx (94%) rename {reference => core/reference}/statements/create/dictionary/sources/cassandra.mdx (100%) rename {reference => core/reference}/statements/create/dictionary/sources/clickhouse.mdx (88%) rename {reference => core/reference}/statements/create/dictionary/sources/executable-file.mdx (77%) rename {reference => core/reference}/statements/create/dictionary/sources/executable-pool.mdx (87%) rename {reference => core/reference}/statements/create/dictionary/sources/http.mdx (83%) rename {reference => core/reference}/statements/create/dictionary/sources/local-file.mdx (86%) rename {reference => core/reference}/statements/create/dictionary/sources/mongodb.mdx (94%) rename {reference => core/reference}/statements/create/dictionary/sources/mysql.mdx (98%) rename {reference => core/reference}/statements/create/dictionary/sources/null.mdx (100%) rename {reference => core/reference}/statements/create/dictionary/sources/odbc.mdx (99%) rename {reference => core/reference}/statements/create/dictionary/sources/overview.mdx (55%) rename {reference => core/reference}/statements/create/dictionary/sources/postgresql.mdx (97%) rename {reference => core/reference}/statements/create/dictionary/sources/redis.mdx (100%) rename {reference => core/reference}/statements/create/dictionary/sources/yamlregexptree.mdx (75%) rename {reference => core/reference}/statements/create/dictionary/sources/ytsaurus.mdx (94%) rename {reference => core/reference}/statements/create/function.mdx (93%) create mode 100644 core/reference/statements/create/index.mdx rename {reference => core/reference}/statements/create/masking-policy.mdx (100%) rename {reference => core/reference}/statements/create/named-collection.mdx (74%) rename {reference => core/reference}/statements/create/quota.mdx (84%) rename {reference => core/reference}/statements/create/role.mdx (50%) rename {reference => core/reference}/statements/create/row-policy.mdx (94%) rename {reference => core/reference}/statements/create/settings-profile.mdx (83%) rename {reference => core/reference}/statements/create/table.mdx (91%) rename {reference => core/reference}/statements/create/user.mdx (92%) rename {reference => core/reference}/statements/create/view.mdx (91%) rename {reference => core/reference}/statements/delete.mdx (80%) rename {reference => core/reference}/statements/describe-table.mdx (78%) rename {reference => core/reference}/statements/detach.mdx (82%) rename {reference => core/reference}/statements/distributed-ddl.mdx (100%) rename {reference => core/reference}/statements/drop.mdx (94%) rename {reference => core/reference}/statements/exchange.mdx (86%) rename {reference => core/reference}/statements/execute_as.mdx (79%) rename {reference => core/reference}/statements/exists.mdx (100%) rename {reference => core/reference}/statements/explain.mdx (96%) rename {reference => core/reference}/statements/grant.mdx (90%) rename {reference => core/reference}/statements/in.mdx (88%) create mode 100644 core/reference/statements/index.mdx rename {reference => core/reference}/statements/insert-into.mdx (79%) rename {reference => core/reference}/statements/kill.mdx (87%) rename {reference => core/reference}/statements/move.mdx (100%) rename {reference => core/reference}/statements/optimize.mdx (82%) rename {reference => core/reference}/statements/parallel_with.mdx (82%) rename {reference => core/reference}/statements/rename.mdx (93%) rename {reference => core/reference}/statements/revoke.mdx (96%) rename {reference => core/reference}/statements/select/all.mdx (100%) rename {reference => core/reference}/statements/select/apply_modifier.mdx (100%) rename {reference => core/reference}/statements/select/array-join.mdx (91%) rename {reference => core/reference}/statements/select/distinct.mdx (77%) rename {reference => core/reference}/statements/select/except.mdx (98%) rename {reference => core/reference}/statements/select/except_modifier.mdx (100%) rename {reference => core/reference}/statements/select/format.mdx (51%) rename {reference => core/reference}/statements/select/from.mdx (79%) rename {reference => core/reference}/statements/select/group-by.mdx (83%) rename {reference => core/reference}/statements/select/having.mdx (82%) rename {reference => core/reference}/statements/select/index.mdx (75%) rename {reference => core/reference}/statements/select/intersect.mdx (97%) rename {reference => core/reference}/statements/select/into-outfile.mdx (75%) rename {reference => core/reference}/statements/select/join.mdx (89%) rename {reference => core/reference}/statements/select/limit-by.mdx (80%) rename {reference => core/reference}/statements/select/limit.mdx (85%) rename {reference => core/reference}/statements/select/offset.mdx (89%) rename {reference => core/reference}/statements/select/order-by.mdx (89%) rename {reference => core/reference}/statements/select/prewhere.mdx (72%) rename {reference => core/reference}/statements/select/qualify.mdx (85%) rename {reference => core/reference}/statements/select/replace_modifier.mdx (90%) rename {reference => core/reference}/statements/select/sample.mdx (86%) rename {reference => core/reference}/statements/select/union.mdx (71%) rename {reference => core/reference}/statements/select/where.mdx (88%) rename {reference => core/reference}/statements/select/with.mdx (93%) rename {reference => core/reference}/statements/set-role.mdx (100%) rename {reference => core/reference}/statements/set.mdx (83%) rename {reference => core/reference}/statements/show.mdx (87%) rename {reference => core/reference}/statements/system.mdx (85%) rename {reference => core/reference}/statements/truncate.mdx (84%) rename {reference => core/reference}/statements/undrop.mdx (96%) rename {reference => core/reference}/statements/update.mdx (68%) rename {reference => core/reference}/statements/use.mdx (100%) rename {reference => core/reference}/statements/watch.mdx (100%) rename {reference => core/reference}/syntax.mdx (92%) rename {reference => core/reference}/system-tables/aggregate_function_combinators.mdx (76%) rename {reference => core/reference}/system-tables/aggregated_zookeeper_log.mdx (53%) create mode 100644 core/reference/system-tables/asynchronous_insert_log.mdx create mode 100644 core/reference/system-tables/asynchronous_inserts.mdx rename {reference => core/reference}/system-tables/asynchronous_loader.mdx (54%) rename {reference => core/reference}/system-tables/asynchronous_metric_log.mdx (59%) rename {reference => core/reference}/system-tables/asynchronous_metrics.mdx (98%) create mode 100644 core/reference/system-tables/azure_queue_log.mdx create mode 100644 core/reference/system-tables/azure_queue_metadata_cache.mdx create mode 100644 core/reference/system-tables/azure_queue_settings.mdx create mode 100644 core/reference/system-tables/background_schedule_pool.mdx create mode 100644 core/reference/system-tables/background_schedule_pool_log.mdx rename {reference => core/reference}/system-tables/backup_log.mdx (71%) create mode 100644 core/reference/system-tables/backups.mdx create mode 100644 core/reference/system-tables/blob_storage_log.mdx rename {reference => core/reference}/system-tables/build_options.mdx (84%) create mode 100644 core/reference/system-tables/certificates.mdx create mode 100644 core/reference/system-tables/clusters.mdx rename {reference => core/reference}/system-tables/codecs.mdx (51%) rename {reference => core/reference}/system-tables/collations.mdx (73%) create mode 100644 core/reference/system-tables/columns.mdx rename {reference => core/reference}/system-tables/completions.mdx (53%) rename {reference => core/reference}/system-tables/contributors.mdx (92%) create mode 100644 core/reference/system-tables/crash_log.mdx rename {reference => core/reference}/system-tables/current_roles.mdx (61%) rename {reference => core/reference}/system-tables/dashboards.mdx (88%) rename {reference => core/reference}/system-tables/data_skipping_indices.mdx (56%) rename {reference => core/reference}/system-tables/data_type_families.mdx (69%) rename {reference => core/reference}/system-tables/database_engines.mdx (89%) create mode 100644 core/reference/system-tables/database_replicas.mdx rename {reference => core/reference}/system-tables/databases.mdx (85%) rename {reference => core/reference}/system-tables/dead_letter_queue.mdx (58%) rename {reference => core/reference}/system-tables/delta_metadata_log.mdx (67%) create mode 100644 core/reference/system-tables/detached_parts.mdx rename {reference => core/reference}/system-tables/detached_tables.mdx (63%) create mode 100644 core/reference/system-tables/dictionaries.mdx rename {reference => core/reference}/system-tables/dimensional_metrics.mdx (63%) create mode 100644 core/reference/system-tables/disks.mdx rename {reference => core/reference}/system-tables/distributed_ddl_queue.mdx (58%) create mode 100644 core/reference/system-tables/distribution_queue.mdx rename {reference => core/reference}/system-tables/dns_cache.mdx (52%) rename {reference => core/reference}/system-tables/dropped_tables.mdx (59%) create mode 100644 core/reference/system-tables/dropped_tables_parts.mdx rename {reference => core/reference}/system-tables/enabled_roles.mdx (56%) create mode 100644 core/reference/system-tables/error_log.mdx rename {reference => core/reference}/system-tables/errors.mdx (55%) rename {reference => core/reference}/system-tables/events.mdx (99%) rename {reference => core/reference}/system-tables/fail_points.mdx (76%) create mode 100644 core/reference/system-tables/filesystem_cache.mdx create mode 100644 core/reference/system-tables/filesystem_cache_log.mdx create mode 100644 core/reference/system-tables/filesystem_cache_settings.mdx create mode 100644 core/reference/system-tables/filesystem_read_prefetches_log.mdx create mode 100644 core/reference/system-tables/formats.mdx create mode 100644 core/reference/system-tables/functions.mdx rename {reference => core/reference}/system-tables/grants.mdx (85%) create mode 100644 core/reference/system-tables/graphite_retentions.mdx create mode 100644 core/reference/system-tables/histogram_metric_log.mdx rename {reference => core/reference}/system-tables/histogram_metrics.mdx (99%) create mode 100644 core/reference/system-tables/iceberg_history.mdx rename {reference => core/reference}/system-tables/iceberg_metadata_log.mdx (72%) create mode 100644 core/reference/system-tables/index.mdx create mode 100644 core/reference/system-tables/information_schema.mdx rename {reference => core/reference}/system-tables/instrumentation.mdx (65%) rename {reference => core/reference}/system-tables/jemalloc_bins.mdx (79%) rename {reference => core/reference}/system-tables/jemalloc_profile_text.mdx (83%) rename {reference => core/reference}/system-tables/jemalloc_stats.mdx (82%) create mode 100644 core/reference/system-tables/kafka_consumers.mdx rename {reference => core/reference}/system-tables/keywords.mdx (79%) rename {reference => core/reference}/system-tables/licenses.mdx (79%) rename {reference => core/reference}/system-tables/macros.mdx (70%) create mode 100644 core/reference/system-tables/masking_policies.mdx rename {reference => core/reference}/system-tables/merge_tree_settings.mdx (67%) create mode 100644 core/reference/system-tables/merges.mdx create mode 100644 core/reference/system-tables/metric_log.mdx rename {reference => core/reference}/system-tables/metrics.mdx (99%) rename {reference => core/reference}/system-tables/models.mdx (54%) create mode 100644 core/reference/system-tables/moves.mdx create mode 100644 core/reference/system-tables/mutations.mdx rename {reference => core/reference}/system-tables/named_collections.mdx (59%) rename {reference => core/reference}/system-tables/numbers.mdx (100%) rename {reference => core/reference}/system-tables/numbers_mt.mdx (83%) rename {reference => core/reference}/system-tables/one.mdx (100%) create mode 100644 core/reference/system-tables/opentelemetry_span_log.mdx rename {reference => core/reference}/system-tables/overview.mdx (84%) create mode 100644 core/reference/system-tables/part_log.mdx create mode 100644 core/reference/system-tables/part_moves_between_shards.mdx create mode 100644 core/reference/system-tables/parts.mdx create mode 100644 core/reference/system-tables/parts_columns.mdx create mode 100644 core/reference/system-tables/predicate_statistics_log.mdx rename {reference => core/reference}/system-tables/primes.mdx (92%) rename {reference => core/reference}/system-tables/privileges.mdx (93%) create mode 100644 core/reference/system-tables/processes.mdx create mode 100644 core/reference/system-tables/processors_profile_log.mdx create mode 100644 core/reference/system-tables/projection_parts.mdx create mode 100644 core/reference/system-tables/projection_parts_columns.mdx rename {reference => core/reference}/system-tables/projections.mdx (62%) create mode 100644 core/reference/system-tables/query_cache.mdx rename {reference => core/reference}/system-tables/query_condition_cache.mdx (71%) create mode 100644 core/reference/system-tables/query_log.mdx create mode 100644 core/reference/system-tables/query_metric_log.mdx create mode 100644 core/reference/system-tables/query_thread_log.mdx create mode 100644 core/reference/system-tables/query_views_log.mdx create mode 100644 core/reference/system-tables/quota_limits.mdx create mode 100644 core/reference/system-tables/quota_usage.mdx create mode 100644 core/reference/system-tables/quotas.mdx create mode 100644 core/reference/system-tables/quotas_usage.mdx rename {reference => core/reference}/system-tables/remote_data_paths.mdx (52%) create mode 100644 core/reference/system-tables/replicas.mdx create mode 100644 core/reference/system-tables/replicated_fetches.mdx rename {reference => core/reference}/system-tables/replicated_merge_tree_settings.mdx (53%) create mode 100644 core/reference/system-tables/replication_queue.mdx create mode 100644 core/reference/system-tables/resources.mdx rename {reference => core/reference}/system-tables/rocksdb.mdx (54%) create mode 100644 core/reference/system-tables/role_grants.mdx create mode 100644 core/reference/system-tables/roles.mdx create mode 100644 core/reference/system-tables/row_policies.mdx create mode 100644 core/reference/system-tables/s3_queue_settings.mdx create mode 100644 core/reference/system-tables/s3queue_log.mdx create mode 100644 core/reference/system-tables/s3queue_metadata_cache.mdx create mode 100644 core/reference/system-tables/scheduler.mdx rename {reference => core/reference}/system-tables/schema_inference_cache.mdx (75%) rename {reference => core/reference}/system-tables/server_settings.mdx (86%) create mode 100644 core/reference/system-tables/session_log.mdx rename {reference => core/reference}/system-tables/settings.mdx (61%) rename {reference => core/reference}/system-tables/settings_changes.mdx (72%) create mode 100644 core/reference/system-tables/settings_profile_elements.mdx create mode 100644 core/reference/system-tables/settings_profiles.mdx rename {reference => core/reference}/system-tables/stack_trace.mdx (82%) rename {reference => core/reference}/system-tables/storage_policies.mdx (65%) rename {reference => core/reference}/system-tables/symbols.mdx (88%) rename {reference => core/reference}/system-tables/system_warnings.mdx (50%) rename {reference => core/reference}/system-tables/table_engines.mdx (60%) rename {reference => core/reference}/system-tables/table_functions.mdx (58%) create mode 100644 core/reference/system-tables/tables.mdx create mode 100644 core/reference/system-tables/text_log.mdx rename {reference => core/reference}/system-tables/time_zones.mdx (91%) rename {reference => core/reference}/system-tables/tokenizers.mdx (63%) rename {reference => core/reference}/system-tables/trace_log.mdx (53%) create mode 100644 core/reference/system-tables/transactions.mdx create mode 100644 core/reference/system-tables/transactions_info_log.mdx rename {reference => core/reference}/system-tables/unicode.mdx (94%) create mode 100644 core/reference/system-tables/user_defined_functions.mdx rename {reference => core/reference}/system-tables/user_directories.mdx (54%) rename {reference => core/reference}/system-tables/user_processes.mdx (72%) create mode 100644 core/reference/system-tables/users.mdx create mode 100644 core/reference/system-tables/view_refreshes.mdx rename {reference => core/reference}/system-tables/warnings.mdx (67%) rename {reference => core/reference}/system-tables/workloads.mdx (62%) rename {reference => core/reference}/system-tables/zeros.mdx (86%) rename {reference => core/reference}/system-tables/zeros_mt.mdx (85%) rename {reference => core/reference}/system-tables/zookeeper.mdx (100%) rename {reference => core/reference}/system-tables/zookeeper_connection.mdx (55%) rename {reference => core/reference}/system-tables/zookeeper_connection_log.mdx (78%) create mode 100644 core/reference/system-tables/zookeeper_info.mdx create mode 100644 core/reference/system-tables/zookeeper_log.mdx rename {reference => core/reference}/system-tables/zookeeper_watches.mdx (57%) delete mode 100644 customize-layout.js delete mode 100644 get-started/quickstarts/_prerequisites/cloud_prerequisite.mdx delete mode 100644 get-started/sample-datasets/index.mdx delete mode 100644 get-started/setup/migration-guides/bigquery/index.mdx delete mode 100644 get-started/setup/migration-guides/overview.mdx delete mode 100644 get-started/setup/migration-guides/postgres/index.mdx delete mode 100644 get-started/setup/overview.mdx delete mode 100644 get-started/setup/self-managed/install.mdx delete mode 100644 get-started/setup/self-managed/quick-install.mdx delete mode 100644 guides/ai-ml/MCP/ai-agent-libraries/index.mdx delete mode 100644 guides/ai-ml/index.mdx delete mode 100644 guides/cloud-oss/data-modelling/index.mdx delete mode 100644 guides/cloud-oss/examples/aggregate-function-combinators/maxSimpleState.mdx delete mode 100644 guides/cloud/index.mdx delete mode 100644 guides/data-modelling/deleting-data/index.mdx delete mode 100644 guides/data-warehousing/index.mdx delete mode 100644 guides/data-warehousing/reference/index.mdx delete mode 100644 guides/data-warehousing/support-matrix.mdx delete mode 100644 guides/observability/build-your-own/index.mdx delete mode 100644 guides/performance-and-monitoring/index.mdx delete mode 100644 guides/security/index.mdx create mode 100644 integrations/clickpipes/navigation.json delete mode 100644 integrations/clickpipes/postgres/maintenance.mdx delete mode 100644 integrations/connectors/data-ingestion/GCP/index.mdx delete mode 100644 integrations/connectors/data-ingestion/data-formats/json/intro.mdx delete mode 100644 integrations/connectors/data-ingestion/mysql.mdx delete mode 100644 integrations/connectors/data-ingestion/postgresql/connecting-to-postgresql.mdx delete mode 100644 integrations/connectors/data-ingestion/postgresql/inserting-data.mdx delete mode 100644 integrations/connectors/data-integrations/drivers-and-interfaces/native-clients-interfaces-index.mdx delete mode 100644 integrations/connectors/data-integrations/drivers-and-interfaces/tcp.mdx delete mode 100644 integrations/connectors/data-integrations/sql-clients/sql-console.mdx create mode 100644 integrations/connectors/navigation.json delete mode 100644 integrations/language-clients/java/client/v7.mdx delete mode 100644 integrations/language-clients/java/client/v8.mdx delete mode 100644 integrations/language-clients/java/jdbc/v7.mdx delete mode 100644 integrations/language-clients/java/jdbc/v8.mdx create mode 100644 integrations/language-clients/navigation.json create mode 100644 products/README.md create mode 100644 products/agentic-data-stack/navigation.json create mode 100644 products/bring-your-own-cloud/navigation.json create mode 100644 products/chdb/navigation.json create mode 100644 products/clickhouse-private/navigation.json rename {api-reference/hyperdx => products/clickstack/api-reference}/hyperdx-openapi.json (100%) delete mode 100644 products/clickstack/deployment/hyperdx-clickhouse-cloud.mdx delete mode 100644 products/clickstack/deployment/index.mdx delete mode 100644 products/clickstack/home.mdx delete mode 100644 products/clickstack/ingesting-data/kubernetes.mdx rename products/clickstack/{ => managing}/config.mdx (94%) rename products/clickstack/{managing.mdx => managing/overview.mdx} (97%) rename products/clickstack/{ => managing}/ttl.mdx (86%) create mode 100644 products/clickstack/navigation.json delete mode 100644 products/clickstack/styles/clickstack-homepage.css rename {api-reference/cloud => products/cloud/api-reference}/cloud-openapi.json (100%) delete mode 100644 products/cloud/cloud/auto-scaling.mdx delete mode 100644 products/cloud/cloud/backups.mdx delete mode 100644 products/cloud/cloud/create-service.mdx delete mode 100644 products/cloud/cloud/security.mdx delete mode 100644 products/cloud/concepts-overview.mdx delete mode 100644 products/cloud/concepts.mdx rename {use-cases => products/cloud/features}/ai-ml/aichat/customizing-semantic-layer.mdx (100%) rename {use-cases => products/cloud/features}/ai-ml/aichat/using-ai-chat.mdx (100%) rename {use-cases/ai => products/cloud/features/ai-ml}/mcp/remote-mcp.mdx (98%) delete mode 100644 products/cloud/guides/infrastructure/deployment-options/byoc/architecture.mdx delete mode 100644 products/cloud/guides/infrastructure/deployment-options/byoc/faq/aws.mdx delete mode 100644 products/cloud/guides/infrastructure/deployment-options/byoc/observability/aws.mdx delete mode 100644 products/cloud/guides/infrastructure/deployment-options/byoc/onboarding/aws.mdx delete mode 100644 products/cloud/home.mdx create mode 100644 products/cloud/navigation.json create mode 100644 products/managed-postgres/navigation.json delete mode 100644 reference/datalakes.mdx delete mode 100644 reference/engines/database-engines/index.mdx delete mode 100644 reference/engines/table-engines/index.mdx delete mode 100644 reference/engines/table-engines/integrations/index.mdx delete mode 100644 reference/engines/table-engines/mergetree-family/index.mdx delete mode 100644 reference/engines/table-engines/special/index.mdx delete mode 100644 reference/formats/Avro/_snippets/data-types-matching.mdx delete mode 100644 reference/formats/CSV/CSV.mdx delete mode 100644 reference/formats/JSON/format-settings.mdx delete mode 100644 reference/formats/MsgPack.mdx delete mode 100644 reference/formats/Pretty/_snippets/common-pretty-format-settings.mdx delete mode 100644 reference/formats/RowBinary/_snippets/common-row-binary-format-settings.mdx delete mode 100644 reference/formats/index.mdx delete mode 100644 reference/functions/aggregate-functions/reference/index.mdx delete mode 100644 reference/functions/aggregate-functions/reference/median.mdx delete mode 100644 reference/functions/index.mdx delete mode 100644 reference/functions/regular-functions/geo/index.mdx delete mode 100644 reference/functions/regular-functions/regular-functions-index.mdx delete mode 100644 reference/functions/table-functions/index.mdx delete mode 100644 reference/home.mdx delete mode 100644 reference/index.mdx delete mode 100644 reference/settings/beta-and-experimental-features.mdx delete mode 100644 reference/settings/index.mdx delete mode 100644 reference/statements/alter/apply-deleted-mask.mdx delete mode 100644 reference/statements/create/dictionary/layouts/overview.mdx delete mode 100644 reference/statements/create/index.mdx delete mode 100644 reference/statements/index.mdx delete mode 100644 reference/system-tables/asynchronous_insert_log.mdx delete mode 100644 reference/system-tables/asynchronous_inserts.mdx delete mode 100644 reference/system-tables/azure_queue_log.mdx delete mode 100644 reference/system-tables/azure_queue_metadata_cache.mdx delete mode 100644 reference/system-tables/azure_queue_settings.mdx delete mode 100644 reference/system-tables/background_schedule_pool.mdx delete mode 100644 reference/system-tables/background_schedule_pool_log.mdx delete mode 100644 reference/system-tables/backups.mdx delete mode 100644 reference/system-tables/blob_storage_log.mdx delete mode 100644 reference/system-tables/certificates.mdx delete mode 100644 reference/system-tables/clusters.mdx delete mode 100644 reference/system-tables/columns.mdx delete mode 100644 reference/system-tables/crash_log.mdx delete mode 100644 reference/system-tables/database_replicas.mdx delete mode 100644 reference/system-tables/detached_parts.mdx delete mode 100644 reference/system-tables/dictionaries.mdx delete mode 100644 reference/system-tables/disks.mdx delete mode 100644 reference/system-tables/distribution_queue.mdx delete mode 100644 reference/system-tables/dropped_tables_parts.mdx delete mode 100644 reference/system-tables/error_log.mdx delete mode 100644 reference/system-tables/filesystem_cache.mdx delete mode 100644 reference/system-tables/filesystem_cache_log.mdx delete mode 100644 reference/system-tables/filesystem_cache_settings.mdx delete mode 100644 reference/system-tables/filesystem_read_prefetches_log.mdx delete mode 100644 reference/system-tables/formats.mdx delete mode 100644 reference/system-tables/functions.mdx delete mode 100644 reference/system-tables/graphite_retentions.mdx delete mode 100644 reference/system-tables/histogram_metric_log.mdx delete mode 100644 reference/system-tables/iceberg_history.mdx delete mode 100644 reference/system-tables/index.mdx delete mode 100644 reference/system-tables/information_schema.mdx delete mode 100644 reference/system-tables/kafka_consumers.mdx delete mode 100644 reference/system-tables/masking_policies.mdx delete mode 100644 reference/system-tables/merges.mdx delete mode 100644 reference/system-tables/metric_log.mdx delete mode 100644 reference/system-tables/moves.mdx delete mode 100644 reference/system-tables/mutations.mdx delete mode 100644 reference/system-tables/opentelemetry_span_log.mdx delete mode 100644 reference/system-tables/part_log.mdx delete mode 100644 reference/system-tables/part_moves_between_shards.mdx delete mode 100644 reference/system-tables/parts.mdx delete mode 100644 reference/system-tables/parts_columns.mdx delete mode 100644 reference/system-tables/predicate_statistics_log.mdx delete mode 100644 reference/system-tables/processes.mdx delete mode 100644 reference/system-tables/processors_profile_log.mdx delete mode 100644 reference/system-tables/projection_parts.mdx delete mode 100644 reference/system-tables/projection_parts_columns.mdx delete mode 100644 reference/system-tables/query_cache.mdx delete mode 100644 reference/system-tables/query_log.mdx delete mode 100644 reference/system-tables/query_metric_log.mdx delete mode 100644 reference/system-tables/query_thread_log.mdx delete mode 100644 reference/system-tables/query_views_log.mdx delete mode 100644 reference/system-tables/quota_limits.mdx delete mode 100644 reference/system-tables/quota_usage.mdx delete mode 100644 reference/system-tables/quotas.mdx delete mode 100644 reference/system-tables/quotas_usage.mdx delete mode 100644 reference/system-tables/replicas.mdx delete mode 100644 reference/system-tables/replicated_fetches.mdx delete mode 100644 reference/system-tables/replication_queue.mdx delete mode 100644 reference/system-tables/resources.mdx delete mode 100644 reference/system-tables/role_grants.mdx delete mode 100644 reference/system-tables/roles.mdx delete mode 100644 reference/system-tables/row_policies.mdx delete mode 100644 reference/system-tables/s3_queue_settings.mdx delete mode 100644 reference/system-tables/s3queue_log.mdx delete mode 100644 reference/system-tables/s3queue_metadata_cache.mdx delete mode 100644 reference/system-tables/scheduler.mdx delete mode 100644 reference/system-tables/session_log.mdx delete mode 100644 reference/system-tables/settings_profile_elements.mdx delete mode 100644 reference/system-tables/settings_profiles.mdx delete mode 100644 reference/system-tables/tables.mdx delete mode 100644 reference/system-tables/text_log.mdx delete mode 100644 reference/system-tables/transactions.mdx delete mode 100644 reference/system-tables/transactions_info_log.mdx delete mode 100644 reference/system-tables/user_defined_functions.mdx delete mode 100644 reference/system-tables/users.mdx delete mode 100644 reference/system-tables/view_refreshes.mdx delete mode 100644 reference/system-tables/zookeeper_info.mdx delete mode 100644 reference/system-tables/zookeeper_log.mdx create mode 100644 resources/about/navigation.json rename resources/changelogs/{cloud.mdx => cloud/2026.mdx} (97%) create mode 100644 resources/changelogs/navigation.json delete mode 100644 resources/contribute/index.mdx delete mode 100644 resources/contribute/native-protocol/columns.mdx rename resources/{contribute => develop-contribute/build}/build-cross-arm.mdx (100%) rename resources/{contribute => develop-contribute/build}/build-cross-loongarch.mdx (100%) rename resources/{contribute => develop-contribute/build}/build-cross-osx.mdx (94%) rename resources/{contribute => develop-contribute/build}/build-cross-riscv.mdx (100%) rename resources/{contribute => develop-contribute/build}/build-cross-s390x.mdx (97%) rename resources/{contribute => develop-contribute/build}/build-e2k.mdx (100%) rename resources/{contribute => develop-contribute/build}/build-osx.mdx (95%) rename resources/{contribute => develop-contribute/build}/build.mdx (98%) rename resources/{ => develop-contribute}/contribute/backports.mdx (100%) rename resources/{ => develop-contribute}/contribute/building-and-benchmarking-deflate-qpl.mdx (94%) rename resources/{ => develop-contribute}/contribute/continuous-integration.mdx (94%) rename resources/{ => develop-contribute}/contribute/contrib.mdx (100%) rename resources/{ => develop-contribute}/contribute/integrating-rust-libraries.mdx (100%) rename resources/{ => develop-contribute}/contribute/profile-guided-optimization.mdx (100%) rename resources/{ => develop-contribute}/contribute/style.mdx (99%) rename resources/{ => develop-contribute}/contribute/tests.mdx (99%) rename resources/{contribute => develop-contribute}/images/concurrency.png (100%) rename resources/{contribute => develop-contribute}/images/find-build-artifact.png (100%) create mode 100644 resources/develop-contribute/index.mdx rename resources/{contribute => develop-contribute/introduction}/architecture.mdx (98%) rename resources/{contribute => develop-contribute/introduction}/developer-instruction.mdx (98%) rename resources/{contribute => develop-contribute}/native-protocol/basics.mdx (100%) rename resources/{contribute => develop-contribute}/native-protocol/client.mdx (98%) create mode 100644 resources/develop-contribute/native-protocol/columns.mdx rename resources/{contribute => develop-contribute}/native-protocol/hash.mdx (100%) rename resources/{contribute => develop-contribute}/native-protocol/server.mdx (95%) create mode 100644 resources/develop-contribute/navigation.json rename resources/{contribute => develop-contribute}/roadmap.mdx (100%) create mode 100644 resources/support-center/navigation.json rename {get-started/oss/starter-guides => resources/support-center/troubleshooting}/troubleshooting.mdx (89%) delete mode 100644 scripts/__pycache__/generate-slug-map.cpython-314.pyc delete mode 100644 scripts/__pycache__/update_release_notes.cpython-314.pyc delete mode 100644 use-cases/index.mdx diff --git a/.claude/skills/migrate-docusaurus-to-mintlify/SKILL.md b/.claude/skills/migrate-docusaurus-to-mintlify/SKILL.md index ac1a5c9f..3e60a400 100644 --- a/.claude/skills/migrate-docusaurus-to-mintlify/SKILL.md +++ b/.claude/skills/migrate-docusaurus-to-mintlify/SKILL.md @@ -7,7 +7,7 @@ description: Use when migrating ClickHouse docs pages from Docusaurus (clickhous This skill describes the deterministic rules for converting a Docusaurus `.md`/`.mdx` page (source: `~/Desktop/clickhouse-docs/docs/**`) into a Mintlify page in this repo. The reference implementation lives at `~/Desktop/clickhouse-main` (a Mintlify-mapped snapshot Mintlify produced) — when in doubt, diff against it. -The migration is driven by a script at `scripts/migrate.py` (see the "Script" section). When the script can't decide, it leaves the original content with a `` marker; resolve those by hand using the rules below. +The migration is driven by a script at `_migration/migrate.py` (see the "Script" section). When the script can't decide, it leaves the original content with a `` marker; resolve those by hand using the rules below. ## Hard rules @@ -176,7 +176,7 @@ Snippet partials live at `docs/**/_snippets/*.md` in Docusaurus and migrate to ` ## 9. Slug map CSV (QA aid) -`scripts/generate-slug-map.py` writes `slug-map.csv` at the repo root. It pairs every Docusaurus slug with its Mintlify URL so a reviewer can open both pages side-by-side. +`_migration/generate-slug-map.py` writes `_migration/slug-map.csv`. It pairs every Docusaurus slug with its Mintlify URL so a reviewer can open both pages side-by-side. How it builds rows: 1. Walk the Docusaurus repo (`--docusaurus`, default `~/Desktop/clickhouse-docs`) and collect every `slug:`. @@ -197,14 +197,14 @@ Tracking columns: - `migrated_at` — UTC ISO timestamp of the last migration. Diagnostic only. - `manually_checked` (default `false`) — flip to `true` once a human has opened `old_url` and `new_url` side-by-side and confirmed parity. Never written by tools. -**Staleness rule:** a page is up-to-date iff `migrated == true` AND `migrated_hash == source_hash`. Any drift means the Docusaurus source has changed since the last migration → the page should be re-migrated. `scripts/migrate.py` enforces this by default; pass `--force` to override. +**Staleness rule:** a page is up-to-date iff `migrated == true` AND `migrated_hash == source_hash`. Any drift means the Docusaurus source has changed since the last migration → the page should be re-migrated. `_migration/migrate.py` enforces this by default; pass `--force` to override. The generator preserves all tracking columns (`migrated`, `migrated_hash`, `migrated_at`, `manually_checked`) when re-run, so it's safe to regenerate at any time without losing progress. Regenerate any time pages move or slugs change: ``` -python scripts/generate-slug-map.py -python scripts/generate-slug-map.py --docusaurus ~/Desktop/clickhouse-docs \ +python _migration/generate-slug-map.py +python _migration/generate-slug-map.py --docusaurus ~/Desktop/clickhouse-docs \ --mintlify-base https://private-7c7dfe99.mintlify.app ``` @@ -220,19 +220,19 @@ Do not change these inside the migration pass: ## Script -The migration script is `scripts/migrate.py`. Invocation: +The migration script is `_migration/migrate.py`. Invocation: ``` -python scripts/migrate.py # one file or dir -python scripts/migrate.py --all # whole repo -python scripts/migrate.py --dry-run -python scripts/migrate.py --all --force # re-migrate even up-to-date pages +python _migration/migrate.py # one file or dir +python _migration/migrate.py --all # whole repo +python _migration/migrate.py --dry-run +python _migration/migrate.py --all --force # re-migrate even up-to-date pages ``` **Standard workflow (incremental):** ``` -python scripts/generate-slug-map.py # refresh source_hash for all pages -python scripts/migrate.py --all # process only pages whose source changed +python _migration/generate-slug-map.py # refresh source_hash for all pages +python _migration/migrate.py --all # process only pages whose source changed ``` `generate-slug-map.py` recomputes every page's `source_hash`; `migrate.py` skips any page where `migrated=true` AND `migrated_hash == source_hash`. After a Docusaurus repo pull, run both in sequence and only the changed pages are re-touched. diff --git a/AGENTS.md b/AGENTS.md index f2a8321d..0a517b1e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,10 +1,9 @@ ## ClickHouse documentation -ClickHouse docs are stored in the `/docs` folder and use [Mintlify](https://www.mintlify.com/) to host the docs. +ClickHouse docs are stored in this folder. The documentation site at clickhouse.com/docs is hosted using the [Mintlify](https://www.mintlify.com/) documentation platform. -- Always make updates only to the English documentation in `/docs`. There is no need to update files in the `i18n` folder as an agent will handle the translation separately. -- Documentation inside of `{/*AUTOGENERATED_START*/}` and `{/*AUTOGENERATED_END*/}` tags is generated from ClickHouse system tables. - It should not be edited directly, but rather the source file should be updated in one of the following locations: +- Always make updates only to the english documentation in `/docs` (ignore `/i18n`). There is no need to update files in the `i18n` folder as an agent will handle the translation separately. +- Documentation inside of `{/*AUTOGENERATED_START*/}` and `{/*AUTOGENERATED_END*/}` tags is generated from ClickHouse system tables. It should not be edited directly, but rather the source file should be updated: - `/src/Functions` ## PR instructions diff --git a/_migration/README.md b/_migration/README.md new file mode 100644 index 00000000..360c5cad --- /dev/null +++ b/_migration/README.md @@ -0,0 +1,26 @@ +# Migration + +One-shot tooling and data used to migrate the ClickHouse docs from Docusaurus +to Mintlify. **This entire folder can be removed once the migration is +complete** — nothing in the live site depends on it at runtime. + +## Contents + +- `slug-map.csv` — pairing of every Docusaurus slug → Mintlify file/URL, with + source/migrated hashes for staleness tracking. +- `slug-aliases.csv` — manually-reviewed aliases for slugs that couldn't be + resolved automatically. +- `migrate.py` — main migration script. Reads `slug-map.csv`, applies + Mintlify-necessary transforms, writes the result. +- `generate-slug-map.py` — regenerates `slug-map.csv` from upstream Docusaurus + + this repo's current layout. +- `apply-slug-aliases.py` — rewrites `` markers + using `slug-aliases.csv`. +- `suggest-slug-aliases.py` — proposes alias candidates for unresolved slugs. +- `match_slugless.py` — finds Mintlify pages with no upstream slug match. +- `verify_mapping.py` — sanity-checks the slug map for duplicates/drift. +- `find_dup_imports.py` — detects MDX import conflicts caused by Mintlify + hoisting snippet imports into the parent bundle. + +See `.claude/skills/migrate-docusaurus-to-mintlify/SKILL.md` for the +migration workflow. \ No newline at end of file diff --git a/scripts/apply-slug-aliases.py b/_migration/apply-slug-aliases.py similarity index 93% rename from scripts/apply-slug-aliases.py rename to _migration/apply-slug-aliases.py index f32cbd3b..5015f413 100644 --- a/scripts/apply-slug-aliases.py +++ b/_migration/apply-slug-aliases.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Rewrite `` markers using scripts/slug-aliases.csv. +"""Rewrite `` markers using _migration/slug-aliases.csv. Reads the alias CSV produced by suggest-slug-aliases.py and rewrites every marker whose old_slug appears with a non-empty `suggested_target`. @@ -11,9 +11,9 @@ Fragments (`#anchor`) on the original link are preserved. Usage: - python scripts/apply-slug-aliases.py - python scripts/apply-slug-aliases.py --dry-run - python scripts/apply-slug-aliases.py --include-ambiguous + python _migration/apply-slug-aliases.py + python _migration/apply-slug-aliases.py --dry-run + python _migration/apply-slug-aliases.py --include-ambiguous """ from __future__ import annotations @@ -47,7 +47,7 @@ def split_frag(href: str) -> tuple[str, str]: def main(): ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) - ap.add_argument("--aliases", type=Path, default=THIS_REPO / "scripts" / "slug-aliases.csv") + ap.add_argument("--aliases", type=Path, default=THIS_REPO / "_migration" / "slug-aliases.csv") ap.add_argument("--dry-run", action="store_true") ap.add_argument("--include-ambiguous", action="store_true", help="also apply basename-ambiguous suggestions") diff --git a/scripts/find_dup_imports.py b/_migration/find_dup_imports.py similarity index 98% rename from scripts/find_dup_imports.py rename to _migration/find_dup_imports.py index 32d36edc..fd4bd6fe 100644 --- a/scripts/find_dup_imports.py +++ b/_migration/find_dup_imports.py @@ -116,7 +116,7 @@ def main(): pages = [] for p in REPO.rglob("*.mdx"): rel = p.relative_to(REPO).as_posix() - if rel.startswith((".claude/", "node_modules/", "scripts/")): + if rel.startswith((".claude/", "node_modules/", "_site/", "_migration/")): continue pages.append(p) diff --git a/_migration/find_orphans.py b/_migration/find_orphans.py new file mode 100644 index 00000000..56a6f7d8 --- /dev/null +++ b/_migration/find_orphans.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +"""Find .mdx pages on disk that have no entry in docs.json.""" +import json +from collections import defaultdict +from pathlib import Path + +REPO = Path("/Users/sstruw/Desktop/mintlify-docs-dev") +SKIP_DIRS = { + ".git", "node_modules", ".playwright-mcp", ".idea", ".mintlify", ".claude", + "snippets", "_snippets", "_site", "_migration", + "i18n", # localization, not in default nav +} +SKIP_NAMES = {"AGENTS.md", "README.md", "changelog_entry_guidelines.mdx"} +# Path prefixes whose pages are intentionally outside docs.json (e.g. wired +# via a dynamic explorer component instead of the sidebar nav). +SKIP_PREFIXES = ( + "core/get-started/quickstarts/", +) + + +def collect_disk_pages() -> set[str]: + pages = set() + for path in REPO.rglob("*"): + if not path.is_file(): + continue + if path.suffix not in {".mdx", ".md"}: + continue + parts = path.relative_to(REPO).parts + if set(parts) & SKIP_DIRS: + continue + # Skip partials (underscore-prefixed file or any underscore-prefixed dir) + if any(p.startswith("_") for p in parts): + continue + rel = path.relative_to(REPO).as_posix() + if rel in SKIP_NAMES or path.name == "README.md": + continue + ref = rel[:-4] if rel.endswith(".mdx") else rel[:-3] + if any(ref.startswith(p) for p in SKIP_PREFIXES): + continue + pages.add(ref) + return pages + + +def collect_docs_json_refs(node) -> set[str]: + refs = set() + + def visit(obj): + if isinstance(obj, list): + for item in obj: + visit(item) + elif isinstance(obj, dict): + # Follow $ref includes (e.g. products/kubernetes-operator/navigation.json) + if "$ref" in obj: + ref_path = obj["$ref"] + ref_file = REPO / ref_path + if ref_file.exists(): + visit(json.loads(ref_file.read_text())) + return + for k, v in obj.items(): + if k in ("pages", "groups"): + visit(v) + elif k == "root" and isinstance(v, str): + refs.add(v) + elif isinstance(v, (dict, list)): + visit(v) + elif isinstance(obj, str): + if obj.startswith(("http://", "https://", "/")): + return + if obj.endswith((".json", ".js", ".css", ".svg", ".png", ".jpg", ".ico")): + return + refs.add(obj) + + visit(node) + return refs + + +def main(): + docs_json = json.loads((REPO / "docs.json").read_text()) + disk = collect_disk_pages() + referenced = collect_docs_json_refs(docs_json) + + # A page referenced as `X` also covers `X/index` (Mintlify auto-routes both) + expanded = set(referenced) + for r in referenced: + expanded.add(r + "/index") + + orphans = sorted(disk - expanded) + + # Group by top-level section + by_section = defaultdict(list) + for o in orphans: + section = o.split("/", 1)[0] + by_section[section].append(o) + + print(f"Disk pages: {len(disk)}") + print(f"docs.json refs: {len(referenced)}") + print(f"Orphans: {len(orphans)}\n") + for section in sorted(by_section): + print(f"=== {section} ({len(by_section[section])}) ===") + for p in by_section[section]: + print(f" {p}") + print() + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/scripts/generate-slug-map.py b/_migration/generate-slug-map.py similarity index 97% rename from scripts/generate-slug-map.py rename to _migration/generate-slug-map.py index 9044da18..beea4c77 100644 --- a/scripts/generate-slug-map.py +++ b/_migration/generate-slug-map.py @@ -17,8 +17,8 @@ slug field. Usage: - python scripts/generate-slug-map.py - python scripts/generate-slug-map.py --docusaurus ~/Desktop/clickhouse-docs + python _migration/generate-slug-map.py + python _migration/generate-slug-map.py --docusaurus ~/Desktop/clickhouse-docs """ from __future__ import annotations @@ -117,7 +117,7 @@ def main(): help="path to clickhouse-docs (Docusaurus) repo") ap.add_argument("--mintlify", type=Path, default=THIS_REPO, help="path to Mintlify repo (default: this repo)") - ap.add_argument("--out", type=Path, default=THIS_REPO / "slug-map.csv") + ap.add_argument("--out", type=Path, default=THIS_REPO / "_migration" / "slug-map.csv") ap.add_argument("--old-base", default="https://clickhouse.com/docs") ap.add_argument("--mintlify-base", default="https://private-7c7dfe99.mintlify.app") args = ap.parse_args() diff --git a/scripts/match_slugless.py b/_migration/match_slugless.py similarity index 100% rename from scripts/match_slugless.py rename to _migration/match_slugless.py diff --git a/scripts/migrate.py b/_migration/migrate.py similarity index 94% rename from scripts/migrate.py rename to _migration/migrate.py index 8f8a9f4d..c4444d42 100644 --- a/scripts/migrate.py +++ b/_migration/migrate.py @@ -2,14 +2,14 @@ """Migrate Docusaurus pages in this repo into Mintlify form. Implements the rules in .claude/skills/migrate-docusaurus-to-mintlify/SKILL.md. -Reads slug-map.csv (from scripts/generate-slug-map.py) for slug -> URL lookups +Reads slug-map.csv (from _migration/generate-slug-map.py) for slug -> URL lookups and source-hash tracking. Usage: - python scripts/migrate.py # one file or directory - python scripts/migrate.py --all # every page in this repo - python scripts/migrate.py --dry-run # show what would change - python scripts/migrate.py --all --force # re-migrate even if up-to-date + python _migration/migrate.py # one file or directory + python _migration/migrate.py --all # every page in this repo + python _migration/migrate.py --dry-run # show what would change + python _migration/migrate.py --all --force # re-migrate even if up-to-date Incremental behavior: A page is skipped when slug-map.csv shows migrated=true AND its stored @@ -41,7 +41,7 @@ RUNNABLE_IMPORT = 'import { RunnableCode } from "/snippets/components/RunnableCode/RunnableCode.jsx";' IMAGE_IMPORT = 'import { Image } from "/snippets/components/Image.jsx";' ADMON_TAG = {"note": "Note", "tip": "Tip", "info": "Info", "warning": "Warning", - "caution": "Warning", "danger": "Warning"} + "caution": "Warning", "danger": "Warning", "important": "Warning"} # ----- lookups --------------------------------------------------------------- @@ -115,7 +115,7 @@ def build_lookups(slug_map_csv: Path) -> tuple[Lookups, list[dict]]: # alias's `old_slug` so the in-process link resolver can apply aliases # (the apply-slug-aliases.py script handles markers in already-written # files; this enables resolution during migration too). - aliases_csv = THIS_REPO / "scripts" / "slug-aliases.csv" + aliases_csv = THIS_REPO / "_migration" / "slug-aliases.csv" if aliases_csv.exists(): HIGH = {"basename-unique", "basename+parent-unique", "redirect-direct", "redirect-mapped", "manual"} @@ -365,7 +365,7 @@ def _override_newjson(text: str) -> str: ) replacement = ( '\n' + 'href="/core/concepts/best-practices/json-type" icon="book">\n' ' Check out our JSON best practice guide for examples, advanced features ' 'and considerations for using the JSON type.\n' '\n\n' @@ -398,10 +398,12 @@ def _override_librechat(text: str) -> str: def _override_java_client_versions(text: str) -> str: """Replace Docusaurus ... - with Mintlify blocks, one per version. + with Mintlify blocks, one per version. + is a built-in Mintlify component — no import required. It renders a + version-switcher dropdown using the `title` prop as the label. The `versions={[ {version: 'v0.8+'}, {version: 'v0.7.x'} ]}` array on the - opening tag drives the `view=` attribute on each , in order. + opening tag drives the `title=` attribute on each , in order. """ # Drop the now-stale MIGRATE comments left for the deleted imports. text = re.sub( @@ -426,12 +428,12 @@ def _override_java_client_versions(text: str) -> str: text = open_re.sub("", text, count=1) text = close_re.sub("", text, count=1) - # Replace each / in order with /. + # Replace each / in order with /. idx = [0] def open_repl(_): v = versions[idx[0]] if idx[0] < len(versions) else f"v{idx[0]}" idx[0] += 1 - return f'' + return f'' text = version_open_re.sub(open_repl, text) text = version_close_re.sub("", text) return text @@ -515,13 +517,111 @@ def _override_cloud_changelog_rss(text: str) -> str: ) +def _override_cloud_changelog_wrap_updates(text: str) -> str: + """Wrap each date section with Mintlify components. + + Upstream Docusaurus format (after standard transforms): + ## May 8, 2026 {#2026-05-08} + + ### Feature name {#feature-slug} + Content... + + Mintlify target format: + + + ### Feature name + Content... + + + + Also strips {#anchor} IDs from all headings since they become noise in + the changelog view. + """ + # Strip {#anchor} IDs from all headings — they become the Update label for + # ## headings and are decorative noise inside Update blocks for ### headings. + text = re.sub(r"^(#{1,6} .*?)\s+\{#[^}]+\}\s*$", r"\1", text, flags=re.MULTILINE) + + # Split on ## date headings — "## Month Day, Year" or "## Month Year" + date_heading_re = re.compile( + r"^## ([A-Z][a-z]+ \d{1,2},? \d{4})\s*$", + re.MULTILINE, + ) + parts = date_heading_re.split(text) + if len(parts) < 3: + return text # no date headings found — leave unchanged + + result = [parts[0]] + for i in range(1, len(parts), 2): + label = parts[i].strip() + content = parts[i + 1] if i + 1 < len(parts) else "" + result.append(f'\n\n\n{content.strip(chr(10))}\n\n\n') + + return "".join(result) + + +def _override_cloud_changelog_2026(text: str) -> str: + """Chain the RSS-admonition removal and the wrapper for 2026.""" + return _override_cloud_changelog_wrap_updates(_override_cloud_changelog_rss(text)) + + +def _override_reference_home(text: str) -> str: + """Replace the upstream SQL Reference index with a curated cards landing page. + + The upstream content is a plain SQL Reference intro that doesn't reflect the + broader Mintlify reference section structure. This override replaces it with + a CardGroup landing so re-migration stays idempotent — force-migrating will + always produce the same curated page regardless of upstream edits. + """ + # Preserve the canonical slug from the upstream frontmatter. + slug_match = re.search(r"^slug:\s*(.+)$", text, re.MULTILINE) + slug = slug_match.group(1).strip() if slug_match else "/sql-reference" + + return f"""--- +slug: {slug} +title: 'Reference' +sidebarTitle: 'Home' +description: 'Reference documentation for ClickHouse — SQL statements, data types, engines, functions, formats, settings, and system tables.' +keywords: ['clickhouse', 'reference', 'sql', 'data types', 'engines', 'functions', 'formats', 'settings'] +doc_type: 'landing-page' +--- + + + + SQL statements, clauses, operators, and syntax reference. + + + All supported data types including numeric, string, date/time, arrays, maps, and more. + + + Table and database engine reference — MergeTree family, Log, Integration, and Special engines. + + + Regular, aggregate, table, and window functions. + + + Input and output format reference for all supported data formats. + + + Server, session, and MergeTree settings reference. + + + System tables for monitoring, diagnostics, and introspection. + + + Data lake integration reference — Iceberg, Delta Lake, and Hudi. + + +""" + + POST_TRANSFORM_OVERRIDES: dict[str, callable] = { "docs/sql-reference/data-types/newjson.md": _override_newjson, "docs/use-cases/AI_ML/MCP/03_librechat.md": _override_librechat, "docs/integrations/language-clients/java/client/client.mdx": _override_java_client_versions, "docs/integrations/language-clients/java/jdbc/jdbc.mdx": _override_java_client_versions, "docs/integrations/data-ingestion/gcs/index.md": _override_gcs_s3_link, - "docs/cloud/reference/01_changelog/01_cloud_changelog/2026.md": _override_cloud_changelog_rss, + "docs/cloud/reference/01_changelog/01_cloud_changelog/2026.md": _override_cloud_changelog_2026, + "docs/sql-reference/index.md": _override_reference_home, "docs/getting-started/install/install.mdx": _override_install_selector, "docs/integrations/data-ingestion/clickpipes/mysql/source/rds_maria.md": _override_rds_maria_unclosed_fence, "docs/integrations/data-ingestion/data-formats/json/formats.md": _override_formats_arrays_jsonl, @@ -808,7 +908,7 @@ def replace(m: re.Match) -> str: # ----- admonitions ----------------------------------------------------------- ADMON_RE = re.compile( - r"^[ \t]*:::(?Pnote|tip|info|warning|caution|danger)" + r"^[ \t]*:::(?Pnote|tip|info|warning|caution|danger|important)" r"(?:\[(?P[^\]]+)\]| +(?P[^\n]+))?[ \t]*\n" r"(?P.*?)" r"^[ \t]*:::+[ \t]*$", # tolerate upstream typos like `::::`; do not match \n in trailing whitespace — it eats a blank line @@ -1649,7 +1749,7 @@ def migrate_file(path: Path, lk: Lookups, force: bool, dry_run: bool, docusaurus if docs_root.exists(): # Two-pass: first try direct suffix-from-root (same path layout), # then try basename match anywhere in docs/ (handles dir renames - # like interfaces/ -> reference/). + # like interfaces/ -> core/reference/). for start in range(len(rel_parts)): cand_md = docs_root / Path(*rel_parts[start:]) cand_md = cand_md.with_suffix(".md") if cand_md.suffix == ".mdx" else cand_md @@ -1789,7 +1889,7 @@ def migrate_file(path: Path, lk: Lookups, force: bool, dry_run: bool, docusaurus # Bridges the Docusaurus pattern of importing one .md page inline into # another (`@site/docs/sql-reference/statements/truncate.md`). Mintlify # can't import full pages, so this snippet holds the SQL-ref body and is - # consumed by `concepts/operations/delete/truncate.mdx`. Re-migrating it + # consumed by `concepts/features/operations/delete/truncate.mdx`. Re-migrating it # would replace the body with the wrapper page's content and break the # render. "snippets/truncate.mdx", @@ -1900,7 +2000,7 @@ def main(): ap.add_argument("--all", action="store_true", help="migrate every page in this repo") ap.add_argument("--dry-run", action="store_true") ap.add_argument("--force", action="store_true", help="re-migrate pages even if up-to-date") - ap.add_argument("--slug-map", type=Path, default=THIS_REPO / "slug-map.csv") + ap.add_argument("--slug-map", type=Path, default=THIS_REPO / "_migration" / "slug-map.csv") ap.add_argument("--docusaurus", type=Path, default=DEFAULT_DOCUSAURUS, help="path to the clickhouse-docs (Docusaurus) repo — content source of truth") ap.add_argument("--sync-assets", action="store_true", @@ -1920,7 +2020,7 @@ def main(): if not args.all and not args.path: ap.error("provide a path or pass --all (or --sync-assets)") if not args.slug_map.exists(): - ap.error(f"slug-map.csv not found at {args.slug_map}; run scripts/generate-slug-map.py first") + ap.error(f"slug-map.csv not found at {args.slug_map}; run _migration/generate-slug-map.py first") target = None if args.path: diff --git a/scripts/slug-aliases.csv b/_migration/slug-aliases.csv similarity index 60% rename from scripts/slug-aliases.csv rename to _migration/slug-aliases.csv index db65b043..f41bd18c 100644 --- a/scripts/slug-aliases.csv +++ b/_migration/slug-aliases.csv @@ -1,654 +1,654 @@ -old_slug,count,suggested_target,confidence,alternates -https://clickhouse.com/docs/knowledgebase/count-parts-by-type,1,/resources/support-center/knowledge-base/troubleshooting/count-parts-by-type,manual, -/integrations/language-clients/java/jdbc-v1,1,/integrations/language-clients/java/jdbc,manual, -/knowledgebase/async_vs_optimize_read_in_order,1,/resources/support-center/knowledge-base/performance-optimization/async-vs-optimize-read-in-order,manual, -/tutorial.md,1,/get-started/quickstarts/tutorial,manual, -/operations/utilities/clickhouse-local,1,/concepts/features/tools-and-utilities/clickhouse-local,manual, -https://clickhouse.com/docs/knowledgebase/terraform_example,1,/resources/support-center/knowledge-base/integrations/terraform-example,manual, -/cloud/getting-started/quick-start/cloud,1,/get-started/setup/cloud,manual, -https://clickhouse.com/docs/knowledgebase/why-clickhouse-is-so-fast,1,/get-started/about/why-clickhouse-is-so-fast,manual, -/knowledgebase/why-clickhouse-is-so-fast,1,/get-started/about/why-clickhouse-is-so-fast,manual, -/sql-reference,1,/reference/home,manual, -/faq/integration/oracle-odbc.md,1,/resources/support-center/knowledge-base/integrations/oracle-odbc,manual, -/faq/integration/oracle-odbc,1,/resources/support-center/knowledge-base/integrations/oracle-odbc,manual, -/knowledgebase/view_number_of_active_mutations,1,/resources/support-center/knowledge-base/monitoring-debugging/view-number-of-active-mutations,manual, -/optimize/avoid-mutations,1,/concepts/best-practices/avoid-mutations,manual, -https://clickhouse.com/docs/knowledgebase/configure_cap_ipc_lock_and_cap_sys_nice_in_docker,1,/resources/support-center/knowledge-base/troubleshooting/configure-cap-ipc-lock-and-cap-sys-nice-in-docker,manual, -/knowledgebase/configure_cap_ipc_lock_and_cap_sys_nice_in_docker,1,/resources/support-center/knowledge-base/troubleshooting/configure-cap-ipc-lock-and-cap-sys-nice-in-docker,manual, -/faq/operations/multi-region-replication.md,1,/resources/support-center/knowledge-base/cloud-services/multi-region-replication,manual, -/faq/operations/multi-region-replication,1,/resources/support-center/knowledge-base/cloud-services/multi-region-replication,manual, -/faq/operations/delete-old-data.md,1,/resources/support-center/knowledge-base/tables-schema/delete-old-data,manual, -/faq/operations/delete-old-data,1,/resources/support-center/knowledge-base/tables-schema/delete-old-data,manual, -/faq/operations/production.md,1,/resources/support-center/knowledge-base/setup-installation/production,manual, -/faq/operations/production,1,/resources/support-center/knowledge-base/setup-installation/production,manual, -/sql-reference/formats.md,1,/reference/formats,manual, -/sql-reference/formats.mdx,1,/reference/formats,manual, -/cloud/security/secure-s3,1,/products/cloud/guides/data-sources/accessing-s3-data-securely,manual, -https://clickhouse.com/docs/guides/sre/configuring-ssl,1,/concepts/features/security/tls/configuring-tls,manual, -https://clickhouse.com/docs/guides/sre/configuring-ssl/,1,/concepts/features/security/tls/configuring-tls,manual, -https://clickhouse.com/docs/integrations/language-clients/javascript#custom-httphttps-agent-experimental-nodejs-only,1,/integrations/language-clients/javascript/usage#custom-httphttps-agent-experimental-nodejs-only,manual, -/interfaces/,1,/integrations/connectors/data-integrations/drivers-and-interfaces/overview,manual, -https://clickhouse.com/docs/interfaces,1,/integrations/connectors/data-integrations/drivers-and-interfaces/overview,manual, -https://clickhouse.com/docs/knowledgebase/certificate_verify_failed_error,2,/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error,manual, -/docs/knowledgebase/certificate_verify_failed_error,2,/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error,manual, -https://clickhouse.com/docs/optimize/avoidoptimizefinal,2,/concepts/best-practices/avoid-optimize-final,manual, -/optimize/avoidoptimizefinal,2,/concepts/best-practices/avoid-optimize-final,manual, -/cloud/manage/api/usageCost-api-reference,2,/api-reference/billing/get-organization-usage-costs,manual, -/cloud/security/cloud-access-management/overview,2,/products/cloud/guides/security/cloud-access-management/manage-database-users,manual, -/integrations/connectors/data-integrations/drivers-and-interfaces/formats,5,/reference/formats,manual, -https://clickhouse.com/docs/sql-reference/formats,5,/reference/formats,manual, -https://clickhouse.com/docs/sql-reference/formats/,5,/reference/formats,manual, -/sql-reference/formats,5,/reference/formats,manual, -https://clickhouse.com/docs/faq/general/datalake,1,/resources/support-center/knowledge-base/general-faqs/datalake,manual, -/faq/general/datalake,1,/resources/support-center/knowledge-base/general-faqs/datalake,manual, -https://clickhouse.com/docs/faq/general/faq-index,1,/resources/support-center/knowledge-base/general-faqs/faq-index,manual, -/faq/general/faq-index,1,/resources/support-center/knowledge-base/general-faqs/faq-index,manual, -https://clickhouse.com/docs/faq/general/separate-storage,1,/resources/support-center/knowledge-base/general-faqs/separate-storage,manual, -/faq/general/separate-storage,1,/resources/support-center/knowledge-base/general-faqs/separate-storage,manual, -https://clickhouse.com/docs/faq/general/time-series,1,/resources/support-center/knowledge-base/general-faqs/time-series,manual, -/faq/general/time-series,1,/resources/support-center/knowledge-base/general-faqs/time-series,manual, -https://clickhouse.com/docs/faq/general/concurrency,1,/resources/support-center/knowledge-base/general-faqs/concurrency,manual, -/faq/general/concurrency,1,/resources/support-center/knowledge-base/general-faqs/concurrency,manual, -https://clickhouse.com/docs/faq/general/key-value,1,/resources/support-center/knowledge-base/general-faqs/key-value,manual, -/faq/general/key-value,1,/resources/support-center/knowledge-base/general-faqs/key-value,manual, -https://clickhouse.com/docs/faq/general/cost-based,1,/resources/support-center/knowledge-base/general-faqs/cost-based,manual, -/faq/general/cost-based,1,/resources/support-center/knowledge-base/general-faqs/cost-based,manual, -https://clickhouse.com/docs/faq/general/who-is-using-clickhouse,1,/resources/support-center/knowledge-base/general-faqs/who-is-using-clickhouse,manual, -/faq/general/who-is-using-clickhouse,1,/resources/support-center/knowledge-base/general-faqs/who-is-using-clickhouse,manual, -https://clickhouse.com/docs/faq/general/distributed-join,1,/resources/support-center/knowledge-base/general-faqs/distributed-join,manual, -/faq/general/distributed-join,1,/resources/support-center/knowledge-base/general-faqs/distributed-join,manual, -https://clickhouse.com/docs/faq/general/updates,1,/resources/support-center/knowledge-base/general-faqs/updates,manual, -/faq/general/updates,1,/resources/support-center/knowledge-base/general-faqs/updates,manual, -https://clickhouse.com/docs/faq/general/why-recommend-clickhouse-keeper-over-zookeeper,1,/resources/support-center/knowledge-base/general-faqs/why-recommend-clickhouse-keeper-over-zookeeper,manual, -/faq/general/why-recommend-clickhouse-keeper-over-zookeeper,1,/resources/support-center/knowledge-base/general-faqs/why-recommend-clickhouse-keeper-over-zookeeper,manual, -https://clickhouse.com/docs/faq/general/dependencies,1,/resources/support-center/knowledge-base/general-faqs/dependencies,manual, -/faq/general/dependencies,1,/resources/support-center/knowledge-base/general-faqs/dependencies,manual, -https://clickhouse.com/docs/faq/general/use-cases-index,1,/resources/support-center/knowledge-base/general-faqs/use-cases-index,manual, -/faq/general/use-cases-index,1,/resources/support-center/knowledge-base/general-faqs/use-cases-index,manual, -https://clickhouse.com/docs/faq/general/olap,1,/resources/support-center/knowledge-base/general-faqs/olap,manual, -/faq/general/olap,1,/resources/support-center/knowledge-base/general-faqs/olap,manual, -https://clickhouse.com/docs/faq/general/ne-tormozit,1,/resources/support-center/knowledge-base/general-faqs/ne-tormozit,manual, -/faq/general/ne-tormozit,1,/resources/support-center/knowledge-base/general-faqs/ne-tormozit,manual, -https://clickhouse.com/docs/faq/general/dbms-naming,1,/resources/support-center/knowledge-base/general-faqs/dbms-naming,manual, -/faq/general/dbms-naming,1,/resources/support-center/knowledge-base/general-faqs/dbms-naming,manual, -https://clickhouse.com/docs/faq/general/use-clickhouse-for-log-analytics,1,/resources/support-center/knowledge-base/general-faqs/use-clickhouse-for-log-analytics,manual, -/faq/general/use-clickhouse-for-log-analytics,1,/resources/support-center/knowledge-base/general-faqs/use-clickhouse-for-log-analytics,manual, -https://clickhouse.com/docs/faq/general/columnar-database,1,/resources/support-center/knowledge-base/general-faqs/columnar-database,manual, -/faq/general/columnar-database,1,/resources/support-center/knowledge-base/general-faqs/columnar-database,manual, -https://clickhouse.com/docs/faq/general/sql,1,/resources/support-center/knowledge-base/general-faqs/sql,manual, -/faq/general/sql,1,/resources/support-center/knowledge-base/general-faqs/sql,manual, -https://clickhouse.com/docs/faq/general/index,1,/resources/support-center/knowledge-base/general-faqs/index,manual, -/faq/general/index,1,/resources/support-center/knowledge-base/general-faqs/index,manual, -https://clickhouse.com/docs/faq/general/mapreduce,1,/resources/support-center/knowledge-base/general-faqs/mapreduce,manual, -/faq/general/mapreduce,1,/resources/support-center/knowledge-base/general-faqs/mapreduce,manual, -https://clickhouse.com/docs/faq/general/vector-search,1,/resources/support-center/knowledge-base/general-faqs/vector-search,manual, -/faq/general/vector-search,1,/resources/support-center/knowledge-base/general-faqs/vector-search,manual, -https://clickhouse.com/docs/faq/general/how-do-i-contribute-code-to-clickhouse,1,/resources/support-center/knowledge-base/general-faqs/how-do-i-contribute-code-to-clickhouse,manual, -/faq/general/how-do-i-contribute-code-to-clickhouse,1,/resources/support-center/knowledge-base/general-faqs/how-do-i-contribute-code-to-clickhouse,manual, -https://clickhouse.com/docs/faq/general/federated,1,/resources/support-center/knowledge-base/general-faqs/federated,manual, -/faq/general/federated,1,/resources/support-center/knowledge-base/general-faqs/federated,manual, -https://clickhouse.com/docs/faq/general/operations-index,1,/resources/support-center/knowledge-base/general-faqs/operations-index,manual, -/faq/general/operations-index,1,/resources/support-center/knowledge-base/general-faqs/operations-index,manual, -https://clickhouse.com/docs/get-started/quick-start,2,/get-started/setup/overview,manual, -/integrations/data-formats/json,2,/integrations/connectors/data-ingestion/data-formats/json/intro,manual, -/knowledgebase,4,/resources/support-center/home,manual, -/language-clients/javascript,5,/integrations/language-clients/javascript/overview,manual, -/language-clients/javascript/release-notes,5,/integrations/language-clients/javascript/release-notes,manual, -/language-clients/javascript/reference,5,/integrations/language-clients/javascript/reference,manual, -/language-clients/javascript/examples,5,/integrations/language-clients/javascript/examples,manual, -/language-clients/javascript/usage,5,/integrations/language-clients/javascript/usage,manual, -/use-cases/observability/clickstack/deployment/overview,1,/products/clickstack/deployment/overview,manual, -/products/clickhouse-private,1,/products/clickhouse-private/deployment/bare-metal,manual, -/docs/products/clickhouse-private,1,/products/clickhouse-private/deployment/bare-metal,manual, -/docs/products/clickhouse-private/operational-guide,1,/products/clickhouse-private/management/operational-guide,manual, -/docs/products/clickhouse-private/howto-guides,1,/products/clickhouse-private/management/howto-guides,manual, -/docs/products/clickhouse-private/faq,1,/products/clickhouse-private/management/faq,manual, -/docs/products/clickhouse-private/breaking-changes,1,/products/clickhouse-private/overview/breaking-changes,manual, -/docs/products/clickhouse-private/api,1,/products/clickhouse-private/management/api,manual, -/docs/products/clickhouse-private/government,4,/products/clickhouse-private/deployment/government,manual, -/docs/products/clickhouse-private/bare-metal,4,/products/clickhouse-private/deployment/bare-metal,manual, -/docs/products/clickhouse-private/gcp,4,/products/clickhouse-private/deployment/gcp,manual, -/engines/table-engines/mergetree-family/textindexes,4,/reference/engines/table-engines/mergetree-family/textindexes,manual, -/click-stack/use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud,4,/products/clickstack/deployment/managed,manual, -/getting-started/quick-start,7,/get-started/setup/overview,manual, -/operations/settings/settings-formats.md/#input_format_skip_unknown_fields,12,,no-match, -/integrations/data-visualization/metabase-and-clickhouse.md,10,/integrations/connectors/data-visualization/metabase-and-clickhouse,basename-unique, -/integrations/language-clients/java/client/client.mdx,9,/integrations/connectors/data-integrations/drivers-and-interfaces/client,basename-ambiguous,/integrations/language-clients/java/client | /resources/contribute/native-protocol/client -/engines/table-engines/mergetree-family/mergetree.md/#table_engine-mergetree-s3,8,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -/getting-started/install/install.mdx,8,/get-started/install/install,basename+parent-unique,/products/chdb/install -/knowledgebase/aws-privatelink-setup-for-clickpipes,8,,no-match, -/integrations/data-ingestion/data-formats/json/intro.md,8,/integrations/connectors/data-ingestion/data-formats/json/intro,basename+parent-unique,/get-started/about/intro | /integrations/connectors/data-ingestion/data-formats/intro | /products/clickstack/migration/elastic/intro | /products/cloud/getting-started/intro -/get-started/quick-start,7,/get-started/setup/overview,manual, -/operations/settings/settings-formats.md/#input_format_with_names_use_header,7,,no-match, -/integrations/data-ingestion/clickpipes/mysql/faq.md,7,/integrations/clickpipes/mysql/faq,basename+parent-unique,/integrations/clickpipes/kafka/faq | /integrations/clickpipes/mongodb/faq | /integrations/clickpipes/postgres/faq | /products/bring-your-own-cloud/reference/faq | /products/clickstack/faq | /products/cloud/features/backups/faq | /products/managed-postgres/faq -/integrations/data-ingestion/kafka/index.md,7,/integrations/connectors/data-ingestion/kafka,basename+parent-unique,/integrations/clickpipes/kafka | /reference/engines/table-engines/integrations/kafka -/get-started/quickstarts/create-your-first-mergetree-table,6,,no-match, -/operations/settings/settings-formats.md/#input_format_import_nested_json,6,,no-match, -/operations/settings/settings-formats.md/#input_format_defaults_for_omitted_fields,6,,no-match, -/operations/storing-data.md/#using-local-cache,6,/concepts/features/configuration/server-config/storing-data,basename-unique, -/integrations/data-ingestion/etl-tools/dbt/index.md,5,/integrations/connectors/data-ingestion/etl-tools/dbt,basename-unique, -/sql-reference/functions/string-search-functions.md/#hasToken,5,/reference/functions/regular-functions/string-search-functions,basename-unique, -/sql-reference/functions/string-search-functions.md/#hasAllTokens,5,/reference/functions/regular-functions/string-search-functions,basename-unique, -/sql-reference/functions/string-search-functions.md/#hasAnyTokens,5,/reference/functions/regular-functions/string-search-functions,basename-unique, -/operations/settings/settings.md/#mutations_sync,5,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/settings/settings-formats.md/#format_csv_delimiter,5,,no-match, -/use-cases/observability/clickstack/production,5,/use-cases/observability/clickstack/managing/production,redirect-direct, -/engines/table-engines/mergetree-family/mergetree.md/#mergetree-data-storage,5,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -https://clickhouse.com/docs/cloud/manage/api/swagger#tag/ClickPipes/paths/~1v1~1organizations~1%7BorganizationId%7D~1services~1%7BserviceId%7D~1clickpipes/post,5,/api-reference/organization/get-list-of-available-organizations,manual, -/cloud/manage/api/swagger,5,/api-reference/organization/get-list-of-available-organizations,manual, -/guides/sre/user-management/index.md,4,,no-match, -/engines/table-engines/mergetree-family/invertedindexes,4,/reference/engines/table-engines/mergetree-family/textindexes,manual, -https://clickhouse.com/docs/en/sql-reference/statements/alter/projection,4,/reference/statements/alter/projection,basename-unique, -/get-started/quickstarts/build-etl-pipeline-using-clickhouse,4,,no-match, -/sql-reference/statements/alter/skipping-index.md/#materialize-index,4,/reference/statements/alter/skipping-index,basename-unique, -/operations/settings/settings-formats.md/#output_format_json_quote_64bit_integers,4,,no-match, -/operations/settings/settings-formats.md/#output_format_json_quote_denormals,4,,no-match, -/operations/settings/settings-formats.md/#output_format_json_array_of_rows,4,,no-match, -/operations/settings/settings-formats.md/#format_tsv_null_representation,4,,no-match, -https://clickhouse.com/docs,4,,no-match, -/knowledgebase/,4,/resources/support-center/home,manual, -/managed-postgres/read-replicas,4,/products/managed-postgres/read-replicas,basename-unique, -/managed-postgres/high-availability,4,/products/managed-postgres/high-availability,basename-unique, -/managed-postgres/connection,4,/products/managed-postgres/connection,basename-unique, -/use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud,4,/products/clickstack/deployment/managed,manual, -/get-started/quickstarts/obtain-your-cloud-connection-details,3,,no-match, -/get-started/quickstarts/create-your-first-service-on-cloud,3,,no-match, -/knowledgebase/exception-too-many-parts,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_read_bools_as_numbers,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_read_bools_as_strings,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_read_numbers_as_strings,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_read_arrays_as_strings,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_read_objects_as_strings,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_named_tuples_as_objects,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_try_infer_numbers_from_strings,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_try_infer_named_tuples_from_objects,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_infer_incomplete_types_as_strings,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_defaults_for_missing_elements_in_named_tuple,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_ignore_unknown_keys_in_named_tuple,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_compact_allow_variable_number_of_columns,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_throw_on_bad_escape_sequence,3,,no-match, -/operations/settings/settings-formats.md/#input_format_json_empty_as_default,3,,no-match, -/operations/settings/settings-formats.md/#output_format_json_quote_64bit_floats,3,,no-match, -/operations/settings/settings-formats.md/#output_format_json_quote_decimals,3,,no-match, -/operations/settings/settings-formats.md/#output_format_json_escape_forward_slashes,3,,no-match, -/operations/settings/settings-formats.md/#output_format_json_named_tuples_as_objects,3,,no-match, -/operations/settings/settings-formats.md/#output_format_json_validate_utf8,3,,no-match, -/operations/storing-data.md/#configuring-external-storage,3,/concepts/features/configuration/server-config/storing-data,basename-unique, -/sql-reference/functions/tuple-map-functions.md/#mapValues,3,/reference/functions/regular-functions/tuple-map-functions,basename-unique, -/sql-reference/functions/string-search-functions.md/#match,3,/reference/functions/regular-functions/string-search-functions,basename-unique, -/sql-reference/functions/string-functions.md/#startsWith,3,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-functions.md/#endsWith,3,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-search-functions.md/#hasTokenOrNull,3,/reference/functions/regular-functions/string-search-functions,basename-unique, -/guides/sre/keeper/index.md,3,/guides/oss/deployment-and-scaling/keeper,basename-unique, -/sql-reference/statements/create/table.md/#default,3,/reference/statements/create/table,basename-unique, -/operations/settings/settings-formats.md/#input_format_with_types_use_header,3,,no-match, -/sql-reference/data-types/nested-data-structures/index.md,3,/reference/data-types/nested-data-structures,basename-unique, -/sql-reference/dictionaries#dictionary-sources,3,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/sql-reference/dictionaries,3,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -https://clickhouse.com/docs/introduction/distinctive-features/#data-compression,3,/get-started/about/distinctive-features,basename-unique, -/whats-new/changelog/2019.md/#experimental-features-1,3,/resources/changelogs/oss/2019,basename-unique, -/language-clients/javascript/usage#streaming-files-nodejs-only,3,/products/cloud/guides/best-practices/usagelimits,contains-unique, -https://clickhouse.com/docs/cloud/manage/api/swagger#tag/ClickPipes,3,,no-match, -/sql-reference/functions/files.md/#file,3,/reference/functions/regular-functions/files,basename-unique, -/managed-postgres/quickstart,3,/products/managed-postgres/quickstart,basename+parent-unique,/integrations/clickpipes/mongodb/quickstart | /products/chdb/datastore/quickstart -/use-cases/observability/clickstack/production#configure-ttl,3,/use-cases/observability/clickstack/managing/production,redirect-direct, -/chdb/datastore/guides/pandas-performance,3,/products/chdb/guides/pandas-performance,basename-unique, -/get-started/quickstarts/create-your-first-materialized-view,2,,no-match, -/get-started/quickstarts/insert-data-using-clickhouse-client,2,,no-match, -https://clickhouse.com/docs/en/interfaces/formats,2,/reference/formats,manual,/integrations/connectors/data-integrations/drivers-and-interfaces/formats | /reference/formats | /reference/settings/formats | /reference/system-tables/formats -/operations/settings/settings.md/#materialize_skip_indexes_on_insert,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/server-configuration-parameters/settings.md/#background_pool_size,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/server-configuration-parameters/settings.md/#background_merges_mutations_concurrency_ratio,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/settings/settings-formats.md/#format_regexp_escaping_rule,2,,no-match, -/sql-reference/aggregate-functions/reference/anyLast.md,2,/sql-reference/aggregate-functions/reference/anyLast,redirect-direct, -/engines/table-engines/mergetree-family/mergetree.md/#projections,2,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -/sql-reference/aggregate-functions/reference/argMin.md,2,/sql-reference/aggregate-functions/reference/argMin,redirect-direct, -/sql-reference/aggregate-functions/reference/argMax.md,2,/sql-reference/aggregate-functions/reference/argMax,redirect-direct, -/operations/settings/settings.md/#join_use_nulls,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/sql-reference/functions/splitting-merging-functions.md/#tokens,2,/reference/functions/regular-functions/splitting-merging-functions,basename-unique, -/sql-reference/functions/string-functions.md/#lower,2,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-functions.md/#lowerUTF8,2,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-functions.md/#normalizeUTF8NFC,2,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-functions.md/#normalizeUTF8NFD,2,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-functions.md/#normalizeUTF8NFKC,2,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-functions.md/#normalizeUTF8NFKD,2,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-functions.md/#toValidUTF8,2,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-functions.md/#extractTextFromHTML,2,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-functions.md/#substring,2,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-functions.md/#idnaEncode,2,/reference/functions/regular-functions/string-functions,basename-unique, -/engines/table-engines/mergetree-family/mergetree.md/#skip-index-types,2,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -/sql-reference/functions/tuple-map-functions.md/#mapKeys,2,/reference/functions/regular-functions/tuple-map-functions,basename-unique, -/sql-reference/functions/json-functions.md/#JSONAllPaths,2,/reference/functions/regular-functions/json-functions,basename-unique, -/sql-reference/functions/tuple-map-functions.md/#mapvalues,2,/reference/functions/regular-functions/tuple-map-functions,basename-unique, -/sql-reference/functions/string-search-functions.md/#like,2,/reference/functions/regular-functions/string-search-functions,basename-unique, -/operations/server-configuration-parameters/settings.md/#background_schedule_pool_size,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/engines/table-engines/mergetree-family/mergetree.md/#table_engine-mergetree-multiple-volumes,2,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -/sql-reference/statements/insert-into.md/#inserting-the-results-of-select,2,/reference/statements/insert-into,basename-unique, -/sql-reference/dictionaries#storing-dictionaries-in-memory,2,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime,2,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/operations/settings/settings-formats.md/#input_format_json_validate_types_from_metadata,2,,no-match, -/operations/settings/settings-formats.md/#format_json_object_each_row_column_for_object_name,2,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_enum_as_number,2,,no-match, -/operations/settings/settings-formats.md/#output_format_csv_crlf_end_of_line,2,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_skip_first_lines,2,,no-match, -/operations/settings/settings-formats.md/#input_format_tsv_enum_as_number,2,,no-match, -/operations/settings/settings-formats.md/#input_format_tsv_skip_first_lines,2,,no-match, -/operations/server-configuration-parameters/settings.md/#format_schema_path,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/settings/settings-formats.md/#output_format_pretty_display_footer_column_names,2,,no-match, -/guides/developer/on-the-fly-mutations,2,/guides/developer/on-fly-mutations,redirect-direct, -/integrations/gcs,2,/integrations/data-ingestion/gcs,redirect-direct, -/engines/table-engines/mergetree-family/mergetree.md/#primary-keys-and-indexes-in-queries,2,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -/knowledgebase/key-value,2,/resources/support-center/knowledge-base/general-faqs/key-value,basename-unique, -/interfaces/third-party/client-libraries.md,2,,no-match, -https://clickhouse.com/docs/knowledgebase/production#how-to-choose-between-clickhouse-releases,2,/resources/support-center/knowledge-base/setup-installation/production,basename-unique, -/integrations/language-clients/java/jdbc-v1#configuring-http-library,2,,no-match, -/language-clients/javascript/usage#keep-alive-configuration-nodejs-only,2,/products/cloud/guides/best-practices/usagelimits,contains-unique, -/language-clients/javascript/usage#custom-httphttps-agent-experimental-nodejs-only,2,/products/cloud/guides/best-practices/usagelimits,contains-unique, -/language-clients/javascript/usage#supported-data-formats,2,/products/cloud/guides/best-practices/usagelimits,contains-unique, -/integrations/mysql,2,/integrations/data-sources/mysql,redirect-direct, -//cloud/get-started/query-endpoints.md,2,/products/cloud/features/sql-console-features/query-endpoints,basename-ambiguous,/products/cloud/guides/sql-console/query-endpoints -/sql-reference/statements/insert-into.md/#inserting-data-from-a-file,2,/reference/statements/insert-into,basename-unique, -/engines/table-engines/integrations/s3.md/#settings,2,/reference/engines/table-engines/integrations/s3,basename+parent-unique,/reference/functions/table-functions/s3 -/integrations/data-ingestion/dbms/jdbc-with-clickhouse.md,2,/integrations/connectors/data-ingestion/jdbc-with-clickhouse,basename-unique, -https://clickhouse.com/docs/en/sql-reference/table-functions/view/,2,/reference/functions/table-functions/view,basename+parent-unique,/reference/engines/table-engines/special/view | /reference/statements/alter/view | /reference/statements/create/view -https://clickhouse.com/docs/en/operations/system-tables/tables/,2,/reference/system-tables/tables,basename-unique, -/knowledgebase/how-to-connect-to-ch-cloud-using-ssh-keys,2,,no-match, -/whats-new/cloud,2,/cloud/reference/changelog/changelog,redirect-direct, -https://clickhouse.com/docs/cloud/security/cloud-access-management/overview,2,/products/cloud/guides/security/cloud-access-management/manage-database-users,manual,/concepts/features/configuration/settings/overview | /concepts/operations/delete/overview | /concepts/operations/update/overview | /get-started/migration-guides/bigquery/overview | /get-started/migration-guides/elastic/overview -https://clickhouse.com/docs/cloud/manage/api/usageCost-api-reference,2,/api-reference/billing/get-organization-usage-costs,manual, -/integrations/data-visualization/grafana/index.md,2,/integrations/connectors/data-visualization/grafana,basename+parent-unique,/guides/observability/build-your-own/grafana -/interfaces/cli.md/#cli-queries-with-parameters,2,/integrations/connectors/data-integrations/drivers-and-interfaces/cli,basename-ambiguous,/products/cloud/features/cli -/knowledgebase/useful-queries-for-troubleshooting,2,,no-match, -/knowledgebase/certificate_verify_failed_error,2,/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error,manual, -/faq/general/why-clickhouse-is-so-fast,2,/get-started/about/why-clickhouse-is-so-fast,basename-unique, -https://clickhouse.com/docs/integrations/data-formats/json,2,/integrations/connectors/data-ingestion/data-formats/json/intro,manual,/integrations/connectors/data-ingestion/data-formats/json/exporting | /integrations/connectors/data-ingestion/data-formats/json/formats | /integrations/connectors/data-ingestion/data-formats/json/inference | /integrations/connectors/data-ingestion/data-formats/json/intro | /integrations/connectors/data-ingestion/data-formats/json/loading -/chdb/guides/querying-pandas,2,/products/chdb/guides/querying-pandas,basename-unique, -/managed-postgres/overview,2,/products/managed-postgres/overview,basename+parent-unique,/concepts/features/backup-restore/overview | /concepts/features/configuration/settings/overview | /concepts/operations/delete/overview | /concepts/operations/update/overview | /get-started/migration-guides/bigquery/overview | /get-started/migration-guides/elastic/overview | /get-started/migration-guides/overview | /get-started/migration-guides/postgres/overview | /get-started/migration-guides/redshift/overview | /get-started/migration-guides/snowflake/overview | /get-started/use-cases/overview | /guides/data-warehousing/getting-started/overview | /integrations/clickpipes/bigquery/overview | /integrations/clickpipes/kinesis/overview | /integrations/clickpipes/object-storage/amazon-s3/overview | /integrations/clickpipes/object-storage/azure-blob-storage/overview | /integrations/clickpipes/object-storage/google-cloud-storage/overview | /integrations/connectors/data-ingestion/azure/azure-data-factory/overview | /integrations/connectors/data-integrations/drivers-and-interfaces/overview | /integrations/language-clients/csharp/overview | /products/clickstack/features/dashboards/overview | /products/clickstack/ingesting-data/overview | /products/clickstack/overview | /products/cloud/features/autoscaling/overview | /products/cloud/features/backups/overview | /products/cloud/features/monitoring/overview | /products/cloud/guides/infrastructure/deployment-options/byoc/overview | /products/cloud/reference/billing/marketplace/overview | /products/kubernetes-operator/overview | /reference/functions/regular-functions/overview | /reference/statements/create/dictionary/layouts/overview | /reference/statements/create/dictionary/sources/overview | /reference/system-tables/overview -/managed-postgres/backup-and-restore,2,/products/managed-postgres/backup-and-restore,basename-unique, -/managed-postgres/settings,2,/products/managed-postgres/settings,basename+parent-unique,/products/cloud/reference/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/cloud/reference/byoc/architecture,2,/cloud/guides/infrastructure/deployment_options/byoc/architecture,redirect-direct, -https://clickhouse.com/docs/cloud/manage/api/swagger#/paths/~1v1~1organizations~1:organizationId~1services~1:serviceId~1scaling/patch,2,,no-match, -/managed-postgres/quickstart#create-postgres-database,2,/products/managed-postgres/quickstart,basename+parent-unique,/integrations/clickpipes/mongodb/quickstart | /products/chdb/datastore/quickstart -/use-cases/observability/clickstack/ingesting-data/kubernetes#forwarding-resouce-tags-to-pods,2,/products/clickstack/example-datasets/kubernetes,basename-ambiguous,/products/clickstack/integration-examples/kubernetes -/examples/host-logs-dashboard.json,2,,no-match, -https://clickhouse.com/docs/en/sql-reference/data-types/aggregatefunction,2,/reference/data-types/aggregatefunction,basename-unique, -/chdb/datastore/debugging,2,/products/chdb/debugging,basename-unique, -/chdb/datastore/guides/pandas-differences,2,/products/chdb/guides/pandas-differences,basename-unique, -/chdb/datastore/guides/migration-from-pandas,2,/products/chdb/guides/migration-from-pandas,basename-unique, -/getting-started/index.md,1,/products/chdb/getting-started,basename-ambiguous,/products/clickstack/getting-started -https://clickhouse.com/docs/knowledgebase/fix-developer-verification-error-in-macos,1,,no-match, -https://clickhouse.com/docs/knowledgebase/why_default_logging_verbose,1,,no-match, -/integrations/data-ingestion/s3/index.md,1,/reference/engines/table-engines/integrations/s3,basename-ambiguous,/reference/functions/table-functions/s3 -https://clickhouse.com/docs/en/sql-reference/table-functions/url,1,/reference/functions/table-functions/url,basename+parent-unique,/reference/engines/table-engines/special/url -/sql-reference/functions/geo/coordinates.md/#pointinpolygon,1,/reference/functions/regular-functions/geo/coordinates,basename-unique, -/get-started/quickstarts/create-your-first-projection,1,,no-match, -https://clickhouse.com/docs/en/sql-reference/statements/create/view#materialized-view,1,/reference/statements/create/view,basename+parent-unique,/reference/engines/table-engines/special/view | /reference/functions/table-functions/view | /reference/statements/alter/view -https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree,1,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -/quickstarts/materialized-views,1,/get-started/quickstarts/create-your-first-materialized-view,manual,/products/clickstack/managing/materialized-views | /resources/support-center/tips-and-tricks/materialized-views -/quickstarts/etl-pipeline,1,/get-started/quickstarts/build-etl-pipeline-using-clickhouse,manual, -/en/engines/table-engines/mergetree-family/mergetree,1,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -/en/operations/system-tables/parts,1,/reference/system-tables/parts,basename+parent-unique,/concepts/core-concepts/parts -/en/sql-reference/data-types,1,/reference/data-types,manual,/reference/data-types -https://clickhouse.com/docs/en/interfaces/cli,1,/integrations/connectors/data-integrations/drivers-and-interfaces/cli,basename-ambiguous,/products/cloud/features/cli -https://clickhouse.com/docs/en/cloud/bestpractices/cloud-connection,1,,no-match, -https://clickhouse.com/docs/en/interfaces/tcp,1,/integrations/connectors/data-integrations/drivers-and-interfaces/tcp,basename-unique, -https://clickhouse.com/docs/en/interfaces/http,1,/concepts/features/security/external-authenticators/http,basename-ambiguous,/integrations/connectors/data-integrations/drivers-and-interfaces/http | /reference/statements/create/dictionary/sources/http -/en/operations/utilities/clickhouse-local,1,/concepts/features/tools-and-utilities/clickhouse-local,manual,/products/chdb/guides/clickhouse-local -/get-started/quickstarts/common-getting-started-issues,1,/get-started/quickstarts/home,manual, -/en/sql-reference/data-types/map,1,/reference/data-types/map,basename-unique, -/en/sql-reference/aggregate-functions/combinators,1,/reference/functions/aggregate-functions/combinators,basename-unique, -/integrations/postgresql/connecting-to-postgresql,1,/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql,redirect-direct, -/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md,1,/integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse,basename-unique, -/integrations/data-ingestion/etl-tools/vector-to-clickhouse.md,1,/integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse,basename-unique, -/operations/settings/settings-formats.md/#format_capn_proto_enum_comparising_mode,1,,no-match, -/operations/settings/settings-formats.md/#format_regexp,1,,no-match, -/operations/settings/settings-formats.md/#output_format_arrow_string_as_string,1,,no-match, -/operations/settings/settings-formats.md/#output_format_orc_compression_method,1,,no-match, -/operations/settings/settings-formats.md/#input_format_arrow_case_insensitive_column_matching,1,,no-match, -/operations/settings/settings-formats.md/#input_format_arrow_allow_missing_columns,1,,no-match, -/operations/settings/settings-formats.md/#input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference,1,,no-match, -/operations/settings/settings-formats.md/#input_format_mysql_dump_table_name,1,,no-match, -/operations/settings/settings-formats.md/#input_format_msgpack_number_of_columns,1,,no-match, -/operations/settings/settings-formats.md/#output_format_msgpack_uuid_representation,1,,no-match, -/sql-reference/aggregate-functions/reference/sumWithOverflow.md,1,/sql-reference/aggregate-functions/reference/sumWithOverflow,redirect-direct, -/sql-reference/aggregate-functions/reference/groupBitAnd.md,1,/sql-reference/aggregate-functions/reference/groupBitAnd,redirect-direct, -/sql-reference/aggregate-functions/reference/groupBitOr.md,1,/sql-reference/aggregate-functions/reference/groupBitOr,redirect-direct, -/sql-reference/aggregate-functions/reference/groupBitXor.md,1,/sql-reference/aggregate-functions/reference/groupBitXor,redirect-direct, -/sql-reference/aggregate-functions/reference/groupArrayArray.md,1,/sql-reference/aggregate-functions/reference/groupArrayArray,redirect-direct, -/sql-reference/aggregate-functions/reference/sumMappedArrays.md,1,,no-match, -/sql-reference/aggregate-functions/reference/minMappedArrays.md,1,,no-match, -/sql-reference/aggregate-functions/reference/maxMappedArrays.md,1,,no-match, -/sql-reference/table-functions/file.md/#globs-in-path,1,/reference/functions/table-functions/file,basename+parent-unique,/reference/engines/table-engines/special/file -/engines/table-engines/mergetree-family/mergetree.md/#virtual-columns,1,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -/operations/workload-scheduling.md/#hierarchy,1,/concepts/features/configuration/server-config/workload-scheduling,basename-unique, -/knowledgebase/count-parts-by-type,1,/resources/support-center/knowledge-base/troubleshooting/count-parts-by-type,manual, -/sql-reference/functions/splitting-merging-functions.md/#splitByNonAlpha,1,/reference/functions/regular-functions/splitting-merging-functions,basename-unique, -/sql-reference/aggregate-functions/reference/quantileDeterministic.md,1,/sql-reference/aggregate-functions/reference/quantileDeterministic,redirect-direct, -/sql-reference/aggregate-functions/reference/quantileExact.md,1,/sql-reference/aggregate-functions/reference/quantileExact,redirect-direct, -/sql-reference/aggregate-functions/reference/quantileExactWeighted.md,1,/sql-reference/aggregate-functions/reference/quantileExactWeighted,redirect-direct, -/sql-reference/aggregate-functions/reference/quantileTiming.md,1,/sql-reference/aggregate-functions/reference/quantileTiming,redirect-direct, -/sql-reference/aggregate-functions/reference/quantileTimingWeighted.md,1,/sql-reference/aggregate-functions/reference/quantileTimingWeighted,redirect-direct, -/sql-reference/aggregate-functions/reference/quantileTDigest.md,1,/sql-reference/aggregate-functions/reference/quantileTDigest,redirect-direct, -/sql-reference/aggregate-functions/reference/quantileTDigestWeighted.md,1,/sql-reference/aggregate-functions/reference/quantileTDigestWeighted,redirect-direct, -/sql-reference/aggregate-functions/reference/quantileBFloat16.md,1,/sql-reference/aggregate-functions/reference/quantileBFloat16,redirect-direct, -/sql-reference/aggregate-functions/reference/quantileDD.md,1,/reference/functions/aggregate-functions/reference/quantileddsketch,contains-unique, -/sql-reference/functions/other-functions.md/#joinGet,1,/reference/functions/regular-functions/other-functions,basename-unique, -/operations/settings/settings.md/#join_any_take_last_row,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/guides/best-practices/asyncinserts.md,1,/concepts/operations/insert/asyncinserts,basename-unique, -/sql-reference/statements/create/table.md/#default_values,1,/reference/statements/create/table,basename-unique, -/sql-reference/functions/splitting-merging-functions.md/#tokensForLikePattern,1,/reference/functions/regular-functions/splitting-merging-functions,basename-unique, -/sql-reference/functions/string-functions.md/#caseFoldUTF8,1,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-functions.md/#normalizeUTF8NFKCCasefold,1,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-replace-functions.md/#translate,1,/reference/functions/regular-functions/string-replace-functions,basename-unique, -/sql-reference/functions/string-functions.md/#removeDiacriticsUTF8,1,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/string-search-functions.md/#hasPhrase,1,/reference/functions/regular-functions/string-search-functions,basename-unique, -/sql-reference/functions/tuple-map-functions.md/#mapkeys,1,/reference/functions/regular-functions/tuple-map-functions,basename-unique, -/sql-reference/statements/select/order-by.md/#sorting-of-special-values,1,/reference/statements/select/order-by,basename+parent-unique,/reference/statements/alter/order-by -/operations/settings/settings.md/#max_threads,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/settings/settings.md/#force_index_by_date,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/sql-reference/functions/string-functions.md/#sparseGrams,1,/reference/functions/regular-functions/string-functions,basename-unique, -/sql-reference/functions/comparison-functions.md/#equals,1,/reference/functions/regular-functions/comparison-functions,basename-unique, -/sql-reference/functions/comparison-functions.md/#notEquals,1,/reference/functions/regular-functions/comparison-functions,basename-unique, -/sql-reference/functions/string-search-functions.md/#notLike,1,/reference/functions/regular-functions/string-search-functions,basename-unique, -/sql-reference/functions/string-search-functions.md/#multiSearchAny,1,/reference/functions/regular-functions/string-search-functions,basename-unique, -/sql-reference/functions/comparison-functions.md/#less,1,/reference/functions/regular-functions/comparison-functions,basename-unique, -/sql-reference/functions/comparison-functions.md/#greater,1,/reference/functions/regular-functions/comparison-functions,basename-unique, -/sql-reference/functions/comparison-functions.md/#lessOrEquals,1,/reference/functions/regular-functions/comparison-functions,basename-unique, -/sql-reference/functions/comparison-functions.md/#greaterOrEquals,1,/reference/functions/regular-functions/comparison-functions,basename-unique, -/sql-reference/functions/string-search-functions.md/#hasTokenCaseInsensitive,1,/reference/functions/regular-functions/string-search-functions,basename-unique, -/sql-reference/functions/string-search-functions.md/#hasTokenCaseInsensitiveOrNull,1,/reference/functions/regular-functions/string-search-functions,basename-unique, -/integrations/data-ingestion/gcs/index.md/#creating-a-disk,1,/reference/functions/table-functions/gcs,basename-unique, -/operations/server-configuration-parameters/settings.md/#path,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/server-configuration-parameters/settings.md/#background_move_pool_size,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/settings/merge-tree-settings.md/#min_bytes_to_rebalance_partition_over_jbod,1,/reference/settings/merge-tree-settings,basename-unique, -/operations/storing-data.md/#refresh-parts-interval-and-table-disk,1,/concepts/features/configuration/server-config/storing-data,basename-unique, -/operations/settings/settings.md/#max_replica_delay_for_distributed_queries,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/settings/settings.md/#fallback_to_stale_replicas_for_distributed_queries,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/server-configuration-parameters/settings.md/#merge_tree,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/server-configuration-parameters/settings.md/#macros,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/server-configuration-parameters/settings.md/#background_fetches_pool_size,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/settings/merge-tree-settings.md/#max_replicated_fetches_network_bandwidth,1,/reference/settings/merge-tree-settings,basename-unique, -/operations/settings/merge-tree-settings.md/#max_replicated_sends_network_bandwidth,1,/reference/settings/merge-tree-settings,basename-unique, -/sql-reference/statements/kill.md/#kill-mutation,1,/reference/statements/kill,basename-unique, -/engines/table-engines/mergetree-family/mergetree.md/#mergetree-column-ttl,1,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -/engines/table-engines/mergetree-family/mergetree.md/#column-level-settings,1,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -/sql-reference/statements/rename.md/#rename-table,1,/reference/statements/rename,basename-unique, -/guides/best-practices/sparse-primary-indexes.md/#option-3-projections,1,/guides/cloud-oss/data-modelling/sparse-primary-indexes,basename-unique, -/sql-reference/statements/create/dictionary/overview.md,1,/concepts/features/backup-restore/overview,basename-ambiguous,/concepts/features/configuration/settings/overview | /concepts/operations/delete/overview | /concepts/operations/update/overview | /get-started/migration-guides/bigquery/overview | /get-started/migration-guides/elastic/overview -/sql-reference/dictionaries#dbms,1,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/knowledgebase/oracle-odbc,1,/resources/support-center/knowledge-base/integrations/oracle-odbc,basename-unique, -/operations/settings/settings-formats.md/#format_custom_field_delimiter,1,,no-match, -/operations/settings/settings-formats.md/#format_custom_row_before_delimiter,1,,no-match, -/operations/settings/settings-formats.md/#format_custom_row_after_delimiter,1,,no-match, -/operations/settings/settings-formats.md/#format_custom_row_between_delimiter,1,,no-match, -/operations/settings/settings-formats.md/#format_custom_result_before_delimiter,1,,no-match, -/operations/settings/settings-formats.md/#format_custom_result_after_delimiter,1,,no-match, -/operations/settings/settings-formats.md/#input_format_avro_allow_missing_fields,1,,no-match, -/operations/settings/settings-formats.md/#output_format_avro_codec,1,,no-match, -/operations/settings/settings-formats.md/#output_format_avro_sync_interval,1,,no-match, -/operations/settings/settings-formats.md/#format_csv_null_representation,1,,no-match, -/operations/settings/settings-formats.md/#format_csv_allow_single_quotes,1,,no-match, -/operations/settings/settings-formats.md/#format_csv_allow_double_quotes,1,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_empty_as_default,1,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_use_best_effort_in_schema_inference,1,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_arrays_as_nested_csv,1,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_detect_header,1,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_skip_trailing_empty_lines,1,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_trim_whitespaces,1,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_allow_whitespace_or_tab_as_delimiter,1,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_allow_variable_number_of_columns,1,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_use_default_on_bad_values,1,,no-match, -/operations/settings/settings-formats.md/#input_format_csv_try_infer_numbers_from_strings,1,,no-match, -/operations/settings/settings-formats.md/#input_format_tsv_empty_as_default,1,,no-match, -/operations/settings/settings-formats.md/#input_format_tsv_use_best_effort_in_schema_inference,1,,no-match, -/operations/settings/settings-formats.md/#output_format_tsv_crlf_end_of_line,1,,no-match, -/operations/settings/settings-formats.md/#input_format_tsv_crlf_end_of_line,1,,no-match, -/operations/settings/settings-formats.md/#input_format_tsv_detect_header,1,,no-match, -/operations/settings/settings-formats.md/#input_format_tsv_skip_trailing_empty_lines,1,,no-match, -/operations/settings/settings-formats.md/#input_format_tsv_allow_variable_number_of_columns,1,,no-match, -/operations/settings/settings-formats.md#input_format_protobuf_oneof_presence,1,,no-match, -/operations/settings/settings-formats.md#format_protobuf_use_autogenerated_schema,1,,no-match, -/sql-reference/statements/system.md/#system-drop-schema-format,1,/reference/statements/system,basename-unique, -/operations/settings/settings-formats.md/#output_format_pretty_max_rows,1,,no-match, -/operations/settings/settings-formats.md/#output_format_pretty_max_column_pad_width,1,,no-match, -/operations/settings/settings-formats.md/#output_format_pretty_max_value_width,1,,no-match, -/operations/settings/settings-formats.md/#output_format_pretty_color,1,,no-match, -/operations/settings/settings-formats.md/#output_format_pretty_grid_charset,1,,no-match, -/operations/settings/settings-formats.md/#output_format_pretty_row_numbers,1,,no-match, -/operations/settings/settings-formats.md/#output_format_pretty_display_footer_column_names_min_rows,1,,no-match, -/operations/settings/settings-formats.md/#output_format_avro_string_column_pattern,1,,no-match, -/operations/settings/settings-formats.md/#format_binary_max_string_size,1,,no-match, -/operations/settings/settings-formats.md/#output_format_binary_write_json_as_string,1,,no-match, -/operations/settings/settings-formats.md/#input_format_binary_read_json_as_string,1,,no-match, -https://clickhouse.com/docs/best-practices/...,1,,no-match, -/joining-tables,1,/concepts/operations/select/joining-tables,basename-unique, -/deployment-guides/terminology.md,1,/guides/oss/deployment-and-scaling/terminology,basename-unique, -/managing-data/update_mutations,1,/managing-data/updating-data/update_mutations,redirect-direct, -/integrations/data-ingestion/s3/index.md#configuring-s3-for-clickhouse-use,1,/reference/engines/table-engines/integrations/s3,basename-ambiguous,/reference/functions/table-functions/s3 -/sql-reference/dictionaries#postgresql,1,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/sql-reference/dictionaries#ways-to-store-dictionaries-in-memory,1,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/sql-reference/dictionaries#hierarchical-dictionaries,1,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/sql-reference/dictionaries#polygon-dictionaries,1,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/sql-reference/dictionaries#regexp-tree-dictionary,1,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/interfaces/third-party/gui#clickhouse-flamegraph,1,/guides/ai-ml,contains-ambiguous,/guides/ai-ml/MCP | /guides/ai-ml/MCP/ai-agent-libraries | /guides/ai-ml/MCP/ai-agent-libraries/agno | /guides/ai-ml/MCP/ai-agent-libraries/chainlit | /guides/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk -/guides/sre/keeper/index.md#four-letter-word-commands,1,/guides/oss/deployment-and-scaling/keeper,basename-unique, -/operations/settings/settings-query-level.md,1,/concepts/features/configuration/settings/settings-query-level,basename-unique, -/operations/settings/settings.md/#http_connection_timeout,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/settings/settings.md/#http_receive_timeout,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/reference/settings/server-settings/settings#http_handlers,1,/reference/settings/server-settings/settings,basename+parent-unique,/products/cloud/reference/settings | /products/managed-postgres/settings | /reference/settings | /reference/system-tables/settings -/operations/settings/settings.md/#use_concurrency_control,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/products/cloud/guides/sql-console/connection_details,1,/products/cloud/guides/sql-console/connection-details,basename-unique, -/products/cloud/guides/backups/01_review-and-restore-backups,1,,no-match, -/products/cloud/guides/backups/02_configurable-backups,1,,no-match, -/products/cloud/guides/data-sources/02_accessing-s3-data-securely,1,,no-match, -/products/cloud/guides/data-sources/01_cloud-endpoints-api,1,,no-match, -/optimize/partitioning-key,1,/guides/best-practices/partitioningkey,redirect-direct, -/engines/table-engines/mergetree-family/mergetree.md/#table_engine-mergetree-data_skipping-indexes,1,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -/guides/best-practices/skipping-indexes.md,1,/concepts/features/performance/skip-indexes/skipping-indexes,basename-unique, -/engines/table-engines/mergetree-family/mergetree.md/#choosing-a-primary-key-that-differs-from-the-sorting-key,1,/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, -https://clickhouse.com/docs/introduction/distinctive-features/#true-column-oriented-dbms,1,/get-started/about/distinctive-features,basename-unique, -/sql-reference/dictionaries#ip_trie,1,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/sql-reference/dictionaries#use-regular-expression-tree-dictionary-in-clickhouse-open-source,1,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/sql-reference/dictionaries#collecting-attribute-values,1,/concepts/features/dictionaries,basename-ambiguous,/reference/system-tables/dictionaries -/blog/clickhouse-and-parquet-a-foundation-for-fast-lakehouse-analytics,1,,no-match, -/optimize/sparse-primary-indexes,1,/guides/cloud-oss/data-modelling/sparse-primary-indexes,basename-unique, -/sql-reference/data-types/json,1,/concepts/best-practices/json-type,contains-ambiguous,/integrations/connectors/data-ingestion/data-formats/json/exporting | /integrations/connectors/data-ingestion/data-formats/json/formats | /integrations/connectors/data-ingestion/data-formats/json/inference | /integrations/connectors/data-ingestion/data-formats/json/intro | /integrations/connectors/data-ingestion/data-formats/json/loading -/images/clickpipes/clickpipes_stack.png,1,,no-match, -/images/clickpipes/cp_custom_role.png,1,,no-match, -/images/clickpipes/cp_advanced_settings.png,1,,no-match, -/knowledgebase/aws-privatelink-setup-for-msk-clickpipes,1,,no-match, -/integrations/clickpipes/object-storage,1,/get-started/migration-guides/other-methods/object-storage-to-clickhouse,contains-ambiguous,/integrations/clickpipes/object-storage/amazon-s3/get-started | /integrations/clickpipes/object-storage/amazon-s3/overview | /integrations/clickpipes/object-storage/amazon-s3/unordered-mode | /integrations/clickpipes/object-storage/azure-blob-storage/get-started | /integrations/clickpipes/object-storage/azure-blob-storage/overview -/integrations/data-ingestion/clickpipes/kinesis.md,1,/integrations/clickpipes/kinesis,basename-unique, -https://clickhouse.com/docs/en/sql-reference/data-types/special-data-types/interval,1,/reference/data-types/special-data-types/interval,basename-unique, -/language-clients/javascript/usage#contact-us,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, -/language-clients/javascript/usage#proxy-with-a-pathname,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, -/language-clients/javascript/usage#compression,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, -/language-clients/javascript/usage#logging-nodejs-only,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, -/language-clients/javascript/usage#reverse-proxy-with-authentication,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, -/language-clients/javascript/usage#tls-certificates-nodejs-only,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, -https://clickhouse.com/docs/en/integrations/language-clients/javascript#custom-httphttps-agent-experimental-nodejs-only,1,,no-match, -https://clickhouse.com/docs/en/sql-reference/statements/create/table#ephemeral,1,/reference/statements/create/table,basename-unique, -https://clickhouse.com/docs/en/integrations/data-formats/parquet,1,/integrations/connectors/data-ingestion/data-formats/parquet,basename-unique, -https://clickhouse.com/docs/en/guides/sre/configuring-ssl/,1,,no-match, -/language-clients/java/client/_v0_8,1,/integrations/language-clients/java/client,manual, -/images/cloud/security/secures3_arn.png,1,,no-match, -https://clickhouse.com/docs/cloud/manage/api/swagger#tag/beta,1,,no-match, -https://clickhouse.com/docs/integrations/gcs#create-a-service-account-hmac-key-and-secret,1,/reference/functions/table-functions/gcs,basename-unique, -/images/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql/1_configure_network_security.png,1,,no-match, -/images/integrations/data-ingestion/clickpipes/postgres/source/alloydb/1_edit_instance.png,1,,no-match, -/images/integrations/data-ingestion/clickpipes/postgres/source/alloydb/2_set_flags.png,1,,no-match, -/images/integrations/data-ingestion/clickpipes/postgres/source/alloydb/3_verify_logical_replication.png,1,,no-match, -/images/integrations/data-ingestion/clickpipes/postgres/source/alloydb/4_configure_network_security.png,1,,no-match, -/images/integrations/data-ingestion/clickpipes/mongodb/docdb-select-parameter-group.png,1,,no-match, -/images/integrations/data-ingestion/clickpipes/mongodb/docdb-modify-parameter-group.png,1,,no-match, -/images/integrations/data-ingestion/clickpipes/mongodb/docdb-apply-parameter-group.png,1,,no-match, -/images/integrations/data-ingestion/clickpipes/mongodb/docdb-parameter-group-status.png,1,,no-match, -/interfaces/third-party/gui,1,/guides/ai-ml,contains-ambiguous,/guides/ai-ml/MCP | /guides/ai-ml/MCP/ai-agent-libraries | /guides/ai-ml/MCP/ai-agent-libraries/agno | /guides/ai-ml/MCP/ai-agent-libraries/chainlit | /guides/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk -/interfaces/third-party/proxy,1,,no-match, -/interfaces/third-party/integrations,1,/products/cloud/features/integrations,basename-ambiguous,/products/cloud/features/monitoring/integrations | /reference/engines/table-engines/integrations | /resources/support-center/knowledge-base/integrations -/integrations/azure-data-factory,1,/integrations/data-ingestion/azure-data-factory,redirect-direct, -/integrations/redis,1,/reference/engines/table-engines/integrations/redis,basename+parent-unique,/reference/functions/table-functions/redis | /reference/statements/create/dictionary/sources/redis -/integrations/rabbitmq,1,/reference/engines/table-engines/integrations/rabbitmq,basename-unique, -/integrations/mongodb,1,/reference/engines/table-engines/integrations/mongodb,basename+parent-unique,/integrations/clickpipes/mongodb | /reference/functions/table-functions/mongodb | /reference/statements/create/dictionary/sources/mongodb -/integrations/hive,1,/reference/engines/table-engines/integrations/hive,basename-unique, -/integrations/hudi,1,/reference/engines/table-engines/integrations/hudi,basename+parent-unique,/reference/functions/table-functions/hudi -/integrations/iceberg,1,/reference/engines/table-engines/integrations/iceberg,basename+parent-unique,/reference/functions/table-functions/iceberg -/integrations/deltalake,1,/reference/engines/table-engines/integrations/deltalake,basename+parent-unique,/reference/functions/table-functions/deltalake -/integrations/rocksdb,1,/reference/system-tables/rocksdb,basename-unique, -/integrations/sqlite,1,/reference/engines/table-engines/integrations/sqlite,basename+parent-unique,/reference/engines/database-engines/sqlite | /reference/functions/table-functions/sqlite -/integrations/nats,1,/reference/engines/table-engines/integrations/nats,basename-unique, -/integrations/data-ingestion/data-formats/binary.md,1,/integrations/connectors/data-ingestion/data-formats/binary,basename-unique, -/integrations/data-ingestion/data-formats/csv-tsv.md,1,/integrations/connectors/data-ingestion/data-formats/csv-tsv,basename-unique, -/integrations/data-ingestion/data-formats/parquet.md,1,/integrations/connectors/data-ingestion/data-formats/parquet,basename-unique, -/integrations/data-ingestion/data-formats/sql.md,1,/integrations/connectors/data-ingestion/data-formats/sql,basename+parent-unique,/resources/support-center/knowledge-base/general-faqs/sql -/operations/settings/settings-formats.md/#output_format_sql_insert_include_column_names,1,,no-match, -/operations/settings/settings-formats.md/#output_format_sql_insert_max_batch_size,1,,no-match, -/operations/settings/settings-formats.md/#format_regexp_skip_unmatched,1,,no-match, -/engines/table-engines/integrations/s3.md/#wildcards-in-path,1,/reference/engines/table-engines/integrations/s3,basename+parent-unique,/reference/functions/table-functions/s3 -/operations/server-configuration-parameters/settings.md/#default_replica_path,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/integrations/dbt/materialized-views,1,/concepts/features/materialized-views,basename-ambiguous,/products/clickstack/managing/materialized-views | /resources/support-center/tips-and-tricks/materialized-views -https://clickhouse.com/docs/en/beta-and-experimental-features,1,/reference/settings/beta-and-experimental-features,basename-unique, -https://clickhouse.com/docs/en/materialized-view,1,/concepts/features/materialized-views,contains-ambiguous,/concepts/features/materialized-views/cascading-materialized-views | /concepts/features/materialized-views/incremental-materialized-view | /concepts/features/materialized-views/refreshable-materialized-view | /concepts/features/projections/materialized-views-versus-projections | /guides/real-time-analytics/time-series/materialized-view-rollup -https://clickhouse.com/docs/en/engines/table-engines/special/distributed,1,/reference/engines/table-engines/special/distributed,basename-unique, -https://clickhouse.com/docs/en/engines/table-engines/special/dictionary,1,/reference/engines/table-engines/special/dictionary,basename+parent-unique,/reference/functions/table-functions/dictionary | /reference/statements/create/dictionary -/materialized-view,1,/concepts/features/materialized-views,contains-ambiguous,/concepts/features/materialized-views/cascading-materialized-views | /concepts/features/materialized-views/incremental-materialized-view | /concepts/features/materialized-views/refreshable-materialized-view | /concepts/features/projections/materialized-views-versus-projections | /guides/real-time-analytics/time-series/materialized-view-rollup -https://clickhouse.com/docs/en/materialized-view/refreshable-materialized-view,1,/concepts/features/materialized-views/refreshable-materialized-view,basename-unique, -https://clickhouse.com/docs/en/cloud/security/secure-s3,1,,no-match, -/operations/settings/settings.md/#use_structure_from_insertion_table_in_table_functions,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/operations/settings/settings-formats.md#date_time_input_format,1,,no-match, -/operations/settings/settings-formats.md,1,,no-match, -/interfaces/cli.md/#batch-mode,1,/integrations/connectors/data-integrations/drivers-and-interfaces/cli,basename-ambiguous,/products/cloud/features/cli -/operations/settings/settings-formats.md/#input_format_allow_errors_num,1,,no-match, -/operations/settings/settings-formats.md/#input_format_allow_errors_ratio,1,,no-match, -/whats-new/cloud#clickhouse-231-version-upgrade,1,/cloud/reference/changelog/changelog,redirect-direct, -/whats-new/cloud#clickhouse-2212-version-upgrade,1,/cloud/reference/changelog/changelog,redirect-direct, -/whats-new/cloud#clickhouse-2211-version-upgrade,1,/cloud/reference/changelog/changelog,redirect-direct, -/sql-reference/dictionaries/index.md,1,/concepts/features/dictionaries,manual,/reference/system-tables/dictionaries -/whats-new/cloud#clickhouse-2210-version-upgrade,1,/cloud/reference/changelog/changelog,redirect-direct, -/knowledgebase/useful-queries-for-troubleshooting#show-disk-storage-number-of-parts-number-of-rows-in-systemparts-and-marks-across-databases,1,,no-match, -/knowledgebase/find-expensive-queries,1,/resources/support-center/knowledge-base/performance-optimization/find-expensive-queries,basename-unique, -/knowledgebase/profiling-clickhouse-with-llvm-xray,1,,no-match, -/knowledgebase/which-processes-are-currently-running,1,,no-match, -/sql-reference/statements/alter/index,1,,no-match, -/faq/operations/separate_storage.md,1,/resources/support-center/knowledge-base/general-faqs/separate-storage,basename-unique, -/guides/sre/user-management/configuring-ldap.md,1,/concepts/features/security/configuring-ldap,basename-unique, -/guides/starter-guides/mutations.md,1,/get-started/oss/starter-guides/mutations,basename+parent-unique,/reference/system-tables/mutations -/knowledgebase/how-do-i-contribute-code-to-clickhouse,1,,no-match, -/knowledgebase/time-series,1,/guides/real-time-analytics/time-series,basename-ambiguous,/reference/engines/table-engines/integrations/time-series | /resources/support-center/knowledge-base/general-faqs/time-series -/integrations/data-ingestion/s3,1,/reference/engines/table-engines/integrations/s3,basename-ambiguous,/reference/functions/table-functions/s3 -/integrations/data-ingestion/gcs,1,/reference/functions/table-functions/gcs,basename-unique, -https://clickhouse.com/docs/knowledgebase/file-export,1,,no-match, -/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql.md,1,,no-match, -https://clickhouse.com/docs/knowledgebase/python-clickhouse-connect-example#steps,1,,no-match, -/guides/sre/configuring-ssl#2-create-ssl-certificates,1,,no-match, -https://clickhouse.com/docs/interfaces/formats/JSON/JSONAsObject,1,,no-match, -https://clickhouse.com/docs/interfaces/,1,/integrations/connectors/data-integrations/drivers-and-interfaces/overview,manual, -/knowledgebase/async_vs_optimize_read_in_order#what-about-optimize_read_in_order,1,,no-match, -https://clickhouse.com/docs/knowledgebase/find-expensive-queries#initial_query_id-vs-query_id,1,/resources/support-center/knowledge-base/performance-optimization/find-expensive-queries,basename-unique, -/chdb/guides/querying-apache-arrow,1,/products/chdb/guides/querying-apache-arrow,basename-unique, -https://clickhouse.com/docs/cloud/manage/api/swagger#tag/ClickStack,1,,no-match, -/images/clickstack/faq/metrics-explorer.png,1,,no-match, -/guides/sre/configuring-ssl,1,/concepts/features/security/tls/configuring-tls,manual, -/managed-postgres/overview#nvme-performance,1,/products/managed-postgres/overview,basename+parent-unique,/concepts/features/backup-restore/overview | /concepts/features/configuration/settings/overview | /concepts/operations/delete/overview | /concepts/operations/update/overview | /get-started/migration-guides/bigquery/overview | /get-started/migration-guides/elastic/overview | /get-started/migration-guides/overview | /get-started/migration-guides/postgres/overview | /get-started/migration-guides/redshift/overview | /get-started/migration-guides/snowflake/overview | /get-started/use-cases/overview | /guides/data-warehousing/getting-started/overview | /integrations/clickpipes/bigquery/overview | /integrations/clickpipes/kinesis/overview | /integrations/clickpipes/object-storage/amazon-s3/overview | /integrations/clickpipes/object-storage/azure-blob-storage/overview | /integrations/clickpipes/object-storage/google-cloud-storage/overview | /integrations/connectors/data-ingestion/azure/azure-data-factory/overview | /integrations/connectors/data-integrations/drivers-and-interfaces/overview | /integrations/language-clients/csharp/overview | /products/clickstack/features/dashboards/overview | /products/clickstack/ingesting-data/overview | /products/clickstack/overview | /products/cloud/features/autoscaling/overview | /products/cloud/features/backups/overview | /products/cloud/features/monitoring/overview | /products/cloud/guides/infrastructure/deployment-options/byoc/overview | /products/cloud/reference/billing/marketplace/overview | /products/kubernetes-operator/overview | /reference/functions/regular-functions/overview | /reference/statements/create/dictionary/layouts/overview | /reference/statements/create/dictionary/sources/overview | /reference/system-tables/overview -/managed-postgres/scaling,1,/products/managed-postgres/scaling,basename+parent-unique,/integrations/clickpipes/mongodb/scaling | /integrations/clickpipes/mysql/scaling | /integrations/clickpipes/postgres/scaling -/managed-postgres/settings#ip-filters,1,/products/managed-postgres/settings,basename+parent-unique,/products/cloud/reference/settings | /reference/settings | /reference/settings/server-settings/settings | /reference/system-tables/settings -/managed-postgres/connection#tls,1,/products/managed-postgres/connection,basename-unique, -/managed-postgres/extensions,1,/products/managed-postgres/extensions,basename-unique, -/managed-postgres/upgrades,1,/products/managed-postgres/upgrades,basename+parent-unique,/products/cloud/features/admin-features/upgrades -/managed-postgres/migrations/pg_dump-pg_restore,1,,no-match, -/managed-postgres/migrations/logical-replication,1,/products/managed-postgres/migrations/logical-replication,basename-unique, -/managed-postgres/migrations/peerdb,1,/products/managed-postgres/migrations/peerdb,basename-unique, -/managed-postgres/clickhouse-integration,1,/products/managed-postgres/clickhouse-integration,basename-unique, -/managed-postgres/benchmarks,1,/products/managed-postgres/benchmarks,basename-unique, -/interfaces/cpp,1,/integrations/language-clients/cpp,redirect-direct, -/interfaces/third-party/client-libraries,1,,no-match, -/cloud/security/cloud-access-management,1,/products/cloud/guides/security/cloud-access-management,basename-unique, -/knowledgebase/terraform_example,1,/resources/support-center/knowledge-base/integrations/terraform-example,manual, -/cloud/reference/byoc/faq/aws,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg -/cloud/reference/byoc/observability,1,/cloud/guides/infrastructure/deployment_options/byoc/observability,redirect-direct, -/cloud/reference/byoc/onboarding/aws,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg -/images/cloud/guides/accessing-data/GCS/IAM_and_admin.png,1,,no-match, -/images/cloud/guides/accessing-data/GCS/create_service_account.png,1,,no-match, -/images/cloud/guides/accessing-data/GCS/create_and_continue.png,1,,no-match, -/images/cloud/guides/accessing-data/GCS/storage_object_user.png,1,,no-match, -/images/cloud/guides/accessing-data/GCS/note_service_account_email.png,1,,no-match, -/images/cloud/guides/accessing-data/GCS/cloud_storage_settings.png,1,,no-match, -/images/cloud/guides/accessing-data/GCS/create_key_for_service_account.png,1,,no-match, -/images/cloud/guides/accessing-data/GCS/create_a_key.png,1,,no-match, -/images/cloud/guides/accessing-data/GCS/clickpipes_hmac_key.png,1,,no-match, -https://clickhouse.com/docs/cloud/security/secure-s3,1,/products/cloud/guides/data-sources/accessing-s3-data-securely,manual, -https://clickhouse.com/docs/cloud/security/secure-s3#option-2-manually-create-iam-role,1,,no-match, -/operations/backup#configuring-backuprestore-to-use-an-s3-endpoint,1,/reference/engines/database-engines/backup,basename-unique, -/operations/backup#configuring-backuprestore-to-use-an-azureblobstorage-endpoint,1,/reference/engines/database-engines/backup,basename-unique, -/operations/backup#command-summary,1,/reference/engines/database-engines/backup,basename-unique, -/cloud/reference/byoc/onboarding/aws#cloudformation-iam-roles,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg -/observability/overview,1,/concepts/features/backup-restore/overview,basename-ambiguous,/concepts/features/configuration/settings/overview | /concepts/operations/delete/overview | /concepts/operations/update/overview | /get-started/migration-guides/bigquery/overview | /get-started/migration-guides/elastic/overview -/prompt-management/overview,1,/concepts/features/backup-restore/overview,basename-ambiguous,/concepts/features/configuration/settings/overview | /concepts/operations/delete/overview | /concepts/operations/update/overview | /get-started/migration-guides/bigquery/overview | /get-started/migration-guides/elastic/overview -/evaluation/overview,1,/concepts/features/backup-restore/overview,basename-ambiguous,/concepts/features/configuration/settings/overview | /concepts/operations/delete/overview | /concepts/operations/update/overview | /get-started/migration-guides/bigquery/overview | /get-started/migration-guides/elastic/overview -https://clickhouse.com/docs/cloud/manage/api/swagger#tag/Billing,1,,no-match, -/images/cloud/manage/scaling-patch-request.png,1,,no-match, -/images/cloud/manage/scaling-patch-response.png,1,,no-match, -/images/cloud/manage/scaling-configure.png,1,,no-match, -/images/cloud/manage/scaling-memory-allocation.png,1,,no-match, -/images/cloud/manage/AutoScaling.png,1,,no-match, -/images/cloud/reference/byoc-connect-1.png,1,,no-match, -/images/cloud/reference/byoc-tailscale-1.png,1,,no-match, -/cloud/reference/byoc/onboarding/customization,1,/products/bring-your-own-cloud/onboarding/customization-aws,contains-ambiguous,/products/bring-your-own-cloud/onboarding/customization-gcp -/images/cloud/reference/byoc-onboarding-1.png,1,,no-match, -/images/cloud/reference/byoc-onboarding-2.png,1,,no-match, -/images/cloud/reference/byoc-onboarding-3.png,1,,no-match, -/images/cloud/reference/byoc-new-service-1.png,1,,no-match, -/images/cloud/reference/byoc-new-infra-1.png,1,,no-match, -/images/cloud/reference/byoc-new-infra-2.png,1,,no-match, -/use-cases/observability/clickstack/ingesting-data/kubernetes,1,/products/clickstack/example-datasets/kubernetes,basename-ambiguous,/products/clickstack/integration-examples/kubernetes -/examples/kafka-metrics-dashboard.json,1,,no-match, -/examples/temporal-metrics-dashboard.json,1,,no-match, -/assets/cloudflare-logs-dashboard.json,1,,no-match, -/examples/postgres-logs-dashboard.json,1,,no-match, -/examples/postgres-metrics-dashboard.json,1,,no-match, -/examples/systemd-logs-dashboard.json,1,,no-match, -/examples/cloudwatch-logs-dashboard.json,1,,no-match, -/examples/nodejs-traces-dashboard.json,1,,no-match, -/examples/mysql-logs-dashboard.json,1,,no-match, -/examples/jvm-metrics-dashboard.json,1,,no-match, -/use-cases/observability/clickstack/production#database-ingestion-user,1,/use-cases/observability/clickstack/managing/production,redirect-direct, -/use-cases/observability/clickstack/production#estimating-resources,1,/use-cases/observability/clickstack/managing/production,redirect-direct, -/use-cases/observability/clickstack/production#create-a-database-ingestion-user-managed,1,/use-cases/observability/clickstack/managing/production,redirect-direct, -https://clickhouse.com/docs/clickhouse-operator/managing-clusters/cleanup,1,,no-match, -https://clickhouse.com/docs/en/sql-reference/statements/select/group-by#group-by-in-external-memory,1,/reference/statements/select/group-by,basename-unique, -https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference,1,/reference/functions/aggregate-functions/reference,basename+parent-unique,/guides/data-warehousing/reference | /integrations/clickpipes/kafka/reference | /integrations/connectors/data-ingestion/etl-tools/fivetran/reference | /integrations/connectors/tools/pg_clickhouse/reference | /products/chdb/reference | /products/cloud/reference -/use-cases/observability/clickstack/features/dashboards#custom-filters,1,/products/cloud/features/sql-console-features/dashboards,basename-ambiguous,/reference/system-tables/dashboards -/use-cases/observability/clickstack/managing/performance_tuning#materialize-frequently-queried-attributes,1,/products/clickstack/managing/performance-tuning,basename-unique, -/use-cases/observability/clickstack/features/dashboards#dashboards-editing-visualizations,1,/products/cloud/features/sql-console-features/dashboards,basename-ambiguous,/reference/system-tables/dashboards -https://clickhouse.com/docs/operations/backup#take-an-incremental-backup,1,/reference/engines/database-engines/backup,basename-unique, -/docs/products/clickhouse-private/aws,1,/products/clickhouse-private/deployment/aws,manual,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg -/docs/products/clickhouse-private/aws#install-volumesnapshot-crds,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg -/docs/products/clickhouse-private/aws#install-storageclass-via-helm,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg -/docs/products/clickhouse-private/aws#naming-your-clickhouse-cluster,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg -/chdb/datastore/configuration,1,/integrations/language-clients/go/configuration,basename-ambiguous,/products/chdb/configuration | /products/kubernetes-operator/guides/configuration -/chdb/datastore/configuration/performance-mode,1,/products/chdb/configuration/performance-mode,basename-unique, -/chdb/datastore/guides/pandas-cookbook,1,/products/chdb/guides/pandas-cookbook,basename-unique, -/chdb/datastore/guides/pandas-to-sql,1,/products/chdb/guides/pandas-to-sql,basename-unique, -/chdb/datastore/debugging/explain,1,/products/chdb/debugging/explain,basename+parent-unique,/reference/statements/explain -/chdb/datastore/configuration/execution-engine,1,/products/chdb/configuration/execution-engine,basename-unique, -/faq/general/why-clickhouse-is-so-fast,2,/get-started/about/why-clickhouse-is-so-fast,manual, +old_slug,count,suggested_target,confidence,alternates +https://clickhouse.com/docs/knowledgebase/count-parts-by-type,1,/resources/support-center/knowledge-base/troubleshooting/count-parts-by-type,manual, +/integrations/language-clients/java/jdbc-v1,1,/integrations/language-clients/java/jdbc,manual, +/knowledgebase/async_vs_optimize_read_in_order,1,/resources/support-center/knowledge-base/performance-optimization/async-vs-optimize-read-in-order,manual, +/tutorial.md,1,/core/get-started/quickstarts/tutorial,manual, +/operations/utilities/clickhouse-local,1,/core/concepts/features/tools-and-utilities/clickhouse-local,manual, +https://clickhouse.com/docs/knowledgebase/terraform_example,1,/resources/support-center/knowledge-base/integrations/terraform-example,manual, +/cloud/getting-started/quick-start/cloud,1,/core/get-started/setup/cloud,manual, +https://clickhouse.com/docs/knowledgebase/why-clickhouse-is-so-fast,1,/core/get-started/about/why-clickhouse-is-so-fast,manual, +/knowledgebase/why-clickhouse-is-so-fast,1,/core/get-started/about/why-clickhouse-is-so-fast,manual, +/sql-reference,1,/core/reference/home,manual, +/faq/integration/oracle-odbc.md,1,/resources/support-center/knowledge-base/integrations/oracle-odbc,manual, +/faq/integration/oracle-odbc,1,/resources/support-center/knowledge-base/integrations/oracle-odbc,manual, +/knowledgebase/view_number_of_active_mutations,1,/resources/support-center/knowledge-base/monitoring-debugging/view-number-of-active-mutations,manual, +/optimize/avoid-mutations,1,/core/concepts/best-practices/avoid-mutations,manual, +https://clickhouse.com/docs/knowledgebase/configure_cap_ipc_lock_and_cap_sys_nice_in_docker,1,/resources/support-center/knowledge-base/troubleshooting/configure-cap-ipc-lock-and-cap-sys-nice-in-docker,manual, +/knowledgebase/configure_cap_ipc_lock_and_cap_sys_nice_in_docker,1,/resources/support-center/knowledge-base/troubleshooting/configure-cap-ipc-lock-and-cap-sys-nice-in-docker,manual, +/faq/operations/multi-region-replication.md,1,/resources/support-center/knowledge-base/cloud-services/multi-region-replication,manual, +/faq/operations/multi-region-replication,1,/resources/support-center/knowledge-base/cloud-services/multi-region-replication,manual, +/faq/operations/delete-old-data.md,1,/resources/support-center/knowledge-base/tables-schema/delete-old-data,manual, +/faq/operations/delete-old-data,1,/resources/support-center/knowledge-base/tables-schema/delete-old-data,manual, +/faq/operations/production.md,1,/resources/support-center/knowledge-base/setup-installation/production,manual, +/faq/operations/production,1,/resources/support-center/knowledge-base/setup-installation/production,manual, +/sql-reference/formats.md,1,/core/reference/formats,manual, +/sql-reference/formats.mdx,1,/core/reference/formats,manual, +/cloud/security/secure-s3,1,/products/cloud/guides/data-sources/accessing-s3-data-securely,manual, +https://clickhouse.com/docs/guides/sre/configuring-ssl,1,/core/concepts/features/security/tls/configuring-tls,manual, +https://clickhouse.com/docs/guides/sre/configuring-ssl/,1,/core/concepts/features/security/tls/configuring-tls,manual, +https://clickhouse.com/docs/integrations/language-clients/javascript#custom-httphttps-agent-experimental-nodejs-only,1,/integrations/language-clients/javascript/usage#custom-httphttps-agent-experimental-nodejs-only,manual, +/interfaces/,1,/core/concepts/features/interfaces/overview,manual, +https://clickhouse.com/docs/interfaces,1,/core/concepts/features/interfaces/overview,manual, +https://clickhouse.com/docs/knowledgebase/certificate_verify_failed_error,2,/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error,manual, +/docs/knowledgebase/certificate_verify_failed_error,2,/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error,manual, +https://clickhouse.com/docs/optimize/avoidoptimizefinal,2,/core/concepts/best-practices/avoid-optimize-final,manual, +/optimize/avoidoptimizefinal,2,/core/concepts/best-practices/avoid-optimize-final,manual, +/cloud/manage/api/usageCost-api-reference,2,/api-reference/billing/get-organization-usage-costs,manual, +/cloud/security/cloud-access-management/overview,2,/products/cloud/guides/security/cloud-access-management/manage-database-users,manual, +/core/concepts/features/interfaces/formats,5,/core/reference/formats,manual, +https://clickhouse.com/docs/sql-reference/formats,5,/core/reference/formats,manual, +https://clickhouse.com/docs/sql-reference/formats/,5,/core/reference/formats,manual, +/sql-reference/formats,5,/core/reference/formats,manual, +https://clickhouse.com/docs/faq/general/datalake,1,/resources/support-center/knowledge-base/general-faqs/datalake,manual, +/faq/general/datalake,1,/resources/support-center/knowledge-base/general-faqs/datalake,manual, +https://clickhouse.com/docs/faq/general/faq-index,1,/resources/support-center/knowledge-base/general-faqs/faq-index,manual, +/faq/general/faq-index,1,/resources/support-center/knowledge-base/general-faqs/faq-index,manual, +https://clickhouse.com/docs/faq/general/separate-storage,1,/resources/support-center/knowledge-base/general-faqs/separate-storage,manual, +/faq/general/separate-storage,1,/resources/support-center/knowledge-base/general-faqs/separate-storage,manual, +https://clickhouse.com/docs/faq/general/time-series,1,/resources/support-center/knowledge-base/general-faqs/time-series,manual, +/faq/general/time-series,1,/resources/support-center/knowledge-base/general-faqs/time-series,manual, +https://clickhouse.com/docs/faq/general/concurrency,1,/resources/support-center/knowledge-base/general-faqs/concurrency,manual, +/faq/general/concurrency,1,/resources/support-center/knowledge-base/general-faqs/concurrency,manual, +https://clickhouse.com/docs/faq/general/key-value,1,/resources/support-center/knowledge-base/general-faqs/key-value,manual, +/faq/general/key-value,1,/resources/support-center/knowledge-base/general-faqs/key-value,manual, +https://clickhouse.com/docs/faq/general/cost-based,1,/resources/support-center/knowledge-base/general-faqs/cost-based,manual, +/faq/general/cost-based,1,/resources/support-center/knowledge-base/general-faqs/cost-based,manual, +https://clickhouse.com/docs/faq/general/who-is-using-clickhouse,1,/resources/support-center/knowledge-base/general-faqs/who-is-using-clickhouse,manual, +/faq/general/who-is-using-clickhouse,1,/resources/support-center/knowledge-base/general-faqs/who-is-using-clickhouse,manual, +https://clickhouse.com/docs/faq/general/distributed-join,1,/resources/support-center/knowledge-base/general-faqs/distributed-join,manual, +/faq/general/distributed-join,1,/resources/support-center/knowledge-base/general-faqs/distributed-join,manual, +https://clickhouse.com/docs/faq/general/updates,1,/resources/support-center/knowledge-base/general-faqs/updates,manual, +/faq/general/updates,1,/resources/support-center/knowledge-base/general-faqs/updates,manual, +https://clickhouse.com/docs/faq/general/why-recommend-clickhouse-keeper-over-zookeeper,1,/resources/support-center/knowledge-base/general-faqs/why-recommend-clickhouse-keeper-over-zookeeper,manual, +/faq/general/why-recommend-clickhouse-keeper-over-zookeeper,1,/resources/support-center/knowledge-base/general-faqs/why-recommend-clickhouse-keeper-over-zookeeper,manual, +https://clickhouse.com/docs/faq/general/dependencies,1,/resources/support-center/knowledge-base/general-faqs/dependencies,manual, +/faq/general/dependencies,1,/resources/support-center/knowledge-base/general-faqs/dependencies,manual, +https://clickhouse.com/docs/faq/general/use-cases-index,1,/resources/support-center/knowledge-base/general-faqs/use-cases-index,manual, +/faq/general/use-cases-index,1,/resources/support-center/knowledge-base/general-faqs/use-cases-index,manual, +https://clickhouse.com/docs/faq/general/olap,1,/resources/support-center/knowledge-base/general-faqs/olap,manual, +/faq/general/olap,1,/resources/support-center/knowledge-base/general-faqs/olap,manual, +https://clickhouse.com/docs/faq/general/ne-tormozit,1,/resources/support-center/knowledge-base/general-faqs/ne-tormozit,manual, +/faq/general/ne-tormozit,1,/resources/support-center/knowledge-base/general-faqs/ne-tormozit,manual, +https://clickhouse.com/docs/faq/general/dbms-naming,1,/resources/support-center/knowledge-base/general-faqs/dbms-naming,manual, +/faq/general/dbms-naming,1,/resources/support-center/knowledge-base/general-faqs/dbms-naming,manual, +https://clickhouse.com/docs/faq/general/use-clickhouse-for-log-analytics,1,/resources/support-center/knowledge-base/general-faqs/use-clickhouse-for-log-analytics,manual, +/faq/general/use-clickhouse-for-log-analytics,1,/resources/support-center/knowledge-base/general-faqs/use-clickhouse-for-log-analytics,manual, +https://clickhouse.com/docs/faq/general/columnar-database,1,/resources/support-center/knowledge-base/general-faqs/columnar-database,manual, +/faq/general/columnar-database,1,/resources/support-center/knowledge-base/general-faqs/columnar-database,manual, +https://clickhouse.com/docs/faq/general/sql,1,/resources/support-center/knowledge-base/general-faqs/sql,manual, +/faq/general/sql,1,/resources/support-center/knowledge-base/general-faqs/sql,manual, +https://clickhouse.com/docs/faq/general/index,1,/resources/support-center/knowledge-base/general-faqs/index,manual, +/faq/general/index,1,/resources/support-center/knowledge-base/general-faqs/index,manual, +https://clickhouse.com/docs/faq/general/mapreduce,1,/resources/support-center/knowledge-base/general-faqs/mapreduce,manual, +/faq/general/mapreduce,1,/resources/support-center/knowledge-base/general-faqs/mapreduce,manual, +https://clickhouse.com/docs/faq/general/vector-search,1,/resources/support-center/knowledge-base/general-faqs/vector-search,manual, +/faq/general/vector-search,1,/resources/support-center/knowledge-base/general-faqs/vector-search,manual, +https://clickhouse.com/docs/faq/general/how-do-i-contribute-code-to-clickhouse,1,/resources/support-center/knowledge-base/general-faqs/how-do-i-contribute-code-to-clickhouse,manual, +/faq/general/how-do-i-contribute-code-to-clickhouse,1,/resources/support-center/knowledge-base/general-faqs/how-do-i-contribute-code-to-clickhouse,manual, +https://clickhouse.com/docs/faq/general/federated,1,/resources/support-center/knowledge-base/general-faqs/federated,manual, +/faq/general/federated,1,/resources/support-center/knowledge-base/general-faqs/federated,manual, +https://clickhouse.com/docs/faq/general/operations-index,1,/resources/support-center/knowledge-base/general-faqs/operations-index,manual, +/faq/general/operations-index,1,/resources/support-center/knowledge-base/general-faqs/operations-index,manual, +https://clickhouse.com/docs/get-started/quick-start,2,/core/get-started/setup/install,manual, +/integrations/data-formats/json,2,/core/guides/clickhouse/data-formats/json/intro,manual, +/knowledgebase,4,/resources/support-center/home,manual, +/language-clients/javascript,5,/integrations/language-clients/javascript/overview,manual, +/language-clients/javascript/release-notes,5,/integrations/language-clients/javascript/release-notes,manual, +/language-clients/javascript/reference,5,/integrations/language-clients/javascript/reference,manual, +/language-clients/javascript/examples,5,/integrations/language-clients/javascript/examples,manual, +/language-clients/javascript/usage,5,/integrations/language-clients/javascript/usage,manual, +/use-cases/observability/clickstack/deployment/overview,1,/products/clickstack/deployment/overview,manual, +/products/clickhouse-private,1,/products/clickhouse-private/deployment/bare-metal,manual, +/docs/products/clickhouse-private,1,/products/clickhouse-private/deployment/bare-metal,manual, +/docs/products/clickhouse-private/operational-guide,1,/products/clickhouse-private/management/operational-guide,manual, +/docs/products/clickhouse-private/howto-guides,1,/products/clickhouse-private/management/howto-guides,manual, +/docs/products/clickhouse-private/faq,1,/products/clickhouse-private/management/faq,manual, +/docs/products/clickhouse-private/breaking-changes,1,/products/clickhouse-private/overview/breaking-changes,manual, +/docs/products/clickhouse-private/api,1,/products/clickhouse-private/management/api,manual, +/docs/products/clickhouse-private/government,4,/products/clickhouse-private/deployment/government,manual, +/docs/products/clickhouse-private/bare-metal,4,/products/clickhouse-private/deployment/bare-metal,manual, +/docs/products/clickhouse-private/gcp,4,/products/clickhouse-private/deployment/gcp,manual, +/engines/table-engines/mergetree-family/textindexes,4,/core/reference/engines/table-engines/mergetree-family/textindexes,manual, +/click-stack/use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud,4,/products/clickstack/deployment/managed,manual, +/getting-started/quick-start,7,/core/get-started/setup/install,manual, +/operations/settings/settings-formats.md/#input_format_skip_unknown_fields,12,,no-match, +/integrations/data-visualization/metabase-and-clickhouse.md,10,/integrations/connectors/data-visualization/metabase-and-clickhouse,basename-unique, +/integrations/language-clients/java/client/client.mdx,9,/core/concepts/features/interfaces/client,basename-ambiguous,/integrations/language-clients/java/client | /resources/contribute/native-protocol/client +/engines/table-engines/mergetree-family/mergetree.md/#table_engine-mergetree-s3,8,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +/getting-started/install/install.mdx,8,/core/get-started/install/install,basename+parent-unique,/products/chdb/install +/knowledgebase/aws-privatelink-setup-for-clickpipes,8,,no-match, +/integrations/data-ingestion/data-formats/json/intro.md,8,/core/guides/clickhouse/data-formats/json/intro,basename+parent-unique,/core/get-started/about/intro | /core/guides/clickhouse/data-formats/intro | /products/clickstack/migration/elastic/intro | /products/cloud/getting-started/intro +/core/get-started/quick-start,7,/core/get-started/setup/install,manual, +/operations/settings/settings-formats.md/#input_format_with_names_use_header,7,,no-match, +/integrations/data-ingestion/clickpipes/mysql/faq.md,7,/integrations/clickpipes/mysql/faq,basename+parent-unique,/integrations/clickpipes/kafka/faq | /integrations/clickpipes/mongodb/faq | /integrations/clickpipes/postgres/faq | /products/bring-your-own-cloud/reference/faq | /products/clickstack/faq | /products/cloud/features/backups/faq | /products/managed-postgres/faq +/integrations/data-ingestion/kafka/index.md,7,/integrations/connectors/data-ingestion/kafka,basename+parent-unique,/integrations/clickpipes/kafka | /core/reference/engines/table-engines/integrations/kafka +/core/get-started/quickstarts/create-your-first-mergetree-table,6,,no-match, +/operations/settings/settings-formats.md/#input_format_import_nested_json,6,,no-match, +/operations/settings/settings-formats.md/#input_format_defaults_for_omitted_fields,6,,no-match, +/operations/storing-data.md/#using-local-cache,6,/core/concepts/features/configuration/server-config/storing-data,basename-unique, +/integrations/data-ingestion/etl-tools/dbt/index.md,5,/integrations/connectors/data-ingestion/etl-tools/dbt,basename-unique, +/sql-reference/functions/string-search-functions.md/#hasToken,5,/core/reference/functions/regular-functions/string-search-functions,basename-unique, +/sql-reference/functions/string-search-functions.md/#hasAllTokens,5,/core/reference/functions/regular-functions/string-search-functions,basename-unique, +/sql-reference/functions/string-search-functions.md/#hasAnyTokens,5,/core/reference/functions/regular-functions/string-search-functions,basename-unique, +/operations/settings/settings.md/#mutations_sync,5,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/settings/settings-formats.md/#format_csv_delimiter,5,,no-match, +/use-cases/observability/clickstack/production,5,/use-cases/observability/clickstack/managing/production,redirect-direct, +/engines/table-engines/mergetree-family/mergetree.md/#mergetree-data-storage,5,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +https://clickhouse.com/docs/cloud/manage/api/swagger#tag/ClickPipes/paths/~1v1~1organizations~1%7BorganizationId%7D~1services~1%7BserviceId%7D~1clickpipes/post,5,/api-reference/organization/get-list-of-available-organizations,manual, +/cloud/manage/api/swagger,5,/api-reference/organization/get-list-of-available-organizations,manual, +/core/guides/sre/user-management/index.md,4,,no-match, +/engines/table-engines/mergetree-family/invertedindexes,4,/core/reference/engines/table-engines/mergetree-family/textindexes,manual, +https://clickhouse.com/docs/en/sql-reference/statements/alter/projection,4,/core/reference/statements/alter/projection,basename-unique, +/core/get-started/quickstarts/build-etl-pipeline-using-clickhouse,4,,no-match, +/sql-reference/statements/alter/skipping-index.md/#materialize-index,4,/core/reference/statements/alter/skipping-index,basename-unique, +/operations/settings/settings-formats.md/#output_format_json_quote_64bit_integers,4,,no-match, +/operations/settings/settings-formats.md/#output_format_json_quote_denormals,4,,no-match, +/operations/settings/settings-formats.md/#output_format_json_array_of_rows,4,,no-match, +/operations/settings/settings-formats.md/#format_tsv_null_representation,4,,no-match, +https://clickhouse.com/docs,4,,no-match, +/knowledgebase/,4,/resources/support-center/home,manual, +/managed-postgres/read-replicas,4,/products/managed-postgres/read-replicas,basename-unique, +/managed-postgres/high-availability,4,/products/managed-postgres/high-availability,basename-unique, +/managed-postgres/connection,4,/products/managed-postgres/connection,basename-unique, +/use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud,4,/products/clickstack/deployment/managed,manual, +/core/get-started/quickstarts/obtain-your-cloud-connection-details,3,,no-match, +/core/get-started/quickstarts/create-your-first-service-on-cloud,3,,no-match, +/knowledgebase/exception-too-many-parts,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_read_bools_as_numbers,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_read_bools_as_strings,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_read_numbers_as_strings,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_read_arrays_as_strings,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_read_objects_as_strings,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_named_tuples_as_objects,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_try_infer_numbers_from_strings,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_try_infer_named_tuples_from_objects,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_infer_incomplete_types_as_strings,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_defaults_for_missing_elements_in_named_tuple,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_ignore_unknown_keys_in_named_tuple,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_compact_allow_variable_number_of_columns,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_throw_on_bad_escape_sequence,3,,no-match, +/operations/settings/settings-formats.md/#input_format_json_empty_as_default,3,,no-match, +/operations/settings/settings-formats.md/#output_format_json_quote_64bit_floats,3,,no-match, +/operations/settings/settings-formats.md/#output_format_json_quote_decimals,3,,no-match, +/operations/settings/settings-formats.md/#output_format_json_escape_forward_slashes,3,,no-match, +/operations/settings/settings-formats.md/#output_format_json_named_tuples_as_objects,3,,no-match, +/operations/settings/settings-formats.md/#output_format_json_validate_utf8,3,,no-match, +/operations/storing-data.md/#configuring-external-storage,3,/core/concepts/features/configuration/server-config/storing-data,basename-unique, +/sql-reference/functions/tuple-map-functions.md/#mapValues,3,/core/reference/functions/regular-functions/tuple-map-functions,basename-unique, +/sql-reference/functions/string-search-functions.md/#match,3,/core/reference/functions/regular-functions/string-search-functions,basename-unique, +/sql-reference/functions/string-functions.md/#startsWith,3,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-functions.md/#endsWith,3,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-search-functions.md/#hasTokenOrNull,3,/core/reference/functions/regular-functions/string-search-functions,basename-unique, +/core/guides/sre/keeper/index.md,3,/core/guides/oss/deployment-and-scaling/keeper,basename-unique, +/sql-reference/statements/create/table.md/#default,3,/core/reference/statements/create/table,basename-unique, +/operations/settings/settings-formats.md/#input_format_with_types_use_header,3,,no-match, +/sql-reference/data-types/nested-data-structures/index.md,3,/core/reference/data-types/nested-data-structures,basename-unique, +/sql-reference/dictionaries#dictionary-sources,3,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/sql-reference/dictionaries,3,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +https://clickhouse.com/docs/introduction/distinctive-features/#data-compression,3,/core/get-started/about/distinctive-features,basename-unique, +/whats-new/changelog/2019.md/#experimental-features-1,3,/resources/changelogs/oss/2019,basename-unique, +/language-clients/javascript/usage#streaming-files-nodejs-only,3,/products/cloud/guides/best-practices/usagelimits,contains-unique, +https://clickhouse.com/docs/cloud/manage/api/swagger#tag/ClickPipes,3,,no-match, +/sql-reference/functions/files.md/#file,3,/core/reference/functions/regular-functions/files,basename-unique, +/managed-postgres/quickstart,3,/products/managed-postgres/quickstart,basename+parent-unique,/integrations/clickpipes/mongodb/quickstart | /products/chdb/datastore/quickstart +/use-cases/observability/clickstack/production#configure-ttl,3,/use-cases/observability/clickstack/managing/production,redirect-direct, +/chdb/datastore/guides/pandas-performance,3,/products/chdb/guides/pandas-performance,basename-unique, +/core/get-started/quickstarts/create-your-first-materialized-view,2,,no-match, +/core/get-started/quickstarts/insert-data-using-clickhouse-client,2,,no-match, +https://clickhouse.com/docs/en/interfaces/formats,2,/core/reference/formats,manual,/core/concepts/features/interfaces/formats | /core/reference/formats | /core/reference/settings/formats | /core/reference/system-tables/formats +/operations/settings/settings.md/#materialize_skip_indexes_on_insert,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/server-configuration-parameters/settings.md/#background_pool_size,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/server-configuration-parameters/settings.md/#background_merges_mutations_concurrency_ratio,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/settings/settings-formats.md/#format_regexp_escaping_rule,2,,no-match, +/sql-reference/aggregate-functions/reference/anyLast.md,2,/sql-reference/aggregate-functions/reference/anyLast,redirect-direct, +/engines/table-engines/mergetree-family/mergetree.md/#projections,2,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +/sql-reference/aggregate-functions/reference/argMin.md,2,/sql-reference/aggregate-functions/reference/argMin,redirect-direct, +/sql-reference/aggregate-functions/reference/argMax.md,2,/sql-reference/aggregate-functions/reference/argMax,redirect-direct, +/operations/settings/settings.md/#join_use_nulls,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/sql-reference/functions/splitting-merging-functions.md/#tokens,2,/core/reference/functions/regular-functions/splitting-merging-functions,basename-unique, +/sql-reference/functions/string-functions.md/#lower,2,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-functions.md/#lowerUTF8,2,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-functions.md/#normalizeUTF8NFC,2,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-functions.md/#normalizeUTF8NFD,2,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-functions.md/#normalizeUTF8NFKC,2,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-functions.md/#normalizeUTF8NFKD,2,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-functions.md/#toValidUTF8,2,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-functions.md/#extractTextFromHTML,2,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-functions.md/#substring,2,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-functions.md/#idnaEncode,2,/core/reference/functions/regular-functions/string-functions,basename-unique, +/engines/table-engines/mergetree-family/mergetree.md/#skip-index-types,2,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +/sql-reference/functions/tuple-map-functions.md/#mapKeys,2,/core/reference/functions/regular-functions/tuple-map-functions,basename-unique, +/sql-reference/functions/json-functions.md/#JSONAllPaths,2,/core/reference/functions/regular-functions/json-functions,basename-unique, +/sql-reference/functions/tuple-map-functions.md/#mapvalues,2,/core/reference/functions/regular-functions/tuple-map-functions,basename-unique, +/sql-reference/functions/string-search-functions.md/#like,2,/core/reference/functions/regular-functions/string-search-functions,basename-unique, +/operations/server-configuration-parameters/settings.md/#background_schedule_pool_size,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/engines/table-engines/mergetree-family/mergetree.md/#table_engine-mergetree-multiple-volumes,2,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +/sql-reference/statements/insert-into.md/#inserting-the-results-of-select,2,/core/reference/statements/insert-into,basename-unique, +/sql-reference/dictionaries#storing-dictionaries-in-memory,2,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/sql-reference/dictionaries#refreshing-dictionary-data-using-lifetime,2,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/operations/settings/settings-formats.md/#input_format_json_validate_types_from_metadata,2,,no-match, +/operations/settings/settings-formats.md/#format_json_object_each_row_column_for_object_name,2,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_enum_as_number,2,,no-match, +/operations/settings/settings-formats.md/#output_format_csv_crlf_end_of_line,2,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_skip_first_lines,2,,no-match, +/operations/settings/settings-formats.md/#input_format_tsv_enum_as_number,2,,no-match, +/operations/settings/settings-formats.md/#input_format_tsv_skip_first_lines,2,,no-match, +/operations/server-configuration-parameters/settings.md/#format_schema_path,2,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/settings/settings-formats.md/#output_format_pretty_display_footer_column_names,2,,no-match, +/core/guides/developer/on-the-fly-mutations,2,/core/guides/developer/on-fly-mutations,redirect-direct, +/integrations/gcs,2,/integrations/data-ingestion/gcs,redirect-direct, +/engines/table-engines/mergetree-family/mergetree.md/#primary-keys-and-indexes-in-queries,2,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +/knowledgebase/key-value,2,/resources/support-center/knowledge-base/general-faqs/key-value,basename-unique, +/interfaces/third-party/client-libraries.md,2,,no-match, +https://clickhouse.com/docs/knowledgebase/production#how-to-choose-between-clickhouse-releases,2,/resources/support-center/knowledge-base/setup-installation/production,basename-unique, +/integrations/language-clients/java/jdbc-v1#configuring-http-library,2,,no-match, +/language-clients/javascript/usage#keep-alive-configuration-nodejs-only,2,/products/cloud/guides/best-practices/usagelimits,contains-unique, +/language-clients/javascript/usage#custom-httphttps-agent-experimental-nodejs-only,2,/products/cloud/guides/best-practices/usagelimits,contains-unique, +/language-clients/javascript/usage#supported-data-formats,2,/products/cloud/guides/best-practices/usagelimits,contains-unique, +/integrations/mysql,2,/integrations/data-sources/mysql,redirect-direct, +//cloud/get-started/query-endpoints.md,2,/products/cloud/features/sql-console-features/query-endpoints,basename-ambiguous,/products/cloud/guides/sql-console/query-endpoints +/sql-reference/statements/insert-into.md/#inserting-data-from-a-file,2,/core/reference/statements/insert-into,basename-unique, +/engines/table-engines/integrations/s3.md/#settings,2,/core/reference/engines/table-engines/integrations/s3,basename+parent-unique,/core/reference/functions/table-functions/s3 +/integrations/data-ingestion/dbms/jdbc-with-clickhouse.md,2,/integrations/connectors/data-ingestion/jdbc-with-clickhouse,basename-unique, +https://clickhouse.com/docs/en/sql-reference/table-functions/view/,2,/core/reference/functions/table-functions/view,basename+parent-unique,/core/reference/engines/table-engines/special/view | /core/reference/statements/alter/view | /core/reference/statements/create/view +https://clickhouse.com/docs/en/operations/system-tables/tables/,2,/core/reference/system-tables/tables,basename-unique, +/knowledgebase/how-to-connect-to-ch-cloud-using-ssh-keys,2,,no-match, +/whats-new/cloud,2,/cloud/reference/changelog/changelog,redirect-direct, +https://clickhouse.com/docs/cloud/security/cloud-access-management/overview,2,/products/cloud/guides/security/cloud-access-management/manage-database-users,manual,/core/concepts/features/configuration/settings/overview | /core/concepts/features/operations/delete/overview | /core/concepts/features/operations/update/overview | /core/get-started/migration-guides/bigquery/overview | /core/get-started/migration-guides/elastic/overview +https://clickhouse.com/docs/cloud/manage/api/usageCost-api-reference,2,/api-reference/billing/get-organization-usage-costs,manual, +/integrations/data-visualization/grafana/index.md,2,/integrations/connectors/data-visualization/grafana,basename+parent-unique,/core/guides/use-cases/observability/build-your-own/grafana +/interfaces/cli.md/#cli-queries-with-parameters,2,/core/concepts/features/interfaces/cli,basename-ambiguous,/products/cloud/features/cli +/knowledgebase/useful-queries-for-troubleshooting,2,,no-match, +/knowledgebase/certificate_verify_failed_error,2,/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error,manual, +/faq/general/why-clickhouse-is-so-fast,2,/core/get-started/about/why-clickhouse-is-so-fast,basename-unique, +https://clickhouse.com/docs/integrations/data-formats/json,2,/core/guides/clickhouse/data-formats/json/intro,manual,/core/guides/clickhouse/data-formats/json/exporting | /core/guides/clickhouse/data-formats/json/formats | /core/guides/clickhouse/data-formats/json/inference | /core/guides/clickhouse/data-formats/json/intro | /core/guides/clickhouse/data-formats/json/loading +/chdb/guides/querying-pandas,2,/products/chdb/guides/querying-pandas,basename-unique, +/managed-postgres/overview,2,/products/managed-postgres/overview,basename+parent-unique,/core/concepts/features/backup-restore/overview | /core/concepts/features/configuration/settings/overview | /core/concepts/features/operations/delete/overview | /core/concepts/features/operations/update/overview | /core/get-started/migration-guides/bigquery/overview | /core/get-started/migration-guides/elastic/overview | /core/get-started/migration-guides/overview | /core/get-started/migration-guides/postgres/overview | /core/get-started/migration-guides/redshift/overview | /core/get-started/migration-guides/snowflake/overview | /core/get-started/use-cases/overview | /core/guides/use-cases/data-warehousing/getting-started/overview | /integrations/clickpipes/bigquery/overview | /integrations/clickpipes/kinesis/overview | /integrations/clickpipes/object-storage/amazon-s3/overview | /integrations/clickpipes/object-storage/azure-blob-storage/overview | /integrations/clickpipes/object-storage/google-cloud-storage/overview | /integrations/connectors/data-ingestion/azure/azure-data-factory/overview | /core/concepts/features/interfaces/overview | /integrations/language-clients/csharp/overview | /products/clickstack/features/dashboards/overview | /products/clickstack/ingesting-data/overview | /products/clickstack/overview | /products/cloud/features/autoscaling/overview | /products/cloud/features/backups/overview | /products/cloud/features/monitoring/overview | /products/cloud/guides/infrastructure/deployment-options/byoc/overview | /products/cloud/reference/billing/marketplace/overview | /products/kubernetes-operator/overview | /core/reference/functions/regular-functions/overview | /core/reference/statements/create/dictionary/layouts/overview | /core/reference/statements/create/dictionary/sources/overview | /core/reference/system-tables/overview +/managed-postgres/backup-and-restore,2,/products/managed-postgres/backup-and-restore,basename-unique, +/managed-postgres/settings,2,/products/managed-postgres/settings,basename+parent-unique,/products/cloud/reference/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/cloud/reference/byoc/architecture,2,/cloud/guides/infrastructure/deployment_options/byoc/architecture,redirect-direct, +https://clickhouse.com/docs/cloud/manage/api/swagger#/paths/~1v1~1organizations~1:organizationId~1services~1:serviceId~1scaling/patch,2,,no-match, +/managed-postgres/quickstart#create-postgres-database,2,/products/managed-postgres/quickstart,basename+parent-unique,/integrations/clickpipes/mongodb/quickstart | /products/chdb/datastore/quickstart +/use-cases/observability/clickstack/ingesting-data/kubernetes#forwarding-resouce-tags-to-pods,2,/products/clickstack/example-datasets/kubernetes,basename-ambiguous,/products/clickstack/integration-examples/kubernetes +/examples/host-logs-dashboard.json,2,,no-match, +https://clickhouse.com/docs/en/sql-reference/data-types/aggregatefunction,2,/core/reference/data-types/aggregatefunction,basename-unique, +/chdb/datastore/debugging,2,/products/chdb/debugging,basename-unique, +/chdb/datastore/guides/pandas-differences,2,/products/chdb/guides/pandas-differences,basename-unique, +/chdb/datastore/guides/migration-from-pandas,2,/products/chdb/guides/migration-from-pandas,basename-unique, +/getting-started/index.md,1,/products/chdb/getting-started,basename-ambiguous,/products/clickstack/getting-started +https://clickhouse.com/docs/knowledgebase/fix-developer-verification-error-in-macos,1,,no-match, +https://clickhouse.com/docs/knowledgebase/why_default_logging_verbose,1,,no-match, +/integrations/data-ingestion/s3/index.md,1,/core/reference/engines/table-engines/integrations/s3,basename-ambiguous,/core/reference/functions/table-functions/s3 +https://clickhouse.com/docs/en/sql-reference/table-functions/url,1,/core/reference/functions/table-functions/url,basename+parent-unique,/core/reference/engines/table-engines/special/url +/sql-reference/functions/geo/coordinates.md/#pointinpolygon,1,/core/reference/functions/regular-functions/geo/coordinates,basename-unique, +/core/get-started/quickstarts/create-your-first-projection,1,,no-match, +https://clickhouse.com/docs/en/sql-reference/statements/create/view#materialized-view,1,/core/reference/statements/create/view,basename+parent-unique,/core/reference/engines/table-engines/special/view | /core/reference/functions/table-functions/view | /core/reference/statements/alter/view +https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree,1,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +/quickstarts/materialized-views,1,/core/get-started/quickstarts/create-your-first-materialized-view,manual,/products/clickstack/managing/materialized-views | /resources/support-center/tips-and-tricks/materialized-views +/quickstarts/etl-pipeline,1,/core/get-started/quickstarts/build-etl-pipeline-using-clickhouse,manual, +/en/engines/table-engines/mergetree-family/mergetree,1,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +/en/operations/system-tables/parts,1,/core/reference/system-tables/parts,basename+parent-unique,/core/concepts/core-concepts/parts +/en/sql-reference/data-types,1,/core/reference/data-types,manual,/core/reference/data-types +https://clickhouse.com/docs/en/interfaces/cli,1,/core/concepts/features/interfaces/cli,basename-ambiguous,/products/cloud/features/cli +https://clickhouse.com/docs/en/cloud/bestpractices/cloud-connection,1,,no-match, +https://clickhouse.com/docs/en/interfaces/tcp,1,/core/concepts/features/interfaces/tcp,basename-unique, +https://clickhouse.com/docs/en/interfaces/http,1,/core/concepts/features/security/external-authenticators/http,basename-ambiguous,/core/concepts/features/interfaces/http | /core/reference/statements/create/dictionary/sources/http +/en/operations/utilities/clickhouse-local,1,/core/concepts/features/tools-and-utilities/clickhouse-local,manual,/products/chdb/guides/clickhouse-local +/core/get-started/quickstarts/common-getting-started-issues,1,/core/get-started/quickstarts/home,manual, +/en/sql-reference/data-types/map,1,/core/reference/data-types/map,basename-unique, +/en/sql-reference/aggregate-functions/combinators,1,/core/reference/functions/aggregate-functions/combinators,basename-unique, +/integrations/postgresql/connecting-to-postgresql,1,/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql,redirect-direct, +/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md,1,/integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse,basename-unique, +/integrations/data-ingestion/etl-tools/vector-to-clickhouse.md,1,/integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse,basename-unique, +/operations/settings/settings-formats.md/#format_capn_proto_enum_comparising_mode,1,,no-match, +/operations/settings/settings-formats.md/#format_regexp,1,,no-match, +/operations/settings/settings-formats.md/#output_format_arrow_string_as_string,1,,no-match, +/operations/settings/settings-formats.md/#output_format_orc_compression_method,1,,no-match, +/operations/settings/settings-formats.md/#input_format_arrow_case_insensitive_column_matching,1,,no-match, +/operations/settings/settings-formats.md/#input_format_arrow_allow_missing_columns,1,,no-match, +/operations/settings/settings-formats.md/#input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference,1,,no-match, +/operations/settings/settings-formats.md/#input_format_mysql_dump_table_name,1,,no-match, +/operations/settings/settings-formats.md/#input_format_msgpack_number_of_columns,1,,no-match, +/operations/settings/settings-formats.md/#output_format_msgpack_uuid_representation,1,,no-match, +/sql-reference/aggregate-functions/reference/sumWithOverflow.md,1,/sql-reference/aggregate-functions/reference/sumWithOverflow,redirect-direct, +/sql-reference/aggregate-functions/reference/groupBitAnd.md,1,/sql-reference/aggregate-functions/reference/groupBitAnd,redirect-direct, +/sql-reference/aggregate-functions/reference/groupBitOr.md,1,/sql-reference/aggregate-functions/reference/groupBitOr,redirect-direct, +/sql-reference/aggregate-functions/reference/groupBitXor.md,1,/sql-reference/aggregate-functions/reference/groupBitXor,redirect-direct, +/sql-reference/aggregate-functions/reference/groupArrayArray.md,1,/sql-reference/aggregate-functions/reference/groupArrayArray,redirect-direct, +/sql-reference/aggregate-functions/reference/sumMappedArrays.md,1,,no-match, +/sql-reference/aggregate-functions/reference/minMappedArrays.md,1,,no-match, +/sql-reference/aggregate-functions/reference/maxMappedArrays.md,1,,no-match, +/sql-reference/table-functions/file.md/#globs-in-path,1,/core/reference/functions/table-functions/file,basename+parent-unique,/core/reference/engines/table-engines/special/file +/engines/table-engines/mergetree-family/mergetree.md/#virtual-columns,1,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +/operations/workload-scheduling.md/#hierarchy,1,/core/concepts/features/configuration/server-config/workload-scheduling,basename-unique, +/knowledgebase/count-parts-by-type,1,/resources/support-center/knowledge-base/troubleshooting/count-parts-by-type,manual, +/sql-reference/functions/splitting-merging-functions.md/#splitByNonAlpha,1,/core/reference/functions/regular-functions/splitting-merging-functions,basename-unique, +/sql-reference/aggregate-functions/reference/quantileDeterministic.md,1,/sql-reference/aggregate-functions/reference/quantileDeterministic,redirect-direct, +/sql-reference/aggregate-functions/reference/quantileExact.md,1,/sql-reference/aggregate-functions/reference/quantileExact,redirect-direct, +/sql-reference/aggregate-functions/reference/quantileExactWeighted.md,1,/sql-reference/aggregate-functions/reference/quantileExactWeighted,redirect-direct, +/sql-reference/aggregate-functions/reference/quantileTiming.md,1,/sql-reference/aggregate-functions/reference/quantileTiming,redirect-direct, +/sql-reference/aggregate-functions/reference/quantileTimingWeighted.md,1,/sql-reference/aggregate-functions/reference/quantileTimingWeighted,redirect-direct, +/sql-reference/aggregate-functions/reference/quantileTDigest.md,1,/sql-reference/aggregate-functions/reference/quantileTDigest,redirect-direct, +/sql-reference/aggregate-functions/reference/quantileTDigestWeighted.md,1,/sql-reference/aggregate-functions/reference/quantileTDigestWeighted,redirect-direct, +/sql-reference/aggregate-functions/reference/quantileBFloat16.md,1,/sql-reference/aggregate-functions/reference/quantileBFloat16,redirect-direct, +/sql-reference/aggregate-functions/reference/quantileDD.md,1,/core/reference/functions/aggregate-functions/reference/quantileddsketch,contains-unique, +/sql-reference/functions/other-functions.md/#joinGet,1,/core/reference/functions/regular-functions/other-functions,basename-unique, +/operations/settings/settings.md/#join_any_take_last_row,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/core/guides/best-practices/asyncinserts.md,1,/core/concepts/features/operations/insert/asyncinserts,basename-unique, +/sql-reference/statements/create/table.md/#default_values,1,/core/reference/statements/create/table,basename-unique, +/sql-reference/functions/splitting-merging-functions.md/#tokensForLikePattern,1,/core/reference/functions/regular-functions/splitting-merging-functions,basename-unique, +/sql-reference/functions/string-functions.md/#caseFoldUTF8,1,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-functions.md/#normalizeUTF8NFKCCasefold,1,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-replace-functions.md/#translate,1,/core/reference/functions/regular-functions/string-replace-functions,basename-unique, +/sql-reference/functions/string-functions.md/#removeDiacriticsUTF8,1,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/string-search-functions.md/#hasPhrase,1,/core/reference/functions/regular-functions/string-search-functions,basename-unique, +/sql-reference/functions/tuple-map-functions.md/#mapkeys,1,/core/reference/functions/regular-functions/tuple-map-functions,basename-unique, +/sql-reference/statements/select/order-by.md/#sorting-of-special-values,1,/core/reference/statements/select/order-by,basename+parent-unique,/core/reference/statements/alter/order-by +/operations/settings/settings.md/#max_threads,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/settings/settings.md/#force_index_by_date,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/sql-reference/functions/string-functions.md/#sparseGrams,1,/core/reference/functions/regular-functions/string-functions,basename-unique, +/sql-reference/functions/comparison-functions.md/#equals,1,/core/reference/functions/regular-functions/comparison-functions,basename-unique, +/sql-reference/functions/comparison-functions.md/#notEquals,1,/core/reference/functions/regular-functions/comparison-functions,basename-unique, +/sql-reference/functions/string-search-functions.md/#notLike,1,/core/reference/functions/regular-functions/string-search-functions,basename-unique, +/sql-reference/functions/string-search-functions.md/#multiSearchAny,1,/core/reference/functions/regular-functions/string-search-functions,basename-unique, +/sql-reference/functions/comparison-functions.md/#less,1,/core/reference/functions/regular-functions/comparison-functions,basename-unique, +/sql-reference/functions/comparison-functions.md/#greater,1,/core/reference/functions/regular-functions/comparison-functions,basename-unique, +/sql-reference/functions/comparison-functions.md/#lessOrEquals,1,/core/reference/functions/regular-functions/comparison-functions,basename-unique, +/sql-reference/functions/comparison-functions.md/#greaterOrEquals,1,/core/reference/functions/regular-functions/comparison-functions,basename-unique, +/sql-reference/functions/string-search-functions.md/#hasTokenCaseInsensitive,1,/core/reference/functions/regular-functions/string-search-functions,basename-unique, +/sql-reference/functions/string-search-functions.md/#hasTokenCaseInsensitiveOrNull,1,/core/reference/functions/regular-functions/string-search-functions,basename-unique, +/integrations/data-ingestion/gcs/index.md/#creating-a-disk,1,/core/reference/functions/table-functions/gcs,basename-unique, +/operations/server-configuration-parameters/settings.md/#path,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/server-configuration-parameters/settings.md/#background_move_pool_size,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/settings/merge-tree-settings.md/#min_bytes_to_rebalance_partition_over_jbod,1,/core/reference/settings/merge-tree-settings,basename-unique, +/operations/storing-data.md/#refresh-parts-interval-and-table-disk,1,/core/concepts/features/configuration/server-config/storing-data,basename-unique, +/operations/settings/settings.md/#max_replica_delay_for_distributed_queries,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/settings/settings.md/#fallback_to_stale_replicas_for_distributed_queries,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/server-configuration-parameters/settings.md/#merge_tree,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/server-configuration-parameters/settings.md/#macros,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/server-configuration-parameters/settings.md/#background_fetches_pool_size,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/settings/merge-tree-settings.md/#max_replicated_fetches_network_bandwidth,1,/core/reference/settings/merge-tree-settings,basename-unique, +/operations/settings/merge-tree-settings.md/#max_replicated_sends_network_bandwidth,1,/core/reference/settings/merge-tree-settings,basename-unique, +/sql-reference/statements/kill.md/#kill-mutation,1,/core/reference/statements/kill,basename-unique, +/engines/table-engines/mergetree-family/mergetree.md/#mergetree-column-ttl,1,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +/engines/table-engines/mergetree-family/mergetree.md/#column-level-settings,1,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +/sql-reference/statements/rename.md/#rename-table,1,/core/reference/statements/rename,basename-unique, +/core/guides/best-practices/sparse-primary-indexes.md/#option-3-projections,1,/core/guides/clickhouse/data-modelling/sparse-primary-indexes,basename-unique, +/sql-reference/statements/create/dictionary/overview.md,1,/core/concepts/features/backup-restore/overview,basename-ambiguous,/core/concepts/features/configuration/settings/overview | /core/concepts/features/operations/delete/overview | /core/concepts/features/operations/update/overview | /core/get-started/migration-guides/bigquery/overview | /core/get-started/migration-guides/elastic/overview +/sql-reference/dictionaries#dbms,1,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/knowledgebase/oracle-odbc,1,/resources/support-center/knowledge-base/integrations/oracle-odbc,basename-unique, +/operations/settings/settings-formats.md/#format_custom_field_delimiter,1,,no-match, +/operations/settings/settings-formats.md/#format_custom_row_before_delimiter,1,,no-match, +/operations/settings/settings-formats.md/#format_custom_row_after_delimiter,1,,no-match, +/operations/settings/settings-formats.md/#format_custom_row_between_delimiter,1,,no-match, +/operations/settings/settings-formats.md/#format_custom_result_before_delimiter,1,,no-match, +/operations/settings/settings-formats.md/#format_custom_result_after_delimiter,1,,no-match, +/operations/settings/settings-formats.md/#input_format_avro_allow_missing_fields,1,,no-match, +/operations/settings/settings-formats.md/#output_format_avro_codec,1,,no-match, +/operations/settings/settings-formats.md/#output_format_avro_sync_interval,1,,no-match, +/operations/settings/settings-formats.md/#format_csv_null_representation,1,,no-match, +/operations/settings/settings-formats.md/#format_csv_allow_single_quotes,1,,no-match, +/operations/settings/settings-formats.md/#format_csv_allow_double_quotes,1,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_empty_as_default,1,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_use_best_effort_in_schema_inference,1,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_arrays_as_nested_csv,1,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_detect_header,1,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_skip_trailing_empty_lines,1,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_trim_whitespaces,1,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_allow_whitespace_or_tab_as_delimiter,1,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_allow_variable_number_of_columns,1,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_use_default_on_bad_values,1,,no-match, +/operations/settings/settings-formats.md/#input_format_csv_try_infer_numbers_from_strings,1,,no-match, +/operations/settings/settings-formats.md/#input_format_tsv_empty_as_default,1,,no-match, +/operations/settings/settings-formats.md/#input_format_tsv_use_best_effort_in_schema_inference,1,,no-match, +/operations/settings/settings-formats.md/#output_format_tsv_crlf_end_of_line,1,,no-match, +/operations/settings/settings-formats.md/#input_format_tsv_crlf_end_of_line,1,,no-match, +/operations/settings/settings-formats.md/#input_format_tsv_detect_header,1,,no-match, +/operations/settings/settings-formats.md/#input_format_tsv_skip_trailing_empty_lines,1,,no-match, +/operations/settings/settings-formats.md/#input_format_tsv_allow_variable_number_of_columns,1,,no-match, +/operations/settings/settings-formats.md#input_format_protobuf_oneof_presence,1,,no-match, +/operations/settings/settings-formats.md#format_protobuf_use_autogenerated_schema,1,,no-match, +/sql-reference/statements/system.md/#system-drop-schema-format,1,/core/reference/statements/system,basename-unique, +/operations/settings/settings-formats.md/#output_format_pretty_max_rows,1,,no-match, +/operations/settings/settings-formats.md/#output_format_pretty_max_column_pad_width,1,,no-match, +/operations/settings/settings-formats.md/#output_format_pretty_max_value_width,1,,no-match, +/operations/settings/settings-formats.md/#output_format_pretty_color,1,,no-match, +/operations/settings/settings-formats.md/#output_format_pretty_grid_charset,1,,no-match, +/operations/settings/settings-formats.md/#output_format_pretty_row_numbers,1,,no-match, +/operations/settings/settings-formats.md/#output_format_pretty_display_footer_column_names_min_rows,1,,no-match, +/operations/settings/settings-formats.md/#output_format_avro_string_column_pattern,1,,no-match, +/operations/settings/settings-formats.md/#format_binary_max_string_size,1,,no-match, +/operations/settings/settings-formats.md/#output_format_binary_write_json_as_string,1,,no-match, +/operations/settings/settings-formats.md/#input_format_binary_read_json_as_string,1,,no-match, +https://clickhouse.com/docs/best-practices/...,1,,no-match, +/joining-tables,1,/core/concepts/features/operations/select/joining-tables,basename-unique, +/deployment-guides/terminology.md,1,/core/guides/oss/deployment-and-scaling/terminology,basename-unique, +/managing-data/update_mutations,1,/managing-data/updating-data/update_mutations,redirect-direct, +/integrations/data-ingestion/s3/index.md#configuring-s3-for-clickhouse-use,1,/core/reference/engines/table-engines/integrations/s3,basename-ambiguous,/core/reference/functions/table-functions/s3 +/sql-reference/dictionaries#postgresql,1,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/sql-reference/dictionaries#ways-to-store-dictionaries-in-memory,1,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/sql-reference/dictionaries#hierarchical-dictionaries,1,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/sql-reference/dictionaries#polygon-dictionaries,1,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/sql-reference/dictionaries#regexp-tree-dictionary,1,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/interfaces/third-party/gui#clickhouse-flamegraph,1,/core/guides/use-cases/ai-ml,contains-ambiguous,/core/guides/use-cases/ai-ml/MCP | /core/guides/use-cases/ai-ml/MCP/ai-agent-libraries | /core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/agno | /core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/chainlit | /core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk +/core/guides/sre/keeper/index.md#four-letter-word-commands,1,/core/guides/oss/deployment-and-scaling/keeper,basename-unique, +/operations/settings/settings-query-level.md,1,/core/concepts/features/configuration/settings/settings-query-level,basename-unique, +/operations/settings/settings.md/#http_connection_timeout,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/settings/settings.md/#http_receive_timeout,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/core/reference/settings/server-settings/settings#http_handlers,1,/core/reference/settings/server-settings/settings,basename+parent-unique,/products/cloud/reference/settings | /products/managed-postgres/settings | /core/reference/settings | /core/reference/system-tables/settings +/operations/settings/settings.md/#use_concurrency_control,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/products/cloud/guides/sql-console/connection_details,1,/products/cloud/guides/sql-console/connection-details,basename-unique, +/products/cloud/guides/backups/01_review-and-restore-backups,1,,no-match, +/products/cloud/guides/backups/02_configurable-backups,1,,no-match, +/products/cloud/guides/data-sources/02_accessing-s3-data-securely,1,,no-match, +/products/cloud/guides/data-sources/01_cloud-endpoints-api,1,,no-match, +/optimize/partitioning-key,1,/core/guides/best-practices/partitioningkey,redirect-direct, +/engines/table-engines/mergetree-family/mergetree.md/#table_engine-mergetree-data_skipping-indexes,1,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +/core/guides/best-practices/skipping-indexes.md,1,/core/concepts/features/performance/skip-indexes/skipping-indexes,basename-unique, +/engines/table-engines/mergetree-family/mergetree.md/#choosing-a-primary-key-that-differs-from-the-sorting-key,1,/core/reference/engines/table-engines/mergetree-family/mergetree,basename-unique, +https://clickhouse.com/docs/introduction/distinctive-features/#true-column-oriented-dbms,1,/core/get-started/about/distinctive-features,basename-unique, +/sql-reference/dictionaries#ip_trie,1,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/sql-reference/dictionaries#use-regular-expression-tree-dictionary-in-clickhouse-open-source,1,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/sql-reference/dictionaries#collecting-attribute-values,1,/core/concepts/features/dictionaries,basename-ambiguous,/core/reference/system-tables/dictionaries +/blog/clickhouse-and-parquet-a-foundation-for-fast-lakehouse-analytics,1,,no-match, +/optimize/sparse-primary-indexes,1,/core/guides/clickhouse/data-modelling/sparse-primary-indexes,basename-unique, +/sql-reference/data-types/json,1,/core/concepts/best-practices/json-type,contains-ambiguous,/core/guides/clickhouse/data-formats/json/exporting | /core/guides/clickhouse/data-formats/json/formats | /core/guides/clickhouse/data-formats/json/inference | /core/guides/clickhouse/data-formats/json/intro | /core/guides/clickhouse/data-formats/json/loading +/images/clickpipes/clickpipes_stack.png,1,,no-match, +/images/clickpipes/cp_custom_role.png,1,,no-match, +/images/clickpipes/cp_advanced_settings.png,1,,no-match, +/knowledgebase/aws-privatelink-setup-for-msk-clickpipes,1,,no-match, +/integrations/clickpipes/object-storage,1,/core/get-started/migration-guides/other-methods/object-storage-to-clickhouse,contains-ambiguous,/integrations/clickpipes/object-storage/amazon-s3/get-started | /integrations/clickpipes/object-storage/amazon-s3/overview | /integrations/clickpipes/object-storage/amazon-s3/unordered-mode | /integrations/clickpipes/object-storage/azure-blob-storage/get-started | /integrations/clickpipes/object-storage/azure-blob-storage/overview +/integrations/data-ingestion/clickpipes/kinesis.md,1,/integrations/clickpipes/kinesis,basename-unique, +https://clickhouse.com/docs/en/sql-reference/data-types/special-data-types/interval,1,/core/reference/data-types/special-data-types/interval,basename-unique, +/language-clients/javascript/usage#contact-us,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, +/language-clients/javascript/usage#proxy-with-a-pathname,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, +/language-clients/javascript/usage#compression,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, +/language-clients/javascript/usage#logging-nodejs-only,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, +/language-clients/javascript/usage#reverse-proxy-with-authentication,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, +/language-clients/javascript/usage#tls-certificates-nodejs-only,1,/products/cloud/guides/best-practices/usagelimits,contains-unique, +https://clickhouse.com/docs/en/integrations/language-clients/javascript#custom-httphttps-agent-experimental-nodejs-only,1,,no-match, +https://clickhouse.com/docs/en/sql-reference/statements/create/table#ephemeral,1,/core/reference/statements/create/table,basename-unique, +https://clickhouse.com/docs/en/integrations/data-formats/parquet,1,/core/guides/clickhouse/data-formats/parquet,basename-unique, +https://clickhouse.com/docs/en/guides/sre/configuring-ssl/,1,,no-match, +/language-clients/java/client/_v0_8,1,/integrations/language-clients/java/client,manual, +/images/cloud/security/secures3_arn.png,1,,no-match, +https://clickhouse.com/docs/cloud/manage/api/swagger#tag/beta,1,,no-match, +https://clickhouse.com/docs/integrations/gcs#create-a-service-account-hmac-key-and-secret,1,/core/reference/functions/table-functions/gcs,basename-unique, +/images/integrations/data-ingestion/clickpipes/mysql/source/azure-flexible-server-mysql/1_configure_network_security.png,1,,no-match, +/images/integrations/data-ingestion/clickpipes/postgres/source/alloydb/1_edit_instance.png,1,,no-match, +/images/integrations/data-ingestion/clickpipes/postgres/source/alloydb/2_set_flags.png,1,,no-match, +/images/integrations/data-ingestion/clickpipes/postgres/source/alloydb/3_verify_logical_replication.png,1,,no-match, +/images/integrations/data-ingestion/clickpipes/postgres/source/alloydb/4_configure_network_security.png,1,,no-match, +/images/integrations/data-ingestion/clickpipes/mongodb/docdb-select-parameter-group.png,1,,no-match, +/images/integrations/data-ingestion/clickpipes/mongodb/docdb-modify-parameter-group.png,1,,no-match, +/images/integrations/data-ingestion/clickpipes/mongodb/docdb-apply-parameter-group.png,1,,no-match, +/images/integrations/data-ingestion/clickpipes/mongodb/docdb-parameter-group-status.png,1,,no-match, +/interfaces/third-party/gui,1,/core/guides/use-cases/ai-ml,contains-ambiguous,/core/guides/use-cases/ai-ml/MCP | /core/guides/use-cases/ai-ml/MCP/ai-agent-libraries | /core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/agno | /core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/chainlit | /core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk +/interfaces/third-party/proxy,1,,no-match, +/interfaces/third-party/integrations,1,/products/cloud/features/integrations,basename-ambiguous,/products/cloud/features/monitoring/integrations | /core/reference/engines/table-engines/integrations | /resources/support-center/knowledge-base/integrations +/integrations/azure-data-factory,1,/integrations/data-ingestion/azure-data-factory,redirect-direct, +/integrations/redis,1,/core/reference/engines/table-engines/integrations/redis,basename+parent-unique,/core/reference/functions/table-functions/redis | /core/reference/statements/create/dictionary/sources/redis +/integrations/rabbitmq,1,/core/reference/engines/table-engines/integrations/rabbitmq,basename-unique, +/integrations/mongodb,1,/core/reference/engines/table-engines/integrations/mongodb,basename+parent-unique,/integrations/clickpipes/mongodb | /core/reference/functions/table-functions/mongodb | /core/reference/statements/create/dictionary/sources/mongodb +/integrations/hive,1,/core/reference/engines/table-engines/integrations/hive,basename-unique, +/integrations/hudi,1,/core/reference/engines/table-engines/integrations/hudi,basename+parent-unique,/core/reference/functions/table-functions/hudi +/integrations/iceberg,1,/core/reference/engines/table-engines/integrations/iceberg,basename+parent-unique,/core/reference/functions/table-functions/iceberg +/integrations/deltalake,1,/core/reference/engines/table-engines/integrations/deltalake,basename+parent-unique,/core/reference/functions/table-functions/deltalake +/integrations/rocksdb,1,/core/reference/system-tables/rocksdb,basename-unique, +/integrations/sqlite,1,/core/reference/engines/table-engines/integrations/sqlite,basename+parent-unique,/core/reference/engines/database-engines/sqlite | /core/reference/functions/table-functions/sqlite +/integrations/nats,1,/core/reference/engines/table-engines/integrations/nats,basename-unique, +/integrations/data-ingestion/data-formats/binary.md,1,/core/guides/clickhouse/data-formats/binary,basename-unique, +/integrations/data-ingestion/data-formats/csv-tsv.md,1,/core/guides/clickhouse/data-formats/csv-tsv,basename-unique, +/integrations/data-ingestion/data-formats/parquet.md,1,/core/guides/clickhouse/data-formats/parquet,basename-unique, +/integrations/data-ingestion/data-formats/sql.md,1,/core/guides/clickhouse/data-formats/sql,basename+parent-unique,/resources/support-center/knowledge-base/general-faqs/sql +/operations/settings/settings-formats.md/#output_format_sql_insert_include_column_names,1,,no-match, +/operations/settings/settings-formats.md/#output_format_sql_insert_max_batch_size,1,,no-match, +/operations/settings/settings-formats.md/#format_regexp_skip_unmatched,1,,no-match, +/engines/table-engines/integrations/s3.md/#wildcards-in-path,1,/core/reference/engines/table-engines/integrations/s3,basename+parent-unique,/core/reference/functions/table-functions/s3 +/operations/server-configuration-parameters/settings.md/#default_replica_path,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/integrations/dbt/materialized-views,1,/core/concepts/features/materialized-views,basename-ambiguous,/products/clickstack/managing/materialized-views | /resources/support-center/tips-and-tricks/materialized-views +https://clickhouse.com/docs/en/beta-and-experimental-features,1,/core/reference/settings/beta-and-experimental-features,basename-unique, +https://clickhouse.com/docs/en/materialized-view,1,/core/concepts/features/materialized-views,contains-ambiguous,/core/concepts/features/materialized-views/cascading-materialized-views | /core/concepts/features/materialized-views/incremental-materialized-view | /core/concepts/features/materialized-views/refreshable-materialized-view | /core/concepts/features/projections/materialized-views-versus-projections | /core/guides/use-cases/real-time-analytics/time-series/materialized-view-rollup +https://clickhouse.com/docs/en/engines/table-engines/special/distributed,1,/core/reference/engines/table-engines/special/distributed,basename-unique, +https://clickhouse.com/docs/en/engines/table-engines/special/dictionary,1,/core/reference/engines/table-engines/special/dictionary,basename+parent-unique,/core/reference/functions/table-functions/dictionary | /core/reference/statements/create/dictionary +/materialized-view,1,/core/concepts/features/materialized-views,contains-ambiguous,/core/concepts/features/materialized-views/cascading-materialized-views | /core/concepts/features/materialized-views/incremental-materialized-view | /core/concepts/features/materialized-views/refreshable-materialized-view | /core/concepts/features/projections/materialized-views-versus-projections | /core/guides/use-cases/real-time-analytics/time-series/materialized-view-rollup +https://clickhouse.com/docs/en/materialized-view/refreshable-materialized-view,1,/core/concepts/features/materialized-views/refreshable-materialized-view,basename-unique, +https://clickhouse.com/docs/en/cloud/security/secure-s3,1,,no-match, +/operations/settings/settings.md/#use_structure_from_insertion_table_in_table_functions,1,/products/cloud/reference/settings,basename-ambiguous,/products/managed-postgres/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/operations/settings/settings-formats.md#date_time_input_format,1,,no-match, +/operations/settings/settings-formats.md,1,,no-match, +/interfaces/cli.md/#batch-mode,1,/core/concepts/features/interfaces/cli,basename-ambiguous,/products/cloud/features/cli +/operations/settings/settings-formats.md/#input_format_allow_errors_num,1,,no-match, +/operations/settings/settings-formats.md/#input_format_allow_errors_ratio,1,,no-match, +/whats-new/cloud#clickhouse-231-version-upgrade,1,/cloud/reference/changelog/changelog,redirect-direct, +/whats-new/cloud#clickhouse-2212-version-upgrade,1,/cloud/reference/changelog/changelog,redirect-direct, +/whats-new/cloud#clickhouse-2211-version-upgrade,1,/cloud/reference/changelog/changelog,redirect-direct, +/sql-reference/dictionaries/index.md,1,/core/concepts/features/dictionaries,manual,/core/reference/system-tables/dictionaries +/whats-new/cloud#clickhouse-2210-version-upgrade,1,/cloud/reference/changelog/changelog,redirect-direct, +/knowledgebase/useful-queries-for-troubleshooting#show-disk-storage-number-of-parts-number-of-rows-in-systemparts-and-marks-across-databases,1,,no-match, +/knowledgebase/find-expensive-queries,1,/resources/support-center/knowledge-base/performance-optimization/find-expensive-queries,basename-unique, +/knowledgebase/profiling-clickhouse-with-llvm-xray,1,,no-match, +/knowledgebase/which-processes-are-currently-running,1,,no-match, +/sql-reference/statements/alter/index,1,,no-match, +/faq/operations/separate_storage.md,1,/resources/support-center/knowledge-base/general-faqs/separate-storage,basename-unique, +/core/guides/sre/user-management/configuring-ldap.md,1,/core/concepts/features/security/configuring-ldap,basename-unique, +/core/guides/starter-guides/mutations.md,1,/core/get-started/quickstarts/mutations,basename+parent-unique,/core/reference/system-tables/mutations +/knowledgebase/how-do-i-contribute-code-to-clickhouse,1,,no-match, +/knowledgebase/time-series,1,/core/guides/use-cases/real-time-analytics/time-series,basename-ambiguous,/core/reference/engines/table-engines/integrations/time-series | /resources/support-center/knowledge-base/general-faqs/time-series +/integrations/data-ingestion/s3,1,/core/reference/engines/table-engines/integrations/s3,basename-ambiguous,/core/reference/functions/table-functions/s3 +/integrations/data-ingestion/gcs,1,/core/reference/functions/table-functions/gcs,basename-unique, +https://clickhouse.com/docs/knowledgebase/file-export,1,,no-match, +/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql.md,1,,no-match, +https://clickhouse.com/docs/knowledgebase/python-clickhouse-connect-example#steps,1,,no-match, +/core/guides/sre/configuring-ssl#2-create-ssl-certificates,1,,no-match, +https://clickhouse.com/docs/interfaces/formats/JSON/JSONAsObject,1,,no-match, +https://clickhouse.com/docs/interfaces/,1,/core/concepts/features/interfaces/overview,manual, +/knowledgebase/async_vs_optimize_read_in_order#what-about-optimize_read_in_order,1,,no-match, +https://clickhouse.com/docs/knowledgebase/find-expensive-queries#initial_query_id-vs-query_id,1,/resources/support-center/knowledge-base/performance-optimization/find-expensive-queries,basename-unique, +/chdb/guides/querying-apache-arrow,1,/products/chdb/guides/querying-apache-arrow,basename-unique, +https://clickhouse.com/docs/cloud/manage/api/swagger#tag/ClickStack,1,,no-match, +/images/clickstack/faq/metrics-explorer.png,1,,no-match, +/core/guides/sre/configuring-ssl,1,/core/concepts/features/security/tls/configuring-tls,manual, +/managed-postgres/overview#nvme-performance,1,/products/managed-postgres/overview,basename+parent-unique,/core/concepts/features/backup-restore/overview | /core/concepts/features/configuration/settings/overview | /core/concepts/features/operations/delete/overview | /core/concepts/features/operations/update/overview | /core/get-started/migration-guides/bigquery/overview | /core/get-started/migration-guides/elastic/overview | /core/get-started/migration-guides/overview | /core/get-started/migration-guides/postgres/overview | /core/get-started/migration-guides/redshift/overview | /core/get-started/migration-guides/snowflake/overview | /core/get-started/use-cases/overview | /core/guides/use-cases/data-warehousing/getting-started/overview | /integrations/clickpipes/bigquery/overview | /integrations/clickpipes/kinesis/overview | /integrations/clickpipes/object-storage/amazon-s3/overview | /integrations/clickpipes/object-storage/azure-blob-storage/overview | /integrations/clickpipes/object-storage/google-cloud-storage/overview | /integrations/connectors/data-ingestion/azure/azure-data-factory/overview | /core/concepts/features/interfaces/overview | /integrations/language-clients/csharp/overview | /products/clickstack/features/dashboards/overview | /products/clickstack/ingesting-data/overview | /products/clickstack/overview | /products/cloud/features/autoscaling/overview | /products/cloud/features/backups/overview | /products/cloud/features/monitoring/overview | /products/cloud/guides/infrastructure/deployment-options/byoc/overview | /products/cloud/reference/billing/marketplace/overview | /products/kubernetes-operator/overview | /core/reference/functions/regular-functions/overview | /core/reference/statements/create/dictionary/layouts/overview | /core/reference/statements/create/dictionary/sources/overview | /core/reference/system-tables/overview +/managed-postgres/scaling,1,/products/managed-postgres/scaling,basename+parent-unique,/integrations/clickpipes/mongodb/scaling | /integrations/clickpipes/mysql/scaling | /integrations/clickpipes/postgres/scaling +/managed-postgres/settings#ip-filters,1,/products/managed-postgres/settings,basename+parent-unique,/products/cloud/reference/settings | /core/reference/settings | /core/reference/settings/server-settings/settings | /core/reference/system-tables/settings +/managed-postgres/connection#tls,1,/products/managed-postgres/connection,basename-unique, +/managed-postgres/extensions,1,/products/managed-postgres/extensions,basename-unique, +/managed-postgres/upgrades,1,/products/managed-postgres/upgrades,basename+parent-unique,/products/cloud/features/admin-features/upgrades +/managed-postgres/migrations/pg_dump-pg_restore,1,,no-match, +/managed-postgres/migrations/logical-replication,1,/products/managed-postgres/migrations/logical-replication,basename-unique, +/managed-postgres/migrations/peerdb,1,/products/managed-postgres/migrations/peerdb,basename-unique, +/managed-postgres/clickhouse-integration,1,/products/managed-postgres/clickhouse-integration,basename-unique, +/managed-postgres/benchmarks,1,/products/managed-postgres/benchmarks,basename-unique, +/interfaces/cpp,1,/integrations/language-clients/cpp,redirect-direct, +/interfaces/third-party/client-libraries,1,,no-match, +/cloud/security/cloud-access-management,1,/products/cloud/guides/security/cloud-access-management,basename-unique, +/knowledgebase/terraform_example,1,/resources/support-center/knowledge-base/integrations/terraform-example,manual, +/cloud/reference/byoc/faq/aws,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg +/cloud/reference/byoc/observability,1,/cloud/guides/infrastructure/deployment_options/byoc/observability,redirect-direct, +/cloud/reference/byoc/onboarding/aws,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg +/images/cloud/guides/accessing-data/GCS/IAM_and_admin.png,1,,no-match, +/images/cloud/guides/accessing-data/GCS/create_service_account.png,1,,no-match, +/images/cloud/guides/accessing-data/GCS/create_and_continue.png,1,,no-match, +/images/cloud/guides/accessing-data/GCS/storage_object_user.png,1,,no-match, +/images/cloud/guides/accessing-data/GCS/note_service_account_email.png,1,,no-match, +/images/cloud/guides/accessing-data/GCS/cloud_storage_settings.png,1,,no-match, +/images/cloud/guides/accessing-data/GCS/create_key_for_service_account.png,1,,no-match, +/images/cloud/guides/accessing-data/GCS/create_a_key.png,1,,no-match, +/images/cloud/guides/accessing-data/GCS/clickpipes_hmac_key.png,1,,no-match, +https://clickhouse.com/docs/cloud/security/secure-s3,1,/products/cloud/guides/data-sources/accessing-s3-data-securely,manual, +https://clickhouse.com/docs/cloud/security/secure-s3#option-2-manually-create-iam-role,1,,no-match, +/operations/backup#configuring-backuprestore-to-use-an-s3-endpoint,1,/core/reference/engines/database-engines/backup,basename-unique, +/operations/backup#configuring-backuprestore-to-use-an-azureblobstorage-endpoint,1,/core/reference/engines/database-engines/backup,basename-unique, +/operations/backup#command-summary,1,/core/reference/engines/database-engines/backup,basename-unique, +/cloud/reference/byoc/onboarding/aws#cloudformation-iam-roles,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg +/observability/overview,1,/core/concepts/features/backup-restore/overview,basename-ambiguous,/core/concepts/features/configuration/settings/overview | /core/concepts/features/operations/delete/overview | /core/concepts/features/operations/update/overview | /core/get-started/migration-guides/bigquery/overview | /core/get-started/migration-guides/elastic/overview +/prompt-management/overview,1,/core/concepts/features/backup-restore/overview,basename-ambiguous,/core/concepts/features/configuration/settings/overview | /core/concepts/features/operations/delete/overview | /core/concepts/features/operations/update/overview | /core/get-started/migration-guides/bigquery/overview | /core/get-started/migration-guides/elastic/overview +/evaluation/overview,1,/core/concepts/features/backup-restore/overview,basename-ambiguous,/core/concepts/features/configuration/settings/overview | /core/concepts/features/operations/delete/overview | /core/concepts/features/operations/update/overview | /core/get-started/migration-guides/bigquery/overview | /core/get-started/migration-guides/elastic/overview +https://clickhouse.com/docs/cloud/manage/api/swagger#tag/Billing,1,,no-match, +/images/cloud/manage/scaling-patch-request.png,1,,no-match, +/images/cloud/manage/scaling-patch-response.png,1,,no-match, +/images/cloud/manage/scaling-configure.png,1,,no-match, +/images/cloud/manage/scaling-memory-allocation.png,1,,no-match, +/images/cloud/manage/AutoScaling.png,1,,no-match, +/images/cloud/reference/byoc-connect-1.png,1,,no-match, +/images/cloud/reference/byoc-tailscale-1.png,1,,no-match, +/cloud/reference/byoc/onboarding/customization,1,/products/bring-your-own-cloud/onboarding/customization-aws,contains-ambiguous,/products/bring-your-own-cloud/onboarding/customization-gcp +/images/cloud/reference/byoc-onboarding-1.png,1,,no-match, +/images/cloud/reference/byoc-onboarding-2.png,1,,no-match, +/images/cloud/reference/byoc-onboarding-3.png,1,,no-match, +/images/cloud/reference/byoc-new-service-1.png,1,,no-match, +/images/cloud/reference/byoc-new-infra-1.png,1,,no-match, +/images/cloud/reference/byoc-new-infra-2.png,1,,no-match, +/use-cases/observability/clickstack/ingesting-data/kubernetes,1,/products/clickstack/example-datasets/kubernetes,basename-ambiguous,/products/clickstack/integration-examples/kubernetes +/examples/kafka-metrics-dashboard.json,1,,no-match, +/examples/temporal-metrics-dashboard.json,1,,no-match, +/assets/cloudflare-logs-dashboard.json,1,,no-match, +/examples/postgres-logs-dashboard.json,1,,no-match, +/examples/postgres-metrics-dashboard.json,1,,no-match, +/examples/systemd-logs-dashboard.json,1,,no-match, +/examples/cloudwatch-logs-dashboard.json,1,,no-match, +/examples/nodejs-traces-dashboard.json,1,,no-match, +/examples/mysql-logs-dashboard.json,1,,no-match, +/examples/jvm-metrics-dashboard.json,1,,no-match, +/use-cases/observability/clickstack/production#database-ingestion-user,1,/use-cases/observability/clickstack/managing/production,redirect-direct, +/use-cases/observability/clickstack/production#estimating-resources,1,/use-cases/observability/clickstack/managing/production,redirect-direct, +/use-cases/observability/clickstack/production#create-a-database-ingestion-user-managed,1,/use-cases/observability/clickstack/managing/production,redirect-direct, +https://clickhouse.com/docs/clickhouse-operator/managing-clusters/cleanup,1,,no-match, +https://clickhouse.com/docs/en/sql-reference/statements/select/group-by#group-by-in-external-memory,1,/core/reference/statements/select/group-by,basename-unique, +https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference,1,/core/reference/functions/aggregate-functions/reference,basename+parent-unique,/core/guides/use-cases/data-warehousing/reference | /integrations/clickpipes/kafka/reference | /integrations/connectors/data-ingestion/etl-tools/fivetran/reference | /integrations/connectors/tools/pg_clickhouse/reference | /products/chdb/reference | /products/cloud/reference +/use-cases/observability/clickstack/features/dashboards#custom-filters,1,/products/cloud/features/sql-console-features/dashboards,basename-ambiguous,/core/reference/system-tables/dashboards +/use-cases/observability/clickstack/managing/performance_tuning#materialize-frequently-queried-attributes,1,/products/clickstack/managing/performance-tuning,basename-unique, +/use-cases/observability/clickstack/features/dashboards#dashboards-editing-visualizations,1,/products/cloud/features/sql-console-features/dashboards,basename-ambiguous,/core/reference/system-tables/dashboards +https://clickhouse.com/docs/operations/backup#take-an-incremental-backup,1,/core/reference/engines/database-engines/backup,basename-unique, +/docs/products/clickhouse-private/aws,1,/products/clickhouse-private/deployment/aws,manual,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg +/docs/products/clickhouse-private/aws#install-volumesnapshot-crds,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg +/docs/products/clickhouse-private/aws#install-storageclass-via-helm,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg +/docs/products/clickhouse-private/aws#naming-your-clickhouse-cluster,1,/integrations/clickpipes/aws-privatelink,contains-ambiguous,/products/clickstack/ingesting-data/sdks/aws-lambda | /products/clickstack/integration-examples/aws-lambda | /products/cloud/guides/security/connectivity/private-networking/aws-privatelink | /products/cloud/reference/billing/marketplace/aws-marketplace-committed | /products/cloud/reference/billing/marketplace/aws-marketplace-payg +/chdb/datastore/configuration,1,/integrations/language-clients/go/configuration,basename-ambiguous,/products/chdb/configuration | /products/kubernetes-operator/guides/configuration +/chdb/datastore/configuration/performance-mode,1,/products/chdb/configuration/performance-mode,basename-unique, +/chdb/datastore/guides/pandas-cookbook,1,/products/chdb/guides/pandas-cookbook,basename-unique, +/chdb/datastore/guides/pandas-to-sql,1,/products/chdb/guides/pandas-to-sql,basename-unique, +/chdb/datastore/debugging/explain,1,/products/chdb/debugging/explain,basename+parent-unique,/core/reference/statements/explain +/chdb/datastore/configuration/execution-engine,1,/products/chdb/configuration/execution-engine,basename-unique, +/faq/general/why-clickhouse-is-so-fast,2,/core/get-started/about/why-clickhouse-is-so-fast,manual, /cloud/manage/api/swagger,1,/api-reference/organization/get-list-of-available-organizations,manual, /integrations/data-ingestion/gcs,1,/integrations/connectors/data-ingestion/GCP,manual, /integrations/data-sources/mysql,1,/integrations/connectors/data-sources/mysql,manual, -/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql,1,/integrations/connectors/data-ingestion/postgresql/connecting-to-postgresql,manual, +/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql,1,/integrations/clickpipes/postgres/connecting-to-postgresql,manual, /use-cases/observability/clickstack/managing/production,1,/products/clickstack/managing,manual, /cloud/guides/infrastructure/deployment_options/byoc/architecture,1,/products/cloud/guides/infrastructure/deployment-options/byoc/architecture,manual, /cloud/guides/infrastructure/deployment_options/byoc/observability,1,/products/cloud/guides/infrastructure/deployment-options/byoc/observability/aws,manual, /cloud/reference/changelog/changelog,1,/resources/changelogs/cloud/changelog,manual, /api-reference/billing/get-organization-usage-costs,1,/api-reference/organization/get-list-of-available-organizations,manual, -/sql-reference/operators,1,/reference/operators,manual, -/guides/best-practices/partitioningkey,1,/concepts/best-practices/partitioning-keys,manual, -/optimize/partitioning-key,1,/concepts/best-practices/partitioning-keys,manual, +/sql-reference/operators,1,/core/reference/operators,manual, +/core/guides/best-practices/partitioningkey,1,/core/concepts/best-practices/partitioning-keys,manual, +/optimize/partitioning-key,1,/core/concepts/best-practices/partitioning-keys,manual, /integrations/gcs,1,/integrations/connectors/data-ingestion/GCP,manual, /integrations/mysql,1,/integrations/connectors/data-sources/mysql,manual, -/integrations/postgresql/connecting-to-postgresql,1,/integrations/connectors/data-ingestion/postgresql/connecting-to-postgresql,manual, +/integrations/postgresql/connecting-to-postgresql,1,/integrations/clickpipes/postgres/connecting-to-postgresql,manual, /use-cases/observability/clickstack/production,1,/products/clickstack/managing,manual, /cloud/reference/byoc/architecture,1,/products/cloud/guides/infrastructure/deployment-options/byoc/architecture,manual, /cloud/reference/byoc/observability,1,/products/cloud/guides/infrastructure/deployment-options/byoc/observability/aws,manual, /cloud/manage/api/usageCost-api-reference,1,/api-reference/organization/get-list-of-available-organizations,manual, -/introduction/distinctive-features,1,/get-started/about/distinctive-features,manual, +/introduction/distinctive-features,1,/core/get-started/about/distinctive-features,manual, diff --git a/slug-map.csv b/_migration/slug-map.csv similarity index 50% rename from slug-map.csv rename to _migration/slug-map.csv index 991f22df..011e7eb7 100644 --- a/slug-map.csv +++ b/_migration/slug-map.csv @@ -1,28 +1,28 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash,migrated,migrated_hash,migrated_at,manually_checked /,src/pages/index.mdx,,https://clickhouse.com/docs/,,unmatched,c18be9e94f89e61c,false,,,false -/about,docs/about-us/index.md,resources/about/index.mdx,https://clickhouse.com/docs/about,https://private-7c7dfe99.mintlify.app/resources/about,matched,bf0c6ec4af11f3ac,true,bf0c6ec4af11f3ac,2026-05-13T13:16:51+00:00,false +/about,docs/about-us/index.md,resources/about/index.mdx,https://clickhouse.com/docs/about,https://private-7c7dfe99.mintlify.app/resources/about/index,matched,bf0c6ec4af11f3ac,true,bf0c6ec4af11f3ac,2026-05-13T13:16:51+00:00,false /about-us/adopters,docs/about-us/adopters.md,resources/about/adopters.mdx,https://clickhouse.com/docs/about-us/adopters,https://private-7c7dfe99.mintlify.app/resources/about/adopters,matched,33ebdb4d97f8e3b8,true,33ebdb4d97f8e3b8,2026-05-19T11:08:53+00:00,false /about-us/cloud,docs/about-us/cloud.md,resources/about/cloud.mdx,https://clickhouse.com/docs/about-us/cloud,https://private-7c7dfe99.mintlify.app/resources/about/cloud,matched,d590691a3d395cc2,true,ad8d5e8e6e3eaf7a,2026-05-08T21:00:51+00:00,false -/about-us/distinctive-features,docs/about-us/distinctive-features.md,get-started/about/distinctive-features.mdx,https://clickhouse.com/docs/about-us/distinctive-features,https://private-7c7dfe99.mintlify.app/get-started/about/distinctive-features,matched,3acdfd0be22226de,true,3acdfd0be22226de,2026-05-13T13:16:51+00:00,false +/about-us/distinctive-features,docs/about-us/distinctive-features.md,core/get-started/about/distinctive-features.mdx,https://clickhouse.com/docs/about-us/distinctive-features,https://private-7c7dfe99.mintlify.app/core/get-started/about/distinctive-features,matched,3acdfd0be22226de,true,3acdfd0be22226de,2026-05-13T13:16:51+00:00,false /about-us/history,docs/about-us/history.md,resources/about/history.mdx,https://clickhouse.com/docs/about-us/history,https://private-7c7dfe99.mintlify.app/resources/about/history,matched,d4e3de0144493b1d,true,d4e3de0144493b1d,2026-05-13T13:16:51+00:00,false /about-us/support,docs/about-us/support.md,resources/about/support.mdx,https://clickhouse.com/docs/about-us/support,https://private-7c7dfe99.mintlify.app/resources/about/support,matched,0449493bba8fdff9,true,323995cdad7e0274,2026-05-09T17:02:01+00:00,false -/academic_overview,docs/managing-data/core-concepts/academic_overview.mdx,concepts/core-concepts/academic-overview.mdx,https://clickhouse.com/docs/academic_overview,https://private-7c7dfe99.mintlify.app/concepts/core-concepts/academic-overview,matched,a8e77271a25466b4,true,a8e77271a25466b4,2026-05-09T15:40:17+00:00,false -/architecture/cluster-deployment,docs/deployment-guides/replication-sharding-examples/03_2_shards_2_replicas.md,guides/oss/deployment-and-scaling/examples/2-shards-2-replicas.mdx,https://clickhouse.com/docs/architecture/cluster-deployment,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas,matched,f4dbad8fac9be333,true,f4dbad8fac9be333,2026-05-13T15:43:27+00:00,false -/architecture/horizontal-scaling,docs/deployment-guides/replication-sharding-examples/02_2_shards_1_replica.md,guides/oss/deployment-and-scaling/examples/2-shards-1-replica.mdx,https://clickhouse.com/docs/architecture/horizontal-scaling,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/examples/2-shards-1-replica,matched,e1431cab1d5a16bf,true,e1431cab1d5a16bf,2026-05-13T15:43:27+00:00,false -/architecture/introduction,docs/deployment-guides/terminology.md,guides/oss/deployment-and-scaling/terminology.mdx,https://clickhouse.com/docs/architecture/introduction,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/terminology,matched,516d5012cc290408,true,516d5012cc290408,2026-05-08T12:19:52+00:00,false -/architecture/replication,docs/deployment-guides/replication-sharding-examples/01_1_shard_2_replicas.md,guides/oss/deployment-and-scaling/examples/1-shard-2-replicas.mdx,https://clickhouse.com/docs/architecture/replication,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas,matched,20cb0ab4e34893f9,true,20cb0ab4e34893f9,2026-05-13T15:43:27+00:00,false -/best-practices,docs/best-practices/index.md,concepts/best-practices/index.mdx,https://clickhouse.com/docs/best-practices,https://private-7c7dfe99.mintlify.app/concepts/best-practices,matched,e5779c059343c20e,true,e5779c059343c20e,2026-05-08T09:09:20+00:00,false -/best-practices/avoid-mutations,docs/best-practices/avoid_mutations.md,concepts/best-practices/avoid-mutations.mdx,https://clickhouse.com/docs/best-practices/avoid-mutations,https://private-7c7dfe99.mintlify.app/concepts/best-practices/avoid-mutations,matched,081e5ae543866b58,true,081e5ae543866b58,2026-05-08T09:09:20+00:00,false -/best-practices/avoid-optimize-final,docs/best-practices/avoid_optimize_final.md,concepts/best-practices/avoid-optimize-final.mdx,https://clickhouse.com/docs/best-practices/avoid-optimize-final,https://private-7c7dfe99.mintlify.app/concepts/best-practices/avoid-optimize-final,matched,8f244394e8b6225d,true,8f244394e8b6225d,2026-05-13T13:16:51+00:00,false -/best-practices/choosing-a-partitioning-key,docs/best-practices/partitioning_keys.mdx,concepts/best-practices/partitioning-keys.mdx,https://clickhouse.com/docs/best-practices/choosing-a-partitioning-key,https://private-7c7dfe99.mintlify.app/concepts/best-practices/partitioning-keys,matched,47448fd25f9d0bd3,true,47448fd25f9d0bd3,2026-05-08T09:09:20+00:00,false -/best-practices/choosing-a-primary-key,docs/best-practices/choosing_a_primary_key.md,concepts/best-practices/choosing-a-primary-key.mdx,https://clickhouse.com/docs/best-practices/choosing-a-primary-key,https://private-7c7dfe99.mintlify.app/concepts/best-practices/choosing-a-primary-key,matched,9b11e99fcb2b175d,true,9b11e99fcb2b175d,2026-05-13T15:43:24+00:00,false -/best-practices/minimize-optimize-joins,docs/best-practices/minimize_optimize_joins.md,concepts/best-practices/minimize-optimize-joins.mdx,https://clickhouse.com/docs/best-practices/minimize-optimize-joins,https://private-7c7dfe99.mintlify.app/concepts/best-practices/minimize-optimize-joins,matched,d83e3a25ef3dad60,true,d83e3a25ef3dad60,2026-05-08T09:09:20+00:00,false -/best-practices/select-data-types,docs/best-practices/select_data_type.md,concepts/best-practices/select-data-type.mdx,https://clickhouse.com/docs/best-practices/select-data-types,https://private-7c7dfe99.mintlify.app/concepts/best-practices/select-data-type,matched,126cbd8cf03ba18e,true,126cbd8cf03ba18e,2026-05-08T09:09:20+00:00,false -/best-practices/selecting-an-insert-strategy,docs/best-practices/selecting_an_insert_strategy.md,concepts/best-practices/selecting-an-insert-strategy.mdx,https://clickhouse.com/docs/best-practices/selecting-an-insert-strategy,https://private-7c7dfe99.mintlify.app/concepts/best-practices/selecting-an-insert-strategy,matched,2209c6ea430be2ed,true,2209c6ea430be2ed,2026-05-08T13:01:57+00:00,false -/best-practices/use-data-skipping-indices-where-appropriate,docs/best-practices/using_data_skipping_indices.md,concepts/best-practices/using-data-skipping-indices.mdx,https://clickhouse.com/docs/best-practices/use-data-skipping-indices-where-appropriate,https://private-7c7dfe99.mintlify.app/concepts/best-practices/using-data-skipping-indices,matched,86867b4880aebc9f,true,86867b4880aebc9f,2026-05-08T09:09:20+00:00,false -/best-practices/use-json-where-appropriate,docs/best-practices/json_type.md,concepts/best-practices/json-type.mdx,https://clickhouse.com/docs/best-practices/use-json-where-appropriate,https://private-7c7dfe99.mintlify.app/concepts/best-practices/json-type,matched,92d7e8b6ffaf89ba,true,92d7e8b6ffaf89ba,2026-05-08T11:28:15+00:00,false -/best-practices/use-materialized-views,docs/best-practices/use_materialized_views.md,concepts/best-practices/use-materialized-views.mdx,https://clickhouse.com/docs/best-practices/use-materialized-views,https://private-7c7dfe99.mintlify.app/concepts/best-practices/use-materialized-views,matched,ce0f791414129840,true,ce0f791414129840,2026-05-08T09:09:20+00:00,false -/beta-and-experimental-features,docs/about-us/beta-and-experimental-features.md,reference/settings/beta-and-experimental-features.mdx,https://clickhouse.com/docs/beta-and-experimental-features,https://private-7c7dfe99.mintlify.app/reference/settings/beta-and-experimental-features,matched,5a3c5e33555c0c51,true,5a3c5e33555c0c51,2026-05-19T11:08:53+00:00,false +/academic_overview,docs/managing-data/core-concepts/academic_overview.mdx,core/concepts/core-concepts/academic-overview.mdx,https://clickhouse.com/docs/academic_overview,https://private-7c7dfe99.mintlify.app/core/concepts/core-concepts/academic-overview,matched,a8e77271a25466b4,true,a8e77271a25466b4,2026-05-09T15:40:17+00:00,false +/architecture/cluster-deployment,docs/deployment-guides/replication-sharding-examples/03_2_shards_2_replicas.md,core/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas.mdx,https://clickhouse.com/docs/architecture/cluster-deployment,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas,matched,f4dbad8fac9be333,true,f4dbad8fac9be333,2026-05-13T15:43:27+00:00,false +/architecture/horizontal-scaling,docs/deployment-guides/replication-sharding-examples/02_2_shards_1_replica.md,core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica.mdx,https://clickhouse.com/docs/architecture/horizontal-scaling,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica,matched,e1431cab1d5a16bf,true,e1431cab1d5a16bf,2026-05-13T15:43:27+00:00,false +/architecture/introduction,docs/deployment-guides/terminology.md,core/guides/oss/deployment-and-scaling/terminology.mdx,https://clickhouse.com/docs/architecture/introduction,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/terminology,matched,516d5012cc290408,true,516d5012cc290408,2026-05-08T12:19:52+00:00,false +/architecture/replication,docs/deployment-guides/replication-sharding-examples/01_1_shard_2_replicas.md,core/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas.mdx,https://clickhouse.com/docs/architecture/replication,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas,matched,20cb0ab4e34893f9,true,20cb0ab4e34893f9,2026-05-13T15:43:27+00:00,false +/best-practices,docs/best-practices/index.md,core/concepts/best-practices/index.mdx,https://clickhouse.com/docs/best-practices,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/index,matched,e5779c059343c20e,true,e5779c059343c20e,2026-05-08T09:09:20+00:00,false +/best-practices/avoid-mutations,docs/best-practices/avoid_mutations.md,core/concepts/best-practices/avoid-mutations.mdx,https://clickhouse.com/docs/best-practices/avoid-mutations,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/avoid-mutations,matched,081e5ae543866b58,true,081e5ae543866b58,2026-05-08T09:09:20+00:00,false +/best-practices/avoid-optimize-final,docs/best-practices/avoid_optimize_final.md,core/concepts/best-practices/avoid-optimize-final.mdx,https://clickhouse.com/docs/best-practices/avoid-optimize-final,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/avoid-optimize-final,matched,8f244394e8b6225d,true,8f244394e8b6225d,2026-05-13T13:16:51+00:00,false +/best-practices/choosing-a-partitioning-key,docs/best-practices/partitioning_keys.mdx,core/concepts/best-practices/partitioning-keys.mdx,https://clickhouse.com/docs/best-practices/choosing-a-partitioning-key,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/partitioning-keys,matched,47448fd25f9d0bd3,true,47448fd25f9d0bd3,2026-05-08T09:09:20+00:00,false +/best-practices/choosing-a-primary-key,docs/best-practices/choosing_a_primary_key.md,core/concepts/best-practices/choosing-a-primary-key.mdx,https://clickhouse.com/docs/best-practices/choosing-a-primary-key,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/choosing-a-primary-key,matched,9b11e99fcb2b175d,true,9b11e99fcb2b175d,2026-05-13T15:43:24+00:00,false +/best-practices/minimize-optimize-joins,docs/best-practices/minimize_optimize_joins.md,core/concepts/best-practices/minimize-optimize-joins.mdx,https://clickhouse.com/docs/best-practices/minimize-optimize-joins,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/minimize-optimize-joins,matched,d83e3a25ef3dad60,true,d83e3a25ef3dad60,2026-05-08T09:09:20+00:00,false +/best-practices/select-data-types,docs/best-practices/select_data_type.md,core/concepts/best-practices/select-data-type.mdx,https://clickhouse.com/docs/best-practices/select-data-types,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/select-data-type,matched,126cbd8cf03ba18e,true,126cbd8cf03ba18e,2026-05-08T09:09:20+00:00,false +/best-practices/selecting-an-insert-strategy,docs/best-practices/selecting_an_insert_strategy.md,core/concepts/best-practices/selecting-an-insert-strategy.mdx,https://clickhouse.com/docs/best-practices/selecting-an-insert-strategy,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/selecting-an-insert-strategy,matched,2209c6ea430be2ed,true,2209c6ea430be2ed,2026-05-08T13:01:57+00:00,false +/best-practices/use-data-skipping-indices-where-appropriate,docs/best-practices/using_data_skipping_indices.md,core/concepts/best-practices/using-data-skipping-indices.mdx,https://clickhouse.com/docs/best-practices/use-data-skipping-indices-where-appropriate,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/using-data-skipping-indices,matched,86867b4880aebc9f,true,86867b4880aebc9f,2026-05-08T09:09:20+00:00,false +/best-practices/use-json-where-appropriate,docs/best-practices/json_type.md,core/concepts/best-practices/json-type.mdx,https://clickhouse.com/docs/best-practices/use-json-where-appropriate,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/json-type,matched,92d7e8b6ffaf89ba,true,92d7e8b6ffaf89ba,2026-05-08T11:28:15+00:00,false +/best-practices/use-materialized-views,docs/best-practices/use_materialized_views.md,core/concepts/best-practices/use-materialized-views.mdx,https://clickhouse.com/docs/best-practices/use-materialized-views,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/use-materialized-views,matched,ce0f791414129840,true,ce0f791414129840,2026-05-08T09:09:20+00:00,false +/beta-and-experimental-features,docs/about-us/beta-and-experimental-features.md,core/reference/settings/beta-and-experimental-features.mdx,https://clickhouse.com/docs/beta-and-experimental-features,https://private-7c7dfe99.mintlify.app/core/reference/settings/beta-and-experimental-features,matched,5a3c5e33555c0c51,true,5a3c5e33555c0c51,2026-05-19T11:08:53+00:00,false /changelogs/24.10,docs/cloud/reference/01_changelog/02_release_notes/24_10.md,resources/changelogs/cloud/release-notes/24_10.mdx,https://clickhouse.com/docs/changelogs/24.10,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/release-notes/24_10,matched,75f3b9c3e1acd523,true,75f3b9c3e1acd523,2026-05-08T09:09:20+00:00,false /changelogs/24.12,docs/cloud/reference/01_changelog/02_release_notes/24_12.md,resources/changelogs/cloud/release-notes/24_12.mdx,https://clickhouse.com/docs/changelogs/24.12,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/release-notes/24_12,matched,c80f810dd0087c7a,true,cb414cc582eb01b1,2026-05-08T10:40:06+00:00,false /changelogs/24.5,docs/cloud/reference/01_changelog/02_release_notes/24_05.md,resources/changelogs/cloud/release-notes/24_05.mdx,https://clickhouse.com/docs/changelogs/24.5,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/release-notes/24_05,matched,1f24e5c818c445d7,true,1f24e5c818c445d7,2026-05-13T13:16:51+00:00,false @@ -34,13 +34,13 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /changelogs/25.6,docs/cloud/reference/01_changelog/02_release_notes/25_06.md,resources/changelogs/cloud/release-notes/25_06.mdx,https://clickhouse.com/docs/changelogs/25.6,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/release-notes/25_06,matched,52f595c2d77a6ecd,true,52f595c2d77a6ecd,2026-05-08T09:09:20+00:00,false /changelogs/25.8,docs/cloud/reference/01_changelog/02_release_notes/25_08.md,resources/changelogs/cloud/release-notes/25_08.mdx,https://clickhouse.com/docs/changelogs/25.8,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/release-notes/25_08,matched,352f1bfa464960ea,true,352f1bfa464960ea,2026-05-09T11:09:07+00:00,false /changelogs/26.2,docs/cloud/reference/01_changelog/02_release_notes/26_2.md,resources/changelogs/cloud/release-notes/26_02.mdx,https://clickhouse.com/docs/changelogs/26.2,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/release-notes/26_02,matched,6d714d62c166ccb7,true,6d714d62c166ccb7,2026-05-13T13:16:51+00:00,false -/chdb,docs/chdb/index.md,products/chdb/index.mdx,https://clickhouse.com/docs/chdb,https://private-7c7dfe99.mintlify.app/products/chdb,matched,667af74a53181824,true,667af74a53181824,2026-05-09T09:39:38+00:00,false +/chdb,docs/chdb/index.md,products/chdb/index.mdx,https://clickhouse.com/docs/chdb,https://private-7c7dfe99.mintlify.app/products/chdb/index,matched,667af74a53181824,true,667af74a53181824,2026-05-09T09:39:38+00:00,false /chdb/api/python,docs/chdb/api/python.md,products/chdb/api/python.mdx,https://clickhouse.com/docs/chdb/api/python,https://private-7c7dfe99.mintlify.app/products/chdb/api/python,matched,0489c0df271df2dd,true,0489c0df271df2dd,2026-05-13T13:16:51+00:00,false -/chdb/configuration,docs/chdb/configuration/index.md,products/chdb/configuration/index.mdx,https://clickhouse.com/docs/chdb/configuration,https://private-7c7dfe99.mintlify.app/products/chdb/configuration,matched,cac5b473edcf1434,true,cac5b473edcf1434,2026-05-13T13:16:51+00:00,false +/chdb/configuration,docs/chdb/configuration/index.md,products/chdb/configuration/index.mdx,https://clickhouse.com/docs/chdb/configuration,https://private-7c7dfe99.mintlify.app/products/chdb/configuration/index,matched,cac5b473edcf1434,true,cac5b473edcf1434,2026-05-13T13:16:51+00:00,false /chdb/configuration/execution-engine,docs/chdb/configuration/execution-engine.md,products/chdb/configuration/execution-engine.mdx,https://clickhouse.com/docs/chdb/configuration/execution-engine,https://private-7c7dfe99.mintlify.app/products/chdb/configuration/execution-engine,matched,4ed55df4b60d45c9,true,4ed55df4b60d45c9,2026-05-13T13:16:51+00:00,false /chdb/configuration/function-config,docs/chdb/configuration/function-config.md,products/chdb/configuration/function-config.mdx,https://clickhouse.com/docs/chdb/configuration/function-config,https://private-7c7dfe99.mintlify.app/products/chdb/configuration/function-config,matched,962300ada074a915,true,962300ada074a915,2026-05-13T13:16:51+00:00,false /chdb/configuration/performance-mode,docs/chdb/configuration/performance-mode.md,products/chdb/configuration/performance-mode.mdx,https://clickhouse.com/docs/chdb/configuration/performance-mode,https://private-7c7dfe99.mintlify.app/products/chdb/configuration/performance-mode,matched,272715acde2f4786,true,272715acde2f4786,2026-05-13T13:16:51+00:00,false -/chdb/datastore,docs/chdb/datastore/index.md,products/chdb/datastore/index.mdx,https://clickhouse.com/docs/chdb/datastore,https://private-7c7dfe99.mintlify.app/products/chdb/datastore,matched,d5e1d1f8822a95e6,true,d5e1d1f8822a95e6,2026-05-09T09:39:38+00:00,false +/chdb/datastore,docs/chdb/datastore/index.md,products/chdb/datastore/index.mdx,https://clickhouse.com/docs/chdb/datastore,https://private-7c7dfe99.mintlify.app/products/chdb/datastore/index,matched,d5e1d1f8822a95e6,true,d5e1d1f8822a95e6,2026-05-09T09:39:38+00:00,false /chdb/datastore/accessors,docs/chdb/datastore/accessors.md,products/chdb/datastore/accessors.mdx,https://clickhouse.com/docs/chdb/datastore/accessors,https://private-7c7dfe99.mintlify.app/products/chdb/datastore/accessors,matched,d231c56ecda5460f,true,d231c56ecda5460f,2026-05-13T13:16:51+00:00,false /chdb/datastore/aggregation,docs/chdb/datastore/aggregation.md,products/chdb/datastore/aggregation.mdx,https://clickhouse.com/docs/chdb/datastore/aggregation,https://private-7c7dfe99.mintlify.app/products/chdb/datastore/aggregation,matched,25475c9287264b36,true,25475c9287264b36,2026-05-13T13:16:51+00:00,false /chdb/datastore/class-reference,docs/chdb/datastore/class-reference.md,products/chdb/datastore/class-reference.mdx,https://clickhouse.com/docs/chdb/datastore/class-reference,https://private-7c7dfe99.mintlify.app/products/chdb/datastore/class-reference,matched,7e26544f7ea684dd,true,7e26544f7ea684dd,2026-05-13T13:16:51+00:00,false @@ -50,12 +50,12 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /chdb/datastore/pandas-compat,docs/chdb/datastore/pandas-compat.md,products/chdb/datastore/pandas-compat.mdx,https://clickhouse.com/docs/chdb/datastore/pandas-compat,https://private-7c7dfe99.mintlify.app/products/chdb/datastore/pandas-compat,matched,09396fe108a4e5fc,true,09396fe108a4e5fc,2026-05-13T13:16:51+00:00,false /chdb/datastore/query-building,docs/chdb/datastore/query-building.md,products/chdb/datastore/query-building.mdx,https://clickhouse.com/docs/chdb/datastore/query-building,https://private-7c7dfe99.mintlify.app/products/chdb/datastore/query-building,matched,29573c963c59d113,true,29573c963c59d113,2026-05-13T13:16:51+00:00,false /chdb/datastore/quickstart,docs/chdb/datastore/quickstart.md,products/chdb/datastore/quickstart.mdx,https://clickhouse.com/docs/chdb/datastore/quickstart,https://private-7c7dfe99.mintlify.app/products/chdb/datastore/quickstart,matched,af063d22fa6aab66,true,af063d22fa6aab66,2026-05-13T13:16:51+00:00,false -/chdb/debugging,docs/chdb/debugging/index.md,products/chdb/debugging/index.mdx,https://clickhouse.com/docs/chdb/debugging,https://private-7c7dfe99.mintlify.app/products/chdb/debugging,matched,1bb667f2be8b9990,true,1bb667f2be8b9990,2026-05-13T13:16:51+00:00,false +/chdb/debugging,docs/chdb/debugging/index.md,products/chdb/debugging/index.mdx,https://clickhouse.com/docs/chdb/debugging,https://private-7c7dfe99.mintlify.app/products/chdb/debugging/index,matched,1bb667f2be8b9990,true,1bb667f2be8b9990,2026-05-13T13:16:51+00:00,false /chdb/debugging/explain,docs/chdb/debugging/explain.md,products/chdb/debugging/explain.mdx,https://clickhouse.com/docs/chdb/debugging/explain,https://private-7c7dfe99.mintlify.app/products/chdb/debugging/explain,matched,09c1b1f004366cfe,true,09c1b1f004366cfe,2026-05-13T13:16:51+00:00,false /chdb/debugging/logging,docs/chdb/debugging/logging.md,products/chdb/debugging/logging.mdx,https://clickhouse.com/docs/chdb/debugging/logging,https://private-7c7dfe99.mintlify.app/products/chdb/debugging/logging,matched,e71601943d4e4de5,true,e71601943d4e4de5,2026-05-13T13:16:51+00:00,false /chdb/debugging/profiling,docs/chdb/debugging/profiling.md,products/chdb/debugging/profiling.mdx,https://clickhouse.com/docs/chdb/debugging/profiling,https://private-7c7dfe99.mintlify.app/products/chdb/debugging/profiling,matched,f60d6a61d4022183,true,f60d6a61d4022183,2026-05-13T13:16:51+00:00,false /chdb/getting-started,docs/chdb/getting-started.md,products/chdb/getting-started.mdx,https://clickhouse.com/docs/chdb/getting-started,https://private-7c7dfe99.mintlify.app/products/chdb/getting-started,matched,fe6d28d4f0004884,true,bc5d1e200e64a767,2026-05-08T19:42:07+00:00,false -/chdb/guides,docs/chdb/guides/index.md,products/chdb/guides/index.mdx,https://clickhouse.com/docs/chdb/guides,https://private-7c7dfe99.mintlify.app/products/chdb/guides,matched,6c6e0c2616162854,true,6c6e0c2616162854,2026-05-08T20:59:49+00:00,false +/chdb/guides,docs/chdb/guides/index.md,products/chdb/guides/index.mdx,https://clickhouse.com/docs/chdb/guides,https://private-7c7dfe99.mintlify.app/products/chdb/guides/index,matched,6c6e0c2616162854,true,6c6e0c2616162854,2026-05-08T20:59:49+00:00,false /chdb/guides/apache-arrow,docs/chdb/guides/querying-apache-arrow.md,products/chdb/guides/querying-apache-arrow.mdx,https://clickhouse.com/docs/chdb/guides/apache-arrow,https://private-7c7dfe99.mintlify.app/products/chdb/guides/querying-apache-arrow,matched,add68d9d7c2384a1,true,add68d9d7c2384a1,2026-05-08T09:09:20+00:00,false /chdb/guides/clickhouse-local,docs/chdb/guides/clickhouse-local.md,products/chdb/guides/clickhouse-local.mdx,https://clickhouse.com/docs/chdb/guides/clickhouse-local,https://private-7c7dfe99.mintlify.app/products/chdb/guides/clickhouse-local,matched,fa82ad9cb7aa300f,true,fa82ad9cb7aa300f,2026-05-08T19:36:15+00:00,false /chdb/guides/jupysql,docs/chdb/guides/jupysql.md,products/chdb/guides/jupysql.mdx,https://clickhouse.com/docs/chdb/guides/jupysql,https://private-7c7dfe99.mintlify.app/products/chdb/guides/jupysql,matched,e6384b2ee9b82af2,true,e6384b2ee9b82af2,2026-05-08T12:19:52+00:00,false @@ -68,14 +68,14 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /chdb/guides/query-remote-clickhouse,docs/chdb/guides/query-remote-clickhouse.md,products/chdb/guides/query-remote-clickhouse.mdx,https://clickhouse.com/docs/chdb/guides/query-remote-clickhouse,https://private-7c7dfe99.mintlify.app/products/chdb/guides/query-remote-clickhouse,matched,27ea13a9d6a87686,true,27ea13a9d6a87686,2026-05-08T09:09:20+00:00,false /chdb/guides/querying-parquet,docs/chdb/guides/querying-parquet.md,products/chdb/guides/querying-parquet.mdx,https://clickhouse.com/docs/chdb/guides/querying-parquet,https://private-7c7dfe99.mintlify.app/products/chdb/guides/querying-parquet,matched,80e13888b6bfca7d,true,80e13888b6bfca7d,2026-05-08T09:09:20+00:00,false /chdb/guides/querying-s3,docs/chdb/guides/querying-s3-bucket.md,products/chdb/guides/querying-s3-bucket.mdx,https://clickhouse.com/docs/chdb/guides/querying-s3,https://private-7c7dfe99.mintlify.app/products/chdb/guides/querying-s3-bucket,matched,2c1fe0f08e90b42f,true,2c1fe0f08e90b42f,2026-05-08T09:09:20+00:00,false -/chdb/install,docs/chdb/install/index.md,products/chdb/install/index.mdx,https://clickhouse.com/docs/chdb/install,https://private-7c7dfe99.mintlify.app/products/chdb/install,matched,f4fe0f2b796f0289,true,f4fe0f2b796f0289,2026-05-08T09:09:20+00:00,false +/chdb/install,docs/chdb/install/index.md,products/chdb/install/index.mdx,https://clickhouse.com/docs/chdb/install,https://private-7c7dfe99.mintlify.app/products/chdb/install/index,matched,f4fe0f2b796f0289,true,f4fe0f2b796f0289,2026-05-08T09:09:20+00:00,false /chdb/install/bun,docs/chdb/install/bun.md,products/chdb/install/bun.mdx,https://clickhouse.com/docs/chdb/install/bun,https://private-7c7dfe99.mintlify.app/products/chdb/install/bun,matched,f57567c9fe116449,true,f3274830262e5f01,2026-05-08T09:09:20+00:00,false /chdb/install/c,docs/chdb/install/c.md,products/chdb/install/c.mdx,https://clickhouse.com/docs/chdb/install/c,https://private-7c7dfe99.mintlify.app/products/chdb/install/c,matched,c17f13b9de744cfc,true,7b5302e1655b03cd,2026-05-08T09:09:20+00:00,false /chdb/install/go,docs/chdb/install/go.md,products/chdb/install/go.mdx,https://clickhouse.com/docs/chdb/install/go,https://private-7c7dfe99.mintlify.app/products/chdb/install/go,matched,7d0084cb0163c70e,true,b4b1f3d0d1f1a29d,2026-05-08T09:09:20+00:00,false /chdb/install/nodejs,docs/chdb/install/nodejs.md,products/chdb/install/nodejs.mdx,https://clickhouse.com/docs/chdb/install/nodejs,https://private-7c7dfe99.mintlify.app/products/chdb/install/nodejs,matched,91c924d920f523d5,true,f7b3da6309249ba5,2026-05-08T09:09:20+00:00,false /chdb/install/python,docs/chdb/install/python.md,products/chdb/install/python.mdx,https://clickhouse.com/docs/chdb/install/python,https://private-7c7dfe99.mintlify.app/products/chdb/install/python,matched,61207cac7f171e56,true,61207cac7f171e56,2026-05-08T09:09:20+00:00,false /chdb/install/rust,docs/chdb/install/rust.md,products/chdb/install/rust.mdx,https://clickhouse.com/docs/chdb/install/rust,https://private-7c7dfe99.mintlify.app/products/chdb/install/rust,matched,d49d5ccf9f0cf9e8,true,d49d5ccf9f0cf9e8,2026-05-13T13:16:51+00:00,false -/chdb/reference,docs/chdb/reference/index.md,products/chdb/reference/index.mdx,https://clickhouse.com/docs/chdb/reference,https://private-7c7dfe99.mintlify.app/products/chdb/reference,matched,cf0eff26ed511084,true,cf0eff26ed511084,2026-05-08T09:09:20+00:00,false +/chdb/reference,docs/chdb/reference/index.md,products/chdb/reference/index.mdx,https://clickhouse.com/docs/chdb/reference,https://private-7c7dfe99.mintlify.app/products/chdb/reference/index,matched,cf0eff26ed511084,true,cf0eff26ed511084,2026-05-08T09:09:20+00:00,false /chdb/reference/data-formats,docs/chdb/reference/data-formats.md,products/chdb/reference/data-formats.mdx,https://clickhouse.com/docs/chdb/reference/data-formats,https://private-7c7dfe99.mintlify.app/products/chdb/reference/data-formats,matched,f53e26bdce713e13,true,f53e26bdce713e13,2026-05-08T13:01:57+00:00,false /chdb/reference/sql-reference,docs/chdb/reference/sql-reference.md,products/chdb/reference/sql-reference.mdx,https://clickhouse.com/docs/chdb/reference/sql-reference,https://private-7c7dfe99.mintlify.app/products/chdb/reference/sql-reference,matched,f7f453059f1e4378,true,f7f453059f1e4378,2026-05-19T11:54:09+00:00,false /clickhouse-operator/guides/configuration,docs/kubernetes-operator/03_guides/02_configuration.mdx,products/kubernetes-operator/guides/configuration.mdx,https://clickhouse.com/docs/clickhouse-operator/guides/configuration,https://private-7c7dfe99.mintlify.app/products/kubernetes-operator/guides/configuration,matched,330939d1f3ec2281,true,4c8e04a273046756,2026-05-08T09:09:20+00:00,false @@ -85,7 +85,7 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /clickhouse-operator/install/olm,docs/kubernetes-operator/02_install/olm.mdx,products/kubernetes-operator/install/olm.mdx,https://clickhouse.com/docs/clickhouse-operator/install/olm,https://private-7c7dfe99.mintlify.app/products/kubernetes-operator/install/olm,matched,83940db90c7d30a0,true,83940db90c7d30a0,2026-05-08T09:09:20+00:00,false /clickhouse-operator/overview,docs/kubernetes-operator/01_overview.mdx,products/kubernetes-operator/overview.mdx,https://clickhouse.com/docs/clickhouse-operator/overview,https://private-7c7dfe99.mintlify.app/products/kubernetes-operator/overview,matched,4759aaf6e5077d0f,true,4759aaf6e5077d0f,2026-05-08T09:09:20+00:00,false /clickhouse-operator/reference/api-reference,docs/kubernetes-operator/04_api_reference.mdx,products/kubernetes-operator/reference/api-reference.mdx,https://clickhouse.com/docs/clickhouse-operator/reference/api-reference,https://private-7c7dfe99.mintlify.app/products/kubernetes-operator/reference/api-reference,matched,20812973b576f8e1,true,c2362a67e1350ddc,2026-05-08T09:09:20+00:00,false -/cloud/bestpractices,docs/cloud/guides/best_practices/index.md,products/cloud/guides/best-practices/index.mdx,https://clickhouse.com/docs/cloud/bestpractices,https://private-7c7dfe99.mintlify.app/products/cloud/guides/best-practices,matched,8dcac023c8e57925,true,8dcac023c8e57925,2026-05-08T09:09:20+00:00,false +/cloud/bestpractices,docs/cloud/guides/best_practices/index.md,products/cloud/guides/best-practices/index.mdx,https://clickhouse.com/docs/cloud/bestpractices,https://private-7c7dfe99.mintlify.app/products/cloud/guides/best-practices/index,matched,8dcac023c8e57925,true,8dcac023c8e57925,2026-05-08T09:09:20+00:00,false /cloud/bestpractices/multi-tenancy,docs/cloud/guides/best_practices/multitenancy.md,products/cloud/guides/best-practices/multitenancy.mdx,https://clickhouse.com/docs/cloud/bestpractices/multi-tenancy,https://private-7c7dfe99.mintlify.app/products/cloud/guides/best-practices/multitenancy,matched,6fa748026b877c2c,true,6fa748026b877c2c,2026-05-08T09:09:20+00:00,false /cloud/bestpractices/usage-limits,docs/cloud/guides/best_practices/usagelimits.md,products/cloud/guides/best-practices/usagelimits.mdx,https://clickhouse.com/docs/cloud/bestpractices/usage-limits,https://private-7c7dfe99.mintlify.app/products/cloud/guides/best-practices/usagelimits,matched,64a417c78bf87413,true,64a417c78bf87413,2026-05-08T09:09:20+00:00,false /cloud/billing/marketplace/aws-marketplace-committed-contract,docs/cloud/reference/03_billing/02_marketplace/aws-marketplace-committed.md,products/cloud/reference/billing/marketplace/aws-marketplace-committed.mdx,https://clickhouse.com/docs/cloud/billing/marketplace/aws-marketplace-committed-contract,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing/marketplace/aws-marketplace-committed,matched,20cbca2d9901f504,true,20cbca2d9901f504,2026-05-09T17:02:01+00:00,false @@ -101,7 +101,7 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /cloud/data-sources/secure-gcs,docs/cloud/guides/data_sources/03_accessing-gcs-data-securely.md,products/cloud/guides/data-sources/secure-gcs.mdx,https://clickhouse.com/docs/cloud/data-sources/secure-gcs,https://private-7c7dfe99.mintlify.app/products/cloud/guides/data-sources/secure-gcs,matched,4b1500264994be09,true,4b1500264994be09,2026-05-09T17:02:01+00:00,false /cloud/data-sources/secure-iceberg,docs/cloud/guides/data_sources/05_accessing-iceberg-data-securely.md,products/cloud/guides/data-sources/accessing-iceberg-data-securely.mdx,https://clickhouse.com/docs/cloud/data-sources/secure-iceberg,https://private-7c7dfe99.mintlify.app/products/cloud/guides/data-sources/accessing-iceberg-data-securely,matched,f825b083711d6492,true,f825b083711d6492,2026-05-09T17:02:01+00:00,false /cloud/data-sources/secure-s3,docs/cloud/guides/data_sources/02_accessing-s3-data-securely.md,products/cloud/guides/data-sources/accessing-s3-data-securely.mdx,https://clickhouse.com/docs/cloud/data-sources/secure-s3,https://private-7c7dfe99.mintlify.app/products/cloud/guides/data-sources/accessing-s3-data-securely,matched,a490701361995bf4,true,a490701361995bf4,2026-05-08T09:09:20+00:00,false -/cloud/features/ai-ml,docs/cloud/features/10_AI_ML/index.md,products/cloud/features/ai-ml/index.mdx,https://clickhouse.com/docs/cloud/features/ai-ml,https://private-7c7dfe99.mintlify.app/products/cloud/features/ai-ml,matched,54a9b70f0f3475fd,true,54a9b70f0f3475fd,2026-05-13T13:16:51+00:00,false +/cloud/features/ai-ml,docs/cloud/features/10_AI_ML/index.md,products/cloud/features/ai-ml/index.mdx,https://clickhouse.com/docs/cloud/features/ai-ml,https://private-7c7dfe99.mintlify.app/products/cloud/features/ai-ml/index,matched,54a9b70f0f3475fd,true,54a9b70f0f3475fd,2026-05-13T13:16:51+00:00,false /cloud/features/ai-ml/ask-ai,docs/cloud/features/10_AI_ML/AI_chat_overview.md,products/cloud/features/ai-ml/ask-ai.mdx,https://clickhouse.com/docs/cloud/features/ai-ml/ask-ai,https://private-7c7dfe99.mintlify.app/products/cloud/features/ai-ml/ask-ai,matched,f7e2c6861a03b5be,true,9ee44c600a90dd6d,2026-05-08T09:09:20+00:00,false /cloud/features/ai-ml/langfuse,docs/cloud/features/10_AI_ML/langfuse.md,products/cloud/features/ai-ml/langfuse.mdx,https://clickhouse.com/docs/cloud/features/ai-ml/langfuse,https://private-7c7dfe99.mintlify.app/products/cloud/features/ai-ml/langfuse,matched,3fdb6fecdae5809f,true,3fdb6fecdae5809f,2026-05-08T09:09:20+00:00,false /cloud/features/ai-ml/model-developer-terms,docs/cloud/features/10_AI_ML/model-developer-terms.md,products/cloud/features/ai-ml/model-developer-terms.mdx,https://clickhouse.com/docs/cloud/features/ai-ml/model-developer-terms,https://private-7c7dfe99.mintlify.app/products/cloud/features/ai-ml/model-developer-terms,matched,d460aabf33fe6b06,true,d460aabf33fe6b06,2026-05-07T14:49:41+00:00,false @@ -119,18 +119,18 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /cloud/features/user-defined-functions,docs/cloud/features/03_sql_console_features/05_user_defined_functions.md,products/cloud/features/sql-console-features/user-defined-functions.mdx,https://clickhouse.com/docs/cloud/features/user-defined-functions,https://private-7c7dfe99.mintlify.app/products/cloud/features/sql-console-features/user-defined-functions,matched,edee25b13d012dac,true,edee25b13d012dac,2026-05-09T17:02:01+00:00,false /cloud/get-started,docs/cloud/onboard/index.md,products/cloud/getting-started/cloud-get-started.mdx,https://clickhouse.com/docs/cloud/get-started,https://private-7c7dfe99.mintlify.app/products/cloud/getting-started/cloud-get-started,matched,9204efcacd18fa2d,true,9204efcacd18fa2d,2026-05-13T13:25:34+00:00,false /cloud/get-started/cloud/resource-tour,docs/cloud/onboard/03_tune/resource_tour.md,products/cloud/getting-started/resource-tour.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/resource-tour,https://private-7c7dfe99.mintlify.app/products/cloud/getting-started/resource-tour,matched,a6c4756c4f81974e,true,a6c4756c4f81974e,2026-05-08T11:33:34+00:00,false -/cloud/get-started/cloud/use-cases/AI_ML,docs/cloud/onboard/01_discover/02_use_cases/04_machine_learning_and_genAI/01_machine_learning.md,get-started/use-cases/machine-learning-and-genai/machine-learning.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/AI_ML,https://private-7c7dfe99.mintlify.app/get-started/use-cases/machine-learning-and-genai/machine-learning,matched,98bb4a2519c85a01,true,98bb4a2519c85a01,2026-05-08T09:09:20+00:00,false -/cloud/get-started/cloud/use-cases/AI_ML/agent_facing_analytics,docs/cloud/onboard/01_discover/02_use_cases/04_machine_learning_and_genAI/02_agent_facing_analytics.md,get-started/use-cases/machine-learning-and-genai/agent-facing-analytics.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/AI_ML/agent_facing_analytics,https://private-7c7dfe99.mintlify.app/get-started/use-cases/machine-learning-and-genai/agent-facing-analytics,matched,c85d58a649bdcf01,true,c85d58a649bdcf01,2026-05-08T09:09:20+00:00,false -/cloud/get-started/cloud/use-cases/data_lake_and_warehouse,docs/cloud/onboard/01_discover/02_use_cases/03_data_warehousing.md,get-started/use-cases/data-warehousing.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/data_lake_and_warehouse,https://private-7c7dfe99.mintlify.app/get-started/use-cases/data-warehousing,matched,91c6e9022a2f8b93,true,91c6e9022a2f8b93,2026-05-09T16:59:51+00:00,false -/cloud/get-started/cloud/use-cases/observability,docs/cloud/onboard/01_discover/02_use_cases/02_observability.md,get-started/use-cases/observability.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/observability,https://private-7c7dfe99.mintlify.app/get-started/use-cases/observability,matched,21a411586384e339,true,21a411586384e339,2026-05-08T12:19:52+00:00,false -/cloud/get-started/cloud/use-cases/overview,docs/cloud/onboard/01_discover/02_use_cases/00_overview.md,get-started/use-cases/overview.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/overview,https://private-7c7dfe99.mintlify.app/get-started/use-cases/overview,matched,7e66b34fac31dee4,true,7e66b34fac31dee4,2026-05-08T09:09:20+00:00,false -/cloud/get-started/cloud/use-cases/real-time-analytics,docs/cloud/onboard/01_discover/02_use_cases/01_real-time-analytics.md,get-started/use-cases/real-time-analytics.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/real-time-analytics,https://private-7c7dfe99.mintlify.app/get-started/use-cases/real-time-analytics,matched,4a7d4ef89d791eda,true,4a7d4ef89d791eda,2026-05-08T12:19:52+00:00,false +/cloud/get-started/cloud/use-cases/AI_ML,docs/cloud/onboard/01_discover/02_use_cases/04_machine_learning_and_genAI/01_machine_learning.md,core/get-started/use-cases/machine-learning-and-genai/machine-learning.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/AI_ML,https://private-7c7dfe99.mintlify.app/core/get-started/use-cases/machine-learning-and-genai/machine-learning,matched,98bb4a2519c85a01,true,98bb4a2519c85a01,2026-05-08T09:09:20+00:00,false +/cloud/get-started/cloud/use-cases/AI_ML/agent_facing_analytics,docs/cloud/onboard/01_discover/02_use_cases/04_machine_learning_and_genAI/02_agent_facing_analytics.md,core/get-started/use-cases/machine-learning-and-genai/agent-facing-analytics.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/AI_ML/agent_facing_analytics,https://private-7c7dfe99.mintlify.app/core/get-started/use-cases/machine-learning-and-genai/agent-facing-analytics,matched,c85d58a649bdcf01,true,c85d58a649bdcf01,2026-05-08T09:09:20+00:00,false +/cloud/get-started/cloud/use-cases/data_lake_and_warehouse,docs/cloud/onboard/01_discover/02_use_cases/03_data_warehousing.md,core/get-started/use-cases/data-warehousing.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/data_lake_and_warehouse,https://private-7c7dfe99.mintlify.app/core/get-started/use-cases/data-warehousing,matched,91c6e9022a2f8b93,true,91c6e9022a2f8b93,2026-05-09T16:59:51+00:00,false +/cloud/get-started/cloud/use-cases/observability,docs/cloud/onboard/01_discover/02_use_cases/02_observability.md,core/get-started/use-cases/observability.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/observability,https://private-7c7dfe99.mintlify.app/core/get-started/use-cases/observability,matched,21a411586384e339,true,21a411586384e339,2026-05-08T12:19:52+00:00,false +/cloud/get-started/cloud/use-cases/overview,docs/cloud/onboard/01_discover/02_use_cases/00_overview.md,core/get-started/use-cases/overview.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/overview,https://private-7c7dfe99.mintlify.app/core/get-started/use-cases/overview,matched,7e66b34fac31dee4,true,7e66b34fac31dee4,2026-05-08T09:09:20+00:00,false +/cloud/get-started/cloud/use-cases/real-time-analytics,docs/cloud/onboard/01_discover/02_use_cases/01_real-time-analytics.md,core/get-started/use-cases/real-time-analytics.mdx,https://clickhouse.com/docs/cloud/get-started/cloud/use-cases/real-time-analytics,https://private-7c7dfe99.mintlify.app/core/get-started/use-cases/real-time-analytics,matched,4a7d4ef89d791eda,true,4a7d4ef89d791eda,2026-05-08T12:19:52+00:00,false /cloud/get-started/query-endpoints,docs/cloud/guides/SQL_console/query-endpoints.md,products/cloud/guides/sql-console/query-endpoints.mdx,https://clickhouse.com/docs/cloud/get-started/query-endpoints,https://private-7c7dfe99.mintlify.app/products/cloud/guides/sql-console/query-endpoints,matched,89f2028a4895d1af,true,89f2028a4895d1af,2026-05-13T15:43:30+00:00,false /cloud/get-started/query-insights,docs/cloud/features/03_sql_console_features/02_query-insights.md,products/cloud/features/sql-console-features/query-insights.mdx,https://clickhouse.com/docs/cloud/get-started/query-insights,https://private-7c7dfe99.mintlify.app/products/cloud/features/sql-console-features/query-insights,matched,7bc23ab0c83d06b5,true,7bc23ab0c83d06b5,2026-05-08T09:09:20+00:00,false /cloud/get-started/sql-console,docs/cloud/features/03_sql_console_features/01_sql-console.md,products/cloud/features/sql-console-features/sql-console.mdx,https://clickhouse.com/docs/cloud/get-started/sql-console,https://private-7c7dfe99.mintlify.app/products/cloud/features/sql-console-features/sql-console,matched,08745d6dadb884a8,true,08745d6dadb884a8,2026-05-08T09:09:20+00:00,false -/cloud/guides,docs/cloud/guides/index.md,products/cloud/guides/index.mdx,https://clickhouse.com/docs/cloud/guides,https://private-7c7dfe99.mintlify.app/products/cloud/guides,matched,a0cfe9c4a5b23a8a,true,a0cfe9c4a5b23a8a,2026-05-19T11:41:35+00:00,false +/cloud/guides,docs/cloud/guides/index.md,products/cloud/guides/index.mdx,https://clickhouse.com/docs/cloud/guides,https://private-7c7dfe99.mintlify.app/products/cloud/guides/index,matched,a0cfe9c4a5b23a8a,true,a0cfe9c4a5b23a8a,2026-05-19T11:41:35+00:00,false /cloud/guides/data-masking,docs/cloud/guides/security/03_data-masking.md,products/cloud/guides/security/data-masking.mdx,https://clickhouse.com/docs/cloud/guides/data-masking,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/data-masking,matched,f6f11530fed410a1,true,1260414af03fc8ad,2026-05-08T09:09:20+00:00,false -/cloud/guides/data-sources,docs/cloud/guides/data_sources/index.md,products/cloud/guides/data-sources/index.mdx,https://clickhouse.com/docs/cloud/guides/data-sources,https://private-7c7dfe99.mintlify.app/products/cloud/guides/data-sources,matched,f65cc61c3e2e6eea,true,f65cc61c3e2e6eea,2026-05-08T09:09:20+00:00,false +/cloud/guides/data-sources,docs/cloud/guides/data_sources/index.md,products/cloud/guides/data-sources/index.mdx,https://clickhouse.com/docs/cloud/guides/data-sources,https://private-7c7dfe99.mintlify.app/products/cloud/guides/data-sources/index,matched,f65cc61c3e2e6eea,true,f65cc61c3e2e6eea,2026-05-08T09:09:20+00:00,false /cloud/guides/production-readiness,docs/cloud/guides/production-readiness.md,products/cloud/guides/production-readiness.mdx,https://clickhouse.com/docs/cloud/guides/production-readiness,https://private-7c7dfe99.mintlify.app/products/cloud/guides/production-readiness,matched,66f482de657286c9,true,66f482de657286c9,2026-05-13T13:16:51+00:00,false /cloud/guides/security/manage-custom-roles,docs/cloud/guides/security/01_cloud_access_management/03_manage-custom-roles.md,products/cloud/guides/security/cloud-access-management/manage-custom-roles.mdx,https://clickhouse.com/docs/cloud/guides/security/manage-custom-roles,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/cloud-access-management/manage-custom-roles,matched,29788fb34b6dd45e,true,29788fb34b6dd45e,2026-05-09T17:02:01+00:00,false /cloud/guides/sql-console/gather-connection-details,docs/cloud/guides/SQL_console/connection_details.md,products/cloud/guides/sql-console/connection-details.mdx,https://clickhouse.com/docs/cloud/guides/sql-console/gather-connection-details,https://private-7c7dfe99.mintlify.app/products/cloud/guides/sql-console/connection-details,matched,afd6f57564f1e340,true,afd6f57564f1e340,2026-05-08T09:09:20+00:00,false @@ -138,20 +138,20 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /cloud/infrastructure/clickhouse-government,docs/cloud/guides/infrastructure/01_deployment_options/03_clickhouse-government.md,products/cloud/guides/infrastructure/deployment-options/clickhouse-government.mdx,https://clickhouse.com/docs/cloud/infrastructure/clickhouse-government,https://private-7c7dfe99.mintlify.app/products/cloud/guides/infrastructure/deployment-options/clickhouse-government,matched,21b0ff4af4bf21d2,true,21b0ff4af4bf21d2,2026-05-08T09:09:20+00:00,false /cloud/infrastructure/clickhouse-private,docs/cloud/guides/infrastructure/01_deployment_options/02_clickhouse-private.md,products/cloud/guides/infrastructure/deployment-options/clickhouse-private.mdx,https://clickhouse.com/docs/cloud/infrastructure/clickhouse-private,https://private-7c7dfe99.mintlify.app/products/cloud/guides/infrastructure/deployment-options/clickhouse-private,matched,9b03ad9303c64cac,true,9b03ad9303c64cac,2026-05-08T09:09:20+00:00,false /cloud/manage/api/api-overview,docs/cloud/features/06_admin_features/api/api-overview.md,products/cloud/features/admin-features/api/api-overview.mdx,https://clickhouse.com/docs/cloud/manage/api/api-overview,https://private-7c7dfe99.mintlify.app/products/cloud/features/admin-features/api/api-overview,matched,c1ae0eaa41dce4cb,true,0e03b8509bcbb764,2026-05-09T10:10:14+00:00,false -/cloud/manage/backups,docs/cloud/guides/backups/index.md,products/cloud/guides/backups/index.mdx,https://clickhouse.com/docs/cloud/manage/backups,https://private-7c7dfe99.mintlify.app/products/cloud/guides/backups,matched,970616ede7226a84,true,970616ede7226a84,2026-05-08T09:09:20+00:00,false +/cloud/manage/backups,docs/cloud/guides/backups/index.md,products/cloud/guides/backups/index.mdx,https://clickhouse.com/docs/cloud/manage/backups,https://private-7c7dfe99.mintlify.app/products/cloud/guides/backups/index,matched,970616ede7226a84,true,970616ede7226a84,2026-05-08T09:09:20+00:00,false /cloud/manage/backups/backup-restore-via-commands,docs/cloud/guides/backups/03_bring_your_own_backup/03_backup_restore_using_commands.md,products/cloud/guides/backups/bring-your-own-backup/backup-restore-using-commands.mdx,https://clickhouse.com/docs/cloud/manage/backups/backup-restore-via-commands,https://private-7c7dfe99.mintlify.app/products/cloud/guides/backups/bring-your-own-backup/backup-restore-using-commands,matched,bd25574ae7b54f32,true,bd25574ae7b54f32,2026-05-08T09:09:20+00:00,false /cloud/manage/backups/backup-restore-via-ui,docs/cloud/guides/backups/03_bring_your_own_backup/02_backup_restore_from_ui.md,products/cloud/guides/backups/bring-your-own-backup/backup-restore-from-ui.mdx,https://clickhouse.com/docs/cloud/manage/backups/backup-restore-via-ui,https://private-7c7dfe99.mintlify.app/products/cloud/guides/backups/bring-your-own-backup/backup-restore-from-ui,matched,6624ad97c26d04cb,true,6624ad97c26d04cb,2026-05-09T17:02:01+00:00,false /cloud/manage/backups/configurable-backups,docs/cloud/guides/backups/02_configurable-backups.md,products/cloud/guides/backups/configurable-backups.mdx,https://clickhouse.com/docs/cloud/manage/backups/configurable-backups,https://private-7c7dfe99.mintlify.app/products/cloud/guides/backups/configurable-backups,matched,bbae3e77868408d6,true,bbae3e77868408d6,2026-05-08T09:09:20+00:00,false /cloud/manage/backups/export-backups-to-own-cloud-account,docs/cloud/guides/backups/03_bring_your_own_backup/01_export-backups-to-own-cloud-account.md,products/cloud/guides/backups/bring-your-own-backup/export-backups-to-own-cloud-account.mdx,https://clickhouse.com/docs/cloud/manage/backups/export-backups-to-own-cloud-account,https://private-7c7dfe99.mintlify.app/products/cloud/guides/backups/bring-your-own-backup/export-backups-to-own-cloud-account,matched,7785d20cd3c8629c,true,7785d20cd3c8629c,2026-05-08T15:04:34+00:00,false /cloud/manage/backups/overview,docs/cloud/guides/backups/01_review-and-restore-backups.md,products/cloud/guides/backups/review-and-restore-backups.mdx,https://clickhouse.com/docs/cloud/manage/backups/overview,https://private-7c7dfe99.mintlify.app/products/cloud/guides/backups/review-and-restore-backups,matched,8d90498ce1855ff5,true,8d90498ce1855ff5,2026-05-13T13:16:51+00:00,false -/cloud/manage/billing,docs/cloud/reference/03_billing/index.md,products/cloud/reference/billing/index.mdx,https://clickhouse.com/docs/cloud/manage/billing,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing,matched,043aa88b2d4a1d62,true,043aa88b2d4a1d62,2026-05-08T09:09:20+00:00,false +/cloud/manage/billing,docs/cloud/reference/03_billing/index.md,products/cloud/reference/billing/index.mdx,https://clickhouse.com/docs/cloud/manage/billing,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing/index,matched,043aa88b2d4a1d62,true,043aa88b2d4a1d62,2026-05-08T09:09:20+00:00,false /cloud/manage/billing/overview,docs/cloud/reference/03_billing/01_billing_overview.md,products/cloud/reference/billing/billing-overview.mdx,https://clickhouse.com/docs/cloud/manage/billing/overview,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing/billing-overview,matched,7f1225166655ebd2,true,7f1225166655ebd2,2026-05-08T09:09:20+00:00,false /cloud/manage/close_account,docs/cloud/reference/11_account-close.md,products/cloud/reference/account-close.mdx,https://clickhouse.com/docs/cloud/manage/close_account,https://private-7c7dfe99.mintlify.app/products/cloud/reference/account-close,matched,36c5d914275ca5f8,true,36c5d914275ca5f8,2026-05-09T17:02:01+00:00,false -/cloud/manage/cloud-api,docs/cloud/features/06_admin_features/api/index.md,products/cloud/features/admin-features/api/index.mdx,https://clickhouse.com/docs/cloud/manage/cloud-api,https://private-7c7dfe99.mintlify.app/products/cloud/features/admin-features/api,matched,b78c8fb3fd3ca82a,true,b78c8fb3fd3ca82a,2026-05-09T10:10:14+00:00,false +/cloud/manage/cloud-api,docs/cloud/features/06_admin_features/api/index.md,products/cloud/features/admin-features/api/index.mdx,https://clickhouse.com/docs/cloud/manage/cloud-api,https://private-7c7dfe99.mintlify.app/products/cloud/features/admin-features/api/index,matched,b78c8fb3fd3ca82a,true,b78c8fb3fd3ca82a,2026-05-09T10:10:14+00:00,false /cloud/manage/cloud-tiers,docs/cloud/features/01_cloud_tiers.md,products/cloud/features/cloud-tiers.mdx,https://clickhouse.com/docs/cloud/manage/cloud-tiers,https://private-7c7dfe99.mintlify.app/products/cloud/features/cloud-tiers,matched,feb60546b79ef007,true,bcb7df3b1a1dae46,2026-05-08T11:53:27+00:00,false /cloud/manage/dashboards,docs/cloud/features/03_sql_console_features/04_dashboards.md,products/cloud/features/sql-console-features/dashboards.mdx,https://clickhouse.com/docs/cloud/manage/dashboards,https://private-7c7dfe99.mintlify.app/products/cloud/features/sql-console-features/dashboards,matched,6eeac11681de5506,true,6eeac11681de5506,2026-05-08T09:09:20+00:00,false /cloud/manage/hyperdx,docs/cloud/features/03_sql_console_features/hyperdx.md,products/cloud/features/sql-console-features/hyperdx.mdx,https://clickhouse.com/docs/cloud/manage/hyperdx,https://private-7c7dfe99.mintlify.app/products/cloud/features/sql-console-features/hyperdx,matched,21ecd23dfcc59665,true,21ecd23dfcc59665,2026-05-08T09:09:20+00:00,false -/cloud/manage/marketplace/,docs/cloud/reference/03_billing/02_marketplace/index.md,products/cloud/reference/billing/marketplace/index.mdx,https://clickhouse.com/docs/cloud/manage/marketplace/,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing/marketplace,matched,b15b0f51d35014ff,true,b15b0f51d35014ff,2026-05-07T14:49:41+00:00,false +/cloud/manage/marketplace/,docs/cloud/reference/03_billing/02_marketplace/index.md,products/cloud/reference/billing/marketplace/index.mdx,https://clickhouse.com/docs/cloud/manage/marketplace/,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing/marketplace/index,matched,b15b0f51d35014ff,true,b15b0f51d35014ff,2026-05-07T14:49:41+00:00,false /cloud/manage/monitor/advanced-dashboard,docs/cloud/features/08_monitoring/advanced_dashboard.md,products/cloud/features/monitoring/advanced-dashboard.mdx,https://clickhouse.com/docs/cloud/manage/monitor/advanced-dashboard,https://private-7c7dfe99.mintlify.app/products/cloud/features/monitoring/advanced-dashboard,matched,d41978d5f83b67c1,true,d41978d5f83b67c1,2026-05-08T09:09:20+00:00,false /cloud/manage/network-data-transfer,docs/cloud/reference/03_billing/04_network-data-transfer.mdx,products/cloud/reference/billing/network-data-transfer.mdx,https://clickhouse.com/docs/cloud/manage/network-data-transfer,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing/network-data-transfer,matched,c3f98f239bac0836,true,c3f98f239bac0836,2026-05-08T09:09:20+00:00,false /cloud/manage/openapi,docs/cloud/features/06_admin_features/api/openapi.md,products/cloud/features/admin-features/api/openapi.mdx,https://clickhouse.com/docs/cloud/manage/openapi,https://private-7c7dfe99.mintlify.app/products/cloud/features/admin-features/api/openapi,matched,9bdf3eb7fbb415ea,true,9bdf3eb7fbb415ea,2026-05-09T10:10:14+00:00,false @@ -185,9 +185,9 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /cloud/managed-postgres/upgrades,docs/cloud/managed-postgres/upgrades.md,products/managed-postgres/upgrades.mdx,https://clickhouse.com/docs/cloud/managed-postgres/upgrades,https://private-7c7dfe99.mintlify.app/products/managed-postgres/upgrades,matched,b445eca1bc80cddd,true,b445eca1bc80cddd,2026-05-08T09:09:20+00:00,false /cloud/marketplace/marketplace-billing,docs/cloud/reference/03_billing/02_marketplace/overview.md,products/cloud/reference/billing/marketplace/overview.mdx,https://clickhouse.com/docs/cloud/marketplace/marketplace-billing,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing/marketplace/overview,matched,81c464817cd52ea7,true,81c464817cd52ea7,2026-05-08T09:09:20+00:00,false /cloud/migrate/upload-a-csv-file,docs/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/04_upload-a-csv-file.md,products/cloud/guides/migration/upload-a-csv-file.mdx,https://clickhouse.com/docs/cloud/migrate/upload-a-csv-file,https://private-7c7dfe99.mintlify.app/products/cloud/guides/migration/upload-a-csv-file,matched,4a099f2b522ce3e4,true,4a099f2b522ce3e4,2026-05-08T09:09:20+00:00,false -/cloud/migration/clickhouse-local,docs/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md,get-started/setup/migration-guides/other-methods/clickhouse-local-etl.mdx,https://clickhouse.com/docs/cloud/migration/clickhouse-local,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/other-methods/clickhouse-local-etl,matched,7a9bbf05765000c1,true,7a9bbf05765000c1,2026-05-08T11:18:28+00:00,false -/cloud/migration/clickhouse-to-cloud,docs/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud_with_remotesecure.md,get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud.mdx,https://clickhouse.com/docs/cloud/migration/clickhouse-to-cloud,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud,matched,7ca206c1079979e2,true,7ca206c1079979e2,2026-05-08T11:33:34+00:00,false -/cloud/migration/etl-tool-to-clickhouse,docs/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/02_etl-tool-to-clickhouse.md,get-started/setup/migration-guides/other-methods/etl-tool-to-clickhouse.mdx,https://clickhouse.com/docs/cloud/migration/etl-tool-to-clickhouse,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/other-methods/etl-tool-to-clickhouse,matched,14da5879ab135d65,true,14da5879ab135d65,2026-05-08T09:09:20+00:00,false +/cloud/migration/clickhouse-local,docs/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md,core/get-started/setup/migration-guides/other-methods/clickhouse-local-etl.mdx,https://clickhouse.com/docs/cloud/migration/clickhouse-local,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/other-methods/clickhouse-local-etl,matched,7a9bbf05765000c1,true,7a9bbf05765000c1,2026-05-08T11:18:28+00:00,false +/cloud/migration/clickhouse-to-cloud,docs/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud_with_remotesecure.md,core/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud.mdx,https://clickhouse.com/docs/cloud/migration/clickhouse-to-cloud,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud,matched,7ca206c1079979e2,true,7ca206c1079979e2,2026-05-08T11:33:34+00:00,false +/cloud/migration/etl-tool-to-clickhouse,docs/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/02_etl-tool-to-clickhouse.md,core/get-started/setup/migration-guides/other-methods/etl-tool-to-clickhouse.mdx,https://clickhouse.com/docs/cloud/migration/etl-tool-to-clickhouse,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/other-methods/etl-tool-to-clickhouse,matched,14da5879ab135d65,true,14da5879ab135d65,2026-05-08T09:09:20+00:00,false /cloud/migration/oss-to-cloud-backup-restore,docs/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/02_oss_to_cloud_backups.md,products/cloud/guides/migration/oss-to-cloud-backup-restore.mdx,https://clickhouse.com/docs/cloud/migration/oss-to-cloud-backup-restore,https://private-7c7dfe99.mintlify.app/products/cloud/guides/migration/oss-to-cloud-backup-restore,matched,f169deff08e010e3,true,f169deff08e010e3,2026-05-13T15:43:29+00:00,false /cloud/monitoring,docs/cloud/features/08_monitoring/overview.md,products/cloud/features/monitoring/overview.mdx,https://clickhouse.com/docs/cloud/monitoring,https://private-7c7dfe99.mintlify.app/products/cloud/features/monitoring/overview,matched,863a8eaa76a3e433,true,895bd5a08d387c60,2026-05-07T14:49:41+00:00,false /cloud/monitoring/cloud-console,docs/cloud/features/08_monitoring/cloud-console.md,products/cloud/features/monitoring/cloud-console.mdx,https://clickhouse.com/docs/cloud/monitoring/cloud-console,https://private-7c7dfe99.mintlify.app/products/cloud/features/monitoring/cloud-console,matched,c9a31fe3279cbef4,true,c9a31fe3279cbef4,2026-05-08T09:09:20+00:00,false @@ -195,18 +195,18 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /cloud/monitoring/system-tables,docs/cloud/features/08_monitoring/system-tables.md,products/cloud/features/monitoring/system-tables.mdx,https://clickhouse.com/docs/cloud/monitoring/system-tables,https://private-7c7dfe99.mintlify.app/products/cloud/features/monitoring/system-tables,matched,c0b9697e8ad44e0d,true,c0b9697e8ad44e0d,2026-05-08T09:09:20+00:00,false /cloud/notifications,docs/cloud/features/08_monitoring/cloud-notifications.md,products/cloud/features/monitoring/notifications.mdx,https://clickhouse.com/docs/cloud/notifications,https://private-7c7dfe99.mintlify.app/products/cloud/features/monitoring/notifications,matched,99b276dc1a14093b,true,99b276dc1a14093b,2026-05-08T09:09:20+00:00,false /cloud/overview,docs/cloud/onboard/01_discover/01_what_is.md,products/cloud/getting-started/intro.mdx,https://clickhouse.com/docs/cloud/overview,https://private-7c7dfe99.mintlify.app/products/cloud/getting-started/intro,matched,6a989c83073b9a92,true,6a989c83073b9a92,2026-05-08T09:09:20+00:00,false -/cloud/reference,docs/cloud/reference/index.md,products/cloud/reference/index.mdx,https://clickhouse.com/docs/cloud/reference,https://private-7c7dfe99.mintlify.app/products/cloud/reference,matched,f7dd5c99d95edf46,true,f7dd5c99d95edf46,2026-05-13T13:16:51+00:00,false +/cloud/reference,docs/cloud/reference/index.md,products/cloud/reference/index.mdx,https://clickhouse.com/docs/cloud/reference,https://private-7c7dfe99.mintlify.app/products/cloud/reference/index,matched,f7dd5c99d95edf46,true,f7dd5c99d95edf46,2026-05-13T13:16:51+00:00,false /cloud/reference/architecture,docs/cloud/reference/02_architecture.md,products/cloud/reference/architecture.mdx,https://clickhouse.com/docs/cloud/reference/architecture,https://private-7c7dfe99.mintlify.app/products/cloud/reference/architecture,matched,f288030a7ccc04fa,true,f288030a7ccc04fa,2026-05-08T09:09:20+00:00,false -/cloud/reference/billing/clickpipes,docs/cloud/reference/03_billing/03_clickpipes/index.md,products/cloud/reference/billing/clickpipes/index.mdx,https://clickhouse.com/docs/cloud/reference/billing/clickpipes,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing/clickpipes,matched,f38bca2728a4ec18,true,f38bca2728a4ec18,2026-05-07T14:49:41+00:00,false +/cloud/reference/billing/clickpipes,docs/cloud/reference/03_billing/03_clickpipes/index.md,products/cloud/reference/billing/clickpipes/index.mdx,https://clickhouse.com/docs/cloud/reference/billing/clickpipes,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing/clickpipes/index,matched,f38bca2728a4ec18,true,f38bca2728a4ec18,2026-05-07T14:49:41+00:00,false /cloud/reference/billing/clickpipes/postgres-cdc,docs/cloud/reference/03_billing/03_clickpipes/clickpipes_for_cdc.md,products/cloud/reference/billing/clickpipes/clickpipes-for-cdc.mdx,https://clickhouse.com/docs/cloud/reference/billing/clickpipes/postgres-cdc,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing/clickpipes/clickpipes-for-cdc,matched,45fcc3a786b71f10,true,45fcc3a786b71f10,2026-05-13T13:16:51+00:00,false /cloud/reference/billing/clickpipes/streaming-and-object-storage,docs/cloud/reference/03_billing/03_clickpipes/clickpipes_for_streaming_and_object_storage.md,products/cloud/reference/billing/clickpipes/clickpipes-for-streaming-and-object-storage.mdx,https://clickhouse.com/docs/cloud/reference/billing/clickpipes/streaming-and-object-storage,https://private-7c7dfe99.mintlify.app/products/cloud/reference/billing/clickpipes/clickpipes-for-streaming-and-object-storage,matched,f1b629a47a4e799b,true,f1b629a47a4e799b,2026-05-09T14:41:12+00:00,false -/cloud/reference/byoc/architecture,docs/cloud/guides/infrastructure/01_deployment_options/byoc/02_architecture.md,products/cloud/guides/infrastructure/deployment-options/byoc/architecture.mdx | products/bring-your-own-cloud/overview/architecture.mdx,https://clickhouse.com/docs/cloud/reference/byoc/architecture,,ambiguous,a0472008166c0a9f,true,a0472008166c0a9f,2026-05-19T11:48:22+00:00,false +/cloud/reference/byoc/architecture,docs/cloud/guides/infrastructure/01_deployment_options/byoc/02_architecture.md,products/bring-your-own-cloud/overview/architecture.mdx,https://clickhouse.com/docs/cloud/reference/byoc/architecture,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/overview/architecture,matched,a0472008166c0a9f,true,a0472008166c0a9f,2026-05-19T11:48:22+00:00,false /cloud/reference/byoc/aws-service-limits,docs/cloud/guides/infrastructure/01_deployment_options/byoc/08_reference/07_aws_service_limits.md,products/bring-your-own-cloud/reference/aws-service-limits.mdx,https://clickhouse.com/docs/cloud/reference/byoc/aws-service-limits,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/reference/aws-service-limits,matched,e84f1dd963210857,true,e84f1dd963210857,2026-05-19T11:48:22+00:00,false /cloud/reference/byoc/billable-aws-services,docs/cloud/guides/infrastructure/01_deployment_options/byoc/08_reference/05_billable_aws_services.md,products/bring-your-own-cloud/reference/billable-aws-services.mdx,https://clickhouse.com/docs/cloud/reference/byoc/billable-aws-services,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/reference/billable-aws-services,matched,563991f81a8a64d8,true,563991f81a8a64d8,2026-05-19T11:48:22+00:00,false /cloud/reference/byoc/configurations,docs/cloud/guides/infrastructure/01_deployment_options/byoc/05_configuration.md,products/bring-your-own-cloud/configuration/configurations.mdx,https://clickhouse.com/docs/cloud/reference/byoc/configurations,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/configuration/configurations,matched,0d8106d1a164c2be,true,0d8106d1a164c2be,2026-05-08T09:09:20+00:00,false /cloud/reference/byoc/connect,docs/cloud/guides/infrastructure/01_deployment_options/byoc/04_connectivity.md,products/bring-your-own-cloud/configuration/connect.mdx,https://clickhouse.com/docs/cloud/reference/byoc/connect,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/configuration/connect,matched,008b9d9d44bae9d0,true,008b9d9d44bae9d0,2026-05-08T09:09:20+00:00,false /cloud/reference/byoc/cost-model-aws,docs/cloud/guides/infrastructure/01_deployment_options/byoc/08_reference/06_cost_model_aws.md,products/bring-your-own-cloud/reference/cost-model-aws.mdx,https://clickhouse.com/docs/cloud/reference/byoc/cost-model-aws,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/reference/cost-model-aws,matched,c6b35b55b705c26d,true,c6b35b55b705c26d,2026-05-19T11:48:22+00:00,false -/cloud/reference/byoc/observability,docs/cloud/guides/infrastructure/01_deployment_options/byoc/06_observability.md,products/cloud/guides/infrastructure/deployment-options/byoc/observability/aws.mdx | products/bring-your-own-cloud/reference/observability-aws.mdx,https://clickhouse.com/docs/cloud/reference/byoc/observability,,ambiguous,6d12761af5316c80,true,6d12761af5316c80,2026-05-08T19:29:49+00:00,false +/cloud/reference/byoc/observability,docs/cloud/guides/infrastructure/01_deployment_options/byoc/06_observability.md,products/bring-your-own-cloud/reference/observability-aws.mdx,https://clickhouse.com/docs/cloud/reference/byoc/observability,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/reference/observability-aws,matched,6d12761af5316c80,true,6d12761af5316c80,2026-05-08T19:29:49+00:00,false /cloud/reference/byoc/onboarding/azure-private-preview,docs/cloud/guides/infrastructure/01_deployment_options/byoc/03_onboarding/05_azure_private_preview.md,products/bring-your-own-cloud/onboarding/azure-private-preview.mdx,https://clickhouse.com/docs/cloud/reference/byoc/onboarding/azure-private-preview,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/onboarding/azure-private-preview,matched,b2cf01c8dc7cb2a0,true,b2cf01c8dc7cb2a0,2026-05-09T17:02:01+00:00,false /cloud/reference/byoc/onboarding/customization-aws,docs/cloud/guides/infrastructure/01_deployment_options/byoc/03_onboarding/02_customization/01_aws.md,products/bring-your-own-cloud/onboarding/customization-aws.mdx,https://clickhouse.com/docs/cloud/reference/byoc/onboarding/customization-aws,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/onboarding/customization-aws,matched,8133f4b16d870e30,true,8133f4b16d870e30,2026-05-09T17:02:01+00:00,false /cloud/reference/byoc/onboarding/customization-gcp,docs/cloud/guides/infrastructure/01_deployment_options/byoc/03_onboarding/02_customization/02_gcp.md,products/bring-your-own-cloud/onboarding/customization-gcp.mdx,https://clickhouse.com/docs/cloud/reference/byoc/onboarding/customization-gcp,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/onboarding/customization-gcp,matched,932fa029c68397ba,true,932fa029c68397ba,2026-05-09T17:02:01+00:00,false @@ -221,7 +221,7 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /cloud/reference/byoc/reference/faq,docs/cloud/guides/infrastructure/01_deployment_options/byoc/08_reference/01_faq.md,products/bring-your-own-cloud/reference/faq.mdx,https://clickhouse.com/docs/cloud/reference/byoc/reference/faq,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/reference/faq,matched,a1d10da01c215d70,true,a1d10da01c215d70,2026-05-08T09:09:20+00:00,false /cloud/reference/byoc/reference/network_security,docs/cloud/guides/infrastructure/01_deployment_options/byoc/08_reference/03_network_security.md,products/bring-your-own-cloud/reference/network-security.mdx,https://clickhouse.com/docs/cloud/reference/byoc/reference/network_security,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/reference/network-security,matched,1a63260c316b823d,true,1a63260c316b823d,2026-05-19T11:41:35+00:00,false /cloud/reference/byoc/reference/privilege,docs/cloud/guides/infrastructure/01_deployment_options/byoc/08_reference/02_priviledge.md,products/bring-your-own-cloud/reference/privilege.mdx,https://clickhouse.com/docs/cloud/reference/byoc/reference/privilege,https://private-7c7dfe99.mintlify.app/products/bring-your-own-cloud/reference/privilege,matched,c79247efbd1ca8bf,true,c79247efbd1ca8bf,2026-05-08T09:09:20+00:00,false -/cloud/reference/changelogs,docs/cloud/reference/01_changelog/index.md,resources/changelogs/cloud/index.mdx,https://clickhouse.com/docs/cloud/reference/changelogs,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud,matched,d30b29b61d1b4fb2,true,d30b29b61d1b4fb2,2026-05-07T14:49:41+00:00,false +/cloud/reference/changelogs,docs/cloud/reference/01_changelog/index.md,resources/changelogs/cloud/index.mdx,https://clickhouse.com/docs/cloud/reference/changelogs,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/index,matched,d30b29b61d1b4fb2,true,d30b29b61d1b4fb2,2026-05-07T14:49:41+00:00,false /cloud/reference/changelogs/release-notes,docs/cloud/reference/01_changelog/02_release_notes/index.md,resources/changelogs/cloud/release-notes-index.mdx,https://clickhouse.com/docs/cloud/reference/changelogs/release-notes,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/release-notes-index,matched,d1eb8fcdd78bd01c,true,d1eb8fcdd78bd01c,2026-05-13T13:16:51+00:00,false /cloud/reference/shared-catalog,docs/cloud/features/05_infrastructure/shared-catalog.md,products/cloud/features/infrastructure/shared-catalog.mdx,https://clickhouse.com/docs/cloud/reference/shared-catalog,https://private-7c7dfe99.mintlify.app/products/cloud/features/infrastructure/shared-catalog,matched,2511e132020fab89,true,2511e132020fab89,2026-05-13T13:16:51+00:00,false /cloud/reference/shared-merge-tree,docs/cloud/features/05_infrastructure/shared-merge-tree.md,products/cloud/features/infrastructure/shared-merge-tree.mdx,https://clickhouse.com/docs/cloud/reference/shared-merge-tree,https://private-7c7dfe99.mintlify.app/products/cloud/features/infrastructure/shared-merge-tree,matched,c827eb762dcd0803,true,c827eb762dcd0803,2026-05-08T09:09:20+00:00,false @@ -234,16 +234,16 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /cloud/security/audit-logging/byoc-security-playbook,docs/cloud/guides/security/05_audit_logging/03_byoc-security-playbook.md,products/cloud/guides/security/audit-logging/byoc-security-playbook.mdx,https://clickhouse.com/docs/cloud/security/audit-logging/byoc-security-playbook,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/audit-logging/byoc-security-playbook,matched,063397ae09e1217c,true,063397ae09e1217c,2026-05-13T13:16:51+00:00,false /cloud/security/audit-logging/console-audit-log,docs/cloud/guides/security/05_audit_logging/01_console-audit-log.md,products/cloud/guides/security/audit-logging/console-audit-log.mdx,https://clickhouse.com/docs/cloud/security/audit-logging/console-audit-log,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/audit-logging/console-audit-log,matched,2cbc552446620b24,true,2cbc552446620b24,2026-05-09T10:10:14+00:00,false /cloud/security/audit-logging/database-audit-log,docs/cloud/guides/security/05_audit_logging/02_database-audit-log.md,products/cloud/guides/security/audit-logging/database-audit-log.mdx,https://clickhouse.com/docs/cloud/security/audit-logging/database-audit-log,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/audit-logging/database-audit-log,matched,6d5867bb7d3cb424,true,6d5867bb7d3cb424,2026-05-13T13:16:51+00:00,false -/cloud/security/audit_logging,docs/cloud/guides/security/05_audit_logging/index.md,products/cloud/guides/security/audit-logging/index.mdx,https://clickhouse.com/docs/cloud/security/audit_logging,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/audit-logging,matched,0d0fff6982e8e865,true,d065a9f4fd510c23,2026-05-08T09:09:20+00:00,false +/cloud/security/audit_logging,docs/cloud/guides/security/05_audit_logging/index.md,products/cloud/guides/security/audit-logging/index.mdx,https://clickhouse.com/docs/cloud/security/audit_logging,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/audit-logging/index,matched,0d0fff6982e8e865,true,d065a9f4fd510c23,2026-05-08T09:09:20+00:00,false /cloud/security/azure-privatelink,docs/cloud/guides/security/02_connectivity/private_networking/04_azure-privatelink.md,products/cloud/guides/security/connectivity/private-networking/azure-privatelink.mdx,https://clickhouse.com/docs/cloud/security/azure-privatelink,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/connectivity/private-networking/azure-privatelink,matched,5b724c7950130db3,true,5b724c7950130db3,2026-05-13T15:43:29+00:00,false -/cloud/security/cloud_access_management,docs/cloud/guides/security/01_cloud_access_management/index.md,products/cloud/guides/security/cloud-access-management/index.mdx,https://clickhouse.com/docs/cloud/security/cloud_access_management,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/cloud-access-management,matched,8d9907313bc853e5,true,ed7e9fe20cdf9e7a,2026-05-08T09:09:20+00:00,false +/cloud/security/cloud_access_management,docs/cloud/guides/security/01_cloud_access_management/index.md,products/cloud/guides/security/cloud-access-management/index.mdx,https://clickhouse.com/docs/cloud/security/cloud_access_management,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/cloud-access-management/index,matched,8d9907313bc853e5,true,ed7e9fe20cdf9e7a,2026-05-08T09:09:20+00:00,false /cloud/security/cmek,docs/cloud/guides/security/04_cmek.md,products/cloud/guides/security/cmek.mdx,https://clickhouse.com/docs/cloud/security/cmek,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/cmek,matched,a7409065d2991abd,true,a7409065d2991abd,2026-05-08T09:09:20+00:00,false /cloud/security/cmek-migration,docs/cloud/guides/security/05_cmek_migration.md,products/cloud/guides/security/cmek-migration.mdx,https://clickhouse.com/docs/cloud/security/cmek-migration,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/cmek-migration,matched,7a7c04c3898e7261,true,7a7c04c3898e7261,2026-05-08T09:09:20+00:00,false /cloud/security/common-access-management-queries,docs/cloud/guides/security/01_cloud_access_management/09_common-access-management-queries.md,products/cloud/guides/security/cloud-access-management/common-access-management-queries.mdx,https://clickhouse.com/docs/cloud/security/common-access-management-queries,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/cloud-access-management/common-access-management-queries,matched,e2eae9bc919bb02c,true,e2eae9bc919bb02c,2026-05-08T09:09:20+00:00,false /cloud/security/compliance-overview,docs/cloud/reference/09_security/03_compliance/01_compliance-overview.md,products/cloud/reference/security/compliance-overview.mdx,https://clickhouse.com/docs/cloud/security/compliance-overview,https://private-7c7dfe99.mintlify.app/products/cloud/reference/security/compliance-overview,matched,7a73b3d4bdb8f3dd,true,7a73b3d4bdb8f3dd,2026-05-08T09:09:20+00:00,false /cloud/security/compliance/hipaa-onboarding,docs/cloud/guides/security/06_compliance/01_hipaa-onboarding.md,products/cloud/guides/security/compliance/hipaa-onboarding.mdx,https://clickhouse.com/docs/cloud/security/compliance/hipaa-onboarding,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/compliance/hipaa-onboarding,matched,c8d09ad79e54ea9e,true,c8d09ad79e54ea9e,2026-05-09T17:02:01+00:00,false /cloud/security/compliance/pci-onboarding,docs/cloud/guides/security/06_compliance/02_pci-onboarding.md,products/cloud/guides/security/compliance/pci-onboarding.mdx,https://clickhouse.com/docs/cloud/security/compliance/pci-onboarding,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/compliance/pci-onboarding,matched,aad4076142416380,true,aad4076142416380,2026-05-09T17:02:01+00:00,false -/cloud/security/connectivity/private-networking,docs/cloud/guides/security/02_connectivity/private_networking/index.md,products/cloud/guides/security/connectivity/private-networking/index.mdx,https://clickhouse.com/docs/cloud/security/connectivity/private-networking,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/connectivity/private-networking,matched,008390cf9a310ce5,true,7a4af08a1b17f2a8,2026-05-07T14:49:41+00:00,false +/cloud/security/connectivity/private-networking,docs/cloud/guides/security/02_connectivity/private_networking/index.md,products/cloud/guides/security/connectivity/private-networking/index.mdx,https://clickhouse.com/docs/cloud/security/connectivity/private-networking,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/connectivity/private-networking/index,matched,008390cf9a310ce5,true,7a4af08a1b17f2a8,2026-05-07T14:49:41+00:00,false /cloud/security/console-roles,docs/cloud/reference/09_security/01_console-roles.md,products/cloud/reference/security/console-roles.mdx,https://clickhouse.com/docs/cloud/security/console-roles,https://private-7c7dfe99.mintlify.app/products/cloud/reference/security/console-roles,matched,27c50d3a9f2b105e,true,27c50d3a9f2b105e,2026-05-08T09:09:20+00:00,false /cloud/security/manage-cloud-users,docs/cloud/guides/security/01_cloud_access_management/02_manage-cloud-users.md,products/cloud/guides/security/cloud-access-management/manage-cloud-users.mdx,https://clickhouse.com/docs/cloud/security/manage-cloud-users,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/cloud-access-management/manage-cloud-users,matched,e6b3aabbe65fc08e,true,e6b3aabbe65fc08e,2026-05-09T17:02:01+00:00,false /cloud/security/manage-database-service-accounts,docs/cloud/guides/security/01_cloud_access_management/06_manage-database-service-accounts.md,products/cloud/guides/security/cloud-access-management/manage-database-service-accounts.mdx,https://clickhouse.com/docs/cloud/security/manage-database-service-accounts,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/cloud-access-management/manage-database-service-accounts,matched,0f8cd414ba5520eb,true,0f8cd414ba5520eb,2026-05-09T17:02:01+00:00,false @@ -257,143 +257,143 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /community-wisdom/creative-use-cases,docs/tips-and-tricks/success-stories.md,resources/support-center/tips-and-tricks/success-stories.mdx,https://clickhouse.com/docs/community-wisdom/creative-use-cases,https://private-7c7dfe99.mintlify.app/resources/support-center/tips-and-tricks/success-stories,matched,540342d7398b915a,true,540342d7398b915a,2026-05-13T13:16:51+00:00,false /community-wisdom/debugging-insights,docs/tips-and-tricks/debugging-insights.md,resources/support-center/tips-and-tricks/debugging-insights.mdx,https://clickhouse.com/docs/community-wisdom/debugging-insights,https://private-7c7dfe99.mintlify.app/resources/support-center/tips-and-tricks/debugging-insights,matched,c39d0c8e69e8a9c6,true,c39d0c8e69e8a9c6,2026-05-13T13:16:51+00:00,false /community-wisdom/performance-optimization,docs/tips-and-tricks/performance-optimization.md,resources/support-center/tips-and-tricks/performance-optimization.mdx,https://clickhouse.com/docs/community-wisdom/performance-optimization,https://private-7c7dfe99.mintlify.app/resources/support-center/tips-and-tricks/performance-optimization,matched,9b4646892d3c0c1d,true,9b4646892d3c0c1d,2026-05-13T13:16:51+00:00,false -/concepts,docs/concepts/index.md,concepts/index.mdx | products/cloud/concepts.mdx,https://clickhouse.com/docs/concepts,,ambiguous,906c00a6ef80e771,true,906c00a6ef80e771,2026-05-08T15:29:53+00:00,false -/concepts/faq,docs/faq/index.md,resources/support-center/knowledge-base/general-faqs/faq-index.mdx,https://clickhouse.com/docs/concepts/faq,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/faq-index,matched,5433c29db7b36993,true,5433c29db7b36993,2026-05-08T15:12:29+00:00,false -/concepts/glossary,docs/concepts/glossary.md,concepts/core-concepts/glossary.mdx,https://clickhouse.com/docs/concepts/glossary,https://private-7c7dfe99.mintlify.app/concepts/core-concepts/glossary,matched,a4b542589636426e,true,a4b542589636426e,2026-05-08T20:59:47+00:00,false -/concepts/olap,docs/concepts/olap.md,get-started/about/olap.mdx,https://clickhouse.com/docs/concepts/olap,https://private-7c7dfe99.mintlify.app/get-started/about/olap,matched,20c899ea5bc54fc4,true,2b4c6a1cb3cfce2a,2026-05-08T09:09:20+00:00,false -/concepts/why-clickhouse-is-so-fast,docs/concepts/why-clickhouse-is-so-fast.mdx,get-started/about/why-clickhouse-is-so-fast.mdx,https://clickhouse.com/docs/concepts/why-clickhouse-is-so-fast,https://private-7c7dfe99.mintlify.app/get-started/about/why-clickhouse-is-so-fast,matched,d414f04526e3e8ac,true,d414f04526e3e8ac,2026-05-13T13:16:51+00:00,false -/data-compression/compression-in-clickhouse,docs/data-compression/compression-in-clickhouse.md,guides/cloud-oss/data-modelling/compression/compression-in-clickhouse.mdx,https://clickhouse.com/docs/data-compression/compression-in-clickhouse,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/data-modelling/compression/compression-in-clickhouse,matched,b6b78bcb98be9fdd,true,b6b78bcb98be9fdd,2026-05-08T09:09:20+00:00,false -/data-compression/compression-modes,docs/data-compression/compression-modes.md,guides/cloud-oss/data-modelling/compression/compression-modes.mdx,https://clickhouse.com/docs/data-compression/compression-modes,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/data-modelling/compression/compression-modes,matched,74601704fee4d567,true,74601704fee4d567,2026-05-08T09:09:20+00:00,false -/data-modeling/backfilling,docs/data-modeling/backfilling.md,guides/cloud-oss/data-modelling/backfilling.mdx,https://clickhouse.com/docs/data-modeling/backfilling,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/data-modelling/backfilling,matched,4bd9d1a9edbd3963,true,4bd9d1a9edbd3963,2026-05-09T17:51:26+00:00,false -/data-modeling/denormalization,docs/data-modeling/denormalization.md,guides/cloud-oss/data-modelling/denormalization.mdx,https://clickhouse.com/docs/data-modeling/denormalization,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/data-modelling/denormalization,matched,671e79f9ab1f6888,true,671e79f9ab1f6888,2026-05-08T09:09:20+00:00,false -/data-modeling/overview,docs/data-modeling/index.md,guides/cloud-oss/data-modelling/index.mdx,https://clickhouse.com/docs/data-modeling/overview,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/data-modelling,matched,19e2dcf7061352e4,true,19e2dcf7061352e4,2026-05-13T13:16:51+00:00,false -/data-modeling/projections,docs/data-modeling/projections/1_projections.md,concepts/features/projections/projections.mdx,https://clickhouse.com/docs/data-modeling/projections,https://private-7c7dfe99.mintlify.app/concepts/features/projections/projections,matched,9c09ba6f54347fd8,true,9c09ba6f54347fd8,2026-05-13T15:43:25+00:00,false -/data-modeling/schema-design,docs/data-modeling/schema-design.md,guides/cloud-oss/data-modelling/schema-design.mdx,https://clickhouse.com/docs/data-modeling/schema-design,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/data-modelling/schema-design,matched,144200501b2dfb47,true,144200501b2dfb47,2026-05-08T09:09:20+00:00,false -/deletes/overview,docs/managing-data/deleting-data/overview.mdx,concepts/operations/delete/overview.mdx,https://clickhouse.com/docs/deletes/overview,https://private-7c7dfe99.mintlify.app/concepts/operations/delete/overview,matched,cb8acc35f6ceddc7,true,cb8acc35f6ceddc7,2026-05-19T11:48:22+00:00,false -/deployment-guides/index,docs/deployment-guides/index.md,guides/oss/deployment-and-scaling/index.mdx,https://clickhouse.com/docs/deployment-guides/index,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling,matched,2a6ef70c2c60cf2f,true,2a6ef70c2c60cf2f,2026-05-13T13:16:51+00:00,false +/concepts,docs/concepts/index.md,core/concepts/index.mdx | products/cloud/concepts.mdx,https://clickhouse.com/docs/concepts,,ambiguous,906c00a6ef80e771,true,906c00a6ef80e771,2026-05-08T15:29:53+00:00,false +/core/concepts/faq,docs/faq/index.md,resources/support-center/knowledge-base/general-faqs/faq-index.mdx,https://clickhouse.com/docs/concepts/faq,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/faq-index,matched,5433c29db7b36993,true,5433c29db7b36993,2026-05-08T15:12:29+00:00,false +/core/concepts/glossary,docs/concepts/glossary.md,core/concepts/core-concepts/glossary.mdx,https://clickhouse.com/docs/concepts/glossary,https://private-7c7dfe99.mintlify.app/core/concepts/core-concepts/glossary,matched,a4b542589636426e,true,a4b542589636426e,2026-05-08T20:59:47+00:00,false +/core/concepts/olap,docs/concepts/olap.md,core/get-started/about/olap.mdx,https://clickhouse.com/docs/concepts/olap,https://private-7c7dfe99.mintlify.app/core/get-started/about/olap,matched,20c899ea5bc54fc4,true,2b4c6a1cb3cfce2a,2026-05-08T09:09:20+00:00,false +/core/concepts/why-clickhouse-is-so-fast,docs/concepts/why-clickhouse-is-so-fast.mdx,core/get-started/about/why-clickhouse-is-so-fast.mdx,https://clickhouse.com/docs/concepts/why-clickhouse-is-so-fast,https://private-7c7dfe99.mintlify.app/core/get-started/about/why-clickhouse-is-so-fast,matched,d414f04526e3e8ac,true,d414f04526e3e8ac,2026-05-13T13:16:51+00:00,false +/data-compression/compression-in-clickhouse,docs/data-compression/compression-in-clickhouse.md,core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse.mdx,https://clickhouse.com/docs/data-compression/compression-in-clickhouse,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse,matched,b6b78bcb98be9fdd,true,b6b78bcb98be9fdd,2026-05-08T09:09:20+00:00,false +/data-compression/compression-modes,docs/data-compression/compression-modes.md,core/guides/clickhouse/data-modelling/compression/compression-modes.mdx,https://clickhouse.com/docs/data-compression/compression-modes,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-modelling/compression/compression-modes,matched,74601704fee4d567,true,74601704fee4d567,2026-05-08T09:09:20+00:00,false +/data-modeling/backfilling,docs/data-modeling/backfilling.md,core/guides/clickhouse/data-modelling/backfilling.mdx,https://clickhouse.com/docs/data-modeling/backfilling,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-modelling/backfilling,matched,4bd9d1a9edbd3963,true,4bd9d1a9edbd3963,2026-05-09T17:51:26+00:00,false +/data-modeling/denormalization,docs/data-modeling/denormalization.md,core/guides/clickhouse/data-modelling/denormalization.mdx,https://clickhouse.com/docs/data-modeling/denormalization,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-modelling/denormalization,matched,671e79f9ab1f6888,true,671e79f9ab1f6888,2026-05-08T09:09:20+00:00,false +/data-modeling/overview,docs/data-modeling/index.md,core/guides/clickhouse/data-modelling/index.mdx,https://clickhouse.com/docs/data-modeling/overview,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-modelling/index,matched,19e2dcf7061352e4,true,19e2dcf7061352e4,2026-05-13T13:16:51+00:00,false +/data-modeling/projections,docs/data-modeling/projections/1_projections.md,core/concepts/features/projections/projections.mdx,https://clickhouse.com/docs/data-modeling/projections,https://private-7c7dfe99.mintlify.app/core/concepts/features/projections/projections,matched,9c09ba6f54347fd8,true,9c09ba6f54347fd8,2026-05-13T15:43:25+00:00,false +/data-modeling/schema-design,docs/data-modeling/schema-design.md,core/guides/clickhouse/data-modelling/schema-design.mdx,https://clickhouse.com/docs/data-modeling/schema-design,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-modelling/schema-design,matched,144200501b2dfb47,true,144200501b2dfb47,2026-05-08T09:09:20+00:00,false +/deletes/overview,docs/managing-data/deleting-data/overview.mdx,core/concepts/features/operations/delete/overview.mdx,https://clickhouse.com/docs/deletes/overview,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/delete/overview,matched,cb8acc35f6ceddc7,true,cb8acc35f6ceddc7,2026-05-19T11:48:22+00:00,false +/deployment-guides/index,docs/deployment-guides/index.md,core/guides/oss/deployment-and-scaling/index.mdx,https://clickhouse.com/docs/deployment-guides/index,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/index,matched,2a6ef70c2c60cf2f,true,2a6ef70c2c60cf2f,2026-05-13T13:16:51+00:00,false /deployment-guides/parallel-replicas,docs/deployment-guides/parallel-replicas.mdx,products/cloud/features/infrastructure/parallel-replicas.mdx,https://clickhouse.com/docs/deployment-guides/parallel-replicas,https://private-7c7dfe99.mintlify.app/products/cloud/features/infrastructure/parallel-replicas,matched,18c05d079bdcf8c5,true,18c05d079bdcf8c5,2026-05-08T09:09:20+00:00,false -/deployment-modes,docs/deployment-modes.md,get-started/about/deployment-modes.mdx,https://clickhouse.com/docs/deployment-modes,https://private-7c7dfe99.mintlify.app/get-started/about/deployment-modes,matched,5e24b41fab85372a,true,5e24b41fab85372a,2026-05-08T12:19:52+00:00,false -/development/,docs/development/index.md,resources/contribute/index.mdx,https://clickhouse.com/docs/development/,https://private-7c7dfe99.mintlify.app/resources/contribute,matched,efa5924dc8213c3f,true,efa5924dc8213c3f,2026-05-08T21:00:51+00:00,false -/development/architecture,docs/development/architecture.md,resources/contribute/architecture.mdx,https://clickhouse.com/docs/development/architecture,https://private-7c7dfe99.mintlify.app/resources/contribute/architecture,matched,d71b0cd5b5d05730,true,c096ac52d9f3230f,2026-05-08T09:09:20+00:00,false -/development/backports,docs/development/backports.md,resources/contribute/backports.mdx,https://clickhouse.com/docs/development/backports,https://private-7c7dfe99.mintlify.app/resources/contribute/backports,matched,47cf09bff25b3699,true,47cf09bff25b3699,2026-05-19T11:08:53+00:00,false -/development/build,docs/development/build.md,resources/contribute/build.mdx,https://clickhouse.com/docs/development/build,https://private-7c7dfe99.mintlify.app/resources/contribute/build,matched,ff59f0aafe286aa1,true,dedfb328f44d5208,2026-05-08T15:04:34+00:00,false -/development/build-cross-arm,docs/development/build-cross-arm.md,resources/contribute/build-cross-arm.mdx,https://clickhouse.com/docs/development/build-cross-arm,https://private-7c7dfe99.mintlify.app/resources/contribute/build-cross-arm,matched,1ce08c98e2a33af7,true,f732d015e8ca7a50,2026-05-07T14:49:41+00:00,false -/development/build-cross-loongarch,docs/development/build-cross-loongarch.md,resources/contribute/build-cross-loongarch.mdx,https://clickhouse.com/docs/development/build-cross-loongarch,https://private-7c7dfe99.mintlify.app/resources/contribute/build-cross-loongarch,matched,68515ed0da277632,true,5efd5807ee1bc81d,2026-05-08T09:09:20+00:00,false -/development/build-cross-osx,docs/development/build-cross-osx.md,resources/contribute/build-cross-osx.mdx,https://clickhouse.com/docs/development/build-cross-osx,https://private-7c7dfe99.mintlify.app/resources/contribute/build-cross-osx,matched,43814b2a97b84f2e,true,43814b2a97b84f2e,2026-05-19T11:08:53+00:00,false -/development/build-cross-riscv,docs/development/build-cross-riscv.md,resources/contribute/build-cross-riscv.mdx,https://clickhouse.com/docs/development/build-cross-riscv,https://private-7c7dfe99.mintlify.app/resources/contribute/build-cross-riscv,matched,29acc4865340d1c5,true,d8dd9a58920b1224,2026-05-08T09:09:20+00:00,false -/development/build-cross-s390x,docs/development/build-cross-s390x.md,resources/contribute/build-cross-s390x.mdx,https://clickhouse.com/docs/development/build-cross-s390x,https://private-7c7dfe99.mintlify.app/resources/contribute/build-cross-s390x,matched,37cb33d7f8e51908,true,ffc6e2c25867e919,2026-05-08T09:09:20+00:00,false -/development/build-e2k,docs/development/build-e2k.md,resources/contribute/build-e2k.mdx,https://clickhouse.com/docs/development/build-e2k,https://private-7c7dfe99.mintlify.app/resources/contribute/build-e2k,matched,322a063ed14d9c7f,true,e2020e444d6bbcaf,2026-05-08T09:09:20+00:00,false -/development/build-osx,docs/development/build-osx.md,resources/contribute/build-osx.mdx,https://clickhouse.com/docs/development/build-osx,https://private-7c7dfe99.mintlify.app/resources/contribute/build-osx,matched,fec6e7025f4fc47a,true,fec6e7025f4fc47a,2026-05-19T11:08:53+00:00,false -/development/continuous-integration,docs/development/continuous-integration.md,resources/contribute/continuous-integration.mdx,https://clickhouse.com/docs/development/continuous-integration,https://private-7c7dfe99.mintlify.app/resources/contribute/continuous-integration,matched,3ea19a7a64a6b6cf,true,ab7111e34b68332c,2026-05-08T09:09:20+00:00,false -/development/contrib,docs/development/contrib.md,resources/contribute/contrib.mdx,https://clickhouse.com/docs/development/contrib,https://private-7c7dfe99.mintlify.app/resources/contribute/contrib,matched,4aff3c47bfaf2803,true,c925c5d3c0431c9e,2026-05-08T09:09:20+00:00,false -/development/developer-instruction,docs/development/developer-instruction.md,resources/contribute/developer-instruction.mdx,https://clickhouse.com/docs/development/developer-instruction,https://private-7c7dfe99.mintlify.app/resources/contribute/developer-instruction,matched,da6c5a5aab300f52,true,da6c5a5aab300f52,2026-05-19T11:08:53+00:00,false -/development/integrating_rust_libraries,docs/development/integrating_rust_libraries.md,resources/contribute/integrating-rust-libraries.mdx,https://clickhouse.com/docs/development/integrating_rust_libraries,https://private-7c7dfe99.mintlify.app/resources/contribute/integrating-rust-libraries,matched,9611472a5e657048,true,9611472a5e657048,2026-05-19T11:08:53+00:00,false -/development/style,docs/development/style.md,resources/contribute/style.mdx,https://clickhouse.com/docs/development/style,https://private-7c7dfe99.mintlify.app/resources/contribute/style,matched,3846d38ebd2b09ae,true,3846d38ebd2b09ae,2026-05-19T11:08:53+00:00,false -/development/tests,docs/development/tests.md,resources/contribute/tests.mdx,https://clickhouse.com/docs/development/tests,https://private-7c7dfe99.mintlify.app/resources/contribute/tests,matched,2a6c8a145b56ce5b,true,ed4b0e086de28595,2026-05-08T09:09:20+00:00,false -/dictionary,docs/dictionary/index.md,concepts/features/dictionaries/index.mdx,https://clickhouse.com/docs/dictionary,https://private-7c7dfe99.mintlify.app/concepts/features/dictionaries,matched,196c272644d94036,true,196c272644d94036,2026-05-08T09:09:20+00:00,false -/dictionary/best-practices,docs/dictionary/best-practices.md,concepts/features/dictionaries/best-practices.mdx,https://clickhouse.com/docs/dictionary/best-practices,https://private-7c7dfe99.mintlify.app/concepts/features/dictionaries/best-practices,matched,eb8869fd12ff9f32,true,9c1fbd282c73c2ab,2026-05-07T14:49:41+00:00,false -/engines,docs/engines/index.md,reference/index.mdx | reference/engines/engines.mdx,https://clickhouse.com/docs/engines,,ambiguous,430792450e0e2470,true,430792450e0e2470,2026-05-19T11:48:22+00:00,false -/engines/database-engines/,docs/engines/database-engines/index.md,reference/engines/database-engines/index.mdx,https://clickhouse.com/docs/engines/database-engines/,https://private-7c7dfe99.mintlify.app/reference/engines/database-engines,matched,ef7d22cc4d26fc3f,true,ef7d22cc4d26fc3f,2026-05-19T11:08:53+00:00,false -/engines/database-engines/atomic,docs/engines/database-engines/atomic.md,reference/engines/database-engines/atomic.mdx,https://clickhouse.com/docs/engines/database-engines/atomic,https://private-7c7dfe99.mintlify.app/reference/engines/database-engines/atomic,matched,da03ef9fd175695f,true,b3a0a7a9c4f2e4c5,2026-05-08T09:09:20+00:00,false -/engines/database-engines/backup,docs/engines/database-engines/backup.md,reference/engines/database-engines/backup.mdx,https://clickhouse.com/docs/engines/database-engines/backup,https://private-7c7dfe99.mintlify.app/reference/engines/database-engines/backup,matched,84bc965234cff573,true,ba093f0bb10f862c,2026-05-07T14:49:41+00:00,false -/engines/database-engines/datalakecatalog,docs/engines/database-engines/datalake.md,reference/engines/database-engines/datalake.mdx,https://clickhouse.com/docs/engines/database-engines/datalakecatalog,https://private-7c7dfe99.mintlify.app/reference/engines/database-engines/datalake,matched,f1f3e3fde3b9ea7a,true,480b7e169ea63bdf,2026-05-07T14:49:41+00:00,false -/engines/database-engines/materialized-postgresql,docs/engines/database-engines/materialized-postgresql.md,reference/engines/database-engines/materialized-postgresql.mdx,https://clickhouse.com/docs/engines/database-engines/materialized-postgresql,https://private-7c7dfe99.mintlify.app/reference/engines/database-engines/materialized-postgresql,matched,ed2621c01542cd6c,true,ed2621c01542cd6c,2026-05-08T09:09:20+00:00,false -/engines/database-engines/mysql,docs/engines/database-engines/mysql.md,reference/engines/database-engines/mysql.mdx,https://clickhouse.com/docs/engines/database-engines/mysql,https://private-7c7dfe99.mintlify.app/reference/engines/database-engines/mysql,matched,f78ef201b8464bb6,true,f78ef201b8464bb6,2026-05-08T09:09:20+00:00,false -/engines/database-engines/postgresql,docs/engines/database-engines/postgresql.md,reference/engines/database-engines/postgresql.mdx,https://clickhouse.com/docs/engines/database-engines/postgresql,https://private-7c7dfe99.mintlify.app/reference/engines/database-engines/postgresql,matched,ea606b8fc32dc4d2,true,b4c584ccbf84daf8,2026-05-07T14:49:41+00:00,false -/engines/database-engines/replicated,docs/engines/database-engines/replicated.md,reference/engines/database-engines/replicated.mdx,https://clickhouse.com/docs/engines/database-engines/replicated,https://private-7c7dfe99.mintlify.app/reference/engines/database-engines/replicated,matched,d31fecb5d94082da,true,d31fecb5d94082da,2026-05-19T11:08:53+00:00,false -/engines/database-engines/shared,docs/engines/database-engines/shared.md,reference/engines/database-engines/shared.mdx,https://clickhouse.com/docs/engines/database-engines/shared,https://private-7c7dfe99.mintlify.app/reference/engines/database-engines/shared,matched,658a06aa55917c46,true,658a06aa55917c46,2026-05-08T09:09:20+00:00,false -/engines/database-engines/sqlite,docs/engines/database-engines/sqlite.md,reference/engines/database-engines/sqlite.mdx,https://clickhouse.com/docs/engines/database-engines/sqlite,https://private-7c7dfe99.mintlify.app/reference/engines/database-engines/sqlite,matched,69743c08b181ef87,true,2d389211d0f5d36a,2026-05-07T14:49:41+00:00,false -/engines/table-engines/,docs/engines/table-engines/index.md,reference/engines/table-engines/index.mdx,https://clickhouse.com/docs/engines/table-engines/,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines,matched,be0c6e92edd31909,true,be0c6e92edd31909,2026-05-19T11:08:53+00:00,false -/engines/table-engines/integrations/,docs/engines/table-engines/integrations/index.md,reference/engines/table-engines/integrations/index.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations,matched,182e2a9a7b1c73d5,true,182e2a9a7b1c73d5,2026-05-19T11:08:53+00:00,false -/engines/table-engines/integrations/ExternalDistributed,docs/engines/table-engines/integrations/ExternalDistributed.md,reference/engines/table-engines/integrations/ExternalDistributed.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/ExternalDistributed,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/ExternalDistributed,matched,0c4f69e6d6e393f7,true,1cdbef1a85ce5ee8,2026-05-09T09:39:38+00:00,false -/engines/table-engines/integrations/arrowflight,docs/engines/table-engines/integrations/arrowflight.md,reference/engines/table-engines/integrations/arrowflight.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/arrowflight,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/arrowflight,matched,643d2d6307abae7c,true,5d542d21d2aeff74,2026-05-07T14:49:41+00:00,false -/engines/table-engines/integrations/azure-queue,docs/engines/table-engines/integrations/azure-queue.md,reference/engines/table-engines/integrations/azure-queue.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/azure-queue,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/azure-queue,matched,46bce34c84b9f8a2,true,5e0eeeeaa692b51f,2026-05-09T09:39:38+00:00,false -/engines/table-engines/integrations/azureBlobStorage,docs/engines/table-engines/integrations/azureBlobStorage.md,reference/engines/table-engines/integrations/azureBlobStorage.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/azureBlobStorage,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/azureBlobStorage,matched,9eb4aa7b055170c1,true,50e422154e7d9340,2026-05-08T13:01:57+00:00,false -/engines/table-engines/integrations/deltalake,docs/engines/table-engines/integrations/deltalake.md,reference/engines/table-engines/integrations/deltalake.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/deltalake,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/deltalake,matched,b8b8fa26d495fc42,true,b8b8fa26d495fc42,2026-05-08T09:09:20+00:00,false -/engines/table-engines/integrations/embedded-rocksdb,docs/engines/table-engines/integrations/embedded-rocksdb.md,reference/engines/table-engines/integrations/embedded-rocksdb.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/embedded-rocksdb,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/embedded-rocksdb,matched,3106e22f04396e24,true,3106e22f04396e24,2026-05-08T09:09:20+00:00,false -/engines/table-engines/integrations/hdfs,docs/engines/table-engines/integrations/hdfs.md,reference/engines/table-engines/integrations/hdfs.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/hdfs,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/hdfs,matched,6d8963200cc850f4,true,6d8963200cc850f4,2026-05-09T11:14:51+00:00,false -/engines/table-engines/integrations/hive,docs/engines/table-engines/integrations/hive.md,reference/engines/table-engines/integrations/hive.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/hive,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/hive,matched,1bd7f94ef79ae4a2,true,1bd7f94ef79ae4a2,2026-05-08T09:09:20+00:00,false -/engines/table-engines/integrations/hudi,docs/engines/table-engines/integrations/hudi.md,reference/engines/table-engines/integrations/hudi.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/hudi,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/hudi,matched,465448998115f31c,true,51667b6a4e3d68fa,2026-05-07T14:49:41+00:00,false -/engines/table-engines/integrations/iceberg,docs/engines/table-engines/integrations/iceberg.md,reference/engines/table-engines/integrations/iceberg.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/iceberg,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/iceberg,matched,b2398db6ad12ecc8,true,b2398db6ad12ecc8,2026-05-19T11:08:53+00:00,false -/engines/table-engines/integrations/jdbc,docs/engines/table-engines/integrations/jdbc.md,reference/engines/table-engines/integrations/jdbc.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/jdbc,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/jdbc,matched,665e7928e61709a3,true,665e7928e61709a3,2026-05-08T09:51:10+00:00,false -/engines/table-engines/integrations/kafka,docs/engines/table-engines/integrations/kafka.md,reference/engines/table-engines/integrations/kafka.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/kafka,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/kafka,matched,42b346c1b1df5b6d,true,42b346c1b1df5b6d,2026-05-19T11:08:53+00:00,false -/engines/table-engines/integrations/materialized-postgresql,docs/engines/table-engines/integrations/materialized-postgresql.md,reference/engines/table-engines/integrations/materialized-postgresql.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/materialized-postgresql,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/materialized-postgresql,matched,874433a820ac2a17,true,874433a820ac2a17,2026-05-08T09:09:20+00:00,false -/engines/table-engines/integrations/mongodb,docs/engines/table-engines/integrations/mongodb.md,reference/engines/table-engines/integrations/mongodb.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/mongodb,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/mongodb,matched,efa4dbb935d8f6c7,true,efa4dbb935d8f6c7,2026-05-19T11:08:53+00:00,false -/engines/table-engines/integrations/mysql,docs/engines/table-engines/integrations/mysql.md,reference/engines/table-engines/integrations/mysql.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/mysql,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/mysql,matched,66b376663e767faa,true,4d4563d868c683fc,2026-05-07T14:49:41+00:00,false -/engines/table-engines/integrations/nats,docs/engines/table-engines/integrations/nats.md,reference/engines/table-engines/integrations/nats.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/nats,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/nats,matched,223ce4ae7fe14aa4,true,223ce4ae7fe14aa4,2026-05-19T11:08:53+00:00,false -/engines/table-engines/integrations/odbc,docs/engines/table-engines/integrations/odbc.md,reference/engines/table-engines/integrations/odbc.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/odbc,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/odbc,matched,5c02dfc903a8407f,true,5c02dfc903a8407f,2026-05-13T14:23:03+00:00,false -/engines/table-engines/integrations/paimon,docs/engines/table-engines/integrations/paimon.md,reference/engines/table-engines/integrations/paimon.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/paimon,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/paimon,matched,50b2d2d9a6939a1a,true,50b2d2d9a6939a1a,2026-05-19T11:08:53+00:00,false -/engines/table-engines/integrations/postgresql,docs/engines/table-engines/integrations/postgresql.md,reference/engines/table-engines/integrations/postgresql.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/postgresql,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/postgresql,matched,9e4b331dbe864202,true,9e4b331dbe864202,2026-05-19T11:08:53+00:00,false -/engines/table-engines/integrations/rabbitmq,docs/engines/table-engines/integrations/rabbitmq.md,reference/engines/table-engines/integrations/rabbitmq.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/rabbitmq,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/rabbitmq,matched,909f012134983d94,true,e46974cd333ca66c,2026-05-08T13:01:57+00:00,false -/engines/table-engines/integrations/redis,docs/engines/table-engines/integrations/redis.md,reference/engines/table-engines/integrations/redis.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/redis,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/redis,matched,3b3cde6d7bb7a428,true,3b3cde6d7bb7a428,2026-05-19T11:08:53+00:00,false -/engines/table-engines/integrations/s3,docs/engines/table-engines/integrations/s3.md,reference/engines/table-engines/integrations/s3.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/s3,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/s3,matched,ea0601c4d7ab68dd,true,d9f34d3172ce3120,2026-05-13T15:43:30+00:00,false -/engines/table-engines/integrations/s3queue,docs/engines/table-engines/integrations/s3queue.md,reference/engines/table-engines/integrations/s3queue.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/s3queue,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/s3queue,matched,2c4f536280177413,true,2c4f536280177413,2026-05-09T09:39:38+00:00,false -/engines/table-engines/integrations/sqlite,docs/engines/table-engines/integrations/sqlite.md,reference/engines/table-engines/integrations/sqlite.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/sqlite,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/sqlite,matched,7c57bc57ee3573e4,true,7c57bc57ee3573e4,2026-05-09T09:39:38+00:00,false -/engines/table-engines/integrations/ytsaurus,docs/engines/table-engines/integrations/ytsaurus.md,reference/engines/table-engines/integrations/ytsaurus.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/ytsaurus,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/ytsaurus,matched,8b424c806172df36,true,8b424c806172df36,2026-05-08T09:09:20+00:00,false -/engines/table-engines/log-family/,docs/engines/table-engines/log-family/index.md,reference/engines/table-engines/log-family/index.mdx,https://clickhouse.com/docs/engines/table-engines/log-family/,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/log-family,matched,526635ff55be8133,true,526635ff55be8133,2026-05-08T09:09:20+00:00,false -/engines/table-engines/log-family/log,docs/engines/table-engines/log-family/log.md,reference/engines/table-engines/log-family/log.mdx,https://clickhouse.com/docs/engines/table-engines/log-family/log,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/log-family/log,matched,589fc5521d34b691,true,589fc5521d34b691,2026-05-08T09:09:20+00:00,false -/engines/table-engines/log-family/stripelog,docs/engines/table-engines/log-family/stripelog.md,reference/engines/table-engines/log-family/stripelog.mdx,https://clickhouse.com/docs/engines/table-engines/log-family/stripelog,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/log-family/stripelog,matched,85317ab67c211854,true,85317ab67c211854,2026-05-08T09:09:20+00:00,false -/engines/table-engines/log-family/tinylog,docs/engines/table-engines/log-family/tinylog.md,reference/engines/table-engines/log-family/tinylog.mdx,https://clickhouse.com/docs/engines/table-engines/log-family/tinylog,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/log-family/tinylog,matched,6aca92cecd7097cb,true,6aca92cecd7097cb,2026-05-08T09:09:20+00:00,false -/engines/table-engines/mergetree-family/,docs/engines/table-engines/mergetree-family/index.md,reference/engines/table-engines/mergetree-family/index.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family,matched,ad8165aa1c3ca613,true,ad8165aa1c3ca613,2026-05-19T11:08:53+00:00,false -/engines/table-engines/mergetree-family/aggregatingmergetree,docs/engines/table-engines/mergetree-family/aggregatingmergetree.md,reference/engines/table-engines/mergetree-family/aggregatingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/aggregatingmergetree,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/aggregatingmergetree,matched,5bbad8545fadef5d,true,c00fec44d98d20ec,2026-05-08T12:19:52+00:00,false -/engines/table-engines/mergetree-family/annindexes,docs/engines/table-engines/mergetree-family/annindexes.md,reference/engines/table-engines/mergetree-family/annindexes.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/annindexes,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/annindexes,matched,c6f8bbc4eb012454,true,c6f8bbc4eb012454,2026-05-19T11:08:53+00:00,false -/engines/table-engines/mergetree-family/coalescingmergetree,docs/engines/table-engines/mergetree-family/coalescingmergetree.md,reference/engines/table-engines/mergetree-family/coalescingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/coalescingmergetree,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/coalescingmergetree,matched,e4282522f2b88cd1,true,f14b1307c493266d,2026-05-08T09:09:20+00:00,false -/engines/table-engines/mergetree-family/collapsingmergetree,docs/engines/table-engines/mergetree-family/collapsingmergetree.md,reference/engines/table-engines/mergetree-family/collapsingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/collapsingmergetree,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/collapsingmergetree,matched,b4c154dcf1aa53bf,true,cca901fd78a63bb4,2026-05-08T09:09:20+00:00,false -/engines/table-engines/mergetree-family/custom-partitioning-key,docs/engines/table-engines/mergetree-family/custom-partitioning-key.md,reference/engines/table-engines/mergetree-family/custom-partitioning-key.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/custom-partitioning-key,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/custom-partitioning-key,matched,e1465cd2777f9d7a,true,e1465cd2777f9d7a,2026-05-19T11:08:53+00:00,false -/engines/table-engines/mergetree-family/graphitemergetree,docs/engines/table-engines/mergetree-family/graphitemergetree.md,reference/engines/table-engines/mergetree-family/graphitemergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/graphitemergetree,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/graphitemergetree,matched,e14e6f9370ea584c,true,9c431dd0d8265db2,2026-05-08T09:09:20+00:00,false -/engines/table-engines/mergetree-family/mergetree,docs/engines/table-engines/mergetree-family/mergetree.md,reference/engines/table-engines/mergetree-family/mergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/mergetree,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/mergetree,matched,6a86924ac725350a,true,6a86924ac725350a,2026-05-19T11:08:53+00:00,false -/engines/table-engines/mergetree-family/replacingmergetree,docs/engines/table-engines/mergetree-family/replacingmergetree.md,reference/engines/table-engines/mergetree-family/replacingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/replacingmergetree,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/replacingmergetree,matched,ecec03c9132f87db,true,ced484d2a382f865,2026-05-08T09:09:20+00:00,false -/engines/table-engines/mergetree-family/replication,docs/engines/table-engines/mergetree-family/replication.md,reference/engines/table-engines/mergetree-family/replication.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/replication,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/replication,matched,99530f32e611a580,true,3b16d689fbde73f9,2026-05-08T09:09:20+00:00,false -/engines/table-engines/mergetree-family/summingmergetree,docs/engines/table-engines/mergetree-family/summingmergetree.md,reference/engines/table-engines/mergetree-family/summingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/summingmergetree,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/summingmergetree,matched,05624c049881b4a7,true,987b8b83f4fb4b6c,2026-05-08T09:09:20+00:00,false -/engines/table-engines/mergetree-family/textindexes,docs/engines/table-engines/mergetree-family/textindexes.md,reference/engines/table-engines/mergetree-family/textindexes.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/textindexes,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/textindexes,matched,d118d93f71227b40,true,d118d93f71227b40,2026-05-19T11:08:53+00:00,false -/engines/table-engines/mergetree-family/versionedcollapsingmergetree,docs/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md,reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/versionedcollapsingmergetree,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree,matched,2e1d47be7e9be686,true,5172acba2103f957,2026-05-08T09:09:20+00:00,false -/engines/table-engines/special/,docs/engines/table-engines/special/index.md,reference/engines/table-engines/special/index.mdx,https://clickhouse.com/docs/engines/table-engines/special/,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special,matched,851e551dcf4c3b6c,true,2020a467b74c2031,2026-05-09T09:39:38+00:00,false -/engines/table-engines/special/alias,docs/engines/table-engines/special/alias.md,reference/engines/table-engines/special/alias.mdx,https://clickhouse.com/docs/engines/table-engines/special/alias,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/alias,matched,1207ea39bd43915c,true,1207ea39bd43915c,2026-05-08T09:09:20+00:00,false -/engines/table-engines/special/buffer,docs/engines/table-engines/special/buffer.md,reference/engines/table-engines/special/buffer.mdx,https://clickhouse.com/docs/engines/table-engines/special/buffer,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/buffer,matched,6e0aed541f48f9f7,true,4e8ed6a1feb2aa52,2026-05-08T09:09:20+00:00,false -/engines/table-engines/special/dictionary,docs/engines/table-engines/special/dictionary.md,reference/engines/table-engines/special/dictionary.mdx,https://clickhouse.com/docs/engines/table-engines/special/dictionary,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/dictionary,matched,7630e3f4daa5ef75,true,78aff0314982d70b,2026-05-07T14:49:41+00:00,false -/engines/table-engines/special/distributed,docs/engines/table-engines/special/distributed.md,reference/engines/table-engines/special/distributed.mdx,https://clickhouse.com/docs/engines/table-engines/special/distributed,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/distributed,matched,36792e30ad2101ea,true,144e0319e32e38db,2026-05-09T10:26:02+00:00,false -/engines/table-engines/special/executable,docs/engines/table-engines/special/executable.md,reference/engines/table-engines/special/executable.mdx,https://clickhouse.com/docs/engines/table-engines/special/executable,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/executable,matched,6b39916c1f6415cb,true,abf73ca14dd6fa74,2026-05-07T14:49:41+00:00,false -/engines/table-engines/special/external-data,docs/engines/table-engines/special/external-data.md,reference/engines/table-engines/special/external-data.mdx,https://clickhouse.com/docs/engines/table-engines/special/external-data,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/external-data,matched,889f3532c3ed2b16,true,b8b48f150dd2033f,2026-05-07T14:49:41+00:00,false -/engines/table-engines/special/file,docs/engines/table-engines/special/file.md,reference/engines/table-engines/special/file.mdx,https://clickhouse.com/docs/engines/table-engines/special/file,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/file,matched,8b6800a2b82d8cb0,true,e0c19959bdee8150,2026-05-08T13:01:57+00:00,false -/engines/table-engines/special/filelog,docs/engines/table-engines/special/filelog.md,reference/engines/table-engines/special/filelog.mdx,https://clickhouse.com/docs/engines/table-engines/special/filelog,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/filelog,matched,f69e9de5904cce4e,true,f69e9de5904cce4e,2026-05-19T11:08:53+00:00,false -/engines/table-engines/special/generate,docs/engines/table-engines/special/generate.md,reference/engines/table-engines/special/generate.mdx,https://clickhouse.com/docs/engines/table-engines/special/generate,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/generate,matched,f873ecfa15f84ef7,true,848b4e2ed1094aee,2026-05-07T14:49:41+00:00,false -/engines/table-engines/special/join,docs/engines/table-engines/special/join.md,reference/engines/table-engines/special/join.mdx,https://clickhouse.com/docs/engines/table-engines/special/join,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/join,matched,6f56e6e14a899c72,true,3c0a49ce0175e9ff,2026-05-08T09:09:20+00:00,false -/engines/table-engines/special/keeper-map,docs/engines/table-engines/special/keepermap.md,reference/engines/table-engines/special/keepermap.mdx,https://clickhouse.com/docs/engines/table-engines/special/keeper-map,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/keepermap,matched,ac19941642bf389b,true,ad02c360d5787e1c,2026-05-07T14:49:41+00:00,false -/engines/table-engines/special/memory,docs/engines/table-engines/special/memory.md,reference/engines/table-engines/special/memory.mdx,https://clickhouse.com/docs/engines/table-engines/special/memory,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/memory,matched,4b2e8682c62ea55a,true,dbd1ac438ab55afc,2026-05-08T09:09:20+00:00,false -/engines/table-engines/special/merge,docs/engines/table-engines/special/merge.md,reference/engines/table-engines/special/merge.mdx,https://clickhouse.com/docs/engines/table-engines/special/merge,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/merge,matched,bb88ebe93c4cca8b,true,f3fd1aa8bafa81bb,2026-05-09T09:39:38+00:00,false -/engines/table-engines/special/null,docs/engines/table-engines/special/null.md,reference/engines/table-engines/special/null.mdx,https://clickhouse.com/docs/engines/table-engines/special/null,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/null,matched,d0711da176d30a5d,true,32a464d65d3033a6,2026-05-07T14:49:41+00:00,false -/engines/table-engines/special/set,docs/engines/table-engines/special/set.md,reference/engines/table-engines/special/set.mdx,https://clickhouse.com/docs/engines/table-engines/special/set,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/set,matched,cd61da9acac6ea74,true,558092fa5958f7bf,2026-05-08T09:09:20+00:00,false -/engines/table-engines/special/time_series,docs/engines/table-engines/integrations/time-series.md,reference/engines/table-engines/integrations/time-series.mdx,https://clickhouse.com/docs/engines/table-engines/special/time_series,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/integrations/time-series,matched,c58648934ce9b098,true,c58648934ce9b098,2026-05-08T09:09:20+00:00,false -/engines/table-engines/special/url,docs/engines/table-engines/special/url.md,reference/engines/table-engines/special/url.mdx,https://clickhouse.com/docs/engines/table-engines/special/url,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/url,matched,2270feda9fd8ceb8,true,bc920ce850144c47,2026-05-08T13:01:57+00:00,false -/engines/table-engines/special/view,docs/engines/table-engines/special/view.md,reference/engines/table-engines/special/view.mdx,https://clickhouse.com/docs/engines/table-engines/special/view,https://private-7c7dfe99.mintlify.app/reference/engines/table-engines/special/view,matched,26d10a8766db167b,true,547949490f707e9c,2026-05-07T14:49:41+00:00,false -/engines/table-functions/executable,docs/sql-reference/table-functions/executable.md,reference/functions/table-functions/executable.mdx,https://clickhouse.com/docs/engines/table-functions/executable,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/executable,matched,33da0a1ab05b92af,true,33da0a1ab05b92af,2026-05-19T11:08:53+00:00,false -/examples/aggregate-function-combinators/anyIf,docs/guides/examples/aggregate_function_combinators/anyIf.md,guides/cloud-oss/examples/aggregate-function-combinators/anyIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/anyIf,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/anyIf,matched,c593e9d899ed3bc0,true,c593e9d899ed3bc0,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/argMaxIf,docs/guides/examples/aggregate_function_combinators/argMaxIf.md,guides/cloud-oss/examples/aggregate-function-combinators/argMaxIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/argMaxIf,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/argMaxIf,matched,29203dd56fb1e4f2,true,29203dd56fb1e4f2,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/argMinIf,docs/guides/examples/aggregate_function_combinators/argMinIf.md,guides/cloud-oss/examples/aggregate-function-combinators/argMinIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/argMinIf,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/argMinIf,matched,c7225256364f35ed,true,c7225256364f35ed,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/avgIf,docs/guides/examples/aggregate_function_combinators/avgIf.md,guides/cloud-oss/examples/aggregate-function-combinators/avgIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgIf,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/avgIf,matched,7b33a5e55a1dd2d5,true,7b33a5e55a1dd2d5,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/avgMap,docs/guides/examples/aggregate_function_combinators/avgMap.md,guides/cloud-oss/examples/aggregate-function-combinators/avgMap.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgMap,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/avgMap,matched,dada380bcbe5f507,true,dada380bcbe5f507,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/avgMerge,docs/guides/examples/aggregate_function_combinators/avgMerge.md,guides/cloud-oss/examples/aggregate-function-combinators/avgMerge.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgMerge,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/avgMerge,matched,97d240cb9c6a47fb,true,97d240cb9c6a47fb,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/avgMergeState,docs/guides/examples/aggregate_function_combinators/avgMergeState.md,guides/cloud-oss/examples/aggregate-function-combinators/avgMergeState.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgMergeState,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/avgMergeState,matched,49a5dd5634212d81,true,49a5dd5634212d81,2026-05-08T09:09:20+00:00,false -/examples/aggregate-function-combinators/avgResample,docs/guides/examples/aggregate_function_combinators/avgResample.md,guides/cloud-oss/examples/aggregate-function-combinators/avgResample.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgResample,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/avgResample,matched,d7c5d1189ff502af,true,d7c5d1189ff502af,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/avgState,docs/guides/examples/aggregate_function_combinators/avgState.md,guides/cloud-oss/examples/aggregate-function-combinators/avgState.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgState,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/avgState,matched,956473ff45434571,true,956473ff45434571,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/countIf,docs/guides/examples/aggregate_function_combinators/countIf.md,guides/cloud-oss/examples/aggregate-function-combinators/countIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/countIf,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/countIf,matched,a36d54dfacfe290d,true,a36d54dfacfe290d,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/countResample,docs/guides/examples/aggregate_function_combinators/countResample.md,guides/cloud-oss/examples/aggregate-function-combinators/countResample.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/countResample,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/countResample,matched,1a8b6a09c33b5066,true,1a8b6a09c33b5066,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/groupArrayDistinct,docs/guides/examples/aggregate_function_combinators/groupArrayDistinct.md,guides/cloud-oss/examples/aggregate-function-combinators/groupArrayDistinct.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/groupArrayDistinct,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/groupArrayDistinct,matched,2fe25556dc9281a7,true,2fe25556dc9281a7,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/groupArrayResample,docs/guides/examples/aggregate_function_combinators/groupArrayResample.md,guides/cloud-oss/examples/aggregate-function-combinators/groupArrayResample.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/groupArrayResample,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/groupArrayResample,matched,2ec91e4d5b4c22e5,true,2ec91e4d5b4c22e5,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/maxMap,docs/guides/examples/aggregate_function_combinators/maxMap.md,guides/cloud-oss/examples/aggregate-function-combinators/maxMap.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/maxMap,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/maxMap,matched,4b4420282f1b88dc,true,4b4420282f1b88dc,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/maxSimpleState,docs/guides/examples/aggregate_function_combinators/maxSimpleState.md,guides/cloud-oss/examples/aggregate-function-combinators/maxSimpleState.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/maxSimpleState,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/maxSimpleState,matched,4fafce0af6e89cec,true,4fafce0af6e89cec,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/minMap,docs/guides/examples/aggregate_function_combinators/minMap.md,guides/cloud-oss/examples/aggregate-function-combinators/minMap.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/minMap,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/minMap,matched,00e7d796923804fb,true,00e7d796923804fb,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/minSimpleState,docs/guides/examples/aggregate_function_combinators/minSimpleState.md,guides/cloud-oss/examples/aggregate-function-combinators/minSimpleState.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/minSimpleState,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/minSimpleState,matched,dd77ecfb91bdfb41,true,dd77ecfb91bdfb41,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/quantilesTimingArrayIf,docs/guides/examples/aggregate_function_combinators/quantilesTimingArrayIf.md,guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingArrayIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/quantilesTimingArrayIf,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingArrayIf,matched,f5c1d436a3a4b96d,true,f5c1d436a3a4b96d,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/quantilesTimingIf,docs/guides/examples/aggregate_function_combinators/quantilesTimingIf.md,guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/quantilesTimingIf,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingIf,matched,12680cbf375da7a9,true,12680cbf375da7a9,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/sumArray,docs/guides/examples/aggregate_function_combinators/sumArray.md,guides/cloud-oss/examples/aggregate-function-combinators/sumArray.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/sumArray,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/sumArray,matched,aefd3e2e4730ab00,true,aefd3e2e4730ab00,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/sumForEach,docs/guides/examples/aggregate_function_combinators/sumForEach.md,guides/cloud-oss/examples/aggregate-function-combinators/sumForEach.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/sumForEach,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/sumForEach,matched,b5cae9a8d951d7f4,true,b5cae9a8d951d7f4,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/sumIf,docs/guides/examples/aggregate_function_combinators/sumIf.md,guides/cloud-oss/examples/aggregate-function-combinators/sumIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/sumIf,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/sumIf,matched,ab50102445cb5730,true,ab50102445cb5730,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/sumMap,docs/guides/examples/aggregate_function_combinators/sumMap.md,guides/cloud-oss/examples/aggregate-function-combinators/sumMap.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/sumMap,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/sumMap,matched,656029100848c0ee,true,656029100848c0ee,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/sumSimpleState,docs/guides/examples/aggregate_function_combinators/sumSimpleState.md,guides/cloud-oss/examples/aggregate-function-combinators/sumSimpleState.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/sumSimpleState,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/sumSimpleState,matched,b2291bf2e66fed01,true,b2291bf2e66fed01,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/uniqArray,docs/guides/examples/aggregate_function_combinators/uniqArray.md,guides/cloud-oss/examples/aggregate-function-combinators/uniqArray.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/uniqArray,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/uniqArray,matched,ee4d09293b2b41b0,true,ee4d09293b2b41b0,2026-05-13T13:16:51+00:00,false -/examples/aggregate-function-combinators/uniqArrayIf,docs/guides/examples/aggregate_function_combinators/uniqArrayIf.md,guides/cloud-oss/examples/aggregate-function-combinators/uniqArrayIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/uniqArrayIf,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/examples/aggregate-function-combinators/uniqArrayIf,matched,18b41d734423bdea,true,18b41d734423bdea,2026-05-13T13:16:51+00:00,false -/faq/general/,docs/faq/general/index.md,resources/support-center/knowledge-base/general-faqs/index.mdx,https://clickhouse.com/docs/faq/general/,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs,matched,e71767509dda8cf2,true,970aec8e4fdbc1cf,2026-05-08T15:12:29+00:00,false +/deployment-modes,docs/deployment-modes.md,core/get-started/about/deployment-modes.mdx,https://clickhouse.com/docs/deployment-modes,https://private-7c7dfe99.mintlify.app/core/get-started/about/deployment-modes,matched,5e24b41fab85372a,true,5e24b41fab85372a,2026-05-08T12:19:52+00:00,false +/development/,docs/development/index.md,resources/develop-contribute/index.mdx,https://clickhouse.com/docs/development/,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/index,matched,efa5924dc8213c3f,true,efa5924dc8213c3f,2026-05-21T07:18:55+00:00,false +/development/architecture,docs/development/architecture.md,resources/develop-contribute/introduction/architecture.mdx,https://clickhouse.com/docs/development/architecture,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/introduction/architecture,matched,d71b0cd5b5d05730,true,c096ac52d9f3230f,2026-05-08T09:09:20+00:00,false +/development/backports,docs/development/backports.md,resources/develop-contribute/contribute/backports.mdx,https://clickhouse.com/docs/development/backports,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/contribute/backports,matched,47cf09bff25b3699,true,47cf09bff25b3699,2026-05-19T11:08:53+00:00,false +/development/build,docs/development/build.md,resources/develop-contribute/build/build.mdx,https://clickhouse.com/docs/development/build,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/build/build,matched,ff59f0aafe286aa1,true,dedfb328f44d5208,2026-05-08T15:04:34+00:00,false +/development/build-cross-arm,docs/development/build-cross-arm.md,resources/develop-contribute/build/build-cross-arm.mdx,https://clickhouse.com/docs/development/build-cross-arm,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/build/build-cross-arm,matched,1ce08c98e2a33af7,true,f732d015e8ca7a50,2026-05-07T14:49:41+00:00,false +/development/build-cross-loongarch,docs/development/build-cross-loongarch.md,resources/develop-contribute/build/build-cross-loongarch.mdx,https://clickhouse.com/docs/development/build-cross-loongarch,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/build/build-cross-loongarch,matched,68515ed0da277632,true,5efd5807ee1bc81d,2026-05-08T09:09:20+00:00,false +/development/build-cross-osx,docs/development/build-cross-osx.md,resources/develop-contribute/build/build-cross-osx.mdx,https://clickhouse.com/docs/development/build-cross-osx,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/build/build-cross-osx,matched,43814b2a97b84f2e,true,43814b2a97b84f2e,2026-05-21T07:18:56+00:00,false +/development/build-cross-riscv,docs/development/build-cross-riscv.md,resources/develop-contribute/build/build-cross-riscv.mdx,https://clickhouse.com/docs/development/build-cross-riscv,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/build/build-cross-riscv,matched,29acc4865340d1c5,true,d8dd9a58920b1224,2026-05-08T09:09:20+00:00,false +/development/build-cross-s390x,docs/development/build-cross-s390x.md,resources/develop-contribute/build/build-cross-s390x.mdx,https://clickhouse.com/docs/development/build-cross-s390x,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/build/build-cross-s390x,matched,37cb33d7f8e51908,true,37cb33d7f8e51908,2026-05-21T07:18:56+00:00,false +/development/build-e2k,docs/development/build-e2k.md,resources/develop-contribute/build/build-e2k.mdx,https://clickhouse.com/docs/development/build-e2k,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/build/build-e2k,matched,322a063ed14d9c7f,true,e2020e444d6bbcaf,2026-05-08T09:09:20+00:00,false +/development/build-osx,docs/development/build-osx.md,resources/develop-contribute/build/build-osx.mdx,https://clickhouse.com/docs/development/build-osx,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/build/build-osx,matched,fec6e7025f4fc47a,true,fec6e7025f4fc47a,2026-05-19T11:08:53+00:00,false +/development/continuous-integration,docs/development/continuous-integration.md,resources/develop-contribute/contribute/continuous-integration.mdx,https://clickhouse.com/docs/development/continuous-integration,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/contribute/continuous-integration,matched,3ea19a7a64a6b6cf,true,3ea19a7a64a6b6cf,2026-05-21T07:18:56+00:00,false +/development/contrib,docs/development/contrib.md,resources/develop-contribute/contribute/contrib.mdx,https://clickhouse.com/docs/development/contrib,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/contribute/contrib,matched,4aff3c47bfaf2803,true,c925c5d3c0431c9e,2026-05-08T09:09:20+00:00,false +/development/developer-instruction,docs/development/developer-instruction.md,resources/develop-contribute/introduction/developer-instruction.mdx,https://clickhouse.com/docs/development/developer-instruction,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/introduction/developer-instruction,matched,da6c5a5aab300f52,true,da6c5a5aab300f52,2026-05-21T07:18:55+00:00,false +/development/integrating_rust_libraries,docs/development/integrating_rust_libraries.md,resources/develop-contribute/contribute/integrating-rust-libraries.mdx,https://clickhouse.com/docs/development/integrating_rust_libraries,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/contribute/integrating-rust-libraries,matched,9611472a5e657048,true,9611472a5e657048,2026-05-19T11:08:53+00:00,false +/development/style,docs/development/style.md,resources/develop-contribute/contribute/style.mdx,https://clickhouse.com/docs/development/style,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/contribute/style,matched,3846d38ebd2b09ae,true,3846d38ebd2b09ae,2026-05-21T07:18:56+00:00,false +/development/tests,docs/development/tests.md,resources/develop-contribute/contribute/tests.mdx,https://clickhouse.com/docs/development/tests,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/contribute/tests,matched,2a6c8a145b56ce5b,true,2a6c8a145b56ce5b,2026-05-21T07:18:56+00:00,false +/dictionary,docs/dictionary/index.md,core/concepts/features/dictionaries/index.mdx,https://clickhouse.com/docs/dictionary,https://private-7c7dfe99.mintlify.app/core/concepts/features/dictionaries/index,matched,196c272644d94036,true,196c272644d94036,2026-05-08T09:09:20+00:00,false +/dictionary/best-practices,docs/dictionary/best-practices.md,core/concepts/features/dictionaries/best-practices.mdx,https://clickhouse.com/docs/dictionary/best-practices,https://private-7c7dfe99.mintlify.app/core/concepts/features/dictionaries/best-practices,matched,eb8869fd12ff9f32,true,9c1fbd282c73c2ab,2026-05-07T14:49:41+00:00,false +/engines,docs/engines/index.md,core/reference/engines/engines.mdx,https://clickhouse.com/docs/engines,https://private-7c7dfe99.mintlify.app/core/reference/engines/engines,matched,430792450e0e2470,true,430792450e0e2470,2026-05-19T11:48:22+00:00,false +/engines/database-engines/,docs/engines/database-engines/index.md,core/reference/engines/database-engines/index.mdx,https://clickhouse.com/docs/engines/database-engines/,https://private-7c7dfe99.mintlify.app/core/reference/engines/database-engines/index,matched,ef7d22cc4d26fc3f,true,ef7d22cc4d26fc3f,2026-05-19T11:08:53+00:00,false +/engines/database-engines/atomic,docs/engines/database-engines/atomic.md,core/reference/engines/database-engines/atomic.mdx,https://clickhouse.com/docs/engines/database-engines/atomic,https://private-7c7dfe99.mintlify.app/core/reference/engines/database-engines/atomic,matched,da03ef9fd175695f,true,b3a0a7a9c4f2e4c5,2026-05-08T09:09:20+00:00,false +/engines/database-engines/backup,docs/engines/database-engines/backup.md,core/reference/engines/database-engines/backup.mdx,https://clickhouse.com/docs/engines/database-engines/backup,https://private-7c7dfe99.mintlify.app/core/reference/engines/database-engines/backup,matched,84bc965234cff573,true,ba093f0bb10f862c,2026-05-07T14:49:41+00:00,false +/engines/database-engines/datalakecatalog,docs/engines/database-engines/datalake.md,core/reference/engines/database-engines/datalake.mdx,https://clickhouse.com/docs/engines/database-engines/datalakecatalog,https://private-7c7dfe99.mintlify.app/core/reference/engines/database-engines/datalake,matched,f1f3e3fde3b9ea7a,true,480b7e169ea63bdf,2026-05-07T14:49:41+00:00,false +/engines/database-engines/materialized-postgresql,docs/engines/database-engines/materialized-postgresql.md,core/reference/engines/database-engines/materialized-postgresql.mdx,https://clickhouse.com/docs/engines/database-engines/materialized-postgresql,https://private-7c7dfe99.mintlify.app/core/reference/engines/database-engines/materialized-postgresql,matched,ed2621c01542cd6c,true,ed2621c01542cd6c,2026-05-08T09:09:20+00:00,false +/engines/database-engines/mysql,docs/engines/database-engines/mysql.md,core/reference/engines/database-engines/mysql.mdx,https://clickhouse.com/docs/engines/database-engines/mysql,https://private-7c7dfe99.mintlify.app/core/reference/engines/database-engines/mysql,matched,f78ef201b8464bb6,true,f78ef201b8464bb6,2026-05-08T09:09:20+00:00,false +/engines/database-engines/postgresql,docs/engines/database-engines/postgresql.md,core/reference/engines/database-engines/postgresql.mdx,https://clickhouse.com/docs/engines/database-engines/postgresql,https://private-7c7dfe99.mintlify.app/core/reference/engines/database-engines/postgresql,matched,ea606b8fc32dc4d2,true,b4c584ccbf84daf8,2026-05-07T14:49:41+00:00,false +/engines/database-engines/replicated,docs/engines/database-engines/replicated.md,core/reference/engines/database-engines/replicated.mdx,https://clickhouse.com/docs/engines/database-engines/replicated,https://private-7c7dfe99.mintlify.app/core/reference/engines/database-engines/replicated,matched,d31fecb5d94082da,true,d31fecb5d94082da,2026-05-19T11:08:53+00:00,false +/engines/database-engines/shared,docs/engines/database-engines/shared.md,core/reference/engines/database-engines/shared.mdx,https://clickhouse.com/docs/engines/database-engines/shared,https://private-7c7dfe99.mintlify.app/core/reference/engines/database-engines/shared,matched,658a06aa55917c46,true,658a06aa55917c46,2026-05-08T09:09:20+00:00,false +/engines/database-engines/sqlite,docs/engines/database-engines/sqlite.md,core/reference/engines/database-engines/sqlite.mdx,https://clickhouse.com/docs/engines/database-engines/sqlite,https://private-7c7dfe99.mintlify.app/core/reference/engines/database-engines/sqlite,matched,69743c08b181ef87,true,2d389211d0f5d36a,2026-05-07T14:49:41+00:00,false +/engines/table-engines/,docs/engines/table-engines/index.md,core/reference/engines/table-engines/index.mdx,https://clickhouse.com/docs/engines/table-engines/,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/index,matched,be0c6e92edd31909,true,be0c6e92edd31909,2026-05-19T11:08:53+00:00,false +/engines/table-engines/integrations/,docs/engines/table-engines/integrations/index.md,core/reference/engines/table-engines/integrations/index.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/index,matched,182e2a9a7b1c73d5,true,182e2a9a7b1c73d5,2026-05-19T11:08:53+00:00,false +/engines/table-engines/integrations/ExternalDistributed,docs/engines/table-engines/integrations/ExternalDistributed.md,core/reference/engines/table-engines/integrations/ExternalDistributed.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/ExternalDistributed,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/ExternalDistributed,matched,0c4f69e6d6e393f7,true,1cdbef1a85ce5ee8,2026-05-09T09:39:38+00:00,false +/engines/table-engines/integrations/arrowflight,docs/engines/table-engines/integrations/arrowflight.md,core/reference/engines/table-engines/integrations/arrowflight.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/arrowflight,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/arrowflight,matched,643d2d6307abae7c,true,5d542d21d2aeff74,2026-05-07T14:49:41+00:00,false +/engines/table-engines/integrations/azure-queue,docs/engines/table-engines/integrations/azure-queue.md,core/reference/engines/table-engines/integrations/azure-queue.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/azure-queue,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/azure-queue,matched,46bce34c84b9f8a2,true,5e0eeeeaa692b51f,2026-05-09T09:39:38+00:00,false +/engines/table-engines/integrations/azureBlobStorage,docs/engines/table-engines/integrations/azureBlobStorage.md,core/reference/engines/table-engines/integrations/azureBlobStorage.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/azureBlobStorage,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/azureBlobStorage,matched,9eb4aa7b055170c1,true,50e422154e7d9340,2026-05-08T13:01:57+00:00,false +/engines/table-engines/integrations/deltalake,docs/engines/table-engines/integrations/deltalake.md,core/reference/engines/table-engines/integrations/deltalake.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/deltalake,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/deltalake,matched,b8b8fa26d495fc42,true,b8b8fa26d495fc42,2026-05-08T09:09:20+00:00,false +/engines/table-engines/integrations/embedded-rocksdb,docs/engines/table-engines/integrations/embedded-rocksdb.md,core/reference/engines/table-engines/integrations/embedded-rocksdb.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/embedded-rocksdb,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/embedded-rocksdb,matched,3106e22f04396e24,true,3106e22f04396e24,2026-05-08T09:09:20+00:00,false +/engines/table-engines/integrations/hdfs,docs/engines/table-engines/integrations/hdfs.md,core/reference/engines/table-engines/integrations/hdfs.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/hdfs,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/hdfs,matched,6d8963200cc850f4,true,6d8963200cc850f4,2026-05-09T11:14:51+00:00,false +/engines/table-engines/integrations/hive,docs/engines/table-engines/integrations/hive.md,core/reference/engines/table-engines/integrations/hive.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/hive,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/hive,matched,1bd7f94ef79ae4a2,true,1bd7f94ef79ae4a2,2026-05-08T09:09:20+00:00,false +/engines/table-engines/integrations/hudi,docs/engines/table-engines/integrations/hudi.md,core/reference/engines/table-engines/integrations/hudi.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/hudi,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/hudi,matched,465448998115f31c,true,51667b6a4e3d68fa,2026-05-07T14:49:41+00:00,false +/engines/table-engines/integrations/iceberg,docs/engines/table-engines/integrations/iceberg.md,core/reference/engines/table-engines/integrations/iceberg.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/iceberg,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/iceberg,matched,b2398db6ad12ecc8,true,b2398db6ad12ecc8,2026-05-19T11:08:53+00:00,false +/engines/table-engines/integrations/jdbc,docs/engines/table-engines/integrations/jdbc.md,core/reference/engines/table-engines/integrations/jdbc.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/jdbc,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/jdbc,matched,665e7928e61709a3,true,665e7928e61709a3,2026-05-08T09:51:10+00:00,false +/engines/table-engines/integrations/kafka,docs/engines/table-engines/integrations/kafka.md,core/reference/engines/table-engines/integrations/kafka.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/kafka,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/kafka,matched,42b346c1b1df5b6d,true,42b346c1b1df5b6d,2026-05-19T11:08:53+00:00,false +/engines/table-engines/integrations/materialized-postgresql,docs/engines/table-engines/integrations/materialized-postgresql.md,core/reference/engines/table-engines/integrations/materialized-postgresql.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/materialized-postgresql,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/materialized-postgresql,matched,874433a820ac2a17,true,874433a820ac2a17,2026-05-08T09:09:20+00:00,false +/engines/table-engines/integrations/mongodb,docs/engines/table-engines/integrations/mongodb.md,core/reference/engines/table-engines/integrations/mongodb.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/mongodb,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/mongodb,matched,efa4dbb935d8f6c7,true,efa4dbb935d8f6c7,2026-05-19T11:08:53+00:00,false +/engines/table-engines/integrations/mysql,docs/engines/table-engines/integrations/mysql.md,core/reference/engines/table-engines/integrations/mysql.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/mysql,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/mysql,matched,66b376663e767faa,true,4d4563d868c683fc,2026-05-07T14:49:41+00:00,false +/engines/table-engines/integrations/nats,docs/engines/table-engines/integrations/nats.md,core/reference/engines/table-engines/integrations/nats.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/nats,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/nats,matched,223ce4ae7fe14aa4,true,223ce4ae7fe14aa4,2026-05-19T11:08:53+00:00,false +/engines/table-engines/integrations/odbc,docs/engines/table-engines/integrations/odbc.md,core/reference/engines/table-engines/integrations/odbc.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/odbc,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/odbc,matched,5c02dfc903a8407f,true,5c02dfc903a8407f,2026-05-13T14:23:03+00:00,false +/engines/table-engines/integrations/paimon,docs/engines/table-engines/integrations/paimon.md,core/reference/engines/table-engines/integrations/paimon.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/paimon,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/paimon,matched,50b2d2d9a6939a1a,true,50b2d2d9a6939a1a,2026-05-19T11:08:53+00:00,false +/engines/table-engines/integrations/postgresql,docs/engines/table-engines/integrations/postgresql.md,core/reference/engines/table-engines/integrations/postgresql.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/postgresql,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/postgresql,matched,9e4b331dbe864202,true,9e4b331dbe864202,2026-05-19T11:08:53+00:00,false +/engines/table-engines/integrations/rabbitmq,docs/engines/table-engines/integrations/rabbitmq.md,core/reference/engines/table-engines/integrations/rabbitmq.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/rabbitmq,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/rabbitmq,matched,909f012134983d94,true,e46974cd333ca66c,2026-05-08T13:01:57+00:00,false +/engines/table-engines/integrations/redis,docs/engines/table-engines/integrations/redis.md,core/reference/engines/table-engines/integrations/redis.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/redis,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/redis,matched,3b3cde6d7bb7a428,true,3b3cde6d7bb7a428,2026-05-19T11:08:53+00:00,false +/engines/table-engines/integrations/s3,docs/engines/table-engines/integrations/s3.md,core/reference/engines/table-engines/integrations/s3.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/s3,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/s3,matched,ea0601c4d7ab68dd,true,d9f34d3172ce3120,2026-05-13T15:43:30+00:00,false +/engines/table-engines/integrations/s3queue,docs/engines/table-engines/integrations/s3queue.md,core/reference/engines/table-engines/integrations/s3queue.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/s3queue,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/s3queue,matched,2c4f536280177413,true,2c4f536280177413,2026-05-09T09:39:38+00:00,false +/engines/table-engines/integrations/sqlite,docs/engines/table-engines/integrations/sqlite.md,core/reference/engines/table-engines/integrations/sqlite.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/sqlite,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/sqlite,matched,7c57bc57ee3573e4,true,7c57bc57ee3573e4,2026-05-09T09:39:38+00:00,false +/engines/table-engines/integrations/ytsaurus,docs/engines/table-engines/integrations/ytsaurus.md,core/reference/engines/table-engines/integrations/ytsaurus.mdx,https://clickhouse.com/docs/engines/table-engines/integrations/ytsaurus,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/ytsaurus,matched,8b424c806172df36,true,8b424c806172df36,2026-05-08T09:09:20+00:00,false +/engines/table-engines/log-family/,docs/engines/table-engines/log-family/index.md,core/reference/engines/table-engines/log-family/index.mdx,https://clickhouse.com/docs/engines/table-engines/log-family/,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/log-family/index,matched,526635ff55be8133,true,526635ff55be8133,2026-05-08T09:09:20+00:00,false +/engines/table-engines/log-family/log,docs/engines/table-engines/log-family/log.md,core/reference/engines/table-engines/log-family/log.mdx,https://clickhouse.com/docs/engines/table-engines/log-family/log,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/log-family/log,matched,589fc5521d34b691,true,589fc5521d34b691,2026-05-08T09:09:20+00:00,false +/engines/table-engines/log-family/stripelog,docs/engines/table-engines/log-family/stripelog.md,core/reference/engines/table-engines/log-family/stripelog.mdx,https://clickhouse.com/docs/engines/table-engines/log-family/stripelog,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/log-family/stripelog,matched,85317ab67c211854,true,85317ab67c211854,2026-05-08T09:09:20+00:00,false +/engines/table-engines/log-family/tinylog,docs/engines/table-engines/log-family/tinylog.md,core/reference/engines/table-engines/log-family/tinylog.mdx,https://clickhouse.com/docs/engines/table-engines/log-family/tinylog,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/log-family/tinylog,matched,6aca92cecd7097cb,true,6aca92cecd7097cb,2026-05-08T09:09:20+00:00,false +/engines/table-engines/mergetree-family/,docs/engines/table-engines/mergetree-family/index.md,core/reference/engines/table-engines/mergetree-family/index.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/index,matched,ad8165aa1c3ca613,true,ad8165aa1c3ca613,2026-05-19T11:08:53+00:00,false +/engines/table-engines/mergetree-family/aggregatingmergetree,docs/engines/table-engines/mergetree-family/aggregatingmergetree.md,core/reference/engines/table-engines/mergetree-family/aggregatingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/aggregatingmergetree,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree,matched,5bbad8545fadef5d,true,c00fec44d98d20ec,2026-05-08T12:19:52+00:00,false +/engines/table-engines/mergetree-family/annindexes,docs/engines/table-engines/mergetree-family/annindexes.md,core/reference/engines/table-engines/mergetree-family/annindexes.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/annindexes,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/annindexes,matched,c6f8bbc4eb012454,true,c6f8bbc4eb012454,2026-05-19T11:08:53+00:00,false +/engines/table-engines/mergetree-family/coalescingmergetree,docs/engines/table-engines/mergetree-family/coalescingmergetree.md,core/reference/engines/table-engines/mergetree-family/coalescingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/coalescingmergetree,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/coalescingmergetree,matched,e4282522f2b88cd1,true,f14b1307c493266d,2026-05-08T09:09:20+00:00,false +/engines/table-engines/mergetree-family/collapsingmergetree,docs/engines/table-engines/mergetree-family/collapsingmergetree.md,core/reference/engines/table-engines/mergetree-family/collapsingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/collapsingmergetree,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/collapsingmergetree,matched,b4c154dcf1aa53bf,true,cca901fd78a63bb4,2026-05-08T09:09:20+00:00,false +/engines/table-engines/mergetree-family/custom-partitioning-key,docs/engines/table-engines/mergetree-family/custom-partitioning-key.md,core/reference/engines/table-engines/mergetree-family/custom-partitioning-key.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/custom-partitioning-key,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key,matched,e1465cd2777f9d7a,true,e1465cd2777f9d7a,2026-05-19T11:08:53+00:00,false +/engines/table-engines/mergetree-family/graphitemergetree,docs/engines/table-engines/mergetree-family/graphitemergetree.md,core/reference/engines/table-engines/mergetree-family/graphitemergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/graphitemergetree,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/graphitemergetree,matched,e14e6f9370ea584c,true,9c431dd0d8265db2,2026-05-08T09:09:20+00:00,false +/engines/table-engines/mergetree-family/mergetree,docs/engines/table-engines/mergetree-family/mergetree.md,core/reference/engines/table-engines/mergetree-family/mergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/mergetree,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/mergetree,matched,6a86924ac725350a,true,6a86924ac725350a,2026-05-19T11:08:53+00:00,false +/engines/table-engines/mergetree-family/replacingmergetree,docs/engines/table-engines/mergetree-family/replacingmergetree.md,core/reference/engines/table-engines/mergetree-family/replacingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/replacingmergetree,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/replacingmergetree,matched,ecec03c9132f87db,true,ced484d2a382f865,2026-05-08T09:09:20+00:00,false +/engines/table-engines/mergetree-family/replication,docs/engines/table-engines/mergetree-family/replication.md,core/reference/engines/table-engines/mergetree-family/replication.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/replication,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/replication,matched,99530f32e611a580,true,3b16d689fbde73f9,2026-05-08T09:09:20+00:00,false +/engines/table-engines/mergetree-family/summingmergetree,docs/engines/table-engines/mergetree-family/summingmergetree.md,core/reference/engines/table-engines/mergetree-family/summingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/summingmergetree,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/summingmergetree,matched,05624c049881b4a7,true,987b8b83f4fb4b6c,2026-05-08T09:09:20+00:00,false +/engines/table-engines/mergetree-family/textindexes,docs/engines/table-engines/mergetree-family/textindexes.md,core/reference/engines/table-engines/mergetree-family/textindexes.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/textindexes,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/textindexes,matched,d118d93f71227b40,true,d118d93f71227b40,2026-05-19T11:08:53+00:00,false +/engines/table-engines/mergetree-family/versionedcollapsingmergetree,docs/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md,core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree.mdx,https://clickhouse.com/docs/engines/table-engines/mergetree-family/versionedcollapsingmergetree,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree,matched,2e1d47be7e9be686,true,5172acba2103f957,2026-05-08T09:09:20+00:00,false +/engines/table-engines/special/,docs/engines/table-engines/special/index.md,core/reference/engines/table-engines/special/index.mdx,https://clickhouse.com/docs/engines/table-engines/special/,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/index,matched,851e551dcf4c3b6c,true,2020a467b74c2031,2026-05-09T09:39:38+00:00,false +/engines/table-engines/special/alias,docs/engines/table-engines/special/alias.md,core/reference/engines/table-engines/special/alias.mdx,https://clickhouse.com/docs/engines/table-engines/special/alias,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/alias,matched,1207ea39bd43915c,true,1207ea39bd43915c,2026-05-08T09:09:20+00:00,false +/engines/table-engines/special/buffer,docs/engines/table-engines/special/buffer.md,core/reference/engines/table-engines/special/buffer.mdx,https://clickhouse.com/docs/engines/table-engines/special/buffer,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/buffer,matched,6e0aed541f48f9f7,true,4e8ed6a1feb2aa52,2026-05-08T09:09:20+00:00,false +/engines/table-engines/special/dictionary,docs/engines/table-engines/special/dictionary.md,core/reference/engines/table-engines/special/dictionary.mdx,https://clickhouse.com/docs/engines/table-engines/special/dictionary,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/dictionary,matched,7630e3f4daa5ef75,true,78aff0314982d70b,2026-05-07T14:49:41+00:00,false +/engines/table-engines/special/distributed,docs/engines/table-engines/special/distributed.md,core/reference/engines/table-engines/special/distributed.mdx,https://clickhouse.com/docs/engines/table-engines/special/distributed,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/distributed,matched,36792e30ad2101ea,true,144e0319e32e38db,2026-05-09T10:26:02+00:00,false +/engines/table-engines/special/executable,docs/engines/table-engines/special/executable.md,core/reference/engines/table-engines/special/executable.mdx,https://clickhouse.com/docs/engines/table-engines/special/executable,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/executable,matched,6b39916c1f6415cb,true,abf73ca14dd6fa74,2026-05-07T14:49:41+00:00,false +/engines/table-engines/special/external-data,docs/engines/table-engines/special/external-data.md,core/reference/engines/table-engines/special/external-data.mdx,https://clickhouse.com/docs/engines/table-engines/special/external-data,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/external-data,matched,889f3532c3ed2b16,true,b8b48f150dd2033f,2026-05-07T14:49:41+00:00,false +/engines/table-engines/special/file,docs/engines/table-engines/special/file.md,core/reference/engines/table-engines/special/file.mdx,https://clickhouse.com/docs/engines/table-engines/special/file,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/file,matched,8b6800a2b82d8cb0,true,e0c19959bdee8150,2026-05-08T13:01:57+00:00,false +/engines/table-engines/special/filelog,docs/engines/table-engines/special/filelog.md,core/reference/engines/table-engines/special/filelog.mdx,https://clickhouse.com/docs/engines/table-engines/special/filelog,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/filelog,matched,f69e9de5904cce4e,true,f69e9de5904cce4e,2026-05-19T11:08:53+00:00,false +/engines/table-engines/special/generate,docs/engines/table-engines/special/generate.md,core/reference/engines/table-engines/special/generate.mdx,https://clickhouse.com/docs/engines/table-engines/special/generate,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/generate,matched,f873ecfa15f84ef7,true,848b4e2ed1094aee,2026-05-07T14:49:41+00:00,false +/engines/table-engines/special/join,docs/engines/table-engines/special/join.md,core/reference/engines/table-engines/special/join.mdx,https://clickhouse.com/docs/engines/table-engines/special/join,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/join,matched,6f56e6e14a899c72,true,3c0a49ce0175e9ff,2026-05-08T09:09:20+00:00,false +/engines/table-engines/special/keeper-map,docs/engines/table-engines/special/keepermap.md,core/reference/engines/table-engines/special/keepermap.mdx,https://clickhouse.com/docs/engines/table-engines/special/keeper-map,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/keepermap,matched,ac19941642bf389b,true,ad02c360d5787e1c,2026-05-07T14:49:41+00:00,false +/engines/table-engines/special/memory,docs/engines/table-engines/special/memory.md,core/reference/engines/table-engines/special/memory.mdx,https://clickhouse.com/docs/engines/table-engines/special/memory,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/memory,matched,4b2e8682c62ea55a,true,dbd1ac438ab55afc,2026-05-08T09:09:20+00:00,false +/engines/table-engines/special/merge,docs/engines/table-engines/special/merge.md,core/reference/engines/table-engines/special/merge.mdx,https://clickhouse.com/docs/engines/table-engines/special/merge,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/merge,matched,bb88ebe93c4cca8b,true,f3fd1aa8bafa81bb,2026-05-09T09:39:38+00:00,false +/engines/table-engines/special/null,docs/engines/table-engines/special/null.md,core/reference/engines/table-engines/special/null.mdx,https://clickhouse.com/docs/engines/table-engines/special/null,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/null,matched,d0711da176d30a5d,true,32a464d65d3033a6,2026-05-07T14:49:41+00:00,false +/engines/table-engines/special/set,docs/engines/table-engines/special/set.md,core/reference/engines/table-engines/special/set.mdx,https://clickhouse.com/docs/engines/table-engines/special/set,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/set,matched,cd61da9acac6ea74,true,558092fa5958f7bf,2026-05-08T09:09:20+00:00,false +/engines/table-engines/special/time_series,docs/engines/table-engines/integrations/time-series.md,core/reference/engines/table-engines/integrations/time-series.mdx,https://clickhouse.com/docs/engines/table-engines/special/time_series,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/integrations/time-series,matched,c58648934ce9b098,true,c58648934ce9b098,2026-05-08T09:09:20+00:00,false +/engines/table-engines/special/url,docs/engines/table-engines/special/url.md,core/reference/engines/table-engines/special/url.mdx,https://clickhouse.com/docs/engines/table-engines/special/url,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/url,matched,2270feda9fd8ceb8,true,bc920ce850144c47,2026-05-08T13:01:57+00:00,false +/engines/table-engines/special/view,docs/engines/table-engines/special/view.md,core/reference/engines/table-engines/special/view.mdx,https://clickhouse.com/docs/engines/table-engines/special/view,https://private-7c7dfe99.mintlify.app/core/reference/engines/table-engines/special/view,matched,26d10a8766db167b,true,547949490f707e9c,2026-05-07T14:49:41+00:00,false +/engines/table-functions/executable,docs/sql-reference/table-functions/executable.md,core/reference/functions/table-functions/executable.mdx,https://clickhouse.com/docs/engines/table-functions/executable,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/executable,matched,33da0a1ab05b92af,true,33da0a1ab05b92af,2026-05-19T11:08:53+00:00,false +/examples/aggregate-function-combinators/anyIf,docs/guides/examples/aggregate_function_combinators/anyIf.md,core/guides/clickhouse/examples/aggregate-function-combinators/anyIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/anyIf,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/anyIf,matched,c593e9d899ed3bc0,true,c593e9d899ed3bc0,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/argMaxIf,docs/guides/examples/aggregate_function_combinators/argMaxIf.md,core/guides/clickhouse/examples/aggregate-function-combinators/argMaxIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/argMaxIf,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/argMaxIf,matched,29203dd56fb1e4f2,true,29203dd56fb1e4f2,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/argMinIf,docs/guides/examples/aggregate_function_combinators/argMinIf.md,core/guides/clickhouse/examples/aggregate-function-combinators/argMinIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/argMinIf,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/argMinIf,matched,c7225256364f35ed,true,c7225256364f35ed,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/avgIf,docs/guides/examples/aggregate_function_combinators/avgIf.md,core/guides/clickhouse/examples/aggregate-function-combinators/avgIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgIf,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/avgIf,matched,7b33a5e55a1dd2d5,true,7b33a5e55a1dd2d5,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/avgMap,docs/guides/examples/aggregate_function_combinators/avgMap.md,core/guides/clickhouse/examples/aggregate-function-combinators/avgMap.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgMap,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/avgMap,matched,dada380bcbe5f507,true,dada380bcbe5f507,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/avgMerge,docs/guides/examples/aggregate_function_combinators/avgMerge.md,core/guides/clickhouse/examples/aggregate-function-combinators/avgMerge.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgMerge,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/avgMerge,matched,97d240cb9c6a47fb,true,97d240cb9c6a47fb,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/avgMergeState,docs/guides/examples/aggregate_function_combinators/avgMergeState.md,core/guides/clickhouse/examples/aggregate-function-combinators/avgMergeState.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgMergeState,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/avgMergeState,matched,49a5dd5634212d81,true,49a5dd5634212d81,2026-05-08T09:09:20+00:00,false +/examples/aggregate-function-combinators/avgResample,docs/guides/examples/aggregate_function_combinators/avgResample.md,core/guides/clickhouse/examples/aggregate-function-combinators/avgResample.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgResample,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/avgResample,matched,d7c5d1189ff502af,true,d7c5d1189ff502af,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/avgState,docs/guides/examples/aggregate_function_combinators/avgState.md,core/guides/clickhouse/examples/aggregate-function-combinators/avgState.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/avgState,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/avgState,matched,956473ff45434571,true,956473ff45434571,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/countIf,docs/guides/examples/aggregate_function_combinators/countIf.md,core/guides/clickhouse/examples/aggregate-function-combinators/countIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/countIf,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/countIf,matched,a36d54dfacfe290d,true,a36d54dfacfe290d,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/countResample,docs/guides/examples/aggregate_function_combinators/countResample.md,core/guides/clickhouse/examples/aggregate-function-combinators/countResample.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/countResample,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/countResample,matched,1a8b6a09c33b5066,true,1a8b6a09c33b5066,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/groupArrayDistinct,docs/guides/examples/aggregate_function_combinators/groupArrayDistinct.md,core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayDistinct.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/groupArrayDistinct,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayDistinct,matched,2fe25556dc9281a7,true,2fe25556dc9281a7,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/groupArrayResample,docs/guides/examples/aggregate_function_combinators/groupArrayResample.md,core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayResample.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/groupArrayResample,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayResample,matched,2ec91e4d5b4c22e5,true,2ec91e4d5b4c22e5,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/maxMap,docs/guides/examples/aggregate_function_combinators/maxMap.md,core/guides/clickhouse/examples/aggregate-function-combinators/maxMap.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/maxMap,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/maxMap,matched,4b4420282f1b88dc,true,4b4420282f1b88dc,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/maxSimpleState,docs/guides/examples/aggregate_function_combinators/maxSimpleState.md,core/guides/clickhouse/examples/aggregate-function-combinators/maxSimpleState.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/maxSimpleState,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/maxSimpleState,matched,4fafce0af6e89cec,true,4fafce0af6e89cec,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/minMap,docs/guides/examples/aggregate_function_combinators/minMap.md,core/guides/clickhouse/examples/aggregate-function-combinators/minMap.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/minMap,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/minMap,matched,00e7d796923804fb,true,00e7d796923804fb,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/minSimpleState,docs/guides/examples/aggregate_function_combinators/minSimpleState.md,core/guides/clickhouse/examples/aggregate-function-combinators/minSimpleState.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/minSimpleState,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/minSimpleState,matched,dd77ecfb91bdfb41,true,dd77ecfb91bdfb41,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/quantilesTimingArrayIf,docs/guides/examples/aggregate_function_combinators/quantilesTimingArrayIf.md,core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingArrayIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/quantilesTimingArrayIf,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingArrayIf,matched,f5c1d436a3a4b96d,true,f5c1d436a3a4b96d,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/quantilesTimingIf,docs/guides/examples/aggregate_function_combinators/quantilesTimingIf.md,core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/quantilesTimingIf,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingIf,matched,12680cbf375da7a9,true,12680cbf375da7a9,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/sumArray,docs/guides/examples/aggregate_function_combinators/sumArray.md,core/guides/clickhouse/examples/aggregate-function-combinators/sumArray.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/sumArray,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/sumArray,matched,aefd3e2e4730ab00,true,aefd3e2e4730ab00,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/sumForEach,docs/guides/examples/aggregate_function_combinators/sumForEach.md,core/guides/clickhouse/examples/aggregate-function-combinators/sumForEach.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/sumForEach,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/sumForEach,matched,b5cae9a8d951d7f4,true,b5cae9a8d951d7f4,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/sumIf,docs/guides/examples/aggregate_function_combinators/sumIf.md,core/guides/clickhouse/examples/aggregate-function-combinators/sumIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/sumIf,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/sumIf,matched,ab50102445cb5730,true,ab50102445cb5730,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/sumMap,docs/guides/examples/aggregate_function_combinators/sumMap.md,core/guides/clickhouse/examples/aggregate-function-combinators/sumMap.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/sumMap,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/sumMap,matched,656029100848c0ee,true,656029100848c0ee,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/sumSimpleState,docs/guides/examples/aggregate_function_combinators/sumSimpleState.md,core/guides/clickhouse/examples/aggregate-function-combinators/sumSimpleState.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/sumSimpleState,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/sumSimpleState,matched,b2291bf2e66fed01,true,b2291bf2e66fed01,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/uniqArray,docs/guides/examples/aggregate_function_combinators/uniqArray.md,core/guides/clickhouse/examples/aggregate-function-combinators/uniqArray.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/uniqArray,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/uniqArray,matched,ee4d09293b2b41b0,true,ee4d09293b2b41b0,2026-05-13T13:16:51+00:00,false +/examples/aggregate-function-combinators/uniqArrayIf,docs/guides/examples/aggregate_function_combinators/uniqArrayIf.md,core/guides/clickhouse/examples/aggregate-function-combinators/uniqArrayIf.mdx,https://clickhouse.com/docs/examples/aggregate-function-combinators/uniqArrayIf,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/examples/aggregate-function-combinators/uniqArrayIf,matched,18b41d734423bdea,true,18b41d734423bdea,2026-05-13T13:16:51+00:00,false +/faq/general/,docs/faq/general/index.md,resources/support-center/knowledge-base/general-faqs/index.mdx,https://clickhouse.com/docs/faq/general/,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/index,matched,e71767509dda8cf2,true,970aec8e4fdbc1cf,2026-05-08T15:12:29+00:00,false /faq/general/columnar-database,docs/faq/general/columnar-database.md,resources/support-center/knowledge-base/general-faqs/columnar-database.mdx,https://clickhouse.com/docs/faq/general/columnar-database,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/columnar-database,matched,a66560c3d607504c,true,a66560c3d607504c,2026-05-13T12:54:22+00:00,false /faq/general/concurrency,docs/faq/general/concurrency.md,resources/support-center/knowledge-base/general-faqs/concurrency.mdx,https://clickhouse.com/docs/faq/general/concurrency,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/concurrency,matched,433cf87d8aa136ec,true,f8146d175696fd61,2026-05-08T09:09:20+00:00,false /faq/general/cost-based,docs/faq/general/cost-based.md,resources/support-center/knowledge-base/general-faqs/cost-based.mdx,https://clickhouse.com/docs/faq/general/cost-based,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/cost-based,matched,4aa38d5452359fa6,true,4aa38d5452359fa6,2026-05-13T13:16:51+00:00,false @@ -408,111 +408,111 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /faq/general/sql,docs/faq/general/sql.md,resources/support-center/knowledge-base/general-faqs/sql.mdx,https://clickhouse.com/docs/faq/general/sql,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/sql,matched,7f6052eb899b6251,true,7843455825f9c182,2026-05-08T09:09:20+00:00,false /faq/general/updates,docs/faq/general/updates.md,resources/support-center/knowledge-base/general-faqs/updates.mdx,https://clickhouse.com/docs/faq/general/updates,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/updates,matched,198b94f41debb083,true,455e4d7b70315644,2026-05-08T09:09:20+00:00,false /faq/general/who-is-using-clickhouse,docs/faq/general/who-is-using-clickhouse.md,resources/support-center/knowledge-base/general-faqs/who-is-using-clickhouse.mdx,https://clickhouse.com/docs/faq/general/who-is-using-clickhouse,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/who-is-using-clickhouse,matched,0a0cbdf9d5428705,true,0a0cbdf9d5428705,2026-05-13T12:54:23+00:00,false -/faq/integration/,docs/faq/integration/index.md,resources/support-center/knowledge-base/integrations/index.mdx,https://clickhouse.com/docs/faq/integration/,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/integrations,matched,0a1d220d7c793191,true,0a1d220d7c793191,2026-05-13T13:51:17+00:00,false +/faq/integration/,docs/faq/integration/index.md,resources/support-center/knowledge-base/integrations/index.mdx,https://clickhouse.com/docs/faq/integration/,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/integrations/index,matched,0a1d220d7c793191,true,0a1d220d7c793191,2026-05-21T07:51:33+00:00,false /faq/integration/json-import,docs/faq/integration/json-import.md,resources/support-center/knowledge-base/data-import-export/json-import.mdx,https://clickhouse.com/docs/faq/integration/json-import,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/data-import-export/json-import,matched,2129957bebc7e663,true,2129957bebc7e663,2026-05-13T12:54:23+00:00,false /faq/integration/oracle-odbc,docs/faq/integration/oracle-odbc.md,resources/support-center/knowledge-base/integrations/oracle-odbc.mdx,https://clickhouse.com/docs/faq/integration/oracle-odbc,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/integrations/oracle-odbc,matched,0051a27a896a90eb,true,0051a27a896a90eb,2026-05-13T12:54:23+00:00,false /faq/operations/,docs/faq/operations/index.md,resources/support-center/knowledge-base/general-faqs/operations-index.mdx,https://clickhouse.com/docs/faq/operations/,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/operations-index,matched,c65e05161360f7d2,true,c65e05161360f7d2,2026-05-13T13:51:17+00:00,false /faq/operations/delete-old-data,docs/faq/operations/delete-old-data.md,resources/support-center/knowledge-base/tables-schema/delete-old-data.mdx,https://clickhouse.com/docs/faq/operations/delete-old-data,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/tables-schema/delete-old-data,matched,57321324aed9a784,true,57321324aed9a784,2026-05-13T12:54:24+00:00,false /faq/operations/deploy-separate-storage-and-compute,docs/faq/operations/separate_storage.md,resources/support-center/knowledge-base/general-faqs/separate-storage.mdx,https://clickhouse.com/docs/faq/operations/deploy-separate-storage-and-compute,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/separate-storage,matched,58f15d2dfce6c379,true,58f15d2dfce6c379,2026-05-09T10:03:34+00:00,false /faq/operations/multi-region-replication,docs/faq/operations/multi-region-replication.md,resources/support-center/knowledge-base/cloud-services/multi-region-replication.mdx,https://clickhouse.com/docs/faq/operations/multi-region-replication,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/cloud-services/multi-region-replication,matched,22cfd8c8ad19309c,true,22cfd8c8ad19309c,2026-05-13T12:54:24+00:00,false -/faq/operations/production,docs/faq/operations/production.md,resources/support-center/knowledge-base/setup-installation/production.mdx,https://clickhouse.com/docs/faq/operations/production,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/setup-installation/production,matched,d6ae57dcd3115219,true,d6ae57dcd3115219,2026-05-13T12:54:24+00:00,false +/faq/operations/production,docs/faq/operations/production.md,resources/support-center/knowledge-base/setup-installation/production.mdx,https://clickhouse.com/docs/faq/operations/production,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/setup-installation/production,matched,d6ae57dcd3115219,true,d6ae57dcd3115219,2026-05-21T07:18:59+00:00,false /faq/use-cases/,docs/faq/use-cases/index.md,resources/support-center/knowledge-base/general-faqs/use-cases-index.mdx,https://clickhouse.com/docs/faq/use-cases/,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/use-cases-index,matched,a94cb6a76f65c348,true,6e001f71ce02c304,2026-05-08T15:04:34+00:00,false /faq/use-cases/key-value,docs/faq/use-cases/key-value.md,resources/support-center/knowledge-base/general-faqs/key-value.mdx,https://clickhouse.com/docs/faq/use-cases/key-value,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/key-value,matched,a355893aad1f6636,true,a355893aad1f6636,2026-05-13T12:54:24+00:00,false /faq/use-cases/time-series,docs/faq/use-cases/time-series.md,resources/support-center/knowledge-base/general-faqs/time-series.mdx,https://clickhouse.com/docs/faq/use-cases/time-series,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/time-series,matched,d86b0128f21bdbb0,true,d86b0128f21bdbb0,2026-05-13T12:54:24+00:00,false /find-expensive-queries,knowledgebase/find-expensive-queries.mdx,resources/support-center/knowledge-base/performance-optimization/find-expensive-queries.mdx,https://clickhouse.com/docs/find-expensive-queries,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/performance-optimization/find-expensive-queries,matched,b7b956c395ea6e55,true,b7b956c395ea6e55,2026-05-08T09:09:20+00:00,false -/get-started/quick-start,docs/getting-started/quick-start/index.mdx,,https://clickhouse.com/docs/get-started/quick-start,,unmatched,42fe50c1e729beb1,false,,,false -/getting-started/example-datasets/,docs/getting-started/index.md,get-started/sample-datasets/index.mdx,https://clickhouse.com/docs/getting-started/example-datasets/,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets,matched,e6122dc92e53cd0b,true,674779f4d18973aa,2026-05-08T20:59:48+00:00,false -/getting-started/example-datasets/amazon-reviews,docs/getting-started/example-datasets/amazon-reviews.md,get-started/sample-datasets/amazon-reviews.mdx,https://clickhouse.com/docs/getting-started/example-datasets/amazon-reviews,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/amazon-reviews,matched,ca42797c7300200d,true,ca42797c7300200d,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/amplab-benchmark,docs/getting-started/example-datasets/amplab-benchmark.md,get-started/sample-datasets/amplab-benchmark.mdx,https://clickhouse.com/docs/getting-started/example-datasets/amplab-benchmark,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/amplab-benchmark,matched,1d1ca4474fc25a6c,true,1d1ca4474fc25a6c,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/brown-benchmark,docs/getting-started/example-datasets/brown-benchmark.md,get-started/sample-datasets/brown-benchmark.mdx,https://clickhouse.com/docs/getting-started/example-datasets/brown-benchmark,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/brown-benchmark,matched,9206b8172e5adaad,true,9206b8172e5adaad,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/cell-towers,docs/getting-started/example-datasets/cell-towers.md,get-started/sample-datasets/cell-towers.mdx,https://clickhouse.com/docs/getting-started/example-datasets/cell-towers,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/cell-towers,matched,0cb34ed3c4fd0aed,true,0cb34ed3c4fd0aed,2026-05-08T11:18:28+00:00,false -/getting-started/example-datasets/covid19,docs/getting-started/example-datasets/covid19.md,get-started/sample-datasets/covid19.mdx,https://clickhouse.com/docs/getting-started/example-datasets/covid19,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/covid19,matched,f9888552898ecec0,true,f9888552898ecec0,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/criteo,docs/getting-started/example-datasets/criteo.md,get-started/sample-datasets/criteo.mdx,https://clickhouse.com/docs/getting-started/example-datasets/criteo,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/criteo,matched,de5a0b3a29562a37,true,de5a0b3a29562a37,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/dbpedia-dataset,docs/getting-started/example-datasets/dbpedia.md,get-started/sample-datasets/dbpedia.mdx,https://clickhouse.com/docs/getting-started/example-datasets/dbpedia-dataset,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/dbpedia,matched,c658b35c333a9b84,true,c658b35c333a9b84,2026-05-13T15:43:25+00:00,false -/getting-started/example-datasets/environmental-sensors,docs/getting-started/example-datasets/environmental-sensors.md,get-started/sample-datasets/environmental-sensors.mdx,https://clickhouse.com/docs/getting-started/example-datasets/environmental-sensors,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/environmental-sensors,matched,32916f14b8104181,true,32916f14b8104181,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/foursquare-places,docs/getting-started/example-datasets/foursquare-os-places.md,get-started/sample-datasets/foursquare-os-places.mdx,https://clickhouse.com/docs/getting-started/example-datasets/foursquare-places,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/foursquare-os-places,matched,068b866e905fa187,true,068b866e905fa187,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/github,docs/getting-started/example-datasets/github.md,get-started/sample-datasets/github.mdx,https://clickhouse.com/docs/getting-started/example-datasets/github,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/github,matched,62ff108179e59685,true,62ff108179e59685,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/github-events,docs/getting-started/example-datasets/github-events.md,get-started/sample-datasets/github-events.mdx,https://clickhouse.com/docs/getting-started/example-datasets/github-events,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/github-events,matched,b0a4bb65550f834d,true,b0a4bb65550f834d,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/hacker-news,docs/getting-started/example-datasets/hacker-news.md,get-started/sample-datasets/hacker-news.mdx,https://clickhouse.com/docs/getting-started/example-datasets/hacker-news,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/hacker-news,matched,b41cafd48b8803a7,true,b41cafd48b8803a7,2026-05-13T15:43:25+00:00,false -/getting-started/example-datasets/hackernews-vector-search-dataset,docs/getting-started/example-datasets/hacker-news-vector-search.md,get-started/sample-datasets/hacker-news-vector-search.mdx,https://clickhouse.com/docs/getting-started/example-datasets/hackernews-vector-search-dataset,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/hacker-news-vector-search,matched,f73d712822089e63,true,f73d712822089e63,2026-05-09T17:02:01+00:00,false -/getting-started/example-datasets/laion-400m-dataset,docs/getting-started/example-datasets/laion.md,get-started/sample-datasets/laion.mdx,https://clickhouse.com/docs/getting-started/example-datasets/laion-400m-dataset,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/laion,matched,0ae7e345a21808fb,true,0ae7e345a21808fb,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/laion-5b-dataset,docs/getting-started/example-datasets/laion5b.md,get-started/sample-datasets/laion5b.mdx,https://clickhouse.com/docs/getting-started/example-datasets/laion-5b-dataset,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/laion5b,matched,3b0b6bfe05ba8170,true,3b0b6bfe05ba8170,2026-05-13T15:43:26+00:00,false -/getting-started/example-datasets/menus,docs/getting-started/example-datasets/menus.md,get-started/sample-datasets/menus.mdx,https://clickhouse.com/docs/getting-started/example-datasets/menus,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/menus,matched,0c0e0a6cf9fefd23,true,0c0e0a6cf9fefd23,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/metrica,docs/getting-started/example-datasets/anon_web_analytics_metrica.md,get-started/sample-datasets/anon-web-analytics-metrica.mdx,https://clickhouse.com/docs/getting-started/example-datasets/metrica,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/anon-web-analytics-metrica,matched,a8c2e26a008e74fd,true,a8c2e26a008e74fd,2026-05-13T13:16:51+00:00,false -/getting-started/example-datasets/noaa,docs/getting-started/example-datasets/noaa.md,get-started/sample-datasets/noaa.mdx,https://clickhouse.com/docs/getting-started/example-datasets/noaa,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/noaa,matched,707ef06b299a5c16,true,707ef06b299a5c16,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/nyc-taxi,docs/getting-started/example-datasets/nyc-taxi.md,get-started/sample-datasets/nyc-taxi.mdx,https://clickhouse.com/docs/getting-started/example-datasets/nyc-taxi,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/nyc-taxi,matched,8fd814ace2327deb,true,8fd814ace2327deb,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/nypd_complaint_data,docs/getting-started/example-datasets/nypd_complaint_data.md,get-started/sample-datasets/nypd-complaint-data.mdx,https://clickhouse.com/docs/getting-started/example-datasets/nypd_complaint_data,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/nypd-complaint-data,matched,ec0425affd15c8e6,true,ec0425affd15c8e6,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/ontime,docs/getting-started/example-datasets/ontime.md,get-started/sample-datasets/ontime.mdx,https://clickhouse.com/docs/getting-started/example-datasets/ontime,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/ontime,matched,a27fbee07ebfb654,true,a27fbee07ebfb654,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/stackoverflow,docs/getting-started/example-datasets/stackoverflow.md,get-started/sample-datasets/stackoverflow.mdx,https://clickhouse.com/docs/getting-started/example-datasets/stackoverflow,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/stackoverflow,matched,f0af9a16658cd62f,true,f0af9a16658cd62f,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/star-schema,docs/getting-started/example-datasets/star-schema.md,get-started/sample-datasets/star-schema.mdx,https://clickhouse.com/docs/getting-started/example-datasets/star-schema,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/star-schema,matched,2389d79262fecaaf,true,2389d79262fecaaf,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/tpcds,docs/getting-started/example-datasets/tpcds.md,get-started/sample-datasets/tpcds.mdx,https://clickhouse.com/docs/getting-started/example-datasets/tpcds,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/tpcds,matched,d236a4a62291d682,true,d236a4a62291d682,2026-05-09T09:39:38+00:00,false -/getting-started/example-datasets/tpch,docs/getting-started/example-datasets/tpch.md,get-started/sample-datasets/tpch.mdx,https://clickhouse.com/docs/getting-started/example-datasets/tpch,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/tpch,matched,4f7239d97f220911,true,4f7239d97f220911,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/tw-weather,docs/getting-started/example-datasets/tw-weather.md,get-started/sample-datasets/tw-weather.mdx,https://clickhouse.com/docs/getting-started/example-datasets/tw-weather,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/tw-weather,matched,df2e38e726ad5701,true,df2e38e726ad5701,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/uk-price-paid,docs/getting-started/example-datasets/uk-price-paid.md,get-started/sample-datasets/uk-price-paid.mdx,https://clickhouse.com/docs/getting-started/example-datasets/uk-price-paid,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/uk-price-paid,matched,4cc1991c7b87b22d,true,4cc1991c7b87b22d,2026-05-08T09:09:20+00:00,false -/getting-started/example-datasets/wikistat,docs/getting-started/example-datasets/wikistat.md,get-started/sample-datasets/wikistat.mdx,https://clickhouse.com/docs/getting-started/example-datasets/wikistat,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/wikistat,matched,067bee4f308eb8fb,false,,,false -/getting-started/example-datasets/youtube-dislikes,docs/getting-started/example-datasets/youtube-dislikes.md,get-started/sample-datasets/youtube-dislikes.mdx,https://clickhouse.com/docs/getting-started/example-datasets/youtube-dislikes,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/youtube-dislikes,matched,5c9a86027021d4fe,true,5c9a86027021d4fe,2026-05-09T17:02:01+00:00,false -/getting-started/playground,docs/getting-started/playground.md,get-started/sample-datasets/playground.mdx,https://clickhouse.com/docs/getting-started/playground,https://private-7c7dfe99.mintlify.app/get-started/sample-datasets/playground,matched,f92edbf5343e20d9,true,4767e57ddf5e2089,2026-05-08T09:09:20+00:00,false -/getting-started/quick-start/cloud,docs/getting-started/quick-start/cloud.mdx,get-started/setup/cloud.mdx,https://clickhouse.com/docs/getting-started/quick-start/cloud,https://private-7c7dfe99.mintlify.app/get-started/setup/cloud,matched,960691705a63f396,true,960691705a63f396,2026-05-19T11:54:08+00:00,false -/getting-started/quick-start/oss,docs/getting-started/quick-start/oss.mdx,get-started/oss/oss.mdx,https://clickhouse.com/docs/getting-started/quick-start/oss,https://private-7c7dfe99.mintlify.app/get-started/oss/oss,matched,f64d3e2b35f55490,true,f64d3e2b35f55490,2026-05-09T14:51:09+00:00,false -/guides/best-practices/sparse-primary-indexes,docs/guides/best-practices/sparse-primary-indexes.md,guides/cloud-oss/data-modelling/sparse-primary-indexes.mdx,https://clickhouse.com/docs/guides/best-practices/sparse-primary-indexes,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/data-modelling/sparse-primary-indexes,matched,63c6983ac8f3ca25,true,63c6983ac8f3ca25,2026-05-13T15:43:26+00:00,false -/guides/creating-tables,docs/guides/starter_guides/creating-tables.md,get-started/oss/starter-guides/creating-tables.mdx,https://clickhouse.com/docs/guides/creating-tables,https://private-7c7dfe99.mintlify.app/get-started/oss/starter-guides/creating-tables,matched,b6af438f625ba4c6,true,86d29edfe0e45bab,2026-05-08T09:09:20+00:00,false -/guides/developer/alternative-query-languages,docs/guides/developer/alternative-query-languages.md,concepts/features/configuration/settings/alternative-query-languages.mdx,https://clickhouse.com/docs/guides/developer/alternative-query-languages,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/settings/alternative-query-languages,matched,18d89c08b848c225,true,18d89c08b848c225,2026-05-08T09:09:20+00:00,false -/guides/developer/cascading-materialized-views,docs/guides/developer/cascading-materialized-views.md,concepts/features/materialized-views/cascading-materialized-views.mdx,https://clickhouse.com/docs/guides/developer/cascading-materialized-views,https://private-7c7dfe99.mintlify.app/concepts/features/materialized-views/cascading-materialized-views,matched,3957f570e6df3b67,true,de929d24863cbd89,2026-05-08T12:19:52+00:00,false -/guides/developer/debugging-memory-issues,docs/guides/developer/debugging-memory-issues.md,concepts/features/performance/troubleshoot/debugging-memory-issues.mdx,https://clickhouse.com/docs/guides/developer/debugging-memory-issues,https://private-7c7dfe99.mintlify.app/concepts/features/performance/troubleshoot/debugging-memory-issues,matched,608bf1f8f486fb7b,true,608bf1f8f486fb7b,2026-05-13T13:16:51+00:00,false -/guides/developer/deduplicating-inserts-on-retries,docs/guides/developer/deduplicating-inserts-on-retries.md,concepts/operations/insert/deduplicating-inserts-on-retries.mdx,https://clickhouse.com/docs/guides/developer/deduplicating-inserts-on-retries,https://private-7c7dfe99.mintlify.app/concepts/operations/insert/deduplicating-inserts-on-retries,matched,e7746a2deb43638a,true,e7746a2deb43638a,2026-05-07T14:49:41+00:00,false -/guides/developer/deduplication,docs/guides/developer/deduplication.md,concepts/operations/insert/deduplication.mdx,https://clickhouse.com/docs/guides/developer/deduplication,https://private-7c7dfe99.mintlify.app/concepts/operations/insert/deduplication,matched,f9aeae51221b7482,true,f9aeae51221b7482,2026-05-08T09:09:20+00:00,false -/guides/developer/dynamic-column-selection,docs/guides/developer/dynamic-column-selection.md,guides/cloud-oss/performance-and-monitoring/dynamic-column-selection.mdx,https://clickhouse.com/docs/guides/developer/dynamic-column-selection,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/performance-and-monitoring/dynamic-column-selection,matched,b2dcb07fb9a764eb,true,b2dcb07fb9a764eb,2026-05-08T12:19:52+00:00,false -/guides/developer/lightweight-delete,docs/guides/developer/lightweight-delete.md,concepts/operations/delete/lightweight-delete.mdx,https://clickhouse.com/docs/guides/developer/lightweight-delete,https://private-7c7dfe99.mintlify.app/concepts/operations/delete/lightweight-delete,matched,3343c0796b471782,true,3343c0796b471782,2026-05-08T11:28:37+00:00,false -/guides/developer/merge-table-function,docs/guides/developer/merge-table-function.md,guides/cloud-oss/data-modelling/merge-table-function.mdx,https://clickhouse.com/docs/guides/developer/merge-table-function,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/data-modelling/merge-table-function,matched,0e359696d3b55658,true,0e359696d3b55658,2026-05-08T12:19:52+00:00,false -/guides/developer/mutations,docs/guides/starter_guides/mutations.md,get-started/oss/starter-guides/mutations.mdx,https://clickhouse.com/docs/guides/developer/mutations,https://private-7c7dfe99.mintlify.app/get-started/oss/starter-guides/mutations,matched,0c746c3e874f91d7,true,0c746c3e874f91d7,2026-05-13T13:16:51+00:00,false -/guides/developer/overview,docs/guides/developer/index.md,concepts/advanced-guides/index.mdx,https://clickhouse.com/docs/guides/developer/overview,https://private-7c7dfe99.mintlify.app/concepts/advanced-guides,matched,5de6c401457b0dfb,true,ff571bfee3a04123,2026-05-08T09:09:20+00:00,false -/guides/developer/stored-procedures-and-prepared-statements,docs/guides/developer/stored-procedures-and-prepared-statements.md,guides/cloud-oss/data-modelling/stored-procedures-and-prepared-statements.mdx,https://clickhouse.com/docs/guides/developer/stored-procedures-and-prepared-statements,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/data-modelling/stored-procedures-and-prepared-statements,matched,a803f309cbac9563,true,a803f309cbac9563,2026-05-09T09:39:38+00:00,false -/guides/developer/time-series-filling-gaps,docs/guides/developer/time-series-filling-gaps.md,guides/real-time-analytics/time-series/time-series-filling-gaps.mdx,https://clickhouse.com/docs/guides/developer/time-series-filling-gaps,https://private-7c7dfe99.mintlify.app/guides/real-time-analytics/time-series/time-series-filling-gaps,matched,4b0b604654115f47,true,3b756f536f236634,2026-05-08T09:09:20+00:00,false -/guides/developer/transactional,docs/sql-reference/transactions.md,concepts/operations/insert/transactions.mdx,https://clickhouse.com/docs/guides/developer/transactional,https://private-7c7dfe99.mintlify.app/concepts/operations/insert/transactions,matched,a0e30e85a93f908e,true,a0e30e85a93f908e,2026-05-08T09:09:20+00:00,false -/guides/developer/ttl,docs/guides/developer/ttl.md,concepts/operations/delete/ttl.mdx,https://clickhouse.com/docs/guides/developer/ttl,https://private-7c7dfe99.mintlify.app/concepts/operations/delete/ttl,matched,51ac57439ff98f81,true,51ac57439ff98f81,2026-05-08T09:09:20+00:00,false -/guides/developer/understanding-query-execution-with-the-analyzer,docs/guides/developer/understanding-query-execution-with-the-analyzer.md,guides/cloud-oss/performance-and-monitoring/understanding-query-execution-with-the-analyzer.mdx,https://clickhouse.com/docs/guides/developer/understanding-query-execution-with-the-analyzer,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/performance-and-monitoring/understanding-query-execution-with-the-analyzer,matched,120434fe13197292,true,120434fe13197292,2026-05-08T09:09:20+00:00,false -/guides/generating-test-data,docs/guides/starter_guides/generating-test-data.md,get-started/oss/starter-guides/generating-test-data.mdx,https://clickhouse.com/docs/guides/generating-test-data,https://private-7c7dfe99.mintlify.app/get-started/oss/starter-guides/generating-test-data,matched,98ee586c7e2c0230,true,78dc777b79fafb0a,2026-05-08T09:09:20+00:00,false -/guides/inserting-data,docs/guides/starter_guides/inserting-data.md,get-started/oss/starter-guides/inserting-data.mdx,https://clickhouse.com/docs/guides/inserting-data,https://private-7c7dfe99.mintlify.app/get-started/oss/starter-guides/inserting-data,matched,0e190797730172e7,true,0e190797730172e7,2026-05-09T17:02:01+00:00,false -/guides/joining-tables,docs/guides/joining-tables.md,concepts/operations/select/joining-tables.mdx,https://clickhouse.com/docs/guides/joining-tables,https://private-7c7dfe99.mintlify.app/concepts/operations/select/joining-tables,matched,6a518a92ae9cdabf,true,6a518a92ae9cdabf,2026-05-07T14:49:41+00:00,false -/guides/manage-and-deploy-index,docs/guides/manage-and-deploy-index.md,,https://clickhouse.com/docs/guides/manage-and-deploy-index,,unmatched,54260ad275360657,false,,,false -/guides/replacing-merge-tree,docs/guides/developer/replacing-merge-tree.md,concepts/operations/update/replacing-merge-tree.mdx,https://clickhouse.com/docs/guides/replacing-merge-tree,https://private-7c7dfe99.mintlify.app/concepts/operations/update/replacing-merge-tree,matched,e9ab353f4ebf8636,true,e9ab353f4ebf8636,2026-05-08T09:09:20+00:00,false -/guides/separation-storage-compute,docs/guides/separation-storage-compute.md,guides/oss/deployment-and-scaling/separation-storage-compute.mdx,https://clickhouse.com/docs/guides/separation-storage-compute,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/separation-storage-compute,matched,aa13cd3a72637893,true,aa13cd3a72637893,2026-05-13T14:36:43+00:00,false -/guides/sizing-and-hardware-recommendations,docs/best-practices/sizing-and-hardware-recommendations.md,guides/oss/best-practices/sizing-and-hardware-recommendations.mdx,https://clickhouse.com/docs/guides/sizing-and-hardware-recommendations,https://private-7c7dfe99.mintlify.app/guides/oss/best-practices/sizing-and-hardware-recommendations,matched,4c336baeea5cec81,true,4d62bbe0c3cf4b15,2026-05-08T09:09:20+00:00,false -/guides/sre/configuring-ldap,docs/guides/sre/user-management/configuring-ldap.md,concepts/features/security/configuring-ldap.mdx,https://clickhouse.com/docs/guides/sre/configuring-ldap,https://private-7c7dfe99.mintlify.app/concepts/features/security/configuring-ldap,matched,3c5f7fc67fa9ba32,true,3c5f7fc67fa9ba32,2026-05-09T11:14:51+00:00,false -/guides/sre/configuring-tls-acme-client,docs/guides/sre/tls/configuring-tls-acme-client.md,concepts/features/security/tls/configuring-tls-acme-client.mdx,https://clickhouse.com/docs/guides/sre/configuring-tls-acme-client,https://private-7c7dfe99.mintlify.app/concepts/features/security/tls/configuring-tls-acme-client,matched,a7172c8d70b67153,true,a7172c8d70b67153,2026-05-08T09:09:20+00:00,false -/guides/sre/keeper/clickhouse-keeper,docs/guides/sre/keeper/index.md,guides/oss/deployment-and-scaling/keeper/index.mdx,https://clickhouse.com/docs/guides/sre/keeper/clickhouse-keeper,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/keeper,matched,63e2a806fa86aa09,true,63e2a806fa86aa09,2026-05-13T15:43:27+00:00,false -/guides/sre/network-ports,docs/guides/sre/network-ports.md,concepts/features/security/network-ports.mdx,https://clickhouse.com/docs/guides/sre/network-ports,https://private-7c7dfe99.mintlify.app/concepts/features/security/network-ports,matched,dd0d451dd57c7315,true,e6c8ae6e9d572a20,2026-05-08T09:09:20+00:00,false -/guides/sre/scaling-clusters,docs/guides/sre/scaling-clusters.md,guides/oss/deployment-and-scaling/scaling-clusters.mdx,https://clickhouse.com/docs/guides/sre/scaling-clusters,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/scaling-clusters,matched,898c8151d1d4b350,true,898c8151d1d4b350,2026-05-13T13:16:51+00:00,false -/guides/sre/ssl-user-auth,docs/guides/sre/user-management/ssl-user-auth.md,concepts/features/security/ssl-user-auth.mdx,https://clickhouse.com/docs/guides/sre/ssl-user-auth,https://private-7c7dfe99.mintlify.app/concepts/features/security/ssl-user-auth,matched,e01b0f38186c6ddf,true,0d78b0da59d1d2e1,2026-05-09T11:14:51+00:00,false -/guides/sre/tls,docs/guides/sre/tls/index.md,concepts/features/security/tls/index.mdx,https://clickhouse.com/docs/guides/sre/tls,https://private-7c7dfe99.mintlify.app/concepts/features/security/tls,matched,b04390f51bf1f598,true,b04390f51bf1f598,2026-05-07T14:49:41+00:00,false -/guides/sre/tls/configuring-tls,docs/guides/sre/tls/configuring-tls.md,concepts/features/security/tls/configuring-tls.mdx,https://clickhouse.com/docs/guides/sre/tls/configuring-tls,https://private-7c7dfe99.mintlify.app/concepts/features/security/tls/configuring-tls,matched,8e0ceee521976b5b,true,8e0ceee521976b5b,2026-05-13T15:43:25+00:00,false -/guides/troubleshooting,docs/guides/troubleshooting.md,get-started/oss/starter-guides/troubleshooting.mdx,https://clickhouse.com/docs/guides/troubleshooting,https://private-7c7dfe99.mintlify.app/get-started/oss/starter-guides/troubleshooting,matched,90eae81bd9fa9c7e,true,90eae81bd9fa9c7e,2026-05-08T09:09:20+00:00,false -/guides/working-with-arrays,docs/guides/starter_guides/working_with_arrays.md,guides/cloud-oss/working-with-arrays.mdx,https://clickhouse.com/docs/guides/working-with-arrays,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/working-with-arrays,matched,292cab0829b8c6ee,true,292cab0829b8c6ee,2026-05-13T15:43:26+00:00,false -/guides/working-with-joins,docs/guides/starter_guides/working_with_joins.md,guides/cloud-oss/working-with-joins.mdx,https://clickhouse.com/docs/guides/working-with-joins,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/working-with-joins,matched,d250ad1814890e6f,true,d250ad1814890e6f,2026-05-08T09:09:20+00:00,false -/guides/writing-queries,docs/guides/starter_guides/writing-queries.md,get-started/oss/starter-guides/writing-queries.mdx,https://clickhouse.com/docs/guides/writing-queries,https://private-7c7dfe99.mintlify.app/get-started/oss/starter-guides/writing-queries,matched,e19f84fa332a03b0,true,e19f84fa332a03b0,2026-05-08T13:01:57+00:00,false +/core/get-started/quick-start,docs/getting-started/quick-start/index.mdx,,https://clickhouse.com/docs/get-started/quick-start,,unmatched,42fe50c1e729beb1,false,,,false +/getting-started/example-datasets/,docs/getting-started/index.md,core/get-started/sample-datasets/index.mdx,https://clickhouse.com/docs/getting-started/example-datasets/,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/index,matched,e6122dc92e53cd0b,true,674779f4d18973aa,2026-05-08T20:59:48+00:00,false +/getting-started/example-datasets/amazon-reviews,docs/getting-started/example-datasets/amazon-reviews.md,core/get-started/sample-datasets/amazon-reviews.mdx,https://clickhouse.com/docs/getting-started/example-datasets/amazon-reviews,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/amazon-reviews,matched,ca42797c7300200d,true,ca42797c7300200d,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/amplab-benchmark,docs/getting-started/example-datasets/amplab-benchmark.md,core/get-started/sample-datasets/amplab-benchmark.mdx,https://clickhouse.com/docs/getting-started/example-datasets/amplab-benchmark,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/amplab-benchmark,matched,1d1ca4474fc25a6c,true,1d1ca4474fc25a6c,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/brown-benchmark,docs/getting-started/example-datasets/brown-benchmark.md,core/get-started/sample-datasets/brown-benchmark.mdx,https://clickhouse.com/docs/getting-started/example-datasets/brown-benchmark,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/brown-benchmark,matched,9206b8172e5adaad,true,9206b8172e5adaad,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/cell-towers,docs/getting-started/example-datasets/cell-towers.md,core/get-started/sample-datasets/cell-towers.mdx,https://clickhouse.com/docs/getting-started/example-datasets/cell-towers,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/cell-towers,matched,0cb34ed3c4fd0aed,true,0cb34ed3c4fd0aed,2026-05-08T11:18:28+00:00,false +/getting-started/example-datasets/covid19,docs/getting-started/example-datasets/covid19.md,core/get-started/sample-datasets/covid19.mdx,https://clickhouse.com/docs/getting-started/example-datasets/covid19,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/covid19,matched,f9888552898ecec0,true,f9888552898ecec0,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/criteo,docs/getting-started/example-datasets/criteo.md,core/get-started/sample-datasets/criteo.mdx,https://clickhouse.com/docs/getting-started/example-datasets/criteo,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/criteo,matched,de5a0b3a29562a37,true,de5a0b3a29562a37,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/dbpedia-dataset,docs/getting-started/example-datasets/dbpedia.md,core/get-started/sample-datasets/dbpedia.mdx,https://clickhouse.com/docs/getting-started/example-datasets/dbpedia-dataset,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/dbpedia,matched,c658b35c333a9b84,true,c658b35c333a9b84,2026-05-13T15:43:25+00:00,false +/getting-started/example-datasets/environmental-sensors,docs/getting-started/example-datasets/environmental-sensors.md,core/get-started/sample-datasets/environmental-sensors.mdx,https://clickhouse.com/docs/getting-started/example-datasets/environmental-sensors,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/environmental-sensors,matched,32916f14b8104181,true,32916f14b8104181,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/foursquare-places,docs/getting-started/example-datasets/foursquare-os-places.md,core/get-started/sample-datasets/foursquare-os-places.mdx,https://clickhouse.com/docs/getting-started/example-datasets/foursquare-places,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/foursquare-os-places,matched,068b866e905fa187,true,068b866e905fa187,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/github,docs/getting-started/example-datasets/github.md,core/get-started/sample-datasets/github.mdx,https://clickhouse.com/docs/getting-started/example-datasets/github,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/github,matched,62ff108179e59685,true,62ff108179e59685,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/github-events,docs/getting-started/example-datasets/github-events.md,core/get-started/sample-datasets/github-events.mdx,https://clickhouse.com/docs/getting-started/example-datasets/github-events,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/github-events,matched,b0a4bb65550f834d,true,b0a4bb65550f834d,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/hacker-news,docs/getting-started/example-datasets/hacker-news.md,core/get-started/sample-datasets/hacker-news.mdx,https://clickhouse.com/docs/getting-started/example-datasets/hacker-news,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/hacker-news,matched,b41cafd48b8803a7,true,b41cafd48b8803a7,2026-05-13T15:43:25+00:00,false +/getting-started/example-datasets/hackernews-vector-search-dataset,docs/getting-started/example-datasets/hacker-news-vector-search.md,core/get-started/sample-datasets/hacker-news-vector-search.mdx,https://clickhouse.com/docs/getting-started/example-datasets/hackernews-vector-search-dataset,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/hacker-news-vector-search,matched,f73d712822089e63,true,f73d712822089e63,2026-05-09T17:02:01+00:00,false +/getting-started/example-datasets/laion-400m-dataset,docs/getting-started/example-datasets/laion.md,core/get-started/sample-datasets/laion.mdx,https://clickhouse.com/docs/getting-started/example-datasets/laion-400m-dataset,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/laion,matched,0ae7e345a21808fb,true,0ae7e345a21808fb,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/laion-5b-dataset,docs/getting-started/example-datasets/laion5b.md,core/get-started/sample-datasets/laion5b.mdx,https://clickhouse.com/docs/getting-started/example-datasets/laion-5b-dataset,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/laion5b,matched,3b0b6bfe05ba8170,true,3b0b6bfe05ba8170,2026-05-13T15:43:26+00:00,false +/getting-started/example-datasets/menus,docs/getting-started/example-datasets/menus.md,core/get-started/sample-datasets/menus.mdx,https://clickhouse.com/docs/getting-started/example-datasets/menus,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/menus,matched,0c0e0a6cf9fefd23,true,0c0e0a6cf9fefd23,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/metrica,docs/getting-started/example-datasets/anon_web_analytics_metrica.md,core/get-started/sample-datasets/anon-web-analytics-metrica.mdx,https://clickhouse.com/docs/getting-started/example-datasets/metrica,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/anon-web-analytics-metrica,matched,a8c2e26a008e74fd,true,a8c2e26a008e74fd,2026-05-13T13:16:51+00:00,false +/getting-started/example-datasets/noaa,docs/getting-started/example-datasets/noaa.md,core/get-started/sample-datasets/noaa.mdx,https://clickhouse.com/docs/getting-started/example-datasets/noaa,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/noaa,matched,707ef06b299a5c16,true,707ef06b299a5c16,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/nyc-taxi,docs/getting-started/example-datasets/nyc-taxi.md,core/get-started/sample-datasets/nyc-taxi.mdx,https://clickhouse.com/docs/getting-started/example-datasets/nyc-taxi,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/nyc-taxi,matched,8fd814ace2327deb,true,8fd814ace2327deb,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/nypd_complaint_data,docs/getting-started/example-datasets/nypd_complaint_data.md,core/get-started/sample-datasets/nypd-complaint-data.mdx,https://clickhouse.com/docs/getting-started/example-datasets/nypd_complaint_data,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/nypd-complaint-data,matched,ec0425affd15c8e6,true,ec0425affd15c8e6,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/ontime,docs/getting-started/example-datasets/ontime.md,core/get-started/sample-datasets/ontime.mdx,https://clickhouse.com/docs/getting-started/example-datasets/ontime,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/ontime,matched,a27fbee07ebfb654,true,a27fbee07ebfb654,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/stackoverflow,docs/getting-started/example-datasets/stackoverflow.md,core/get-started/sample-datasets/stackoverflow.mdx,https://clickhouse.com/docs/getting-started/example-datasets/stackoverflow,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/stackoverflow,matched,f0af9a16658cd62f,true,f0af9a16658cd62f,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/star-schema,docs/getting-started/example-datasets/star-schema.md,core/get-started/sample-datasets/star-schema.mdx,https://clickhouse.com/docs/getting-started/example-datasets/star-schema,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/star-schema,matched,2389d79262fecaaf,true,2389d79262fecaaf,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/tpcds,docs/getting-started/example-datasets/tpcds.md,core/get-started/sample-datasets/tpcds.mdx,https://clickhouse.com/docs/getting-started/example-datasets/tpcds,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/tpcds,matched,d236a4a62291d682,true,d236a4a62291d682,2026-05-09T09:39:38+00:00,false +/getting-started/example-datasets/tpch,docs/getting-started/example-datasets/tpch.md,core/get-started/sample-datasets/tpch.mdx,https://clickhouse.com/docs/getting-started/example-datasets/tpch,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/tpch,matched,4f7239d97f220911,true,4f7239d97f220911,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/tw-weather,docs/getting-started/example-datasets/tw-weather.md,core/get-started/sample-datasets/tw-weather.mdx,https://clickhouse.com/docs/getting-started/example-datasets/tw-weather,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/tw-weather,matched,df2e38e726ad5701,true,df2e38e726ad5701,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/uk-price-paid,docs/getting-started/example-datasets/uk-price-paid.md,core/get-started/sample-datasets/uk-price-paid.mdx,https://clickhouse.com/docs/getting-started/example-datasets/uk-price-paid,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/uk-price-paid,matched,4cc1991c7b87b22d,true,4cc1991c7b87b22d,2026-05-08T09:09:20+00:00,false +/getting-started/example-datasets/wikistat,docs/getting-started/example-datasets/wikistat.md,core/get-started/sample-datasets/wikistat.mdx,https://clickhouse.com/docs/getting-started/example-datasets/wikistat,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/wikistat,matched,067bee4f308eb8fb,false,,,false +/getting-started/example-datasets/youtube-dislikes,docs/getting-started/example-datasets/youtube-dislikes.md,core/get-started/sample-datasets/youtube-dislikes.mdx,https://clickhouse.com/docs/getting-started/example-datasets/youtube-dislikes,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/youtube-dislikes,matched,5c9a86027021d4fe,true,5c9a86027021d4fe,2026-05-21T08:18:01+00:00,false +/getting-started/playground,docs/getting-started/playground.md,core/get-started/sample-datasets/playground.mdx,https://clickhouse.com/docs/getting-started/playground,https://private-7c7dfe99.mintlify.app/core/get-started/sample-datasets/playground,matched,f92edbf5343e20d9,true,4767e57ddf5e2089,2026-05-08T09:09:20+00:00,false +/getting-started/quick-start/cloud,docs/getting-started/quick-start/cloud.mdx,core/get-started/setup/cloud.mdx,https://clickhouse.com/docs/getting-started/quick-start/cloud,https://private-7c7dfe99.mintlify.app/core/get-started/setup/cloud,matched,960691705a63f396,true,960691705a63f396,2026-05-19T11:54:08+00:00,false +/getting-started/quick-start/oss,docs/getting-started/quick-start/oss.mdx,core/get-started/setup/self-managed/quick-install.mdx,https://clickhouse.com/docs/getting-started/quick-start/oss,https://private-7c7dfe99.mintlify.app/core/get-started/setup/self-managed/quick-install,matched,f64d3e2b35f55490,true,f64d3e2b35f55490,2026-05-09T14:51:09+00:00,false +/core/guides/best-practices/sparse-primary-indexes,docs/guides/best-practices/sparse-primary-indexes.md,core/guides/clickhouse/data-modelling/sparse-primary-indexes.mdx,https://clickhouse.com/docs/guides/best-practices/sparse-primary-indexes,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-modelling/sparse-primary-indexes,matched,63c6983ac8f3ca25,true,63c6983ac8f3ca25,2026-05-13T15:43:26+00:00,false +/core/guides/creating-tables,docs/guides/starter_guides/creating-tables.md,core/get-started/quickstarts/creating-tables.mdx,https://clickhouse.com/docs/guides/creating-tables,https://private-7c7dfe99.mintlify.app/core/get-started/quickstarts/creating-tables,matched,b6af438f625ba4c6,true,86d29edfe0e45bab,2026-05-08T09:09:20+00:00,false +/core/guides/developer/alternative-query-languages,docs/guides/developer/alternative-query-languages.md,core/concepts/features/configuration/settings/alternative-query-languages.mdx,https://clickhouse.com/docs/guides/developer/alternative-query-languages,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/settings/alternative-query-languages,matched,18d89c08b848c225,true,18d89c08b848c225,2026-05-08T09:09:20+00:00,false +/core/guides/developer/cascading-materialized-views,docs/guides/developer/cascading-materialized-views.md,core/concepts/features/materialized-views/cascading-materialized-views.mdx,https://clickhouse.com/docs/guides/developer/cascading-materialized-views,https://private-7c7dfe99.mintlify.app/core/concepts/features/materialized-views/cascading-materialized-views,matched,3957f570e6df3b67,true,de929d24863cbd89,2026-05-08T12:19:52+00:00,false +/core/guides/developer/debugging-memory-issues,docs/guides/developer/debugging-memory-issues.md,core/concepts/features/performance/troubleshoot/debugging-memory-issues.mdx,https://clickhouse.com/docs/guides/developer/debugging-memory-issues,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/troubleshoot/debugging-memory-issues,matched,608bf1f8f486fb7b,true,608bf1f8f486fb7b,2026-05-13T13:16:51+00:00,false +/core/guides/developer/deduplicating-inserts-on-retries,docs/guides/developer/deduplicating-inserts-on-retries.md,core/concepts/features/operations/insert/deduplicating-inserts-on-retries.mdx,https://clickhouse.com/docs/guides/developer/deduplicating-inserts-on-retries,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/insert/deduplicating-inserts-on-retries,matched,e7746a2deb43638a,true,e7746a2deb43638a,2026-05-07T14:49:41+00:00,false +/core/guides/developer/deduplication,docs/guides/developer/deduplication.md,core/concepts/features/operations/insert/deduplication.mdx,https://clickhouse.com/docs/guides/developer/deduplication,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/insert/deduplication,matched,f9aeae51221b7482,true,f9aeae51221b7482,2026-05-08T09:09:20+00:00,false +/core/guides/developer/dynamic-column-selection,docs/guides/developer/dynamic-column-selection.md,core/guides/clickhouse/performance-and-monitoring/dynamic-column-selection.mdx,https://clickhouse.com/docs/guides/developer/dynamic-column-selection,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/performance-and-monitoring/dynamic-column-selection,matched,b2dcb07fb9a764eb,true,b2dcb07fb9a764eb,2026-05-08T12:19:52+00:00,false +/core/guides/developer/lightweight-delete,docs/guides/developer/lightweight-delete.md,core/concepts/features/operations/delete/lightweight-delete.mdx,https://clickhouse.com/docs/guides/developer/lightweight-delete,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/delete/lightweight-delete,matched,3343c0796b471782,true,3343c0796b471782,2026-05-08T11:28:37+00:00,false +/core/guides/developer/merge-table-function,docs/guides/developer/merge-table-function.md,core/guides/clickhouse/data-modelling/merge-table-function.mdx,https://clickhouse.com/docs/guides/developer/merge-table-function,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-modelling/merge-table-function,matched,0e359696d3b55658,true,0e359696d3b55658,2026-05-08T12:19:52+00:00,false +/core/guides/developer/mutations,docs/guides/starter_guides/mutations.md,core/get-started/quickstarts/mutations.mdx,https://clickhouse.com/docs/guides/developer/mutations,https://private-7c7dfe99.mintlify.app/core/get-started/quickstarts/mutations,matched,0c746c3e874f91d7,true,0c746c3e874f91d7,2026-05-13T13:16:51+00:00,false +/core/guides/developer/overview,docs/guides/developer/index.md,core/guides/clickhouse/index.mdx,https://clickhouse.com/docs/guides/developer/overview,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/index,matched,5de6c401457b0dfb,true,ff571bfee3a04123,2026-05-08T09:09:20+00:00,false +/core/guides/developer/stored-procedures-and-prepared-statements,docs/guides/developer/stored-procedures-and-prepared-statements.md,core/guides/clickhouse/data-modelling/stored-procedures-and-prepared-statements.mdx,https://clickhouse.com/docs/guides/developer/stored-procedures-and-prepared-statements,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-modelling/stored-procedures-and-prepared-statements,matched,a803f309cbac9563,true,a803f309cbac9563,2026-05-09T09:39:38+00:00,false +/core/guides/developer/time-series-filling-gaps,docs/guides/developer/time-series-filling-gaps.md,core/guides/use-cases/real-time-analytics/time-series/time-series-filling-gaps.mdx,https://clickhouse.com/docs/guides/developer/time-series-filling-gaps,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/real-time-analytics/time-series/time-series-filling-gaps,matched,4b0b604654115f47,true,3b756f536f236634,2026-05-08T09:09:20+00:00,false +/core/guides/developer/transactional,docs/sql-reference/transactions.md,core/concepts/features/operations/insert/transactions.mdx,https://clickhouse.com/docs/guides/developer/transactional,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/insert/transactions,matched,a0e30e85a93f908e,true,a0e30e85a93f908e,2026-05-08T09:09:20+00:00,false +/core/guides/developer/ttl,docs/guides/developer/ttl.md,core/concepts/features/operations/delete/ttl.mdx,https://clickhouse.com/docs/guides/developer/ttl,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/delete/ttl,matched,51ac57439ff98f81,true,51ac57439ff98f81,2026-05-08T09:09:20+00:00,false +/core/guides/developer/understanding-query-execution-with-the-analyzer,docs/guides/developer/understanding-query-execution-with-the-analyzer.md,core/guides/clickhouse/performance-and-monitoring/understanding-query-execution-with-the-analyzer.mdx,https://clickhouse.com/docs/guides/developer/understanding-query-execution-with-the-analyzer,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/performance-and-monitoring/understanding-query-execution-with-the-analyzer,matched,120434fe13197292,true,120434fe13197292,2026-05-08T09:09:20+00:00,false +/core/guides/generating-test-data,docs/guides/starter_guides/generating-test-data.md,core/guides/clickhouse/data-modelling/generating-test-data.mdx,https://clickhouse.com/docs/guides/generating-test-data,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-modelling/generating-test-data,matched,98ee586c7e2c0230,true,78dc777b79fafb0a,2026-05-08T09:09:20+00:00,false +/core/guides/inserting-data,docs/guides/starter_guides/inserting-data.md,core/concepts/features/operations/insert/inserting-data.mdx,https://clickhouse.com/docs/guides/inserting-data,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/insert/inserting-data,matched,0e190797730172e7,true,0e190797730172e7,2026-05-09T17:02:01+00:00,false +/core/guides/joining-tables,docs/guides/joining-tables.md,core/concepts/features/operations/select/joining-tables.mdx,https://clickhouse.com/docs/guides/joining-tables,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/select/joining-tables,matched,6a518a92ae9cdabf,true,6a518a92ae9cdabf,2026-05-07T14:49:41+00:00,false +/core/guides/manage-and-deploy-index,docs/guides/manage-and-deploy-index.md,,https://clickhouse.com/docs/guides/manage-and-deploy-index,,unmatched,54260ad275360657,false,,,false +/core/guides/replacing-merge-tree,docs/guides/developer/replacing-merge-tree.md,core/concepts/features/operations/update/replacing-merge-tree.mdx,https://clickhouse.com/docs/guides/replacing-merge-tree,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/update/replacing-merge-tree,matched,e9ab353f4ebf8636,true,e9ab353f4ebf8636,2026-05-08T09:09:20+00:00,false +/core/guides/separation-storage-compute,docs/guides/separation-storage-compute.md,core/guides/oss/deployment-and-scaling/separation-storage-compute.mdx,https://clickhouse.com/docs/guides/separation-storage-compute,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/separation-storage-compute,matched,aa13cd3a72637893,true,aa13cd3a72637893,2026-05-13T14:36:43+00:00,false +/core/guides/sizing-and-hardware-recommendations,docs/best-practices/sizing-and-hardware-recommendations.md,core/guides/oss/best-practices/sizing-and-hardware-recommendations.mdx,https://clickhouse.com/docs/guides/sizing-and-hardware-recommendations,https://private-7c7dfe99.mintlify.app/core/guides/oss/best-practices/sizing-and-hardware-recommendations,matched,4c336baeea5cec81,true,4d62bbe0c3cf4b15,2026-05-08T09:09:20+00:00,false +/core/guides/sre/configuring-ldap,docs/guides/sre/user-management/configuring-ldap.md,core/concepts/features/security/configuring-ldap.mdx,https://clickhouse.com/docs/guides/sre/configuring-ldap,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/configuring-ldap,matched,3c5f7fc67fa9ba32,true,3c5f7fc67fa9ba32,2026-05-09T11:14:51+00:00,false +/core/guides/sre/configuring-tls-acme-client,docs/guides/sre/tls/configuring-tls-acme-client.md,core/concepts/features/security/tls/configuring-tls-acme-client.mdx,https://clickhouse.com/docs/guides/sre/configuring-tls-acme-client,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/tls/configuring-tls-acme-client,matched,a7172c8d70b67153,true,a7172c8d70b67153,2026-05-08T09:09:20+00:00,false +/core/guides/sre/keeper/clickhouse-keeper,docs/guides/sre/keeper/index.md,core/guides/oss/deployment-and-scaling/keeper/index.mdx,https://clickhouse.com/docs/guides/sre/keeper/clickhouse-keeper,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/keeper/index,matched,63e2a806fa86aa09,true,63e2a806fa86aa09,2026-05-13T15:43:27+00:00,false +/core/guides/sre/network-ports,docs/guides/sre/network-ports.md,core/concepts/features/security/network-ports.mdx,https://clickhouse.com/docs/guides/sre/network-ports,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/network-ports,matched,dd0d451dd57c7315,true,e6c8ae6e9d572a20,2026-05-08T09:09:20+00:00,false +/core/guides/sre/scaling-clusters,docs/guides/sre/scaling-clusters.md,core/guides/oss/deployment-and-scaling/scaling-clusters.mdx,https://clickhouse.com/docs/guides/sre/scaling-clusters,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/scaling-clusters,matched,898c8151d1d4b350,true,898c8151d1d4b350,2026-05-13T13:16:51+00:00,false +/core/guides/sre/ssl-user-auth,docs/guides/sre/user-management/ssl-user-auth.md,core/concepts/features/security/ssl-user-auth.mdx,https://clickhouse.com/docs/guides/sre/ssl-user-auth,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/ssl-user-auth,matched,e01b0f38186c6ddf,true,0d78b0da59d1d2e1,2026-05-09T11:14:51+00:00,false +/core/guides/sre/tls,docs/guides/sre/tls/index.md,core/concepts/features/security/tls/index.mdx,https://clickhouse.com/docs/guides/sre/tls,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/tls/index,matched,b04390f51bf1f598,true,b04390f51bf1f598,2026-05-07T14:49:41+00:00,false +/core/guides/sre/tls/configuring-tls,docs/guides/sre/tls/configuring-tls.md,core/concepts/features/security/tls/configuring-tls.mdx,https://clickhouse.com/docs/guides/sre/tls/configuring-tls,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/tls/configuring-tls,matched,8e0ceee521976b5b,true,8e0ceee521976b5b,2026-05-13T15:43:25+00:00,false +/core/guides/troubleshooting,docs/guides/troubleshooting.md,resources/support-center/troubleshooting/troubleshooting.mdx,https://clickhouse.com/docs/guides/troubleshooting,https://private-7c7dfe99.mintlify.app/resources/support-center/troubleshooting/troubleshooting,matched,90eae81bd9fa9c7e,true,90eae81bd9fa9c7e,2026-05-08T09:09:20+00:00,false +/core/guides/working-with-arrays,docs/guides/starter_guides/working_with_arrays.md,core/guides/clickhouse/working-with-arrays.mdx,https://clickhouse.com/docs/guides/working-with-arrays,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/working-with-arrays,matched,292cab0829b8c6ee,true,292cab0829b8c6ee,2026-05-13T15:43:26+00:00,false +/core/guides/working-with-joins,docs/guides/starter_guides/working_with_joins.md,core/guides/clickhouse/working-with-joins.mdx,https://clickhouse.com/docs/guides/working-with-joins,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/working-with-joins,matched,d250ad1814890e6f,true,d250ad1814890e6f,2026-05-08T09:09:20+00:00,false +/core/guides/writing-queries,docs/guides/starter_guides/writing-queries.md,core/get-started/quickstarts/writing-queries.mdx,https://clickhouse.com/docs/guides/writing-queries,https://private-7c7dfe99.mintlify.app/core/get-started/quickstarts/writing-queries,matched,e19f84fa332a03b0,true,e19f84fa332a03b0,2026-05-08T13:01:57+00:00,false /infrastructure/deployment-options,docs/cloud/features/05_infrastructure/deployment-options.md,products/cloud/features/infrastructure/deployment-options.mdx,https://clickhouse.com/docs/infrastructure/deployment-options,https://private-7c7dfe99.mintlify.app/products/cloud/features/infrastructure/deployment-options,matched,4b953a6d2489fbcc,true,4b953a6d2489fbcc,2026-05-13T13:16:51+00:00,false -/install,docs/getting-started/install/install.mdx,get-started/setup/self-managed/install.mdx,https://clickhouse.com/docs/install,https://private-7c7dfe99.mintlify.app/get-started/setup/self-managed/install,matched,97fb6ffc495e1b39,true,97fb6ffc495e1b39,2026-05-09T14:51:09+00:00,false -/install/advanced,docs/getting-started/install/advanced.md,get-started/setup/self-managed/advanced.mdx,https://clickhouse.com/docs/install/advanced,https://private-7c7dfe99.mintlify.app/get-started/setup/self-managed/advanced,matched,969d941a2d49b266,true,969d941a2d49b266,2026-05-08T09:09:20+00:00,false -/install/debian_ubuntu,docs/getting-started/install/debian_ubuntu.md,get-started/setup/self-managed/debian-ubuntu.mdx,https://clickhouse.com/docs/install/debian_ubuntu,https://private-7c7dfe99.mintlify.app/get-started/setup/self-managed/debian-ubuntu,matched,c66b9e2d0f4d5e38,true,c66b9e2d0f4d5e38,2026-05-09T14:41:10+00:00,false -/install/docker,docs/getting-started/install/docker.md,get-started/setup/self-managed/docker.mdx,https://clickhouse.com/docs/install/docker,https://private-7c7dfe99.mintlify.app/get-started/setup/self-managed/docker,matched,c4a33214adceb28b,true,c4a33214adceb28b,2026-05-09T14:41:10+00:00,false -/install/linux_other,docs/getting-started/install/other_linux.md,get-started/setup/self-managed/other-linux.mdx,https://clickhouse.com/docs/install/linux_other,https://private-7c7dfe99.mintlify.app/get-started/setup/self-managed/other-linux,matched,2beff12ea84429b1,true,2beff12ea84429b1,2026-05-09T14:41:11+00:00,false -/install/macOS,docs/getting-started/install/macos.md,get-started/setup/self-managed/macos.mdx,https://clickhouse.com/docs/install/macOS,https://private-7c7dfe99.mintlify.app/get-started/setup/self-managed/macos,matched,53b8019634b145bd,true,53b8019634b145bd,2026-05-09T14:41:11+00:00,false -/install/nixos,docs/getting-started/install/nixos.md,get-started/setup/self-managed/nixos.mdx,https://clickhouse.com/docs/install/nixos,https://private-7c7dfe99.mintlify.app/get-started/setup/self-managed/nixos,matched,60fa53acb957fe4f,true,60fa53acb957fe4f,2026-05-09T14:41:11+00:00,false -/install/quick-install,docs/getting-started/install/quick-install.md,get-started/setup/self-managed/quick-install.mdx,https://clickhouse.com/docs/install/quick-install,https://private-7c7dfe99.mintlify.app/get-started/setup/self-managed/quick-install,matched,a9f32ded1b5958de,true,a9f32ded1b5958de,2026-05-09T14:41:11+00:00,false -/install/redhat,docs/getting-started/install/redhat.md,get-started/setup/self-managed/redhat.mdx,https://clickhouse.com/docs/install/redhat,https://private-7c7dfe99.mintlify.app/get-started/setup/self-managed/redhat,matched,17f1e539b1b6e775,true,17f1e539b1b6e775,2026-05-09T14:41:11+00:00,false -/install/windows,docs/getting-started/install/windows.md,get-started/setup/self-managed/windows.mdx,https://clickhouse.com/docs/install/windows,https://private-7c7dfe99.mintlify.app/get-started/setup/self-managed/windows,matched,b13281a5fbb00f88,true,b13281a5fbb00f88,2026-05-09T14:41:11+00:00,false +/install,docs/getting-started/install/install.mdx,core/get-started/setup/install.mdx,https://clickhouse.com/docs/install,https://private-7c7dfe99.mintlify.app/core/get-started/setup/install,matched,97fb6ffc495e1b39,true,97fb6ffc495e1b39,2026-05-09T14:51:09+00:00,false +/install/advanced,docs/getting-started/install/advanced.md,core/get-started/setup/self-managed/advanced.mdx,https://clickhouse.com/docs/install/advanced,https://private-7c7dfe99.mintlify.app/core/get-started/setup/self-managed/advanced,matched,969d941a2d49b266,true,969d941a2d49b266,2026-05-08T09:09:20+00:00,false +/install/debian_ubuntu,docs/getting-started/install/debian_ubuntu.md,core/get-started/setup/self-managed/debian-ubuntu.mdx,https://clickhouse.com/docs/install/debian_ubuntu,https://private-7c7dfe99.mintlify.app/core/get-started/setup/self-managed/debian-ubuntu,matched,c66b9e2d0f4d5e38,true,c66b9e2d0f4d5e38,2026-05-09T14:41:10+00:00,false +/install/docker,docs/getting-started/install/docker.md,core/get-started/setup/self-managed/docker.mdx,https://clickhouse.com/docs/install/docker,https://private-7c7dfe99.mintlify.app/core/get-started/setup/self-managed/docker,matched,c4a33214adceb28b,true,c4a33214adceb28b,2026-05-09T14:41:10+00:00,false +/install/linux_other,docs/getting-started/install/other_linux.md,core/get-started/setup/self-managed/other-linux.mdx,https://clickhouse.com/docs/install/linux_other,https://private-7c7dfe99.mintlify.app/core/get-started/setup/self-managed/other-linux,matched,2beff12ea84429b1,true,2beff12ea84429b1,2026-05-09T14:41:11+00:00,false +/install/macOS,docs/getting-started/install/macos.md,core/get-started/setup/self-managed/macos.mdx,https://clickhouse.com/docs/install/macOS,https://private-7c7dfe99.mintlify.app/core/get-started/setup/self-managed/macos,matched,53b8019634b145bd,true,53b8019634b145bd,2026-05-09T14:41:11+00:00,false +/install/nixos,docs/getting-started/install/nixos.md,core/get-started/setup/self-managed/nixos.mdx,https://clickhouse.com/docs/install/nixos,https://private-7c7dfe99.mintlify.app/core/get-started/setup/self-managed/nixos,matched,60fa53acb957fe4f,true,60fa53acb957fe4f,2026-05-09T14:41:11+00:00,false +/install/quick-install,docs/getting-started/install/quick-install.md,,https://clickhouse.com/docs/install/quick-install,,unmatched,a9f32ded1b5958de,false,,,false +/install/redhat,docs/getting-started/install/redhat.md,core/get-started/setup/self-managed/redhat.mdx,https://clickhouse.com/docs/install/redhat,https://private-7c7dfe99.mintlify.app/core/get-started/setup/self-managed/redhat,matched,17f1e539b1b6e775,true,17f1e539b1b6e775,2026-05-09T14:41:11+00:00,false +/install/windows,docs/getting-started/install/windows.md,core/get-started/setup/self-managed/windows.mdx,https://clickhouse.com/docs/install/windows,https://private-7c7dfe99.mintlify.app/core/get-started/setup/self-managed/windows,matched,b13281a5fbb00f88,true,b13281a5fbb00f88,2026-05-09T14:41:11+00:00,false /integrations,docs/integrations/index.mdx,integrations/connectors/home.mdx,https://clickhouse.com/docs/integrations,https://private-7c7dfe99.mintlify.app/integrations/connectors/home,matched,d00bb1a1aad83498,true,d00bb1a1aad83498,2026-05-08T09:34:32+00:00,false /integrations/airbyte,docs/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md,integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/airbyte,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse,matched,2d7448b1256b9906,true,2d7448b1256b9906,2026-05-09T11:14:51+00:00,false /integrations/apache-beam,docs/integrations/data-ingestion/etl-tools/apache-beam.md,integrations/connectors/data-ingestion/etl-tools/apache-beam.mdx,https://clickhouse.com/docs/integrations/apache-beam,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/apache-beam,matched,df6bfe396ac5e67b,true,df6bfe396ac5e67b,2026-05-08T09:09:20+00:00,false /integrations/apache-flink,docs/integrations/data-ingestion/apache-flink/flink-connector.md,integrations/connectors/data-ingestion/apache-flink.mdx,https://clickhouse.com/docs/integrations/apache-flink,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/apache-flink,matched,44e43d82ba0a62e4,true,44e43d82ba0a62e4,2026-05-08T13:01:57+00:00,false -/integrations/apache-spark,docs/integrations/data-ingestion/apache-spark/index.md,integrations/connectors/data-ingestion/apache-spark/index.mdx,https://clickhouse.com/docs/integrations/apache-spark,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/apache-spark,matched,c2fbaf14aa1297ec,true,c2fbaf14aa1297ec,2026-05-08T11:53:27+00:00,false +/integrations/apache-spark,docs/integrations/data-ingestion/apache-spark/index.md,integrations/connectors/data-ingestion/apache-spark/index.mdx,https://clickhouse.com/docs/integrations/apache-spark,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/apache-spark/index,matched,c2fbaf14aa1297ec,true,c2fbaf14aa1297ec,2026-05-08T11:53:27+00:00,false /integrations/apache-spark/spark-jdbc,docs/integrations/data-ingestion/apache-spark/spark-jdbc.md,integrations/connectors/data-ingestion/apache-spark/spark-jdbc.mdx,https://clickhouse.com/docs/integrations/apache-spark/spark-jdbc,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/apache-spark/spark-jdbc,matched,a061d71f4a780021,true,a061d71f4a780021,2026-05-08T09:52:53+00:00,false /integrations/apache-spark/spark-native-connector,docs/integrations/data-ingestion/apache-spark/spark-native-connector.md,integrations/connectors/data-ingestion/apache-spark/spark-native-connector.mdx,https://clickhouse.com/docs/integrations/apache-spark/spark-native-connector,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/apache-spark/spark-native-connector,matched,f84fd4b2f752737e,true,f84fd4b2f752737e,2026-05-08T09:52:53+00:00,false /integrations/apify,docs/integrations/data-ingestion/etl-tools/apify-and-clickhouse.md,integrations/connectors/data-ingestion/etl-tools/apify-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/apify,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/apify-and-clickhouse,matched,dcc29ab87e4d2fbf,true,dcc29ab87e4d2fbf,2026-05-13T13:11:55+00:00,false /integrations/artie,docs/integrations/data-ingestion/etl-tools/artie-and-clickhouse.md,integrations/connectors/data-ingestion/community-integrations/artie-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/artie,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/community-integrations/artie-and-clickhouse,matched,4c4eaa3e44a1e06d,true,4c4eaa3e44a1e06d,2026-05-08T09:09:20+00:00,false /integrations/astrato,docs/integrations/data-visualization/community_integrations/astrato-and-clickhouse.md,integrations/connectors/data-visualization/community-integrations/astrato-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/astrato,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/community-integrations/astrato-and-clickhouse,matched,67ac362f101c1fc0,true,67ac362f101c1fc0,2026-05-08T09:16:50+00:00,false /integrations/audit-splunk,docs/integrations/tools/data-integration/splunk/index.md,integrations/connectors/data-integrations/integrations/splunk.mdx,https://clickhouse.com/docs/integrations/audit-splunk,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/integrations/splunk,matched,7b7eb559e5ba09bb,true,7b7eb559e5ba09bb,2026-05-08T09:09:20+00:00,false -/integrations/azure-data-factory,docs/integrations/data-ingestion/azure-data-factory/index.md,integrations/connectors/data-ingestion/azure/azure-data-factory/index.mdx,https://clickhouse.com/docs/integrations/azure-data-factory,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/azure/azure-data-factory,matched,5fab1af569d0848a,true,5fab1af569d0848a,2026-05-08T15:29:53+00:00,false +/integrations/azure-data-factory,docs/integrations/data-ingestion/azure-data-factory/index.md,integrations/connectors/data-ingestion/azure/azure-data-factory/index.mdx,https://clickhouse.com/docs/integrations/azure-data-factory,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/azure/azure-data-factory/index,matched,5fab1af569d0848a,true,5fab1af569d0848a,2026-05-08T15:29:53+00:00,false /integrations/azure-data-factory/http-interface,docs/integrations/data-ingestion/azure-data-factory/using_http_interface.md,integrations/connectors/data-ingestion/azure/azure-data-factory/using-http-interface.mdx,https://clickhouse.com/docs/integrations/azure-data-factory/http-interface,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/azure/azure-data-factory/using-http-interface,matched,4971fbf4922b8563,true,4971fbf4922b8563,2026-05-09T11:14:51+00:00,false /integrations/azure-data-factory/overview,docs/integrations/data-ingestion/azure-data-factory/overview.md,integrations/connectors/data-ingestion/azure/azure-data-factory/overview.mdx,https://clickhouse.com/docs/integrations/azure-data-factory/overview,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/azure/azure-data-factory/overview,matched,2d2806f3a1690fe7,true,2d2806f3a1690fe7,2026-05-08T09:09:20+00:00,false /integrations/azure-data-factory/table-function,docs/integrations/data-ingestion/azure-data-factory/using_azureblobstorage.md,integrations/connectors/data-ingestion/azure/azure-data-factory/using-azureblobstorage.mdx,https://clickhouse.com/docs/integrations/azure-data-factory/table-function,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/azure/azure-data-factory/using-azureblobstorage,matched,987313de1a805067,true,987313de1a805067,2026-05-09T11:14:51+00:00,false @@ -524,16 +524,16 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /integrations/clickpipes/aws-privatelink,docs/integrations/data-ingestion/clickpipes/aws-privatelink.md,integrations/clickpipes/aws-privatelink.mdx,https://clickhouse.com/docs/integrations/clickpipes/aws-privatelink,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/aws-privatelink,matched,68f116f3f3d17736,true,68f116f3f3d17736,2026-05-09T17:02:01+00:00,false /integrations/clickpipes/bigquery/get-started,docs/integrations/data-ingestion/clickpipes/bigquery/02_get-started.md,integrations/clickpipes/bigquery/get-started.mdx,https://clickhouse.com/docs/integrations/clickpipes/bigquery/get-started,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/bigquery/get-started,matched,498186e49d79feb4,true,498186e49d79feb4,2026-05-09T11:14:51+00:00,false /integrations/clickpipes/bigquery/overview,docs/integrations/data-ingestion/clickpipes/bigquery/01_overview.md,integrations/clickpipes/bigquery/overview.mdx,https://clickhouse.com/docs/integrations/clickpipes/bigquery/overview,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/bigquery/overview,matched,24371be405180aeb,true,24371be405180aeb,2026-05-08T11:28:15+00:00,false -/integrations/clickpipes/kafka,docs/integrations/data-ingestion/clickpipes/kafka/index.md,integrations/clickpipes/kafka/index.mdx,https://clickhouse.com/docs/integrations/clickpipes/kafka,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/kafka,matched,279f680f6df6a752,true,279f680f6df6a752,2026-05-13T13:16:51+00:00,false +/integrations/clickpipes/kafka,docs/integrations/data-ingestion/clickpipes/kafka/index.md,integrations/clickpipes/kafka/index.mdx,https://clickhouse.com/docs/integrations/clickpipes/kafka,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/kafka/index,matched,279f680f6df6a752,true,279f680f6df6a752,2026-05-13T13:16:51+00:00,false /integrations/clickpipes/kafka/best-practices,docs/integrations/data-ingestion/clickpipes/kafka/04_best_practices.md,integrations/clickpipes/kafka/best-practices.mdx,https://clickhouse.com/docs/integrations/clickpipes/kafka/best-practices,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/kafka/best-practices,matched,b992bc1349d59463,true,b992bc1349d59463,2026-05-13T13:16:51+00:00,false /integrations/clickpipes/kafka/create-your-first-kafka-clickpipe,docs/integrations/data-ingestion/clickpipes/kafka/01_create-kafka-clickpipe.md,integrations/clickpipes/kafka/create-kafka-clickpipe.mdx,https://clickhouse.com/docs/integrations/clickpipes/kafka/create-your-first-kafka-clickpipe,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/kafka/create-kafka-clickpipe,matched,0b30fc8916ac8a05,true,0b30fc8916ac8a05,2026-05-13T13:16:51+00:00,false /integrations/clickpipes/kafka/faq,docs/integrations/data-ingestion/clickpipes/kafka/05_faq.md,integrations/clickpipes/kafka/faq.mdx,https://clickhouse.com/docs/integrations/clickpipes/kafka/faq,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/kafka/faq,matched,0f6809d4943795a4,true,0f6809d4943795a4,2026-05-19T11:08:53+00:00,false /integrations/clickpipes/kafka/reference,docs/integrations/data-ingestion/clickpipes/kafka/03_reference.md,integrations/clickpipes/kafka/reference.mdx,https://clickhouse.com/docs/integrations/clickpipes/kafka/reference,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/kafka/reference,matched,0a12e02fd6418d2f,true,0a12e02fd6418d2f,2026-05-13T13:16:51+00:00,false /integrations/clickpipes/kafka/schema-registries,docs/integrations/data-ingestion/clickpipes/kafka/02_schema-registries.md,integrations/clickpipes/kafka/schema-registries.mdx,https://clickhouse.com/docs/integrations/clickpipes/kafka/schema-registries,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/kafka/schema-registries,matched,4f7fecf96fe712c8,true,4f7fecf96fe712c8,2026-05-13T13:16:51+00:00,false /integrations/clickpipes/kinesis,docs/integrations/data-ingestion/clickpipes/kinesis/01_overview.md,integrations/clickpipes/kinesis/overview.mdx,https://clickhouse.com/docs/integrations/clickpipes/kinesis,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/kinesis/overview,matched,9d706b5e4e3a9d63,true,9d706b5e4e3a9d63,2026-05-08T09:09:20+00:00,false -/integrations/clickpipes/kinesis-index,docs/integrations/data-ingestion/clickpipes/kinesis/index.md,integrations/clickpipes/kinesis/index.mdx,https://clickhouse.com/docs/integrations/clickpipes/kinesis-index,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/kinesis,matched,0ce1834bf473a345,true,0ce1834bf473a345,2026-05-08T20:59:48+00:00,false +/integrations/clickpipes/kinesis-index,docs/integrations/data-ingestion/clickpipes/kinesis/index.md,integrations/clickpipes/kinesis/index.mdx,https://clickhouse.com/docs/integrations/clickpipes/kinesis-index,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/kinesis/index,matched,0ce1834bf473a345,true,0ce1834bf473a345,2026-05-08T20:59:48+00:00,false /integrations/clickpipes/kinesis/auth,docs/integrations/data-ingestion/clickpipes/kinesis/02_auth.md,integrations/clickpipes/kinesis/auth.mdx,https://clickhouse.com/docs/integrations/clickpipes/kinesis/auth,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/kinesis/auth,matched,61f303577fccfa88,true,61f303577fccfa88,2026-05-09T14:52:53+00:00,false -/integrations/clickpipes/mongodb,docs/integrations/data-ingestion/clickpipes/mongodb/index.md,integrations/clickpipes/mongodb/index.mdx,https://clickhouse.com/docs/integrations/clickpipes/mongodb,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mongodb,matched,ce99c0e85a69018f,true,ce99c0e85a69018f,2026-05-09T11:14:51+00:00,false +/integrations/clickpipes/mongodb,docs/integrations/data-ingestion/clickpipes/mongodb/index.md,integrations/clickpipes/mongodb/index.mdx,https://clickhouse.com/docs/integrations/clickpipes/mongodb,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mongodb/index,matched,ce99c0e85a69018f,true,ce99c0e85a69018f,2026-05-09T11:14:51+00:00,false /integrations/clickpipes/mongodb/add_table,docs/integrations/data-ingestion/clickpipes/mongodb/add_table.md,integrations/clickpipes/mongodb/add-table.mdx,https://clickhouse.com/docs/integrations/clickpipes/mongodb/add_table,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mongodb/add-table,matched,fd1e6808c44ee773,true,fd1e6808c44ee773,2026-05-08T09:09:20+00:00,false /integrations/clickpipes/mongodb/datatypes,docs/integrations/data-ingestion/clickpipes/mongodb/datatypes.md,integrations/clickpipes/mongodb/datatypes.mdx,https://clickhouse.com/docs/integrations/clickpipes/mongodb/datatypes,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mongodb/datatypes,matched,884faf2fde588827,true,884faf2fde588827,2026-05-08T09:09:20+00:00,false /integrations/clickpipes/mongodb/faq,docs/integrations/data-ingestion/clickpipes/mongodb/faq.md,integrations/clickpipes/mongodb/faq.mdx,https://clickhouse.com/docs/integrations/clickpipes/mongodb/faq,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mongodb/faq,matched,e4cbf1f6c601789d,true,0af38378b9bbc177,2026-05-08T09:09:20+00:00,false @@ -549,7 +549,7 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /integrations/clickpipes/mongodb/sync_control,docs/integrations/data-ingestion/clickpipes/mongodb/controlling_sync.md,integrations/clickpipes/mongodb/controlling-sync.mdx,https://clickhouse.com/docs/integrations/clickpipes/mongodb/sync_control,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mongodb/controlling-sync,matched,c4b22ad6314f691a,true,c4b22ad6314f691a,2026-05-08T09:09:20+00:00,false /integrations/clickpipes/mongodb/table_resync,docs/integrations/data-ingestion/clickpipes/mongodb/table_resync.md,integrations/clickpipes/mongodb/table-resync.mdx,https://clickhouse.com/docs/integrations/clickpipes/mongodb/table_resync,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mongodb/table-resync,matched,6fefa2b1f320a857,true,6fefa2b1f320a857,2026-05-13T13:16:51+00:00,false /integrations/clickpipes/monitoring,docs/integrations/data-ingestion/clickpipes/monitoring.md,integrations/clickpipes/monitoring.mdx,https://clickhouse.com/docs/integrations/clickpipes/monitoring,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/monitoring,matched,324c9a7454e02e3e,true,38dbd515c12bcc99,2026-05-08T18:59:03+00:00,false -/integrations/clickpipes/mysql,docs/integrations/data-ingestion/clickpipes/mysql/index.md,integrations/clickpipes/mysql/index.mdx,https://clickhouse.com/docs/integrations/clickpipes/mysql,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mysql,matched,05d9ff0df1b6448b,true,05d9ff0df1b6448b,2026-05-09T11:14:51+00:00,false +/integrations/clickpipes/mysql,docs/integrations/data-ingestion/clickpipes/mysql/index.md,integrations/clickpipes/mysql/index.mdx,https://clickhouse.com/docs/integrations/clickpipes/mysql,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mysql/index,matched,05d9ff0df1b6448b,true,05d9ff0df1b6448b,2026-05-09T11:14:51+00:00,false /integrations/clickpipes/mysql/add_table,docs/integrations/data-ingestion/clickpipes/mysql/add_table.md,integrations/clickpipes/mysql/add-table.mdx,https://clickhouse.com/docs/integrations/clickpipes/mysql/add_table,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mysql/add-table,matched,7c09626c32cee58f,true,7c09626c32cee58f,2026-05-08T09:09:20+00:00,false /integrations/clickpipes/mysql/datatypes,docs/integrations/data-ingestion/clickpipes/mysql/datatypes.md,integrations/clickpipes/mysql/datatypes.mdx,https://clickhouse.com/docs/integrations/clickpipes/mysql/datatypes,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mysql/datatypes,matched,0e204c48d4b35a55,true,0e204c48d4b35a55,2026-05-08T09:09:20+00:00,false /integrations/clickpipes/mysql/faq,docs/integrations/data-ingestion/clickpipes/mysql/faq.md,integrations/clickpipes/mysql/faq.mdx,https://clickhouse.com/docs/integrations/clickpipes/mysql/faq,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/mysql/faq,matched,efb267f57522863b,true,c8ae53b33ca30907,2026-05-08T09:09:20+00:00,false @@ -577,7 +577,7 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /integrations/clickpipes/object-storage/s3/get-started,docs/integrations/data-ingestion/clickpipes/object-storage/amazon-s3/02_get-started.md,integrations/clickpipes/object-storage/amazon-s3/get-started.mdx,https://clickhouse.com/docs/integrations/clickpipes/object-storage/s3/get-started,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/object-storage/amazon-s3/get-started,matched,7c2cbfdd13f6c3b0,true,7c2cbfdd13f6c3b0,2026-05-08T11:28:15+00:00,false /integrations/clickpipes/object-storage/s3/overview,docs/integrations/data-ingestion/clickpipes/object-storage/amazon-s3/01_overview.md,integrations/clickpipes/object-storage/amazon-s3/overview.mdx,https://clickhouse.com/docs/integrations/clickpipes/object-storage/s3/overview,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/object-storage/amazon-s3/overview,matched,83d30e7fdc1a1dfd,true,83d30e7fdc1a1dfd,2026-05-19T11:48:22+00:00,false /integrations/clickpipes/object-storage/s3/unordered-mode,docs/integrations/data-ingestion/clickpipes/object-storage/amazon-s3/03_unordered-mode.md,integrations/clickpipes/object-storage/amazon-s3/unordered-mode.mdx,https://clickhouse.com/docs/integrations/clickpipes/object-storage/s3/unordered-mode,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/object-storage/amazon-s3/unordered-mode,matched,504bb964ccd05f43,true,504bb964ccd05f43,2026-05-08T09:09:20+00:00,false -/integrations/clickpipes/postgres,docs/integrations/data-ingestion/clickpipes/postgres/index.md,integrations/clickpipes/postgres/index.mdx,https://clickhouse.com/docs/integrations/clickpipes/postgres,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/postgres,matched,f44c1d447ff4e562,true,f44c1d447ff4e562,2026-05-09T11:14:51+00:00,false +/integrations/clickpipes/postgres,docs/integrations/data-ingestion/clickpipes/postgres/index.md,integrations/clickpipes/postgres/index.mdx,https://clickhouse.com/docs/integrations/clickpipes/postgres,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/postgres/index,matched,f44c1d447ff4e562,true,f44c1d447ff4e562,2026-05-09T11:14:51+00:00,false /integrations/clickpipes/postgres/add_table,docs/integrations/data-ingestion/clickpipes/postgres/add_table.md,integrations/clickpipes/postgres/add-table.mdx,https://clickhouse.com/docs/integrations/clickpipes/postgres/add_table,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/postgres/add-table,matched,3f1190541935e693,true,3f1190541935e693,2026-05-08T09:09:20+00:00,false /integrations/clickpipes/postgres/auth,docs/integrations/data-ingestion/clickpipes/postgres/auth.md,integrations/clickpipes/postgres/auth.mdx,https://clickhouse.com/docs/integrations/clickpipes/postgres/auth,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/postgres/auth,matched,56d97ce55ca29648,true,56d97ce55ca29648,2026-05-08T09:09:20+00:00,false /integrations/clickpipes/postgres/deduplication,docs/integrations/data-ingestion/clickpipes/postgres/deduplication.md,integrations/clickpipes/postgres/deduplication.mdx,https://clickhouse.com/docs/integrations/clickpipes/postgres/deduplication,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/postgres/deduplication,matched,9b88c2331afab826,true,9b88c2331afab826,2026-05-13T15:43:28+00:00,false @@ -609,33 +609,33 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /integrations/clickpipes/programmatic-access/openapi,docs/integrations/data-ingestion/clickpipes/programmatic-access/openapi.md,integrations/clickpipes/programmatic-access/openapi.mdx,https://clickhouse.com/docs/integrations/clickpipes/programmatic-access/openapi,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/programmatic-access/openapi,matched,da80afcd65289688,true,da80afcd65289688,2026-05-09T10:10:14+00:00,false /integrations/clickpipes/programmatic-access/terraform,docs/integrations/data-ingestion/clickpipes/programmatic-access/terraform.md,integrations/clickpipes/programmatic-access/terraform.mdx,https://clickhouse.com/docs/integrations/clickpipes/programmatic-access/terraform,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/programmatic-access/terraform,matched,bbffc34bb758ceb6,true,bbffc34bb758ceb6,2026-05-08T09:09:20+00:00,false /integrations/csharp,docs/integrations/language-clients/csharp.md,integrations/language-clients/csharp/overview.mdx,https://clickhouse.com/docs/integrations/csharp,https://private-7c7dfe99.mintlify.app/integrations/language-clients/csharp/overview,matched,1b65a8f8d3c7ff63,true,1b65a8f8d3c7ff63,2026-05-08T13:01:57+00:00,false -/integrations/data-formats,docs/integrations/data-ingestion/data-formats/intro.md,integrations/connectors/data-ingestion/data-formats/intro.mdx,https://clickhouse.com/docs/integrations/data-formats,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/intro,matched,1d969edc697cf4e8,true,93724ae160de6bb8,2026-05-08T09:09:20+00:00,false -/integrations/data-formats/arrow-avro-orc,docs/integrations/data-ingestion/data-formats/arrow-avro-orc.md,integrations/connectors/data-ingestion/data-formats/arrow-avro-orc.mdx,https://clickhouse.com/docs/integrations/data-formats/arrow-avro-orc,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/arrow-avro-orc,matched,c9cf4dd48ee325c4,true,81117b826442551d,2026-05-09T10:26:02+00:00,false -/integrations/data-formats/binary-native,docs/integrations/data-ingestion/data-formats/binary.md,integrations/connectors/data-ingestion/data-formats/binary.mdx,https://clickhouse.com/docs/integrations/data-formats/binary-native,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/binary,matched,e98f0f528ca4cd10,true,e98f0f528ca4cd10,2026-05-09T10:26:02+00:00,false -/integrations/data-formats/csv-tsv,docs/integrations/data-ingestion/data-formats/csv-tsv.md,integrations/connectors/data-ingestion/data-formats/csv-tsv.mdx,https://clickhouse.com/docs/integrations/data-formats/csv-tsv,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/csv-tsv,matched,039ec5cce533551f,true,dfa7d0a0c4f397d0,2026-05-09T10:26:02+00:00,false -/integrations/data-formats/json/exporting,docs/integrations/data-ingestion/data-formats/json/exporting.md,integrations/connectors/data-ingestion/data-formats/json/exporting.mdx,https://clickhouse.com/docs/integrations/data-formats/json/exporting,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/json/exporting,matched,9f8afe6b2891ee22,true,4d2ea53c6c8b773c,2026-05-08T09:09:20+00:00,false -/integrations/data-formats/json/inference,docs/integrations/data-ingestion/data-formats/json/inference.md,integrations/connectors/data-ingestion/data-formats/json/inference.mdx,https://clickhouse.com/docs/integrations/data-formats/json/inference,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/json/inference,matched,554de5cb153196dc,true,554de5cb153196dc,2026-05-08T09:09:20+00:00,false -/integrations/data-formats/json/loading,docs/integrations/data-ingestion/data-formats/json/loading.md,integrations/connectors/data-ingestion/data-formats/json/loading.mdx,https://clickhouse.com/docs/integrations/data-formats/json/loading,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/json/loading,matched,7e68214aebd431e7,true,7e68214aebd431e7,2026-05-13T13:16:51+00:00,false -/integrations/data-formats/json/other-approaches,docs/integrations/data-ingestion/data-formats/json/other.md,integrations/connectors/data-ingestion/data-formats/json/other.mdx,https://clickhouse.com/docs/integrations/data-formats/json/other-approaches,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/json/other,matched,3093ba6e503dc059,true,3093ba6e503dc059,2026-05-13T13:16:51+00:00,false -/integrations/data-formats/json/other-formats,docs/integrations/data-ingestion/data-formats/json/formats.md,integrations/connectors/data-ingestion/data-formats/json/formats.mdx,https://clickhouse.com/docs/integrations/data-formats/json/other-formats,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/json/formats,matched,5afa77aae29bb536,true,5afa77aae29bb536,2026-05-19T11:08:53+00:00,false -/integrations/data-formats/json/overview,docs/integrations/data-ingestion/data-formats/json/intro.md,integrations/connectors/data-ingestion/data-formats/json/intro.mdx,https://clickhouse.com/docs/integrations/data-formats/json/overview,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/json/intro,matched,efd5578457b25be5,true,efd5578457b25be5,2026-05-13T13:16:51+00:00,false -/integrations/data-formats/json/schema,docs/integrations/data-ingestion/data-formats/json/schema.md,integrations/connectors/data-ingestion/data-formats/json/schema.mdx,https://clickhouse.com/docs/integrations/data-formats/json/schema,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/json/schema,matched,1bb3e99ab8d35841,true,1bb3e99ab8d35841,2026-05-08T09:09:20+00:00,false -/integrations/data-formats/parquet,docs/integrations/data-ingestion/data-formats/parquet.md,integrations/connectors/data-ingestion/data-formats/parquet.mdx,https://clickhouse.com/docs/integrations/data-formats/parquet,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/parquet,matched,79551466bf417bc2,true,ea6eed1ae135ae13,2026-05-09T10:26:02+00:00,false -/integrations/data-formats/sql,docs/integrations/data-ingestion/data-formats/sql.md,integrations/connectors/data-ingestion/data-formats/sql.mdx,https://clickhouse.com/docs/integrations/data-formats/sql,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/sql,matched,af6090eed14991f5,true,e107fa87c3da3e96,2026-05-09T10:26:02+00:00,false -/integrations/data-formats/templates-regexp,docs/integrations/data-ingestion/data-formats/templates-regex.md,integrations/connectors/data-ingestion/data-formats/templates-regex.mdx,https://clickhouse.com/docs/integrations/data-formats/templates-regexp,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/data-formats/templates-regex,matched,9fb5df2e182ad6fd,true,7e26bc2a78b4518a,2026-05-09T10:26:02+00:00,false -/integrations/data-ingestion-overview,docs/integrations/data-ingestion/data-ingestion-index.md,integrations/connectors/data-ingestion/index.mdx,https://clickhouse.com/docs/integrations/data-ingestion-overview,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion,matched,31ba276416659518,true,31ba276416659518,2026-05-13T13:16:51+00:00,false +/integrations/data-formats,docs/integrations/data-ingestion/data-formats/intro.md,core/guides/clickhouse/data-formats/intro.mdx,https://clickhouse.com/docs/integrations/data-formats,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/intro,matched,1d969edc697cf4e8,true,93724ae160de6bb8,2026-05-08T09:09:20+00:00,false +/integrations/data-formats/arrow-avro-orc,docs/integrations/data-ingestion/data-formats/arrow-avro-orc.md,core/guides/clickhouse/data-formats/arrow-avro-orc.mdx,https://clickhouse.com/docs/integrations/data-formats/arrow-avro-orc,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/arrow-avro-orc,matched,c9cf4dd48ee325c4,true,81117b826442551d,2026-05-09T10:26:02+00:00,false +/integrations/data-formats/binary-native,docs/integrations/data-ingestion/data-formats/binary.md,core/guides/clickhouse/data-formats/binary.mdx,https://clickhouse.com/docs/integrations/data-formats/binary-native,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/binary,matched,e98f0f528ca4cd10,true,e98f0f528ca4cd10,2026-05-09T10:26:02+00:00,false +/integrations/data-formats/csv-tsv,docs/integrations/data-ingestion/data-formats/csv-tsv.md,core/guides/clickhouse/data-formats/csv-tsv.mdx,https://clickhouse.com/docs/integrations/data-formats/csv-tsv,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/csv-tsv,matched,039ec5cce533551f,true,dfa7d0a0c4f397d0,2026-05-09T10:26:02+00:00,false +/integrations/data-formats/json/exporting,docs/integrations/data-ingestion/data-formats/json/exporting.md,core/guides/clickhouse/data-formats/json/exporting.mdx,https://clickhouse.com/docs/integrations/data-formats/json/exporting,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/json/exporting,matched,9f8afe6b2891ee22,true,4d2ea53c6c8b773c,2026-05-08T09:09:20+00:00,false +/integrations/data-formats/json/inference,docs/integrations/data-ingestion/data-formats/json/inference.md,core/guides/clickhouse/data-formats/json/inference.mdx,https://clickhouse.com/docs/integrations/data-formats/json/inference,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/json/inference,matched,554de5cb153196dc,true,554de5cb153196dc,2026-05-08T09:09:20+00:00,false +/integrations/data-formats/json/loading,docs/integrations/data-ingestion/data-formats/json/loading.md,core/guides/clickhouse/data-formats/json/loading.mdx,https://clickhouse.com/docs/integrations/data-formats/json/loading,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/json/loading,matched,7e68214aebd431e7,true,7e68214aebd431e7,2026-05-13T13:16:51+00:00,false +/integrations/data-formats/json/other-approaches,docs/integrations/data-ingestion/data-formats/json/other.md,core/guides/clickhouse/data-formats/json/other.mdx,https://clickhouse.com/docs/integrations/data-formats/json/other-approaches,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/json/other,matched,3093ba6e503dc059,true,3093ba6e503dc059,2026-05-13T13:16:51+00:00,false +/integrations/data-formats/json/other-formats,docs/integrations/data-ingestion/data-formats/json/formats.md,core/guides/clickhouse/data-formats/json/formats.mdx,https://clickhouse.com/docs/integrations/data-formats/json/other-formats,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/json/formats,matched,5afa77aae29bb536,true,5afa77aae29bb536,2026-05-19T11:08:53+00:00,false +/integrations/data-formats/json/overview,docs/integrations/data-ingestion/data-formats/json/intro.md,core/guides/clickhouse/data-formats/json/intro.mdx,https://clickhouse.com/docs/integrations/data-formats/json/overview,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/json/intro,matched,efd5578457b25be5,true,efd5578457b25be5,2026-05-13T13:16:51+00:00,false +/integrations/data-formats/json/schema,docs/integrations/data-ingestion/data-formats/json/schema.md,core/guides/clickhouse/data-formats/json/schema.mdx,https://clickhouse.com/docs/integrations/data-formats/json/schema,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/json/schema,matched,1bb3e99ab8d35841,true,1bb3e99ab8d35841,2026-05-08T09:09:20+00:00,false +/integrations/data-formats/parquet,docs/integrations/data-ingestion/data-formats/parquet.md,core/guides/clickhouse/data-formats/parquet.mdx,https://clickhouse.com/docs/integrations/data-formats/parquet,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/parquet,matched,79551466bf417bc2,true,ea6eed1ae135ae13,2026-05-09T10:26:02+00:00,false +/integrations/data-formats/sql,docs/integrations/data-ingestion/data-formats/sql.md,core/guides/clickhouse/data-formats/sql.mdx,https://clickhouse.com/docs/integrations/data-formats/sql,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/sql,matched,af6090eed14991f5,true,e107fa87c3da3e96,2026-05-09T10:26:02+00:00,false +/integrations/data-formats/templates-regexp,docs/integrations/data-ingestion/data-formats/templates-regex.md,core/guides/clickhouse/data-formats/templates-regex.mdx,https://clickhouse.com/docs/integrations/data-formats/templates-regexp,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/data-formats/templates-regex,matched,9fb5df2e182ad6fd,true,7e26bc2a78b4518a,2026-05-09T10:26:02+00:00,false +/integrations/data-ingestion-overview,docs/integrations/data-ingestion/data-ingestion-index.md,integrations/connectors/data-ingestion/index.mdx,https://clickhouse.com/docs/integrations/data-ingestion-overview,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/index,matched,31ba276416659518,true,31ba276416659518,2026-05-13T13:16:51+00:00,false /integrations/data-ingestion/apache-spark/databricks,docs/integrations/data-ingestion/apache-spark/databricks.md,integrations/connectors/data-ingestion/apache-spark/databricks.mdx,https://clickhouse.com/docs/integrations/data-ingestion/apache-spark/databricks,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/apache-spark/databricks,matched,f1de33340089dfd1,true,f1de33340089dfd1,2026-05-08T20:59:48+00:00,false /integrations/data-ingestion/dbms/odbc-with-clickhouse,docs/integrations/data-ingestion/dbms/odbc-with-clickhouse.md,integrations/connectors/data-ingestion/odbc-with-clickhouse.mdx,https://clickhouse.com/docs/integrations/data-ingestion/dbms/odbc-with-clickhouse,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/odbc-with-clickhouse,matched,7e68dd457179debb,true,7e68dd457179debb,2026-05-08T09:09:20+00:00,false /integrations/data-ingestion/etl-tools/dlt-and-clickhouse,docs/integrations/data-ingestion/etl-tools/dlt-and-clickhouse.md,integrations/connectors/data-ingestion/etl-tools/dlt-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/data-ingestion/etl-tools/dlt-and-clickhouse,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/dlt-and-clickhouse,matched,de115719ef179dcb,true,de115719ef179dcb,2026-05-09T17:02:01+00:00,false /integrations/data-ingestion/etl-tools/sql-server-clickhouse,docs/integrations/data-ingestion/streamkap/sql-server-clickhouse.md,integrations/connectors/data-ingestion/streamkap/sql-server-clickhouse.mdx,https://clickhouse.com/docs/integrations/data-ingestion/etl-tools/sql-server-clickhouse,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/streamkap/sql-server-clickhouse,matched,d316ea89d04274c6,true,d316ea89d04274c6,2026-05-13T14:36:43+00:00,false /integrations/data-ingestion/insert-local-files,docs/integrations/data-ingestion/insert-local-files.md,integrations/connectors/data-ingestion/insert-local-files.mdx,https://clickhouse.com/docs/integrations/data-ingestion/insert-local-files,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/insert-local-files,matched,d751f0c2f9894026,true,efb2a784e25a0dcc,2026-05-08T13:01:57+00:00,false /integrations/data-ingestion/kafka/kafka-table-engine-named-collections,docs/integrations/data-ingestion/kafka/kafka-table-engine-named-collections.md,integrations/connectors/data-ingestion/kafka/kafka-table-engine-named-collections.mdx,https://clickhouse.com/docs/integrations/data-ingestion/kafka/kafka-table-engine-named-collections,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/kafka-table-engine-named-collections,matched,6164554f7c7024e0,true,e941926591006430,2026-05-08T09:09:20+00:00,false -/integrations/data-sources/index,docs/integrations/data-ingestion/data-sources-index.md,integrations/connectors/data-sources/index.mdx,https://clickhouse.com/docs/integrations/data-sources/index,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-sources,matched,17294a334761956c,true,b1a0f4e97b2ee183,2026-05-09T10:08:44+00:00,false -/integrations/data-visualization,docs/integrations/data-visualization/index.md,integrations/connectors/data-visualization/index.mdx,https://clickhouse.com/docs/integrations/data-visualization,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization,matched,14c2bbf89fcb19e9,true,14c2bbf89fcb19e9,2026-05-13T13:16:51+00:00,false +/integrations/data-sources/index,docs/integrations/data-ingestion/data-sources-index.md,integrations/connectors/data-sources/index.mdx,https://clickhouse.com/docs/integrations/data-sources/index,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-sources/index,matched,17294a334761956c,true,b1a0f4e97b2ee183,2026-05-09T10:08:44+00:00,false +/integrations/data-visualization,docs/integrations/data-visualization/index.md,integrations/connectors/data-visualization/index.mdx,https://clickhouse.com/docs/integrations/data-visualization,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/index,matched,14c2bbf89fcb19e9,true,14c2bbf89fcb19e9,2026-05-13T13:16:51+00:00,false /integrations/databrain,docs/integrations/data-visualization/community_integrations/databrain-and-clickhouse.md,integrations/connectors/data-visualization/community-integrations/databrain-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/databrain,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/community-integrations/databrain-and-clickhouse,matched,d85b73cbceb15460,true,d85b73cbceb15460,2026-05-08T09:16:50+00:00,false /integrations/datagrip,docs/integrations/sql-clients/datagrip.md,integrations/connectors/data-integrations/sql-clients/datagrip.mdx,https://clickhouse.com/docs/integrations/datagrip,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/sql-clients/datagrip,matched,f78cf84db45e5ddb,true,f78cf84db45e5ddb,2026-05-09T11:14:51+00:00,false /integrations/dbeaver,docs/integrations/sql-clients/dbeaver.md,integrations/connectors/data-integrations/sql-clients/dbeaver.mdx,https://clickhouse.com/docs/integrations/dbeaver,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/sql-clients/dbeaver,matched,c2875c079a4c147a,true,c2875c079a4c147a,2026-05-08T09:09:20+00:00,false -/integrations/dbt,docs/integrations/data-ingestion/etl-tools/dbt/index.md,integrations/connectors/data-ingestion/etl-tools/dbt/index.mdx,https://clickhouse.com/docs/integrations/dbt,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/dbt,matched,93372ab0447e766f,true,93372ab0447e766f,2026-05-13T13:16:51+00:00,false +/integrations/dbt,docs/integrations/data-ingestion/etl-tools/dbt/index.md,integrations/connectors/data-ingestion/etl-tools/dbt/index.mdx,https://clickhouse.com/docs/integrations/dbt,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/dbt/index,matched,93372ab0447e766f,true,93372ab0447e766f,2026-05-13T13:16:51+00:00,false /integrations/dbt/features-and-configurations,docs/integrations/data-ingestion/etl-tools/dbt/features-and-configurations.md,integrations/connectors/data-ingestion/etl-tools/dbt/features-and-configurations.mdx,https://clickhouse.com/docs/integrations/dbt/features-and-configurations,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/dbt/features-and-configurations,matched,3bdbabdb8fe1755a,true,3bdbabdb8fe1755a,2026-05-08T09:52:53+00:00,false /integrations/dbt/guides,docs/integrations/data-ingestion/etl-tools/dbt/guides.md,integrations/connectors/data-ingestion/etl-tools/dbt/guides.mdx,https://clickhouse.com/docs/integrations/dbt/guides,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/dbt/guides,matched,09d704788c667baa,true,09d704788c667baa,2026-05-19T11:48:22+00:00,false /integrations/dbt/materialization-materialized-view,docs/integrations/data-ingestion/etl-tools/dbt/materialization-materialized-view.md,integrations/connectors/data-ingestion/etl-tools/dbt/materialization-materialized-view.mdx,https://clickhouse.com/docs/integrations/dbt/materialization-materialized-view,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/dbt/materialization-materialized-view,matched,18ea08234f4c11fc,true,18ea08234f4c11fc,2026-05-19T11:08:53+00:00,false @@ -647,48 +647,48 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /integrations/dynamodb,docs/integrations/data-ingestion/dbms/dynamodb/index.md,integrations/clickpipes/dynamodb.mdx,https://clickhouse.com/docs/integrations/dynamodb,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/dynamodb,matched,1a8da2718d7c3073,true,1a8da2718d7c3073,2026-05-08T09:09:20+00:00,false /integrations/easypanel,docs/integrations/tools/data-integration/easypanel/index.md,integrations/connectors/data-integrations/integrations/easypanel.mdx,https://clickhouse.com/docs/integrations/easypanel,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/integrations/easypanel,matched,1393aaf825d4dab4,true,1393aaf825d4dab4,2026-05-08T09:16:50+00:00,false /integrations/embeddable,docs/integrations/data-visualization/community_integrations/embeddable-and-clickhouse.md,integrations/connectors/data-visualization/community-integrations/embeddable-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/embeddable,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/community-integrations/embeddable-and-clickhouse,matched,bae2d8dc339a9a44,true,bae2d8dc339a9a44,2026-05-08T09:16:50+00:00,false -/integrations/emqx,docs/integrations/data-ingestion/emqx/index.md,integrations/connectors/data-ingestion/emqx/index.mdx,https://clickhouse.com/docs/integrations/emqx,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/emqx,matched,a68fc8e0c95e6a16,true,a68fc8e0c95e6a16,2026-05-08T09:09:20+00:00,false +/integrations/emqx,docs/integrations/data-ingestion/emqx/index.md,integrations/connectors/data-ingestion/emqx/index.mdx,https://clickhouse.com/docs/integrations/emqx,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/emqx/index,matched,a68fc8e0c95e6a16,true,a68fc8e0c95e6a16,2026-05-08T09:09:20+00:00,false /integrations/estuary,docs/integrations/data-ingestion/etl-tools/estuary.md,integrations/connectors/data-ingestion/community-integrations/estuary.mdx,https://clickhouse.com/docs/integrations/estuary,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/community-integrations/estuary,matched,6d16f70186b47823,true,6d16f70186b47823,2026-05-09T17:02:01+00:00,false /integrations/explo,docs/integrations/data-visualization/community_integrations/explo-and-clickhouse.md,integrations/connectors/data-visualization/community-integrations/explo-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/explo,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/community-integrations/explo-and-clickhouse,matched,56bb6becb312894d,true,56bb6becb312894d,2026-05-08T09:16:50+00:00,false /integrations/fabi.ai,docs/integrations/data-visualization/community_integrations/fabi-and-clickhouse.md,integrations/connectors/data-visualization/community-integrations/fabi-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/fabi.ai,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/community-integrations/fabi-and-clickhouse,matched,308443b0fc36d737,true,308443b0fc36d737,2026-05-08T09:16:50+00:00,false -/integrations/fivetran,docs/integrations/data-ingestion/etl-tools/fivetran/index.md,integrations/connectors/data-ingestion/etl-tools/fivetran/index.mdx,https://clickhouse.com/docs/integrations/fivetran,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/fivetran,matched,200f856ac2b3a756,true,200f856ac2b3a756,2026-05-19T11:48:22+00:00,false +/integrations/fivetran,docs/integrations/data-ingestion/etl-tools/fivetran/index.md,integrations/connectors/data-ingestion/etl-tools/fivetran/index.mdx,https://clickhouse.com/docs/integrations/fivetran,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/fivetran/index,matched,200f856ac2b3a756,true,200f856ac2b3a756,2026-05-19T11:48:22+00:00,false /integrations/fivetran/reference,docs/integrations/data-ingestion/etl-tools/fivetran/reference.md,integrations/connectors/data-ingestion/etl-tools/fivetran/reference.mdx,https://clickhouse.com/docs/integrations/fivetran/reference,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/fivetran/reference,matched,6f9b3614e9d2a679,true,0cac5c6d28cbf48b,2026-05-08T09:09:20+00:00,false /integrations/fivetran/troubleshooting,docs/integrations/data-ingestion/etl-tools/fivetran/troubleshooting.md,integrations/connectors/data-ingestion/etl-tools/fivetran/troubleshooting.mdx,https://clickhouse.com/docs/integrations/fivetran/troubleshooting,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/fivetran/troubleshooting,matched,899e81f678d2ddbb,true,899e81f678d2ddbb,2026-05-13T13:16:51+00:00,false -/integrations/gcs,docs/integrations/data-ingestion/gcs/index.md,integrations/connectors/data-sources/gcs.mdx | integrations/connectors/data-ingestion/GCP/index.mdx,https://clickhouse.com/docs/integrations/gcs,,ambiguous,98c2d2851d078cc1,true,98c2d2851d078cc1,2026-05-13T15:43:29+00:00,false +/integrations/gcs,docs/integrations/data-ingestion/gcs/index.md,integrations/connectors/data-sources/gcs.mdx,https://clickhouse.com/docs/integrations/gcs,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-sources/gcs,matched,98c2d2851d078cc1,true,98c2d2851d078cc1,2026-05-13T15:43:29+00:00,false /integrations/glue,docs/integrations/data-ingestion/aws-glue/index.md,integrations/connectors/data-ingestion/AWS/glue.mdx,https://clickhouse.com/docs/integrations/glue,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/AWS/glue,matched,aa58fb5d98c323a2,true,aa58fb5d98c323a2,2026-05-08T09:09:20+00:00,false -/integrations/go,docs/integrations/language-clients/go/index.md,integrations/language-clients/go/index.mdx,https://clickhouse.com/docs/integrations/go,https://private-7c7dfe99.mintlify.app/integrations/language-clients/go,matched,d9db0a8d09dc5d32,true,d9db0a8d09dc5d32,2026-05-13T15:43:29+00:00,false +/integrations/go,docs/integrations/language-clients/go/index.md,integrations/language-clients/go/index.mdx,https://clickhouse.com/docs/integrations/go,https://private-7c7dfe99.mintlify.app/integrations/language-clients/go/index,matched,d9db0a8d09dc5d32,true,d9db0a8d09dc5d32,2026-05-13T15:43:29+00:00,false /integrations/google-dataflow/dataflow,docs/integrations/data-ingestion/google-dataflow/dataflow.md,integrations/connectors/data-ingestion/GCP/google-dataflow/dataflow.mdx,https://clickhouse.com/docs/integrations/google-dataflow/dataflow,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/GCP/google-dataflow/dataflow,matched,5b2cae824a71bab5,true,5b2cae824a71bab5,2026-05-08T09:09:20+00:00,false /integrations/google-dataflow/java-runner,docs/integrations/data-ingestion/google-dataflow/java-runner.md,integrations/connectors/data-ingestion/GCP/google-dataflow/java-runner.mdx,https://clickhouse.com/docs/integrations/google-dataflow/java-runner,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/GCP/google-dataflow/java-runner,matched,b1d94e9e1927efcb,true,b1d94e9e1927efcb,2026-05-08T09:09:20+00:00,false /integrations/google-dataflow/templates,docs/integrations/data-ingestion/google-dataflow/templates.md,integrations/connectors/data-ingestion/GCP/google-dataflow/templates.mdx,https://clickhouse.com/docs/integrations/google-dataflow/templates,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/GCP/google-dataflow/templates,matched,782f72a24dc75313,true,782f72a24dc75313,2026-05-08T09:09:20+00:00,false /integrations/google-dataflow/templates/bigquery-to-clickhouse,docs/integrations/data-ingestion/google-dataflow/templates/bigquery-to-clickhouse.md,integrations/connectors/data-ingestion/GCP/google-dataflow/templates/bigquery-to-clickhouse.mdx,https://clickhouse.com/docs/integrations/google-dataflow/templates/bigquery-to-clickhouse,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/GCP/google-dataflow/templates/bigquery-to-clickhouse,matched,6d5ca40abc4d02e1,true,6d5ca40abc4d02e1,2026-05-08T11:53:27+00:00,false -/integrations/grafana,docs/integrations/data-visualization/grafana/index.md,integrations/connectors/data-visualization/grafana/index.mdx,https://clickhouse.com/docs/integrations/grafana,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/grafana,matched,bef8c060adea90bb,true,bef8c060adea90bb,2026-05-08T12:19:52+00:00,false +/integrations/grafana,docs/integrations/data-visualization/grafana/index.md,integrations/connectors/data-visualization/grafana/index.mdx,https://clickhouse.com/docs/integrations/grafana,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/grafana/index,matched,bef8c060adea90bb,true,bef8c060adea90bb,2026-05-08T12:19:52+00:00,false /integrations/grafana/config,docs/integrations/data-visualization/grafana/config.md,integrations/connectors/data-visualization/grafana/config.mdx,https://clickhouse.com/docs/integrations/grafana/config,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/grafana/config,matched,0e54b4725fc4e4a7,true,0e54b4725fc4e4a7,2026-05-13T14:36:44+00:00,false /integrations/grafana/query-builder,docs/integrations/data-visualization/grafana/query-builder.md,integrations/connectors/data-visualization/grafana/query-builder.mdx,https://clickhouse.com/docs/integrations/grafana/query-builder,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/grafana/query-builder,matched,57310bca8b3bc836,true,57310bca8b3bc836,2026-05-08T09:09:20+00:00,false /integrations/hashboard,docs/integrations/data-visualization/community_integrations/hashboard-and-clickhouse.md,integrations/connectors/data-visualization/community-integrations/hashboard-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/hashboard,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/community-integrations/hashboard-and-clickhouse,matched,aab96e1df99af931,true,aab96e1df99af931,2026-05-08T09:16:50+00:00,false /integrations/holistics,docs/integrations/data-visualization/community_integrations/holistics-and-clickhouse.md,integrations/connectors/data-visualization/community-integrations/holistics-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/holistics,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/community-integrations/holistics-and-clickhouse,matched,3561e5fb3eecef6c,true,3561e5fb3eecef6c,2026-05-08T09:16:50+00:00,false -/integrations/java,docs/integrations/language-clients/java/index.md,integrations/language-clients/java/index.mdx,https://clickhouse.com/docs/integrations/java,https://private-7c7dfe99.mintlify.app/integrations/language-clients/java,matched,eacafd43475342f9,true,eacafd43475342f9,2026-05-09T09:39:38+00:00,false +/integrations/java,docs/integrations/language-clients/java/index.md,integrations/language-clients/java/index.mdx,https://clickhouse.com/docs/integrations/java,https://private-7c7dfe99.mintlify.app/integrations/language-clients/java/index,matched,eacafd43475342f9,true,eacafd43475342f9,2026-05-09T09:39:38+00:00,false /integrations/java/r2dbc,docs/integrations/language-clients/java/r2dbc.md,integrations/language-clients/java/r2dbc.mdx,https://clickhouse.com/docs/integrations/java/r2dbc,https://private-7c7dfe99.mintlify.app/integrations/language-clients/java/r2dbc,matched,4ce71c7bb8632a90,true,4ce71c7bb8632a90,2026-05-08T11:18:28+00:00,false /integrations/javascript,docs/integrations/language-clients/js.md,integrations/language-clients/js.mdx,https://clickhouse.com/docs/integrations/javascript,https://private-7c7dfe99.mintlify.app/integrations/language-clients/js,matched,40875ab04fd341e8,true,40875ab04fd341e8,2026-05-08T13:01:57+00:00,false /integrations/jdbc/jdbc-with-clickhouse,docs/integrations/data-ingestion/dbms/jdbc-with-clickhouse.md,integrations/connectors/data-ingestion/jdbc-with-clickhouse.mdx,https://clickhouse.com/docs/integrations/jdbc/jdbc-with-clickhouse,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/jdbc-with-clickhouse,matched,c079e3275d5ef73c,true,c079e3275d5ef73c,2026-05-08T09:09:20+00:00,false /integrations/jupysql,docs/integrations/sql-clients/jupysql.md,integrations/connectors/data-integrations/sql-clients/jupysql.mdx,https://clickhouse.com/docs/integrations/jupysql,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/sql-clients/jupysql,matched,dd735cc8d91200ad,true,dd735cc8d91200ad,2026-05-08T15:04:34+00:00,false -/integrations/kafka,docs/integrations/data-ingestion/kafka/index.md,integrations/connectors/data-ingestion/kafka/index.mdx,https://clickhouse.com/docs/integrations/kafka,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka,matched,cc037f352d02cb23,true,cc037f352d02cb23,2026-05-13T13:16:51+00:00,false +/integrations/kafka,docs/integrations/data-ingestion/kafka/index.md,integrations/connectors/data-ingestion/kafka/index.mdx,https://clickhouse.com/docs/integrations/kafka,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/index,matched,cc037f352d02cb23,true,cc037f352d02cb23,2026-05-13T13:16:51+00:00,false /integrations/kafka/clickhouse-kafka-connect-sink,docs/integrations/data-ingestion/kafka/kafka-clickhouse-connect-sink.md,integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink.mdx,https://clickhouse.com/docs/integrations/kafka/clickhouse-kafka-connect-sink,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink,matched,eb4085a358a349d5,true,eb4085a358a349d5,2026-05-19T11:08:53+00:00,false -/integrations/kafka/cloud/amazon-msk/,docs/integrations/data-ingestion/kafka/msk/index.md,integrations/connectors/data-ingestion/kafka/msk/index.mdx,https://clickhouse.com/docs/integrations/kafka/cloud/amazon-msk/,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/msk,matched,82bdd27dd7d4b4d3,true,82bdd27dd7d4b4d3,2026-05-08T12:19:52+00:00,false -/integrations/kafka/cloud/confluent,docs/integrations/data-ingestion/kafka/confluent/index.md,integrations/connectors/data-ingestion/kafka/confluent/index.mdx,https://clickhouse.com/docs/integrations/kafka/cloud/confluent,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/confluent,matched,0c6db7201b623180,true,064e508fcc9e2891,2026-05-07T14:49:41+00:00,false +/integrations/kafka/cloud/amazon-msk/,docs/integrations/data-ingestion/kafka/msk/index.md,integrations/connectors/data-ingestion/kafka/msk/index.mdx,https://clickhouse.com/docs/integrations/kafka/cloud/amazon-msk/,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/msk/index,matched,82bdd27dd7d4b4d3,true,82bdd27dd7d4b4d3,2026-05-08T12:19:52+00:00,false +/integrations/kafka/cloud/confluent,docs/integrations/data-ingestion/kafka/confluent/index.md,integrations/connectors/data-ingestion/kafka/confluent/index.mdx,https://clickhouse.com/docs/integrations/kafka/cloud/confluent,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/confluent/index,matched,0c6db7201b623180,true,064e508fcc9e2891,2026-05-07T14:49:41+00:00,false /integrations/kafka/cloud/confluent/custom-connector,docs/integrations/data-ingestion/kafka/confluent/custom-connector.md,integrations/connectors/data-ingestion/kafka/confluent/custom-connector.mdx,https://clickhouse.com/docs/integrations/kafka/cloud/confluent/custom-connector,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/confluent/custom-connector,matched,cc2f06b5582bd2bb,true,cc2f06b5582bd2bb,2026-05-08T12:19:52+00:00,false /integrations/kafka/cloud/confluent/http,docs/integrations/data-ingestion/kafka/confluent/kafka-connect-http.md,integrations/connectors/data-ingestion/kafka/confluent/kafka-connect-http.mdx,https://clickhouse.com/docs/integrations/kafka/cloud/confluent/http,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/confluent/kafka-connect-http,matched,4f1e5b6fb46f8b23,true,4f1e5b6fb46f8b23,2026-05-08T09:09:20+00:00,false /integrations/kafka/cloud/confluent/sink-connector,docs/integrations/data-ingestion/kafka/confluent/confluent-cloud.md,integrations/connectors/data-ingestion/kafka/confluent/confluent-cloud.mdx,https://clickhouse.com/docs/integrations/kafka/cloud/confluent/sink-connector,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/confluent/confluent-cloud,matched,b701a01b7da43c0e,true,b701a01b7da43c0e,2026-05-08T12:19:52+00:00,false /integrations/kafka/kafka-connect-jdbc,docs/integrations/data-ingestion/kafka/kafka-connect-jdbc.md,integrations/connectors/data-ingestion/kafka/kafka-connect-jdbc.mdx,https://clickhouse.com/docs/integrations/kafka/kafka-connect-jdbc,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/kafka-connect-jdbc,matched,ab7770cd6ae6fd55,true,ab7770cd6ae6fd55,2026-05-08T09:09:20+00:00,false /integrations/kafka/kafka-table-engine,docs/integrations/data-ingestion/kafka/kafka-table-engine.md,integrations/connectors/data-ingestion/kafka/kafka-table-engine.mdx,https://clickhouse.com/docs/integrations/kafka/kafka-table-engine,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/kafka-table-engine,matched,8ef7cdadd1715341,true,8ef7cdadd1715341,2026-05-08T09:09:20+00:00,false /integrations/kafka/kafka-vector,docs/integrations/data-ingestion/kafka/kafka-vector.md,integrations/connectors/data-ingestion/kafka/kafka-vector.mdx,https://clickhouse.com/docs/integrations/kafka/kafka-vector,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/kafka/kafka-vector,matched,0c4ea6fb79e92995,true,0c4ea6fb79e92995,2026-05-08T09:09:20+00:00,false -/integrations/language-clients,docs/integrations/language-clients/index.md,integrations/language-clients/index.mdx,https://clickhouse.com/docs/integrations/language-clients,https://private-7c7dfe99.mintlify.app/integrations/language-clients,matched,869048716a1c0746,true,869048716a1c0746,2026-05-08T15:04:34+00:00,false +/integrations/language-clients,docs/integrations/language-clients/index.md,integrations/language-clients/index.mdx,https://clickhouse.com/docs/integrations/language-clients,https://private-7c7dfe99.mintlify.app/integrations/language-clients/index,matched,869048716a1c0746,true,869048716a1c0746,2026-05-08T15:04:34+00:00,false /integrations/language-clients/go/clickhouse-api,docs/integrations/language-clients/go/clickhouse-api.md,integrations/language-clients/go/clickhouse-api.mdx,https://clickhouse.com/docs/integrations/language-clients/go/clickhouse-api,https://private-7c7dfe99.mintlify.app/integrations/language-clients/go/clickhouse-api,matched,d3df65f77d6d7a20,true,d3df65f77d6d7a20,2026-05-13T13:16:51+00:00,false /integrations/language-clients/go/config-reference,docs/integrations/language-clients/go/config-reference.md,integrations/language-clients/go/config-reference.mdx,https://clickhouse.com/docs/integrations/language-clients/go/config-reference,https://private-7c7dfe99.mintlify.app/integrations/language-clients/go/config-reference,matched,dc59aa7f92ed2cbd,true,dc59aa7f92ed2cbd,2026-05-19T11:48:22+00:00,false /integrations/language-clients/go/configuration,docs/integrations/language-clients/go/configuration.md,integrations/language-clients/go/configuration.mdx,https://clickhouse.com/docs/integrations/language-clients/go/configuration,https://private-7c7dfe99.mintlify.app/integrations/language-clients/go/configuration,matched,d53d886c3509c1cf,true,d53d886c3509c1cf,2026-05-19T11:48:22+00:00,false /integrations/language-clients/go/data-types,docs/integrations/language-clients/go/data-types.md,integrations/language-clients/go/data-types.mdx,https://clickhouse.com/docs/integrations/language-clients/go/data-types,https://private-7c7dfe99.mintlify.app/integrations/language-clients/go/data-types,matched,b4291d7c5ff0e806,true,b4291d7c5ff0e806,2026-05-13T13:16:51+00:00,false /integrations/language-clients/go/database-sql-api,docs/integrations/language-clients/go/database-sql-api.md,integrations/language-clients/go/database-sql-api.mdx,https://clickhouse.com/docs/integrations/language-clients/go/database-sql-api,https://private-7c7dfe99.mintlify.app/integrations/language-clients/go/database-sql-api,matched,7b977652859000ef,true,7b977652859000ef,2026-05-13T13:16:51+00:00,false -/integrations/language-clients/java/client,docs/integrations/language-clients/java/client/client.mdx,integrations/language-clients/java/client.mdx,https://clickhouse.com/docs/integrations/language-clients/java/client,https://private-7c7dfe99.mintlify.app/integrations/language-clients/java/client,matched,dbc7ac5fd60d82ef,true,dbc7ac5fd60d82ef,2026-05-09T15:40:17+00:00,false -/integrations/language-clients/java/jdbc,docs/integrations/language-clients/java/jdbc/jdbc.mdx,integrations/language-clients/java/jdbc.mdx,https://clickhouse.com/docs/integrations/language-clients/java/jdbc,https://private-7c7dfe99.mintlify.app/integrations/language-clients/java/jdbc,matched,0a8acb2d3a43905c,true,0a8acb2d3a43905c,2026-05-09T09:39:38+00:00,false +/integrations/language-clients/java/client,docs/integrations/language-clients/java/client/client.mdx,integrations/language-clients/java/client.mdx,https://clickhouse.com/docs/integrations/language-clients/java/client,https://private-7c7dfe99.mintlify.app/integrations/language-clients/java/client,matched,dbc7ac5fd60d82ef,true,dbc7ac5fd60d82ef,2026-05-21T09:09:46+00:00,false +/integrations/language-clients/java/jdbc,docs/integrations/language-clients/java/jdbc/jdbc.mdx,integrations/language-clients/java/jdbc.mdx,https://clickhouse.com/docs/integrations/language-clients/java/jdbc,https://private-7c7dfe99.mintlify.app/integrations/language-clients/java/jdbc,matched,0a8acb2d3a43905c,true,0a8acb2d3a43905c,2026-05-21T09:09:47+00:00,false /integrations/language-clients/java/jdbc_date_time_guide,docs/integrations/language-clients/java/date_time_guide.md,integrations/language-clients/java/date-time-guide.mdx,https://clickhouse.com/docs/integrations/language-clients/java/jdbc_date_time_guide,https://private-7c7dfe99.mintlify.app/integrations/language-clients/java/date-time-guide,matched,df5662c2a5c6dd23,true,df5662c2a5c6dd23,2026-05-13T13:16:51+00:00,false /integrations/language-clients/python/additional-options,docs/integrations/language-clients/python/additional-options.md,integrations/language-clients/python/additional-options.mdx,https://clickhouse.com/docs/integrations/language-clients/python/additional-options,https://private-7c7dfe99.mintlify.app/integrations/language-clients/python/additional-options,matched,b4988b4404edca44,true,b4988b4404edca44,2026-05-13T13:16:51+00:00,false /integrations/language-clients/python/advanced-inserting,docs/integrations/language-clients/python/advanced-inserting.md,integrations/language-clients/python/advanced-inserting.mdx,https://clickhouse.com/docs/integrations/language-clients/python/advanced-inserting,https://private-7c7dfe99.mintlify.app/integrations/language-clients/python/advanced-inserting,matched,9f16fedc31be270e,true,9f16fedc31be270e,2026-05-08T09:09:20+00:00,false @@ -703,23 +703,23 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /integrations/marimo,docs/integrations/sql-clients/marimo.md,integrations/connectors/data-integrations/sql-clients/marimo.mdx,https://clickhouse.com/docs/integrations/marimo,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/sql-clients/marimo,matched,d427bac7ec908e5a,true,d427bac7ec908e5a,2026-05-08T09:16:50+00:00,false /integrations/metabase,docs/integrations/data-visualization/metabase-and-clickhouse.md,integrations/connectors/data-visualization/metabase-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/metabase,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/metabase-and-clickhouse,matched,3cd575e6f4339e94,true,3cd575e6f4339e94,2026-05-08T09:09:20+00:00,false /integrations/middleware,docs/integrations/tools/data-integration/middleware/index.md,integrations/connectors/data-integrations/integrations/middleware.mdx,https://clickhouse.com/docs/integrations/middleware,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/integrations/middleware,matched,79602c2bc0d88ff7,true,79602c2bc0d88ff7,2026-05-08T09:09:20+00:00,false -/integrations/migration/object-storage-to-clickhouse,docs/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/03_object-storage-to-clickhouse.md,get-started/setup/migration-guides/other-methods/object-storage-to-clickhouse.mdx,https://clickhouse.com/docs/integrations/migration/object-storage-to-clickhouse,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/other-methods/object-storage-to-clickhouse,matched,bfb2e829231a0b46,true,bfb2e829231a0b46,2026-05-08T09:09:20+00:00,false -/integrations/migration/overview,docs/cloud/onboard/02_migrate/01_migration_guides/01_overview.md,get-started/setup/migration-guides/overview.mdx,https://clickhouse.com/docs/integrations/migration/overview,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/overview,matched,d535520b5d31257d,true,d535520b5d31257d,2026-05-13T13:25:34+00:00,false +/integrations/migration/object-storage-to-clickhouse,docs/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/03_object-storage-to-clickhouse.md,core/get-started/setup/migration-guides/other-methods/object-storage-to-clickhouse.mdx,https://clickhouse.com/docs/integrations/migration/object-storage-to-clickhouse,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/other-methods/object-storage-to-clickhouse,matched,bfb2e829231a0b46,true,bfb2e829231a0b46,2026-05-08T09:09:20+00:00,false +/integrations/migration/overview,docs/cloud/onboard/02_migrate/01_migration_guides/01_overview.md,core/get-started/setup/migration-guides/overview.mdx,https://clickhouse.com/docs/integrations/migration/overview,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/overview,matched,d535520b5d31257d,true,d535520b5d31257d,2026-05-13T13:25:34+00:00,false /integrations/minio,docs/integrations/data-ingestion/s3-minio.md,integrations/connectors/data-ingestion/s3-minio.mdx,https://clickhouse.com/docs/integrations/minio,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/s3-minio,matched,92ef29685f5ae146,true,c87a86b470f93336,2026-05-08T09:09:20+00:00,false /integrations/misc,docs/integrations/misc/index.md,integrations/connectors/tools/misc-index.mdx,https://clickhouse.com/docs/integrations/misc,https://private-7c7dfe99.mintlify.app/integrations/connectors/tools/misc-index,matched,59baa8254088be4c,true,f61340073664032a,2026-05-08T11:59:43+00:00,false /integrations/mitzu,docs/integrations/data-visualization/community_integrations/mitzu-and-clickhouse.md,integrations/connectors/data-visualization/community-integrations/mitzu-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/mitzu,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/community-integrations/mitzu-and-clickhouse,matched,d8b5b521aa6d31e7,true,d8b5b521aa6d31e7,2026-05-08T09:16:50+00:00,false -/integrations/mysql,docs/integrations/data-sources/mysql.md,integrations/connectors/data-ingestion/mysql.mdx | integrations/connectors/data-sources/mysql.mdx,https://clickhouse.com/docs/integrations/mysql,,ambiguous,c749ab5af449d835,true,c749ab5af449d835,2026-05-08T19:29:49+00:00,false +/integrations/mysql,docs/integrations/data-sources/mysql.md,integrations/connectors/data-sources/mysql.mdx,https://clickhouse.com/docs/integrations/mysql,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-sources/mysql,matched,c749ab5af449d835,true,c749ab5af449d835,2026-05-08T19:29:49+00:00,false /integrations/nifi,docs/integrations/data-ingestion/etl-tools/nifi-and-clickhouse.md,integrations/connectors/data-ingestion/etl-tools/nifi-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/nifi,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/nifi-and-clickhouse,matched,d72c5ce6da75c122,true,d72c5ce6da75c122,2026-05-08T09:16:50+00:00,false /integrations/omni,docs/integrations/data-visualization/omni-and-clickhouse.md,integrations/connectors/data-visualization/omni-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/omni,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/omni-and-clickhouse,matched,7d28b8ed8b03540f,true,7d28b8ed8b03540f,2026-05-08T09:09:20+00:00,false /integrations/pg_clickhouse,docs/integrations/tools/data-integration/pg_clickhouse/introduction.md,integrations/connectors/tools/pg_clickhouse/introduction.mdx,https://clickhouse.com/docs/integrations/pg_clickhouse,https://private-7c7dfe99.mintlify.app/integrations/connectors/tools/pg_clickhouse/introduction,matched,30bb8cf94e9ed8f6,true,30bb8cf94e9ed8f6,2026-05-19T11:08:53+00:00,false /integrations/pg_clickhouse/reference,docs/integrations/tools/data-integration/pg_clickhouse/reference.md,integrations/connectors/tools/pg_clickhouse/reference.mdx,https://clickhouse.com/docs/integrations/pg_clickhouse/reference,https://private-7c7dfe99.mintlify.app/integrations/connectors/tools/pg_clickhouse/reference,matched,cfc896515a56e4cb,true,cfc896515a56e4cb,2026-05-19T11:08:53+00:00,false /integrations/pg_clickhouse/tutorial,docs/integrations/tools/data-integration/pg_clickhouse/tutorial.md,integrations/connectors/tools/pg_clickhouse/tutorial.mdx,https://clickhouse.com/docs/integrations/pg_clickhouse/tutorial,https://private-7c7dfe99.mintlify.app/integrations/connectors/tools/pg_clickhouse/tutorial,matched,e05b2ab15e68b3a9,true,e05b2ab15e68b3a9,2026-05-19T11:08:53+00:00,false /integrations/postgresql,docs/integrations/data-sources/postgres.md,integrations/connectors/data-sources/postgres.mdx,https://clickhouse.com/docs/integrations/postgresql,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-sources/postgres,matched,fb2d804909b58e74,true,fb2d804909b58e74,2026-05-08T11:33:34+00:00,false -/integrations/postgresql/connecting-to-postgresql,docs/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql.md,integrations/clickpipes/postgres/connecting-to-postgresql.mdx | integrations/connectors/data-ingestion/postgresql/connecting-to-postgresql.mdx,https://clickhouse.com/docs/integrations/postgresql/connecting-to-postgresql,,ambiguous,dcef06bf7159ee84,true,dcef06bf7159ee84,2026-05-13T14:22:59+00:00,false -/integrations/postgresql/inserting-data,docs/integrations/data-ingestion/dbms/postgresql/inserting-data.md,integrations/clickpipes/postgres/inserting-data.mdx | integrations/connectors/data-ingestion/postgresql/inserting-data.mdx,https://clickhouse.com/docs/integrations/postgresql/inserting-data,,ambiguous,9d5890a4e8d959fc,true,9d5890a4e8d959fc,2026-05-08T19:29:49+00:00,false +/integrations/postgresql/connecting-to-postgresql,docs/integrations/data-ingestion/dbms/postgresql/connecting-to-postgresql.md,integrations/clickpipes/postgres/connecting-to-postgresql.mdx,https://clickhouse.com/docs/integrations/postgresql/connecting-to-postgresql,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/postgres/connecting-to-postgresql,matched,dcef06bf7159ee84,true,dcef06bf7159ee84,2026-05-13T14:22:59+00:00,false +/integrations/postgresql/inserting-data,docs/integrations/data-ingestion/dbms/postgresql/inserting-data.md,integrations/clickpipes/postgres/inserting-data.mdx,https://clickhouse.com/docs/integrations/postgresql/inserting-data,https://private-7c7dfe99.mintlify.app/integrations/clickpipes/postgres/inserting-data,matched,9d5890a4e8d959fc,true,9d5890a4e8d959fc,2026-05-08T19:29:49+00:00,false /integrations/powerbi,docs/integrations/data-visualization/powerbi-and-clickhouse.md,integrations/connectors/data-visualization/powerbi-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/powerbi,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/powerbi-and-clickhouse,matched,f4b554753cd9ae35,true,f4b554753cd9ae35,2026-05-13T14:36:44+00:00,false /integrations/prometheus,docs/cloud/features/08_monitoring/prometheus.md,products/cloud/features/monitoring/prometheus.mdx,https://clickhouse.com/docs/integrations/prometheus,https://private-7c7dfe99.mintlify.app/products/cloud/features/monitoring/prometheus,matched,b396202ab4b46f1c,true,b396202ab4b46f1c,2026-05-13T13:16:51+00:00,false -/integrations/python,docs/integrations/language-clients/python/index.md,integrations/language-clients/python/index.mdx,https://clickhouse.com/docs/integrations/python,https://private-7c7dfe99.mintlify.app/integrations/language-clients/python,matched,2b764e5eba64bde1,true,2b764e5eba64bde1,2026-05-08T11:59:43+00:00,false +/integrations/python,docs/integrations/language-clients/python/index.md,integrations/language-clients/python/index.mdx,https://clickhouse.com/docs/integrations/python,https://private-7c7dfe99.mintlify.app/integrations/language-clients/python/index,matched,2b764e5eba64bde1,true,2b764e5eba64bde1,2026-05-08T11:59:43+00:00,false /integrations/qstudio,docs/integrations/sql-clients/qstudio.md,integrations/connectors/data-integrations/sql-clients/qstudio.mdx,https://clickhouse.com/docs/integrations/qstudio,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/sql-clients/qstudio,matched,24048c24eb329217,true,24048c24eb329217,2026-05-08T09:16:50+00:00,false /integrations/querio,docs/integrations/data-visualization/community_integrations/querio-and-clickhouse.md,integrations/connectors/data-visualization/community-integrations/querio-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/querio,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/community-integrations/querio-and-clickhouse,matched,3987f8cbb6c763a2,true,3987f8cbb6c763a2,2026-05-09T17:02:01+00:00,false /integrations/quicksight,docs/integrations/data-visualization/quicksight-and-clickhouse.md,integrations/connectors/data-visualization/quicksight-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/quicksight,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/quicksight-and-clickhouse,matched,6d34c7aa55a8fa5d,true,6d34c7aa55a8fa5d,2026-05-13T14:36:45+00:00,false @@ -730,8 +730,8 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /integrations/s3/creating-iam-user-and-s3-bucket,docs/integrations/data-ingestion/s3/creating-an-s3-iam-role-and-bucket.md,integrations/connectors/data-ingestion/AWS/creating-an-s3-iam-role-and-bucket.mdx,https://clickhouse.com/docs/integrations/s3/creating-iam-user-and-s3-bucket,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/AWS/creating-an-s3-iam-role-and-bucket,matched,1928720df8484ff3,true,1928720df8484ff3,2026-05-08T09:09:20+00:00,false /integrations/s3/performance,docs/integrations/data-ingestion/s3/performance.md,integrations/connectors/data-ingestion/AWS/performance.mdx,https://clickhouse.com/docs/integrations/s3/performance,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/AWS/performance,matched,bbe8bd906ddd701b,true,bbe8bd906ddd701b,2026-05-08T13:01:57+00:00,false /integrations/splunk,docs/integrations/data-visualization/splunk-and-clickhouse.md,integrations/connectors/data-visualization/splunk-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/splunk,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/splunk-and-clickhouse,matched,62ab4d71c7d1892e,true,62ab4d71c7d1892e,2026-05-08T09:09:20+00:00,false -/integrations/sql-clients/,docs/integrations/sql-clients/index.md,integrations/connectors/data-integrations/sql-clients/index.mdx,https://clickhouse.com/docs/integrations/sql-clients/,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/sql-clients,matched,5ecc350c7f227e2d,true,2169b364f5f9a815,2026-05-08T09:09:20+00:00,false -/integrations/sql-clients/sql-console,docs/integrations/sql-clients/sql-console.md,integrations/connectors/data-integrations/sql-clients/sql-console.mdx,https://clickhouse.com/docs/integrations/sql-clients/sql-console,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/sql-clients/sql-console,matched,3d6303d0c5e7d476,true,3d6303d0c5e7d476,2026-05-08T09:09:20+00:00,false +/integrations/sql-clients/,docs/integrations/sql-clients/index.md,integrations/connectors/data-integrations/sql-clients/index.mdx,https://clickhouse.com/docs/integrations/sql-clients/,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/sql-clients/index,matched,5ecc350c7f227e2d,true,2169b364f5f9a815,2026-05-08T09:09:20+00:00,false +/integrations/sql-clients/sql-console,docs/integrations/sql-clients/sql-console.md,,https://clickhouse.com/docs/integrations/sql-clients/sql-console,,unmatched,3d6303d0c5e7d476,false,,,false /integrations/sttreamkap,docs/integrations/data-ingestion/streamkap/streamkap-and-clickhouse.md,integrations/connectors/data-ingestion/streamkap/streamkap-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/sttreamkap,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/streamkap/streamkap-and-clickhouse,matched,af0d913c51ae15c4,true,af0d913c51ae15c4,2026-05-08T09:09:20+00:00,false /integrations/superset,docs/integrations/data-visualization/superset-and-clickhouse.md,integrations/connectors/data-visualization/superset-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/superset,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/superset-and-clickhouse,matched,a0c29b72298bd8a3,true,a0c29b72298bd8a3,2026-05-09T11:14:51+00:00,false /integrations/tableau,docs/integrations/data-visualization/tableau/tableau-and-clickhouse.md,integrations/connectors/data-visualization/tableau/tableau-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/tableau,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/tableau/tableau-and-clickhouse,matched,7e2230293b488a9b,true,7e2230293b488a9b,2026-05-08T09:52:53+00:00,false @@ -739,131 +739,131 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /integrations/tableau/analysis-tips,docs/integrations/data-visualization/tableau/tableau-analysis-tips.md,integrations/connectors/data-visualization/tableau/tableau-analysis-tips.mdx,https://clickhouse.com/docs/integrations/tableau/analysis-tips,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/tableau/tableau-analysis-tips,matched,80d06c0a0ff8e6d8,true,b15852db7c8744e0,2026-05-08T09:09:20+00:00,false /integrations/tableau/connection-tips,docs/integrations/data-visualization/tableau/tableau-connection-tips.md,integrations/connectors/data-visualization/tableau/tableau-connection-tips.mdx,https://clickhouse.com/docs/integrations/tableau/connection-tips,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/tableau/tableau-connection-tips,matched,53713989212bfe2e,true,53713989212bfe2e,2026-05-08T09:09:20+00:00,false /integrations/tablumio,docs/integrations/sql-clients/tablum.md,integrations/connectors/data-integrations/sql-clients/tablum.mdx,https://clickhouse.com/docs/integrations/tablumio,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/sql-clients/tablum,matched,e9f2de8ab3913fdf,true,e9f2de8ab3913fdf,2026-05-08T09:16:50+00:00,false -/integrations/tools,docs/integrations/tools/index.md,integrations/connectors/tools/index.mdx,https://clickhouse.com/docs/integrations/tools,https://private-7c7dfe99.mintlify.app/integrations/connectors/tools,matched,94f62d0ae449b6ff,true,cbdf26fe14fdac5b,2026-05-07T14:49:41+00:00,false +/integrations/tools,docs/integrations/tools/index.md,integrations/connectors/tools/index.mdx,https://clickhouse.com/docs/integrations/tools,https://private-7c7dfe99.mintlify.app/integrations/connectors/tools/index,matched,94f62d0ae449b6ff,true,cbdf26fe14fdac5b,2026-05-07T14:49:41+00:00,false /integrations/tools/data-integrations,docs/integrations/tools/data-integration/index.md,integrations/connectors/tools/data-integration-index.mdx,https://clickhouse.com/docs/integrations/tools/data-integrations,https://private-7c7dfe99.mintlify.app/integrations/connectors/tools/data-integration-index,matched,37cc8781d3e86354,true,37cc8781d3e86354,2026-05-13T13:16:51+00:00,false /integrations/vector,docs/integrations/data-ingestion/etl-tools/vector-to-clickhouse.md,integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse.mdx,https://clickhouse.com/docs/integrations/vector,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse,matched,57967e36da185dc7,true,57967e36da185dc7,2026-05-08T09:09:20+00:00,false /integrations/zingdata,docs/integrations/data-visualization/community_integrations/zingdata-and-clickhouse.md,integrations/connectors/data-visualization/community-integrations/zingdata-and-clickhouse.mdx,https://clickhouse.com/docs/integrations/zingdata,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-visualization/community-integrations/zingdata-and-clickhouse,matched,b515f934e60c1251,true,b515f934e60c1251,2026-05-08T09:16:50+00:00,false -/interfaces/arrowflight,docs/integrations/interfaces/arrowflight.md,integrations/connectors/data-integrations/drivers-and-interfaces/arrowflight.mdx,https://clickhouse.com/docs/interfaces/arrowflight,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/arrowflight,matched,a2da273f48ba5a95,true,a2da273f48ba5a95,2026-05-19T11:08:53+00:00,false -/interfaces/cli,docs/interfaces/cli.md,integrations/connectors/data-integrations/drivers-and-interfaces/cli.mdx,https://clickhouse.com/docs/interfaces/cli,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/cli,matched,8497def37a58edb5,true,8497def37a58edb5,2026-05-08T09:09:20+00:00,false -/interfaces/client,docs/interfaces/client.md,integrations/connectors/data-integrations/drivers-and-interfaces/client.mdx,https://clickhouse.com/docs/interfaces/client,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/client,matched,c3109f2b192e00f8,true,c3109f2b192e00f8,2026-05-13T15:43:28+00:00,false -/interfaces/cpp,docs/integrations/language-clients/cpp.md,integrations/language-clients/cpp.mdx | integrations/connectors/data-integrations/drivers-and-interfaces/cpp.mdx,https://clickhouse.com/docs/interfaces/cpp,,ambiguous,c5ebd1fb86153394,true,51b1fb17abd7387f,2026-05-08T19:29:49+00:00,false -/interfaces/formats,docs/interfaces/formats.md,reference/formats/index.mdx,https://clickhouse.com/docs/interfaces/formats,https://private-7c7dfe99.mintlify.app/reference/formats,matched,df34f62628d8e02d,true,df34f62628d8e02d,2026-05-13T13:16:51+00:00,false -/interfaces/formats/Arrow,docs/interfaces/formats/Arrow/Arrow.md,reference/formats/Arrow/Arrow.mdx,https://clickhouse.com/docs/interfaces/formats/Arrow,https://private-7c7dfe99.mintlify.app/reference/formats/Arrow/Arrow,matched,fefd4875760cc33c,true,fefd4875760cc33c,2026-05-07T14:49:41+00:00,false -/interfaces/formats/ArrowStream,docs/interfaces/formats/Arrow/ArrowStream.md,reference/formats/Arrow/ArrowStream.mdx,https://clickhouse.com/docs/interfaces/formats/ArrowStream,https://private-7c7dfe99.mintlify.app/reference/formats/Arrow/ArrowStream,matched,e26bd50b67b6a445,false,,,false -/interfaces/formats/Avro,docs/interfaces/formats/Avro/Avro.md,reference/formats/Avro/Avro.mdx,https://clickhouse.com/docs/interfaces/formats/Avro,https://private-7c7dfe99.mintlify.app/reference/formats/Avro/Avro,matched,aa68e4488567e4ec,true,aa68e4488567e4ec,2026-05-09T14:41:34+00:00,false -/interfaces/formats/AvroConfluent,docs/interfaces/formats/Avro/AvroConfluent.md,reference/formats/Avro/AvroConfluent.mdx,https://clickhouse.com/docs/interfaces/formats/AvroConfluent,https://private-7c7dfe99.mintlify.app/reference/formats/Avro/AvroConfluent,matched,c922737f2307ceec,true,c922737f2307ceec,2026-05-13T13:16:51+00:00,false -/interfaces/formats/BSONEachRow,docs/interfaces/formats/BSONEachRow.md,reference/formats/BSONEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/BSONEachRow,https://private-7c7dfe99.mintlify.app/reference/formats/BSONEachRow,matched,5405382560ae38c8,true,5405382560ae38c8,2026-05-08T09:09:20+00:00,false -/interfaces/formats/Buffers,docs/interfaces/formats/Buffers.md,reference/formats/Buffers.mdx,https://clickhouse.com/docs/interfaces/formats/Buffers,https://private-7c7dfe99.mintlify.app/reference/formats/Buffers,matched,e7fd70effa797248,true,e7fd70effa797248,2026-05-07T14:49:41+00:00,false -/interfaces/formats/CSV,docs/interfaces/formats/CSV/CSV.md,reference/formats/CSV/CSV.mdx,https://clickhouse.com/docs/interfaces/formats/CSV,https://private-7c7dfe99.mintlify.app/reference/formats/CSV/CSV,matched,78c8f7d218a9c211,true,78c8f7d218a9c211,2026-05-08T09:09:20+00:00,false -/interfaces/formats/CSVWithNames,docs/interfaces/formats/CSV/CSVWithNames.md,reference/formats/CSV/CSVWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/CSVWithNames,https://private-7c7dfe99.mintlify.app/reference/formats/CSV/CSVWithNames,matched,c042f748c77a461d,true,c042f748c77a461d,2026-05-08T09:09:20+00:00,false -/interfaces/formats/CSVWithNamesAndTypes,docs/interfaces/formats/CSV/CSVWithNamesAndTypes.md,reference/formats/CSV/CSVWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/CSVWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/reference/formats/CSV/CSVWithNamesAndTypes,matched,c626b9222d67c0a1,true,c626b9222d67c0a1,2026-05-08T11:53:27+00:00,false -/interfaces/formats/CapnProto,docs/interfaces/formats/CapnProto.md,reference/formats/CapnProto.mdx,https://clickhouse.com/docs/interfaces/formats/CapnProto,https://private-7c7dfe99.mintlify.app/reference/formats/CapnProto,matched,e52f05211d11daf4,true,e52f05211d11daf4,2026-05-09T09:39:38+00:00,false -/interfaces/formats/CustomSeparated,docs/interfaces/formats/CustomSeparated/CustomSeparated.md,reference/formats/CustomSeparated/CustomSeparated.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparated,https://private-7c7dfe99.mintlify.app/reference/formats/CustomSeparated/CustomSeparated,matched,2b4ac034aba018ed,true,2b4ac034aba018ed,2026-05-09T09:39:38+00:00,false -/interfaces/formats/CustomSeparatedIgnoreSpaces,docs/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.md,reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparatedIgnoreSpaces,https://private-7c7dfe99.mintlify.app/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces,matched,27bd6d01dce2d644,false,,,false -/interfaces/formats/CustomSeparatedIgnoreSpacesWithNames,docs/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.md,reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparatedIgnoreSpacesWithNames,https://private-7c7dfe99.mintlify.app/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames,matched,4cfca9fae37346c2,false,,,false -/interfaces/formats/CustomSeparatedIgnoreSpacesWithNamesAndTypes,docs/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.md,reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparatedIgnoreSpacesWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes,matched,8cde4367a08c4c85,false,,,false -/interfaces/formats/CustomSeparatedWithNames,docs/interfaces/formats/CustomSeparated/CustomSeparatedWithNames.md,reference/formats/CustomSeparated/CustomSeparatedWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparatedWithNames,https://private-7c7dfe99.mintlify.app/reference/formats/CustomSeparated/CustomSeparatedWithNames,matched,1dd4bcf22efaf403,true,1dd4bcf22efaf403,2026-05-07T14:49:41+00:00,false -/interfaces/formats/CustomSeparatedWithNamesAndTypes,docs/interfaces/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.md,reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparatedWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes,matched,31443088162bd3a0,true,31443088162bd3a0,2026-05-08T09:09:20+00:00,false -/interfaces/formats/DWARF,docs/interfaces/formats/DWARF.md,reference/formats/DWARF.mdx,https://clickhouse.com/docs/interfaces/formats/DWARF,https://private-7c7dfe99.mintlify.app/reference/formats/DWARF,matched,c2f203731c8694cf,true,c2f203731c8694cf,2026-05-08T09:09:20+00:00,false -/interfaces/formats/Form,docs/interfaces/formats/Form.md,reference/formats/Form.mdx,https://clickhouse.com/docs/interfaces/formats/Form,https://private-7c7dfe99.mintlify.app/reference/formats/Form,matched,c9a05803f13e7580,false,,,false -/interfaces/formats/Hash,docs/interfaces/formats/Hash.md,reference/formats/Hash.mdx,https://clickhouse.com/docs/interfaces/formats/Hash,https://private-7c7dfe99.mintlify.app/reference/formats/Hash,matched,1126bfe846bb5fcd,false,,,false -/interfaces/formats/HiveText,docs/interfaces/formats/HiveText.md,reference/formats/HiveText.mdx,https://clickhouse.com/docs/interfaces/formats/HiveText,https://private-7c7dfe99.mintlify.app/reference/formats/HiveText,matched,22c4567427f06c4f,false,,,false -/interfaces/formats/JSON,docs/interfaces/formats/JSON/JSON.md,reference/formats/JSON/JSON.mdx,https://clickhouse.com/docs/interfaces/formats/JSON,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSON,matched,fe45037d34e9b052,true,fe45037d34e9b052,2026-05-07T15:41:11+00:00,false -/interfaces/formats/JSON/format-settings,docs/interfaces/formats/JSON/format-settings.md,reference/formats/JSON/format-settings.mdx,https://clickhouse.com/docs/interfaces/formats/JSON/format-settings,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/format-settings,matched,d58e38a4b38f0454,true,d58e38a4b38f0454,2026-05-08T20:59:51+00:00,false -/interfaces/formats/JSONAsObject,docs/interfaces/formats/JSON/JSONAsObject.md,reference/formats/JSON/JSONAsObject.mdx,https://clickhouse.com/docs/interfaces/formats/JSONAsObject,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONAsObject,matched,535b7ebcc2bbcc05,true,535b7ebcc2bbcc05,2026-05-07T14:49:41+00:00,false -/interfaces/formats/JSONAsString,docs/interfaces/formats/JSON/JSONAsString.md,reference/formats/JSON/JSONAsString.mdx,https://clickhouse.com/docs/interfaces/formats/JSONAsString,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONAsString,matched,b777d33223c2f6e1,true,b777d33223c2f6e1,2026-05-08T09:09:20+00:00,false -/interfaces/formats/JSONColumns,docs/interfaces/formats/JSON/JSONColumns.md,reference/formats/JSON/JSONColumns.mdx,https://clickhouse.com/docs/interfaces/formats/JSONColumns,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONColumns,matched,8fd5347285441089,true,8fd5347285441089,2026-05-08T09:09:20+00:00,false -/interfaces/formats/JSONColumnsWithMetadata,docs/interfaces/formats/JSON/JSONColumnsWithMetadata.md,reference/formats/JSON/JSONColumnsWithMetadata.mdx,https://clickhouse.com/docs/interfaces/formats/JSONColumnsWithMetadata,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONColumnsWithMetadata,matched,96f0f82692a94d11,true,96f0f82692a94d11,2026-05-09T09:39:38+00:00,false -/interfaces/formats/JSONCompact,docs/interfaces/formats/JSON/JSONCompact.md,reference/formats/JSON/JSONCompact.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompact,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONCompact,matched,bb371d742e1c3d8b,true,bb371d742e1c3d8b,2026-05-09T09:39:38+00:00,false -/interfaces/formats/JSONCompactColumns,docs/interfaces/formats/JSON/JSONCompactColumns.md,reference/formats/JSON/JSONCompactColumns.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactColumns,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONCompactColumns,matched,90eb1bd6cd208752,true,90eb1bd6cd208752,2026-05-08T09:09:20+00:00,false -/interfaces/formats/JSONCompactEachRow,docs/interfaces/formats/JSON/JSONCompactEachRow.md,reference/formats/JSON/JSONCompactEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactEachRow,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONCompactEachRow,matched,54f6ee288acad577,true,54f6ee288acad577,2026-05-09T09:39:38+00:00,false -/interfaces/formats/JSONCompactEachRowWithNames,docs/interfaces/formats/JSON/JSONCompactEachRowWithNames.md,reference/formats/JSON/JSONCompactEachRowWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactEachRowWithNames,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONCompactEachRowWithNames,matched,b37e005c51f403fc,true,b37e005c51f403fc,2026-05-09T09:39:38+00:00,false -/interfaces/formats/JSONCompactEachRowWithNamesAndTypes,docs/interfaces/formats/JSON/JSONCompactEachRowWithNamesAndTypes.md,reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactEachRowWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes,matched,9c79376ce670521b,true,9c79376ce670521b,2026-05-09T09:39:38+00:00,false -/interfaces/formats/JSONCompactEachRowWithProgress,docs/interfaces/formats/JSON/JSONCompactEachRowWithProgress.md,reference/formats/JSON/JSONCompactEachRowWithProgress.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactEachRowWithProgress,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONCompactEachRowWithProgress,matched,a1fbebb255566158,false,,,false -/interfaces/formats/JSONCompactStrings,docs/interfaces/formats/JSON/JSONCompactStrings.md,reference/formats/JSON/JSONCompactStrings.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactStrings,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONCompactStrings,matched,5792c89f06fcaed3,true,5792c89f06fcaed3,2026-05-09T09:39:38+00:00,false -/interfaces/formats/JSONCompactStringsEachRow,docs/interfaces/formats/JSON/JSONCompactStringsEachRow.md,reference/formats/JSON/JSONCompactStringsEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactStringsEachRow,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONCompactStringsEachRow,matched,cf8035df5e02498f,true,cf8035df5e02498f,2026-05-09T09:39:38+00:00,false -/interfaces/formats/JSONCompactStringsEachRowWithNames,docs/interfaces/formats/JSON/JSONCompactStringsEachRowWithNames.md,reference/formats/JSON/JSONCompactStringsEachRowWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactStringsEachRowWithNames,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONCompactStringsEachRowWithNames,matched,6dadcbfab042a7bc,true,6dadcbfab042a7bc,2026-05-09T09:39:38+00:00,false -/interfaces/formats/JSONCompactStringsEachRowWithNamesAndTypes,docs/interfaces/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.md,reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactStringsEachRowWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes,matched,0d3df994d73dcce5,true,0d3df994d73dcce5,2026-05-08T09:09:20+00:00,false -/interfaces/formats/JSONCompactStringsEachRowWithProgress,docs/interfaces/formats/JSON/JSONCompactStringsEachRowWithProgress.md,reference/formats/JSON/JSONCompactStringsEachRowWithProgress.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactStringsEachRowWithProgress,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONCompactStringsEachRowWithProgress,matched,fb5ace8ecf41cd7a,true,fb5ace8ecf41cd7a,2026-05-07T14:49:41+00:00,false -/interfaces/formats/JSONEachRow,docs/interfaces/formats/JSON/JSONEachRow.md,reference/formats/JSON/JSONEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/JSONEachRow,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONEachRow,matched,d64cf47163473324,true,d64cf47163473324,2026-05-07T15:41:11+00:00,false -/interfaces/formats/JSONEachRowWithProgress,docs/interfaces/formats/JSON/JSONEachRowWithProgress.md,reference/formats/JSON/JSONEachRowWithProgress.mdx,https://clickhouse.com/docs/interfaces/formats/JSONEachRowWithProgress,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONEachRowWithProgress,matched,f49e9e3f91b64b35,true,f49e9e3f91b64b35,2026-05-09T09:39:38+00:00,false -/interfaces/formats/JSONLines,docs/interfaces/formats/JSON/JSONLines.md,reference/formats/JSON/JSONLines.mdx,https://clickhouse.com/docs/interfaces/formats/JSONLines,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONLines,matched,e3e518cc255f6764,true,e3e518cc255f6764,2026-05-07T15:41:11+00:00,false -/interfaces/formats/JSONObjectEachRow,docs/interfaces/formats/JSON/JSONObjectEachRow.md,reference/formats/JSON/JSONObjectEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/JSONObjectEachRow,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONObjectEachRow,matched,8bbad16681851331,true,8bbad16681851331,2026-05-19T11:08:53+00:00,false -/interfaces/formats/JSONStrings,docs/interfaces/formats/JSON/JSONStrings.md,reference/formats/JSON/JSONStrings.mdx,https://clickhouse.com/docs/interfaces/formats/JSONStrings,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONStrings,matched,ac07bacf3135df09,true,ac07bacf3135df09,2026-05-09T09:39:38+00:00,false -/interfaces/formats/JSONStringsEachRow,docs/interfaces/formats/JSON/JSONStringsEachRow.md,reference/formats/JSON/JSONStringsEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/JSONStringsEachRow,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONStringsEachRow,matched,d28f12f9ff28bee7,true,d28f12f9ff28bee7,2026-05-09T09:39:38+00:00,false -/interfaces/formats/JSONStringsEachRowWithProgress,docs/interfaces/formats/JSON/JSONStringsEachRowWithProgress.md,reference/formats/JSON/JSONStringsEachRowWithProgress.mdx,https://clickhouse.com/docs/interfaces/formats/JSONStringsEachRowWithProgress,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/JSONStringsEachRowWithProgress,matched,31a8fa488c7303d5,false,,,false -/interfaces/formats/LineAsString,docs/interfaces/formats/LineAsString/LineAsString.md,reference/formats/LineAsString/LineAsString.mdx,https://clickhouse.com/docs/interfaces/formats/LineAsString,https://private-7c7dfe99.mintlify.app/reference/formats/LineAsString/LineAsString,matched,1adc889763f86e07,true,1adc889763f86e07,2026-05-07T14:49:41+00:00,false -/interfaces/formats/LineAsStringWithNames,docs/interfaces/formats/LineAsString/LineAsStringWithNames.md,reference/formats/LineAsString/LineAsStringWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/LineAsStringWithNames,https://private-7c7dfe99.mintlify.app/reference/formats/LineAsString/LineAsStringWithNames,matched,0d354a4bc3cf5327,true,0d354a4bc3cf5327,2026-05-09T09:39:38+00:00,false -/interfaces/formats/LineAsStringWithNamesAndTypes,docs/interfaces/formats/LineAsString/LineAsStringWithNamesAndTypes.md,reference/formats/LineAsString/LineAsStringWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/LineAsStringWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/reference/formats/LineAsString/LineAsStringWithNamesAndTypes,matched,d6c75e44e7297d78,true,d6c75e44e7297d78,2026-05-19T11:08:53+00:00,false -/interfaces/formats/Markdown,docs/interfaces/formats/Markdown.md,reference/formats/Markdown.mdx,https://clickhouse.com/docs/interfaces/formats/Markdown,https://private-7c7dfe99.mintlify.app/reference/formats/Markdown,matched,85b1114daba44b00,false,,,false -/interfaces/formats/MsgPack,docs/interfaces/formats/MsgPack.md,reference/formats/MsgPack.mdx,https://clickhouse.com/docs/interfaces/formats/MsgPack,https://private-7c7dfe99.mintlify.app/reference/formats/MsgPack,matched,948846a8743f4a90,true,948846a8743f4a90,2026-05-07T15:41:11+00:00,false -/interfaces/formats/MySQLDump,docs/interfaces/formats/MySQLDump.md,reference/formats/MySQLDump.mdx,https://clickhouse.com/docs/interfaces/formats/MySQLDump,https://private-7c7dfe99.mintlify.app/reference/formats/MySQLDump,matched,ac6f44e72647bc38,true,ac6f44e72647bc38,2026-05-08T09:09:20+00:00,false -/interfaces/formats/MySQLWire,docs/interfaces/formats/MySQLWire.md,reference/formats/MySQLWire.mdx,https://clickhouse.com/docs/interfaces/formats/MySQLWire,https://private-7c7dfe99.mintlify.app/reference/formats/MySQLWire,matched,488ca0a5b4cba0af,false,,,false -/interfaces/formats/Native,docs/interfaces/formats/Native.md,reference/formats/Native.mdx,https://clickhouse.com/docs/interfaces/formats/Native,https://private-7c7dfe99.mintlify.app/reference/formats/Native,matched,d900939a969da7d4,true,d900939a969da7d4,2026-05-08T09:09:20+00:00,false -/interfaces/formats/Npy,docs/interfaces/formats/Npy.md,reference/formats/Npy.mdx,https://clickhouse.com/docs/interfaces/formats/Npy,https://private-7c7dfe99.mintlify.app/reference/formats/Npy,matched,da8c2bbfc6c34aa9,true,da8c2bbfc6c34aa9,2026-05-07T14:49:41+00:00,false -/interfaces/formats/Null,docs/interfaces/formats/Null.md,reference/formats/Null.mdx,https://clickhouse.com/docs/interfaces/formats/Null,https://private-7c7dfe99.mintlify.app/reference/formats/Null,matched,f80ac33db9f2499e,true,f80ac33db9f2499e,2026-05-08T09:09:20+00:00,false -/interfaces/formats/ODBCDriver2,docs/interfaces/formats/ODBCDriver2.md,reference/formats/ODBCDriver2.mdx,https://clickhouse.com/docs/interfaces/formats/ODBCDriver2,https://private-7c7dfe99.mintlify.app/reference/formats/ODBCDriver2,matched,1724335ae6c5171c,false,,,false -/interfaces/formats/ORC,docs/interfaces/formats/ORC.md,reference/formats/ORC.mdx,https://clickhouse.com/docs/interfaces/formats/ORC,https://private-7c7dfe99.mintlify.app/reference/formats/ORC,matched,3344d9c5165b7b63,true,3344d9c5165b7b63,2026-05-08T09:09:20+00:00,false -/interfaces/formats/One,docs/interfaces/formats/One.md,reference/formats/One.mdx,https://clickhouse.com/docs/interfaces/formats/One,https://private-7c7dfe99.mintlify.app/reference/formats/One,matched,b6e7b7146868d159,true,b6e7b7146868d159,2026-05-07T14:49:41+00:00,false -/interfaces/formats/Parquet,docs/interfaces/formats/Parquet/Parquet.md,reference/formats/Parquet/Parquet.mdx,https://clickhouse.com/docs/interfaces/formats/Parquet,https://private-7c7dfe99.mintlify.app/reference/formats/Parquet/Parquet,matched,b490e7db2c2d91b3,true,b490e7db2c2d91b3,2026-05-08T09:09:20+00:00,false -/interfaces/formats/ParquetMetadata,docs/interfaces/formats/Parquet/ParquetMetadata.md,reference/formats/Parquet/ParquetMetadata.mdx,https://clickhouse.com/docs/interfaces/formats/ParquetMetadata,https://private-7c7dfe99.mintlify.app/reference/formats/Parquet/ParquetMetadata,matched,9b6474c5f66a5e77,false,,,false -/interfaces/formats/PostgreSQLWire,docs/interfaces/formats/PostgreSQLWire.md,reference/formats/PostgreSQLWire.mdx,https://clickhouse.com/docs/interfaces/formats/PostgreSQLWire,https://private-7c7dfe99.mintlify.app/reference/formats/PostgreSQLWire,matched,ce873407eda99fea,false,,,false -/interfaces/formats/Pretty,docs/interfaces/formats/Pretty/Pretty.md,reference/formats/Pretty/Pretty.mdx,https://clickhouse.com/docs/interfaces/formats/Pretty,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/Pretty,matched,1691e237ea64aaca,true,1691e237ea64aaca,2026-05-09T14:41:32+00:00,false -/interfaces/formats/PrettyCompact,docs/interfaces/formats/Pretty/PrettyCompact.md,reference/formats/Pretty/PrettyCompact.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyCompact,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/PrettyCompact,matched,1fee80d8af00c415,true,1fee80d8af00c415,2026-05-09T14:41:32+00:00,false -/interfaces/formats/PrettyCompactMonoBlock,docs/interfaces/formats/Pretty/PrettyCompactMonoBlock.md,reference/formats/Pretty/PrettyCompactMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyCompactMonoBlock,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/PrettyCompactMonoBlock,matched,af620cd5ed38d265,true,af620cd5ed38d265,2026-05-09T14:41:32+00:00,false -/interfaces/formats/PrettyCompactNoEscapes,docs/interfaces/formats/Pretty/PrettyCompactNoEscapes.md,reference/formats/Pretty/PrettyCompactNoEscapes.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyCompactNoEscapes,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/PrettyCompactNoEscapes,matched,e97df2367ee337a5,true,e97df2367ee337a5,2026-05-09T14:41:32+00:00,false -/interfaces/formats/PrettyCompactNoEscapesMonoBlock,docs/interfaces/formats/Pretty/PrettyCompactNoEscapesMonoBlock.md,reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyCompactNoEscapesMonoBlock,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock,matched,c61769f8b34a280f,true,c61769f8b34a280f,2026-05-09T14:41:33+00:00,false -/interfaces/formats/PrettyJSONEachRow,docs/interfaces/formats/JSON/PrettyJSONEachRow.md,reference/formats/JSON/PrettyJSONEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyJSONEachRow,https://private-7c7dfe99.mintlify.app/reference/formats/JSON/PrettyJSONEachRow,matched,fe2aceb75f41309c,true,fe2aceb75f41309c,2026-05-09T09:39:38+00:00,false -/interfaces/formats/PrettyMonoBlock,docs/interfaces/formats/Pretty/PrettyMonoBlock.md,reference/formats/Pretty/PrettyMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyMonoBlock,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/PrettyMonoBlock,matched,40371c6acad07196,true,40371c6acad07196,2026-05-09T14:41:33+00:00,false -/interfaces/formats/PrettyNoEscapes,docs/interfaces/formats/Pretty/PrettyNoEscapes.md,reference/formats/Pretty/PrettyNoEscapes.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyNoEscapes,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/PrettyNoEscapes,matched,d3721cad34be7ac8,true,d3721cad34be7ac8,2026-05-09T14:41:33+00:00,false -/interfaces/formats/PrettyNoEscapesMonoBlock,docs/interfaces/formats/Pretty/PrettyNoEscapesMonoBlock.md,reference/formats/Pretty/PrettyNoEscapesMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyNoEscapesMonoBlock,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/PrettyNoEscapesMonoBlock,matched,a35e75c19a0f228c,true,a35e75c19a0f228c,2026-05-09T14:41:33+00:00,false -/interfaces/formats/PrettySpace,docs/interfaces/formats/Pretty/PrettySpace.md,reference/formats/Pretty/PrettySpace.mdx,https://clickhouse.com/docs/interfaces/formats/PrettySpace,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/PrettySpace,matched,28f4800b7936b39a,true,28f4800b7936b39a,2026-05-09T14:41:33+00:00,false -/interfaces/formats/PrettySpaceMonoBlock,docs/interfaces/formats/Pretty/PrettySpaceMonoBlock.md,reference/formats/Pretty/PrettySpaceMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettySpaceMonoBlock,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/PrettySpaceMonoBlock,matched,77a1b67ca7c88505,true,77a1b67ca7c88505,2026-05-09T14:41:33+00:00,false -/interfaces/formats/PrettySpaceNoEscapes,docs/interfaces/formats/Pretty/PrettySpaceNoEscapes.md,reference/formats/Pretty/PrettySpaceNoEscapes.mdx,https://clickhouse.com/docs/interfaces/formats/PrettySpaceNoEscapes,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/PrettySpaceNoEscapes,matched,3f956529d3724204,true,3f956529d3724204,2026-05-09T14:41:33+00:00,false -/interfaces/formats/PrettySpaceNoEscapesMonoBlock,docs/interfaces/formats/Pretty/PrettySpaceNoEscapesMonoBlock.md,reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettySpaceNoEscapesMonoBlock,https://private-7c7dfe99.mintlify.app/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock,matched,aba92e4ddf93c8ac,true,aba92e4ddf93c8ac,2026-05-09T14:41:34+00:00,false -/interfaces/formats/Prometheus,docs/interfaces/formats/Prometheus.md,reference/formats/Prometheus.mdx,https://clickhouse.com/docs/interfaces/formats/Prometheus,https://private-7c7dfe99.mintlify.app/reference/formats/Prometheus,matched,72f38826fa27979a,true,72f38826fa27979a,2026-05-07T14:49:41+00:00,false -/interfaces/formats/Protobuf,docs/interfaces/formats/Protobuf/Protobuf.md,reference/formats/Protobuf/Protobuf.mdx,https://clickhouse.com/docs/interfaces/formats/Protobuf,https://private-7c7dfe99.mintlify.app/reference/formats/Protobuf/Protobuf,matched,d81d1d65b756efb0,true,d81d1d65b756efb0,2026-05-08T09:09:20+00:00,false -/interfaces/formats/ProtobufList,docs/interfaces/formats/Protobuf/ProtobufList.md,reference/formats/Protobuf/ProtobufList.mdx,https://clickhouse.com/docs/interfaces/formats/ProtobufList,https://private-7c7dfe99.mintlify.app/reference/formats/Protobuf/ProtobufList,matched,e99d4f3c7174e773,true,e99d4f3c7174e773,2026-05-08T09:09:20+00:00,false -/interfaces/formats/ProtobufSingle,docs/interfaces/formats/Protobuf/ProtobufSingle.md,reference/formats/Protobuf/ProtobufSingle.mdx,https://clickhouse.com/docs/interfaces/formats/ProtobufSingle,https://private-7c7dfe99.mintlify.app/reference/formats/Protobuf/ProtobufSingle,matched,6c958d1bfa513f4a,true,6c958d1bfa513f4a,2026-05-08T09:09:20+00:00,false -/interfaces/formats/RawBLOB,docs/interfaces/formats/RawBLOB.md,reference/formats/RawBLOB.mdx,https://clickhouse.com/docs/interfaces/formats/RawBLOB,https://private-7c7dfe99.mintlify.app/reference/formats/RawBLOB,matched,d344c46f769e848e,true,d344c46f769e848e,2026-05-07T14:49:41+00:00,false -/interfaces/formats/Regexp,docs/interfaces/formats/Regexp.md,reference/formats/Regexp.mdx,https://clickhouse.com/docs/interfaces/formats/Regexp,https://private-7c7dfe99.mintlify.app/reference/formats/Regexp,matched,01db9b97751fe567,true,01db9b97751fe567,2026-05-19T11:08:53+00:00,false -/interfaces/formats/RowBinary,docs/interfaces/formats/RowBinary/RowBinary.md,reference/formats/RowBinary/RowBinary.mdx,https://clickhouse.com/docs/interfaces/formats/RowBinary,https://private-7c7dfe99.mintlify.app/reference/formats/RowBinary/RowBinary,matched,687bad02e366f12b,true,687bad02e366f12b,2026-05-09T14:41:34+00:00,false -/interfaces/formats/RowBinaryWithDefaults,docs/interfaces/formats/RowBinary/RowBinaryWithDefaults.md,reference/formats/RowBinary/RowBinaryWithDefaults.mdx,https://clickhouse.com/docs/interfaces/formats/RowBinaryWithDefaults,https://private-7c7dfe99.mintlify.app/reference/formats/RowBinary/RowBinaryWithDefaults,matched,e6b73b30c4502fd5,true,e6b73b30c4502fd5,2026-05-09T14:41:34+00:00,false -/interfaces/formats/RowBinaryWithNames,docs/interfaces/formats/RowBinary/RowBinaryWithNames.md,reference/formats/RowBinary/RowBinaryWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/RowBinaryWithNames,https://private-7c7dfe99.mintlify.app/reference/formats/RowBinary/RowBinaryWithNames,matched,2a83ac2cbaf9b2ed,true,2a83ac2cbaf9b2ed,2026-05-09T14:41:34+00:00,false -/interfaces/formats/RowBinaryWithNamesAndTypes,docs/interfaces/formats/RowBinary/RowBinaryWithNamesAndTypes.md,reference/formats/RowBinary/RowBinaryWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/RowBinaryWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/reference/formats/RowBinary/RowBinaryWithNamesAndTypes,matched,3c8db57986756c0b,true,3c8db57986756c0b,2026-05-09T14:41:34+00:00,false -/interfaces/formats/SQLInsert,docs/interfaces/formats/SQLInsert.md,reference/formats/SQLInsert.mdx,https://clickhouse.com/docs/interfaces/formats/SQLInsert,https://private-7c7dfe99.mintlify.app/reference/formats/SQLInsert,matched,2a5bbf839d622f7e,true,2a5bbf839d622f7e,2026-05-07T14:49:41+00:00,false -/interfaces/formats/TSKV,docs/interfaces/formats/TabSeparated/TSKV.md,reference/formats/TabSeparated/TSKV.mdx,https://clickhouse.com/docs/interfaces/formats/TSKV,https://private-7c7dfe99.mintlify.app/reference/formats/TabSeparated/TSKV,matched,414e7c4dfb6cd3da,true,414e7c4dfb6cd3da,2026-05-09T09:39:38+00:00,false -/interfaces/formats/TabSeparated,docs/interfaces/formats/TabSeparated/TabSeparated.md,reference/formats/TabSeparated/TabSeparated.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparated,https://private-7c7dfe99.mintlify.app/reference/formats/TabSeparated/TabSeparated,matched,d699d4175df21acc,true,d699d4175df21acc,2026-05-07T15:41:11+00:00,false -/interfaces/formats/TabSeparatedRaw,docs/interfaces/formats/TabSeparated/TabSeparatedRaw.md,reference/formats/TabSeparated/TabSeparatedRaw.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparatedRaw,https://private-7c7dfe99.mintlify.app/reference/formats/TabSeparated/TabSeparatedRaw,matched,8640bb0e91d0ce24,true,8640bb0e91d0ce24,2026-05-09T09:39:38+00:00,false -/interfaces/formats/TabSeparatedRawWithNames,docs/interfaces/formats/TabSeparated/TabSeparatedRawWithNames.md,reference/formats/TabSeparated/TabSeparatedRawWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparatedRawWithNames,https://private-7c7dfe99.mintlify.app/reference/formats/TabSeparated/TabSeparatedRawWithNames,matched,8e9c8e608b5e9c9e,true,8e9c8e608b5e9c9e,2026-05-08T09:09:20+00:00,false -/interfaces/formats/TabSeparatedRawWithNamesAndTypes,docs/interfaces/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.md,reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparatedRawWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes,matched,6526c7597b3e43df,true,6526c7597b3e43df,2026-05-08T09:09:20+00:00,false -/interfaces/formats/TabSeparatedWithNames,docs/interfaces/formats/TabSeparated/TabSeparatedWithNames.md,reference/formats/TabSeparated/TabSeparatedWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparatedWithNames,https://private-7c7dfe99.mintlify.app/reference/formats/TabSeparated/TabSeparatedWithNames,matched,71530532e2635ead,true,71530532e2635ead,2026-05-09T09:39:38+00:00,false -/interfaces/formats/TabSeparatedWithNamesAndTypes,docs/interfaces/formats/TabSeparated/TabSeparatedWithNamesAndTypes.md,reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparatedWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes,matched,79af085e05f9fd13,true,79af085e05f9fd13,2026-05-09T09:39:38+00:00,false -/interfaces/formats/Template,docs/interfaces/formats/Template/Template.md,reference/formats/Template/Template.mdx,https://clickhouse.com/docs/interfaces/formats/Template,https://private-7c7dfe99.mintlify.app/reference/formats/Template/Template,matched,faa699829df50e5c,true,faa699829df50e5c,2026-05-19T11:08:53+00:00,false -/interfaces/formats/TemplateIgnoreSpaces,docs/interfaces/formats/Template/TemplateIgnoreSpaces.md,reference/formats/Template/TemplateIgnoreSpaces.mdx,https://clickhouse.com/docs/interfaces/formats/TemplateIgnoreSpaces,https://private-7c7dfe99.mintlify.app/reference/formats/Template/TemplateIgnoreSpaces,matched,190e7c7b34bba92c,true,190e7c7b34bba92c,2026-05-08T09:09:20+00:00,false -/interfaces/formats/Values,docs/interfaces/formats/Values.md,reference/formats/Values.mdx,https://clickhouse.com/docs/interfaces/formats/Values,https://private-7c7dfe99.mintlify.app/reference/formats/Values,matched,635a54eaaef6f5e7,true,635a54eaaef6f5e7,2026-05-09T09:39:38+00:00,false -/interfaces/formats/Vertical,docs/interfaces/formats/Vertical.md,reference/formats/Vertical.mdx,https://clickhouse.com/docs/interfaces/formats/Vertical,https://private-7c7dfe99.mintlify.app/reference/formats/Vertical,matched,3de10984a294ee3a,true,3de10984a294ee3a,2026-05-07T14:49:41+00:00,false -/interfaces/formats/XML,docs/interfaces/formats/XML.md,reference/formats/XML.mdx,https://clickhouse.com/docs/interfaces/formats/XML,https://private-7c7dfe99.mintlify.app/reference/formats/XML,matched,f33dc7dd4c81c9ff,true,f33dc7dd4c81c9ff,2026-05-07T14:49:41+00:00,false -/interfaces/grpc,docs/integrations/interfaces/grpc.md,integrations/connectors/data-integrations/drivers-and-interfaces/grpc.mdx,https://clickhouse.com/docs/interfaces/grpc,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/grpc,matched,71ce9ab564fe65cf,true,71ce9ab564fe65cf,2026-05-13T13:16:51+00:00,false -/interfaces/http,docs/integrations/interfaces/http.md,integrations/connectors/data-integrations/drivers-and-interfaces/http.mdx,https://clickhouse.com/docs/interfaces/http,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/http,matched,a26f7c7e0b5565b2,true,a26f7c7e0b5565b2,2026-05-13T15:43:29+00:00,false -/interfaces/jdbc,docs/integrations/interfaces/jdbc.md,integrations/connectors/data-integrations/drivers-and-interfaces/jdbc.mdx,https://clickhouse.com/docs/interfaces/jdbc,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/jdbc,matched,96ba684e632efee8,true,cfce448da448f5c7,2026-05-08T09:09:20+00:00,false -/interfaces/mysql,docs/integrations/interfaces/mysql.md,integrations/connectors/data-integrations/drivers-and-interfaces/mysql.mdx,https://clickhouse.com/docs/interfaces/mysql,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/mysql,matched,de14b44afeedd37f,true,de14b44afeedd37f,2026-05-08T11:53:27+00:00,false -/interfaces/natives-clients-and-interfaces,docs/interfaces/native-clients-interfaces-index.md,integrations/connectors/data-integrations/drivers-and-interfaces/native-clients-interfaces-index.mdx,https://clickhouse.com/docs/interfaces/natives-clients-and-interfaces,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/native-clients-interfaces-index,matched,bc9842824ee60cf0,true,bc9842824ee60cf0,2026-05-19T11:08:53+00:00,false -/interfaces/odbc,docs/integrations/interfaces/odbc.md,integrations/connectors/data-integrations/drivers-and-interfaces/odbc.mdx,https://clickhouse.com/docs/interfaces/odbc,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/odbc,matched,18014418fca702e2,true,18014418fca702e2,2026-05-13T13:16:51+00:00,false -/interfaces/overview,docs/integrations/interfaces/overview.md,integrations/connectors/data-integrations/drivers-and-interfaces/overview.mdx,https://clickhouse.com/docs/interfaces/overview,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/overview,matched,cf59fe61367d7168,true,cf59fe61367d7168,2026-05-13T13:16:51+00:00,false -/interfaces/postgresql,docs/integrations/interfaces/postgresql.md,integrations/connectors/data-integrations/drivers-and-interfaces/postgresql.mdx,https://clickhouse.com/docs/interfaces/postgresql,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/postgresql,matched,3b3e0a1f7ddb7471,true,3b3e0a1f7ddb7471,2026-05-08T09:09:20+00:00,false -/interfaces/prometheus,docs/integrations/interfaces/prometheus.md,integrations/connectors/data-integrations/drivers-and-interfaces/prometheus.mdx,https://clickhouse.com/docs/interfaces/prometheus,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/prometheus,matched,1119bf9a3149424f,true,d10ca35ac3147e57,2026-05-08T09:09:20+00:00,false -/interfaces/schema-inference,docs/interfaces/schema-inference.md,integrations/connectors/data-integrations/drivers-and-interfaces/schema-inference.mdx,https://clickhouse.com/docs/interfaces/schema-inference,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/schema-inference,matched,4c061756fb7e7549,true,4c061756fb7e7549,2026-05-19T11:08:53+00:00,false -/interfaces/ssh,docs/integrations/interfaces/ssh.md,integrations/connectors/data-integrations/drivers-and-interfaces/ssh.mdx,https://clickhouse.com/docs/interfaces/ssh,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/ssh,matched,05310f7271c1ee03,true,05310f7271c1ee03,2026-05-08T09:09:20+00:00,false -/interfaces/tcp,docs/integrations/interfaces/tcp.md,integrations/connectors/data-integrations/drivers-and-interfaces/tcp.mdx,https://clickhouse.com/docs/interfaces/tcp,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/tcp,matched,6ef79e809370ded1,true,c65c3ea67e2e1c06,2026-05-08T09:09:20+00:00,false -/interfaces/third-party/,docs/interfaces/third-party/index.md,integrations/connectors/data-integrations/drivers-and-interfaces/third-party/index.mdx,https://clickhouse.com/docs/interfaces/third-party/,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/third-party,matched,fca7f456f51a4121,true,fca7f456f51a4121,2026-05-19T11:08:53+00:00,false +/interfaces/arrowflight,docs/integrations/interfaces/arrowflight.md,core/concepts/features/interfaces/arrowflight.mdx,https://clickhouse.com/docs/interfaces/arrowflight,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/arrowflight,matched,a2da273f48ba5a95,true,a2da273f48ba5a95,2026-05-19T11:08:53+00:00,false +/interfaces/cli,docs/interfaces/cli.md,core/concepts/features/interfaces/cli.mdx,https://clickhouse.com/docs/interfaces/cli,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/cli,matched,8497def37a58edb5,true,8497def37a58edb5,2026-05-08T09:09:20+00:00,false +/interfaces/client,docs/interfaces/client.md,core/concepts/features/interfaces/client.mdx,https://clickhouse.com/docs/interfaces/client,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/client,matched,c3109f2b192e00f8,true,c3109f2b192e00f8,2026-05-13T15:43:28+00:00,false +/interfaces/cpp,docs/integrations/language-clients/cpp.md,integrations/language-clients/cpp.mdx | core/concepts/features/interfaces/cpp.mdx,https://clickhouse.com/docs/interfaces/cpp,,ambiguous,c5ebd1fb86153394,true,51b1fb17abd7387f,2026-05-08T19:29:49+00:00,false +/interfaces/formats,docs/interfaces/formats.md,core/reference/formats/index.mdx,https://clickhouse.com/docs/interfaces/formats,https://private-7c7dfe99.mintlify.app/core/reference/formats/index,matched,df34f62628d8e02d,true,df34f62628d8e02d,2026-05-13T13:16:51+00:00,false +/interfaces/formats/Arrow,docs/interfaces/formats/Arrow/Arrow.md,core/reference/formats/Arrow/Arrow.mdx,https://clickhouse.com/docs/interfaces/formats/Arrow,https://private-7c7dfe99.mintlify.app/core/reference/formats/Arrow/Arrow,matched,fefd4875760cc33c,true,fefd4875760cc33c,2026-05-07T14:49:41+00:00,false +/interfaces/formats/ArrowStream,docs/interfaces/formats/Arrow/ArrowStream.md,core/reference/formats/Arrow/ArrowStream.mdx,https://clickhouse.com/docs/interfaces/formats/ArrowStream,https://private-7c7dfe99.mintlify.app/core/reference/formats/Arrow/ArrowStream,matched,e26bd50b67b6a445,false,,,false +/interfaces/formats/Avro,docs/interfaces/formats/Avro/Avro.md,core/reference/formats/Avro/Avro.mdx,https://clickhouse.com/docs/interfaces/formats/Avro,https://private-7c7dfe99.mintlify.app/core/reference/formats/Avro/Avro,matched,aa68e4488567e4ec,true,aa68e4488567e4ec,2026-05-09T14:41:34+00:00,false +/interfaces/formats/AvroConfluent,docs/interfaces/formats/Avro/AvroConfluent.md,core/reference/formats/Avro/AvroConfluent.mdx,https://clickhouse.com/docs/interfaces/formats/AvroConfluent,https://private-7c7dfe99.mintlify.app/core/reference/formats/Avro/AvroConfluent,matched,c922737f2307ceec,true,c922737f2307ceec,2026-05-13T13:16:51+00:00,false +/interfaces/formats/BSONEachRow,docs/interfaces/formats/BSONEachRow.md,core/reference/formats/BSONEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/BSONEachRow,https://private-7c7dfe99.mintlify.app/core/reference/formats/BSONEachRow,matched,5405382560ae38c8,true,5405382560ae38c8,2026-05-08T09:09:20+00:00,false +/interfaces/formats/Buffers,docs/interfaces/formats/Buffers.md,core/reference/formats/Buffers.mdx,https://clickhouse.com/docs/interfaces/formats/Buffers,https://private-7c7dfe99.mintlify.app/core/reference/formats/Buffers,matched,e7fd70effa797248,true,e7fd70effa797248,2026-05-07T14:49:41+00:00,false +/interfaces/formats/CSV,docs/interfaces/formats/CSV/CSV.md,core/reference/formats/CSV/CSV.mdx,https://clickhouse.com/docs/interfaces/formats/CSV,https://private-7c7dfe99.mintlify.app/core/reference/formats/CSV/CSV,matched,78c8f7d218a9c211,true,78c8f7d218a9c211,2026-05-08T09:09:20+00:00,false +/interfaces/formats/CSVWithNames,docs/interfaces/formats/CSV/CSVWithNames.md,core/reference/formats/CSV/CSVWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/CSVWithNames,https://private-7c7dfe99.mintlify.app/core/reference/formats/CSV/CSVWithNames,matched,c042f748c77a461d,true,c042f748c77a461d,2026-05-08T09:09:20+00:00,false +/interfaces/formats/CSVWithNamesAndTypes,docs/interfaces/formats/CSV/CSVWithNamesAndTypes.md,core/reference/formats/CSV/CSVWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/CSVWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/core/reference/formats/CSV/CSVWithNamesAndTypes,matched,c626b9222d67c0a1,true,c626b9222d67c0a1,2026-05-08T11:53:27+00:00,false +/interfaces/formats/CapnProto,docs/interfaces/formats/CapnProto.md,core/reference/formats/CapnProto.mdx,https://clickhouse.com/docs/interfaces/formats/CapnProto,https://private-7c7dfe99.mintlify.app/core/reference/formats/CapnProto,matched,e52f05211d11daf4,true,e52f05211d11daf4,2026-05-09T09:39:38+00:00,false +/interfaces/formats/CustomSeparated,docs/interfaces/formats/CustomSeparated/CustomSeparated.md,core/reference/formats/CustomSeparated/CustomSeparated.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparated,https://private-7c7dfe99.mintlify.app/core/reference/formats/CustomSeparated/CustomSeparated,matched,2b4ac034aba018ed,true,2b4ac034aba018ed,2026-05-09T09:39:38+00:00,false +/interfaces/formats/CustomSeparatedIgnoreSpaces,docs/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.md,core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparatedIgnoreSpaces,https://private-7c7dfe99.mintlify.app/core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces,matched,27bd6d01dce2d644,false,,,false +/interfaces/formats/CustomSeparatedIgnoreSpacesWithNames,docs/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.md,core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparatedIgnoreSpacesWithNames,https://private-7c7dfe99.mintlify.app/core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames,matched,4cfca9fae37346c2,false,,,false +/interfaces/formats/CustomSeparatedIgnoreSpacesWithNamesAndTypes,docs/interfaces/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.md,core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparatedIgnoreSpacesWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes,matched,8cde4367a08c4c85,false,,,false +/interfaces/formats/CustomSeparatedWithNames,docs/interfaces/formats/CustomSeparated/CustomSeparatedWithNames.md,core/reference/formats/CustomSeparated/CustomSeparatedWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparatedWithNames,https://private-7c7dfe99.mintlify.app/core/reference/formats/CustomSeparated/CustomSeparatedWithNames,matched,1dd4bcf22efaf403,true,1dd4bcf22efaf403,2026-05-07T14:49:41+00:00,false +/interfaces/formats/CustomSeparatedWithNamesAndTypes,docs/interfaces/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.md,core/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/CustomSeparatedWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/core/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes,matched,31443088162bd3a0,true,31443088162bd3a0,2026-05-08T09:09:20+00:00,false +/interfaces/formats/DWARF,docs/interfaces/formats/DWARF.md,core/reference/formats/DWARF.mdx,https://clickhouse.com/docs/interfaces/formats/DWARF,https://private-7c7dfe99.mintlify.app/core/reference/formats/DWARF,matched,c2f203731c8694cf,true,c2f203731c8694cf,2026-05-08T09:09:20+00:00,false +/interfaces/formats/Form,docs/interfaces/formats/Form.md,core/reference/formats/Form.mdx,https://clickhouse.com/docs/interfaces/formats/Form,https://private-7c7dfe99.mintlify.app/core/reference/formats/Form,matched,c9a05803f13e7580,false,,,false +/interfaces/formats/Hash,docs/interfaces/formats/Hash.md,core/reference/formats/Hash.mdx,https://clickhouse.com/docs/interfaces/formats/Hash,https://private-7c7dfe99.mintlify.app/core/reference/formats/Hash,matched,1126bfe846bb5fcd,false,,,false +/interfaces/formats/HiveText,docs/interfaces/formats/HiveText.md,core/reference/formats/HiveText.mdx,https://clickhouse.com/docs/interfaces/formats/HiveText,https://private-7c7dfe99.mintlify.app/core/reference/formats/HiveText,matched,22c4567427f06c4f,false,,,false +/interfaces/formats/JSON,docs/interfaces/formats/JSON/JSON.md,core/reference/formats/JSON/JSON.mdx,https://clickhouse.com/docs/interfaces/formats/JSON,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSON,matched,fe45037d34e9b052,true,fe45037d34e9b052,2026-05-07T15:41:11+00:00,false +/interfaces/formats/JSON/format-settings,docs/interfaces/formats/JSON/format-settings.md,core/reference/formats/JSON/format-settings.mdx,https://clickhouse.com/docs/interfaces/formats/JSON/format-settings,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/format-settings,matched,d58e38a4b38f0454,true,d58e38a4b38f0454,2026-05-08T20:59:51+00:00,false +/interfaces/formats/JSONAsObject,docs/interfaces/formats/JSON/JSONAsObject.md,core/reference/formats/JSON/JSONAsObject.mdx,https://clickhouse.com/docs/interfaces/formats/JSONAsObject,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONAsObject,matched,535b7ebcc2bbcc05,true,535b7ebcc2bbcc05,2026-05-07T14:49:41+00:00,false +/interfaces/formats/JSONAsString,docs/interfaces/formats/JSON/JSONAsString.md,core/reference/formats/JSON/JSONAsString.mdx,https://clickhouse.com/docs/interfaces/formats/JSONAsString,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONAsString,matched,b777d33223c2f6e1,true,b777d33223c2f6e1,2026-05-08T09:09:20+00:00,false +/interfaces/formats/JSONColumns,docs/interfaces/formats/JSON/JSONColumns.md,core/reference/formats/JSON/JSONColumns.mdx,https://clickhouse.com/docs/interfaces/formats/JSONColumns,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONColumns,matched,8fd5347285441089,true,8fd5347285441089,2026-05-08T09:09:20+00:00,false +/interfaces/formats/JSONColumnsWithMetadata,docs/interfaces/formats/JSON/JSONColumnsWithMetadata.md,core/reference/formats/JSON/JSONColumnsWithMetadata.mdx,https://clickhouse.com/docs/interfaces/formats/JSONColumnsWithMetadata,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONColumnsWithMetadata,matched,96f0f82692a94d11,true,96f0f82692a94d11,2026-05-09T09:39:38+00:00,false +/interfaces/formats/JSONCompact,docs/interfaces/formats/JSON/JSONCompact.md,core/reference/formats/JSON/JSONCompact.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompact,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONCompact,matched,bb371d742e1c3d8b,true,bb371d742e1c3d8b,2026-05-09T09:39:38+00:00,false +/interfaces/formats/JSONCompactColumns,docs/interfaces/formats/JSON/JSONCompactColumns.md,core/reference/formats/JSON/JSONCompactColumns.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactColumns,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONCompactColumns,matched,90eb1bd6cd208752,true,90eb1bd6cd208752,2026-05-08T09:09:20+00:00,false +/interfaces/formats/JSONCompactEachRow,docs/interfaces/formats/JSON/JSONCompactEachRow.md,core/reference/formats/JSON/JSONCompactEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactEachRow,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONCompactEachRow,matched,54f6ee288acad577,true,54f6ee288acad577,2026-05-09T09:39:38+00:00,false +/interfaces/formats/JSONCompactEachRowWithNames,docs/interfaces/formats/JSON/JSONCompactEachRowWithNames.md,core/reference/formats/JSON/JSONCompactEachRowWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactEachRowWithNames,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONCompactEachRowWithNames,matched,b37e005c51f403fc,true,b37e005c51f403fc,2026-05-09T09:39:38+00:00,false +/interfaces/formats/JSONCompactEachRowWithNamesAndTypes,docs/interfaces/formats/JSON/JSONCompactEachRowWithNamesAndTypes.md,core/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactEachRowWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes,matched,9c79376ce670521b,true,9c79376ce670521b,2026-05-09T09:39:38+00:00,false +/interfaces/formats/JSONCompactEachRowWithProgress,docs/interfaces/formats/JSON/JSONCompactEachRowWithProgress.md,core/reference/formats/JSON/JSONCompactEachRowWithProgress.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactEachRowWithProgress,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONCompactEachRowWithProgress,matched,a1fbebb255566158,false,,,false +/interfaces/formats/JSONCompactStrings,docs/interfaces/formats/JSON/JSONCompactStrings.md,core/reference/formats/JSON/JSONCompactStrings.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactStrings,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONCompactStrings,matched,5792c89f06fcaed3,true,5792c89f06fcaed3,2026-05-09T09:39:38+00:00,false +/interfaces/formats/JSONCompactStringsEachRow,docs/interfaces/formats/JSON/JSONCompactStringsEachRow.md,core/reference/formats/JSON/JSONCompactStringsEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactStringsEachRow,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONCompactStringsEachRow,matched,cf8035df5e02498f,true,cf8035df5e02498f,2026-05-09T09:39:38+00:00,false +/interfaces/formats/JSONCompactStringsEachRowWithNames,docs/interfaces/formats/JSON/JSONCompactStringsEachRowWithNames.md,core/reference/formats/JSON/JSONCompactStringsEachRowWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactStringsEachRowWithNames,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONCompactStringsEachRowWithNames,matched,6dadcbfab042a7bc,true,6dadcbfab042a7bc,2026-05-09T09:39:38+00:00,false +/interfaces/formats/JSONCompactStringsEachRowWithNamesAndTypes,docs/interfaces/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.md,core/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactStringsEachRowWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes,matched,0d3df994d73dcce5,true,0d3df994d73dcce5,2026-05-08T09:09:20+00:00,false +/interfaces/formats/JSONCompactStringsEachRowWithProgress,docs/interfaces/formats/JSON/JSONCompactStringsEachRowWithProgress.md,core/reference/formats/JSON/JSONCompactStringsEachRowWithProgress.mdx,https://clickhouse.com/docs/interfaces/formats/JSONCompactStringsEachRowWithProgress,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONCompactStringsEachRowWithProgress,matched,fb5ace8ecf41cd7a,true,fb5ace8ecf41cd7a,2026-05-07T14:49:41+00:00,false +/interfaces/formats/JSONEachRow,docs/interfaces/formats/JSON/JSONEachRow.md,core/reference/formats/JSON/JSONEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/JSONEachRow,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONEachRow,matched,d64cf47163473324,true,d64cf47163473324,2026-05-07T15:41:11+00:00,false +/interfaces/formats/JSONEachRowWithProgress,docs/interfaces/formats/JSON/JSONEachRowWithProgress.md,core/reference/formats/JSON/JSONEachRowWithProgress.mdx,https://clickhouse.com/docs/interfaces/formats/JSONEachRowWithProgress,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONEachRowWithProgress,matched,f49e9e3f91b64b35,true,f49e9e3f91b64b35,2026-05-09T09:39:38+00:00,false +/interfaces/formats/JSONLines,docs/interfaces/formats/JSON/JSONLines.md,core/reference/formats/JSON/JSONLines.mdx,https://clickhouse.com/docs/interfaces/formats/JSONLines,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONLines,matched,e3e518cc255f6764,true,e3e518cc255f6764,2026-05-07T15:41:11+00:00,false +/interfaces/formats/JSONObjectEachRow,docs/interfaces/formats/JSON/JSONObjectEachRow.md,core/reference/formats/JSON/JSONObjectEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/JSONObjectEachRow,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONObjectEachRow,matched,8bbad16681851331,true,8bbad16681851331,2026-05-19T11:08:53+00:00,false +/interfaces/formats/JSONStrings,docs/interfaces/formats/JSON/JSONStrings.md,core/reference/formats/JSON/JSONStrings.mdx,https://clickhouse.com/docs/interfaces/formats/JSONStrings,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONStrings,matched,ac07bacf3135df09,true,ac07bacf3135df09,2026-05-09T09:39:38+00:00,false +/interfaces/formats/JSONStringsEachRow,docs/interfaces/formats/JSON/JSONStringsEachRow.md,core/reference/formats/JSON/JSONStringsEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/JSONStringsEachRow,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONStringsEachRow,matched,d28f12f9ff28bee7,true,d28f12f9ff28bee7,2026-05-09T09:39:38+00:00,false +/interfaces/formats/JSONStringsEachRowWithProgress,docs/interfaces/formats/JSON/JSONStringsEachRowWithProgress.md,core/reference/formats/JSON/JSONStringsEachRowWithProgress.mdx,https://clickhouse.com/docs/interfaces/formats/JSONStringsEachRowWithProgress,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/JSONStringsEachRowWithProgress,matched,31a8fa488c7303d5,false,,,false +/interfaces/formats/LineAsString,docs/interfaces/formats/LineAsString/LineAsString.md,core/reference/formats/LineAsString/LineAsString.mdx,https://clickhouse.com/docs/interfaces/formats/LineAsString,https://private-7c7dfe99.mintlify.app/core/reference/formats/LineAsString/LineAsString,matched,1adc889763f86e07,true,1adc889763f86e07,2026-05-07T14:49:41+00:00,false +/interfaces/formats/LineAsStringWithNames,docs/interfaces/formats/LineAsString/LineAsStringWithNames.md,core/reference/formats/LineAsString/LineAsStringWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/LineAsStringWithNames,https://private-7c7dfe99.mintlify.app/core/reference/formats/LineAsString/LineAsStringWithNames,matched,0d354a4bc3cf5327,true,0d354a4bc3cf5327,2026-05-09T09:39:38+00:00,false +/interfaces/formats/LineAsStringWithNamesAndTypes,docs/interfaces/formats/LineAsString/LineAsStringWithNamesAndTypes.md,core/reference/formats/LineAsString/LineAsStringWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/LineAsStringWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/core/reference/formats/LineAsString/LineAsStringWithNamesAndTypes,matched,d6c75e44e7297d78,true,d6c75e44e7297d78,2026-05-19T11:08:53+00:00,false +/interfaces/formats/Markdown,docs/interfaces/formats/Markdown.md,core/reference/formats/Markdown.mdx,https://clickhouse.com/docs/interfaces/formats/Markdown,https://private-7c7dfe99.mintlify.app/core/reference/formats/Markdown,matched,85b1114daba44b00,false,,,false +/interfaces/formats/MsgPack,docs/interfaces/formats/MsgPack.md,core/reference/formats/MsgPack.mdx,https://clickhouse.com/docs/interfaces/formats/MsgPack,https://private-7c7dfe99.mintlify.app/core/reference/formats/MsgPack,matched,948846a8743f4a90,true,948846a8743f4a90,2026-05-07T15:41:11+00:00,false +/interfaces/formats/MySQLDump,docs/interfaces/formats/MySQLDump.md,core/reference/formats/MySQLDump.mdx,https://clickhouse.com/docs/interfaces/formats/MySQLDump,https://private-7c7dfe99.mintlify.app/core/reference/formats/MySQLDump,matched,ac6f44e72647bc38,true,ac6f44e72647bc38,2026-05-08T09:09:20+00:00,false +/interfaces/formats/MySQLWire,docs/interfaces/formats/MySQLWire.md,core/reference/formats/MySQLWire.mdx,https://clickhouse.com/docs/interfaces/formats/MySQLWire,https://private-7c7dfe99.mintlify.app/core/reference/formats/MySQLWire,matched,488ca0a5b4cba0af,false,,,false +/interfaces/formats/Native,docs/interfaces/formats/Native.md,core/reference/formats/Native.mdx,https://clickhouse.com/docs/interfaces/formats/Native,https://private-7c7dfe99.mintlify.app/core/reference/formats/Native,matched,d900939a969da7d4,true,d900939a969da7d4,2026-05-08T09:09:20+00:00,false +/interfaces/formats/Npy,docs/interfaces/formats/Npy.md,core/reference/formats/Npy.mdx,https://clickhouse.com/docs/interfaces/formats/Npy,https://private-7c7dfe99.mintlify.app/core/reference/formats/Npy,matched,da8c2bbfc6c34aa9,true,da8c2bbfc6c34aa9,2026-05-07T14:49:41+00:00,false +/interfaces/formats/Null,docs/interfaces/formats/Null.md,core/reference/formats/Null.mdx,https://clickhouse.com/docs/interfaces/formats/Null,https://private-7c7dfe99.mintlify.app/core/reference/formats/Null,matched,f80ac33db9f2499e,true,f80ac33db9f2499e,2026-05-08T09:09:20+00:00,false +/interfaces/formats/ODBCDriver2,docs/interfaces/formats/ODBCDriver2.md,core/reference/formats/ODBCDriver2.mdx,https://clickhouse.com/docs/interfaces/formats/ODBCDriver2,https://private-7c7dfe99.mintlify.app/core/reference/formats/ODBCDriver2,matched,1724335ae6c5171c,false,,,false +/interfaces/formats/ORC,docs/interfaces/formats/ORC.md,core/reference/formats/ORC.mdx,https://clickhouse.com/docs/interfaces/formats/ORC,https://private-7c7dfe99.mintlify.app/core/reference/formats/ORC,matched,3344d9c5165b7b63,true,3344d9c5165b7b63,2026-05-08T09:09:20+00:00,false +/interfaces/formats/One,docs/interfaces/formats/One.md,core/reference/formats/One.mdx,https://clickhouse.com/docs/interfaces/formats/One,https://private-7c7dfe99.mintlify.app/core/reference/formats/One,matched,b6e7b7146868d159,true,b6e7b7146868d159,2026-05-07T14:49:41+00:00,false +/interfaces/formats/Parquet,docs/interfaces/formats/Parquet/Parquet.md,core/reference/formats/Parquet/Parquet.mdx,https://clickhouse.com/docs/interfaces/formats/Parquet,https://private-7c7dfe99.mintlify.app/core/reference/formats/Parquet/Parquet,matched,b490e7db2c2d91b3,true,b490e7db2c2d91b3,2026-05-08T09:09:20+00:00,false +/interfaces/formats/ParquetMetadata,docs/interfaces/formats/Parquet/ParquetMetadata.md,core/reference/formats/Parquet/ParquetMetadata.mdx,https://clickhouse.com/docs/interfaces/formats/ParquetMetadata,https://private-7c7dfe99.mintlify.app/core/reference/formats/Parquet/ParquetMetadata,matched,9b6474c5f66a5e77,false,,,false +/interfaces/formats/PostgreSQLWire,docs/interfaces/formats/PostgreSQLWire.md,core/reference/formats/PostgreSQLWire.mdx,https://clickhouse.com/docs/interfaces/formats/PostgreSQLWire,https://private-7c7dfe99.mintlify.app/core/reference/formats/PostgreSQLWire,matched,ce873407eda99fea,false,,,false +/interfaces/formats/Pretty,docs/interfaces/formats/Pretty/Pretty.md,core/reference/formats/Pretty/Pretty.mdx,https://clickhouse.com/docs/interfaces/formats/Pretty,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/Pretty,matched,1691e237ea64aaca,true,1691e237ea64aaca,2026-05-09T14:41:32+00:00,false +/interfaces/formats/PrettyCompact,docs/interfaces/formats/Pretty/PrettyCompact.md,core/reference/formats/Pretty/PrettyCompact.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyCompact,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/PrettyCompact,matched,1fee80d8af00c415,true,1fee80d8af00c415,2026-05-09T14:41:32+00:00,false +/interfaces/formats/PrettyCompactMonoBlock,docs/interfaces/formats/Pretty/PrettyCompactMonoBlock.md,core/reference/formats/Pretty/PrettyCompactMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyCompactMonoBlock,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/PrettyCompactMonoBlock,matched,af620cd5ed38d265,true,af620cd5ed38d265,2026-05-09T14:41:32+00:00,false +/interfaces/formats/PrettyCompactNoEscapes,docs/interfaces/formats/Pretty/PrettyCompactNoEscapes.md,core/reference/formats/Pretty/PrettyCompactNoEscapes.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyCompactNoEscapes,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/PrettyCompactNoEscapes,matched,e97df2367ee337a5,true,e97df2367ee337a5,2026-05-09T14:41:32+00:00,false +/interfaces/formats/PrettyCompactNoEscapesMonoBlock,docs/interfaces/formats/Pretty/PrettyCompactNoEscapesMonoBlock.md,core/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyCompactNoEscapesMonoBlock,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock,matched,c61769f8b34a280f,true,c61769f8b34a280f,2026-05-09T14:41:33+00:00,false +/interfaces/formats/PrettyJSONEachRow,docs/interfaces/formats/JSON/PrettyJSONEachRow.md,core/reference/formats/JSON/PrettyJSONEachRow.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyJSONEachRow,https://private-7c7dfe99.mintlify.app/core/reference/formats/JSON/PrettyJSONEachRow,matched,fe2aceb75f41309c,true,fe2aceb75f41309c,2026-05-09T09:39:38+00:00,false +/interfaces/formats/PrettyMonoBlock,docs/interfaces/formats/Pretty/PrettyMonoBlock.md,core/reference/formats/Pretty/PrettyMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyMonoBlock,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/PrettyMonoBlock,matched,40371c6acad07196,true,40371c6acad07196,2026-05-09T14:41:33+00:00,false +/interfaces/formats/PrettyNoEscapes,docs/interfaces/formats/Pretty/PrettyNoEscapes.md,core/reference/formats/Pretty/PrettyNoEscapes.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyNoEscapes,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/PrettyNoEscapes,matched,d3721cad34be7ac8,true,d3721cad34be7ac8,2026-05-09T14:41:33+00:00,false +/interfaces/formats/PrettyNoEscapesMonoBlock,docs/interfaces/formats/Pretty/PrettyNoEscapesMonoBlock.md,core/reference/formats/Pretty/PrettyNoEscapesMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettyNoEscapesMonoBlock,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/PrettyNoEscapesMonoBlock,matched,a35e75c19a0f228c,true,a35e75c19a0f228c,2026-05-09T14:41:33+00:00,false +/interfaces/formats/PrettySpace,docs/interfaces/formats/Pretty/PrettySpace.md,core/reference/formats/Pretty/PrettySpace.mdx,https://clickhouse.com/docs/interfaces/formats/PrettySpace,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/PrettySpace,matched,28f4800b7936b39a,true,28f4800b7936b39a,2026-05-09T14:41:33+00:00,false +/interfaces/formats/PrettySpaceMonoBlock,docs/interfaces/formats/Pretty/PrettySpaceMonoBlock.md,core/reference/formats/Pretty/PrettySpaceMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettySpaceMonoBlock,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/PrettySpaceMonoBlock,matched,77a1b67ca7c88505,true,77a1b67ca7c88505,2026-05-09T14:41:33+00:00,false +/interfaces/formats/PrettySpaceNoEscapes,docs/interfaces/formats/Pretty/PrettySpaceNoEscapes.md,core/reference/formats/Pretty/PrettySpaceNoEscapes.mdx,https://clickhouse.com/docs/interfaces/formats/PrettySpaceNoEscapes,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/PrettySpaceNoEscapes,matched,3f956529d3724204,true,3f956529d3724204,2026-05-09T14:41:33+00:00,false +/interfaces/formats/PrettySpaceNoEscapesMonoBlock,docs/interfaces/formats/Pretty/PrettySpaceNoEscapesMonoBlock.md,core/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock.mdx,https://clickhouse.com/docs/interfaces/formats/PrettySpaceNoEscapesMonoBlock,https://private-7c7dfe99.mintlify.app/core/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock,matched,aba92e4ddf93c8ac,true,aba92e4ddf93c8ac,2026-05-09T14:41:34+00:00,false +/interfaces/formats/Prometheus,docs/interfaces/formats/Prometheus.md,core/reference/formats/Prometheus.mdx,https://clickhouse.com/docs/interfaces/formats/Prometheus,https://private-7c7dfe99.mintlify.app/core/reference/formats/Prometheus,matched,72f38826fa27979a,true,72f38826fa27979a,2026-05-07T14:49:41+00:00,false +/interfaces/formats/Protobuf,docs/interfaces/formats/Protobuf/Protobuf.md,core/reference/formats/Protobuf/Protobuf.mdx,https://clickhouse.com/docs/interfaces/formats/Protobuf,https://private-7c7dfe99.mintlify.app/core/reference/formats/Protobuf/Protobuf,matched,d81d1d65b756efb0,true,d81d1d65b756efb0,2026-05-08T09:09:20+00:00,false +/interfaces/formats/ProtobufList,docs/interfaces/formats/Protobuf/ProtobufList.md,core/reference/formats/Protobuf/ProtobufList.mdx,https://clickhouse.com/docs/interfaces/formats/ProtobufList,https://private-7c7dfe99.mintlify.app/core/reference/formats/Protobuf/ProtobufList,matched,e99d4f3c7174e773,true,e99d4f3c7174e773,2026-05-08T09:09:20+00:00,false +/interfaces/formats/ProtobufSingle,docs/interfaces/formats/Protobuf/ProtobufSingle.md,core/reference/formats/Protobuf/ProtobufSingle.mdx,https://clickhouse.com/docs/interfaces/formats/ProtobufSingle,https://private-7c7dfe99.mintlify.app/core/reference/formats/Protobuf/ProtobufSingle,matched,6c958d1bfa513f4a,true,6c958d1bfa513f4a,2026-05-08T09:09:20+00:00,false +/interfaces/formats/RawBLOB,docs/interfaces/formats/RawBLOB.md,core/reference/formats/RawBLOB.mdx,https://clickhouse.com/docs/interfaces/formats/RawBLOB,https://private-7c7dfe99.mintlify.app/core/reference/formats/RawBLOB,matched,d344c46f769e848e,true,d344c46f769e848e,2026-05-07T14:49:41+00:00,false +/interfaces/formats/Regexp,docs/interfaces/formats/Regexp.md,core/reference/formats/Regexp.mdx,https://clickhouse.com/docs/interfaces/formats/Regexp,https://private-7c7dfe99.mintlify.app/core/reference/formats/Regexp,matched,01db9b97751fe567,true,01db9b97751fe567,2026-05-19T11:08:53+00:00,false +/interfaces/formats/RowBinary,docs/interfaces/formats/RowBinary/RowBinary.md,core/reference/formats/RowBinary/RowBinary.mdx,https://clickhouse.com/docs/interfaces/formats/RowBinary,https://private-7c7dfe99.mintlify.app/core/reference/formats/RowBinary/RowBinary,matched,687bad02e366f12b,true,687bad02e366f12b,2026-05-09T14:41:34+00:00,false +/interfaces/formats/RowBinaryWithDefaults,docs/interfaces/formats/RowBinary/RowBinaryWithDefaults.md,core/reference/formats/RowBinary/RowBinaryWithDefaults.mdx,https://clickhouse.com/docs/interfaces/formats/RowBinaryWithDefaults,https://private-7c7dfe99.mintlify.app/core/reference/formats/RowBinary/RowBinaryWithDefaults,matched,e6b73b30c4502fd5,true,e6b73b30c4502fd5,2026-05-09T14:41:34+00:00,false +/interfaces/formats/RowBinaryWithNames,docs/interfaces/formats/RowBinary/RowBinaryWithNames.md,core/reference/formats/RowBinary/RowBinaryWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/RowBinaryWithNames,https://private-7c7dfe99.mintlify.app/core/reference/formats/RowBinary/RowBinaryWithNames,matched,2a83ac2cbaf9b2ed,true,2a83ac2cbaf9b2ed,2026-05-09T14:41:34+00:00,false +/interfaces/formats/RowBinaryWithNamesAndTypes,docs/interfaces/formats/RowBinary/RowBinaryWithNamesAndTypes.md,core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/RowBinaryWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes,matched,3c8db57986756c0b,true,3c8db57986756c0b,2026-05-09T14:41:34+00:00,false +/interfaces/formats/SQLInsert,docs/interfaces/formats/SQLInsert.md,core/reference/formats/SQLInsert.mdx,https://clickhouse.com/docs/interfaces/formats/SQLInsert,https://private-7c7dfe99.mintlify.app/core/reference/formats/SQLInsert,matched,2a5bbf839d622f7e,true,2a5bbf839d622f7e,2026-05-07T14:49:41+00:00,false +/interfaces/formats/TSKV,docs/interfaces/formats/TabSeparated/TSKV.md,core/reference/formats/TabSeparated/TSKV.mdx,https://clickhouse.com/docs/interfaces/formats/TSKV,https://private-7c7dfe99.mintlify.app/core/reference/formats/TabSeparated/TSKV,matched,414e7c4dfb6cd3da,true,414e7c4dfb6cd3da,2026-05-09T09:39:38+00:00,false +/interfaces/formats/TabSeparated,docs/interfaces/formats/TabSeparated/TabSeparated.md,core/reference/formats/TabSeparated/TabSeparated.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparated,https://private-7c7dfe99.mintlify.app/core/reference/formats/TabSeparated/TabSeparated,matched,d699d4175df21acc,true,d699d4175df21acc,2026-05-07T15:41:11+00:00,false +/interfaces/formats/TabSeparatedRaw,docs/interfaces/formats/TabSeparated/TabSeparatedRaw.md,core/reference/formats/TabSeparated/TabSeparatedRaw.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparatedRaw,https://private-7c7dfe99.mintlify.app/core/reference/formats/TabSeparated/TabSeparatedRaw,matched,8640bb0e91d0ce24,true,8640bb0e91d0ce24,2026-05-09T09:39:38+00:00,false +/interfaces/formats/TabSeparatedRawWithNames,docs/interfaces/formats/TabSeparated/TabSeparatedRawWithNames.md,core/reference/formats/TabSeparated/TabSeparatedRawWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparatedRawWithNames,https://private-7c7dfe99.mintlify.app/core/reference/formats/TabSeparated/TabSeparatedRawWithNames,matched,8e9c8e608b5e9c9e,true,8e9c8e608b5e9c9e,2026-05-08T09:09:20+00:00,false +/interfaces/formats/TabSeparatedRawWithNamesAndTypes,docs/interfaces/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.md,core/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparatedRawWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/core/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes,matched,6526c7597b3e43df,true,6526c7597b3e43df,2026-05-08T09:09:20+00:00,false +/interfaces/formats/TabSeparatedWithNames,docs/interfaces/formats/TabSeparated/TabSeparatedWithNames.md,core/reference/formats/TabSeparated/TabSeparatedWithNames.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparatedWithNames,https://private-7c7dfe99.mintlify.app/core/reference/formats/TabSeparated/TabSeparatedWithNames,matched,71530532e2635ead,true,71530532e2635ead,2026-05-09T09:39:38+00:00,false +/interfaces/formats/TabSeparatedWithNamesAndTypes,docs/interfaces/formats/TabSeparated/TabSeparatedWithNamesAndTypes.md,core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes.mdx,https://clickhouse.com/docs/interfaces/formats/TabSeparatedWithNamesAndTypes,https://private-7c7dfe99.mintlify.app/core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes,matched,79af085e05f9fd13,true,79af085e05f9fd13,2026-05-09T09:39:38+00:00,false +/interfaces/formats/Template,docs/interfaces/formats/Template/Template.md,core/reference/formats/Template/Template.mdx,https://clickhouse.com/docs/interfaces/formats/Template,https://private-7c7dfe99.mintlify.app/core/reference/formats/Template/Template,matched,faa699829df50e5c,true,faa699829df50e5c,2026-05-19T11:08:53+00:00,false +/interfaces/formats/TemplateIgnoreSpaces,docs/interfaces/formats/Template/TemplateIgnoreSpaces.md,core/reference/formats/Template/TemplateIgnoreSpaces.mdx,https://clickhouse.com/docs/interfaces/formats/TemplateIgnoreSpaces,https://private-7c7dfe99.mintlify.app/core/reference/formats/Template/TemplateIgnoreSpaces,matched,190e7c7b34bba92c,true,190e7c7b34bba92c,2026-05-08T09:09:20+00:00,false +/interfaces/formats/Values,docs/interfaces/formats/Values.md,core/reference/formats/Values.mdx,https://clickhouse.com/docs/interfaces/formats/Values,https://private-7c7dfe99.mintlify.app/core/reference/formats/Values,matched,635a54eaaef6f5e7,true,635a54eaaef6f5e7,2026-05-09T09:39:38+00:00,false +/interfaces/formats/Vertical,docs/interfaces/formats/Vertical.md,core/reference/formats/Vertical.mdx,https://clickhouse.com/docs/interfaces/formats/Vertical,https://private-7c7dfe99.mintlify.app/core/reference/formats/Vertical,matched,3de10984a294ee3a,true,3de10984a294ee3a,2026-05-07T14:49:41+00:00,false +/interfaces/formats/XML,docs/interfaces/formats/XML.md,core/reference/formats/XML.mdx,https://clickhouse.com/docs/interfaces/formats/XML,https://private-7c7dfe99.mintlify.app/core/reference/formats/XML,matched,f33dc7dd4c81c9ff,true,f33dc7dd4c81c9ff,2026-05-07T14:49:41+00:00,false +/interfaces/grpc,docs/integrations/interfaces/grpc.md,core/concepts/features/interfaces/grpc.mdx,https://clickhouse.com/docs/interfaces/grpc,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/grpc,matched,71ce9ab564fe65cf,true,71ce9ab564fe65cf,2026-05-13T13:16:51+00:00,false +/interfaces/http,docs/integrations/interfaces/http.md,core/concepts/features/interfaces/http.mdx,https://clickhouse.com/docs/interfaces/http,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/http,matched,a26f7c7e0b5565b2,true,a26f7c7e0b5565b2,2026-05-13T15:43:29+00:00,false +/interfaces/jdbc,docs/integrations/interfaces/jdbc.md,core/concepts/features/interfaces/jdbc.mdx,https://clickhouse.com/docs/interfaces/jdbc,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/jdbc,matched,96ba684e632efee8,true,cfce448da448f5c7,2026-05-08T09:09:20+00:00,false +/interfaces/mysql,docs/integrations/interfaces/mysql.md,core/concepts/features/interfaces/mysql.mdx,https://clickhouse.com/docs/interfaces/mysql,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/mysql,matched,de14b44afeedd37f,true,de14b44afeedd37f,2026-05-08T11:53:27+00:00,false +/interfaces/natives-clients-and-interfaces,docs/interfaces/native-clients-interfaces-index.md,core/concepts/features/interfaces/native-clients-interfaces-index.mdx,https://clickhouse.com/docs/interfaces/natives-clients-and-interfaces,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/native-clients-interfaces-index,matched,bc9842824ee60cf0,true,bc9842824ee60cf0,2026-05-19T11:08:53+00:00,false +/interfaces/odbc,docs/integrations/interfaces/odbc.md,core/concepts/features/interfaces/odbc.mdx,https://clickhouse.com/docs/interfaces/odbc,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/odbc,matched,18014418fca702e2,true,18014418fca702e2,2026-05-13T13:16:51+00:00,false +/interfaces/overview,docs/integrations/interfaces/overview.md,core/concepts/features/interfaces/overview.mdx,https://clickhouse.com/docs/interfaces/overview,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/overview,matched,cf59fe61367d7168,true,cf59fe61367d7168,2026-05-13T13:16:51+00:00,false +/interfaces/postgresql,docs/integrations/interfaces/postgresql.md,core/concepts/features/interfaces/postgresql.mdx,https://clickhouse.com/docs/interfaces/postgresql,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/postgresql,matched,3b3e0a1f7ddb7471,true,3b3e0a1f7ddb7471,2026-05-08T09:09:20+00:00,false +/interfaces/prometheus,docs/integrations/interfaces/prometheus.md,core/concepts/features/interfaces/prometheus.mdx,https://clickhouse.com/docs/interfaces/prometheus,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/prometheus,matched,1119bf9a3149424f,true,d10ca35ac3147e57,2026-05-08T09:09:20+00:00,false +/interfaces/schema-inference,docs/interfaces/schema-inference.md,core/concepts/features/interfaces/schema-inference.mdx,https://clickhouse.com/docs/interfaces/schema-inference,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/schema-inference,matched,4c061756fb7e7549,true,4c061756fb7e7549,2026-05-19T11:08:53+00:00,false +/interfaces/ssh,docs/integrations/interfaces/ssh.md,core/concepts/features/interfaces/ssh.mdx,https://clickhouse.com/docs/interfaces/ssh,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/ssh,matched,05310f7271c1ee03,true,05310f7271c1ee03,2026-05-08T09:09:20+00:00,false +/interfaces/tcp,docs/integrations/interfaces/tcp.md,core/concepts/features/interfaces/tcp.mdx,https://clickhouse.com/docs/interfaces/tcp,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/tcp,matched,6ef79e809370ded1,true,c65c3ea67e2e1c06,2026-05-08T09:09:20+00:00,false +/interfaces/third-party/,docs/interfaces/third-party/index.md,core/concepts/features/interfaces/third-party/index.mdx,https://clickhouse.com/docs/interfaces/third-party/,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/third-party/index,matched,fca7f456f51a4121,true,fca7f456f51a4121,2026-05-19T11:08:53+00:00,false /interfaces/third-party/client-libraries,docs/interfaces/third-party/client-libraries.md,integrations/language-clients/third-party/client-libraries.mdx,https://clickhouse.com/docs/interfaces/third-party/client-libraries,https://private-7c7dfe99.mintlify.app/integrations/language-clients/third-party/client-libraries,matched,3beb41b07132bdef,true,3beb41b07132bdef,2026-05-19T11:08:53+00:00,false /interfaces/third-party/gui,docs/interfaces/third-party/gui.md,integrations/connectors/tools/gui.mdx,https://clickhouse.com/docs/interfaces/third-party/gui,https://private-7c7dfe99.mintlify.app/integrations/connectors/tools/gui,matched,b8e1bd3fa87f6dca,true,b8e1bd3fa87f6dca,2026-05-19T11:08:53+00:00,false /interfaces/third-party/integrations,docs/interfaces/third-party/integrations.md,integrations/connectors/tools/third-party-libraries.mdx,https://clickhouse.com/docs/interfaces/third-party/integrations,https://private-7c7dfe99.mintlify.app/integrations/connectors/tools/third-party-libraries,matched,69ab0ffb17efb049,true,69ab0ffb17efb049,2026-05-19T11:08:53+00:00,false /interfaces/third-party/moose-olap,docs/integrations/language-clients/moose-olap.md,integrations/language-clients/third-party/moose-olap.mdx,https://clickhouse.com/docs/interfaces/third-party/moose-olap,https://private-7c7dfe99.mintlify.app/integrations/language-clients/third-party/moose-olap,matched,7fcc162cac8f6a59,true,7fcc162cac8f6a59,2026-05-09T17:02:01+00:00,false /interfaces/third-party/proxy,docs/interfaces/third-party/proxy.md,integrations/connectors/tools/proxy.mdx,https://clickhouse.com/docs/interfaces/third-party/proxy,https://private-7c7dfe99.mintlify.app/integrations/connectors/tools/proxy,matched,53379d5b0eb5251c,true,53379d5b0eb5251c,2026-05-19T11:08:53+00:00,false -/interfaces/web-terminal,docs/interfaces/web-terminal.md,integrations/connectors/data-integrations/drivers-and-interfaces/web-terminal.mdx,https://clickhouse.com/docs/interfaces/web-terminal,https://private-7c7dfe99.mintlify.app/integrations/connectors/data-integrations/drivers-and-interfaces/web-terminal,matched,b2246e2495028370,true,b2246e2495028370,2026-05-19T11:48:22+00:00,false -/intro,docs/intro.md,get-started/about/intro.mdx,https://clickhouse.com/docs/intro,https://private-7c7dfe99.mintlify.app/get-started/about/intro,matched,ffe506c24865d5fd,true,ffe506c24865d5fd,2026-05-08T20:59:47+00:00,false +/interfaces/web-terminal,docs/interfaces/web-terminal.md,core/concepts/features/interfaces/web-terminal.mdx,https://clickhouse.com/docs/interfaces/web-terminal,https://private-7c7dfe99.mintlify.app/core/concepts/features/interfaces/web-terminal,matched,b2246e2495028370,true,b2246e2495028370,2026-05-19T11:48:22+00:00,false +/intro,docs/intro.md,core/get-started/about/intro.mdx,https://clickhouse.com/docs/intro,https://private-7c7dfe99.mintlify.app/core/get-started/about/intro,matched,ffe506c24865d5fd,true,ffe506c24865d5fd,2026-05-08T20:59:47+00:00,false /introduction-clickhouse,docs/introduction-index.md,,https://clickhouse.com/docs/introduction-clickhouse,,unmatched,dc72366dcf698c0d,false,,,false /knowledgebase/Insert_select_settings_tuning,knowledgebase/Insert_select_settings_tuning.mdx,,https://clickhouse.com/docs/knowledgebase/Insert_select_settings_tuning,,unmatched,a0801c6bb244ad72,false,,,false /knowledgebase/ODBC-authentication-failed-error-using-PowerBI-CH-connector,knowledgebase/ODBC-authentication-failed-error-using-PowerBI-CH-connector.mdx,resources/support-center/knowledge-base/integrations/ODBC-authentication-failed-error-using-PowerBI-CH-connector.mdx,https://clickhouse.com/docs/knowledgebase/ODBC-authentication-failed-error-using-PowerBI-CH-connector,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/integrations/ODBC-authentication-failed-error-using-PowerBI-CH-connector,matched,3d443c4abc73eddf,false,,,false @@ -936,7 +936,7 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /knowledgebase/llvm-clang-up-to-date,knowledgebase/llvm-clang-up-to-date.mdx,resources/support-center/knowledge-base/setup-installation/llvm-clang-up-to-date.mdx,https://clickhouse.com/docs/knowledgebase/llvm-clang-up-to-date,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/setup-installation/llvm-clang-up-to-date,matched,94c625175686dfb0,false,,,false /knowledgebase/mapping-of-system-metrics-to-prometheus-metrics,knowledgebase/mapping-of-system-metrics-to-prometheus-metrics.mdx,resources/support-center/knowledge-base/monitoring-debugging/mapping-of-system-metrics-to-prometheus-metrics.mdx,https://clickhouse.com/docs/knowledgebase/mapping-of-system-metrics-to-prometheus-metrics,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/monitoring-debugging/mapping-of-system-metrics-to-prometheus-metrics,matched,8d293de1b22941bb,false,,,false /knowledgebase/mapreduce,knowledgebase/mapreduce.mdx,resources/support-center/knowledge-base/general-faqs/mapreduce.mdx,https://clickhouse.com/docs/knowledgebase/mapreduce,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/general-faqs/mapreduce,matched,40ccc189c309d816,false,,,false -/knowledgebase/materialized-view-rollup-timeseries,docs/use-cases/time-series/06_materialized-view-rollup.mdx,guides/real-time-analytics/time-series/materialized-view-rollup.mdx,https://clickhouse.com/docs/knowledgebase/materialized-view-rollup-timeseries,https://private-7c7dfe99.mintlify.app/guides/real-time-analytics/time-series/materialized-view-rollup,matched,cbf44b30af8d3934,true,cbf44b30af8d3934,2026-05-08T09:09:20+00:00,false +/knowledgebase/materialized-view-rollup-timeseries,docs/use-cases/time-series/06_materialized-view-rollup.mdx,core/guides/use-cases/real-time-analytics/time-series/materialized-view-rollup.mdx,https://clickhouse.com/docs/knowledgebase/materialized-view-rollup-timeseries,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/real-time-analytics/time-series/materialized-view-rollup,matched,cbf44b30af8d3934,true,cbf44b30af8d3934,2026-05-08T09:09:20+00:00,false /knowledgebase/maximum_number_of_tables_and_databases,knowledgebase/maximum_number_of_tables_and_databases.mdx,,https://clickhouse.com/docs/knowledgebase/maximum_number_of_tables_and_databases,,unmatched,a4494efc6991ad7d,false,,,false /knowledgebase/memory-limit-exceeded-for-query,knowledgebase/memory-limit-exceeded-for-query.mdx,resources/support-center/knowledge-base/performance-optimization/memory-limit-exceeded-for-query.mdx,https://clickhouse.com/docs/knowledgebase/memory-limit-exceeded-for-query,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/performance-optimization/memory-limit-exceeded-for-query,matched,be2b70c111bb6868,false,,,false /knowledgebase/multi-region-replication,knowledgebase/multi-region-replication.mdx,resources/support-center/knowledge-base/cloud-services/multi-region-replication.mdx,https://clickhouse.com/docs/knowledgebase/multi-region-replication,https://private-7c7dfe99.mintlify.app/resources/support-center/knowledge-base/cloud-services/multi-region-replication,matched,5255a26915e56655,false,,,false @@ -996,793 +996,793 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /manage/security/gcp-private-service-connect,docs/cloud/guides/security/02_connectivity/private_networking/03_gcp-private-service-connect.md,products/cloud/guides/security/connectivity/private-networking/gcp-private-service-connect.mdx,https://clickhouse.com/docs/manage/security/gcp-private-service-connect,https://private-7c7dfe99.mintlify.app/products/cloud/guides/security/connectivity/private-networking/gcp-private-service-connect,matched,6cdb6679989b8a4f,true,6cdb6679989b8a4f,2026-05-13T15:43:30+00:00,false /manage/settings,docs/cloud/reference/08_settings.md,products/cloud/reference/settings.mdx,https://clickhouse.com/docs/manage/settings,https://private-7c7dfe99.mintlify.app/products/cloud/reference/settings,matched,f7ab2f792dc532d7,true,f7ab2f792dc532d7,2026-05-08T09:09:20+00:00,false /manage/updates,docs/cloud/features/06_admin_features/upgrades.md,products/cloud/features/admin-features/upgrades.mdx,https://clickhouse.com/docs/manage/updates,https://private-7c7dfe99.mintlify.app/products/cloud/features/admin-features/upgrades,matched,ffc268ebb1ea7ea1,true,ffc268ebb1ea7ea1,2026-05-13T13:16:51+00:00,false -/managing-data/core-concepts,docs/managing-data/core-concepts/index.md,concepts/core-concepts/index.mdx,https://clickhouse.com/docs/managing-data/core-concepts,https://private-7c7dfe99.mintlify.app/concepts/core-concepts,matched,490ca15b90dd7fad,true,490ca15b90dd7fad,2026-05-08T18:23:34+00:00,false -/managing-data/delete_mutations,docs/managing-data/deleting-data/delete_mutations.mdx,concepts/operations/delete/delete-mutations.mdx,https://clickhouse.com/docs/managing-data/delete_mutations,https://private-7c7dfe99.mintlify.app/concepts/operations/delete/delete-mutations,matched,9a516f2e140076fd,true,9a516f2e140076fd,2026-05-09T17:02:01+00:00,false -/managing-data/deleting-data/overview,docs/managing-data/deleting-data/index.md,guides/data-modelling/deleting-data/index.mdx,https://clickhouse.com/docs/managing-data/deleting-data/overview,https://private-7c7dfe99.mintlify.app/guides/data-modelling/deleting-data,matched,c07ea006ce7ea6ab,true,c07ea006ce7ea6ab,2026-05-09T17:51:26+00:00,false -/managing-data/drop_partition,docs/managing-data/drop_partition.mdx,concepts/operations/delete/drop-partition.mdx,https://clickhouse.com/docs/managing-data/drop_partition,https://private-7c7dfe99.mintlify.app/concepts/operations/delete/drop-partition,matched,1c57c679e355f3f9,true,1c57c679e355f3f9,2026-05-07T14:49:41+00:00,false -/managing-data/materialized-views-versus-projections,docs/data-modeling/projections/2_materialized-views-versus-projections.md,concepts/features/projections/materialized-views-versus-projections.mdx,https://clickhouse.com/docs/managing-data/materialized-views-versus-projections,https://private-7c7dfe99.mintlify.app/concepts/features/projections/materialized-views-versus-projections,matched,ecec14a993aa486e,true,ecec14a993aa486e,2026-05-08T09:09:20+00:00,false -/managing-data/truncate,docs/managing-data/truncate.md,concepts/operations/delete/truncate.mdx,https://clickhouse.com/docs/managing-data/truncate,https://private-7c7dfe99.mintlify.app/concepts/operations/delete/truncate,matched,85c977ff2c68bbc2,true,85c977ff2c68bbc2,2026-05-09T17:42:52+00:00,false -/materialized-view/incremental-materialized-view,docs/materialized-view/incremental-materialized-view.md,concepts/features/materialized-views/incremental-materialized-view.mdx,https://clickhouse.com/docs/materialized-view/incremental-materialized-view,https://private-7c7dfe99.mintlify.app/concepts/features/materialized-views/incremental-materialized-view,matched,b8d188b15cf0f6d6,true,b8d188b15cf0f6d6,2026-05-08T09:09:20+00:00,false -/materialized-view/refreshable-materialized-view,docs/materialized-view/refreshable-materialized-view.md,concepts/features/materialized-views/refreshable-materialized-view.mdx,https://clickhouse.com/docs/materialized-view/refreshable-materialized-view,https://private-7c7dfe99.mintlify.app/concepts/features/materialized-views/refreshable-materialized-view,matched,c2f2accf06323932,true,c2f2accf06323932,2026-05-08T12:19:52+00:00,false -/materialized-views,docs/materialized-view/index.md,concepts/features/materialized-views/index.mdx,https://clickhouse.com/docs/materialized-views,https://private-7c7dfe99.mintlify.app/concepts/features/materialized-views,matched,15213eb6a61085ad,true,15213eb6a61085ad,2026-05-08T12:19:52+00:00,false -/merges,docs/managing-data/core-concepts/merges.mdx,concepts/core-concepts/merges.mdx,https://clickhouse.com/docs/merges,https://private-7c7dfe99.mintlify.app/concepts/core-concepts/merges,matched,23cd1a4eacc6d35e,true,23cd1a4eacc6d35e,2026-05-08T09:09:20+00:00,false -/migrations/bigquery,docs/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/index.md,get-started/setup/migration-guides/bigquery/index.mdx,https://clickhouse.com/docs/migrations/bigquery,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/bigquery,matched,6e9ef6dfd8e741fb,true,524a54c710aefcd2,2026-05-13T13:25:34+00:00,false -/migrations/bigquery/biquery-vs-clickhouse-cloud,docs/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md,get-started/setup/migration-guides/bigquery/overview.mdx,https://clickhouse.com/docs/migrations/bigquery/biquery-vs-clickhouse-cloud,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/bigquery/overview,matched,dd35989fc89db44d,true,dd35989fc89db44d,2026-05-19T11:08:53+00:00,false -/migrations/bigquery/loading-data,docs/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md,get-started/setup/migration-guides/bigquery/loading-data.mdx,https://clickhouse.com/docs/migrations/bigquery/loading-data,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/bigquery/loading-data,matched,db99c807a578b973,true,db99c807a578b973,2026-05-08T09:09:20+00:00,false -/migrations/bigquery/migrating-to-clickhouse-cloud,docs/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md,get-started/setup/migration-guides/bigquery/migrating-to-clickhouse-cloud.mdx,https://clickhouse.com/docs/migrations/bigquery/migrating-to-clickhouse-cloud,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/bigquery/migrating-to-clickhouse-cloud,matched,acfd8dc42b8be408,true,acfd8dc42b8be408,2026-05-13T15:43:26+00:00,false -/migrations/elastic-overview,docs/cloud/onboard/02_migrate/01_migration_guides/05_elastic/01_overview.md,get-started/setup/migration-guides/elastic/overview.mdx,https://clickhouse.com/docs/migrations/elastic-overview,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/elastic/overview,matched,573b1095d6f3b021,true,573b1095d6f3b021,2026-05-13T13:16:51+00:00,false -/migrations/postgresql,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/index.md,get-started/setup/migration-guides/postgres/index.mdx,https://clickhouse.com/docs/migrations/postgresql,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/postgres,matched,1fc6d064882a931f,true,1fc6d064882a931f,2026-05-09T10:08:44+00:00,false -/migrations/postgresql/appendix,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md,get-started/setup/migration-guides/postgres/appendix.mdx,https://clickhouse.com/docs/migrations/postgresql/appendix,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/postgres/appendix,matched,f7211aaf84e07266,true,f7211aaf84e07266,2026-05-08T09:09:20+00:00,false -/migrations/postgresql/data-modeling-techniques,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md,get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3.mdx,https://clickhouse.com/docs/migrations/postgresql/data-modeling-techniques,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3,matched,c30cdf3133afce5d,true,c30cdf3133afce5d,2026-05-08T09:09:20+00:00,false -/migrations/postgresql/dataset,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md,get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part1.mdx,https://clickhouse.com/docs/migrations/postgresql/dataset,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part1,matched,c3c60d781f027a81,true,c3c60d781f027a81,2026-05-08T09:09:20+00:00,false -/migrations/postgresql/overview,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md,get-started/setup/migration-guides/postgres/overview.mdx,https://clickhouse.com/docs/migrations/postgresql/overview,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/postgres/overview,matched,921719ea95cc7747,true,921719ea95cc7747,2026-05-13T13:25:35+00:00,false -/migrations/postgresql/rewriting-queries,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md,get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part2.mdx,https://clickhouse.com/docs/migrations/postgresql/rewriting-queries,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part2,matched,dea71bd599e21414,true,dea71bd599e21414,2026-05-19T11:08:53+00:00,false -/migrations/redshift-overview,docs/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md,get-started/setup/migration-guides/redshift/overview.mdx,https://clickhouse.com/docs/migrations/redshift-overview,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/redshift/overview,matched,d531bf94e01014ae,true,d531bf94e01014ae,2026-05-13T13:16:51+00:00,false -/migrations/redshift/migration-guide,docs/cloud/onboard/02_migrate/01_migration_guides/06_redshift/02_migration_guide.md,get-started/setup/migration-guides/redshift/migration-guide.mdx,https://clickhouse.com/docs/migrations/redshift/migration-guide,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/redshift/migration-guide,matched,9b17a57ce389bca0,true,9b17a57ce389bca0,2026-05-08T11:33:34+00:00,false -/migrations/redshift/sql-translation-reference,docs/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md,get-started/setup/migration-guides/redshift/sql-translation-reference.mdx,https://clickhouse.com/docs/migrations/redshift/sql-translation-reference,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/redshift/sql-translation-reference,matched,d24fd1be1d55216c,true,d24fd1be1d55216c,2026-05-13T13:16:51+00:00,false -/migrations/snowflake,docs/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md,get-started/setup/migration-guides/snowflake/migration-guide.mdx,https://clickhouse.com/docs/migrations/snowflake,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/snowflake/migration-guide,matched,c650d56bdfeafa74,true,c650d56bdfeafa74,2026-05-08T09:09:20+00:00,false -/migrations/snowflake-overview,docs/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md,get-started/setup/migration-guides/snowflake/overview.mdx,https://clickhouse.com/docs/migrations/snowflake-overview,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/snowflake/overview,matched,5e48b24459dae079,true,5e48b24459dae079,2026-05-08T09:09:20+00:00,false -/migrations/snowflake-translation-reference,docs/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md,get-started/setup/migration-guides/snowflake/sql-translation-reference.mdx,https://clickhouse.com/docs/migrations/snowflake-translation-reference,https://private-7c7dfe99.mintlify.app/get-started/setup/migration-guides/snowflake/sql-translation-reference,matched,bddeed8dc9dd6960,true,bddeed8dc9dd6960,2026-05-13T13:16:51+00:00,false -/native-protocol/basics,docs/native-protocol/basics.md,resources/contribute/native-protocol/basics.mdx,https://clickhouse.com/docs/native-protocol/basics,https://private-7c7dfe99.mintlify.app/resources/contribute/native-protocol/basics,matched,6c83b8764e912961,true,63c7afb1ad7b7072,2026-05-08T09:09:20+00:00,false -/native-protocol/client,docs/native-protocol/client.md,resources/contribute/native-protocol/client.mdx,https://clickhouse.com/docs/native-protocol/client,https://private-7c7dfe99.mintlify.app/resources/contribute/native-protocol/client,matched,d284978f67c3edba,true,d284978f67c3edba,2026-05-13T13:16:51+00:00,false -/native-protocol/columns,docs/native-protocol/columns.md,resources/contribute/native-protocol/columns.mdx,https://clickhouse.com/docs/native-protocol/columns,https://private-7c7dfe99.mintlify.app/resources/contribute/native-protocol/columns,matched,6ac09babfb2345ea,true,d125f35b59774466,2026-05-08T09:09:20+00:00,false -/native-protocol/hash,docs/native-protocol/hash.md,resources/contribute/native-protocol/hash.mdx,https://clickhouse.com/docs/native-protocol/hash,https://private-7c7dfe99.mintlify.app/resources/contribute/native-protocol/hash,matched,6458e0d78f3458b5,true,11ca88940183f46c,2026-05-08T09:09:20+00:00,false -/native-protocol/server,docs/native-protocol/server.md,resources/contribute/native-protocol/server.mdx,https://clickhouse.com/docs/native-protocol/server,https://private-7c7dfe99.mintlify.app/resources/contribute/native-protocol/server,matched,5749421cd457053a,true,b1a72f898456e3c0,2026-05-09T09:39:38+00:00,false -/observability/demo-application,docs/use-cases/observability/build-your-own/demo-application.md,guides/observability/build-your-own/demo-application.mdx,https://clickhouse.com/docs/observability/demo-application,https://private-7c7dfe99.mintlify.app/guides/observability/build-your-own/demo-application,matched,1f0a4b693ba5e0ec,false,,,false -/observability/grafana,docs/use-cases/observability/build-your-own/grafana.md,guides/observability/build-your-own/grafana.mdx,https://clickhouse.com/docs/observability/grafana,https://private-7c7dfe99.mintlify.app/guides/observability/build-your-own/grafana,matched,6dc8fd3088ed4f08,true,6dc8fd3088ed4f08,2026-05-08T09:09:20+00:00,false -/observability/integrating-opentelemetry,docs/use-cases/observability/build-your-own/integrating-opentelemetry.md,guides/observability/build-your-own/integrating-opentelemetry.mdx,https://clickhouse.com/docs/observability/integrating-opentelemetry,https://private-7c7dfe99.mintlify.app/guides/observability/build-your-own/integrating-opentelemetry,matched,5165c90c3e181d42,true,5165c90c3e181d42,2026-05-08T09:09:20+00:00,false -/observability/managing-data,docs/use-cases/observability/build-your-own/managing-data.md,guides/observability/build-your-own/managing-data.mdx,https://clickhouse.com/docs/observability/managing-data,https://private-7c7dfe99.mintlify.app/guides/observability/build-your-own/managing-data,matched,4e906e75b0ab47ca,true,4e906e75b0ab47ca,2026-05-08T09:09:20+00:00,false -/operations/access-rights,docs/guides/sre/user-management/index.md,concepts/features/security/access-rights.mdx,https://clickhouse.com/docs/operations/access-rights,https://private-7c7dfe99.mintlify.app/concepts/features/security/access-rights,matched,c352e5c6a23a8793,true,c352e5c6a23a8793,2026-05-13T13:16:51+00:00,false -/operations/allocation-profiling,docs/operations/allocation-profiling.md,concepts/features/performance/allocation-profiling.mdx,https://clickhouse.com/docs/operations/allocation-profiling,https://private-7c7dfe99.mintlify.app/concepts/features/performance/allocation-profiling,matched,aeeb6ec3bd877a51,true,aeeb6ec3bd877a51,2026-05-08T09:09:20+00:00,false -/operations/allocation-profiling-old,docs/operations/allocation-profiling-old.md,concepts/features/performance/allocation-profiling-old.mdx,https://clickhouse.com/docs/operations/allocation-profiling-old,https://private-7c7dfe99.mintlify.app/concepts/features/performance/allocation-profiling-old,matched,09dbdbce2cf9b2dd,true,09dbdbce2cf9b2dd,2026-05-08T09:09:20+00:00,false -/operations/analyzer,docs/operations/analyzer.md,guides/cloud-oss/performance-and-monitoring/analyzer.mdx,https://clickhouse.com/docs/operations/analyzer,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/performance-and-monitoring/analyzer,matched,244df0221ad8f2c7,true,30d060b9f19f6985,2026-05-08T09:09:20+00:00,false -/operations/backup/alternative_methods,docs/operations_/backup_restore/04_alternative_methods.md,concepts/features/backup-restore/alternative-methods.mdx,https://clickhouse.com/docs/operations/backup/alternative_methods,https://private-7c7dfe99.mintlify.app/concepts/features/backup-restore/alternative-methods,matched,6f1567f45a37d48d,true,6f1567f45a37d48d,2026-05-13T13:16:51+00:00,false -/operations/backup/azure,docs/operations_/backup_restore/03_azure_blob_storage.md,concepts/features/backup-restore/azure-blob-storage.mdx,https://clickhouse.com/docs/operations/backup/azure,https://private-7c7dfe99.mintlify.app/concepts/features/backup-restore/azure-blob-storage,matched,a014826091cc7de6,true,a014826091cc7de6,2026-05-08T09:09:20+00:00,false -/operations/backup/disk,docs/operations_/backup_restore/01_local_disk.md,concepts/features/backup-restore/local-disk.mdx,https://clickhouse.com/docs/operations/backup/disk,https://private-7c7dfe99.mintlify.app/concepts/features/backup-restore/local-disk,matched,c4dd19b827ee5be4,true,c4dd19b827ee5be4,2026-05-13T15:43:24+00:00,false -/operations/backup/overview,docs/operations_/backup_restore/00_overview.md,concepts/features/backup-restore/overview.mdx,https://clickhouse.com/docs/operations/backup/overview,https://private-7c7dfe99.mintlify.app/concepts/features/backup-restore/overview,matched,cf2f951338bcd3c1,true,cf2f951338bcd3c1,2026-05-13T15:43:24+00:00,false -/operations/backup/s3_endpoint,docs/operations_/backup_restore/02_s3_endpoint.md,concepts/features/backup-restore/s3-endpoint.mdx,https://clickhouse.com/docs/operations/backup/s3_endpoint,https://private-7c7dfe99.mintlify.app/concepts/features/backup-restore/s3-endpoint,matched,c3ff551589fda47e,true,c3ff551589fda47e,2026-05-09T17:02:01+00:00,false -/operations/backup/snapshot,docs/operations_/backup_restore/05_snapshot.md,concepts/features/backup-restore/snapshot.mdx,https://clickhouse.com/docs/operations/backup/snapshot,https://private-7c7dfe99.mintlify.app/concepts/features/backup-restore/snapshot,matched,26a73917b328cf38,true,26a73917b328cf38,2026-05-13T13:16:51+00:00,false -/operations/caches,docs/operations/caches.md,concepts/features/performance/caches/caches.mdx,https://clickhouse.com/docs/operations/caches,https://private-7c7dfe99.mintlify.app/concepts/features/performance/caches/caches,matched,55fdfbf942985753,true,e18f1ea2efc46626,2026-05-07T14:49:41+00:00,false -/operations/cluster-discovery,docs/operations/cluster-discovery.md,guides/oss/deployment-and-scaling/cluster-discovery.mdx,https://clickhouse.com/docs/operations/cluster-discovery,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/cluster-discovery,matched,bfb072f645be9235,true,343ceb09449e6436,2026-05-08T09:09:20+00:00,false -/operations/configuration-files,docs/operations/configuration-files.md,concepts/features/configuration/server-config/configuration-files.mdx,https://clickhouse.com/docs/operations/configuration-files,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/server-config/configuration-files,matched,9e71d3c2fa185cdf,true,9e71d3c2fa185cdf,2026-05-08T09:09:20+00:00,false -/operations/external-authenticators/,docs/operations/external-authenticators/index.md,concepts/features/security/external-authenticators/index.mdx,https://clickhouse.com/docs/operations/external-authenticators/,https://private-7c7dfe99.mintlify.app/concepts/features/security/external-authenticators,matched,16c47449f5275998,true,16c47449f5275998,2026-05-08T09:09:20+00:00,false -/operations/external-authenticators/http,docs/operations/external-authenticators/http.md,concepts/features/security/external-authenticators/http.mdx,https://clickhouse.com/docs/operations/external-authenticators/http,https://private-7c7dfe99.mintlify.app/concepts/features/security/external-authenticators/http,matched,04f510d66c9b376c,true,04f510d66c9b376c,2026-05-08T09:09:20+00:00,false -/operations/external-authenticators/kerberos,docs/operations/external-authenticators/kerberos.md,concepts/features/security/external-authenticators/kerberos.mdx,https://clickhouse.com/docs/operations/external-authenticators/kerberos,https://private-7c7dfe99.mintlify.app/concepts/features/security/external-authenticators/kerberos,matched,b7a3734788840b66,true,b7a3734788840b66,2026-05-08T09:09:20+00:00,false -/operations/external-authenticators/ldap,docs/operations/external-authenticators/ldap.md,concepts/features/security/external-authenticators/ldap.mdx,https://clickhouse.com/docs/operations/external-authenticators/ldap,https://private-7c7dfe99.mintlify.app/concepts/features/security/external-authenticators/ldap,matched,9449246250219a1a,true,9449246250219a1a,2026-05-19T11:08:53+00:00,false -/operations/external-authenticators/ssl-x509,docs/operations/external-authenticators/ssl-x509.md,concepts/features/security/external-authenticators/ssl-x509.mdx,https://clickhouse.com/docs/operations/external-authenticators/ssl-x509,https://private-7c7dfe99.mintlify.app/concepts/features/security/external-authenticators/ssl-x509,matched,947a7d558e471c72,true,947a7d558e471c72,2026-05-08T09:09:20+00:00,false -/operations/monitoring,docs/operations/monitoring.md,guides/oss/deployment-and-scaling/monitoring/monitoring.mdx,https://clickhouse.com/docs/operations/monitoring,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/monitoring/monitoring,matched,ee6d9f1af26926d6,true,ee6d9f1af26926d6,2026-05-08T09:09:20+00:00,false -/operations/named-collections,docs/operations/named-collections.md,concepts/features/configuration/server-config/named-collections.mdx,https://clickhouse.com/docs/operations/named-collections,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/server-config/named-collections,matched,8dc09979b83996cf,true,8dc09979b83996cf,2026-05-13T15:43:24+00:00,false -/operations/opentelemetry,docs/operations/opentelemetry.md,guides/oss/deployment-and-scaling/monitoring/opentelemetry.mdx,https://clickhouse.com/docs/operations/opentelemetry,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/monitoring/opentelemetry,matched,57b2ec3c9af7907d,true,57b2ec3c9af7907d,2026-05-08T09:09:20+00:00,false -/operations/optimizing-performance/profile-guided-optimization,docs/operations/optimizing-performance/profile-guided-optimization.md,resources/contribute/profile-guided-optimization.mdx,https://clickhouse.com/docs/operations/optimizing-performance/profile-guided-optimization,https://private-7c7dfe99.mintlify.app/resources/contribute/profile-guided-optimization,matched,a06cd352188c57c4,true,a06cd352188c57c4,2026-05-13T14:36:45+00:00,false -/operations/optimizing-performance/sampling-query-profiler,docs/operations/optimizing-performance/sampling-query-profiler.md,concepts/features/performance/troubleshoot/sampling-query-profiler.mdx,https://clickhouse.com/docs/operations/optimizing-performance/sampling-query-profiler,https://private-7c7dfe99.mintlify.app/concepts/features/performance/troubleshoot/sampling-query-profiler,matched,331303dc6c9ac8ef,true,331303dc6c9ac8ef,2026-05-13T14:36:43+00:00,false -/operations/overview,docs/guides/best-practices/index.md,guides/performance-and-monitoring/index.mdx,https://clickhouse.com/docs/operations/overview,https://private-7c7dfe99.mintlify.app/guides/performance-and-monitoring,matched,63df4b0ede3f1809,true,63df4b0ede3f1809,2026-05-08T11:28:15+00:00,false -/operations/performance-test,docs/operations/performance-test.md,concepts/features/performance/troubleshoot/performance-test.mdx,https://clickhouse.com/docs/operations/performance-test,https://private-7c7dfe99.mintlify.app/concepts/features/performance/troubleshoot/performance-test,matched,9e5d4bd1e5379d30,true,9e5d4bd1e5379d30,2026-05-08T09:09:20+00:00,false -/operations/query-cache,docs/operations/query-cache.md,concepts/features/performance/caches/query-cache.mdx,https://clickhouse.com/docs/operations/query-cache,https://private-7c7dfe99.mintlify.app/concepts/features/performance/caches/query-cache,matched,e8a08aebb039a807,true,7867cf786d57b72d,2026-05-09T11:14:51+00:00,false -/operations/query-condition-cache,docs/operations/query-condition-cache.md,concepts/features/performance/caches/query-condition-cache.mdx,https://clickhouse.com/docs/operations/query-condition-cache,https://private-7c7dfe99.mintlify.app/concepts/features/performance/caches/query-condition-cache,matched,01b02051819a2cf0,true,f67e1d9bf36c40cc,2026-05-09T10:26:02+00:00,false -/operations/quotas,docs/operations/quotas.md,concepts/features/configuration/server-config/quotas.mdx,https://clickhouse.com/docs/operations/quotas,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/server-config/quotas,matched,91a218790dd605e3,true,91a218790dd605e3,2026-05-08T09:09:20+00:00,false -/operations/server-configuration-parameters/settings,docs/operations/server-configuration-parameters/settings.md,reference/settings/server-settings/settings.mdx,https://clickhouse.com/docs/operations/server-configuration-parameters/settings,https://private-7c7dfe99.mintlify.app/reference/settings/server-settings/settings,matched,89179d24153a293d,true,89179d24153a293d,2026-05-19T11:08:53+00:00,false -/operations/settings/,docs/operations/settings/index.md,reference/settings/index.mdx,https://clickhouse.com/docs/operations/settings/,https://private-7c7dfe99.mintlify.app/reference/settings,matched,027d2488fe130352,true,027d2488fe130352,2026-05-08T21:00:24+00:00,false -/operations/settings/composable-protocols,docs/operations/settings/composable-protocols.md,concepts/features/configuration/server-config/composable-protocols.mdx,https://clickhouse.com/docs/operations/settings/composable-protocols,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/server-config/composable-protocols,matched,a959ce46b6a2f90d,true,fac105353a202b3d,2026-05-08T09:09:20+00:00,false -/operations/settings/constraints-on-settings,docs/operations/settings/constraints-on-settings.md,concepts/features/configuration/settings/constraints-on-settings.mdx,https://clickhouse.com/docs/operations/settings/constraints-on-settings,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/settings/constraints-on-settings,matched,b657f299aea82d59,true,8a07567dde304465,2026-05-08T09:09:20+00:00,false -/operations/settings/formats,docs/operations/settings/settings-formats.md,reference/settings/formats.mdx,https://clickhouse.com/docs/operations/settings/formats,https://private-7c7dfe99.mintlify.app/reference/settings/formats,matched,8333038917eb65c6,true,8333038917eb65c6,2026-05-19T11:08:53+00:00,false -/operations/settings/memory-overcommit,docs/operations/settings/memory-overcommit.md,concepts/features/configuration/settings/memory-overcommit.mdx,https://clickhouse.com/docs/operations/settings/memory-overcommit,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/settings/memory-overcommit,matched,0a243f5510171522,true,56a8436026a55bc5,2026-05-07T14:49:41+00:00,false -/operations/settings/merge-tree-settings,docs/operations/settings/merge-tree-settings.md,reference/settings/merge-tree-settings.mdx,https://clickhouse.com/docs/operations/settings/merge-tree-settings,https://private-7c7dfe99.mintlify.app/reference/settings/merge-tree-settings,matched,d52091bc92ce17c6,true,d52091bc92ce17c6,2026-05-19T11:08:53+00:00,false -/operations/settings/overview,docs/operations/settings/overview.md,concepts/features/configuration/settings/overview.mdx,https://clickhouse.com/docs/operations/settings/overview,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/settings/overview,matched,756466e653966891,true,d67f616f50eb112f,2026-05-08T09:09:20+00:00,false -/operations/settings/permissions-for-queries,docs/operations/settings/permissions-for-queries.md,concepts/features/configuration/settings/permissions-for-queries.mdx,https://clickhouse.com/docs/operations/settings/permissions-for-queries,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/settings/permissions-for-queries,matched,89955380f36ffec5,true,b20d70e81bda348f,2026-05-09T11:14:51+00:00,false -/operations/settings/query-complexity,docs/operations/settings/query-complexity.md,concepts/features/configuration/settings/query-complexity.mdx,https://clickhouse.com/docs/operations/settings/query-complexity,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/settings/query-complexity,matched,cdc147d9f7450ac5,true,a3b2b2da1705264e,2026-05-08T09:09:20+00:00,false -/operations/settings/query-level,docs/operations/settings/settings-query-level.md,concepts/features/configuration/settings/settings-query-level.mdx,https://clickhouse.com/docs/operations/settings/query-level,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/settings/settings-query-level,matched,03f99ff0a17572c9,true,03f99ff0a17572c9,2026-05-13T15:43:24+00:00,false -/operations/settings/server-overload,docs/operations/settings/server-overload.md,concepts/features/configuration/settings/server-overload.mdx,https://clickhouse.com/docs/operations/settings/server-overload,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/settings/server-overload,matched,f021b72d2f0dadf4,true,62c5c6e1debf8e9f,2026-05-07T14:49:41+00:00,false -/operations/settings/settings,docs/operations/settings/settings.md,reference/settings/session-settings.mdx,https://clickhouse.com/docs/operations/settings/settings,https://private-7c7dfe99.mintlify.app/reference/settings/session-settings,matched,ea427818c0ffa5b8,true,ea427818c0ffa5b8,2026-05-19T11:08:53+00:00,false -/operations/settings/settings-profiles,docs/operations/settings/settings-profiles.md,concepts/features/configuration/settings/settings-profiles.mdx,https://clickhouse.com/docs/operations/settings/settings-profiles,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/settings/settings-profiles,matched,d74579c90b16c65e,true,d921a22cfbb36622,2026-05-08T09:09:20+00:00,false -/operations/settings/settings-users,docs/operations/settings/settings-users.md,concepts/features/configuration/settings/settings-users.mdx,https://clickhouse.com/docs/operations/settings/settings-users,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/settings/settings-users,matched,6883ddb871f8a016,true,75b7bfaa451e0787,2026-05-08T09:09:20+00:00,false -/operations/settings/tcp-connection-limits,docs/operations/settings/tcp-connection-limits.md,concepts/features/configuration/settings/tcp-connection-limits.mdx,https://clickhouse.com/docs/operations/settings/tcp-connection-limits,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/settings/tcp-connection-limits,matched,8e9898ab564cb4b6,true,27fdf16a587cb870,2026-05-07T14:49:41+00:00,false -/operations/ssl-zookeeper,docs/operations/ssl-zookeeper.md,guides/oss/deployment-and-scaling/keeper/ssl-zookeeper.mdx,https://clickhouse.com/docs/operations/ssl-zookeeper,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/keeper/ssl-zookeeper,matched,315bad9ae2949888,true,9a1b6a07af2168ed,2026-05-08T09:09:20+00:00,false -/operations/startup-scripts,docs/operations/startup-scripts.md,concepts/features/configuration/server-config/startup-scripts.mdx,https://clickhouse.com/docs/operations/startup-scripts,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/server-config/startup-scripts,matched,c7b28f8f3c2d8032,true,4866f2bf5a753196,2026-05-08T09:09:20+00:00,false -/operations/storing-data,docs/operations/storing-data.md,concepts/features/configuration/server-config/storing-data.mdx,https://clickhouse.com/docs/operations/storing-data,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/server-config/storing-data,matched,ba0615ec15899614,true,ba0615ec15899614,2026-05-13T15:43:24+00:00,false -/operations/system-tables/,docs/operations/system-tables/index.md,reference/system-tables/index.mdx,https://clickhouse.com/docs/operations/system-tables/,https://private-7c7dfe99.mintlify.app/reference/system-tables,matched,01004dd20053c0a5,true,01004dd20053c0a5,2026-05-19T11:08:53+00:00,false -/operations/system-tables/aggregate_function_combinators,docs/operations/system-tables/aggregate_function_combinators.md,reference/system-tables/aggregate_function_combinators.mdx,https://clickhouse.com/docs/operations/system-tables/aggregate_function_combinators,https://private-7c7dfe99.mintlify.app/reference/system-tables/aggregate_function_combinators,matched,74e843ffb796d988,true,74e843ffb796d988,2026-05-08T21:00:25+00:00,false -/operations/system-tables/aggregated_zookeeper_log,docs/operations/system-tables/aggregated_zookeeper_log.md,reference/system-tables/aggregated_zookeeper_log.mdx,https://clickhouse.com/docs/operations/system-tables/aggregated_zookeeper_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/aggregated_zookeeper_log,matched,c68bf57f9f3d3579,true,c68bf57f9f3d3579,2026-05-13T13:16:51+00:00,false -/operations/system-tables/asynchronous_insert_log,docs/operations/system-tables/asynchronous_insert_log.md,reference/system-tables/asynchronous_insert_log.mdx,https://clickhouse.com/docs/operations/system-tables/asynchronous_insert_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/asynchronous_insert_log,matched,b7dc3a891bbc2cdc,true,b7dc3a891bbc2cdc,2026-05-13T13:16:51+00:00,false -/operations/system-tables/asynchronous_inserts,docs/operations/system-tables/asynchronous_inserts.md,reference/system-tables/asynchronous_inserts.mdx,https://clickhouse.com/docs/operations/system-tables/asynchronous_inserts,https://private-7c7dfe99.mintlify.app/reference/system-tables/asynchronous_inserts,matched,6160869499ef76dd,true,6160869499ef76dd,2026-05-08T21:00:26+00:00,false -/operations/system-tables/asynchronous_loader,docs/operations/system-tables/asynchronous_loader.md,reference/system-tables/asynchronous_loader.mdx,https://clickhouse.com/docs/operations/system-tables/asynchronous_loader,https://private-7c7dfe99.mintlify.app/reference/system-tables/asynchronous_loader,matched,2974d35942161d69,true,2974d35942161d69,2026-05-08T21:00:26+00:00,false -/operations/system-tables/asynchronous_metric_log,docs/operations/system-tables/asynchronous_metric_log.md,reference/system-tables/asynchronous_metric_log.mdx,https://clickhouse.com/docs/operations/system-tables/asynchronous_metric_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/asynchronous_metric_log,matched,c63b53195c4f4369,true,c63b53195c4f4369,2026-05-13T13:16:51+00:00,false -/operations/system-tables/asynchronous_metrics,docs/operations/system-tables/asynchronous_metrics.md,reference/system-tables/asynchronous_metrics.mdx,https://clickhouse.com/docs/operations/system-tables/asynchronous_metrics,https://private-7c7dfe99.mintlify.app/reference/system-tables/asynchronous_metrics,matched,cc0904c2c2f9c5b3,true,cc0904c2c2f9c5b3,2026-05-19T11:08:53+00:00,false -/operations/system-tables/azure_queue_log,docs/operations/system-tables/azure_queue_log.md,reference/system-tables/azure_queue_log.mdx,https://clickhouse.com/docs/operations/system-tables/azure_queue_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/azure_queue_log,matched,6c8baa0a78b5a9f0,true,6c8baa0a78b5a9f0,2026-05-13T13:08:27+00:00,false -/operations/system-tables/azure_queue_metadata_cache,docs/operations/system-tables/azure_queue_metadata_cache.md,reference/system-tables/azure_queue_metadata_cache.mdx,https://clickhouse.com/docs/operations/system-tables/azure_queue_metadata_cache,https://private-7c7dfe99.mintlify.app/reference/system-tables/azure_queue_metadata_cache,matched,a1a4f88881741c60,true,a1a4f88881741c60,2026-05-08T21:00:26+00:00,false -/operations/system-tables/azure_queue_settings,docs/operations/system-tables/azure_queue_settings.md,reference/system-tables/azure_queue_settings.mdx,https://clickhouse.com/docs/operations/system-tables/azure_queue_settings,https://private-7c7dfe99.mintlify.app/reference/system-tables/azure_queue_settings,matched,b47c4addf4ff730f,true,b47c4addf4ff730f,2026-05-08T21:00:26+00:00,false -/operations/system-tables/background_schedule_pool,docs/operations/system-tables/background_schedule_pool.md,reference/system-tables/background_schedule_pool.mdx,https://clickhouse.com/docs/operations/system-tables/background_schedule_pool,https://private-7c7dfe99.mintlify.app/reference/system-tables/background_schedule_pool,matched,003f06920ccec6ad,true,003f06920ccec6ad,2026-05-08T21:00:27+00:00,false -/operations/system-tables/background_schedule_pool_log,docs/operations/system-tables/background_schedule_pool_log.md,reference/system-tables/background_schedule_pool_log.mdx,https://clickhouse.com/docs/operations/system-tables/background_schedule_pool_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/background_schedule_pool_log,matched,801268572623f510,true,801268572623f510,2026-05-13T13:16:51+00:00,false -/operations/system-tables/backup_log,docs/operations/system-tables/backup_log.md,reference/system-tables/backup_log.mdx,https://clickhouse.com/docs/operations/system-tables/backup_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/backup_log,matched,23f64f52bedff424,true,23f64f52bedff424,2026-05-13T13:16:51+00:00,false -/operations/system-tables/backups,docs/operations/system-tables/backups.md,reference/system-tables/backups.mdx,https://clickhouse.com/docs/operations/system-tables/backups,https://private-7c7dfe99.mintlify.app/reference/system-tables/backups,matched,474096c2d8465fd9,true,474096c2d8465fd9,2026-05-08T21:00:27+00:00,false -/operations/system-tables/blob_storage_log,docs/operations/system-tables/blob_storage_log.md,reference/system-tables/blob_storage_log.mdx,https://clickhouse.com/docs/operations/system-tables/blob_storage_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/blob_storage_log,matched,40e7e7b30c3c4fde,true,40e7e7b30c3c4fde,2026-05-13T13:16:51+00:00,false -/operations/system-tables/build_options,docs/operations/system-tables/build_options.md,reference/system-tables/build_options.mdx,https://clickhouse.com/docs/operations/system-tables/build_options,https://private-7c7dfe99.mintlify.app/reference/system-tables/build_options,matched,fb2cc9ed0b52f163,true,fb2cc9ed0b52f163,2026-05-08T21:00:28+00:00,false -/operations/system-tables/certificates,docs/operations/system-tables/certificates.md,reference/system-tables/certificates.mdx,https://clickhouse.com/docs/operations/system-tables/certificates,https://private-7c7dfe99.mintlify.app/reference/system-tables/certificates,matched,7dfacd8a49ab3d16,true,7dfacd8a49ab3d16,2026-05-08T21:00:28+00:00,false -/operations/system-tables/clusters,docs/operations/system-tables/clusters.md,reference/system-tables/clusters.mdx,https://clickhouse.com/docs/operations/system-tables/clusters,https://private-7c7dfe99.mintlify.app/reference/system-tables/clusters,matched,61e9f75ff22c879e,true,61e9f75ff22c879e,2026-05-19T11:08:53+00:00,false -/operations/system-tables/codecs,docs/operations/system-tables/codecs.md,reference/system-tables/codecs.mdx,https://clickhouse.com/docs/operations/system-tables/codecs,https://private-7c7dfe99.mintlify.app/reference/system-tables/codecs,matched,7cf08cdbeb0adcf4,true,7cf08cdbeb0adcf4,2026-05-08T21:00:28+00:00,false -/operations/system-tables/collations,docs/operations/system-tables/collations.md,reference/system-tables/collations.mdx,https://clickhouse.com/docs/operations/system-tables/collations,https://private-7c7dfe99.mintlify.app/reference/system-tables/collations,matched,1018414d0db6f58b,true,1018414d0db6f58b,2026-05-08T21:00:28+00:00,false -/operations/system-tables/columns,docs/operations/system-tables/columns.md,reference/system-tables/columns.mdx,https://clickhouse.com/docs/operations/system-tables/columns,https://private-7c7dfe99.mintlify.app/reference/system-tables/columns,matched,2c156066c46d67db,true,2c156066c46d67db,2026-05-13T13:16:51+00:00,false -/operations/system-tables/completions,docs/operations/system-tables/completions.md,reference/system-tables/completions.mdx,https://clickhouse.com/docs/operations/system-tables/completions,https://private-7c7dfe99.mintlify.app/reference/system-tables/completions,matched,b24edc206695568d,true,b24edc206695568d,2026-05-08T21:00:29+00:00,false -/operations/system-tables/contributors,docs/operations/system-tables/contributors.md,reference/system-tables/contributors.mdx,https://clickhouse.com/docs/operations/system-tables/contributors,https://private-7c7dfe99.mintlify.app/reference/system-tables/contributors,matched,ed99fe2f369bdcd6,true,ed99fe2f369bdcd6,2026-05-08T21:00:29+00:00,false -/operations/system-tables/crash_log,docs/operations/system-tables/crash_log.md,reference/system-tables/crash_log.mdx,https://clickhouse.com/docs/operations/system-tables/crash_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/crash_log,matched,789e998674334ab0,true,789e998674334ab0,2026-05-13T13:16:51+00:00,false -/operations/system-tables/current_roles,docs/operations/system-tables/current_roles.md,reference/system-tables/current_roles.mdx,https://clickhouse.com/docs/operations/system-tables/current_roles,https://private-7c7dfe99.mintlify.app/reference/system-tables/current_roles,matched,d5fa5b1ccc479454,true,d5fa5b1ccc479454,2026-05-08T21:00:29+00:00,false -/operations/system-tables/dashboards,docs/operations/system-tables/dashboards.md,reference/system-tables/dashboards.mdx,https://clickhouse.com/docs/operations/system-tables/dashboards,https://private-7c7dfe99.mintlify.app/reference/system-tables/dashboards,matched,32447efddfacf342,true,32447efddfacf342,2026-05-08T21:00:29+00:00,false -/operations/system-tables/data_skipping_indices,docs/operations/system-tables/data_skipping_indices.md,reference/system-tables/data_skipping_indices.mdx,https://clickhouse.com/docs/operations/system-tables/data_skipping_indices,https://private-7c7dfe99.mintlify.app/reference/system-tables/data_skipping_indices,matched,1c40e02429b9f61c,true,1c40e02429b9f61c,2026-05-08T21:00:29+00:00,false -/operations/system-tables/data_type_families,docs/operations/system-tables/data_type_families.md,reference/system-tables/data_type_families.mdx,https://clickhouse.com/docs/operations/system-tables/data_type_families,https://private-7c7dfe99.mintlify.app/reference/system-tables/data_type_families,matched,ccb0ebaf9e3ed522,true,ccb0ebaf9e3ed522,2026-05-08T21:00:30+00:00,false -/operations/system-tables/database_engines,docs/operations/system-tables/database_engines.md,reference/system-tables/database_engines.mdx,https://clickhouse.com/docs/operations/system-tables/database_engines,https://private-7c7dfe99.mintlify.app/reference/system-tables/database_engines,matched,f01ae499a1ec57e3,true,f01ae499a1ec57e3,2026-05-08T21:00:30+00:00,false -/operations/system-tables/database_replicas,docs/operations/system-tables/database_replicas.md,reference/system-tables/database_replicas.mdx,https://clickhouse.com/docs/operations/system-tables/database_replicas,https://private-7c7dfe99.mintlify.app/reference/system-tables/database_replicas,matched,b5267afb5b3dc4b3,true,b5267afb5b3dc4b3,2026-05-08T21:00:30+00:00,false -/operations/system-tables/databases,docs/operations/system-tables/databases.md,reference/system-tables/databases.mdx,https://clickhouse.com/docs/operations/system-tables/databases,https://private-7c7dfe99.mintlify.app/reference/system-tables/databases,matched,3d184b14fc64a891,true,3d184b14fc64a891,2026-05-19T11:08:53+00:00,false -/operations/system-tables/dead_letter_queue,docs/operations/system-tables/dead_letter_queue.md,reference/system-tables/dead_letter_queue.mdx,https://clickhouse.com/docs/operations/system-tables/dead_letter_queue,https://private-7c7dfe99.mintlify.app/reference/system-tables/dead_letter_queue,matched,0e30043a5c5eba2a,true,0e30043a5c5eba2a,2026-05-13T13:16:51+00:00,false -/operations/system-tables/delta_lake_metadata_log,docs/operations/system-tables/delta_lake_metadata_log.md,reference/system-tables/delta_metadata_log.mdx,https://clickhouse.com/docs/operations/system-tables/delta_lake_metadata_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/delta_metadata_log,matched,f6cf90bd863544db,true,f6cf90bd863544db,2026-05-19T11:08:53+00:00,false -/operations/system-tables/detached_parts,docs/operations/system-tables/detached_parts.md,reference/system-tables/detached_parts.mdx,https://clickhouse.com/docs/operations/system-tables/detached_parts,https://private-7c7dfe99.mintlify.app/reference/system-tables/detached_parts,matched,40b3900db699b5e0,true,40b3900db699b5e0,2026-05-08T21:00:31+00:00,false -/operations/system-tables/detached_tables,docs/operations/system-tables/detached_tables.md,reference/system-tables/detached_tables.mdx,https://clickhouse.com/docs/operations/system-tables/detached_tables,https://private-7c7dfe99.mintlify.app/reference/system-tables/detached_tables,matched,363ca00e053d40a5,true,363ca00e053d40a5,2026-05-08T21:00:31+00:00,false -/operations/system-tables/dictionaries,docs/operations/system-tables/dictionaries.md,reference/system-tables/dictionaries.mdx,https://clickhouse.com/docs/operations/system-tables/dictionaries,https://private-7c7dfe99.mintlify.app/reference/system-tables/dictionaries,matched,30d9c72de8848950,true,30d9c72de8848950,2026-05-08T21:00:31+00:00,false -/operations/system-tables/dimensional_metrics,docs/operations/system-tables/dimensional_metrics.md,reference/system-tables/dimensional_metrics.mdx,https://clickhouse.com/docs/operations/system-tables/dimensional_metrics,https://private-7c7dfe99.mintlify.app/reference/system-tables/dimensional_metrics,matched,41a8e212bd7abc30,true,41a8e212bd7abc30,2026-05-13T13:16:51+00:00,false -/operations/system-tables/disks,docs/operations/system-tables/disks.md,reference/system-tables/disks.mdx,https://clickhouse.com/docs/operations/system-tables/disks,https://private-7c7dfe99.mintlify.app/reference/system-tables/disks,matched,f5aad12f0f49430a,true,f5aad12f0f49430a,2026-05-08T21:00:31+00:00,false -/operations/system-tables/distributed_ddl_queue,docs/operations/system-tables/distributed_ddl_queue.md,reference/system-tables/distributed_ddl_queue.mdx,https://clickhouse.com/docs/operations/system-tables/distributed_ddl_queue,https://private-7c7dfe99.mintlify.app/reference/system-tables/distributed_ddl_queue,matched,1ffce34c4d08703f,true,1ffce34c4d08703f,2026-05-19T11:48:22+00:00,false -/operations/system-tables/distribution_queue,docs/operations/system-tables/distribution_queue.md,reference/system-tables/distribution_queue.mdx,https://clickhouse.com/docs/operations/system-tables/distribution_queue,https://private-7c7dfe99.mintlify.app/reference/system-tables/distribution_queue,matched,9a1e70d903a00965,true,9a1e70d903a00965,2026-05-08T21:00:32+00:00,false -/operations/system-tables/dns_cache,docs/operations/system-tables/dns_cache.md,reference/system-tables/dns_cache.mdx,https://clickhouse.com/docs/operations/system-tables/dns_cache,https://private-7c7dfe99.mintlify.app/reference/system-tables/dns_cache,matched,832dfe91488177fd,true,832dfe91488177fd,2026-05-08T21:00:32+00:00,false -/operations/system-tables/dropped_tables,docs/operations/system-tables/dropped_tables.md,reference/system-tables/dropped_tables.mdx,https://clickhouse.com/docs/operations/system-tables/dropped_tables,https://private-7c7dfe99.mintlify.app/reference/system-tables/dropped_tables,matched,99ce3ddea83a7a37,true,99ce3ddea83a7a37,2026-05-08T21:00:32+00:00,false -/operations/system-tables/dropped_tables_parts,docs/operations/system-tables/dropped_tables_parts.md,reference/system-tables/dropped_tables_parts.mdx,https://clickhouse.com/docs/operations/system-tables/dropped_tables_parts,https://private-7c7dfe99.mintlify.app/reference/system-tables/dropped_tables_parts,matched,4dddb00c8826eeec,true,4dddb00c8826eeec,2026-05-13T13:16:51+00:00,false -/operations/system-tables/enabled_roles,docs/operations/system-tables/enabled_roles.md,reference/system-tables/enabled_roles.mdx,https://clickhouse.com/docs/operations/system-tables/enabled_roles,https://private-7c7dfe99.mintlify.app/reference/system-tables/enabled_roles,matched,53ba95975c120c13,true,53ba95975c120c13,2026-05-08T21:00:32+00:00,false -/operations/system-tables/errors,docs/operations/system-tables/errors.md,reference/system-tables/errors.mdx,https://clickhouse.com/docs/operations/system-tables/errors,https://private-7c7dfe99.mintlify.app/reference/system-tables/errors,matched,7779b6a80d11c73a,true,7779b6a80d11c73a,2026-05-08T21:00:33+00:00,false -/operations/system-tables/events,docs/operations/system-tables/events.md,reference/system-tables/events.mdx,https://clickhouse.com/docs/operations/system-tables/events,https://private-7c7dfe99.mintlify.app/reference/system-tables/events,matched,cb79808f837bd1dc,true,cb79808f837bd1dc,2026-05-19T11:08:53+00:00,false -/operations/system-tables/fail_points,docs/operations/system-tables/fail_points.md,reference/system-tables/fail_points.mdx,https://clickhouse.com/docs/operations/system-tables/fail_points,https://private-7c7dfe99.mintlify.app/reference/system-tables/fail_points,matched,dba698b365d9ef95,true,dba698b365d9ef95,2026-05-08T21:00:33+00:00,false -/operations/system-tables/filesystem_cache,docs/operations/system-tables/filesystem_cache.md,reference/system-tables/filesystem_cache.mdx,https://clickhouse.com/docs/operations/system-tables/filesystem_cache,https://private-7c7dfe99.mintlify.app/reference/system-tables/filesystem_cache,matched,a2328859464bad53,true,a2328859464bad53,2026-05-08T21:00:33+00:00,false -/operations/system-tables/filesystem_cache_log,docs/operations/system-tables/filesystem_cache_log.md,reference/system-tables/filesystem_cache_log.mdx,https://clickhouse.com/docs/operations/system-tables/filesystem_cache_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/filesystem_cache_log,matched,19f3dfba8f9194aa,true,19f3dfba8f9194aa,2026-05-13T13:08:27+00:00,false -/operations/system-tables/filesystem_cache_settings,docs/operations/system-tables/filesystem_cache_settings.md,reference/system-tables/filesystem_cache_settings.mdx,https://clickhouse.com/docs/operations/system-tables/filesystem_cache_settings,https://private-7c7dfe99.mintlify.app/reference/system-tables/filesystem_cache_settings,matched,21d405c24e403f88,true,21d405c24e403f88,2026-05-13T13:16:51+00:00,false -/operations/system-tables/filesystem_read_prefetches_log,docs/operations/system-tables/filesystem_read_prefetches_log.md,reference/system-tables/filesystem_read_prefetches_log.mdx,https://clickhouse.com/docs/operations/system-tables/filesystem_read_prefetches_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/filesystem_read_prefetches_log,matched,5b6d5025431391a3,true,5b6d5025431391a3,2026-05-13T13:08:27+00:00,false -/operations/system-tables/formats,docs/operations/system-tables/formats.md,reference/system-tables/formats.mdx,https://clickhouse.com/docs/operations/system-tables/formats,https://private-7c7dfe99.mintlify.app/reference/system-tables/formats,matched,6bf140e370f7095a,true,6bf140e370f7095a,2026-05-08T21:00:34+00:00,false -/operations/system-tables/functions,docs/operations/system-tables/functions.md,reference/system-tables/functions.mdx,https://clickhouse.com/docs/operations/system-tables/functions,https://private-7c7dfe99.mintlify.app/reference/system-tables/functions,matched,8257e4513f41c25b,true,8257e4513f41c25b,2026-05-19T11:08:53+00:00,false -/operations/system-tables/grants,docs/operations/system-tables/grants.md,reference/system-tables/grants.mdx,https://clickhouse.com/docs/operations/system-tables/grants,https://private-7c7dfe99.mintlify.app/reference/system-tables/grants,matched,7eff8cb2a297443e,true,7eff8cb2a297443e,2026-05-19T11:08:53+00:00,false -/operations/system-tables/graphite_retentions,docs/operations/system-tables/graphite_retentions.md,reference/system-tables/graphite_retentions.mdx,https://clickhouse.com/docs/operations/system-tables/graphite_retentions,https://private-7c7dfe99.mintlify.app/reference/system-tables/graphite_retentions,matched,464bac9447aad728,true,464bac9447aad728,2026-05-08T21:00:34+00:00,false -/operations/system-tables/histogram_metric_log,docs/operations/system-tables/histogram_metric_log.md,reference/system-tables/histogram_metric_log.mdx,https://clickhouse.com/docs/operations/system-tables/histogram_metric_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/histogram_metric_log,matched,fd61b7501ffc08ff,true,fd61b7501ffc08ff,2026-05-13T13:16:51+00:00,false -/operations/system-tables/histogram_metrics,docs/operations/system-tables/histogram_metrics.md,reference/system-tables/histogram_metrics.mdx,https://clickhouse.com/docs/operations/system-tables/histogram_metrics,https://private-7c7dfe99.mintlify.app/reference/system-tables/histogram_metrics,matched,2620e2192210eefe,true,2620e2192210eefe,2026-05-19T11:08:53+00:00,false -/operations/system-tables/iceberg_history,docs/operations/system-tables/iceberg_history.md,reference/system-tables/iceberg_history.mdx,https://clickhouse.com/docs/operations/system-tables/iceberg_history,https://private-7c7dfe99.mintlify.app/reference/system-tables/iceberg_history,matched,0ffc57c3e2b81eab,true,0ffc57c3e2b81eab,2026-05-08T21:00:35+00:00,false -/operations/system-tables/iceberg_metadata_log,docs/operations/system-tables/iceberg_metadata_log.md,reference/system-tables/iceberg_metadata_log.mdx,https://clickhouse.com/docs/operations/system-tables/iceberg_metadata_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/iceberg_metadata_log,matched,3666b153c2ed6ec6,true,3666b153c2ed6ec6,2026-05-13T13:16:51+00:00,false -/operations/system-tables/information_schema,docs/operations/system-tables/information_schema.md,reference/system-tables/information_schema.mdx,https://clickhouse.com/docs/operations/system-tables/information_schema,https://private-7c7dfe99.mintlify.app/reference/system-tables/information_schema,matched,d3c9bff2eaf6d8c1,true,d3c9bff2eaf6d8c1,2026-05-19T11:08:53+00:00,false -/operations/system-tables/instrumentation,docs/operations/system-tables/instrumentation.md,reference/system-tables/instrumentation.mdx,https://clickhouse.com/docs/operations/system-tables/instrumentation,https://private-7c7dfe99.mintlify.app/reference/system-tables/instrumentation,matched,84e4433828e2eebd,true,84e4433828e2eebd,2026-05-08T21:00:35+00:00,false -/operations/system-tables/jemalloc_bins,docs/operations/system-tables/jemalloc_bins.md,reference/system-tables/jemalloc_bins.mdx,https://clickhouse.com/docs/operations/system-tables/jemalloc_bins,https://private-7c7dfe99.mintlify.app/reference/system-tables/jemalloc_bins,matched,df9e8107e5309350,true,df9e8107e5309350,2026-05-13T13:16:51+00:00,false -/operations/system-tables/jemalloc_profile_text,docs/operations/system-tables/jemalloc_profile_text.md,reference/system-tables/jemalloc_profile_text.mdx,https://clickhouse.com/docs/operations/system-tables/jemalloc_profile_text,https://private-7c7dfe99.mintlify.app/reference/system-tables/jemalloc_profile_text,matched,cca46516004deb0d,true,cca46516004deb0d,2026-05-08T21:00:36+00:00,false -/operations/system-tables/jemalloc_stats,docs/operations/system-tables/jemalloc_stats.md,reference/system-tables/jemalloc_stats.mdx,https://clickhouse.com/docs/operations/system-tables/jemalloc_stats,https://private-7c7dfe99.mintlify.app/reference/system-tables/jemalloc_stats,matched,929f907b08f2ee2d,true,929f907b08f2ee2d,2026-05-08T21:00:36+00:00,false -/operations/system-tables/kafka_consumers,docs/operations/system-tables/kafka_consumers.md,reference/system-tables/kafka_consumers.mdx,https://clickhouse.com/docs/operations/system-tables/kafka_consumers,https://private-7c7dfe99.mintlify.app/reference/system-tables/kafka_consumers,matched,e094d2f770da5230,true,e094d2f770da5230,2026-05-08T21:00:36+00:00,false -/operations/system-tables/keywords,docs/operations/system-tables/keywords.md,reference/system-tables/keywords.mdx,https://clickhouse.com/docs/operations/system-tables/keywords,https://private-7c7dfe99.mintlify.app/reference/system-tables/keywords,matched,580293e04e4b5ef0,true,580293e04e4b5ef0,2026-05-08T21:00:36+00:00,false -/operations/system-tables/licenses,docs/operations/system-tables/licenses.md,reference/system-tables/licenses.mdx,https://clickhouse.com/docs/operations/system-tables/licenses,https://private-7c7dfe99.mintlify.app/reference/system-tables/licenses,matched,9d1423ef5ce07210,true,9d1423ef5ce07210,2026-05-08T21:00:36+00:00,false -/operations/system-tables/macros,docs/operations/system-tables/macros.md,reference/system-tables/macros.mdx,https://clickhouse.com/docs/operations/system-tables/macros,https://private-7c7dfe99.mintlify.app/reference/system-tables/macros,matched,ca6dd30401322eb5,true,ca6dd30401322eb5,2026-05-08T21:00:37+00:00,false -/operations/system-tables/masking_policies,docs/operations/system-tables/masking_policies.md,reference/system-tables/masking_policies.mdx,https://clickhouse.com/docs/operations/system-tables/masking_policies,https://private-7c7dfe99.mintlify.app/reference/system-tables/masking_policies,matched,2122b6c04db57faf,true,2122b6c04db57faf,2026-05-08T21:00:37+00:00,false -/operations/system-tables/merge_tree_settings,docs/operations/system-tables/merge_tree_settings.md,reference/system-tables/merge_tree_settings.mdx,https://clickhouse.com/docs/operations/system-tables/merge_tree_settings,https://private-7c7dfe99.mintlify.app/reference/system-tables/merge_tree_settings,matched,e5e8db50498b1673,true,e5e8db50498b1673,2026-05-08T21:00:37+00:00,false -/operations/system-tables/merges,docs/operations/system-tables/merges.md,reference/system-tables/merges.mdx,https://clickhouse.com/docs/operations/system-tables/merges,https://private-7c7dfe99.mintlify.app/reference/system-tables/merges,matched,60c36e1d757cb666,true,60c36e1d757cb666,2026-05-08T21:00:37+00:00,false -/operations/system-tables/metric_log,docs/operations/system-tables/metric_log.md,reference/system-tables/metric_log.mdx,https://clickhouse.com/docs/operations/system-tables/metric_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/metric_log,matched,c382d8f1285baef6,true,c382d8f1285baef6,2026-05-19T11:08:53+00:00,false -/operations/system-tables/metrics,docs/operations/system-tables/metrics.md,reference/system-tables/metrics.mdx,https://clickhouse.com/docs/operations/system-tables/metrics,https://private-7c7dfe99.mintlify.app/reference/system-tables/metrics,matched,11bd6e6af02ec49f,true,11bd6e6af02ec49f,2026-05-19T11:08:53+00:00,false -/operations/system-tables/models,docs/operations/system-tables/models.md,reference/system-tables/models.mdx,https://clickhouse.com/docs/operations/system-tables/models,https://private-7c7dfe99.mintlify.app/reference/system-tables/models,matched,6d6f942a7cc2bcb5,true,6d6f942a7cc2bcb5,2026-05-08T21:00:38+00:00,false -/operations/system-tables/moves,docs/operations/system-tables/moves.md,reference/system-tables/moves.mdx,https://clickhouse.com/docs/operations/system-tables/moves,https://private-7c7dfe99.mintlify.app/reference/system-tables/moves,matched,b7f2eb2b29243e5a,true,b7f2eb2b29243e5a,2026-05-08T21:00:38+00:00,false -/operations/system-tables/mutations,docs/operations/system-tables/mutations.md,reference/system-tables/mutations.mdx,https://clickhouse.com/docs/operations/system-tables/mutations,https://private-7c7dfe99.mintlify.app/reference/system-tables/mutations,matched,5e9568ccde263373,true,5e9568ccde263373,2026-05-08T21:00:38+00:00,false -/operations/system-tables/named_collections,docs/operations/system-tables/named_collections.md,reference/system-tables/named_collections.mdx,https://clickhouse.com/docs/operations/system-tables/named_collections,https://private-7c7dfe99.mintlify.app/reference/system-tables/named_collections,matched,7219d93d3bc75213,true,7219d93d3bc75213,2026-05-08T21:00:38+00:00,false -/operations/system-tables/numbers,docs/operations/system-tables/numbers.md,reference/system-tables/numbers.mdx,https://clickhouse.com/docs/operations/system-tables/numbers,https://private-7c7dfe99.mintlify.app/reference/system-tables/numbers,matched,99047aec8c3514df,true,99047aec8c3514df,2026-05-08T21:00:38+00:00,false -/operations/system-tables/numbers_mt,docs/operations/system-tables/numbers_mt.md,reference/system-tables/numbers_mt.mdx,https://clickhouse.com/docs/operations/system-tables/numbers_mt,https://private-7c7dfe99.mintlify.app/reference/system-tables/numbers_mt,matched,fb734a6e8fefc43a,true,fb734a6e8fefc43a,2026-05-08T21:00:39+00:00,false -/operations/system-tables/one,docs/operations/system-tables/one.md,reference/system-tables/one.mdx,https://clickhouse.com/docs/operations/system-tables/one,https://private-7c7dfe99.mintlify.app/reference/system-tables/one,matched,8cebbfc8b51d7d1e,true,8cebbfc8b51d7d1e,2026-05-08T21:00:39+00:00,false -/operations/system-tables/opentelemetry_span_log,docs/operations/system-tables/opentelemetry_span_log.md,reference/system-tables/opentelemetry_span_log.mdx,https://clickhouse.com/docs/operations/system-tables/opentelemetry_span_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/opentelemetry_span_log,matched,c177a0be6bda91a4,true,c177a0be6bda91a4,2026-05-19T11:08:53+00:00,false -/operations/system-tables/overview,docs/operations/system-tables/overview.md,reference/system-tables/overview.mdx,https://clickhouse.com/docs/operations/system-tables/overview,https://private-7c7dfe99.mintlify.app/reference/system-tables/overview,matched,9aff12963c1e1db4,true,9aff12963c1e1db4,2026-05-08T09:09:20+00:00,false -/operations/system-tables/part_log,docs/operations/system-tables/part_log.md,reference/system-tables/part_log.mdx,https://clickhouse.com/docs/operations/system-tables/part_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/part_log,matched,968e900e95aa9ea2,true,968e900e95aa9ea2,2026-05-13T13:16:51+00:00,false -/operations/system-tables/part_moves_between_shards,docs/operations/system-tables/part_moves_between_shards.md,reference/system-tables/part_moves_between_shards.mdx,https://clickhouse.com/docs/operations/system-tables/part_moves_between_shards,https://private-7c7dfe99.mintlify.app/reference/system-tables/part_moves_between_shards,matched,2caa49aba757cf95,true,2caa49aba757cf95,2026-05-08T21:00:39+00:00,false -/operations/system-tables/parts,docs/operations/system-tables/parts.md,reference/system-tables/parts.mdx,https://clickhouse.com/docs/operations/system-tables/parts,https://private-7c7dfe99.mintlify.app/reference/system-tables/parts,matched,fa6125a81bc4ca7a,true,fa6125a81bc4ca7a,2026-05-13T13:16:51+00:00,false -/operations/system-tables/parts_columns,docs/operations/system-tables/parts_columns.md,reference/system-tables/parts_columns.mdx,https://clickhouse.com/docs/operations/system-tables/parts_columns,https://private-7c7dfe99.mintlify.app/reference/system-tables/parts_columns,matched,54ddc77af6501853,true,54ddc77af6501853,2026-05-08T21:00:40+00:00,false -/operations/system-tables/predicate_statistics_log,docs/operations/system-tables/predicate_statistics_log.md,reference/system-tables/predicate_statistics_log.mdx,https://clickhouse.com/docs/operations/system-tables/predicate_statistics_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/predicate_statistics_log,matched,0c4c9b03e9bb41d4,true,0c4c9b03e9bb41d4,2026-05-13T13:16:51+00:00,false -/operations/system-tables/primes,docs/operations/system-tables/primes.md,reference/system-tables/primes.mdx,https://clickhouse.com/docs/operations/system-tables/primes,https://private-7c7dfe99.mintlify.app/reference/system-tables/primes,matched,c8bd5508638d5ac1,true,c8bd5508638d5ac1,2026-05-08T21:00:40+00:00,false -/operations/system-tables/privileges,docs/operations/system-tables/privileges.md,reference/system-tables/privileges.mdx,https://clickhouse.com/docs/operations/system-tables/privileges,https://private-7c7dfe99.mintlify.app/reference/system-tables/privileges,matched,5b98c7994d5dca05,true,5b98c7994d5dca05,2026-05-19T11:08:53+00:00,false -/operations/system-tables/processes,docs/operations/system-tables/processes.md,reference/system-tables/processes.mdx,https://clickhouse.com/docs/operations/system-tables/processes,https://private-7c7dfe99.mintlify.app/reference/system-tables/processes,matched,4f1747c6f8fca7cc,true,4f1747c6f8fca7cc,2026-05-13T13:16:51+00:00,false -/operations/system-tables/processors_profile_log,docs/operations/system-tables/processors_profile_log.md,reference/system-tables/processors_profile_log.mdx,https://clickhouse.com/docs/operations/system-tables/processors_profile_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/processors_profile_log,matched,55bb2416a7045d67,true,55bb2416a7045d67,2026-05-19T11:08:53+00:00,false -/operations/system-tables/projection_parts,docs/operations/system-tables/projection_parts.md,reference/system-tables/projection_parts.mdx,https://clickhouse.com/docs/operations/system-tables/projection_parts,https://private-7c7dfe99.mintlify.app/reference/system-tables/projection_parts,matched,997eca3070cbeda5,true,997eca3070cbeda5,2026-05-13T13:16:51+00:00,false -/operations/system-tables/projection_parts_columns,docs/operations/system-tables/projection_parts_columns.md,reference/system-tables/projection_parts_columns.mdx,https://clickhouse.com/docs/operations/system-tables/projection_parts_columns,https://private-7c7dfe99.mintlify.app/reference/system-tables/projection_parts_columns,matched,213c257e7c406aee,true,213c257e7c406aee,2026-05-13T13:16:51+00:00,false -/operations/system-tables/projections,docs/operations/system-tables/projections.md,reference/system-tables/projections.mdx,https://clickhouse.com/docs/operations/system-tables/projections,https://private-7c7dfe99.mintlify.app/reference/system-tables/projections,matched,43812f2032aac42f,true,43812f2032aac42f,2026-05-08T21:00:41+00:00,false -/operations/system-tables/query_cache,docs/operations/system-tables/query_cache.md,reference/system-tables/query_cache.mdx,https://clickhouse.com/docs/operations/system-tables/query_cache,https://private-7c7dfe99.mintlify.app/reference/system-tables/query_cache,matched,23a6576a6892b3c7,true,23a6576a6892b3c7,2026-05-08T21:00:41+00:00,false -/operations/system-tables/query_condition_cache,docs/operations/system-tables/query_condition_cache.md,reference/system-tables/query_condition_cache.mdx,https://clickhouse.com/docs/operations/system-tables/query_condition_cache,https://private-7c7dfe99.mintlify.app/reference/system-tables/query_condition_cache,matched,2cdfd85810116d3e,true,2cdfd85810116d3e,2026-05-08T21:00:41+00:00,false -/operations/system-tables/query_log,docs/operations/system-tables/query_log.md,reference/system-tables/query_log.mdx,https://clickhouse.com/docs/operations/system-tables/query_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/query_log,matched,a05473143f339793,true,a05473143f339793,2026-05-13T13:16:51+00:00,false -/operations/system-tables/query_metric_log,docs/operations/system-tables/query_metric_log.md,reference/system-tables/query_metric_log.mdx,https://clickhouse.com/docs/operations/system-tables/query_metric_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/query_metric_log,matched,e861f29f7e4fd511,true,e861f29f7e4fd511,2026-05-13T13:16:51+00:00,false -/operations/system-tables/query_thread_log,docs/operations/system-tables/query_thread_log.md,reference/system-tables/query_thread_log.mdx,https://clickhouse.com/docs/operations/system-tables/query_thread_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/query_thread_log,matched,08a8395420867420,true,08a8395420867420,2026-05-13T13:16:51+00:00,false -/operations/system-tables/query_views_log,docs/operations/system-tables/query_views_log.md,reference/system-tables/query_views_log.mdx,https://clickhouse.com/docs/operations/system-tables/query_views_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/query_views_log,matched,ab38df93c47223cd,true,ab38df93c47223cd,2026-05-19T11:08:53+00:00,false -/operations/system-tables/quota_limits,docs/operations/system-tables/quota_limits.md,reference/system-tables/quota_limits.mdx,https://clickhouse.com/docs/operations/system-tables/quota_limits,https://private-7c7dfe99.mintlify.app/reference/system-tables/quota_limits,matched,89cf3fd2c278ac25,true,89cf3fd2c278ac25,2026-05-08T21:00:42+00:00,false -/operations/system-tables/quota_usage,docs/operations/system-tables/quota_usage.md,reference/system-tables/quota_usage.mdx,https://clickhouse.com/docs/operations/system-tables/quota_usage,https://private-7c7dfe99.mintlify.app/reference/system-tables/quota_usage,matched,553a83991534ff79,true,553a83991534ff79,2026-05-08T21:00:42+00:00,false -/operations/system-tables/quotas,docs/operations/system-tables/quotas.md,reference/system-tables/quotas.mdx,https://clickhouse.com/docs/operations/system-tables/quotas,https://private-7c7dfe99.mintlify.app/reference/system-tables/quotas,matched,c7e6b2b4098b55ea,true,c7e6b2b4098b55ea,2026-05-08T21:00:43+00:00,false -/operations/system-tables/quotas_usage,docs/operations/system-tables/quotas_usage.md,reference/system-tables/quotas_usage.mdx,https://clickhouse.com/docs/operations/system-tables/quotas_usage,https://private-7c7dfe99.mintlify.app/reference/system-tables/quotas_usage,matched,e236c52aec1f14c5,true,e236c52aec1f14c5,2026-05-08T21:00:43+00:00,false -/operations/system-tables/remote_data_paths,docs/operations/system-tables/remote_data_paths.md,reference/system-tables/remote_data_paths.mdx,https://clickhouse.com/docs/operations/system-tables/remote_data_paths,https://private-7c7dfe99.mintlify.app/reference/system-tables/remote_data_paths,matched,16f789c68faf453c,true,16f789c68faf453c,2026-05-08T21:00:43+00:00,false -/operations/system-tables/replicas,docs/operations/system-tables/replicas.md,reference/system-tables/replicas.mdx,https://clickhouse.com/docs/operations/system-tables/replicas,https://private-7c7dfe99.mintlify.app/reference/system-tables/replicas,matched,f8c198de4d3d6054,true,f8c198de4d3d6054,2026-05-13T13:16:51+00:00,false -/operations/system-tables/replicated_fetches,docs/operations/system-tables/replicated_fetches.md,reference/system-tables/replicated_fetches.mdx,https://clickhouse.com/docs/operations/system-tables/replicated_fetches,https://private-7c7dfe99.mintlify.app/reference/system-tables/replicated_fetches,matched,36f5e02689262f81,true,36f5e02689262f81,2026-05-08T21:00:43+00:00,false -/operations/system-tables/replicated_merge_tree_settings,docs/operations/system-tables/replicated_merge_tree_settings.md,reference/system-tables/replicated_merge_tree_settings.mdx,https://clickhouse.com/docs/operations/system-tables/replicated_merge_tree_settings,https://private-7c7dfe99.mintlify.app/reference/system-tables/replicated_merge_tree_settings,matched,9db9dabaac8efd5c,true,9db9dabaac8efd5c,2026-05-08T21:00:43+00:00,false -/operations/system-tables/replication_queue,docs/operations/system-tables/replication_queue.md,reference/system-tables/replication_queue.mdx,https://clickhouse.com/docs/operations/system-tables/replication_queue,https://private-7c7dfe99.mintlify.app/reference/system-tables/replication_queue,matched,d358990d7d9272e1,true,d358990d7d9272e1,2026-05-08T21:00:44+00:00,false -/operations/system-tables/resources,docs/operations/system-tables/resources.md,reference/system-tables/resources.mdx,https://clickhouse.com/docs/operations/system-tables/resources,https://private-7c7dfe99.mintlify.app/reference/system-tables/resources,matched,4fb371b9dfddd759,true,4fb371b9dfddd759,2026-05-08T21:00:44+00:00,false -/operations/system-tables/rocksdb,docs/operations/system-tables/rocksdb.md,reference/system-tables/rocksdb.mdx,https://clickhouse.com/docs/operations/system-tables/rocksdb,https://private-7c7dfe99.mintlify.app/reference/system-tables/rocksdb,matched,82024034ca9109cc,true,82024034ca9109cc,2026-05-08T21:00:44+00:00,false -/operations/system-tables/role_grants,docs/operations/system-tables/role_grants.md,reference/system-tables/role_grants.mdx,https://clickhouse.com/docs/operations/system-tables/role_grants,https://private-7c7dfe99.mintlify.app/reference/system-tables/role_grants,matched,b74709322c8154c6,true,b74709322c8154c6,2026-05-08T21:00:44+00:00,false -/operations/system-tables/roles,docs/operations/system-tables/roles.md,reference/system-tables/roles.mdx,https://clickhouse.com/docs/operations/system-tables/roles,https://private-7c7dfe99.mintlify.app/reference/system-tables/roles,matched,af7a908a7c67e751,true,af7a908a7c67e751,2026-05-08T21:00:44+00:00,false -/operations/system-tables/row_policies,docs/operations/system-tables/row_policies.md,reference/system-tables/row_policies.mdx,https://clickhouse.com/docs/operations/system-tables/row_policies,https://private-7c7dfe99.mintlify.app/reference/system-tables/row_policies,matched,6890a710e54e1699,true,6890a710e54e1699,2026-05-08T21:00:44+00:00,false -/operations/system-tables/s3_queue_settings,docs/operations/system-tables/s3_queue_settings.md,reference/system-tables/s3_queue_settings.mdx,https://clickhouse.com/docs/operations/system-tables/s3_queue_settings,https://private-7c7dfe99.mintlify.app/reference/system-tables/s3_queue_settings,matched,83ef2d10121b8a8e,true,83ef2d10121b8a8e,2026-05-08T21:00:45+00:00,false -/operations/system-tables/s3queue_log,docs/operations/system-tables/s3queue_log.md,reference/system-tables/s3queue_log.mdx,https://clickhouse.com/docs/operations/system-tables/s3queue_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/s3queue_log,matched,b30949fb7bc700eb,true,b30949fb7bc700eb,2026-05-13T13:08:27+00:00,false -/operations/system-tables/s3queue_metadata_cache,docs/operations/system-tables/s3queue_metadata_cache.md,reference/system-tables/s3queue_metadata_cache.mdx,https://clickhouse.com/docs/operations/system-tables/s3queue_metadata_cache,https://private-7c7dfe99.mintlify.app/reference/system-tables/s3queue_metadata_cache,matched,5383de79a1001a99,true,5383de79a1001a99,2026-05-08T21:00:45+00:00,false -/operations/system-tables/scheduler,docs/operations/system-tables/scheduler.md,reference/system-tables/scheduler.mdx,https://clickhouse.com/docs/operations/system-tables/scheduler,https://private-7c7dfe99.mintlify.app/reference/system-tables/scheduler,matched,31f0f12a50186fe9,true,31f0f12a50186fe9,2026-05-08T21:00:45+00:00,false -/operations/system-tables/schema_inference_cache,docs/operations/system-tables/schema_inference_cache.md,reference/system-tables/schema_inference_cache.mdx,https://clickhouse.com/docs/operations/system-tables/schema_inference_cache,https://private-7c7dfe99.mintlify.app/reference/system-tables/schema_inference_cache,matched,553ff97032d7232d,true,553ff97032d7232d,2026-05-08T21:00:45+00:00,false -/operations/system-tables/server_settings,docs/operations/system-tables/server_settings.md,reference/system-tables/server_settings.mdx,https://clickhouse.com/docs/operations/system-tables/server_settings,https://private-7c7dfe99.mintlify.app/reference/system-tables/server_settings,matched,e25fce44808bcb06,true,e25fce44808bcb06,2026-05-08T21:00:45+00:00,false -/operations/system-tables/session_log,docs/operations/system-tables/session_log.md,reference/system-tables/session_log.mdx,https://clickhouse.com/docs/operations/system-tables/session_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/session_log,matched,182a99be8f6003af,true,182a99be8f6003af,2026-05-19T11:08:53+00:00,false -/operations/system-tables/settings,docs/operations/system-tables/settings.md,reference/system-tables/settings.mdx,https://clickhouse.com/docs/operations/system-tables/settings,https://private-7c7dfe99.mintlify.app/reference/system-tables/settings,matched,2ebf7340bff64f63,true,2ebf7340bff64f63,2026-05-08T21:00:46+00:00,false -/operations/system-tables/settings_changes,docs/operations/system-tables/settings_changes.md,reference/system-tables/settings_changes.mdx,https://clickhouse.com/docs/operations/system-tables/settings_changes,https://private-7c7dfe99.mintlify.app/reference/system-tables/settings_changes,matched,1cd1742d0fa202ae,true,1cd1742d0fa202ae,2026-05-09T09:39:38+00:00,false -/operations/system-tables/settings_profile_elements,docs/operations/system-tables/settings_profile_elements.md,reference/system-tables/settings_profile_elements.mdx,https://clickhouse.com/docs/operations/system-tables/settings_profile_elements,https://private-7c7dfe99.mintlify.app/reference/system-tables/settings_profile_elements,matched,97bd32e8684d20f5,true,97bd32e8684d20f5,2026-05-08T21:00:46+00:00,false -/operations/system-tables/settings_profiles,docs/operations/system-tables/settings_profiles.md,reference/system-tables/settings_profiles.mdx,https://clickhouse.com/docs/operations/system-tables/settings_profiles,https://private-7c7dfe99.mintlify.app/reference/system-tables/settings_profiles,matched,37014ff91f7b8d7d,true,37014ff91f7b8d7d,2026-05-08T21:00:46+00:00,false -/operations/system-tables/stack_trace,docs/operations/system-tables/stack_trace.md,reference/system-tables/stack_trace.mdx,https://clickhouse.com/docs/operations/system-tables/stack_trace,https://private-7c7dfe99.mintlify.app/reference/system-tables/stack_trace,matched,1411b6e4f944dbe1,true,1411b6e4f944dbe1,2026-05-08T21:00:46+00:00,false -/operations/system-tables/storage_policies,docs/operations/system-tables/storage_policies.md,reference/system-tables/storage_policies.mdx,https://clickhouse.com/docs/operations/system-tables/storage_policies,https://private-7c7dfe99.mintlify.app/reference/system-tables/storage_policies,matched,cf96fd26b4e69802,true,cf96fd26b4e69802,2026-05-19T11:08:53+00:00,false -/operations/system-tables/symbols,docs/operations/system-tables/symbols.md,reference/system-tables/symbols.mdx,https://clickhouse.com/docs/operations/system-tables/symbols,https://private-7c7dfe99.mintlify.app/reference/system-tables/symbols,matched,54037cfdf8943d44,true,54037cfdf8943d44,2026-05-08T21:00:47+00:00,false -/operations/system-tables/system-error-log,docs/operations/system-tables/error_log.md,reference/system-tables/error_log.mdx,https://clickhouse.com/docs/operations/system-tables/system-error-log,https://private-7c7dfe99.mintlify.app/reference/system-tables/error_log,matched,a5bafc2aaa88cebc,true,a5bafc2aaa88cebc,2026-05-13T13:16:51+00:00,false -/operations/system-tables/system_warnings,docs/operations/system-tables/system_warnings.md,reference/system-tables/system_warnings.mdx,https://clickhouse.com/docs/operations/system-tables/system_warnings,https://private-7c7dfe99.mintlify.app/reference/system-tables/system_warnings,matched,019d08eb5d53c4d2,true,019d08eb5d53c4d2,2026-05-08T09:09:20+00:00,false -/operations/system-tables/table_engines,docs/operations/system-tables/table_engines.md,reference/system-tables/table_engines.mdx,https://clickhouse.com/docs/operations/system-tables/table_engines,https://private-7c7dfe99.mintlify.app/reference/system-tables/table_engines,matched,8638422eb124890a,true,8638422eb124890a,2026-05-08T21:00:47+00:00,false -/operations/system-tables/table_functions,docs/operations/system-tables/table_functions.md,reference/system-tables/table_functions.mdx,https://clickhouse.com/docs/operations/system-tables/table_functions,https://private-7c7dfe99.mintlify.app/reference/system-tables/table_functions,matched,49b4a602760f3947,true,49b4a602760f3947,2026-05-08T21:00:47+00:00,false -/operations/system-tables/tables,docs/operations/system-tables/tables.md,reference/system-tables/tables.mdx,https://clickhouse.com/docs/operations/system-tables/tables,https://private-7c7dfe99.mintlify.app/reference/system-tables/tables,matched,735ebc55efcf816b,true,735ebc55efcf816b,2026-05-13T13:16:51+00:00,false -/operations/system-tables/text_log,docs/operations/system-tables/text_log.md,reference/system-tables/text_log.mdx,https://clickhouse.com/docs/operations/system-tables/text_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/text_log,matched,b6f1b3a8e96de9e9,true,b6f1b3a8e96de9e9,2026-05-13T13:16:51+00:00,false -/operations/system-tables/time_zones,docs/operations/system-tables/time_zones.md,reference/system-tables/time_zones.mdx,https://clickhouse.com/docs/operations/system-tables/time_zones,https://private-7c7dfe99.mintlify.app/reference/system-tables/time_zones,matched,bb828e8cbba5f6cb,true,bb828e8cbba5f6cb,2026-05-08T21:00:48+00:00,false -/operations/system-tables/tokenizers,docs/operations/system-tables/tokenizers.md,reference/system-tables/tokenizers.mdx,https://clickhouse.com/docs/operations/system-tables/tokenizers,https://private-7c7dfe99.mintlify.app/reference/system-tables/tokenizers,matched,f38b49844109c253,true,f38b49844109c253,2026-05-08T21:00:48+00:00,false -/operations/system-tables/trace_log,docs/operations/system-tables/trace_log.md,reference/system-tables/trace_log.mdx,https://clickhouse.com/docs/operations/system-tables/trace_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/trace_log,matched,3e1cb8623ee915fc,true,3e1cb8623ee915fc,2026-05-13T13:16:51+00:00,false -/operations/system-tables/transactions,docs/operations/system-tables/transactions.md,reference/system-tables/transactions.mdx,https://clickhouse.com/docs/operations/system-tables/transactions,https://private-7c7dfe99.mintlify.app/reference/system-tables/transactions,matched,2bf44ed2ecafc08d,true,2bf44ed2ecafc08d,2026-05-08T21:00:48+00:00,false -/operations/system-tables/transactions_info_log,docs/operations/system-tables/transactions_info_log.md,reference/system-tables/transactions_info_log.mdx,https://clickhouse.com/docs/operations/system-tables/transactions_info_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/transactions_info_log,matched,e7289c550ebd1706,true,e7289c550ebd1706,2026-05-13T13:08:27+00:00,false -/operations/system-tables/unicode,docs/operations/system-tables/unicode.md,reference/system-tables/unicode.mdx,https://clickhouse.com/docs/operations/system-tables/unicode,https://private-7c7dfe99.mintlify.app/reference/system-tables/unicode,matched,627dfc36a5b58ce7,true,627dfc36a5b58ce7,2026-05-08T21:00:48+00:00,false -/operations/system-tables/user_defined_functions,docs/operations/system-tables/user_defined_functions.md,reference/system-tables/user_defined_functions.mdx,https://clickhouse.com/docs/operations/system-tables/user_defined_functions,https://private-7c7dfe99.mintlify.app/reference/system-tables/user_defined_functions,matched,b1a8f52c5076b0b4,true,b1a8f52c5076b0b4,2026-05-08T21:00:48+00:00,false -/operations/system-tables/user_directories,docs/operations/system-tables/user_directories.md,reference/system-tables/user_directories.mdx,https://clickhouse.com/docs/operations/system-tables/user_directories,https://private-7c7dfe99.mintlify.app/reference/system-tables/user_directories,matched,54f4b3a41b32add7,true,54f4b3a41b32add7,2026-05-08T21:00:49+00:00,false -/operations/system-tables/user_processes,docs/operations/system-tables/user_processes.md,reference/system-tables/user_processes.mdx,https://clickhouse.com/docs/operations/system-tables/user_processes,https://private-7c7dfe99.mintlify.app/reference/system-tables/user_processes,matched,8c2f38c2abb68784,true,8c2f38c2abb68784,2026-05-13T13:16:51+00:00,false -/operations/system-tables/users,docs/operations/system-tables/users.md,reference/system-tables/users.mdx,https://clickhouse.com/docs/operations/system-tables/users,https://private-7c7dfe99.mintlify.app/reference/system-tables/users,matched,221907cf57c6edf9,true,221907cf57c6edf9,2026-05-08T21:00:49+00:00,false -/operations/system-tables/view_refreshes,docs/operations/system-tables/view_refreshes.md,reference/system-tables/view_refreshes.mdx,https://clickhouse.com/docs/operations/system-tables/view_refreshes,https://private-7c7dfe99.mintlify.app/reference/system-tables/view_refreshes,matched,b66716f71c70efe5,true,b66716f71c70efe5,2026-05-08T21:00:49+00:00,false -/operations/system-tables/warnings,docs/operations/system-tables/warnings.md,reference/system-tables/warnings.mdx,https://clickhouse.com/docs/operations/system-tables/warnings,https://private-7c7dfe99.mintlify.app/reference/system-tables/warnings,matched,4ca12d45f778f2dd,true,4ca12d45f778f2dd,2026-05-08T21:00:49+00:00,false -/operations/system-tables/workloads,docs/operations/system-tables/workloads.md,reference/system-tables/workloads.mdx,https://clickhouse.com/docs/operations/system-tables/workloads,https://private-7c7dfe99.mintlify.app/reference/system-tables/workloads,matched,53709c958ad3629b,true,53709c958ad3629b,2026-05-08T21:00:49+00:00,false -/operations/system-tables/zeros,docs/operations/system-tables/zeros.md,reference/system-tables/zeros.mdx,https://clickhouse.com/docs/operations/system-tables/zeros,https://private-7c7dfe99.mintlify.app/reference/system-tables/zeros,matched,c97ffc28ac196b6f,true,c97ffc28ac196b6f,2026-05-08T21:00:50+00:00,false -/operations/system-tables/zeros_mt,docs/operations/system-tables/zeros_mt.md,reference/system-tables/zeros_mt.mdx,https://clickhouse.com/docs/operations/system-tables/zeros_mt,https://private-7c7dfe99.mintlify.app/reference/system-tables/zeros_mt,matched,f709df8aa2bea480,true,f709df8aa2bea480,2026-05-08T21:00:50+00:00,false -/operations/system-tables/zookeeper,docs/operations/system-tables/zookeeper.md,reference/system-tables/zookeeper.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper,https://private-7c7dfe99.mintlify.app/reference/system-tables/zookeeper,matched,8450f27e685917ef,true,8450f27e685917ef,2026-05-08T21:00:50+00:00,false -/operations/system-tables/zookeeper_connection,docs/operations/system-tables/zookeeper_connection.md,reference/system-tables/zookeeper_connection.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper_connection,https://private-7c7dfe99.mintlify.app/reference/system-tables/zookeeper_connection,matched,b9e9457ffdd3c09e,true,b9e9457ffdd3c09e,2026-05-08T21:00:50+00:00,false -/operations/system-tables/zookeeper_connection_log,docs/operations/system-tables/zookeeper_connection_log.md,reference/system-tables/zookeeper_connection_log.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper_connection_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/zookeeper_connection_log,matched,bdab459af8810550,true,bdab459af8810550,2026-05-13T13:16:51+00:00,false -/operations/system-tables/zookeeper_info,docs/operations/system-tables/zookeeper_info.md,reference/system-tables/zookeeper_info.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper_info,https://private-7c7dfe99.mintlify.app/reference/system-tables/zookeeper_info,matched,71cb3c42bf1acccf,true,71cb3c42bf1acccf,2026-05-08T21:00:51+00:00,false -/operations/system-tables/zookeeper_log,docs/operations/system-tables/zookeeper_log.md,reference/system-tables/zookeeper_log.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper_log,https://private-7c7dfe99.mintlify.app/reference/system-tables/zookeeper_log,matched,4c97301867745792,true,4c97301867745792,2026-05-19T11:08:53+00:00,false -/operations/system-tables/zookeeper_watches,docs/operations/system-tables/zookeeper_watches.md,reference/system-tables/zookeeper_watches.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper_watches,https://private-7c7dfe99.mintlify.app/reference/system-tables/zookeeper_watches,matched,55bceb25398b0ba4,true,55bceb25398b0ba4,2026-05-07T14:49:41+00:00,false -/operations/tips,docs/operations/tips.md,guides/oss/best-practices/tips.mdx,https://clickhouse.com/docs/operations/tips,https://private-7c7dfe99.mintlify.app/guides/oss/best-practices/tips,matched,5994e62267d818a6,true,5994e62267d818a6,2026-05-08T09:09:20+00:00,false -/operations/update,docs/operations/update.md,guides/oss/update.mdx,https://clickhouse.com/docs/operations/update,https://private-7c7dfe99.mintlify.app/guides/oss/update,matched,3ad40142a5980106,true,3ad40142a5980106,2026-05-08T09:09:20+00:00,false -/operations/userspace-page-cache,docs/operations/userspace-page-cache.md,concepts/features/performance/caches/userspace-page-cache.mdx,https://clickhouse.com/docs/operations/userspace-page-cache,https://private-7c7dfe99.mintlify.app/concepts/features/performance/caches/userspace-page-cache,matched,f8ca381cc071560d,true,ea6fc6dcc9635bc1,2026-05-08T09:09:20+00:00,false -/operations/utilities/,docs/operations/utilities/index.md,concepts/features/tools-and-utilities/index.mdx,https://clickhouse.com/docs/operations/utilities/,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities,matched,139b82d21c5fea2d,true,139b82d21c5fea2d,2026-05-08T09:09:20+00:00,false -/operations/utilities/backupview,docs/operations/utilities/backupview.md,concepts/features/tools-and-utilities/backupview.mdx,https://clickhouse.com/docs/operations/utilities/backupview,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities/backupview,matched,76f60a7add5869d9,true,76f60a7add5869d9,2026-05-19T11:08:53+00:00,false -/operations/utilities/clickhouse-benchmark,docs/operations/utilities/clickhouse-benchmark.md,concepts/features/tools-and-utilities/clickhouse-benchmark.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-benchmark,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities/clickhouse-benchmark,matched,b64e050ba49bfc55,true,a600c7b329322e5b,2026-05-07T14:49:41+00:00,false -/operations/utilities/clickhouse-compressor,docs/operations/utilities/clickhouse-compressor.md,concepts/features/tools-and-utilities/clickhouse-compressor.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-compressor,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities/clickhouse-compressor,matched,e1d20246377ea770,false,,,false -/operations/utilities/clickhouse-disks,docs/operations/utilities/clickhouse-disks.md,concepts/features/tools-and-utilities/clickhouse-disks.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-disks,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities/clickhouse-disks,matched,5cda23056924a385,true,39a62a98184d3c05,2026-05-07T14:49:41+00:00,false -/operations/utilities/clickhouse-format,docs/operations/utilities/clickhouse-format.md,concepts/features/tools-and-utilities/clickhouse-format.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-format,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities/clickhouse-format,matched,a84351289ccbef46,true,a84351289ccbef46,2026-05-19T11:08:53+00:00,false -/operations/utilities/clickhouse-keeper-client,docs/operations/utilities/clickhouse-keeper-client.md,concepts/features/tools-and-utilities/clickhouse-keeper-client.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-keeper-client,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities/clickhouse-keeper-client,matched,dc02ae2c6ced91d3,true,a09632bedf043e16,2026-05-07T14:49:41+00:00,false -/operations/utilities/clickhouse-keeper-http-api,docs/operations/utilities/clickhouse-keeper-http-api.md,concepts/features/tools-and-utilities/clickhouse-keeper-http-api.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-keeper-http-api,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities/clickhouse-keeper-http-api,matched,d6935497cb291c4b,true,149558e56598d90d,2026-05-07T14:49:41+00:00,false -/operations/utilities/clickhouse-local,docs/operations/utilities/clickhouse-local.md,concepts/features/tools-and-utilities/clickhouse-local.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-local,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities/clickhouse-local,matched,ec740cea7203f856,true,ec740cea7203f856,2026-05-19T11:08:53+00:00,false -/operations/utilities/clickhouse-obfuscator,docs/operations/utilities/clickhouse-obfuscator.md,concepts/features/tools-and-utilities/clickhouse-obfuscator.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-obfuscator,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities/clickhouse-obfuscator,matched,a1465aea8fd40bd2,false,,,false -/operations/utilities/odbc-bridge,docs/operations/utilities/odbc-bridge.md,concepts/features/tools-and-utilities/odbc-bridge.mdx,https://clickhouse.com/docs/operations/utilities/odbc-bridge,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities/odbc-bridge,matched,85d971b7567c96e5,false,,,false -/operations/utilities/static-files-disk-uploader,docs/tools-and-utilities/static-files-disk-uploader.md,concepts/features/tools-and-utilities/static-files-disk-uploader.mdx,https://clickhouse.com/docs/operations/utilities/static-files-disk-uploader,https://private-7c7dfe99.mintlify.app/concepts/features/tools-and-utilities/static-files-disk-uploader,matched,419f3e9045c39dd2,true,74f0f1b06ffe8edd,2026-05-07T14:49:41+00:00,false -/operations/workload-scheduling,docs/operations/workload-scheduling.md,concepts/features/configuration/server-config/workload-scheduling.mdx,https://clickhouse.com/docs/operations/workload-scheduling,https://private-7c7dfe99.mintlify.app/concepts/features/configuration/server-config/workload-scheduling,matched,8032e74c1af9f4e6,true,8032e74c1af9f4e6,2026-05-08T09:09:20+00:00,false -/optimize/asynchronous-inserts,docs/guides/best-practices/asyncinserts.md,concepts/operations/insert/asyncinserts.mdx,https://clickhouse.com/docs/optimize/asynchronous-inserts,https://private-7c7dfe99.mintlify.app/concepts/operations/insert/asyncinserts,matched,090826f9f6e052fc,true,090826f9f6e052fc,2026-05-08T09:09:20+00:00,false +/managing-data/core-concepts,docs/managing-data/core-concepts/index.md,core/concepts/core-concepts/index.mdx,https://clickhouse.com/docs/managing-data/core-concepts,https://private-7c7dfe99.mintlify.app/core/concepts/core-concepts/index,matched,490ca15b90dd7fad,true,490ca15b90dd7fad,2026-05-08T18:23:34+00:00,false +/managing-data/delete_mutations,docs/managing-data/deleting-data/delete_mutations.mdx,core/concepts/features/operations/delete/delete-mutations.mdx,https://clickhouse.com/docs/managing-data/delete_mutations,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/delete/delete-mutations,matched,9a516f2e140076fd,true,9a516f2e140076fd,2026-05-09T17:02:01+00:00,false +/managing-data/deleting-data/overview,docs/managing-data/deleting-data/index.md,core/concepts/features/operations/delete/index.mdx,https://clickhouse.com/docs/managing-data/deleting-data/overview,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/delete/index,matched,c07ea006ce7ea6ab,true,c07ea006ce7ea6ab,2026-05-09T17:51:26+00:00,false +/managing-data/drop_partition,docs/managing-data/drop_partition.mdx,core/concepts/features/operations/delete/drop-partition.mdx,https://clickhouse.com/docs/managing-data/drop_partition,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/delete/drop-partition,matched,1c57c679e355f3f9,true,1c57c679e355f3f9,2026-05-07T14:49:41+00:00,false +/managing-data/materialized-views-versus-projections,docs/data-modeling/projections/2_materialized-views-versus-projections.md,core/concepts/features/projections/materialized-views-versus-projections.mdx,https://clickhouse.com/docs/managing-data/materialized-views-versus-projections,https://private-7c7dfe99.mintlify.app/core/concepts/features/projections/materialized-views-versus-projections,matched,ecec14a993aa486e,true,ecec14a993aa486e,2026-05-08T09:09:20+00:00,false +/managing-data/truncate,docs/managing-data/truncate.md,core/concepts/features/operations/delete/truncate.mdx,https://clickhouse.com/docs/managing-data/truncate,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/delete/truncate,matched,85c977ff2c68bbc2,true,85c977ff2c68bbc2,2026-05-09T17:42:52+00:00,false +/materialized-view/incremental-materialized-view,docs/materialized-view/incremental-materialized-view.md,core/concepts/features/materialized-views/incremental-materialized-view.mdx,https://clickhouse.com/docs/materialized-view/incremental-materialized-view,https://private-7c7dfe99.mintlify.app/core/concepts/features/materialized-views/incremental-materialized-view,matched,b8d188b15cf0f6d6,true,b8d188b15cf0f6d6,2026-05-08T09:09:20+00:00,false +/materialized-view/refreshable-materialized-view,docs/materialized-view/refreshable-materialized-view.md,core/concepts/features/materialized-views/refreshable-materialized-view.mdx,https://clickhouse.com/docs/materialized-view/refreshable-materialized-view,https://private-7c7dfe99.mintlify.app/core/concepts/features/materialized-views/refreshable-materialized-view,matched,c2f2accf06323932,true,c2f2accf06323932,2026-05-08T12:19:52+00:00,false +/materialized-views,docs/materialized-view/index.md,core/concepts/features/materialized-views/index.mdx,https://clickhouse.com/docs/materialized-views,https://private-7c7dfe99.mintlify.app/core/concepts/features/materialized-views/index,matched,15213eb6a61085ad,true,15213eb6a61085ad,2026-05-08T12:19:52+00:00,false +/merges,docs/managing-data/core-concepts/merges.mdx,core/concepts/core-concepts/merges.mdx,https://clickhouse.com/docs/merges,https://private-7c7dfe99.mintlify.app/core/concepts/core-concepts/merges,matched,23cd1a4eacc6d35e,true,23cd1a4eacc6d35e,2026-05-08T09:09:20+00:00,false +/migrations/bigquery,docs/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/index.md,core/get-started/setup/migration-guides/bigquery/index.mdx,https://clickhouse.com/docs/migrations/bigquery,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/bigquery/index,matched,6e9ef6dfd8e741fb,true,524a54c710aefcd2,2026-05-13T13:25:34+00:00,false +/migrations/bigquery/biquery-vs-clickhouse-cloud,docs/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md,core/get-started/setup/migration-guides/bigquery/overview.mdx,https://clickhouse.com/docs/migrations/bigquery/biquery-vs-clickhouse-cloud,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/bigquery/overview,matched,dd35989fc89db44d,true,dd35989fc89db44d,2026-05-19T11:08:53+00:00,false +/migrations/bigquery/loading-data,docs/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md,core/get-started/setup/migration-guides/bigquery/loading-data.mdx,https://clickhouse.com/docs/migrations/bigquery/loading-data,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/bigquery/loading-data,matched,db99c807a578b973,true,db99c807a578b973,2026-05-08T09:09:20+00:00,false +/migrations/bigquery/migrating-to-clickhouse-cloud,docs/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md,core/get-started/setup/migration-guides/bigquery/migrating-to-clickhouse-cloud.mdx,https://clickhouse.com/docs/migrations/bigquery/migrating-to-clickhouse-cloud,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/bigquery/migrating-to-clickhouse-cloud,matched,acfd8dc42b8be408,true,acfd8dc42b8be408,2026-05-13T15:43:26+00:00,false +/migrations/elastic-overview,docs/cloud/onboard/02_migrate/01_migration_guides/05_elastic/01_overview.md,core/get-started/setup/migration-guides/elastic/overview.mdx,https://clickhouse.com/docs/migrations/elastic-overview,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/elastic/overview,matched,573b1095d6f3b021,true,573b1095d6f3b021,2026-05-13T13:16:51+00:00,false +/migrations/postgresql,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/index.md,core/get-started/setup/migration-guides/postgres/index.mdx,https://clickhouse.com/docs/migrations/postgresql,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/postgres/index,matched,1fc6d064882a931f,true,1fc6d064882a931f,2026-05-09T10:08:44+00:00,false +/migrations/postgresql/appendix,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md,core/get-started/setup/migration-guides/postgres/appendix.mdx,https://clickhouse.com/docs/migrations/postgresql/appendix,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/postgres/appendix,matched,f7211aaf84e07266,true,f7211aaf84e07266,2026-05-08T09:09:20+00:00,false +/migrations/postgresql/data-modeling-techniques,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md,core/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3.mdx,https://clickhouse.com/docs/migrations/postgresql/data-modeling-techniques,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3,matched,c30cdf3133afce5d,true,c30cdf3133afce5d,2026-05-08T09:09:20+00:00,false +/migrations/postgresql/dataset,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md,core/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part1.mdx,https://clickhouse.com/docs/migrations/postgresql/dataset,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part1,matched,c3c60d781f027a81,true,c3c60d781f027a81,2026-05-08T09:09:20+00:00,false +/migrations/postgresql/overview,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md,core/get-started/setup/migration-guides/postgres/overview.mdx,https://clickhouse.com/docs/migrations/postgresql/overview,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/postgres/overview,matched,921719ea95cc7747,true,921719ea95cc7747,2026-05-13T13:25:35+00:00,false +/migrations/postgresql/rewriting-queries,docs/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md,core/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part2.mdx,https://clickhouse.com/docs/migrations/postgresql/rewriting-queries,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part2,matched,dea71bd599e21414,true,dea71bd599e21414,2026-05-19T11:08:53+00:00,false +/migrations/redshift-overview,docs/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md,core/get-started/setup/migration-guides/redshift/overview.mdx,https://clickhouse.com/docs/migrations/redshift-overview,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/redshift/overview,matched,d531bf94e01014ae,true,d531bf94e01014ae,2026-05-13T13:16:51+00:00,false +/migrations/redshift/migration-guide,docs/cloud/onboard/02_migrate/01_migration_guides/06_redshift/02_migration_guide.md,core/get-started/setup/migration-guides/redshift/migration-guide.mdx,https://clickhouse.com/docs/migrations/redshift/migration-guide,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/redshift/migration-guide,matched,9b17a57ce389bca0,true,9b17a57ce389bca0,2026-05-08T11:33:34+00:00,false +/migrations/redshift/sql-translation-reference,docs/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md,core/get-started/setup/migration-guides/redshift/sql-translation-reference.mdx,https://clickhouse.com/docs/migrations/redshift/sql-translation-reference,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/redshift/sql-translation-reference,matched,d24fd1be1d55216c,true,d24fd1be1d55216c,2026-05-13T13:16:51+00:00,false +/migrations/snowflake,docs/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md,core/get-started/setup/migration-guides/snowflake/migration-guide.mdx,https://clickhouse.com/docs/migrations/snowflake,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/snowflake/migration-guide,matched,c650d56bdfeafa74,true,c650d56bdfeafa74,2026-05-08T09:09:20+00:00,false +/migrations/snowflake-overview,docs/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md,core/get-started/setup/migration-guides/snowflake/overview.mdx,https://clickhouse.com/docs/migrations/snowflake-overview,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/snowflake/overview,matched,5e48b24459dae079,true,5e48b24459dae079,2026-05-08T09:09:20+00:00,false +/migrations/snowflake-translation-reference,docs/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md,core/get-started/setup/migration-guides/snowflake/sql-translation-reference.mdx,https://clickhouse.com/docs/migrations/snowflake-translation-reference,https://private-7c7dfe99.mintlify.app/core/get-started/setup/migration-guides/snowflake/sql-translation-reference,matched,bddeed8dc9dd6960,true,bddeed8dc9dd6960,2026-05-13T13:16:51+00:00,false +/native-protocol/basics,docs/native-protocol/basics.md,resources/develop-contribute/native-protocol/basics.mdx,https://clickhouse.com/docs/native-protocol/basics,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/native-protocol/basics,matched,6c83b8764e912961,true,63c7afb1ad7b7072,2026-05-08T09:09:20+00:00,false +/native-protocol/client,docs/native-protocol/client.md,resources/develop-contribute/native-protocol/client.mdx,https://clickhouse.com/docs/native-protocol/client,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/native-protocol/client,matched,d284978f67c3edba,true,d284978f67c3edba,2026-05-13T13:16:51+00:00,false +/native-protocol/columns,docs/native-protocol/columns.md,resources/develop-contribute/native-protocol/columns.mdx,https://clickhouse.com/docs/native-protocol/columns,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/native-protocol/columns,matched,6ac09babfb2345ea,true,d125f35b59774466,2026-05-08T09:09:20+00:00,false +/native-protocol/hash,docs/native-protocol/hash.md,resources/develop-contribute/native-protocol/hash.mdx,https://clickhouse.com/docs/native-protocol/hash,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/native-protocol/hash,matched,6458e0d78f3458b5,true,11ca88940183f46c,2026-05-08T09:09:20+00:00,false +/native-protocol/server,docs/native-protocol/server.md,resources/develop-contribute/native-protocol/server.mdx,https://clickhouse.com/docs/native-protocol/server,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/native-protocol/server,matched,5749421cd457053a,true,b1a72f898456e3c0,2026-05-09T09:39:38+00:00,false +/observability/demo-application,docs/use-cases/observability/build-your-own/demo-application.md,core/guides/use-cases/observability/build-your-own/demo-application.mdx,https://clickhouse.com/docs/observability/demo-application,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/observability/build-your-own/demo-application,matched,1f0a4b693ba5e0ec,false,,,false +/observability/grafana,docs/use-cases/observability/build-your-own/grafana.md,core/guides/use-cases/observability/build-your-own/grafana.mdx,https://clickhouse.com/docs/observability/grafana,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/observability/build-your-own/grafana,matched,6dc8fd3088ed4f08,true,6dc8fd3088ed4f08,2026-05-08T09:09:20+00:00,false +/observability/integrating-opentelemetry,docs/use-cases/observability/build-your-own/integrating-opentelemetry.md,core/guides/use-cases/observability/build-your-own/integrating-opentelemetry.mdx,https://clickhouse.com/docs/observability/integrating-opentelemetry,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/observability/build-your-own/integrating-opentelemetry,matched,5165c90c3e181d42,true,5165c90c3e181d42,2026-05-08T09:09:20+00:00,false +/observability/managing-data,docs/use-cases/observability/build-your-own/managing-data.md,core/guides/use-cases/observability/build-your-own/managing-data.mdx,https://clickhouse.com/docs/observability/managing-data,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/observability/build-your-own/managing-data,matched,4e906e75b0ab47ca,true,4e906e75b0ab47ca,2026-05-08T09:09:20+00:00,false +/operations/access-rights,docs/guides/sre/user-management/index.md,core/concepts/features/security/access-rights.mdx,https://clickhouse.com/docs/operations/access-rights,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/access-rights,matched,c352e5c6a23a8793,true,c352e5c6a23a8793,2026-05-13T13:16:51+00:00,false +/operations/allocation-profiling,docs/operations/allocation-profiling.md,core/concepts/features/performance/allocation-profiling.mdx,https://clickhouse.com/docs/operations/allocation-profiling,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/allocation-profiling,matched,aeeb6ec3bd877a51,true,aeeb6ec3bd877a51,2026-05-08T09:09:20+00:00,false +/operations/allocation-profiling-old,docs/operations/allocation-profiling-old.md,core/concepts/features/performance/allocation-profiling-old.mdx,https://clickhouse.com/docs/operations/allocation-profiling-old,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/allocation-profiling-old,matched,09dbdbce2cf9b2dd,true,09dbdbce2cf9b2dd,2026-05-08T09:09:20+00:00,false +/operations/analyzer,docs/operations/analyzer.md,core/guides/clickhouse/performance-and-monitoring/analyzer.mdx,https://clickhouse.com/docs/operations/analyzer,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/performance-and-monitoring/analyzer,matched,244df0221ad8f2c7,true,30d060b9f19f6985,2026-05-08T09:09:20+00:00,false +/operations/backup/alternative_methods,docs/operations_/backup_restore/04_alternative_methods.md,core/concepts/features/backup-restore/alternative-methods.mdx,https://clickhouse.com/docs/operations/backup/alternative_methods,https://private-7c7dfe99.mintlify.app/core/concepts/features/backup-restore/alternative-methods,matched,6f1567f45a37d48d,true,6f1567f45a37d48d,2026-05-13T13:16:51+00:00,false +/operations/backup/azure,docs/operations_/backup_restore/03_azure_blob_storage.md,core/concepts/features/backup-restore/azure-blob-storage.mdx,https://clickhouse.com/docs/operations/backup/azure,https://private-7c7dfe99.mintlify.app/core/concepts/features/backup-restore/azure-blob-storage,matched,a014826091cc7de6,true,a014826091cc7de6,2026-05-08T09:09:20+00:00,false +/operations/backup/disk,docs/operations_/backup_restore/01_local_disk.md,core/concepts/features/backup-restore/local-disk.mdx,https://clickhouse.com/docs/operations/backup/disk,https://private-7c7dfe99.mintlify.app/core/concepts/features/backup-restore/local-disk,matched,c4dd19b827ee5be4,true,c4dd19b827ee5be4,2026-05-13T15:43:24+00:00,false +/operations/backup/overview,docs/operations_/backup_restore/00_overview.md,core/concepts/features/backup-restore/overview.mdx,https://clickhouse.com/docs/operations/backup/overview,https://private-7c7dfe99.mintlify.app/core/concepts/features/backup-restore/overview,matched,cf2f951338bcd3c1,true,cf2f951338bcd3c1,2026-05-13T15:43:24+00:00,false +/operations/backup/s3_endpoint,docs/operations_/backup_restore/02_s3_endpoint.md,core/concepts/features/backup-restore/s3-endpoint.mdx,https://clickhouse.com/docs/operations/backup/s3_endpoint,https://private-7c7dfe99.mintlify.app/core/concepts/features/backup-restore/s3-endpoint,matched,c3ff551589fda47e,true,c3ff551589fda47e,2026-05-09T17:02:01+00:00,false +/operations/backup/snapshot,docs/operations_/backup_restore/05_snapshot.md,core/concepts/features/backup-restore/snapshot.mdx,https://clickhouse.com/docs/operations/backup/snapshot,https://private-7c7dfe99.mintlify.app/core/concepts/features/backup-restore/snapshot,matched,26a73917b328cf38,true,26a73917b328cf38,2026-05-13T13:16:51+00:00,false +/operations/caches,docs/operations/caches.md,core/concepts/features/performance/caches/caches.mdx,https://clickhouse.com/docs/operations/caches,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/caches/caches,matched,55fdfbf942985753,true,e18f1ea2efc46626,2026-05-07T14:49:41+00:00,false +/operations/cluster-discovery,docs/operations/cluster-discovery.md,core/guides/oss/deployment-and-scaling/cluster-discovery.mdx,https://clickhouse.com/docs/operations/cluster-discovery,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/cluster-discovery,matched,bfb072f645be9235,true,343ceb09449e6436,2026-05-08T09:09:20+00:00,false +/operations/configuration-files,docs/operations/configuration-files.md,core/concepts/features/configuration/server-config/configuration-files.mdx,https://clickhouse.com/docs/operations/configuration-files,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/server-config/configuration-files,matched,9e71d3c2fa185cdf,true,9e71d3c2fa185cdf,2026-05-08T09:09:20+00:00,false +/operations/external-authenticators/,docs/operations/external-authenticators/index.md,core/concepts/features/security/external-authenticators/index.mdx,https://clickhouse.com/docs/operations/external-authenticators/,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/external-authenticators/index,matched,16c47449f5275998,true,16c47449f5275998,2026-05-08T09:09:20+00:00,false +/operations/external-authenticators/http,docs/operations/external-authenticators/http.md,core/concepts/features/security/external-authenticators/http.mdx,https://clickhouse.com/docs/operations/external-authenticators/http,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/external-authenticators/http,matched,04f510d66c9b376c,true,04f510d66c9b376c,2026-05-08T09:09:20+00:00,false +/operations/external-authenticators/kerberos,docs/operations/external-authenticators/kerberos.md,core/concepts/features/security/external-authenticators/kerberos.mdx,https://clickhouse.com/docs/operations/external-authenticators/kerberos,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/external-authenticators/kerberos,matched,b7a3734788840b66,true,b7a3734788840b66,2026-05-08T09:09:20+00:00,false +/operations/external-authenticators/ldap,docs/operations/external-authenticators/ldap.md,core/concepts/features/security/external-authenticators/ldap.mdx,https://clickhouse.com/docs/operations/external-authenticators/ldap,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/external-authenticators/ldap,matched,9449246250219a1a,true,9449246250219a1a,2026-05-19T11:08:53+00:00,false +/operations/external-authenticators/ssl-x509,docs/operations/external-authenticators/ssl-x509.md,core/concepts/features/security/external-authenticators/ssl-x509.mdx,https://clickhouse.com/docs/operations/external-authenticators/ssl-x509,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/external-authenticators/ssl-x509,matched,947a7d558e471c72,true,947a7d558e471c72,2026-05-08T09:09:20+00:00,false +/operations/monitoring,docs/operations/monitoring.md,core/guides/oss/deployment-and-scaling/monitoring/monitoring.mdx,https://clickhouse.com/docs/operations/monitoring,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/monitoring/monitoring,matched,ee6d9f1af26926d6,true,ee6d9f1af26926d6,2026-05-08T09:09:20+00:00,false +/operations/named-collections,docs/operations/named-collections.md,core/concepts/features/configuration/server-config/named-collections.mdx,https://clickhouse.com/docs/operations/named-collections,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/server-config/named-collections,matched,8dc09979b83996cf,true,8dc09979b83996cf,2026-05-13T15:43:24+00:00,false +/operations/opentelemetry,docs/operations/opentelemetry.md,core/guides/oss/deployment-and-scaling/monitoring/opentelemetry.mdx,https://clickhouse.com/docs/operations/opentelemetry,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/monitoring/opentelemetry,matched,57b2ec3c9af7907d,true,57b2ec3c9af7907d,2026-05-08T09:09:20+00:00,false +/operations/optimizing-performance/profile-guided-optimization,docs/operations/optimizing-performance/profile-guided-optimization.md,resources/develop-contribute/contribute/profile-guided-optimization.mdx,https://clickhouse.com/docs/operations/optimizing-performance/profile-guided-optimization,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/contribute/profile-guided-optimization,matched,a06cd352188c57c4,true,a06cd352188c57c4,2026-05-13T14:36:45+00:00,false +/operations/optimizing-performance/sampling-query-profiler,docs/operations/optimizing-performance/sampling-query-profiler.md,core/concepts/features/performance/troubleshoot/sampling-query-profiler.mdx,https://clickhouse.com/docs/operations/optimizing-performance/sampling-query-profiler,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/troubleshoot/sampling-query-profiler,matched,331303dc6c9ac8ef,true,331303dc6c9ac8ef,2026-05-13T14:36:43+00:00,false +/operations/overview,docs/guides/best-practices/index.md,core/concepts/features/performance/index.mdx,https://clickhouse.com/docs/operations/overview,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/index,matched,63df4b0ede3f1809,true,63df4b0ede3f1809,2026-05-08T11:28:15+00:00,false +/operations/performance-test,docs/operations/performance-test.md,core/concepts/features/performance/troubleshoot/performance-test.mdx,https://clickhouse.com/docs/operations/performance-test,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/troubleshoot/performance-test,matched,9e5d4bd1e5379d30,true,9e5d4bd1e5379d30,2026-05-08T09:09:20+00:00,false +/operations/query-cache,docs/operations/query-cache.md,core/concepts/features/performance/caches/query-cache.mdx,https://clickhouse.com/docs/operations/query-cache,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/caches/query-cache,matched,e8a08aebb039a807,true,7867cf786d57b72d,2026-05-09T11:14:51+00:00,false +/operations/query-condition-cache,docs/operations/query-condition-cache.md,core/concepts/features/performance/caches/query-condition-cache.mdx,https://clickhouse.com/docs/operations/query-condition-cache,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/caches/query-condition-cache,matched,01b02051819a2cf0,true,f67e1d9bf36c40cc,2026-05-09T10:26:02+00:00,false +/operations/quotas,docs/operations/quotas.md,core/concepts/features/configuration/server-config/quotas.mdx,https://clickhouse.com/docs/operations/quotas,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/server-config/quotas,matched,91a218790dd605e3,true,91a218790dd605e3,2026-05-08T09:09:20+00:00,false +/operations/server-configuration-parameters/settings,docs/operations/server-configuration-parameters/settings.md,core/reference/settings/server-settings/settings.mdx,https://clickhouse.com/docs/operations/server-configuration-parameters/settings,https://private-7c7dfe99.mintlify.app/core/reference/settings/server-settings/settings,matched,89179d24153a293d,true,89179d24153a293d,2026-05-19T11:08:53+00:00,false +/operations/settings/,docs/operations/settings/index.md,core/reference/settings/index.mdx,https://clickhouse.com/docs/operations/settings/,https://private-7c7dfe99.mintlify.app/core/reference/settings/index,matched,027d2488fe130352,true,027d2488fe130352,2026-05-08T21:00:24+00:00,false +/operations/settings/composable-protocols,docs/operations/settings/composable-protocols.md,core/concepts/features/configuration/server-config/composable-protocols.mdx,https://clickhouse.com/docs/operations/settings/composable-protocols,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/server-config/composable-protocols,matched,a959ce46b6a2f90d,true,fac105353a202b3d,2026-05-08T09:09:20+00:00,false +/operations/settings/constraints-on-settings,docs/operations/settings/constraints-on-settings.md,core/concepts/features/configuration/settings/constraints-on-settings.mdx,https://clickhouse.com/docs/operations/settings/constraints-on-settings,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/settings/constraints-on-settings,matched,b657f299aea82d59,true,8a07567dde304465,2026-05-08T09:09:20+00:00,false +/operations/settings/formats,docs/operations/settings/settings-formats.md,core/reference/settings/formats.mdx,https://clickhouse.com/docs/operations/settings/formats,https://private-7c7dfe99.mintlify.app/core/reference/settings/formats,matched,8333038917eb65c6,true,8333038917eb65c6,2026-05-19T11:08:53+00:00,false +/operations/settings/memory-overcommit,docs/operations/settings/memory-overcommit.md,core/concepts/features/configuration/settings/memory-overcommit.mdx,https://clickhouse.com/docs/operations/settings/memory-overcommit,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/settings/memory-overcommit,matched,0a243f5510171522,true,56a8436026a55bc5,2026-05-07T14:49:41+00:00,false +/operations/settings/merge-tree-settings,docs/operations/settings/merge-tree-settings.md,core/reference/settings/merge-tree-settings.mdx,https://clickhouse.com/docs/operations/settings/merge-tree-settings,https://private-7c7dfe99.mintlify.app/core/reference/settings/merge-tree-settings,matched,d52091bc92ce17c6,true,d52091bc92ce17c6,2026-05-19T11:08:53+00:00,false +/operations/settings/overview,docs/operations/settings/overview.md,core/concepts/features/configuration/settings/overview.mdx,https://clickhouse.com/docs/operations/settings/overview,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/settings/overview,matched,756466e653966891,true,d67f616f50eb112f,2026-05-08T09:09:20+00:00,false +/operations/settings/permissions-for-queries,docs/operations/settings/permissions-for-queries.md,core/concepts/features/configuration/settings/permissions-for-queries.mdx,https://clickhouse.com/docs/operations/settings/permissions-for-queries,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/settings/permissions-for-queries,matched,89955380f36ffec5,true,b20d70e81bda348f,2026-05-09T11:14:51+00:00,false +/operations/settings/query-complexity,docs/operations/settings/query-complexity.md,core/concepts/features/configuration/settings/query-complexity.mdx,https://clickhouse.com/docs/operations/settings/query-complexity,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/settings/query-complexity,matched,cdc147d9f7450ac5,true,a3b2b2da1705264e,2026-05-08T09:09:20+00:00,false +/operations/settings/query-level,docs/operations/settings/settings-query-level.md,core/concepts/features/configuration/settings/settings-query-level.mdx,https://clickhouse.com/docs/operations/settings/query-level,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/settings/settings-query-level,matched,03f99ff0a17572c9,true,03f99ff0a17572c9,2026-05-13T15:43:24+00:00,false +/operations/settings/server-overload,docs/operations/settings/server-overload.md,core/concepts/features/configuration/settings/server-overload.mdx,https://clickhouse.com/docs/operations/settings/server-overload,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/settings/server-overload,matched,f021b72d2f0dadf4,true,62c5c6e1debf8e9f,2026-05-07T14:49:41+00:00,false +/operations/settings/settings,docs/operations/settings/settings.md,core/reference/settings/session-settings.mdx,https://clickhouse.com/docs/operations/settings/settings,https://private-7c7dfe99.mintlify.app/core/reference/settings/session-settings,matched,ea427818c0ffa5b8,true,ea427818c0ffa5b8,2026-05-21T07:18:57+00:00,false +/operations/settings/settings-profiles,docs/operations/settings/settings-profiles.md,core/concepts/features/configuration/settings/settings-profiles.mdx,https://clickhouse.com/docs/operations/settings/settings-profiles,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/settings/settings-profiles,matched,d74579c90b16c65e,true,d921a22cfbb36622,2026-05-08T09:09:20+00:00,false +/operations/settings/settings-users,docs/operations/settings/settings-users.md,core/concepts/features/configuration/settings/settings-users.mdx,https://clickhouse.com/docs/operations/settings/settings-users,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/settings/settings-users,matched,6883ddb871f8a016,true,75b7bfaa451e0787,2026-05-08T09:09:20+00:00,false +/operations/settings/tcp-connection-limits,docs/operations/settings/tcp-connection-limits.md,core/concepts/features/configuration/settings/tcp-connection-limits.mdx,https://clickhouse.com/docs/operations/settings/tcp-connection-limits,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/settings/tcp-connection-limits,matched,8e9898ab564cb4b6,true,27fdf16a587cb870,2026-05-07T14:49:41+00:00,false +/operations/ssl-zookeeper,docs/operations/ssl-zookeeper.md,core/guides/oss/deployment-and-scaling/keeper/ssl-zookeeper.mdx,https://clickhouse.com/docs/operations/ssl-zookeeper,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/keeper/ssl-zookeeper,matched,315bad9ae2949888,true,9a1b6a07af2168ed,2026-05-08T09:09:20+00:00,false +/operations/startup-scripts,docs/operations/startup-scripts.md,core/concepts/features/configuration/server-config/startup-scripts.mdx,https://clickhouse.com/docs/operations/startup-scripts,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/server-config/startup-scripts,matched,c7b28f8f3c2d8032,true,4866f2bf5a753196,2026-05-08T09:09:20+00:00,false +/operations/storing-data,docs/operations/storing-data.md,core/concepts/features/configuration/server-config/storing-data.mdx,https://clickhouse.com/docs/operations/storing-data,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/server-config/storing-data,matched,ba0615ec15899614,true,ba0615ec15899614,2026-05-13T15:43:24+00:00,false +/operations/system-tables/,docs/operations/system-tables/index.md,core/reference/system-tables/index.mdx,https://clickhouse.com/docs/operations/system-tables/,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/index,matched,01004dd20053c0a5,true,01004dd20053c0a5,2026-05-19T11:08:53+00:00,false +/operations/system-tables/aggregate_function_combinators,docs/operations/system-tables/aggregate_function_combinators.md,core/reference/system-tables/aggregate_function_combinators.mdx,https://clickhouse.com/docs/operations/system-tables/aggregate_function_combinators,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/aggregate_function_combinators,matched,74e843ffb796d988,true,74e843ffb796d988,2026-05-08T21:00:25+00:00,false +/operations/system-tables/aggregated_zookeeper_log,docs/operations/system-tables/aggregated_zookeeper_log.md,core/reference/system-tables/aggregated_zookeeper_log.mdx,https://clickhouse.com/docs/operations/system-tables/aggregated_zookeeper_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/aggregated_zookeeper_log,matched,c68bf57f9f3d3579,true,c68bf57f9f3d3579,2026-05-13T13:16:51+00:00,false +/operations/system-tables/asynchronous_insert_log,docs/operations/system-tables/asynchronous_insert_log.md,core/reference/system-tables/asynchronous_insert_log.mdx,https://clickhouse.com/docs/operations/system-tables/asynchronous_insert_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/asynchronous_insert_log,matched,b7dc3a891bbc2cdc,true,b7dc3a891bbc2cdc,2026-05-13T13:16:51+00:00,false +/operations/system-tables/asynchronous_inserts,docs/operations/system-tables/asynchronous_inserts.md,core/reference/system-tables/asynchronous_inserts.mdx,https://clickhouse.com/docs/operations/system-tables/asynchronous_inserts,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/asynchronous_inserts,matched,6160869499ef76dd,true,6160869499ef76dd,2026-05-08T21:00:26+00:00,false +/operations/system-tables/asynchronous_loader,docs/operations/system-tables/asynchronous_loader.md,core/reference/system-tables/asynchronous_loader.mdx,https://clickhouse.com/docs/operations/system-tables/asynchronous_loader,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/asynchronous_loader,matched,2974d35942161d69,true,2974d35942161d69,2026-05-08T21:00:26+00:00,false +/operations/system-tables/asynchronous_metric_log,docs/operations/system-tables/asynchronous_metric_log.md,core/reference/system-tables/asynchronous_metric_log.mdx,https://clickhouse.com/docs/operations/system-tables/asynchronous_metric_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/asynchronous_metric_log,matched,c63b53195c4f4369,true,c63b53195c4f4369,2026-05-13T13:16:51+00:00,false +/operations/system-tables/asynchronous_metrics,docs/operations/system-tables/asynchronous_metrics.md,core/reference/system-tables/asynchronous_metrics.mdx,https://clickhouse.com/docs/operations/system-tables/asynchronous_metrics,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/asynchronous_metrics,matched,cc0904c2c2f9c5b3,true,cc0904c2c2f9c5b3,2026-05-19T11:08:53+00:00,false +/operations/system-tables/azure_queue_log,docs/operations/system-tables/azure_queue_log.md,core/reference/system-tables/azure_queue_log.mdx,https://clickhouse.com/docs/operations/system-tables/azure_queue_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/azure_queue_log,matched,6c8baa0a78b5a9f0,true,6c8baa0a78b5a9f0,2026-05-13T13:08:27+00:00,false +/operations/system-tables/azure_queue_metadata_cache,docs/operations/system-tables/azure_queue_metadata_cache.md,core/reference/system-tables/azure_queue_metadata_cache.mdx,https://clickhouse.com/docs/operations/system-tables/azure_queue_metadata_cache,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/azure_queue_metadata_cache,matched,a1a4f88881741c60,true,a1a4f88881741c60,2026-05-08T21:00:26+00:00,false +/operations/system-tables/azure_queue_settings,docs/operations/system-tables/azure_queue_settings.md,core/reference/system-tables/azure_queue_settings.mdx,https://clickhouse.com/docs/operations/system-tables/azure_queue_settings,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/azure_queue_settings,matched,b47c4addf4ff730f,true,b47c4addf4ff730f,2026-05-08T21:00:26+00:00,false +/operations/system-tables/background_schedule_pool,docs/operations/system-tables/background_schedule_pool.md,core/reference/system-tables/background_schedule_pool.mdx,https://clickhouse.com/docs/operations/system-tables/background_schedule_pool,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/background_schedule_pool,matched,003f06920ccec6ad,true,003f06920ccec6ad,2026-05-08T21:00:27+00:00,false +/operations/system-tables/background_schedule_pool_log,docs/operations/system-tables/background_schedule_pool_log.md,core/reference/system-tables/background_schedule_pool_log.mdx,https://clickhouse.com/docs/operations/system-tables/background_schedule_pool_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/background_schedule_pool_log,matched,801268572623f510,true,801268572623f510,2026-05-13T13:16:51+00:00,false +/operations/system-tables/backup_log,docs/operations/system-tables/backup_log.md,core/reference/system-tables/backup_log.mdx,https://clickhouse.com/docs/operations/system-tables/backup_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/backup_log,matched,23f64f52bedff424,true,23f64f52bedff424,2026-05-13T13:16:51+00:00,false +/operations/system-tables/backups,docs/operations/system-tables/backups.md,core/reference/system-tables/backups.mdx,https://clickhouse.com/docs/operations/system-tables/backups,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/backups,matched,474096c2d8465fd9,true,474096c2d8465fd9,2026-05-08T21:00:27+00:00,false +/operations/system-tables/blob_storage_log,docs/operations/system-tables/blob_storage_log.md,core/reference/system-tables/blob_storage_log.mdx,https://clickhouse.com/docs/operations/system-tables/blob_storage_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/blob_storage_log,matched,40e7e7b30c3c4fde,true,40e7e7b30c3c4fde,2026-05-13T13:16:51+00:00,false +/operations/system-tables/build_options,docs/operations/system-tables/build_options.md,core/reference/system-tables/build_options.mdx,https://clickhouse.com/docs/operations/system-tables/build_options,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/build_options,matched,fb2cc9ed0b52f163,true,fb2cc9ed0b52f163,2026-05-08T21:00:28+00:00,false +/operations/system-tables/certificates,docs/operations/system-tables/certificates.md,core/reference/system-tables/certificates.mdx,https://clickhouse.com/docs/operations/system-tables/certificates,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/certificates,matched,7dfacd8a49ab3d16,true,7dfacd8a49ab3d16,2026-05-08T21:00:28+00:00,false +/operations/system-tables/clusters,docs/operations/system-tables/clusters.md,core/reference/system-tables/clusters.mdx,https://clickhouse.com/docs/operations/system-tables/clusters,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/clusters,matched,61e9f75ff22c879e,true,61e9f75ff22c879e,2026-05-19T11:08:53+00:00,false +/operations/system-tables/codecs,docs/operations/system-tables/codecs.md,core/reference/system-tables/codecs.mdx,https://clickhouse.com/docs/operations/system-tables/codecs,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/codecs,matched,7cf08cdbeb0adcf4,true,7cf08cdbeb0adcf4,2026-05-08T21:00:28+00:00,false +/operations/system-tables/collations,docs/operations/system-tables/collations.md,core/reference/system-tables/collations.mdx,https://clickhouse.com/docs/operations/system-tables/collations,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/collations,matched,1018414d0db6f58b,true,1018414d0db6f58b,2026-05-08T21:00:28+00:00,false +/operations/system-tables/columns,docs/operations/system-tables/columns.md,core/reference/system-tables/columns.mdx,https://clickhouse.com/docs/operations/system-tables/columns,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/columns,matched,2c156066c46d67db,true,2c156066c46d67db,2026-05-13T13:16:51+00:00,false +/operations/system-tables/completions,docs/operations/system-tables/completions.md,core/reference/system-tables/completions.mdx,https://clickhouse.com/docs/operations/system-tables/completions,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/completions,matched,b24edc206695568d,true,b24edc206695568d,2026-05-08T21:00:29+00:00,false +/operations/system-tables/contributors,docs/operations/system-tables/contributors.md,core/reference/system-tables/contributors.mdx,https://clickhouse.com/docs/operations/system-tables/contributors,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/contributors,matched,ed99fe2f369bdcd6,true,ed99fe2f369bdcd6,2026-05-08T21:00:29+00:00,false +/operations/system-tables/crash_log,docs/operations/system-tables/crash_log.md,core/reference/system-tables/crash_log.mdx,https://clickhouse.com/docs/operations/system-tables/crash_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/crash_log,matched,789e998674334ab0,true,789e998674334ab0,2026-05-13T13:16:51+00:00,false +/operations/system-tables/current_roles,docs/operations/system-tables/current_roles.md,core/reference/system-tables/current_roles.mdx,https://clickhouse.com/docs/operations/system-tables/current_roles,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/current_roles,matched,d5fa5b1ccc479454,true,d5fa5b1ccc479454,2026-05-08T21:00:29+00:00,false +/operations/system-tables/dashboards,docs/operations/system-tables/dashboards.md,core/reference/system-tables/dashboards.mdx,https://clickhouse.com/docs/operations/system-tables/dashboards,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/dashboards,matched,32447efddfacf342,true,32447efddfacf342,2026-05-08T21:00:29+00:00,false +/operations/system-tables/data_skipping_indices,docs/operations/system-tables/data_skipping_indices.md,core/reference/system-tables/data_skipping_indices.mdx,https://clickhouse.com/docs/operations/system-tables/data_skipping_indices,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/data_skipping_indices,matched,1c40e02429b9f61c,true,1c40e02429b9f61c,2026-05-08T21:00:29+00:00,false +/operations/system-tables/data_type_families,docs/operations/system-tables/data_type_families.md,core/reference/system-tables/data_type_families.mdx,https://clickhouse.com/docs/operations/system-tables/data_type_families,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/data_type_families,matched,ccb0ebaf9e3ed522,true,ccb0ebaf9e3ed522,2026-05-08T21:00:30+00:00,false +/operations/system-tables/database_engines,docs/operations/system-tables/database_engines.md,core/reference/system-tables/database_engines.mdx,https://clickhouse.com/docs/operations/system-tables/database_engines,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/database_engines,matched,f01ae499a1ec57e3,true,f01ae499a1ec57e3,2026-05-08T21:00:30+00:00,false +/operations/system-tables/database_replicas,docs/operations/system-tables/database_replicas.md,core/reference/system-tables/database_replicas.mdx,https://clickhouse.com/docs/operations/system-tables/database_replicas,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/database_replicas,matched,b5267afb5b3dc4b3,true,b5267afb5b3dc4b3,2026-05-08T21:00:30+00:00,false +/operations/system-tables/databases,docs/operations/system-tables/databases.md,core/reference/system-tables/databases.mdx,https://clickhouse.com/docs/operations/system-tables/databases,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/databases,matched,3d184b14fc64a891,true,3d184b14fc64a891,2026-05-19T11:08:53+00:00,false +/operations/system-tables/dead_letter_queue,docs/operations/system-tables/dead_letter_queue.md,core/reference/system-tables/dead_letter_queue.mdx,https://clickhouse.com/docs/operations/system-tables/dead_letter_queue,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/dead_letter_queue,matched,0e30043a5c5eba2a,true,0e30043a5c5eba2a,2026-05-13T13:16:51+00:00,false +/operations/system-tables/delta_lake_metadata_log,docs/operations/system-tables/delta_lake_metadata_log.md,core/reference/system-tables/delta_metadata_log.mdx,https://clickhouse.com/docs/operations/system-tables/delta_lake_metadata_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/delta_metadata_log,matched,f6cf90bd863544db,true,f6cf90bd863544db,2026-05-19T11:08:53+00:00,false +/operations/system-tables/detached_parts,docs/operations/system-tables/detached_parts.md,core/reference/system-tables/detached_parts.mdx,https://clickhouse.com/docs/operations/system-tables/detached_parts,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/detached_parts,matched,40b3900db699b5e0,true,40b3900db699b5e0,2026-05-08T21:00:31+00:00,false +/operations/system-tables/detached_tables,docs/operations/system-tables/detached_tables.md,core/reference/system-tables/detached_tables.mdx,https://clickhouse.com/docs/operations/system-tables/detached_tables,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/detached_tables,matched,363ca00e053d40a5,true,363ca00e053d40a5,2026-05-08T21:00:31+00:00,false +/operations/system-tables/dictionaries,docs/operations/system-tables/dictionaries.md,core/reference/system-tables/dictionaries.mdx,https://clickhouse.com/docs/operations/system-tables/dictionaries,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/dictionaries,matched,30d9c72de8848950,true,30d9c72de8848950,2026-05-08T21:00:31+00:00,false +/operations/system-tables/dimensional_metrics,docs/operations/system-tables/dimensional_metrics.md,core/reference/system-tables/dimensional_metrics.mdx,https://clickhouse.com/docs/operations/system-tables/dimensional_metrics,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/dimensional_metrics,matched,41a8e212bd7abc30,true,41a8e212bd7abc30,2026-05-13T13:16:51+00:00,false +/operations/system-tables/disks,docs/operations/system-tables/disks.md,core/reference/system-tables/disks.mdx,https://clickhouse.com/docs/operations/system-tables/disks,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/disks,matched,f5aad12f0f49430a,true,f5aad12f0f49430a,2026-05-08T21:00:31+00:00,false +/operations/system-tables/distributed_ddl_queue,docs/operations/system-tables/distributed_ddl_queue.md,core/reference/system-tables/distributed_ddl_queue.mdx,https://clickhouse.com/docs/operations/system-tables/distributed_ddl_queue,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/distributed_ddl_queue,matched,1ffce34c4d08703f,true,1ffce34c4d08703f,2026-05-19T11:48:22+00:00,false +/operations/system-tables/distribution_queue,docs/operations/system-tables/distribution_queue.md,core/reference/system-tables/distribution_queue.mdx,https://clickhouse.com/docs/operations/system-tables/distribution_queue,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/distribution_queue,matched,9a1e70d903a00965,true,9a1e70d903a00965,2026-05-08T21:00:32+00:00,false +/operations/system-tables/dns_cache,docs/operations/system-tables/dns_cache.md,core/reference/system-tables/dns_cache.mdx,https://clickhouse.com/docs/operations/system-tables/dns_cache,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/dns_cache,matched,832dfe91488177fd,true,832dfe91488177fd,2026-05-08T21:00:32+00:00,false +/operations/system-tables/dropped_tables,docs/operations/system-tables/dropped_tables.md,core/reference/system-tables/dropped_tables.mdx,https://clickhouse.com/docs/operations/system-tables/dropped_tables,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/dropped_tables,matched,99ce3ddea83a7a37,true,99ce3ddea83a7a37,2026-05-08T21:00:32+00:00,false +/operations/system-tables/dropped_tables_parts,docs/operations/system-tables/dropped_tables_parts.md,core/reference/system-tables/dropped_tables_parts.mdx,https://clickhouse.com/docs/operations/system-tables/dropped_tables_parts,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/dropped_tables_parts,matched,4dddb00c8826eeec,true,4dddb00c8826eeec,2026-05-13T13:16:51+00:00,false +/operations/system-tables/enabled_roles,docs/operations/system-tables/enabled_roles.md,core/reference/system-tables/enabled_roles.mdx,https://clickhouse.com/docs/operations/system-tables/enabled_roles,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/enabled_roles,matched,53ba95975c120c13,true,53ba95975c120c13,2026-05-08T21:00:32+00:00,false +/operations/system-tables/errors,docs/operations/system-tables/errors.md,core/reference/system-tables/errors.mdx,https://clickhouse.com/docs/operations/system-tables/errors,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/errors,matched,7779b6a80d11c73a,true,7779b6a80d11c73a,2026-05-08T21:00:33+00:00,false +/operations/system-tables/events,docs/operations/system-tables/events.md,core/reference/system-tables/events.mdx,https://clickhouse.com/docs/operations/system-tables/events,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/events,matched,cb79808f837bd1dc,true,cb79808f837bd1dc,2026-05-19T11:08:53+00:00,false +/operations/system-tables/fail_points,docs/operations/system-tables/fail_points.md,core/reference/system-tables/fail_points.mdx,https://clickhouse.com/docs/operations/system-tables/fail_points,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/fail_points,matched,dba698b365d9ef95,true,dba698b365d9ef95,2026-05-08T21:00:33+00:00,false +/operations/system-tables/filesystem_cache,docs/operations/system-tables/filesystem_cache.md,core/reference/system-tables/filesystem_cache.mdx,https://clickhouse.com/docs/operations/system-tables/filesystem_cache,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/filesystem_cache,matched,a2328859464bad53,true,a2328859464bad53,2026-05-08T21:00:33+00:00,false +/operations/system-tables/filesystem_cache_log,docs/operations/system-tables/filesystem_cache_log.md,core/reference/system-tables/filesystem_cache_log.mdx,https://clickhouse.com/docs/operations/system-tables/filesystem_cache_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/filesystem_cache_log,matched,19f3dfba8f9194aa,true,19f3dfba8f9194aa,2026-05-13T13:08:27+00:00,false +/operations/system-tables/filesystem_cache_settings,docs/operations/system-tables/filesystem_cache_settings.md,core/reference/system-tables/filesystem_cache_settings.mdx,https://clickhouse.com/docs/operations/system-tables/filesystem_cache_settings,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/filesystem_cache_settings,matched,21d405c24e403f88,true,21d405c24e403f88,2026-05-13T13:16:51+00:00,false +/operations/system-tables/filesystem_read_prefetches_log,docs/operations/system-tables/filesystem_read_prefetches_log.md,core/reference/system-tables/filesystem_read_prefetches_log.mdx,https://clickhouse.com/docs/operations/system-tables/filesystem_read_prefetches_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/filesystem_read_prefetches_log,matched,5b6d5025431391a3,true,5b6d5025431391a3,2026-05-13T13:08:27+00:00,false +/operations/system-tables/formats,docs/operations/system-tables/formats.md,core/reference/system-tables/formats.mdx,https://clickhouse.com/docs/operations/system-tables/formats,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/formats,matched,6bf140e370f7095a,true,6bf140e370f7095a,2026-05-08T21:00:34+00:00,false +/operations/system-tables/functions,docs/operations/system-tables/functions.md,core/reference/system-tables/functions.mdx,https://clickhouse.com/docs/operations/system-tables/functions,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/functions,matched,8257e4513f41c25b,true,8257e4513f41c25b,2026-05-19T11:08:53+00:00,false +/operations/system-tables/grants,docs/operations/system-tables/grants.md,core/reference/system-tables/grants.mdx,https://clickhouse.com/docs/operations/system-tables/grants,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/grants,matched,7eff8cb2a297443e,true,7eff8cb2a297443e,2026-05-19T11:08:53+00:00,false +/operations/system-tables/graphite_retentions,docs/operations/system-tables/graphite_retentions.md,core/reference/system-tables/graphite_retentions.mdx,https://clickhouse.com/docs/operations/system-tables/graphite_retentions,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/graphite_retentions,matched,464bac9447aad728,true,464bac9447aad728,2026-05-08T21:00:34+00:00,false +/operations/system-tables/histogram_metric_log,docs/operations/system-tables/histogram_metric_log.md,core/reference/system-tables/histogram_metric_log.mdx,https://clickhouse.com/docs/operations/system-tables/histogram_metric_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/histogram_metric_log,matched,fd61b7501ffc08ff,true,fd61b7501ffc08ff,2026-05-13T13:16:51+00:00,false +/operations/system-tables/histogram_metrics,docs/operations/system-tables/histogram_metrics.md,core/reference/system-tables/histogram_metrics.mdx,https://clickhouse.com/docs/operations/system-tables/histogram_metrics,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/histogram_metrics,matched,2620e2192210eefe,true,2620e2192210eefe,2026-05-19T11:08:53+00:00,false +/operations/system-tables/iceberg_history,docs/operations/system-tables/iceberg_history.md,core/reference/system-tables/iceberg_history.mdx,https://clickhouse.com/docs/operations/system-tables/iceberg_history,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/iceberg_history,matched,0ffc57c3e2b81eab,true,0ffc57c3e2b81eab,2026-05-08T21:00:35+00:00,false +/operations/system-tables/iceberg_metadata_log,docs/operations/system-tables/iceberg_metadata_log.md,core/reference/system-tables/iceberg_metadata_log.mdx,https://clickhouse.com/docs/operations/system-tables/iceberg_metadata_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/iceberg_metadata_log,matched,3666b153c2ed6ec6,true,3666b153c2ed6ec6,2026-05-13T13:16:51+00:00,false +/operations/system-tables/information_schema,docs/operations/system-tables/information_schema.md,core/reference/system-tables/information_schema.mdx,https://clickhouse.com/docs/operations/system-tables/information_schema,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/information_schema,matched,d3c9bff2eaf6d8c1,true,d3c9bff2eaf6d8c1,2026-05-19T11:08:53+00:00,false +/operations/system-tables/instrumentation,docs/operations/system-tables/instrumentation.md,core/reference/system-tables/instrumentation.mdx,https://clickhouse.com/docs/operations/system-tables/instrumentation,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/instrumentation,matched,84e4433828e2eebd,true,84e4433828e2eebd,2026-05-08T21:00:35+00:00,false +/operations/system-tables/jemalloc_bins,docs/operations/system-tables/jemalloc_bins.md,core/reference/system-tables/jemalloc_bins.mdx,https://clickhouse.com/docs/operations/system-tables/jemalloc_bins,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/jemalloc_bins,matched,df9e8107e5309350,true,df9e8107e5309350,2026-05-13T13:16:51+00:00,false +/operations/system-tables/jemalloc_profile_text,docs/operations/system-tables/jemalloc_profile_text.md,core/reference/system-tables/jemalloc_profile_text.mdx,https://clickhouse.com/docs/operations/system-tables/jemalloc_profile_text,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/jemalloc_profile_text,matched,cca46516004deb0d,true,cca46516004deb0d,2026-05-08T21:00:36+00:00,false +/operations/system-tables/jemalloc_stats,docs/operations/system-tables/jemalloc_stats.md,core/reference/system-tables/jemalloc_stats.mdx,https://clickhouse.com/docs/operations/system-tables/jemalloc_stats,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/jemalloc_stats,matched,929f907b08f2ee2d,true,929f907b08f2ee2d,2026-05-08T21:00:36+00:00,false +/operations/system-tables/kafka_consumers,docs/operations/system-tables/kafka_consumers.md,core/reference/system-tables/kafka_consumers.mdx,https://clickhouse.com/docs/operations/system-tables/kafka_consumers,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/kafka_consumers,matched,e094d2f770da5230,true,e094d2f770da5230,2026-05-08T21:00:36+00:00,false +/operations/system-tables/keywords,docs/operations/system-tables/keywords.md,core/reference/system-tables/keywords.mdx,https://clickhouse.com/docs/operations/system-tables/keywords,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/keywords,matched,580293e04e4b5ef0,true,580293e04e4b5ef0,2026-05-08T21:00:36+00:00,false +/operations/system-tables/licenses,docs/operations/system-tables/licenses.md,core/reference/system-tables/licenses.mdx,https://clickhouse.com/docs/operations/system-tables/licenses,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/licenses,matched,9d1423ef5ce07210,true,9d1423ef5ce07210,2026-05-08T21:00:36+00:00,false +/operations/system-tables/macros,docs/operations/system-tables/macros.md,core/reference/system-tables/macros.mdx,https://clickhouse.com/docs/operations/system-tables/macros,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/macros,matched,ca6dd30401322eb5,true,ca6dd30401322eb5,2026-05-08T21:00:37+00:00,false +/operations/system-tables/masking_policies,docs/operations/system-tables/masking_policies.md,core/reference/system-tables/masking_policies.mdx,https://clickhouse.com/docs/operations/system-tables/masking_policies,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/masking_policies,matched,2122b6c04db57faf,true,2122b6c04db57faf,2026-05-08T21:00:37+00:00,false +/operations/system-tables/merge_tree_settings,docs/operations/system-tables/merge_tree_settings.md,core/reference/system-tables/merge_tree_settings.mdx,https://clickhouse.com/docs/operations/system-tables/merge_tree_settings,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/merge_tree_settings,matched,e5e8db50498b1673,true,e5e8db50498b1673,2026-05-08T21:00:37+00:00,false +/operations/system-tables/merges,docs/operations/system-tables/merges.md,core/reference/system-tables/merges.mdx,https://clickhouse.com/docs/operations/system-tables/merges,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/merges,matched,60c36e1d757cb666,true,60c36e1d757cb666,2026-05-08T21:00:37+00:00,false +/operations/system-tables/metric_log,docs/operations/system-tables/metric_log.md,core/reference/system-tables/metric_log.mdx,https://clickhouse.com/docs/operations/system-tables/metric_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/metric_log,matched,c382d8f1285baef6,true,c382d8f1285baef6,2026-05-19T11:08:53+00:00,false +/operations/system-tables/metrics,docs/operations/system-tables/metrics.md,core/reference/system-tables/metrics.mdx,https://clickhouse.com/docs/operations/system-tables/metrics,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/metrics,matched,11bd6e6af02ec49f,true,11bd6e6af02ec49f,2026-05-19T11:08:53+00:00,false +/operations/system-tables/models,docs/operations/system-tables/models.md,core/reference/system-tables/models.mdx,https://clickhouse.com/docs/operations/system-tables/models,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/models,matched,6d6f942a7cc2bcb5,true,6d6f942a7cc2bcb5,2026-05-08T21:00:38+00:00,false +/operations/system-tables/moves,docs/operations/system-tables/moves.md,core/reference/system-tables/moves.mdx,https://clickhouse.com/docs/operations/system-tables/moves,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/moves,matched,b7f2eb2b29243e5a,true,b7f2eb2b29243e5a,2026-05-08T21:00:38+00:00,false +/operations/system-tables/mutations,docs/operations/system-tables/mutations.md,core/reference/system-tables/mutations.mdx,https://clickhouse.com/docs/operations/system-tables/mutations,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/mutations,matched,5e9568ccde263373,true,5e9568ccde263373,2026-05-08T21:00:38+00:00,false +/operations/system-tables/named_collections,docs/operations/system-tables/named_collections.md,core/reference/system-tables/named_collections.mdx,https://clickhouse.com/docs/operations/system-tables/named_collections,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/named_collections,matched,7219d93d3bc75213,true,7219d93d3bc75213,2026-05-08T21:00:38+00:00,false +/operations/system-tables/numbers,docs/operations/system-tables/numbers.md,core/reference/system-tables/numbers.mdx,https://clickhouse.com/docs/operations/system-tables/numbers,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/numbers,matched,99047aec8c3514df,true,99047aec8c3514df,2026-05-08T21:00:38+00:00,false +/operations/system-tables/numbers_mt,docs/operations/system-tables/numbers_mt.md,core/reference/system-tables/numbers_mt.mdx,https://clickhouse.com/docs/operations/system-tables/numbers_mt,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/numbers_mt,matched,fb734a6e8fefc43a,true,fb734a6e8fefc43a,2026-05-08T21:00:39+00:00,false +/operations/system-tables/one,docs/operations/system-tables/one.md,core/reference/system-tables/one.mdx,https://clickhouse.com/docs/operations/system-tables/one,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/one,matched,8cebbfc8b51d7d1e,true,8cebbfc8b51d7d1e,2026-05-08T21:00:39+00:00,false +/operations/system-tables/opentelemetry_span_log,docs/operations/system-tables/opentelemetry_span_log.md,core/reference/system-tables/opentelemetry_span_log.mdx,https://clickhouse.com/docs/operations/system-tables/opentelemetry_span_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/opentelemetry_span_log,matched,c177a0be6bda91a4,true,c177a0be6bda91a4,2026-05-19T11:08:53+00:00,false +/operations/system-tables/overview,docs/operations/system-tables/overview.md,core/reference/system-tables/overview.mdx,https://clickhouse.com/docs/operations/system-tables/overview,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/overview,matched,9aff12963c1e1db4,true,9aff12963c1e1db4,2026-05-08T09:09:20+00:00,false +/operations/system-tables/part_log,docs/operations/system-tables/part_log.md,core/reference/system-tables/part_log.mdx,https://clickhouse.com/docs/operations/system-tables/part_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/part_log,matched,968e900e95aa9ea2,true,968e900e95aa9ea2,2026-05-13T13:16:51+00:00,false +/operations/system-tables/part_moves_between_shards,docs/operations/system-tables/part_moves_between_shards.md,core/reference/system-tables/part_moves_between_shards.mdx,https://clickhouse.com/docs/operations/system-tables/part_moves_between_shards,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/part_moves_between_shards,matched,2caa49aba757cf95,true,2caa49aba757cf95,2026-05-08T21:00:39+00:00,false +/operations/system-tables/parts,docs/operations/system-tables/parts.md,core/reference/system-tables/parts.mdx,https://clickhouse.com/docs/operations/system-tables/parts,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/parts,matched,fa6125a81bc4ca7a,true,fa6125a81bc4ca7a,2026-05-13T13:16:51+00:00,false +/operations/system-tables/parts_columns,docs/operations/system-tables/parts_columns.md,core/reference/system-tables/parts_columns.mdx,https://clickhouse.com/docs/operations/system-tables/parts_columns,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/parts_columns,matched,54ddc77af6501853,true,54ddc77af6501853,2026-05-08T21:00:40+00:00,false +/operations/system-tables/predicate_statistics_log,docs/operations/system-tables/predicate_statistics_log.md,core/reference/system-tables/predicate_statistics_log.mdx,https://clickhouse.com/docs/operations/system-tables/predicate_statistics_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/predicate_statistics_log,matched,0c4c9b03e9bb41d4,true,0c4c9b03e9bb41d4,2026-05-13T13:16:51+00:00,false +/operations/system-tables/primes,docs/operations/system-tables/primes.md,core/reference/system-tables/primes.mdx,https://clickhouse.com/docs/operations/system-tables/primes,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/primes,matched,c8bd5508638d5ac1,true,c8bd5508638d5ac1,2026-05-08T21:00:40+00:00,false +/operations/system-tables/privileges,docs/operations/system-tables/privileges.md,core/reference/system-tables/privileges.mdx,https://clickhouse.com/docs/operations/system-tables/privileges,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/privileges,matched,5b98c7994d5dca05,true,5b98c7994d5dca05,2026-05-19T11:08:53+00:00,false +/operations/system-tables/processes,docs/operations/system-tables/processes.md,core/reference/system-tables/processes.mdx,https://clickhouse.com/docs/operations/system-tables/processes,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/processes,matched,4f1747c6f8fca7cc,true,4f1747c6f8fca7cc,2026-05-13T13:16:51+00:00,false +/operations/system-tables/processors_profile_log,docs/operations/system-tables/processors_profile_log.md,core/reference/system-tables/processors_profile_log.mdx,https://clickhouse.com/docs/operations/system-tables/processors_profile_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/processors_profile_log,matched,55bb2416a7045d67,true,55bb2416a7045d67,2026-05-19T11:08:53+00:00,false +/operations/system-tables/projection_parts,docs/operations/system-tables/projection_parts.md,core/reference/system-tables/projection_parts.mdx,https://clickhouse.com/docs/operations/system-tables/projection_parts,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/projection_parts,matched,997eca3070cbeda5,true,997eca3070cbeda5,2026-05-13T13:16:51+00:00,false +/operations/system-tables/projection_parts_columns,docs/operations/system-tables/projection_parts_columns.md,core/reference/system-tables/projection_parts_columns.mdx,https://clickhouse.com/docs/operations/system-tables/projection_parts_columns,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/projection_parts_columns,matched,213c257e7c406aee,true,213c257e7c406aee,2026-05-13T13:16:51+00:00,false +/operations/system-tables/projections,docs/operations/system-tables/projections.md,core/reference/system-tables/projections.mdx,https://clickhouse.com/docs/operations/system-tables/projections,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/projections,matched,43812f2032aac42f,true,43812f2032aac42f,2026-05-08T21:00:41+00:00,false +/operations/system-tables/query_cache,docs/operations/system-tables/query_cache.md,core/reference/system-tables/query_cache.mdx,https://clickhouse.com/docs/operations/system-tables/query_cache,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/query_cache,matched,23a6576a6892b3c7,true,23a6576a6892b3c7,2026-05-08T21:00:41+00:00,false +/operations/system-tables/query_condition_cache,docs/operations/system-tables/query_condition_cache.md,core/reference/system-tables/query_condition_cache.mdx,https://clickhouse.com/docs/operations/system-tables/query_condition_cache,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/query_condition_cache,matched,2cdfd85810116d3e,true,2cdfd85810116d3e,2026-05-08T21:00:41+00:00,false +/operations/system-tables/query_log,docs/operations/system-tables/query_log.md,core/reference/system-tables/query_log.mdx,https://clickhouse.com/docs/operations/system-tables/query_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/query_log,matched,a05473143f339793,true,a05473143f339793,2026-05-13T13:16:51+00:00,false +/operations/system-tables/query_metric_log,docs/operations/system-tables/query_metric_log.md,core/reference/system-tables/query_metric_log.mdx,https://clickhouse.com/docs/operations/system-tables/query_metric_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/query_metric_log,matched,e861f29f7e4fd511,true,e861f29f7e4fd511,2026-05-13T13:16:51+00:00,false +/operations/system-tables/query_thread_log,docs/operations/system-tables/query_thread_log.md,core/reference/system-tables/query_thread_log.mdx,https://clickhouse.com/docs/operations/system-tables/query_thread_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/query_thread_log,matched,08a8395420867420,true,08a8395420867420,2026-05-13T13:16:51+00:00,false +/operations/system-tables/query_views_log,docs/operations/system-tables/query_views_log.md,core/reference/system-tables/query_views_log.mdx,https://clickhouse.com/docs/operations/system-tables/query_views_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/query_views_log,matched,ab38df93c47223cd,true,ab38df93c47223cd,2026-05-19T11:08:53+00:00,false +/operations/system-tables/quota_limits,docs/operations/system-tables/quota_limits.md,core/reference/system-tables/quota_limits.mdx,https://clickhouse.com/docs/operations/system-tables/quota_limits,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/quota_limits,matched,89cf3fd2c278ac25,true,89cf3fd2c278ac25,2026-05-08T21:00:42+00:00,false +/operations/system-tables/quota_usage,docs/operations/system-tables/quota_usage.md,core/reference/system-tables/quota_usage.mdx,https://clickhouse.com/docs/operations/system-tables/quota_usage,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/quota_usage,matched,553a83991534ff79,true,553a83991534ff79,2026-05-08T21:00:42+00:00,false +/operations/system-tables/quotas,docs/operations/system-tables/quotas.md,core/reference/system-tables/quotas.mdx,https://clickhouse.com/docs/operations/system-tables/quotas,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/quotas,matched,c7e6b2b4098b55ea,true,c7e6b2b4098b55ea,2026-05-08T21:00:43+00:00,false +/operations/system-tables/quotas_usage,docs/operations/system-tables/quotas_usage.md,core/reference/system-tables/quotas_usage.mdx,https://clickhouse.com/docs/operations/system-tables/quotas_usage,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/quotas_usage,matched,e236c52aec1f14c5,true,e236c52aec1f14c5,2026-05-08T21:00:43+00:00,false +/operations/system-tables/remote_data_paths,docs/operations/system-tables/remote_data_paths.md,core/reference/system-tables/remote_data_paths.mdx,https://clickhouse.com/docs/operations/system-tables/remote_data_paths,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/remote_data_paths,matched,16f789c68faf453c,true,16f789c68faf453c,2026-05-08T21:00:43+00:00,false +/operations/system-tables/replicas,docs/operations/system-tables/replicas.md,core/reference/system-tables/replicas.mdx,https://clickhouse.com/docs/operations/system-tables/replicas,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/replicas,matched,f8c198de4d3d6054,true,f8c198de4d3d6054,2026-05-13T13:16:51+00:00,false +/operations/system-tables/replicated_fetches,docs/operations/system-tables/replicated_fetches.md,core/reference/system-tables/replicated_fetches.mdx,https://clickhouse.com/docs/operations/system-tables/replicated_fetches,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/replicated_fetches,matched,36f5e02689262f81,true,36f5e02689262f81,2026-05-08T21:00:43+00:00,false +/operations/system-tables/replicated_merge_tree_settings,docs/operations/system-tables/replicated_merge_tree_settings.md,core/reference/system-tables/replicated_merge_tree_settings.mdx,https://clickhouse.com/docs/operations/system-tables/replicated_merge_tree_settings,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/replicated_merge_tree_settings,matched,9db9dabaac8efd5c,true,9db9dabaac8efd5c,2026-05-08T21:00:43+00:00,false +/operations/system-tables/replication_queue,docs/operations/system-tables/replication_queue.md,core/reference/system-tables/replication_queue.mdx,https://clickhouse.com/docs/operations/system-tables/replication_queue,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/replication_queue,matched,d358990d7d9272e1,true,d358990d7d9272e1,2026-05-08T21:00:44+00:00,false +/operations/system-tables/resources,docs/operations/system-tables/resources.md,core/reference/system-tables/resources.mdx,https://clickhouse.com/docs/operations/system-tables/resources,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/resources,matched,4fb371b9dfddd759,true,4fb371b9dfddd759,2026-05-08T21:00:44+00:00,false +/operations/system-tables/rocksdb,docs/operations/system-tables/rocksdb.md,core/reference/system-tables/rocksdb.mdx,https://clickhouse.com/docs/operations/system-tables/rocksdb,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/rocksdb,matched,82024034ca9109cc,true,82024034ca9109cc,2026-05-08T21:00:44+00:00,false +/operations/system-tables/role_grants,docs/operations/system-tables/role_grants.md,core/reference/system-tables/role_grants.mdx,https://clickhouse.com/docs/operations/system-tables/role_grants,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/role_grants,matched,b74709322c8154c6,true,b74709322c8154c6,2026-05-08T21:00:44+00:00,false +/operations/system-tables/roles,docs/operations/system-tables/roles.md,core/reference/system-tables/roles.mdx,https://clickhouse.com/docs/operations/system-tables/roles,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/roles,matched,af7a908a7c67e751,true,af7a908a7c67e751,2026-05-08T21:00:44+00:00,false +/operations/system-tables/row_policies,docs/operations/system-tables/row_policies.md,core/reference/system-tables/row_policies.mdx,https://clickhouse.com/docs/operations/system-tables/row_policies,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/row_policies,matched,6890a710e54e1699,true,6890a710e54e1699,2026-05-08T21:00:44+00:00,false +/operations/system-tables/s3_queue_settings,docs/operations/system-tables/s3_queue_settings.md,core/reference/system-tables/s3_queue_settings.mdx,https://clickhouse.com/docs/operations/system-tables/s3_queue_settings,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/s3_queue_settings,matched,83ef2d10121b8a8e,true,83ef2d10121b8a8e,2026-05-08T21:00:45+00:00,false +/operations/system-tables/s3queue_log,docs/operations/system-tables/s3queue_log.md,core/reference/system-tables/s3queue_log.mdx,https://clickhouse.com/docs/operations/system-tables/s3queue_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/s3queue_log,matched,b30949fb7bc700eb,true,b30949fb7bc700eb,2026-05-13T13:08:27+00:00,false +/operations/system-tables/s3queue_metadata_cache,docs/operations/system-tables/s3queue_metadata_cache.md,core/reference/system-tables/s3queue_metadata_cache.mdx,https://clickhouse.com/docs/operations/system-tables/s3queue_metadata_cache,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/s3queue_metadata_cache,matched,5383de79a1001a99,true,5383de79a1001a99,2026-05-08T21:00:45+00:00,false +/operations/system-tables/scheduler,docs/operations/system-tables/scheduler.md,core/reference/system-tables/scheduler.mdx,https://clickhouse.com/docs/operations/system-tables/scheduler,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/scheduler,matched,31f0f12a50186fe9,true,31f0f12a50186fe9,2026-05-08T21:00:45+00:00,false +/operations/system-tables/schema_inference_cache,docs/operations/system-tables/schema_inference_cache.md,core/reference/system-tables/schema_inference_cache.mdx,https://clickhouse.com/docs/operations/system-tables/schema_inference_cache,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/schema_inference_cache,matched,553ff97032d7232d,true,553ff97032d7232d,2026-05-08T21:00:45+00:00,false +/operations/system-tables/server_settings,docs/operations/system-tables/server_settings.md,core/reference/system-tables/server_settings.mdx,https://clickhouse.com/docs/operations/system-tables/server_settings,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/server_settings,matched,e25fce44808bcb06,true,e25fce44808bcb06,2026-05-08T21:00:45+00:00,false +/operations/system-tables/session_log,docs/operations/system-tables/session_log.md,core/reference/system-tables/session_log.mdx,https://clickhouse.com/docs/operations/system-tables/session_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/session_log,matched,182a99be8f6003af,true,182a99be8f6003af,2026-05-19T11:08:53+00:00,false +/operations/system-tables/settings,docs/operations/system-tables/settings.md,core/reference/system-tables/settings.mdx,https://clickhouse.com/docs/operations/system-tables/settings,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/settings,matched,2ebf7340bff64f63,true,2ebf7340bff64f63,2026-05-08T21:00:46+00:00,false +/operations/system-tables/settings_changes,docs/operations/system-tables/settings_changes.md,core/reference/system-tables/settings_changes.mdx,https://clickhouse.com/docs/operations/system-tables/settings_changes,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/settings_changes,matched,1cd1742d0fa202ae,true,1cd1742d0fa202ae,2026-05-09T09:39:38+00:00,false +/operations/system-tables/settings_profile_elements,docs/operations/system-tables/settings_profile_elements.md,core/reference/system-tables/settings_profile_elements.mdx,https://clickhouse.com/docs/operations/system-tables/settings_profile_elements,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/settings_profile_elements,matched,97bd32e8684d20f5,true,97bd32e8684d20f5,2026-05-08T21:00:46+00:00,false +/operations/system-tables/settings_profiles,docs/operations/system-tables/settings_profiles.md,core/reference/system-tables/settings_profiles.mdx,https://clickhouse.com/docs/operations/system-tables/settings_profiles,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/settings_profiles,matched,37014ff91f7b8d7d,true,37014ff91f7b8d7d,2026-05-08T21:00:46+00:00,false +/operations/system-tables/stack_trace,docs/operations/system-tables/stack_trace.md,core/reference/system-tables/stack_trace.mdx,https://clickhouse.com/docs/operations/system-tables/stack_trace,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/stack_trace,matched,1411b6e4f944dbe1,true,1411b6e4f944dbe1,2026-05-08T21:00:46+00:00,false +/operations/system-tables/storage_policies,docs/operations/system-tables/storage_policies.md,core/reference/system-tables/storage_policies.mdx,https://clickhouse.com/docs/operations/system-tables/storage_policies,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/storage_policies,matched,cf96fd26b4e69802,true,cf96fd26b4e69802,2026-05-19T11:08:53+00:00,false +/operations/system-tables/symbols,docs/operations/system-tables/symbols.md,core/reference/system-tables/symbols.mdx,https://clickhouse.com/docs/operations/system-tables/symbols,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/symbols,matched,54037cfdf8943d44,true,54037cfdf8943d44,2026-05-08T21:00:47+00:00,false +/operations/system-tables/system-error-log,docs/operations/system-tables/error_log.md,core/reference/system-tables/error_log.mdx,https://clickhouse.com/docs/operations/system-tables/system-error-log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/error_log,matched,a5bafc2aaa88cebc,true,a5bafc2aaa88cebc,2026-05-13T13:16:51+00:00,false +/operations/system-tables/system_warnings,docs/operations/system-tables/system_warnings.md,core/reference/system-tables/system_warnings.mdx,https://clickhouse.com/docs/operations/system-tables/system_warnings,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/system_warnings,matched,019d08eb5d53c4d2,true,019d08eb5d53c4d2,2026-05-08T09:09:20+00:00,false +/operations/system-tables/table_engines,docs/operations/system-tables/table_engines.md,core/reference/system-tables/table_engines.mdx,https://clickhouse.com/docs/operations/system-tables/table_engines,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/table_engines,matched,8638422eb124890a,true,8638422eb124890a,2026-05-08T21:00:47+00:00,false +/operations/system-tables/table_functions,docs/operations/system-tables/table_functions.md,core/reference/system-tables/table_functions.mdx,https://clickhouse.com/docs/operations/system-tables/table_functions,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/table_functions,matched,49b4a602760f3947,true,49b4a602760f3947,2026-05-08T21:00:47+00:00,false +/operations/system-tables/tables,docs/operations/system-tables/tables.md,core/reference/system-tables/tables.mdx,https://clickhouse.com/docs/operations/system-tables/tables,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/tables,matched,735ebc55efcf816b,true,735ebc55efcf816b,2026-05-13T13:16:51+00:00,false +/operations/system-tables/text_log,docs/operations/system-tables/text_log.md,core/reference/system-tables/text_log.mdx,https://clickhouse.com/docs/operations/system-tables/text_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/text_log,matched,b6f1b3a8e96de9e9,true,b6f1b3a8e96de9e9,2026-05-13T13:16:51+00:00,false +/operations/system-tables/time_zones,docs/operations/system-tables/time_zones.md,core/reference/system-tables/time_zones.mdx,https://clickhouse.com/docs/operations/system-tables/time_zones,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/time_zones,matched,bb828e8cbba5f6cb,true,bb828e8cbba5f6cb,2026-05-08T21:00:48+00:00,false +/operations/system-tables/tokenizers,docs/operations/system-tables/tokenizers.md,core/reference/system-tables/tokenizers.mdx,https://clickhouse.com/docs/operations/system-tables/tokenizers,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/tokenizers,matched,f38b49844109c253,true,f38b49844109c253,2026-05-08T21:00:48+00:00,false +/operations/system-tables/trace_log,docs/operations/system-tables/trace_log.md,core/reference/system-tables/trace_log.mdx,https://clickhouse.com/docs/operations/system-tables/trace_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/trace_log,matched,3e1cb8623ee915fc,true,3e1cb8623ee915fc,2026-05-13T13:16:51+00:00,false +/operations/system-tables/transactions,docs/operations/system-tables/transactions.md,core/reference/system-tables/transactions.mdx,https://clickhouse.com/docs/operations/system-tables/transactions,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/transactions,matched,2bf44ed2ecafc08d,true,2bf44ed2ecafc08d,2026-05-08T21:00:48+00:00,false +/operations/system-tables/transactions_info_log,docs/operations/system-tables/transactions_info_log.md,core/reference/system-tables/transactions_info_log.mdx,https://clickhouse.com/docs/operations/system-tables/transactions_info_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/transactions_info_log,matched,e7289c550ebd1706,true,e7289c550ebd1706,2026-05-13T13:08:27+00:00,false +/operations/system-tables/unicode,docs/operations/system-tables/unicode.md,core/reference/system-tables/unicode.mdx,https://clickhouse.com/docs/operations/system-tables/unicode,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/unicode,matched,627dfc36a5b58ce7,true,627dfc36a5b58ce7,2026-05-08T21:00:48+00:00,false +/operations/system-tables/user_defined_functions,docs/operations/system-tables/user_defined_functions.md,core/reference/system-tables/user_defined_functions.mdx,https://clickhouse.com/docs/operations/system-tables/user_defined_functions,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/user_defined_functions,matched,b1a8f52c5076b0b4,true,b1a8f52c5076b0b4,2026-05-08T21:00:48+00:00,false +/operations/system-tables/user_directories,docs/operations/system-tables/user_directories.md,core/reference/system-tables/user_directories.mdx,https://clickhouse.com/docs/operations/system-tables/user_directories,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/user_directories,matched,54f4b3a41b32add7,true,54f4b3a41b32add7,2026-05-08T21:00:49+00:00,false +/operations/system-tables/user_processes,docs/operations/system-tables/user_processes.md,core/reference/system-tables/user_processes.mdx,https://clickhouse.com/docs/operations/system-tables/user_processes,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/user_processes,matched,8c2f38c2abb68784,true,8c2f38c2abb68784,2026-05-13T13:16:51+00:00,false +/operations/system-tables/users,docs/operations/system-tables/users.md,core/reference/system-tables/users.mdx,https://clickhouse.com/docs/operations/system-tables/users,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/users,matched,221907cf57c6edf9,true,221907cf57c6edf9,2026-05-08T21:00:49+00:00,false +/operations/system-tables/view_refreshes,docs/operations/system-tables/view_refreshes.md,core/reference/system-tables/view_refreshes.mdx,https://clickhouse.com/docs/operations/system-tables/view_refreshes,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/view_refreshes,matched,b66716f71c70efe5,true,b66716f71c70efe5,2026-05-08T21:00:49+00:00,false +/operations/system-tables/warnings,docs/operations/system-tables/warnings.md,core/reference/system-tables/warnings.mdx,https://clickhouse.com/docs/operations/system-tables/warnings,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/warnings,matched,4ca12d45f778f2dd,true,4ca12d45f778f2dd,2026-05-08T21:00:49+00:00,false +/operations/system-tables/workloads,docs/operations/system-tables/workloads.md,core/reference/system-tables/workloads.mdx,https://clickhouse.com/docs/operations/system-tables/workloads,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/workloads,matched,53709c958ad3629b,true,53709c958ad3629b,2026-05-08T21:00:49+00:00,false +/operations/system-tables/zeros,docs/operations/system-tables/zeros.md,core/reference/system-tables/zeros.mdx,https://clickhouse.com/docs/operations/system-tables/zeros,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/zeros,matched,c97ffc28ac196b6f,true,c97ffc28ac196b6f,2026-05-08T21:00:50+00:00,false +/operations/system-tables/zeros_mt,docs/operations/system-tables/zeros_mt.md,core/reference/system-tables/zeros_mt.mdx,https://clickhouse.com/docs/operations/system-tables/zeros_mt,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/zeros_mt,matched,f709df8aa2bea480,true,f709df8aa2bea480,2026-05-08T21:00:50+00:00,false +/operations/system-tables/zookeeper,docs/operations/system-tables/zookeeper.md,core/reference/system-tables/zookeeper.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/zookeeper,matched,8450f27e685917ef,true,8450f27e685917ef,2026-05-08T21:00:50+00:00,false +/operations/system-tables/zookeeper_connection,docs/operations/system-tables/zookeeper_connection.md,core/reference/system-tables/zookeeper_connection.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper_connection,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/zookeeper_connection,matched,b9e9457ffdd3c09e,true,b9e9457ffdd3c09e,2026-05-08T21:00:50+00:00,false +/operations/system-tables/zookeeper_connection_log,docs/operations/system-tables/zookeeper_connection_log.md,core/reference/system-tables/zookeeper_connection_log.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper_connection_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/zookeeper_connection_log,matched,bdab459af8810550,true,bdab459af8810550,2026-05-13T13:16:51+00:00,false +/operations/system-tables/zookeeper_info,docs/operations/system-tables/zookeeper_info.md,core/reference/system-tables/zookeeper_info.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper_info,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/zookeeper_info,matched,71cb3c42bf1acccf,true,71cb3c42bf1acccf,2026-05-08T21:00:51+00:00,false +/operations/system-tables/zookeeper_log,docs/operations/system-tables/zookeeper_log.md,core/reference/system-tables/zookeeper_log.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper_log,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/zookeeper_log,matched,4c97301867745792,true,4c97301867745792,2026-05-19T11:08:53+00:00,false +/operations/system-tables/zookeeper_watches,docs/operations/system-tables/zookeeper_watches.md,core/reference/system-tables/zookeeper_watches.mdx,https://clickhouse.com/docs/operations/system-tables/zookeeper_watches,https://private-7c7dfe99.mintlify.app/core/reference/system-tables/zookeeper_watches,matched,55bceb25398b0ba4,true,55bceb25398b0ba4,2026-05-07T14:49:41+00:00,false +/operations/tips,docs/operations/tips.md,core/guides/oss/best-practices/tips.mdx,https://clickhouse.com/docs/operations/tips,https://private-7c7dfe99.mintlify.app/core/guides/oss/best-practices/tips,matched,5994e62267d818a6,true,5994e62267d818a6,2026-05-08T09:09:20+00:00,false +/operations/update,docs/operations/update.md,core/guides/oss/update.mdx,https://clickhouse.com/docs/operations/update,https://private-7c7dfe99.mintlify.app/core/guides/oss/update,matched,3ad40142a5980106,true,3ad40142a5980106,2026-05-08T09:09:20+00:00,false +/operations/userspace-page-cache,docs/operations/userspace-page-cache.md,core/concepts/features/performance/caches/userspace-page-cache.mdx,https://clickhouse.com/docs/operations/userspace-page-cache,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/caches/userspace-page-cache,matched,f8ca381cc071560d,true,ea6fc6dcc9635bc1,2026-05-08T09:09:20+00:00,false +/operations/utilities/,docs/operations/utilities/index.md,core/concepts/features/tools-and-utilities/index.mdx,https://clickhouse.com/docs/operations/utilities/,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/index,matched,139b82d21c5fea2d,true,139b82d21c5fea2d,2026-05-08T09:09:20+00:00,false +/operations/utilities/backupview,docs/operations/utilities/backupview.md,core/concepts/features/tools-and-utilities/backupview.mdx,https://clickhouse.com/docs/operations/utilities/backupview,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/backupview,matched,76f60a7add5869d9,true,76f60a7add5869d9,2026-05-19T11:08:53+00:00,false +/operations/utilities/clickhouse-benchmark,docs/operations/utilities/clickhouse-benchmark.md,core/concepts/features/tools-and-utilities/clickhouse-benchmark.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-benchmark,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/clickhouse-benchmark,matched,b64e050ba49bfc55,true,a600c7b329322e5b,2026-05-07T14:49:41+00:00,false +/operations/utilities/clickhouse-compressor,docs/operations/utilities/clickhouse-compressor.md,core/concepts/features/tools-and-utilities/clickhouse-compressor.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-compressor,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/clickhouse-compressor,matched,e1d20246377ea770,false,,,false +/operations/utilities/clickhouse-disks,docs/operations/utilities/clickhouse-disks.md,core/concepts/features/tools-and-utilities/clickhouse-disks.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-disks,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/clickhouse-disks,matched,5cda23056924a385,true,39a62a98184d3c05,2026-05-07T14:49:41+00:00,false +/operations/utilities/clickhouse-format,docs/operations/utilities/clickhouse-format.md,core/concepts/features/tools-and-utilities/clickhouse-format.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-format,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/clickhouse-format,matched,a84351289ccbef46,true,a84351289ccbef46,2026-05-19T11:08:53+00:00,false +/operations/utilities/clickhouse-keeper-client,docs/operations/utilities/clickhouse-keeper-client.md,core/concepts/features/tools-and-utilities/clickhouse-keeper-client.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-keeper-client,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/clickhouse-keeper-client,matched,dc02ae2c6ced91d3,true,a09632bedf043e16,2026-05-07T14:49:41+00:00,false +/operations/utilities/clickhouse-keeper-http-api,docs/operations/utilities/clickhouse-keeper-http-api.md,core/concepts/features/tools-and-utilities/clickhouse-keeper-http-api.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-keeper-http-api,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/clickhouse-keeper-http-api,matched,d6935497cb291c4b,true,149558e56598d90d,2026-05-07T14:49:41+00:00,false +/operations/utilities/clickhouse-local,docs/operations/utilities/clickhouse-local.md,core/concepts/features/tools-and-utilities/clickhouse-local.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-local,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/clickhouse-local,matched,ec740cea7203f856,true,ec740cea7203f856,2026-05-19T11:08:53+00:00,false +/operations/utilities/clickhouse-obfuscator,docs/operations/utilities/clickhouse-obfuscator.md,core/concepts/features/tools-and-utilities/clickhouse-obfuscator.mdx,https://clickhouse.com/docs/operations/utilities/clickhouse-obfuscator,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/clickhouse-obfuscator,matched,a1465aea8fd40bd2,false,,,false +/operations/utilities/odbc-bridge,docs/operations/utilities/odbc-bridge.md,core/concepts/features/tools-and-utilities/odbc-bridge.mdx,https://clickhouse.com/docs/operations/utilities/odbc-bridge,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/odbc-bridge,matched,85d971b7567c96e5,false,,,false +/operations/utilities/static-files-disk-uploader,docs/tools-and-utilities/static-files-disk-uploader.md,core/concepts/features/tools-and-utilities/static-files-disk-uploader.mdx,https://clickhouse.com/docs/operations/utilities/static-files-disk-uploader,https://private-7c7dfe99.mintlify.app/core/concepts/features/tools-and-utilities/static-files-disk-uploader,matched,419f3e9045c39dd2,true,74f0f1b06ffe8edd,2026-05-07T14:49:41+00:00,false +/operations/workload-scheduling,docs/operations/workload-scheduling.md,core/concepts/features/configuration/server-config/workload-scheduling.mdx,https://clickhouse.com/docs/operations/workload-scheduling,https://private-7c7dfe99.mintlify.app/core/concepts/features/configuration/server-config/workload-scheduling,matched,8032e74c1af9f4e6,true,8032e74c1af9f4e6,2026-05-08T09:09:20+00:00,false +/optimize/asynchronous-inserts,docs/guides/best-practices/asyncinserts.md,core/concepts/features/operations/insert/asyncinserts.mdx,https://clickhouse.com/docs/optimize/asynchronous-inserts,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/insert/asyncinserts,matched,090826f9f6e052fc,true,090826f9f6e052fc,2026-05-08T09:09:20+00:00,false /optimize/avoid-mutations,docs/guides/best-practices/avoidmutations.md,,https://clickhouse.com/docs/optimize/avoid-mutations,,unmatched,d6bdbbc76771255f,false,,,false -/optimize/avoid-nullable-columns,docs/guides/best-practices/avoidnullablecolumns.md,concepts/best-practices/avoidnullablecolumns.mdx,https://clickhouse.com/docs/optimize/avoid-nullable-columns,https://private-7c7dfe99.mintlify.app/concepts/best-practices/avoidnullablecolumns,matched,ebe75f7a8b4095db,true,ebe75f7a8b4095db,2026-05-08T09:09:20+00:00,false +/optimize/avoid-nullable-columns,docs/guides/best-practices/avoidnullablecolumns.md,core/concepts/best-practices/avoidnullablecolumns.mdx,https://clickhouse.com/docs/optimize/avoid-nullable-columns,https://private-7c7dfe99.mintlify.app/core/concepts/best-practices/avoidnullablecolumns,matched,ebe75f7a8b4095db,true,ebe75f7a8b4095db,2026-05-08T09:09:20+00:00,false /optimize/avoidoptimizefinal,docs/guides/best-practices/avoidoptimizefinal.md,,https://clickhouse.com/docs/optimize/avoidoptimizefinal,,unmatched,e4c6027417950512,false,,,false -/optimize/bulk-inserts,docs/guides/best-practices/bulkinserts.md,concepts/operations/insert/bulkinserts.mdx,https://clickhouse.com/docs/optimize/bulk-inserts,https://private-7c7dfe99.mintlify.app/concepts/operations/insert/bulkinserts,matched,c3a2fac6bf16acda,true,c3a2fac6bf16acda,2026-05-08T09:09:20+00:00,false -/optimize/lazy-materialization,docs/guides/lazy-materialization.mdx,concepts/features/performance/lazy-materialization.mdx,https://clickhouse.com/docs/optimize/lazy-materialization,https://private-7c7dfe99.mintlify.app/concepts/features/performance/lazy-materialization,matched,3179c84b30d5c3f0,true,3179c84b30d5c3f0,2026-05-13T15:43:25+00:00,false +/optimize/bulk-inserts,docs/guides/best-practices/bulkinserts.md,core/concepts/features/operations/insert/bulkinserts.mdx,https://clickhouse.com/docs/optimize/bulk-inserts,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/insert/bulkinserts,matched,c3a2fac6bf16acda,true,c3a2fac6bf16acda,2026-05-08T09:09:20+00:00,false +/optimize/lazy-materialization,docs/guides/lazy-materialization.mdx,core/concepts/features/performance/lazy-materialization.mdx,https://clickhouse.com/docs/optimize/lazy-materialization,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/lazy-materialization,matched,3179c84b30d5c3f0,true,3179c84b30d5c3f0,2026-05-13T15:43:25+00:00,false /optimize/partitioning-key,docs/guides/best-practices/partitioningkey.md,,https://clickhouse.com/docs/optimize/partitioning-key,,unmatched,34465b4971d3c1d3,false,,,false -/optimize/prewhere,docs/guides/best-practices/prewhere.md,concepts/features/performance/prewhere.mdx,https://clickhouse.com/docs/optimize/prewhere,https://private-7c7dfe99.mintlify.app/concepts/features/performance/prewhere,matched,2336e34b998efec4,true,2336e34b998efec4,2026-05-08T09:09:20+00:00,false -/optimize/query-optimization,docs/guides/best-practices/query-optimization.md,guides/cloud-oss/performance-and-monitoring/query-optimization.mdx,https://clickhouse.com/docs/optimize/query-optimization,https://private-7c7dfe99.mintlify.app/guides/cloud-oss/performance-and-monitoring/query-optimization,matched,eb97d0e4804d4a57,true,eb97d0e4804d4a57,2026-05-09T10:06:27+00:00,false -/optimize/query-parallelism,docs/guides/best-practices/query-parallelism.md,concepts/core-concepts/query-parallelism.mdx,https://clickhouse.com/docs/optimize/query-parallelism,https://private-7c7dfe99.mintlify.app/concepts/core-concepts/query-parallelism,matched,4b49846b352f28ab,true,4b49846b352f28ab,2026-05-08T12:19:52+00:00,false -/optimize/skipping-indexes,docs/guides/best-practices/skipping-indexes.md,concepts/features/performance/skip-indexes/skipping-indexes.mdx,https://clickhouse.com/docs/optimize/skipping-indexes,https://private-7c7dfe99.mintlify.app/concepts/features/performance/skip-indexes/skipping-indexes,matched,a0765ef7def30754,true,a0765ef7def30754,2026-05-08T20:59:47+00:00,false -/optimize/skipping-indexes/examples,docs/guides/best-practices/skipping-indexes-examples.md,concepts/features/performance/skip-indexes/skipping-indexes-examples.mdx,https://clickhouse.com/docs/optimize/skipping-indexes/examples,https://private-7c7dfe99.mintlify.app/concepts/features/performance/skip-indexes/skipping-indexes-examples,matched,7a79053af7c17e5c,true,7a79053af7c17e5c,2026-05-13T13:16:51+00:00,false -/partitions,docs/managing-data/core-concepts/partitions.mdx,concepts/core-concepts/partitions.mdx,https://clickhouse.com/docs/partitions,https://private-7c7dfe99.mintlify.app/concepts/core-concepts/partitions,matched,705e5c138efe6555,true,705e5c138efe6555,2026-05-08T09:09:20+00:00,false -/parts,docs/managing-data/core-concepts/parts.md,concepts/core-concepts/parts.mdx,https://clickhouse.com/docs/parts,https://private-7c7dfe99.mintlify.app/concepts/core-concepts/parts,matched,2159d40884f408fa,true,2159d40884f408fa,2026-05-08T09:09:20+00:00,false -/primary-indexes,docs/managing-data/core-concepts/primary-indexes.mdx,concepts/core-concepts/primary-indexes.mdx,https://clickhouse.com/docs/primary-indexes,https://private-7c7dfe99.mintlify.app/concepts/core-concepts/primary-indexes,matched,72e33543511fe165,true,72e33543511fe165,2026-05-08T09:09:20+00:00,false -/security-and-authentication,docs/guides/sre/index.md,guides/security/index.mdx,https://clickhouse.com/docs/security-and-authentication,https://private-7c7dfe99.mintlify.app/guides/security,matched,765ed19ac411d1bf,true,765ed19ac411d1bf,2026-05-08T09:09:20+00:00,false -/shards,docs/managing-data/core-concepts/shards.mdx,guides/oss/deployment-and-scaling/shards.mdx,https://clickhouse.com/docs/shards,https://private-7c7dfe99.mintlify.app/guides/oss/deployment-and-scaling/shards,matched,c09957405447bdec,true,c09957405447bdec,2026-05-19T11:48:22+00:00,false -/sql-reference,docs/sql-reference/index.md,reference/home.mdx,https://clickhouse.com/docs/sql-reference,https://private-7c7dfe99.mintlify.app/reference/home,matched,1aafbee1019940fc,true,1aafbee1019940fc,2026-05-09T14:57:56+00:00,false -/sql-reference/aggregate-functions/,docs/sql-reference/aggregate-functions/index.md,reference/functions/aggregate-functions/index.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions,matched,df7ce95c5f1c1b12,true,df7ce95c5f1c1b12,2026-05-19T11:08:53+00:00,false -/sql-reference/aggregate-functions/combinators,docs/sql-reference/aggregate-functions/combinators.md,reference/functions/aggregate-functions/combinators.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/combinators,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/combinators,matched,378575d2d4484704,true,378575d2d4484704,2026-05-19T11:08:53+00:00,false -/sql-reference/aggregate-functions/grouping_function,docs/sql-reference/aggregate-functions/grouping_function.md,reference/functions/aggregate-functions/grouping_function.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/grouping_function,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/grouping_function,matched,762a3b737dc65489,true,4ae0bd2c9234eb6b,2026-05-08T09:09:20+00:00,false -/sql-reference/aggregate-functions/parametric-functions,docs/sql-reference/aggregate-functions/parametric-functions.md,reference/functions/aggregate-functions/parametric-functions.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/parametric-functions,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/parametric-functions,matched,5a0e0da43f9b2ee6,true,5a0e0da43f9b2ee6,2026-05-19T11:08:53+00:00,false -/sql-reference/aggregate-functions/reference/,docs/sql-reference/aggregate-functions/reference/index.md,reference/functions/aggregate-functions/reference/index.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference,matched,f6e3dff3f3ba3633,true,f6e3dff3f3ba3633,2026-05-19T11:08:53+00:00,false -/sql-reference/aggregate-functions/reference/aggthrow,docs/sql-reference/aggregate-functions/reference/aggThrow.md,reference/functions/aggregate-functions/reference/aggThrow.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/aggthrow,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/aggThrow,matched,6ba276ab5cfbe4d3,true,6ba276ab5cfbe4d3,2026-05-08T20:59:52+00:00,false -/sql-reference/aggregate-functions/reference/analysis_of_variance,docs/sql-reference/aggregate-functions/reference/analysisOfVariance.md,reference/functions/aggregate-functions/reference/analysis_of_variance.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/analysis_of_variance,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/analysis_of_variance,matched,398aae7e93baf0b0,true,398aae7e93baf0b0,2026-05-08T20:59:52+00:00,false -/sql-reference/aggregate-functions/reference/any,docs/sql-reference/aggregate-functions/reference/any.md,reference/functions/aggregate-functions/reference/any.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/any,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/any,matched,a3176632042c5129,true,a3176632042c5129,2026-05-08T20:59:52+00:00,false -/sql-reference/aggregate-functions/reference/anyheavy,docs/sql-reference/aggregate-functions/reference/anyHeavy.md,reference/functions/aggregate-functions/reference/anyHeavy.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/anyheavy,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/anyHeavy,matched,a21ee7b1ac3b959c,true,a21ee7b1ac3b959c,2026-05-08T20:59:52+00:00,false -/sql-reference/aggregate-functions/reference/anylast,docs/sql-reference/aggregate-functions/reference/anyLast.md,reference/functions/aggregate-functions/reference/anyLast.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/anylast,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/anyLast,matched,b7d60158c0d2b54a,true,b7d60158c0d2b54a,2026-05-08T20:59:52+00:00,false -/sql-reference/aggregate-functions/reference/approxtopk,docs/sql-reference/aggregate-functions/reference/approx_top_k.md,reference/functions/aggregate-functions/reference/approxtopk.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/approxtopk,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/approxtopk,matched,e759b1fe48e70697,true,e759b1fe48e70697,2026-05-08T20:59:53+00:00,false -/sql-reference/aggregate-functions/reference/approxtopsum,docs/sql-reference/aggregate-functions/reference/approx_top_sum.md,reference/functions/aggregate-functions/reference/approxtopsum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/approxtopsum,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/approxtopsum,matched,dd0d07b84d9d533f,true,dd0d07b84d9d533f,2026-05-08T20:59:53+00:00,false -/sql-reference/aggregate-functions/reference/argandmax,docs/sql-reference/aggregate-functions/reference/argAndMax.md,reference/functions/aggregate-functions/reference/argAndMax.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/argandmax,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/argAndMax,matched,4a0b65b563ac6374,true,4a0b65b563ac6374,2026-05-09T10:03:34+00:00,false -/sql-reference/aggregate-functions/reference/argandmin,docs/sql-reference/aggregate-functions/reference/argAndMin.md,reference/functions/aggregate-functions/reference/argAndMin.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/argandmin,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/argAndMin,matched,0cb02e2dc7a0ac01,true,0cb02e2dc7a0ac01,2026-05-09T10:03:34+00:00,false -/sql-reference/aggregate-functions/reference/argmax,docs/sql-reference/aggregate-functions/reference/argMax.md,reference/functions/aggregate-functions/reference/argMax.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/argmax,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/argMax,matched,1bb7830c175f6110,true,1bb7830c175f6110,2026-05-08T20:59:53+00:00,false -/sql-reference/aggregate-functions/reference/argmin,docs/sql-reference/aggregate-functions/reference/argMin.md,reference/functions/aggregate-functions/reference/argMin.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/argmin,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/argMin,matched,2323b12ec894a16b,true,2323b12ec894a16b,2026-05-08T20:59:54+00:00,false -/sql-reference/aggregate-functions/reference/avg,docs/sql-reference/aggregate-functions/reference/avg.md,reference/functions/aggregate-functions/reference/avg.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/avg,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/avg,matched,d9d595a6a1a18d45,true,d9d595a6a1a18d45,2026-05-08T20:59:54+00:00,false -/sql-reference/aggregate-functions/reference/avgweighted,docs/sql-reference/aggregate-functions/reference/avgWeighted.md,reference/functions/aggregate-functions/reference/avgWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/avgweighted,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/avgWeighted,matched,e383814143b85e4d,true,e383814143b85e4d,2026-05-08T20:59:54+00:00,false -/sql-reference/aggregate-functions/reference/boundingRatio,docs/sql-reference/aggregate-functions/reference/boundingRatio.md,reference/functions/aggregate-functions/reference/boundrat.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/boundingRatio,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/boundrat,matched,698529c1c233004e,true,698529c1c233004e,2026-05-08T20:59:54+00:00,false -/sql-reference/aggregate-functions/reference/categoricalinformationvalue,docs/sql-reference/aggregate-functions/reference/categoricalInformationValue.md,reference/functions/aggregate-functions/reference/categoricalInformationValue.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/categoricalinformationvalue,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/categoricalInformationValue,matched,8e2f2cade587700c,true,8e2f2cade587700c,2026-05-08T20:59:54+00:00,false -/sql-reference/aggregate-functions/reference/contingency,docs/sql-reference/aggregate-functions/reference/contingency.md,reference/functions/aggregate-functions/reference/contingency.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/contingency,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/contingency,matched,76fe747ef9e3df7f,true,76fe747ef9e3df7f,2026-05-08T20:59:54+00:00,false -/sql-reference/aggregate-functions/reference/corr,docs/sql-reference/aggregate-functions/reference/corr.md,reference/functions/aggregate-functions/reference/corr.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/corr,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/corr,matched,c8693c629f190e01,true,c8693c629f190e01,2026-05-09T09:39:38+00:00,false -/sql-reference/aggregate-functions/reference/corrmatrix,docs/sql-reference/aggregate-functions/reference/corrMatrix.md,reference/functions/aggregate-functions/reference/corrMatrix.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/corrmatrix,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/corrMatrix,matched,5ccf3ca405085bfb,true,5ccf3ca405085bfb,2026-05-08T20:59:55+00:00,false -/sql-reference/aggregate-functions/reference/corrstable,docs/sql-reference/aggregate-functions/reference/corrStable.md,reference/functions/aggregate-functions/reference/corrStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/corrstable,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/corrStable,matched,a67a928a769a9165,true,a67a928a769a9165,2026-05-08T20:59:55+00:00,false -/sql-reference/aggregate-functions/reference/count,docs/sql-reference/aggregate-functions/reference/count.md,reference/functions/aggregate-functions/reference/count.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/count,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/count,matched,b2ef50a73b4e4418,true,b2ef50a73b4e4418,2026-05-08T20:59:55+00:00,false -/sql-reference/aggregate-functions/reference/covarpop,docs/sql-reference/aggregate-functions/reference/covarPop.md,reference/functions/aggregate-functions/reference/covarPop.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarpop,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/covarPop,matched,cfd2dc76064c59d6,true,cfd2dc76064c59d6,2026-05-09T09:39:38+00:00,false -/sql-reference/aggregate-functions/reference/covarpopmatrix,docs/sql-reference/aggregate-functions/reference/covarPopMatrix.md,reference/functions/aggregate-functions/reference/covarPopMatrix.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarpopmatrix,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/covarPopMatrix,matched,d338a39820758b31,true,d338a39820758b31,2026-05-08T20:59:55+00:00,false -/sql-reference/aggregate-functions/reference/covarpopstable,docs/sql-reference/aggregate-functions/reference/covarPopStable.md,reference/functions/aggregate-functions/reference/covarPopStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarpopstable,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/covarPopStable,matched,5c31fcdb71165467,true,5c31fcdb71165467,2026-05-08T20:59:56+00:00,false -/sql-reference/aggregate-functions/reference/covarsamp,docs/sql-reference/aggregate-functions/reference/covarSamp.md,reference/functions/aggregate-functions/reference/covarSamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarsamp,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/covarSamp,matched,fcce329920930fbd,true,fcce329920930fbd,2026-05-08T20:59:56+00:00,false -/sql-reference/aggregate-functions/reference/covarsampmatrix,docs/sql-reference/aggregate-functions/reference/covarSampMatrix.md,reference/functions/aggregate-functions/reference/covarSampMatrix.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarsampmatrix,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/covarSampMatrix,matched,624cd9deedc19d98,true,624cd9deedc19d98,2026-05-08T20:59:56+00:00,false -/sql-reference/aggregate-functions/reference/covarsampstable,docs/sql-reference/aggregate-functions/reference/covarSampStable.md,reference/functions/aggregate-functions/reference/covarSampStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarsampstable,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/covarSampStable,matched,fce0840da6fb476b,true,fce0840da6fb476b,2026-05-08T20:59:56+00:00,false -/sql-reference/aggregate-functions/reference/cramersv,docs/sql-reference/aggregate-functions/reference/cramersV.md,reference/functions/aggregate-functions/reference/cramersV.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/cramersv,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/cramersV,matched,652aacd423f4e473,true,652aacd423f4e473,2026-05-08T20:59:56+00:00,false -/sql-reference/aggregate-functions/reference/cramersvbiascorrected,docs/sql-reference/aggregate-functions/reference/cramersVBiasCorrected.md,reference/functions/aggregate-functions/reference/cramersVBiasCorrected.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/cramersvbiascorrected,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/cramersVBiasCorrected,matched,d42c0e3dc3e9b596,true,d42c0e3dc3e9b596,2026-05-08T20:59:56+00:00,false -/sql-reference/aggregate-functions/reference/deltasum,docs/sql-reference/aggregate-functions/reference/deltaSum.md,reference/functions/aggregate-functions/reference/deltaSum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/deltasum,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/deltaSum,matched,73e5fae7d5e1cf9c,true,73e5fae7d5e1cf9c,2026-05-08T20:59:57+00:00,false -/sql-reference/aggregate-functions/reference/deltasumtimestamp,docs/sql-reference/aggregate-functions/reference/deltaSumTimestamp.md,reference/functions/aggregate-functions/reference/deltaSumTimestamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/deltasumtimestamp,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/deltaSumTimestamp,matched,ebec021fbb72405d,true,ebec021fbb72405d,2026-05-08T20:59:57+00:00,false -/sql-reference/aggregate-functions/reference/distinctJSONPathsAndTypes,docs/sql-reference/aggregate-functions/reference/distinctJSONPathsAndTypes.md,reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/distinctJSONPathsAndTypes,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes,matched,35a8ceaed4a39ddb,true,35a8ceaed4a39ddb,2026-05-08T20:59:57+00:00,false -/sql-reference/aggregate-functions/reference/distinctdynamictypes,docs/sql-reference/aggregate-functions/reference/distinctDynamicTypes.md,reference/functions/aggregate-functions/reference/distinctDynamicTypes.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/distinctdynamictypes,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/distinctDynamicTypes,matched,b350efeb3af95f80,true,b350efeb3af95f80,2026-05-08T20:59:57+00:00,false -/sql-reference/aggregate-functions/reference/distinctjsonpaths,docs/sql-reference/aggregate-functions/reference/distinctJSONPaths.md,reference/functions/aggregate-functions/reference/distinctJSONPaths.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/distinctjsonpaths,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/distinctJSONPaths,matched,2fdae4509a21feab,true,2fdae4509a21feab,2026-05-08T20:59:57+00:00,false -/sql-reference/aggregate-functions/reference/entropy,docs/sql-reference/aggregate-functions/reference/entropy.md,reference/functions/aggregate-functions/reference/entropy.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/entropy,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/entropy,matched,ed58fc9337c3b0ad,true,ed58fc9337c3b0ad,2026-05-08T20:59:57+00:00,false -/sql-reference/aggregate-functions/reference/estimateCompressionRatio,docs/sql-reference/aggregate-functions/reference/estimateCompressionRatio.md,reference/functions/aggregate-functions/reference/estimateCompressionRatio.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/estimateCompressionRatio,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/estimateCompressionRatio,matched,dfd4fd08c59b8f2c,true,dfd4fd08c59b8f2c,2026-05-08T20:59:58+00:00,false -/sql-reference/aggregate-functions/reference/exponentialMovingAverage,docs/sql-reference/aggregate-functions/reference/exponentialMovingAverage.md,reference/functions/aggregate-functions/reference/exponentialMovingAverage.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/exponentialMovingAverage,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/exponentialMovingAverage,matched,29a32c3dfbe7431c,true,29a32c3dfbe7431c,2026-05-08T20:59:58+00:00,false -/sql-reference/aggregate-functions/reference/exponentialTimeDecayedAvg,docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedAvg.md,reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedAvg,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg,matched,990377788926a74e,true,990377788926a74e,2026-05-08T20:59:58+00:00,false -/sql-reference/aggregate-functions/reference/exponentialTimeDecayedCount,docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedCount.md,reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedCount,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount,matched,fbadbbdc7fe13930,true,fbadbbdc7fe13930,2026-05-08T20:59:58+00:00,false -/sql-reference/aggregate-functions/reference/exponentialTimeDecayedMax,docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedMax.md,reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedMax,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax,matched,5adb749a9d666932,true,5adb749a9d666932,2026-05-08T20:59:58+00:00,false -/sql-reference/aggregate-functions/reference/exponentialTimeDecayedSum,docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedSum.md,reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedSum,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum,matched,e9a76eae13bb7219,true,e9a76eae13bb7219,2026-05-08T20:59:58+00:00,false -/sql-reference/aggregate-functions/reference/first_value,docs/sql-reference/aggregate-functions/reference/first_value.md,reference/functions/aggregate-functions/reference/first_value.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/first_value,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/first_value,matched,5df182c6b8526daa,true,4221d7097f28b112,2026-05-09T09:39:38+00:00,false -/sql-reference/aggregate-functions/reference/flame_graph,docs/sql-reference/aggregate-functions/reference/flameGraph.md,reference/functions/aggregate-functions/reference/flame_graph.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/flame_graph,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/flame_graph,matched,7c582ef0059274e3,true,7c582ef0059274e3,2026-05-19T11:08:53+00:00,false -/sql-reference/aggregate-functions/reference/grouparray,docs/sql-reference/aggregate-functions/reference/groupArray.md,reference/functions/aggregate-functions/reference/groupArray.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparray,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupArray,matched,494298de736b875e,true,494298de736b875e,2026-05-08T20:59:59+00:00,false -/sql-reference/aggregate-functions/reference/grouparrayarray,docs/sql-reference/aggregate-functions/reference/groupArrayArray.md,reference/functions/aggregate-functions/reference/groupArrayArray.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparrayarray,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupArrayArray,matched,30aaf8f2841c94b9,true,3a1d95bba36015c5,2026-05-07T14:49:41+00:00,false -/sql-reference/aggregate-functions/reference/grouparrayinsertat,docs/sql-reference/aggregate-functions/reference/groupArrayInsertAt.md,reference/functions/aggregate-functions/reference/groupArrayInsertAt.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparrayinsertat,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupArrayInsertAt,matched,5200d13fb0ecbec5,true,5200d13fb0ecbec5,2026-05-08T20:59:59+00:00,false -/sql-reference/aggregate-functions/reference/grouparrayintersect,docs/sql-reference/aggregate-functions/reference/groupArrayIntersect.md,reference/functions/aggregate-functions/reference/groupArrayIntersect.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparrayintersect,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupArrayIntersect,matched,73542684e7ae142e,true,73542684e7ae142e,2026-05-08T20:59:59+00:00,false -/sql-reference/aggregate-functions/reference/grouparraylast,docs/sql-reference/aggregate-functions/reference/groupArrayLast.md,reference/functions/aggregate-functions/reference/groupArrayLast.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparraylast,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupArrayLast,matched,72f024a3d7e462f9,true,72f024a3d7e462f9,2026-05-08T20:59:59+00:00,false -/sql-reference/aggregate-functions/reference/grouparraymovingavg,docs/sql-reference/aggregate-functions/reference/groupArrayMovingAvg.md,reference/functions/aggregate-functions/reference/groupArrayMovingAvg.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparraymovingavg,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupArrayMovingAvg,matched,1b782bf5bd48245c,true,1b782bf5bd48245c,2026-05-08T20:59:59+00:00,false -/sql-reference/aggregate-functions/reference/grouparraymovingsum,docs/sql-reference/aggregate-functions/reference/groupArrayMovingSum.md,reference/functions/aggregate-functions/reference/groupArrayMovingSum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparraymovingsum,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupArrayMovingSum,matched,3c19fe86868926c9,true,3c19fe86868926c9,2026-05-08T21:00:00+00:00,false -/sql-reference/aggregate-functions/reference/grouparraysample,docs/sql-reference/aggregate-functions/reference/groupArraySample.md,reference/functions/aggregate-functions/reference/groupArraySample.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparraysample,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupArraySample,matched,2bf4ef5f0bef08cd,true,2bf4ef5f0bef08cd,2026-05-08T21:00:00+00:00,false -/sql-reference/aggregate-functions/reference/grouparraysorted,docs/sql-reference/aggregate-functions/reference/groupArraySorted.md,reference/functions/aggregate-functions/reference/groupArraySorted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparraysorted,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupArraySorted,matched,36d5fb7771b569b5,true,36d5fb7771b569b5,2026-05-08T21:00:00+00:00,false -/sql-reference/aggregate-functions/reference/groupbitand,docs/sql-reference/aggregate-functions/reference/groupBitAnd.md,reference/functions/aggregate-functions/reference/groupBitAnd.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitand,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupBitAnd,matched,4b2443b2330e1677,true,4b2443b2330e1677,2026-05-08T21:00:00+00:00,false -/sql-reference/aggregate-functions/reference/groupbitmap,docs/sql-reference/aggregate-functions/reference/groupBitmap.md,reference/functions/aggregate-functions/reference/groupBitmap.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitmap,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupBitmap,matched,c90dbfa2b1c8ef6c,true,c90dbfa2b1c8ef6c,2026-05-08T21:00:01+00:00,false -/sql-reference/aggregate-functions/reference/groupbitmapand,docs/sql-reference/aggregate-functions/reference/groupBitmapAnd.md,reference/functions/aggregate-functions/reference/groupBitmapAnd.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitmapand,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupBitmapAnd,matched,df6c684bf932f088,true,df6c684bf932f088,2026-05-08T21:00:01+00:00,false -/sql-reference/aggregate-functions/reference/groupbitmapor,docs/sql-reference/aggregate-functions/reference/groupBitmapOr.md,reference/functions/aggregate-functions/reference/groupBitmapOr.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitmapor,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupBitmapOr,matched,0eaec4ec9af6dde2,true,0eaec4ec9af6dde2,2026-05-08T21:00:01+00:00,false -/sql-reference/aggregate-functions/reference/groupbitmapxor,docs/sql-reference/aggregate-functions/reference/groupBitmapXor.md,reference/functions/aggregate-functions/reference/groupBitmapXor.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitmapxor,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupBitmapXor,matched,1e730d1721dd63a6,true,1e730d1721dd63a6,2026-05-08T21:00:01+00:00,false -/sql-reference/aggregate-functions/reference/groupbitor,docs/sql-reference/aggregate-functions/reference/groupBitOr.md,reference/functions/aggregate-functions/reference/groupBitOr.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitor,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupBitOr,matched,b0b38466e6e43952,true,b0b38466e6e43952,2026-05-08T21:00:00+00:00,false -/sql-reference/aggregate-functions/reference/groupbitxor,docs/sql-reference/aggregate-functions/reference/groupBitXor.md,reference/functions/aggregate-functions/reference/groupBitXor.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitxor,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupBitXor,matched,6f9cf66e8d91ee27,true,6f9cf66e8d91ee27,2026-05-08T21:00:00+00:00,false -/sql-reference/aggregate-functions/reference/groupconcat,docs/sql-reference/aggregate-functions/reference/groupConcat.md,reference/functions/aggregate-functions/reference/groupConcat.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupconcat,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupConcat,matched,aef59c59999cb93f,true,aef59c59999cb93f,2026-05-08T21:00:01+00:00,false -/sql-reference/aggregate-functions/reference/groupuniqarray,docs/sql-reference/aggregate-functions/reference/groupUniqArray.md,reference/functions/aggregate-functions/reference/groupUniqArray.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupuniqarray,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/groupUniqArray,matched,4f1528557c879670,true,4f1528557c879670,2026-05-08T21:00:01+00:00,false -/sql-reference/aggregate-functions/reference/intervalLengthSum,docs/sql-reference/aggregate-functions/reference/intervalLengthSum.md,reference/functions/aggregate-functions/reference/intervalLengthSum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/intervalLengthSum,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/intervalLengthSum,matched,c362c634343f806c,true,c362c634343f806c,2026-05-08T21:00:02+00:00,false -/sql-reference/aggregate-functions/reference/kolmogorovsmirnovtest,docs/sql-reference/aggregate-functions/reference/kolmogorovSmirnovTest.md,reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/kolmogorovsmirnovtest,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest,matched,27687d12b6f1c455,true,27687d12b6f1c455,2026-05-08T21:00:02+00:00,false -/sql-reference/aggregate-functions/reference/kurtpop,docs/sql-reference/aggregate-functions/reference/kurtPop.md,reference/functions/aggregate-functions/reference/kurtPop.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/kurtpop,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/kurtPop,matched,33b95ba74805d730,true,33b95ba74805d730,2026-05-08T21:00:02+00:00,false -/sql-reference/aggregate-functions/reference/kurtsamp,docs/sql-reference/aggregate-functions/reference/kurtSamp.md,reference/functions/aggregate-functions/reference/kurtSamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/kurtsamp,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/kurtSamp,matched,16d5e9fb741c9428,true,16d5e9fb741c9428,2026-05-08T21:00:02+00:00,false -/sql-reference/aggregate-functions/reference/largestTriangleThreeBuckets,docs/sql-reference/aggregate-functions/reference/largestTriangleThreeBuckets.md,reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/largestTriangleThreeBuckets,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets,matched,faacd7ce22cd604f,true,faacd7ce22cd604f,2026-05-08T21:00:02+00:00,false -/sql-reference/aggregate-functions/reference/last_value,docs/sql-reference/aggregate-functions/reference/last_value.md,reference/functions/aggregate-functions/reference/last_value.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/last_value,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/last_value,matched,f56dfaab318ae549,true,0b3c34b1376a8b6a,2026-05-09T09:39:38+00:00,false -/sql-reference/aggregate-functions/reference/mannwhitneyutest,docs/sql-reference/aggregate-functions/reference/mannWhitneyUTest.md,reference/functions/aggregate-functions/reference/mannWhitneyUTest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/mannwhitneyutest,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/mannWhitneyUTest,matched,4367510976c76b40,true,4367510976c76b40,2026-05-08T21:00:03+00:00,false -/sql-reference/aggregate-functions/reference/max,docs/sql-reference/aggregate-functions/reference/max.md,reference/functions/aggregate-functions/reference/max.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/max,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/max,matched,b0cbff46a8a26271,true,b0cbff46a8a26271,2026-05-08T21:00:03+00:00,false -/sql-reference/aggregate-functions/reference/maxintersections,docs/sql-reference/aggregate-functions/reference/maxIntersections.md,reference/functions/aggregate-functions/reference/maxIntersections.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/maxintersections,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/maxIntersections,matched,1db6c9bf885f905c,true,1db6c9bf885f905c,2026-05-08T21:00:03+00:00,false -/sql-reference/aggregate-functions/reference/maxintersectionsposition,docs/sql-reference/aggregate-functions/reference/maxIntersectionsPosition.md,reference/functions/aggregate-functions/reference/maxIntersectionsPosition.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/maxintersectionsposition,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/maxIntersectionsPosition,matched,2f7f75d00642024e,true,2f7f75d00642024e,2026-05-08T21:00:03+00:00,false -/sql-reference/aggregate-functions/reference/maxmap,docs/sql-reference/aggregate-functions/reference/maxMappedArrays.md,reference/functions/aggregate-functions/reference/maxMap.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/maxmap,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/maxMap,matched,f0fe439c1f7370f3,true,f0fe439c1f7370f3,2026-05-13T13:16:51+00:00,false -/sql-reference/aggregate-functions/reference/meanztest,docs/sql-reference/aggregate-functions/reference/meanZTest.md,reference/functions/aggregate-functions/reference/meanZTest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/meanztest,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/meanZTest,matched,51be0a7689b2a9f9,true,51be0a7689b2a9f9,2026-05-08T21:00:03+00:00,false -/sql-reference/aggregate-functions/reference/median,docs/sql-reference/aggregate-functions/reference/median.md,reference/functions/aggregate-functions/reference/median.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/median,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/median,matched,ad5f042fbebec65e,true,ad5f042fbebec65e,2026-05-19T11:08:53+00:00,false -/sql-reference/aggregate-functions/reference/min,docs/sql-reference/aggregate-functions/reference/min.md,reference/functions/aggregate-functions/reference/min.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/min,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/min,matched,b84822a35e335c8a,true,b84822a35e335c8a,2026-05-08T21:00:04+00:00,false -/sql-reference/aggregate-functions/reference/minmap,docs/sql-reference/aggregate-functions/reference/minMappedArrays.md,reference/functions/aggregate-functions/reference/minMap.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/minmap,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/minMap,matched,e3a1e1ace77e38b6,true,e3a1e1ace77e38b6,2026-05-08T21:00:04+00:00,false -/sql-reference/aggregate-functions/reference/quantile,docs/sql-reference/aggregate-functions/reference/quantile.md,reference/functions/aggregate-functions/reference/quantile.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantile,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantile,matched,4ba18890167b40fd,true,4ba18890167b40fd,2026-05-09T09:39:38+00:00,false -/sql-reference/aggregate-functions/reference/quantileExactExclusive,docs/sql-reference/aggregate-functions/reference/quantileExactExclusive.md,reference/functions/aggregate-functions/reference/quantileExactExclusive.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileExactExclusive,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileExactExclusive,matched,ed2a0f781f64a5ae,true,ed2a0f781f64a5ae,2026-05-08T21:00:05+00:00,false -/sql-reference/aggregate-functions/reference/quantileExactHigh,docs/sql-reference/aggregate-functions/reference/quantileExactHigh.md,reference/functions/aggregate-functions/reference/quantileExactHigh.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileExactHigh,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileExactHigh,matched,4a48e8ed7359f12e,true,4a48e8ed7359f12e,2026-05-08T21:00:05+00:00,false -/sql-reference/aggregate-functions/reference/quantileExactInclusive,docs/sql-reference/aggregate-functions/reference/quantileExactInclusive.md,reference/functions/aggregate-functions/reference/quantileExactInclusive.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileExactInclusive,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileExactInclusive,matched,e650a118cfedfa52,true,e650a118cfedfa52,2026-05-08T21:00:05+00:00,false -/sql-reference/aggregate-functions/reference/quantileExactLow,docs/sql-reference/aggregate-functions/reference/quantileExactLow.md,reference/functions/aggregate-functions/reference/quantileExactLow.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileExactLow,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileExactLow,matched,e755c0c350683c45,true,e755c0c350683c45,2026-05-08T21:00:05+00:00,false -/sql-reference/aggregate-functions/reference/quantileExactWeightedInterpolated,docs/sql-reference/aggregate-functions/reference/quantileExactWeightedInterpolated.md,reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileExactWeightedInterpolated,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated,matched,599497aa7290178e,true,599497aa7290178e,2026-05-08T21:00:06+00:00,false -/sql-reference/aggregate-functions/reference/quantileGK,docs/sql-reference/aggregate-functions/reference/quantileGK.md,reference/functions/aggregate-functions/reference/quantileGK.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileGK,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileGK,matched,d2a54f56603dc2f3,true,d2a54f56603dc2f3,2026-05-08T21:00:06+00:00,false -/sql-reference/aggregate-functions/reference/quantileInterpolatedWeighted,docs/sql-reference/aggregate-functions/reference/quantileInterpolatedWeighted.md,reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileInterpolatedWeighted,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted,matched,e1ea7341c5f539b8,true,e1ea7341c5f539b8,2026-05-08T21:00:06+00:00,false -/sql-reference/aggregate-functions/reference/quantilePrometheusHistogram,docs/sql-reference/aggregate-functions/reference/quantilePrometheusHistogram.md,reference/functions/aggregate-functions/reference/quantilePrometheusHistogram.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilePrometheusHistogram,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantilePrometheusHistogram,matched,29ce947c5bccd54e,true,29ce947c5bccd54e,2026-05-08T21:00:06+00:00,false -/sql-reference/aggregate-functions/reference/quantilebfloat16,docs/sql-reference/aggregate-functions/reference/quantileBFloat16.md,reference/functions/aggregate-functions/reference/quantileBFloat16.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilebfloat16,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileBFloat16,matched,e02f8398a1e6c992,true,e02f8398a1e6c992,2026-05-08T21:00:04+00:00,false -/sql-reference/aggregate-functions/reference/quantileddsketch,docs/sql-reference/aggregate-functions/reference/quantileDD.md,reference/functions/aggregate-functions/reference/quantileddsketch.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileddsketch,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileddsketch,matched,b70b5911fe4dcdcd,true,b70b5911fe4dcdcd,2026-05-08T21:00:07+00:00,false -/sql-reference/aggregate-functions/reference/quantiledeterministic,docs/sql-reference/aggregate-functions/reference/quantileDeterministic.md,reference/functions/aggregate-functions/reference/quantileDeterministic.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiledeterministic,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileDeterministic,matched,6b577bef9f8aabe5,true,6b577bef9f8aabe5,2026-05-08T21:00:04+00:00,false -/sql-reference/aggregate-functions/reference/quantileexact,docs/sql-reference/aggregate-functions/reference/quantileExact.md,reference/functions/aggregate-functions/reference/quantileExact.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileexact,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileExact,matched,c06d0383b8fa44d6,true,c06d0383b8fa44d6,2026-05-08T21:00:04+00:00,false -/sql-reference/aggregate-functions/reference/quantileexactweighted,docs/sql-reference/aggregate-functions/reference/quantileExactWeighted.md,reference/functions/aggregate-functions/reference/quantileExactWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileexactweighted,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileExactWeighted,matched,55fe1cc2813d807d,true,55fe1cc2813d807d,2026-05-08T21:00:05+00:00,false -/sql-reference/aggregate-functions/reference/quantiles,docs/sql-reference/aggregate-functions/reference/quantiles.md,reference/functions/aggregate-functions/reference/quantiles.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiles,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantiles,matched,10a8a9fb55d3667e,true,10a8a9fb55d3667e,2026-05-08T21:00:07+00:00,false -/sql-reference/aggregate-functions/reference/quantilesExactExclusive,docs/sql-reference/aggregate-functions/reference/quantilesExactExclusive.md,reference/functions/aggregate-functions/reference/quantilesExactExclusive.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilesExactExclusive,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantilesExactExclusive,matched,d34559dee60fa650,true,d34559dee60fa650,2026-05-08T21:00:07+00:00,false -/sql-reference/aggregate-functions/reference/quantilesExactInclusive,docs/sql-reference/aggregate-functions/reference/quantilesExactInclusive.md,reference/functions/aggregate-functions/reference/quantilesExactInclusive.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilesExactInclusive,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantilesExactInclusive,matched,585098e46f9ed905,true,585098e46f9ed905,2026-05-08T21:00:07+00:00,false -/sql-reference/aggregate-functions/reference/quantilesGK,docs/sql-reference/aggregate-functions/reference/quantilesGK.md,reference/functions/aggregate-functions/reference/quantilesGK.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilesGK,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantilesGK,matched,94e0f130f7219917,true,94e0f130f7219917,2026-05-08T21:00:08+00:00,false -/sql-reference/aggregate-functions/reference/quantilestimingweighted,docs/sql-reference/aggregate-functions/reference/quantilesTimingWeighted.md,reference/functions/aggregate-functions/reference/quantilesTimingWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilestimingweighted,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantilesTimingWeighted,matched,62b3f7a28b018c37,true,62b3f7a28b018c37,2026-05-08T21:00:08+00:00,false -/sql-reference/aggregate-functions/reference/quantiletdigest,docs/sql-reference/aggregate-functions/reference/quantileTDigest.md,reference/functions/aggregate-functions/reference/quantileTDigest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiletdigest,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileTDigest,matched,1d7cc3bd0a254723,true,1d7cc3bd0a254723,2026-05-08T21:00:06+00:00,false -/sql-reference/aggregate-functions/reference/quantiletdigestweighted,docs/sql-reference/aggregate-functions/reference/quantileTDigestWeighted.md,reference/functions/aggregate-functions/reference/quantileTDigestWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiletdigestweighted,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileTDigestWeighted,matched,75265d258c6d0d1c,true,75265d258c6d0d1c,2026-05-08T21:00:06+00:00,false -/sql-reference/aggregate-functions/reference/quantiletiming,docs/sql-reference/aggregate-functions/reference/quantileTiming.md,reference/functions/aggregate-functions/reference/quantileTiming.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiletiming,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileTiming,matched,01a30e87131303d3,true,01a30e87131303d3,2026-05-08T21:00:07+00:00,false -/sql-reference/aggregate-functions/reference/quantiletimingweighted,docs/sql-reference/aggregate-functions/reference/quantileTimingWeighted.md,reference/functions/aggregate-functions/reference/quantileTimingWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiletimingweighted,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/quantileTimingWeighted,matched,6d110c327a873af2,true,6d110c327a873af2,2026-05-08T21:00:07+00:00,false -/sql-reference/aggregate-functions/reference/rankCorr,docs/sql-reference/aggregate-functions/reference/rankCorr.md,reference/functions/aggregate-functions/reference/rankCorr.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/rankCorr,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/rankCorr,matched,5eb236ef7745a0b9,true,5eb236ef7745a0b9,2026-05-08T21:00:08+00:00,false -/sql-reference/aggregate-functions/reference/simplelinearregression,docs/sql-reference/aggregate-functions/reference/simpleLinearRegression.md,reference/functions/aggregate-functions/reference/simpleLinearRegression.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/simplelinearregression,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/simpleLinearRegression,matched,d7486769247276c2,true,d7486769247276c2,2026-05-08T21:00:08+00:00,false -/sql-reference/aggregate-functions/reference/singlevalueornull,docs/sql-reference/aggregate-functions/reference/singleValueOrNull.md,reference/functions/aggregate-functions/reference/singleValueOrNull.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/singlevalueornull,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/singleValueOrNull,matched,067ce8f52cc34020,true,067ce8f52cc34020,2026-05-08T21:00:08+00:00,false -/sql-reference/aggregate-functions/reference/skewpop,docs/sql-reference/aggregate-functions/reference/skewPop.md,reference/functions/aggregate-functions/reference/skewPop.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/skewpop,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/skewPop,matched,e2af24567eed8273,true,e2af24567eed8273,2026-05-08T21:00:08+00:00,false -/sql-reference/aggregate-functions/reference/skewsamp,docs/sql-reference/aggregate-functions/reference/skewSamp.md,reference/functions/aggregate-functions/reference/skewSamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/skewsamp,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/skewSamp,matched,4016cf36e3a3e5ec,true,4016cf36e3a3e5ec,2026-05-08T21:00:09+00:00,false -/sql-reference/aggregate-functions/reference/sparkbar,docs/sql-reference/aggregate-functions/reference/sparkbar.md,reference/functions/aggregate-functions/reference/sparkbar.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/sparkbar,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/sparkbar,matched,7bd5a27027209cee,true,7bd5a27027209cee,2026-05-08T21:00:09+00:00,false -/sql-reference/aggregate-functions/reference/stddevpop,docs/sql-reference/aggregate-functions/reference/stddevPop.md,reference/functions/aggregate-functions/reference/stddevPop.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stddevpop,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/stddevPop,matched,c5ce3f3d8df7d8d6,true,c5ce3f3d8df7d8d6,2026-05-08T21:00:09+00:00,false -/sql-reference/aggregate-functions/reference/stddevpopstable,docs/sql-reference/aggregate-functions/reference/stddevPopStable.md,reference/functions/aggregate-functions/reference/stddevPopStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stddevpopstable,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/stddevPopStable,matched,16baf1cfe989fd73,true,16baf1cfe989fd73,2026-05-08T21:00:09+00:00,false -/sql-reference/aggregate-functions/reference/stddevsamp,docs/sql-reference/aggregate-functions/reference/stddevSamp.md,reference/functions/aggregate-functions/reference/stddevSamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stddevsamp,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/stddevSamp,matched,379c0a8ad495e0b1,true,379c0a8ad495e0b1,2026-05-19T11:08:53+00:00,false -/sql-reference/aggregate-functions/reference/stddevsampstable,docs/sql-reference/aggregate-functions/reference/stddevSampStable.md,reference/functions/aggregate-functions/reference/stddevSampStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stddevsampstable,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/stddevSampStable,matched,1fadf143f4ef0cf4,true,1fadf143f4ef0cf4,2026-05-08T21:00:09+00:00,false -/sql-reference/aggregate-functions/reference/stochasticlinearregression,docs/sql-reference/aggregate-functions/reference/stochasticLinearRegression.md,reference/functions/aggregate-functions/reference/stochasticLinearRegression.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stochasticlinearregression,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/stochasticLinearRegression,matched,c4d9e3bbe8e1bc68,true,c4d9e3bbe8e1bc68,2026-05-08T21:00:10+00:00,false -/sql-reference/aggregate-functions/reference/stochasticlogisticregression,docs/sql-reference/aggregate-functions/reference/stochasticLogisticRegression.md,reference/functions/aggregate-functions/reference/stochasticLogisticRegression.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stochasticlogisticregression,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/stochasticLogisticRegression,matched,8b69bdb0a3aa259f,true,8b69bdb0a3aa259f,2026-05-08T21:00:10+00:00,false -/sql-reference/aggregate-functions/reference/studentttest,docs/sql-reference/aggregate-functions/reference/studentTTest.md,reference/functions/aggregate-functions/reference/studentTTest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/studentttest,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/studentTTest,matched,cfe4523cefd58cc8,true,cfe4523cefd58cc8,2026-05-08T21:00:10+00:00,false -/sql-reference/aggregate-functions/reference/studentttestonesample,docs/sql-reference/aggregate-functions/reference/studentTTestOneSample.md,reference/functions/aggregate-functions/reference/studentTTestOneSample.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/studentttestonesample,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/studentTTestOneSample,matched,502a06938cf42f44,true,502a06938cf42f44,2026-05-08T21:00:10+00:00,false -/sql-reference/aggregate-functions/reference/sum,docs/sql-reference/aggregate-functions/reference/sum.md,reference/functions/aggregate-functions/reference/sum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/sum,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/sum,matched,0549c49a93aa84fe,true,0549c49a93aa84fe,2026-05-08T21:00:10+00:00,false -/sql-reference/aggregate-functions/reference/sumcount,docs/sql-reference/aggregate-functions/reference/sumCount.md,reference/functions/aggregate-functions/reference/sumCount.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/sumcount,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/sumCount,matched,706546f7617d6591,true,706546f7617d6591,2026-05-08T21:00:10+00:00,false -/sql-reference/aggregate-functions/reference/sumkahan,docs/sql-reference/aggregate-functions/reference/sumKahan.md,reference/functions/aggregate-functions/reference/sumKahan.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/sumkahan,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/sumKahan,matched,c77086880163f32d,true,c77086880163f32d,2026-05-08T21:00:11+00:00,false -/sql-reference/aggregate-functions/reference/summap,docs/sql-reference/aggregate-functions/reference/sumMappedArrays.md,reference/functions/aggregate-functions/reference/sumMap.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/summap,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/sumMap,matched,07b0d144a6cab0bd,true,07b0d144a6cab0bd,2026-05-08T21:00:11+00:00,false -/sql-reference/aggregate-functions/reference/summapwithoverflow,docs/sql-reference/aggregate-functions/reference/sumMapWithOverflow.md,reference/functions/aggregate-functions/reference/sumMapWithOverflow.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/summapwithoverflow,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/sumMapWithOverflow,matched,ae19536ac544cab1,true,ae19536ac544cab1,2026-05-08T21:00:11+00:00,false -/sql-reference/aggregate-functions/reference/sumwithoverflow,docs/sql-reference/aggregate-functions/reference/sumWithOverflow.md,reference/functions/aggregate-functions/reference/sumWithOverflow.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/sumwithoverflow,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/sumWithOverflow,matched,a575e1e9e1aa17c6,true,a575e1e9e1aa17c6,2026-05-08T21:00:11+00:00,false -/sql-reference/aggregate-functions/reference/theilsu,docs/sql-reference/aggregate-functions/reference/theilsU.md,reference/functions/aggregate-functions/reference/theilsU.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/theilsu,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/theilsU,matched,f9641d2fa8c06b43,true,f9641d2fa8c06b43,2026-05-08T21:00:11+00:00,false -/sql-reference/aggregate-functions/reference/timeSeriesChangesToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesChangesToGrid.md,reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesChangesToGrid,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid,matched,465c63acace057e4,true,465c63acace057e4,2026-05-08T21:00:12+00:00,false -/sql-reference/aggregate-functions/reference/timeSeriesDeltaToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesDeltaToGrid.md,reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesDeltaToGrid,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid,matched,a7575992cec3b9c1,true,a7575992cec3b9c1,2026-05-08T21:00:12+00:00,false -/sql-reference/aggregate-functions/reference/timeSeriesDerivToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesDerivToGrid.md,reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesDerivToGrid,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid,matched,020c5de99f82c4de,true,020c5de99f82c4de,2026-05-08T21:00:12+00:00,false -/sql-reference/aggregate-functions/reference/timeSeriesGroupArray,docs/sql-reference/aggregate-functions/reference/timeSeriesGroupArray.md,reference/functions/aggregate-functions/reference/timeSeriesGroupArray.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesGroupArray,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/timeSeriesGroupArray,matched,2a88a94362703b47,true,2a88a94362703b47,2026-05-08T21:00:12+00:00,false -/sql-reference/aggregate-functions/reference/timeSeriesInstantDeltaToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesInstantDeltaToGrid.md,reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesInstantDeltaToGrid,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid,matched,867429d1a5c91300,true,867429d1a5c91300,2026-05-08T21:00:12+00:00,false -/sql-reference/aggregate-functions/reference/timeSeriesInstantRateToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesInstantRateToGrid.md,reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesInstantRateToGrid,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid,matched,6d6f94fdd0571b8c,true,6d6f94fdd0571b8c,2026-05-08T21:00:12+00:00,false -/sql-reference/aggregate-functions/reference/timeSeriesLastTwoSamples,docs/sql-reference/aggregate-functions/reference/timeSeriesLastTwoSamples.md,reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesLastTwoSamples,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples,matched,011ddcf3bc0d196f,true,011ddcf3bc0d196f,2026-05-08T21:00:13+00:00,false -/sql-reference/aggregate-functions/reference/timeSeriesPredictLinearToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesPredictLinearToGrid.md,reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesPredictLinearToGrid,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid,matched,402cbd0464433072,true,402cbd0464433072,2026-05-08T21:00:13+00:00,false -/sql-reference/aggregate-functions/reference/timeSeriesRateToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesRateToGrid.md,reference/functions/aggregate-functions/reference/timeSeriesRateToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesRateToGrid,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/timeSeriesRateToGrid,matched,b5bd48b48922623f,true,b5bd48b48922623f,2026-05-08T21:00:13+00:00,false -/sql-reference/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness,docs/sql-reference/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness.md,reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness,matched,d370d2e8ea9928d6,true,d370d2e8ea9928d6,2026-05-08T21:00:13+00:00,false -/sql-reference/aggregate-functions/reference/timeSeriesResetsToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesResetsToGrid.md,reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesResetsToGrid,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid,matched,b44ffe5bd8ce26a9,true,b44ffe5bd8ce26a9,2026-05-08T21:00:13+00:00,false -/sql-reference/aggregate-functions/reference/topk,docs/sql-reference/aggregate-functions/reference/topK.md,reference/functions/aggregate-functions/reference/topK.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/topk,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/topK,matched,273a5a9e0902dab6,true,273a5a9e0902dab6,2026-05-08T21:00:13+00:00,false -/sql-reference/aggregate-functions/reference/topkweighted,docs/sql-reference/aggregate-functions/reference/topKWeighted.md,reference/functions/aggregate-functions/reference/topKWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/topkweighted,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/topKWeighted,matched,4b44410a1a7a8c5e,true,4b44410a1a7a8c5e,2026-05-08T21:00:14+00:00,false -/sql-reference/aggregate-functions/reference/uniq,docs/sql-reference/aggregate-functions/reference/uniq.md,reference/functions/aggregate-functions/reference/uniq.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniq,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/uniq,matched,57a4ad14f7750346,true,57a4ad14f7750346,2026-05-08T21:00:14+00:00,false -/sql-reference/aggregate-functions/reference/uniqcombined,docs/sql-reference/aggregate-functions/reference/uniqCombined.md,reference/functions/aggregate-functions/reference/uniqCombined.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniqcombined,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/uniqCombined,matched,47d53db402a92a77,true,47d53db402a92a77,2026-05-08T21:00:14+00:00,false -/sql-reference/aggregate-functions/reference/uniqcombined64,docs/sql-reference/aggregate-functions/reference/uniqCombined64.md,reference/functions/aggregate-functions/reference/uniqCombined64.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniqcombined64,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/uniqCombined64,matched,ed89f2bb16c50034,true,ed89f2bb16c50034,2026-05-08T21:00:14+00:00,false -/sql-reference/aggregate-functions/reference/uniqexact,docs/sql-reference/aggregate-functions/reference/uniqExact.md,reference/functions/aggregate-functions/reference/uniqExact.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniqexact,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/uniqExact,matched,29f6f4cd3446c2f6,true,29f6f4cd3446c2f6,2026-05-08T21:00:14+00:00,false -/sql-reference/aggregate-functions/reference/uniqhll12,docs/sql-reference/aggregate-functions/reference/uniqHLL12.md,reference/functions/aggregate-functions/reference/uniqHLL12.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniqhll12,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/uniqHLL12,matched,510a2dd8db5c0a6e,true,510a2dd8db5c0a6e,2026-05-08T21:00:14+00:00,false -/sql-reference/aggregate-functions/reference/uniqthetasketch,docs/sql-reference/aggregate-functions/reference/uniqTheta.md,reference/functions/aggregate-functions/reference/uniqthetasketch.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniqthetasketch,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/uniqthetasketch,matched,0f2139338a6b37aa,true,0f2139338a6b37aa,2026-05-08T21:00:15+00:00,false -/sql-reference/aggregate-functions/reference/varPop,docs/sql-reference/aggregate-functions/reference/varPop.md,reference/functions/aggregate-functions/reference/varPop.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/varPop,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/varPop,matched,1579e9b9fca97bf8,true,1579e9b9fca97bf8,2026-05-08T21:00:15+00:00,false -/sql-reference/aggregate-functions/reference/varSamp,docs/sql-reference/aggregate-functions/reference/varSamp.md,reference/functions/aggregate-functions/reference/varSamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/varSamp,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/varSamp,matched,e6f744197741c8c8,true,e6f744197741c8c8,2026-05-08T21:00:15+00:00,false -/sql-reference/aggregate-functions/reference/varpopstable,docs/sql-reference/aggregate-functions/reference/varPopStable.md,reference/functions/aggregate-functions/reference/varPopStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/varpopstable,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/varPopStable,matched,4fd75682cc5a8796,true,4fd75682cc5a8796,2026-05-08T21:00:15+00:00,false -/sql-reference/aggregate-functions/reference/varsampstable,docs/sql-reference/aggregate-functions/reference/varSampStable.md,reference/functions/aggregate-functions/reference/varSampStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/varsampstable,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/varSampStable,matched,571f165781684dfd,true,571f165781684dfd,2026-05-08T21:00:15+00:00,false -/sql-reference/aggregate-functions/reference/welchttest,docs/sql-reference/aggregate-functions/reference/welchTTest.md,reference/functions/aggregate-functions/reference/welchTTest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/welchttest,https://private-7c7dfe99.mintlify.app/reference/functions/aggregate-functions/reference/welchTTest,matched,093589621f5bd26b,true,093589621f5bd26b,2026-05-08T21:00:15+00:00,false -/sql-reference/data-types/,docs/sql-reference/data-types/index.md,reference/data-types/index.mdx,https://clickhouse.com/docs/sql-reference/data-types/,https://private-7c7dfe99.mintlify.app/reference/data-types,matched,9132f1b9b2ddc8df,true,4108560a1744ad07,2026-05-09T09:39:38+00:00,false -/sql-reference/data-types/aggregatefunction,docs/sql-reference/data-types/aggregatefunction.md,reference/data-types/aggregatefunction.mdx,https://clickhouse.com/docs/sql-reference/data-types/aggregatefunction,https://private-7c7dfe99.mintlify.app/reference/data-types/aggregatefunction,matched,72700501d63e067f,true,52272796a3ff10b3,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/array,docs/sql-reference/data-types/array.md,reference/data-types/array.mdx,https://clickhouse.com/docs/sql-reference/data-types/array,https://private-7c7dfe99.mintlify.app/reference/data-types/array,matched,1e77a6674f8339d9,true,1e77a6674f8339d9,2026-05-19T11:08:53+00:00,false -/sql-reference/data-types/boolean,docs/sql-reference/data-types/boolean.md,reference/data-types/boolean.mdx,https://clickhouse.com/docs/sql-reference/data-types/boolean,https://private-7c7dfe99.mintlify.app/reference/data-types/boolean,matched,1030c84f2f356452,true,184622e2d0685a28,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/data-types-binary-encoding,docs/sql-reference/data-types/data-types-binary-encoding.md,reference/data-types/data-types-binary-encoding.mdx,https://clickhouse.com/docs/sql-reference/data-types/data-types-binary-encoding,https://private-7c7dfe99.mintlify.app/reference/data-types/data-types-binary-encoding,matched,4f9c147ef25a77fd,true,86296003488064b4,2026-05-09T09:39:38+00:00,false -/sql-reference/data-types/date,docs/sql-reference/data-types/date.md,reference/data-types/date.mdx,https://clickhouse.com/docs/sql-reference/data-types/date,https://private-7c7dfe99.mintlify.app/reference/data-types/date,matched,a4e08d45fe47f80e,true,c5d8b4488de9c51f,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/date32,docs/sql-reference/data-types/date32.md,reference/data-types/date32.mdx,https://clickhouse.com/docs/sql-reference/data-types/date32,https://private-7c7dfe99.mintlify.app/reference/data-types/date32,matched,bdf2f799fb7d1f31,true,aed29aa437dec69f,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/datetime,docs/sql-reference/data-types/datetime.md,reference/data-types/datetime.mdx,https://clickhouse.com/docs/sql-reference/data-types/datetime,https://private-7c7dfe99.mintlify.app/reference/data-types/datetime,matched,707225593664b6b5,true,0e7133cab0e8062e,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/datetime64,docs/sql-reference/data-types/datetime64.md,reference/data-types/datetime64.mdx,https://clickhouse.com/docs/sql-reference/data-types/datetime64,https://private-7c7dfe99.mintlify.app/reference/data-types/datetime64,matched,be0c73ee4d2ab665,true,b4bdfab5749d54b1,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/decimal,docs/sql-reference/data-types/decimal.md,reference/data-types/decimal.mdx,https://clickhouse.com/docs/sql-reference/data-types/decimal,https://private-7c7dfe99.mintlify.app/reference/data-types/decimal,matched,653899069662089c,true,653899069662089c,2026-05-19T11:08:53+00:00,false -/sql-reference/data-types/domains/,docs/sql-reference/data-types/domains/index.md,reference/data-types/domains/index.mdx,https://clickhouse.com/docs/sql-reference/data-types/domains/,https://private-7c7dfe99.mintlify.app/reference/data-types/domains,matched,0d25ebf14e813c04,true,35e6467692a1dada,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/dynamic,docs/sql-reference/data-types/dynamic.md,reference/data-types/dynamic.mdx,https://clickhouse.com/docs/sql-reference/data-types/dynamic,https://private-7c7dfe99.mintlify.app/reference/data-types/dynamic,matched,85e7013c7806b92c,true,e0aa544319320b10,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/enum,docs/sql-reference/data-types/enum.md,reference/data-types/enum.mdx,https://clickhouse.com/docs/sql-reference/data-types/enum,https://private-7c7dfe99.mintlify.app/reference/data-types/enum,matched,31c2da25a9947c25,true,641d2a22f3cbbdbb,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/fixedstring,docs/sql-reference/data-types/fixedstring.md,reference/data-types/fixedstring.mdx,https://clickhouse.com/docs/sql-reference/data-types/fixedstring,https://private-7c7dfe99.mintlify.app/reference/data-types/fixedstring,matched,9434b8c9845ff691,true,0151197975962877,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/float,docs/sql-reference/data-types/float.md,reference/data-types/float.mdx,https://clickhouse.com/docs/sql-reference/data-types/float,https://private-7c7dfe99.mintlify.app/reference/data-types/float,matched,2d7561d0476ccb3e,true,2d7561d0476ccb3e,2026-05-08T21:09:58+00:00,false -/sql-reference/data-types/geo,docs/sql-reference/data-types/geo.md,reference/data-types/geo.mdx,https://clickhouse.com/docs/sql-reference/data-types/geo,https://private-7c7dfe99.mintlify.app/reference/data-types/geo,matched,6b11f46eea07e5df,true,6b11f46eea07e5df,2026-05-19T11:08:53+00:00,false -/sql-reference/data-types/int-uint,docs/sql-reference/data-types/int-uint.md,reference/data-types/int-uint.mdx,https://clickhouse.com/docs/sql-reference/data-types/int-uint,https://private-7c7dfe99.mintlify.app/reference/data-types/int-uint,matched,5cb5606bdf1fcec7,true,5cb5606bdf1fcec7,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/ipv4,docs/sql-reference/data-types/ipv4.md,reference/data-types/ipv4.mdx,https://clickhouse.com/docs/sql-reference/data-types/ipv4,https://private-7c7dfe99.mintlify.app/reference/data-types/ipv4,matched,5c8a7b7c41cedb9f,true,5c8a7b7c41cedb9f,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/ipv6,docs/sql-reference/data-types/ipv6.md,reference/data-types/ipv6.mdx,https://clickhouse.com/docs/sql-reference/data-types/ipv6,https://private-7c7dfe99.mintlify.app/reference/data-types/ipv6,matched,37840663d4e6d0f5,true,37840663d4e6d0f5,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/lowcardinality,docs/sql-reference/data-types/lowcardinality.md,reference/data-types/lowcardinality.mdx,https://clickhouse.com/docs/sql-reference/data-types/lowcardinality,https://private-7c7dfe99.mintlify.app/reference/data-types/lowcardinality,matched,201a6b0e68f5b0b2,true,8f86b16b90906a6a,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/map,docs/sql-reference/data-types/map.md,reference/data-types/map.mdx,https://clickhouse.com/docs/sql-reference/data-types/map,https://private-7c7dfe99.mintlify.app/reference/data-types/map,matched,6ae06faace8b64f4,true,6ae06faace8b64f4,2026-05-19T11:08:53+00:00,false -/sql-reference/data-types/nested-data-structures/nested,docs/sql-reference/data-types/nested-data-structures/index.md,reference/data-types/nested-data-structures/index.mdx,https://clickhouse.com/docs/sql-reference/data-types/nested-data-structures/nested,https://private-7c7dfe99.mintlify.app/reference/data-types/nested-data-structures,matched,c11aa1da8c94f713,true,4749e80d37f15822,2026-05-08T09:09:20+00:00,false -/sql-reference/data-types/newjson,docs/sql-reference/data-types/newjson.md,reference/data-types/newjson.mdx,https://clickhouse.com/docs/sql-reference/data-types/newjson,https://private-7c7dfe99.mintlify.app/reference/data-types/newjson,matched,753d1eabe311c68b,true,753d1eabe311c68b,2026-05-19T11:08:53+00:00,false -/sql-reference/data-types/nullable,docs/sql-reference/data-types/nullable.md,reference/data-types/nullable.mdx,https://clickhouse.com/docs/sql-reference/data-types/nullable,https://private-7c7dfe99.mintlify.app/reference/data-types/nullable,matched,e3e7ea75631dfd16,true,e3e7ea75631dfd16,2026-05-19T11:08:53+00:00,false -/sql-reference/data-types/qbit,docs/sql-reference/data-types/qbit.md,reference/data-types/qbit.mdx,https://clickhouse.com/docs/sql-reference/data-types/qbit,https://private-7c7dfe99.mintlify.app/reference/data-types/qbit,matched,3fc9aea952342cbf,true,3fc9aea952342cbf,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/simpleaggregatefunction,docs/sql-reference/data-types/simpleaggregatefunction.md,reference/data-types/simpleaggregatefunction.mdx,https://clickhouse.com/docs/sql-reference/data-types/simpleaggregatefunction,https://private-7c7dfe99.mintlify.app/reference/data-types/simpleaggregatefunction,matched,421e3771a4d1e80d,true,c976c4c588a9ad9f,2026-05-09T10:03:34+00:00,false -/sql-reference/data-types/special-data-types/,docs/sql-reference/data-types/special-data-types/index.md,reference/data-types/special-data-types/index.mdx,https://clickhouse.com/docs/sql-reference/data-types/special-data-types/,https://private-7c7dfe99.mintlify.app/reference/data-types/special-data-types,matched,ef0b6f747acfa0ec,true,ef0b6f747acfa0ec,2026-05-19T11:08:53+00:00,false -/sql-reference/data-types/special-data-types/expression,docs/sql-reference/data-types/special-data-types/expression.md,reference/data-types/special-data-types/expression.mdx,https://clickhouse.com/docs/sql-reference/data-types/special-data-types/expression,https://private-7c7dfe99.mintlify.app/reference/data-types/special-data-types/expression,matched,88a8bd0cf24ef01e,true,383175d865a3e8e5,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/special-data-types/interval,docs/sql-reference/data-types/special-data-types/interval.md,reference/data-types/special-data-types/interval.mdx,https://clickhouse.com/docs/sql-reference/data-types/special-data-types/interval,https://private-7c7dfe99.mintlify.app/reference/data-types/special-data-types/interval,matched,5837b36610c2b5b2,true,d9e724b9d8f9fbae,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/special-data-types/nothing,docs/sql-reference/data-types/special-data-types/nothing.md,reference/data-types/special-data-types/nothing.mdx,https://clickhouse.com/docs/sql-reference/data-types/special-data-types/nothing,https://private-7c7dfe99.mintlify.app/reference/data-types/special-data-types/nothing,matched,1c1875de77fd50b2,true,54d4adf41787f75b,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/special-data-types/set,docs/sql-reference/data-types/special-data-types/set.md,reference/data-types/special-data-types/set.mdx,https://clickhouse.com/docs/sql-reference/data-types/special-data-types/set,https://private-7c7dfe99.mintlify.app/reference/data-types/special-data-types/set,matched,aca07b0f37813976,true,b3961ee327c6fafc,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/string,docs/sql-reference/data-types/string.md,reference/data-types/string.mdx,https://clickhouse.com/docs/sql-reference/data-types/string,https://private-7c7dfe99.mintlify.app/reference/data-types/string,matched,0bf0ed2ba989b68d,true,664e682e3d269a46,2026-05-07T14:49:41+00:00,false -/sql-reference/data-types/time,docs/sql-reference/data-types/time.md,reference/data-types/time.mdx,https://clickhouse.com/docs/sql-reference/data-types/time,https://private-7c7dfe99.mintlify.app/reference/data-types/time,matched,13ac35c7dfecd788,true,6fba9e18761cacdc,2026-05-09T09:39:38+00:00,false -/sql-reference/data-types/time64,docs/sql-reference/data-types/time64.md,reference/data-types/time64.mdx,https://clickhouse.com/docs/sql-reference/data-types/time64,https://private-7c7dfe99.mintlify.app/reference/data-types/time64,matched,b76965019f794890,true,36de758d3be79f5c,2026-05-09T09:39:38+00:00,false -/sql-reference/data-types/tuple,docs/sql-reference/data-types/tuple.md,reference/data-types/tuple.mdx,https://clickhouse.com/docs/sql-reference/data-types/tuple,https://private-7c7dfe99.mintlify.app/reference/data-types/tuple,matched,2a7e6ccb9df89177,true,2a7e6ccb9df89177,2026-05-19T11:08:53+00:00,false -/sql-reference/data-types/uuid,docs/sql-reference/data-types/uuid.md,reference/data-types/uuid.mdx,https://clickhouse.com/docs/sql-reference/data-types/uuid,https://private-7c7dfe99.mintlify.app/reference/data-types/uuid,matched,0f5f115af04037cc,true,0f5f115af04037cc,2026-05-19T11:08:53+00:00,false -/sql-reference/data-types/variant,docs/sql-reference/data-types/variant.md,reference/data-types/variant.mdx,https://clickhouse.com/docs/sql-reference/data-types/variant,https://private-7c7dfe99.mintlify.app/reference/data-types/variant,matched,907bde6f04e567df,true,2cf40b2865b06390,2026-05-08T09:09:20+00:00,false -/sql-reference/datalakes,docs/sql-reference/datalakes.md,reference/datalakes.mdx,https://clickhouse.com/docs/sql-reference/datalakes,https://private-7c7dfe99.mintlify.app/reference/datalakes,matched,576c6b22e45a20fa,true,576c6b22e45a20fa,2026-05-07T14:49:41+00:00,false -/sql-reference/distributed-ddl,docs/sql-reference/distributed-ddl.md,reference/statements/distributed-ddl.mdx,https://clickhouse.com/docs/sql-reference/distributed-ddl,https://private-7c7dfe99.mintlify.app/reference/statements/distributed-ddl,matched,112d13bcf3046cf7,true,112d13bcf3046cf7,2026-05-09T17:02:01+00:00,false +/optimize/prewhere,docs/guides/best-practices/prewhere.md,core/concepts/features/performance/prewhere.mdx,https://clickhouse.com/docs/optimize/prewhere,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/prewhere,matched,2336e34b998efec4,true,2336e34b998efec4,2026-05-08T09:09:20+00:00,false +/optimize/query-optimization,docs/guides/best-practices/query-optimization.md,core/guides/clickhouse/performance-and-monitoring/query-optimization.mdx,https://clickhouse.com/docs/optimize/query-optimization,https://private-7c7dfe99.mintlify.app/core/guides/clickhouse/performance-and-monitoring/query-optimization,matched,eb97d0e4804d4a57,true,eb97d0e4804d4a57,2026-05-09T10:06:27+00:00,false +/optimize/query-parallelism,docs/guides/best-practices/query-parallelism.md,core/concepts/core-concepts/query-parallelism.mdx,https://clickhouse.com/docs/optimize/query-parallelism,https://private-7c7dfe99.mintlify.app/core/concepts/core-concepts/query-parallelism,matched,4b49846b352f28ab,true,4b49846b352f28ab,2026-05-08T12:19:52+00:00,false +/optimize/skipping-indexes,docs/guides/best-practices/skipping-indexes.md,core/concepts/features/performance/skip-indexes/skipping-indexes.mdx,https://clickhouse.com/docs/optimize/skipping-indexes,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/skip-indexes/skipping-indexes,matched,a0765ef7def30754,true,a0765ef7def30754,2026-05-08T20:59:47+00:00,false +/optimize/skipping-indexes/examples,docs/guides/best-practices/skipping-indexes-examples.md,core/concepts/features/performance/skip-indexes/skipping-indexes-examples.mdx,https://clickhouse.com/docs/optimize/skipping-indexes/examples,https://private-7c7dfe99.mintlify.app/core/concepts/features/performance/skip-indexes/skipping-indexes-examples,matched,7a79053af7c17e5c,true,7a79053af7c17e5c,2026-05-13T13:16:51+00:00,false +/partitions,docs/managing-data/core-concepts/partitions.mdx,core/concepts/core-concepts/partitions.mdx,https://clickhouse.com/docs/partitions,https://private-7c7dfe99.mintlify.app/core/concepts/core-concepts/partitions,matched,705e5c138efe6555,true,705e5c138efe6555,2026-05-08T09:09:20+00:00,false +/parts,docs/managing-data/core-concepts/parts.md,core/concepts/core-concepts/parts.mdx,https://clickhouse.com/docs/parts,https://private-7c7dfe99.mintlify.app/core/concepts/core-concepts/parts,matched,2159d40884f408fa,true,2159d40884f408fa,2026-05-08T09:09:20+00:00,false +/primary-indexes,docs/managing-data/core-concepts/primary-indexes.mdx,core/concepts/core-concepts/primary-indexes.mdx,https://clickhouse.com/docs/primary-indexes,https://private-7c7dfe99.mintlify.app/core/concepts/core-concepts/primary-indexes,matched,72e33543511fe165,true,72e33543511fe165,2026-05-08T09:09:20+00:00,false +/security-and-authentication,docs/guides/sre/index.md,core/concepts/features/security/index.mdx,https://clickhouse.com/docs/security-and-authentication,https://private-7c7dfe99.mintlify.app/core/concepts/features/security/index,matched,765ed19ac411d1bf,true,765ed19ac411d1bf,2026-05-08T09:09:20+00:00,false +/shards,docs/managing-data/core-concepts/shards.mdx,core/guides/oss/deployment-and-scaling/shards.mdx,https://clickhouse.com/docs/shards,https://private-7c7dfe99.mintlify.app/core/guides/oss/deployment-and-scaling/shards,matched,c09957405447bdec,true,c09957405447bdec,2026-05-19T11:48:22+00:00,false +/sql-reference,docs/sql-reference/index.md,core/reference/home.mdx,https://clickhouse.com/docs/sql-reference,https://private-7c7dfe99.mintlify.app/core/reference/home,matched,1aafbee1019940fc,true,1aafbee1019940fc,2026-05-21T08:24:25+00:00,false +/sql-reference/aggregate-functions/,docs/sql-reference/aggregate-functions/index.md,core/reference/functions/aggregate-functions/index.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/index,matched,df7ce95c5f1c1b12,true,df7ce95c5f1c1b12,2026-05-19T11:08:53+00:00,false +/sql-reference/aggregate-functions/combinators,docs/sql-reference/aggregate-functions/combinators.md,core/reference/functions/aggregate-functions/combinators.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/combinators,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/combinators,matched,378575d2d4484704,true,378575d2d4484704,2026-05-19T11:08:53+00:00,false +/sql-reference/aggregate-functions/grouping_function,docs/sql-reference/aggregate-functions/grouping_function.md,core/reference/functions/aggregate-functions/grouping_function.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/grouping_function,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/grouping_function,matched,762a3b737dc65489,true,4ae0bd2c9234eb6b,2026-05-08T09:09:20+00:00,false +/sql-reference/aggregate-functions/parametric-functions,docs/sql-reference/aggregate-functions/parametric-functions.md,core/reference/functions/aggregate-functions/parametric-functions.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/parametric-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/parametric-functions,matched,5a0e0da43f9b2ee6,true,5a0e0da43f9b2ee6,2026-05-19T11:08:53+00:00,false +/sql-reference/aggregate-functions/reference/,docs/sql-reference/aggregate-functions/reference/index.md,core/reference/functions/aggregate-functions/reference/index.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/index,matched,f6e3dff3f3ba3633,true,f6e3dff3f3ba3633,2026-05-19T11:08:53+00:00,false +/sql-reference/aggregate-functions/reference/aggthrow,docs/sql-reference/aggregate-functions/reference/aggThrow.md,core/reference/functions/aggregate-functions/reference/aggThrow.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/aggthrow,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/aggThrow,matched,6ba276ab5cfbe4d3,true,6ba276ab5cfbe4d3,2026-05-08T20:59:52+00:00,false +/sql-reference/aggregate-functions/reference/analysis_of_variance,docs/sql-reference/aggregate-functions/reference/analysisOfVariance.md,core/reference/functions/aggregate-functions/reference/analysis_of_variance.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/analysis_of_variance,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/analysis_of_variance,matched,398aae7e93baf0b0,true,398aae7e93baf0b0,2026-05-08T20:59:52+00:00,false +/sql-reference/aggregate-functions/reference/any,docs/sql-reference/aggregate-functions/reference/any.md,core/reference/functions/aggregate-functions/reference/any.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/any,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/any,matched,a3176632042c5129,true,a3176632042c5129,2026-05-08T20:59:52+00:00,false +/sql-reference/aggregate-functions/reference/anyheavy,docs/sql-reference/aggregate-functions/reference/anyHeavy.md,core/reference/functions/aggregate-functions/reference/anyHeavy.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/anyheavy,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/anyHeavy,matched,a21ee7b1ac3b959c,true,a21ee7b1ac3b959c,2026-05-08T20:59:52+00:00,false +/sql-reference/aggregate-functions/reference/anylast,docs/sql-reference/aggregate-functions/reference/anyLast.md,core/reference/functions/aggregate-functions/reference/anyLast.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/anylast,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/anyLast,matched,b7d60158c0d2b54a,true,b7d60158c0d2b54a,2026-05-08T20:59:52+00:00,false +/sql-reference/aggregate-functions/reference/approxtopk,docs/sql-reference/aggregate-functions/reference/approx_top_k.md,core/reference/functions/aggregate-functions/reference/approxtopk.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/approxtopk,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/approxtopk,matched,e759b1fe48e70697,true,e759b1fe48e70697,2026-05-08T20:59:53+00:00,false +/sql-reference/aggregate-functions/reference/approxtopsum,docs/sql-reference/aggregate-functions/reference/approx_top_sum.md,core/reference/functions/aggregate-functions/reference/approxtopsum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/approxtopsum,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/approxtopsum,matched,dd0d07b84d9d533f,true,dd0d07b84d9d533f,2026-05-08T20:59:53+00:00,false +/sql-reference/aggregate-functions/reference/argandmax,docs/sql-reference/aggregate-functions/reference/argAndMax.md,core/reference/functions/aggregate-functions/reference/argAndMax.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/argandmax,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/argAndMax,matched,4a0b65b563ac6374,true,4a0b65b563ac6374,2026-05-09T10:03:34+00:00,false +/sql-reference/aggregate-functions/reference/argandmin,docs/sql-reference/aggregate-functions/reference/argAndMin.md,core/reference/functions/aggregate-functions/reference/argAndMin.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/argandmin,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/argAndMin,matched,0cb02e2dc7a0ac01,true,0cb02e2dc7a0ac01,2026-05-09T10:03:34+00:00,false +/sql-reference/aggregate-functions/reference/argmax,docs/sql-reference/aggregate-functions/reference/argMax.md,core/reference/functions/aggregate-functions/reference/argMax.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/argmax,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/argMax,matched,1bb7830c175f6110,true,1bb7830c175f6110,2026-05-08T20:59:53+00:00,false +/sql-reference/aggregate-functions/reference/argmin,docs/sql-reference/aggregate-functions/reference/argMin.md,core/reference/functions/aggregate-functions/reference/argMin.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/argmin,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/argMin,matched,2323b12ec894a16b,true,2323b12ec894a16b,2026-05-08T20:59:54+00:00,false +/sql-reference/aggregate-functions/reference/avg,docs/sql-reference/aggregate-functions/reference/avg.md,core/reference/functions/aggregate-functions/reference/avg.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/avg,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/avg,matched,d9d595a6a1a18d45,true,d9d595a6a1a18d45,2026-05-08T20:59:54+00:00,false +/sql-reference/aggregate-functions/reference/avgweighted,docs/sql-reference/aggregate-functions/reference/avgWeighted.md,core/reference/functions/aggregate-functions/reference/avgWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/avgweighted,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/avgWeighted,matched,e383814143b85e4d,true,e383814143b85e4d,2026-05-08T20:59:54+00:00,false +/sql-reference/aggregate-functions/reference/boundingRatio,docs/sql-reference/aggregate-functions/reference/boundingRatio.md,core/reference/functions/aggregate-functions/reference/boundrat.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/boundingRatio,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/boundrat,matched,698529c1c233004e,true,698529c1c233004e,2026-05-08T20:59:54+00:00,false +/sql-reference/aggregate-functions/reference/categoricalinformationvalue,docs/sql-reference/aggregate-functions/reference/categoricalInformationValue.md,core/reference/functions/aggregate-functions/reference/categoricalInformationValue.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/categoricalinformationvalue,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/categoricalInformationValue,matched,8e2f2cade587700c,true,8e2f2cade587700c,2026-05-08T20:59:54+00:00,false +/sql-reference/aggregate-functions/reference/contingency,docs/sql-reference/aggregate-functions/reference/contingency.md,core/reference/functions/aggregate-functions/reference/contingency.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/contingency,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/contingency,matched,76fe747ef9e3df7f,true,76fe747ef9e3df7f,2026-05-08T20:59:54+00:00,false +/sql-reference/aggregate-functions/reference/corr,docs/sql-reference/aggregate-functions/reference/corr.md,core/reference/functions/aggregate-functions/reference/corr.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/corr,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/corr,matched,c8693c629f190e01,true,c8693c629f190e01,2026-05-09T09:39:38+00:00,false +/sql-reference/aggregate-functions/reference/corrmatrix,docs/sql-reference/aggregate-functions/reference/corrMatrix.md,core/reference/functions/aggregate-functions/reference/corrMatrix.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/corrmatrix,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/corrMatrix,matched,5ccf3ca405085bfb,true,5ccf3ca405085bfb,2026-05-08T20:59:55+00:00,false +/sql-reference/aggregate-functions/reference/corrstable,docs/sql-reference/aggregate-functions/reference/corrStable.md,core/reference/functions/aggregate-functions/reference/corrStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/corrstable,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/corrStable,matched,a67a928a769a9165,true,a67a928a769a9165,2026-05-08T20:59:55+00:00,false +/sql-reference/aggregate-functions/reference/count,docs/sql-reference/aggregate-functions/reference/count.md,core/reference/functions/aggregate-functions/reference/count.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/count,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/count,matched,b2ef50a73b4e4418,true,b2ef50a73b4e4418,2026-05-08T20:59:55+00:00,false +/sql-reference/aggregate-functions/reference/covarpop,docs/sql-reference/aggregate-functions/reference/covarPop.md,core/reference/functions/aggregate-functions/reference/covarPop.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarpop,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/covarPop,matched,cfd2dc76064c59d6,true,cfd2dc76064c59d6,2026-05-09T09:39:38+00:00,false +/sql-reference/aggregate-functions/reference/covarpopmatrix,docs/sql-reference/aggregate-functions/reference/covarPopMatrix.md,core/reference/functions/aggregate-functions/reference/covarPopMatrix.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarpopmatrix,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/covarPopMatrix,matched,d338a39820758b31,true,d338a39820758b31,2026-05-08T20:59:55+00:00,false +/sql-reference/aggregate-functions/reference/covarpopstable,docs/sql-reference/aggregate-functions/reference/covarPopStable.md,core/reference/functions/aggregate-functions/reference/covarPopStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarpopstable,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/covarPopStable,matched,5c31fcdb71165467,true,5c31fcdb71165467,2026-05-08T20:59:56+00:00,false +/sql-reference/aggregate-functions/reference/covarsamp,docs/sql-reference/aggregate-functions/reference/covarSamp.md,core/reference/functions/aggregate-functions/reference/covarSamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarsamp,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/covarSamp,matched,fcce329920930fbd,true,fcce329920930fbd,2026-05-08T20:59:56+00:00,false +/sql-reference/aggregate-functions/reference/covarsampmatrix,docs/sql-reference/aggregate-functions/reference/covarSampMatrix.md,core/reference/functions/aggregate-functions/reference/covarSampMatrix.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarsampmatrix,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/covarSampMatrix,matched,624cd9deedc19d98,true,624cd9deedc19d98,2026-05-08T20:59:56+00:00,false +/sql-reference/aggregate-functions/reference/covarsampstable,docs/sql-reference/aggregate-functions/reference/covarSampStable.md,core/reference/functions/aggregate-functions/reference/covarSampStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/covarsampstable,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/covarSampStable,matched,fce0840da6fb476b,true,fce0840da6fb476b,2026-05-08T20:59:56+00:00,false +/sql-reference/aggregate-functions/reference/cramersv,docs/sql-reference/aggregate-functions/reference/cramersV.md,core/reference/functions/aggregate-functions/reference/cramersV.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/cramersv,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/cramersV,matched,652aacd423f4e473,true,652aacd423f4e473,2026-05-08T20:59:56+00:00,false +/sql-reference/aggregate-functions/reference/cramersvbiascorrected,docs/sql-reference/aggregate-functions/reference/cramersVBiasCorrected.md,core/reference/functions/aggregate-functions/reference/cramersVBiasCorrected.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/cramersvbiascorrected,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/cramersVBiasCorrected,matched,d42c0e3dc3e9b596,true,d42c0e3dc3e9b596,2026-05-08T20:59:56+00:00,false +/sql-reference/aggregate-functions/reference/deltasum,docs/sql-reference/aggregate-functions/reference/deltaSum.md,core/reference/functions/aggregate-functions/reference/deltaSum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/deltasum,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/deltaSum,matched,73e5fae7d5e1cf9c,true,73e5fae7d5e1cf9c,2026-05-08T20:59:57+00:00,false +/sql-reference/aggregate-functions/reference/deltasumtimestamp,docs/sql-reference/aggregate-functions/reference/deltaSumTimestamp.md,core/reference/functions/aggregate-functions/reference/deltaSumTimestamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/deltasumtimestamp,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/deltaSumTimestamp,matched,ebec021fbb72405d,true,ebec021fbb72405d,2026-05-08T20:59:57+00:00,false +/sql-reference/aggregate-functions/reference/distinctJSONPathsAndTypes,docs/sql-reference/aggregate-functions/reference/distinctJSONPathsAndTypes.md,core/reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/distinctJSONPathsAndTypes,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes,matched,35a8ceaed4a39ddb,true,35a8ceaed4a39ddb,2026-05-08T20:59:57+00:00,false +/sql-reference/aggregate-functions/reference/distinctdynamictypes,docs/sql-reference/aggregate-functions/reference/distinctDynamicTypes.md,core/reference/functions/aggregate-functions/reference/distinctDynamicTypes.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/distinctdynamictypes,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/distinctDynamicTypes,matched,b350efeb3af95f80,true,b350efeb3af95f80,2026-05-08T20:59:57+00:00,false +/sql-reference/aggregate-functions/reference/distinctjsonpaths,docs/sql-reference/aggregate-functions/reference/distinctJSONPaths.md,core/reference/functions/aggregate-functions/reference/distinctJSONPaths.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/distinctjsonpaths,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/distinctJSONPaths,matched,2fdae4509a21feab,true,2fdae4509a21feab,2026-05-08T20:59:57+00:00,false +/sql-reference/aggregate-functions/reference/entropy,docs/sql-reference/aggregate-functions/reference/entropy.md,core/reference/functions/aggregate-functions/reference/entropy.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/entropy,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/entropy,matched,ed58fc9337c3b0ad,true,ed58fc9337c3b0ad,2026-05-08T20:59:57+00:00,false +/sql-reference/aggregate-functions/reference/estimateCompressionRatio,docs/sql-reference/aggregate-functions/reference/estimateCompressionRatio.md,core/reference/functions/aggregate-functions/reference/estimateCompressionRatio.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/estimateCompressionRatio,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/estimateCompressionRatio,matched,dfd4fd08c59b8f2c,true,dfd4fd08c59b8f2c,2026-05-08T20:59:58+00:00,false +/sql-reference/aggregate-functions/reference/exponentialMovingAverage,docs/sql-reference/aggregate-functions/reference/exponentialMovingAverage.md,core/reference/functions/aggregate-functions/reference/exponentialMovingAverage.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/exponentialMovingAverage,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/exponentialMovingAverage,matched,29a32c3dfbe7431c,true,29a32c3dfbe7431c,2026-05-08T20:59:58+00:00,false +/sql-reference/aggregate-functions/reference/exponentialTimeDecayedAvg,docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedAvg.md,core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedAvg,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg,matched,990377788926a74e,true,990377788926a74e,2026-05-08T20:59:58+00:00,false +/sql-reference/aggregate-functions/reference/exponentialTimeDecayedCount,docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedCount.md,core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedCount,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount,matched,fbadbbdc7fe13930,true,fbadbbdc7fe13930,2026-05-08T20:59:58+00:00,false +/sql-reference/aggregate-functions/reference/exponentialTimeDecayedMax,docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedMax.md,core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedMax,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax,matched,5adb749a9d666932,true,5adb749a9d666932,2026-05-08T20:59:58+00:00,false +/sql-reference/aggregate-functions/reference/exponentialTimeDecayedSum,docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedSum.md,core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/exponentialTimeDecayedSum,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum,matched,e9a76eae13bb7219,true,e9a76eae13bb7219,2026-05-08T20:59:58+00:00,false +/sql-reference/aggregate-functions/reference/first_value,docs/sql-reference/aggregate-functions/reference/first_value.md,core/reference/functions/aggregate-functions/reference/first_value.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/first_value,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/first_value,matched,5df182c6b8526daa,true,4221d7097f28b112,2026-05-09T09:39:38+00:00,false +/sql-reference/aggregate-functions/reference/flame_graph,docs/sql-reference/aggregate-functions/reference/flameGraph.md,core/reference/functions/aggregate-functions/reference/flame_graph.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/flame_graph,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/flame_graph,matched,7c582ef0059274e3,true,7c582ef0059274e3,2026-05-19T11:08:53+00:00,false +/sql-reference/aggregate-functions/reference/grouparray,docs/sql-reference/aggregate-functions/reference/groupArray.md,core/reference/functions/aggregate-functions/reference/groupArray.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparray,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupArray,matched,494298de736b875e,true,494298de736b875e,2026-05-08T20:59:59+00:00,false +/sql-reference/aggregate-functions/reference/grouparrayarray,docs/sql-reference/aggregate-functions/reference/groupArrayArray.md,core/reference/functions/aggregate-functions/reference/groupArrayArray.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparrayarray,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupArrayArray,matched,30aaf8f2841c94b9,true,3a1d95bba36015c5,2026-05-07T14:49:41+00:00,false +/sql-reference/aggregate-functions/reference/grouparrayinsertat,docs/sql-reference/aggregate-functions/reference/groupArrayInsertAt.md,core/reference/functions/aggregate-functions/reference/groupArrayInsertAt.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparrayinsertat,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupArrayInsertAt,matched,5200d13fb0ecbec5,true,5200d13fb0ecbec5,2026-05-08T20:59:59+00:00,false +/sql-reference/aggregate-functions/reference/grouparrayintersect,docs/sql-reference/aggregate-functions/reference/groupArrayIntersect.md,core/reference/functions/aggregate-functions/reference/groupArrayIntersect.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparrayintersect,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupArrayIntersect,matched,73542684e7ae142e,true,73542684e7ae142e,2026-05-08T20:59:59+00:00,false +/sql-reference/aggregate-functions/reference/grouparraylast,docs/sql-reference/aggregate-functions/reference/groupArrayLast.md,core/reference/functions/aggregate-functions/reference/groupArrayLast.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparraylast,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupArrayLast,matched,72f024a3d7e462f9,true,72f024a3d7e462f9,2026-05-08T20:59:59+00:00,false +/sql-reference/aggregate-functions/reference/grouparraymovingavg,docs/sql-reference/aggregate-functions/reference/groupArrayMovingAvg.md,core/reference/functions/aggregate-functions/reference/groupArrayMovingAvg.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparraymovingavg,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupArrayMovingAvg,matched,1b782bf5bd48245c,true,1b782bf5bd48245c,2026-05-08T20:59:59+00:00,false +/sql-reference/aggregate-functions/reference/grouparraymovingsum,docs/sql-reference/aggregate-functions/reference/groupArrayMovingSum.md,core/reference/functions/aggregate-functions/reference/groupArrayMovingSum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparraymovingsum,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupArrayMovingSum,matched,3c19fe86868926c9,true,3c19fe86868926c9,2026-05-08T21:00:00+00:00,false +/sql-reference/aggregate-functions/reference/grouparraysample,docs/sql-reference/aggregate-functions/reference/groupArraySample.md,core/reference/functions/aggregate-functions/reference/groupArraySample.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparraysample,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupArraySample,matched,2bf4ef5f0bef08cd,true,2bf4ef5f0bef08cd,2026-05-08T21:00:00+00:00,false +/sql-reference/aggregate-functions/reference/grouparraysorted,docs/sql-reference/aggregate-functions/reference/groupArraySorted.md,core/reference/functions/aggregate-functions/reference/groupArraySorted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/grouparraysorted,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupArraySorted,matched,36d5fb7771b569b5,true,36d5fb7771b569b5,2026-05-08T21:00:00+00:00,false +/sql-reference/aggregate-functions/reference/groupbitand,docs/sql-reference/aggregate-functions/reference/groupBitAnd.md,core/reference/functions/aggregate-functions/reference/groupBitAnd.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitand,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupBitAnd,matched,4b2443b2330e1677,true,4b2443b2330e1677,2026-05-08T21:00:00+00:00,false +/sql-reference/aggregate-functions/reference/groupbitmap,docs/sql-reference/aggregate-functions/reference/groupBitmap.md,core/reference/functions/aggregate-functions/reference/groupBitmap.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitmap,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupBitmap,matched,c90dbfa2b1c8ef6c,true,c90dbfa2b1c8ef6c,2026-05-08T21:00:01+00:00,false +/sql-reference/aggregate-functions/reference/groupbitmapand,docs/sql-reference/aggregate-functions/reference/groupBitmapAnd.md,core/reference/functions/aggregate-functions/reference/groupBitmapAnd.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitmapand,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupBitmapAnd,matched,df6c684bf932f088,true,df6c684bf932f088,2026-05-08T21:00:01+00:00,false +/sql-reference/aggregate-functions/reference/groupbitmapor,docs/sql-reference/aggregate-functions/reference/groupBitmapOr.md,core/reference/functions/aggregate-functions/reference/groupBitmapOr.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitmapor,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupBitmapOr,matched,0eaec4ec9af6dde2,true,0eaec4ec9af6dde2,2026-05-08T21:00:01+00:00,false +/sql-reference/aggregate-functions/reference/groupbitmapxor,docs/sql-reference/aggregate-functions/reference/groupBitmapXor.md,core/reference/functions/aggregate-functions/reference/groupBitmapXor.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitmapxor,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupBitmapXor,matched,1e730d1721dd63a6,true,1e730d1721dd63a6,2026-05-08T21:00:01+00:00,false +/sql-reference/aggregate-functions/reference/groupbitor,docs/sql-reference/aggregate-functions/reference/groupBitOr.md,core/reference/functions/aggregate-functions/reference/groupBitOr.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitor,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupBitOr,matched,b0b38466e6e43952,true,b0b38466e6e43952,2026-05-08T21:00:00+00:00,false +/sql-reference/aggregate-functions/reference/groupbitxor,docs/sql-reference/aggregate-functions/reference/groupBitXor.md,core/reference/functions/aggregate-functions/reference/groupBitXor.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupbitxor,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupBitXor,matched,6f9cf66e8d91ee27,true,6f9cf66e8d91ee27,2026-05-08T21:00:00+00:00,false +/sql-reference/aggregate-functions/reference/groupconcat,docs/sql-reference/aggregate-functions/reference/groupConcat.md,core/reference/functions/aggregate-functions/reference/groupConcat.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupconcat,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupConcat,matched,aef59c59999cb93f,true,aef59c59999cb93f,2026-05-08T21:00:01+00:00,false +/sql-reference/aggregate-functions/reference/groupuniqarray,docs/sql-reference/aggregate-functions/reference/groupUniqArray.md,core/reference/functions/aggregate-functions/reference/groupUniqArray.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/groupuniqarray,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/groupUniqArray,matched,4f1528557c879670,true,4f1528557c879670,2026-05-08T21:00:01+00:00,false +/sql-reference/aggregate-functions/reference/intervalLengthSum,docs/sql-reference/aggregate-functions/reference/intervalLengthSum.md,core/reference/functions/aggregate-functions/reference/intervalLengthSum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/intervalLengthSum,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/intervalLengthSum,matched,c362c634343f806c,true,c362c634343f806c,2026-05-08T21:00:02+00:00,false +/sql-reference/aggregate-functions/reference/kolmogorovsmirnovtest,docs/sql-reference/aggregate-functions/reference/kolmogorovSmirnovTest.md,core/reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/kolmogorovsmirnovtest,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest,matched,27687d12b6f1c455,true,27687d12b6f1c455,2026-05-08T21:00:02+00:00,false +/sql-reference/aggregate-functions/reference/kurtpop,docs/sql-reference/aggregate-functions/reference/kurtPop.md,core/reference/functions/aggregate-functions/reference/kurtPop.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/kurtpop,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/kurtPop,matched,33b95ba74805d730,true,33b95ba74805d730,2026-05-08T21:00:02+00:00,false +/sql-reference/aggregate-functions/reference/kurtsamp,docs/sql-reference/aggregate-functions/reference/kurtSamp.md,core/reference/functions/aggregate-functions/reference/kurtSamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/kurtsamp,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/kurtSamp,matched,16d5e9fb741c9428,true,16d5e9fb741c9428,2026-05-08T21:00:02+00:00,false +/sql-reference/aggregate-functions/reference/largestTriangleThreeBuckets,docs/sql-reference/aggregate-functions/reference/largestTriangleThreeBuckets.md,core/reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/largestTriangleThreeBuckets,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets,matched,faacd7ce22cd604f,true,faacd7ce22cd604f,2026-05-08T21:00:02+00:00,false +/sql-reference/aggregate-functions/reference/last_value,docs/sql-reference/aggregate-functions/reference/last_value.md,core/reference/functions/aggregate-functions/reference/last_value.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/last_value,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/last_value,matched,f56dfaab318ae549,true,0b3c34b1376a8b6a,2026-05-09T09:39:38+00:00,false +/sql-reference/aggregate-functions/reference/mannwhitneyutest,docs/sql-reference/aggregate-functions/reference/mannWhitneyUTest.md,core/reference/functions/aggregate-functions/reference/mannWhitneyUTest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/mannwhitneyutest,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/mannWhitneyUTest,matched,4367510976c76b40,true,4367510976c76b40,2026-05-08T21:00:03+00:00,false +/sql-reference/aggregate-functions/reference/max,docs/sql-reference/aggregate-functions/reference/max.md,core/reference/functions/aggregate-functions/reference/max.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/max,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/max,matched,b0cbff46a8a26271,true,b0cbff46a8a26271,2026-05-08T21:00:03+00:00,false +/sql-reference/aggregate-functions/reference/maxintersections,docs/sql-reference/aggregate-functions/reference/maxIntersections.md,core/reference/functions/aggregate-functions/reference/maxIntersections.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/maxintersections,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/maxIntersections,matched,1db6c9bf885f905c,true,1db6c9bf885f905c,2026-05-08T21:00:03+00:00,false +/sql-reference/aggregate-functions/reference/maxintersectionsposition,docs/sql-reference/aggregate-functions/reference/maxIntersectionsPosition.md,core/reference/functions/aggregate-functions/reference/maxIntersectionsPosition.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/maxintersectionsposition,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/maxIntersectionsPosition,matched,2f7f75d00642024e,true,2f7f75d00642024e,2026-05-08T21:00:03+00:00,false +/sql-reference/aggregate-functions/reference/maxmap,docs/sql-reference/aggregate-functions/reference/maxMappedArrays.md,core/reference/functions/aggregate-functions/reference/maxMap.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/maxmap,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/maxMap,matched,f0fe439c1f7370f3,true,f0fe439c1f7370f3,2026-05-13T13:16:51+00:00,false +/sql-reference/aggregate-functions/reference/meanztest,docs/sql-reference/aggregate-functions/reference/meanZTest.md,core/reference/functions/aggregate-functions/reference/meanZTest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/meanztest,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/meanZTest,matched,51be0a7689b2a9f9,true,51be0a7689b2a9f9,2026-05-08T21:00:03+00:00,false +/sql-reference/aggregate-functions/reference/median,docs/sql-reference/aggregate-functions/reference/median.md,core/reference/functions/aggregate-functions/reference/median.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/median,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/median,matched,ad5f042fbebec65e,true,ad5f042fbebec65e,2026-05-19T11:08:53+00:00,false +/sql-reference/aggregate-functions/reference/min,docs/sql-reference/aggregate-functions/reference/min.md,core/reference/functions/aggregate-functions/reference/min.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/min,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/min,matched,b84822a35e335c8a,true,b84822a35e335c8a,2026-05-08T21:00:04+00:00,false +/sql-reference/aggregate-functions/reference/minmap,docs/sql-reference/aggregate-functions/reference/minMappedArrays.md,core/reference/functions/aggregate-functions/reference/minMap.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/minmap,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/minMap,matched,e3a1e1ace77e38b6,true,e3a1e1ace77e38b6,2026-05-08T21:00:04+00:00,false +/sql-reference/aggregate-functions/reference/quantile,docs/sql-reference/aggregate-functions/reference/quantile.md,core/reference/functions/aggregate-functions/reference/quantile.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantile,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantile,matched,4ba18890167b40fd,true,4ba18890167b40fd,2026-05-09T09:39:38+00:00,false +/sql-reference/aggregate-functions/reference/quantileExactExclusive,docs/sql-reference/aggregate-functions/reference/quantileExactExclusive.md,core/reference/functions/aggregate-functions/reference/quantileExactExclusive.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileExactExclusive,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileExactExclusive,matched,ed2a0f781f64a5ae,true,ed2a0f781f64a5ae,2026-05-08T21:00:05+00:00,false +/sql-reference/aggregate-functions/reference/quantileExactHigh,docs/sql-reference/aggregate-functions/reference/quantileExactHigh.md,core/reference/functions/aggregate-functions/reference/quantileExactHigh.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileExactHigh,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileExactHigh,matched,4a48e8ed7359f12e,true,4a48e8ed7359f12e,2026-05-08T21:00:05+00:00,false +/sql-reference/aggregate-functions/reference/quantileExactInclusive,docs/sql-reference/aggregate-functions/reference/quantileExactInclusive.md,core/reference/functions/aggregate-functions/reference/quantileExactInclusive.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileExactInclusive,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileExactInclusive,matched,e650a118cfedfa52,true,e650a118cfedfa52,2026-05-08T21:00:05+00:00,false +/sql-reference/aggregate-functions/reference/quantileExactLow,docs/sql-reference/aggregate-functions/reference/quantileExactLow.md,core/reference/functions/aggregate-functions/reference/quantileExactLow.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileExactLow,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileExactLow,matched,e755c0c350683c45,true,e755c0c350683c45,2026-05-08T21:00:05+00:00,false +/sql-reference/aggregate-functions/reference/quantileExactWeightedInterpolated,docs/sql-reference/aggregate-functions/reference/quantileExactWeightedInterpolated.md,core/reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileExactWeightedInterpolated,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated,matched,599497aa7290178e,true,599497aa7290178e,2026-05-08T21:00:06+00:00,false +/sql-reference/aggregate-functions/reference/quantileGK,docs/sql-reference/aggregate-functions/reference/quantileGK.md,core/reference/functions/aggregate-functions/reference/quantileGK.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileGK,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileGK,matched,d2a54f56603dc2f3,true,d2a54f56603dc2f3,2026-05-08T21:00:06+00:00,false +/sql-reference/aggregate-functions/reference/quantileInterpolatedWeighted,docs/sql-reference/aggregate-functions/reference/quantileInterpolatedWeighted.md,core/reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileInterpolatedWeighted,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted,matched,e1ea7341c5f539b8,true,e1ea7341c5f539b8,2026-05-08T21:00:06+00:00,false +/sql-reference/aggregate-functions/reference/quantilePrometheusHistogram,docs/sql-reference/aggregate-functions/reference/quantilePrometheusHistogram.md,core/reference/functions/aggregate-functions/reference/quantilePrometheusHistogram.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilePrometheusHistogram,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantilePrometheusHistogram,matched,29ce947c5bccd54e,true,29ce947c5bccd54e,2026-05-08T21:00:06+00:00,false +/sql-reference/aggregate-functions/reference/quantilebfloat16,docs/sql-reference/aggregate-functions/reference/quantileBFloat16.md,core/reference/functions/aggregate-functions/reference/quantileBFloat16.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilebfloat16,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileBFloat16,matched,e02f8398a1e6c992,true,e02f8398a1e6c992,2026-05-08T21:00:04+00:00,false +/sql-reference/aggregate-functions/reference/quantileddsketch,docs/sql-reference/aggregate-functions/reference/quantileDD.md,core/reference/functions/aggregate-functions/reference/quantileddsketch.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileddsketch,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileddsketch,matched,b70b5911fe4dcdcd,true,b70b5911fe4dcdcd,2026-05-08T21:00:07+00:00,false +/sql-reference/aggregate-functions/reference/quantiledeterministic,docs/sql-reference/aggregate-functions/reference/quantileDeterministic.md,core/reference/functions/aggregate-functions/reference/quantileDeterministic.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiledeterministic,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileDeterministic,matched,6b577bef9f8aabe5,true,6b577bef9f8aabe5,2026-05-08T21:00:04+00:00,false +/sql-reference/aggregate-functions/reference/quantileexact,docs/sql-reference/aggregate-functions/reference/quantileExact.md,core/reference/functions/aggregate-functions/reference/quantileExact.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileexact,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileExact,matched,c06d0383b8fa44d6,true,c06d0383b8fa44d6,2026-05-08T21:00:04+00:00,false +/sql-reference/aggregate-functions/reference/quantileexactweighted,docs/sql-reference/aggregate-functions/reference/quantileExactWeighted.md,core/reference/functions/aggregate-functions/reference/quantileExactWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantileexactweighted,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileExactWeighted,matched,55fe1cc2813d807d,true,55fe1cc2813d807d,2026-05-08T21:00:05+00:00,false +/sql-reference/aggregate-functions/reference/quantiles,docs/sql-reference/aggregate-functions/reference/quantiles.md,core/reference/functions/aggregate-functions/reference/quantiles.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiles,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantiles,matched,10a8a9fb55d3667e,true,10a8a9fb55d3667e,2026-05-08T21:00:07+00:00,false +/sql-reference/aggregate-functions/reference/quantilesExactExclusive,docs/sql-reference/aggregate-functions/reference/quantilesExactExclusive.md,core/reference/functions/aggregate-functions/reference/quantilesExactExclusive.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilesExactExclusive,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantilesExactExclusive,matched,d34559dee60fa650,true,d34559dee60fa650,2026-05-08T21:00:07+00:00,false +/sql-reference/aggregate-functions/reference/quantilesExactInclusive,docs/sql-reference/aggregate-functions/reference/quantilesExactInclusive.md,core/reference/functions/aggregate-functions/reference/quantilesExactInclusive.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilesExactInclusive,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantilesExactInclusive,matched,585098e46f9ed905,true,585098e46f9ed905,2026-05-08T21:00:07+00:00,false +/sql-reference/aggregate-functions/reference/quantilesGK,docs/sql-reference/aggregate-functions/reference/quantilesGK.md,core/reference/functions/aggregate-functions/reference/quantilesGK.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilesGK,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantilesGK,matched,94e0f130f7219917,true,94e0f130f7219917,2026-05-08T21:00:08+00:00,false +/sql-reference/aggregate-functions/reference/quantilestimingweighted,docs/sql-reference/aggregate-functions/reference/quantilesTimingWeighted.md,core/reference/functions/aggregate-functions/reference/quantilesTimingWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantilestimingweighted,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantilesTimingWeighted,matched,62b3f7a28b018c37,true,62b3f7a28b018c37,2026-05-08T21:00:08+00:00,false +/sql-reference/aggregate-functions/reference/quantiletdigest,docs/sql-reference/aggregate-functions/reference/quantileTDigest.md,core/reference/functions/aggregate-functions/reference/quantileTDigest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiletdigest,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileTDigest,matched,1d7cc3bd0a254723,true,1d7cc3bd0a254723,2026-05-08T21:00:06+00:00,false +/sql-reference/aggregate-functions/reference/quantiletdigestweighted,docs/sql-reference/aggregate-functions/reference/quantileTDigestWeighted.md,core/reference/functions/aggregate-functions/reference/quantileTDigestWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiletdigestweighted,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileTDigestWeighted,matched,75265d258c6d0d1c,true,75265d258c6d0d1c,2026-05-08T21:00:06+00:00,false +/sql-reference/aggregate-functions/reference/quantiletiming,docs/sql-reference/aggregate-functions/reference/quantileTiming.md,core/reference/functions/aggregate-functions/reference/quantileTiming.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiletiming,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileTiming,matched,01a30e87131303d3,true,01a30e87131303d3,2026-05-08T21:00:07+00:00,false +/sql-reference/aggregate-functions/reference/quantiletimingweighted,docs/sql-reference/aggregate-functions/reference/quantileTimingWeighted.md,core/reference/functions/aggregate-functions/reference/quantileTimingWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/quantiletimingweighted,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/quantileTimingWeighted,matched,6d110c327a873af2,true,6d110c327a873af2,2026-05-08T21:00:07+00:00,false +/sql-reference/aggregate-functions/reference/rankCorr,docs/sql-reference/aggregate-functions/reference/rankCorr.md,core/reference/functions/aggregate-functions/reference/rankCorr.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/rankCorr,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/rankCorr,matched,5eb236ef7745a0b9,true,5eb236ef7745a0b9,2026-05-08T21:00:08+00:00,false +/sql-reference/aggregate-functions/reference/simplelinearregression,docs/sql-reference/aggregate-functions/reference/simpleLinearRegression.md,core/reference/functions/aggregate-functions/reference/simpleLinearRegression.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/simplelinearregression,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/simpleLinearRegression,matched,d7486769247276c2,true,d7486769247276c2,2026-05-08T21:00:08+00:00,false +/sql-reference/aggregate-functions/reference/singlevalueornull,docs/sql-reference/aggregate-functions/reference/singleValueOrNull.md,core/reference/functions/aggregate-functions/reference/singleValueOrNull.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/singlevalueornull,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/singleValueOrNull,matched,067ce8f52cc34020,true,067ce8f52cc34020,2026-05-08T21:00:08+00:00,false +/sql-reference/aggregate-functions/reference/skewpop,docs/sql-reference/aggregate-functions/reference/skewPop.md,core/reference/functions/aggregate-functions/reference/skewPop.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/skewpop,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/skewPop,matched,e2af24567eed8273,true,e2af24567eed8273,2026-05-08T21:00:08+00:00,false +/sql-reference/aggregate-functions/reference/skewsamp,docs/sql-reference/aggregate-functions/reference/skewSamp.md,core/reference/functions/aggregate-functions/reference/skewSamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/skewsamp,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/skewSamp,matched,4016cf36e3a3e5ec,true,4016cf36e3a3e5ec,2026-05-08T21:00:09+00:00,false +/sql-reference/aggregate-functions/reference/sparkbar,docs/sql-reference/aggregate-functions/reference/sparkbar.md,core/reference/functions/aggregate-functions/reference/sparkbar.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/sparkbar,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/sparkbar,matched,7bd5a27027209cee,true,7bd5a27027209cee,2026-05-08T21:00:09+00:00,false +/sql-reference/aggregate-functions/reference/stddevpop,docs/sql-reference/aggregate-functions/reference/stddevPop.md,core/reference/functions/aggregate-functions/reference/stddevPop.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stddevpop,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/stddevPop,matched,c5ce3f3d8df7d8d6,true,c5ce3f3d8df7d8d6,2026-05-08T21:00:09+00:00,false +/sql-reference/aggregate-functions/reference/stddevpopstable,docs/sql-reference/aggregate-functions/reference/stddevPopStable.md,core/reference/functions/aggregate-functions/reference/stddevPopStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stddevpopstable,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/stddevPopStable,matched,16baf1cfe989fd73,true,16baf1cfe989fd73,2026-05-08T21:00:09+00:00,false +/sql-reference/aggregate-functions/reference/stddevsamp,docs/sql-reference/aggregate-functions/reference/stddevSamp.md,core/reference/functions/aggregate-functions/reference/stddevSamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stddevsamp,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/stddevSamp,matched,379c0a8ad495e0b1,true,379c0a8ad495e0b1,2026-05-19T11:08:53+00:00,false +/sql-reference/aggregate-functions/reference/stddevsampstable,docs/sql-reference/aggregate-functions/reference/stddevSampStable.md,core/reference/functions/aggregate-functions/reference/stddevSampStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stddevsampstable,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/stddevSampStable,matched,1fadf143f4ef0cf4,true,1fadf143f4ef0cf4,2026-05-08T21:00:09+00:00,false +/sql-reference/aggregate-functions/reference/stochasticlinearregression,docs/sql-reference/aggregate-functions/reference/stochasticLinearRegression.md,core/reference/functions/aggregate-functions/reference/stochasticLinearRegression.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stochasticlinearregression,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/stochasticLinearRegression,matched,c4d9e3bbe8e1bc68,true,c4d9e3bbe8e1bc68,2026-05-08T21:00:10+00:00,false +/sql-reference/aggregate-functions/reference/stochasticlogisticregression,docs/sql-reference/aggregate-functions/reference/stochasticLogisticRegression.md,core/reference/functions/aggregate-functions/reference/stochasticLogisticRegression.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/stochasticlogisticregression,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/stochasticLogisticRegression,matched,8b69bdb0a3aa259f,true,8b69bdb0a3aa259f,2026-05-08T21:00:10+00:00,false +/sql-reference/aggregate-functions/reference/studentttest,docs/sql-reference/aggregate-functions/reference/studentTTest.md,core/reference/functions/aggregate-functions/reference/studentTTest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/studentttest,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/studentTTest,matched,cfe4523cefd58cc8,true,cfe4523cefd58cc8,2026-05-08T21:00:10+00:00,false +/sql-reference/aggregate-functions/reference/studentttestonesample,docs/sql-reference/aggregate-functions/reference/studentTTestOneSample.md,core/reference/functions/aggregate-functions/reference/studentTTestOneSample.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/studentttestonesample,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/studentTTestOneSample,matched,502a06938cf42f44,true,502a06938cf42f44,2026-05-08T21:00:10+00:00,false +/sql-reference/aggregate-functions/reference/sum,docs/sql-reference/aggregate-functions/reference/sum.md,core/reference/functions/aggregate-functions/reference/sum.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/sum,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/sum,matched,0549c49a93aa84fe,true,0549c49a93aa84fe,2026-05-08T21:00:10+00:00,false +/sql-reference/aggregate-functions/reference/sumcount,docs/sql-reference/aggregate-functions/reference/sumCount.md,core/reference/functions/aggregate-functions/reference/sumCount.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/sumcount,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/sumCount,matched,706546f7617d6591,true,706546f7617d6591,2026-05-08T21:00:10+00:00,false +/sql-reference/aggregate-functions/reference/sumkahan,docs/sql-reference/aggregate-functions/reference/sumKahan.md,core/reference/functions/aggregate-functions/reference/sumKahan.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/sumkahan,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/sumKahan,matched,c77086880163f32d,true,c77086880163f32d,2026-05-08T21:00:11+00:00,false +/sql-reference/aggregate-functions/reference/summap,docs/sql-reference/aggregate-functions/reference/sumMappedArrays.md,core/reference/functions/aggregate-functions/reference/sumMap.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/summap,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/sumMap,matched,07b0d144a6cab0bd,true,07b0d144a6cab0bd,2026-05-08T21:00:11+00:00,false +/sql-reference/aggregate-functions/reference/summapwithoverflow,docs/sql-reference/aggregate-functions/reference/sumMapWithOverflow.md,core/reference/functions/aggregate-functions/reference/sumMapWithOverflow.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/summapwithoverflow,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/sumMapWithOverflow,matched,ae19536ac544cab1,true,ae19536ac544cab1,2026-05-08T21:00:11+00:00,false +/sql-reference/aggregate-functions/reference/sumwithoverflow,docs/sql-reference/aggregate-functions/reference/sumWithOverflow.md,core/reference/functions/aggregate-functions/reference/sumWithOverflow.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/sumwithoverflow,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/sumWithOverflow,matched,a575e1e9e1aa17c6,true,a575e1e9e1aa17c6,2026-05-08T21:00:11+00:00,false +/sql-reference/aggregate-functions/reference/theilsu,docs/sql-reference/aggregate-functions/reference/theilsU.md,core/reference/functions/aggregate-functions/reference/theilsU.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/theilsu,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/theilsU,matched,f9641d2fa8c06b43,true,f9641d2fa8c06b43,2026-05-08T21:00:11+00:00,false +/sql-reference/aggregate-functions/reference/timeSeriesChangesToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesChangesToGrid.md,core/reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesChangesToGrid,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid,matched,465c63acace057e4,true,465c63acace057e4,2026-05-08T21:00:12+00:00,false +/sql-reference/aggregate-functions/reference/timeSeriesDeltaToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesDeltaToGrid.md,core/reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesDeltaToGrid,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid,matched,a7575992cec3b9c1,true,a7575992cec3b9c1,2026-05-08T21:00:12+00:00,false +/sql-reference/aggregate-functions/reference/timeSeriesDerivToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesDerivToGrid.md,core/reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesDerivToGrid,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid,matched,020c5de99f82c4de,true,020c5de99f82c4de,2026-05-08T21:00:12+00:00,false +/sql-reference/aggregate-functions/reference/timeSeriesGroupArray,docs/sql-reference/aggregate-functions/reference/timeSeriesGroupArray.md,core/reference/functions/aggregate-functions/reference/timeSeriesGroupArray.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesGroupArray,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/timeSeriesGroupArray,matched,2a88a94362703b47,true,2a88a94362703b47,2026-05-08T21:00:12+00:00,false +/sql-reference/aggregate-functions/reference/timeSeriesInstantDeltaToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesInstantDeltaToGrid.md,core/reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesInstantDeltaToGrid,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid,matched,867429d1a5c91300,true,867429d1a5c91300,2026-05-08T21:00:12+00:00,false +/sql-reference/aggregate-functions/reference/timeSeriesInstantRateToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesInstantRateToGrid.md,core/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesInstantRateToGrid,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid,matched,6d6f94fdd0571b8c,true,6d6f94fdd0571b8c,2026-05-08T21:00:12+00:00,false +/sql-reference/aggregate-functions/reference/timeSeriesLastTwoSamples,docs/sql-reference/aggregate-functions/reference/timeSeriesLastTwoSamples.md,core/reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesLastTwoSamples,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples,matched,011ddcf3bc0d196f,true,011ddcf3bc0d196f,2026-05-08T21:00:13+00:00,false +/sql-reference/aggregate-functions/reference/timeSeriesPredictLinearToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesPredictLinearToGrid.md,core/reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesPredictLinearToGrid,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid,matched,402cbd0464433072,true,402cbd0464433072,2026-05-08T21:00:13+00:00,false +/sql-reference/aggregate-functions/reference/timeSeriesRateToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesRateToGrid.md,core/reference/functions/aggregate-functions/reference/timeSeriesRateToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesRateToGrid,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/timeSeriesRateToGrid,matched,b5bd48b48922623f,true,b5bd48b48922623f,2026-05-08T21:00:13+00:00,false +/sql-reference/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness,docs/sql-reference/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness.md,core/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness,matched,d370d2e8ea9928d6,true,d370d2e8ea9928d6,2026-05-08T21:00:13+00:00,false +/sql-reference/aggregate-functions/reference/timeSeriesResetsToGrid,docs/sql-reference/aggregate-functions/reference/timeSeriesResetsToGrid.md,core/reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/timeSeriesResetsToGrid,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid,matched,b44ffe5bd8ce26a9,true,b44ffe5bd8ce26a9,2026-05-08T21:00:13+00:00,false +/sql-reference/aggregate-functions/reference/topk,docs/sql-reference/aggregate-functions/reference/topK.md,core/reference/functions/aggregate-functions/reference/topK.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/topk,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/topK,matched,273a5a9e0902dab6,true,273a5a9e0902dab6,2026-05-08T21:00:13+00:00,false +/sql-reference/aggregate-functions/reference/topkweighted,docs/sql-reference/aggregate-functions/reference/topKWeighted.md,core/reference/functions/aggregate-functions/reference/topKWeighted.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/topkweighted,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/topKWeighted,matched,4b44410a1a7a8c5e,true,4b44410a1a7a8c5e,2026-05-08T21:00:14+00:00,false +/sql-reference/aggregate-functions/reference/uniq,docs/sql-reference/aggregate-functions/reference/uniq.md,core/reference/functions/aggregate-functions/reference/uniq.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniq,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/uniq,matched,57a4ad14f7750346,true,57a4ad14f7750346,2026-05-08T21:00:14+00:00,false +/sql-reference/aggregate-functions/reference/uniqcombined,docs/sql-reference/aggregate-functions/reference/uniqCombined.md,core/reference/functions/aggregate-functions/reference/uniqCombined.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniqcombined,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/uniqCombined,matched,47d53db402a92a77,true,47d53db402a92a77,2026-05-08T21:00:14+00:00,false +/sql-reference/aggregate-functions/reference/uniqcombined64,docs/sql-reference/aggregate-functions/reference/uniqCombined64.md,core/reference/functions/aggregate-functions/reference/uniqCombined64.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniqcombined64,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/uniqCombined64,matched,ed89f2bb16c50034,true,ed89f2bb16c50034,2026-05-08T21:00:14+00:00,false +/sql-reference/aggregate-functions/reference/uniqexact,docs/sql-reference/aggregate-functions/reference/uniqExact.md,core/reference/functions/aggregate-functions/reference/uniqExact.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniqexact,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/uniqExact,matched,29f6f4cd3446c2f6,true,29f6f4cd3446c2f6,2026-05-08T21:00:14+00:00,false +/sql-reference/aggregate-functions/reference/uniqhll12,docs/sql-reference/aggregate-functions/reference/uniqHLL12.md,core/reference/functions/aggregate-functions/reference/uniqHLL12.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniqhll12,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/uniqHLL12,matched,510a2dd8db5c0a6e,true,510a2dd8db5c0a6e,2026-05-08T21:00:14+00:00,false +/sql-reference/aggregate-functions/reference/uniqthetasketch,docs/sql-reference/aggregate-functions/reference/uniqTheta.md,core/reference/functions/aggregate-functions/reference/uniqthetasketch.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/uniqthetasketch,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/uniqthetasketch,matched,0f2139338a6b37aa,true,0f2139338a6b37aa,2026-05-08T21:00:15+00:00,false +/sql-reference/aggregate-functions/reference/varPop,docs/sql-reference/aggregate-functions/reference/varPop.md,core/reference/functions/aggregate-functions/reference/varPop.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/varPop,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/varPop,matched,1579e9b9fca97bf8,true,1579e9b9fca97bf8,2026-05-08T21:00:15+00:00,false +/sql-reference/aggregate-functions/reference/varSamp,docs/sql-reference/aggregate-functions/reference/varSamp.md,core/reference/functions/aggregate-functions/reference/varSamp.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/varSamp,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/varSamp,matched,e6f744197741c8c8,true,e6f744197741c8c8,2026-05-08T21:00:15+00:00,false +/sql-reference/aggregate-functions/reference/varpopstable,docs/sql-reference/aggregate-functions/reference/varPopStable.md,core/reference/functions/aggregate-functions/reference/varPopStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/varpopstable,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/varPopStable,matched,4fd75682cc5a8796,true,4fd75682cc5a8796,2026-05-08T21:00:15+00:00,false +/sql-reference/aggregate-functions/reference/varsampstable,docs/sql-reference/aggregate-functions/reference/varSampStable.md,core/reference/functions/aggregate-functions/reference/varSampStable.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/varsampstable,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/varSampStable,matched,571f165781684dfd,true,571f165781684dfd,2026-05-08T21:00:15+00:00,false +/sql-reference/aggregate-functions/reference/welchttest,docs/sql-reference/aggregate-functions/reference/welchTTest.md,core/reference/functions/aggregate-functions/reference/welchTTest.mdx,https://clickhouse.com/docs/sql-reference/aggregate-functions/reference/welchttest,https://private-7c7dfe99.mintlify.app/core/reference/functions/aggregate-functions/reference/welchTTest,matched,093589621f5bd26b,true,093589621f5bd26b,2026-05-08T21:00:15+00:00,false +/sql-reference/data-types/,docs/sql-reference/data-types/index.md,core/reference/data-types/index.mdx,https://clickhouse.com/docs/sql-reference/data-types/,https://private-7c7dfe99.mintlify.app/core/reference/data-types/index,matched,9132f1b9b2ddc8df,true,4108560a1744ad07,2026-05-09T09:39:38+00:00,false +/sql-reference/data-types/aggregatefunction,docs/sql-reference/data-types/aggregatefunction.md,core/reference/data-types/aggregatefunction.mdx,https://clickhouse.com/docs/sql-reference/data-types/aggregatefunction,https://private-7c7dfe99.mintlify.app/core/reference/data-types/aggregatefunction,matched,72700501d63e067f,true,52272796a3ff10b3,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/array,docs/sql-reference/data-types/array.md,core/reference/data-types/array.mdx,https://clickhouse.com/docs/sql-reference/data-types/array,https://private-7c7dfe99.mintlify.app/core/reference/data-types/array,matched,1e77a6674f8339d9,true,1e77a6674f8339d9,2026-05-19T11:08:53+00:00,false +/sql-reference/data-types/boolean,docs/sql-reference/data-types/boolean.md,core/reference/data-types/boolean.mdx,https://clickhouse.com/docs/sql-reference/data-types/boolean,https://private-7c7dfe99.mintlify.app/core/reference/data-types/boolean,matched,1030c84f2f356452,true,184622e2d0685a28,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/data-types-binary-encoding,docs/sql-reference/data-types/data-types-binary-encoding.md,core/reference/data-types/data-types-binary-encoding.mdx,https://clickhouse.com/docs/sql-reference/data-types/data-types-binary-encoding,https://private-7c7dfe99.mintlify.app/core/reference/data-types/data-types-binary-encoding,matched,4f9c147ef25a77fd,true,86296003488064b4,2026-05-09T09:39:38+00:00,false +/sql-reference/data-types/date,docs/sql-reference/data-types/date.md,core/reference/data-types/date.mdx,https://clickhouse.com/docs/sql-reference/data-types/date,https://private-7c7dfe99.mintlify.app/core/reference/data-types/date,matched,a4e08d45fe47f80e,true,c5d8b4488de9c51f,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/date32,docs/sql-reference/data-types/date32.md,core/reference/data-types/date32.mdx,https://clickhouse.com/docs/sql-reference/data-types/date32,https://private-7c7dfe99.mintlify.app/core/reference/data-types/date32,matched,bdf2f799fb7d1f31,true,aed29aa437dec69f,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/datetime,docs/sql-reference/data-types/datetime.md,core/reference/data-types/datetime.mdx,https://clickhouse.com/docs/sql-reference/data-types/datetime,https://private-7c7dfe99.mintlify.app/core/reference/data-types/datetime,matched,707225593664b6b5,true,0e7133cab0e8062e,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/datetime64,docs/sql-reference/data-types/datetime64.md,core/reference/data-types/datetime64.mdx,https://clickhouse.com/docs/sql-reference/data-types/datetime64,https://private-7c7dfe99.mintlify.app/core/reference/data-types/datetime64,matched,be0c73ee4d2ab665,true,b4bdfab5749d54b1,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/decimal,docs/sql-reference/data-types/decimal.md,core/reference/data-types/decimal.mdx,https://clickhouse.com/docs/sql-reference/data-types/decimal,https://private-7c7dfe99.mintlify.app/core/reference/data-types/decimal,matched,653899069662089c,true,653899069662089c,2026-05-19T11:08:53+00:00,false +/sql-reference/data-types/domains/,docs/sql-reference/data-types/domains/index.md,core/reference/data-types/domains/index.mdx,https://clickhouse.com/docs/sql-reference/data-types/domains/,https://private-7c7dfe99.mintlify.app/core/reference/data-types/domains/index,matched,0d25ebf14e813c04,true,35e6467692a1dada,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/dynamic,docs/sql-reference/data-types/dynamic.md,core/reference/data-types/dynamic.mdx,https://clickhouse.com/docs/sql-reference/data-types/dynamic,https://private-7c7dfe99.mintlify.app/core/reference/data-types/dynamic,matched,85e7013c7806b92c,true,e0aa544319320b10,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/enum,docs/sql-reference/data-types/enum.md,core/reference/data-types/enum.mdx,https://clickhouse.com/docs/sql-reference/data-types/enum,https://private-7c7dfe99.mintlify.app/core/reference/data-types/enum,matched,31c2da25a9947c25,true,641d2a22f3cbbdbb,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/fixedstring,docs/sql-reference/data-types/fixedstring.md,core/reference/data-types/fixedstring.mdx,https://clickhouse.com/docs/sql-reference/data-types/fixedstring,https://private-7c7dfe99.mintlify.app/core/reference/data-types/fixedstring,matched,9434b8c9845ff691,true,0151197975962877,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/float,docs/sql-reference/data-types/float.md,core/reference/data-types/float.mdx,https://clickhouse.com/docs/sql-reference/data-types/float,https://private-7c7dfe99.mintlify.app/core/reference/data-types/float,matched,2d7561d0476ccb3e,true,2d7561d0476ccb3e,2026-05-08T21:09:58+00:00,false +/sql-reference/data-types/geo,docs/sql-reference/data-types/geo.md,core/reference/data-types/geo.mdx,https://clickhouse.com/docs/sql-reference/data-types/geo,https://private-7c7dfe99.mintlify.app/core/reference/data-types/geo,matched,6b11f46eea07e5df,true,6b11f46eea07e5df,2026-05-19T11:08:53+00:00,false +/sql-reference/data-types/int-uint,docs/sql-reference/data-types/int-uint.md,core/reference/data-types/int-uint.mdx,https://clickhouse.com/docs/sql-reference/data-types/int-uint,https://private-7c7dfe99.mintlify.app/core/reference/data-types/int-uint,matched,5cb5606bdf1fcec7,true,5cb5606bdf1fcec7,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/ipv4,docs/sql-reference/data-types/ipv4.md,core/reference/data-types/ipv4.mdx,https://clickhouse.com/docs/sql-reference/data-types/ipv4,https://private-7c7dfe99.mintlify.app/core/reference/data-types/ipv4,matched,5c8a7b7c41cedb9f,true,5c8a7b7c41cedb9f,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/ipv6,docs/sql-reference/data-types/ipv6.md,core/reference/data-types/ipv6.mdx,https://clickhouse.com/docs/sql-reference/data-types/ipv6,https://private-7c7dfe99.mintlify.app/core/reference/data-types/ipv6,matched,37840663d4e6d0f5,true,37840663d4e6d0f5,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/lowcardinality,docs/sql-reference/data-types/lowcardinality.md,core/reference/data-types/lowcardinality.mdx,https://clickhouse.com/docs/sql-reference/data-types/lowcardinality,https://private-7c7dfe99.mintlify.app/core/reference/data-types/lowcardinality,matched,201a6b0e68f5b0b2,true,8f86b16b90906a6a,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/map,docs/sql-reference/data-types/map.md,core/reference/data-types/map.mdx,https://clickhouse.com/docs/sql-reference/data-types/map,https://private-7c7dfe99.mintlify.app/core/reference/data-types/map,matched,6ae06faace8b64f4,true,6ae06faace8b64f4,2026-05-19T11:08:53+00:00,false +/sql-reference/data-types/nested-data-structures/nested,docs/sql-reference/data-types/nested-data-structures/index.md,core/reference/data-types/nested-data-structures/index.mdx,https://clickhouse.com/docs/sql-reference/data-types/nested-data-structures/nested,https://private-7c7dfe99.mintlify.app/core/reference/data-types/nested-data-structures/index,matched,c11aa1da8c94f713,true,4749e80d37f15822,2026-05-08T09:09:20+00:00,false +/sql-reference/data-types/newjson,docs/sql-reference/data-types/newjson.md,core/reference/data-types/newjson.mdx,https://clickhouse.com/docs/sql-reference/data-types/newjson,https://private-7c7dfe99.mintlify.app/core/reference/data-types/newjson,matched,753d1eabe311c68b,true,753d1eabe311c68b,2026-05-19T11:08:53+00:00,false +/sql-reference/data-types/nullable,docs/sql-reference/data-types/nullable.md,core/reference/data-types/nullable.mdx,https://clickhouse.com/docs/sql-reference/data-types/nullable,https://private-7c7dfe99.mintlify.app/core/reference/data-types/nullable,matched,e3e7ea75631dfd16,true,e3e7ea75631dfd16,2026-05-19T11:08:53+00:00,false +/sql-reference/data-types/qbit,docs/sql-reference/data-types/qbit.md,core/reference/data-types/qbit.mdx,https://clickhouse.com/docs/sql-reference/data-types/qbit,https://private-7c7dfe99.mintlify.app/core/reference/data-types/qbit,matched,3fc9aea952342cbf,true,3fc9aea952342cbf,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/simpleaggregatefunction,docs/sql-reference/data-types/simpleaggregatefunction.md,core/reference/data-types/simpleaggregatefunction.mdx,https://clickhouse.com/docs/sql-reference/data-types/simpleaggregatefunction,https://private-7c7dfe99.mintlify.app/core/reference/data-types/simpleaggregatefunction,matched,421e3771a4d1e80d,true,c976c4c588a9ad9f,2026-05-09T10:03:34+00:00,false +/sql-reference/data-types/special-data-types/,docs/sql-reference/data-types/special-data-types/index.md,core/reference/data-types/special-data-types/index.mdx,https://clickhouse.com/docs/sql-reference/data-types/special-data-types/,https://private-7c7dfe99.mintlify.app/core/reference/data-types/special-data-types/index,matched,ef0b6f747acfa0ec,true,ef0b6f747acfa0ec,2026-05-19T11:08:53+00:00,false +/sql-reference/data-types/special-data-types/expression,docs/sql-reference/data-types/special-data-types/expression.md,core/reference/data-types/special-data-types/expression.mdx,https://clickhouse.com/docs/sql-reference/data-types/special-data-types/expression,https://private-7c7dfe99.mintlify.app/core/reference/data-types/special-data-types/expression,matched,88a8bd0cf24ef01e,true,383175d865a3e8e5,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/special-data-types/interval,docs/sql-reference/data-types/special-data-types/interval.md,core/reference/data-types/special-data-types/interval.mdx,https://clickhouse.com/docs/sql-reference/data-types/special-data-types/interval,https://private-7c7dfe99.mintlify.app/core/reference/data-types/special-data-types/interval,matched,5837b36610c2b5b2,true,d9e724b9d8f9fbae,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/special-data-types/nothing,docs/sql-reference/data-types/special-data-types/nothing.md,core/reference/data-types/special-data-types/nothing.mdx,https://clickhouse.com/docs/sql-reference/data-types/special-data-types/nothing,https://private-7c7dfe99.mintlify.app/core/reference/data-types/special-data-types/nothing,matched,1c1875de77fd50b2,true,54d4adf41787f75b,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/special-data-types/set,docs/sql-reference/data-types/special-data-types/set.md,core/reference/data-types/special-data-types/set.mdx,https://clickhouse.com/docs/sql-reference/data-types/special-data-types/set,https://private-7c7dfe99.mintlify.app/core/reference/data-types/special-data-types/set,matched,aca07b0f37813976,true,b3961ee327c6fafc,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/string,docs/sql-reference/data-types/string.md,core/reference/data-types/string.mdx,https://clickhouse.com/docs/sql-reference/data-types/string,https://private-7c7dfe99.mintlify.app/core/reference/data-types/string,matched,0bf0ed2ba989b68d,true,664e682e3d269a46,2026-05-07T14:49:41+00:00,false +/sql-reference/data-types/time,docs/sql-reference/data-types/time.md,core/reference/data-types/time.mdx,https://clickhouse.com/docs/sql-reference/data-types/time,https://private-7c7dfe99.mintlify.app/core/reference/data-types/time,matched,13ac35c7dfecd788,true,6fba9e18761cacdc,2026-05-09T09:39:38+00:00,false +/sql-reference/data-types/time64,docs/sql-reference/data-types/time64.md,core/reference/data-types/time64.mdx,https://clickhouse.com/docs/sql-reference/data-types/time64,https://private-7c7dfe99.mintlify.app/core/reference/data-types/time64,matched,b76965019f794890,true,36de758d3be79f5c,2026-05-09T09:39:38+00:00,false +/sql-reference/data-types/tuple,docs/sql-reference/data-types/tuple.md,core/reference/data-types/tuple.mdx,https://clickhouse.com/docs/sql-reference/data-types/tuple,https://private-7c7dfe99.mintlify.app/core/reference/data-types/tuple,matched,2a7e6ccb9df89177,true,2a7e6ccb9df89177,2026-05-19T11:08:53+00:00,false +/sql-reference/data-types/uuid,docs/sql-reference/data-types/uuid.md,core/reference/data-types/uuid.mdx,https://clickhouse.com/docs/sql-reference/data-types/uuid,https://private-7c7dfe99.mintlify.app/core/reference/data-types/uuid,matched,0f5f115af04037cc,true,0f5f115af04037cc,2026-05-19T11:08:53+00:00,false +/sql-reference/data-types/variant,docs/sql-reference/data-types/variant.md,core/reference/data-types/variant.mdx,https://clickhouse.com/docs/sql-reference/data-types/variant,https://private-7c7dfe99.mintlify.app/core/reference/data-types/variant,matched,907bde6f04e567df,true,2cf40b2865b06390,2026-05-08T09:09:20+00:00,false +/sql-reference/datalakes,docs/sql-reference/datalakes.md,core/reference/datalakes.mdx,https://clickhouse.com/docs/sql-reference/datalakes,https://private-7c7dfe99.mintlify.app/core/reference/datalakes,matched,576c6b22e45a20fa,true,576c6b22e45a20fa,2026-05-07T14:49:41+00:00,false +/sql-reference/distributed-ddl,docs/sql-reference/distributed-ddl.md,core/reference/statements/distributed-ddl.mdx,https://clickhouse.com/docs/sql-reference/distributed-ddl,https://private-7c7dfe99.mintlify.app/core/reference/statements/distributed-ddl,matched,112d13bcf3046cf7,true,112d13bcf3046cf7,2026-05-09T17:02:01+00:00,false /sql-reference/formats,docs/sql-reference/formats.mdx,,https://clickhouse.com/docs/sql-reference/formats,,unmatched,f15d74887e89dbc7,true,f15d74887e89dbc7,2026-05-08T09:09:20+00:00,false -/sql-reference/functions,docs/sql-reference/functions/index.md,reference/functions/index.mdx,https://clickhouse.com/docs/sql-reference/functions,https://private-7c7dfe99.mintlify.app/reference/functions,matched,f8bdbd53bca6538f,true,f8bdbd53bca6538f,2026-05-09T14:57:56+00:00,false -/sql-reference/functions/ai-functions,docs/sql-reference/functions/ai-functions.md,reference/functions/regular-functions/ai-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/ai-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/ai-functions,matched,f4c7162165bc448f,true,f4c7162165bc448f,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/arithmetic-functions,docs/sql-reference/functions/arithmetic-functions.md,reference/functions/regular-functions/arithmetic-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/arithmetic-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/arithmetic-functions,matched,02b001fbc5c71e7a,true,02b001fbc5c71e7a,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/array-functions,docs/sql-reference/functions/array-functions.md,reference/functions/regular-functions/array-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/array-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/array-functions,matched,2af9113b37ef938b,true,2af9113b37ef938b,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/array-join,docs/sql-reference/functions/array-join.md,reference/functions/regular-functions/array-join.mdx,https://clickhouse.com/docs/sql-reference/functions/array-join,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/array-join,matched,f957edbf7546dd57,true,f957edbf7546dd57,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/bit-functions,docs/sql-reference/functions/bit-functions.md,reference/functions/regular-functions/bit-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/bit-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/bit-functions,matched,5eba45d5047e61ed,true,5eba45d5047e61ed,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/bitmap-functions,docs/sql-reference/functions/bitmap-functions.md,reference/functions/regular-functions/bitmap-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/bitmap-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/bitmap-functions,matched,beb814995a4d3828,true,beb814995a4d3828,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/comparison-functions,docs/sql-reference/functions/comparison-functions.md,reference/functions/regular-functions/comparison-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/comparison-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/comparison-functions,matched,a367f52dd26b9689,true,a367f52dd26b9689,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/conditional-functions,docs/sql-reference/functions/conditional-functions.md,reference/functions/regular-functions/conditional-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/conditional-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/conditional-functions,matched,572d7f58d1fadc2b,true,572d7f58d1fadc2b,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/date-time-functions,docs/sql-reference/functions/date-time-functions.md,reference/functions/regular-functions/date-time-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/date-time-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/date-time-functions,matched,c1ae3146d9e1277c,true,c1ae3146d9e1277c,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/distance-functions,docs/sql-reference/functions/distance-functions.md,reference/functions/regular-functions/distance-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/distance-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/distance-functions,matched,f38245971fff95d0,true,d640404b6455109c,2026-05-08T21:00:17+00:00,false -/sql-reference/functions/encoding-functions,docs/sql-reference/functions/encoding-functions.md,reference/functions/regular-functions/encoding-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/encoding-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/encoding-functions,matched,ef94c3584fe6e806,true,1eb826597211a7ff,2026-05-08T21:00:17+00:00,false -/sql-reference/functions/encryption-functions,docs/sql-reference/functions/encryption-functions.md,reference/functions/regular-functions/encryption-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/encryption-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/encryption-functions,matched,2f986310e85f4a78,true,2fd413bc4634b77e,2026-05-08T21:00:18+00:00,false -/sql-reference/functions/ext-dict-functions,docs/sql-reference/functions/ext-dict-functions.md,reference/functions/regular-functions/ext-dict-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/ext-dict-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/ext-dict-functions,matched,298d92d6d2051a70,true,c7909951aa9b73e5,2026-05-08T21:00:18+00:00,false -/sql-reference/functions/files,docs/sql-reference/functions/files.md,reference/functions/regular-functions/files.mdx,https://clickhouse.com/docs/sql-reference/functions/files,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/files,matched,17de42c037b1a363,true,17de42c037b1a363,2026-05-07T14:49:41+00:00,false -/sql-reference/functions/financial-functions,docs/sql-reference/functions/financial-functions.md,reference/functions/regular-functions/financial-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/financial-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/financial-functions,matched,579a04fed7b56ba9,true,ab5b820100b0d5ef,2026-05-08T21:00:18+00:00,false -/sql-reference/functions/functions-for-nulls,docs/sql-reference/functions/functions-for-nulls.md,reference/functions/regular-functions/functions-for-nulls.mdx,https://clickhouse.com/docs/sql-reference/functions/functions-for-nulls,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/functions-for-nulls,matched,b24195f9fa72734c,true,8a5916d24974dec6,2026-05-08T21:00:18+00:00,false -/sql-reference/functions/geo/,docs/sql-reference/functions/geo/index.md,reference/functions/regular-functions/geo/index.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/geo,matched,229b20a3b9f2e01d,true,229b20a3b9f2e01d,2026-05-09T09:39:38+00:00,false -/sql-reference/functions/geo/coordinates,docs/sql-reference/functions/geo/coordinates.md,reference/functions/regular-functions/geo/coordinates.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/coordinates,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/geo/coordinates,matched,df1646edca9715cc,true,df1646edca9715cc,2026-05-07T14:49:41+00:00,false -/sql-reference/functions/geo/flipCoordinates,docs/sql-reference/functions/geo/flipCoordinates.md,reference/functions/regular-functions/geo/flipCoordinates.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/flipCoordinates,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/geo/flipCoordinates,matched,ecfdec0409be257b,true,ecfdec0409be257b,2026-05-07T14:49:41+00:00,false -/sql-reference/functions/geo/geohash,docs/sql-reference/functions/geo/geohash.md,reference/functions/regular-functions/geo/geohash.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/geohash,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/geo/geohash,matched,5b02c1d23fb7c027,true,5b02c1d23fb7c027,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/geo/geometry,docs/sql-reference/functions/geo/geometry.md,reference/functions/regular-functions/geo/geometry.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/geometry,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/geo/geometry,matched,4a937e11a15d6308,true,4a937e11a15d6308,2026-05-07T14:49:41+00:00,false -/sql-reference/functions/geo/h3,docs/sql-reference/functions/geo/h3.md,reference/functions/regular-functions/geo/h3.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/h3,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/geo/h3,matched,664fe90e97793346,true,664fe90e97793346,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/geo/polygons,docs/sql-reference/functions/geo/polygon.md,reference/functions/regular-functions/geo/polygon.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/polygons,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/geo/polygon,matched,783554b75229a238,true,783554b75229a238,2026-05-07T14:49:41+00:00,false -/sql-reference/functions/geo/s2,docs/sql-reference/functions/geo/s2.md,reference/functions/regular-functions/geo/s2.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/s2,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/geo/s2,matched,25a140f37d151801,true,25a140f37d151801,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/geo/svg,docs/sql-reference/functions/geo/svg.md,reference/functions/regular-functions/geo/svg.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/svg,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/geo/svg,matched,10638f31971872f4,true,10638f31971872f4,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/hash-functions,docs/sql-reference/functions/hash-functions.md,reference/functions/regular-functions/hash-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/hash-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/hash-functions,matched,7f12c0de7a23ba0d,true,7f12c0de7a23ba0d,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/in-functions,docs/sql-reference/functions/in-functions.md,reference/functions/regular-functions/in-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/in-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/in-functions,matched,c085580b4d0cc549,true,a3692c0caea63dcc,2026-05-07T14:49:41+00:00,false -/sql-reference/functions/introspection,docs/sql-reference/functions/introspection.md,reference/functions/regular-functions/introspection.mdx,https://clickhouse.com/docs/sql-reference/functions/introspection,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/introspection,matched,8c3a5b4e6bbc35a0,true,8c3a5b4e6bbc35a0,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/ip-address-functions,docs/sql-reference/functions/ip-address-functions.md,reference/functions/regular-functions/ip-address-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/ip-address-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/ip-address-functions,matched,07b39d5a48cb9cad,true,2cd6cb2965c1a236,2026-05-08T21:00:19+00:00,false -/sql-reference/functions/json-functions,docs/sql-reference/functions/json-functions.md,reference/functions/regular-functions/json-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/json-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/json-functions,matched,9165d90e06f1bc6a,true,9165d90e06f1bc6a,2026-05-08T21:00:19+00:00,false -/sql-reference/functions/logical-functions,docs/sql-reference/functions/logical-functions.md,reference/functions/regular-functions/logical-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/logical-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/logical-functions,matched,bb98f186198d2ed0,true,361d5b69622cc74b,2026-05-08T21:00:19+00:00,false -/sql-reference/functions/machine-learning-functions,docs/sql-reference/functions/machine-learning-functions.md,reference/functions/regular-functions/machine-learning-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/machine-learning-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/machine-learning-functions,matched,10776ce269a165a1,true,10776ce269a165a1,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/math-functions,docs/sql-reference/functions/math-functions.md,reference/functions/regular-functions/math-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/math-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/math-functions,matched,92fa54c38be1b0fc,true,92fa54c38be1b0fc,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/nlp-functions,docs/sql-reference/functions/nlp-functions.md,reference/functions/regular-functions/nlp-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/nlp-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/nlp-functions,matched,00c21ab328d01f85,true,00c21ab328d01f85,2026-05-08T21:00:20+00:00,false -/sql-reference/functions/numeric-indexed-vector-functions,docs/sql-reference/functions/numeric-indexed-vector-functions.md,reference/functions/regular-functions/numeric-indexed-vector-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/numeric-indexed-vector-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/numeric-indexed-vector-functions,matched,119e6aa5f59fcf54,true,119e6aa5f59fcf54,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/other-functions,docs/sql-reference/functions/other-functions.md,reference/functions/regular-functions/other-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/other-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/other-functions,matched,7074e5e40464af1f,true,7074e5e40464af1f,2026-05-09T11:14:51+00:00,false -/sql-reference/functions/overview,docs/sql-reference/functions/overview.md,reference/functions/regular-functions/overview.mdx,https://clickhouse.com/docs/sql-reference/functions/overview,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/overview,matched,1c87cec5b19f085f,true,1c87cec5b19f085f,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/random-functions,docs/sql-reference/functions/random-functions.md,reference/functions/regular-functions/random-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/random-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/random-functions,matched,100ed7d23b2b6a33,true,358fb4cd1d025b1e,2026-05-09T11:14:51+00:00,false -/sql-reference/functions/regular-functions,docs/sql-reference/functions/regular-functions-index.md,reference/functions/regular-functions/regular-functions-index.mdx,https://clickhouse.com/docs/sql-reference/functions/regular-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/regular-functions-index,matched,6c152f17b58caad6,true,6c152f17b58caad6,2026-05-07T14:49:41+00:00,false -/sql-reference/functions/rounding-functions,docs/sql-reference/functions/rounding-functions.md,reference/functions/regular-functions/rounding-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/rounding-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/rounding-functions,matched,6d242e455062433b,true,6d242e455062433b,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/splitting-merging-functions,docs/sql-reference/functions/splitting-merging-functions.md,reference/functions/regular-functions/splitting-merging-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/splitting-merging-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/splitting-merging-functions,matched,a9096bda5a1d4bed,true,a9096bda5a1d4bed,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/string-functions,docs/sql-reference/functions/string-functions.md,reference/functions/regular-functions/string-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/string-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/string-functions,matched,33fc09ec788a00bc,true,33fc09ec788a00bc,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/string-replace-functions,docs/sql-reference/functions/string-replace-functions.md,reference/functions/regular-functions/string-replace-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/string-replace-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/string-replace-functions,matched,aa22cbfaf59e7cd2,true,4e9f35ffe6ecaca5,2026-05-08T21:00:21+00:00,false -/sql-reference/functions/string-search-functions,docs/sql-reference/functions/string-search-functions.md,reference/functions/regular-functions/string-search-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/string-search-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/string-search-functions,matched,62d1d7f4caef7947,true,c0e976dd1c956867,2026-05-13T13:16:51+00:00,false -/sql-reference/functions/time-series-functions,docs/sql-reference/functions/time-series-functions.md,reference/functions/regular-functions/time-series-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/time-series-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/time-series-functions,matched,8c7c9620fbcc2649,true,8c7c9620fbcc2649,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/time-window-functions,docs/sql-reference/functions/time-window-functions.md,reference/functions/regular-functions/time-window-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/time-window-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/time-window-functions,matched,6b2576c3b03c809a,true,6b2576c3b03c809a,2026-05-08T21:00:22+00:00,false -/sql-reference/functions/tuple-functions,docs/sql-reference/functions/tuple-functions.md,reference/functions/regular-functions/tuple-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/tuple-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/tuple-functions,matched,edda876cb4a500ad,true,edda876cb4a500ad,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/tuple-map-functions,docs/sql-reference/functions/tuple-map-functions.md,reference/functions/regular-functions/tuple-map-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/tuple-map-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/tuple-map-functions,matched,6b14acbe7eb707cd,true,6b14acbe7eb707cd,2026-05-08T21:00:22+00:00,false -/sql-reference/functions/type-conversion-functions,docs/sql-reference/functions/type-conversion-functions.md,reference/functions/regular-functions/type-conversion-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/type-conversion-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/type-conversion-functions,matched,95fedfe6cbfe1988,true,95fedfe6cbfe1988,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/udf,docs/sql-reference/functions/udf.md,reference/functions/regular-functions/udf.mdx,https://clickhouse.com/docs/sql-reference/functions/udf,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/udf,matched,8112ec90462892fe,true,8112ec90462892fe,2026-05-08T13:01:57+00:00,false -/sql-reference/functions/ulid-functions,docs/sql-reference/functions/ulid-functions.md,reference/functions/regular-functions/ulid-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/ulid-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/ulid-functions,matched,90c8d51f3c8beae5,true,193ab0f49915d34d,2026-05-08T21:00:22+00:00,false -/sql-reference/functions/uniqtheta-functions,docs/sql-reference/functions/uniqtheta-functions.md,reference/functions/regular-functions/uniqtheta-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/uniqtheta-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/uniqtheta-functions,matched,f6c57709732c2698,true,f6c57709732c2698,2026-05-19T11:08:53+00:00,false -/sql-reference/functions/url-functions,docs/sql-reference/functions/url-functions.md,reference/functions/regular-functions/url-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/url-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/url-functions,matched,2500ec02c6e32dae,true,25bb5ed2c3fd62e0,2026-05-08T21:10:29+00:00,false -/sql-reference/functions/uuid-functions,docs/sql-reference/functions/uuid-functions.md,reference/functions/regular-functions/uuid-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/uuid-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/uuid-functions,matched,4d3c22972e76f466,true,4d3c22972e76f466,2026-05-08T21:00:23+00:00,false -/sql-reference/functions/wasm_udf,docs/sql-reference/functions/wasm_udf.md,reference/functions/regular-functions/wasm_udf.mdx,https://clickhouse.com/docs/sql-reference/functions/wasm_udf,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/wasm_udf,matched,e1c6c946b3ac7668,true,e1c6c946b3ac7668,2026-05-13T13:16:51+00:00,false -/sql-reference/functions/ym-dict-functions,docs/sql-reference/functions/embedded-dict-functions.md,reference/functions/regular-functions/embedded-dict-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/ym-dict-functions,https://private-7c7dfe99.mintlify.app/reference/functions/regular-functions/embedded-dict-functions,matched,efac682e61bf516e,true,efac682e61bf516e,2026-05-19T11:08:53+00:00,false -/sql-reference/operators/,docs/sql-reference/operators/index.md,reference/operators/index.mdx,https://clickhouse.com/docs/sql-reference/operators/,https://private-7c7dfe99.mintlify.app/reference/operators,matched,3d3c9f430d3e635f,true,3d3c9f430d3e635f,2026-05-19T11:08:53+00:00,false -/sql-reference/operators/exists,docs/sql-reference/operators/exists.md,reference/operators/exists.mdx,https://clickhouse.com/docs/sql-reference/operators/exists,https://private-7c7dfe99.mintlify.app/reference/operators/exists,matched,12948636f740400a,true,12948636f740400a,2026-05-19T11:08:53+00:00,false -/sql-reference/operators/in,docs/sql-reference/operators/in.md,reference/statements/in.mdx,https://clickhouse.com/docs/sql-reference/operators/in,https://private-7c7dfe99.mintlify.app/reference/statements/in,matched,11db78d13ea77687,true,11db78d13ea77687,2026-05-19T11:08:53+00:00,false -/sql-reference/other/distributed-ddl,docs/sql-reference/operators/distributed-ddl.md,reference/operators/distributed-ddl.mdx,https://clickhouse.com/docs/sql-reference/other/distributed-ddl,https://private-7c7dfe99.mintlify.app/reference/operators/distributed-ddl,matched,f2e0676875f34dd5,true,f2e0676875f34dd5,2026-05-08T11:33:34+00:00,false -/sql-reference/statements/,docs/sql-reference/statements/index.md,reference/statements/index.mdx,https://clickhouse.com/docs/sql-reference/statements/,https://private-7c7dfe99.mintlify.app/reference/statements,matched,981af6c22c02e012,true,84bf17e2315c270d,2026-05-09T09:39:38+00:00,false -/sql-reference/statements/alter/,docs/sql-reference/statements/alter/index.md,reference/statements/alter/index.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/,https://private-7c7dfe99.mintlify.app/reference/statements/alter,matched,2f0f542d60abb09a,true,3cae588d4c419194,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/alter/apply-deleted-mask,docs/sql-reference/statements/alter/apply-deleted-mask.md,reference/statements/alter/apply-deleted-mask.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/apply-deleted-mask,https://private-7c7dfe99.mintlify.app/reference/statements/alter/apply-deleted-mask,matched,aed29a266c464c67,true,aed29a266c464c67,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/alter/apply-patches,docs/sql-reference/statements/alter/apply-patches.md,reference/statements/alter/apply-patches.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/apply-patches,https://private-7c7dfe99.mintlify.app/reference/statements/alter/apply-patches,matched,2bba7ff9f47b7239,true,2bba7ff9f47b7239,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/alter/column,docs/sql-reference/statements/alter/column.md,reference/statements/alter/column.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/column,https://private-7c7dfe99.mintlify.app/reference/statements/alter/column,matched,30130c9b0fe3bf74,true,30130c9b0fe3bf74,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/alter/comment,docs/sql-reference/statements/alter/comment.md,reference/statements/alter/comment.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/comment,https://private-7c7dfe99.mintlify.app/reference/statements/alter/comment,matched,dcbbc74fb0568312,true,dcbbc74fb0568312,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/alter/constraint,docs/sql-reference/statements/alter/constraint.md,reference/statements/alter/constraint.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/constraint,https://private-7c7dfe99.mintlify.app/reference/statements/alter/constraint,matched,c29e0fea27b243f4,true,8ed2a0a54a6b4cc5,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/alter/database-comment,docs/sql-reference/statements/alter/database-comment.md,reference/statements/alter/database-comment.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/database-comment,https://private-7c7dfe99.mintlify.app/reference/statements/alter/database-comment,matched,794f8576733173a6,true,794f8576733173a6,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/alter/delete,docs/sql-reference/statements/alter/delete.md,reference/statements/alter/delete.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/delete,https://private-7c7dfe99.mintlify.app/reference/statements/alter/delete,matched,79df6fbd25ea241d,true,79df6fbd25ea241d,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/alter/masking-policy,docs/sql-reference/statements/alter/masking-policy.md,reference/statements/alter/masking-policy.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/masking-policy,https://private-7c7dfe99.mintlify.app/reference/statements/alter/masking-policy,matched,db4497ceb4087eda,true,db4497ceb4087eda,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/alter/named-collection,docs/sql-reference/statements/alter/named-collection.md,reference/statements/alter/named-collection.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/named-collection,https://private-7c7dfe99.mintlify.app/reference/statements/alter/named-collection,matched,1ba41582c1e8ebc8,true,1ba41582c1e8ebc8,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/alter/order-by,docs/sql-reference/statements/alter/order-by.md,reference/statements/alter/order-by.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/order-by,https://private-7c7dfe99.mintlify.app/reference/statements/alter/order-by,matched,e4d1e2d42d9244d8,true,da55650acb4be1e8,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/alter/partition,docs/sql-reference/statements/alter/partition.md,reference/statements/alter/partition.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/partition,https://private-7c7dfe99.mintlify.app/reference/statements/alter/partition,matched,32785de3bff088ba,true,32785de3bff088ba,2026-05-08T21:00:25+00:00,false -/sql-reference/statements/alter/projection,docs/sql-reference/statements/alter/projection.md,reference/statements/alter/projection.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/projection,https://private-7c7dfe99.mintlify.app/reference/statements/alter/projection,matched,4f226b1552bbed54,true,4f226b1552bbed54,2026-05-13T15:43:31+00:00,false -/sql-reference/statements/alter/quota,docs/sql-reference/statements/alter/quota.md,reference/statements/alter/quota.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/quota,https://private-7c7dfe99.mintlify.app/reference/statements/alter/quota,matched,7f4ff197ce476062,true,7f4ff197ce476062,2026-05-19T11:48:22+00:00,false -/sql-reference/statements/alter/role,docs/sql-reference/statements/alter/role.md,reference/statements/alter/role.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/role,https://private-7c7dfe99.mintlify.app/reference/statements/alter/role,matched,303a2bb1adcbfc7e,true,303a2bb1adcbfc7e,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/alter/row-policy,docs/sql-reference/statements/alter/row-policy.md,reference/statements/alter/row-policy.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/row-policy,https://private-7c7dfe99.mintlify.app/reference/statements/alter/row-policy,matched,660c01b012c65f4b,true,e9242354e112109a,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/alter/sample-by,docs/sql-reference/statements/alter/sample-by.md,reference/statements/alter/sample-by.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/sample-by,https://private-7c7dfe99.mintlify.app/reference/statements/alter/sample-by,matched,7154b5b2b24b75bc,true,7154b5b2b24b75bc,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/alter/setting,docs/sql-reference/statements/alter/setting.md,reference/statements/alter/setting.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/setting,https://private-7c7dfe99.mintlify.app/reference/statements/alter/setting,matched,333f7287eb8ca013,true,8396ae84019ca444,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/alter/settings-profile,docs/sql-reference/statements/alter/settings-profile.md,reference/statements/alter/settings-profile.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/settings-profile,https://private-7c7dfe99.mintlify.app/reference/statements/alter/settings-profile,matched,974e376db0d1f6bc,true,974e376db0d1f6bc,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/alter/skipping-index,docs/sql-reference/statements/alter/skipping-index.md,reference/statements/alter/skipping-index.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/skipping-index,https://private-7c7dfe99.mintlify.app/reference/statements/alter/skipping-index,matched,639cf49f6b576656,true,a6ee74f4a5fa3c47,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/alter/statistics,docs/sql-reference/statements/alter/statistics.md,reference/statements/alter/statistics.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/statistics,https://private-7c7dfe99.mintlify.app/reference/statements/alter/statistics,matched,dc6bed38f255f290,true,dc6bed38f255f290,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/alter/ttl,docs/sql-reference/statements/alter/ttl.md,reference/statements/alter/ttl.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/ttl,https://private-7c7dfe99.mintlify.app/reference/statements/alter/ttl,matched,fb1e74b3574ce837,true,092cf9506a86a064,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/alter/update,docs/sql-reference/statements/alter/update.md,reference/statements/alter/update.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/update,https://private-7c7dfe99.mintlify.app/reference/statements/alter/update,matched,f24e62109df1df61,true,a545210822fcd08c,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/alter/user,docs/sql-reference/statements/alter/user.md,reference/statements/alter/user.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/user,https://private-7c7dfe99.mintlify.app/reference/statements/alter/user,matched,bad6198b79924e96,true,bad6198b79924e96,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/alter/view,docs/sql-reference/statements/alter/view.md,reference/statements/alter/view.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/view,https://private-7c7dfe99.mintlify.app/reference/statements/alter/view,matched,849db286b271b6aa,true,3496fbf668769ff7,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/attach,docs/sql-reference/statements/attach.md,reference/statements/attach.mdx,https://clickhouse.com/docs/sql-reference/statements/attach,https://private-7c7dfe99.mintlify.app/reference/statements/attach,matched,0780d8eecea4ce0b,true,0780d8eecea4ce0b,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/check-grant,docs/sql-reference/statements/check-grant.md,reference/statements/check-grant.mdx,https://clickhouse.com/docs/sql-reference/statements/check-grant,https://private-7c7dfe99.mintlify.app/reference/statements/check-grant,matched,2d31634c588cb280,true,2d31634c588cb280,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/check-table,docs/sql-reference/statements/check-table.md,reference/statements/check-table.mdx,https://clickhouse.com/docs/sql-reference/statements/check-table,https://private-7c7dfe99.mintlify.app/reference/statements/check-table,matched,781b1716f6a68933,true,781b1716f6a68933,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/create/,docs/sql-reference/statements/create/index.md,reference/statements/create/index.mdx,https://clickhouse.com/docs/sql-reference/statements/create/,https://private-7c7dfe99.mintlify.app/reference/statements/create,matched,b45c5e1d1fb0fe6e,true,f53eec1c24f726e2,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/create/database,docs/sql-reference/statements/create/database.md,reference/statements/create/database.mdx,https://clickhouse.com/docs/sql-reference/statements/create/database,https://private-7c7dfe99.mintlify.app/reference/statements/create/database,matched,23534a319008733b,true,23534a319008733b,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/create/dictionary,docs/sql-reference/statements/create/dictionary/overview.md,reference/statements/create/dictionary.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary,matched,991e50e50ab9d097,true,991e50e50ab9d097,2026-05-19T11:48:22+00:00,false -/sql-reference/statements/create/dictionary/attributes,docs/sql-reference/statements/create/dictionary/attributes.md,reference/statements/create/dictionary/attributes.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/attributes,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/attributes,matched,df228adf9244be27,true,df228adf9244be27,2026-05-09T09:39:38+00:00,false -/sql-reference/statements/create/dictionary/embedded,docs/sql-reference/statements/create/dictionary/embedded.md,reference/statements/create/dictionary/embedded.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/embedded,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/embedded,matched,a5134319e705b1c2,true,a5134319e705b1c2,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/dictionary/layouts,docs/sql-reference/statements/create/dictionary/layouts/overview.md,reference/statements/create/dictionary/layouts/overview.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/overview,matched,8a936c931e3b749d,true,8a936c931e3b749d,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/dictionary/layouts/cache,docs/sql-reference/statements/create/dictionary/layouts/cache.md,reference/statements/create/dictionary/layouts/cache.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/cache,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/cache,matched,1dbce5622d55c826,true,1dbce5622d55c826,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/dictionary/layouts/direct,docs/sql-reference/statements/create/dictionary/layouts/direct.md,reference/statements/create/dictionary/layouts/direct.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/direct,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/direct,matched,ba9d1650e5d9d3d1,true,ba9d1650e5d9d3d1,2026-05-08T11:53:27+00:00,false -/sql-reference/statements/create/dictionary/layouts/flat,docs/sql-reference/statements/create/dictionary/layouts/flat.md,reference/statements/create/dictionary/layouts/flat.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/flat,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/flat,matched,4cd2982872ada37d,true,4cd2982872ada37d,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/dictionary/layouts/hashed,docs/sql-reference/statements/create/dictionary/layouts/hashed.md,reference/statements/create/dictionary/layouts/hashed.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/hashed,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/hashed,matched,765b099e5923d360,true,765b099e5923d360,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/create/dictionary/layouts/hashed-array,docs/sql-reference/statements/create/dictionary/layouts/hashed-array.md,reference/statements/create/dictionary/layouts/hashed-array.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/hashed-array,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/hashed-array,matched,08b0f7772e500940,true,08b0f7772e500940,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/create/dictionary/layouts/hierarchical,docs/sql-reference/statements/create/dictionary/layouts/hierarchical.md,reference/statements/create/dictionary/layouts/hierarchical.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/hierarchical,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/hierarchical,matched,d0f45477e4502d5e,true,d0f45477e4502d5e,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/create/dictionary/layouts/ip-trie,docs/sql-reference/statements/create/dictionary/layouts/ip-trie.md,reference/statements/create/dictionary/layouts/ip-trie.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/ip-trie,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/ip-trie,matched,4663d6bdd0aad269,true,4663d6bdd0aad269,2026-05-08T12:19:52+00:00,false -/sql-reference/statements/create/dictionary/layouts/polygon,docs/sql-reference/statements/create/dictionary/layouts/polygon.md,reference/statements/create/dictionary/layouts/polygon.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/polygon,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/polygon,matched,ac87c199241e9bf9,true,ac87c199241e9bf9,2026-05-08T12:19:52+00:00,false -/sql-reference/statements/create/dictionary/layouts/range-hashed,docs/sql-reference/statements/create/dictionary/layouts/range-hashed.md,reference/statements/create/dictionary/layouts/range-hashed.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/range-hashed,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/range-hashed,matched,8ccca11e1180ae05,true,8ccca11e1180ae05,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/dictionary/layouts/regexp-tree,docs/sql-reference/statements/create/dictionary/layouts/regexp-tree.md,reference/statements/create/dictionary/layouts/regexp-tree.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/regexp-tree,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/regexp-tree,matched,5e7a7769b6056521,true,5e7a7769b6056521,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/create/dictionary/layouts/ssd-cache,docs/sql-reference/statements/create/dictionary/layouts/ssd-cache.md,reference/statements/create/dictionary/layouts/ssd-cache.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/ssd-cache,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/layouts/ssd-cache,matched,fb386a8d8121b54d,true,fb386a8d8121b54d,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/create/dictionary/lifetime,docs/sql-reference/statements/create/dictionary/lifetime.md,reference/statements/create/dictionary/lifetime.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/lifetime,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/lifetime,matched,4ef385db95bf4e51,true,4ef385db95bf4e51,2026-05-08T11:53:27+00:00,false -/sql-reference/statements/create/dictionary/sources,docs/sql-reference/statements/create/dictionary/sources/overview.md,reference/statements/create/dictionary/sources/overview.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/overview,matched,8d300d0cef0bff68,true,8d300d0cef0bff68,2026-05-13T15:43:32+00:00,false -/sql-reference/statements/create/dictionary/sources/cassandra,docs/sql-reference/statements/create/dictionary/sources/cassandra.md,reference/statements/create/dictionary/sources/cassandra.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/cassandra,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/cassandra,matched,3366fbba1d891441,true,3366fbba1d891441,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/dictionary/sources/clickhouse,docs/sql-reference/statements/create/dictionary/sources/clickhouse.md,reference/statements/create/dictionary/sources/clickhouse.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/clickhouse,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/clickhouse,matched,93b842786d511f36,true,93b842786d511f36,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/dictionary/sources/executable-file,docs/sql-reference/statements/create/dictionary/sources/executable-file.md,reference/statements/create/dictionary/sources/executable-file.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/executable-file,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/executable-file,matched,220264aaefc1334a,true,220264aaefc1334a,2026-05-08T15:04:34+00:00,false -/sql-reference/statements/create/dictionary/sources/executable-pool,docs/sql-reference/statements/create/dictionary/sources/executable-pool.md,reference/statements/create/dictionary/sources/executable-pool.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/executable-pool,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/executable-pool,matched,d1ff1acf8257ac87,true,d1ff1acf8257ac87,2026-05-08T15:04:34+00:00,false -/sql-reference/statements/create/dictionary/sources/http,docs/sql-reference/statements/create/dictionary/sources/http.md,reference/statements/create/dictionary/sources/http.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/http,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/http,matched,e72f060583314b47,true,e72f060583314b47,2026-05-08T15:04:34+00:00,false -/sql-reference/statements/create/dictionary/sources/local-file,docs/sql-reference/statements/create/dictionary/sources/local-file.md,reference/statements/create/dictionary/sources/local-file.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/local-file,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/local-file,matched,a1a7676e8f61e757,true,a1a7676e8f61e757,2026-05-08T15:04:34+00:00,false -/sql-reference/statements/create/dictionary/sources/mongodb,docs/sql-reference/statements/create/dictionary/sources/mongodb.md,reference/statements/create/dictionary/sources/mongodb.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/mongodb,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/mongodb,matched,1e59afc5c1cb7417,true,1e59afc5c1cb7417,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/create/dictionary/sources/mysql,docs/sql-reference/statements/create/dictionary/sources/mysql.md,reference/statements/create/dictionary/sources/mysql.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/mysql,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/mysql,matched,44331440c9cf0cf2,true,44331440c9cf0cf2,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/dictionary/sources/null,docs/sql-reference/statements/create/dictionary/sources/null.md,reference/statements/create/dictionary/sources/null.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/null,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/null,matched,e33e071b01088cb8,true,e33e071b01088cb8,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/create/dictionary/sources/odbc,docs/sql-reference/statements/create/dictionary/sources/odbc.md,reference/statements/create/dictionary/sources/odbc.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/odbc,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/odbc,matched,c6f1346b0c918e21,true,c6f1346b0c918e21,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/dictionary/sources/postgresql,docs/sql-reference/statements/create/dictionary/sources/postgresql.md,reference/statements/create/dictionary/sources/postgresql.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/postgresql,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/postgresql,matched,f94ebe7f7e07a840,true,f94ebe7f7e07a840,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/dictionary/sources/redis,docs/sql-reference/statements/create/dictionary/sources/redis.md,reference/statements/create/dictionary/sources/redis.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/redis,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/redis,matched,44c3ced931104ce8,true,44c3ced931104ce8,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/create/dictionary/sources/yamlregexptree,docs/sql-reference/statements/create/dictionary/sources/yamlregexptree.md,reference/statements/create/dictionary/sources/yamlregexptree.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/yamlregexptree,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/yamlregexptree,matched,fa8e3f45deab02e7,true,fa8e3f45deab02e7,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/dictionary/sources/ytsaurus,docs/sql-reference/statements/create/dictionary/sources/ytsaurus.md,reference/statements/create/dictionary/sources/ytsaurus.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/ytsaurus,https://private-7c7dfe99.mintlify.app/reference/statements/create/dictionary/sources/ytsaurus,matched,d17074ea4ae2f160,true,d17074ea4ae2f160,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/function,docs/sql-reference/statements/create/function.md,reference/statements/create/function.mdx,https://clickhouse.com/docs/sql-reference/statements/create/function,https://private-7c7dfe99.mintlify.app/reference/statements/create/function,matched,b10c2bd1add9f390,true,b10c2bd1add9f390,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/create/masking-policy,docs/sql-reference/statements/create/masking-policy.md,reference/statements/create/masking-policy.mdx,https://clickhouse.com/docs/sql-reference/statements/create/masking-policy,https://private-7c7dfe99.mintlify.app/reference/statements/create/masking-policy,matched,fd8e3cc73dae2f42,true,fd8e3cc73dae2f42,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/named-collection,docs/sql-reference/statements/create/named-collection.md,reference/statements/create/named-collection.mdx,https://clickhouse.com/docs/sql-reference/statements/create/named-collection,https://private-7c7dfe99.mintlify.app/reference/statements/create/named-collection,matched,7d224b4658e83885,true,7d224b4658e83885,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/create/quota,docs/sql-reference/statements/create/quota.md,reference/statements/create/quota.mdx,https://clickhouse.com/docs/sql-reference/statements/create/quota,https://private-7c7dfe99.mintlify.app/reference/statements/create/quota,matched,a0e499214c967512,true,a0e499214c967512,2026-05-19T11:48:22+00:00,false -/sql-reference/statements/create/role,docs/sql-reference/statements/create/role.md,reference/statements/create/role.mdx,https://clickhouse.com/docs/sql-reference/statements/create/role,https://private-7c7dfe99.mintlify.app/reference/statements/create/role,matched,437e57c81c3f0872,true,437e57c81c3f0872,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/create/row-policy,docs/sql-reference/statements/create/row-policy.md,reference/statements/create/row-policy.mdx,https://clickhouse.com/docs/sql-reference/statements/create/row-policy,https://private-7c7dfe99.mintlify.app/reference/statements/create/row-policy,matched,7af119041838a001,true,7af119041838a001,2026-05-19T11:48:22+00:00,false -/sql-reference/statements/create/settings-profile,docs/sql-reference/statements/create/settings-profile.md,reference/statements/create/settings-profile.mdx,https://clickhouse.com/docs/sql-reference/statements/create/settings-profile,https://private-7c7dfe99.mintlify.app/reference/statements/create/settings-profile,matched,5840e875e6ec0ff5,true,5840e875e6ec0ff5,2026-05-19T11:48:22+00:00,false -/sql-reference/statements/create/table,docs/sql-reference/statements/create/table.md,reference/statements/create/table.mdx,https://clickhouse.com/docs/sql-reference/statements/create/table,https://private-7c7dfe99.mintlify.app/reference/statements/create/table,matched,fef6440f2af25f60,true,fef6440f2af25f60,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/create/user,docs/sql-reference/statements/create/user.md,reference/statements/create/user.mdx,https://clickhouse.com/docs/sql-reference/statements/create/user,https://private-7c7dfe99.mintlify.app/reference/statements/create/user,matched,ea6560f73f342624,true,ea6560f73f342624,2026-05-19T11:48:22+00:00,false -/sql-reference/statements/create/view,docs/sql-reference/statements/create/view.md,reference/statements/create/view.mdx,https://clickhouse.com/docs/sql-reference/statements/create/view,https://private-7c7dfe99.mintlify.app/reference/statements/create/view,matched,4da94523000fe99c,true,4da94523000fe99c,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/delete,docs/sql-reference/statements/delete.md,reference/statements/delete.mdx,https://clickhouse.com/docs/sql-reference/statements/delete,https://private-7c7dfe99.mintlify.app/reference/statements/delete,matched,635055619056b153,true,635055619056b153,2026-05-09T17:02:01+00:00,false -/sql-reference/statements/describe-table,docs/sql-reference/statements/describe-table.md,reference/statements/describe-table.mdx,https://clickhouse.com/docs/sql-reference/statements/describe-table,https://private-7c7dfe99.mintlify.app/reference/statements/describe-table,matched,72405ef6fff16fe6,true,72405ef6fff16fe6,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/detach,docs/sql-reference/statements/detach.md,reference/statements/detach.mdx,https://clickhouse.com/docs/sql-reference/statements/detach,https://private-7c7dfe99.mintlify.app/reference/statements/detach,matched,12d19ffd2bc92b1d,true,12d19ffd2bc92b1d,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/drop,docs/sql-reference/statements/drop.md,reference/statements/drop.mdx,https://clickhouse.com/docs/sql-reference/statements/drop,https://private-7c7dfe99.mintlify.app/reference/statements/drop,matched,8b56b1ae9a5b9042,true,8af9b9ae9836e7c1,2026-05-09T09:39:38+00:00,false -/sql-reference/statements/exchange,docs/sql-reference/statements/exchange.md,reference/statements/exchange.mdx,https://clickhouse.com/docs/sql-reference/statements/exchange,https://private-7c7dfe99.mintlify.app/reference/statements/exchange,matched,bd589160963e7bea,true,48cc905738da417c,2026-05-09T09:39:38+00:00,false -/sql-reference/statements/execute_as,docs/sql-reference/statements/execute_as.md,reference/statements/execute_as.mdx,https://clickhouse.com/docs/sql-reference/statements/execute_as,https://private-7c7dfe99.mintlify.app/reference/statements/execute_as,matched,7b03039504ddd659,true,7b03039504ddd659,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/exists,docs/sql-reference/statements/exists.md,reference/statements/exists.mdx,https://clickhouse.com/docs/sql-reference/statements/exists,https://private-7c7dfe99.mintlify.app/reference/statements/exists,matched,f787978eb7ad2aef,true,f8983bc303673b5b,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/explain,docs/sql-reference/statements/explain.md,reference/statements/explain.mdx,https://clickhouse.com/docs/sql-reference/statements/explain,https://private-7c7dfe99.mintlify.app/reference/statements/explain,matched,3daef0a18f4540b0,true,3daef0a18f4540b0,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/grant,docs/sql-reference/statements/grant.md,reference/statements/grant.mdx,https://clickhouse.com/docs/sql-reference/statements/grant,https://private-7c7dfe99.mintlify.app/reference/statements/grant,matched,bb9e0ae273b53779,true,bb9e0ae273b53779,2026-05-08T11:53:27+00:00,false -/sql-reference/statements/insert-into,docs/sql-reference/statements/insert-into.md,reference/statements/insert-into.mdx,https://clickhouse.com/docs/sql-reference/statements/insert-into,https://private-7c7dfe99.mintlify.app/reference/statements/insert-into,matched,b04169961ed35a16,true,b04169961ed35a16,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/kill,docs/sql-reference/statements/kill.md,reference/statements/kill.mdx,https://clickhouse.com/docs/sql-reference/statements/kill,https://private-7c7dfe99.mintlify.app/reference/statements/kill,matched,af21361ca18f3026,true,af21361ca18f3026,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/move,docs/sql-reference/statements/move.md,reference/statements/move.mdx,https://clickhouse.com/docs/sql-reference/statements/move,https://private-7c7dfe99.mintlify.app/reference/statements/move,matched,3f0321df0eda3733,true,8103e61160aa5299,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/optimize,docs/sql-reference/statements/optimize.md,reference/statements/optimize.mdx,https://clickhouse.com/docs/sql-reference/statements/optimize,https://private-7c7dfe99.mintlify.app/reference/statements/optimize,matched,d577af60f580c0b1,true,d577af60f580c0b1,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/parallel_with,docs/sql-reference/statements/parallel_with.md,reference/statements/parallel_with.mdx,https://clickhouse.com/docs/sql-reference/statements/parallel_with,https://private-7c7dfe99.mintlify.app/reference/statements/parallel_with,matched,1f165d76471c3a5b,true,483cc85982240fd1,2026-05-09T09:39:38+00:00,false -/sql-reference/statements/rename,docs/sql-reference/statements/rename.md,reference/statements/rename.mdx,https://clickhouse.com/docs/sql-reference/statements/rename,https://private-7c7dfe99.mintlify.app/reference/statements/rename,matched,37bc53ffaae36d00,true,7a7e56c7d4e06aa4,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/revoke,docs/sql-reference/statements/revoke.md,reference/statements/revoke.mdx,https://clickhouse.com/docs/sql-reference/statements/revoke,https://private-7c7dfe99.mintlify.app/reference/statements/revoke,matched,421e31eca5449bc3,true,623f2f8c2f600659,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/select/,docs/sql-reference/statements/select/index.md,reference/statements/select/index.mdx,https://clickhouse.com/docs/sql-reference/statements/select/,https://private-7c7dfe99.mintlify.app/reference/statements/select,matched,85222c4f3d27324a,true,000b1489bccc8788,2026-05-09T09:39:38+00:00,false -/sql-reference/statements/select/all,docs/sql-reference/statements/select/all.md,reference/statements/select/all.mdx,https://clickhouse.com/docs/sql-reference/statements/select/all,https://private-7c7dfe99.mintlify.app/reference/statements/select/all,matched,bb422f0edd427946,true,a7e402c757884105,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/select/apply-modifier,docs/sql-reference/statements/select/apply_modifier.md,reference/statements/select/apply_modifier.mdx,https://clickhouse.com/docs/sql-reference/statements/select/apply-modifier,https://private-7c7dfe99.mintlify.app/reference/statements/select/apply_modifier,matched,b14c9032f2ded030,true,b14c9032f2ded030,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/array-join,docs/sql-reference/statements/select/array-join.md,reference/statements/select/array-join.mdx,https://clickhouse.com/docs/sql-reference/statements/select/array-join,https://private-7c7dfe99.mintlify.app/reference/statements/select/array-join,matched,a40e92dc94f24e98,true,b1e073c8374abc5e,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/select/distinct,docs/sql-reference/statements/select/distinct.md,reference/statements/select/distinct.mdx,https://clickhouse.com/docs/sql-reference/statements/select/distinct,https://private-7c7dfe99.mintlify.app/reference/statements/select/distinct,matched,0ab1da121ff29a6f,true,8b19006f70430697,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/select/except,docs/sql-reference/statements/select/except.md,reference/statements/select/except.mdx,https://clickhouse.com/docs/sql-reference/statements/select/except,https://private-7c7dfe99.mintlify.app/reference/statements/select/except,matched,39d64699466c359f,true,39d64699466c359f,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/except-modifier,docs/sql-reference/statements/select/except_modifier.md,reference/statements/select/except_modifier.mdx,https://clickhouse.com/docs/sql-reference/statements/select/except-modifier,https://private-7c7dfe99.mintlify.app/reference/statements/select/except_modifier,matched,35e4d9fcfe542b93,true,35e4d9fcfe542b93,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/format,docs/sql-reference/statements/select/format.md,reference/statements/select/format.mdx,https://clickhouse.com/docs/sql-reference/statements/select/format,https://private-7c7dfe99.mintlify.app/reference/statements/select/format,matched,8977e80ee0785bd3,true,c4c2f0d3c5707c2d,2026-05-08T13:01:57+00:00,false -/sql-reference/statements/select/from,docs/sql-reference/statements/select/from.md,reference/statements/select/from.mdx,https://clickhouse.com/docs/sql-reference/statements/select/from,https://private-7c7dfe99.mintlify.app/reference/statements/select/from,matched,31323a0e56256596,true,71e350eef6826c63,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/select/group-by,docs/sql-reference/statements/select/group-by.md,reference/statements/select/group-by.mdx,https://clickhouse.com/docs/sql-reference/statements/select/group-by,https://private-7c7dfe99.mintlify.app/reference/statements/select/group-by,matched,2401cd614ce10370,true,2401cd614ce10370,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/having,docs/sql-reference/statements/select/having.md,reference/statements/select/having.mdx,https://clickhouse.com/docs/sql-reference/statements/select/having,https://private-7c7dfe99.mintlify.app/reference/statements/select/having,matched,2cc0edfc46c6075a,true,153f09d0dc6e1710,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/select/intersect,docs/sql-reference/statements/select/intersect.md,reference/statements/select/intersect.mdx,https://clickhouse.com/docs/sql-reference/statements/select/intersect,https://private-7c7dfe99.mintlify.app/reference/statements/select/intersect,matched,2d206c976cd88c30,true,2d206c976cd88c30,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/into-outfile,docs/sql-reference/statements/select/into-outfile.md,reference/statements/select/into-outfile.mdx,https://clickhouse.com/docs/sql-reference/statements/select/into-outfile,https://private-7c7dfe99.mintlify.app/reference/statements/select/into-outfile,matched,4655e3a018c5dc42,true,4655e3a018c5dc42,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/join,docs/sql-reference/statements/select/join.md,reference/statements/select/join.mdx,https://clickhouse.com/docs/sql-reference/statements/select/join,https://private-7c7dfe99.mintlify.app/reference/statements/select/join,matched,85d0761a113d83bd,true,85d0761a113d83bd,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/limit,docs/sql-reference/statements/select/limit.md,reference/statements/select/limit.mdx,https://clickhouse.com/docs/sql-reference/statements/select/limit,https://private-7c7dfe99.mintlify.app/reference/statements/select/limit,matched,7a4d74ba92379a5f,true,7a4d74ba92379a5f,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/limit-by,docs/sql-reference/statements/select/limit-by.md,reference/statements/select/limit-by.mdx,https://clickhouse.com/docs/sql-reference/statements/select/limit-by,https://private-7c7dfe99.mintlify.app/reference/statements/select/limit-by,matched,e36cb7202c0ca28f,true,e7c877624140213a,2026-05-13T13:25:34+00:00,false -/sql-reference/statements/select/offset,docs/sql-reference/statements/select/offset.md,reference/statements/select/offset.mdx,https://clickhouse.com/docs/sql-reference/statements/select/offset,https://private-7c7dfe99.mintlify.app/reference/statements/select/offset,matched,5ebfe47b67f74463,true,5ebfe47b67f74463,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/order-by,docs/sql-reference/statements/select/order-by.md,reference/statements/select/order-by.mdx,https://clickhouse.com/docs/sql-reference/statements/select/order-by,https://private-7c7dfe99.mintlify.app/reference/statements/select/order-by,matched,d7ad45fdacd639e4,true,d7ad45fdacd639e4,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/prewhere,docs/sql-reference/statements/select/prewhere.md,reference/statements/select/prewhere.mdx,https://clickhouse.com/docs/sql-reference/statements/select/prewhere,https://private-7c7dfe99.mintlify.app/reference/statements/select/prewhere,matched,3238b6a9d1079097,true,cdca3b6d03d5aff1,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/select/qualify,docs/sql-reference/statements/select/qualify.md,reference/statements/select/qualify.mdx,https://clickhouse.com/docs/sql-reference/statements/select/qualify,https://private-7c7dfe99.mintlify.app/reference/statements/select/qualify,matched,bf033ebdee748507,true,d12d9428ec537b38,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/select/replace-modifier,docs/sql-reference/statements/select/replace_modifier.md,reference/statements/select/replace_modifier.mdx,https://clickhouse.com/docs/sql-reference/statements/select/replace-modifier,https://private-7c7dfe99.mintlify.app/reference/statements/select/replace_modifier,matched,5afb8cd56b457884,true,5afb8cd56b457884,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/sample,docs/sql-reference/statements/select/sample.md,reference/statements/select/sample.mdx,https://clickhouse.com/docs/sql-reference/statements/select/sample,https://private-7c7dfe99.mintlify.app/reference/statements/select/sample,matched,3f0005567413b875,true,aa16d1a33d331289,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/select/union,docs/sql-reference/statements/select/union.md,reference/statements/select/union.mdx,https://clickhouse.com/docs/sql-reference/statements/select/union,https://private-7c7dfe99.mintlify.app/reference/statements/select/union,matched,be8712788ece5c74,true,be8712788ece5c74,2026-05-19T11:08:53+00:00,false -/sql-reference/statements/select/where,docs/sql-reference/statements/select/where.md,reference/statements/select/where.mdx,https://clickhouse.com/docs/sql-reference/statements/select/where,https://private-7c7dfe99.mintlify.app/reference/statements/select/where,matched,488dbcbfc1c6e4b7,true,e592ec6dc8b77028,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/select/with,docs/sql-reference/statements/select/with.md,reference/statements/select/with.mdx,https://clickhouse.com/docs/sql-reference/statements/select/with,https://private-7c7dfe99.mintlify.app/reference/statements/select/with,matched,70294d187c3333a4,true,ca02fa35413107a3,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/set,docs/sql-reference/statements/set.md,reference/statements/set.mdx,https://clickhouse.com/docs/sql-reference/statements/set,https://private-7c7dfe99.mintlify.app/reference/statements/set,matched,04fdbe960f351e17,true,fea6991e0302092b,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/set-role,docs/sql-reference/statements/set-role.md,reference/statements/set-role.mdx,https://clickhouse.com/docs/sql-reference/statements/set-role,https://private-7c7dfe99.mintlify.app/reference/statements/set-role,matched,af1d949b76a7c871,true,af1d949b76a7c871,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/show,docs/sql-reference/statements/show.md,reference/statements/show.mdx,https://clickhouse.com/docs/sql-reference/statements/show,https://private-7c7dfe99.mintlify.app/reference/statements/show,matched,49ceafd57e4d4c95,true,49ceafd57e4d4c95,2026-05-09T10:26:02+00:00,false -/sql-reference/statements/system,docs/sql-reference/statements/system.md,reference/statements/system.mdx,https://clickhouse.com/docs/sql-reference/statements/system,https://private-7c7dfe99.mintlify.app/reference/statements/system,matched,ad6b118a399960b4,true,ad6b118a399960b4,2026-05-13T13:16:51+00:00,false -/sql-reference/statements/truncate,docs/sql-reference/statements/truncate.md,reference/statements/truncate.mdx,https://clickhouse.com/docs/sql-reference/statements/truncate,https://private-7c7dfe99.mintlify.app/reference/statements/truncate,matched,89b0b953f7e7370e,true,d710ab3ea8569000,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/undrop,docs/sql-reference/statements/undrop.md,reference/statements/undrop.mdx,https://clickhouse.com/docs/sql-reference/statements/undrop,https://private-7c7dfe99.mintlify.app/reference/statements/undrop,matched,7bd54b91e1b6d80b,true,764c0b5706ee7c85,2026-05-08T09:09:20+00:00,false -/sql-reference/statements/update,docs/sql-reference/statements/update.md,reference/statements/update.mdx,https://clickhouse.com/docs/sql-reference/statements/update,https://private-7c7dfe99.mintlify.app/reference/statements/update,matched,17436a6c6f051eb7,true,17436a6c6f051eb7,2026-05-19T11:48:22+00:00,false -/sql-reference/statements/use,docs/sql-reference/statements/use.md,reference/statements/use.mdx,https://clickhouse.com/docs/sql-reference/statements/use,https://private-7c7dfe99.mintlify.app/reference/statements/use,matched,e2404745046de3ea,true,4120b13b5f03f7c2,2026-05-07T14:49:41+00:00,false -/sql-reference/statements/watch,docs/sql-reference/statements/watch.md,reference/statements/watch.mdx,https://clickhouse.com/docs/sql-reference/statements/watch,https://private-7c7dfe99.mintlify.app/reference/statements/watch,matched,55069f671a99d799,true,55069f671a99d799,2026-05-08T09:09:20+00:00,false -/sql-reference/syntax,docs/sql-reference/syntax.md,reference/syntax.mdx,https://clickhouse.com/docs/sql-reference/syntax,https://private-7c7dfe99.mintlify.app/reference/syntax,matched,a9135da960dcaf5e,true,a9135da960dcaf5e,2026-05-08T13:01:57+00:00,false -/sql-reference/table-functions/,docs/sql-reference/table-functions/index.md,reference/functions/table-functions/index.mdx,https://clickhouse.com/docs/sql-reference/table-functions/,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions,matched,1752f7d23d0c71cf,true,1752f7d23d0c71cf,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/arrowflight,docs/sql-reference/table-functions/arrowflight.md,reference/functions/table-functions/arrowflight.mdx,https://clickhouse.com/docs/sql-reference/table-functions/arrowflight,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/arrowflight,matched,7d58f93d9c0e0f98,true,7d58f93d9c0e0f98,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/azureBlobStorage,docs/sql-reference/table-functions/azureBlobStorage.md,reference/functions/table-functions/azureBlobStorage.mdx,https://clickhouse.com/docs/sql-reference/table-functions/azureBlobStorage,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/azureBlobStorage,matched,85ea52388b3f2d06,true,85ea52388b3f2d06,2026-05-08T15:04:34+00:00,false -/sql-reference/table-functions/azureBlobStorageCluster,docs/sql-reference/table-functions/azureBlobStorageCluster.md,reference/functions/table-functions/azureBlobStorageCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/azureBlobStorageCluster,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/azureBlobStorageCluster,matched,dc75f0e73803354d,true,dc75f0e73803354d,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/cluster,docs/sql-reference/table-functions/cluster.md,reference/functions/table-functions/cluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/cluster,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/cluster,matched,51cf2023223e48e7,true,51cf2023223e48e7,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/deltalake,docs/sql-reference/table-functions/deltalake.md,reference/functions/table-functions/deltalake.mdx,https://clickhouse.com/docs/sql-reference/table-functions/deltalake,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/deltalake,matched,8d88c4159bcd5510,true,8d88c4159bcd5510,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/deltalakeCluster,docs/sql-reference/table-functions/deltalakeCluster.md,reference/functions/table-functions/deltalakeCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/deltalakeCluster,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/deltalakeCluster,matched,3dfcdcdd28339a6e,true,3dfcdcdd28339a6e,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/dictionary,docs/sql-reference/table-functions/dictionary.md,reference/functions/table-functions/dictionary.mdx,https://clickhouse.com/docs/sql-reference/table-functions/dictionary,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/dictionary,matched,ee69af751e7bcdab,true,ee69af751e7bcdab,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/file,docs/sql-reference/table-functions/file.md,reference/functions/table-functions/file.mdx,https://clickhouse.com/docs/sql-reference/table-functions/file,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/file,matched,0e0f27c7cf6a4b67,true,0e0f27c7cf6a4b67,2026-05-13T13:16:51+00:00,false -/sql-reference/table-functions/fileCluster,docs/sql-reference/table-functions/fileCluster.md,reference/functions/table-functions/fileCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/fileCluster,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/fileCluster,matched,0b518b34b857ea61,true,0b518b34b857ea61,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/filesystem,docs/sql-reference/table-functions/filesystem.md,reference/functions/table-functions/filesystem.mdx,https://clickhouse.com/docs/sql-reference/table-functions/filesystem,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/filesystem,matched,882421bad03a1a1a,true,882421bad03a1a1a,2026-05-08T15:04:25+00:00,false -/sql-reference/table-functions/format,docs/sql-reference/table-functions/format.md,reference/functions/table-functions/format.mdx,https://clickhouse.com/docs/sql-reference/table-functions/format,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/format,matched,4af4c925a55f25a6,true,4af4c925a55f25a6,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/fuzzJSON,docs/sql-reference/table-functions/fuzzJSON.md,reference/functions/table-functions/fuzzJSON.mdx,https://clickhouse.com/docs/sql-reference/table-functions/fuzzJSON,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/fuzzJSON,matched,a423ba9209dce342,true,a423ba9209dce342,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/fuzzQuery,docs/sql-reference/table-functions/fuzzQuery.md,reference/functions/table-functions/fuzzQuery.mdx,https://clickhouse.com/docs/sql-reference/table-functions/fuzzQuery,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/fuzzQuery,matched,30d7f5082387ef53,true,30d7f5082387ef53,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/gcs,docs/sql-reference/table-functions/gcs.md,reference/functions/table-functions/gcs.mdx,https://clickhouse.com/docs/sql-reference/table-functions/gcs,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/gcs,matched,3db1d64aed4fda6d,true,3db1d64aed4fda6d,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/generate,docs/sql-reference/table-functions/generate.md,reference/functions/table-functions/generate.mdx,https://clickhouse.com/docs/sql-reference/table-functions/generate,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/generate,matched,6c2593dca504546a,true,6c2593dca504546a,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/generate_series,docs/sql-reference/table-functions/generate_series.md,reference/functions/table-functions/generate_series.mdx,https://clickhouse.com/docs/sql-reference/table-functions/generate_series,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/generate_series,matched,2cd50c48a3e8ea2b,true,2cd50c48a3e8ea2b,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/hdfs,docs/sql-reference/table-functions/hdfs.md,reference/functions/table-functions/hdfs.mdx,https://clickhouse.com/docs/sql-reference/table-functions/hdfs,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/hdfs,matched,f8e80c5b854727f0,true,f8e80c5b854727f0,2026-05-09T09:39:38+00:00,false -/sql-reference/table-functions/hdfsCluster,docs/sql-reference/table-functions/hdfsCluster.md,reference/functions/table-functions/hdfsCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/hdfsCluster,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/hdfsCluster,matched,a1590af208a32d6a,true,a1590af208a32d6a,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/hudi,docs/sql-reference/table-functions/hudi.md,reference/functions/table-functions/hudi.mdx,https://clickhouse.com/docs/sql-reference/table-functions/hudi,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/hudi,matched,ec7ca6bb139399c2,true,ec7ca6bb139399c2,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/hudiCluster,docs/sql-reference/table-functions/hudiCluster.md,reference/functions/table-functions/hudiCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/hudiCluster,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/hudiCluster,matched,7535cf734ec520d3,true,cfb2dfa16b24b4d7,2026-05-08T13:01:57+00:00,false -/sql-reference/table-functions/iceberg,docs/sql-reference/table-functions/iceberg.md,reference/functions/table-functions/iceberg.mdx,https://clickhouse.com/docs/sql-reference/table-functions/iceberg,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/iceberg,matched,a92b3b7bf7653638,true,a92b3b7bf7653638,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/icebergCluster,docs/sql-reference/table-functions/icebergCluster.md,reference/functions/table-functions/icebergCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/icebergCluster,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/icebergCluster,matched,1136750e5a714749,true,1136750e5a714749,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/input,docs/sql-reference/table-functions/input.md,reference/functions/table-functions/input.mdx,https://clickhouse.com/docs/sql-reference/table-functions/input,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/input,matched,d6ef966d733a8006,true,d6ef966d733a8006,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/jdbc,docs/sql-reference/table-functions/jdbc.md,reference/functions/table-functions/jdbc.mdx,https://clickhouse.com/docs/sql-reference/table-functions/jdbc,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/jdbc,matched,ea91e6a9ef884757,true,ea91e6a9ef884757,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/loop,docs/sql-reference/table-functions/loop.md,reference/functions/table-functions/loop.mdx,https://clickhouse.com/docs/sql-reference/table-functions/loop,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/loop,matched,27799a38256c3283,true,27799a38256c3283,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/merge,docs/sql-reference/table-functions/merge.md,reference/functions/table-functions/merge.mdx,https://clickhouse.com/docs/sql-reference/table-functions/merge,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/merge,matched,7c9f227d0f54ac31,true,7c9f227d0f54ac31,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/mergeTreeIndex,docs/sql-reference/table-functions/mergeTreeIndex.md,reference/functions/table-functions/mergeTreeIndex.mdx,https://clickhouse.com/docs/sql-reference/table-functions/mergeTreeIndex,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/mergeTreeIndex,matched,f0cfbaa96ea9b96d,true,f0cfbaa96ea9b96d,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/mergeTreeProjection,docs/sql-reference/table-functions/mergeTreeProjection.md,reference/functions/table-functions/mergeTreeProjection.mdx,https://clickhouse.com/docs/sql-reference/table-functions/mergeTreeProjection,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/mergeTreeProjection,matched,66e0e0e58a15f13b,true,66e0e0e58a15f13b,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/mergeTreeTextIndex,docs/sql-reference/table-functions/mergeTreeTextIndex.md,reference/functions/table-functions/mergeTreeTextIndex.mdx,https://clickhouse.com/docs/sql-reference/table-functions/mergeTreeTextIndex,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/mergeTreeTextIndex,matched,674be778b3ca892c,true,674be778b3ca892c,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/mongodb,docs/sql-reference/table-functions/mongodb.md,reference/functions/table-functions/mongodb.mdx,https://clickhouse.com/docs/sql-reference/table-functions/mongodb,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/mongodb,matched,69c90ba8bcbce740,true,69c90ba8bcbce740,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/mysql,docs/sql-reference/table-functions/mysql.md,reference/functions/table-functions/mysql.mdx,https://clickhouse.com/docs/sql-reference/table-functions/mysql,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/mysql,matched,d8e2e840f42a2098,true,d8e2e840f42a2098,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/null,docs/sql-reference/table-functions/null.md,reference/functions/table-functions/null.mdx,https://clickhouse.com/docs/sql-reference/table-functions/null,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/null,matched,1e3e6c4337634880,true,1e3e6c4337634880,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/numbers,docs/sql-reference/table-functions/numbers.md,reference/functions/table-functions/numbers.mdx,https://clickhouse.com/docs/sql-reference/table-functions/numbers,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/numbers,matched,3627bf6180612a42,true,3627bf6180612a42,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/odbc,docs/sql-reference/table-functions/odbc.md,reference/functions/table-functions/odbc.mdx,https://clickhouse.com/docs/sql-reference/table-functions/odbc,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/odbc,matched,727fc4c5f407c071,true,727fc4c5f407c071,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/paimon,docs/sql-reference/table-functions/paimon.md,reference/functions/table-functions/paimon.mdx,https://clickhouse.com/docs/sql-reference/table-functions/paimon,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/paimon,matched,ff6b4066c22e03bc,true,ff6b4066c22e03bc,2026-05-08T14:01:22+00:00,false -/sql-reference/table-functions/paimonCluster,docs/sql-reference/table-functions/paimonCluster.md,reference/functions/table-functions/paimonCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/paimonCluster,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/paimonCluster,matched,6a7a31ed6e3d760b,true,6a7a31ed6e3d760b,2026-05-08T09:51:10+00:00,false -/sql-reference/table-functions/postgresql,docs/sql-reference/table-functions/postgresql.md,reference/functions/table-functions/postgresql.mdx,https://clickhouse.com/docs/sql-reference/table-functions/postgresql,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/postgresql,matched,b560eed6678fd487,true,b560eed6678fd487,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/primes,docs/sql-reference/table-functions/primes.md,reference/functions/table-functions/primes.mdx,https://clickhouse.com/docs/sql-reference/table-functions/primes,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/primes,matched,4f2d1473a674bb1e,true,4f2d1473a674bb1e,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/prometheusQuery,docs/sql-reference/table-functions/prometheusQuery.md,reference/functions/table-functions/prometheusQuery.mdx,https://clickhouse.com/docs/sql-reference/table-functions/prometheusQuery,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/prometheusQuery,matched,1e86a4d4c3d28658,true,1e86a4d4c3d28658,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/prometheusQueryRange,docs/sql-reference/table-functions/prometheusQueryRange.md,reference/functions/table-functions/prometheusQueryRange.mdx,https://clickhouse.com/docs/sql-reference/table-functions/prometheusQueryRange,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/prometheusQueryRange,matched,f153f45ed52a4bc4,true,f153f45ed52a4bc4,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/redis,docs/sql-reference/table-functions/redis.md,reference/functions/table-functions/redis.mdx,https://clickhouse.com/docs/sql-reference/table-functions/redis,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/redis,matched,184e1d9e9cbbd26f,true,184e1d9e9cbbd26f,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/remote,docs/sql-reference/table-functions/remote.md,reference/functions/table-functions/remote.mdx,https://clickhouse.com/docs/sql-reference/table-functions/remote,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/remote,matched,25bcdaab0a89be0c,true,25bcdaab0a89be0c,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/s3,docs/sql-reference/table-functions/s3.md,reference/functions/table-functions/s3.mdx,https://clickhouse.com/docs/sql-reference/table-functions/s3,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/s3,matched,890b3ede24b4d144,true,890b3ede24b4d144,2026-05-08T15:04:34+00:00,false -/sql-reference/table-functions/s3Cluster,docs/sql-reference/table-functions/s3Cluster.md,reference/functions/table-functions/s3Cluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/s3Cluster,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/s3Cluster,matched,cdef10dfae17e7a4,true,cdef10dfae17e7a4,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/sqlite,docs/sql-reference/table-functions/sqlite.md,reference/functions/table-functions/sqlite.mdx,https://clickhouse.com/docs/sql-reference/table-functions/sqlite,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/sqlite,matched,e3a58d5f3297ba15,true,e3a58d5f3297ba15,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/timeSeriesData,docs/sql-reference/table-functions/timeSeriesData.md,reference/functions/table-functions/timeSeriesData.mdx,https://clickhouse.com/docs/sql-reference/table-functions/timeSeriesData,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/timeSeriesData,matched,b4b2095ec970bd69,true,b4b2095ec970bd69,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/timeSeriesMetrics,docs/sql-reference/table-functions/timeSeriesMetrics.md,reference/functions/table-functions/timeSeriesMetrics.mdx,https://clickhouse.com/docs/sql-reference/table-functions/timeSeriesMetrics,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/timeSeriesMetrics,matched,f7fa77ef91333364,true,f7fa77ef91333364,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/timeSeriesSelector,docs/sql-reference/table-functions/timeSeriesSelector.md,reference/functions/table-functions/timeSeriesSelector.mdx,https://clickhouse.com/docs/sql-reference/table-functions/timeSeriesSelector,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/timeSeriesSelector,matched,2efab495d0d434c3,true,2efab495d0d434c3,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/timeSeriesTags,docs/sql-reference/table-functions/timeSeriesTags.md,reference/functions/table-functions/timeSeriesTags.mdx,https://clickhouse.com/docs/sql-reference/table-functions/timeSeriesTags,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/timeSeriesTags,matched,6c5fde1e295f0580,true,6c5fde1e295f0580,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/url,docs/sql-reference/table-functions/url.md,reference/functions/table-functions/url.mdx,https://clickhouse.com/docs/sql-reference/table-functions/url,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/url,matched,2b36549d2d8d832e,true,2b36549d2d8d832e,2026-05-09T09:39:38+00:00,false -/sql-reference/table-functions/urlCluster,docs/sql-reference/table-functions/urlCluster.md,reference/functions/table-functions/urlCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/urlCluster,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/urlCluster,matched,7ab2dcf6aa50fc83,true,7ab2dcf6aa50fc83,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/values,docs/sql-reference/table-functions/values.md,reference/functions/table-functions/values.mdx,https://clickhouse.com/docs/sql-reference/table-functions/values,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/values,matched,8716709876043316,true,8716709876043316,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/view,docs/sql-reference/table-functions/view.md,reference/functions/table-functions/view.mdx,https://clickhouse.com/docs/sql-reference/table-functions/view,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/view,matched,aa22515e018d41f6,true,aa22515e018d41f6,2026-05-19T11:08:53+00:00,false -/sql-reference/table-functions/ytsaurus,docs/sql-reference/table-functions/ytsaurus.md,reference/functions/table-functions/ytsaurus.mdx,https://clickhouse.com/docs/sql-reference/table-functions/ytsaurus,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/ytsaurus,matched,b931df20b4f6c77e,true,b931df20b4f6c77e,2026-05-08T13:01:57+00:00,false -/sql-reference/table-functions/zeros,docs/sql-reference/table-functions/zeros.md,reference/functions/table-functions/zeros.mdx,https://clickhouse.com/docs/sql-reference/table-functions/zeros,https://private-7c7dfe99.mintlify.app/reference/functions/table-functions/zeros,matched,795be83399042602,true,795be83399042602,2026-05-19T11:08:53+00:00,false -/sql-reference/window-functions/,docs/sql-reference/window-functions/index.md,reference/functions/window-functions/index.mdx,https://clickhouse.com/docs/sql-reference/window-functions/,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions,matched,29b129959d2df6a5,true,29b129959d2df6a5,2026-05-19T11:08:53+00:00,false -/sql-reference/window-functions/cume_dist,docs/sql-reference/window-functions/cume_dist.md,reference/functions/window-functions/cume_dist.mdx,https://clickhouse.com/docs/sql-reference/window-functions/cume_dist,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/cume_dist,matched,ad213d159101deee,true,ad213d159101deee,2026-05-19T11:08:53+00:00,false -/sql-reference/window-functions/dense_rank,docs/sql-reference/window-functions/dense_rank.md,reference/functions/window-functions/dense_rank.mdx,https://clickhouse.com/docs/sql-reference/window-functions/dense_rank,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/dense_rank,matched,0c2b2339983aea4c,true,0c2b2339983aea4c,2026-05-19T11:08:53+00:00,false -/sql-reference/window-functions/first_value,docs/sql-reference/window-functions/first_value.md,reference/functions/window-functions/first_value.mdx,https://clickhouse.com/docs/sql-reference/window-functions/first_value,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/first_value,matched,76e04f71ae6a40b6,true,76e04f71ae6a40b6,2026-05-19T11:08:53+00:00,false -/sql-reference/window-functions/lag,docs/sql-reference/window-functions/lag.md,reference/functions/window-functions/lag.mdx,https://clickhouse.com/docs/sql-reference/window-functions/lag,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/lag,matched,f25bd9104d3a38e3,true,0613ad7af0509f61,2026-05-09T09:39:38+00:00,false -/sql-reference/window-functions/lagInFrame,docs/sql-reference/window-functions/lagInFrame.md,reference/functions/window-functions/lagInFrame.mdx,https://clickhouse.com/docs/sql-reference/window-functions/lagInFrame,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/lagInFrame,matched,cc6fee46ae9d3eb4,true,cc6fee46ae9d3eb4,2026-05-19T11:08:53+00:00,false -/sql-reference/window-functions/last_value,docs/sql-reference/window-functions/last_value.md,reference/functions/window-functions/last_value.mdx,https://clickhouse.com/docs/sql-reference/window-functions/last_value,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/last_value,matched,a0590ca6d8781a22,true,a0590ca6d8781a22,2026-05-19T11:08:53+00:00,false -/sql-reference/window-functions/lead,docs/sql-reference/window-functions/lead.md,reference/functions/window-functions/lead.mdx,https://clickhouse.com/docs/sql-reference/window-functions/lead,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/lead,matched,9c6c51f6b9bd98fc,true,40a994cb17281180,2026-05-09T09:39:38+00:00,false -/sql-reference/window-functions/leadInFrame,docs/sql-reference/window-functions/leadInFrame.md,reference/functions/window-functions/leadInFrame.mdx,https://clickhouse.com/docs/sql-reference/window-functions/leadInFrame,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/leadInFrame,matched,81c1274fdcd7418a,true,81c1274fdcd7418a,2026-05-19T11:08:53+00:00,false -/sql-reference/window-functions/nth_value,docs/sql-reference/window-functions/nth_value.md,reference/functions/window-functions/nth_value.mdx,https://clickhouse.com/docs/sql-reference/window-functions/nth_value,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/nth_value,matched,42b27acbf24b93d3,true,42b27acbf24b93d3,2026-05-19T11:08:53+00:00,false -/sql-reference/window-functions/percent_rank,docs/sql-reference/window-functions/percent_rank.md,reference/functions/window-functions/percent_rank.mdx,https://clickhouse.com/docs/sql-reference/window-functions/percent_rank,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/percent_rank,matched,aeb00b6ade296f85,true,aeb00b6ade296f85,2026-05-19T11:08:53+00:00,false -/sql-reference/window-functions/rank,docs/sql-reference/window-functions/rank.md,reference/functions/window-functions/rank.mdx,https://clickhouse.com/docs/sql-reference/window-functions/rank,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/rank,matched,8bb74a5fb304b4bf,true,8bb74a5fb304b4bf,2026-05-19T11:08:53+00:00,false -/sql-reference/window-functions/row_number,docs/sql-reference/window-functions/row_number.md,reference/functions/window-functions/row_number.mdx,https://clickhouse.com/docs/sql-reference/window-functions/row_number,https://private-7c7dfe99.mintlify.app/reference/functions/window-functions/row_number,matched,c7b667d2713e85b5,true,c7b667d2713e85b5,2026-05-19T11:08:53+00:00,false +/sql-reference/functions,docs/sql-reference/functions/index.md,core/reference/functions/index.mdx,https://clickhouse.com/docs/sql-reference/functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/index,matched,f8bdbd53bca6538f,true,f8bdbd53bca6538f,2026-05-09T14:57:56+00:00,false +/sql-reference/functions/ai-functions,docs/sql-reference/functions/ai-functions.md,core/reference/functions/regular-functions/ai-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/ai-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/ai-functions,matched,f4c7162165bc448f,true,f4c7162165bc448f,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/arithmetic-functions,docs/sql-reference/functions/arithmetic-functions.md,core/reference/functions/regular-functions/arithmetic-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/arithmetic-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/arithmetic-functions,matched,02b001fbc5c71e7a,true,02b001fbc5c71e7a,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/array-functions,docs/sql-reference/functions/array-functions.md,core/reference/functions/regular-functions/array-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/array-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/array-functions,matched,2af9113b37ef938b,true,2af9113b37ef938b,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/array-join,docs/sql-reference/functions/array-join.md,core/reference/functions/regular-functions/array-join.mdx,https://clickhouse.com/docs/sql-reference/functions/array-join,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/array-join,matched,f957edbf7546dd57,true,f957edbf7546dd57,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/bit-functions,docs/sql-reference/functions/bit-functions.md,core/reference/functions/regular-functions/bit-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/bit-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/bit-functions,matched,5eba45d5047e61ed,true,5eba45d5047e61ed,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/bitmap-functions,docs/sql-reference/functions/bitmap-functions.md,core/reference/functions/regular-functions/bitmap-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/bitmap-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/bitmap-functions,matched,beb814995a4d3828,true,beb814995a4d3828,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/comparison-functions,docs/sql-reference/functions/comparison-functions.md,core/reference/functions/regular-functions/comparison-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/comparison-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/comparison-functions,matched,a367f52dd26b9689,true,a367f52dd26b9689,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/conditional-functions,docs/sql-reference/functions/conditional-functions.md,core/reference/functions/regular-functions/conditional-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/conditional-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/conditional-functions,matched,572d7f58d1fadc2b,true,572d7f58d1fadc2b,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/date-time-functions,docs/sql-reference/functions/date-time-functions.md,core/reference/functions/regular-functions/date-time-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/date-time-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/date-time-functions,matched,c1ae3146d9e1277c,true,c1ae3146d9e1277c,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/distance-functions,docs/sql-reference/functions/distance-functions.md,core/reference/functions/regular-functions/distance-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/distance-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/distance-functions,matched,f38245971fff95d0,true,d640404b6455109c,2026-05-08T21:00:17+00:00,false +/sql-reference/functions/encoding-functions,docs/sql-reference/functions/encoding-functions.md,core/reference/functions/regular-functions/encoding-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/encoding-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/encoding-functions,matched,ef94c3584fe6e806,true,1eb826597211a7ff,2026-05-08T21:00:17+00:00,false +/sql-reference/functions/encryption-functions,docs/sql-reference/functions/encryption-functions.md,core/reference/functions/regular-functions/encryption-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/encryption-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/encryption-functions,matched,2f986310e85f4a78,true,2fd413bc4634b77e,2026-05-08T21:00:18+00:00,false +/sql-reference/functions/ext-dict-functions,docs/sql-reference/functions/ext-dict-functions.md,core/reference/functions/regular-functions/ext-dict-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/ext-dict-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/ext-dict-functions,matched,298d92d6d2051a70,true,c7909951aa9b73e5,2026-05-08T21:00:18+00:00,false +/sql-reference/functions/files,docs/sql-reference/functions/files.md,core/reference/functions/regular-functions/files.mdx,https://clickhouse.com/docs/sql-reference/functions/files,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/files,matched,17de42c037b1a363,true,17de42c037b1a363,2026-05-07T14:49:41+00:00,false +/sql-reference/functions/financial-functions,docs/sql-reference/functions/financial-functions.md,core/reference/functions/regular-functions/financial-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/financial-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/financial-functions,matched,579a04fed7b56ba9,true,ab5b820100b0d5ef,2026-05-08T21:00:18+00:00,false +/sql-reference/functions/functions-for-nulls,docs/sql-reference/functions/functions-for-nulls.md,core/reference/functions/regular-functions/functions-for-nulls.mdx,https://clickhouse.com/docs/sql-reference/functions/functions-for-nulls,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/functions-for-nulls,matched,b24195f9fa72734c,true,8a5916d24974dec6,2026-05-08T21:00:18+00:00,false +/sql-reference/functions/geo/,docs/sql-reference/functions/geo/index.md,core/reference/functions/regular-functions/geo/index.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/geo/index,matched,229b20a3b9f2e01d,true,229b20a3b9f2e01d,2026-05-09T09:39:38+00:00,false +/sql-reference/functions/geo/coordinates,docs/sql-reference/functions/geo/coordinates.md,core/reference/functions/regular-functions/geo/coordinates.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/coordinates,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/geo/coordinates,matched,df1646edca9715cc,true,df1646edca9715cc,2026-05-07T14:49:41+00:00,false +/sql-reference/functions/geo/flipCoordinates,docs/sql-reference/functions/geo/flipCoordinates.md,core/reference/functions/regular-functions/geo/flipCoordinates.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/flipCoordinates,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/geo/flipCoordinates,matched,ecfdec0409be257b,true,ecfdec0409be257b,2026-05-07T14:49:41+00:00,false +/sql-reference/functions/geo/geohash,docs/sql-reference/functions/geo/geohash.md,core/reference/functions/regular-functions/geo/geohash.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/geohash,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/geo/geohash,matched,5b02c1d23fb7c027,true,5b02c1d23fb7c027,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/geo/geometry,docs/sql-reference/functions/geo/geometry.md,core/reference/functions/regular-functions/geo/geometry.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/geometry,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/geo/geometry,matched,4a937e11a15d6308,true,4a937e11a15d6308,2026-05-07T14:49:41+00:00,false +/sql-reference/functions/geo/h3,docs/sql-reference/functions/geo/h3.md,core/reference/functions/regular-functions/geo/h3.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/h3,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/geo/h3,matched,664fe90e97793346,true,664fe90e97793346,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/geo/polygons,docs/sql-reference/functions/geo/polygon.md,core/reference/functions/regular-functions/geo/polygon.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/polygons,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/geo/polygon,matched,783554b75229a238,true,783554b75229a238,2026-05-07T14:49:41+00:00,false +/sql-reference/functions/geo/s2,docs/sql-reference/functions/geo/s2.md,core/reference/functions/regular-functions/geo/s2.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/s2,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/geo/s2,matched,25a140f37d151801,true,25a140f37d151801,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/geo/svg,docs/sql-reference/functions/geo/svg.md,core/reference/functions/regular-functions/geo/svg.mdx,https://clickhouse.com/docs/sql-reference/functions/geo/svg,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/geo/svg,matched,10638f31971872f4,true,10638f31971872f4,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/hash-functions,docs/sql-reference/functions/hash-functions.md,core/reference/functions/regular-functions/hash-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/hash-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/hash-functions,matched,7f12c0de7a23ba0d,true,7f12c0de7a23ba0d,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/in-functions,docs/sql-reference/functions/in-functions.md,core/reference/functions/regular-functions/in-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/in-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/in-functions,matched,c085580b4d0cc549,true,a3692c0caea63dcc,2026-05-07T14:49:41+00:00,false +/sql-reference/functions/introspection,docs/sql-reference/functions/introspection.md,core/reference/functions/regular-functions/introspection.mdx,https://clickhouse.com/docs/sql-reference/functions/introspection,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/introspection,matched,8c3a5b4e6bbc35a0,true,8c3a5b4e6bbc35a0,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/ip-address-functions,docs/sql-reference/functions/ip-address-functions.md,core/reference/functions/regular-functions/ip-address-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/ip-address-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/ip-address-functions,matched,07b39d5a48cb9cad,true,2cd6cb2965c1a236,2026-05-08T21:00:19+00:00,false +/sql-reference/functions/json-functions,docs/sql-reference/functions/json-functions.md,core/reference/functions/regular-functions/json-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/json-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/json-functions,matched,9165d90e06f1bc6a,true,9165d90e06f1bc6a,2026-05-08T21:00:19+00:00,false +/sql-reference/functions/logical-functions,docs/sql-reference/functions/logical-functions.md,core/reference/functions/regular-functions/logical-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/logical-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/logical-functions,matched,bb98f186198d2ed0,true,361d5b69622cc74b,2026-05-08T21:00:19+00:00,false +/sql-reference/functions/machine-learning-functions,docs/sql-reference/functions/machine-learning-functions.md,core/reference/functions/regular-functions/machine-learning-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/machine-learning-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/machine-learning-functions,matched,10776ce269a165a1,true,10776ce269a165a1,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/math-functions,docs/sql-reference/functions/math-functions.md,core/reference/functions/regular-functions/math-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/math-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/math-functions,matched,92fa54c38be1b0fc,true,92fa54c38be1b0fc,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/nlp-functions,docs/sql-reference/functions/nlp-functions.md,core/reference/functions/regular-functions/nlp-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/nlp-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/nlp-functions,matched,00c21ab328d01f85,true,00c21ab328d01f85,2026-05-08T21:00:20+00:00,false +/sql-reference/functions/numeric-indexed-vector-functions,docs/sql-reference/functions/numeric-indexed-vector-functions.md,core/reference/functions/regular-functions/numeric-indexed-vector-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/numeric-indexed-vector-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/numeric-indexed-vector-functions,matched,119e6aa5f59fcf54,true,119e6aa5f59fcf54,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/other-functions,docs/sql-reference/functions/other-functions.md,core/reference/functions/regular-functions/other-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/other-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/other-functions,matched,7074e5e40464af1f,true,7074e5e40464af1f,2026-05-09T11:14:51+00:00,false +/sql-reference/functions/overview,docs/sql-reference/functions/overview.md,core/reference/functions/regular-functions/overview.mdx,https://clickhouse.com/docs/sql-reference/functions/overview,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/overview,matched,1c87cec5b19f085f,true,1c87cec5b19f085f,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/random-functions,docs/sql-reference/functions/random-functions.md,core/reference/functions/regular-functions/random-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/random-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/random-functions,matched,100ed7d23b2b6a33,true,358fb4cd1d025b1e,2026-05-09T11:14:51+00:00,false +/sql-reference/functions/regular-functions,docs/sql-reference/functions/regular-functions-index.md,core/reference/functions/regular-functions/regular-functions-index.mdx,https://clickhouse.com/docs/sql-reference/functions/regular-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/regular-functions-index,matched,6c152f17b58caad6,true,6c152f17b58caad6,2026-05-07T14:49:41+00:00,false +/sql-reference/functions/rounding-functions,docs/sql-reference/functions/rounding-functions.md,core/reference/functions/regular-functions/rounding-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/rounding-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/rounding-functions,matched,6d242e455062433b,true,6d242e455062433b,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/splitting-merging-functions,docs/sql-reference/functions/splitting-merging-functions.md,core/reference/functions/regular-functions/splitting-merging-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/splitting-merging-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/splitting-merging-functions,matched,a9096bda5a1d4bed,true,a9096bda5a1d4bed,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/string-functions,docs/sql-reference/functions/string-functions.md,core/reference/functions/regular-functions/string-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/string-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/string-functions,matched,33fc09ec788a00bc,true,33fc09ec788a00bc,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/string-replace-functions,docs/sql-reference/functions/string-replace-functions.md,core/reference/functions/regular-functions/string-replace-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/string-replace-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/string-replace-functions,matched,aa22cbfaf59e7cd2,true,4e9f35ffe6ecaca5,2026-05-08T21:00:21+00:00,false +/sql-reference/functions/string-search-functions,docs/sql-reference/functions/string-search-functions.md,core/reference/functions/regular-functions/string-search-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/string-search-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/string-search-functions,matched,62d1d7f4caef7947,true,c0e976dd1c956867,2026-05-13T13:16:51+00:00,false +/sql-reference/functions/time-series-functions,docs/sql-reference/functions/time-series-functions.md,core/reference/functions/regular-functions/time-series-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/time-series-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/time-series-functions,matched,8c7c9620fbcc2649,true,8c7c9620fbcc2649,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/time-window-functions,docs/sql-reference/functions/time-window-functions.md,core/reference/functions/regular-functions/time-window-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/time-window-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/time-window-functions,matched,6b2576c3b03c809a,true,6b2576c3b03c809a,2026-05-08T21:00:22+00:00,false +/sql-reference/functions/tuple-functions,docs/sql-reference/functions/tuple-functions.md,core/reference/functions/regular-functions/tuple-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/tuple-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/tuple-functions,matched,edda876cb4a500ad,true,edda876cb4a500ad,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/tuple-map-functions,docs/sql-reference/functions/tuple-map-functions.md,core/reference/functions/regular-functions/tuple-map-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/tuple-map-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/tuple-map-functions,matched,6b14acbe7eb707cd,true,6b14acbe7eb707cd,2026-05-08T21:00:22+00:00,false +/sql-reference/functions/type-conversion-functions,docs/sql-reference/functions/type-conversion-functions.md,core/reference/functions/regular-functions/type-conversion-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/type-conversion-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/type-conversion-functions,matched,95fedfe6cbfe1988,true,95fedfe6cbfe1988,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/udf,docs/sql-reference/functions/udf.md,core/reference/functions/regular-functions/udf.mdx,https://clickhouse.com/docs/sql-reference/functions/udf,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/udf,matched,8112ec90462892fe,true,8112ec90462892fe,2026-05-08T13:01:57+00:00,false +/sql-reference/functions/ulid-functions,docs/sql-reference/functions/ulid-functions.md,core/reference/functions/regular-functions/ulid-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/ulid-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/ulid-functions,matched,90c8d51f3c8beae5,true,193ab0f49915d34d,2026-05-08T21:00:22+00:00,false +/sql-reference/functions/uniqtheta-functions,docs/sql-reference/functions/uniqtheta-functions.md,core/reference/functions/regular-functions/uniqtheta-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/uniqtheta-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/uniqtheta-functions,matched,f6c57709732c2698,true,f6c57709732c2698,2026-05-19T11:08:53+00:00,false +/sql-reference/functions/url-functions,docs/sql-reference/functions/url-functions.md,core/reference/functions/regular-functions/url-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/url-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/url-functions,matched,2500ec02c6e32dae,true,25bb5ed2c3fd62e0,2026-05-08T21:10:29+00:00,false +/sql-reference/functions/uuid-functions,docs/sql-reference/functions/uuid-functions.md,core/reference/functions/regular-functions/uuid-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/uuid-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/uuid-functions,matched,4d3c22972e76f466,true,4d3c22972e76f466,2026-05-08T21:00:23+00:00,false +/sql-reference/functions/wasm_udf,docs/sql-reference/functions/wasm_udf.md,core/reference/functions/regular-functions/wasm_udf.mdx,https://clickhouse.com/docs/sql-reference/functions/wasm_udf,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/wasm_udf,matched,e1c6c946b3ac7668,true,e1c6c946b3ac7668,2026-05-13T13:16:51+00:00,false +/sql-reference/functions/ym-dict-functions,docs/sql-reference/functions/embedded-dict-functions.md,core/reference/functions/regular-functions/embedded-dict-functions.mdx,https://clickhouse.com/docs/sql-reference/functions/ym-dict-functions,https://private-7c7dfe99.mintlify.app/core/reference/functions/regular-functions/embedded-dict-functions,matched,efac682e61bf516e,true,efac682e61bf516e,2026-05-19T11:08:53+00:00,false +/sql-reference/operators/,docs/sql-reference/operators/index.md,core/reference/operators/index.mdx,https://clickhouse.com/docs/sql-reference/operators/,https://private-7c7dfe99.mintlify.app/core/reference/operators/index,matched,3d3c9f430d3e635f,true,3d3c9f430d3e635f,2026-05-19T11:08:53+00:00,false +/sql-reference/operators/exists,docs/sql-reference/operators/exists.md,core/reference/operators/exists.mdx,https://clickhouse.com/docs/sql-reference/operators/exists,https://private-7c7dfe99.mintlify.app/core/reference/operators/exists,matched,12948636f740400a,true,12948636f740400a,2026-05-19T11:08:53+00:00,false +/sql-reference/operators/in,docs/sql-reference/operators/in.md,core/reference/statements/in.mdx,https://clickhouse.com/docs/sql-reference/operators/in,https://private-7c7dfe99.mintlify.app/core/reference/statements/in,matched,11db78d13ea77687,true,11db78d13ea77687,2026-05-19T11:08:53+00:00,false +/sql-reference/other/distributed-ddl,docs/sql-reference/operators/distributed-ddl.md,core/reference/operators/distributed-ddl.mdx,https://clickhouse.com/docs/sql-reference/other/distributed-ddl,https://private-7c7dfe99.mintlify.app/core/reference/operators/distributed-ddl,matched,f2e0676875f34dd5,true,f2e0676875f34dd5,2026-05-08T11:33:34+00:00,false +/sql-reference/statements/,docs/sql-reference/statements/index.md,core/reference/statements/index.mdx,https://clickhouse.com/docs/sql-reference/statements/,https://private-7c7dfe99.mintlify.app/core/reference/statements/index,matched,981af6c22c02e012,true,84bf17e2315c270d,2026-05-09T09:39:38+00:00,false +/sql-reference/statements/alter/,docs/sql-reference/statements/alter/index.md,core/reference/statements/alter/index.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/index,matched,2f0f542d60abb09a,true,3cae588d4c419194,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/alter/apply-deleted-mask,docs/sql-reference/statements/alter/apply-deleted-mask.md,core/reference/statements/alter/apply-deleted-mask.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/apply-deleted-mask,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/apply-deleted-mask,matched,aed29a266c464c67,true,aed29a266c464c67,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/alter/apply-patches,docs/sql-reference/statements/alter/apply-patches.md,core/reference/statements/alter/apply-patches.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/apply-patches,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/apply-patches,matched,2bba7ff9f47b7239,true,2bba7ff9f47b7239,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/alter/column,docs/sql-reference/statements/alter/column.md,core/reference/statements/alter/column.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/column,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/column,matched,30130c9b0fe3bf74,true,30130c9b0fe3bf74,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/alter/comment,docs/sql-reference/statements/alter/comment.md,core/reference/statements/alter/comment.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/comment,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/comment,matched,dcbbc74fb0568312,true,dcbbc74fb0568312,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/alter/constraint,docs/sql-reference/statements/alter/constraint.md,core/reference/statements/alter/constraint.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/constraint,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/constraint,matched,c29e0fea27b243f4,true,8ed2a0a54a6b4cc5,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/alter/database-comment,docs/sql-reference/statements/alter/database-comment.md,core/reference/statements/alter/database-comment.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/database-comment,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/database-comment,matched,794f8576733173a6,true,794f8576733173a6,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/alter/delete,docs/sql-reference/statements/alter/delete.md,core/reference/statements/alter/delete.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/delete,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/delete,matched,79df6fbd25ea241d,true,79df6fbd25ea241d,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/alter/masking-policy,docs/sql-reference/statements/alter/masking-policy.md,core/reference/statements/alter/masking-policy.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/masking-policy,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/masking-policy,matched,db4497ceb4087eda,true,db4497ceb4087eda,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/alter/named-collection,docs/sql-reference/statements/alter/named-collection.md,core/reference/statements/alter/named-collection.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/named-collection,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/named-collection,matched,1ba41582c1e8ebc8,true,1ba41582c1e8ebc8,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/alter/order-by,docs/sql-reference/statements/alter/order-by.md,core/reference/statements/alter/order-by.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/order-by,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/order-by,matched,e4d1e2d42d9244d8,true,da55650acb4be1e8,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/alter/partition,docs/sql-reference/statements/alter/partition.md,core/reference/statements/alter/partition.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/partition,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/partition,matched,32785de3bff088ba,true,32785de3bff088ba,2026-05-08T21:00:25+00:00,false +/sql-reference/statements/alter/projection,docs/sql-reference/statements/alter/projection.md,core/reference/statements/alter/projection.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/projection,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/projection,matched,4f226b1552bbed54,true,4f226b1552bbed54,2026-05-13T15:43:31+00:00,false +/sql-reference/statements/alter/quota,docs/sql-reference/statements/alter/quota.md,core/reference/statements/alter/quota.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/quota,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/quota,matched,7f4ff197ce476062,true,7f4ff197ce476062,2026-05-19T11:48:22+00:00,false +/sql-reference/statements/alter/role,docs/sql-reference/statements/alter/role.md,core/reference/statements/alter/role.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/role,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/role,matched,303a2bb1adcbfc7e,true,303a2bb1adcbfc7e,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/alter/row-policy,docs/sql-reference/statements/alter/row-policy.md,core/reference/statements/alter/row-policy.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/row-policy,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/row-policy,matched,660c01b012c65f4b,true,e9242354e112109a,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/alter/sample-by,docs/sql-reference/statements/alter/sample-by.md,core/reference/statements/alter/sample-by.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/sample-by,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/sample-by,matched,7154b5b2b24b75bc,true,7154b5b2b24b75bc,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/alter/setting,docs/sql-reference/statements/alter/setting.md,core/reference/statements/alter/setting.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/setting,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/setting,matched,333f7287eb8ca013,true,8396ae84019ca444,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/alter/settings-profile,docs/sql-reference/statements/alter/settings-profile.md,core/reference/statements/alter/settings-profile.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/settings-profile,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/settings-profile,matched,974e376db0d1f6bc,true,974e376db0d1f6bc,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/alter/skipping-index,docs/sql-reference/statements/alter/skipping-index.md,core/reference/statements/alter/skipping-index.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/skipping-index,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/skipping-index,matched,639cf49f6b576656,true,a6ee74f4a5fa3c47,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/alter/statistics,docs/sql-reference/statements/alter/statistics.md,core/reference/statements/alter/statistics.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/statistics,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/statistics,matched,dc6bed38f255f290,true,dc6bed38f255f290,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/alter/ttl,docs/sql-reference/statements/alter/ttl.md,core/reference/statements/alter/ttl.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/ttl,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/ttl,matched,fb1e74b3574ce837,true,092cf9506a86a064,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/alter/update,docs/sql-reference/statements/alter/update.md,core/reference/statements/alter/update.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/update,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/update,matched,f24e62109df1df61,true,a545210822fcd08c,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/alter/user,docs/sql-reference/statements/alter/user.md,core/reference/statements/alter/user.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/user,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/user,matched,bad6198b79924e96,true,bad6198b79924e96,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/alter/view,docs/sql-reference/statements/alter/view.md,core/reference/statements/alter/view.mdx,https://clickhouse.com/docs/sql-reference/statements/alter/view,https://private-7c7dfe99.mintlify.app/core/reference/statements/alter/view,matched,849db286b271b6aa,true,3496fbf668769ff7,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/attach,docs/sql-reference/statements/attach.md,core/reference/statements/attach.mdx,https://clickhouse.com/docs/sql-reference/statements/attach,https://private-7c7dfe99.mintlify.app/core/reference/statements/attach,matched,0780d8eecea4ce0b,true,0780d8eecea4ce0b,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/check-grant,docs/sql-reference/statements/check-grant.md,core/reference/statements/check-grant.mdx,https://clickhouse.com/docs/sql-reference/statements/check-grant,https://private-7c7dfe99.mintlify.app/core/reference/statements/check-grant,matched,2d31634c588cb280,true,2d31634c588cb280,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/check-table,docs/sql-reference/statements/check-table.md,core/reference/statements/check-table.mdx,https://clickhouse.com/docs/sql-reference/statements/check-table,https://private-7c7dfe99.mintlify.app/core/reference/statements/check-table,matched,781b1716f6a68933,true,781b1716f6a68933,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/create/,docs/sql-reference/statements/create/index.md,core/reference/statements/create/index.mdx,https://clickhouse.com/docs/sql-reference/statements/create/,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/index,matched,b45c5e1d1fb0fe6e,true,f53eec1c24f726e2,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/create/database,docs/sql-reference/statements/create/database.md,core/reference/statements/create/database.mdx,https://clickhouse.com/docs/sql-reference/statements/create/database,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/database,matched,23534a319008733b,true,23534a319008733b,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/create/dictionary,docs/sql-reference/statements/create/dictionary/overview.md,core/reference/statements/create/dictionary.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary,matched,991e50e50ab9d097,true,991e50e50ab9d097,2026-05-19T11:48:22+00:00,false +/sql-reference/statements/create/dictionary/attributes,docs/sql-reference/statements/create/dictionary/attributes.md,core/reference/statements/create/dictionary/attributes.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/attributes,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/attributes,matched,df228adf9244be27,true,df228adf9244be27,2026-05-09T09:39:38+00:00,false +/sql-reference/statements/create/dictionary/embedded,docs/sql-reference/statements/create/dictionary/embedded.md,core/reference/statements/create/dictionary/embedded.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/embedded,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/embedded,matched,a5134319e705b1c2,true,a5134319e705b1c2,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/dictionary/layouts,docs/sql-reference/statements/create/dictionary/layouts/overview.md,core/reference/statements/create/dictionary/layouts/overview.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/overview,matched,8a936c931e3b749d,true,8a936c931e3b749d,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/dictionary/layouts/cache,docs/sql-reference/statements/create/dictionary/layouts/cache.md,core/reference/statements/create/dictionary/layouts/cache.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/cache,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/cache,matched,1dbce5622d55c826,true,1dbce5622d55c826,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/dictionary/layouts/direct,docs/sql-reference/statements/create/dictionary/layouts/direct.md,core/reference/statements/create/dictionary/layouts/direct.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/direct,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/direct,matched,ba9d1650e5d9d3d1,true,ba9d1650e5d9d3d1,2026-05-08T11:53:27+00:00,false +/sql-reference/statements/create/dictionary/layouts/flat,docs/sql-reference/statements/create/dictionary/layouts/flat.md,core/reference/statements/create/dictionary/layouts/flat.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/flat,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/flat,matched,4cd2982872ada37d,true,4cd2982872ada37d,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/dictionary/layouts/hashed,docs/sql-reference/statements/create/dictionary/layouts/hashed.md,core/reference/statements/create/dictionary/layouts/hashed.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/hashed,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/hashed,matched,765b099e5923d360,true,765b099e5923d360,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/create/dictionary/layouts/hashed-array,docs/sql-reference/statements/create/dictionary/layouts/hashed-array.md,core/reference/statements/create/dictionary/layouts/hashed-array.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/hashed-array,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/hashed-array,matched,08b0f7772e500940,true,08b0f7772e500940,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/create/dictionary/layouts/hierarchical,docs/sql-reference/statements/create/dictionary/layouts/hierarchical.md,core/reference/statements/create/dictionary/layouts/hierarchical.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/hierarchical,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/hierarchical,matched,d0f45477e4502d5e,true,d0f45477e4502d5e,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/create/dictionary/layouts/ip-trie,docs/sql-reference/statements/create/dictionary/layouts/ip-trie.md,core/reference/statements/create/dictionary/layouts/ip-trie.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/ip-trie,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/ip-trie,matched,4663d6bdd0aad269,true,4663d6bdd0aad269,2026-05-08T12:19:52+00:00,false +/sql-reference/statements/create/dictionary/layouts/polygon,docs/sql-reference/statements/create/dictionary/layouts/polygon.md,core/reference/statements/create/dictionary/layouts/polygon.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/polygon,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/polygon,matched,ac87c199241e9bf9,true,ac87c199241e9bf9,2026-05-08T12:19:52+00:00,false +/sql-reference/statements/create/dictionary/layouts/range-hashed,docs/sql-reference/statements/create/dictionary/layouts/range-hashed.md,core/reference/statements/create/dictionary/layouts/range-hashed.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/range-hashed,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/range-hashed,matched,8ccca11e1180ae05,true,8ccca11e1180ae05,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/dictionary/layouts/regexp-tree,docs/sql-reference/statements/create/dictionary/layouts/regexp-tree.md,core/reference/statements/create/dictionary/layouts/regexp-tree.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/regexp-tree,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/regexp-tree,matched,5e7a7769b6056521,true,5e7a7769b6056521,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/create/dictionary/layouts/ssd-cache,docs/sql-reference/statements/create/dictionary/layouts/ssd-cache.md,core/reference/statements/create/dictionary/layouts/ssd-cache.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/layouts/ssd-cache,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/layouts/ssd-cache,matched,fb386a8d8121b54d,true,fb386a8d8121b54d,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/create/dictionary/lifetime,docs/sql-reference/statements/create/dictionary/lifetime.md,core/reference/statements/create/dictionary/lifetime.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/lifetime,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/lifetime,matched,4ef385db95bf4e51,true,4ef385db95bf4e51,2026-05-08T11:53:27+00:00,false +/sql-reference/statements/create/dictionary/sources,docs/sql-reference/statements/create/dictionary/sources/overview.md,core/reference/statements/create/dictionary/sources/overview.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/overview,matched,8d300d0cef0bff68,true,8d300d0cef0bff68,2026-05-13T15:43:32+00:00,false +/sql-reference/statements/create/dictionary/sources/cassandra,docs/sql-reference/statements/create/dictionary/sources/cassandra.md,core/reference/statements/create/dictionary/sources/cassandra.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/cassandra,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/cassandra,matched,3366fbba1d891441,true,3366fbba1d891441,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/dictionary/sources/clickhouse,docs/sql-reference/statements/create/dictionary/sources/clickhouse.md,core/reference/statements/create/dictionary/sources/clickhouse.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/clickhouse,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/clickhouse,matched,93b842786d511f36,true,93b842786d511f36,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/dictionary/sources/executable-file,docs/sql-reference/statements/create/dictionary/sources/executable-file.md,core/reference/statements/create/dictionary/sources/executable-file.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/executable-file,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/executable-file,matched,220264aaefc1334a,true,220264aaefc1334a,2026-05-08T15:04:34+00:00,false +/sql-reference/statements/create/dictionary/sources/executable-pool,docs/sql-reference/statements/create/dictionary/sources/executable-pool.md,core/reference/statements/create/dictionary/sources/executable-pool.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/executable-pool,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/executable-pool,matched,d1ff1acf8257ac87,true,d1ff1acf8257ac87,2026-05-08T15:04:34+00:00,false +/sql-reference/statements/create/dictionary/sources/http,docs/sql-reference/statements/create/dictionary/sources/http.md,core/reference/statements/create/dictionary/sources/http.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/http,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/http,matched,e72f060583314b47,true,e72f060583314b47,2026-05-08T15:04:34+00:00,false +/sql-reference/statements/create/dictionary/sources/local-file,docs/sql-reference/statements/create/dictionary/sources/local-file.md,core/reference/statements/create/dictionary/sources/local-file.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/local-file,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/local-file,matched,a1a7676e8f61e757,true,a1a7676e8f61e757,2026-05-08T15:04:34+00:00,false +/sql-reference/statements/create/dictionary/sources/mongodb,docs/sql-reference/statements/create/dictionary/sources/mongodb.md,core/reference/statements/create/dictionary/sources/mongodb.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/mongodb,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/mongodb,matched,1e59afc5c1cb7417,true,1e59afc5c1cb7417,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/create/dictionary/sources/mysql,docs/sql-reference/statements/create/dictionary/sources/mysql.md,core/reference/statements/create/dictionary/sources/mysql.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/mysql,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/mysql,matched,44331440c9cf0cf2,true,44331440c9cf0cf2,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/dictionary/sources/null,docs/sql-reference/statements/create/dictionary/sources/null.md,core/reference/statements/create/dictionary/sources/null.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/null,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/null,matched,e33e071b01088cb8,true,e33e071b01088cb8,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/create/dictionary/sources/odbc,docs/sql-reference/statements/create/dictionary/sources/odbc.md,core/reference/statements/create/dictionary/sources/odbc.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/odbc,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/odbc,matched,c6f1346b0c918e21,true,c6f1346b0c918e21,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/dictionary/sources/postgresql,docs/sql-reference/statements/create/dictionary/sources/postgresql.md,core/reference/statements/create/dictionary/sources/postgresql.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/postgresql,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/postgresql,matched,f94ebe7f7e07a840,true,f94ebe7f7e07a840,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/dictionary/sources/redis,docs/sql-reference/statements/create/dictionary/sources/redis.md,core/reference/statements/create/dictionary/sources/redis.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/redis,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/redis,matched,44c3ced931104ce8,true,44c3ced931104ce8,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/create/dictionary/sources/yamlregexptree,docs/sql-reference/statements/create/dictionary/sources/yamlregexptree.md,core/reference/statements/create/dictionary/sources/yamlregexptree.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/yamlregexptree,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/yamlregexptree,matched,fa8e3f45deab02e7,true,fa8e3f45deab02e7,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/dictionary/sources/ytsaurus,docs/sql-reference/statements/create/dictionary/sources/ytsaurus.md,core/reference/statements/create/dictionary/sources/ytsaurus.mdx,https://clickhouse.com/docs/sql-reference/statements/create/dictionary/sources/ytsaurus,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/dictionary/sources/ytsaurus,matched,d17074ea4ae2f160,true,d17074ea4ae2f160,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/function,docs/sql-reference/statements/create/function.md,core/reference/statements/create/function.mdx,https://clickhouse.com/docs/sql-reference/statements/create/function,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/function,matched,b10c2bd1add9f390,true,b10c2bd1add9f390,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/create/masking-policy,docs/sql-reference/statements/create/masking-policy.md,core/reference/statements/create/masking-policy.mdx,https://clickhouse.com/docs/sql-reference/statements/create/masking-policy,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/masking-policy,matched,fd8e3cc73dae2f42,true,fd8e3cc73dae2f42,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/named-collection,docs/sql-reference/statements/create/named-collection.md,core/reference/statements/create/named-collection.mdx,https://clickhouse.com/docs/sql-reference/statements/create/named-collection,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/named-collection,matched,7d224b4658e83885,true,7d224b4658e83885,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/create/quota,docs/sql-reference/statements/create/quota.md,core/reference/statements/create/quota.mdx,https://clickhouse.com/docs/sql-reference/statements/create/quota,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/quota,matched,a0e499214c967512,true,a0e499214c967512,2026-05-19T11:48:22+00:00,false +/sql-reference/statements/create/role,docs/sql-reference/statements/create/role.md,core/reference/statements/create/role.mdx,https://clickhouse.com/docs/sql-reference/statements/create/role,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/role,matched,437e57c81c3f0872,true,437e57c81c3f0872,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/create/row-policy,docs/sql-reference/statements/create/row-policy.md,core/reference/statements/create/row-policy.mdx,https://clickhouse.com/docs/sql-reference/statements/create/row-policy,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/row-policy,matched,7af119041838a001,true,7af119041838a001,2026-05-19T11:48:22+00:00,false +/sql-reference/statements/create/settings-profile,docs/sql-reference/statements/create/settings-profile.md,core/reference/statements/create/settings-profile.mdx,https://clickhouse.com/docs/sql-reference/statements/create/settings-profile,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/settings-profile,matched,5840e875e6ec0ff5,true,5840e875e6ec0ff5,2026-05-19T11:48:22+00:00,false +/sql-reference/statements/create/table,docs/sql-reference/statements/create/table.md,core/reference/statements/create/table.mdx,https://clickhouse.com/docs/sql-reference/statements/create/table,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/table,matched,fef6440f2af25f60,true,fef6440f2af25f60,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/create/user,docs/sql-reference/statements/create/user.md,core/reference/statements/create/user.mdx,https://clickhouse.com/docs/sql-reference/statements/create/user,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/user,matched,ea6560f73f342624,true,ea6560f73f342624,2026-05-19T11:48:22+00:00,false +/sql-reference/statements/create/view,docs/sql-reference/statements/create/view.md,core/reference/statements/create/view.mdx,https://clickhouse.com/docs/sql-reference/statements/create/view,https://private-7c7dfe99.mintlify.app/core/reference/statements/create/view,matched,4da94523000fe99c,true,4da94523000fe99c,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/delete,docs/sql-reference/statements/delete.md,core/reference/statements/delete.mdx,https://clickhouse.com/docs/sql-reference/statements/delete,https://private-7c7dfe99.mintlify.app/core/reference/statements/delete,matched,635055619056b153,true,635055619056b153,2026-05-09T17:02:01+00:00,false +/sql-reference/statements/describe-table,docs/sql-reference/statements/describe-table.md,core/reference/statements/describe-table.mdx,https://clickhouse.com/docs/sql-reference/statements/describe-table,https://private-7c7dfe99.mintlify.app/core/reference/statements/describe-table,matched,72405ef6fff16fe6,true,72405ef6fff16fe6,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/detach,docs/sql-reference/statements/detach.md,core/reference/statements/detach.mdx,https://clickhouse.com/docs/sql-reference/statements/detach,https://private-7c7dfe99.mintlify.app/core/reference/statements/detach,matched,12d19ffd2bc92b1d,true,12d19ffd2bc92b1d,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/drop,docs/sql-reference/statements/drop.md,core/reference/statements/drop.mdx,https://clickhouse.com/docs/sql-reference/statements/drop,https://private-7c7dfe99.mintlify.app/core/reference/statements/drop,matched,8b56b1ae9a5b9042,true,8af9b9ae9836e7c1,2026-05-09T09:39:38+00:00,false +/sql-reference/statements/exchange,docs/sql-reference/statements/exchange.md,core/reference/statements/exchange.mdx,https://clickhouse.com/docs/sql-reference/statements/exchange,https://private-7c7dfe99.mintlify.app/core/reference/statements/exchange,matched,bd589160963e7bea,true,48cc905738da417c,2026-05-09T09:39:38+00:00,false +/sql-reference/statements/execute_as,docs/sql-reference/statements/execute_as.md,core/reference/statements/execute_as.mdx,https://clickhouse.com/docs/sql-reference/statements/execute_as,https://private-7c7dfe99.mintlify.app/core/reference/statements/execute_as,matched,7b03039504ddd659,true,7b03039504ddd659,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/exists,docs/sql-reference/statements/exists.md,core/reference/statements/exists.mdx,https://clickhouse.com/docs/sql-reference/statements/exists,https://private-7c7dfe99.mintlify.app/core/reference/statements/exists,matched,f787978eb7ad2aef,true,f8983bc303673b5b,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/explain,docs/sql-reference/statements/explain.md,core/reference/statements/explain.mdx,https://clickhouse.com/docs/sql-reference/statements/explain,https://private-7c7dfe99.mintlify.app/core/reference/statements/explain,matched,3daef0a18f4540b0,true,3daef0a18f4540b0,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/grant,docs/sql-reference/statements/grant.md,core/reference/statements/grant.mdx,https://clickhouse.com/docs/sql-reference/statements/grant,https://private-7c7dfe99.mintlify.app/core/reference/statements/grant,matched,bb9e0ae273b53779,true,bb9e0ae273b53779,2026-05-08T11:53:27+00:00,false +/sql-reference/statements/insert-into,docs/sql-reference/statements/insert-into.md,core/reference/statements/insert-into.mdx,https://clickhouse.com/docs/sql-reference/statements/insert-into,https://private-7c7dfe99.mintlify.app/core/reference/statements/insert-into,matched,b04169961ed35a16,true,b04169961ed35a16,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/kill,docs/sql-reference/statements/kill.md,core/reference/statements/kill.mdx,https://clickhouse.com/docs/sql-reference/statements/kill,https://private-7c7dfe99.mintlify.app/core/reference/statements/kill,matched,af21361ca18f3026,true,af21361ca18f3026,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/move,docs/sql-reference/statements/move.md,core/reference/statements/move.mdx,https://clickhouse.com/docs/sql-reference/statements/move,https://private-7c7dfe99.mintlify.app/core/reference/statements/move,matched,3f0321df0eda3733,true,8103e61160aa5299,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/optimize,docs/sql-reference/statements/optimize.md,core/reference/statements/optimize.mdx,https://clickhouse.com/docs/sql-reference/statements/optimize,https://private-7c7dfe99.mintlify.app/core/reference/statements/optimize,matched,d577af60f580c0b1,true,d577af60f580c0b1,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/parallel_with,docs/sql-reference/statements/parallel_with.md,core/reference/statements/parallel_with.mdx,https://clickhouse.com/docs/sql-reference/statements/parallel_with,https://private-7c7dfe99.mintlify.app/core/reference/statements/parallel_with,matched,1f165d76471c3a5b,true,483cc85982240fd1,2026-05-09T09:39:38+00:00,false +/sql-reference/statements/rename,docs/sql-reference/statements/rename.md,core/reference/statements/rename.mdx,https://clickhouse.com/docs/sql-reference/statements/rename,https://private-7c7dfe99.mintlify.app/core/reference/statements/rename,matched,37bc53ffaae36d00,true,7a7e56c7d4e06aa4,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/revoke,docs/sql-reference/statements/revoke.md,core/reference/statements/revoke.mdx,https://clickhouse.com/docs/sql-reference/statements/revoke,https://private-7c7dfe99.mintlify.app/core/reference/statements/revoke,matched,421e31eca5449bc3,true,623f2f8c2f600659,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/select/,docs/sql-reference/statements/select/index.md,core/reference/statements/select/index.mdx,https://clickhouse.com/docs/sql-reference/statements/select/,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/index,matched,85222c4f3d27324a,true,000b1489bccc8788,2026-05-09T09:39:38+00:00,false +/sql-reference/statements/select/all,docs/sql-reference/statements/select/all.md,core/reference/statements/select/all.mdx,https://clickhouse.com/docs/sql-reference/statements/select/all,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/all,matched,bb422f0edd427946,true,a7e402c757884105,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/select/apply-modifier,docs/sql-reference/statements/select/apply_modifier.md,core/reference/statements/select/apply_modifier.mdx,https://clickhouse.com/docs/sql-reference/statements/select/apply-modifier,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/apply_modifier,matched,b14c9032f2ded030,true,b14c9032f2ded030,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/array-join,docs/sql-reference/statements/select/array-join.md,core/reference/statements/select/array-join.mdx,https://clickhouse.com/docs/sql-reference/statements/select/array-join,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/array-join,matched,a40e92dc94f24e98,true,b1e073c8374abc5e,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/select/distinct,docs/sql-reference/statements/select/distinct.md,core/reference/statements/select/distinct.mdx,https://clickhouse.com/docs/sql-reference/statements/select/distinct,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/distinct,matched,0ab1da121ff29a6f,true,8b19006f70430697,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/select/except,docs/sql-reference/statements/select/except.md,core/reference/statements/select/except.mdx,https://clickhouse.com/docs/sql-reference/statements/select/except,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/except,matched,39d64699466c359f,true,39d64699466c359f,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/except-modifier,docs/sql-reference/statements/select/except_modifier.md,core/reference/statements/select/except_modifier.mdx,https://clickhouse.com/docs/sql-reference/statements/select/except-modifier,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/except_modifier,matched,35e4d9fcfe542b93,true,35e4d9fcfe542b93,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/format,docs/sql-reference/statements/select/format.md,core/reference/statements/select/format.mdx,https://clickhouse.com/docs/sql-reference/statements/select/format,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/format,matched,8977e80ee0785bd3,true,c4c2f0d3c5707c2d,2026-05-08T13:01:57+00:00,false +/sql-reference/statements/select/from,docs/sql-reference/statements/select/from.md,core/reference/statements/select/from.mdx,https://clickhouse.com/docs/sql-reference/statements/select/from,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/from,matched,31323a0e56256596,true,71e350eef6826c63,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/select/group-by,docs/sql-reference/statements/select/group-by.md,core/reference/statements/select/group-by.mdx,https://clickhouse.com/docs/sql-reference/statements/select/group-by,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/group-by,matched,2401cd614ce10370,true,2401cd614ce10370,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/having,docs/sql-reference/statements/select/having.md,core/reference/statements/select/having.mdx,https://clickhouse.com/docs/sql-reference/statements/select/having,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/having,matched,2cc0edfc46c6075a,true,153f09d0dc6e1710,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/select/intersect,docs/sql-reference/statements/select/intersect.md,core/reference/statements/select/intersect.mdx,https://clickhouse.com/docs/sql-reference/statements/select/intersect,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/intersect,matched,2d206c976cd88c30,true,2d206c976cd88c30,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/into-outfile,docs/sql-reference/statements/select/into-outfile.md,core/reference/statements/select/into-outfile.mdx,https://clickhouse.com/docs/sql-reference/statements/select/into-outfile,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/into-outfile,matched,4655e3a018c5dc42,true,4655e3a018c5dc42,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/join,docs/sql-reference/statements/select/join.md,core/reference/statements/select/join.mdx,https://clickhouse.com/docs/sql-reference/statements/select/join,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/join,matched,85d0761a113d83bd,true,85d0761a113d83bd,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/limit,docs/sql-reference/statements/select/limit.md,core/reference/statements/select/limit.mdx,https://clickhouse.com/docs/sql-reference/statements/select/limit,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/limit,matched,7a4d74ba92379a5f,true,7a4d74ba92379a5f,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/limit-by,docs/sql-reference/statements/select/limit-by.md,core/reference/statements/select/limit-by.mdx,https://clickhouse.com/docs/sql-reference/statements/select/limit-by,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/limit-by,matched,e36cb7202c0ca28f,true,e7c877624140213a,2026-05-13T13:25:34+00:00,false +/sql-reference/statements/select/offset,docs/sql-reference/statements/select/offset.md,core/reference/statements/select/offset.mdx,https://clickhouse.com/docs/sql-reference/statements/select/offset,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/offset,matched,5ebfe47b67f74463,true,5ebfe47b67f74463,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/order-by,docs/sql-reference/statements/select/order-by.md,core/reference/statements/select/order-by.mdx,https://clickhouse.com/docs/sql-reference/statements/select/order-by,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/order-by,matched,d7ad45fdacd639e4,true,d7ad45fdacd639e4,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/prewhere,docs/sql-reference/statements/select/prewhere.md,core/reference/statements/select/prewhere.mdx,https://clickhouse.com/docs/sql-reference/statements/select/prewhere,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/prewhere,matched,3238b6a9d1079097,true,cdca3b6d03d5aff1,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/select/qualify,docs/sql-reference/statements/select/qualify.md,core/reference/statements/select/qualify.mdx,https://clickhouse.com/docs/sql-reference/statements/select/qualify,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/qualify,matched,bf033ebdee748507,true,d12d9428ec537b38,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/select/replace-modifier,docs/sql-reference/statements/select/replace_modifier.md,core/reference/statements/select/replace_modifier.mdx,https://clickhouse.com/docs/sql-reference/statements/select/replace-modifier,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/replace_modifier,matched,5afb8cd56b457884,true,5afb8cd56b457884,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/sample,docs/sql-reference/statements/select/sample.md,core/reference/statements/select/sample.mdx,https://clickhouse.com/docs/sql-reference/statements/select/sample,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/sample,matched,3f0005567413b875,true,aa16d1a33d331289,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/select/union,docs/sql-reference/statements/select/union.md,core/reference/statements/select/union.mdx,https://clickhouse.com/docs/sql-reference/statements/select/union,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/union,matched,be8712788ece5c74,true,be8712788ece5c74,2026-05-19T11:08:53+00:00,false +/sql-reference/statements/select/where,docs/sql-reference/statements/select/where.md,core/reference/statements/select/where.mdx,https://clickhouse.com/docs/sql-reference/statements/select/where,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/where,matched,488dbcbfc1c6e4b7,true,e592ec6dc8b77028,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/select/with,docs/sql-reference/statements/select/with.md,core/reference/statements/select/with.mdx,https://clickhouse.com/docs/sql-reference/statements/select/with,https://private-7c7dfe99.mintlify.app/core/reference/statements/select/with,matched,70294d187c3333a4,true,ca02fa35413107a3,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/set,docs/sql-reference/statements/set.md,core/reference/statements/set.mdx,https://clickhouse.com/docs/sql-reference/statements/set,https://private-7c7dfe99.mintlify.app/core/reference/statements/set,matched,04fdbe960f351e17,true,fea6991e0302092b,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/set-role,docs/sql-reference/statements/set-role.md,core/reference/statements/set-role.mdx,https://clickhouse.com/docs/sql-reference/statements/set-role,https://private-7c7dfe99.mintlify.app/core/reference/statements/set-role,matched,af1d949b76a7c871,true,af1d949b76a7c871,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/show,docs/sql-reference/statements/show.md,core/reference/statements/show.mdx,https://clickhouse.com/docs/sql-reference/statements/show,https://private-7c7dfe99.mintlify.app/core/reference/statements/show,matched,49ceafd57e4d4c95,true,49ceafd57e4d4c95,2026-05-09T10:26:02+00:00,false +/sql-reference/statements/system,docs/sql-reference/statements/system.md,core/reference/statements/system.mdx,https://clickhouse.com/docs/sql-reference/statements/system,https://private-7c7dfe99.mintlify.app/core/reference/statements/system,matched,ad6b118a399960b4,true,ad6b118a399960b4,2026-05-13T13:16:51+00:00,false +/sql-reference/statements/truncate,docs/sql-reference/statements/truncate.md,core/reference/statements/truncate.mdx,https://clickhouse.com/docs/sql-reference/statements/truncate,https://private-7c7dfe99.mintlify.app/core/reference/statements/truncate,matched,89b0b953f7e7370e,true,d710ab3ea8569000,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/undrop,docs/sql-reference/statements/undrop.md,core/reference/statements/undrop.mdx,https://clickhouse.com/docs/sql-reference/statements/undrop,https://private-7c7dfe99.mintlify.app/core/reference/statements/undrop,matched,7bd54b91e1b6d80b,true,764c0b5706ee7c85,2026-05-08T09:09:20+00:00,false +/sql-reference/statements/update,docs/sql-reference/statements/update.md,core/reference/statements/update.mdx,https://clickhouse.com/docs/sql-reference/statements/update,https://private-7c7dfe99.mintlify.app/core/reference/statements/update,matched,17436a6c6f051eb7,true,17436a6c6f051eb7,2026-05-19T11:48:22+00:00,false +/sql-reference/statements/use,docs/sql-reference/statements/use.md,core/reference/statements/use.mdx,https://clickhouse.com/docs/sql-reference/statements/use,https://private-7c7dfe99.mintlify.app/core/reference/statements/use,matched,e2404745046de3ea,true,4120b13b5f03f7c2,2026-05-07T14:49:41+00:00,false +/sql-reference/statements/watch,docs/sql-reference/statements/watch.md,core/reference/statements/watch.mdx,https://clickhouse.com/docs/sql-reference/statements/watch,https://private-7c7dfe99.mintlify.app/core/reference/statements/watch,matched,55069f671a99d799,true,55069f671a99d799,2026-05-08T09:09:20+00:00,false +/sql-reference/syntax,docs/sql-reference/syntax.md,core/reference/syntax.mdx,https://clickhouse.com/docs/sql-reference/syntax,https://private-7c7dfe99.mintlify.app/core/reference/syntax,matched,a9135da960dcaf5e,true,a9135da960dcaf5e,2026-05-08T13:01:57+00:00,false +/sql-reference/table-functions/,docs/sql-reference/table-functions/index.md,core/reference/functions/table-functions/index.mdx,https://clickhouse.com/docs/sql-reference/table-functions/,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/index,matched,1752f7d23d0c71cf,true,1752f7d23d0c71cf,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/arrowflight,docs/sql-reference/table-functions/arrowflight.md,core/reference/functions/table-functions/arrowflight.mdx,https://clickhouse.com/docs/sql-reference/table-functions/arrowflight,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/arrowflight,matched,7d58f93d9c0e0f98,true,7d58f93d9c0e0f98,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/azureBlobStorage,docs/sql-reference/table-functions/azureBlobStorage.md,core/reference/functions/table-functions/azureBlobStorage.mdx,https://clickhouse.com/docs/sql-reference/table-functions/azureBlobStorage,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/azureBlobStorage,matched,85ea52388b3f2d06,true,85ea52388b3f2d06,2026-05-08T15:04:34+00:00,false +/sql-reference/table-functions/azureBlobStorageCluster,docs/sql-reference/table-functions/azureBlobStorageCluster.md,core/reference/functions/table-functions/azureBlobStorageCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/azureBlobStorageCluster,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/azureBlobStorageCluster,matched,dc75f0e73803354d,true,dc75f0e73803354d,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/cluster,docs/sql-reference/table-functions/cluster.md,core/reference/functions/table-functions/cluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/cluster,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/cluster,matched,51cf2023223e48e7,true,51cf2023223e48e7,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/deltalake,docs/sql-reference/table-functions/deltalake.md,core/reference/functions/table-functions/deltalake.mdx,https://clickhouse.com/docs/sql-reference/table-functions/deltalake,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/deltalake,matched,8d88c4159bcd5510,true,8d88c4159bcd5510,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/deltalakeCluster,docs/sql-reference/table-functions/deltalakeCluster.md,core/reference/functions/table-functions/deltalakeCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/deltalakeCluster,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/deltalakeCluster,matched,3dfcdcdd28339a6e,true,3dfcdcdd28339a6e,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/dictionary,docs/sql-reference/table-functions/dictionary.md,core/reference/functions/table-functions/dictionary.mdx,https://clickhouse.com/docs/sql-reference/table-functions/dictionary,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/dictionary,matched,ee69af751e7bcdab,true,ee69af751e7bcdab,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/file,docs/sql-reference/table-functions/file.md,core/reference/functions/table-functions/file.mdx,https://clickhouse.com/docs/sql-reference/table-functions/file,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/file,matched,0e0f27c7cf6a4b67,true,0e0f27c7cf6a4b67,2026-05-13T13:16:51+00:00,false +/sql-reference/table-functions/fileCluster,docs/sql-reference/table-functions/fileCluster.md,core/reference/functions/table-functions/fileCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/fileCluster,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/fileCluster,matched,0b518b34b857ea61,true,0b518b34b857ea61,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/filesystem,docs/sql-reference/table-functions/filesystem.md,core/reference/functions/table-functions/filesystem.mdx,https://clickhouse.com/docs/sql-reference/table-functions/filesystem,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/filesystem,matched,882421bad03a1a1a,true,882421bad03a1a1a,2026-05-08T15:04:25+00:00,false +/sql-reference/table-functions/format,docs/sql-reference/table-functions/format.md,core/reference/functions/table-functions/format.mdx,https://clickhouse.com/docs/sql-reference/table-functions/format,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/format,matched,4af4c925a55f25a6,true,4af4c925a55f25a6,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/fuzzJSON,docs/sql-reference/table-functions/fuzzJSON.md,core/reference/functions/table-functions/fuzzJSON.mdx,https://clickhouse.com/docs/sql-reference/table-functions/fuzzJSON,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/fuzzJSON,matched,a423ba9209dce342,true,a423ba9209dce342,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/fuzzQuery,docs/sql-reference/table-functions/fuzzQuery.md,core/reference/functions/table-functions/fuzzQuery.mdx,https://clickhouse.com/docs/sql-reference/table-functions/fuzzQuery,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/fuzzQuery,matched,30d7f5082387ef53,true,30d7f5082387ef53,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/gcs,docs/sql-reference/table-functions/gcs.md,core/reference/functions/table-functions/gcs.mdx,https://clickhouse.com/docs/sql-reference/table-functions/gcs,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/gcs,matched,3db1d64aed4fda6d,true,3db1d64aed4fda6d,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/generate,docs/sql-reference/table-functions/generate.md,core/reference/functions/table-functions/generate.mdx,https://clickhouse.com/docs/sql-reference/table-functions/generate,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/generate,matched,6c2593dca504546a,true,6c2593dca504546a,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/generate_series,docs/sql-reference/table-functions/generate_series.md,core/reference/functions/table-functions/generate_series.mdx,https://clickhouse.com/docs/sql-reference/table-functions/generate_series,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/generate_series,matched,2cd50c48a3e8ea2b,true,2cd50c48a3e8ea2b,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/hdfs,docs/sql-reference/table-functions/hdfs.md,core/reference/functions/table-functions/hdfs.mdx,https://clickhouse.com/docs/sql-reference/table-functions/hdfs,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/hdfs,matched,f8e80c5b854727f0,true,f8e80c5b854727f0,2026-05-09T09:39:38+00:00,false +/sql-reference/table-functions/hdfsCluster,docs/sql-reference/table-functions/hdfsCluster.md,core/reference/functions/table-functions/hdfsCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/hdfsCluster,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/hdfsCluster,matched,a1590af208a32d6a,true,a1590af208a32d6a,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/hudi,docs/sql-reference/table-functions/hudi.md,core/reference/functions/table-functions/hudi.mdx,https://clickhouse.com/docs/sql-reference/table-functions/hudi,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/hudi,matched,ec7ca6bb139399c2,true,ec7ca6bb139399c2,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/hudiCluster,docs/sql-reference/table-functions/hudiCluster.md,core/reference/functions/table-functions/hudiCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/hudiCluster,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/hudiCluster,matched,7535cf734ec520d3,true,cfb2dfa16b24b4d7,2026-05-08T13:01:57+00:00,false +/sql-reference/table-functions/iceberg,docs/sql-reference/table-functions/iceberg.md,core/reference/functions/table-functions/iceberg.mdx,https://clickhouse.com/docs/sql-reference/table-functions/iceberg,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/iceberg,matched,a92b3b7bf7653638,true,a92b3b7bf7653638,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/icebergCluster,docs/sql-reference/table-functions/icebergCluster.md,core/reference/functions/table-functions/icebergCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/icebergCluster,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/icebergCluster,matched,1136750e5a714749,true,1136750e5a714749,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/input,docs/sql-reference/table-functions/input.md,core/reference/functions/table-functions/input.mdx,https://clickhouse.com/docs/sql-reference/table-functions/input,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/input,matched,d6ef966d733a8006,true,d6ef966d733a8006,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/jdbc,docs/sql-reference/table-functions/jdbc.md,core/reference/functions/table-functions/jdbc.mdx,https://clickhouse.com/docs/sql-reference/table-functions/jdbc,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/jdbc,matched,ea91e6a9ef884757,true,ea91e6a9ef884757,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/loop,docs/sql-reference/table-functions/loop.md,core/reference/functions/table-functions/loop.mdx,https://clickhouse.com/docs/sql-reference/table-functions/loop,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/loop,matched,27799a38256c3283,true,27799a38256c3283,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/merge,docs/sql-reference/table-functions/merge.md,core/reference/functions/table-functions/merge.mdx,https://clickhouse.com/docs/sql-reference/table-functions/merge,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/merge,matched,7c9f227d0f54ac31,true,7c9f227d0f54ac31,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/mergeTreeIndex,docs/sql-reference/table-functions/mergeTreeIndex.md,core/reference/functions/table-functions/mergeTreeIndex.mdx,https://clickhouse.com/docs/sql-reference/table-functions/mergeTreeIndex,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/mergeTreeIndex,matched,f0cfbaa96ea9b96d,true,f0cfbaa96ea9b96d,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/mergeTreeProjection,docs/sql-reference/table-functions/mergeTreeProjection.md,core/reference/functions/table-functions/mergeTreeProjection.mdx,https://clickhouse.com/docs/sql-reference/table-functions/mergeTreeProjection,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/mergeTreeProjection,matched,66e0e0e58a15f13b,true,66e0e0e58a15f13b,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/mergeTreeTextIndex,docs/sql-reference/table-functions/mergeTreeTextIndex.md,core/reference/functions/table-functions/mergeTreeTextIndex.mdx,https://clickhouse.com/docs/sql-reference/table-functions/mergeTreeTextIndex,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/mergeTreeTextIndex,matched,674be778b3ca892c,true,674be778b3ca892c,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/mongodb,docs/sql-reference/table-functions/mongodb.md,core/reference/functions/table-functions/mongodb.mdx,https://clickhouse.com/docs/sql-reference/table-functions/mongodb,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/mongodb,matched,69c90ba8bcbce740,true,69c90ba8bcbce740,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/mysql,docs/sql-reference/table-functions/mysql.md,core/reference/functions/table-functions/mysql.mdx,https://clickhouse.com/docs/sql-reference/table-functions/mysql,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/mysql,matched,d8e2e840f42a2098,true,d8e2e840f42a2098,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/null,docs/sql-reference/table-functions/null.md,core/reference/functions/table-functions/null.mdx,https://clickhouse.com/docs/sql-reference/table-functions/null,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/null,matched,1e3e6c4337634880,true,1e3e6c4337634880,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/numbers,docs/sql-reference/table-functions/numbers.md,core/reference/functions/table-functions/numbers.mdx,https://clickhouse.com/docs/sql-reference/table-functions/numbers,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/numbers,matched,3627bf6180612a42,true,3627bf6180612a42,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/odbc,docs/sql-reference/table-functions/odbc.md,core/reference/functions/table-functions/odbc.mdx,https://clickhouse.com/docs/sql-reference/table-functions/odbc,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/odbc,matched,727fc4c5f407c071,true,727fc4c5f407c071,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/paimon,docs/sql-reference/table-functions/paimon.md,core/reference/functions/table-functions/paimon.mdx,https://clickhouse.com/docs/sql-reference/table-functions/paimon,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/paimon,matched,ff6b4066c22e03bc,true,ff6b4066c22e03bc,2026-05-08T14:01:22+00:00,false +/sql-reference/table-functions/paimonCluster,docs/sql-reference/table-functions/paimonCluster.md,core/reference/functions/table-functions/paimonCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/paimonCluster,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/paimonCluster,matched,6a7a31ed6e3d760b,true,6a7a31ed6e3d760b,2026-05-08T09:51:10+00:00,false +/sql-reference/table-functions/postgresql,docs/sql-reference/table-functions/postgresql.md,core/reference/functions/table-functions/postgresql.mdx,https://clickhouse.com/docs/sql-reference/table-functions/postgresql,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/postgresql,matched,b560eed6678fd487,true,b560eed6678fd487,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/primes,docs/sql-reference/table-functions/primes.md,core/reference/functions/table-functions/primes.mdx,https://clickhouse.com/docs/sql-reference/table-functions/primes,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/primes,matched,4f2d1473a674bb1e,true,4f2d1473a674bb1e,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/prometheusQuery,docs/sql-reference/table-functions/prometheusQuery.md,core/reference/functions/table-functions/prometheusQuery.mdx,https://clickhouse.com/docs/sql-reference/table-functions/prometheusQuery,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/prometheusQuery,matched,1e86a4d4c3d28658,true,1e86a4d4c3d28658,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/prometheusQueryRange,docs/sql-reference/table-functions/prometheusQueryRange.md,core/reference/functions/table-functions/prometheusQueryRange.mdx,https://clickhouse.com/docs/sql-reference/table-functions/prometheusQueryRange,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/prometheusQueryRange,matched,f153f45ed52a4bc4,true,f153f45ed52a4bc4,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/redis,docs/sql-reference/table-functions/redis.md,core/reference/functions/table-functions/redis.mdx,https://clickhouse.com/docs/sql-reference/table-functions/redis,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/redis,matched,184e1d9e9cbbd26f,true,184e1d9e9cbbd26f,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/remote,docs/sql-reference/table-functions/remote.md,core/reference/functions/table-functions/remote.mdx,https://clickhouse.com/docs/sql-reference/table-functions/remote,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/remote,matched,25bcdaab0a89be0c,true,25bcdaab0a89be0c,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/s3,docs/sql-reference/table-functions/s3.md,core/reference/functions/table-functions/s3.mdx,https://clickhouse.com/docs/sql-reference/table-functions/s3,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/s3,matched,890b3ede24b4d144,true,890b3ede24b4d144,2026-05-08T15:04:34+00:00,false +/sql-reference/table-functions/s3Cluster,docs/sql-reference/table-functions/s3Cluster.md,core/reference/functions/table-functions/s3Cluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/s3Cluster,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/s3Cluster,matched,cdef10dfae17e7a4,true,cdef10dfae17e7a4,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/sqlite,docs/sql-reference/table-functions/sqlite.md,core/reference/functions/table-functions/sqlite.mdx,https://clickhouse.com/docs/sql-reference/table-functions/sqlite,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/sqlite,matched,e3a58d5f3297ba15,true,e3a58d5f3297ba15,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/timeSeriesData,docs/sql-reference/table-functions/timeSeriesData.md,core/reference/functions/table-functions/timeSeriesData.mdx,https://clickhouse.com/docs/sql-reference/table-functions/timeSeriesData,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/timeSeriesData,matched,b4b2095ec970bd69,true,b4b2095ec970bd69,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/timeSeriesMetrics,docs/sql-reference/table-functions/timeSeriesMetrics.md,core/reference/functions/table-functions/timeSeriesMetrics.mdx,https://clickhouse.com/docs/sql-reference/table-functions/timeSeriesMetrics,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/timeSeriesMetrics,matched,f7fa77ef91333364,true,f7fa77ef91333364,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/timeSeriesSelector,docs/sql-reference/table-functions/timeSeriesSelector.md,core/reference/functions/table-functions/timeSeriesSelector.mdx,https://clickhouse.com/docs/sql-reference/table-functions/timeSeriesSelector,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/timeSeriesSelector,matched,2efab495d0d434c3,true,2efab495d0d434c3,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/timeSeriesTags,docs/sql-reference/table-functions/timeSeriesTags.md,core/reference/functions/table-functions/timeSeriesTags.mdx,https://clickhouse.com/docs/sql-reference/table-functions/timeSeriesTags,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/timeSeriesTags,matched,6c5fde1e295f0580,true,6c5fde1e295f0580,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/url,docs/sql-reference/table-functions/url.md,core/reference/functions/table-functions/url.mdx,https://clickhouse.com/docs/sql-reference/table-functions/url,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/url,matched,2b36549d2d8d832e,true,2b36549d2d8d832e,2026-05-09T09:39:38+00:00,false +/sql-reference/table-functions/urlCluster,docs/sql-reference/table-functions/urlCluster.md,core/reference/functions/table-functions/urlCluster.mdx,https://clickhouse.com/docs/sql-reference/table-functions/urlCluster,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/urlCluster,matched,7ab2dcf6aa50fc83,true,7ab2dcf6aa50fc83,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/values,docs/sql-reference/table-functions/values.md,core/reference/functions/table-functions/values.mdx,https://clickhouse.com/docs/sql-reference/table-functions/values,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/values,matched,8716709876043316,true,8716709876043316,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/view,docs/sql-reference/table-functions/view.md,core/reference/functions/table-functions/view.mdx,https://clickhouse.com/docs/sql-reference/table-functions/view,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/view,matched,aa22515e018d41f6,true,aa22515e018d41f6,2026-05-19T11:08:53+00:00,false +/sql-reference/table-functions/ytsaurus,docs/sql-reference/table-functions/ytsaurus.md,core/reference/functions/table-functions/ytsaurus.mdx,https://clickhouse.com/docs/sql-reference/table-functions/ytsaurus,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/ytsaurus,matched,b931df20b4f6c77e,true,b931df20b4f6c77e,2026-05-08T13:01:57+00:00,false +/sql-reference/table-functions/zeros,docs/sql-reference/table-functions/zeros.md,core/reference/functions/table-functions/zeros.mdx,https://clickhouse.com/docs/sql-reference/table-functions/zeros,https://private-7c7dfe99.mintlify.app/core/reference/functions/table-functions/zeros,matched,795be83399042602,true,795be83399042602,2026-05-19T11:08:53+00:00,false +/sql-reference/window-functions/,docs/sql-reference/window-functions/index.md,core/reference/functions/window-functions/index.mdx,https://clickhouse.com/docs/sql-reference/window-functions/,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/index,matched,29b129959d2df6a5,true,29b129959d2df6a5,2026-05-19T11:08:53+00:00,false +/sql-reference/window-functions/cume_dist,docs/sql-reference/window-functions/cume_dist.md,core/reference/functions/window-functions/cume_dist.mdx,https://clickhouse.com/docs/sql-reference/window-functions/cume_dist,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/cume_dist,matched,ad213d159101deee,true,ad213d159101deee,2026-05-19T11:08:53+00:00,false +/sql-reference/window-functions/dense_rank,docs/sql-reference/window-functions/dense_rank.md,core/reference/functions/window-functions/dense_rank.mdx,https://clickhouse.com/docs/sql-reference/window-functions/dense_rank,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/dense_rank,matched,0c2b2339983aea4c,true,0c2b2339983aea4c,2026-05-19T11:08:53+00:00,false +/sql-reference/window-functions/first_value,docs/sql-reference/window-functions/first_value.md,core/reference/functions/window-functions/first_value.mdx,https://clickhouse.com/docs/sql-reference/window-functions/first_value,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/first_value,matched,76e04f71ae6a40b6,true,76e04f71ae6a40b6,2026-05-19T11:08:53+00:00,false +/sql-reference/window-functions/lag,docs/sql-reference/window-functions/lag.md,core/reference/functions/window-functions/lag.mdx,https://clickhouse.com/docs/sql-reference/window-functions/lag,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/lag,matched,f25bd9104d3a38e3,true,0613ad7af0509f61,2026-05-09T09:39:38+00:00,false +/sql-reference/window-functions/lagInFrame,docs/sql-reference/window-functions/lagInFrame.md,core/reference/functions/window-functions/lagInFrame.mdx,https://clickhouse.com/docs/sql-reference/window-functions/lagInFrame,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/lagInFrame,matched,cc6fee46ae9d3eb4,true,cc6fee46ae9d3eb4,2026-05-19T11:08:53+00:00,false +/sql-reference/window-functions/last_value,docs/sql-reference/window-functions/last_value.md,core/reference/functions/window-functions/last_value.mdx,https://clickhouse.com/docs/sql-reference/window-functions/last_value,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/last_value,matched,a0590ca6d8781a22,true,a0590ca6d8781a22,2026-05-19T11:08:53+00:00,false +/sql-reference/window-functions/lead,docs/sql-reference/window-functions/lead.md,core/reference/functions/window-functions/lead.mdx,https://clickhouse.com/docs/sql-reference/window-functions/lead,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/lead,matched,9c6c51f6b9bd98fc,true,40a994cb17281180,2026-05-09T09:39:38+00:00,false +/sql-reference/window-functions/leadInFrame,docs/sql-reference/window-functions/leadInFrame.md,core/reference/functions/window-functions/leadInFrame.mdx,https://clickhouse.com/docs/sql-reference/window-functions/leadInFrame,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/leadInFrame,matched,81c1274fdcd7418a,true,81c1274fdcd7418a,2026-05-19T11:08:53+00:00,false +/sql-reference/window-functions/nth_value,docs/sql-reference/window-functions/nth_value.md,core/reference/functions/window-functions/nth_value.mdx,https://clickhouse.com/docs/sql-reference/window-functions/nth_value,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/nth_value,matched,42b27acbf24b93d3,true,42b27acbf24b93d3,2026-05-19T11:08:53+00:00,false +/sql-reference/window-functions/percent_rank,docs/sql-reference/window-functions/percent_rank.md,core/reference/functions/window-functions/percent_rank.mdx,https://clickhouse.com/docs/sql-reference/window-functions/percent_rank,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/percent_rank,matched,aeb00b6ade296f85,true,aeb00b6ade296f85,2026-05-19T11:08:53+00:00,false +/sql-reference/window-functions/rank,docs/sql-reference/window-functions/rank.md,core/reference/functions/window-functions/rank.mdx,https://clickhouse.com/docs/sql-reference/window-functions/rank,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/rank,matched,8bb74a5fb304b4bf,true,8bb74a5fb304b4bf,2026-05-19T11:08:53+00:00,false +/sql-reference/window-functions/row_number,docs/sql-reference/window-functions/row_number.md,core/reference/functions/window-functions/row_number.mdx,https://clickhouse.com/docs/sql-reference/window-functions/row_number,https://private-7c7dfe99.mintlify.app/core/reference/functions/window-functions/row_number,matched,c7b667d2713e85b5,true,c7b667d2713e85b5,2026-05-19T11:08:53+00:00,false /starter-guides,docs/guides/starter_guides/index.md,,https://clickhouse.com/docs/starter-guides,,unmatched,2ad71c824416a5b2,false,,,false /tips-and-tricks/community-wisdom,docs/tips-and-tricks/community-wisdom.md,resources/support-center/tips-and-tricks/community-wisdom.mdx,https://clickhouse.com/docs/tips-and-tricks/community-wisdom,https://private-7c7dfe99.mintlify.app/resources/support-center/tips-and-tricks/community-wisdom,matched,aeff1932c5e55e99,true,aeff1932c5e55e99,2026-05-13T13:16:51+00:00,false /tips-and-tricks/materialized-views,docs/tips-and-tricks/materialized-views.md,resources/support-center/tips-and-tricks/materialized-views.mdx,https://clickhouse.com/docs/tips-and-tricks/materialized-views,https://private-7c7dfe99.mintlify.app/resources/support-center/tips-and-tricks/materialized-views,matched,bbc3fc8ddd8c400c,true,bbc3fc8ddd8c400c,2026-05-13T13:16:51+00:00,false /tips-and-tricks/too-many-parts,docs/tips-and-tricks/too-many-parts.md,resources/support-center/tips-and-tricks/too-many-parts.mdx,https://clickhouse.com/docs/tips-and-tricks/too-many-parts,https://private-7c7dfe99.mintlify.app/resources/support-center/tips-and-tricks/too-many-parts,matched,0c54fd3f89fd4d10,true,0c54fd3f89fd4d10,2026-05-13T13:16:51+00:00,false -/troubleshooting,docs/troubleshooting/index.md,resources/support-center/troubleshooting/index.mdx,https://clickhouse.com/docs/troubleshooting,https://private-7c7dfe99.mintlify.app/resources/support-center/troubleshooting,matched,a4f59c45db4acd40,true,a4f59c45db4acd40,2026-05-13T13:16:51+00:00,false -/tutorial,docs/tutorial.md,get-started/quickstarts/tutorial.mdx,https://clickhouse.com/docs/tutorial,https://private-7c7dfe99.mintlify.app/get-started/quickstarts/tutorial,matched,8477623569f47013,true,8477623569f47013,2026-05-13T13:16:51+00:00,false -/updating-data,docs/managing-data/updating-data/index.md,concepts/operations/update/index.mdx,https://clickhouse.com/docs/updating-data,https://private-7c7dfe99.mintlify.app/concepts/operations/update,matched,b8b45bc64184323f,true,b8b45bc64184323f,2026-05-08T09:09:20+00:00,false -/updating-data/overview,docs/managing-data/updating-data/overview.mdx,concepts/operations/update/overview.mdx,https://clickhouse.com/docs/updating-data/overview,https://private-7c7dfe99.mintlify.app/concepts/operations/update/overview,matched,29faa17e7e87aabc,true,29faa17e7e87aabc,2026-05-08T09:09:20+00:00,false -/use-cases,docs/use-cases/index.md,use-cases/index.mdx,https://clickhouse.com/docs/use-cases,https://private-7c7dfe99.mintlify.app/use-cases,matched,668e2795fb384f5c,true,668e2795fb384f5c,2026-05-08T09:09:20+00:00,false -/use-cases/AI/MCP,docs/use-cases/AI_ML/MCP/index.md,guides/ai-ml/MCP/index.mdx,https://clickhouse.com/docs/use-cases/AI/MCP,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP,matched,8bafe80320770ac1,true,8bafe80320770ac1,2026-05-08T20:59:48+00:00,false -/use-cases/AI/MCP/ai-agent-libraries,docs/use-cases/AI_ML/MCP/ai_agent_libraries/index.md,guides/ai-ml/MCP/ai-agent-libraries/index.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries,matched,c33eb46b5e7612c3,true,c33eb46b5e7612c3,2026-05-13T13:16:51+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/DSPy,docs/use-cases/AI_ML/MCP/ai_agent_libraries/dspy.md,guides/ai-ml/MCP/ai-agent-libraries/dspy.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/DSPy,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/dspy,matched,32ec2e85642780dd,true,1f2518a1634c9f10,2026-05-08T09:09:20+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/agno,docs/use-cases/AI_ML/MCP/ai_agent_libraries/agno.md,guides/ai-ml/MCP/ai-agent-libraries/agno.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/agno,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/agno,matched,41f22f83ccd869e9,true,a3bc4a1960dabe90,2026-05-08T09:09:20+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/chainlit,docs/use-cases/AI_ML/MCP/ai_agent_libraries/chainlit.md,guides/ai-ml/MCP/ai-agent-libraries/chainlit.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/chainlit,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/chainlit,matched,f426b1b0ee8e34cf,true,f426b1b0ee8e34cf,2026-05-13T13:16:51+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/claude-agent-sdk,docs/use-cases/AI_ML/MCP/ai_agent_libraries/claude-agent-sdk.md,guides/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/claude-agent-sdk,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk,matched,d190774d5f2103cd,true,736ac055730323c8,2026-05-08T09:09:20+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/copilotkit,docs/use-cases/AI_ML/MCP/ai_agent_libraries/copilotkit.md,guides/ai-ml/MCP/ai-agent-libraries/copilotkit.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/copilotkit,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/copilotkit,matched,5d1bf5b77d18ba5d,true,5d1bf5b77d18ba5d,2026-05-13T13:16:51+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/crewai,docs/use-cases/AI_ML/MCP/ai_agent_libraries/crewai.md,guides/ai-ml/MCP/ai-agent-libraries/crewai.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/crewai,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/crewai,matched,d41d583ca857275e,true,9132c4cbfba020ee,2026-05-08T09:09:20+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/langchain,docs/use-cases/AI_ML/MCP/ai_agent_libraries/langchain.md,guides/ai-ml/MCP/ai-agent-libraries/langchain.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/langchain,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/langchain,matched,ca4ae21651adabbc,true,ca4ae21651adabbc,2026-05-13T13:16:51+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/llamaindex,docs/use-cases/AI_ML/MCP/ai_agent_libraries/llamaindex.md,guides/ai-ml/MCP/ai-agent-libraries/llamaindex.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/llamaindex,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/llamaindex,matched,53f08ec4e8244083,true,53f08ec4e8244083,2026-05-13T13:16:51+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/mcp-agent,docs/use-cases/AI_ML/MCP/ai_agent_libraries/mcp-agent.md,guides/ai-ml/MCP/ai-agent-libraries/mcp-agent.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/mcp-agent,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/mcp-agent,matched,1080f0511027eb06,true,1080f0511027eb06,2026-05-13T13:16:51+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/microsoft-agent-framework,docs/use-cases/AI_ML/MCP/ai_agent_libraries/microsoft-agent-framework.md,guides/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/microsoft-agent-framework,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework,matched,adb10a55c3b0cef1,true,d9b85bccc1120f8f,2026-05-08T09:09:20+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/openai-agents,docs/use-cases/AI_ML/MCP/ai_agent_libraries/openai-agents.md,guides/ai-ml/MCP/ai-agent-libraries/openai-agents.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/openai-agents,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/openai-agents,matched,c6a346d15dbfc875,true,c6a346d15dbfc875,2026-05-13T13:16:51+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/pydantic-ai,docs/use-cases/AI_ML/MCP/ai_agent_libraries/pydantic-ai.md,guides/ai-ml/MCP/ai-agent-libraries/pydantic-ai.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/pydantic-ai,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/pydantic-ai,matched,362672d4f94e61b8,true,362672d4f94e61b8,2026-05-13T13:16:51+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/slackbot,docs/use-cases/AI_ML/MCP/ai_agent_libraries/slackbot.md,guides/ai-ml/MCP/ai-agent-libraries/slackbot.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/slackbot,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/slackbot,matched,384b5ca4a59ddb5a,true,384b5ca4a59ddb5a,2026-05-13T13:16:51+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/streamlit-agent,docs/use-cases/AI_ML/MCP/ai_agent_libraries/streamlit.md,guides/ai-ml/MCP/ai-agent-libraries/streamlit.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/streamlit-agent,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/streamlit,matched,55483bd48383a93c,true,6407de9d7364b79b,2026-05-08T09:09:20+00:00,false -/use-cases/AI/MCP/ai-agent-libraries/upsonic,docs/use-cases/AI_ML/MCP/ai_agent_libraries/upsonic.md,guides/ai-ml/MCP/ai-agent-libraries/upsonic.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/upsonic,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ai-agent-libraries/upsonic,matched,a2efe3a29a063052,true,570f4005b835c09d,2026-05-08T09:09:20+00:00,false -/use-cases/AI/MCP/anythingllm,docs/use-cases/AI_ML/MCP/04_anythingllm.md,guides/ai-ml/MCP/anythingllm.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/anythingllm,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/anythingllm,matched,d4f80fdfb21dd3cf,true,0acbf9454617f037,2026-05-08T09:52:53+00:00,false -/use-cases/AI/MCP/claude-desktop,docs/use-cases/AI_ML/MCP/02_claude-desktop.md,guides/ai-ml/MCP/claude-desktop.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/claude-desktop,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/claude-desktop,matched,a93753bfbfe6cf44,true,a93753bfbfe6cf44,2026-05-08T12:19:52+00:00,false -/use-cases/AI/MCP/janai,docs/use-cases/AI_ML/MCP/07_janai.md,guides/ai-ml/MCP/janai.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/janai,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/janai,matched,655b4d65de4a49fb,true,ed463b30b45790aa,2026-05-08T09:52:53+00:00,false -/use-cases/AI/MCP/librechat,docs/use-cases/AI_ML/MCP/03_librechat.md,guides/ai-ml/MCP/librechat.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/librechat,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/librechat,matched,f24ded5843762ca7,true,f24ded5843762ca7,2026-05-13T15:43:26+00:00,false -/use-cases/AI/MCP/ollama,docs/use-cases/AI_ML/MCP/06_ollama.md,guides/ai-ml/MCP/ollama.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ollama,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/ollama,matched,86125a1925931c70,true,86125a1925931c70,2026-05-13T13:16:51+00:00,false -/use-cases/AI/MCP/open-webui,docs/use-cases/AI_ML/MCP/05_open-webui.md,guides/ai-ml/MCP/open-webui.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/open-webui,https://private-7c7dfe99.mintlify.app/guides/ai-ml/MCP/open-webui,matched,da525b117f747884,true,80e10d23538a4ec1,2026-05-08T09:52:53+00:00,false -/use-cases/AI/MCP/remote_mcp,docs/cloud/guides/AI_ML/remote_mcp.md,use-cases/ai/mcp/remote-mcp.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/remote_mcp,https://private-7c7dfe99.mintlify.app/use-cases/ai/mcp/remote-mcp,matched,d5ce89292276ae48,true,68214d9df66b82a9,2026-05-08T09:52:53+00:00,false -/use-cases/AI/ai-powered-sql-generation,docs/use-cases/AI_ML/ai-powered-sql-generation.md,guides/ai-ml/ai-powered-sql-generation.mdx,https://clickhouse.com/docs/use-cases/AI/ai-powered-sql-generation,https://private-7c7dfe99.mintlify.app/guides/ai-ml/ai-powered-sql-generation,matched,647fa80275f2f87a,true,647fa80275f2f87a,2026-05-08T09:09:20+00:00,false -/use-cases/AI/ask-ai,docs/use-cases/AI_ML/index.md,guides/ai-ml/index.mdx,https://clickhouse.com/docs/use-cases/AI/ask-ai,https://private-7c7dfe99.mintlify.app/guides/ai-ml,matched,40d91404da65ed1a,true,40d91404da65ed1a,2026-05-13T13:16:51+00:00,false -/use-cases/AI/jupyter-notebook,docs/use-cases/AI_ML/data-exploration/jupyter-notebook.md,guides/ai-ml/data-exploration/jupyter-notebook.mdx,https://clickhouse.com/docs/use-cases/AI/jupyter-notebook,https://private-7c7dfe99.mintlify.app/guides/ai-ml/data-exploration/jupyter-notebook,matched,32c078a0d7dbd924,true,32c078a0d7dbd924,2026-05-08T09:09:20+00:00,false -/use-cases/AI/marimo-notebook,docs/use-cases/AI_ML/data-exploration/marimo-notebook.md,guides/ai-ml/data-exploration/marimo-notebook.mdx,https://clickhouse.com/docs/use-cases/AI/marimo-notebook,https://private-7c7dfe99.mintlify.app/guides/ai-ml/data-exploration/marimo-notebook,matched,d2eca22763326cb8,true,d2eca22763326cb8,2026-05-08T09:09:20+00:00,false -/use-cases/AI/qbit-vector-search,docs/use-cases/AI_ML/vector-search.md,guides/ai-ml/vector-search.mdx,https://clickhouse.com/docs/use-cases/AI/qbit-vector-search,https://private-7c7dfe99.mintlify.app/guides/ai-ml/vector-search,matched,0f7c2082f60f6506,true,0f7c2082f60f6506,2026-05-08T09:09:20+00:00,false -/use-cases/AI_ML/AIChat,docs/cloud/guides/AI_ML/AIChat/using_AI_chat.md,use-cases/ai-ml/aichat/using-ai-chat.mdx,https://clickhouse.com/docs/use-cases/AI_ML/AIChat,https://private-7c7dfe99.mintlify.app/use-cases/ai-ml/aichat/using-ai-chat,matched,a8404dbcb1bf8ad0,true,271de667bc71cd6f,2026-05-08T09:51:10+00:00,false -/use-cases/AI_ML/AIChat/semantic-layer,docs/cloud/guides/AI_ML/AIChat/customizing-semantic-layer.md,use-cases/ai-ml/aichat/customizing-semantic-layer.mdx,https://clickhouse.com/docs/use-cases/AI_ML/AIChat/semantic-layer,https://private-7c7dfe99.mintlify.app/use-cases/ai-ml/aichat/customizing-semantic-layer,matched,0d6ef14d40f6a3f2,true,0d6ef14d40f6a3f2,2026-05-13T13:16:51+00:00,false -/use-cases/data-lake,docs/use-cases/data_lake/index.md,guides/data-warehousing/index.mdx,https://clickhouse.com/docs/use-cases/data-lake,https://private-7c7dfe99.mintlify.app/guides/data-warehousing,matched,493ecc5d77e20ee0,true,493ecc5d77e20ee0,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/biglake-catalog,docs/use-cases/data_lake/reference/biglake_catalog.md,guides/data-warehousing/biglake-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/biglake-catalog,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/biglake-catalog,matched,70f021a9dbc465cd,true,70f021a9dbc465cd,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/getting-started,docs/use-cases/data_lake/getting-started.md,guides/data-warehousing/getting-started/overview.mdx,https://clickhouse.com/docs/use-cases/data-lake/getting-started,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/getting-started/overview,matched,77fc081ca180d968,true,77fc081ca180d968,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/getting-started/accelerating-analytics,docs/use-cases/data_lake/guides/accelerating-analytics.md,guides/data-warehousing/getting-started/accelerating-analytics.mdx,https://clickhouse.com/docs/use-cases/data-lake/getting-started/accelerating-analytics,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/getting-started/accelerating-analytics,matched,e692c1357a9e407a,true,e692c1357a9e407a,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/getting-started/connecting-catalogs,docs/use-cases/data_lake/guides/connecting-catalogs.md,guides/data-warehousing/getting-started/connecting-catalogs.mdx,https://clickhouse.com/docs/use-cases/data-lake/getting-started/connecting-catalogs,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/getting-started/connecting-catalogs,matched,288ae53d5e119da3,true,288ae53d5e119da3,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/getting-started/querying-directly,docs/use-cases/data_lake/guides/querying-directly.md,guides/data-warehousing/getting-started/querying-directly.mdx,https://clickhouse.com/docs/use-cases/data-lake/getting-started/querying-directly,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/getting-started/querying-directly,matched,1e8bc1608a95e0a2,true,1e8bc1608a95e0a2,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/getting-started/writing-data,docs/use-cases/data_lake/guides/writing-data.md,guides/data-warehousing/getting-started/writing-data.mdx,https://clickhouse.com/docs/use-cases/data-lake/getting-started/writing-data,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/getting-started/writing-data,matched,b9403b572f988afa,true,b9403b572f988afa,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/glue-catalog,docs/use-cases/data_lake/reference/aws_glue_catalog.md,guides/data-warehousing/glue-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/glue-catalog,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/glue-catalog,matched,393b2df782acc1d2,true,393b2df782acc1d2,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/lakekeeper-catalog,docs/use-cases/data_lake/reference/lakekeeper_catalog.md,guides/data-warehousing/lakekeeper-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/lakekeeper-catalog,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/lakekeeper-catalog,matched,0a6c118b9f6b65b5,true,0a6c118b9f6b65b5,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/nessie-catalog,docs/use-cases/data_lake/reference/nessie_catalog.md,guides/data-warehousing/nessie-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/nessie-catalog,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/nessie-catalog,matched,d03f731b06fef8fc,true,d03f731b06fef8fc,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/onelake-catalog,docs/use-cases/data_lake/reference/onelake_catalog.md,guides/data-warehousing/onelake-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/onelake-catalog,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/onelake-catalog,matched,0ba3b4b27363a811,true,0ba3b4b27363a811,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/polaris-catalog,docs/use-cases/data_lake/reference/polaris.md,guides/data-warehousing/polaris-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/polaris-catalog,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/polaris-catalog,matched,8c64384f773ad96e,true,8c64384f773ad96e,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/reference,docs/use-cases/data_lake/reference/index.md,guides/data-warehousing/reference/index.mdx,https://clickhouse.com/docs/use-cases/data-lake/reference,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/reference,matched,5b22625d9fdffa22,true,5b22625d9fdffa22,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/rest-catalog,docs/use-cases/data_lake/reference/rest_catalog.md,guides/data-warehousing/rest-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/rest-catalog,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/rest-catalog,matched,4e62bebf43d4839d,true,4e62bebf43d4839d,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/support-matrix,docs/use-cases/data_lake/support-matrix.md,guides/data-warehousing/support-matrix.mdx,https://clickhouse.com/docs/use-cases/data-lake/support-matrix,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/support-matrix,matched,3f318fa13bc6f30a,true,3f318fa13bc6f30a,2026-05-08T09:09:20+00:00,false -/use-cases/data-lake/unity-catalog,docs/use-cases/data_lake/reference/unity_catalog.md,guides/data-warehousing/unity-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/unity-catalog,https://private-7c7dfe99.mintlify.app/guides/data-warehousing/unity-catalog,matched,ac415fdc32b6aa25,true,ac415fdc32b6aa25,2026-05-08T09:09:20+00:00,false -/use-cases/observability,docs/use-cases/observability/index.md,guides/observability/index.mdx,https://clickhouse.com/docs/use-cases/observability,https://private-7c7dfe99.mintlify.app/guides/observability,matched,2edbeb25eb89b5cc,true,2edbeb25eb89b5cc,2026-05-19T11:48:22+00:00,false -/use-cases/observability/build-your-own,docs/use-cases/observability/build-your-own/index.md,guides/observability/build-your-own/index.mdx,https://clickhouse.com/docs/use-cases/observability/build-your-own,https://private-7c7dfe99.mintlify.app/guides/observability/build-your-own,matched,88485dd45dbd3dde,true,88485dd45dbd3dde,2026-05-08T09:09:20+00:00,false -/use-cases/observability/clickstack,docs/use-cases/observability/clickstack/index.md,products/clickstack/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack,https://private-7c7dfe99.mintlify.app/products/clickstack,matched,b13ba38c29be4678,true,b13ba38c29be4678,2026-05-19T11:48:22+00:00,false +/troubleshooting,docs/troubleshooting/index.md,resources/support-center/troubleshooting/index.mdx,https://clickhouse.com/docs/troubleshooting,https://private-7c7dfe99.mintlify.app/resources/support-center/troubleshooting/index,matched,a4f59c45db4acd40,true,a4f59c45db4acd40,2026-05-13T13:16:51+00:00,false +/tutorial,docs/tutorial.md,core/get-started/quickstarts/tutorial.mdx,https://clickhouse.com/docs/tutorial,https://private-7c7dfe99.mintlify.app/core/get-started/quickstarts/tutorial,matched,8477623569f47013,true,8477623569f47013,2026-05-13T13:16:51+00:00,false +/updating-data,docs/managing-data/updating-data/index.md,core/concepts/features/operations/update/index.mdx,https://clickhouse.com/docs/updating-data,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/update/index,matched,b8b45bc64184323f,true,b8b45bc64184323f,2026-05-08T09:09:20+00:00,false +/updating-data/overview,docs/managing-data/updating-data/overview.mdx,core/concepts/features/operations/update/overview.mdx,https://clickhouse.com/docs/updating-data/overview,https://private-7c7dfe99.mintlify.app/core/concepts/features/operations/update/overview,matched,29faa17e7e87aabc,true,29faa17e7e87aabc,2026-05-08T09:09:20+00:00,false +/use-cases,docs/use-cases/index.md,core/guides/use-cases/index.mdx,https://clickhouse.com/docs/use-cases,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/index,matched,668e2795fb384f5c,true,668e2795fb384f5c,2026-05-08T09:09:20+00:00,false +/use-cases/AI/MCP,docs/use-cases/AI_ML/MCP/index.md,core/guides/use-cases/ai-ml/MCP/index.mdx,https://clickhouse.com/docs/use-cases/AI/MCP,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/index,matched,8bafe80320770ac1,true,8bafe80320770ac1,2026-05-08T20:59:48+00:00,false +/use-cases/AI/MCP/ai-agent-libraries,docs/use-cases/AI_ML/MCP/ai_agent_libraries/index.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/index.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/index,matched,c33eb46b5e7612c3,true,c33eb46b5e7612c3,2026-05-13T13:16:51+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/DSPy,docs/use-cases/AI_ML/MCP/ai_agent_libraries/dspy.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/dspy.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/DSPy,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/dspy,matched,32ec2e85642780dd,true,1f2518a1634c9f10,2026-05-08T09:09:20+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/agno,docs/use-cases/AI_ML/MCP/ai_agent_libraries/agno.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/agno.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/agno,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/agno,matched,41f22f83ccd869e9,true,a3bc4a1960dabe90,2026-05-08T09:09:20+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/chainlit,docs/use-cases/AI_ML/MCP/ai_agent_libraries/chainlit.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/chainlit.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/chainlit,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/chainlit,matched,f426b1b0ee8e34cf,true,f426b1b0ee8e34cf,2026-05-13T13:16:51+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/claude-agent-sdk,docs/use-cases/AI_ML/MCP/ai_agent_libraries/claude-agent-sdk.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/claude-agent-sdk,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk,matched,d190774d5f2103cd,true,736ac055730323c8,2026-05-08T09:09:20+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/copilotkit,docs/use-cases/AI_ML/MCP/ai_agent_libraries/copilotkit.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/copilotkit.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/copilotkit,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/copilotkit,matched,5d1bf5b77d18ba5d,true,5d1bf5b77d18ba5d,2026-05-13T13:16:51+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/crewai,docs/use-cases/AI_ML/MCP/ai_agent_libraries/crewai.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/crewai.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/crewai,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/crewai,matched,d41d583ca857275e,true,9132c4cbfba020ee,2026-05-08T09:09:20+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/langchain,docs/use-cases/AI_ML/MCP/ai_agent_libraries/langchain.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/langchain.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/langchain,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/langchain,matched,ca4ae21651adabbc,true,ca4ae21651adabbc,2026-05-13T13:16:51+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/llamaindex,docs/use-cases/AI_ML/MCP/ai_agent_libraries/llamaindex.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/llamaindex.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/llamaindex,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/llamaindex,matched,53f08ec4e8244083,true,53f08ec4e8244083,2026-05-13T13:16:51+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/mcp-agent,docs/use-cases/AI_ML/MCP/ai_agent_libraries/mcp-agent.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/mcp-agent.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/mcp-agent,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/mcp-agent,matched,1080f0511027eb06,true,1080f0511027eb06,2026-05-13T13:16:51+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/microsoft-agent-framework,docs/use-cases/AI_ML/MCP/ai_agent_libraries/microsoft-agent-framework.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/microsoft-agent-framework,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework,matched,adb10a55c3b0cef1,true,d9b85bccc1120f8f,2026-05-08T09:09:20+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/openai-agents,docs/use-cases/AI_ML/MCP/ai_agent_libraries/openai-agents.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/openai-agents.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/openai-agents,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/openai-agents,matched,c6a346d15dbfc875,true,c6a346d15dbfc875,2026-05-13T13:16:51+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/pydantic-ai,docs/use-cases/AI_ML/MCP/ai_agent_libraries/pydantic-ai.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/pydantic-ai.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/pydantic-ai,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/pydantic-ai,matched,362672d4f94e61b8,true,362672d4f94e61b8,2026-05-13T13:16:51+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/slackbot,docs/use-cases/AI_ML/MCP/ai_agent_libraries/slackbot.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/slackbot.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/slackbot,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/slackbot,matched,384b5ca4a59ddb5a,true,384b5ca4a59ddb5a,2026-05-13T13:16:51+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/streamlit-agent,docs/use-cases/AI_ML/MCP/ai_agent_libraries/streamlit.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/streamlit.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/streamlit-agent,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/streamlit,matched,55483bd48383a93c,true,6407de9d7364b79b,2026-05-08T09:09:20+00:00,false +/use-cases/AI/MCP/ai-agent-libraries/upsonic,docs/use-cases/AI_ML/MCP/ai_agent_libraries/upsonic.md,core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/upsonic.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ai-agent-libraries/upsonic,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/upsonic,matched,a2efe3a29a063052,true,570f4005b835c09d,2026-05-08T09:09:20+00:00,false +/use-cases/AI/MCP/anythingllm,docs/use-cases/AI_ML/MCP/04_anythingllm.md,core/guides/use-cases/ai-ml/MCP/anythingllm.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/anythingllm,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/anythingllm,matched,d4f80fdfb21dd3cf,true,0acbf9454617f037,2026-05-08T09:52:53+00:00,false +/use-cases/AI/MCP/claude-desktop,docs/use-cases/AI_ML/MCP/02_claude-desktop.md,core/guides/use-cases/ai-ml/MCP/claude-desktop.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/claude-desktop,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/claude-desktop,matched,a93753bfbfe6cf44,true,a93753bfbfe6cf44,2026-05-08T12:19:52+00:00,false +/use-cases/AI/MCP/janai,docs/use-cases/AI_ML/MCP/07_janai.md,core/guides/use-cases/ai-ml/MCP/janai.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/janai,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/janai,matched,655b4d65de4a49fb,true,ed463b30b45790aa,2026-05-08T09:52:53+00:00,false +/use-cases/AI/MCP/librechat,docs/use-cases/AI_ML/MCP/03_librechat.md,core/guides/use-cases/ai-ml/MCP/librechat.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/librechat,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/librechat,matched,f24ded5843762ca7,true,f24ded5843762ca7,2026-05-13T15:43:26+00:00,false +/use-cases/AI/MCP/ollama,docs/use-cases/AI_ML/MCP/06_ollama.md,core/guides/use-cases/ai-ml/MCP/ollama.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/ollama,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/ollama,matched,86125a1925931c70,true,86125a1925931c70,2026-05-13T13:16:51+00:00,false +/use-cases/AI/MCP/open-webui,docs/use-cases/AI_ML/MCP/05_open-webui.md,core/guides/use-cases/ai-ml/MCP/open-webui.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/open-webui,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/MCP/open-webui,matched,da525b117f747884,true,80e10d23538a4ec1,2026-05-08T09:52:53+00:00,false +/use-cases/AI/MCP/remote_mcp,docs/cloud/guides/AI_ML/remote_mcp.md,products/cloud/features/ai-ml/mcp/remote-mcp.mdx,https://clickhouse.com/docs/use-cases/AI/MCP/remote_mcp,https://private-7c7dfe99.mintlify.app/products/cloud/features/ai-ml/mcp/remote-mcp,matched,d5ce89292276ae48,true,68214d9df66b82a9,2026-05-08T09:52:53+00:00,false +/use-cases/AI/ai-powered-sql-generation,docs/use-cases/AI_ML/ai-powered-sql-generation.md,core/guides/use-cases/ai-ml/ai-powered-sql-generation.mdx,https://clickhouse.com/docs/use-cases/AI/ai-powered-sql-generation,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/ai-powered-sql-generation,matched,647fa80275f2f87a,true,647fa80275f2f87a,2026-05-08T09:09:20+00:00,false +/use-cases/AI/ask-ai,docs/use-cases/AI_ML/index.md,core/guides/use-cases/ai-ml/index.mdx,https://clickhouse.com/docs/use-cases/AI/ask-ai,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/index,matched,40d91404da65ed1a,true,40d91404da65ed1a,2026-05-13T13:16:51+00:00,false +/use-cases/AI/jupyter-notebook,docs/use-cases/AI_ML/data-exploration/jupyter-notebook.md,core/guides/use-cases/ai-ml/data-exploration/jupyter-notebook.mdx,https://clickhouse.com/docs/use-cases/AI/jupyter-notebook,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/data-exploration/jupyter-notebook,matched,32c078a0d7dbd924,true,32c078a0d7dbd924,2026-05-08T09:09:20+00:00,false +/use-cases/AI/marimo-notebook,docs/use-cases/AI_ML/data-exploration/marimo-notebook.md,core/guides/use-cases/ai-ml/data-exploration/marimo-notebook.mdx,https://clickhouse.com/docs/use-cases/AI/marimo-notebook,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/data-exploration/marimo-notebook,matched,d2eca22763326cb8,true,d2eca22763326cb8,2026-05-08T09:09:20+00:00,false +/use-cases/AI/qbit-vector-search,docs/use-cases/AI_ML/vector-search.md,core/guides/use-cases/ai-ml/vector-search.mdx,https://clickhouse.com/docs/use-cases/AI/qbit-vector-search,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/ai-ml/vector-search,matched,0f7c2082f60f6506,true,0f7c2082f60f6506,2026-05-08T09:09:20+00:00,false +/use-cases/AI_ML/AIChat,docs/cloud/guides/AI_ML/AIChat/using_AI_chat.md,products/cloud/features/ai-ml/aichat/using-ai-chat.mdx,https://clickhouse.com/docs/use-cases/AI_ML/AIChat,https://private-7c7dfe99.mintlify.app/products/cloud/features/ai-ml/aichat/using-ai-chat,matched,a8404dbcb1bf8ad0,true,271de667bc71cd6f,2026-05-08T09:51:10+00:00,false +/use-cases/AI_ML/AIChat/semantic-layer,docs/cloud/guides/AI_ML/AIChat/customizing-semantic-layer.md,products/cloud/features/ai-ml/aichat/customizing-semantic-layer.mdx,https://clickhouse.com/docs/use-cases/AI_ML/AIChat/semantic-layer,https://private-7c7dfe99.mintlify.app/products/cloud/features/ai-ml/aichat/customizing-semantic-layer,matched,0d6ef14d40f6a3f2,true,0d6ef14d40f6a3f2,2026-05-13T13:16:51+00:00,false +/use-cases/data-lake,docs/use-cases/data_lake/index.md,core/guides/use-cases/data-warehousing/index.mdx,https://clickhouse.com/docs/use-cases/data-lake,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/index,matched,493ecc5d77e20ee0,true,493ecc5d77e20ee0,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/biglake-catalog,docs/use-cases/data_lake/reference/biglake_catalog.md,core/guides/use-cases/data-warehousing/biglake-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/biglake-catalog,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/biglake-catalog,matched,70f021a9dbc465cd,true,70f021a9dbc465cd,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/getting-started,docs/use-cases/data_lake/getting-started.md,core/guides/use-cases/data-warehousing/getting-started/overview.mdx,https://clickhouse.com/docs/use-cases/data-lake/getting-started,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/getting-started/overview,matched,77fc081ca180d968,true,77fc081ca180d968,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/getting-started/accelerating-analytics,docs/use-cases/data_lake/guides/accelerating-analytics.md,core/guides/use-cases/data-warehousing/getting-started/accelerating-analytics.mdx,https://clickhouse.com/docs/use-cases/data-lake/getting-started/accelerating-analytics,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/getting-started/accelerating-analytics,matched,e692c1357a9e407a,true,e692c1357a9e407a,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/getting-started/connecting-catalogs,docs/use-cases/data_lake/guides/connecting-catalogs.md,core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs.mdx,https://clickhouse.com/docs/use-cases/data-lake/getting-started/connecting-catalogs,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs,matched,288ae53d5e119da3,true,288ae53d5e119da3,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/getting-started/querying-directly,docs/use-cases/data_lake/guides/querying-directly.md,core/guides/use-cases/data-warehousing/getting-started/querying-directly.mdx,https://clickhouse.com/docs/use-cases/data-lake/getting-started/querying-directly,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/getting-started/querying-directly,matched,1e8bc1608a95e0a2,true,1e8bc1608a95e0a2,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/getting-started/writing-data,docs/use-cases/data_lake/guides/writing-data.md,core/guides/use-cases/data-warehousing/getting-started/writing-data.mdx,https://clickhouse.com/docs/use-cases/data-lake/getting-started/writing-data,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/getting-started/writing-data,matched,b9403b572f988afa,true,b9403b572f988afa,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/glue-catalog,docs/use-cases/data_lake/reference/aws_glue_catalog.md,core/guides/use-cases/data-warehousing/glue-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/glue-catalog,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/glue-catalog,matched,393b2df782acc1d2,true,393b2df782acc1d2,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/lakekeeper-catalog,docs/use-cases/data_lake/reference/lakekeeper_catalog.md,core/guides/use-cases/data-warehousing/lakekeeper-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/lakekeeper-catalog,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/lakekeeper-catalog,matched,0a6c118b9f6b65b5,true,0a6c118b9f6b65b5,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/nessie-catalog,docs/use-cases/data_lake/reference/nessie_catalog.md,core/guides/use-cases/data-warehousing/nessie-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/nessie-catalog,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/nessie-catalog,matched,d03f731b06fef8fc,true,d03f731b06fef8fc,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/onelake-catalog,docs/use-cases/data_lake/reference/onelake_catalog.md,core/guides/use-cases/data-warehousing/onelake-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/onelake-catalog,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/onelake-catalog,matched,0ba3b4b27363a811,true,0ba3b4b27363a811,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/polaris-catalog,docs/use-cases/data_lake/reference/polaris.md,core/guides/use-cases/data-warehousing/polaris-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/polaris-catalog,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/polaris-catalog,matched,8c64384f773ad96e,true,8c64384f773ad96e,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/reference,docs/use-cases/data_lake/reference/index.md,core/guides/use-cases/data-warehousing/reference/index.mdx,https://clickhouse.com/docs/use-cases/data-lake/reference,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/reference/index,matched,5b22625d9fdffa22,true,5b22625d9fdffa22,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/rest-catalog,docs/use-cases/data_lake/reference/rest_catalog.md,core/guides/use-cases/data-warehousing/rest-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/rest-catalog,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/rest-catalog,matched,4e62bebf43d4839d,true,4e62bebf43d4839d,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/support-matrix,docs/use-cases/data_lake/support-matrix.md,core/guides/use-cases/data-warehousing/support-matrix.mdx,https://clickhouse.com/docs/use-cases/data-lake/support-matrix,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/support-matrix,matched,3f318fa13bc6f30a,true,3f318fa13bc6f30a,2026-05-08T09:09:20+00:00,false +/use-cases/data-lake/unity-catalog,docs/use-cases/data_lake/reference/unity_catalog.md,core/guides/use-cases/data-warehousing/unity-catalog.mdx,https://clickhouse.com/docs/use-cases/data-lake/unity-catalog,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/data-warehousing/unity-catalog,matched,ac415fdc32b6aa25,true,ac415fdc32b6aa25,2026-05-08T09:09:20+00:00,false +/use-cases/observability,docs/use-cases/observability/index.md,core/guides/use-cases/observability/index.mdx,https://clickhouse.com/docs/use-cases/observability,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/observability/index,matched,2edbeb25eb89b5cc,true,2edbeb25eb89b5cc,2026-05-19T11:48:22+00:00,false +/use-cases/observability/build-your-own,docs/use-cases/observability/build-your-own/index.md,core/guides/use-cases/observability/build-your-own/index.mdx,https://clickhouse.com/docs/use-cases/observability/build-your-own,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/observability/build-your-own/index,matched,88485dd45dbd3dde,true,88485dd45dbd3dde,2026-05-08T09:09:20+00:00,false +/use-cases/observability/clickstack,docs/use-cases/observability/clickstack/index.md,products/clickstack/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack,https://private-7c7dfe99.mintlify.app/products/clickstack/index,matched,b13ba38c29be4678,true,b13ba38c29be4678,2026-05-19T11:48:22+00:00,false /use-cases/observability/clickstack/admin,docs/use-cases/observability/clickstack/managing/admin.md,products/clickstack/managing/admin.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/admin,https://private-7c7dfe99.mintlify.app/products/clickstack/managing/admin,matched,1c5d464843ac41e1,true,1c5d464843ac41e1,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/alerts,docs/use-cases/observability/clickstack/alerts.md,products/clickstack/features/alerts.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/alerts,https://private-7c7dfe99.mintlify.app/products/clickstack/features/alerts,matched,e1688fefac447cdb,true,e1688fefac447cdb,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/api-reference,docs/use-cases/observability/clickstack/api-reference.md,products/clickstack/api-reference.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/api-reference,https://private-7c7dfe99.mintlify.app/products/clickstack/api-reference,matched,2f92c9403ff87f7b,true,2f92c9403ff87f7b,2026-05-09T10:10:14+00:00,false /use-cases/observability/clickstack/architecture,docs/use-cases/observability/clickstack/architecture.md,products/clickstack/architecture.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/architecture,https://private-7c7dfe99.mintlify.app/products/clickstack/architecture,matched,a7f4e7d7e6fea0e4,true,a7f4e7d7e6fea0e4,2026-05-08T09:09:20+00:00,false -/use-cases/observability/clickstack/config,docs/use-cases/observability/clickstack/config.md,products/clickstack/config.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/config,https://private-7c7dfe99.mintlify.app/products/clickstack/config,matched,69b70fd6aacd3dff,true,69b70fd6aacd3dff,2026-05-08T18:41:21+00:00,false +/use-cases/observability/clickstack/config,docs/use-cases/observability/clickstack/config.md,products/clickstack/managing/config.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/config,https://private-7c7dfe99.mintlify.app/products/clickstack/managing/config,matched,69b70fd6aacd3dff,true,69b70fd6aacd3dff,2026-05-08T18:41:21+00:00,false /use-cases/observability/clickstack/dashboards,docs/use-cases/observability/clickstack/dashboards/index.md,products/clickstack/features/dashboards/overview.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/dashboards,https://private-7c7dfe99.mintlify.app/products/clickstack/features/dashboards/overview,matched,9854021eaaa1497a,true,9854021eaaa1497a,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/dashboards/dashboard-templates,docs/use-cases/observability/clickstack/dashboards/dashboard-templates.md,products/clickstack/features/dashboards/dashboard-templates.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/dashboards/dashboard-templates,https://private-7c7dfe99.mintlify.app/products/clickstack/features/dashboards/dashboard-templates,matched,717757dab8e0c07e,true,717757dab8e0c07e,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/dashboards/sql-visualizations,docs/use-cases/observability/clickstack/dashboards/sql-visualizations.md,products/clickstack/features/dashboards/sql-visualizations.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/dashboards/sql-visualizations,https://private-7c7dfe99.mintlify.app/products/clickstack/features/dashboards/sql-visualizations,matched,6bdbe9c528ddc94d,true,6bdbe9c528ddc94d,2026-05-08T09:09:20+00:00,false -/use-cases/observability/clickstack/demo-days,docs/use-cases/observability/clickstack/demo-days/index.md,products/clickstack/demo-days/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/demo-days,https://private-7c7dfe99.mintlify.app/products/clickstack/demo-days,matched,f8eb664a17bdfbe8,true,f8eb664a17bdfbe8,2026-05-07T14:49:41+00:00,false +/use-cases/observability/clickstack/demo-days,docs/use-cases/observability/clickstack/demo-days/index.md,products/clickstack/demo-days/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/demo-days,https://private-7c7dfe99.mintlify.app/products/clickstack/demo-days/index,matched,f8eb664a17bdfbe8,true,f8eb664a17bdfbe8,2026-05-07T14:49:41+00:00,false /use-cases/observability/clickstack/demo-days/2026/04/2026-04-17,docs/use-cases/observability/clickstack/demo-days/2026/clickstack-new-features-17-04-2026.md,products/clickstack/demo-days/2026/2026-04-17.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/demo-days/2026/04/2026-04-17,https://private-7c7dfe99.mintlify.app/products/clickstack/demo-days/2026/2026-04-17,matched,76b00f390b4cab60,true,aa1fd71734421de2,2026-05-08T12:19:52+00:00,false /use-cases/observability/clickstack/demo-days/2026/05/2026-05-08,docs/use-cases/observability/clickstack/demo-days/2026/clickstack-new-features-08-05-2026.md,products/clickstack/demo-days/2026/2026-05-08.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/demo-days/2026/05/2026-05-08,https://private-7c7dfe99.mintlify.app/products/clickstack/demo-days/2026/2026-05-08,matched,315ad99bfd8a43b3,true,315ad99bfd8a43b3,2026-05-19T11:48:22+00:00,false /use-cases/observability/clickstack/demo-days/2026/2026-04-03,docs/use-cases/observability/clickstack/demo-days/2026/clickstack-new-features-03-04-2026.md,products/clickstack/demo-days/2026/2026-04-03.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/demo-days/2026/2026-04-03,https://private-7c7dfe99.mintlify.app/products/clickstack/demo-days/2026/2026-04-03,matched,77b5a05c5c666cc5,true,f2b25a143449f483,2026-05-08T12:19:52+00:00,false /use-cases/observability/clickstack/demo-days/2026/2026-04-10,docs/use-cases/observability/clickstack/demo-days/2026/clickstack-new-features-10-04-2026.md,products/clickstack/demo-days/2026/2026-04-10.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/demo-days/2026/2026-04-10,https://private-7c7dfe99.mintlify.app/products/clickstack/demo-days/2026/2026-04-10,matched,1f1327015f47150f,true,b4ae5617c310f1db,2026-05-08T12:19:52+00:00,false -/use-cases/observability/clickstack/deployment,docs/use-cases/observability/clickstack/deployment/index.md,products/clickstack/deployment/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/deployment,https://private-7c7dfe99.mintlify.app/products/clickstack/deployment,matched,624c3869f78a6bb1,true,624c3869f78a6bb1,2026-05-08T09:09:20+00:00,false +/use-cases/observability/clickstack/deployment,docs/use-cases/observability/clickstack/deployment/index.md,,https://clickhouse.com/docs/use-cases/observability/clickstack/deployment,,unmatched,624c3869f78a6bb1,false,,,false /use-cases/observability/clickstack/deployment/all-in-one,docs/use-cases/observability/clickstack/deployment/oss/all-in-one.md,products/clickstack/deployment/all-in-one.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/deployment/all-in-one,https://private-7c7dfe99.mintlify.app/products/clickstack/deployment/all-in-one,matched,4853cc5d46543aa7,true,4853cc5d46543aa7,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/deployment/clickhouse-embedded,docs/use-cases/observability/clickstack/deployment/oss/clickhouse-embedded.md,products/clickstack/deployment/clickhouse-embedded.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/deployment/clickhouse-embedded,https://private-7c7dfe99.mintlify.app/products/clickstack/deployment/clickhouse-embedded,matched,96dd67ee9ce0986f,true,96dd67ee9ce0986f,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/deployment/clickstack-clickhouse-cloud,docs/use-cases/observability/clickstack/deployment/managed.md,products/clickstack/deployment/managed.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/deployment/clickstack-clickhouse-cloud,https://private-7c7dfe99.mintlify.app/products/clickstack/deployment/managed,matched,a3b0879773ec59db,true,a3b0879773ec59db,2026-05-13T14:36:45+00:00,false @@ -1805,14 +1805,14 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /use-cases/observability/clickstack/event_patterns,docs/use-cases/observability/clickstack/event_patterns.md,products/clickstack/features/event-patterns.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/event_patterns,https://private-7c7dfe99.mintlify.app/products/clickstack/features/event-patterns,matched,74e24951b554820a,true,74e24951b554820a,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/example-datasets/session-replay-demo,docs/use-cases/observability/clickstack/example-datasets/session-replay.md,products/clickstack/example-datasets/session-replay.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/example-datasets/session-replay-demo,https://private-7c7dfe99.mintlify.app/products/clickstack/example-datasets/session-replay,matched,b07332555010ab6c,true,b07332555010ab6c,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/faq,docs/use-cases/observability/clickstack/faq.md,products/clickstack/faq.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/faq,https://private-7c7dfe99.mintlify.app/products/clickstack/faq,matched,6f4b14d3b6709639,true,6f4b14d3b6709639,2026-05-09T17:42:04+00:00,false -/use-cases/observability/clickstack/getting-started,docs/use-cases/observability/clickstack/getting-started/index.md,products/clickstack/getting-started/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/getting-started,https://private-7c7dfe99.mintlify.app/products/clickstack/getting-started,matched,fba3ecd6ec4bfb61,true,fba3ecd6ec4bfb61,2026-05-08T09:09:20+00:00,false +/use-cases/observability/clickstack/getting-started,docs/use-cases/observability/clickstack/getting-started/index.md,products/clickstack/getting-started/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/getting-started,https://private-7c7dfe99.mintlify.app/products/clickstack/getting-started/index,matched,fba3ecd6ec4bfb61,true,fba3ecd6ec4bfb61,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/getting-started/kubernetes,docs/use-cases/observability/clickstack/example-datasets/kubernetes.md,products/clickstack/example-datasets/kubernetes.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/getting-started/kubernetes,https://private-7c7dfe99.mintlify.app/products/clickstack/example-datasets/kubernetes,matched,4812c605282293ce,true,4812c605282293ce,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/getting-started/local-data,docs/use-cases/observability/clickstack/example-datasets/local-data.md,products/clickstack/example-datasets/local-data.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/getting-started/local-data,https://private-7c7dfe99.mintlify.app/products/clickstack/example-datasets/local-data,matched,f3cfe97d61055255,true,f3cfe97d61055255,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/getting-started/managed,docs/use-cases/observability/clickstack/getting-started/managed.md,products/clickstack/getting-started/managed.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/getting-started/managed,https://private-7c7dfe99.mintlify.app/products/clickstack/getting-started/managed,matched,5e93428e0c73d1fb,true,5e93428e0c73d1fb,2026-05-13T14:36:45+00:00,false /use-cases/observability/clickstack/getting-started/oss,docs/use-cases/observability/clickstack/getting-started/oss.md,products/clickstack/getting-started/oss.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/getting-started/oss,https://private-7c7dfe99.mintlify.app/products/clickstack/getting-started/oss,matched,848dad5d53302060,true,848dad5d53302060,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/getting-started/remote-demo-data,docs/use-cases/observability/clickstack/example-datasets/remote-demo-data.md,products/clickstack/example-datasets/remote-demo-data.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/getting-started/remote-demo-data,https://private-7c7dfe99.mintlify.app/products/clickstack/example-datasets/remote-demo-data,matched,21473252e4862bcb,true,21473252e4862bcb,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/getting-started/sample-data,docs/use-cases/observability/clickstack/example-datasets/sample-data.md,products/clickstack/example-datasets/sample-data.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/getting-started/sample-data,https://private-7c7dfe99.mintlify.app/products/clickstack/example-datasets/sample-data,matched,f85b353d0f722d3e,true,f85b353d0f722d3e,2026-05-09T17:02:01+00:00,false -/use-cases/observability/clickstack/ingesting-data,docs/use-cases/observability/clickstack/ingesting-data/index.md,products/clickstack/ingesting-data/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/ingesting-data,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data,matched,215622fcc8806414,true,215622fcc8806414,2026-05-08T09:09:20+00:00,false +/use-cases/observability/clickstack/ingesting-data,docs/use-cases/observability/clickstack/ingesting-data/index.md,products/clickstack/ingesting-data/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/ingesting-data,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/index,matched,215622fcc8806414,true,215622fcc8806414,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/ingesting-data/opentelemetry,docs/use-cases/observability/clickstack/ingesting-data/opentelemetry.md,products/clickstack/ingesting-data/opentelemetry.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/ingesting-data/opentelemetry,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/opentelemetry,matched,faf4701288439e27,true,faf4701288439e27,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/ingesting-data/otel-collector,docs/use-cases/observability/clickstack/ingesting-data/collector.md,products/clickstack/ingesting-data/collector.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/ingesting-data/otel-collector,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/collector,matched,116387bf4e928224,true,116387bf4e928224,2026-05-08T18:41:21+00:00,false /use-cases/observability/clickstack/ingesting-data/overview,docs/use-cases/observability/clickstack/ingesting-data/overview.md,products/clickstack/ingesting-data/overview.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/ingesting-data/overview,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/overview,matched,0335ec40088d821d,true,0335ec40088d821d,2026-05-08T09:09:20+00:00,false @@ -1820,8 +1820,8 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /use-cases/observability/clickstack/ingesting-data/schemas,docs/use-cases/observability/clickstack/ingesting-data/schemas.md,products/clickstack/ingesting-data/schemas.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/ingesting-data/schemas,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/schemas,matched,73c71c545f1732a7,true,73c71c545f1732a7,2026-05-08T20:59:49+00:00,false /use-cases/observability/clickstack/ingesting-data/trace-sampling,docs/use-cases/observability/clickstack/ingesting-data/trace-sampling.md,products/clickstack/ingesting-data/trace-sampling.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/ingesting-data/trace-sampling,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/trace-sampling,matched,356d553e1d1725c4,true,356d553e1d1725c4,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/ingesting-data/vector,docs/use-cases/observability/clickstack/ingesting-data/vector.md,products/clickstack/ingesting-data/vector.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/ingesting-data/vector,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/vector,matched,931b3cab6b17362e,true,931b3cab6b17362e,2026-05-09T17:02:01+00:00,false -/use-cases/observability/clickstack/integration-guides,docs/use-cases/observability/clickstack/ingesting-data/integration-examples/index.md,products/clickstack/integration-examples/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/integration-guides,https://private-7c7dfe99.mintlify.app/products/clickstack/integration-examples,matched,e1fa2935f644f4ec,true,e1fa2935f644f4ec,2026-05-08T09:09:20+00:00,false -/use-cases/observability/clickstack/integration-partners,docs/use-cases/observability/clickstack/integration-partners/index.md,products/clickstack/integration-partners/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/integration-partners,https://private-7c7dfe99.mintlify.app/products/clickstack/integration-partners,matched,5e9d3e1136b70c06,true,5e9d3e1136b70c06,2026-05-08T09:09:20+00:00,false +/use-cases/observability/clickstack/integration-guides,docs/use-cases/observability/clickstack/ingesting-data/integration-examples/index.md,products/clickstack/integration-examples/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/integration-guides,https://private-7c7dfe99.mintlify.app/products/clickstack/integration-examples/index,matched,e1fa2935f644f4ec,true,e1fa2935f644f4ec,2026-05-08T09:09:20+00:00,false +/use-cases/observability/clickstack/integration-partners,docs/use-cases/observability/clickstack/integration-partners/index.md,products/clickstack/integration-partners/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/integration-partners,https://private-7c7dfe99.mintlify.app/products/clickstack/integration-partners/index,matched,5e9d3e1136b70c06,true,5e9d3e1136b70c06,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/integration-partners/bindplane,docs/use-cases/observability/clickstack/integration-partners/bindplane.md,products/clickstack/integration-partners/bindplane.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/integration-partners/bindplane,https://private-7c7dfe99.mintlify.app/products/clickstack/integration-partners/bindplane,matched,54f1a9f837227da2,true,54f1a9f837227da2,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/integrations/aws-cloudwatch-logs,docs/use-cases/observability/clickstack/ingesting-data/integration-examples/cloudwatch.md,products/clickstack/integration-examples/cloudwatch.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/integrations/aws-cloudwatch-logs,https://private-7c7dfe99.mintlify.app/products/clickstack/integration-examples/cloudwatch,matched,5804c21a7fc69fd5,true,5804c21a7fc69fd5,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/integrations/aws-lambda,docs/use-cases/observability/clickstack/ingesting-data/integration-examples/aws-lambda.md,products/clickstack/integration-examples/aws-lambda.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/integrations/aws-lambda,https://private-7c7dfe99.mintlify.app/products/clickstack/integration-examples/aws-lambda,matched,44bc191ecbc021f1,true,44bc191ecbc021f1,2026-05-09T17:02:01+00:00,false @@ -1843,10 +1843,10 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /use-cases/observability/clickstack/integrations/redis-metrics,docs/use-cases/observability/clickstack/ingesting-data/integration-examples/redis-metrics.md,products/clickstack/integration-examples/redis-metrics.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/integrations/redis-metrics,https://private-7c7dfe99.mintlify.app/products/clickstack/integration-examples/redis-metrics,matched,fa147392852946ab,true,fa147392852946ab,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/integrations/systemd-logs,docs/use-cases/observability/clickstack/ingesting-data/integration-examples/systemd.md,products/clickstack/integration-examples/systemd.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/integrations/systemd-logs,https://private-7c7dfe99.mintlify.app/products/clickstack/integration-examples/systemd,matched,a276255a1b2434fa,true,a276255a1b2434fa,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/integrations/temporal-metrics,docs/use-cases/observability/clickstack/ingesting-data/integration-examples/temporal.md,products/clickstack/integration-examples/temporal.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/integrations/temporal-metrics,https://private-7c7dfe99.mintlify.app/products/clickstack/integration-examples/temporal,matched,b47f526b1c6badda,true,b47f526b1c6badda,2026-05-09T17:02:01+00:00,false -/use-cases/observability/clickstack/managing,docs/use-cases/observability/clickstack/managing/index.md,products/clickstack/managing.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/managing,https://private-7c7dfe99.mintlify.app/products/clickstack/managing,matched,b69e82469c4079d0,true,b69e82469c4079d0,2026-05-19T11:48:22+00:00,false +/use-cases/observability/clickstack/managing,docs/use-cases/observability/clickstack/managing/index.md,products/clickstack/managing/overview.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/managing,https://private-7c7dfe99.mintlify.app/products/clickstack/managing/overview,matched,b69e82469c4079d0,true,b69e82469c4079d0,2026-05-19T11:48:22+00:00,false /use-cases/observability/clickstack/materialized_views,docs/use-cases/observability/clickstack/managing/materialized_views.md,products/clickstack/managing/materialized-views.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/materialized_views,https://private-7c7dfe99.mintlify.app/products/clickstack/managing/materialized-views,matched,ef9c82eec4644dbb,true,ef9c82eec4644dbb,2026-05-09T17:02:01+00:00,false -/use-cases/observability/clickstack/migration,docs/use-cases/observability/clickstack/migration/index.md,products/clickstack/migration/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/migration,https://private-7c7dfe99.mintlify.app/products/clickstack/migration,matched,dc99b6f9b381dcd0,true,dc99b6f9b381dcd0,2026-05-08T09:09:20+00:00,false -/use-cases/observability/clickstack/migration/elastic,docs/use-cases/observability/clickstack/migration/elastic/index.md,products/clickstack/migration/elastic/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/migration/elastic,https://private-7c7dfe99.mintlify.app/products/clickstack/migration/elastic,matched,30da2cbfe92790be,true,30da2cbfe92790be,2026-05-07T14:49:41+00:00,false +/use-cases/observability/clickstack/migration,docs/use-cases/observability/clickstack/migration/index.md,products/clickstack/migration/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/migration,https://private-7c7dfe99.mintlify.app/products/clickstack/migration/index,matched,dc99b6f9b381dcd0,true,dc99b6f9b381dcd0,2026-05-08T09:09:20+00:00,false +/use-cases/observability/clickstack/migration/elastic,docs/use-cases/observability/clickstack/migration/elastic/index.md,products/clickstack/migration/elastic/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/migration/elastic,https://private-7c7dfe99.mintlify.app/products/clickstack/migration/elastic/index,matched,30da2cbfe92790be,true,30da2cbfe92790be,2026-05-07T14:49:41+00:00,false /use-cases/observability/clickstack/migration/elastic/concepts,docs/use-cases/observability/clickstack/migration/elastic/concepts.md,products/clickstack/migration/elastic/concepts.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/migration/elastic/concepts,https://private-7c7dfe99.mintlify.app/products/clickstack/migration/elastic/concepts,matched,8b21300ac1a0ec45,true,8b21300ac1a0ec45,2026-05-13T13:25:33+00:00,false /use-cases/observability/clickstack/migration/elastic/intro,docs/use-cases/observability/clickstack/migration/elastic/intro.md,products/clickstack/migration/elastic/intro.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/migration/elastic/intro,https://private-7c7dfe99.mintlify.app/products/clickstack/migration/elastic/intro,matched,9d0b512a93d3b067,true,9d0b512a93d3b067,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/migration/elastic/migrating-agents,docs/use-cases/observability/clickstack/migration/elastic/migrating-agents.md,products/clickstack/migration/elastic/migrating-agents.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/migration/elastic/migrating-agents,https://private-7c7dfe99.mintlify.app/products/clickstack/migration/elastic/migrating-agents,matched,a00b90a1ed6dbff0,true,a00b90a1ed6dbff0,2026-05-09T17:02:01+00:00,false @@ -1859,8 +1859,8 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /use-cases/observability/clickstack/performance_tuning,docs/use-cases/observability/clickstack/managing/performance_tuning.md,products/clickstack/managing/performance-tuning.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/performance_tuning,https://private-7c7dfe99.mintlify.app/products/clickstack/managing/performance-tuning,matched,4412add76f6ae9ae,true,4412add76f6ae9ae,2026-05-09T17:02:01+00:00,false /use-cases/observability/clickstack/production,docs/use-cases/observability/clickstack/managing/production.md,products/clickstack/managing/production.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/production,https://private-7c7dfe99.mintlify.app/products/clickstack/managing/production,matched,e78632dc44639205,true,e78632dc44639205,2026-05-13T13:11:55+00:00,false /use-cases/observability/clickstack/rbac,docs/use-cases/observability/clickstack/managing/rbac.md,products/clickstack/managing/rbac.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/rbac,https://private-7c7dfe99.mintlify.app/products/clickstack/managing/rbac,matched,ab2e9865ccc5592f,true,ab2e9865ccc5592f,2026-05-09T17:02:01+00:00,false -/use-cases/observability/clickstack/sample-datasets,docs/use-cases/observability/clickstack/example-datasets/index.md,products/clickstack/example-datasets/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/sample-datasets,https://private-7c7dfe99.mintlify.app/products/clickstack/example-datasets,matched,b3fa19f44c75c4e8,true,b3fa19f44c75c4e8,2026-05-08T09:09:20+00:00,false -/use-cases/observability/clickstack/sdks,docs/use-cases/observability/clickstack/ingesting-data/sdks/index.md,products/clickstack/ingesting-data/sdks/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/sdks,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/sdks,matched,2f107024e9dc1a15,true,2f107024e9dc1a15,2026-05-08T09:09:20+00:00,false +/use-cases/observability/clickstack/sample-datasets,docs/use-cases/observability/clickstack/example-datasets/index.md,products/clickstack/example-datasets/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/sample-datasets,https://private-7c7dfe99.mintlify.app/products/clickstack/example-datasets/index,matched,b3fa19f44c75c4e8,true,b3fa19f44c75c4e8,2026-05-08T09:09:20+00:00,false +/use-cases/observability/clickstack/sdks,docs/use-cases/observability/clickstack/ingesting-data/sdks/index.md,products/clickstack/ingesting-data/sdks/index.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/sdks,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/sdks/index,matched,2f107024e9dc1a15,true,2f107024e9dc1a15,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/sdks/aws_lambda,docs/use-cases/observability/clickstack/ingesting-data/sdks/aws-lambda.md,products/clickstack/ingesting-data/sdks/aws-lambda.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/sdks/aws_lambda,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/sdks/aws-lambda,matched,dd236404a5a1a528,true,dd236404a5a1a528,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/sdks/browser,docs/use-cases/observability/clickstack/ingesting-data/sdks/browser.md,products/clickstack/ingesting-data/sdks/browser.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/sdks/browser,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/sdks/browser,matched,1b23182019224019,true,1b23182019224019,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/sdks/deno,docs/use-cases/observability/clickstack/ingesting-data/sdks/deno.md,products/clickstack/ingesting-data/sdks/deno.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/sdks/deno,https://private-7c7dfe99.mintlify.app/products/clickstack/ingesting-data/sdks/deno,matched,ddde90e3ccb5f34d,true,ddde90e3ccb5f34d,2026-05-08T09:09:20+00:00,false @@ -1877,17 +1877,17 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /use-cases/observability/clickstack/service-maps,docs/use-cases/observability/clickstack/service-maps.md,products/clickstack/service-maps.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/service-maps,https://private-7c7dfe99.mintlify.app/products/clickstack/service-maps,matched,346a14c70da0ddb1,true,346a14c70da0ddb1,2026-05-07T14:49:41+00:00,false /use-cases/observability/clickstack/session-replay,docs/use-cases/observability/clickstack/session-replay.md,products/clickstack/features/session-replay.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/session-replay,https://private-7c7dfe99.mintlify.app/products/clickstack/features/session-replay,matched,230e92b27f20974d,true,230e92b27f20974d,2026-05-08T09:09:20+00:00,false /use-cases/observability/clickstack/text-to-chart,docs/use-cases/observability/clickstack/text-to-chart.md,products/clickstack/text-to-chart.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/text-to-chart,https://private-7c7dfe99.mintlify.app/products/clickstack/text-to-chart,matched,028429ec606eb0cd,true,028429ec606eb0cd,2026-05-09T17:02:01+00:00,false -/use-cases/observability/clickstack/ttl,docs/use-cases/observability/clickstack/ttl.md,products/clickstack/ttl.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/ttl,https://private-7c7dfe99.mintlify.app/products/clickstack/ttl,matched,c60512dfb71a6a2a,true,c60512dfb71a6a2a,2026-05-08T09:09:20+00:00,false -/use-cases/observability/cloud-monitoring,docs/use-cases/observability/cloud-monitoring.md,guides/observability/cloud-monitoring.mdx,https://clickhouse.com/docs/use-cases/observability/cloud-monitoring,https://private-7c7dfe99.mintlify.app/guides/observability/cloud-monitoring,matched,41c2db4e0eb9d92d,true,41c2db4e0eb9d92d,2026-05-08T09:09:20+00:00,false -/use-cases/observability/introduction,docs/use-cases/observability/build-your-own/introduction.md,guides/observability/build-your-own/introduction.mdx,https://clickhouse.com/docs/use-cases/observability/introduction,https://private-7c7dfe99.mintlify.app/guides/observability/build-your-own/introduction,matched,49b6bef5443ce806,true,49b6bef5443ce806,2026-05-08T09:09:20+00:00,false -/use-cases/observability/oss-monitoring,docs/use-cases/observability/self-managed-monitoring.md,guides/observability/self-managed-monitoring.mdx,https://clickhouse.com/docs/use-cases/observability/oss-monitoring,https://private-7c7dfe99.mintlify.app/guides/observability/self-managed-monitoring,matched,b0d2e021f7c1f839,true,b0d2e021f7c1f839,2026-05-08T09:09:20+00:00,false -/use-cases/observability/schema-design,docs/use-cases/observability/build-your-own/schema-design.md,guides/observability/build-your-own/schema-design.mdx,https://clickhouse.com/docs/use-cases/observability/schema-design,https://private-7c7dfe99.mintlify.app/guides/observability/build-your-own/schema-design,matched,33303f67924447f5,true,33303f67924447f5,2026-05-08T09:09:20+00:00,false -/use-cases/time-series,docs/use-cases/time-series/index.md,guides/real-time-analytics/time-series/index.mdx,https://clickhouse.com/docs/use-cases/time-series,https://private-7c7dfe99.mintlify.app/guides/real-time-analytics/time-series,matched,ad253066ead1dba2,true,ad253066ead1dba2,2026-05-07T14:49:41+00:00,false -/use-cases/time-series/analysis-functions,docs/use-cases/time-series/03_analysis-functions.md,guides/real-time-analytics/time-series/analysis-functions.mdx,https://clickhouse.com/docs/use-cases/time-series/analysis-functions,https://private-7c7dfe99.mintlify.app/guides/real-time-analytics/time-series/analysis-functions,matched,3d710f7ec6e30189,true,3d710f7ec6e30189,2026-05-13T13:16:51+00:00,false -/use-cases/time-series/basic-operations,docs/use-cases/time-series/02_basic-operations.md,guides/real-time-analytics/time-series/basic-operations.mdx,https://clickhouse.com/docs/use-cases/time-series/basic-operations,https://private-7c7dfe99.mintlify.app/guides/real-time-analytics/time-series/basic-operations,matched,13c880f5ab1e0250,true,13c880f5ab1e0250,2026-05-13T13:16:51+00:00,false -/use-cases/time-series/date-time-data-types,docs/use-cases/time-series/01_date-time-data-types.md,guides/real-time-analytics/time-series/date-time-data-types.mdx,https://clickhouse.com/docs/use-cases/time-series/date-time-data-types,https://private-7c7dfe99.mintlify.app/guides/real-time-analytics/time-series/date-time-data-types,matched,b120cbed87fc6621,true,b120cbed87fc6621,2026-05-13T13:16:51+00:00,false -/use-cases/time-series/query-performance,docs/use-cases/time-series/05_query-performance.md,guides/real-time-analytics/time-series/query-performance.mdx,https://clickhouse.com/docs/use-cases/time-series/query-performance,https://private-7c7dfe99.mintlify.app/guides/real-time-analytics/time-series/query-performance,matched,e5686a5f24a7d911,true,e5686a5f24a7d911,2026-05-13T13:16:51+00:00,false -/use-cases/time-series/storage-efficiency,docs/use-cases/time-series/04_storage-efficiency.md,guides/real-time-analytics/time-series/storage-efficiency.mdx,https://clickhouse.com/docs/use-cases/time-series/storage-efficiency,https://private-7c7dfe99.mintlify.app/guides/real-time-analytics/time-series/storage-efficiency,matched,a594e45dbb21ec97,true,a594e45dbb21ec97,2026-05-13T13:16:51+00:00,false +/use-cases/observability/clickstack/ttl,docs/use-cases/observability/clickstack/ttl.md,products/clickstack/managing/ttl.mdx,https://clickhouse.com/docs/use-cases/observability/clickstack/ttl,https://private-7c7dfe99.mintlify.app/products/clickstack/managing/ttl,matched,c60512dfb71a6a2a,true,c60512dfb71a6a2a,2026-05-08T09:09:20+00:00,false +/use-cases/observability/cloud-monitoring,docs/use-cases/observability/cloud-monitoring.md,core/guides/use-cases/observability/cloud-monitoring.mdx,https://clickhouse.com/docs/use-cases/observability/cloud-monitoring,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/observability/cloud-monitoring,matched,41c2db4e0eb9d92d,true,41c2db4e0eb9d92d,2026-05-08T09:09:20+00:00,false +/use-cases/observability/introduction,docs/use-cases/observability/build-your-own/introduction.md,core/guides/use-cases/observability/build-your-own/introduction.mdx,https://clickhouse.com/docs/use-cases/observability/introduction,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/observability/build-your-own/introduction,matched,49b6bef5443ce806,true,49b6bef5443ce806,2026-05-08T09:09:20+00:00,false +/use-cases/observability/oss-monitoring,docs/use-cases/observability/self-managed-monitoring.md,core/guides/use-cases/observability/self-managed-monitoring.mdx,https://clickhouse.com/docs/use-cases/observability/oss-monitoring,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/observability/self-managed-monitoring,matched,b0d2e021f7c1f839,true,b0d2e021f7c1f839,2026-05-08T09:09:20+00:00,false +/use-cases/observability/schema-design,docs/use-cases/observability/build-your-own/schema-design.md,core/guides/use-cases/observability/build-your-own/schema-design.mdx,https://clickhouse.com/docs/use-cases/observability/schema-design,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/observability/build-your-own/schema-design,matched,33303f67924447f5,true,33303f67924447f5,2026-05-08T09:09:20+00:00,false +/use-cases/time-series,docs/use-cases/time-series/index.md,core/guides/use-cases/real-time-analytics/time-series/index.mdx,https://clickhouse.com/docs/use-cases/time-series,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/real-time-analytics/time-series/index,matched,ad253066ead1dba2,true,ad253066ead1dba2,2026-05-07T14:49:41+00:00,false +/use-cases/time-series/analysis-functions,docs/use-cases/time-series/03_analysis-functions.md,core/guides/use-cases/real-time-analytics/time-series/analysis-functions.mdx,https://clickhouse.com/docs/use-cases/time-series/analysis-functions,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/real-time-analytics/time-series/analysis-functions,matched,3d710f7ec6e30189,true,3d710f7ec6e30189,2026-05-13T13:16:51+00:00,false +/use-cases/time-series/basic-operations,docs/use-cases/time-series/02_basic-operations.md,core/guides/use-cases/real-time-analytics/time-series/basic-operations.mdx,https://clickhouse.com/docs/use-cases/time-series/basic-operations,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/real-time-analytics/time-series/basic-operations,matched,13c880f5ab1e0250,true,13c880f5ab1e0250,2026-05-13T13:16:51+00:00,false +/use-cases/time-series/date-time-data-types,docs/use-cases/time-series/01_date-time-data-types.md,core/guides/use-cases/real-time-analytics/time-series/date-time-data-types.mdx,https://clickhouse.com/docs/use-cases/time-series/date-time-data-types,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/real-time-analytics/time-series/date-time-data-types,matched,b120cbed87fc6621,true,b120cbed87fc6621,2026-05-13T13:16:51+00:00,false +/use-cases/time-series/query-performance,docs/use-cases/time-series/05_query-performance.md,core/guides/use-cases/real-time-analytics/time-series/query-performance.mdx,https://clickhouse.com/docs/use-cases/time-series/query-performance,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/real-time-analytics/time-series/query-performance,matched,e5686a5f24a7d911,true,e5686a5f24a7d911,2026-05-13T13:16:51+00:00,false +/use-cases/time-series/storage-efficiency,docs/use-cases/time-series/04_storage-efficiency.md,core/guides/use-cases/real-time-analytics/time-series/storage-efficiency.mdx,https://clickhouse.com/docs/use-cases/time-series/storage-efficiency,https://private-7c7dfe99.mintlify.app/core/guides/use-cases/real-time-analytics/time-series/storage-efficiency,matched,a594e45dbb21ec97,true,a594e45dbb21ec97,2026-05-13T13:16:51+00:00,false /whats-new/changelog/,docs/whats-new/changelog/index.md,resources/changelogs/oss/2026.mdx,https://clickhouse.com/docs/whats-new/changelog/,https://private-7c7dfe99.mintlify.app/resources/changelogs/oss/2026,matched,f0e73ad88f365931,true,f0e73ad88f365931,2026-05-07T14:49:41+00:00,false /whats-new/changelog/2017,docs/whats-new/changelog/2017.md,resources/changelogs/oss/2017.mdx,https://clickhouse.com/docs/whats-new/changelog/2017,https://private-7c7dfe99.mintlify.app/resources/changelogs/oss/2017,matched,d5bc29c48611da11,true,d5bc29c48611da11,2026-05-08T09:09:20+00:00,false /whats-new/changelog/2018,docs/whats-new/changelog/2018.md,resources/changelogs/oss/2018.mdx,https://clickhouse.com/docs/whats-new/changelog/2018,https://private-7c7dfe99.mintlify.app/resources/changelogs/oss/2018,matched,d10011e2d9345d7d,true,d10011e2d9345d7d,2026-05-09T09:39:38+00:00,false @@ -1899,11 +1899,11 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /whats-new/changelog/2024,docs/whats-new/changelog/2024.md,resources/changelogs/oss/2024.mdx,https://clickhouse.com/docs/whats-new/changelog/2024,https://private-7c7dfe99.mintlify.app/resources/changelogs/oss/2024,matched,bbfd805effcf17ac,true,bbfd805effcf17ac,2026-05-08T12:19:52+00:00,false /whats-new/changelog/2025,docs/whats-new/changelog/2025.md,resources/changelogs/oss/2025.mdx,https://clickhouse.com/docs/whats-new/changelog/2025,https://private-7c7dfe99.mintlify.app/resources/changelogs/oss/2025,matched,d10aef255ee59dd3,true,d10aef255ee59dd3,2026-05-08T09:09:20+00:00,false /whats-new/changelog/24.2-fast-release,docs/cloud/reference/01_changelog/02_release_notes/24_02.md,resources/changelogs/cloud/release-notes/24_02.mdx,https://clickhouse.com/docs/whats-new/changelog/24.2-fast-release,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/release-notes/24_02,matched,f65058fc3c2b4b53,true,f65058fc3c2b4b53,2026-05-08T09:09:20+00:00,false -/whats-new/changelog/cloud,docs/cloud/reference/01_changelog/01_cloud_changelog/2026.md,resources/changelogs/cloud.mdx,https://clickhouse.com/docs/whats-new/changelog/cloud,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud,matched,24767fc565b42fff,true,24767fc565b42fff,2026-05-13T13:16:51+00:00,false +/whats-new/changelog/cloud,docs/cloud/reference/01_changelog/01_cloud_changelog/2026.md,resources/changelogs/cloud/2026.mdx,https://clickhouse.com/docs/whats-new/changelog/cloud,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/2026,matched,24767fc565b42fff,true,24767fc565b42fff,2026-05-13T13:16:51+00:00,false /whats-new/cloud-compatibility,docs/cloud/guides/cloud-compatibility.md,products/cloud/guides/cloud-compatibility.mdx,https://clickhouse.com/docs/whats-new/cloud-compatibility,https://private-7c7dfe99.mintlify.app/products/cloud/guides/cloud-compatibility,matched,0905e8eeb3e4c566,true,0905e8eeb3e4c566,2026-05-13T13:16:51+00:00,false /whats-new/cloud/2022,docs/cloud/reference/01_changelog/01_cloud_changelog/archive/2022.md,resources/changelogs/cloud/archive/2022.mdx,https://clickhouse.com/docs/whats-new/cloud/2022,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/archive/2022,matched,1b2a90ad66042a13,true,1b2a90ad66042a13,2026-05-08T09:09:20+00:00,false /whats-new/cloud/2023,docs/cloud/reference/01_changelog/01_cloud_changelog/archive/2023.md,resources/changelogs/cloud/archive/2023.mdx,https://clickhouse.com/docs/whats-new/cloud/2023,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/archive/2023,matched,47bf28a464015cb0,true,8bbfe2ddf6a88283,2026-05-08T13:38:45+00:00,false /whats-new/cloud/2024,docs/cloud/reference/01_changelog/01_cloud_changelog/archive/2024.md,resources/changelogs/cloud/archive/2024.mdx,https://clickhouse.com/docs/whats-new/cloud/2024,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/archive/2024,matched,6b7edbae407aa580,true,6b7edbae407aa580,2026-05-08T09:09:20+00:00,false /whats-new/cloud/2025,docs/cloud/reference/01_changelog/01_cloud_changelog/archive/2025.md,resources/changelogs/cloud/archive/2025.mdx,https://clickhouse.com/docs/whats-new/cloud/2025,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/archive/2025,matched,eaaf3e155767bd52,true,eaaf3e155767bd52,2026-05-09T10:10:14+00:00,false -/whats-new/roadmap,docs/whats-new/roadmap.md,resources/contribute/roadmap.mdx,https://clickhouse.com/docs/whats-new/roadmap,https://private-7c7dfe99.mintlify.app/resources/contribute/roadmap,matched,a69f4f27c5b1cae7,true,a69f4f27c5b1cae7,2026-05-08T09:09:20+00:00,false +/whats-new/roadmap,docs/whats-new/roadmap.md,resources/develop-contribute/roadmap.mdx,https://clickhouse.com/docs/whats-new/roadmap,https://private-7c7dfe99.mintlify.app/resources/develop-contribute/roadmap,matched,a69f4f27c5b1cae7,true,a69f4f27c5b1cae7,2026-05-08T09:09:20+00:00,false /whats-new/security-changelog,docs/whats-new/security-changelog.md,resources/changelogs/security-changelog.mdx,https://clickhouse.com/docs/whats-new/security-changelog,https://private-7c7dfe99.mintlify.app/resources/changelogs/security-changelog,matched,ce01e06ea86b41dd,true,e67a2d890c9d442e,2026-05-08T09:09:20+00:00,false diff --git a/scripts/suggest-slug-aliases.py b/_migration/suggest-slug-aliases.py similarity index 93% rename from scripts/suggest-slug-aliases.py rename to _migration/suggest-slug-aliases.py index 7cb3ac50..10089dff 100644 --- a/scripts/suggest-slug-aliases.py +++ b/_migration/suggest-slug-aliases.py @@ -9,15 +9,15 @@ 2. Basename + parent-dir match against this repo's actual file tree. 3. Basename-only match against Mintlify URLs derived from slug-map.csv. -Output: scripts/slug-aliases.csv with columns +Output: _migration/slug-aliases.csv with columns old_slug, count, suggested_target, confidence, alternates -Review/edit that file, then run scripts/apply-slug-aliases.py to rewrite the +Review/edit that file, then run _migration/apply-slug-aliases.py to rewrite the markers. Usage: - python scripts/suggest-slug-aliases.py - python scripts/suggest-slug-aliases.py --reference ~/Desktop/clickhouse-main + python _migration/suggest-slug-aliases.py + python _migration/suggest-slug-aliases.py --reference ~/Desktop/clickhouse-main """ from __future__ import annotations @@ -84,7 +84,7 @@ def load_slug_map() -> tuple[dict[str, str], list[str]]: """Return (slug -> mintlify_url, [all mintlify URLs]).""" slug_to_url: dict[str, str] = {} urls: list[str] = [] - for r in csv.DictReader((THIS_REPO / "slug-map.csv").open(encoding="utf-8")): + for r in csv.DictReader((THIS_REPO / "_migration" / "slug-map.csv").open(encoding="utf-8")): mfile = r["mintlify_file"].split(" | ")[0] if r["status"] == "matched" and mfile: url = file_to_url(mfile) @@ -159,7 +159,7 @@ def main(): ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) ap.add_argument("--reference", type=Path, default=DEFAULT_REFERENCE, help="path to clickhouse-main reference repo") - ap.add_argument("--out", type=Path, default=THIS_REPO / "scripts" / "slug-aliases.csv") + ap.add_argument("--out", type=Path, default=THIS_REPO / "_migration" / "slug-aliases.csv") args = ap.parse_args() counts = collect_unknown_slugs() diff --git a/scripts/verify_mapping.py b/_migration/verify_mapping.py similarity index 100% rename from scripts/verify_mapping.py rename to _migration/verify_mapping.py diff --git a/_site/customizations/README.md b/_site/customizations/README.md new file mode 100644 index 00000000..2fc754cd --- /dev/null +++ b/_site/customizations/README.md @@ -0,0 +1,17 @@ +# Customizations + +Custom scripts that customize the look and behavior of the Mintlify site. +These are loaded via the `scripts` array in `docs.json` and run on every page. + +See Mintlify's docs on [custom scripts](https://www.mintlify.com/docs/customize/custom-scripts) for more information. + +## Scripts + +- `ask-ai-button.js` — tweaks the Ask-AI button styling/behavior. +- `cookie-banner.js` — injects and manages the cookie consent banner. +- `custom-footer.js` — renders the custom site footer (`#ch-custom-footer`). +- `kapa-init.js` — bootstraps the Kapa.ai RAG widget. +- `navbar-cta.js` — adds the "Get started" CTA to the navbar. + +To wire a new script up, add a `{ "src": "/_site/customizations/.js" }` +entry to the top-level `scripts` array in `docs.json`. \ No newline at end of file diff --git a/ask-ai-button.js b/_site/customizations/ask-ai-button.js similarity index 100% rename from ask-ai-button.js rename to _site/customizations/ask-ai-button.js diff --git a/cookie-banner.js b/_site/customizations/cookie-banner.js similarity index 100% rename from cookie-banner.js rename to _site/customizations/cookie-banner.js diff --git a/custom-footer.js b/_site/customizations/custom-footer.js similarity index 100% rename from custom-footer.js rename to _site/customizations/custom-footer.js diff --git a/kapa-init.js b/_site/customizations/kapa-init.js similarity index 100% rename from kapa-init.js rename to _site/customizations/kapa-init.js diff --git a/navbar-cta.js b/_site/customizations/navbar-cta.js similarity index 100% rename from navbar-cta.js rename to _site/customizations/navbar-cta.js diff --git a/favicon.svg b/_site/favicon.svg similarity index 100% rename from favicon.svg rename to _site/favicon.svg diff --git a/logo/dark.svg b/_site/logo/dark.svg similarity index 100% rename from logo/dark.svg rename to _site/logo/dark.svg diff --git a/logo/light.svg b/_site/logo/light.svg similarity index 100% rename from logo/light.svg rename to _site/logo/light.svg diff --git a/_site/redirects.json b/_site/redirects.json new file mode 100644 index 00000000..2621b882 --- /dev/null +++ b/_site/redirects.json @@ -0,0 +1,2682 @@ +[ + { + "source": "/optimize/avoid-mutations", + "destination": "/core/concepts/best-practices/avoid-mutations" + }, + { + "source": "/optimize/avoidoptimizefinal", + "destination": "/core/concepts/best-practices/avoid-optimize-final" + }, + { + "source": "/optimize/partitioning-key", + "destination": "/core/concepts/best-practices/partitioning-keys" + }, + { + "source": "/starter-guides", + "destination": "/core/get-started/quickstarts/home" + }, + { + "source": "/introduction-clickhouse", + "destination": "/core/get-started/about/intro" + }, + { + "source": "/install/quick-install-curl", + "destination": "/core/get-started/setup/self-managed/quick-install" + }, + { + "source": "/integrations/clickpipes/secure-kinesis", + "destination": "/integrations/clickpipes/kinesis/auth" + }, + { + "source": "/integrations/clickpipes/secure-rds", + "destination": "/integrations/clickpipes/postgres/auth" + }, + { + "source": "/docs/en/cloud/manage/service-types", + "destination": "/products/cloud/features/cloud-tiers" + }, + { + "source": "/cloud/reference/byoc/onboarding/customization", + "destination": "/products/bring-your-own-cloud/onboarding/customization-aws" + }, + { + "source": "/knowledgebase/why-clickhouse-is-so-fast", + "destination": "/core/get-started/about/why-clickhouse-is-so-fast" + }, + { + "source": "/faq/general/why-clickhouse-is-so-fast", + "destination": "/core/get-started/about/why-clickhouse-is-so-fast" + }, + { + "source": "/integrations/data-formats/json", + "destination": "/core/guides/clickhouse/data-formats/json/intro" + }, + { + "source": "/faq/marketplace", + "destination": "/products/cloud/reference/billing/marketplace/overview" + }, + { + "source": "/native-protocol/compression", + "destination": "/core/guides/clickhouse/data-modelling/compression/compression-modes" + }, + { + "source": "/manage/backups", + "destination": "/products/cloud/guides/backups" + }, + { + "source": "/manage/security/organization-activity", + "destination": "/products/cloud/reference/security/audit-logging" + }, + { + "source": "/cloud/manage/cmek", + "destination": "/products/cloud/guides/security/cmek" + }, + { + "source": "/manage/security/ip-access-list", + "destination": "/products/cloud/guides/security/connectivity/setting-ip-filters" + }, + { + "source": "/faq/billing#faq", + "destination": "/products/cloud/reference/billing/billing-overview#faqs" + }, + { + "source": "/core/guides/developer/lightweght-delete", + "destination": "/core/concepts/features/operations/delete/lightweight-delete" + }, + { + "source": "/core/guides/developer/shared-merge-tree", + "destination": "/products/cloud/features/infrastructure/shared-merge-tree" + }, + { + "source": "/integrations/data-ingestion", + "destination": "/core/reference/statements/insert-into" + }, + { + "source": "/integrations/data-ingestion/kafka", + "destination": "/integrations/connectors/data-ingestion/kafka" + }, + { + "source": "/integrations/data-ingestion/kafka/code", + "destination": "/integrations/connectors/data-ingestion/kafka" + }, + { + "source": "/integrations/data-ingestion/kafka/code/connectors", + "destination": "/integrations/connectors/data-ingestion/kafka" + }, + { + "source": "/integrations/deltalake", + "destination": "/core/reference/functions/table-functions/deltalake" + }, + { + "source": "/integrations/hive", + "destination": "/core/reference/engines/table-engines/integrations/hive" + }, + { + "source": "/integrations/hudi", + "destination": "/core/reference/engines/table-engines/integrations/hudi" + }, + { + "source": "/integrations/iceberg", + "destination": "/core/reference/functions/table-functions/iceberg" + }, + { + "source": "/integrations/mongodb", + "destination": "/core/reference/engines/table-engines/integrations/mongodb" + }, + { + "source": "/integrations/nats", + "destination": "/core/reference/engines/table-engines/integrations/nats" + }, + { + "source": "/integrations/rabbitmq", + "destination": "/core/reference/engines/table-engines/integrations/rabbitmq" + }, + { + "source": "/integrations/redis", + "destination": "/core/reference/functions/table-functions/redis" + }, + { + "source": "/integrations/rocksdb", + "destination": "/core/reference/engines/table-engines/integrations/embedded-rocksdb" + }, + { + "source": "/integrations/sqlite", + "destination": "/core/reference/engines/table-engines/integrations/sqlite" + }, + { + "source": "/integrations/connect-a-client", + "destination": "/core/concepts/features/interfaces/cli" + }, + { + "source": "/cloud/sql-console", + "destination": "/products/cloud/features/sql-console-features/sql-console" + }, + { + "source": "/category/cloud-reference", + "destination": "/products/cloud/getting-started/intro" + }, + { + "source": "/about-us/performance", + "destination": "/core/get-started/about/why-clickhouse-is-so-fast" + }, + { + "source": "/operations/optimizing-performance", + "destination": "/core/concepts/features/performance/troubleshoot/sampling-query-profiler" + }, + { + "source": "/core/guides/improving-query-performance/skipping-indexes", + "destination": "/core/concepts/features/performance/skip-indexes/skipping-indexes" + }, + { + "source": "/guides", + "destination": "/core/get-started/quickstarts/creating-tables" + }, + { + "source": "/optimize/sparse-primary-indexes", + "destination": "/core/guides/clickhouse/data-modelling/sparse-primary-indexes" + }, + { + "source": "/core/guides/improving-query-performance/sparse-primary-indexes", + "destination": "/core/guides/clickhouse/data-modelling/sparse-primary-indexes" + }, + { + "source": "/core/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-cardinality", + "destination": "/core/guides/clickhouse/data-modelling/sparse-primary-indexes" + }, + { + "source": "/core/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-design", + "destination": "/core/guides/clickhouse/data-modelling/sparse-primary-indexes" + }, + { + "source": "/core/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-intro", + "destination": "/core/guides/clickhouse/data-modelling/sparse-primary-indexes" + }, + { + "source": "/core/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-multiple", + "destination": "/core/guides/clickhouse/data-modelling/sparse-primary-indexes" + }, + { + "source": "/core/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-uuids", + "destination": "/core/guides/clickhouse/data-modelling/sparse-primary-indexes" + }, + { + "source": "/integrations/data-ingestion/dbms/", + "destination": "/integrations/connectors/home" + }, + { + "source": "/integrations/data-ingestion/etl-tools", + "destination": "/integrations/connectors/home" + }, + { + "source": "/integrations/intro", + "destination": "/integrations/connectors/home" + }, + { + "source": "/integrations/migration/clickhouse-local", + "destination": "/core/get-started/setup/migration-guides/other-methods/clickhouse-local-etl" + }, + { + "source": "/integrations/migration/clickhouse-to-cloud", + "destination": "/core/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud" + }, + { + "source": "/integrations/migration/etl-tool-to-clickhouse", + "destination": "/core/get-started/setup/migration-guides/other-methods/etl-tool-to-clickhouse" + }, + { + "source": "/integrations/sql-clients/index", + "destination": "/integrations/connectors/home" + }, + { + "source": "/interfaces", + "destination": "/core/concepts/features/interfaces/overview" + }, + { + "source": "/native-protocol", + "destination": "/resources/develop-contribute/native-protocol/basics" + }, + { + "source": "/manage/users", + "destination": "/core/concepts/features/security/access-rights" + }, + { + "source": "/manage", + "destination": "/core/concepts/features/security/access-rights" + }, + { + "source": "/manage/configuration", + "destination": "/core/concepts/features/configuration/server-config/configuration-files" + }, + { + "source": "/manage/replication-and-sharding", + "destination": "/core/guides/oss/deployment-and-scaling/keeper" + }, + { + "source": "/integrations/sql-clients/datagrip", + "destination": "/integrations/connectors/data-integrations/sql-clients/datagrip" + }, + { + "source": "/integrations/sql-clients/dbeaver", + "destination": "/integrations/connectors/data-integrations/sql-clients/dbeaver" + }, + { + "source": "/integrations/sql-clients/qstudio", + "destination": "/integrations/connectors/data-integrations/sql-clients/qstudio" + }, + { + "source": "/integrations/sql-clients/jupysql", + "destination": "/integrations/connectors/data-integrations/sql-clients/jupysql" + }, + { + "source": "/integrations/sql-clients/tablum.io", + "destination": "/integrations/connectors/data-integrations/sql-clients/tablum" + }, + { + "source": "/sql-reference/dictionaries/external-dictionaries", + "destination": "/core/reference/statements/create/dictionary" + }, + { + "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts", + "destination": "/core/reference/statements/create/dictionary" + }, + { + "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict", + "destination": "/core/reference/statements/create/dictionary" + }, + { + "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout", + "destination": "/core/reference/statements/create/dictionary/layouts/overview" + }, + { + "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-lifetime", + "destination": "/core/reference/statements/create/dictionary/lifetime" + }, + { + "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources", + "destination": "/core/reference/statements/create/dictionary/sources/overview" + }, + { + "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure", + "destination": "/core/reference/statements/create/dictionary/attributes" + }, + { + "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-hierarchical", + "destination": "/core/reference/statements/create/dictionary/layouts/hierarchical" + }, + { + "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-polygon", + "destination": "/core/reference/statements/create/dictionary/layouts/polygon" + }, + { + "source": "/sql-reference/dictionaries/external-dictionaries/regexp-tree", + "destination": "/core/reference/statements/create/dictionary/layouts/regexp-tree" + }, + { + "source": "/sql-reference/dictionaries/internal-dicts", + "destination": "/core/reference/statements/create/dictionary/embedded" + }, + { + "source": "/sql-reference/dictionaries", + "destination": "/core/reference/statements/create/dictionary" + }, + { + "source": "/operations/clickhouse-keeper/", + "destination": "/core/guides/oss/deployment-and-scaling/keeper" + }, + { + "source": "/connect-a-ui/grafana-and-clickhouse", + "destination": "/integrations/connectors/data-visualization/grafana" + }, + { + "source": "/connect-a-ui/metabase-and-clickhouse", + "destination": "/integrations/connectors/data-visualization/metabase-and-clickhouse" + }, + { + "source": "/connect-a-ui/mitzu-and-clickhouse", + "destination": "/integrations/connectors/data-visualization/community-integrations/mitzu-and-clickhouse" + }, + { + "source": "/connect-a-ui/rocketbi-and-clickhouse", + "destination": "/integrations/connectors/data-visualization/community-integrations/rocketbi-and-clickhouse" + }, + { + "source": "/connect-a-ui/superset-and-clickhouse", + "destination": "/integrations/connectors/data-visualization/superset-and-clickhouse" + }, + { + "source": "/connect-a-ui/tableau-and-clickhouse", + "destination": "/integrations/connectors/data-visualization/tableau/tableau-and-clickhouse" + }, + { + "source": "/integrations/language-clients/javascript", + "destination": "/integrations/language-clients/js" + }, + { + "source": "/integrations/language-clients/python/intro", + "destination": "/integrations/language-clients/python" + }, + { + "source": "/integrations/language-clients/python/driver-api", + "destination": "/integrations/language-clients/python" + }, + { + "source": "/integrations/language-clients/python/queries", + "destination": "/integrations/language-clients/python" + }, + { + "source": "/integrations/language-clients/python/inserts", + "destination": "/integrations/language-clients/python" + }, + { + "source": "/integrations/language-clients/python/options", + "destination": "/integrations/language-clients/python" + }, + { + "source": "/integrations/go/intro", + "destination": "/integrations/language-clients/go" + }, + { + "source": "/integrations/go/choosing-a-client", + "destination": "/integrations/language-clients/go" + }, + { + "source": "/integrations/go/clickhouse-go", + "destination": "/integrations/language-clients/go" + }, + { + "source": "/integrations/go/clickhouse-go/introduction", + "destination": "/integrations/language-clients/go" + }, + { + "source": "/integrations/go/clickhouse-go/installation", + "destination": "/integrations/language-clients/go" + }, + { + "source": "/integrations/go/clickhouse-go/clickhouse-api", + "destination": "/integrations/language-clients/go" + }, + { + "source": "/integrations/go/clickhouse-go/database-sql-api", + "destination": "/integrations/language-clients/go" + }, + { + "source": "/integrations/go/clickhouse-go/performance-tips", + "destination": "/integrations/language-clients/go" + }, + { + "source": "/integrations/language-clients/java/r2dbc", + "destination": "/integrations/language-clients/java" + }, + { + "source": "/integrations/language-clients/java/client/v7", + "destination": "/integrations/language-clients/java/client" + }, + { + "source": "/integrations/language-clients/java/client/v8", + "destination": "/integrations/language-clients/java/client" + }, + { + "source": "/integrations/language-clients/java/jdbc/v7", + "destination": "/integrations/language-clients/java/jdbc" + }, + { + "source": "/integrations/language-clients/java/jdbc/v8", + "destination": "/integrations/language-clients/java/jdbc" + }, + { + "source": "/integrations/nifi-and-clickhouse", + "destination": "/integrations/connectors/data-ingestion/etl-tools/nifi-and-clickhouse" + }, + { + "source": "/integrations/kafka/intro", + "destination": "/integrations/connectors/data-ingestion/kafka" + }, + { + "source": "/integrations/kafka/self-managed/connect-sink", + "destination": "/integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink" + }, + { + "source": "/integrations/kafka/self-managed/jdbc", + "destination": "/integrations/connectors/data-ingestion/kafka/kafka-connect-jdbc" + }, + { + "source": "/integrations/kafka/self-managed/vector", + "destination": "/integrations/connectors/data-ingestion/kafka/kafka-vector" + }, + { + "source": "/integrations/data-ingestion/kafka/cloud/msk/connect-sink", + "destination": "/integrations/connectors/data-ingestion/kafka/msk" + }, + { + "source": "/integrations/s3/s3-intro", + "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" + }, + { + "source": "/integrations/s3/s3-table-functions", + "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" + }, + { + "source": "/integrations/s3/s3-table-engine", + "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" + }, + { + "source": "/integrations/s3/s3-merge-tree", + "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" + }, + { + "source": "/integrations/s3/s3-optimizing-performance", + "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" + }, + { + "source": "/core/guides/sre/configuring-s3-for-clickhouse-use", + "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" + }, + { + "source": "/core/guides/sre/s3-multi-region", + "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" + }, + { + "source": "/integrations/s3/s3-minio", + "destination": "/integrations/connectors/data-ingestion/s3-minio" + }, + { + "source": "/integrations/vector-to-clickhouse", + "destination": "/integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse" + }, + { + "source": "/integrations/airbyte-and-clickhouse", + "destination": "/integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse" + }, + { + "source": "/integrations/postgresql/postgres-with-clickhouse", + "destination": "/integrations/connectors/data-sources/postgres" + }, + { + "source": "/integrations/postgresql/postgres-with-clickhouse-database-engine", + "destination": "/integrations/connectors/data-sources/postgres" + }, + { + "source": "/integrations/mqtt", + "destination": "/integrations/connectors/data-ingestion/emqx" + }, + { + "source": "/integrations/emqx/emqx-intro", + "destination": "/integrations/connectors/data-ingestion/emqx" + }, + { + "source": "/integrations/emqx/clickhouse-service-set-up", + "destination": "/integrations/connectors/data-ingestion/emqx" + }, + { + "source": "/integrations/emqx/create-emqx-cloud-deployment", + "destination": "/integrations/connectors/data-ingestion/emqx" + }, + { + "source": "/integrations/emqx/emqx-cloud-data-integration", + "destination": "/integrations/connectors/data-ingestion/emqx" + }, + { + "source": "/integrations/emqx/workflow-samples", + "destination": "/integrations/connectors/data-ingestion/emqx" + }, + { + "source": "/integrations/dbt/dbt-intro", + "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" + }, + { + "source": "/integrations/dbt/dbt-setup", + "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" + }, + { + "source": "/integrations/dbt/dbt-connecting", + "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" + }, + { + "source": "/integrations/dbt/dbt-view-model", + "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" + }, + { + "source": "/integrations/dbt/dbt-table-model", + "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" + }, + { + "source": "/integrations/dbt/dbt-incremental-model", + "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" + }, + { + "source": "/integrations/dbt/dbt-snapshot", + "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" + }, + { + "source": "/integrations/dbt/dbt-seeds", + "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" + }, + { + "source": "/integrations/dbt/dbt-limitations", + "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" + }, + { + "source": "/development", + "destination": "/resources/develop-contribute/introduction/developer-instruction" + }, + { + "source": "/core/guides/sre/keeper/clickhouse-keeper-uuid", + "destination": "/core/guides/oss/deployment-and-scaling/keeper" + }, + { + "source": "/core/guides/sre/user-management/alter-permissions", + "destination": "/core/concepts/features/security/access-rights" + }, + { + "source": "/core/guides/sre/users-and-roles", + "destination": "/core/concepts/features/security/access-rights" + }, + { + "source": "/integrations/data-formats/parquet-arrow-avro-orc", + "destination": "/core/guides/clickhouse/data-formats/parquet" + }, + { + "source": "/core/guides/developer/working-with-json", + "destination": "/core/guides/clickhouse/data-formats/json/intro" + }, + { + "source": "/core/guides/developer/working-with-json/json-intro", + "destination": "/core/guides/clickhouse/data-formats/json/intro" + }, + { + "source": "/core/guides/developer/working-with-json/json-load-data", + "destination": "/core/guides/clickhouse/data-formats/json/intro" + }, + { + "source": "/core/guides/developer/working-with-json/json-other-approaches", + "destination": "/core/guides/clickhouse/data-formats/json/intro" + }, + { + "source": "/core/guides/developer/working-with-json/json-semi-structured", + "destination": "/core/guides/clickhouse/data-formats/json/intro" + }, + { + "source": "/core/guides/developer/working-with-json/json-structured", + "destination": "/core/guides/clickhouse/data-formats/json/intro" + }, + { + "source": "/core/get-started/sql-console/opening", + "destination": "/products/cloud/features/sql-console-features/sql-console" + }, + { + "source": "/core/get-started/sql-console/exploring-tables", + "destination": "/products/cloud/features/sql-console-features/sql-console" + }, + { + "source": "/core/get-started/sql-console/filtering", + "destination": "/products/cloud/features/sql-console-features/sql-console" + }, + { + "source": "/core/get-started/sql-console/creating", + "destination": "/products/cloud/features/sql-console-features/sql-console" + }, + { + "source": "/core/get-started/sql-console/advanced", + "destination": "/products/cloud/features/sql-console-features/sql-console" + }, + { + "source": "/core/get-started/sql-console/visualizing", + "destination": "/products/cloud/features/sql-console-features/sql-console" + }, + { + "source": "/connect-a-ui", + "destination": "/integrations/connectors/data-visualization" + }, + { + "source": "/development/browse_code", + "destination": "/resources/develop-contribute/introduction/developer-instruction" + }, + { + "source": "/development/browse-code", + "destination": "/resources/develop-contribute/introduction/developer-instruction" + }, + { + "source": "/development/build_cross_arm", + "destination": "/resources/develop-contribute/build/build-cross-arm" + }, + { + "source": "/development/build_cross_osx", + "destination": "/resources/develop-contribute/build/build-cross-osx" + }, + { + "source": "/development/build_osx", + "destination": "/resources/develop-contribute/build/build-osx" + }, + { + "source": "/development/developer_instruction", + "destination": "/resources/develop-contribute/introduction/developer-instruction" + }, + { + "source": "/database_engines/", + "destination": "/core/reference/engines/database-engines" + }, + { + "source": "/engines/database_engines/", + "destination": "/core/reference/engines/database-engines" + }, + { + "source": "/database_engines/mysql", + "destination": "/core/reference/engines/database-engines/mysql" + }, + { + "source": "/engines/database_engines/mysql", + "destination": "/core/reference/engines/database-engines/mysql" + }, + { + "source": "/engines/table_engines", + "destination": "/core/reference/engines/table-engines" + }, + { + "source": "/operations/table_engines", + "destination": "/core/reference/engines/table-engines" + }, + { + "source": "/engines/table_engines/integrations", + "destination": "/core/reference/engines/table-engines/integrations" + }, + { + "source": "/engines/table_engines/integrations/hdfs", + "destination": "/core/reference/engines/table-engines/integrations/hdfs" + }, + { + "source": "/operations/table_engines/hdfs", + "destination": "/core/reference/engines/table-engines/integrations/hdfs" + }, + { + "source": "/engines/table_engines/integrations/jdbc", + "destination": "/core/reference/engines/table-engines/integrations/jdbc" + }, + { + "source": "/operations/table_engines/jdbc", + "destination": "/core/reference/engines/table-engines/integrations/jdbc" + }, + { + "source": "/engines/table_engines/integrations/kafka", + "destination": "/core/reference/engines/table-engines/integrations/kafka" + }, + { + "source": "/table_engines/replication", + "destination": "/core/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas" + }, + { + "source": "/integrations/kafka/kafka-connect-http", + "destination": "/integrations/connectors/data-ingestion/kafka/confluent/kafka-connect-http" + }, + { + "source": "/integrations/kafka/kafka-connect-options", + "destination": "/integrations/connectors/data-ingestion/kafka" + }, + { + "source": "/operations/table_engines/kafka", + "destination": "/core/reference/engines/table-engines/integrations/kafka" + }, + { + "source": "/integrations/kafka/kafka-intro", + "destination": "/integrations/connectors/data-ingestion/kafka" + }, + { + "source": "/integrations/kafka/kafka-connect-intro", + "destination": "/integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink" + }, + { + "source": "/engines/table_engines/integrations/mysql", + "destination": "/core/reference/engines/table-engines/integrations/mysql" + }, + { + "source": "/operations/table_engines/mysql", + "destination": "/core/reference/engines/table-engines/integrations/mysql" + }, + { + "source": "/engines/table_engines/integrations/odbc", + "destination": "/core/reference/engines/table-engines/integrations/odbc" + }, + { + "source": "/operations/table_engines/odbc", + "destination": "/core/reference/engines/table-engines/integrations/odbc" + }, + { + "source": "/engines/table-engines/log-family/log-family", + "destination": "/core/reference/engines/table-engines/log-family" + }, + { + "source": "/engines/table_engines/log_family", + "destination": "/core/reference/engines/table-engines/log-family" + }, + { + "source": "/engines/table_engines/log_family/log", + "destination": "/core/reference/engines/table-engines/log-family/log" + }, + { + "source": "/operations/table_engines/log", + "destination": "/core/reference/engines/table-engines/log-family/log" + }, + { + "source": "/engines/table_engines/log_family/stripelog", + "destination": "/core/reference/engines/table-engines/log-family/stripelog" + }, + { + "source": "/operations/table_engines/stripelog", + "destination": "/core/reference/engines/table-engines/log-family/stripelog" + }, + { + "source": "/engines/table_engines/log_family/tinylog", + "destination": "/core/reference/engines/table-engines/log-family/tinylog" + }, + { + "source": "/operations/table_engines/tinylog", + "destination": "/core/reference/engines/table-engines/log-family/tinylog" + }, + { + "source": "/engines/table_engines/mergetree_family", + "destination": "/core/reference/engines/table-engines/mergetree-family" + }, + { + "source": "/engines/table_engines/mergetree_family/aggregatingmergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree" + }, + { + "source": "/operations/table_engines/aggregatingmergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree" + }, + { + "source": "/engines/table_engines/mergetree_family/collapsingmergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/collapsingmergetree" + }, + { + "source": "/operations/table_engines/collapsingmergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/collapsingmergetree" + }, + { + "source": "/engines/table_engines/mergetree_family/custom_partitioning_key", + "destination": "/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key" + }, + { + "source": "/operations/table_engines/custom_partitioning_key", + "destination": "/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key" + }, + { + "source": "/engines/table_engines/mergetree_family/graphitemergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/graphitemergetree" + }, + { + "source": "/operations/table_engines/graphitemergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/graphitemergetree" + }, + { + "source": "/engines/table_engines/mergetree_family/replacingmergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/replacingmergetree" + }, + { + "source": "/operations/table_engines/replacingmergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/replacingmergetree" + }, + { + "source": "/engines/table_engines/mergetree_family/replication", + "destination": "/core/reference/engines/table-engines/mergetree-family/replication" + }, + { + "source": "/operations/table_engines/replication", + "destination": "/core/reference/engines/table-engines/mergetree-family/replication" + }, + { + "source": "/engines/table_engines/mergetree_family/summingmergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/summingmergetree" + }, + { + "source": "/operations/table_engines/summingmergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/summingmergetree" + }, + { + "source": "/engines/table_engines/mergetree_family/versionedcollapsingmergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree" + }, + { + "source": "/operations/table_engines/versionedcollapsingmergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree" + }, + { + "source": "/engines/table_engines/special", + "destination": "/core/reference/engines/table-engines/special" + }, + { + "source": "/engines/table_engines/special/buffer", + "destination": "/core/reference/engines/table-engines/special/buffer" + }, + { + "source": "/operations/table_engines/buffer", + "destination": "/core/reference/engines/table-engines/special/buffer" + }, + { + "source": "/engines/table_engines/special/dictionary", + "destination": "/core/reference/engines/table-engines/special/dictionary" + }, + { + "source": "/operations/table_engines/dictionary", + "destination": "/core/reference/engines/table-engines/special/dictionary" + }, + { + "source": "/engines/table_engines/special/distributed", + "destination": "/core/reference/engines/table-engines/special/distributed" + }, + { + "source": "/operations/table_engines/distributed", + "destination": "/core/reference/engines/table-engines/special/distributed" + }, + { + "source": "/engines/table_engines/special/external_data", + "destination": "/core/reference/engines/table-engines/special/external-data" + }, + { + "source": "/operations/table_engines/external_data", + "destination": "/core/reference/engines/table-engines/special/external-data" + }, + { + "source": "/engines/table_engines/special/file", + "destination": "/core/reference/engines/table-engines/special/file" + }, + { + "source": "/operations/table_engines/file", + "destination": "/core/reference/engines/table-engines/special/file" + }, + { + "source": "/engines/table_engines/special/generate", + "destination": "/core/reference/engines/table-engines/special/generate" + }, + { + "source": "/operations/table_engines/generate", + "destination": "/core/reference/engines/table-engines/special/generate" + }, + { + "source": "/engines/table_engines/special/join", + "destination": "/core/reference/engines/table-engines/special/join" + }, + { + "source": "/operations/table_engines/join", + "destination": "/core/reference/engines/table-engines/special/join" + }, + { + "source": "/engines/table_engines/special/memory", + "destination": "/core/reference/engines/table-engines/special/memory" + }, + { + "source": "/operations/table_engines/memory", + "destination": "/core/reference/engines/table-engines/special/memory" + }, + { + "source": "/engines/table_engines/special/merge", + "destination": "/core/reference/engines/table-engines/special/merge" + }, + { + "source": "/operations/table_engines/merge", + "destination": "/core/reference/engines/table-engines/special/merge" + }, + { + "source": "/engines/table_engines/special/null", + "destination": "/core/reference/engines/table-engines/special/null" + }, + { + "source": "/operations/table_engines/null", + "destination": "/core/reference/engines/table-engines/special/null" + }, + { + "source": "/engines/table_engines/special/set", + "destination": "/core/reference/engines/table-engines/special/set" + }, + { + "source": "/operations/table_engines/set", + "destination": "/core/reference/engines/table-engines/special/set" + }, + { + "source": "/engines/table_engines/special/url", + "destination": "/core/reference/engines/table-engines/special/url" + }, + { + "source": "/operations/table_engines/url", + "destination": "/core/reference/engines/table-engines/special/url" + }, + { + "source": "/engines/table_engines/special/view", + "destination": "/core/reference/engines/table-engines/special/view" + }, + { + "source": "/operations/table_engines/view", + "destination": "/core/reference/engines/table-engines/special/view" + }, + { + "source": "/core/guides/ingest/tab_separated_values", + "destination": "/core/get-started/sample-datasets/nypd-complaint-data" + }, + { + "source": "/getting_started/example_datasets", + "destination": "/core/get-started/sample-datasets" + }, + { + "source": "/getting_started/example_datasets/amplab_benchmark", + "destination": "/core/get-started/sample-datasets/amplab-benchmark" + }, + { + "source": "/getting_started/example_datasets/criteo", + "destination": "/core/get-started/sample-datasets/criteo" + }, + { + "source": "/getting_started/example_datasets/metrica", + "destination": "/core/get-started/sample-datasets/anon-web-analytics-metrica" + }, + { + "source": "/getting_started/example_datasets/nyc_taxi", + "destination": "/core/get-started/sample-datasets/nyc-taxi" + }, + { + "source": "/getting_started/example_datasets/ontime", + "destination": "/core/get-started/sample-datasets/ontime" + }, + { + "source": "/getting_started/example_datasets/star_schema", + "destination": "/core/get-started/sample-datasets/star-schema" + }, + { + "source": "/getting_started/example_datasets/wikistat", + "destination": "/core/get-started/sample-datasets/wikistat" + }, + { + "source": "/getting_started/install", + "destination": "/core/get-started/setup/install" + }, + { + "source": "/operations/requirements", + "destination": "/core/get-started/setup/install" + }, + { + "source": "/getting_started/playground", + "destination": "/core/get-started/sample-datasets/playground" + }, + { + "source": "/getting_started/tutorial", + "destination": "/core/get-started/quickstarts/tutorial" + }, + { + "source": "/guide", + "destination": "/products/cloud/guides/cloud-compatibility" + }, + { + "source": "/core/guides/apply_catboost_model", + "destination": "/core/reference/functions/regular-functions/other-functions" + }, + { + "source": "/core/guides/developer/apply-catboost-model", + "destination": "/core/reference/functions/regular-functions/other-functions" + }, + { + "source": "/commercial/cloud", + "destination": "/products/cloud/getting-started/intro" + }, + { + "source": "/formats", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/capnproto", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/csv", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/csvwithnames", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/json", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/jsoncompact", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/jsoneachrow", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/native", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/null", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/pretty", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/prettycompact", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/prettycompactmonoblock", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/prettynoescapes", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/prettyspace", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/rowbinary", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/tabseparated", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/tabseparatedraw", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/tabseparatedwithnames", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/tabseparatedwithnamesandtypes", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/tskv", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/values", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/vertical", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/verticalraw", + "destination": "/core/reference/formats" + }, + { + "source": "/formats/xml", + "destination": "/core/reference/formats" + }, + { + "source": "/interfaces/http_interface", + "destination": "/core/concepts/features/interfaces/http" + }, + { + "source": "/interfaces/third_party", + "destination": "/core/concepts/features/interfaces/third-party" + }, + { + "source": "/interfaces/third-party/client_libraries", + "destination": "/integrations/language-clients/third-party/client-libraries" + }, + { + "source": "/interfaces/third-party_client_libraries", + "destination": "/integrations/language-clients/third-party/client-libraries" + }, + { + "source": "/interfaces/third-party_gui", + "destination": "/integrations/connectors/tools/gui" + }, + { + "source": "/introduction/distinctive_features", + "destination": "/core/get-started/about/distinctive-features" + }, + { + "source": "/introduction/features_considered_disadvantages", + "destination": "/core/get-started/about/distinctive-features" + }, + { + "source": "/introduction/ya_metrika_task", + "destination": "/resources/about/history" + }, + { + "source": "/operations/access_rights", + "destination": "/core/concepts/features/security/access-rights" + }, + { + "source": "/core/guides/sre/user-management/access-rights", + "destination": "/core/concepts/features/security/access-rights" + }, + { + "source": "/operations/configuration_files", + "destination": "/core/concepts/features/configuration/server-config/configuration-files" + }, + { + "source": "/operations/optimizing_performance", + "destination": "/core/concepts/features/performance/troubleshoot/sampling-query-profiler" + }, + { + "source": "/operations/optimizing_performance/sampling_query_profiler", + "destination": "/core/concepts/features/performance/troubleshoot/sampling-query-profiler" + }, + { + "source": "/operations/performance/sampling_query_profiler", + "destination": "/core/concepts/features/performance/troubleshoot/sampling-query-profiler" + }, + { + "source": "/operations/performance_test", + "destination": "/core/concepts/features/performance/troubleshoot/performance-test" + }, + { + "source": "/operations/server_configuration_parameters", + "destination": "/core/reference/settings/server-settings/settings" + }, + { + "source": "/operations/server_settings", + "destination": "/core/reference/settings/server-settings/settings" + }, + { + "source": "/operations/server_configuration_parameters/settings", + "destination": "/core/reference/settings/server-settings/settings" + }, + { + "source": "/operations/server_settings/settings", + "destination": "/core/reference/settings/server-settings/settings" + }, + { + "source": "/operations/settings/constraints_on_settings", + "destination": "/core/concepts/features/configuration/settings/constraints-on-settings" + }, + { + "source": "/operations/settings/permissions_for_queries", + "destination": "/core/concepts/features/configuration/settings/permissions-for-queries" + }, + { + "source": "/operations/settings/query_complexity", + "destination": "/core/concepts/features/configuration/settings/query-complexity" + }, + { + "source": "/operations/settings/settings_profiles", + "destination": "/core/concepts/features/configuration/settings/settings-profiles" + }, + { + "source": "/operations/settings/settings_users", + "destination": "/core/concepts/features/configuration/settings/settings-users" + }, + { + "source": "/operations/system_tables", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.asynchronous_metrics", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.clusters", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.columns", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.databases", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.dictionaries", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.events", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.functions", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.merges", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.metrics", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.numbers", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.numbers_mt", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.one", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.parts", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.processes", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.replicas", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.settings", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.tables", + "destination": "/core/reference/system-tables" + }, + { + "source": "/system_tables/system.zookeeper", + "destination": "/core/reference/system-tables" + }, + { + "source": "/operations/utils", + "destination": "/core/concepts/features/tools-and-utilities" + }, + { + "source": "/operations/utils/clickhouse-benchmark", + "destination": "/core/concepts/features/tools-and-utilities/clickhouse-benchmark" + }, + { + "source": "/operations/utils/clickhouse-local", + "destination": "/core/concepts/features/tools-and-utilities/clickhouse-local" + }, + { + "source": "/utils", + "destination": "/core/concepts/features/tools-and-utilities" + }, + { + "source": "/utils/clickhouse-local", + "destination": "/core/concepts/features/tools-and-utilities/clickhouse-local" + }, + { + "source": "/query_language/agg_functions", + "destination": "/core/reference/functions/aggregate-functions" + }, + { + "source": "/sql_reference/aggregate_functions", + "destination": "/core/reference/functions/aggregate-functions" + }, + { + "source": "/query_language/agg_functions/combinators", + "destination": "/core/reference/functions/aggregate-functions/combinators" + }, + { + "source": "/sql_reference/aggregate_functions/combinators", + "destination": "/core/reference/functions/aggregate-functions/combinators" + }, + { + "source": "/query_language/agg_functions/parametric_functions", + "destination": "/core/reference/functions/aggregate-functions/parametric-functions" + }, + { + "source": "/sql_reference/aggregate_functions/parametric_functions", + "destination": "/core/reference/functions/aggregate-functions/parametric-functions" + }, + { + "source": "/query_language/agg_functions/reference", + "destination": "/core/reference/functions/aggregate-functions/reference" + }, + { + "source": "/sql_reference/aggregate_functions/reference", + "destination": "/core/reference/functions/aggregate-functions/reference" + }, + { + "source": "/data_types", + "destination": "/core/reference/data-types" + }, + { + "source": "/sql_reference/data_types", + "destination": "/core/reference/data-types" + }, + { + "source": "/data_types/nested_data_structures/aggregatefunction", + "destination": "/core/reference/data-types/aggregatefunction" + }, + { + "source": "/sql_reference/data_types/aggregatefunction", + "destination": "/core/reference/data-types/aggregatefunction" + }, + { + "source": "/data_types/array", + "destination": "/core/reference/data-types/array" + }, + { + "source": "/sql_reference/data_types/array", + "destination": "/core/reference/data-types/array" + }, + { + "source": "/data_types/boolean", + "destination": "/core/reference/data-types/boolean" + }, + { + "source": "/sql_reference/data_types/boolean", + "destination": "/core/reference/data-types/boolean" + }, + { + "source": "/data_types/date", + "destination": "/core/reference/data-types/date" + }, + { + "source": "/sql_reference/data_types/date", + "destination": "/core/reference/data-types/date" + }, + { + "source": "/data_types/datetime", + "destination": "/core/reference/data-types/datetime" + }, + { + "source": "/sql_reference/data_types/datetime", + "destination": "/core/reference/data-types/datetime" + }, + { + "source": "/data_types/datetime64", + "destination": "/core/reference/data-types/datetime64" + }, + { + "source": "/sql_reference/data_types/datetime64", + "destination": "/core/reference/data-types/datetime64" + }, + { + "source": "/data_types/decimal", + "destination": "/core/reference/data-types/decimal" + }, + { + "source": "/sql_reference/data_types/decimal", + "destination": "/core/reference/data-types/decimal" + }, + { + "source": "/sql-reference/data-types/domains/overview", + "destination": "/core/reference/data-types/domains" + }, + { + "source": "/sql_reference/data_types/domains", + "destination": "/core/reference/data-types/domains" + }, + { + "source": "/sql-reference/data_types/domains/ipv4", + "destination": "/core/reference/data-types/ipv4" + }, + { + "source": "/data_types/domains/ipv4", + "destination": "/core/reference/data-types/ipv4" + }, + { + "source": "/sql_reference/data_types/domains/ipv4", + "destination": "/core/reference/data-types/ipv4" + }, + { + "source": "/sql-reference/data-types/domains/ipv6", + "destination": "/core/reference/data-types/ipv6" + }, + { + "source": "/data_types/domains/ipv6", + "destination": "/core/reference/data-types/ipv6" + }, + { + "source": "/sql_reference/data_types/domains/ipv6", + "destination": "/core/reference/data-types/ipv6" + }, + { + "source": "/data_types/domains/overview", + "destination": "/core/reference/data-types/domains" + }, + { + "source": "/sql_reference/data_types/domains/overview", + "destination": "/core/reference/data-types/domains" + }, + { + "source": "/data_types/enum", + "destination": "/core/reference/data-types/enum" + }, + { + "source": "/sql_reference/data_types/enum", + "destination": "/core/reference/data-types/enum" + }, + { + "source": "/data_types/fixedstring", + "destination": "/core/reference/data-types/fixedstring" + }, + { + "source": "/sql_reference/data_types/fixedstring", + "destination": "/core/reference/data-types/fixedstring" + }, + { + "source": "/data_types/float", + "destination": "/core/reference/data-types/float" + }, + { + "source": "/sql_reference/data_types/float", + "destination": "/core/reference/data-types/float" + }, + { + "source": "/data_types/int_uint", + "destination": "/core/reference/data-types/int-uint" + }, + { + "source": "/sql_reference/data_types/int_uint", + "destination": "/core/reference/data-types/int-uint" + }, + { + "source": "/data_types/nested_data_structures", + "destination": "/core/reference/data-types/nested-data-structures" + }, + { + "source": "/sql_reference/data_types/nested_data_structures", + "destination": "/core/reference/data-types/nested-data-structures" + }, + { + "source": "/data_types/nested_data_structures/nested", + "destination": "/core/reference/data-types/nested-data-structures" + }, + { + "source": "/sql_reference/data_types/nested_data_structures/nested", + "destination": "/core/reference/data-types/nested-data-structures" + }, + { + "source": "/data_types/nullable", + "destination": "/core/reference/data-types/nullable" + }, + { + "source": "/sql_reference/data_types/nullable", + "destination": "/core/reference/data-types/nullable" + }, + { + "source": "/sql_reference/data_types/simpleaggregatefunction", + "destination": "/core/reference/data-types/simpleaggregatefunction" + }, + { + "source": "/data_types/special_data_types", + "destination": "/core/reference/data-types/special-data-types" + }, + { + "source": "/sql_reference/data_types/special_data_types", + "destination": "/core/reference/data-types/special-data-types" + }, + { + "source": "/data_types/special_data_types/expression", + "destination": "/core/reference/data-types/special-data-types/expression" + }, + { + "source": "/sql_reference/data_types/special_data_types/expression", + "destination": "/core/reference/data-types/special-data-types/expression" + }, + { + "source": "/data_types/special_data_types/interval", + "destination": "/core/reference/data-types/special-data-types/interval" + }, + { + "source": "/sql_reference/data_types/special_data_types/interval", + "destination": "/core/reference/data-types/special-data-types/interval" + }, + { + "source": "/data_types/special_data_types/nothing", + "destination": "/core/reference/data-types/special-data-types/nothing" + }, + { + "source": "/sql_reference/data_types/special_data_types/nothing", + "destination": "/core/reference/data-types/special-data-types/nothing" + }, + { + "source": "/data_types/special_data_types/set", + "destination": "/core/reference/data-types/special-data-types/set" + }, + { + "source": "/sql_reference/data_types/special_data_types/set", + "destination": "/core/reference/data-types/special-data-types/set" + }, + { + "source": "/data_types/string", + "destination": "/core/reference/data-types/string" + }, + { + "source": "/sql_reference/data_types/string", + "destination": "/core/reference/data-types/string" + }, + { + "source": "/data_types/tuple", + "destination": "/core/reference/data-types/tuple" + }, + { + "source": "/sql_reference/data_types/tuple", + "destination": "/core/reference/data-types/tuple" + }, + { + "source": "/data_types/uuid", + "destination": "/core/reference/data-types/uuid" + }, + { + "source": "/sql_reference/data_types/uuid", + "destination": "/core/reference/data-types/uuid" + }, + { + "source": "/query_language/dicts", + "destination": "/core/reference/statements/create/dictionary" + }, + { + "source": "/sql_reference/dictionaries", + "destination": "/core/reference/statements/create/dictionary" + }, + { + "source": "/sql_reference/dictionaries/external_dictionaries", + "destination": "/core/reference/statements/create/dictionary" + }, + { + "source": "/query_language/dicts/external_dicts", + "destination": "/core/reference/statements/create/dictionary" + }, + { + "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts", + "destination": "/core/reference/statements/create/dictionary" + }, + { + "source": "/query_language/dicts/external_dicts_dict", + "destination": "/core/reference/statements/create/dictionary" + }, + { + "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict", + "destination": "/core/reference/statements/create/dictionary" + }, + { + "source": "/query_language/dicts/external_dicts_dict_hierarchical", + "destination": "/core/reference/statements/create/dictionary/layouts/hierarchical" + }, + { + "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict_hierarchical", + "destination": "/core/reference/statements/create/dictionary/layouts/hierarchical" + }, + { + "source": "/query_language/dicts/external_dicts_dict_layout", + "destination": "/core/reference/statements/create/dictionary/layouts/overview" + }, + { + "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict_layout", + "destination": "/core/reference/statements/create/dictionary/layouts/overview" + }, + { + "source": "/query_language/dicts/external_dicts_dict_lifetime", + "destination": "/core/reference/statements/create/dictionary/lifetime" + }, + { + "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict_lifetime", + "destination": "/core/reference/statements/create/dictionary/lifetime" + }, + { + "source": "/query_language/dicts/external_dicts_dict_sources", + "destination": "/core/reference/statements/create/dictionary/sources/overview" + }, + { + "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict_sources", + "destination": "/core/reference/statements/create/dictionary/sources/overview" + }, + { + "source": "/query_language/dicts/external_dicts_dict_structure", + "destination": "/core/reference/statements/create/dictionary/attributes" + }, + { + "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict_structure", + "destination": "/core/reference/statements/create/dictionary/attributes" + }, + { + "source": "/query_language/dicts/internal_dicts", + "destination": "/core/reference/statements/create/dictionary/embedded" + }, + { + "source": "/sql_reference/dictionaries/internal_dicts", + "destination": "/core/reference/statements/create/dictionary/embedded" + }, + { + "source": "/query_language/functions", + "destination": "/core/reference/functions/regular-functions" + }, + { + "source": "/sql_reference/functions", + "destination": "/core/reference/functions/regular-functions" + }, + { + "source": "/query_language/functions/arithmetic_functions", + "destination": "/core/reference/functions/regular-functions/arithmetic-functions" + }, + { + "source": "/sql_reference/functions/arithmetic_functions", + "destination": "/core/reference/functions/regular-functions/arithmetic-functions" + }, + { + "source": "/query_language/functions/array_functions", + "destination": "/core/reference/functions/regular-functions/array-functions" + }, + { + "source": "/sql_reference/functions/array_functions", + "destination": "/core/reference/functions/regular-functions/array-functions" + }, + { + "source": "/query_language/functions/array_join", + "destination": "/core/reference/functions/regular-functions/array-join" + }, + { + "source": "/sql_reference/functions/array_join", + "destination": "/core/reference/functions/regular-functions/array-join" + }, + { + "source": "/query_language/functions/bit_functions", + "destination": "/core/reference/functions/regular-functions/bit-functions" + }, + { + "source": "/sql_reference/functions/bit_functions", + "destination": "/core/reference/functions/regular-functions/bit-functions" + }, + { + "source": "/query_language/functions/bitmap_functions", + "destination": "/core/reference/functions/regular-functions/bitmap-functions" + }, + { + "source": "/sql_reference/functions/bitmap_functions", + "destination": "/core/reference/functions/regular-functions/bitmap-functions" + }, + { + "source": "/query_language/functions/comparison_functions", + "destination": "/core/reference/functions/regular-functions/comparison-functions" + }, + { + "source": "/sql_reference/functions/comparison_functions", + "destination": "/core/reference/functions/regular-functions/comparison-functions" + }, + { + "source": "/query_language/functions/conditional_functions", + "destination": "/core/reference/functions/regular-functions/conditional-functions" + }, + { + "source": "/sql_reference/functions/conditional_functions", + "destination": "/core/reference/functions/regular-functions/conditional-functions" + }, + { + "source": "/query_language/functions/date_time_functions", + "destination": "/core/reference/functions/regular-functions/date-time-functions" + }, + { + "source": "/sql_reference/functions/date_time_functions", + "destination": "/core/reference/functions/regular-functions/date-time-functions" + }, + { + "source": "/query_language/functions/encoding_functions", + "destination": "/core/reference/functions/regular-functions/encoding-functions" + }, + { + "source": "/sql_reference/functions/encoding_functions", + "destination": "/core/reference/functions/regular-functions/encoding-functions" + }, + { + "source": "/query_language/functions/ext_dict_functions", + "destination": "/core/reference/functions/regular-functions/ext-dict-functions" + }, + { + "source": "/sql_reference/functions/ext_dict_functions", + "destination": "/core/reference/functions/regular-functions/ext-dict-functions" + }, + { + "source": "/query_language/functions/functions_for_nulls", + "destination": "/core/reference/functions/regular-functions/functions-for-nulls" + }, + { + "source": "/sql_reference/functions/functions_for_nulls", + "destination": "/core/reference/functions/regular-functions/functions-for-nulls" + }, + { + "source": "/query_language/functions/geo", + "destination": "/core/reference/functions/regular-functions/geo" + }, + { + "source": "/sql_reference/functions/geo", + "destination": "/core/reference/functions/regular-functions/geo" + }, + { + "source": "/query_language/functions/hash_functions", + "destination": "/core/reference/functions/regular-functions/hash-functions" + }, + { + "source": "/sql_reference/functions/hash_functions", + "destination": "/core/reference/functions/regular-functions/hash-functions" + }, + { + "source": "/query_language/functions/in_functions", + "destination": "/core/reference/functions/regular-functions/in-functions" + }, + { + "source": "/sql_reference/functions/in_functions", + "destination": "/core/reference/functions/regular-functions/in-functions" + }, + { + "source": "/query_language/functions/introspection", + "destination": "/core/reference/functions/regular-functions/introspection" + }, + { + "source": "/sql_reference/functions/introspection", + "destination": "/core/reference/functions/regular-functions/introspection" + }, + { + "source": "/query_language/functions/ip_address_functions", + "destination": "/core/reference/functions/regular-functions/ip-address-functions" + }, + { + "source": "/sql_reference/functions/ip_address_functions", + "destination": "/core/reference/functions/regular-functions/ip-address-functions" + }, + { + "source": "/query_language/functions/json_functions", + "destination": "/core/reference/functions/regular-functions/json-functions" + }, + { + "source": "/sql_reference/functions/json_functions", + "destination": "/core/reference/functions/regular-functions/json-functions" + }, + { + "source": "/query_language/functions/logical_functions", + "destination": "/core/reference/functions/regular-functions/logical-functions" + }, + { + "source": "/sql_reference/functions/logical_functions", + "destination": "/core/reference/functions/regular-functions/logical-functions" + }, + { + "source": "/query_language/functions/machine_learning_functions", + "destination": "/core/reference/functions/regular-functions/machine-learning-functions" + }, + { + "source": "/sql_reference/functions/machine_learning_functions", + "destination": "/core/reference/functions/regular-functions/machine-learning-functions" + }, + { + "source": "/query_language/functions/math_functions", + "destination": "/core/reference/functions/regular-functions/math-functions" + }, + { + "source": "/sql_reference/functions/math_functions", + "destination": "/core/reference/functions/regular-functions/math-functions" + }, + { + "source": "/query_language/functions/other_functions", + "destination": "/core/reference/functions/regular-functions/other-functions" + }, + { + "source": "/sql_reference/functions/other_functions", + "destination": "/core/reference/functions/regular-functions/other-functions" + }, + { + "source": "/query_language/functions/random_functions", + "destination": "/core/reference/functions/regular-functions/random-functions" + }, + { + "source": "/sql_reference/functions/random_functions", + "destination": "/core/reference/functions/regular-functions/random-functions" + }, + { + "source": "/query_language/functions/rounding_functions", + "destination": "/core/reference/functions/regular-functions/rounding-functions" + }, + { + "source": "/sql_reference/functions/rounding_functions", + "destination": "/core/reference/functions/regular-functions/rounding-functions" + }, + { + "source": "/query_language/functions/splitting_merging_functions", + "destination": "/core/reference/functions/regular-functions/splitting-merging-functions" + }, + { + "source": "/sql_reference/functions/splitting_merging_functions", + "destination": "/core/reference/functions/regular-functions/splitting-merging-functions" + }, + { + "source": "/query_language/functions/string_functions", + "destination": "/core/reference/functions/regular-functions/string-functions" + }, + { + "source": "/sql_reference/functions/string_functions", + "destination": "/core/reference/functions/regular-functions/string-functions" + }, + { + "source": "/query_language/functions/string_replace_functions", + "destination": "/core/reference/functions/regular-functions/string-replace-functions" + }, + { + "source": "/sql_reference/functions/string_replace_functions", + "destination": "/core/reference/functions/regular-functions/string-replace-functions" + }, + { + "source": "/query_language/functions/string_search_functions", + "destination": "/core/reference/functions/regular-functions/string-search-functions" + }, + { + "source": "/sql_reference/functions/string_search_functions", + "destination": "/core/reference/functions/regular-functions/string-search-functions" + }, + { + "source": "/query_language/functions/type_conversion_functions", + "destination": "/core/reference/functions/regular-functions/type-conversion-functions" + }, + { + "source": "/sql_reference/functions/type_conversion_functions", + "destination": "/core/reference/functions/regular-functions/type-conversion-functions" + }, + { + "source": "/query_language/functions/url_functions", + "destination": "/core/reference/functions/regular-functions/url-functions" + }, + { + "source": "/sql_reference/functions/url_functions", + "destination": "/core/reference/functions/regular-functions/url-functions" + }, + { + "source": "/query_language/functions/uuid_functions", + "destination": "/core/reference/functions/regular-functions/uuid-functions" + }, + { + "source": "/sql_reference/functions/uuid_functions", + "destination": "/core/reference/functions/regular-functions/uuid-functions" + }, + { + "source": "/query_language/functions/ym_dict_functions", + "destination": "/core/reference/functions/regular-functions/embedded-dict-functions" + }, + { + "source": "/sql_reference/functions/ym_dict_functions", + "destination": "/core/reference/functions/regular-functions/embedded-dict-functions" + }, + { + "source": "/query_language/operators", + "destination": "/core/reference/operators" + }, + { + "source": "/sql_reference/operators", + "destination": "/core/reference/operators" + }, + { + "source": "/sql_reference/statements", + "destination": "/core/reference/statements" + }, + { + "source": "/query_language/alter", + "destination": "/core/reference/statements/alter" + }, + { + "source": "/sql_reference/statements/alter", + "destination": "/core/reference/statements/alter" + }, + { + "source": "/sql-reference/statements/alter/index", + "destination": "/core/reference/statements/alter/skipping-index" + }, + { + "source": "/query_language/create", + "destination": "/core/reference/statements/create" + }, + { + "source": "/sql_reference/statements/create", + "destination": "/core/reference/statements/create" + }, + { + "source": "/query_language/insert_into", + "destination": "/core/reference/statements/insert-into" + }, + { + "source": "/sql_reference/statements/insert_into", + "destination": "/core/reference/statements/insert-into" + }, + { + "source": "/query_language/misc", + "destination": "/core/reference/statements" + }, + { + "source": "/sql-reference/statements/misc", + "destination": "/core/reference/statements" + }, + { + "source": "/sql_reference/statements/misc", + "destination": "/core/reference/statements" + }, + { + "source": "/query_language/select", + "destination": "/core/reference/statements/select" + }, + { + "source": "/sql_reference/statements/select", + "destination": "/core/reference/statements/select" + }, + { + "source": "/query_language/show", + "destination": "/core/reference/statements/show" + }, + { + "source": "/sql_reference/statements/show", + "destination": "/core/reference/statements/show" + }, + { + "source": "/query_language/system", + "destination": "/core/reference/statements/system" + }, + { + "source": "/sql_reference/statements/system", + "destination": "/core/reference/statements/system" + }, + { + "source": "/query_language/syntax", + "destination": "/core/reference/syntax" + }, + { + "source": "/sql_reference/syntax", + "destination": "/core/reference/syntax" + }, + { + "source": "/query_language/table_functions", + "destination": "/core/reference/functions/table-functions" + }, + { + "source": "/sql_reference/table_functions", + "destination": "/core/reference/functions/table-functions" + }, + { + "source": "/query_language/table_functions/file", + "destination": "/core/reference/functions/table-functions/file" + }, + { + "source": "/sql_reference/table_functions/file", + "destination": "/core/reference/functions/table-functions/file" + }, + { + "source": "/query_language/table_functions/generate", + "destination": "/core/reference/functions/table-functions/generate" + }, + { + "source": "/sql_reference/table_functions/generate", + "destination": "/core/reference/functions/table-functions/generate" + }, + { + "source": "/query_language/table_functions/hdfs", + "destination": "/core/reference/functions/table-functions/hdfs" + }, + { + "source": "/sql_reference/table_functions/hdfs", + "destination": "/core/reference/functions/table-functions/hdfs" + }, + { + "source": "/query_language/table_functions/input", + "destination": "/core/reference/functions/table-functions/input" + }, + { + "source": "/sql_reference/table_functions/input", + "destination": "/core/reference/functions/table-functions/input" + }, + { + "source": "/query_language/table_functions/jdbc", + "destination": "/core/reference/functions/table-functions/jdbc" + }, + { + "source": "/sql_reference/table_functions/jdbc", + "destination": "/core/reference/functions/table-functions/jdbc" + }, + { + "source": "/query_language/table_functions/merge", + "destination": "/core/reference/functions/table-functions/merge" + }, + { + "source": "/sql_reference/table_functions/merge", + "destination": "/core/reference/functions/table-functions/merge" + }, + { + "source": "/query_language/table_functions/mysql", + "destination": "/core/reference/functions/table-functions/mysql" + }, + { + "source": "/sql_reference/table_functions/mysql", + "destination": "/core/reference/functions/table-functions/mysql" + }, + { + "source": "/query_language/table_functions/numbers", + "destination": "/core/reference/functions/table-functions/numbers" + }, + { + "source": "/sql_reference/table_functions/numbers", + "destination": "/core/reference/functions/table-functions/numbers" + }, + { + "source": "/query_language/table_functions/odbc", + "destination": "/core/reference/functions/table-functions/odbc" + }, + { + "source": "/sql_reference/table_functions/odbc", + "destination": "/core/reference/functions/table-functions/odbc" + }, + { + "source": "/query_language/table_functions/remote", + "destination": "/core/reference/functions/table-functions/remote" + }, + { + "source": "/sql_reference/table_functions/remote", + "destination": "/core/reference/functions/table-functions/remote" + }, + { + "source": "/query_language/table_functions/url", + "destination": "/core/reference/functions/table-functions/url" + }, + { + "source": "/sql_reference/table_functions/url", + "destination": "/core/reference/functions/table-functions/url" + }, + { + "source": "/whats_new", + "destination": "/resources/changelogs/oss/2026" + }, + { + "source": "/changelog", + "destination": "/resources/changelogs/oss/2026" + }, + { + "source": "/whats_new/changelog", + "destination": "/resources/changelogs/oss/2026" + }, + { + "source": "/changelog/2017", + "destination": "/resources/changelogs/oss/2017" + }, + { + "source": "/whats_new/changelog/2017", + "destination": "/resources/changelogs/oss/2017" + }, + { + "source": "/changelog/2018", + "destination": "/resources/changelogs/oss/2018" + }, + { + "source": "/whats_new/changelog/2018", + "destination": "/resources/changelogs/oss/2018" + }, + { + "source": "/changelog/2019", + "destination": "/resources/changelogs/oss/2019" + }, + { + "source": "/whats_new/changelog/2019", + "destination": "/resources/changelogs/oss/2019" + }, + { + "source": "/extended_roadmap", + "destination": "/resources/develop-contribute/roadmap" + }, + { + "source": "/roadmap", + "destination": "/resources/develop-contribute/roadmap" + }, + { + "source": "/whats_new/roadmap", + "destination": "/resources/develop-contribute/roadmap" + }, + { + "source": "/security_changelog", + "destination": "/resources/changelogs/security-changelog" + }, + { + "source": "/whats_new/security_changelog", + "destination": "/resources/changelogs/security-changelog" + }, + { + "source": "/introduction", + "destination": "/core/get-started/about/intro" + }, + { + "source": "/introduction/adopters", + "destination": "/resources/about/adopters" + }, + { + "source": "/introduction/distinctive-features", + "destination": "/core/get-started/about/distinctive-features" + }, + { + "source": "/introduction/history", + "destination": "/resources/about/history" + }, + { + "source": "/introduction/performance", + "destination": "/core/get-started/about/why-clickhouse-is-so-fast" + }, + { + "source": "/getting-started/tutorial", + "destination": "/core/get-started/quickstarts/tutorial" + }, + { + "source": "/getting-started/install", + "destination": "/core/get-started/setup/install" + }, + { + "source": "/faq/general/how-do-i-contribute-code-to-clickhouse", + "destination": "/resources/support-center/knowledge-base/general-faqs/how-do-i-contribute-code-to-clickhouse" + }, + { + "source": "/manage/security", + "destination": "/core/concepts/features/security/configuring-ldap" + }, + { + "source": "/single", + "destination": "/core/reference/statements/create/view" + }, + { + "source": "/architecture/single-node-deployment", + "destination": "/core/get-started/setup/install" + }, + { + "source": "/home", + "destination": "/" + }, + { + "source": "/chdb/data-formats", + "destination": "/products/chdb/reference/data-formats" + }, + { + "source": "/chdb/sql-reference", + "destination": "/products/chdb/reference/sql-reference" + }, + { + "source": "/core/get-started/query-endpoints", + "destination": "/products/cloud/guides/sql-console/query-endpoints" + }, + { + "source": "/core/get-started/query-insights", + "destination": "/products/cloud/features/sql-console-features/query-insights" + }, + { + "source": "/core/get-started/sql-console", + "destination": "/products/cloud/features/sql-console-features/sql-console" + }, + { + "source": "/manage/billing", + "destination": "/products/cloud/reference/billing/billing-overview" + }, + { + "source": "/cloud/manage/billing/overview#clickpipes-for-streaming-object-storage", + "destination": "/products/cloud/reference/billing/clickpipes/clickpipes-for-streaming-and-object-storage" + }, + { + "source": "/integrations/clickpipes/object-storage", + "destination": "/integrations/clickpipes/object-storage/amazon-s3/get-started" + }, + { + "source": "/integrations/clickpipes/object-storage/reference", + "destination": "/integrations/clickpipes/object-storage/amazon-s3/overview" + }, + { + "source": "/cloud/marketplace", + "destination": "/products/cloud/reference/billing/marketplace" + }, + { + "source": "/deletes", + "destination": "/core/concepts/features/operations/delete/overview" + }, + { + "source": "/optimize", + "destination": "/core/guides/performance-and-monitoring" + }, + { + "source": "/observability", + "destination": "/core/guides/use-cases/observability" + }, + { + "source": "/integrations/sql-clients/clickhouse-client-local", + "destination": "/core/concepts/features/interfaces/cli" + }, + { + "source": "/sql-reference/dictionaries/external-dictionaries/external-dict", + "destination": "/core/reference/statements/create/dictionary/embedded" + }, + { + "source": "/integrations/java/jdbc-driver", + "destination": "/integrations/language-clients/java/jdbc" + }, + { + "source": "/integrations/sql-clients/cli", + "destination": "/core/concepts/features/interfaces/cli" + }, + { + "source": "/operations/clickhouse-keeper", + "destination": "/core/concepts/features/tools-and-utilities/clickhouse-keeper-client" + }, + { + "source": "/core/guides/sre/clickhouse-keeper", + "destination": "/core/guides/oss/deployment-and-scaling/keeper" + }, + { + "source": "/operations/settings/merge-tree", + "destination": "/core/reference/settings/merge-tree-settings" + }, + { + "source": "/operations/settings/merge-tree-setting", + "destination": "/core/reference/settings/merge-tree-settings" + }, + { + "source": "/materialized-view", + "destination": "/core/concepts/features/materialized-views" + }, + { + "source": "/cloud/manage/service-types", + "destination": "/products/cloud/features/cloud-tiers" + }, + { + "source": "/integrations/dlt", + "destination": "/integrations/connectors/data-ingestion/etl-tools/dlt-and-clickhouse" + }, + { + "source": "/cloud/security/cloud-endpoints-api", + "destination": "/products/cloud/guides/sql-console/query-endpoints" + }, + { + "source": "/operations/server-configuration-parameters", + "destination": "/core/reference/settings/server-settings/settings" + }, + { + "source": "/intron", + "destination": "/core/get-started/about/intro" + }, + { + "source": "/query_language/functions/string_functions/", + "destination": "/core/reference/functions/regular-functions/string-functions" + }, + { + "source": "/integrations/language-clients/java/client-v2", + "destination": "/integrations/language-clients/java/client" + }, + { + "source": "/integrations/language-clients/java/jdbc-v2", + "destination": "/integrations/language-clients/java/jdbc" + }, + { + "source": "/pricing", + "destination": "/products/cloud/reference/billing/billing-overview" + }, + { + "source": "/operations/input-output-formats", + "destination": "/core/reference/formats" + }, + { + "source": "/cloud/connect", + "destination": "/products/cloud/features/sql-console-features/sql-console" + }, + { + "source": "/engines/database-engines/materialized-mysql", + "destination": "/core/reference/engines/database-engines" + }, + { + "source": "/sql-reference/aggregate-functions/reference/array_concat_agg", + "destination": "/core/reference/functions/aggregate-functions/reference/groupArrayArray" + }, + { + "source": "/integrations/java/jdbc-v2", + "destination": "/integrations/language-clients/java/jdbc" + }, + { + "source": "/integrations/java/client-v2", + "destination": "/integrations/language-clients/java/jdbc" + }, + { + "source": "/interfaces/formats/Protobuf/Protobuf", + "destination": "/core/reference/formats/Protobuf/Protobuf" + }, + { + "source": "/integrations/jdbc", + "destination": "/integrations/language-clients/java/jdbc" + }, + { + "source": "/sql-reference/table-functions/generateSeries", + "destination": "/core/reference/functions/table-functions/generate_series" + }, + { + "source": "/cloud/data-ingestion", + "destination": "/integrations/connectors/data-ingestion" + }, + { + "source": "/migrations/postgres/en/migrations/postgresql", + "destination": "/core/get-started/setup/migration-guides/postgres/overview" + }, + { + "source": "/sql-reference/data-types/bfloat16", + "destination": "/core/reference/data-types/float#bfloat16" + }, + { + "source": "/cloud/reference/compute-compute-separation", + "destination": "/products/cloud/features/infrastructure/warehouses#what-is-compute-compute-separation" + }, + { + "source": "/cloud/bestpractices/bulk-inserts", + "destination": "/core/concepts/best-practices/selecting-an-insert-strategy" + }, + { + "source": "/cloud/bestpractices/asynchronous-inserts", + "destination": "/core/concepts/best-practices/use-materialized-views" + }, + { + "source": "/cloud/bestpractices/avoid-mutations", + "destination": "/core/concepts/best-practices/avoid-mutations" + }, + { + "source": "/cloud/bestpractices/avoid-nullable-columns", + "destination": "/core/concepts/best-practices/select-data-type" + }, + { + "source": "/cloud/bestpractices/avoid-optimize-final", + "destination": "/core/concepts/best-practices/avoid-optimize-final" + }, + { + "source": "/cloud/bestpractices/low-cardinality-partitioning-key", + "destination": "/core/concepts/best-practices/partitioning-keys" + }, + { + "source": "/integrations/postgresql/postgres-vs-clickhouse", + "destination": "/core/get-started/setup/migration-guides/postgres/appendix" + }, + { + "source": "/migrations/postgresql/designing-schemas", + "destination": "/core/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3" + }, + { + "source": "/category/engines", + "destination": "/core/reference/engines/engines" + }, + { + "source": "/integrations/postgresql/data-type-mappings", + "destination": "/core/get-started/setup/migration-guides/postgres/appendix#data-type-mappings" + }, + { + "source": "/operations/system-tables/error_log", + "destination": "/core/reference/system-tables/error_log" + }, + { + "source": "/engines/table-engines/special/replicatedmergetree", + "destination": "/core/reference/engines/table-engines/mergetree-family/replication" + }, + { + "source": "/integrations/language-clients/java/jdbc-v1", + "destination": "/integrations/language-clients/java/jdbc" + }, + { + "source": "/engines/table-engines/integrations/google-cloud-storage", + "destination": "/core/reference/functions/table-functions/gcs" + }, + { + "source": "/getting-started/example-datasets/reddit-comments", + "destination": "/core/get-started/sample-datasets" + }, + { + "source": "/getting-started/example-datasets/recipes", + "destination": "/core/get-started/sample-datasets" + }, + { + "source": "/development/adding_test_queries", + "destination": "/resources/develop-contribute/tests#adding-a-new-test" + }, + { + "source": "/cloud/get-started/cloud-quick-start", + "destination": "/core/get-started/setup/cloud" + }, + { + "source": "/integrations/migration/upload-a-csv-file", + "destination": "/products/cloud/guides/migration/upload-a-csv-file" + }, + { + "source": "/faq/troubleshooting", + "destination": "/resources/support-center/knowledge-base/cloud-services/unable-to-access-cloud-service" + }, + { + "source": "/cloud/manage/jan-2025-faq/summary", + "destination": "/products/cloud/features/cloud-tiers" + }, + { + "source": "/cloud/manage/jan-2025-faq/new-tiers", + "destination": "/products/cloud/features/cloud-tiers" + }, + { + "source": "/cloud/manage/jan-2025-faq/scaling", + "destination": "/products/cloud/features/autoscaling/overview" + }, + { + "source": "/cloud/manage/jan-2025-faq/backup", + "destination": "/products/cloud/guides/backups/review-and-restore-backups" + }, + { + "source": "/cloud/manage/jan-2025-faq/pricing-dimensions", + "destination": "/products/cloud/features/cloud-tiers" + }, + { + "source": "/cloud/manage/jan-2025-faq/billing", + "destination": "/products/cloud/reference/billing" + }, + { + "source": "/cloud/manage/jan-2025-faq", + "destination": "/products/cloud/features/cloud-tiers" + }, + { + "source": "/cloud/manage/jan-2025-faq/plan-migrations", + "destination": "/products/cloud/features/cloud-tiers" + }, + { + "source": "/operations/system-tables/latency_log", + "destination": "/core/reference/system-tables/histogram_metrics" + }, + { + "source": "/operations/system-tables/latency_buckets", + "destination": "/core/reference/system-tables/histogram_metrics" + }, + { + "source": "/integrations/kafka/cloud/confluent/custom-connector-cloud", + "destination": "/integrations/connectors/data-ingestion/kafka/confluent/confluent-cloud" + }, + { + "source": "/integrations/data-ingestion/clickpipes/mysql/parallel_initial_load", + "destination": "/integrations/clickpipes/mysql/parallel-initial-load" + }, + { + "source": "/integrations/data-ingestion/clickpipes/postgres/parallel_initial_load", + "destination": "/integrations/clickpipes/postgres/parallel-initial-load" + }, + { + "source": "/integrations/redshift", + "destination": "/core/get-started/setup/migration-guides/redshift/migration-guide" + }, + { + "source": "/integrations/migration", + "destination": "/core/get-started/setup/migration-guides/overview" + }, + { + "source": "/cloud/security/security-and-compliance", + "destination": "/products/cloud/reference/security/compliance-overview" + }, + { + "source": "/cloud/manage", + "destination": "/products/cloud/features/admin-features/api" + }, + { + "source": "/migrations/migrations", + "destination": "/core/get-started/setup/migration-guides/overview" + }, + { + "source": "/cloud/security/personal-data-access", + "destination": "/products/cloud/reference/personal-data-access" + }, + { + "source": "/cloud/security/cloud-access-management/overview", + "destination": "/products/cloud/guides/security/cloud-access-management/manage-database-users" + }, + { + "source": "/cloud/security/cloud-access-management", + "destination": "/products/cloud/guides/security/cloud-access-management" + }, + { + "source": "/cloud/guides/sql-console/config-sql-console-role-assignments", + "destination": "/products/cloud/guides/security/cloud-access-management/manage-sql-console-role-assignments" + }, + { + "source": "/cloud/security/secure-s3", + "destination": "/products/cloud/guides/data-sources/accessing-s3-data-securely" + }, + { + "source": "/manage/security/cloud-endpoints-api", + "destination": "/products/cloud/guides/data-sources/cloud-endpoints-api" + }, + { + "source": "/cloud/security/shared-responsibility-model", + "destination": "/products/cloud/reference/security/console-roles" + }, + { + "source": "/cloud/security/cloud-authentication", + "destination": "/products/cloud/features/security#cloud-console-auth" + }, + { + "source": "/cloud/security/private-link-overview", + "destination": "/products/cloud/guides/security/connectivity/private-networking" + }, + { + "source": "/cloud/security/connectivity", + "destination": "/products/cloud/guides/security/connectivity/private-networking" + }, + { + "source": "/cloud/guides/sql-console/configure-org-service-role-assignments", + "destination": "/products/cloud/guides/security/cloud-access-management" + }, + { + "source": "/operations/system-tables/crash-log", + "destination": "/core/reference/system-tables/crash_log" + }, + { + "source": "/operations/system-tables/current-roles", + "destination": "/core/reference/system-tables/current_roles" + }, + { + "source": "/operations/system-tables/enabled-roles", + "destination": "/core/reference/system-tables/enabled_roles" + }, + { + "source": "/operations/system-tables/role-grants", + "destination": "/core/reference/system-tables/role_grants" + }, + { + "source": "/cloud/reference/byoc", + "destination": "/products/cloud/guides/infrastructure/deployment-options/byoc/overview" + }, + { + "source": "/about-clickhouse", + "destination": "/core/get-started/about/intro" + }, + { + "source": "/cloud/security/inviting-new-users", + "destination": "/products/cloud/guides/security/cloud-access-management/manage-cloud-users#invite-users" + }, + { + "source": "/sql-reference/functions/time-series-analysis-functions", + "destination": "/core/reference/functions/regular-functions/time-series-functions" + }, + { + "source": "/use-cases/observability/clickstack/ingesting-data/kubernetes", + "destination": "/products/clickstack/integration-examples/kubernetes" + }, + { + "source": "/operations/backup", + "destination": "/core/concepts/features/backup-restore/overview" + }, + { + "source": "/sql-reference/data-types/object-data-type", + "destination": "/core/reference/data-types/newjson" + }, + { + "source": "/about-us/faq", + "destination": "/resources/support-center/knowledge-base/general-faqs/faq-index" + }, + { + "source": "/engines/table-engines/mergetree-family/invertedindexes", + "destination": "/core/reference/engines/table-engines/mergetree-family/textindexes" + }, + { + "source": "/core/guides/sre/configuring-ssl", + "destination": "/core/concepts/features/security/tls/configuring-tls" + }, + { + "source": "/use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud", + "destination": "/products/clickstack/deployment/managed" + }, + { + "source": "/use-cases/observability/clickstack/demo-days/2026/04/03-04-2026", + "destination": "/products/clickstack/demo-days/2026/2026-04-03" + }, + { + "source": "/use-cases/observability/clickstack/demo-days/2026/04/10-04-2026", + "destination": "/products/clickstack/demo-days/2026/2026-04-10" + }, + { + "source": "/cloud/security/compliance/hipaa-onboarding#deploy-hippa-services", + "destination": "/products/cloud/guides/security/compliance/hipaa-onboarding#deploy-hipaa-services" + }, + { + "source": "/operations/compression_codecs", + "destination": "/core/reference/statements/create/table#column_compression_codec" + }, + { + "source": "/operations/server-configuration-parameters/users", + "destination": "/core/concepts/features/configuration/settings/settings-users" + }, + { + "source": "/operations/performance", + "destination": "/core/concepts/features/performance/troubleshoot/sampling-query-profiler" + }, + { + "source": "/operations/access-rights/users", + "destination": "/core/concepts/features/security/access-rights" + }, + { + "source": "/operations/resource-management/resource_pools", + "destination": "/core/concepts/features/configuration/server-config/workload-scheduling" + }, + { + "source": "/whats-new", + "destination": "/resources/changelogs/oss/2026" + }, + { + "source": "/whats-new/TODO", + "destination": "/resources/changelogs/oss/2026" + }, + { + "source": "/whats-new/cloud", + "destination": "/resources/changelogs/cloud" + }, + { + "source": "/cloud/reference/byoc/faq/:path*", + "destination": "/products/bring-your-own-cloud/reference/faq" + }, + { + "source": "/about-quotas-and-query-complexity", + "destination": "/resources/support-center/knowledge-base/configuration-settings/about-quotas-and-query-complexity" + }, + { + "source": "/integrations/dbt/materialized-views", + "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt/materialization-materialized-view" + }, + { + "source": "/managing-data/update_mutations", + "destination": "/core/reference/statements/alter/update" + }, + { + "source": "/sql-reference/formats", + "destination": "/core/reference/formats" + } +] diff --git a/scripts/update_quickstarts.py b/_site/scripts/update_quickstarts.py similarity index 100% rename from scripts/update_quickstarts.py rename to _site/scripts/update_quickstarts.py diff --git a/scripts/update_release_notes.py b/_site/scripts/update_release_notes.py similarity index 100% rename from scripts/update_release_notes.py rename to _site/scripts/update_release_notes.py diff --git a/styles.css b/_site/styles.css similarity index 99% rename from styles.css rename to _site/styles.css index 86ff6ebc..b8b61c86 100644 --- a/styles.css +++ b/_site/styles.css @@ -293,8 +293,9 @@ html:not(.dark) #pagination svg.lucide-chevron-right { background-color: #151515 !important; } -/* Hide the chat assistant textarea */ -.chat-assistant-input { +/* Hide the chat assistant textarea and its floating-input wrapper */ +.chat-assistant-input, +.chat-assistant-floating-input { display: none !important; } diff --git a/styles/.markdownlint-cli2.yaml b/_site/styles/.markdownlint-cli2.yaml similarity index 100% rename from styles/.markdownlint-cli2.yaml rename to _site/styles/.markdownlint-cli2.yaml diff --git a/styles/.vale.ini b/_site/styles/.vale.ini similarity index 100% rename from styles/.vale.ini rename to _site/styles/.vale.ini diff --git a/styles/markdownlint/custom_rules/headings_have_custom_anchors.js b/_site/styles/markdownlint/custom_rules/headings_have_custom_anchors.js similarity index 100% rename from styles/markdownlint/custom_rules/headings_have_custom_anchors.js rename to _site/styles/markdownlint/custom_rules/headings_have_custom_anchors.js diff --git a/styles/markdownlint/custom_rules/utility_functions.js b/_site/styles/markdownlint/custom_rules/utility_functions.js similarity index 100% rename from styles/markdownlint/custom_rules/utility_functions.js rename to _site/styles/markdownlint/custom_rules/utility_functions.js diff --git a/styles/vale/ClickHouse/Ability.yml b/_site/styles/vale/ClickHouse/Ability.yml similarity index 100% rename from styles/vale/ClickHouse/Ability.yml rename to _site/styles/vale/ClickHouse/Ability.yml diff --git a/styles/vale/ClickHouse/BackTicksFormats.yml b/_site/styles/vale/ClickHouse/BackTicksFormats.yml similarity index 100% rename from styles/vale/ClickHouse/BackTicksFormats.yml rename to _site/styles/vale/ClickHouse/BackTicksFormats.yml diff --git a/styles/vale/ClickHouse/BackTicksFunctions.yml b/_site/styles/vale/ClickHouse/BackTicksFunctions.yml similarity index 100% rename from styles/vale/ClickHouse/BackTicksFunctions.yml rename to _site/styles/vale/ClickHouse/BackTicksFunctions.yml diff --git a/styles/vale/ClickHouse/BackTicksServerSettings.yml b/_site/styles/vale/ClickHouse/BackTicksServerSettings.yml similarity index 100% rename from styles/vale/ClickHouse/BackTicksServerSettings.yml rename to _site/styles/vale/ClickHouse/BackTicksServerSettings.yml diff --git a/styles/vale/ClickHouse/BackTicksSessionSettings.yml b/_site/styles/vale/ClickHouse/BackTicksSessionSettings.yml similarity index 100% rename from styles/vale/ClickHouse/BackTicksSessionSettings.yml rename to _site/styles/vale/ClickHouse/BackTicksSessionSettings.yml diff --git a/styles/vale/ClickHouse/BackTicksTableEngines.yml b/_site/styles/vale/ClickHouse/BackTicksTableEngines.yml similarity index 100% rename from styles/vale/ClickHouse/BackTicksTableEngines.yml rename to _site/styles/vale/ClickHouse/BackTicksTableEngines.yml diff --git a/styles/vale/ClickHouse/BackTicksTableFunctions.yml b/_site/styles/vale/ClickHouse/BackTicksTableFunctions.yml similarity index 100% rename from styles/vale/ClickHouse/BackTicksTableFunctions.yml rename to _site/styles/vale/ClickHouse/BackTicksTableFunctions.yml diff --git a/styles/vale/ClickHouse/BadPlurals.yml b/_site/styles/vale/ClickHouse/BadPlurals.yml similarity index 100% rename from styles/vale/ClickHouse/BadPlurals.yml rename to _site/styles/vale/ClickHouse/BadPlurals.yml diff --git a/styles/vale/ClickHouse/British.yml b/_site/styles/vale/ClickHouse/British.yml similarity index 100% rename from styles/vale/ClickHouse/British.yml rename to _site/styles/vale/ClickHouse/British.yml diff --git a/styles/vale/ClickHouse/CodeblockFences.yml b/_site/styles/vale/ClickHouse/CodeblockFences.yml similarity index 100% rename from styles/vale/ClickHouse/CodeblockFences.yml rename to _site/styles/vale/ClickHouse/CodeblockFences.yml diff --git a/styles/vale/ClickHouse/Colons.yml b/_site/styles/vale/ClickHouse/Colons.yml similarity index 100% rename from styles/vale/ClickHouse/Colons.yml rename to _site/styles/vale/ClickHouse/Colons.yml diff --git a/styles/vale/ClickHouse/Contractions.yml b/_site/styles/vale/ClickHouse/Contractions.yml similarity index 100% rename from styles/vale/ClickHouse/Contractions.yml rename to _site/styles/vale/ClickHouse/Contractions.yml diff --git a/styles/vale/ClickHouse/CurrentStatus.yml b/_site/styles/vale/ClickHouse/CurrentStatus.yml similarity index 100% rename from styles/vale/ClickHouse/CurrentStatus.yml rename to _site/styles/vale/ClickHouse/CurrentStatus.yml diff --git a/styles/vale/ClickHouse/EOLWhitespace.yml b/_site/styles/vale/ClickHouse/EOLWhitespace.yml similarity index 100% rename from styles/vale/ClickHouse/EOLWhitespace.yml rename to _site/styles/vale/ClickHouse/EOLWhitespace.yml diff --git a/styles/vale/ClickHouse/Exclamation.yml b/_site/styles/vale/ClickHouse/Exclamation.yml similarity index 100% rename from styles/vale/ClickHouse/Exclamation.yml rename to _site/styles/vale/ClickHouse/Exclamation.yml diff --git a/styles/vale/ClickHouse/FutureTense.yml b/_site/styles/vale/ClickHouse/FutureTense.yml similarity index 100% rename from styles/vale/ClickHouse/FutureTense.yml rename to _site/styles/vale/ClickHouse/FutureTense.yml diff --git a/styles/vale/ClickHouse/HeadingPunctuation.yml b/_site/styles/vale/ClickHouse/HeadingPunctuation.yml similarity index 100% rename from styles/vale/ClickHouse/HeadingPunctuation.yml rename to _site/styles/vale/ClickHouse/HeadingPunctuation.yml diff --git a/styles/vale/ClickHouse/Headings.yml b/_site/styles/vale/ClickHouse/Headings.yml similarity index 100% rename from styles/vale/ClickHouse/Headings.yml rename to _site/styles/vale/ClickHouse/Headings.yml diff --git a/styles/vale/ClickHouse/Ordinal.yml b/_site/styles/vale/ClickHouse/Ordinal.yml similarity index 100% rename from styles/vale/ClickHouse/Ordinal.yml rename to _site/styles/vale/ClickHouse/Ordinal.yml diff --git a/styles/vale/ClickHouse/OxfordComma.yml b/_site/styles/vale/ClickHouse/OxfordComma.yml similarity index 100% rename from styles/vale/ClickHouse/OxfordComma.yml rename to _site/styles/vale/ClickHouse/OxfordComma.yml diff --git a/styles/vale/ClickHouse/Quotes.yml b/_site/styles/vale/ClickHouse/Quotes.yml similarity index 100% rename from styles/vale/ClickHouse/Quotes.yml rename to _site/styles/vale/ClickHouse/Quotes.yml diff --git a/styles/vale/ClickHouse/Repetition.yml b/_site/styles/vale/ClickHouse/Repetition.yml similarity index 100% rename from styles/vale/ClickHouse/Repetition.yml rename to _site/styles/vale/ClickHouse/Repetition.yml diff --git a/styles/vale/ClickHouse/SentenceLength.yml b/_site/styles/vale/ClickHouse/SentenceLength.yml similarity index 100% rename from styles/vale/ClickHouse/SentenceLength.yml rename to _site/styles/vale/ClickHouse/SentenceLength.yml diff --git a/styles/vale/ClickHouse/Units.yml b/_site/styles/vale/ClickHouse/Units.yml similarity index 100% rename from styles/vale/ClickHouse/Units.yml rename to _site/styles/vale/ClickHouse/Units.yml diff --git a/styles/vale/ClickHouse/Uppercase.yml b/_site/styles/vale/ClickHouse/Uppercase.yml similarity index 100% rename from styles/vale/ClickHouse/Uppercase.yml rename to _site/styles/vale/ClickHouse/Uppercase.yml diff --git a/styles/vale/ClickHouse/Wordy.yml b/_site/styles/vale/ClickHouse/Wordy.yml similarity index 100% rename from styles/vale/ClickHouse/Wordy.yml rename to _site/styles/vale/ClickHouse/Wordy.yml diff --git a/concepts/advanced-guides/index.mdx b/concepts/advanced-guides/index.mdx deleted file mode 100644 index eb55fca6..00000000 --- a/concepts/advanced-guides/index.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -slug: /guides/developer/overview -sidebarTitle: 'Advanced guides overview' -description: 'Overview of the advanced guides' -title: 'Advanced guides' -keywords: ['ClickHouse advanced guides', 'developer guides', 'query optimization', 'materialized views', 'deduplication', 'time series', 'query execution'] -doc_type: 'guide' ---- - -This section contains the following advanced guides: - -| Guide | Description | -|------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Alternative Query Languages](/concepts/features/configuration/settings/alternative-query-languages) | A guide on alternative supported dialects and how to use them. Provides examples of queries in each dialect. | -| [Cascading Materialized Views](/concepts/features/materialized-views/cascading-materialized-views) | A guide on how to create Materialized Views and cascade them together, combine multiple source tables into a single destination table. Contains an example of using cascading materialized views to aggregate data by month and year for a group of domain names. | -| [Debugging memory issues](/concepts/features/performance/troubleshoot/debugging-memory-issues) | A guide on how to debug memory issues within ClickHouse. | -| [Deduplicating Inserts on Retries](/concepts/operations/insert/deduplicating-inserts-on-retries) | A guide on how to handle situations where you might retry failed inserts. | -| [Deduplication strategies](/concepts/operations/insert/deduplication) | A guide which dives into data deduplication, a technique for removing duplicate rows from your database. Explains differences from primary key-based deduplication in OLTP systems, ClickHouse's approach to deduplication and how to handle duplicate data scenarios within your ClickHouse queries. | -| [Filling gaps in time-series data](/guides/real-time-analytics/time-series/time-series-filling-gaps) | A guide which provides insights into ClickHouse's capabilities for handling time-series data, including techniques for filling gaps in data to create a more complete and continuous representation of time-series information. | -| [Manage Data with TTL (Time-to-live)](/concepts/operations/delete/ttl) | A guide discussing how to use the `WITH FILL` clause to fill gaps in time-series data. It covers how to fill gaps with 0 values, how to specify a starting point for filling gaps, how to fill gaps up to a specific end point, and how to interpolate values for cumulative calculations. | -| [Stored procedures & query parameters](/guides/cloud-oss/data-modelling/stored-procedures-and-prepared-statements) | A guide explaining that ClickHouse doesn't support traditional stored procedures, and provides recommended alternatives including User-Defined Functions (UDFs), parameterized views, materialized views, and external orchestration. Also covers query parameters for safe parameterized queries (similar to prepared statements). | -| [Understanding query execution with the Analyzer](/guides/cloud-oss/performance-and-monitoring/understanding-query-execution-with-the-analyzer) | A guide which demystifies ClickHouse query execution by introducing the analyzer tool. It explains how the analyzer breaks down a query into a series of steps, allowing you to visualize and troubleshoot the entire execution process for optimal performance. | -| [Using JOINs in ClickHouse](/concepts/operations/select/joining-tables) | A guide that simplifies joining tables in ClickHouse. It covers different join types (`INNER`, `LEFT`, `RIGHT`, etc.), explores best practices for efficient joins (like placing smaller tables on the right), and provides insights on ClickHouse's internal join algorithms to help you optimize your queries for complex data relationships. | diff --git a/concepts/features/configuration/settings/query-complexity.mdx b/concepts/features/configuration/settings/query-complexity.mdx deleted file mode 100644 index f58f8018..00000000 --- a/concepts/features/configuration/settings/query-complexity.mdx +++ /dev/null @@ -1,115 +0,0 @@ ---- -description: 'Settings which restrict query complexity.' -sidebarTitle: 'Restrictions on query complexity' -slug: /operations/settings/query-complexity -title: 'Restrictions on query complexity' -doc_type: 'reference' ---- - -## Overview {#overview} - -As part of the [settings](/concepts/features/configuration/settings/overview), ClickHouse offers -the ability to place restrictions on query complexity. This helps protect against -potentially resource-intensive queries, ensuring safer and more predictable -execution, particularly when using the user interface. - -Almost all the restrictions only apply to `SELECT` queries, and for distributed -query processing, restrictions are applied on each server separately. - -ClickHouse generally checks the restrictions only after data parts have been -fully processed, rather than checking the restrictions for each row. This can -result in a situation where restrictions are violated while the part is being -processed. - -## `overflow_mode` settings {#overflow_mode_setting} - -Most restrictions also have an `overflow_mode` setting, which defines what happens -when the limit is exceeded, and can take one of two values: -- `throw`: throw an exception (default). -- `break`: stop executing the query and return the partial result, as if the - source data ran out. - -## `group_by_overflow_mode` settings {#group_by_overflow_mode_settings} - -The `group_by_overflow_mode` setting also has -the value `any`: -- `any` : continue aggregation for the keys that got into the set, but do not - add new keys to the set. - -## List of settings {#relevant-settings} - -The following settings are used for applying restrictions on query complexity. - - -Restrictions on the "maximum amount of something" can take a value of `0`, -which means that it is "unrestricted". - - -| Setting | Short description | -|------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [`max_memory_usage`](/reference/settings/session-settings#max_memory_usage) | The maximum amount of RAM to use for running a query on a single server. | -| [`max_memory_usage_for_user`](/reference/settings/session-settings#max_memory_usage_for_user) | The maximum amount of RAM to use for running a user's queries on a single server. | -| [`max_rows_to_read`](/reference/settings/session-settings#max_rows_to_read) | The maximum number of rows that can be read from a table when running a query. | -| [`max_bytes_to_read`](/reference/settings/session-settings#max_bytes_to_read) | The maximum number of bytes (of uncompressed data) that can be read from a table when running a query. | -| [`read_overflow_mode_leaf`](/reference/settings/session-settings#read_overflow_mode_leaf) | Sets what happens when the volume of data read exceeds one of the leaf limits | -| [`max_rows_to_read_leaf`](/reference/settings/session-settings#max_rows_to_read_leaf) | The maximum number of rows that can be read from a local table on a leaf node when running a distributed query | -| [`max_bytes_to_read_leaf`](/reference/settings/session-settings#max_bytes_to_read_leaf) | The maximum number of bytes (of uncompressed data) that can be read from a local table on a leaf node when running a distributed query. | -| [`read_overflow_mode_leaf`](/reference/settings/session-settings#read_overflow_mode_leaf) | Sets what happens when the volume of data read exceeds one of the leaf limits. | -| [`max_rows_to_group_by`](/reference/settings/session-settings#max_rows_to_group_by) | The maximum number of unique keys received from aggregation. | -| [`group_by_overflow_mode`](/reference/settings/session-settings#group_by_overflow_mode) | Sets what happens when the number of unique keys for aggregation exceeds the limit | -| [`max_bytes_before_external_group_by`](/reference/settings/session-settings#max_bytes_before_external_group_by) | Enables or disables execution of `GROUP BY` clauses in external memory. | -| [`max_bytes_ratio_before_external_group_by`](/reference/settings/session-settings#max_bytes_ratio_before_external_group_by) | The ratio of available memory that is allowed for `GROUP BY`. Once reached, external memory is used for aggregation. | -| [`max_bytes_before_external_sort`](/reference/settings/session-settings#max_bytes_before_external_sort) | Enables or disables execution of `ORDER BY` clauses in external memory. | -| [`max_bytes_ratio_before_external_sort`](/reference/settings/session-settings#max_bytes_ratio_before_external_sort) | The ratio of available memory that is allowed for `ORDER BY`. Once reached, external sort is used. | -| [`max_rows_to_sort`](/reference/settings/session-settings#max_rows_to_sort) | The maximum number of rows before sorting. Allows limiting memory consumption when sorting. | -| [`max_bytes_to_sort`](/reference/settings/session-settings#max_rows_to_sort) | The maximum number of bytes before sorting. | -| [`sort_overflow_mode`](/reference/settings/session-settings#sort_overflow_mode) | Sets what happens if the number of rows received before sorting exceeds one of the limits. | -| [`max_result_rows`](/reference/settings/session-settings#max_result_rows) | Limits the number of rows in the result. | -| [`max_result_bytes`](/reference/settings/session-settings#max_result_bytes) | Limits the result size in bytes (uncompressed) | -| [`result_overflow_mode`](/reference/settings/session-settings#result_overflow_mode) | Sets what to do if the volume of the result exceeds one of the limits. | -| [`max_execution_time`](/reference/settings/session-settings#max_execution_time) | The maximum query execution time in seconds. | -| [`timeout_overflow_mode`](/reference/settings/session-settings#timeout_overflow_mode) | Sets what to do if the query is run longer than the `max_execution_time` or the estimated running time is longer than `max_estimated_execution_time`. | -| [`max_execution_time_leaf`](/reference/settings/session-settings#max_execution_time_leaf) | Similar semantically to `max_execution_time` but only applied on leaf nodes for distributed or remote queries. | -| [`timeout_overflow_mode_leaf`](/reference/settings/session-settings#timeout_overflow_mode_leaf) | Sets what happens when the query in leaf node run longer than `max_execution_time_leaf`. | -| [`min_execution_speed`](/reference/settings/session-settings#min_execution_speed) | Minimal execution speed in rows per second. | -| [`min_execution_speed_bytes`](/reference/settings/session-settings#min_execution_speed_bytes) | The minimum number of execution bytes per second. | -| [`max_execution_speed`](/reference/settings/session-settings#max_execution_speed) | The maximum number of execution rows per second. | -| [`max_execution_speed_bytes`](/reference/settings/session-settings#max_execution_speed_bytes) | The maximum number of execution bytes per second. | -| [`timeout_before_checking_execution_speed`](/reference/settings/session-settings#timeout_before_checking_execution_speed) | Checks that execution speed is not too slow (no less than `min_execution_speed`), after the specified time in seconds has expired. | -| [`max_estimated_execution_time`](/reference/settings/session-settings#max_estimated_execution_time) | Maximum query estimate execution time in seconds. | -| [`max_columns_to_read`](/reference/settings/session-settings#max_columns_to_read) | The maximum number of columns that can be read from a table in a single query. | -| [`max_temporary_columns`](/reference/settings/session-settings#max_temporary_columns) | The maximum number of temporary columns that must be kept in RAM simultaneously when running a query, including constant columns. | -| [`max_temporary_non_const_columns`](/reference/settings/session-settings#max_temporary_non_const_columns) | The maximum number of temporary columns that must be kept in RAM simultaneously when running a query, but without counting constant columns. | -| [`max_subquery_depth`](/reference/settings/session-settings#max_subquery_depth) | Sets what happens if a query has more than the specified number of nested subqueries. | -| [`max_ast_depth`](/reference/settings/session-settings#max_ast_depth) | The maximum nesting depth of a query syntactic tree. | -| [`max_ast_elements`](/reference/settings/session-settings#max_ast_elements) | The maximum number of elements in a query syntactic tree. | -| [`max_rows_in_set`](/reference/settings/session-settings#max_rows_in_set) | The maximum number of rows for a data set in the IN clause created from a subquery. | -| [`max_bytes_in_set`](/reference/settings/session-settings#max_bytes_in_set) | The maximum number of bytes (of uncompressed data) used by a set in the IN clause created from a subquery. | -| [`set_overflow_mode`](/reference/settings/session-settings#max_bytes_in_set) | Sets what happens when the amount of data exceeds one of the limits. | -| [`max_rows_in_distinct`](/reference/settings/session-settings#max_rows_in_distinct) | The maximum number of different rows when using DISTINCT. | -| [`max_bytes_in_distinct`](/reference/settings/session-settings#max_bytes_in_distinct) | The maximum number of bytes of the state (in uncompressed bytes) in memory, which is used by a hash table when using DISTINCT. | -| [`distinct_overflow_mode`](/reference/settings/session-settings#distinct_overflow_mode) | Sets what happens when the amount of data exceeds one of the limits. | -| [`max_rows_to_transfer`](/reference/settings/session-settings#max_rows_to_transfer) | Maximum size (in rows) that can be passed to a remote server or saved in a temporary table when the GLOBAL IN/JOIN section is executed. | -| [`max_bytes_to_transfer`](/reference/settings/session-settings#max_bytes_to_transfer) | The maximum number of bytes (uncompressed data) that can be passed to a remote server or saved in a temporary table when the GLOBAL IN/JOIN section is executed. | -| [`transfer_overflow_mode`](/reference/settings/session-settings#transfer_overflow_mode) | Sets what happens when the amount of data exceeds one of the limits. | -| [`max_rows_in_join`](/reference/settings/session-settings#max_rows_in_join) | Limits the number of rows in the hash table that is used when joining tables. | -| [`max_bytes_in_join`](/reference/settings/session-settings#max_bytes_in_join) | The maximum size in number of bytes of the hash table used when joining tables. | -| [`join_overflow_mode`](/reference/settings/session-settings#join_overflow_mode) | Defines what action ClickHouse performs when any of the following join limits is reached. | -| [`max_partitions_per_insert_block`](/reference/settings/session-settings#max_partitions_per_insert_block) | Limits the maximum number of partitions in a single inserted block and an exception is thrown if the block contains too many partitions. | -| [`throw_on_max_partitions_per_insert_block`](/reference/settings/session-settings#throw_on_max_partitions_per_insert_block) | Allows you to control the behaviour when `max_partitions_per_insert_block` is reached. | -| [`max_temporary_data_on_disk_size_for_user`](/reference/settings/session-settings#throw_on_max_partitions_per_insert_block) | The maximum amount of data consumed by temporary files on disk in bytes for all concurrently running user queries. | -| [`max_temporary_data_on_disk_size_for_query`](/reference/settings/session-settings#max_temporary_data_on_disk_size_for_query) | The maximum amount of data consumed by temporary files on disk in bytes for all concurrently running queries. | -| [`max_sessions_for_user`](/reference/settings/session-settings#max_sessions_for_user) | Maximum number of simultaneous sessions per authenticated user to the ClickHouse server. | -| [`max_partitions_to_read`](/reference/settings/session-settings#max_partitions_to_read) | Limits the maximum number of partitions that can be accessed in a single query. | - -## Obsolete settings {#obsolete-settings} - - -The following settings are obsolete - - -### max_pipeline_depth {#max-pipeline-depth} - -Maximum pipeline depth. It Corresponds to the number of transformations that each -data block goes through during query processing. Counted within the limits of a -single server. If the pipeline depth is greater, an exception is thrown. diff --git a/concepts/features/performance/caches/caches.mdx b/concepts/features/performance/caches/caches.mdx deleted file mode 100644 index 0b5ed6d5..00000000 --- a/concepts/features/performance/caches/caches.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -description: 'When performing queries, ClickHouse uses different caches.' -sidebarTitle: 'Caches' -slug: /operations/caches -title: 'Cache types' -keywords: ['cache'] -doc_type: 'reference' ---- - -When performing queries, ClickHouse uses different caches to speed up queries -and reduce the need to read from or write to disk. - -The main cache types are: - -- `mark_cache` — Cache of [marks](/resources/contribute/architecture#merge-tree) used by table engines of the [`MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) family. -- `uncompressed_cache` — Cache of uncompressed data used by table engines of the [`MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) family. -- Operating system page cache (used indirectly, for files with actual data). - -There are also a host of additional cache types: - -- DNS cache. -- [Regexp](/reference/formats/Regexp) cache. -- Compiled expressions cache. -- [Vector similarity index](/reference/engines/table-engines/mergetree-family/annindexes) cache. -- [Text index](/reference/engines/table-engines/mergetree-family/textindexes#caching) cache. -- [Avro format](/reference/formats/Avro/Avro) schemas cache. -- [Dictionaries](/reference/statements/create/dictionary) data cache. -- Schema inference cache. -- [Filesystem cache](/concepts/features/configuration/server-config/storing-data) over S3, Azure, Local and other disks. -- [Userspace page cache](/concepts/features/performance/caches/userspace-page-cache) -- [Query cache](/concepts/features/performance/caches/query-cache). -- [Query condition cache](/concepts/features/performance/caches/query-condition-cache). -- Format schema cache. - -Should you wish to clear one of the caches, for performance tuning, troubleshooting, or data consistency reasons, -you can use the [`SYSTEM CLEAR ... CACHE`](/reference/statements/system) statement. diff --git a/concepts/features/security/external-authenticators/index.mdx b/concepts/features/security/external-authenticators/index.mdx deleted file mode 100644 index c0ab184f..00000000 --- a/concepts/features/security/external-authenticators/index.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -description: 'Overview of external authentication methods supported by ClickHouse' -sidebarTitle: 'External User Authenticators and Directories' -slug: /operations/external-authenticators/ -title: 'External User Authenticators and Directories' -doc_type: 'reference' ---- - -import SelfManaged from '/snippets/_self_managed_only_no_roadmap.mdx'; - - - -ClickHouse supports authenticating and managing users using external services. - -The following external authenticators and directories are supported: - -- [LDAP](/concepts/features/security/external-authenticators/ldap#ldap-external-authenticator) [Authenticator](/concepts/features/security/external-authenticators/ldap#ldap-external-authenticator) and [Directory](/concepts/features/security/external-authenticators/ldap#ldap-external-user-directory) -- Kerberos [Authenticator](/concepts/features/security/external-authenticators/kerberos#kerberos-as-an-external-authenticator-for-existing-users) -- [SSL X.509 authentication](/concepts/features/security/external-authenticators/ssl-x509) -- HTTP [Authenticator](/concepts/features/security/external-authenticators/http) \ No newline at end of file diff --git a/concepts/features/tools-and-utilities/index.mdx b/concepts/features/tools-and-utilities/index.mdx deleted file mode 100644 index 57db08e0..00000000 --- a/concepts/features/tools-and-utilities/index.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -description: 'Page listing various useful ClickHouse tools and utilities.' -keywords: ['tools', 'utilities'] -sidebarTitle: 'List of tools and utilities' -slug: /operations/utilities/ -title: 'List of tools and utilities' -doc_type: 'landing-page' ---- - -| Tool/Utility | Description | -|------|-------------| -|[clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local) | Allows running SQL queries on data without starting the ClickHouse server, similar to how `awk` does this.| -|[clickhouse-benchmark](/concepts/features/tools-and-utilities/clickhouse-benchmark) | Loads server with the custom queries and settings.| -| [clickhouse-format](/concepts/features/tools-and-utilities/clickhouse-format) | Enables formatting input queries.| -|[ClickHouse obfuscator](/concepts/features/tools-and-utilities/clickhouse-obfuscator) | Obfuscates data.| -|[ClickHouse compressor](/concepts/features/tools-and-utilities/clickhouse-compressor) | Compresses and decompresses data.| -| [clickhouse-disks](/concepts/features/tools-and-utilities/clickhouse-disks) | Provides filesystem-like operations on files among different ClickHouse disks.| -| [clickhouse-odbc-bridge](/concepts/features/tools-and-utilities/odbc-bridge) | A proxy server for ODBC driver.| -| [clickhouse_backupview](/concepts/features/tools-and-utilities/backupview) | A python module to analyze ClickHouse backups.| -| [clickhouse-keeper-client](/concepts/features/tools-and-utilities/clickhouse-keeper-client) | A client application to interact with ClickHouse Keeper.| -| [Keeper HTTP API](/concepts/features/tools-and-utilities/clickhouse-keeper-http-api) | HTTP API and embedded dashboard for ClickHouse Keeper.| diff --git a/core/README.md b/core/README.md new file mode 100644 index 00000000..a4077dca --- /dev/null +++ b/core/README.md @@ -0,0 +1,18 @@ +# Core + +Documentation for ClickHouse in general - independent of any specific +product or deployment. This is where the majority of technical content lives. + +## Structure + +- `get-started/` — Onboarding material: quickstarts, install guides, sample + datasets, use-case landing pages. Start here if you're new to ClickHouse. +- `concepts/` — How ClickHouse works: core mechanics (parts, merges, indexes), + feature deep-dives, best practices. Content explains *what* and *why*. +- `guides/` — Task-oriented how-to guides: data modelling, performance tuning, + use-case walkthroughs, OSS deployment and operations. Content explains *how*. +- `reference/` — Exhaustive reference material: SQL statements, functions, + data types, engines, formats, settings, system tables. + +Each subdirectory has its own `README.md` with more detail on what belongs +there and how to decide between sections. \ No newline at end of file diff --git a/core/concepts/README.md b/core/concepts/README.md new file mode 100644 index 00000000..c668a5c5 --- /dev/null +++ b/core/concepts/README.md @@ -0,0 +1,19 @@ +# Concepts + +**What goes here:** Explanations of how ClickHouse works and what its features +are. Core mechanics (parts, merges, partitions, primary indexes), best-practice +guidance, and feature deep-dives (materialized views, dictionaries, projections, +performance, operations, configuration, security, backup/restore, +tools-and-utilities). + +**Audience:** Engineers who want to understand *what* a feature is and *why* it +behaves the way it does. Not task-oriented — for "how do I do X," use `/guides`. + +**Subdirectories:** +- `core-concepts/` — fundamental mechanics (parts, merges, indexes). +- `best-practices/` — opinionated must-know guidance for working with ClickHouse. +- `features/` — ClickHouse DB core features. +- `advanced-guides/` — longer-form material that doesn't fit elsewhere. + +If you're adding a page that explains what something is, and how something works, it belongs here. +If you're adding step-by-step instructions of how to use a feature in practice, it belongs in `/guides`. \ No newline at end of file diff --git a/concepts/best-practices/avoid-mutations.mdx b/core/concepts/best-practices/avoid-mutations.mdx similarity index 100% rename from concepts/best-practices/avoid-mutations.mdx rename to core/concepts/best-practices/avoid-mutations.mdx diff --git a/concepts/best-practices/avoid-optimize-final.mdx b/core/concepts/best-practices/avoid-optimize-final.mdx similarity index 100% rename from concepts/best-practices/avoid-optimize-final.mdx rename to core/concepts/best-practices/avoid-optimize-final.mdx diff --git a/concepts/best-practices/avoidnullablecolumns.mdx b/core/concepts/best-practices/avoidnullablecolumns.mdx similarity index 100% rename from concepts/best-practices/avoidnullablecolumns.mdx rename to core/concepts/best-practices/avoidnullablecolumns.mdx diff --git a/concepts/best-practices/choosing-a-primary-key.mdx b/core/concepts/best-practices/choosing-a-primary-key.mdx similarity index 90% rename from concepts/best-practices/choosing-a-primary-key.mdx rename to core/concepts/best-practices/choosing-a-primary-key.mdx index f1e3e230..e2307acb 100644 --- a/concepts/best-practices/choosing-a-primary-key.mdx +++ b/core/concepts/best-practices/choosing-a-primary-key.mdx @@ -10,9 +10,9 @@ doc_type: 'guide' import { Image } from "/snippets/components/Image.jsx"; -> We interchangeably use the term "ordering key" to refer to the "primary key" on this page. Strictly, [these differ in ClickHouse](/reference/engines/table-engines/mergetree-family/mergetree#choosing-a-primary-key-that-differs-from-the-sorting-key), but for the purposes of this document, readers can use them interchangeably, with the ordering key referring to the columns specified in the table `ORDER BY`. +> We interchangeably use the term "ordering key" to refer to the "primary key" on this page. Strictly, [these differ in ClickHouse](/core/reference/engines/table-engines/mergetree-family/mergetree#choosing-a-primary-key-that-differs-from-the-sorting-key), but for the purposes of this document, readers can use them interchangeably, with the ordering key referring to the columns specified in the table `ORDER BY`. -Note that a ClickHouse primary key works [very differently](/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3#primary-ordering-keys-in-clickhouse) to those familiar with similar terms in OLTP databases such as Postgres. +Note that a ClickHouse primary key works [very differently](/core/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3#primary-ordering-keys-in-clickhouse) to those familiar with similar terms in OLTP databases such as Postgres. Choosing an effective primary key in ClickHouse is crucial for query performance and storage efficiency. ClickHouse organizes data into parts, each containing its own sparse primary index. This index significantly speeds up queries by reducing the volume of data scanned. Additionally, because the primary key determines the physical order of data on disk, it directly impacts compression efficiency. Optimally ordered data compresses more effectively, which further enhances performance by reducing I/O. @@ -24,7 +24,7 @@ Some simple rules can be applied to help choose an ordering key. The following c **Important** -Ordering keys must be defined on table creation and can't be added. Additional ordering can be added to a table after (or before) data insertion through a feature known as projections. Be aware these result in data duplication. Further details [here](/reference/statements/alter/projection). +Ordering keys must be defined on table creation and can't be added. Additional ordering can be added to a table after (or before) data insertion through a feature known as projections. Be aware these result in data duplication. Further details [here](/core/reference/statements/alter/projection). ## Example {#example} @@ -168,6 +168,6 @@ Additionally, we visualize how the sparse index prunes all row blocks that can't All columns in a table will be sorted based on the value of the specified ordering key, regardless of whether they're included in the key itself. For instance, if `CreationDate` is used as the key, the order of values in all other columns will correspond to the order of values in the `CreationDate` column. Multiple ordering keys can be specified - this will order with the same semantics as an `ORDER BY` clause in a `SELECT` query. -A complete advanced guide on choosing primary keys can be found [here](/guides/cloud-oss/data-modelling/sparse-primary-indexes). +A complete advanced guide on choosing primary keys can be found [here](/core/guides/clickhouse/data-modelling/sparse-primary-indexes). -For deeper insights into how ordering keys improve compression and further optimize storage, explore the official guides on [Compression in ClickHouse](/guides/cloud-oss/data-modelling/compression/compression-in-clickhouse) and [Column Compression Codecs](/guides/cloud-oss/data-modelling/compression/compression-in-clickhouse#choosing-the-right-column-compression-codec). +For deeper insights into how ordering keys improve compression and further optimize storage, explore the official guides on [Compression in ClickHouse](/core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse) and [Column Compression Codecs](/core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse#choosing-the-right-column-compression-codec). diff --git a/concepts/best-practices/index.mdx b/core/concepts/best-practices/index.mdx similarity index 100% rename from concepts/best-practices/index.mdx rename to core/concepts/best-practices/index.mdx diff --git a/concepts/best-practices/json-type.mdx b/core/concepts/best-practices/json-type.mdx similarity index 89% rename from concepts/best-practices/json-type.mdx rename to core/concepts/best-practices/json-type.mdx index 2b4f642a..77b9b1f5 100644 --- a/concepts/best-practices/json-type.mdx +++ b/core/concepts/best-practices/json-type.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' import WhenToUseJson from '/snippets/_when-to-use-json.mdx'; -ClickHouse now offers a native JSON column type designed for semi-structured and dynamic data. It's important to clarify that **this is a column type, not a data format**—you can insert JSON into ClickHouse as a string or via supported formats like [JSONEachRow](/reference/formats/JSON/JSONEachRow), but that doesn't imply using the JSON column type. You should only use the JSON type when the structure of your data is dynamic, not when you simply happen to store JSON. +ClickHouse now offers a native JSON column type designed for semi-structured and dynamic data. It's important to clarify that **this is a column type, not a data format**—you can insert JSON into ClickHouse as a string or via supported formats like [JSONEachRow](/core/reference/formats/JSON/JSONEachRow), but that doesn't imply using the JSON column type. You should only use the JSON type when the structure of your data is dynamic, not when you simply happen to store JSON. @@ -18,9 +18,9 @@ ClickHouse now offers a native JSON column type designed for semi-structured and The JSON type enables efficient columnar storage by flattening paths into subcolumns. But with flexibility comes responsibility. To use it effectively: -* **Specify path types** using [hints in the column definition](/reference/data-types/newjson) to specify types for known subcolumns, avoiding unnecessary type inference. -* **Skip paths** if you don't need the values, with [SKIP and SKIP REGEXP](/reference/data-types/newjson) to reduce storage and improve performance. -* **Avoid setting [`max_dynamic_paths`](/reference/data-types/newjson#reaching-the-limit-of-dynamic-paths-inside-json) too high**—large values increase resource consumption and reduce efficiency. As a rule of thumb, keep it below 10,000. +* **Specify path types** using [hints in the column definition](/core/reference/data-types/newjson) to specify types for known subcolumns, avoiding unnecessary type inference. +* **Skip paths** if you don't need the values, with [SKIP and SKIP REGEXP](/core/reference/data-types/newjson) to reduce storage and improve performance. +* **Avoid setting [`max_dynamic_paths`](/core/reference/data-types/newjson#reaching-the-limit-of-dynamic-paths-inside-json) too high**—large values increase resource consumption and reduce efficiency. As a rule of thumb, keep it below 10,000. **Type hints** @@ -31,11 +31,11 @@ Type hints offer more than just a way to avoid unnecessary type inference—they ## Advanced features {#advanced-features} * JSON columns **can be used in primary keys** like any other columns. Codecs can't be specified for a subcolumn. -* They support introspection via functions like [`JSONAllPathsWithTypes()` and `JSONDynamicPaths()`](/reference/data-types/newjson#introspection-functions). +* They support introspection via functions like [`JSONAllPathsWithTypes()` and `JSONDynamicPaths()`](/core/reference/data-types/newjson#introspection-functions). * You can read nested sub-objects using the `.^` syntax. * Query syntax may differ from standard SQL and may require special casting or operators for nested fields. -For additional guidance, see[ ClickHouse JSON documentation](/reference/data-types/newjson) or explore our blog post[ A New Powerful JSON Data Type for ClickHouse](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse). +For additional guidance, see[ ClickHouse JSON documentation](/core/reference/data-types/newjson) or explore our blog post[ A New Powerful JSON Data Type for ClickHouse](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse). ## Examples {#examples} @@ -114,7 +114,7 @@ Consider the [arXiv dataset](https://www.kaggle.com/datasets/Cornell-University/ } ``` -While the JSON here is complex, with nested structures, it is predictable. The number and type of the fields won't change. While we could use the JSON type for this example, we can also just define the structure explicitly using [Tuples](/reference/data-types/tuple) and [Nested](/reference/data-types/nested-data-structures) types: +While the JSON here is complex, with nested structures, it is predictable. The number and type of the fields won't change. While we could use the JSON type for this example, we can also just define the structure explicitly using [Tuples](/core/reference/data-types/tuple) and [Nested](/core/reference/data-types/nested-data-structures) types: ```sql CREATE TABLE arxiv @@ -214,7 +214,7 @@ ORDER BY doc.update_date We provide a type hint for the `update_date` column in the JSON definition, as we use it in the ordering/primary key. This helps ClickHouse to know that this column won't be null and ensures it knows which `update_date` subcolumn to use (there may be multiple for each type, so this is ambiguous otherwise). -We can insert into this table and view the subsequently inferred schema using the [`JSONAllPathsWithTypes`](/reference/functions/regular-functions/json-functions#JSONAllPathsWithTypes) function and [`PrettyJSONEachRow`](/reference/formats/JSON/PrettyJSONEachRow) output format: +We can insert into this table and view the subsequently inferred schema using the [`JSONAllPathsWithTypes`](/core/reference/functions/regular-functions/json-functions#JSONAllPathsWithTypes) function and [`PrettyJSONEachRow`](/core/reference/formats/JSON/PrettyJSONEachRow) output format: ```sql INSERT INTO arxiv FORMAT JSONAsObject diff --git a/concepts/best-practices/minimize-optimize-joins.mdx b/core/concepts/best-practices/minimize-optimize-joins.mdx similarity index 86% rename from concepts/best-practices/minimize-optimize-joins.mdx rename to core/concepts/best-practices/minimize-optimize-joins.mdx index 3051c04d..4cd45f0d 100644 --- a/concepts/best-practices/minimize-optimize-joins.mdx +++ b/core/concepts/best-practices/minimize-optimize-joins.mdx @@ -19,9 +19,9 @@ In general, denormalize when: - Only a limited subset of the columns will be queried, i.e. certain columns can be excluded from denormalization. - You have the capability to shift processing out of ClickHouse into upstream systems like [Flink](/integrations/connectors/data-ingestion/apache-flink), where real-time enrichment or flattening can be managed. -Not all data needs to be denormalized — focus on the attributes that are frequently queried. Also consider [materialized views](/concepts/best-practices/use-materialized-views) to incrementally compute aggregates instead of duplicating entire sub-tables. When schema updates are rare and latency is critical, denormalization offers the best performance trade-off. +Not all data needs to be denormalized — focus on the attributes that are frequently queried. Also consider [materialized views](/core/concepts/best-practices/use-materialized-views) to incrementally compute aggregates instead of duplicating entire sub-tables. When schema updates are rare and latency is critical, denormalization offers the best performance trade-off. -For a full guide on denormalizing data in ClickHouse see [here](/guides/cloud-oss/data-modelling/denormalization). +For a full guide on denormalizing data in ClickHouse see [here](/core/guides/clickhouse/data-modelling/denormalization). ## When JOINs are required {#when-joins-are-required} @@ -31,7 +31,7 @@ Follow these best practices to improve JOIN performance: * **Avoid Cartesian products**: If a value on the left-hand side matches multiple values on the right-hand side, the JOIN will return multiple rows — the so-called Cartesian product. If your use case doesn't need all matches from the right-hand side but just any single match, you can use `ANY` JOINs (e.g. `LEFT ANY JOIN`). They're faster and use less memory than regular JOINs. * **Reduce the sizes of JOINed tables**: The runtime and memory consumption of JOINs grows proportionally with the sizes of the left and right tables. To reduce the amount of processed data by the JOIN, add additional filter conditions in the `WHERE` or `JOIN ON` clauses of the query. ClickHouse pushes filter conditions as deep as possible down in the query plan, usually before JOINs. If the filters aren't pushed down automatically (for any reason), rewrite one side of the JOIN as a sub-query to force pushdown. -* **Use direct JOINs via dictionaries if appropriate**: Standard JOINs in ClickHouse are executed in two phases: a build phase which iterates the right-hand side to build a hash table, followed by a probe phase which iterates the left-hand side to find matching join partners via hash table lookups. If the right-hand side is a [dictionary](/concepts/features/dictionaries) or another table engine with key-value characteristics (e.g. [EmbeddedRocksDB](/reference/engines/table-engines/integrations/embedded-rocksdb) or the [Join table engine](/reference/engines/table-engines/special/join)), then ClickHouse can use the "direct" join algorithm, which effectively removes the need to build a hash table, speeding up query processing. This works for `INNER` and `LEFT OUTER` JOINs and is preferred for real-time analytical workloads. +* **Use direct JOINs via dictionaries if appropriate**: Standard JOINs in ClickHouse are executed in two phases: a build phase which iterates the right-hand side to build a hash table, followed by a probe phase which iterates the left-hand side to find matching join partners via hash table lookups. If the right-hand side is a [dictionary](/core/concepts/features/dictionaries) or another table engine with key-value characteristics (e.g. [EmbeddedRocksDB](/core/reference/engines/table-engines/integrations/embedded-rocksdb) or the [Join table engine](/core/reference/engines/table-engines/special/join)), then ClickHouse can use the "direct" join algorithm, which effectively removes the need to build a hash table, speeding up query processing. This works for `INNER` and `LEFT OUTER` JOINs and is preferred for real-time analytical workloads. * **Utilize table sorting for JOINs**: Each table in ClickHouse is sorted by the table's primary key columns. It is possible to exploit the table's sorting by using so-called sort-merge JOIN algorithms like `full_sorting_merge` and `partial_merge`. Unlike standard JOIN algorithms based on hash tables (see below, `parallel_hash`, `hash`, `grace_hash`), sort-merge JOIN algorithms first sort and then merge both tables. If the query JOINs both tables by their respective primary key columns, then sort-merge has an optimization which omits the sort step, saving processing time and overhead. * **Avoid disk-spilling JOINs**: Intermediate states of JOINs (e.g. hash tables) can become so big that they no longer fit into main memory. In this situation, ClickHouse will return an out-of-memory error by default. Some join algorithms (see below), for example [`grace_hash`](https://clickhouse.com/blog/clickhouse-fully-supports-joins-hash-joins-part2), [`partial_merge`](https://clickhouse.com/blog/clickhouse-fully-supports-joins-full-sort-partial-merge-part3) and [`full_sorting_merge`](https://clickhouse.com/blog/clickhouse-fully-supports-joins-full-sort-partial-merge-part3), are able to spill intermediate states to disk and continue query execution. These join algorithms should nevertheless be used with care as disk access can significantly slow down join processing. We instead recommend optimizing the JOIN query in other ways to reduce the size of intermediate states. * **Default values as no-match markers in outer JOINs**: Left/right/full outer joins include all values from the left/right/both tables. If no join partner is found in the other table for some value, ClickHouse replaces the join partner by a special marker. The SQL standard mandates that databases use NULL as such a marker. In ClickHouse, this requires wrapping the result column in Nullable, creating an additional memory and performance overhead. As an alternative, you can configure the setting `join_use_nulls = 0` and use the default value of the result column data type as the marker. @@ -39,7 +39,7 @@ Follow these best practices to improve JOIN performance: **Use dictionaries carefully** -When using dictionaries for JOINs in ClickHouse, it's important to understand that dictionaries, by design, don't allow duplicate keys. During data loading, any duplicate keys are silently deduplicated—only the last loaded value for a given key is retained. This behavior makes dictionaries ideal for one-to-one or many-to-one relationships where only the latest or authoritative value is needed. However, using a dictionary for a one-to-many or many-to-many relationship (e.g. joining roles to actors where an actor can have multiple roles) will result in silent data loss, as all but one of the matching rows will be discarded. As a result, dictionaries aren't suitable for scenarios requiring full relational fidelity across multiple matches. For more on when dictionaries help (and when they don't), see [Dictionary best practices](/concepts/features/dictionaries/best-practices). +When using dictionaries for JOINs in ClickHouse, it's important to understand that dictionaries, by design, don't allow duplicate keys. During data loading, any duplicate keys are silently deduplicated—only the last loaded value for a given key is retained. This behavior makes dictionaries ideal for one-to-one or many-to-one relationships where only the latest or authoritative value is needed. However, using a dictionary for a one-to-many or many-to-many relationship (e.g. joining roles to actors where an actor can have multiple roles) will result in silent data loss, as all but one of the matching rows will be discarded. As a result, dictionaries aren't suitable for scenarios requiring full relational fidelity across multiple matches. For more on when dictionaries help (and when they don't), see [Dictionary best practices](/core/concepts/features/dictionaries/best-practices). ## Choosing the correct JOIN Algorithm {#choosing-the-right-join-algorithm} @@ -55,10 +55,10 @@ ClickHouse supports several JOIN algorithms that trade off between speed and mem Joins — speed vs memory -Each algorithm has varying support for JOIN types. A full list of supported join types for each algorithm can be found [here](/concepts/operations/select/joining-tables#choosing-a-join-algorithm). +Each algorithm has varying support for JOIN types. A full list of supported join types for each algorithm can be found [here](/core/concepts/features/operations/select/joining-tables#choosing-a-join-algorithm). -You can let ClickHouse choose the best algorithm by setting `join_algorithm = 'auto'` (the default), or explicitly control it based on your workload. If you need to select a join algorithm to optimize for performance or memory overhead, we recommend [this guide](/concepts/operations/select/joining-tables#choosing-a-join-algorithm). +You can let ClickHouse choose the best algorithm by setting `join_algorithm = 'auto'` (the default), or explicitly control it based on your workload. If you need to select a join algorithm to optimize for performance or memory overhead, we recommend [this guide](/core/concepts/features/operations/select/joining-tables#choosing-a-join-algorithm). For optimal performance: @@ -66,4 +66,4 @@ For optimal performance: * Avoid more than 3–4 joins per query. * Benchmark different algorithms on real data — performance varies based on JOIN key distribution and data size. -For more on JOIN optimization strategies, JOIN algorithms, and how to tune them, refer to the[ ClickHouse documentation](/concepts/operations/select/joining-tables) and this [blog series](https://clickhouse.com/blog/clickhouse-fully-supports-joins-part1). +For more on JOIN optimization strategies, JOIN algorithms, and how to tune them, refer to the[ ClickHouse documentation](/core/concepts/features/operations/select/joining-tables) and this [blog series](https://clickhouse.com/blog/clickhouse-fully-supports-joins-part1). diff --git a/concepts/best-practices/partitioning-keys.mdx b/core/concepts/best-practices/partitioning-keys.mdx similarity index 78% rename from concepts/best-practices/partitioning-keys.mdx rename to core/concepts/best-practices/partitioning-keys.mdx index b128fedb..1f2ced7b 100644 --- a/concepts/best-practices/partitioning-keys.mdx +++ b/core/concepts/best-practices/partitioning-keys.mdx @@ -32,15 +32,15 @@ ORDER BY (town, street) PARTITION BY toStartOfMonth(date) ``` -Whenever a set of rows is inserted into the table, instead of creating (at[ least](/reference/settings/session-settings#max_insert_block_size)) one single data part containing all the inserted rows (as described [here](/concepts/core-concepts/parts)), ClickHouse creates one new data part for each unique partition key value among the inserted rows: +Whenever a set of rows is inserted into the table, instead of creating (at[ least](/core/reference/settings/session-settings#max_insert_block_size)) one single data part containing all the inserted rows (as described [here](/core/concepts/core-concepts/parts)), ClickHouse creates one new data part for each unique partition key value among the inserted rows: Partitions -The ClickHouse server first splits the rows from the example insert with 4 rows sketched in the diagram above by their partition key value `toStartOfMonth(date)`. Then, for each identified partition, the rows are processed as[ usual](/concepts/core-concepts/parts) by performing several sequential steps (① Sorting, ② Splitting into columns, ③ Compression, ④ Writing to Disk). +The ClickHouse server first splits the rows from the example insert with 4 rows sketched in the diagram above by their partition key value `toStartOfMonth(date)`. Then, for each identified partition, the rows are processed as[ usual](/core/concepts/core-concepts/parts) by performing several sequential steps (① Sorting, ② Splitting into columns, ③ Compression, ④ Writing to Disk). -For a more detailed explanation of partitioning, we recommend [this guide](/concepts/core-concepts/partitions). +For a more detailed explanation of partitioning, we recommend [this guide](/core/concepts/core-concepts/partitions). -With partitioning enabled, ClickHouse only [merges](/concepts/core-concepts/merges) data parts within, but not across partitions. We sketch that for our example table from above: +With partitioning enabled, ClickHouse only [merges](/core/concepts/core-concepts/merges) data parts within, but not across partitions. We sketch that for our example table from above: Partitions @@ -49,16 +49,16 @@ Partitioning is a powerful tool for managing large datasets in ClickHouse, espec While partitioning can improve query performance for some workloads, it can also negatively impact response time. -If the partitioning key isn't in the primary key and you're filtering by it, users may see an improvement in query performance with partitioning. See [here](/concepts/core-concepts/partitions#query-optimization) for an example. +If the partitioning key isn't in the primary key and you're filtering by it, users may see an improvement in query performance with partitioning. See [here](/core/concepts/core-concepts/partitions#query-optimization) for an example. Conversely, if queries need to query across partitions performance may be negatively impacted due to a higher number of total parts. For this reason, users should understand their access patterns before considering partitioning a query optimization technique. -In summary, users should primarily think of partitioning as a data management technique. For an example of managing data, see ["Managing Data"](/guides/observability/build-your-own/managing-data) from the observability use-case guide and ["What are table partitions used for?"](/concepts/core-concepts/partitions#data-management) from Core Concepts - Table partitions. +In summary, users should primarily think of partitioning as a data management technique. For an example of managing data, see ["Managing Data"](/core/guides/use-cases/observability/build-your-own/managing-data) from the observability use-case guide and ["What are table partitions used for?"](/core/concepts/core-concepts/partitions#data-management) from Core Concepts - Table partitions. ## Choose a low cardinality partitioning key {#choose-a-low-cardinality-partitioning-key} -Importantly, a higher number of parts will negatively affect query performance. ClickHouse will therefore respond to inserts with a [“too many parts”](/resources/support-center/knowledge-base/troubleshooting/exception-too-many-parts) error if the number of parts exceeds specified limits either in [total](/reference/settings/merge-tree-settings#max_parts_in_total) or [per partition](/reference/settings/merge-tree-settings#parts_to_throw_insert). +Importantly, a higher number of parts will negatively affect query performance. ClickHouse will therefore respond to inserts with a [“too many parts”](/resources/support-center/knowledge-base/troubleshooting/exception-too-many-parts) error if the number of parts exceeds specified limits either in [total](/core/reference/settings/merge-tree-settings#max_parts_in_total) or [per partition](/core/reference/settings/merge-tree-settings#parts_to_throw_insert). -Choosing the right **cardinality** for the partitioning key is critical. A high-cardinality partitioning key - where the number of distinct partition values is large - can lead to a proliferation of data parts. Since ClickHouse doesn't merge parts across partitions, too many partitions will result in too many unmerged parts, eventually triggering the “Too many parts” error. [Merges are essential](/concepts/core-concepts/merges) for reducing storage fragmentation and optimizing query speed, but with high-cardinality partitions, that merge potential is lost. +Choosing the right **cardinality** for the partitioning key is critical. A high-cardinality partitioning key - where the number of distinct partition values is large - can lead to a proliferation of data parts. Since ClickHouse doesn't merge parts across partitions, too many partitions will result in too many unmerged parts, eventually triggering the “Too many parts” error. [Merges are essential](/core/concepts/core-concepts/merges) for reducing storage fragmentation and optimizing query speed, but with high-cardinality partitions, that merge potential is lost. By contrast, a **low-cardinality partitioning key**—with fewer than 100 - 1,000 distinct values - is usually optimal. It enables efficient part merging, keeps metadata overhead low, and avoids excessive object creation in storage. In addition, ClickHouse automatically builds MinMax indexes on partition columns, which can significantly speed up queries that filter on those columns. For example, filtering by month when the table is partitioned by `toStartOfMonth(date)` allows the engine to skip irrelevant partitions and their parts entirely. diff --git a/concepts/best-practices/select-data-type.mdx b/core/concepts/best-practices/select-data-type.mdx similarity index 97% rename from concepts/best-practices/select-data-type.mdx rename to core/concepts/best-practices/select-data-type.mdx index 1cffb406..60c5a4b8 100644 --- a/concepts/best-practices/select-data-type.mdx +++ b/core/concepts/best-practices/select-data-type.mdx @@ -17,9 +17,9 @@ Some straightforward guidelines can significantly enhance the schema: * **Use Strict Types:** Always select the correct data type for columns. Numeric and date fields should use appropriate numeric and date types rather than general-purpose String types. This ensures correct semantics for filtering and aggregations. -* **Avoid nullable Columns:** Nullable columns introduce additional overhead by maintaining separate columns for tracking null values. Only use Nullable if explicitly required to distinguish between empty and null states. Otherwise, default or zero-equivalent values typically suffice. For further information on why this type should be avoided unless needed, see [Avoid nullable Columns](/concepts/best-practices/select-data-type#avoid-nullable-columns). +* **Avoid nullable Columns:** Nullable columns introduce additional overhead by maintaining separate columns for tracking null values. Only use Nullable if explicitly required to distinguish between empty and null states. Otherwise, default or zero-equivalent values typically suffice. For further information on why this type should be avoided unless needed, see [Avoid nullable Columns](/core/concepts/best-practices/select-data-type#avoid-nullable-columns). -* **Minimize Numeric Precision:** Select numeric types with minimal bit-width that still accommodate the expected data range. For instance, prefer [UInt16 over Int32](/reference/data-types/int-uint) if negative values aren't needed, and the range fits within 0–65535. +* **Minimize Numeric Precision:** Select numeric types with minimal bit-width that still accommodate the expected data range. For instance, prefer [UInt16 over Int32](/core/reference/data-types/int-uint) if negative values aren't needed, and the range fits within 0–65535. * **Optimize Date and Time Precision:** Choose the most coarse-grained date or datetime type that meets query requirements. Use Date or Date32 for date-only fields, and prefer DateTime over DateTime64 unless millisecond or finer precision is essential. @@ -29,7 +29,7 @@ Some straightforward guidelines can significantly enhance the schema: ## Example {#example} -ClickHouse offers built-in tools to streamline type optimization. For example, schema inference can automatically identify initial types. Consider the Stack Overflow dataset, publicly available in Parquet format. Running a simple schema inference via the [`DESCRIBE`](/reference/statements/describe-table) command provides an initial non-optimized schema. +ClickHouse offers built-in tools to streamline type optimization. For example, schema inference can automatically identify initial types. Consider the Stack Overflow dataset, publicly available in Parquet format. Running a simple schema inference via the [`DESCRIBE`](/core/reference/statements/describe-table) command provides an initial non-optimized schema. By default, ClickHouse maps these to equivalent Nullable types. This is preferred as the schema is based on a sample of the rows only. diff --git a/concepts/best-practices/selecting-an-insert-strategy.mdx b/core/concepts/best-practices/selecting-an-insert-strategy.mdx similarity index 74% rename from concepts/best-practices/selecting-an-insert-strategy.mdx rename to core/concepts/best-practices/selecting-an-insert-strategy.mdx index 7773c92c..d2c05c2a 100644 --- a/concepts/best-practices/selecting-an-insert-strategy.mdx +++ b/core/concepts/best-practices/selecting-an-insert-strategy.mdx @@ -16,7 +16,7 @@ import BulkInserts from '/snippets/_bulk_inserts.mdx'; Efficient data ingestion forms the basis of high-performance ClickHouse deployments. Selecting the right insert strategy can dramatically impact throughput, cost, and reliability. This section outlines best practices, tradeoffs, and configuration options to help you make the right decision for your workload. -The following assumes you're pushing data to ClickHouse via a client. If you're pulling data into ClickHouse e.g. using built in table functions such as [s3](/reference/functions/table-functions/s3) and [gcs](/reference/functions/table-functions/gcs), we recommend our guide ["Optimizing for S3 Insert and Read Performance"](/integrations/connectors/data-ingestion/AWS/performance). +The following assumes you're pushing data to ClickHouse via a client. If you're pulling data into ClickHouse e.g. using built in table functions such as [s3](/core/reference/functions/table-functions/s3) and [gcs](/core/reference/functions/table-functions/gcs), we recommend our guide ["Optimizing for S3 Insert and Read Performance"](/integrations/connectors/data-ingestion/AWS/performance). ## Synchronous inserts by default {#synchronous-inserts-by-default} @@ -37,19 +37,19 @@ If not, see [Asynchronous inserts](#asynchronous-inserts) below. For optimal performance, data must be ①[ batched](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse#data-needs-to-be-batched-for-optimal-performance), making batch size the **first decision**. -ClickHouse stores inserted data on disk,[ ordered](/guides/cloud-oss/data-modelling/sparse-primary-indexes#data-is-stored-on-disk-ordered-by-primary-key-columns) by the table's primary key columns. The **second decision** is whether to ② pre-sort the data before transmission to the server. If a batch arrives pre-sorted by primary key columns, ClickHouse can [skip](https://github.com/ClickHouse/ClickHouse/blob/94ce8e95404e991521a5608cd9d636ff7269743d/src/Storages/MergeTree/MergeTreeDataWriter.cpp#L595) the ⑩ sorting step, speeding up ingestion. +ClickHouse stores inserted data on disk,[ ordered](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#data-is-stored-on-disk-ordered-by-primary-key-columns) by the table's primary key columns. The **second decision** is whether to ② pre-sort the data before transmission to the server. If a batch arrives pre-sorted by primary key columns, ClickHouse can [skip](https://github.com/ClickHouse/ClickHouse/blob/94ce8e95404e991521a5608cd9d636ff7269743d/src/Storages/MergeTree/MergeTreeDataWriter.cpp#L595) the ⑩ sorting step, speeding up ingestion. -If the data to be ingested has no predefined format, the **key decision** is choosing a format. ClickHouse supports inserting data in [over 70 formats](/reference/formats). However, when using the ClickHouse command-line client or programming language clients, this choice is often handled automatically. If needed, this automatic selection can also be overridden explicitly. +If the data to be ingested has no predefined format, the **key decision** is choosing a format. ClickHouse supports inserting data in [over 70 formats](/core/reference/formats). However, when using the ClickHouse command-line client or programming language clients, this choice is often handled automatically. If needed, this automatic selection can also be overridden explicitly. The next **major decision** is ④ whether to compress data before transmission to the ClickHouse server. Compression reduces transfer size and improves network efficiency, leading to faster data transfers and lower bandwidth usage, especially for large datasets. -The data is ⑤ transmitted to a ClickHouse network interface—either the [native](/integrations/connectors/data-integrations/drivers-and-interfaces/tcp) or[ HTTP](/integrations/connectors/data-integrations/drivers-and-interfaces/http) interface (which we [compare](https://clickhouse.com/blog/clickhouse-input-format-matchup-which-is-fastest-most-efficient#clickhouse-client-defaults) later in this post). +The data is ⑤ transmitted to a ClickHouse network interface—either the [native](/core/concepts/features/interfaces/tcp) or[ HTTP](/core/concepts/features/interfaces/http) interface (which we [compare](https://clickhouse.com/blog/clickhouse-input-format-matchup-which-is-fastest-most-efficient#clickhouse-client-defaults) later in this post). #### Server-side steps {#server-side-steps} After ⑥ receiving the data, ClickHouse ⑦ decompresses it if compression was used, then ⑧ parses it from the originally sent format. -Using the values from that formatted data and the target table's [DDL](/reference/statements/create/table) statement, ClickHouse ⑨ builds an in-memory [block](/resources/contribute/architecture#block) in the MergeTree format, ⑩ [sorts](/concepts/core-concepts/parts#what-are-table-parts-in-clickhouse) rows by the primary key columns if they're not already pre-sorted, ⑪ creates a [sparse primary index](/guides/cloud-oss/data-modelling/sparse-primary-indexes), ⑫ applies [per-column compression](/concepts/core-concepts/parts#what-are-table-parts-in-clickhouse), and ⑬ writes the data as a new ⑭ [data part](/concepts/core-concepts/parts) to disk. +Using the values from that formatted data and the target table's [DDL](/core/reference/statements/create/table) statement, ClickHouse ⑨ builds an in-memory [block](/resources/develop-contribute/introduction/architecture#block) in the MergeTree format, ⑩ [sorts](/core/concepts/core-concepts/parts#what-are-table-parts-in-clickhouse) rows by the primary key columns if they're not already pre-sorted, ⑪ creates a [sparse primary index](/core/guides/clickhouse/data-modelling/sparse-primary-indexes), ⑫ applies [per-column compression](/core/concepts/core-concepts/parts#what-are-table-parts-in-clickhouse), and ⑬ writes the data as a new ⑭ [data part](/core/concepts/core-concepts/parts) to disk. ### Batch inserts if synchronous {#batch-inserts-if-synchronous} @@ -69,7 +69,7 @@ In both cases, it's safe to **retry the insert** — as long as the batch conten For sharded clusters, you have two options: * Insert directly into a **MergeTree** or **ReplicatedMergeTree** table. This is the most efficient option when the client can perform load balancing across shards. With `internal_replication = true`, ClickHouse handles replication transparently. -* Insert into a [Distributed table](/reference/engines/table-engines/special/distributed). This allows clients to send data to any node and let ClickHouse forward it to the correct shard. This is simpler but slightly less performant due to the extra forwarding step. `internal_replication = true` is still recommended. +* Insert into a [Distributed table](/core/reference/engines/table-engines/special/distributed). This allows clients to send data to any node and let ClickHouse forward it to the correct shard. This is simpler but slightly less performant due to the extra forwarding step. `internal_replication = true` is still recommended. **In ClickHouse Cloud all nodes read and write to the same single shard. Inserts are automatically balanced across nodes. You can simply send inserts to the exposed endpoint.** @@ -112,9 +112,9 @@ The impact of compression on CPU and memory is modest for LZ4, and moderate for **Combining compression with batching and an efficient input format (like Native) yields the best ingestion performance.** -When using the native interface (e.g. [clickhouse-client](/integrations/connectors/data-integrations/drivers-and-interfaces/cli)), LZ4 compression is enabled by default. You can optionally switch to ZSTD via settings. +When using the native interface (e.g. [clickhouse-client](/core/concepts/features/interfaces/cli)), LZ4 compression is enabled by default. You can optionally switch to ZSTD via settings. -With the [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http), use the Content-Encoding header to apply compression (e.g. Content-Encoding: lz4). The entire payload must be compressed before sending. +With the [HTTP interface](/core/concepts/features/interfaces/http), use the Content-Encoding header to apply compression (e.g. Content-Encoding: lz4). The entire payload must be compressed before sending. ### Pre-sort if low cost {#pre-sort-if-low-cost} @@ -134,16 +134,16 @@ When data arrives pre-sorted, ClickHouse can skip or simplify the internal sorti ### Native {#choose-an-interface-native} -ClickHouse offers two main interfaces for data ingestion: the **native interface** and the **HTTP interface**—each with trade-offs between performance and flexibility. The native interface, used by [clickhouse-client](/integrations/connectors/data-integrations/drivers-and-interfaces/cli) and select language clients like Go and C++, is purpose-built for performance. It always transmits data in ClickHouse's highly efficient Native format, supports block-wise compression with LZ4 or ZSTD, and minimizes server-side processing by offloading work such as parsing and format conversion to the client. +ClickHouse offers two main interfaces for data ingestion: the **native interface** and the **HTTP interface**—each with trade-offs between performance and flexibility. The native interface, used by [clickhouse-client](/core/concepts/features/interfaces/cli) and select language clients like Go and C++, is purpose-built for performance. It always transmits data in ClickHouse's highly efficient Native format, supports block-wise compression with LZ4 or ZSTD, and minimizes server-side processing by offloading work such as parsing and format conversion to the client. It even enables client-side computation of MATERIALIZED and DEFAULT column values, allowing the server to skip these steps entirely. This makes the native interface ideal for high-throughput ingestion scenarios where efficiency is critical. ### HTTP {#choose-an-interface-http} -Unlike many traditional databases, ClickHouse also supports an HTTP interface. **This, by contrast, prioritizes compatibility and flexibility.** It allows data to be sent in [any supported format](/integrations/connectors/data-ingestion/data-formats/intro)—including JSON, CSV, Parquet, and others—and is widely supported across most ClickHouse clients, including Python, Java, JavaScript, and Rust. +Unlike many traditional databases, ClickHouse also supports an HTTP interface. **This, by contrast, prioritizes compatibility and flexibility.** It allows data to be sent in [any supported format](/core/guides/clickhouse/data-formats/intro)—including JSON, CSV, Parquet, and others—and is widely supported across most ClickHouse clients, including Python, Java, JavaScript, and Rust. This is often preferable to ClickHouse's native protocol as it allows traffic to be easily switched with load balancers. We expect small differences in insert performance with the native protocol, which incurs a little less overhead. However, it lacks the native protocol's deeper integration and can't perform client-side optimizations like materialized value computation or automatic conversion to Native format. While HTTP inserts can still be compressed using standard HTTP headers (e.g. `Content-Encoding: lz4`), the compression is applied to the entire payload rather than individual data blocks. This interface is often preferred in environments where protocol simplicity, load balancing, or broad format compatibility is more important than raw performance. -For a more detailed description of these interfaces see [here](/integrations/connectors/data-integrations/drivers-and-interfaces/overview). +For a more detailed description of these interfaces see [here](/core/concepts/features/interfaces/overview). diff --git a/concepts/best-practices/use-materialized-views.mdx b/core/concepts/best-practices/use-materialized-views.mdx similarity index 87% rename from concepts/best-practices/use-materialized-views.mdx rename to core/concepts/best-practices/use-materialized-views.mdx index 7c836624..3b9061c6 100644 --- a/concepts/best-practices/use-materialized-views.mdx +++ b/core/concepts/best-practices/use-materialized-views.mdx @@ -10,9 +10,9 @@ doc_type: 'guide' import { Image } from "/snippets/components/Image.jsx"; -ClickHouse supports two types of materialized views: [**incremental**](/concepts/features/materialized-views/incremental-materialized-view) and [**refreshable**](/concepts/features/materialized-views/refreshable-materialized-view). While both are designed to accelerate queries by pre-computing and storing results, they differ significantly in how and when the underlying queries are executed, what workloads they're suited for, and how data freshness is handled. +ClickHouse supports two types of materialized views: [**incremental**](/core/concepts/features/materialized-views/incremental-materialized-view) and [**refreshable**](/core/concepts/features/materialized-views/refreshable-materialized-view). While both are designed to accelerate queries by pre-computing and storing results, they differ significantly in how and when the underlying queries are executed, what workloads they're suited for, and how data freshness is handled. -**You should consider materialized views for specific query patterns which need to be accelerated, assuming previous best practices [regarding type](/concepts/best-practices/select-data-type) and [primary key optimization](/concepts/best-practices/choosing-a-primary-key) have been performed.** +**You should consider materialized views for specific query patterns which need to be accelerated, assuming previous best practices [regarding type](/core/concepts/best-practices/select-data-type) and [primary key optimization](/core/concepts/best-practices/choosing-a-primary-key) have been performed.** **Incremental materialized views** are updated in real-time. As new data is inserted into the source table, ClickHouse automatically applies the materialized view's query to the new data block and writes the results to a separate target table. Over time, ClickHouse merges these partial results to produce a complete, up-to-date view. This approach is highly efficient because it shifts the computational cost to insert time and only processes new data. As a result, `SELECT` queries against the target table are fast and lightweight. Incremental views support all aggregation functions and scale well—even to petabytes of data—because each query operates on a small, recent subset of the dataset being inserted. @@ -34,7 +34,7 @@ Use incremental materialized views when: - You're aggregating or filtering large volumes of data frequently. - Your queries involve straightforward transformations or aggregations on single tables. -For examples of incremental materialized views see [here](/concepts/features/materialized-views/incremental-materialized-view). +For examples of incremental materialized views see [here](/core/concepts/features/materialized-views/incremental-materialized-view). ## When to use refreshable materialized views {#when-to-use-refreshable-materialized-views} @@ -54,7 +54,7 @@ In summary, use refreshable materialized views when: - You're performing complex joins or denormalization involving multiple tables, requiring updates whenever any source table changes. - You're building batch workflows, denormalization tasks, or creating view dependencies similar to DBT DAGs. -For examples of refreshable materialized views see [here](/concepts/features/materialized-views/refreshable-materialized-view). +For examples of refreshable materialized views see [here](/core/concepts/features/materialized-views/refreshable-materialized-view). ### APPEND vs REPLACE mode {#append-vs-replace-mode} diff --git a/concepts/best-practices/using-data-skipping-indices.mdx b/core/concepts/best-practices/using-data-skipping-indices.mdx similarity index 93% rename from concepts/best-practices/using-data-skipping-indices.mdx rename to core/concepts/best-practices/using-data-skipping-indices.mdx index 47d9c581..cbc52bf9 100644 --- a/concepts/best-practices/using-data-skipping-indices.mdx +++ b/core/concepts/best-practices/using-data-skipping-indices.mdx @@ -10,13 +10,13 @@ doc_type: 'guide' import { Image } from "/snippets/components/Image.jsx"; -Data skipping indices should be considered when previous best practices have been followed i.e. types are optimized, a good primary key has been selected and materialized views have been exploited. If you're new to skipping indices, [this guide](/concepts/features/performance/skip-indexes/skipping-indexes) is a good place to start. +Data skipping indices should be considered when previous best practices have been followed i.e. types are optimized, a good primary key has been selected and materialized views have been exploited. If you're new to skipping indices, [this guide](/core/concepts/features/performance/skip-indexes/skipping-indexes) is a good place to start. These types of indices can be used to accelerate query performance if used carefully with an understanding of how they work. ClickHouse provides a powerful mechanism called **data skipping indices** that can dramatically reduce the amount of data scanned during query execution — particularly when the primary key isn't helpful for a specific filter condition. Unlike traditional databases that rely on row-based secondary indexes (like B-trees), ClickHouse is a column-store and doesn't store row locations in a way that supports such structures. Instead, it uses skip indexes, which help it avoid reading blocks of data guaranteed not to match a query's filtering conditions. -Skip indexes work by storing metadata about blocks of data — such as min/max values, value sets, or Bloom filter representations — and using this metadata during query execution to determine which data blocks can be skipped entirely. They apply only to the [MergeTree family](/reference/engines/table-engines/mergetree-family/mergetree) of table engines and are defined using an expression, an index type, a name, and a granularity that defines the size of each indexed block. These indexes are stored alongside the table data and are consulted when the query filter matches the index expression. +Skip indexes work by storing metadata about blocks of data — such as min/max values, value sets, or Bloom filter representations — and using this metadata during query execution to determine which data blocks can be skipped entirely. They apply only to the [MergeTree family](/core/reference/engines/table-engines/mergetree-family/mergetree) of table engines and are defined using an expression, an index type, a name, and a granularity that defines the size of each indexed block. These indexes are stored alongside the table data and are consulted when the query filter matches the index expression. There are several types of data skipping indexes, each suited to different types of queries and data distributions: @@ -45,7 +45,7 @@ Always:

**When used appropriately, skip indexes can provide a substantial performance boost — when used blindly, they can add unnecessary cost.** -For a more detailed guide on Data Skipping Indices see [here](/reference/statements/alter/skipping-index). +For a more detailed guide on Data Skipping Indices see [here](/core/reference/statements/alter/skipping-index). ## Example {#example} @@ -251,7 +251,7 @@ We also show an animation how the minmax skipping index prunes all row blocks th Using skipping indices ## Related docs {#related-docs} -- [Data skipping indices guide](/concepts/features/performance/skip-indexes/skipping-indexes) -- [Data skipping index examples](/concepts/features/performance/skip-indexes/skipping-indexes-examples) -- [Manipulating data skipping indices](/reference/statements/alter/skipping-index) -- [System table information](/reference/system-tables/data_skipping_indices) +- [Data skipping indices guide](/core/concepts/features/performance/skip-indexes/skipping-indexes) +- [Data skipping index examples](/core/concepts/features/performance/skip-indexes/skipping-indexes-examples) +- [Manipulating data skipping indices](/core/reference/statements/alter/skipping-index) +- [System table information](/core/reference/system-tables/data_skipping_indices) diff --git a/concepts/core-concepts/academic-overview.mdx b/core/concepts/core-concepts/academic-overview.mdx similarity index 100% rename from concepts/core-concepts/academic-overview.mdx rename to core/concepts/core-concepts/academic-overview.mdx diff --git a/concepts/core-concepts/glossary.mdx b/core/concepts/core-concepts/glossary.mdx similarity index 99% rename from concepts/core-concepts/glossary.mdx rename to core/concepts/core-concepts/glossary.mdx index cc3cad88..6a66fda1 100644 --- a/concepts/core-concepts/glossary.mdx +++ b/core/concepts/core-concepts/glossary.mdx @@ -2,7 +2,7 @@ sidebarTitle: 'Glossary' description: 'This page contains a list of commonly used words and phrases regarding ClickHouse, as well as their definitions.' title: 'Glossary' -slug: /concepts/glossary +slug: /core/concepts/glossary keywords: ['glossary', 'definitions', 'terminology'] doc_type: 'reference' --- diff --git a/concepts/core-concepts/index.mdx b/core/concepts/core-concepts/index.mdx similarity index 73% rename from concepts/core-concepts/index.mdx rename to core/concepts/core-concepts/index.mdx index e48655cd..d504dcea 100644 --- a/concepts/core-concepts/index.mdx +++ b/core/concepts/core-concepts/index.mdx @@ -11,9 +11,9 @@ you will learn some of the core concepts of how ClickHouse works. | Page | Description | |----------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Table parts](/concepts/core-concepts/parts) | Learn what table parts are in ClickHouse. | +| [Table parts](/core/concepts/core-concepts/parts) | Learn what table parts are in ClickHouse. | | [Table partitions](./partitions.mdx) | Learn what table partitions are and what they're used for. | | [Table part merges](./merges.mdx) | Learn what table part merges are and what they're used for. | -| [Table shards and replicas](/guides/oss/deployment-and-scaling/shards) | Learn what table shards and replicas are and what they're used for. | +| [Table shards and replicas](/core/guides/oss/deployment-and-scaling/shards) | Learn what table shards and replicas are and what they're used for. | | [Primary indexes](./primary-indexes.mdx) | Introduces ClickHouse's sparse primary index and how it helps efficiently skip unnecessary data during query execution. Explains how the index is built and used, with examples and tools for observing its effect. Links to a deep dive for advanced use cases and best practices. | -| [Architectural Overview](/concepts/core-concepts/academic-overview) | A concise academic overview of all components of the ClickHouse architecture, based on our VLDB 2024 scientific paper. | +| [Architectural Overview](/core/concepts/core-concepts/academic-overview) | A concise academic overview of all components of the ClickHouse architecture, based on our VLDB 2024 scientific paper. | diff --git a/concepts/core-concepts/merges.mdx b/core/concepts/core-concepts/merges.mdx similarity index 57% rename from concepts/core-concepts/merges.mdx rename to core/concepts/core-concepts/merges.mdx index 8bcd1e33..8dbb16e3 100644 --- a/concepts/core-concepts/merges.mdx +++ b/core/concepts/core-concepts/merges.mdx @@ -11,15 +11,15 @@ import { Image } from "/snippets/components/Image.jsx"; ## What are part merges in ClickHouse? {#what-are-part-merges-in-clickhouse}
-ClickHouse [is fast](/get-started/about/why-clickhouse-is-so-fast) not just for queries but also for inserts, thanks to its [storage layer](https://www.vldb.org/pvldb/vol17/p3731-schulze.pdf), which operates similarly to [LSM trees](https://en.wikipedia.org/wiki/Log-structured_merge-tree): +ClickHouse [is fast](/core/get-started/about/why-clickhouse-is-so-fast) not just for queries but also for inserts, thanks to its [storage layer](https://www.vldb.org/pvldb/vol17/p3731-schulze.pdf), which operates similarly to [LSM trees](https://en.wikipedia.org/wiki/Log-structured_merge-tree): -① Inserts (into tables from the [MergeTree engine](/reference/engines/table-engines/mergetree-family) family) create sorted, immutable [data parts](/concepts/core-concepts/parts). +① Inserts (into tables from the [MergeTree engine](/core/reference/engines/table-engines/mergetree-family) family) create sorted, immutable [data parts](/core/concepts/core-concepts/parts). ② All data processing is offloaded to **background part merges**. -This makes data writes lightweight and [highly efficient](/get-started/about/why-clickhouse-is-so-fast#storage-layer-concurrent-inserts-are-isolated-from-each-other). +This makes data writes lightweight and [highly efficient](/core/get-started/about/why-clickhouse-is-so-fast#storage-layer-concurrent-inserts-are-isolated-from-each-other). -To control the number of parts per table and implement ② above, ClickHouse continuously merges ([per partition](/concepts/core-concepts/partitions#per-partition-merges)) smaller parts into larger ones in the background until they reach a compressed size of approximately [~150 GB](/reference/settings/merge-tree-settings#max_bytes_to_merge_at_max_space_in_pool). +To control the number of parts per table and implement ② above, ClickHouse continuously merges ([per partition](/core/concepts/core-concepts/partitions#per-partition-merges)) smaller parts into larger ones in the background until they reach a compressed size of approximately [~150 GB](/core/reference/settings/merge-tree-settings#max_bytes_to_merge_at_max_space_in_pool). The following diagram sketches this background merge process: @@ -27,10 +27,10 @@ The following diagram sketches this background merge process:
-The `merge level` of a part is incremented by one with each additional merge. A level of `0` means the part is new and hasn't been merged yet. Parts that were merged into larger parts are marked as [inactive](/reference/system-tables/parts) and finally deleted after a [configurable](/reference/settings/merge-tree-settings#old_parts_lifetime) time (8 minutes by default). Over time, this creates a **tree** of merged parts. Hence the name [merge tree](/reference/engines/table-engines/mergetree-family) table. +The `merge level` of a part is incremented by one with each additional merge. A level of `0` means the part is new and hasn't been merged yet. Parts that were merged into larger parts are marked as [inactive](/core/reference/system-tables/parts) and finally deleted after a [configurable](/core/reference/settings/merge-tree-settings#old_parts_lifetime) time (8 minutes by default). Over time, this creates a **tree** of merged parts. Hence the name [merge tree](/core/reference/engines/table-engines/mergetree-family) table. ## Monitoring merges {#monitoring-merges} -In the [what are table parts](/concepts/core-concepts/parts) example, we [showed](/concepts/core-concepts/parts#monitoring-table-parts) that ClickHouse tracks all table parts in the [parts](/reference/system-tables/parts) system table. We used the following query to retrieve the merge level and the number of stored rows per active part of the example table: +In the [what are table parts](/core/concepts/core-concepts/parts) example, we [showed](/core/concepts/core-concepts/parts#monitoring-table-parts) that ClickHouse tracks all table parts in the [parts](/core/reference/system-tables/parts) system table. We used the following query to retrieve the merge level and the number of stored rows per active part of the example table: ```sql SELECT name, @@ -41,7 +41,7 @@ WHERE (database = 'uk') AND (`table` = 'uk_price_paid_simple') AND active ORDER BY name ASC; ``` -The [previously documented](/concepts/core-concepts/parts#monitoring-table-parts) query result shows that the example table had four active parts, each created from a single merge of the initially inserted parts: +The [previously documented](/core/concepts/core-concepts/parts#monitoring-table-parts) query result shows that the example table had four active parts, each created from a single merge of the initially inserted parts: ```response ┌─name────────┬─level─┬────rows─┐ 1. │ all_0_5_1 │ 1 │ 6368414 │ @@ -74,7 +74,7 @@ The recorded dashboard above captures the entire process, from the initial data ③ [Write amplification](https://en.wikipedia.org/wiki/Write_amplification). ## Concurrent merges {#concurrent-merges} -A single ClickHouse server uses several background [merge threads](/reference/settings/server-settings/settings#background_pool_size) to execute concurrent part merges: +A single ClickHouse server uses several background [merge threads](/core/reference/settings/server-settings/settings#background_pool_size) to execute concurrent part merges: PART MERGES @@ -93,10 +93,10 @@ Go to ① Note that increasing the number of CPU cores and the size of RAM allows to increase the background merge throughput. ## Memory optimized merges {#memory-optimized-merges} -ClickHouse doesn't necessarily load all parts to be merged into memory at once, as sketched in the [previous example](/concepts/core-concepts/merges#concurrent-merges). Based on several [factors](https://github.com/ClickHouse/ClickHouse/blob/bf37120c925ed846ae5cd72cd51e6340bebd2918/src/Storages/MergeTree/MergeTreeSettings.cpp#L210), and to reduce memory consumption (sacrificing merge speed), so-called [vertical merging](https://github.com/ClickHouse/ClickHouse/blob/bf37120c925ed846ae5cd72cd51e6340bebd2918/src/Storages/MergeTree/MergeTreeSettings.cpp#L209) loads and merges parts by chunks of blocks instead of in one go. +ClickHouse doesn't necessarily load all parts to be merged into memory at once, as sketched in the [previous example](/core/concepts/core-concepts/merges#concurrent-merges). Based on several [factors](https://github.com/ClickHouse/ClickHouse/blob/bf37120c925ed846ae5cd72cd51e6340bebd2918/src/Storages/MergeTree/MergeTreeSettings.cpp#L210), and to reduce memory consumption (sacrificing merge speed), so-called [vertical merging](https://github.com/ClickHouse/ClickHouse/blob/bf37120c925ed846ae5cd72cd51e6340bebd2918/src/Storages/MergeTree/MergeTreeSettings.cpp#L209) loads and merges parts by chunks of blocks instead of in one go. ## Merge mechanics {#merge-mechanics} -The diagram below illustrates how a single background [merge thread](/concepts/core-concepts/merges#concurrent-merges) in ClickHouse merges parts (by default, without [vertical merging](/concepts/core-concepts/merges#memory-optimized-merges)): +The diagram below illustrates how a single background [merge thread](/core/concepts/core-concepts/merges#concurrent-merges) in ClickHouse merges parts (by default, without [vertical merging](/core/concepts/core-concepts/merges#memory-optimized-merges)): PART MERGES @@ -104,33 +104,33 @@ The diagram below illustrates how a single background [merge thread](/concepts/c The part merging is performed in several steps: -**① Decompression & Loading**: The [compressed binary column files](/concepts/core-concepts/parts#what-are-table-parts-in-clickhouse) from the parts to be merged are decompressed and loaded into memory. +**① Decompression & Loading**: The [compressed binary column files](/core/concepts/core-concepts/parts#what-are-table-parts-in-clickhouse) from the parts to be merged are decompressed and loaded into memory. **② Merging**: The data is merged into larger column files. -**③ Indexing**: A new [sparse primary index](/guides/cloud-oss/data-modelling/sparse-primary-indexes) is generated for the merged column files. +**③ Indexing**: A new [sparse primary index](/core/guides/clickhouse/data-modelling/sparse-primary-indexes) is generated for the merged column files. -**④ Compression & Storage**: The new column files and index are [compressed](/reference/statements/create/table#column_compression_codec) and saved in a new [directory](/concepts/core-concepts/parts#what-are-table-parts-in-clickhouse) representing the merged data part. +**④ Compression & Storage**: The new column files and index are [compressed](/core/reference/statements/create/table#column_compression_codec) and saved in a new [directory](/core/concepts/core-concepts/parts#what-are-table-parts-in-clickhouse) representing the merged data part. -Additional [metadata in data parts](/concepts/core-concepts/parts), such as secondary data skipping indexes, column statistics, checksums, and min-max indexes, is also recreated based on the merged column files. We omitted these details for simplicity. +Additional [metadata in data parts](/core/concepts/core-concepts/parts), such as secondary data skipping indexes, column statistics, checksums, and min-max indexes, is also recreated based on the merged column files. We omitted these details for simplicity. -The mechanics of step ② depend on the specific [MergeTree engine](/reference/engines/table-engines/mergetree-family) used, as different engines handle merging differently. For example, rows may be aggregated or replaced if outdated. As mentioned earlier, this approach **offloads all data processing to background merges**, enabling **super-fast inserts** by keeping write operations lightweight and efficient. +The mechanics of step ② depend on the specific [MergeTree engine](/core/reference/engines/table-engines/mergetree-family) used, as different engines handle merging differently. For example, rows may be aggregated or replaced if outdated. As mentioned earlier, this approach **offloads all data processing to background merges**, enabling **super-fast inserts** by keeping write operations lightweight and efficient. Next, we will briefly outline the merge mechanics of specific engines in the MergeTree family. ### Standard merges {#standard-merges} -The diagram below illustrates how parts in a standard [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) table are merged: +The diagram below illustrates how parts in a standard [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) table are merged: PART MERGES
-The DDL statement in the diagram above creates a `MergeTree` table with a sorting key `(town, street)`, [meaning](/concepts/core-concepts/parts#what-are-table-parts-in-clickhouse) data on disk is sorted by these columns, and a sparse primary index is generated accordingly. +The DDL statement in the diagram above creates a `MergeTree` table with a sorting key `(town, street)`, [meaning](/core/concepts/core-concepts/parts#what-are-table-parts-in-clickhouse) data on disk is sorted by these columns, and a sparse primary index is generated accordingly. The ① decompressed, pre-sorted table columns are ② merged while preserving the table's global sorting order defined by the table's sorting key, ③ a new sparse primary index is generated, and ④ the merged column files and index are compressed and stored as a new data part on disk. ### Replacing merges {#replacing-merges} -Part merges in a [ReplacingMergeTree](/reference/engines/table-engines/mergetree-family/replacingmergetree) table work similarly to [standard merges](/concepts/core-concepts/merges#standard-merges), but only the most recent version of each row is retained, with older versions being discarded: +Part merges in a [ReplacingMergeTree](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) table work similarly to [standard merges](/core/concepts/core-concepts/merges#standard-merges), but only the most recent version of each row is retained, with older versions being discarded: PART MERGES @@ -145,7 +145,7 @@ However, the `ReplacingMergeTree` removes duplicate rows with the same sorting k
### Summing merges {#summing-merges} -Numeric data is automatically summarized during merges of parts from a [SummingMergeTree](/reference/engines/table-engines/mergetree-family/summingmergetree) table: +Numeric data is automatically summarized during merges of parts from a [SummingMergeTree](/core/reference/engines/table-engines/mergetree-family/summingmergetree) table: PART MERGES @@ -156,7 +156,7 @@ The DDL statement in the diagram above defines a `SummingMergeTree` table with ` In the ② merging step, ClickHouse replaces all rows with the same sorting key with a single row, summing the values of numeric columns. ### Aggregating merges {#aggregating-merges} -The `SummingMergeTree` table example from above is a specialized variant of the [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) table, allowing [automatic incremental data transformation](https://www.youtube.com/watch?v=QDAJTKZT8y4) by applying any of [90+](/reference/functions/aggregate-functions/reference) aggregation functions during part merges: +The `SummingMergeTree` table example from above is a specialized variant of the [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) table, allowing [automatic incremental data transformation](https://www.youtube.com/watch?v=QDAJTKZT8y4) by applying any of [90+](/core/reference/functions/aggregate-functions/reference) aggregation functions during part merges: PART MERGES diff --git a/concepts/core-concepts/partitions.mdx b/core/concepts/core-concepts/partitions.mdx similarity index 76% rename from concepts/core-concepts/partitions.mdx rename to core/concepts/core-concepts/partitions.mdx index 9467d405..2f8d797f 100644 --- a/concepts/core-concepts/partitions.mdx +++ b/core/concepts/core-concepts/partitions.mdx @@ -12,12 +12,12 @@ import { RunnableCode } from "/snippets/components/RunnableCode/RunnableCode.jsx ## What are table partitions in ClickHouse? {#what-are-table-partitions-in-clickhouse}
-Partitions group the [data parts](/concepts/core-concepts/parts) of a table in the [MergeTree engine family](/reference/engines/table-engines/mergetree-family) into organized, logical units, which is a way of organizing data that is conceptually meaningful and aligned with specific criteria, such as time ranges, categories, or other key attributes. These logical units make data easier to manage, query, and optimize. +Partitions group the [data parts](/core/concepts/core-concepts/parts) of a table in the [MergeTree engine family](/core/reference/engines/table-engines/mergetree-family) into organized, logical units, which is a way of organizing data that is conceptually meaningful and aligned with specific criteria, such as time ranges, categories, or other key attributes. These logical units make data easier to manage, query, and optimize. ### PARTITION BY {#partition-by} -Partitioning can be enabled when a table is initially defined via the [PARTITION BY clause](/reference/engines/table-engines/mergetree-family/custom-partitioning-key). This clause can contain a SQL expression on any columns, the results of which will define which partition a row belongs to. +Partitioning can be enabled when a table is initially defined via the [PARTITION BY clause](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key). This clause can contain a SQL expression on any columns, the results of which will define which partition a row belongs to. -To illustrate this, we [enhance](https://sql.clickhouse.com/?query=U0hPVyBDUkVBVEUgVEFCTEUgdWsudWtfcHJpY2VfcGFpZF9zaW1wbGVfcGFydGl0aW9uZWQ&run_query=true&tab=results) the [What are table parts](/concepts/core-concepts/parts) example table by adding a `PARTITION BY toStartOfMonth(date)` clause, which organizes the table`s data parts based on the months of property sales: +To illustrate this, we [enhance](https://sql.clickhouse.com/?query=U0hPVyBDUkVBVEUgVEFCTEUgdWsudWtfcHJpY2VfcGFpZF9zaW1wbGVfcGFydGl0aW9uZWQ&run_query=true&tab=results) the [What are table parts](/core/concepts/core-concepts/parts) example table by adding a `PARTITION BY toStartOfMonth(date)` clause, which organizes the table`s data parts based on the months of property sales: ```sql CREATE TABLE uk.uk_price_paid_simple_partitioned @@ -35,19 +35,19 @@ PARTITION BY toStartOfMonth(date); You can [query this table](https://sql.clickhouse.com/?query=U0VMRUNUICogRlJPTSB1ay51a19wcmljZV9wYWlkX3NpbXBsZV9wYXJ0aXRpb25lZA&run_query=true&tab=results) in our ClickHouse SQL Playground. ### Structure on disk {#structure-on-disk} -Whenever a set of rows is inserted into the table, instead of creating (at [least](/reference/settings/session-settings#max_insert_block_size)) one single data part containing all the inserted rows (as described [here](/concepts/core-concepts/parts)), ClickHouse creates one new data part for each unique partition key value among the inserted rows: +Whenever a set of rows is inserted into the table, instead of creating (at [least](/core/reference/settings/session-settings#max_insert_block_size)) one single data part containing all the inserted rows (as described [here](/core/concepts/core-concepts/parts)), ClickHouse creates one new data part for each unique partition key value among the inserted rows: INSERT PROCESSING
The ClickHouse server first splits the rows from the example insert with 4 rows sketched in the diagram above by their partition key value `toStartOfMonth(date)`. -Then, for each identified partition, the rows are processed as [usual](/concepts/core-concepts/parts) by performing several sequential steps (① Sorting, ② Splitting into columns, ③ Compression, ④ Writing to Disk). +Then, for each identified partition, the rows are processed as [usual](/core/concepts/core-concepts/parts) by performing several sequential steps (① Sorting, ② Splitting into columns, ③ Compression, ④ Writing to Disk). Note that with partitioning enabled, ClickHouse automatically creates [MinMax indexes](https://github.com/ClickHouse/ClickHouse/blob/dacc8ebb0dac5bbfce5a7541e7fc70f26f7d5065/src/Storages/MergeTree/IMergeTreeDataPart.h#L341) for each data part. These are simply files for each table column used in the partition key expression, containing the minimum and maximum values of that column within the data part. ### Per partition merges {#per-partition-merges} -With partitioning enabled, ClickHouse only [merges](/concepts/core-concepts/merges) data parts within, but not across partitions. We sketch that for our example table from above: +With partitioning enabled, ClickHouse only [merges](/core/concepts/core-concepts/merges) data parts within, but not across partitions. We sketch that for our example table from above: PART MERGES @@ -56,7 +56,7 @@ With partitioning enabled, ClickHouse only [merges](/concepts/core-concepts/merg As sketched in the diagram above, parts belonging to different partitions are never merged. If a partition key with high cardinality is chosen, then parts spread across thousands of partitions will never be merge candidates - exceeding preconfigured limits and causing the dreaded `Too many parts` error. Addressing this problem is simple: choose a sensible partition key with [cardinality under 1000..10000](https://github.com/ClickHouse/ClickHouse/blob/ffc5b2c56160b53cf9e5b16cfb73ba1d956f7ce4/src/Storages/MergeTree/MergeTreeDataWriter.cpp#L121). ## Monitoring partitions {#monitoring-partitions} -You can [query](https://sql.clickhouse.com/?query=U0VMRUNUIERJU1RJTkNUIF9wYXJ0aXRpb25fdmFsdWUgQVMgcGFydGl0aW9uCkZST00gdWsudWtfcHJpY2VfcGFpZF9zaW1wbGVfcGFydGl0aW9uZWQKT1JERVIgQlkgcGFydGl0aW9uIEFTQw&run_query=true&tab=results) the list of all existing unique partitions of our example table by using the [virtual column](/reference/engines/table-engines#table_engines-virtual_columns) `_partition_value`: +You can [query](https://sql.clickhouse.com/?query=U0VMRUNUIERJU1RJTkNUIF9wYXJ0aXRpb25fdmFsdWUgQVMgcGFydGl0aW9uCkZST00gdWsudWtfcHJpY2VfcGFpZF9zaW1wbGVfcGFydGl0aW9uZWQKT1JERVIgQlkgcGFydGl0aW9uIEFTQw&run_query=true&tab=results) the list of all existing unique partitions of our example table by using the [virtual column](/core/reference/engines/table-engines#table_engines-virtual_columns) `_partition_value`: ```sql @@ -65,7 +65,7 @@ FROM uk.uk_price_paid_simple_partitioned ORDER BY partition ASC; ``` -Alternatively, ClickHouse tracks all parts and partitions of all tables in the [system.parts](/reference/system-tables/parts) system table, and the following query [returns](https://sql.clickhouse.com/?query=U0VMRUNUCiAgICBwYXJ0aXRpb24sCiAgICBjb3VudCgpIEFTIHBhcnRzLAogICAgc3VtKHJvd3MpIEFTIHJvd3MKRlJPTSBzeXN0ZW0ucGFydHMKV0hFUkUgKGRhdGFiYXNlID0gJ3VrJykgQU5EIChgdGFibGVgID0gJ3VrX3ByaWNlX3BhaWRfc2ltcGxlX3BhcnRpdGlvbmVkJykgQU5EIGFjdGl2ZQpHUk9VUCBCWSBwYXJ0aXRpb24KT1JERVIgQlkgcGFydGl0aW9uIEFTQzs&run_query=true&tab=results) for our example table above the list of all partitions, plus the current number of active parts and the sum of rows in these parts per partition: +Alternatively, ClickHouse tracks all parts and partitions of all tables in the [system.parts](/core/reference/system-tables/parts) system table, and the following query [returns](https://sql.clickhouse.com/?query=U0VMRUNUCiAgICBwYXJ0aXRpb24sCiAgICBjb3VudCgpIEFTIHBhcnRzLAogICAgc3VtKHJvd3MpIEFTIHJvd3MKRlJPTSBzeXN0ZW0ucGFydHMKV0hFUkUgKGRhdGFiYXNlID0gJ3VrJykgQU5EIChgdGFibGVgID0gJ3VrX3ByaWNlX3BhaWRfc2ltcGxlX3BhcnRpdGlvbmVkJykgQU5EIGFjdGl2ZQpHUk9VUCBCWSBwYXJ0aXRpb24KT1JERVIgQlkgcGFydGl0aW9uIEFTQzs&run_query=true&tab=results) for our example table above the list of all partitions, plus the current number of active parts and the sum of rows in these parts per partition: ```sql @@ -81,7 +81,7 @@ ORDER BY partition ASC; ## What are table partitions used for? {#what-are-table-partitions-used-for} ### Data management {#data-management} -In ClickHouse, partitioning is primarily a data management feature. By organizing data logically based on a partition expression, each partition can be managed independently. For instance, the partitioning scheme in the example table above enables scenarios where only the last 12 months of data are retained in the main table by automatically removing older data using a [TTL rule](/concepts/operations/delete/ttl) (see the added last row of the DDL statement): +In ClickHouse, partitioning is primarily a data management feature. By organizing data logically based on a partition expression, each partition can be managed independently. For instance, the partitioning scheme in the example table above enables scenarios where only the last 12 months of data are retained in the main table by automatically removing older data using a [TTL rule](/core/concepts/features/operations/delete/ttl) (see the added last row of the DDL statement): ```sql CREATE TABLE uk.uk_price_paid_simple_partitioned @@ -96,7 +96,7 @@ PARTITION BY toStartOfMonth(date) ORDER BY (town, street) TTL date + INTERVAL 12 MONTH DELETE; ``` -Since the table is partitioned by `toStartOfMonth(date)`, entire partitions (sets of [table parts](/concepts/core-concepts/parts)) that meet the TTL condition will be dropped, making the cleanup operation more efficient, [without having to rewrite parts](/reference/statements/alter#mutations). +Since the table is partitioned by `toStartOfMonth(date)`, entire partitions (sets of [table parts](/core/concepts/core-concepts/parts)) that meet the TTL condition will be dropped, making the cleanup operation more efficient, [without having to rewrite parts](/core/reference/statements/alter#mutations). Similarly, instead of deleting old data, it can be automatically and efficiently moved to a more cost-effective [storage tier](/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse#storage-tiers): @@ -134,11 +134,11 @@ ClickHouse processes that query by applying a sequence of pruning techniques to
-① **Partition pruning**: [MinMax indexes](/concepts/core-concepts/partitions#what-are-table-partitions-in-clickhouse) are used to ignore whole partitions (sets of parts) that logically can't match the query's filter on columns used in the table's partition key. +① **Partition pruning**: [MinMax indexes](/core/concepts/core-concepts/partitions#what-are-table-partitions-in-clickhouse) are used to ignore whole partitions (sets of parts) that logically can't match the query's filter on columns used in the table's partition key. -② **Granule pruning**: For the remaining data parts after step ①, their [primary index](/guides/cloud-oss/data-modelling/sparse-primary-indexes) is used to ignore all [granules](/guides/cloud-oss/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing) (blocks of rows) that logically can't match the query's filter on columns used in the table's primary key. +② **Granule pruning**: For the remaining data parts after step ①, their [primary index](/core/guides/clickhouse/data-modelling/sparse-primary-indexes) is used to ignore all [granules](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing) (blocks of rows) that logically can't match the query's filter on columns used in the table's primary key. -We can observe these data pruning steps by [inspecting](https://sql.clickhouse.com/?query=RVhQTEFJTiBpbmRleGVzID0gMQpTRUxFQ1QgTUFYKHByaWNlKSBBUyBoaWdoZXN0X3ByaWNlCkZST00gdWsudWtfcHJpY2VfcGFpZF9zaW1wbGVfcGFydGl0aW9uZWQKV0hFUkUgZGF0ZSA-PSAnMjAyMC0xMi0wMScKICBBTkQgZGF0ZSA8PSAnMjAyMC0xMi0zMScKICBBTkQgdG93biA9ICdMT05ET04nOw&run_query=true&tab=results) the physical query execution plan for our example query from above via an [EXPLAIN](/reference/statements/explain) clause : +We can observe these data pruning steps by [inspecting](https://sql.clickhouse.com/?query=RVhQTEFJTiBpbmRleGVzID0gMQpTRUxFQ1QgTUFYKHByaWNlKSBBUyBoaWdoZXN0X3ByaWNlCkZST00gdWsudWtfcHJpY2VfcGFpZF9zaW1wbGVfcGFydGl0aW9uZWQKV0hFUkUgZGF0ZSA-PSAnMjAyMC0xMi0wMScKICBBTkQgZGF0ZSA8PSAnMjAyMC0xMi0zMScKICBBTkQgdG93biA9ICdMT05ET04nOw&run_query=true&tab=results) the physical query execution plan for our example query from above via an [EXPLAIN](/core/reference/statements/explain) clause : ```sql style="fontSize:13px" EXPLAIN indexes = 1 @@ -178,23 +178,23 @@ WHERE date >= '2020-12-01' The output above shows: -① Partition pruning: Row 7 to 18 of the EXPLAIN output above show that ClickHouse first uses the `date` field's [MinMax index](/concepts/core-concepts/partitions#what-are-table-partitions-in-clickhouse) to identify 11 out of 3257 existing [granules](/guides/cloud-oss/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing) (blocks of rows) stored in 1 out of 436 existing active data parts that contain rows matching the query's `date` filter. +① Partition pruning: Row 7 to 18 of the EXPLAIN output above show that ClickHouse first uses the `date` field's [MinMax index](/core/concepts/core-concepts/partitions#what-are-table-partitions-in-clickhouse) to identify 11 out of 3257 existing [granules](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing) (blocks of rows) stored in 1 out of 436 existing active data parts that contain rows matching the query's `date` filter. -② Granule pruning: Row 19 to 24 of the EXPLAIN output above indicate that ClickHouse then uses the [primary index](/guides/cloud-oss/data-modelling/sparse-primary-indexes) (created over the `town`-field) of the data part identified in step ① to further reduce the number of granules (that contain rows potentially also matching the query's `town` filter) from 11 to 1. This is also reflected in the ClickHouse-client output that we printed further above for the query run: +② Granule pruning: Row 19 to 24 of the EXPLAIN output above indicate that ClickHouse then uses the [primary index](/core/guides/clickhouse/data-modelling/sparse-primary-indexes) (created over the `town`-field) of the data part identified in step ① to further reduce the number of granules (that contain rows potentially also matching the query's `town` filter) from 11 to 1. This is also reflected in the ClickHouse-client output that we printed further above for the query run: ```response ... Elapsed: 0.006 sec. Processed 8.19 thousand rows, 57.34 KB (1.36 million rows/s., 9.49 MB/s.) Peak memory usage: 2.73 MiB. ``` -Meaning that ClickHouse scanned and processed 1 granule (block of [8192](/reference/settings/merge-tree-settings#index_granularity) rows) in 6 milliseconds for calculating the query result. +Meaning that ClickHouse scanned and processed 1 granule (block of [8192](/core/reference/settings/merge-tree-settings#index_granularity) rows) in 6 milliseconds for calculating the query result. ### Partitioning is primarily a data management feature {#partitioning-is-primarily-a-data-management-feature} Be aware that querying across all partitions is typically slower than running the same query on a non-partitioned table. With partitioning, the data is usually distributed across more data parts, which often leads to ClickHouse scanning and processing a larger volume of data. -We can demonstrate this by running the same query over both the [What are table parts](/concepts/core-concepts/parts) example table (without partitioning enabled), and our current example table from above (with partitioning enabled). Both tables [contain](https://sql.clickhouse.com/?query=U0VMRUNUCiAgICB0YWJsZSwKICAgIHN1bShyb3dzKSBBUyByb3dzCkZST00gc3lzdGVtLnBhcnRzCldIRVJFIChkYXRhYmFzZSA9ICd1aycpIEFORCAoYHRhYmxlYCBJTiBbJ3VrX3ByaWNlX3BhaWRfc2ltcGxlJywgJ3VrX3ByaWNlX3BhaWRfc2ltcGxlX3BhcnRpdGlvbmVkJ10pIEFORCBhY3RpdmUKR1JPVVAgQlkgdGFibGU7&run_query=true&tab=results) the same data and number of rows: +We can demonstrate this by running the same query over both the [What are table parts](/core/concepts/core-concepts/parts) example table (without partitioning enabled), and our current example table from above (with partitioning enabled). Both tables [contain](https://sql.clickhouse.com/?query=U0VMRUNUCiAgICB0YWJsZSwKICAgIHN1bShyb3dzKSBBUyByb3dzCkZST00gc3lzdGVtLnBhcnRzCldIRVJFIChkYXRhYmFzZSA9ICd1aycpIEFORCAoYHRhYmxlYCBJTiBbJ3VrX3ByaWNlX3BhaWRfc2ltcGxlJywgJ3VrX3ByaWNlX3BhaWRfc2ltcGxlX3BhcnRpdGlvbmVkJ10pIEFORCBhY3RpdmUKR1JPVVAgQlkgdGFibGU7&run_query=true&tab=results) the same data and number of rows: ```sql @@ -206,7 +206,7 @@ WHERE (database = 'uk') AND (table IN ['uk_price_paid_simple', 'uk_price_paid_si GROUP BY table; ``` -However, the table with partitions enabled, [has](https://sql.clickhouse.com/?query=U0VMRUNUCiAgICB0YWJsZSwKICAgIGNvdW50KCkgQVMgcGFydHMKRlJPTSBzeXN0ZW0ucGFydHMKV0hFUkUgKGRhdGFiYXNlID0gJ3VrJykgQU5EIChgdGFibGVgIElOIFsndWtfcHJpY2VfcGFpZF9zaW1wbGUnLCAndWtfcHJpY2VfcGFpZF9zaW1wbGVfcGFydGl0aW9uZWQnXSkgQU5EIGFjdGl2ZQpHUk9VUCBCWSB0YWJsZTs&run_query=true&tab=results) more active [data parts](/concepts/core-concepts/parts), because, as mentioned above, ClickHouse only [merges](/concepts/core-concepts/parts) data parts within, but not across partitions: +However, the table with partitions enabled, [has](https://sql.clickhouse.com/?query=U0VMRUNUCiAgICB0YWJsZSwKICAgIGNvdW50KCkgQVMgcGFydHMKRlJPTSBzeXN0ZW0ucGFydHMKV0hFUkUgKGRhdGFiYXNlID0gJ3VrJykgQU5EIChgdGFibGVgIElOIFsndWtfcHJpY2VfcGFpZF9zaW1wbGUnLCAndWtfcHJpY2VfcGFpZF9zaW1wbGVfcGFydGl0aW9uZWQnXSkgQU5EIGFjdGl2ZQpHUk9VUCBCWSB0YWJsZTs&run_query=true&tab=results) more active [data parts](/core/concepts/core-concepts/parts), because, as mentioned above, ClickHouse only [merges](/core/concepts/core-concepts/parts) data parts within, but not across partitions: ```sql @@ -219,9 +219,9 @@ GROUP BY table; ``` -As shown further above, the partitioned table `uk_price_paid_simple_partitioned` has over 600 partitions, and therefore at 600 306 active data parts. Whereas for our non-partitioned table `uk_price_paid_simple` all [initial](/concepts/core-concepts/parts) data parts could be merged into a single active part by background merges. +As shown further above, the partitioned table `uk_price_paid_simple_partitioned` has over 600 partitions, and therefore at 600 306 active data parts. Whereas for our non-partitioned table `uk_price_paid_simple` all [initial](/core/concepts/core-concepts/parts) data parts could be merged into a single active part by background merges. -When we [check](https://sql.clickhouse.com/?query=RVhQTEFJTiBpbmRleGVzID0gMQpTRUxFQ1QgTUFYKHByaWNlKSBBUyBoaWdoZXN0X3ByaWNlCkZST00gdWsudWtfcHJpY2VfcGFpZF9zaW1wbGVfcGFydGl0aW9uZWQKV0hFUkUgdG93biA9ICdMT05ET04nOw&run_query=true&tab=results) the physical query execution plan with an [EXPLAIN](/reference/statements/explain) clause for our example query from above without the partition filter running over the partitioned table, we can see in row 19 and 20 of the output below that ClickHouse identified 671 out of 3257 existing [granules](/guides/cloud-oss/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing) (blocks of rows) spread over 431 out of 436 existing active data parts that potentially contain rows matching the query's filter, and therefore will be scanned and processed by the query engine: +When we [check](https://sql.clickhouse.com/?query=RVhQTEFJTiBpbmRleGVzID0gMQpTRUxFQ1QgTUFYKHByaWNlKSBBUyBoaWdoZXN0X3ByaWNlCkZST00gdWsudWtfcHJpY2VfcGFpZF9zaW1wbGVfcGFydGl0aW9uZWQKV0hFUkUgdG93biA9ICdMT05ET04nOw&run_query=true&tab=results) the physical query execution plan with an [EXPLAIN](/core/reference/statements/explain) clause for our example query from above without the partition filter running over the partitioned table, we can see in row 19 and 20 of the output below that ClickHouse identified 671 out of 3257 existing [granules](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing) (blocks of rows) spread over 431 out of 436 existing active data parts that potentially contain rows matching the query's filter, and therefore will be scanned and processed by the query engine: ```sql EXPLAIN indexes = 1 diff --git a/concepts/core-concepts/parts.mdx b/core/concepts/core-concepts/parts.mdx similarity index 66% rename from concepts/core-concepts/parts.mdx rename to core/concepts/core-concepts/parts.mdx index b9eb796c..c05c1f57 100644 --- a/concepts/core-concepts/parts.mdx +++ b/core/concepts/core-concepts/parts.mdx @@ -12,9 +12,9 @@ import { Image } from "/snippets/components/Image.jsx";
-The data from each table in the ClickHouse [MergeTree engine family](/reference/engines/table-engines/mergetree-family) is organized on disk as a collection of immutable `data parts`. +The data from each table in the ClickHouse [MergeTree engine family](/core/reference/engines/table-engines/mergetree-family) is organized on disk as a collection of immutable `data parts`. -To illustrate this, we use [this](https://sql.clickhouse.com/?query=U0hPVyBDUkVBVEUgVEFCTEUgdWsudWtfcHJpY2VfcGFpZF9zaW1wbGU&run_query=true&tab=results) table (adapted from the [UK property prices dataset](/get-started/sample-datasets/uk-price-paid)) tracking the date, town, street, and price for sold properties in the United Kingdom: +To illustrate this, we use [this](https://sql.clickhouse.com/?query=U0hPVyBDUkVBVEUgVEFCTEUgdWsudWtfcHJpY2VfcGFpZF9zaW1wbGU&run_query=true&tab=results) table (adapted from the [UK property prices dataset](/core/get-started/sample-datasets/uk-price-paid)) tracking the date, town, street, and price for sold properties in the United Kingdom: ```sql CREATE TABLE uk.uk_price_paid_simple @@ -36,9 +36,9 @@ A data part is created whenever a set of rows is inserted into the table. The fo
-When a ClickHouse server processes the example insert with 4 rows (e.g., via an [INSERT INTO statement](/reference/statements/insert-into)) sketched in the diagram above, it performs several steps: +When a ClickHouse server processes the example insert with 4 rows (e.g., via an [INSERT INTO statement](/core/reference/statements/insert-into)) sketched in the diagram above, it performs several steps: -① **Sorting**: The rows are sorted by the table's sorting key `(town, street)`, and a [sparse primary index](/guides/cloud-oss/data-modelling/sparse-primary-indexes) is generated for the sorted rows. +① **Sorting**: The rows are sorted by the table's sorting key `(town, street)`, and a [sparse primary index](/core/guides/clickhouse/data-modelling/sparse-primary-indexes) is generated for the sorted rows. ② **Splitting**: The sorted data is split into columns. @@ -46,13 +46,13 @@ When a ClickHouse server processes the example insert with 4 rows (e.g., via an ④ **Writing to Disk**: The compressed columns are saved as binary column files within a new directory representing the insert's data part. The sparse primary index is also compressed and stored in the same directory. -Depending on the table's specific engine, additional transformations [may](/reference/settings/session-settings) take place alongside sorting. +Depending on the table's specific engine, additional transformations [may](/core/reference/settings/session-settings) take place alongside sorting. -Data parts are self-contained, including all metadata needed to interpret their contents without requiring a central catalog. Beyond the sparse primary index, parts contain additional metadata, such as secondary [data skipping indexes](/concepts/features/performance/skip-indexes/skipping-indexes), [column statistics](https://clickhouse.com/blog/clickhouse-release-23-11#column-statistics-for-prewhere), checksums, min-max indexes (if [partitioning](/concepts/core-concepts/partitions) is used), and [more](https://github.com/ClickHouse/ClickHouse/blob/a065b11d591f22b5dd50cb6224fab2ca557b4989/src/Storages/MergeTree/MergeTreeData.h#L104). +Data parts are self-contained, including all metadata needed to interpret their contents without requiring a central catalog. Beyond the sparse primary index, parts contain additional metadata, such as secondary [data skipping indexes](/core/concepts/features/performance/skip-indexes/skipping-indexes), [column statistics](https://clickhouse.com/blog/clickhouse-release-23-11#column-statistics-for-prewhere), checksums, min-max indexes (if [partitioning](/core/concepts/core-concepts/partitions) is used), and [more](https://github.com/ClickHouse/ClickHouse/blob/a065b11d591f22b5dd50cb6224fab2ca557b4989/src/Storages/MergeTree/MergeTreeData.h#L104). ## Part merges {#part-merges} -To manage the number of parts per table, a [background merge](/concepts/core-concepts/merges) job periodically combines smaller parts into larger ones until they reach a [configurable](/reference/settings/merge-tree-settings#max_bytes_to_merge_at_max_space_in_pool) compressed size (typically ~150 GB). Merged parts are marked as inactive and deleted after a [configurable](/reference/settings/merge-tree-settings#old_parts_lifetime) time interval. Over time, this process creates a hierarchical structure of merged parts, which is why it's called a MergeTree table: +To manage the number of parts per table, a [background merge](/core/concepts/core-concepts/merges) job periodically combines smaller parts into larger ones until they reach a [configurable](/core/reference/settings/merge-tree-settings#max_bytes_to_merge_at_max_space_in_pool) compressed size (typically ~150 GB). Merged parts are marked as inactive and deleted after a [configurable](/core/reference/settings/merge-tree-settings#old_parts_lifetime) time interval. Over time, this process creates a hierarchical structure of merged parts, which is why it's called a MergeTree table: @@ -62,7 +62,7 @@ To minimize the number of initial parts and the overhead of merges, database cli ## Monitoring table parts {#monitoring-table-parts} -You can [query](https://sql.clickhouse.com/?query=U0VMRUNUIF9wYXJ0CkZST00gdWsudWtfcHJpY2VfcGFpZF9zaW1wbGUKR1JPVVAgQlkgX3BhcnQKT1JERVIgQlkgX3BhcnQgQVNDOw&run_query=true&tab=results) the list of all currently existing active parts of our example table by using the [virtual column](/reference/engines/table-engines#table_engines-virtual_columns) `_part`: +You can [query](https://sql.clickhouse.com/?query=U0VMRUNUIF9wYXJ0CkZST00gdWsudWtfcHJpY2VfcGFpZF9zaW1wbGUKR1JPVVAgQlkgX3BhcnQKT1JERVIgQlkgX3BhcnQgQVNDOw&run_query=true&tab=results) the list of all currently existing active parts of our example table by using the [virtual column](/core/reference/engines/table-engines#table_engines-virtual_columns) `_part`: ```sql SELECT _part @@ -79,7 +79,7 @@ ORDER BY _part ASC; ``` The query above retrieves the names of directories on disk, with each directory representing an active data part of the table. The components of these directory names have specific meanings, which are documented [here](https://github.com/ClickHouse/ClickHouse/blob/f90551824bb90ade2d8a1d8edd7b0a3c0a459617/src/Storages/MergeTree/MergeTreeData.h#L130) for those interested in exploring further. -Alternatively, ClickHouse tracks info for all parts of all tables in the [system.parts](/reference/system-tables/parts) system table, and the following query [returns](https://sql.clickhouse.com/?query=U0VMRUNUCiAgICBuYW1lLAogICAgbGV2ZWwsCiAgICByb3dzCkZST00gc3lzdGVtLnBhcnRzCldIRVJFIChkYXRhYmFzZSA9ICd1aycpIEFORCAoYHRhYmxlYCA9ICd1a19wcmljZV9wYWlkX3NpbXBsZScpIEFORCBhY3RpdmUKT1JERVIgQlkgbmFtZSBBU0M7&run_query=true&tab=results) for our example table above the list of all currently active parts, their merge level, and the number of rows stored in these parts: +Alternatively, ClickHouse tracks info for all parts of all tables in the [system.parts](/core/reference/system-tables/parts) system table, and the following query [returns](https://sql.clickhouse.com/?query=U0VMRUNUCiAgICBuYW1lLAogICAgbGV2ZWwsCiAgICByb3dzCkZST00gc3lzdGVtLnBhcnRzCldIRVJFIChkYXRhYmFzZSA9ICd1aycpIEFORCAoYHRhYmxlYCA9ICd1a19wcmljZV9wYWlkX3NpbXBsZScpIEFORCBhY3RpdmUKT1JERVIgQlkgbmFtZSBBU0M7&run_query=true&tab=results) for our example table above the list of all currently active parts, their merge level, and the number of rows stored in these parts: ```sql SELECT diff --git a/concepts/core-concepts/primary-indexes.mdx b/core/concepts/core-concepts/primary-indexes.mdx similarity index 83% rename from concepts/core-concepts/primary-indexes.mdx rename to core/concepts/core-concepts/primary-indexes.mdx index 62fef08e..372d09b6 100644 --- a/concepts/core-concepts/primary-indexes.mdx +++ b/core/concepts/core-concepts/primary-indexes.mdx @@ -13,18 +13,18 @@ import { Image } from "/snippets/components/Image.jsx"; This page introduces ClickHouse's sparse primary index, how it's built, how it works, and how it helps accelerate queries. -For advanced indexing strategies and deeper technical detail, see the [primary indexes deep dive](/guides/cloud-oss/data-modelling/sparse-primary-indexes). +For advanced indexing strategies and deeper technical detail, see the [primary indexes deep dive](/core/guides/clickhouse/data-modelling/sparse-primary-indexes). ## How does the sparse primary index work in ClickHouse? {#how-does-the-sparse-primary-index-work-in-clickHouse}
-The sparse primary index in ClickHouse helps efficiently identify [granules](/guides/cloud-oss/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing)—blocks of rows—that might contain data matching a query's condition on the table's primary key columns. In the next section, we explain how this index is constructed from the values in those columns. +The sparse primary index in ClickHouse helps efficiently identify [granules](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing)—blocks of rows—that might contain data matching a query's condition on the table's primary key columns. In the next section, we explain how this index is constructed from the values in those columns. ### Sparse primary index creation {#sparse-primary-index-creation} -To illustrate how the sparse primary index is built, we use the [uk_price_paid_simple](/concepts/core-concepts/parts) table along with some animations. +To illustrate how the sparse primary index is built, we use the [uk_price_paid_simple](/core/concepts/core-concepts/parts) table along with some animations. -As a [reminder](/concepts/core-concepts/parts), in our ① example table with the primary key (town, street), ② inserted data is ③ stored on disk, sorted by the primary key column values, and compressed, in separate files for each column: +As a [reminder](/core/concepts/core-concepts/parts), in our ① example table with the primary key (town, street), ② inserted data is ③ stored on disk, sorted by the primary key column values, and compressed, in separate files for each column: @@ -53,10 +53,10 @@ We sketch how the sparse primary index is used for query acceleration with anoth ③ It then scans the index entries to identify which granules might contain rows matching the predicate—in other words, which granules can't be skipped. -④ These potentially relevant granules are then loaded and [processed](/concepts/core-concepts/query-parallelism) in memory, along with the corresponding granules from any other columns required for the query. +④ These potentially relevant granules are then loaded and [processed](/core/concepts/core-concepts/query-parallelism) in memory, along with the corresponding granules from any other columns required for the query. ## Monitoring primary indexes {#monitoring-primary-indexes} -Each [data part](/concepts/core-concepts/parts) in the table has its own primary index. We can inspect the contents of these indexes using the [mergeTreeIndex](/reference/functions/table-functions/mergeTreeIndex) table function. +Each [data part](/core/concepts/core-concepts/parts) in the table has its own primary index. We can inspect the contents of these indexes using the [mergeTreeIndex](/core/reference/functions/table-functions/mergeTreeIndex) table function. The following query lists the number of entries in the primary index for each data part of our example table: @@ -76,7 +76,7 @@ GROUP BY part_name; └───────────┴─────────┘ ``` -This query shows the first 10 entries from the primary index of one of the current data parts. Note that these parts are continuously [merged](/concepts/core-concepts/merges) in the background into larger parts: +This query shows the first 10 entries from the primary index of one of the current data parts. Note that these parts are continuously [merged](/core/concepts/core-concepts/merges) in the background into larger parts: ```sql SELECT @@ -104,7 +104,7 @@ LIMIT 10; └───────┴────────────────┴──────────────────┘ ``` -Lastly, we use the [EXPLAIN](/reference/statements/explain) clause to see how the primary indexes of all data parts are used to skip granules that can't possibly contain rows matching the example query's predicates. These granules are excluded from loading and processing: +Lastly, we use the [EXPLAIN](/core/reference/statements/explain) clause to see how the primary indexes of all data parts are used to skip granules that can't possibly contain rows matching the example query's predicates. These granules are excluded from loading and processing: ```sql EXPLAIN indexes = 1 SELECT @@ -174,6 +174,6 @@ SELECT count() FROM uk.uk_price_paid_simple; * You can **inspect index contents** using the `mergeTreeIndex` table function and monitor index usage with the `EXPLAIN` clause. ## Where to find more information {#where-to-find-more-information} -For a deeper look at how sparse primary indexes work in ClickHouse, including how they differ from traditional database indexes and best practices for using them, check out our detailed indexing [deep dive](/guides/cloud-oss/data-modelling/sparse-primary-indexes). +For a deeper look at how sparse primary indexes work in ClickHouse, including how they differ from traditional database indexes and best practices for using them, check out our detailed indexing [deep dive](/core/guides/clickhouse/data-modelling/sparse-primary-indexes). -If you're interested in how ClickHouse processes data selected by the primary index scan in a highly parallel way, see the query parallelism guide [here](/concepts/core-concepts/query-parallelism). +If you're interested in how ClickHouse processes data selected by the primary index scan in a highly parallel way, see the query parallelism guide [here](/core/concepts/core-concepts/query-parallelism). diff --git a/concepts/core-concepts/query-parallelism.mdx b/core/concepts/core-concepts/query-parallelism.mdx similarity index 80% rename from concepts/core-concepts/query-parallelism.mdx rename to core/concepts/core-concepts/query-parallelism.mdx index f12d4079..721e43c8 100644 --- a/concepts/core-concepts/query-parallelism.mdx +++ b/core/concepts/core-concepts/query-parallelism.mdx @@ -9,11 +9,11 @@ keywords: ['parallel processing', 'query optimization', 'performance', 'threadin import { Image } from "/snippets/components/Image.jsx"; -ClickHouse is [built for speed](/get-started/about/why-clickhouse-is-so-fast). It executes queries in a highly parallel fashion, using all available CPU cores, distributing data across processing lanes, and often pushing hardware close to its limits. +ClickHouse is [built for speed](/core/get-started/about/why-clickhouse-is-so-fast). It executes queries in a highly parallel fashion, using all available CPU cores, distributing data across processing lanes, and often pushing hardware close to its limits. This guide walks through how query parallelism works in ClickHouse and how you can tune or monitor it to improve performance on large workloads. -We use an aggregation query on the [uk_price_paid_simple](/concepts/core-concepts/parts) dataset to illustrate key concepts. +We use an aggregation query on the [uk_price_paid_simple](/core/concepts/core-concepts/parts) dataset to illustrate key concepts. ## Step-by-step: How ClickHouse parallelizes an aggregation query {#step-by-step-how-clickHouse-parallelizes-an-aggregation-query} @@ -23,12 +23,12 @@ When ClickHouse ① runs an aggregation query with a filter on the table's prima ### Distributing work across processing lanes {#distributing-work-across-processing-lanes} -The selected data is then [dynamically](#load-balancing-across-processing-lanes) distributed across `n` parallel [processing lanes](/concepts/core-concepts/academic-overview#4-2-multi-core-parallelization), which stream and process the data [block](/resources/contribute/architecture#block) by block into the final result: +The selected data is then [dynamically](#load-balancing-across-processing-lanes) distributed across `n` parallel [processing lanes](/core/concepts/core-concepts/academic-overview#4-2-multi-core-parallelization), which stream and process the data [block](/resources/develop-contribute/introduction/architecture#block) by block into the final result: 4 parallel processing lanes

-The number of `n` parallel processing lanes is controlled by the [`max_threads`](/reference/settings/session-settings#max_threads) setting, which by default matches the number of cores (threads) of a single CPU available to ClickHouse on the server. In the example above, we assume `4` cores. +The number of `n` parallel processing lanes is controlled by the [`max_threads`](/core/reference/settings/session-settings#max_threads) setting, which by default matches the number of cores (threads) of a single CPU available to ClickHouse on the server. In the example above, we assume `4` cores. On a machine with `8` cores, query processing throughput would roughly double (but memory usage would also increase accordingly), as more lanes process data in parallel: @@ -39,7 +39,7 @@ Efficient lane distribution is key to maximizing CPU utilization and reducing to ### Processing queries on sharded tables {#processing-queries-on-sharded-tables} -When table data is distributed across multiple servers as [shards](/guides/oss/deployment-and-scaling/shards), each server processes its shard in parallel. Within each server, the local data is handled using parallel processing lanes, just as described above: +When table data is distributed across multiple servers as [shards](/core/guides/oss/deployment-and-scaling/shards), each server processes its shard in parallel. Within each server, the local data is handled using parallel processing lanes, just as described above: Distributed lanes @@ -79,7 +79,7 @@ We can see that * ① ClickHouse needs to read 3,609 granules (indicated as marks in the trace logs) across 3 data ranges. * ② With 59 CPU cores, it distributes this work across 59 parallel processing streams—one per lane. -Alternatively, we can use the [EXPLAIN](/reference/statements/explain#explain-pipeline) clause to inspect the [physical operator plan](/concepts/core-concepts/academic-overview#4-2-multi-core-parallelization)—also known as the "query pipeline"—for the aggregation query: +Alternatively, we can use the [EXPLAIN](/core/reference/statements/explain#explain-pipeline) clause to inspect the [physical operator plan](/core/concepts/core-concepts/academic-overview#4-2-multi-core-parallelization)—also known as the "query pipeline"—for the aggregation query: ```sql EXPLAIN PIPELINE SELECT @@ -104,7 +104,7 @@ FROM Note: Read the operator plan above from bottom to top. Each line represents a stage in the physical execution plan, starting with reading data from storage at the bottom and ending with the final processing steps at the top. Operators marked with `× 59` are executed concurrently on non-overlapping data regions across 59 parallel processing lanes. This reflects the value of `max_threads` and illustrates how each stage of the query is parallelized across CPU cores. -ClickHouse's [embedded web UI](/integrations/connectors/data-integrations/drivers-and-interfaces/http) (available at the `/play` endpoint) can render the physical plan from above as a graphical visualization. In this example, we set `max_threads` to `4` to keep the visualization compact, showing just 4 parallel processing lanes: +ClickHouse's [embedded web UI](/core/concepts/features/interfaces/http) (available at the `/play` endpoint) can render the physical plan from above as a graphical visualization. In this example, we set `max_threads` to `4` to keep the visualization compact, showing just 4 parallel processing lanes: Query pipeline @@ -112,7 +112,7 @@ Note: Read the visualization from left to right. Each row represents a parallel ### Load balancing across processing lanes {#load-balancing-across-processing-lanes} -Note that the `Resize` operators in the physical plan above [repartition and redistribute](/concepts/core-concepts/academic-overview#4-2-multi-core-parallelization) data block streams across processing lanes to keep them evenly utilized. This rebalancing is especially important when data ranges vary in how many rows match the query predicates, otherwise, some lanes may become overloaded while others sit idle. By redistributing the work, faster lanes effectively help out slower ones, optimizing overall query runtime. +Note that the `Resize` operators in the physical plan above [repartition and redistribute](/core/concepts/core-concepts/academic-overview#4-2-multi-core-parallelization) data block streams across processing lanes to keep them evenly utilized. This rebalancing is especially important when data ranges vary in how many rows match the query predicates, otherwise, some lanes may become overloaded while others sit idle. By redistributing the work, faster lanes effectively help out slower ones, optimizing overall query runtime. ## Why max_threads isn't always respected {#why-max-threads-isnt-always-respected} @@ -192,15 +192,15 @@ Regardless of the configured `max_threads` value, ClickHouse only allocates addi What "enough data" means is primarily determined by two settings, which define the minimum number of rows (163,840 by default) and the minimum number of bytes (2,097,152 by default) that each processing lane should handle: For shared-nothing clusters: -* [merge_tree_min_rows_for_concurrent_read](/reference/settings/session-settings#merge_tree_min_rows_for_concurrent_read) -* [merge_tree_min_bytes_for_concurrent_read](/reference/settings/session-settings#merge_tree_min_bytes_for_concurrent_read) +* [merge_tree_min_rows_for_concurrent_read](/core/reference/settings/session-settings#merge_tree_min_rows_for_concurrent_read) +* [merge_tree_min_bytes_for_concurrent_read](/core/reference/settings/session-settings#merge_tree_min_bytes_for_concurrent_read) For clusters with shared storage (e.g. ClickHouse Cloud): -* [merge_tree_min_rows_for_concurrent_read_for_remote_filesystem](/reference/settings/session-settings#merge_tree_min_rows_for_concurrent_read_for_remote_filesystem) -* [merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem](/reference/settings/session-settings#merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem) +* [merge_tree_min_rows_for_concurrent_read_for_remote_filesystem](/core/reference/settings/session-settings#merge_tree_min_rows_for_concurrent_read_for_remote_filesystem) +* [merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem](/core/reference/settings/session-settings#merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem) Additionally, there's a hard lower limit for read task size, controlled by: -* [Merge_tree_min_read_task_size](/reference/settings/session-settings#merge_tree_min_read_task_size) + [merge_tree_min_bytes_per_task_for_remote_reading](/reference/settings/session-settings#merge_tree_min_bytes_per_task_for_remote_reading) +* [Merge_tree_min_read_task_size](/core/reference/settings/session-settings#merge_tree_min_read_task_size) + [merge_tree_min_bytes_per_task_for_remote_reading](/core/reference/settings/session-settings#merge_tree_min_bytes_per_task_for_remote_reading) **Don't modify these settings** @@ -242,7 +242,7 @@ This demonstrates that for queries on small datasets, ClickHouse will intentiona If you'd like to dive deeper into how ClickHouse executes queries in parallel and how it achieves high performance at scale, explore the following resources: -* [Query Processing Layer – VLDB 2024 Paper (Web Edition)](/concepts/core-concepts/academic-overview#4-query-processing-layer) - A detailed breakdown of ClickHouse's internal execution model, including scheduling, pipelining, and operator design. +* [Query Processing Layer – VLDB 2024 Paper (Web Edition)](/core/concepts/core-concepts/academic-overview#4-query-processing-layer) - A detailed breakdown of ClickHouse's internal execution model, including scheduling, pipelining, and operator design. * [Partial aggregation states explained](https://clickhouse.com/blog/clickhouse_vs_elasticsearch_mechanics_of_count_aggregations#-multi-core-parallelization) - A technical deep dive into how partial aggregation states enable efficient parallel execution across processing lanes. diff --git a/concepts/features/backup-restore/alternative-methods.mdx b/core/concepts/features/backup-restore/alternative-methods.mdx similarity index 93% rename from concepts/features/backup-restore/alternative-methods.mdx rename to core/concepts/features/backup-restore/alternative-methods.mdx index cf7f14e0..eada78f8 100644 --- a/concepts/features/backup-restore/alternative-methods.mdx +++ b/core/concepts/features/backup-restore/alternative-methods.mdx @@ -24,7 +24,7 @@ or a distributed filesystem like [HDFS](https://hadoop.apache.org/docs/stable/ha Some local filesystems provide snapshot functionality (for example, [ZFS](https://en.wikipedia.org/wiki/ZFS)), but they might not be the best choice for serving live queries. A possible solution is to create additional replicas with this kind of filesystem and exclude them -from the [Distributed](/reference/engines/table-engines/special/distributed) tables that are used for `SELECT` queries. +from the [Distributed](/core/reference/engines/table-engines/special/distributed) tables that are used for `SELECT` queries. Snapshots on such replicas will be out of reach of any queries that modify data. As a bonus, these replicas might have special hardware configurations with more disks attached per server, which would be cost-effective. @@ -47,6 +47,6 @@ but normal attached file servers with a large enough capacity might work as well Data can be restored from backup using the `ALTER TABLE ... ATTACH PARTITION ...` For more information about queries related to partition manipulations, see the -[`ALTER` documentation](/reference/statements/alter/partition). +[`ALTER` documentation](/core/reference/statements/alter/partition). A third-party tool is available to automate this approach: [clickhouse-backup](https://github.com/AlexAkulov/clickhouse-backup). diff --git a/concepts/features/backup-restore/azure-blob-storage.mdx b/core/concepts/features/backup-restore/azure-blob-storage.mdx similarity index 100% rename from concepts/features/backup-restore/azure-blob-storage.mdx rename to core/concepts/features/backup-restore/azure-blob-storage.mdx diff --git a/concepts/features/backup-restore/local-disk.mdx b/core/concepts/features/backup-restore/local-disk.mdx similarity index 100% rename from concepts/features/backup-restore/local-disk.mdx rename to core/concepts/features/backup-restore/local-disk.mdx diff --git a/concepts/features/backup-restore/overview.mdx b/core/concepts/features/backup-restore/overview.mdx similarity index 91% rename from concepts/features/backup-restore/overview.mdx rename to core/concepts/features/backup-restore/overview.mdx index c2623fb5..bbc98e2e 100644 --- a/concepts/features/backup-restore/overview.mdx +++ b/core/concepts/features/backup-restore/overview.mdx @@ -17,13 +17,13 @@ in the sidebar. ## Introduction {#introduction} -While [replication](/reference/engines/table-engines/mergetree-family/replication) provides protection from hardware failures, it doesn't +While [replication](/core/reference/engines/table-engines/mergetree-family/replication) provides protection from hardware failures, it doesn't protect against human errors: accidental deletion of data, deletion of the wrong table or a table on the wrong cluster, and software bugs that result in incorrect data processing or data corruption. In many cases mistakes like these will affect all replicas. ClickHouse has built-in -safeguards to prevent some types of mistakes, for example, by [default](/reference/settings/session-settings#max_table_size_to_drop) +safeguards to prevent some types of mistakes, for example, by [default](/core/reference/settings/session-settings#max_table_size_to_drop) you can't just drop tables with a `MergeTree` family engine containing more than 50 Gb of data. However, these safeguards don't cover all possible cases and problems can still occur. @@ -52,11 +52,11 @@ restore methods available in ClickHouse: | Page | Description | |---------------------------------------------------------------------|-----------------------------------------------------------| -| [Backup/restore using local disk or S3 disk](/concepts/features/backup-restore/local-disk) | Details backup/restore to or from a local disk or S3 disk | -| [Backup/restore using S3 endpoint](/concepts/features/backup-restore/s3-endpoint) | Details backup/restore to or from an S3 endpoint | -| [Backup/restore using AzureBlobStorage](/concepts/features/backup-restore/azure-blob-storage) | Details backup/restore to or from Azure blob storage | -| [Alternative methods](/concepts/features/backup-restore/alternative-methods) | Discusses alternative backup methods | -| [Snapshot backup](/concepts/features/backup-restore/snapshot) | Lightweight snapshots for SharedMergeTree tables using cloud object storage | +| [Backup/restore using local disk or S3 disk](/core/concepts/features/backup-restore/local-disk) | Details backup/restore to or from a local disk or S3 disk | +| [Backup/restore using S3 endpoint](/core/concepts/features/backup-restore/s3-endpoint) | Details backup/restore to or from an S3 endpoint | +| [Backup/restore using AzureBlobStorage](/core/concepts/features/backup-restore/azure-blob-storage) | Details backup/restore to or from Azure blob storage | +| [Alternative methods](/core/concepts/features/backup-restore/alternative-methods) | Discusses alternative backup methods | +| [Snapshot backup](/core/concepts/features/backup-restore/snapshot) | Lightweight snapshots for SharedMergeTree tables using cloud object storage | Backups can: - be [full or incremental](#backup-types) @@ -136,7 +136,7 @@ They help to: - Maintain consistency across operations - Avoid credential exposure in query logs -See ["named collections"](/concepts/features/configuration/server-config/named-collections) for further details. +See ["named collections"](/core/concepts/features/configuration/server-config/named-collections) for further details. ## Backing up system, log or access management tables {#system-backups} @@ -161,7 +161,7 @@ configuration of a ClickHouse cluster can be backed up and restored as part of the cluster's overall setup. This functionality only works for configurations managed through SQL commands -(referred to as ["SQL-driven Access Control and Account Management"](/concepts/features/security/access-rights#enabling-access-control)). +(referred to as ["SQL-driven Access Control and Account Management"](/core/concepts/features/security/access-rights#enabling-access-control)). Access configurations defined in ClickHouse server configuration files (e.g. `users.xml`) aren't included in backups and can't be restored through this method. @@ -251,8 +251,8 @@ end_time: 2022-08-30 09:21:46 1 row in set. Elapsed: 0.002 sec. ``` -Along with the [`system.backups`](/reference/system-tables/backups) table, all backup and restore operations are also tracked in the system log table -[`system.backup_log`](/reference/system-tables/backup_log): +Along with the [`system.backups`](/core/reference/system-tables/backups) table, all backup and restore operations are also tracked in the system log table +[`system.backup_log`](/core/reference/system-tables/backup_log): ```sql SELECT * diff --git a/concepts/features/backup-restore/s3-endpoint.mdx b/core/concepts/features/backup-restore/s3-endpoint.mdx similarity index 98% rename from concepts/features/backup-restore/s3-endpoint.mdx rename to core/concepts/features/backup-restore/s3-endpoint.mdx index 037b6838..f9063b6e 100644 --- a/concepts/features/backup-restore/s3-endpoint.mdx +++ b/core/concepts/features/backup-restore/s3-endpoint.mdx @@ -26,7 +26,7 @@ again. For an explanation of the differences between a full backup and an incremental -backup, see ["Backup types"](/concepts/features/backup-restore/overview#backup-types) +backup, see ["Backup types"](/core/concepts/features/backup-restore/overview#backup-types) You will need the following information to use this method: diff --git a/concepts/features/backup-restore/snapshot.mdx b/core/concepts/features/backup-restore/snapshot.mdx similarity index 81% rename from concepts/features/backup-restore/snapshot.mdx rename to core/concepts/features/backup-restore/snapshot.mdx index 22f13240..26164f70 100644 --- a/concepts/features/backup-restore/snapshot.mdx +++ b/core/concepts/features/backup-restore/snapshot.mdx @@ -13,7 +13,7 @@ The lightweight path applies to [SharedMergeTree](/products/cloud/features/infra ## Create a snapshot {#create-a-snapshot} -Snapshot backup uses the standard [`BACKUP`](/concepts/features/backup-restore/overview#syntax) command with `experimental_lightweight_snapshot = true`. The `id` setting is required — it names the snapshot and is used to reference it in unlock and observability commands: +Snapshot backup uses the standard [`BACKUP`](/core/concepts/features/backup-restore/overview#syntax) command with `experimental_lightweight_snapshot = true`. The `id` setting is required — it names the snapshot and is used to reference it in unlock and observability commands: ```sql BACKUP { TABLE [db.]table_name | DATABASE db_name | ALL [EXCEPT {TABLES | DATABASES} ...] } @@ -21,7 +21,7 @@ TO { S3(...) | AzureBlobStorage(...) } SETTINGS experimental_lightweight_snapshot = true, id = '' ``` -The command returns the `id` and `status`, and the `id` can be used to track the operation in [`system.backups`](/reference/system-tables/backups). +The command returns the `id` and `status`, and the `id` can be used to track the operation in [`system.backups`](/core/reference/system-tables/backups). Backup a single table to S3: @@ -111,7 +111,7 @@ After unlocking, the corresponding row disappears from `system.snapshot_locks`, ### system.backups {#system-backups} -All snapshot operations appear in [`system.backups`](/reference/system-tables/backups) alongside regular backup and restore operations. Query it with the `id` you set (or the UUID returned by the command): +All snapshot operations appear in [`system.backups`](/core/reference/system-tables/backups) alongside regular backup and restore operations. Query it with the `id` you set (or the UUID returned by the command): ```sql SELECT id, name, status, error, start_time, end_time, num_files, uncompressed_size, compressed_size @@ -221,8 +221,8 @@ The following server configuration parameters control snapshot behavior. They ar | Setting | Type | Default | Changeable without restart | Description | |---|---|---|---|---| -| [`max_held_snapshots`](/reference/settings/server-settings/settings#max_held_snapshots) | UInt64 | `0` | No | Maximum number of lightweight snapshots that can be held at the same time. `0` means unlimited. If the limit is reached, creating a new snapshot throws an exception. | -| [`max_snapshot_commit_thread_pool_size`](/reference/settings/server-settings/settings#max_snapshot_commit_thread_pool_size) | UInt64 | `64` | Yes | Number of threads used to commit snapshot lock nodes into Keeper. Increase this if snapshot creation is slow on large tables with many parts. | -| [`max_snapshot_commit_thread_pool_free_size`](/reference/settings/server-settings/settings#max_snapshot_commit_thread_pool_free_size) | UInt64 | `0` | Yes | If the number of idle threads in the snapshot commit pool exceeds this value, ClickHouse releases those threads and shrinks the pool. Threads are created again on demand. `0` means idle threads are never released. | -| [`snapshot_cleaner_period`](/reference/settings/server-settings/settings#snapshot_cleaner_period) | UInt64 | `120` | No | How often (in seconds) the snapshot cleaner runs to remove parts that are no longer referenced by any snapshot lock. ClickHouse Cloud only. | -| [`snapshot_cleaner_pool_size`](/reference/settings/server-settings/settings#snapshot_cleaner_pool_size) | UInt64 | `128` | No | Number of threads in the snapshot cleaner thread pool. ClickHouse Cloud only. | +| [`max_held_snapshots`](/core/reference/settings/server-settings/settings#max_held_snapshots) | UInt64 | `0` | No | Maximum number of lightweight snapshots that can be held at the same time. `0` means unlimited. If the limit is reached, creating a new snapshot throws an exception. | +| [`max_snapshot_commit_thread_pool_size`](/core/reference/settings/server-settings/settings#max_snapshot_commit_thread_pool_size) | UInt64 | `64` | Yes | Number of threads used to commit snapshot lock nodes into Keeper. Increase this if snapshot creation is slow on large tables with many parts. | +| [`max_snapshot_commit_thread_pool_free_size`](/core/reference/settings/server-settings/settings#max_snapshot_commit_thread_pool_free_size) | UInt64 | `0` | Yes | If the number of idle threads in the snapshot commit pool exceeds this value, ClickHouse releases those threads and shrinks the pool. Threads are created again on demand. `0` means idle threads are never released. | +| [`snapshot_cleaner_period`](/core/reference/settings/server-settings/settings#snapshot_cleaner_period) | UInt64 | `120` | No | How often (in seconds) the snapshot cleaner runs to remove parts that are no longer referenced by any snapshot lock. ClickHouse Cloud only. | +| [`snapshot_cleaner_pool_size`](/core/reference/settings/server-settings/settings#snapshot_cleaner_pool_size) | UInt64 | `128` | No | Number of threads in the snapshot cleaner thread pool. ClickHouse Cloud only. | diff --git a/concepts/features/configuration/server-config/composable-protocols.mdx b/core/concepts/features/configuration/server-config/composable-protocols.mdx similarity index 98% rename from concepts/features/configuration/server-config/composable-protocols.mdx rename to core/concepts/features/configuration/server-config/composable-protocols.mdx index 127121ab..1201ee3d 100644 --- a/concepts/features/configuration/server-config/composable-protocols.mdx +++ b/core/concepts/features/configuration/server-config/composable-protocols.mdx @@ -211,7 +211,7 @@ while requests to port 8124 use the `` rules. If `` is omitted, the endpoint falls back to the default ``. The custom handlers section follows the same format as -[``](/reference/settings/server-settings/settings#http_handlers). +[``](/core/reference/settings/server-settings/settings#http_handlers). Changes to the custom handlers section are detected during config reload, and the corresponding endpoint is automatically restarted. diff --git a/concepts/features/configuration/server-config/configuration-files.mdx b/core/concepts/features/configuration/server-config/configuration-files.mdx similarity index 95% rename from concepts/features/configuration/server-config/configuration-files.mdx rename to core/concepts/features/configuration/server-config/configuration-files.mdx index 1a716a6e..493c9824 100644 --- a/concepts/features/configuration/server-config/configuration-files.mdx +++ b/core/concepts/features/configuration/server-config/configuration-files.mdx @@ -167,7 +167,7 @@ Resulting in configuration: It is also possible to replace parts of the configuration by file contents. This can be done in two ways: -- *Substituting Values*: If an element has the attribute `incl`, its value will be replaced by the content of the referenced file. By default, the path to the file with substitutions is `/etc/metrika.xml`. This can be changed in the [`include_from`](/reference/settings/server-settings/settings#include_from) element in the server config. The substitution values are specified in `/clickhouse/substitution_name` elements in this file. If a substitution specified in `incl` does not exist, it is recorded in the log. To prevent ClickHouse from logging missing substitutions, specify attribute `optional="true"` (for example, settings for [macros](/reference/settings/server-settings/settings#macros)). +- *Substituting Values*: If an element has the attribute `incl`, its value will be replaced by the content of the referenced file. By default, the path to the file with substitutions is `/etc/metrika.xml`. This can be changed in the [`include_from`](/core/reference/settings/server-settings/settings#include_from) element in the server config. The substitution values are specified in `/clickhouse/substitution_name` elements in this file. If a substitution specified in `incl` does not exist, it is recorded in the log. To prevent ClickHouse from logging missing substitutions, specify attribute `optional="true"` (for example, settings for [macros](/core/reference/settings/server-settings/settings#macros)). - *Substituting elements*: If you want to replace the entire element with a substitution, use `include` as the element name. The element name `include` can be combined with the attribute `from_zk = "/path/to/node"`. In this case, the element value is replaced by the contents of the ZooKeeper node at `/path/to/node`. This also works with you store an entire XML subtree as a Zookeeper node, it will be fully inserted into the source element. An example of this is shown below: @@ -190,7 +190,7 @@ If you want to merge the substituting content with the existing configuration in ## Encrypting and hiding configuration {#encryption} You can use symmetric encryption to encrypt a configuration element, for example, a plaintext password or private key. -To do so, first configure the [encryption codec](/reference/statements/create/table#encryption-codecs), then add the attribute `encrypted_by` with the name of the encryption codec as the value to the element to encrypt. +To do so, first configure the [encryption codec](/core/reference/statements/create/table#encryption-codecs), then add the attribute `encrypted_by` with the name of the encryption codec as the value to the element to encrypt. Unlike attributes `from_zk`, `from_env` and `incl`, or element `include`, no substitution (i.e. decryption of the encrypted value) is performed in the preprocessed file. Decryption happens only at runtime in the server process. diff --git a/concepts/features/configuration/server-config/named-collections.mdx b/core/concepts/features/configuration/server-config/named-collections.mdx similarity index 95% rename from concepts/features/configuration/server-config/named-collections.mdx rename to core/concepts/features/configuration/server-config/named-collections.mdx index 751d9579..9e5153ff 100644 --- a/concepts/features/configuration/server-config/named-collections.mdx +++ b/core/concepts/features/configuration/server-config/named-collections.mdx @@ -73,7 +73,7 @@ In the above example the `password_sha256_hex` value is the hexadecimal represen ### Storage for named collections {#storage-for-named-collections} Named collections can either be stored on local disk or in ZooKeeper/Keeper. By default local storage is used. -They can also be stored using encryption with the same algorithms used for [disk encryption](/concepts/features/configuration/server-config/storing-data#encrypted-virtual-file-system), +They can also be stored using encryption with the same algorithms used for [disk encryption](/core/concepts/features/configuration/server-config/storing-data#encrypted-virtual-file-system), where `aes_128_ctr` is used by default. To configure named collections storage you need to specify a `type`. This can be either `local` or `keeper`/`zookeeper`. For encrypted storage, @@ -158,7 +158,7 @@ DROP NAMED COLLECTION collection2 ## Named collections for accessing S3 {#named-collections-for-accessing-s3} -The description of parameters see [s3 Table Function](/reference/functions/table-functions/s3). +The description of parameters see [s3 Table Function](/core/reference/functions/table-functions/s3). ### DDL example {#ddl-example-1} @@ -218,7 +218,7 @@ SELECT * FROM s3_engine_table LIMIT 3; ## Named collections for accessing MySQL database {#named-collections-for-accessing-mysql-database} -The description of parameters see [mysql](/reference/functions/table-functions/mysql). +The description of parameters see [mysql](/core/reference/functions/table-functions/mysql). ### DDL example {#ddl-example-2} @@ -314,7 +314,7 @@ SELECT dictGet('dict', 'B', 2); ## Named collections for accessing PostgreSQL database {#named-collections-for-accessing-postgresql-database} -The description of parameters see [postgresql](/reference/functions/table-functions/postgresql). Additionally, there are aliases: +The description of parameters see [postgresql](/core/reference/functions/table-functions/postgresql). Additionally, there are aliases: - `username` for `user` - `db` for `database`. @@ -422,7 +422,7 @@ SELECT dictGet('dict', 'b', 2); ## Named collections for accessing a remote ClickHouse database {#named-collections-for-accessing-a-remote-clickhouse-database} -The description of parameters see [remote](/reference/functions/table-functions/remote#parameters). +The description of parameters see [remote](/core/reference/functions/table-functions/remote#parameters). Example of configuration: @@ -490,7 +490,7 @@ SELECT dictGet('dict', 'b', 1); ## Named collections for accessing Kafka {#named-collections-for-accessing-kafka} -The description of parameters see [Kafka](/reference/engines/table-engines/integrations/kafka). +The description of parameters see [Kafka](/core/reference/engines/table-engines/integrations/kafka). ### DDL example {#ddl-example-3} @@ -545,7 +545,7 @@ SETTINGS kafka_num_consumers = 4, ## Named collections for backups {#named-collections-for-backups} -For the description of parameters see [Backup and Restore](/concepts/features/backup-restore/overview). +For the description of parameters see [Backup and Restore](/core/concepts/features/backup-restore/overview). ### DDL example {#ddl-example-4} @@ -569,7 +569,7 @@ BACKUP TABLE default.test to S3(named_collection_s3_backups, 'directory') ## Named collections for accessing MongoDB Table and Dictionary {#named-collections-for-accessing-mongodb-table-and-dictionary} -For the description of parameters see [mongodb](/reference/functions/table-functions/mongodb). +For the description of parameters see [mongodb](/core/reference/functions/table-functions/mongodb). ### DDL example {#ddl-example-5} diff --git a/concepts/features/configuration/server-config/quotas.mdx b/core/concepts/features/configuration/server-config/quotas.mdx similarity index 97% rename from concepts/features/configuration/server-config/quotas.mdx rename to core/concepts/features/configuration/server-config/quotas.mdx index 40ee3085..c40a2c20 100644 --- a/concepts/features/configuration/server-config/quotas.mdx +++ b/core/concepts/features/configuration/server-config/quotas.mdx @@ -9,13 +9,13 @@ doc_type: 'guide' **Quotas in ClickHouse Cloud** -Quotas are supported in ClickHouse Cloud but must be created using the [DDL syntax](/reference/statements/create/quota). The XML configuration approach documented below is **not supported**. +Quotas are supported in ClickHouse Cloud but must be created using the [DDL syntax](/core/reference/statements/create/quota). The XML configuration approach documented below is **not supported**. Quotas allow you to limit resource usage over a period of time or track the use of resources. Quotas are set up in the user config, which is usually 'users.xml'. -The system also has a feature for limiting the complexity of a single query. See the section [Restrictions on query complexity](/concepts/features/configuration/settings/query-complexity). +The system also has a feature for limiting the complexity of a single query. See the section [Restrictions on query complexity](/core/concepts/features/configuration/settings/query-complexity). In contrast to query complexity restrictions, quotas: diff --git a/concepts/features/configuration/server-config/startup-scripts.mdx b/core/concepts/features/configuration/server-config/startup-scripts.mdx similarity index 100% rename from concepts/features/configuration/server-config/startup-scripts.mdx rename to core/concepts/features/configuration/server-config/startup-scripts.mdx diff --git a/concepts/features/configuration/server-config/storing-data.mdx b/core/concepts/features/configuration/server-config/storing-data.mdx similarity index 95% rename from concepts/features/configuration/server-config/storing-data.mdx rename to core/concepts/features/configuration/server-config/storing-data.mdx index 69432512..580932dd 100644 --- a/concepts/features/configuration/server-config/storing-data.mdx +++ b/core/concepts/features/configuration/server-config/storing-data.mdx @@ -21,14 +21,14 @@ the external storage option described on this page, as they allow reading data stored in some general file format (like Parquet). On this page we are describing storage configuration for the ClickHouse `MergeTree` family or `Log` family tables. -1. to work with data stored on `Amazon S3` disks, use the [S3](/reference/engines/table-engines/integrations/s3) table engine. -2. to work with data stored in Azure Blob Storage, use the [AzureBlobStorage](/reference/engines/table-engines/integrations/azureBlobStorage) table engine. -3. to work with data in the Hadoop Distributed File System (unsupported), use the [HDFS](/reference/engines/table-engines/integrations/hdfs) table engine. +1. to work with data stored on `Amazon S3` disks, use the [S3](/core/reference/engines/table-engines/integrations/s3) table engine. +2. to work with data stored in Azure Blob Storage, use the [AzureBlobStorage](/core/reference/engines/table-engines/integrations/azureBlobStorage) table engine. +3. to work with data in the Hadoop Distributed File System (unsupported), use the [HDFS](/core/reference/engines/table-engines/integrations/hdfs) table engine. ## Configure external storage {#configuring-external-storage} -[`MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) and [`Log`](/reference/engines/table-engines/log-family/log) +[`MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) and [`Log`](/core/reference/engines/table-engines/log-family/log) family table engines can store data to `S3`, `AzureBlobStorage`, `HDFS` (unsupported) using a disk with types `s3`, `azure_blob_storage`, `hdfs` (unsupported) respectively. @@ -46,7 +46,7 @@ It requires specifying:
Optionally, `metadata_type` can be specified (it is equal to `local` by default), but it can also be set to `plain`, `web` and, starting from `24.4`, `plain_rewritable`. -Usage of `plain` metadata type is described in [plain storage section](/concepts/features/configuration/server-config/storing-data#plain-storage), `web` metadata type can be used only with `web` object storage type, `local` metadata type stores metadata files locally (each metadata files contains mapping to files in object storage and some additional meta information about them). +Usage of `plain` metadata type is described in [plain storage section](/core/concepts/features/configuration/server-config/storing-data#plain-storage), `web` metadata type can be used only with `web` object storage type, `local` metadata type stores metadata files locally (each metadata files contains mapping to files in object storage and some additional meta information about them). For example: @@ -355,8 +355,8 @@ where `web` is from the server configuration file: | `s3_max_put_burst` | Maximum concurrent PUT requests before hitting RPS limit. | Same as `s3_max_put_rps` | | `s3_max_get_rps` | Maximum GET requests per second before throttling. | `0` (unlimited) | | `s3_max_get_burst` | Maximum concurrent GET requests before hitting RPS limit. | Same as `s3_max_get_rps` | -| `read_resource` | Resource name for [scheduling](/concepts/features/configuration/server-config/workload-scheduling) read requests. | Empty string (disabled) | -| `write_resource` | Resource name for [scheduling](/concepts/features/configuration/server-config/workload-scheduling) write requests. | Empty string (disabled) | +| `read_resource` | Resource name for [scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) read requests. | Empty string (disabled) | +| `write_resource` | Resource name for [scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) write requests. | Empty string (disabled) | | `key_template` | Defines object key generation format using [re2](https://github.com/google/re2/wiki/Syntax) syntax. Requires `storage_metadata_write_full_object_key` flag. Incompatible with `root path` in `endpoint`. Requires `key_compatibility_prefix`. | - | | `key_compatibility_prefix` | Required with `key_template`. Specifies the previous `root path` from `endpoint` for reading older metadata versions. | - | | `read_only` | Only allowing reading from the disk. | - | @@ -412,7 +412,7 @@ Similar to the `s3_plain` disk type, it does not require additional storage for metadata files. Instead, metadata is stored in S3. Unlike the `s3_plain` disk type, `s3_plain_rewritable` allows executing merges and supports `INSERT` operations. -[Mutations](/reference/statements/alter#mutations) and replication of tables are not supported. +[Mutations](/core/reference/statements/alter#mutations) and replication of tables are not supported. A use case for this disk type is for non-replicated `MergeTree` tables. Although the `s3` disk type is suitable for non-replicated `MergeTree` tables, you may opt @@ -504,8 +504,8 @@ Authentication parameters (the disk will try all available methods **and** Manag |----------------------------------|------------------------------------------------------------------------------------|------------------------------------------| | `metadata_path` | Local filesystem path to store metadata files for Blob Storage. | `/var/lib/clickhouse/disks//` | | `skip_access_check` | If `true`, skips disk access checks during startup. | `false` | -| `read_resource` | Resource name for [scheduling](/concepts/features/configuration/server-config/workload-scheduling) read requests. | Empty string (disabled) | -| `write_resource` | Resource name for [scheduling](/concepts/features/configuration/server-config/workload-scheduling) write requests. | Empty string (disabled) | +| `read_resource` | Resource name for [scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) read requests. | Empty string (disabled) | +| `write_resource` | Resource name for [scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) write requests. | Empty string (disabled) | | `metadata_keep_free_space_bytes` | Amount of free metadata disk space to reserve. | - | Examples of working configurations can be found in integration tests directory (see e.g. [test_merge_tree_azure_blob_storage](https://github.com/ClickHouse/ClickHouse/blob/master/tests/integration/test_merge_tree_azure_blob_storage/configs/config.d/storage_conf.xml) or [test_azure_blob_storage_zero_copy_replication](https://github.com/ClickHouse/ClickHouse/blob/master/tests/integration/test_azure_blob_storage_zero_copy_replication/configs/config.d/storage_conf.xml)). @@ -558,7 +558,7 @@ Keep in mind that HDFS may not work in corner cases. ### Using Data Encryption {#encrypted-virtual-file-system} -You can encrypt the data stored on [S3](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3), or [HDFS](#using-hdfs-storage-unsupported) (unsupported) external disks, or on a local disk. To turn on the encryption mode, in the configuration file you must define a disk with the type `encrypted` and choose a disk on which the data will be saved. An `encrypted` disk ciphers all written files on the fly, and when you read files from an `encrypted` disk it deciphers them automatically. So you can work with an `encrypted` disk like with a normal one. +You can encrypt the data stored on [S3](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3), or [HDFS](#using-hdfs-storage-unsupported) (unsupported) external disks, or on a local disk. To turn on the encryption mode, in the configuration file you must define a disk with the type `encrypted` and choose a disk on which the data will be saved. An `encrypted` disk ciphers all written files on the fly, and when you read files from an `encrypted` disk it deciphers them automatically. So you can work with an `encrypted` disk like with a normal one. Example of disk configuration: @@ -779,9 +779,9 @@ This is a read-only disk. Its data is only read and never modified. A new table is loaded to this disk via `ATTACH TABLE` query (see example below). Local disk is not actually used, each `SELECT` query will result in a `http` request to fetch required data. All modification of the table data will result in an -exception, i.e. the following types of queries are not allowed: [`CREATE TABLE`](/reference/statements/create/table), -[`ALTER TABLE`](/reference/statements/alter), [`RENAME TABLE`](/reference/statements/rename#rename-table), -[`DETACH TABLE`](/reference/statements/detach) and [`TRUNCATE TABLE`](/reference/statements/truncate). +exception, i.e. the following types of queries are not allowed: [`CREATE TABLE`](/core/reference/statements/create/table), +[`ALTER TABLE`](/core/reference/statements/alter), [`RENAME TABLE`](/core/reference/statements/rename#rename-table), +[`DETACH TABLE`](/core/reference/statements/detach) and [`TRUNCATE TABLE`](/core/reference/statements/truncate). Web storage can be used for read-only purposes. An example use is for hosting sample data, or for migrating data. There is a tool `clickhouse-static-files-uploader`, which prepares a data directory for a given table (`SELECT data_paths FROM system.tables WHERE name = 'table_name'`). @@ -835,7 +835,7 @@ not expected to be used routinely, see [dynamic configuration](#dynamic-configur editing the configuration file. A [demo dataset](https://github.com/ClickHouse/web-tables-demo) is hosted in GitHub. To prepare your own tables for web -storage see the tool [clickhouse-static-files-uploader](/concepts/features/tools-and-utilities/static-files-disk-uploader) +storage see the tool [clickhouse-static-files-uploader](/core/concepts/features/tools-and-utilities/static-files-disk-uploader) In this `ATTACH TABLE` query the `UUID` provided matches the directory name of the data, and the endpoint is the URL for the raw GitHub content. @@ -1052,7 +1052,7 @@ SETTINGS storage_policy='web'; | `remote_fs_read_backoff_threashold` | The maximum wait time when trying to read data for remote disk | `10000` seconds | | `remote_fs_read_backoff_max_tries` | The maximum number of attempts to read with backoff | `5` | -If a query fails with an exception `DB:Exception Unreachable URL`, then you can try to adjust the settings: [http_connection_timeout](/reference/settings/session-settings#http_connection_timeout), [http_receive_timeout](/reference/settings/session-settings#http_receive_timeout), [keep_alive_timeout](/reference/settings/server-settings/settings#keep_alive_timeout). +If a query fails with an exception `DB:Exception Unreachable URL`, then you can try to adjust the settings: [http_connection_timeout](/core/reference/settings/session-settings#http_connection_timeout), [http_receive_timeout](/core/reference/settings/session-settings#http_receive_timeout), [keep_alive_timeout](/core/reference/settings/server-settings/settings#keep_alive_timeout). To get files for upload run: `clickhouse static-files-disk-uploader --metadata-path --output-dir

` (`--metadata-path` can be found in query `SELECT data_paths FROM system.tables WHERE name = 'table_name'`). @@ -1061,7 +1061,7 @@ When loading files by `endpoint`, they must be loaded into `/store/` p If URL is not reachable on disk load when the server is starting up tables, then all errors are caught. If in this case there were errors, tables can be reloaded (become visible) via `DETACH TABLE table_name` -> `ATTACH TABLE table_name`. If metadata was successfully loaded at server startup, then tables are available straight away. -Use [http_max_single_read_retries](/concepts/features/configuration/server-config/storing-data#web-storage) setting to limit the maximum number of retries during a single HTTP read. +Use [http_max_single_read_retries](/core/concepts/features/configuration/server-config/storing-data#web-storage) setting to limit the maximum number of retries during a single HTTP read. ### Zero-copy Replication (not ready for production) {#zero-copy} diff --git a/concepts/features/configuration/server-config/workload-scheduling.mdx b/core/concepts/features/configuration/server-config/workload-scheduling.mdx similarity index 87% rename from concepts/features/configuration/server-config/workload-scheduling.mdx rename to core/concepts/features/configuration/server-config/workload-scheduling.mdx index 1f314189..2e4dad7e 100644 --- a/concepts/features/configuration/server-config/workload-scheduling.mdx +++ b/core/concepts/features/configuration/server-config/workload-scheduling.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' When ClickHouse execute multiple queries simultaneously, they may be using shared resources (e.g. disks and CPU cores). Scheduling constraints and policies can be applied to regulate how resources are utilized and shared between different workloads. For all resources a common scheduling hierarchy can be configured. Hierarchy root represents shared resources, while leafs are specific workloads, holding requests that exceed resource capacity. -Currently [remote disk IO](#disk_config) and [CPU](#cpu_scheduling) can be scheduled using described method. For flexible memory limits see [Memory overcommit](/concepts/features/configuration/settings/memory-overcommit) +Currently [remote disk IO](#disk_config) and [CPU](#cpu_scheduling) can be scheduled using described method. For flexible memory limits see [Memory overcommit](/core/concepts/features/configuration/settings/memory-overcommit) ## Disk configuration {#disk_config} @@ -104,7 +104,7 @@ graph TD ``` -Workload scheduling using clickhouse configuration is deprecated. SQL syntax should be used instead. SQL syntax creates all necessary scheduling nodes automatically and the following scheduling node description should be considered as lower level implementation details, accessible through [system.scheduler](/reference/system-tables/scheduler) table. +Workload scheduling using clickhouse configuration is deprecated. SQL syntax should be used instead. SQL syntax creates all necessary scheduling nodes automatically and the following scheduling node description should be considered as lower level implementation details, accessible through [system.scheduler](/core/reference/system-tables/scheduler) table. **Possible node types:** @@ -235,7 +235,7 @@ CREATE RESOURCE cpu (MASTER THREAD, WORKER THREAD) CREATE WORKLOAD all SETTINGS max_concurrent_threads = 100 ``` -When ClickHouse server executes many concurrent queries with [multiple threads](/reference/settings/session-settings#max_threads) and all CPU slots are in use the overload state is reached. In the overload state every released CPU slot is rescheduled to proper workload according to scheduling policies. For queries sharing the same workload, slots are allocated using round robin. For queries in separate workloads, slots are allocated according to weights, priorities, and limits specified for workloads. +When ClickHouse server executes many concurrent queries with [multiple threads](/core/reference/settings/session-settings#max_threads) and all CPU slots are in use the overload state is reached. In the overload state every released CPU slot is rescheduled to proper workload according to scheduling policies. For queries sharing the same workload, slots are allocated using round robin. For queries in separate workloads, slots are allocated according to weights, priorities, and limits specified for workloads. CPU time is consumed by threads when they are not blocked and work on CPU-intensive tasks. For scheduling purpose, two kinds of threads are distinguished: * Master thread — the first thread that starts working on a query or background activity like a merge or a mutation. @@ -266,18 +266,18 @@ CREATE WORKLOAD ingestion IN production This configuration example provides independent CPU slot pools for admin and production. The production pool is shared between analytics and ingestion. Furthermore, if the production pool is overloaded, 9 of 10 released slots will be rescheduled to analytical queries if necessary. The ingestion queries would only receive 1 of 10 slots during overload periods. This might improve the latency of user-facing queries. Analytics has its own limit of 60 concurrent thread, always leaving at least 40 threads to support ingestion. When there is no overload, ingestion could use all 100 threads. -To exclude a query from CPU scheduling set a query setting [use_concurrency_control](/reference/settings/session-settings#use_concurrency_control) to 0. +To exclude a query from CPU scheduling set a query setting [use_concurrency_control](/core/reference/settings/session-settings#use_concurrency_control) to 0. CPU scheduling is not supported for merges and mutations yet. To provide fair allocations for workload it is necessary to perform preemption and down-scaling during query execution. Preemption is enabled with `cpu_slot_preemption` server setting. If it is enabled, every threads renews its CPU slot periodically (according to `cpu_slot_quantum_ns` server setting). Such a renewal can block execution if CPU is overloaded. When execution is blocked for prolonged time (see `cpu_slot_preemption_timeout_ms` server setting), then query scales down and the number of concurrently running threads decreases dynamically. Note that CPU time fairness is guaranteed between workloads, but between queries inside the same workload it might be violated in some corner cases. -Slot scheduling provides a way to control [query concurrency](/reference/settings/session-settings#max_threads) but does not guarantee fair CPU time allocation unless server setting `cpu_slot_preemption` is set to `true`, otherwise fairness is provided based on number of CPU slot allocations among competing workloads. It does not imply equal amount of CPU seconds because without preemption CPU slot may be held indefinitely. A thread acquires a slot at the beginning and release when work is done. +Slot scheduling provides a way to control [query concurrency](/core/reference/settings/session-settings#max_threads) but does not guarantee fair CPU time allocation unless server setting `cpu_slot_preemption` is set to `true`, otherwise fairness is provided based on number of CPU slot allocations among competing workloads. It does not imply equal amount of CPU seconds because without preemption CPU slot may be held indefinitely. A thread acquires a slot at the beginning and release when work is done. -Declaring CPU resource disables effect of [`concurrent_threads_soft_limit_num`](/reference/settings/server-settings/settings#concurrent_threads_soft_limit_num) and [`concurrent_threads_soft_limit_ratio_to_cores`](/reference/settings/server-settings/settings#concurrent_threads_soft_limit_ratio_to_cores) settings. Instead, workload setting `max_concurrent_threads` is used to limit the number of CPUs allocated for a specific workload. To achieve the previous behavior create only WORKER THREAD resource, set `max_concurrent_threads` for the workload `all` to the same value as `concurrent_threads_soft_limit_num` and use `workload = "all"` query setting. This configuration corresponds to [`concurrent_threads_scheduler`](/reference/settings/server-settings/settings#concurrent_threads_scheduler) setting set "fair_round_robin" value. +Declaring CPU resource disables effect of [`concurrent_threads_soft_limit_num`](/core/reference/settings/server-settings/settings#concurrent_threads_soft_limit_num) and [`concurrent_threads_soft_limit_ratio_to_cores`](/core/reference/settings/server-settings/settings#concurrent_threads_soft_limit_ratio_to_cores) settings. Instead, workload setting `max_concurrent_threads` is used to limit the number of CPUs allocated for a specific workload. To achieve the previous behavior create only WORKER THREAD resource, set `max_concurrent_threads` for the workload `all` to the same value as `concurrent_threads_soft_limit_num` and use `workload = "all"` query setting. This configuration corresponds to [`concurrent_threads_scheduler`](/core/reference/settings/server-settings/settings#concurrent_threads_scheduler) setting set "fair_round_robin" value. ## Threads vs. CPUs {#threads_vs_cpus} @@ -326,7 +326,7 @@ CREATE RESOURCE query (QUERY) CREATE WORKLOAD all SETTINGS max_concurrent_queries = 100, max_queries_per_second = 10, max_burst_queries = 20 ``` -Workload setting `max_concurrent_queries` limits the number of concurrent queries that could run simultaneously for a given workload. This is analog of query [`max_concurrent_queries_for_all_users`](/reference/settings/session-settings#max_concurrent_queries_for_all_users) and server [max_concurrent_queries](/reference/settings/server-settings/settings#max_concurrent_queries) settings. Async insert queries and some specific queries like KILL are not counted towards the limit. +Workload setting `max_concurrent_queries` limits the number of concurrent queries that could run simultaneously for a given workload. This is analog of query [`max_concurrent_queries_for_all_users`](/core/reference/settings/session-settings#max_concurrent_queries_for_all_users) and server [max_concurrent_queries](/core/reference/settings/server-settings/settings#max_concurrent_queries) settings. Async insert queries and some specific queries like KILL are not counted towards the limit. Workload settings `max_queries_per_second` and `max_burst_queries` limit number of queries for the workload with a token bucket throttler. It guarantees that during any time interval `T` no more than `max_queries_per_second * T + max_burst_queries` new queries will start execution. @@ -381,15 +381,15 @@ Do not set `throw_on_unknown_workload` to `true` unless `CREATE WORKLOAD default ## See also {#see-also} -- [system.scheduler](/reference/system-tables/scheduler) -- [system.workloads](/reference/system-tables/workloads) -- [system.resources](/reference/system-tables/resources) -- [merge_workload](/reference/settings/merge-tree-settings#merge_workload) merge tree setting -- [merge_workload](/reference/settings/server-settings/settings#merge_workload) global server setting -- [mutation_workload](/reference/settings/merge-tree-settings#mutation_workload) merge tree setting -- [mutation_workload](/reference/settings/server-settings/settings#mutation_workload) global server setting -- [workload_path](/reference/settings/server-settings/settings#workload_path) global server setting -- [workload_zookeeper_path](/reference/settings/server-settings/settings#workload_zookeeper_path) global server setting -- [cpu_slot_preemption](/reference/settings/server-settings/settings#cpu_slot_preemption) global server setting -- [cpu_slot_quantum_ns](/reference/settings/server-settings/settings#cpu_slot_quantum_ns) global server setting -- [cpu_slot_preemption_timeout_ms](/reference/settings/server-settings/settings#cpu_slot_preemption_timeout_ms) global server setting \ No newline at end of file +- [system.scheduler](/core/reference/system-tables/scheduler) +- [system.workloads](/core/reference/system-tables/workloads) +- [system.resources](/core/reference/system-tables/resources) +- [merge_workload](/core/reference/settings/merge-tree-settings#merge_workload) merge tree setting +- [merge_workload](/core/reference/settings/server-settings/settings#merge_workload) global server setting +- [mutation_workload](/core/reference/settings/merge-tree-settings#mutation_workload) merge tree setting +- [mutation_workload](/core/reference/settings/server-settings/settings#mutation_workload) global server setting +- [workload_path](/core/reference/settings/server-settings/settings#workload_path) global server setting +- [workload_zookeeper_path](/core/reference/settings/server-settings/settings#workload_zookeeper_path) global server setting +- [cpu_slot_preemption](/core/reference/settings/server-settings/settings#cpu_slot_preemption) global server setting +- [cpu_slot_quantum_ns](/core/reference/settings/server-settings/settings#cpu_slot_quantum_ns) global server setting +- [cpu_slot_preemption_timeout_ms](/core/reference/settings/server-settings/settings#cpu_slot_preemption_timeout_ms) global server setting \ No newline at end of file diff --git a/concepts/features/configuration/settings/alternative-query-languages.mdx b/core/concepts/features/configuration/settings/alternative-query-languages.mdx similarity index 97% rename from concepts/features/configuration/settings/alternative-query-languages.mdx rename to core/concepts/features/configuration/settings/alternative-query-languages.mdx index 43ea9a9a..44e818b7 100644 --- a/concepts/features/configuration/settings/alternative-query-languages.mdx +++ b/core/concepts/features/configuration/settings/alternative-query-languages.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/alternative-query-languages +slug: /core/guides/developer/alternative-query-languages sidebarTitle: 'Alternative query languages' title: 'Alternative query languages' description: 'Use alternative query languages in ClickHouse' diff --git a/concepts/features/configuration/settings/constraints-on-settings.mdx b/core/concepts/features/configuration/settings/constraints-on-settings.mdx similarity index 97% rename from concepts/features/configuration/settings/constraints-on-settings.mdx rename to core/concepts/features/configuration/settings/constraints-on-settings.mdx index abf3a652..ba41a654 100644 --- a/concepts/features/configuration/settings/constraints-on-settings.mdx +++ b/core/concepts/features/configuration/settings/constraints-on-settings.mdx @@ -18,7 +18,7 @@ stability, security and predictable behavior of your database. Constraints on settings can be defined in the `profiles` section of the `user.xml` configuration file. They prohibit users from changing some settings using the -[`SET`](/reference/statements/set) statement. +[`SET`](/core/reference/statements/set) statement. Constraints are defined as follows: @@ -159,7 +159,7 @@ until they're overridden explicitly for those users. ## Constraints on MergeTree settings {#constraints-on-merge-tree-settings} -It is possible to set constraints for [merge tree settings](/reference/settings/merge-tree-settings). +It is possible to set constraints for [merge tree settings](/core/reference/settings/merge-tree-settings). These constraints are applied when a table with the MergeTree engine is created or its storage settings are altered. diff --git a/concepts/features/configuration/settings/memory-overcommit.mdx b/core/concepts/features/configuration/settings/memory-overcommit.mdx similarity index 100% rename from concepts/features/configuration/settings/memory-overcommit.mdx rename to core/concepts/features/configuration/settings/memory-overcommit.mdx diff --git a/concepts/features/configuration/settings/overview.mdx b/core/concepts/features/configuration/settings/overview.mdx similarity index 71% rename from concepts/features/configuration/settings/overview.mdx rename to core/concepts/features/configuration/settings/overview.mdx index f5fbd26d..5a292102 100644 --- a/concepts/features/configuration/settings/overview.mdx +++ b/core/concepts/features/configuration/settings/overview.mdx @@ -8,9 +8,9 @@ doc_type: 'reference' ## Overview {#overview} -XML-based Settings Profiles and [configuration files](/concepts/features/configuration/server-config/configuration-files) are currently not +XML-based Settings Profiles and [configuration files](/core/concepts/features/configuration/server-config/configuration-files) are currently not supported for ClickHouse Cloud. To specify settings for your ClickHouse Cloud -service, you must use [SQL-driven Settings Profiles](/concepts/features/security/access-rights#settings-profiles-management). +service, you must use [SQL-driven Settings Profiles](/core/concepts/features/security/access-rights#settings-profiles-management). There are following main groups of ClickHouse settings: @@ -53,8 +53,8 @@ Which will return something like this: ## Further reading {#further-reading} -- See [global server settings](/reference/settings/server-settings/settings) to learn more about configuring your +- See [global server settings](/core/reference/settings/server-settings/settings) to learn more about configuring your ClickHouse server at the global server level. -- See [session settings](/concepts/features/configuration/settings/settings-query-level) to learn more about configuring your ClickHouse +- See [session settings](/core/concepts/features/configuration/settings/settings-query-level) to learn more about configuring your ClickHouse server at the session level. -- See [context hierarchy](/resources/contribute/architecture#context) to learn more about configuration processing by Clickhouse. +- See [context hierarchy](/resources/develop-contribute/introduction/architecture#context) to learn more about configuration processing by Clickhouse. diff --git a/concepts/features/configuration/settings/permissions-for-queries.mdx b/core/concepts/features/configuration/settings/permissions-for-queries.mdx similarity index 88% rename from concepts/features/configuration/settings/permissions-for-queries.mdx rename to core/concepts/features/configuration/settings/permissions-for-queries.mdx index 40f6dc43..319b63e7 100644 --- a/concepts/features/configuration/settings/permissions-for-queries.mdx +++ b/core/concepts/features/configuration/settings/permissions-for-queries.mdx @@ -42,9 +42,9 @@ Default value: 0 After setting `readonly = 1`, the user can't change `readonly` and `allow_ddl` settings in the current session. -When using the `GET` method in the [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http), `readonly = 1` is set automatically. To modify data, use the `POST` method. +When using the `GET` method in the [HTTP interface](/core/concepts/features/interfaces/http), `readonly = 1` is set automatically. To modify data, use the `POST` method. -Setting `readonly = 1` prohibits the user from changing settings. There is a way to prohibit the user from changing only specific settings. Also there is a way to allow changing only specific settings under `readonly = 1` restrictions. For details see [constraints on settings](/concepts/features/configuration/settings/constraints-on-settings). +Setting `readonly = 1` prohibits the user from changing settings. There is a way to prohibit the user from changing only specific settings. Also there is a way to allow changing only specific settings under `readonly = 1` restrictions. For details see [constraints on settings](/core/concepts/features/configuration/settings/constraints-on-settings). ## allow_ddl {#allow_ddl} diff --git a/core/concepts/features/configuration/settings/query-complexity.mdx b/core/concepts/features/configuration/settings/query-complexity.mdx new file mode 100644 index 00000000..cf54d056 --- /dev/null +++ b/core/concepts/features/configuration/settings/query-complexity.mdx @@ -0,0 +1,115 @@ +--- +description: 'Settings which restrict query complexity.' +sidebarTitle: 'Restrictions on query complexity' +slug: /operations/settings/query-complexity +title: 'Restrictions on query complexity' +doc_type: 'reference' +--- + +## Overview {#overview} + +As part of the [settings](/core/concepts/features/configuration/settings/overview), ClickHouse offers +the ability to place restrictions on query complexity. This helps protect against +potentially resource-intensive queries, ensuring safer and more predictable +execution, particularly when using the user interface. + +Almost all the restrictions only apply to `SELECT` queries, and for distributed +query processing, restrictions are applied on each server separately. + +ClickHouse generally checks the restrictions only after data parts have been +fully processed, rather than checking the restrictions for each row. This can +result in a situation where restrictions are violated while the part is being +processed. + +## `overflow_mode` settings {#overflow_mode_setting} + +Most restrictions also have an `overflow_mode` setting, which defines what happens +when the limit is exceeded, and can take one of two values: +- `throw`: throw an exception (default). +- `break`: stop executing the query and return the partial result, as if the + source data ran out. + +## `group_by_overflow_mode` settings {#group_by_overflow_mode_settings} + +The `group_by_overflow_mode` setting also has +the value `any`: +- `any` : continue aggregation for the keys that got into the set, but do not + add new keys to the set. + +## List of settings {#relevant-settings} + +The following settings are used for applying restrictions on query complexity. + + +Restrictions on the "maximum amount of something" can take a value of `0`, +which means that it is "unrestricted". + + +| Setting | Short description | +|------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [`max_memory_usage`](/core/reference/settings/session-settings#max_memory_usage) | The maximum amount of RAM to use for running a query on a single server. | +| [`max_memory_usage_for_user`](/core/reference/settings/session-settings#max_memory_usage_for_user) | The maximum amount of RAM to use for running a user's queries on a single server. | +| [`max_rows_to_read`](/core/reference/settings/session-settings#max_rows_to_read) | The maximum number of rows that can be read from a table when running a query. | +| [`max_bytes_to_read`](/core/reference/settings/session-settings#max_bytes_to_read) | The maximum number of bytes (of uncompressed data) that can be read from a table when running a query. | +| [`read_overflow_mode_leaf`](/core/reference/settings/session-settings#read_overflow_mode_leaf) | Sets what happens when the volume of data read exceeds one of the leaf limits | +| [`max_rows_to_read_leaf`](/core/reference/settings/session-settings#max_rows_to_read_leaf) | The maximum number of rows that can be read from a local table on a leaf node when running a distributed query | +| [`max_bytes_to_read_leaf`](/core/reference/settings/session-settings#max_bytes_to_read_leaf) | The maximum number of bytes (of uncompressed data) that can be read from a local table on a leaf node when running a distributed query. | +| [`read_overflow_mode_leaf`](/core/reference/settings/session-settings#read_overflow_mode_leaf) | Sets what happens when the volume of data read exceeds one of the leaf limits. | +| [`max_rows_to_group_by`](/core/reference/settings/session-settings#max_rows_to_group_by) | The maximum number of unique keys received from aggregation. | +| [`group_by_overflow_mode`](/core/reference/settings/session-settings#group_by_overflow_mode) | Sets what happens when the number of unique keys for aggregation exceeds the limit | +| [`max_bytes_before_external_group_by`](/core/reference/settings/session-settings#max_bytes_before_external_group_by) | Enables or disables execution of `GROUP BY` clauses in external memory. | +| [`max_bytes_ratio_before_external_group_by`](/core/reference/settings/session-settings#max_bytes_ratio_before_external_group_by) | The ratio of available memory that is allowed for `GROUP BY`. Once reached, external memory is used for aggregation. | +| [`max_bytes_before_external_sort`](/core/reference/settings/session-settings#max_bytes_before_external_sort) | Enables or disables execution of `ORDER BY` clauses in external memory. | +| [`max_bytes_ratio_before_external_sort`](/core/reference/settings/session-settings#max_bytes_ratio_before_external_sort) | The ratio of available memory that is allowed for `ORDER BY`. Once reached, external sort is used. | +| [`max_rows_to_sort`](/core/reference/settings/session-settings#max_rows_to_sort) | The maximum number of rows before sorting. Allows limiting memory consumption when sorting. | +| [`max_bytes_to_sort`](/core/reference/settings/session-settings#max_rows_to_sort) | The maximum number of bytes before sorting. | +| [`sort_overflow_mode`](/core/reference/settings/session-settings#sort_overflow_mode) | Sets what happens if the number of rows received before sorting exceeds one of the limits. | +| [`max_result_rows`](/core/reference/settings/session-settings#max_result_rows) | Limits the number of rows in the result. | +| [`max_result_bytes`](/core/reference/settings/session-settings#max_result_bytes) | Limits the result size in bytes (uncompressed) | +| [`result_overflow_mode`](/core/reference/settings/session-settings#result_overflow_mode) | Sets what to do if the volume of the result exceeds one of the limits. | +| [`max_execution_time`](/core/reference/settings/session-settings#max_execution_time) | The maximum query execution time in seconds. | +| [`timeout_overflow_mode`](/core/reference/settings/session-settings#timeout_overflow_mode) | Sets what to do if the query is run longer than the `max_execution_time` or the estimated running time is longer than `max_estimated_execution_time`. | +| [`max_execution_time_leaf`](/core/reference/settings/session-settings#max_execution_time_leaf) | Similar semantically to `max_execution_time` but only applied on leaf nodes for distributed or remote queries. | +| [`timeout_overflow_mode_leaf`](/core/reference/settings/session-settings#timeout_overflow_mode_leaf) | Sets what happens when the query in leaf node run longer than `max_execution_time_leaf`. | +| [`min_execution_speed`](/core/reference/settings/session-settings#min_execution_speed) | Minimal execution speed in rows per second. | +| [`min_execution_speed_bytes`](/core/reference/settings/session-settings#min_execution_speed_bytes) | The minimum number of execution bytes per second. | +| [`max_execution_speed`](/core/reference/settings/session-settings#max_execution_speed) | The maximum number of execution rows per second. | +| [`max_execution_speed_bytes`](/core/reference/settings/session-settings#max_execution_speed_bytes) | The maximum number of execution bytes per second. | +| [`timeout_before_checking_execution_speed`](/core/reference/settings/session-settings#timeout_before_checking_execution_speed) | Checks that execution speed is not too slow (no less than `min_execution_speed`), after the specified time in seconds has expired. | +| [`max_estimated_execution_time`](/core/reference/settings/session-settings#max_estimated_execution_time) | Maximum query estimate execution time in seconds. | +| [`max_columns_to_read`](/core/reference/settings/session-settings#max_columns_to_read) | The maximum number of columns that can be read from a table in a single query. | +| [`max_temporary_columns`](/core/reference/settings/session-settings#max_temporary_columns) | The maximum number of temporary columns that must be kept in RAM simultaneously when running a query, including constant columns. | +| [`max_temporary_non_const_columns`](/core/reference/settings/session-settings#max_temporary_non_const_columns) | The maximum number of temporary columns that must be kept in RAM simultaneously when running a query, but without counting constant columns. | +| [`max_subquery_depth`](/core/reference/settings/session-settings#max_subquery_depth) | Sets what happens if a query has more than the specified number of nested subqueries. | +| [`max_ast_depth`](/core/reference/settings/session-settings#max_ast_depth) | The maximum nesting depth of a query syntactic tree. | +| [`max_ast_elements`](/core/reference/settings/session-settings#max_ast_elements) | The maximum number of elements in a query syntactic tree. | +| [`max_rows_in_set`](/core/reference/settings/session-settings#max_rows_in_set) | The maximum number of rows for a data set in the IN clause created from a subquery. | +| [`max_bytes_in_set`](/core/reference/settings/session-settings#max_bytes_in_set) | The maximum number of bytes (of uncompressed data) used by a set in the IN clause created from a subquery. | +| [`set_overflow_mode`](/core/reference/settings/session-settings#max_bytes_in_set) | Sets what happens when the amount of data exceeds one of the limits. | +| [`max_rows_in_distinct`](/core/reference/settings/session-settings#max_rows_in_distinct) | The maximum number of different rows when using DISTINCT. | +| [`max_bytes_in_distinct`](/core/reference/settings/session-settings#max_bytes_in_distinct) | The maximum number of bytes of the state (in uncompressed bytes) in memory, which is used by a hash table when using DISTINCT. | +| [`distinct_overflow_mode`](/core/reference/settings/session-settings#distinct_overflow_mode) | Sets what happens when the amount of data exceeds one of the limits. | +| [`max_rows_to_transfer`](/core/reference/settings/session-settings#max_rows_to_transfer) | Maximum size (in rows) that can be passed to a remote server or saved in a temporary table when the GLOBAL IN/JOIN section is executed. | +| [`max_bytes_to_transfer`](/core/reference/settings/session-settings#max_bytes_to_transfer) | The maximum number of bytes (uncompressed data) that can be passed to a remote server or saved in a temporary table when the GLOBAL IN/JOIN section is executed. | +| [`transfer_overflow_mode`](/core/reference/settings/session-settings#transfer_overflow_mode) | Sets what happens when the amount of data exceeds one of the limits. | +| [`max_rows_in_join`](/core/reference/settings/session-settings#max_rows_in_join) | Limits the number of rows in the hash table that is used when joining tables. | +| [`max_bytes_in_join`](/core/reference/settings/session-settings#max_bytes_in_join) | The maximum size in number of bytes of the hash table used when joining tables. | +| [`join_overflow_mode`](/core/reference/settings/session-settings#join_overflow_mode) | Defines what action ClickHouse performs when any of the following join limits is reached. | +| [`max_partitions_per_insert_block`](/core/reference/settings/session-settings#max_partitions_per_insert_block) | Limits the maximum number of partitions in a single inserted block and an exception is thrown if the block contains too many partitions. | +| [`throw_on_max_partitions_per_insert_block`](/core/reference/settings/session-settings#throw_on_max_partitions_per_insert_block) | Allows you to control the behaviour when `max_partitions_per_insert_block` is reached. | +| [`max_temporary_data_on_disk_size_for_user`](/core/reference/settings/session-settings#throw_on_max_partitions_per_insert_block) | The maximum amount of data consumed by temporary files on disk in bytes for all concurrently running user queries. | +| [`max_temporary_data_on_disk_size_for_query`](/core/reference/settings/session-settings#max_temporary_data_on_disk_size_for_query) | The maximum amount of data consumed by temporary files on disk in bytes for all concurrently running queries. | +| [`max_sessions_for_user`](/core/reference/settings/session-settings#max_sessions_for_user) | Maximum number of simultaneous sessions per authenticated user to the ClickHouse server. | +| [`max_partitions_to_read`](/core/reference/settings/session-settings#max_partitions_to_read) | Limits the maximum number of partitions that can be accessed in a single query. | + +## Obsolete settings {#obsolete-settings} + + +The following settings are obsolete + + +### max_pipeline_depth {#max-pipeline-depth} + +Maximum pipeline depth. It Corresponds to the number of transformations that each +data block goes through during query processing. Counted within the limits of a +single server. If the pipeline depth is greater, an exception is thrown. diff --git a/concepts/features/configuration/settings/server-overload.mdx b/core/concepts/features/configuration/settings/server-overload.mdx similarity index 100% rename from concepts/features/configuration/settings/server-overload.mdx rename to core/concepts/features/configuration/settings/server-overload.mdx diff --git a/concepts/features/configuration/settings/settings-profiles.mdx b/core/concepts/features/configuration/settings/settings-profiles.mdx similarity index 95% rename from concepts/features/configuration/settings/settings-profiles.mdx rename to core/concepts/features/configuration/settings/settings-profiles.mdx index dd7846a0..ba7ad182 100644 --- a/concepts/features/configuration/settings/settings-profiles.mdx +++ b/core/concepts/features/configuration/settings/settings-profiles.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' A settings profile is a collection of settings grouped under the same name. -ClickHouse also supports [SQL-driven workflow](/concepts/features/security/access-rights#access-control-usage) for managing settings profiles. We recommend using it. +ClickHouse also supports [SQL-driven workflow](/core/concepts/features/security/access-rights#access-control-usage) for managing settings profiles. We recommend using it. The profile can have any name. You can specify the same profile for different users. The most important thing you can write in the settings profile is `readonly=1`, which ensures read-only access. diff --git a/concepts/features/configuration/settings/settings-query-level.mdx b/core/concepts/features/configuration/settings/settings-query-level.mdx similarity index 93% rename from concepts/features/configuration/settings/settings-query-level.mdx rename to core/concepts/features/configuration/settings/settings-query-level.mdx index 87624e21..6360d851 100644 --- a/concepts/features/configuration/settings/settings-query-level.mdx +++ b/core/concepts/features/configuration/settings/settings-query-level.mdx @@ -33,7 +33,7 @@ The order of priority for defining a setting is: parameter `--setting=value`. - When using the HTTP API, pass CGI parameters (`URL?setting_1=value&setting_2=value...`). - Define settings in the - [SETTINGS](/reference/statements/select#settings-in-select-query) + [SETTINGS](/core/reference/statements/select#settings-in-select-query) clause of the SELECT query. The setting value is applied only to that query and is reset to the default or previous value after the query is executed. @@ -79,14 +79,14 @@ The setting is now back to its default: ## Custom settings {#custom_settings} -In addition to the common [settings](/reference/settings/session-settings), users can define custom settings. +In addition to the common [settings](/core/reference/settings/session-settings), users can define custom settings. Custom settings enable you to pass **session-specific parameters** that can be referenced within queries, policies, or functions. This is useful when you need to: - Filter data based on user identity or organization - Apply different business logic based on context - Maintain stateful information across queries in a session A custom setting name must begin with one of a number of predefined prefixes from a list you define. -The list of prefixes can be specified using the [`custom_settings_prefixes`](/reference/settings/server-settings/settings#custom_settings_prefixes) server setting, defined in your server configuration file. +The list of prefixes can be specified using the [`custom_settings_prefixes`](/core/reference/settings/server-settings/settings#custom_settings_prefixes) server setting, defined in your server configuration file. In the example below, `SQL_` is chosen as the custom prefix: @@ -220,5 +220,5 @@ VALUES (...) ## See also {#see-also} -- View the [Settings](/reference/settings/session-settings) page for a description of the ClickHouse settings. -- [Global server settings](/reference/settings/server-settings/settings) +- View the [Settings](/core/reference/settings/session-settings) page for a description of the ClickHouse settings. +- [Global server settings](/core/reference/settings/server-settings/settings) diff --git a/concepts/features/configuration/settings/settings-users.mdx b/core/concepts/features/configuration/settings/settings-users.mdx similarity index 94% rename from concepts/features/configuration/settings/settings-users.mdx rename to core/concepts/features/configuration/settings/settings-users.mdx index 8b5c73f2..58d9f979 100644 --- a/concepts/features/configuration/settings/settings-users.mdx +++ b/core/concepts/features/configuration/settings/settings-users.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' The `users` section of the `users.xml` configuration file contains user settings. -ClickHouse also supports [SQL-driven workflow](/concepts/features/security/access-rights#access-control-usage) for managing users. We recommend using it. +ClickHouse also supports [SQL-driven workflow](/core/concepts/features/security/access-rights#access-control-usage) for managing users. We recommend using it. Structure of the `users` section: @@ -284,7 +284,7 @@ In this example, TOTP verification is applied to the password-based method (` ``` -The `filter` can be any expression resulting in a [UInt8](/reference/data-types/int-uint)-type value. It usually contains comparisons and logical operators. Rows from `database_name.table1` where filter results to 0 are not returned for this user. The filtering is incompatible with `PREWHERE` operations and disables `WHERE→PREWHERE` optimization. +The `filter` can be any expression resulting in a [UInt8](/core/reference/data-types/int-uint)-type value. It usually contains comparisons and logical operators. Rows from `database_name.table1` where filter results to 0 are not returned for this user. The filtering is incompatible with `PREWHERE` operations and disables `WHERE→PREWHERE` optimization. ## Roles {#roles} diff --git a/concepts/features/configuration/settings/tcp-connection-limits.mdx b/core/concepts/features/configuration/settings/tcp-connection-limits.mdx similarity index 95% rename from concepts/features/configuration/settings/tcp-connection-limits.mdx rename to core/concepts/features/configuration/settings/tcp-connection-limits.mdx index ff0e6330..2ccc48b1 100644 --- a/concepts/features/configuration/settings/tcp-connection-limits.mdx +++ b/core/concepts/features/configuration/settings/tcp-connection-limits.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' ## Overview {#overview} -You may have a ClickHouse TCP connection (i.e., one through the [command-line client](/integrations/connectors/data-integrations/drivers-and-interfaces/client)) +You may have a ClickHouse TCP connection (i.e., one through the [command-line client](/core/concepts/features/interfaces/client)) disconnect automatically after some number of queries or duration. After disconnecting, no automatic reconnection occurs (unless triggered through something else, such as sending another query in the command-line client). diff --git a/concepts/features/dictionaries/best-practices.mdx b/core/concepts/features/dictionaries/best-practices.mdx similarity index 95% rename from concepts/features/dictionaries/best-practices.mdx rename to core/concepts/features/dictionaries/best-practices.mdx index 2bdd73ea..dc85839a 100644 --- a/concepts/features/dictionaries/best-practices.mdx +++ b/core/concepts/features/dictionaries/best-practices.mdx @@ -9,7 +9,7 @@ keywords: ['dictionary', 'dictionaries', 'layout', 'dictGet', 'JOIN', 'hashed', This page covers practical guidance for choosing the right dictionary layout, understanding when dictionaries outperform JOINs (and when they don't), and monitoring dictionary usage. -For an introduction to dictionaries with worked examples, see the [main Dictionary guide](/concepts/features/dictionaries). +For an introduction to dictionaries with worked examples, see the [main Dictionary guide](/core/concepts/features/dictionaries). ## When to use dictionaries vs JOINs {#when-to-use-dictionaries-vs-joins} @@ -23,7 +23,7 @@ As a rule of thumb: ## Choosing a layout {#choosing-a-layout} -The `LAYOUT` clause controls the internal data structure for the dictionary. All available layouts are documented in the [layouts reference](/reference/statements/create/dictionary/layouts/overview#storing-dictionaries-in-memory). +The `LAYOUT` clause controls the internal data structure for the dictionary. All available layouts are documented in the [layouts reference](/core/reference/statements/create/dictionary/layouts/overview#storing-dictionaries-in-memory). When choosing a layout, use the following guidelines: @@ -37,7 +37,7 @@ When choosing a layout, use the following guidelines: ## Monitoring dictionary usage {#monitoring-dictionary-usage} -Track memory consumption and health via the [`system.dictionaries`](/reference/system-tables/dictionaries) table: +Track memory consumption and health via the [`system.dictionaries`](/core/reference/system-tables/dictionaries) table: ```sql SELECT diff --git a/concepts/features/dictionaries/index.mdx b/core/concepts/features/dictionaries/index.mdx similarity index 85% rename from concepts/features/dictionaries/index.mdx rename to core/concepts/features/dictionaries/index.mdx index 8bdd3b46..603e2a54 100644 --- a/concepts/features/dictionaries/index.mdx +++ b/core/concepts/features/dictionaries/index.mdx @@ -10,7 +10,7 @@ import { Image } from "/snippets/components/Image.jsx"; # Dictionary -A dictionary in ClickHouse provides an in-memory [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) representation of data from various [internal and external sources](/reference/statements/create/dictionary/sources/overview#dictionary-sources), optimizing for super-low latency lookup queries. +A dictionary in ClickHouse provides an in-memory [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) representation of data from various [internal and external sources](/core/reference/statements/create/dictionary/sources/overview#dictionary-sources), optimizing for super-low latency lookup queries. Dictionaries are useful for: - Improving the performance of queries, especially when used with `JOIN`s @@ -20,17 +20,17 @@ Dictionaries are useful for: ## Speeding up joins using a Dictionary {#speeding-up-joins-using-a-dictionary} -Dictionaries can be used to speed up a specific type of `JOIN`: the [`LEFT ANY` type](/reference/statements/select/join#supported-types-of-join) where the join key needs to match the key attribute of the underlying key-value storage. +Dictionaries can be used to speed up a specific type of `JOIN`: the [`LEFT ANY` type](/core/reference/statements/select/join#supported-types-of-join) where the join key needs to match the key attribute of the underlying key-value storage. Using Dictionary with LEFT ANY JOIN -If this is the case, ClickHouse can exploit the dictionary to perform a [Direct Join](https://clickhouse.com/blog/clickhouse-fully-supports-joins-direct-join-part4#direct-join). This is ClickHouse's fastest join algorithm and is applicable when the underlying [table engine](/reference/engines/table-engines) for the right-hand side table supports low-latency key-value requests. ClickHouse has three table engines providing this: [Join](/reference/engines/table-engines/special/join) (that is basically a pre-calculated hash table), [EmbeddedRocksDB](/reference/engines/table-engines/integrations/embedded-rocksdb) and [Dictionary](/reference/engines/table-engines/special/dictionary). We will describe the dictionary-based approach, but the mechanics are the same for all three engines. +If this is the case, ClickHouse can exploit the dictionary to perform a [Direct Join](https://clickhouse.com/blog/clickhouse-fully-supports-joins-direct-join-part4#direct-join). This is ClickHouse's fastest join algorithm and is applicable when the underlying [table engine](/core/reference/engines/table-engines) for the right-hand side table supports low-latency key-value requests. ClickHouse has three table engines providing this: [Join](/core/reference/engines/table-engines/special/join) (that is basically a pre-calculated hash table), [EmbeddedRocksDB](/core/reference/engines/table-engines/integrations/embedded-rocksdb) and [Dictionary](/core/reference/engines/table-engines/special/dictionary). We will describe the dictionary-based approach, but the mechanics are the same for all three engines. The direct join algorithm requires that the right table is backed by a dictionary, such that the to-be-joined data from that table is already present in memory in the form of a low-latency key-value data structure. ### Example {#example} -Using the [Stack Overflow dataset](/get-started/sample-datasets/stackoverflow), let's answer the question: +Using the [Stack Overflow dataset](/core/get-started/sample-datasets/stackoverflow), let's answer the question: *What is the most controversial post concerning SQL on Hacker News?* We will define controversial as when posts have a similar number of up and down votes. We compute this absolute difference, where a value closer to 0 means more controversy. We'll assume the post must have at least 10 up and down votes - posts which people don't vote on aren't very controversial. @@ -84,7 +84,7 @@ While this query is fast, it relies on us to write the `JOIN` carefully to achie #### Applying a dictionary {#applying-a-dictionary} -To demonstrate these concepts, we use a dictionary for our vote data. Since dictionaries are usually held in memory ([ssd_cache](/reference/statements/create/dictionary/layouts/ssd-cache) is the exception), you should be cognizant of the size of the data. Confirming our `votes` table size: +To demonstrate these concepts, we use a dictionary for our vote data. Since dictionaries are usually held in memory ([ssd_cache](/core/reference/statements/create/dictionary/layouts/ssd-cache) is the exception), you should be cognizant of the size of the data. Confirming our `votes` table size: ```sql SELECT table, @@ -102,7 +102,7 @@ GROUP BY table Data will be stored uncompressed in our dictionary, so we need at least 4GB of memory if we were to store all columns (we won't) in a dictionary. The dictionary will be replicated across our cluster, so this amount of memory needs to be reserved *per node*. -> In the example below the data for our dictionary originates from a ClickHouse table. While this represents the most common source of dictionaries, [a number of sources](/reference/statements/create/dictionary/sources/overview#dictionary-sources) are supported including files, http and databases including [Postgres](/reference/statements/create/dictionary/sources/postgresql). As we'll show, dictionaries can be automatically refreshed providing an ideal way to ensure small datasets subject to frequent changes are available for direct joins. +> In the example below the data for our dictionary originates from a ClickHouse table. While this represents the most common source of dictionaries, [a number of sources](/core/reference/statements/create/dictionary/sources/overview#dictionary-sources) are supported including files, http and databases including [Postgres](/core/reference/statements/create/dictionary/sources/postgresql). As we'll show, dictionaries can be automatically refreshed providing an ideal way to ensure small datasets subject to frequent changes are available for direct joins. Our dictionary requires a primary key on which lookups will be performed. This is conceptually identical to a transactional database primary key and should be unique. Our above query requires a lookup on the join key - `PostId`. The dictionary should in turn be populated with the total of the up and down votes per `PostId` from our `votes` table. Here's the query to obtain this dictionary data: @@ -279,7 +279,7 @@ ORDER BY (PostTypeId, toDate(CreationDate), CommentCount) In the above example the `Location` is declared as a `MATERIALIZED` column. This means the value can be provided as part of an `INSERT` query and will always be calculated. -> ClickHouse also supports [`DEFAULT` columns](/reference/statements/create/table#default_values) (where the value can be inserted or calculated if not provided). +> ClickHouse also supports [`DEFAULT` columns](/core/reference/statements/create/table#default_values) (where the value can be inserted or calculated if not provided). To populate the table we can use the usual `INSERT INTO SELECT` from S3: @@ -312,21 +312,21 @@ Peak memory usage: 666.82 MiB. ## Advanced dictionary topics {#advanced-dictionary-topics} -For guidance on choosing dictionary layouts, when to use dictionaries vs JOINs, and monitoring dictionary usage, see [Dictionary best practices](/concepts/features/dictionaries/best-practices). +For guidance on choosing dictionary layouts, when to use dictionaries vs JOINs, and monitoring dictionary usage, see [Dictionary best practices](/core/concepts/features/dictionaries/best-practices). ### Refreshing dictionaries {#refreshing-dictionaries} We have specified a `LIFETIME` for the dictionary of `MIN 600 MAX 900`. LIFETIME is the update interval for the dictionary, with the values here causing a periodic reload at a random interval between 600 and 900s. This random interval is necessary in order to distribute the load on the dictionary source when updating on a large number of servers. During updates, the old version of a dictionary can still be queried, with only the initial load blocking queries. Note that setting `(LIFETIME(0))` prevents dictionaries from updating. Dictionaries can be forcibly reloaded using the `SYSTEM RELOAD DICTIONARY` command. -For database sources such as ClickHouse and Postgres, you can set up a query that will update the dictionaries only if they really changed (the response of the query determines this), rather than at a periodic interval. Further details can be found [here](/reference/statements/create/dictionary/lifetime). +For database sources such as ClickHouse and Postgres, you can set up a query that will update the dictionaries only if they really changed (the response of the query determines this), rather than at a periodic interval. Further details can be found [here](/core/reference/statements/create/dictionary/lifetime). ### Other dictionary types {#other-dictionary-types} -ClickHouse also supports [Hierarchical](/reference/statements/create/dictionary/layouts/hierarchical), [Polygon](/reference/statements/create/dictionary/layouts/polygon) and [Regular Expression](/reference/statements/create/dictionary/layouts/regexp-tree) dictionaries. +ClickHouse also supports [Hierarchical](/core/reference/statements/create/dictionary/layouts/hierarchical), [Polygon](/core/reference/statements/create/dictionary/layouts/polygon) and [Regular Expression](/core/reference/statements/create/dictionary/layouts/regexp-tree) dictionaries. ### More reading {#more-reading} -- [Dictionary best practices](/concepts/features/dictionaries/best-practices) — layout selection, dictionaries vs JOINs, monitoring +- [Dictionary best practices](/core/concepts/features/dictionaries/best-practices) — layout selection, dictionaries vs JOINs, monitoring - [Using Dictionaries to Accelerate Queries](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) -- [Advanced Configuration for Dictionaries](/reference/statements/create/dictionary) +- [Advanced Configuration for Dictionaries](/core/reference/statements/create/dictionary) diff --git a/concepts/features/index.mdx b/core/concepts/features/index.mdx similarity index 53% rename from concepts/features/index.mdx rename to core/concepts/features/index.mdx index 5406246d..fa0583e4 100644 --- a/concepts/features/index.mdx +++ b/core/concepts/features/index.mdx @@ -1,36 +1,36 @@ --- title: 'ClickHouse Concepts' -slug: /guides/manage-and-deploy +slug: /core/guides/manage-and-deploy description: 'Explore ClickHouse concepts including materialized views, dictionaries, performance tuning, operations, configuration, security, and more.' mode: wide --- - + Learn about incremental, refreshable, and cascading materialized views. - + External and internal dictionaries for fast key-value lookups. - + Pre-sorted data representations for faster queries. - + Prewhere, caches, skipping indexes, lazy materialization, and troubleshooting. - + Insert, select, update, and delete operations. - + Settings, server configuration, and workload scheduling. - + Access control, TLS, external authenticators, and network security. - + Backup to local disk, S3, Azure Blob Storage, and alternative methods. - + clickhouse-local, clickhouse-benchmark, clickhouse-keeper, and more. \ No newline at end of file diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/arrowflight.mdx b/core/concepts/features/interfaces/arrowflight.mdx similarity index 98% rename from integrations/connectors/data-integrations/drivers-and-interfaces/arrowflight.mdx rename to core/concepts/features/interfaces/arrowflight.mdx index fa3204d7..85821983 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/arrowflight.mdx +++ b/core/concepts/features/interfaces/arrowflight.mdx @@ -417,11 +417,11 @@ If a native ClickHouse connector is available for your tool (e.g., JDBC, ODBC, n ClickHouse can also act as a Flight client to read data from external Arrow Flight servers. See: -- [ArrowFlight table engine](/reference/engines/table-engines/integrations/arrowflight) -- [arrowFlight table function](/reference/functions/table-functions/arrowflight) +- [ArrowFlight table engine](/core/reference/engines/table-engines/integrations/arrowflight) +- [arrowFlight table function](/core/reference/functions/table-functions/arrowflight) ## See also {#see-also} - [Apache Arrow Flight specification](https://arrow.apache.org/docs/format/Flight.html) - [Apache Arrow Flight SQL specification](https://arrow.apache.org/docs/format/FlightSql.html) -- [Arrow format in ClickHouse](/reference/formats/Arrow/Arrow) +- [Arrow format in ClickHouse](/core/reference/formats/Arrow/Arrow) diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/cli.mdx b/core/concepts/features/interfaces/cli.mdx similarity index 100% rename from integrations/connectors/data-integrations/drivers-and-interfaces/cli.mdx rename to core/concepts/features/interfaces/cli.mdx diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/client.mdx b/core/concepts/features/interfaces/client.mdx similarity index 96% rename from integrations/connectors/data-integrations/drivers-and-interfaces/client.mdx rename to core/concepts/features/interfaces/client.mdx index 8cb7c80d..fe723653 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/client.mdx +++ b/core/concepts/features/interfaces/client.mdx @@ -10,7 +10,7 @@ import { Image } from "/snippets/components/Image.jsx"; ClickHouse provides a native command-line client for executing SQL queries directly against a ClickHouse server. It supports both interactive mode (for live query execution) and batch mode (for scripting and automation). -Query results can be displayed in the terminal or exported to a file, with support for all ClickHouse output [formats](/reference/formats), such as Pretty, CSV, JSON, and more. +Query results can be displayed in the terminal or exported to a file, with support for all ClickHouse output [formats](/core/reference/formats), such as Pretty, CSV, JSON, and more. The client provides real-time feedback on query execution with a progress bar and the number of rows read, bytes processed and query execution time. It supports both [command-line options](#command-line-options) and [configuration files](#configuration_files). @@ -29,7 +29,7 @@ To also install it, run: sudo ./clickhouse install ``` -See [Install ClickHouse](/get-started/setup/self-managed/install) for more installation options. +See [Install ClickHouse](/core/get-started/setup/install) for more installation options. Different client and server versions are compatible with one another, but some features may not be available in older clients. We recommend using the same version for client and server. @@ -173,7 +173,7 @@ It is not possible to cancel a query at certain stages. If you do not wait and press `Ctrl+C` a second time, the client will exit. ClickHouse Client allows passing external data (external temporary tables) for querying. -For more information, see the section [External data for query processing](/reference/engines/table-engines/special/external-data). +For more information, see the section [External data for query processing](/core/reference/engines/table-engines/special/external-data). ### Aliases {#cli_aliases} @@ -272,7 +272,7 @@ In the example below, the contents of file.csv are output to stdout using `cat`, cat file.csv | clickhouse-client --database=test --query="INSERT INTO test FORMAT CSV"; ``` -In batch mode, the default data [format](/reference/formats) is `TabSeparated`. +In batch mode, the default data [format](/core/reference/formats) is `TabSeparated`. You can set the format in the `FORMAT` clause of the query as shown in the example above. ## Queries with parameters {#cli-queries-with-parameters} @@ -326,7 +326,7 @@ In the query, place the values that you want to fill using command-line paramete | Parameter | Description | |-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `name` | Placeholder identifier. The corresponding command-line option is `--param_ = value`. | -| `data type` | [Data type](/reference/data-types) of the parameter.

For example, a data structure like `(integer, ('string', integer))` can have the `Tuple(UInt8, Tuple(String, UInt8))` data type (you can also use other [integer](/reference/data-types/int-uint) types).

It is also possible to pass the table name, database name, and column names as parameters, in that case you would need to use `Identifier` as the data type. | +| `data type` | [Data type](/core/reference/data-types) of the parameter.

For example, a data structure like `(integer, ('string', integer))` can have the `Tuple(UInt8, Tuple(String, UInt8))` data type (you can also use other [integer](/core/reference/data-types/int-uint) types).

It is also possible to pass the table name, database name, and column names as parameters, in that case you would need to use `Identifier` as the data type. | ### Examples {#cli-queries-with-parameters-examples} @@ -815,7 +815,7 @@ All command-line options can be specified directly on the command line or as def | `--no-server-client-version-message` | Suppress server-client version mismatch message when the client connects to the server. | - | | `--password ` | The password of the database user. You can also specify the password for a connection in the configuration file. If you do not specify the password, the client will ask for it. | - | | `--port ` | The port the server is accepting connections on. The default ports are 9440 (TLS) and 9000 (no TLS).

Note: The client uses the native protocol and not HTTP(S). | `9440` if `--secure` is specified, `9000` otherwise. Always defaults to `9440` if the hostname ends in `.clickhouse.cloud`. | -| `-s [ --secure ]` | Whether to use TLS.

Enabled automatically when connecting to port 9440 (the default secure port) or ClickHouse Cloud.

You might need to configure your CA certificates in the [configuration file](#configuration_files). The available configuration settings are the same as for [server-side TLS configuration](/reference/settings/server-settings/settings#openssl). | Auto-enabled when connecting to port 9440 or ClickHouse Cloud | +| `-s [ --secure ]` | Whether to use TLS.

Enabled automatically when connecting to port 9440 (the default secure port) or ClickHouse Cloud.

You might need to configure your CA certificates in the [configuration file](#configuration_files). The available configuration settings are the same as for [server-side TLS configuration](/core/reference/settings/server-settings/settings#openssl). | Auto-enabled when connecting to port 9440 or ClickHouse Cloud | | `--ssh-key-file ` | File containing the SSH private key for authenticate with the server. | - | | `--ssh-key-passphrase ` | Passphrase for the SSH private key specified in `--ssh-key-file`. | - | | `--tls-sni-override ` | If using TLS, the server name (SNI) to pass in the handshake. | The host provided via `-h` or `--host`. | @@ -833,7 +833,7 @@ Instead of the `--host`, `--port`, `--user` and `--password` options, the client | `-q [ --query ] ` | The query to run in batch mode. Can be specified multiple times (`--query "SELECT 1" --query "SELECT 2"`) or once with multiple semicolon-separated queries (`--query "SELECT 1; SELECT 2;"`). In the latter case, `INSERT` queries with formats other than `VALUES` must be separated by empty lines.

A single query can also be specified without a parameter: `clickhouse-client "SELECT 1"`

Cannot be used together with `--queries-file`. | | `--queries-file ` | Path to a file containing queries. `--queries-file` can be specified multiple times, e.g. `--queries-file queries1.sql --queries-file queries2.sql`.

Cannot be used together with `--query`. | | `-m [ --multiline ]` | If specified, allow multiline queries (do not send the query on Enter). Queries will be sent only when they are ended with a semicolon. | -| `--inline-insert-data` | Send `INSERT ... VALUES` (and other inline formats) as is in the query text instead of converting the data to blocks in the native format. The server parses the inline data itself, avoiding the round-trip to send table structure and column defaults back to the client. This can improve performance for many small inserts over the native protocol. Automatically sets [`send_table_structure_on_insert_with_inline_data`](/reference/settings/session-settings#send_table_structure_on_insert_with_inline_data) to `0`. Cannot be combined with inline data and external data (from stdin or `INFILE`). | +| `--inline-insert-data` | Send `INSERT ... VALUES` (and other inline formats) as is in the query text instead of converting the data to blocks in the native format. The server parses the inline data itself, avoiding the round-trip to send table structure and column defaults back to the client. This can improve performance for many small inserts over the native protocol. Automatically sets [`send_table_structure_on_insert_with_inline_data`](/core/reference/settings/session-settings#send_table_structure_on_insert_with_inline_data) to `0`. Cannot be combined with inline data and external data (from stdin or `INFILE`). | ### Query settings {#command-line-options-query-settings} @@ -842,15 +842,15 @@ Query settings can be specified as command-line options in the client, for examp $ clickhouse-client --max_threads 1 ``` -See [Settings](/reference/settings/session-settings) for a list of settings. +See [Settings](/core/reference/settings/session-settings) for a list of settings. ### Formatting options {#command-line-options-formatting} | Option | Description | Default | |---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------| -| `-f [ --format ] ` | Use the specified format to output the result.

See [Formats for Input and Output Data](/reference/formats) for a list of supported formats. | `TabSeparated` | +| `-f [ --format ] ` | Use the specified format to output the result.

See [Formats for Input and Output Data](/core/reference/formats) for a list of supported formats. | `TabSeparated` | | `--pager ` | Pipe all output into this command. Typically `less` (e.g., `less -S` to display wide result sets) or similar. | - | -| `-E [ --vertical ]` | Use the [Vertical format](/reference/formats/Vertical) to output the result. This is the same as `–-format Vertical`. In this format, each value is printed on a separate line, which is helpful when displaying wide tables. | - | +| `-E [ --vertical ]` | Use the [Vertical format](/core/reference/formats/Vertical) to output the result. This is the same as `–-format Vertical`. In this format, each value is printed on a separate line, which is helpful when displaying wide tables. | - | ### Execution details {#command-line-options-execution-details} diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/cpp.mdx b/core/concepts/features/interfaces/cpp.mdx similarity index 100% rename from integrations/connectors/data-integrations/drivers-and-interfaces/cpp.mdx rename to core/concepts/features/interfaces/cpp.mdx diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/grpc.mdx b/core/concepts/features/interfaces/grpc.mdx similarity index 95% rename from integrations/connectors/data-integrations/drivers-and-interfaces/grpc.mdx rename to core/concepts/features/interfaces/grpc.mdx index 80c3f79b..04ecbf2f 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/grpc.mdx +++ b/core/concepts/features/interfaces/grpc.mdx @@ -23,7 +23,7 @@ The specification of the interface is described in [clickhouse_grpc.proto](https ## gRPC configuration {#grpc-interface-configuration} -To use the gRPC interface set `grpc_port` in the main [server configuration](/concepts/features/configuration/server-config/configuration-files). Other configuration options see in the following example: +To use the gRPC interface set `grpc_port` in the main [server configuration](/core/concepts/features/configuration/server-config/configuration-files). Other configuration options see in the following example: ```xml 9100 @@ -71,7 +71,7 @@ The client supports the following arguments: - `--password PASSWORD` – A password. Default value: empty string. - `--query QUERY, -q QUERY` – A query to process when using non-interactive mode. - `--database DATABASE, -d DATABASE` – A default database. If not specified, the current database set in the server settings is used (`default` by default). -- `--format OUTPUT_FORMAT, -f OUTPUT_FORMAT` – A result output [format](/reference/formats). Default value for interactive mode: `PrettyCompact`. +- `--format OUTPUT_FORMAT, -f OUTPUT_FORMAT` – A result output [format](/core/reference/formats). Default value for interactive mode: `PrettyCompact`. - `--debug` – Enables showing debug information. To run the client in an interactive mode call it without `--query` argument. diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/http.mdx b/core/concepts/features/interfaces/http.mdx similarity index 95% rename from integrations/connectors/data-integrations/drivers-and-interfaces/http.mdx rename to core/concepts/features/interfaces/http.mdx index 9de05955..115852ec 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/http.mdx +++ b/core/concepts/features/interfaces/http.mdx @@ -32,7 +32,7 @@ $ curl 'http://localhost:8123/' Ok. ``` -"Ok." is the default value defined in [`http_server_default_response`](/reference/settings/server-settings/settings#http_server_default_response) and can be changed if desired. +"Ok." is the default value defined in [`http_server_default_response`](/core/reference/settings/server-settings/settings#http_server_default_response) and can be changed if desired. Also see: [HTTP response codes caveats](#http_response_codes_caveats). @@ -146,7 +146,7 @@ ECT 1 , expected One of: SHOW TABLES, SHOW DATABASES, SELECT, INSERT, CREATE, ATTACH, RENAME, DROP, DETACH, USE, SET, OPTIMIZE., e.what() = DB::Exception ``` -By default, data is returned in the [`TabSeparated`](/reference/formats/TabSeparated/TabSeparated) format. +By default, data is returned in the [`TabSeparated`](/core/reference/formats/TabSeparated/TabSeparated) format. The `FORMAT` clause is used in the query to request any other format. For example: @@ -283,7 +283,7 @@ Compression can be used to reduce network traffic when transmitting a large amou You can use the internal ClickHouse compression format when transmitting data. The compressed data has a non-standard format, and you need the `clickhouse-compressor` program to work with it. It is installed by default with the `clickhouse-client` package. -To increase the efficiency of data insertion, disable server-side checksum verification by using the [`http_native_compression_disable_checksumming_on_decompress`](/reference/settings/session-settings#http_native_compression_disable_checksumming_on_decompress) setting. +To increase the efficiency of data insertion, disable server-side checksum verification by using the [`http_native_compression_disable_checksumming_on_decompress`](/core/reference/settings/session-settings#http_native_compression_disable_checksumming_on_decompress) setting. If you specify `compress=1` in the URL, the server will compress the data it sends to you. If you specify `decompress=1` in the URL, the server will decompress the data which you pass in the `POST` method. @@ -302,7 +302,7 @@ To send a compressed `POST` request, append the request header `Content-Encoding In order for ClickHouse to compress the response, append the `Accept-Encoding: compression_method` header to the request. -You can configure the data compression level using the [`http_zlib_compression_level`](/reference/settings/session-settings#http_zlib_compression_level) setting for all compression methods. +You can configure the data compression level using the [`http_zlib_compression_level`](/core/reference/settings/session-settings#http_zlib_compression_level) setting for all compression methods. Some HTTP clients might decompress data from the server by default (with `gzip` and `deflate`) and you might get decompressed data even if you use the compression settings correctly. @@ -415,8 +415,8 @@ $ echo 'SELECT number FROM system.numbers LIMIT 10' | curl 'http://localhost:812 ``` For more information see: -- [Settings](/reference/settings/session-settings) -- [SET](/reference/statements/set) +- [Settings](/core/reference/settings/session-settings) +- [SET](/core/reference/statements/set) ## Using ClickHouse sessions in the HTTP protocol {#using-clickhouse-sessions-in-the-http-protocol} @@ -426,7 +426,7 @@ By default, the session is terminated after 60 seconds of inactivity. To change To check the session status, use the `session_check=1` parameter. Only one query at a time can be executed within a single session. -You can receive information about the progress of a query in the `X-ClickHouse-Progress` response headers. To do this, enable [`send_progress_in_http_headers`](/reference/settings/session-settings#send_progress_in_http_headers). +You can receive information about the progress of a query in the `X-ClickHouse-Progress` response headers. To do this, enable [`send_progress_in_http_headers`](/core/reference/settings/session-settings#send_progress_in_http_headers). Below is an example of the header sequence: @@ -454,10 +454,10 @@ The following optional parameters exist: | Parameters | Description | |-----------------------|-------------------------------------------| -| `query_id` (optional) | Can be passed as the query ID (any string). [`replace_running_query`](/reference/settings/session-settings#replace_running_query)| -| `quota_key` (optional)| Can be passed as the quota key (any string). ["Quotas"](/concepts/features/configuration/server-config/quotas) | +| `query_id` (optional) | Can be passed as the query ID (any string). [`replace_running_query`](/core/reference/settings/session-settings#replace_running_query)| +| `quota_key` (optional)| Can be passed as the quota key (any string). ["Quotas"](/core/concepts/features/configuration/server-config/quotas) | -The HTTP interface allows passing external data (external temporary tables) for querying. For more information, see ["External data for query processing"](/reference/engines/table-engines/special/external-data). +The HTTP interface allows passing external data (external temporary tables) for querying. For more information, see ["External data for query processing"](/core/reference/engines/table-engines/special/external-data). ## Response buffering {#response-buffering} @@ -466,8 +466,8 @@ Response buffering can be enabled on the server-side. The following URL paramete - `wait_end_of_query` The following settings can be used: -- [`http_response_buffer_size`](/reference/settings/session-settings#http_response_buffer_size) -- [`http_wait_end_of_query`](/reference/settings/session-settings#http_wait_end_of_query) +- [`http_response_buffer_size`](/core/reference/settings/session-settings#http_response_buffer_size) +- [`http_wait_end_of_query`](/core/reference/settings/session-settings#http_wait_end_of_query) `buffer_size` determines the number of bytes in the result to buffer in the server memory. If a result body is larger than this threshold, the buffer is written to the HTTP channel, and the remaining data is sent directly to the HTTP channel. @@ -535,7 +535,7 @@ The reason for this behavior is the nature of the HTTP protocol. The HTTP header This behavior is independent of the format used, whether it's `Native`, `TSV`, or `JSON`; the error message will always be in the middle of the response stream. -You can mitigate this problem by enabling `wait_end_of_query=1` ([Response Buffering](#response-buffering)). In this case, sending of the HTTP header is delayed until the entire query is resolved. This however, doesn't completely solve the problem because the result must still fit within the [`http_response_buffer_size`](/reference/settings/session-settings#http_response_buffer_size), and other settings like [`send_progress_in_http_headers`](/reference/settings/session-settings#send_progress_in_http_headers) can interfere with the delay of the header. +You can mitigate this problem by enabling `wait_end_of_query=1` ([Response Buffering](#response-buffering)). In this case, sending of the HTTP header is delayed until the entire query is resolved. This however, doesn't completely solve the problem because the result must still fit within the [`http_response_buffer_size`](/core/reference/settings/session-settings#http_response_buffer_size), and other settings like [`send_progress_in_http_headers`](/core/reference/settings/session-settings#send_progress_in_http_headers) can interfere with the delay of the header. The only way to catch all errors is to analyze the HTTP body before parsing it using the required format. @@ -609,7 +609,7 @@ __exception__ ## Queries with parameters {#cli-queries-with-parameters} -You can create a query with parameters and pass values for them from the corresponding HTTP request parameters. For more information, see [Queries with Parameters for CLI](/integrations/connectors/data-integrations/drivers-and-interfaces/client#cli-queries-with-parameters). +You can create a query with parameters and pass values for them from the corresponding HTTP request parameters. For more information, see [Queries with Parameters for CLI](/core/concepts/features/interfaces/client#cli-queries-with-parameters). ### Example {#example-3} @@ -778,7 +778,7 @@ The configuration methods for different `type`s are discussed next. `query` value is a predefined query of `predefined_query_handler`, which is executed by ClickHouse when an HTTP request is matched and the result of the query is returned. It is a must configuration. -The following example defines the values of [`max_threads`](/reference/settings/session-settings#max_threads) and [`max_final_threads`](/reference/settings/session-settings#max_final_threads) settings, then queries the system table to check whether these settings were set successfully. +The following example defines the values of [`max_threads`](/core/reference/settings/session-settings#max_threads) and [`max_final_threads`](/core/reference/settings/session-settings#max_final_threads) settings, then queries the system table to check whether these settings were set successfully. To keep the default `handlers` such as` query`, `play`,` ping`, add the `` rule. @@ -856,7 +856,7 @@ In `dynamic_query_handler`, the query is written in the form of parameter of the ClickHouse extracts and executes the value corresponding to the `query_param_name` value in the URL of the HTTP request. The default value of `query_param_name` is `/query` . It is an optional configuration. If there is no definition in the configuration file, the parameter isn't passed in. -To experiment with this functionality, the following example defines the values of [`max_threads`](/reference/settings/session-settings#max_threads) and `max_final_threads` and `queries` whether the settings were set successfully. +To experiment with this functionality, the following example defines the values of [`max_threads`](/core/reference/settings/session-settings#max_threads) and `max_final_threads` and `queries` whether the settings were set successfully. Example: @@ -1131,7 +1131,7 @@ In the example below, every server response will contain two custom headers: `X- While query execution occurs over HTTP an exception can happen when part of the data has already been sent. Usually an exception is sent to the client in plain text. Even if some specific data format was used to output data and the output may become invalid in terms of specified data format. -To prevent it, you can use setting [`http_write_exception_in_output_format`](/reference/settings/session-settings#http_write_exception_in_output_format) (disabled by default) that will tell ClickHouse to write an exception in specified format (currently supported for XML and JSON* formats). +To prevent it, you can use setting [`http_write_exception_in_output_format`](/core/reference/settings/session-settings#http_write_exception_in_output_format) (disabled by default) that will tell ClickHouse to write an exception in specified format (currently supported for XML and JSON* formats). Examples: diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/jdbc.mdx b/core/concepts/features/interfaces/jdbc.mdx similarity index 100% rename from integrations/connectors/data-integrations/drivers-and-interfaces/jdbc.mdx rename to core/concepts/features/interfaces/jdbc.mdx diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/mysql.mdx b/core/concepts/features/interfaces/mysql.mdx similarity index 83% rename from integrations/connectors/data-integrations/drivers-and-interfaces/mysql.mdx rename to core/concepts/features/interfaces/mysql.mdx index f7eeff1a..d1e34f06 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/mysql.mdx +++ b/core/concepts/features/interfaces/mysql.mdx @@ -27,7 +27,7 @@ If there is a native driver available (e.g., [DBeaver](/integrations/connectors/ If your use case involves a particular tool that doesn't have a native ClickHouse driver, and you would like to use it via the MySQL interface and you found certain incompatibilities - please [create an issue](https://github.com/ClickHouse/ClickHouse/issues) in the ClickHouse repository. ::::note -To support the SQL dialect of above BI tools better, ClickHouse's MySQL interface implicitly runs SELECT queries with setting [prefer_column_name_to_alias = 1](/reference/settings/session-settings#prefer_column_name_to_alias). +To support the SQL dialect of above BI tools better, ClickHouse's MySQL interface implicitly runs SELECT queries with setting [prefer_column_name_to_alias = 1](/core/reference/settings/session-settings#prefer_column_name_to_alias). This can't be turned off and it can lead in rare edge cases to different behavior between queries sent to ClickHouse's normal and MySQL query interfaces. :::: @@ -67,14 +67,14 @@ For ClickHouse Cloud hostname like `foobar.us-east1.aws.clickhouse.cloud`, the ` You can create extra users to use with the MySQL interface if, for example, you need to apply extra settings. -1. Optional - create a [settings profile](/reference/statements/create/settings-profile) to apply for your custom user. For example, `my_custom_profile` with an extra setting which will be applied by default when we connect with the user we create later: +1. Optional - create a [settings profile](/core/reference/statements/create/settings-profile) to apply for your custom user. For example, `my_custom_profile` with an extra setting which will be applied by default when we connect with the user we create later: ```sql CREATE SETTINGS PROFILE my_custom_profile SETTINGS prefer_column_name_to_alias=1; ``` `prefer_column_name_to_alias` is used just as an example, you can use other settings there. -2. [Create a user](/reference/statements/create/user) using the following format: `mysql4_` ([see above](#creating-multiple-mysql-users-in-clickhouse-cloud)). The password must be in double SHA1 format. For example: +2. [Create a user](/core/reference/statements/create/user) using the following format: `mysql4_` ([see above](#creating-multiple-mysql-users-in-clickhouse-cloud)). The password must be in double SHA1 format. For example: ```sql CREATE USER mysql4foobar_team1 IDENTIFIED WITH double_sha1_password BY 'YourPassword42$'; @@ -87,7 +87,7 @@ You can create extra users to use with the MySQL interface if, for example, you ``` where `my_custom_profile` is the name of the profile you created earlier. -3. [Grant](/reference/statements/grant) the new user the necessary permissions to interact with the desired tables or databases. For example, if you want to grant access to `system.query_log` only: +3. [Grant](/core/reference/statements/grant) the new user the necessary permissions to interact with the desired tables or databases. For example, if you want to grant access to `system.query_log` only: ```sql GRANT SELECT ON system.query_log TO mysql4foobar_team1; @@ -107,7 +107,7 @@ In this case, ensure that the username follows the `mysql4_ ## Enabling the MySQL interface on self-managed ClickHouse {#enabling-the-mysql-interface-on-self-managed-clickhouse} -Add the [mysql_port](/reference/settings/server-settings/settings#mysql_port) setting to your server's configuration file. For example, you could define the port in a new XML file in your `config.d/` [folder](/concepts/features/configuration/server-config/configuration-files): +Add the [mysql_port](/core/reference/settings/server-settings/settings#mysql_port) setting to your server's configuration file. For example, you could define the port in a new XML file in your `config.d/` [folder](/core/concepts/features/configuration/server-config/configuration-files): ```xml @@ -153,8 +153,8 @@ Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> ``` -For compatibility with all MySQL clients, it is recommended to specify user password with [double SHA1](/concepts/features/configuration/settings/settings-users#user-namepassword) in configuration file. -If user password is specified using [SHA256](/reference/functions/regular-functions/hash-functions#SHA256), some clients won't be able to authenticate (mysqljs and old versions of command-line tool MySQL and MariaDB). +For compatibility with all MySQL clients, it is recommended to specify user password with [double SHA1](/core/concepts/features/configuration/settings/settings-users#user-namepassword) in configuration file. +If user password is specified using [SHA256](/core/reference/functions/regular-functions/hash-functions#SHA256), some clients won't be able to authenticate (mysqljs and old versions of command-line tool MySQL and MariaDB). Restrictions: diff --git a/core/concepts/features/interfaces/native-clients-interfaces-index.mdx b/core/concepts/features/interfaces/native-clients-interfaces-index.mdx new file mode 100644 index 00000000..e54bdaf3 --- /dev/null +++ b/core/concepts/features/interfaces/native-clients-interfaces-index.mdx @@ -0,0 +1,18 @@ +--- +description: 'Native clients and interfaces for ClickHouse' +keywords: ['clients', 'interfaces', 'CLI', 'SQL console', 'drivers'] +slug: /interfaces/natives-clients-and-interfaces +title: 'Native Clients and Interfaces' +doc_type: 'landing-page' +--- + +ClickHouse provides a number of different native clients and interfaces that allow you to connect to ClickHouse. + +For more information see the pages below: + +| Section | Summary | +|--------------------------------------------------------------|-------------------------------------------------------------------------------------| +| [clickhousectl](/core/concepts/features/interfaces/cli) | The CLI for ClickHouse: local and cloud. | +| [ClickHouse Client](/core/concepts/features/interfaces/client) | Native command-line client supporting command-line options and configuration files. | +| [Drivers & Interfaces](/core/concepts/features/interfaces/overview) | A number of network interfaces, libraries and visual interfaces. | +| [SQL Console](/products/cloud/features/sql-console-features/sql-console) | A fast and easy way to interact with your data in ClickHouse Cloud. | \ No newline at end of file diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/odbc.mdx b/core/concepts/features/interfaces/odbc.mdx similarity index 97% rename from integrations/connectors/data-integrations/drivers-and-interfaces/odbc.mdx rename to core/concepts/features/interfaces/odbc.mdx index faab5194..72e5c3ec 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/odbc.mdx +++ b/core/concepts/features/interfaces/odbc.mdx @@ -10,7 +10,7 @@ The ClickHouse ODBC driver provides a standards-compliant interface for connecti ClickHouse. It implements the ODBC API and enables applications, BI tools, and scripting environments to execute SQL queries, retrieve results, and interact with ClickHouse through familiar mechanisms. -The driver communicates with the ClickHouse server using the [HTTP protocol](/integrations/connectors/data-integrations/drivers-and-interfaces/http), which is the primary +The driver communicates with the ClickHouse server using the [HTTP protocol](/core/concepts/features/interfaces/http), which is the primary protocol supported across all ClickHouse deployments. This allows the driver to operate consistently in diverse environments, including local installations, cloud-managed services, and environments where only HTTP-based access is available. @@ -136,7 +136,7 @@ settings to align ClickHouse behavior more closely with standard SQL. This section describes which settings the ODBC driver modifies and why. -**[cast_keep_nullable](/reference/settings/session-settings#cast_keep_nullable)** +**[cast_keep_nullable](/core/reference/settings/session-settings#cast_keep_nullable)** By default, ClickHouse doesn't allow converting nullable types to non-nullable types. However, many BI tools don't distinguish between nullable and non-nullable types when performing type conversions. As a result, it's not uncommon to @@ -157,7 +157,7 @@ DB::Exception: Cannot convert NULL value to non-Nullable type: while executing ' Enabling `cast_keep_nullable` changes the behavior of `CAST` so it preserves the nullability of its arguments. This makes ClickHouse's behavior closer to other databases and the SQL standard for this kind of conversion. -**[prefer_column_name_to_alias](/reference/settings/session-settings#prefer_column_name_to_alias)** +**[prefer_column_name_to_alias](/core/reference/settings/session-settings#prefer_column_name_to_alias)** ClickHouse allows referencing expressions in the same `SELECT` list by their aliases. For example, this query avoids repetition and is easier to write: diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/overview.mdx b/core/concepts/features/interfaces/overview.mdx similarity index 68% rename from integrations/connectors/data-integrations/drivers-and-interfaces/overview.mdx rename to core/concepts/features/interfaces/overview.mdx index f4400199..e0ab12e4 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/overview.mdx +++ b/core/concepts/features/interfaces/overview.mdx @@ -11,19 +11,19 @@ doc_type: 'reference' ClickHouse provides two network interfaces (they can be optionally wrapped in TLS for additional security): -- [HTTP](/integrations/connectors/data-integrations/drivers-and-interfaces/http), which is documented and easy to use directly. -- [Native TCP](/integrations/connectors/data-integrations/drivers-and-interfaces/tcp), which has less overhead. +- [HTTP](/core/concepts/features/interfaces/http), which is documented and easy to use directly. +- [Native TCP](/core/concepts/features/interfaces/tcp), which has less overhead. In most cases it is recommended to use an appropriate tool or library instead of interacting with those directly. The following are officially supported by ClickHouse: -- [Command-line client](/integrations/connectors/data-integrations/drivers-and-interfaces/cli) -- [JDBC driver](/integrations/connectors/data-integrations/drivers-and-interfaces/jdbc) -- [ODBC driver](/integrations/connectors/data-integrations/drivers-and-interfaces/odbc) +- [Command-line client](/core/concepts/features/interfaces/cli) +- [JDBC driver](/core/concepts/features/interfaces/jdbc) +- [ODBC driver](/core/concepts/features/interfaces/odbc) - [C++ client library](/integrations/language-clients/cpp) ClickHouse also supports two RPC protocols: -- [gRPC protocol](/integrations/connectors/data-integrations/drivers-and-interfaces/grpc) specially designed for ClickHouse. -- [Apache Arrow Flight](/integrations/connectors/data-integrations/drivers-and-interfaces/arrowflight). +- [gRPC protocol](/core/concepts/features/interfaces/grpc) specially designed for ClickHouse. +- [Apache Arrow Flight](/core/concepts/features/interfaces/arrowflight). ClickHouse server provides embedded visual interfaces for power users: diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/postgresql.mdx b/core/concepts/features/interfaces/postgresql.mdx similarity index 95% rename from integrations/connectors/data-integrations/drivers-and-interfaces/postgresql.mdx rename to core/concepts/features/interfaces/postgresql.mdx index dd4c5af9..aa2bbd60 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/postgresql.mdx +++ b/core/concepts/features/interfaces/postgresql.mdx @@ -18,7 +18,7 @@ Check out our [Managed Postgres](/products/managed-postgres/overview) service. B ClickHouse supports the PostgreSQL wire protocol, which allows you to use Postgres clients to connect to ClickHouse. In a sense, ClickHouse can pretend to be a PostgreSQL instance - allowing you to connect a PostgreSQL client application to ClickHouse that isn't already directly supported by ClickHouse (for example, Amazon Redshift). -To enable the PostgreSQL wire protocol, add the [postgresql_port](/reference/settings/server-settings/settings#postgresql_port) setting to your server's configuration file. For example, you could define the port in a new XML file in your `config.d` folder: +To enable the PostgreSQL wire protocol, add the [postgresql_port](/core/reference/settings/server-settings/settings#postgresql_port) setting to your server's configuration file. For example, you could define the port in a new XML file in your `config.d` folder: ```xml diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/prometheus.mdx b/core/concepts/features/interfaces/prometheus.mdx similarity index 79% rename from integrations/connectors/data-integrations/drivers-and-interfaces/prometheus.mdx rename to core/concepts/features/interfaces/prometheus.mdx index dab0237c..fe81a440 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/prometheus.mdx +++ b/core/concepts/features/interfaces/prometheus.mdx @@ -27,7 +27,7 @@ ClickHouse can expose its own metrics for scraping from Prometheus: Section `` can be used to make more extended handlers. -This section is similar to [](/integrations/connectors/data-integrations/drivers-and-interfaces/http) but works for prometheus protocols: +This section is similar to [](/core/concepts/features/interfaces/http) but works for prometheus protocols: ```xml @@ -55,13 +55,13 @@ Settings: |------------------------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `port` | none | Port for serving the exposing metrics protocol. | | `endpoint` | `/metrics` | HTTP endpoint for scraping metrics by prometheus server. Starts with `/`. Should not be used with the `` section. | -| `url` / `headers` / `method` | none | Filters used to find a matching handler for a request. Similar to the fields with the same names in the [``](/integrations/connectors/data-integrations/drivers-and-interfaces/http) section. | -| `metrics` | true | Expose metrics from the [system.metrics](/reference/system-tables/metrics) table. | -| `asynchronous_metrics` | true | Expose current metrics values from the [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) table. | -| `events` | true | Expose metrics from the [system.events](/reference/system-tables/events) table. | -| `errors` | true | Expose the number of errors by error codes occurred since the last server restart. This information could be obtained from the [system.errors](/reference/system-tables/errors) as well. | -| `histograms` | true | Expose histogram metrics from [system.histogram_metrics](/reference/system-tables/histogram_metrics) | -| `dimensional_metrics` | true | Expose dimensional metrics from [system.dimensional_metrics](/reference/system-tables/dimensional_metrics) | +| `url` / `headers` / `method` | none | Filters used to find a matching handler for a request. Similar to the fields with the same names in the [``](/core/concepts/features/interfaces/http) section. | +| `metrics` | true | Expose metrics from the [system.metrics](/core/reference/system-tables/metrics) table. | +| `asynchronous_metrics` | true | Expose current metrics values from the [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) table. | +| `events` | true | Expose metrics from the [system.events](/core/reference/system-tables/events) table. | +| `errors` | true | Expose the number of errors by error codes occurred since the last server restart. This information could be obtained from the [system.errors](/core/reference/system-tables/errors) as well. | +| `histograms` | true | Expose histogram metrics from [system.histogram_metrics](/core/reference/system-tables/histogram_metrics) | +| `dimensional_metrics` | true | Expose dimensional metrics from [system.dimensional_metrics](/core/reference/system-tables/dimensional_metrics) | Check (replace `127.0.0.1` with the IP addr or hostname of your ClickHouse server): ```bash @@ -71,7 +71,7 @@ curl 127.0.0.1:9363/metrics ## Remote-write protocol {#remote-write} ClickHouse supports the [remote-write](https://prometheus.io/docs/specs/remote_write_spec/) protocol. -Data are received by this protocol and written to a [TimeSeries](/reference/engines/table-engines/integrations/time-series) table +Data are received by this protocol and written to a [TimeSeries](/core/reference/engines/table-engines/integrations/time-series) table (which should be created beforehand). ```xml @@ -95,14 +95,14 @@ Settings: | Name | Default | Description | |------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `port` | none | Port for serving the `remote-write` protocol. | -| `url` / `headers` / `method` | none | Filters used to find a matching handler for a request. Similar to the fields with the same names in the [``](/integrations/connectors/data-integrations/drivers-and-interfaces/http) section. | -| `table` | none | The name of a [TimeSeries](/reference/engines/table-engines/integrations/time-series) table to write data received by the `remote-write` protocol. This name can optionally contain the name of a database too. | +| `url` / `headers` / `method` | none | Filters used to find a matching handler for a request. Similar to the fields with the same names in the [``](/core/concepts/features/interfaces/http) section. | +| `table` | none | The name of a [TimeSeries](/core/reference/engines/table-engines/integrations/time-series) table to write data received by the `remote-write` protocol. This name can optionally contain the name of a database too. | | `database` | none | The name of a database where the table specified in the `table` setting is located if it's not specified in the `table` setting. | ## Remote-read protocol {#remote-read} ClickHouse supports the [remote-read](https://prometheus.io/docs/prometheus/latest/querying/remote_read_api/) protocol. -Data are read from a [TimeSeries](/reference/engines/table-engines/integrations/time-series) table and sent via this protocol. +Data are read from a [TimeSeries](/core/reference/engines/table-engines/integrations/time-series) table and sent via this protocol. ```xml @@ -125,8 +125,8 @@ Settings: | Name | Default | Description | |------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `port` | none | Port for serving the `remote-read` protocol. | -| `url` / `headers` / `method` | none | Filters used to find a matching handler for a request. Similar to the fields with the same names in the [``](/integrations/connectors/data-integrations/drivers-and-interfaces/http) section. | -| `table` | none | The name of a [TimeSeries](/reference/engines/table-engines/integrations/time-series) table to read data to send by the `remote-read` protocol. This name can optionally contain the name of a database too. | +| `url` / `headers` / `method` | none | Filters used to find a matching handler for a request. Similar to the fields with the same names in the [``](/core/concepts/features/interfaces/http) section. | +| `table` | none | The name of a [TimeSeries](/core/reference/engines/table-engines/integrations/time-series) table to read data to send by the `remote-read` protocol. This name can optionally contain the name of a database too. | | `database` | none | The name of a database where the table specified in the `table` setting is located if it's not specified in the `table` setting. | ## Configuration for multiple protocols {#multiple-protocols} diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/schema-inference.mdx b/core/concepts/features/interfaces/schema-inference.mdx similarity index 91% rename from integrations/connectors/data-integrations/drivers-and-interfaces/schema-inference.mdx rename to core/concepts/features/interfaces/schema-inference.mdx index aee3afa4..6b7986a3 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/schema-inference.mdx +++ b/core/concepts/features/interfaces/schema-inference.mdx @@ -6,7 +6,7 @@ title: 'Automatic schema inference from input data' doc_type: 'reference' --- -ClickHouse can automatically determine the structure of input data in almost all supported [Input formats](/reference/formats). +ClickHouse can automatically determine the structure of input data in almost all supported [Input formats](/core/reference/formats). This document will describe when schema inference is used, how it works with different input formats and which settings can control it. @@ -14,7 +14,7 @@ can control it. Schema inference is used when ClickHouse needs to read the data in a specific data format and the structure is unknown. -## Table functions [file](/reference/functions/table-functions/file), [s3](/reference/functions/table-functions/s3), [url](/reference/functions/table-functions/url), [hdfs](/reference/functions/table-functions/hdfs), [azureBlobStorage](/reference/functions/table-functions/azureBlobStorage). {#table-functions-file-s3-url-hdfs-azureblobstorage} +## Table functions [file](/core/reference/functions/table-functions/file), [s3](/core/reference/functions/table-functions/s3), [url](/core/reference/functions/table-functions/url), [hdfs](/core/reference/functions/table-functions/hdfs), [azureBlobStorage](/core/reference/functions/table-functions/azureBlobStorage). {#table-functions-file-s3-url-hdfs-azureblobstorage} These table functions have the optional argument `structure` with the structure of input data. If this argument is not specified or set to `auto`, the structure will be inferred from the data. @@ -56,7 +56,7 @@ DESCRIBE file('hobbies.jsonl') └─────────┴─────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘ ``` -## Table engines [File](/reference/engines/table-engines/special/file), [S3](/reference/engines/table-engines/integrations/s3), [URL](/reference/engines/table-engines/special/url), [HDFS](/reference/engines/table-engines/integrations/hdfs), [azureBlobStorage](/reference/engines/table-engines/integrations/azureBlobStorage) {#table-engines-file-s3-url-hdfs-azureblobstorage} +## Table engines [File](/core/reference/engines/table-engines/special/file), [S3](/core/reference/engines/table-engines/integrations/s3), [URL](/core/reference/engines/table-engines/special/url), [HDFS](/core/reference/engines/table-engines/integrations/hdfs), [azureBlobStorage](/core/reference/engines/table-engines/integrations/azureBlobStorage) {#table-engines-file-s3-url-hdfs-azureblobstorage} If the list of columns is not specified in `CREATE TABLE` query, the structure of the table will be inferred automatically from the data. @@ -125,7 +125,7 @@ there is an option to use the structure from the insertion table instead of extr It can improve insertion performance because schema inference can take some time. Also, it will be helpful when the table has an optimized schema, so no conversions between types will be performed. -There is a special setting [use_structure_from_insertion_table_in_table_functions](/reference/settings/session-settings#use_structure_from_insertion_table_in_table_functions) +There is a special setting [use_structure_from_insertion_table_in_table_functions](/core/reference/settings/session-settings#use_structure_from_insertion_table_in_table_functions) that controls this behaviour. It has 3 possible values: - 0 - table function will extract the structure from the data. - 1 - table function will use the structure from the insertion table. @@ -238,7 +238,7 @@ For this reason, the schema inference cache identifies the schema by file source Note: some files accessed by url in `url` table function may not contain information about the last modification time; for this case, there is a special setting `schema_inference_cache_require_modification_time_for_url`. Disabling this setting allows the use of the schema from cache without the last modification time for such files. -There is also a system table [schema_inference_cache](/reference/system-tables/schema_inference_cache) with all current schemas in cache and system query `SYSTEM CLEAR SCHEMA CACHE [FOR File/S3/URL/HDFS]` +There is also a system table [schema_inference_cache](/core/reference/system-tables/schema_inference_cache) with all current schemas in cache and system query `SYSTEM CLEAR SCHEMA CACHE [FOR File/S3/URL/HDFS]` that allows cleaning the schema cache for all sources, or for a specific source. **Examples:** @@ -384,7 +384,7 @@ SELECT count() FROM system.schema_inference_cache WHERE storage='S3' For text formats, ClickHouse reads the data row by row, extracts column values according to the format, and then uses some recursive parsers and heuristics to determine the type for each value. The maximum number of rows and bytes read from the data in schema inference is controlled by the settings `input_format_max_rows_to_read_for_schema_inference` (25000 by default) and `input_format_max_bytes_to_read_for_schema_inference` (32Mb by default). -By default, all inferred types are [Nullable](/reference/data-types/nullable), but you can change this by setting `schema_inference_make_columns_nullable` (see examples in the [settings](#settings-for-text-formats) section). +By default, all inferred types are [Nullable](/core/reference/data-types/nullable), but you can change this by setting `schema_inference_make_columns_nullable` (see examples in the [settings](#settings-for-text-formats) section). ### JSON formats {#json-formats} @@ -394,7 +394,7 @@ Let's see how it works, what types can be inferred and what specific settings ca **Examples** -Here and further, the [format](/reference/functions/table-functions/format) table function will be used in examples. +Here and further, the [format](/core/reference/functions/table-functions/format) table function will be used in examples. Integers, Floats, Bools, Strings: ```sql @@ -1627,7 +1627,7 @@ DESC format(JSONEachRow, $$ └────────────┴─────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘ ``` -Note: Parsing datetimes during schema inference respect setting [date_time_input_format](/reference/settings/formats#date_time_input_format) +Note: Parsing datetimes during schema inference respect setting [date_time_input_format](/core/reference/settings/formats#date_time_input_format) #### input_format_try_infer_dates {#input-format-try-infer-dates} @@ -1728,7 +1728,7 @@ $$) ### JSON formats with metadata {#json-with-metadata} -Some JSON input formats ([JSON](/reference/formats/JSON/JSON), [JSONCompact](/reference/formats/JSON/JSONCompact), [JSONColumnsWithMetadata](/reference/formats/JSON/JSONColumnsWithMetadata)) contain metadata with column names and types. +Some JSON input formats ([JSON](/core/reference/formats/JSON/JSON), [JSONCompact](/core/reference/formats/JSON/JSONCompact), [JSONColumnsWithMetadata](/core/reference/formats/JSON/JSONColumnsWithMetadata)) contain metadata with column names and types. In schema inference for such formats, ClickHouse reads this metadata. **Example** @@ -1785,20 +1785,20 @@ In Avro format ClickHouse reads its schema from the data and converts it to Clic | Avro data type | ClickHouse data type | |------------------------------------|--------------------------------------------------------------------------------| -| `boolean` | [Bool](/reference/data-types/boolean) | -| `int` | [Int32](/reference/data-types/int-uint) | -| `int (date)` \* | [Date32](/reference/data-types/date32) | -| `long` | [Int64](/reference/data-types/int-uint) | -| `float` | [Float32](/reference/data-types/float) | -| `double` | [Float64](/reference/data-types/float) | -| `bytes`, `string` | [String](/reference/data-types/string) | -| `fixed` | [FixedString(N)](/reference/data-types/fixedstring) | -| `enum` | [Enum](/reference/data-types/enum) | -| `array(T)` | [Array(T)](/reference/data-types/array) | -| `union(null, T)`, `union(T, null)` | [Nullable(T)](/reference/data-types/date) | -| `null` | [Nullable(Nothing)](/reference/data-types/special-data-types/nothing) | -| `string (uuid)` \* | [UUID](/reference/data-types/uuid) | -| `binary (decimal)` \* | [Decimal(P, S)](/reference/data-types/decimal) | +| `boolean` | [Bool](/core/reference/data-types/boolean) | +| `int` | [Int32](/core/reference/data-types/int-uint) | +| `int (date)` \* | [Date32](/core/reference/data-types/date32) | +| `long` | [Int64](/core/reference/data-types/int-uint) | +| `float` | [Float32](/core/reference/data-types/float) | +| `double` | [Float64](/core/reference/data-types/float) | +| `bytes`, `string` | [String](/core/reference/data-types/string) | +| `fixed` | [FixedString(N)](/core/reference/data-types/fixedstring) | +| `enum` | [Enum](/core/reference/data-types/enum) | +| `array(T)` | [Array(T)](/core/reference/data-types/array) | +| `union(null, T)`, `union(T, null)` | [Nullable(T)](/core/reference/data-types/date) | +| `null` | [Nullable(Nothing)](/core/reference/data-types/special-data-types/nothing) | +| `string (uuid)` \* | [UUID](/core/reference/data-types/uuid) | +| `binary (decimal)` \* | [Decimal(P, S)](/core/reference/data-types/decimal) | \* [Avro logical types](https://avro.apache.org/docs/current/spec.html#Logical+Types) @@ -1810,25 +1810,25 @@ In Parquet format ClickHouse reads its schema from the data and converts it to C | Parquet data type | ClickHouse data type | |------------------------------|---------------------------------------------------------| -| `BOOL` | [Bool](/reference/data-types/boolean) | -| `UINT8` | [UInt8](/reference/data-types/int-uint) | -| `INT8` | [Int8](/reference/data-types/int-uint) | -| `UINT16` | [UInt16](/reference/data-types/int-uint) | -| `INT16` | [Int16](/reference/data-types/int-uint) | -| `UINT32` | [UInt32](/reference/data-types/int-uint) | -| `INT32` | [Int32](/reference/data-types/int-uint) | -| `UINT64` | [UInt64](/reference/data-types/int-uint) | -| `INT64` | [Int64](/reference/data-types/int-uint) | -| `FLOAT` | [Float32](/reference/data-types/float) | -| `DOUBLE` | [Float64](/reference/data-types/float) | -| `DATE` | [Date32](/reference/data-types/date32) | -| `TIME (ms)` | [DateTime](/reference/data-types/datetime) | -| `TIMESTAMP`, `TIME (us, ns)` | [DateTime64](/reference/data-types/datetime64) | -| `STRING`, `BINARY` | [String](/reference/data-types/string) | -| `DECIMAL` | [Decimal](/reference/data-types/decimal) | -| `LIST` | [Array](/reference/data-types/array) | -| `STRUCT` | [Tuple](/reference/data-types/tuple) | -| `MAP` | [Map](/reference/data-types/map) | +| `BOOL` | [Bool](/core/reference/data-types/boolean) | +| `UINT8` | [UInt8](/core/reference/data-types/int-uint) | +| `INT8` | [Int8](/core/reference/data-types/int-uint) | +| `UINT16` | [UInt16](/core/reference/data-types/int-uint) | +| `INT16` | [Int16](/core/reference/data-types/int-uint) | +| `UINT32` | [UInt32](/core/reference/data-types/int-uint) | +| `INT32` | [Int32](/core/reference/data-types/int-uint) | +| `UINT64` | [UInt64](/core/reference/data-types/int-uint) | +| `INT64` | [Int64](/core/reference/data-types/int-uint) | +| `FLOAT` | [Float32](/core/reference/data-types/float) | +| `DOUBLE` | [Float64](/core/reference/data-types/float) | +| `DATE` | [Date32](/core/reference/data-types/date32) | +| `TIME (ms)` | [DateTime](/core/reference/data-types/datetime) | +| `TIMESTAMP`, `TIME (us, ns)` | [DateTime64](/core/reference/data-types/datetime64) | +| `STRING`, `BINARY` | [String](/core/reference/data-types/string) | +| `DECIMAL` | [Decimal](/core/reference/data-types/decimal) | +| `LIST` | [Array](/core/reference/data-types/array) | +| `STRUCT` | [Tuple](/core/reference/data-types/tuple) | +| `MAP` | [Map](/core/reference/data-types/map) | Other Parquet types are not supported. @@ -1838,25 +1838,25 @@ In Arrow format ClickHouse reads its schema from the data and converts it to Cli | Arrow data type | ClickHouse data type | |---------------------------------|---------------------------------------------------------| -| `BOOL` | [Bool](/reference/data-types/boolean) | -| `UINT8` | [UInt8](/reference/data-types/int-uint) | -| `INT8` | [Int8](/reference/data-types/int-uint) | -| `UINT16` | [UInt16](/reference/data-types/int-uint) | -| `INT16` | [Int16](/reference/data-types/int-uint) | -| `UINT32` | [UInt32](/reference/data-types/int-uint) | -| `INT32` | [Int32](/reference/data-types/int-uint) | -| `UINT64` | [UInt64](/reference/data-types/int-uint) | -| `INT64` | [Int64](/reference/data-types/int-uint) | -| `FLOAT`, `HALF_FLOAT` | [Float32](/reference/data-types/float) | -| `DOUBLE` | [Float64](/reference/data-types/float) | -| `DATE32` | [Date32](/reference/data-types/date32) | -| `DATE64` | [DateTime](/reference/data-types/datetime) | -| `TIMESTAMP`, `TIME32`, `TIME64` | [DateTime64](/reference/data-types/datetime64) | -| `STRING`, `BINARY` | [String](/reference/data-types/string) | -| `DECIMAL128`, `DECIMAL256` | [Decimal](/reference/data-types/decimal) | -| `LIST` | [Array](/reference/data-types/array) | -| `STRUCT` | [Tuple](/reference/data-types/tuple) | -| `MAP` | [Map](/reference/data-types/map) | +| `BOOL` | [Bool](/core/reference/data-types/boolean) | +| `UINT8` | [UInt8](/core/reference/data-types/int-uint) | +| `INT8` | [Int8](/core/reference/data-types/int-uint) | +| `UINT16` | [UInt16](/core/reference/data-types/int-uint) | +| `INT16` | [Int16](/core/reference/data-types/int-uint) | +| `UINT32` | [UInt32](/core/reference/data-types/int-uint) | +| `INT32` | [Int32](/core/reference/data-types/int-uint) | +| `UINT64` | [UInt64](/core/reference/data-types/int-uint) | +| `INT64` | [Int64](/core/reference/data-types/int-uint) | +| `FLOAT`, `HALF_FLOAT` | [Float32](/core/reference/data-types/float) | +| `DOUBLE` | [Float64](/core/reference/data-types/float) | +| `DATE32` | [Date32](/core/reference/data-types/date32) | +| `DATE64` | [DateTime](/core/reference/data-types/datetime) | +| `TIMESTAMP`, `TIME32`, `TIME64` | [DateTime64](/core/reference/data-types/datetime64) | +| `STRING`, `BINARY` | [String](/core/reference/data-types/string) | +| `DECIMAL128`, `DECIMAL256` | [Decimal](/core/reference/data-types/decimal) | +| `LIST` | [Array](/core/reference/data-types/array) | +| `STRUCT` | [Tuple](/core/reference/data-types/tuple) | +| `MAP` | [Map](/core/reference/data-types/map) | Other Arrow types are not supported. @@ -1866,20 +1866,20 @@ In ORC format ClickHouse reads its schema from the data and converts it to Click | ORC data type | ClickHouse data type | |--------------------------------------|---------------------------------------------------------| -| `Boolean` | [Bool](/reference/data-types/boolean) | -| `Tinyint` | [Int8](/reference/data-types/int-uint) | -| `Smallint` | [Int16](/reference/data-types/int-uint) | -| `Int` | [Int32](/reference/data-types/int-uint) | -| `Bigint` | [Int64](/reference/data-types/int-uint) | -| `Float` | [Float32](/reference/data-types/float) | -| `Double` | [Float64](/reference/data-types/float) | -| `Date` | [Date32](/reference/data-types/date32) | -| `Timestamp` | [DateTime64](/reference/data-types/datetime64) | -| `String`, `Char`, `Varchar`,`BINARY` | [String](/reference/data-types/string) | -| `Decimal` | [Decimal](/reference/data-types/decimal) | -| `List` | [Array](/reference/data-types/array) | -| `Struct` | [Tuple](/reference/data-types/tuple) | -| `Map` | [Map](/reference/data-types/map) | +| `Boolean` | [Bool](/core/reference/data-types/boolean) | +| `Tinyint` | [Int8](/core/reference/data-types/int-uint) | +| `Smallint` | [Int16](/core/reference/data-types/int-uint) | +| `Int` | [Int32](/core/reference/data-types/int-uint) | +| `Bigint` | [Int64](/core/reference/data-types/int-uint) | +| `Float` | [Float32](/core/reference/data-types/float) | +| `Double` | [Float64](/core/reference/data-types/float) | +| `Date` | [Date32](/core/reference/data-types/date32) | +| `Timestamp` | [DateTime64](/core/reference/data-types/datetime64) | +| `String`, `Char`, `Varchar`,`BINARY` | [String](/core/reference/data-types/string) | +| `Decimal` | [Decimal](/core/reference/data-types/decimal) | +| `List` | [Array](/core/reference/data-types/array) | +| `Struct` | [Tuple](/core/reference/data-types/tuple) | +| `Map` | [Map](/core/reference/data-types/map) | Other ORC types are not supported. @@ -1899,17 +1899,17 @@ In schema inference for Protobuf format ClickHouse uses the following type match | Protobuf data type | ClickHouse data type | |-------------------------------|---------------------------------------------------| -| `bool` | [UInt8](/reference/data-types/int-uint) | -| `float` | [Float32](/reference/data-types/float) | -| `double` | [Float64](/reference/data-types/float) | -| `int32`, `sint32`, `sfixed32` | [Int32](/reference/data-types/int-uint) | -| `int64`, `sint64`, `sfixed64` | [Int64](/reference/data-types/int-uint) | -| `uint32`, `fixed32` | [UInt32](/reference/data-types/int-uint) | -| `uint64`, `fixed64` | [UInt64](/reference/data-types/int-uint) | -| `string`, `bytes` | [String](/reference/data-types/string) | -| `enum` | [Enum](/reference/data-types/enum) | -| `repeated T` | [Array(T)](/reference/data-types/array) | -| `message`, `group` | [Tuple](/reference/data-types/tuple) | +| `bool` | [UInt8](/core/reference/data-types/int-uint) | +| `float` | [Float32](/core/reference/data-types/float) | +| `double` | [Float64](/core/reference/data-types/float) | +| `int32`, `sint32`, `sfixed32` | [Int32](/core/reference/data-types/int-uint) | +| `int64`, `sint64`, `sfixed64` | [Int64](/core/reference/data-types/int-uint) | +| `uint32`, `fixed32` | [UInt32](/core/reference/data-types/int-uint) | +| `uint64`, `fixed64` | [UInt64](/core/reference/data-types/int-uint) | +| `string`, `bytes` | [String](/core/reference/data-types/string) | +| `enum` | [Enum](/core/reference/data-types/enum) | +| `repeated T` | [Array(T)](/core/reference/data-types/array) | +| `message`, `group` | [Tuple](/core/reference/data-types/tuple) | ### CapnProto {#capnproto} @@ -1917,22 +1917,22 @@ In schema inference for CapnProto format ClickHouse uses the following type matc | CapnProto data type | ClickHouse data type | |------------------------------------|--------------------------------------------------------| -| `Bool` | [UInt8](/reference/data-types/int-uint) | -| `Int8` | [Int8](/reference/data-types/int-uint) | -| `UInt8` | [UInt8](/reference/data-types/int-uint) | -| `Int16` | [Int16](/reference/data-types/int-uint) | -| `UInt16` | [UInt16](/reference/data-types/int-uint) | -| `Int32` | [Int32](/reference/data-types/int-uint) | -| `UInt32` | [UInt32](/reference/data-types/int-uint) | -| `Int64` | [Int64](/reference/data-types/int-uint) | -| `UInt64` | [UInt64](/reference/data-types/int-uint) | -| `Float32` | [Float32](/reference/data-types/float) | -| `Float64` | [Float64](/reference/data-types/float) | -| `Text`, `Data` | [String](/reference/data-types/string) | -| `enum` | [Enum](/reference/data-types/enum) | -| `List` | [Array](/reference/data-types/array) | -| `struct` | [Tuple](/reference/data-types/tuple) | -| `union(T, Void)`, `union(Void, T)` | [Nullable(T)](/reference/data-types/nullable) | +| `Bool` | [UInt8](/core/reference/data-types/int-uint) | +| `Int8` | [Int8](/core/reference/data-types/int-uint) | +| `UInt8` | [UInt8](/core/reference/data-types/int-uint) | +| `Int16` | [Int16](/core/reference/data-types/int-uint) | +| `UInt16` | [UInt16](/core/reference/data-types/int-uint) | +| `Int32` | [Int32](/core/reference/data-types/int-uint) | +| `UInt32` | [UInt32](/core/reference/data-types/int-uint) | +| `Int64` | [Int64](/core/reference/data-types/int-uint) | +| `UInt64` | [UInt64](/core/reference/data-types/int-uint) | +| `Float32` | [Float32](/core/reference/data-types/float) | +| `Float64` | [Float64](/core/reference/data-types/float) | +| `Text`, `Data` | [String](/core/reference/data-types/string) | +| `enum` | [Enum](/core/reference/data-types/enum) | +| `List` | [Array](/core/reference/data-types/array) | +| `struct` | [Tuple](/core/reference/data-types/tuple) | +| `union(T, Void)`, `union(Void, T)` | [Nullable(T)](/core/reference/data-types/nullable) | ## Strong-typed binary formats {#strong-typed-binary-formats} @@ -1947,16 +1947,16 @@ using the setting `input_format_msgpack_number_of_columns`. ClickHouse uses the | MessagePack data type (`INSERT`) | ClickHouse data type | |--------------------------------------------------------------------|-----------------------------------------------------------| -| `int N`, `uint N`, `negative fixint`, `positive fixint` | [Int64](/reference/data-types/int-uint) | -| `bool` | [UInt8](/reference/data-types/int-uint) | -| `fixstr`, `str 8`, `str 16`, `str 32`, `bin 8`, `bin 16`, `bin 32` | [String](/reference/data-types/string) | -| `float 32` | [Float32](/reference/data-types/float) | -| `float 64` | [Float64](/reference/data-types/float) | -| `uint 16` | [Date](/reference/data-types/date) | -| `uint 32` | [DateTime](/reference/data-types/datetime) | -| `uint 64` | [DateTime64](/reference/data-types/datetime) | -| `fixarray`, `array 16`, `array 32` | [Array](/reference/data-types/array) | -| `fixmap`, `map 16`, `map 32` | [Map](/reference/data-types/map) | +| `int N`, `uint N`, `negative fixint`, `positive fixint` | [Int64](/core/reference/data-types/int-uint) | +| `bool` | [UInt8](/core/reference/data-types/int-uint) | +| `fixstr`, `str 8`, `str 16`, `str 32`, `bin 8`, `bin 16`, `bin 32` | [String](/core/reference/data-types/string) | +| `float 32` | [Float32](/core/reference/data-types/float) | +| `float 64` | [Float64](/core/reference/data-types/float) | +| `uint 16` | [Date](/core/reference/data-types/date) | +| `uint 32` | [DateTime](/core/reference/data-types/datetime) | +| `uint 64` | [DateTime64](/core/reference/data-types/datetime) | +| `fixarray`, `array 16`, `array 32` | [Array](/core/reference/data-types/array) | +| `fixmap`, `map 16`, `map 32` | [Map](/core/reference/data-types/map) | By default, all inferred types are inside `Nullable`, but it can be changed using the setting `schema_inference_make_columns_nullable`. @@ -1967,16 +1967,16 @@ values, names, and types from the data and then transforms these types to ClickH | BSON Type | ClickHouse type | |-----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------| -| `\x08` boolean | [Bool](/reference/data-types/boolean) | -| `\x10` int32 | [Int32](/reference/data-types/int-uint) | -| `\x12` int64 | [Int64](/reference/data-types/int-uint) | -| `\x01` double | [Float64](/reference/data-types/float) | -| `\x09` datetime | [DateTime64](/reference/data-types/datetime64) | -| `\x05` binary with`\x00` binary subtype, `\x02` string, `\x0E` symbol, `\x0D` JavaScript code | [String](/reference/data-types/string) | -| `\x07` ObjectId, | [FixedString(12)](/reference/data-types/fixedstring) | -| `\x05` binary with `\x04` uuid subtype, size = 16 | [UUID](/reference/data-types/uuid) | -| `\x04` array | [Array](/reference/data-types/array)/[Tuple](/reference/data-types/tuple) (if nested types are different) | -| `\x03` document | [Named Tuple](/reference/data-types/tuple)/[Map](/reference/data-types/map) (with String keys) | +| `\x08` boolean | [Bool](/core/reference/data-types/boolean) | +| `\x10` int32 | [Int32](/core/reference/data-types/int-uint) | +| `\x12` int64 | [Int64](/core/reference/data-types/int-uint) | +| `\x01` double | [Float64](/core/reference/data-types/float) | +| `\x09` datetime | [DateTime64](/core/reference/data-types/datetime64) | +| `\x05` binary with`\x00` binary subtype, `\x02` string, `\x0E` symbol, `\x0D` JavaScript code | [String](/core/reference/data-types/string) | +| `\x07` ObjectId, | [FixedString(12)](/core/reference/data-types/fixedstring) | +| `\x05` binary with `\x04` uuid subtype, size = 16 | [UUID](/core/reference/data-types/uuid) | +| `\x04` array | [Array](/core/reference/data-types/array)/[Tuple](/core/reference/data-types/tuple) (if nested types are different) | +| `\x03` document | [Named Tuple](/core/reference/data-types/tuple)/[Map](/core/reference/data-types/map) (with String keys) | By default, all inferred types are inside `Nullable`, but it can be changed using the setting `schema_inference_make_columns_nullable`. diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/ssh.mdx b/core/concepts/features/interfaces/ssh.mdx similarity index 100% rename from integrations/connectors/data-integrations/drivers-and-interfaces/ssh.mdx rename to core/concepts/features/interfaces/ssh.mdx diff --git a/core/concepts/features/interfaces/tcp.mdx b/core/concepts/features/interfaces/tcp.mdx new file mode 100644 index 00000000..0d068202 --- /dev/null +++ b/core/concepts/features/interfaces/tcp.mdx @@ -0,0 +1,9 @@ +--- +description: 'Documentation for the native TCP interface in ClickHouse' +sidebarTitle: 'Native interface (TCP)' +slug: /interfaces/tcp +title: 'Native interface (TCP)' +doc_type: 'reference' +--- + +The native protocol is used in the [command-line client](/core/concepts/features/interfaces/cli), for inter-server communication during distributed query processing, and also in other C++ programs. Unfortunately, native ClickHouse protocol doesn't have formal specification yet, but it can be reverse-engineered from ClickHouse source code (starting [around here](https://github.com/ClickHouse/ClickHouse/tree/master/src/Client)) and/or by intercepting and analyzing TCP traffic. diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/third-party/index.mdx b/core/concepts/features/interfaces/third-party/index.mdx similarity index 68% rename from integrations/connectors/data-integrations/drivers-and-interfaces/third-party/index.mdx rename to core/concepts/features/interfaces/third-party/index.mdx index f70536ff..615953a5 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/third-party/index.mdx +++ b/core/concepts/features/interfaces/third-party/index.mdx @@ -15,5 +15,5 @@ This is a collection of links to third-party tools that provide some sort of int - [Proxies](/integrations/connectors/tools/proxy) -Generic tools that support common API like [ODBC](/integrations/connectors/data-integrations/drivers-and-interfaces/odbc) or [JDBC](/integrations/connectors/data-integrations/drivers-and-interfaces/jdbc) usually can work with ClickHouse as well, but are not listed here because there are way too many of them. +Generic tools that support common API like [ODBC](/core/concepts/features/interfaces/odbc) or [JDBC](/core/concepts/features/interfaces/jdbc) usually can work with ClickHouse as well, but are not listed here because there are way too many of them. \ No newline at end of file diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/web-terminal.mdx b/core/concepts/features/interfaces/web-terminal.mdx similarity index 91% rename from integrations/connectors/data-integrations/drivers-and-interfaces/web-terminal.mdx rename to core/concepts/features/interfaces/web-terminal.mdx index 0921c994..ac34a57b 100644 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/web-terminal.mdx +++ b/core/concepts/features/interfaces/web-terminal.mdx @@ -51,7 +51,7 @@ The terminal uses [xterm.js](https://xtermjs.org/) for rendering. All assets are ## Integration with `/play` {#play-integration} -The [`/play`](/integrations/connectors/data-integrations/drivers-and-interfaces/http) Web SQL UI embeds the web terminal as a dockable panel. Toggle it with the terminal icon in the sidebar or press the `~` key when the query editor is empty. The `/play` page detects `/webterminal` availability at load time and hides the terminal controls when the endpoint is unavailable (for example, when the experimental setting is not enabled). +The [`/play`](/core/concepts/features/interfaces/http) Web SQL UI embeds the web terminal as a dockable panel. Toggle it with the terminal icon in the sidebar or press the `~` key when the query editor is empty. The `/play` page detects `/webterminal` availability at load time and hides the terminal controls when the endpoint is unavailable (for example, when the experimental setting is not enabled). ## Security considerations {#security} diff --git a/concepts/features/materialized-views/cascading-materialized-views.mdx b/core/concepts/features/materialized-views/cascading-materialized-views.mdx similarity index 99% rename from concepts/features/materialized-views/cascading-materialized-views.mdx rename to core/concepts/features/materialized-views/cascading-materialized-views.mdx index 9c66e47d..d80efcf0 100644 --- a/concepts/features/materialized-views/cascading-materialized-views.mdx +++ b/core/concepts/features/materialized-views/cascading-materialized-views.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/cascading-materialized-views +slug: /core/guides/developer/cascading-materialized-views title: 'Cascading materialized views' description: 'How to use multiple materialized views from a source table.' keywords: ['materialized view', 'aggregation'] diff --git a/concepts/features/materialized-views/incremental-materialized-view.mdx b/core/concepts/features/materialized-views/incremental-materialized-view.mdx similarity index 95% rename from concepts/features/materialized-views/incremental-materialized-view.mdx rename to core/concepts/features/materialized-views/incremental-materialized-view.mdx index f1c30c5f..ae766593 100644 --- a/concepts/features/materialized-views/incremental-materialized-view.mdx +++ b/core/concepts/features/materialized-views/incremental-materialized-view.mdx @@ -17,13 +17,13 @@ Unlike in transactional databases like Postgres, a ClickHouse materialized view The principal motivation for Materialized Views is that the results inserted into the target table represent the results of an aggregation, filtering, or transformation on rows. These results will often be a smaller representation of the original data (a partial sketch in the case of aggregations). This, along with the resulting query for reading the results from the target table being simple, ensures query times are faster than if the same computation was performed on the original data, shifting computation (and thus query latency) from query time to insert time. -Materialized views in ClickHouse are updated in real time as data flows into the table they're based on, functioning more like continually updating indexes. This is in contrast to other databases where Materialized Views are typically static snapshots of a query that must be refreshed (similar to ClickHouse [Refreshable Materialized Views](/reference/statements/create/view#refreshable-materialized-view)). +Materialized views in ClickHouse are updated in real time as data flows into the table they're based on, functioning more like continually updating indexes. This is in contrast to other databases where Materialized Views are typically static snapshots of a query that must be refreshed (similar to ClickHouse [Refreshable Materialized Views](/core/reference/statements/create/view#refreshable-materialized-view)). Materialized view diagram ## Example {#example} -For example purposes we'll use the Stack Overflow dataset documented in ["Schema Design"](/guides/cloud-oss/data-modelling/schema-design). +For example purposes we'll use the Stack Overflow dataset documented in ["Schema Design"](/core/guides/clickhouse/data-modelling/schema-design). Suppose we want to obtain the number of up and down votes per day for a post. @@ -45,7 +45,7 @@ INSERT INTO votes SELECT * FROM s3('https://datasets-documentation.s3.eu-west-3. 0 rows in set. Elapsed: 29.359 sec. Processed 238.98 million rows, 2.13 GB (8.14 million rows/s., 72.45 MB/s.) ``` -This is a reasonably simple query in ClickHouse thanks to the [`toStartOfDay`](/reference/functions/regular-functions/date-time-functions#toStartOfDay) function: +This is a reasonably simple query in ClickHouse thanks to the [`toStartOfDay`](/core/reference/functions/regular-functions/date-time-functions#toStartOfDay) function: ```sql SELECT toStartOfDay(CreationDate) AS day, @@ -77,7 +77,7 @@ This query is already fast thanks to ClickHouse, but can we do better? If we want to compute this at insert time using a materialized view, we need a table to receive the results. This table should only keep 1 row per day. If an update is received for an existing day, the other columns should be merged into the existing day's row. For this merge of incremental states to happen, partial states must be stored for the other columns. -This requires a special engine type in ClickHouse: the [SummingMergeTree](/reference/engines/table-engines/mergetree-family/summingmergetree). This replaces all the rows with the same ordering key with one row which contains summed values for the numeric columns. The following table will merge any rows with the same date, summing any numerical columns: +This requires a special engine type in ClickHouse: the [SummingMergeTree](/core/reference/engines/table-engines/mergetree-family/summingmergetree). This replaces all the rows with the same ordering key with one row which contains summed values for the numeric columns. The following table will merge any rows with the same date, summing any numerical columns: ```sql CREATE TABLE up_down_votes_per_day @@ -208,7 +208,7 @@ Peak memory usage: 658.84 MiB. As before, we can create a materialized view which executes the above query as new posts are inserted into our `posts` table. -For the purposes of example, and to avoid loading the posts data from S3, we will create a duplicate table `posts_null` with the same schema as `posts`. However, this table won't store any data and simply be used by the materialized view when rows are inserted. To prevent storage of data, we can use the [`Null` table engine type](/reference/engines/table-engines/special/null). +For the purposes of example, and to avoid loading the posts data from S3, we will create a duplicate table `posts_null` with the same schema as `posts`. However, this table won't store any data and simply be used by the materialized view when rows are inserted. To prevent storage of data, we can use the [`Null` table engine type](/core/reference/engines/table-engines/special/null). ```sql CREATE TABLE posts_null AS posts ENGINE = Null @@ -244,7 +244,7 @@ ENGINE = AggregatingMergeTree ORDER BY Day ``` -While earlier the `SummingMergeTree` was sufficient to store counts, we require a more advanced engine type for other functions: the [`AggregatingMergeTree`](/reference/engines/table-engines/mergetree-family/aggregatingmergetree). +While earlier the `SummingMergeTree` was sufficient to store counts, we require a more advanced engine type for other functions: the [`AggregatingMergeTree`](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree). To ensure ClickHouse knows that aggregate states will be stored, we define the `Score_quantiles` and `AvgCommentCount` as the type `AggregateFunction`, specifying the function source of the partial states and the type of their source columns. Like the `SummingMergeTree`, rows with the same `ORDER BY` key value will be merged (`Day` in the above example). To populate our `post_stats_per_day` via our materialized view, we can simply insert all rows from `posts` into `posts_null`: @@ -369,7 +369,7 @@ WHERE PostId IN ( ### Chaining / cascading materialized views {#chaining} Materialized views can be chained (or cascaded), allowing complex workflows to be established. -For more information see the guide ["Cascading materialized views"](/concepts/features/materialized-views/cascading-materialized-views). +For more information see the guide ["Cascading materialized views"](/core/concepts/features/materialized-views/cascading-materialized-views). ## Materialized views and JOINs {#materialized-views-and-joins} @@ -389,7 +389,7 @@ This works well for enriching data with reference or dimension tables. However, ### Example {#materialized-views-and-joins-example} -Let's walk through a concrete example using the [Stack Overflow dataset](/guides/cloud-oss/data-modelling/schema-design). We'll use a materialized view to compute **daily badges per user**, including the display name of the user from the `users` table. +Let's walk through a concrete example using the [Stack Overflow dataset](/core/guides/clickhouse/data-modelling/schema-design). We'll use a materialized view to compute **daily badges per user**, including the display name of the user from the `users` table. As a reminder, our table schemas are: @@ -521,7 +521,7 @@ WHERE DisplayName = 'gingerwizard' ``` -Notice the latency of the insert here. The inserted user row is joined against the entire `users` table, significantly impacting insert performance. We propose approaches to address this below in ["Using source table in filters and joins"](/concepts/features/materialized-views/incremental-materialized-view#using-source-table-in-filters-and-joins-in-materialized-views). +Notice the latency of the insert here. The inserted user row is joined against the entire `users` table, significantly impacting insert performance. We propose approaches to address this below in ["Using source table in filters and joins"](/core/concepts/features/materialized-views/incremental-materialized-view#using-source-table-in-filters-and-joins-in-materialized-views). Conversely, if we insert a badge for a new user, followed by the row for the user, our materialized view will fail to capture the users' metrics. @@ -569,13 +569,13 @@ Note, however, that this result is incorrect. - **Evaluate insert-time performance.** JOINs increase the cost of inserts, especially with large right-side tables. Benchmark insert rates using representative production data. -- **Prefer dictionaries for simple lookups**. Use [Dictionaries](/concepts/features/dictionaries) for key-value lookups (e.g., user ID to name) to avoid expensive JOIN operations. +- **Prefer dictionaries for simple lookups**. Use [Dictionaries](/core/concepts/features/dictionaries) for key-value lookups (e.g., user ID to name) to avoid expensive JOIN operations. - **Align `GROUP BY` and `ORDER BY` for merge efficiency.** When using `SummingMergeTree` or `AggregatingMergeTree`, ensure `GROUP BY` matches the `ORDER BY` clause in the target table to allow efficient row merging. - **Use explicit column aliases.** When tables have overlapping column names, use aliases to prevent ambiguity and ensure correct results in the target table. -- **Consider insert volume and frequency.** JOINs work well in moderate insert workloads. For high-throughput ingestion, consider using staging tables, pre-joins, or other approaches such as Dictionaries and [Refreshable Materialized Views](/concepts/features/materialized-views/refreshable-materialized-view). +- **Consider insert volume and frequency.** JOINs work well in moderate insert workloads. For high-throughput ingestion, consider using staging tables, pre-joins, or other approaches such as Dictionaries and [Refreshable Materialized Views](/core/concepts/features/materialized-views/refreshable-materialized-view). ### Using source table in filters and joins {#using-source-table-in-filters-and-joins-in-materialized-views} @@ -651,7 +651,7 @@ In this example, the set built from the `IN (SELECT id FROM t0)` subquery has on #### Example with stack overflow {#example-with-stack-overflow} -Consider our [earlier materialized view example](/concepts/features/materialized-views/incremental-materialized-view#example) to compute **daily badges per user**, including the user's display name from the `users` table. +Consider our [earlier materialized view example](/core/concepts/features/materialized-views/incremental-materialized-view#example) to compute **daily badges per user**, including the user's display name from the `users` table. ```sql CREATE MATERIALIZED VIEW daily_badges_by_user_mv TO daily_badges_by_user @@ -797,7 +797,7 @@ ORDER BY last_activity DESC LIMIT 10 ``` -Let's assume we have a target table to receive the results of this query. Note the use of the [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) table engine and [AggregateFunction](/reference/data-types/aggregatefunction) to ensure results are merged correctly: +Let's assume we have a target table to receive the results of this query. Note the use of the [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) table engine and [AggregateFunction](/core/reference/data-types/aggregatefunction) to ensure results are merged correctly: ```sql CREATE TABLE user_activity @@ -951,7 +951,7 @@ GROUP BY UserId ## Parallel vs sequential processing {#materialized-views-parallel-vs-sequential} -As shown in the previous example, a table can act as the source for multiple Materialized Views. The order in which these are executed depends on the setting [`parallel_view_processing`](/reference/settings/session-settings#parallel_view_processing). +As shown in the previous example, a table can act as the source for multiple Materialized Views. The order in which these are executed depends on the setting [`parallel_view_processing`](/core/reference/settings/session-settings#parallel_view_processing). By default, this setting is equal to `0` (`false`), meaning Materialized Views are executed sequentially in `uuid` order. @@ -1202,4 +1202,4 @@ SELECT * FROM stackoverflow.posts WHERE OwnerUserId IN (SELECT Id FROM recent_us In this case, the users CTE is re-evaluated on every insert into posts, and the materialized view won't update when new users are inserted - only when posts are. -Generally, use CTEs for logic that operates on the same source table the materialized view is attached to or ensure that referenced tables are small and unlikely to cause performance bottlenecks. Alternatively, consider [the same optimizations as JOINs with Materialized Views](/concepts/features/materialized-views/incremental-materialized-view#join-best-practices). +Generally, use CTEs for logic that operates on the same source table the materialized view is attached to or ensure that referenced tables are small and unlikely to cause performance bottlenecks. Alternatively, consider [the same optimizations as JOINs with Materialized Views](/core/concepts/features/materialized-views/incremental-materialized-view#join-best-practices). diff --git a/concepts/features/materialized-views/index.mdx b/core/concepts/features/materialized-views/index.mdx similarity index 65% rename from concepts/features/materialized-views/index.mdx rename to core/concepts/features/materialized-views/index.mdx index 8870a5ab..42dcc04e 100644 --- a/concepts/features/materialized-views/index.mdx +++ b/core/concepts/features/materialized-views/index.mdx @@ -8,8 +8,8 @@ doc_type: 'landing-page' | Page | Description | |-------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Incremental materialized view](/concepts/features/materialized-views/incremental-materialized-view) | Allow users to shift the cost of computation from query time to insert time, resulting in faster `SELECT` queries. | -| [Refreshable materialized view](/concepts/features/materialized-views/refreshable-materialized-view) | Conceptually similar to incremental materialized views but require the periodic execution of the query over the full dataset - the results of which are stored in a target table for querying. | +| [Incremental materialized view](/core/concepts/features/materialized-views/incremental-materialized-view) | Allow users to shift the cost of computation from query time to insert time, resulting in faster `SELECT` queries. | +| [Refreshable materialized view](/core/concepts/features/materialized-views/refreshable-materialized-view) | Conceptually similar to incremental materialized views but require the periodic execution of the query over the full dataset - the results of which are stored in a target table for querying. | diff --git a/concepts/features/materialized-views/refreshable-materialized-view.mdx b/core/concepts/features/materialized-views/refreshable-materialized-view.mdx similarity index 91% rename from concepts/features/materialized-views/refreshable-materialized-view.mdx rename to core/concepts/features/materialized-views/refreshable-materialized-view.mdx index bb6c1c28..672abad5 100644 --- a/concepts/features/materialized-views/refreshable-materialized-view.mdx +++ b/core/concepts/features/materialized-views/refreshable-materialized-view.mdx @@ -8,7 +8,7 @@ doc_type: 'guide' import { Image } from "/snippets/components/Image.jsx"; -[Refreshable materialized views](/reference/statements/create/view#refreshable-materialized-view) are conceptually similar to materialized views in traditional OLTP databases, storing the result of a specified query for quick retrieval and reducing the need to repeatedly execute resource-intensive queries. Unlike ClickHouse's [incremental materialized views](/concepts/features/materialized-views/incremental-materialized-view), this requires the periodic execution of the query over the full dataset - the results of which are stored in a target table for querying. This result set should, in theory, be smaller than the original dataset, allowing the subsequent query to execute faster. +[Refreshable materialized views](/core/reference/statements/create/view#refreshable-materialized-view) are conceptually similar to materialized views in traditional OLTP databases, storing the result of a specified query for quick retrieval and reducing the need to repeatedly execute resource-intensive queries. Unlike ClickHouse's [incremental materialized views](/core/concepts/features/materialized-views/incremental-materialized-view), this requires the periodic execution of the query over the full dataset - the results of which are stored in a target table for querying. This result set should, in theory, be smaller than the original dataset, allowing the subsequent query to execute faster. The diagram explains how Refreshable Materialized Views work: @@ -26,7 +26,7 @@ ClickHouse incremental materialized views are enormously powerful and typically However, there are use cases where this incremental process isn't required or isn't applicable. Some problems are either incompatible with an incremental approach or don't require real-time updates, with a periodic rebuild being more appropriate. For example, you may want to regularly perform a complete re-computation of a view over the full dataset because it uses a complex join, which is incompatible with an incremental approach. -> Refreshable materialized views can run batch processes performing tasks such as denormalization. Dependencies can be created between refreshable materialized views such that one view depends on the results of another and only executes once it is complete. This can replace scheduled workflows or simple DAGs such as a [dbt](https://www.getdbt.com/) job. To find out more about how to set dependencies between refreshable materialized views go to [CREATE VIEW](/reference/statements/create/view#refresh-dependencies), `Dependencies` section. +> Refreshable materialized views can run batch processes performing tasks such as denormalization. Dependencies can be created between refreshable materialized views such that one view depends on the results of another and only executes once it is complete. This can replace scheduled workflows or simple DAGs such as a [dbt](https://www.getdbt.com/) job. To find out more about how to set dependencies between refreshable materialized views go to [CREATE VIEW](/core/reference/statements/create/view#refresh-dependencies), `Dependencies` section. ## How do you refresh a refreshable materialized view? {#how-do-you-refresh-a-refreshable-materialized-view} @@ -46,11 +46,11 @@ SYSTEM REFRESH VIEW table_name_mv; ``` You can also cancel, stop, or start a view. -For more details, see the [managing refreshable materialized views](/reference/statements/system#managing-refreshable-materialized-views) documentation. +For more details, see the [managing refreshable materialized views](/core/reference/statements/system#managing-refreshable-materialized-views) documentation. ## When was a refreshable materialized view last refreshed? {#when-was-a-refreshable-materialized-view-last-refreshed} -To find out when a refreshable materialized view was last refreshed, you can query the [`system.view_refreshes`](/reference/system-tables/view_refreshes) system table, as shown below: +To find out when a refreshable materialized view was last refreshed, you can query the [`system.view_refreshes`](/core/reference/system-tables/view_refreshes) system table, as shown below: ```sql SELECT database, view, status, @@ -67,14 +67,14 @@ FROM system.view_refreshes; ## How can I change the refresh rate? {#how-can-i-change-the-refresh-rate} -To change the refresh rate of a refreshable materialized view, use the [`ALTER TABLE...MODIFY REFRESH`](/reference/statements/alter/view#alter-table--modify-refresh-statement) syntax. +To change the refresh rate of a refreshable materialized view, use the [`ALTER TABLE...MODIFY REFRESH`](/core/reference/statements/alter/view#alter-table--modify-refresh-statement) syntax. ```sql ALTER TABLE table_name_mv MODIFY REFRESH EVERY 30 SECONDS; ``` -Once you've done that, you can use [When was a refreshable materialized view last refreshed?](/concepts/features/materialized-views/refreshable-materialized-view#when-was-a-refreshable-materialized-view-last-refreshed) query to check that the rate has been updated: +Once you've done that, you can use [When was a refreshable materialized view last refreshed?](/core/concepts/features/materialized-views/refreshable-materialized-view#when-was-a-refreshable-materialized-view-last-refreshed) query to check that the rate has been updated: ```text ┌─database─┬─view─────────────┬─status────┬───last_success_time─┬───last_refresh_time─┬───next_refresh_time─┬─read_rows─┬─written_rows─┐ @@ -186,7 +186,7 @@ Lets now have a look at how to use refreshable materialized views with some exam ### Stack Overflow {#stack-overflow} -The [denormalizing data guide](/guides/cloud-oss/data-modelling/denormalization) shows various techniques for denormalizing data using a Stack Overflow dataset. We populate data into the following tables: `votes`, `users`, `badges`, `posts`, and `postlinks`. +The [denormalizing data guide](/core/guides/clickhouse/data-modelling/denormalization) shows various techniques for denormalizing data using a Stack Overflow dataset. We populate data into the following tables: `votes`, `users`, `badges`, `posts`, and `postlinks`. In that guide, we showed how to denormalize the `postlinks` dataset onto the `posts` table with the following query: @@ -231,7 +231,7 @@ LEFT JOIN ( The view will execute immediately and every hour thereafter as configured to ensure updates to the source table are reflected. Importantly, when the query re-runs, the result set is atomically and transparently updated. -The syntax here is identical to an incremental materialized view, except we include a [`REFRESH`](/reference/statements/create/view#refreshable-materialized-view) clause: +The syntax here is identical to an incremental materialized view, except we include a [`REFRESH`](/core/reference/statements/create/view#refreshable-materialized-view) clause: ### IMDb {#imdb} diff --git a/concepts/operations/delete/delete-mutations.mdx b/core/concepts/features/operations/delete/delete-mutations.mdx similarity index 82% rename from concepts/operations/delete/delete-mutations.mdx rename to core/concepts/features/operations/delete/delete-mutations.mdx index 58f9118a..d8b5a24a 100644 --- a/concepts/operations/delete/delete-mutations.mdx +++ b/core/concepts/features/operations/delete/delete-mutations.mdx @@ -11,7 +11,7 @@ doc_type: 'reference' Delete mutations refers to `ALTER` queries that manipulate table data through delete. Most notably they're queries like `ALTER TABLE DELETE`, etc. Performing such queries will produce new mutated versions of the data parts. This means that such statements would trigger a rewrite of whole data parts for all data that was inserted before the mutation, translating to a large amount of write requests. -For deletes, you can avoid these large amounts of write requests by using specialised table engines like [ReplacingMergeTree](/concepts/operations/update/replacing-merge-tree) or [CollapsingMergeTree](/reference/engines/table-engines/mergetree-family/collapsingmergetree) instead of the default MergeTree table engine. +For deletes, you can avoid these large amounts of write requests by using specialised table engines like [ReplacingMergeTree](/core/concepts/features/operations/update/replacing-merge-tree) or [CollapsingMergeTree](/core/reference/engines/table-engines/mergetree-family/collapsingmergetree) instead of the default MergeTree table engine. import DeleteMutations from '/snippets/delete.mdx'; diff --git a/concepts/operations/delete/drop-partition.mdx b/core/concepts/features/operations/delete/drop-partition.mdx similarity index 94% rename from concepts/operations/delete/drop-partition.mdx rename to core/concepts/features/operations/delete/drop-partition.mdx index 0729b632..ba62fb1d 100644 --- a/concepts/operations/delete/drop-partition.mdx +++ b/core/concepts/features/operations/delete/drop-partition.mdx @@ -28,9 +28,9 @@ ORDER BY (PostTypeId, toDate(CreationDate), CreationDate) PARTITION BY toYear(CreationDate) ``` -Read about setting the partition expression in a section [How to set the partition expression](/reference/statements/alter/partition#how-to-set-partition-expression). +Read about setting the partition expression in a section [How to set the partition expression](/core/reference/statements/alter/partition#how-to-set-partition-expression). -In ClickHouse, users should principally consider partitioning to be a data management feature, not a query optimization technique. By separating data logically based on a key, each partition can be operated on independently e.g. deleted. This allows users to move partitions, and thus subsets, between [storage tiers](/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse#storage-tiers) efficiently on time or [expire data/efficiently delete from the cluster](/reference/statements/alter/partition). +In ClickHouse, users should principally consider partitioning to be a data management feature, not a query optimization technique. By separating data logically based on a key, each partition can be operated on independently e.g. deleted. This allows users to move partitions, and thus subsets, between [storage tiers](/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse#storage-tiers) efficiently on time or [expire data/efficiently delete from the cluster](/core/reference/statements/alter/partition). ## Drop partitions {#drop-partitions} `ALTER TABLE ... DROP PARTITION` provides a cost-efficient way to drop a whole partition. diff --git a/core/concepts/features/operations/delete/index.mdx b/core/concepts/features/operations/delete/index.mdx new file mode 100644 index 00000000..df3d8516 --- /dev/null +++ b/core/concepts/features/operations/delete/index.mdx @@ -0,0 +1,18 @@ +--- +slug: /managing-data/deleting-data/overview +title: 'Deleting Data' +description: 'How to delete data in ClickHouse Table Of Contents' +keywords: ['delete', 'truncate', 'drop', 'lightweight delete'] +doc_type: 'guide' +--- + +In this section of the documentation, +we will explore how to delete data in ClickHouse. + +| Page | Description | +|-------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------| +| [Overview](/core/concepts/features/operations/delete/overview) | Provides an overview of the various ways to delete data in ClickHouse. | +| [Lightweight deletes](/core/concepts/features/operations/delete/lightweight-delete) | Learn how to use the Lightweight Delete to delete data. | +| [Delete mutations](/core/concepts/features/operations/delete/delete-mutations) |Learn about Delete Mutations. | +| [Truncate table](/core/concepts/features/operations/delete/truncate) | Learn about how to use Truncate, which allows the data in a table or database to be removed, while preserving its existence. | +| [Drop partitions](/core/concepts/features/operations/delete/drop-partition) | Learn about Dropping Partitions in ClickHouse. | diff --git a/concepts/operations/delete/lightweight-delete.mdx b/core/concepts/features/operations/delete/lightweight-delete.mdx similarity index 82% rename from concepts/operations/delete/lightweight-delete.mdx rename to core/concepts/features/operations/delete/lightweight-delete.mdx index cc4893c8..53e6ca4f 100644 --- a/concepts/operations/delete/lightweight-delete.mdx +++ b/core/concepts/features/operations/delete/lightweight-delete.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/lightweight-delete +slug: /core/guides/developer/lightweight-delete title: 'Lightweight delete' keywords: ['lightweight delete'] description: 'Provides an overview of lightweight deletes in ClickHouse' diff --git a/concepts/operations/delete/overview.mdx b/core/concepts/features/operations/delete/overview.mdx similarity index 57% rename from concepts/operations/delete/overview.mdx rename to core/concepts/features/operations/delete/overview.mdx index bf7f0abd..b7c28286 100644 --- a/concepts/operations/delete/overview.mdx +++ b/core/concepts/features/operations/delete/overview.mdx @@ -10,10 +10,10 @@ There are several ways to delete data in ClickHouse, each with its own advantage | Method | Syntax | When to use | | --- | --- | --- | -| [Lightweight delete](/concepts/operations/delete/lightweight-delete) | `DELETE FROM [table]` | Use when deleting small amounts of data. Rows are immediately filtered out of all subsequent SELECT queries but are initially only internally marked as deleted, not removed from disk. | -| [Delete mutation](/reference/statements/alter/delete) | `ALTER TABLE [table] DELETE` | Use when data must be deleted from disk immediately (e.g. for compliance). Negatively affects SELECT performance. | -| [Truncate table](/reference/statements/truncate) | `TRUNCATE TABLE [db.table]` | Efficiently removes all data from a table. | -| [Drop partition](/reference/statements/alter/partition#drop-partitionpart) | `DROP PARTITION` | Efficiently removes all data from a partition. | +| [Lightweight delete](/core/concepts/features/operations/delete/lightweight-delete) | `DELETE FROM [table]` | Use when deleting small amounts of data. Rows are immediately filtered out of all subsequent SELECT queries but are initially only internally marked as deleted, not removed from disk. | +| [Delete mutation](/core/reference/statements/alter/delete) | `ALTER TABLE [table] DELETE` | Use when data must be deleted from disk immediately (e.g. for compliance). Negatively affects SELECT performance. | +| [Truncate table](/core/reference/statements/truncate) | `TRUNCATE TABLE [db.table]` | Efficiently removes all data from a table. | +| [Drop partition](/core/reference/statements/alter/partition#drop-partitionpart) | `DROP PARTITION` | Efficiently removes all data from a partition. | Here is a summary of the different ways to delete data in ClickHouse: @@ -27,11 +27,11 @@ DELETE FROM posts WHERE toYear(CreationDate) = 2018 Deleting large volumes of data with the lightweight `DELETE` statement can also negatively affect `SELECT` query performance. The command is also not compatible with tables with projections. -Note that a mutation is used in the operation to [mark the deleted rows](/reference/statements/delete#how-lightweight-deletes-work-internally-in-clickhouse) (adding a `_row_exists` column), thus incurring some I/O. +Note that a mutation is used in the operation to [mark the deleted rows](/core/reference/statements/delete#how-lightweight-deletes-work-internally-in-clickhouse) (adding a `_row_exists` column), thus incurring some I/O. In general, lightweight deletes should be preferred over mutations if the existence of the deleted data on disk can be tolerated (e.g. in non-compliance cases). This approach should still be avoided if all data needs to be deleted. -Read more about [lightweight deletes](/concepts/operations/delete/lightweight-delete). +Read more about [lightweight deletes](/core/concepts/features/operations/delete/lightweight-delete). ## Delete mutations {#delete-mutations} Delete mutations can be issued through a `ALTER TABLE ... DELETE` command e.g. @@ -41,9 +41,9 @@ Delete mutations can be issued through a `ALTER TABLE ... DELETE` command e.g. ALTER TABLE posts DELETE WHERE toYear(CreationDate) = 2018 ``` -These can be executed either synchronously (by default if non-replicated) or asynchronously (determined by the [mutations_sync](/reference/settings/session-settings#mutations_sync) setting). These are extremely IO-heavy, rewriting all the parts that match the `WHERE` expression. There is no atomicity to this process - parts are substituted for mutated parts as soon as they're ready, and a `SELECT` query that starts executing during a mutation will see data from parts that have already been mutated along with data from parts that haven't been mutated yet. Users can track the state of the progress via the [system.mutations](/reference/system-tables/mutations#monitoring-mutations) table. These are I/O intense operations and should be used sparingly as they can impact cluster `SELECT` performance. +These can be executed either synchronously (by default if non-replicated) or asynchronously (determined by the [mutations_sync](/core/reference/settings/session-settings#mutations_sync) setting). These are extremely IO-heavy, rewriting all the parts that match the `WHERE` expression. There is no atomicity to this process - parts are substituted for mutated parts as soon as they're ready, and a `SELECT` query that starts executing during a mutation will see data from parts that have already been mutated along with data from parts that haven't been mutated yet. Users can track the state of the progress via the [system.mutations](/core/reference/system-tables/mutations#monitoring-mutations) table. These are I/O intense operations and should be used sparingly as they can impact cluster `SELECT` performance. -Read more about [delete mutations](/reference/statements/alter/delete). +Read more about [delete mutations](/core/reference/statements/alter/delete). ## Truncate table {#truncate-table} If all data in a table needs to be deleted, use the `TRUNCATE TABLE` command shown below. This is a lightweight operation. @@ -52,7 +52,7 @@ If all data in a table needs to be deleted, use the `TRUNCATE TABLE` command sho TRUNCATE TABLE posts ``` -Read more about [TRUNCATE TABLE](/reference/statements/truncate). +Read more about [TRUNCATE TABLE](/core/reference/statements/truncate). ## Drop partition {#drop-partition} If you have specified a custom partitioning key for your data, partitions can be efficiently dropped. Avoid high cardinality partitioning. @@ -61,7 +61,7 @@ If you have specified a custom partitioning key for your data, partitions can be ALTER TABLE posts (DROP PARTITION '2008') ``` -Read more about [DROP PARTITION](/reference/statements/alter/partition). +Read more about [DROP PARTITION](/core/reference/statements/alter/partition). ## More resources {#more-resources} - [Handling Updates and Deletes in ClickHouse](https://clickhouse.com/blog/handling-updates-and-deletes-in-clickhouse) diff --git a/concepts/operations/delete/truncate.mdx b/core/concepts/features/operations/delete/truncate.mdx similarity index 100% rename from concepts/operations/delete/truncate.mdx rename to core/concepts/features/operations/delete/truncate.mdx diff --git a/concepts/operations/delete/ttl.mdx b/core/concepts/features/operations/delete/ttl.mdx similarity index 99% rename from concepts/operations/delete/ttl.mdx rename to core/concepts/features/operations/delete/ttl.mdx index aaa8f956..8489128c 100644 --- a/concepts/operations/delete/ttl.mdx +++ b/core/concepts/features/operations/delete/ttl.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/ttl +slug: /core/guides/developer/ttl sidebarTitle: 'TTL (Time to Live)' keywords: ['ttl', 'time to live', 'clickhouse', 'old', 'data'] description: 'TTL (time-to-live) refers to the capability of having rows or columns moved, deleted, or rolled up after a certain interval of time has passed.' @@ -45,7 +45,7 @@ ORDER BY tuple() - When the interval lapses, the column expires. ClickHouse replaces the column value with the default value of its data type. If all the column values in the data part expire, ClickHouse deletes this column from the data part in the filesystem. -TTL rules can be altered or deleted. See the [Manipulations with Table TTL](/reference/statements/alter/ttl) page for more details. +TTL rules can be altered or deleted. See the [Manipulations with Table TTL](/core/reference/statements/alter/ttl) page for more details. diff --git a/concepts/operations/insert/asyncinserts.mdx b/core/concepts/features/operations/insert/asyncinserts.mdx similarity index 100% rename from concepts/operations/insert/asyncinserts.mdx rename to core/concepts/features/operations/insert/asyncinserts.mdx diff --git a/concepts/operations/insert/bulkinserts.mdx b/core/concepts/features/operations/insert/bulkinserts.mdx similarity index 100% rename from concepts/operations/insert/bulkinserts.mdx rename to core/concepts/features/operations/insert/bulkinserts.mdx diff --git a/concepts/operations/insert/deduplicating-inserts-on-retries.mdx b/core/concepts/features/operations/insert/deduplicating-inserts-on-retries.mdx similarity index 94% rename from concepts/operations/insert/deduplicating-inserts-on-retries.mdx rename to core/concepts/features/operations/insert/deduplicating-inserts-on-retries.mdx index 67a387eb..ead59eef 100644 --- a/concepts/operations/insert/deduplicating-inserts-on-retries.mdx +++ b/core/concepts/features/operations/insert/deduplicating-inserts-on-retries.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/deduplicating-inserts-on-retries +slug: /core/guides/developer/deduplicating-inserts-on-retries title: 'Deduplicating inserts on retries' description: 'Preventing duplicate data when retrying insert operations' keywords: ['deduplication', 'deduplicate', 'insert retries', 'inserts'] @@ -26,7 +26,7 @@ If more than `*_deduplication_window` other insert operations occur during the r **Only `*MergeTree` engines support deduplication on insertion.** -For `*ReplicatedMergeTree` engines, insert deduplication is enabled by default and is controlled by the [`replicated_deduplication_window`](/reference/settings/merge-tree-settings#replicated_deduplication_window) and [`replicated_deduplication_window_seconds`](/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds) settings. For non-replicated `*MergeTree` engines, deduplication is controlled by the [`non_replicated_deduplication_window`](/reference/settings/merge-tree-settings#non_replicated_deduplication_window) setting. +For `*ReplicatedMergeTree` engines, insert deduplication is enabled by default and is controlled by the [`replicated_deduplication_window`](/core/reference/settings/merge-tree-settings#replicated_deduplication_window) and [`replicated_deduplication_window_seconds`](/core/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds) settings. For non-replicated `*MergeTree` engines, deduplication is controlled by the [`non_replicated_deduplication_window`](/core/reference/settings/merge-tree-settings#non_replicated_deduplication_window) setting. The settings above determine the parameters of the deduplication log for a table. The deduplication log stores a finite number of `block_id`s, which determine how deduplication works (see below). @@ -53,11 +53,11 @@ When a table has one or more materialized views, the inserted data is also inser You can control this process using the following settings for the source table: -- [`replicated_deduplication_window`](/reference/settings/merge-tree-settings#replicated_deduplication_window) -- [`replicated_deduplication_window_seconds`](/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds) -- [`non_replicated_deduplication_window`](/reference/settings/merge-tree-settings#non_replicated_deduplication_window) +- [`replicated_deduplication_window`](/core/reference/settings/merge-tree-settings#replicated_deduplication_window) +- [`replicated_deduplication_window_seconds`](/core/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds) +- [`non_replicated_deduplication_window`](/core/reference/settings/merge-tree-settings#non_replicated_deduplication_window) -You have to also enable the user profile setting [`deduplicate_blocks_in_dependent_materialized_views`](/reference/settings/session-settings#deduplicate_blocks_in_dependent_materialized_views). +You have to also enable the user profile setting [`deduplicate_blocks_in_dependent_materialized_views`](/core/reference/settings/session-settings#deduplicate_blocks_in_dependent_materialized_views). With enabled setting `insert_deduplicate=1` an inserted data is deduplicated in source table. The setting `deduplicate_blocks_in_dependent_materialized_views=1` additionally enables deduplication in dependant tables. You have to enable both if full deduplication is desired. When inserting blocks into tables under materialized views, ClickHouse calculates the `block_id` by hashing a string that combines the `block_id`s from the source table and additional identifiers. This ensures accurate deduplication within materialized views, allowing data to be distinguished based on its original insertion, regardless of any transformations applied before reaching the destination table under the materialized view. diff --git a/concepts/operations/insert/deduplication.mdx b/core/concepts/features/operations/insert/deduplication.mdx similarity index 98% rename from concepts/operations/insert/deduplication.mdx rename to core/concepts/features/operations/insert/deduplication.mdx index 9511db4d..b371cc72 100644 --- a/concepts/operations/insert/deduplication.mdx +++ b/core/concepts/features/operations/insert/deduplication.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/deduplication +slug: /core/guides/developer/deduplication sidebarTitle: 'Deduplication strategies' description: 'Use deduplication when you need to perform frequent upserts, updates and deletes.' title: 'Deduplication strategies' @@ -340,4 +340,4 @@ A `VersionedCollapsingMergeTree` table is quite handy when you want to implement One reason inserted rows may not be deduplicated is if you're using a non-idempotent function or expression in your `INSERT` statement. For example, if you're inserting rows with the column `createdAt DateTime64(3) DEFAULT now()`, your rows are guaranteed to be unique because each row will have a unique default value for the `createdAt` column. The MergeTree / ReplicatedMergeTree table engine won't know to deduplicate the rows as each inserted row will generate a unique checksum. -In this case, you can specify your own `insert_deduplication_token` for each batch of rows to ensure that multiple inserts of the same batch won't result in the same rows being re-inserted. Please see the [documentation on `insert_deduplication_token`](/reference/settings/session-settings#insert_deduplication_token) for more details about how to use this setting. +In this case, you can specify your own `insert_deduplication_token` for each batch of rows to ensure that multiple inserts of the same batch won't result in the same rows being re-inserted. Please see the [documentation on `insert_deduplication_token`](/core/reference/settings/session-settings#insert_deduplication_token) for more details about how to use this setting. diff --git a/get-started/oss/starter-guides/inserting-data.mdx b/core/concepts/features/operations/insert/inserting-data.mdx similarity index 88% rename from get-started/oss/starter-guides/inserting-data.mdx rename to core/concepts/features/operations/insert/inserting-data.mdx index 3fd11388..6f5fd4d4 100644 --- a/get-started/oss/starter-guides/inserting-data.mdx +++ b/core/concepts/features/operations/insert/inserting-data.mdx @@ -3,7 +3,7 @@ title: 'Inserting ClickHouse data' description: 'How to insert data into ClickHouse' keywords: ['INSERT', 'Batch Insert'] sidebarTitle: 'Inserting ClickHouse data' -slug: /guides/inserting-data +slug: /core/guides/inserting-data show_related_blogs: true doc_type: 'guide' --- @@ -52,7 +52,7 @@ As long as the retried insert query contains the same data in the same order, Cl We recommend inserting directly into a MergeTree (or Replicated table), balancing the requests across a set of nodes if the data is sharded, and setting `internal_replication=true`. This will leave ClickHouse to replicate the data to any available replica shards and ensure the data is eventually consistent. -If this client side load balancing is inconvenient then you can insert via a [distributed table](/reference/engines/table-engines/special/distributed) which will then distribute writes across the nodes. Again, it is advised to set `internal_replication=true`. +If this client side load balancing is inconvenient then you can insert via a [distributed table](/core/reference/engines/table-engines/special/distributed) which will then distribute writes across the nodes. Again, it is advised to set `internal_replication=true`. It should be noted however that this approach is a little less performant as writes have to be made locally on the node with the distributed table and then sent to the shards. ### Use asynchronous inserts for small batches {#use-asynchronous-inserts-for-small-batches} @@ -60,7 +60,7 @@ It should be noted however that this approach is a little less performant as wri There are scenarios where client-side batching isn't feasible e.g. an observability use case with 100s or 1000s of single-purpose agents sending logs, metrics, traces, etc. In this scenario real-time transport of that data is key to detect issues and anomalies as quickly as possible. Furthermore, there is a risk of event spikes in the observed systems, which could potentially cause large memory spikes and related issues when trying to buffer observability data client-side. -If large batches can't be inserted, you can delegate batching to ClickHouse using [asynchronous inserts](/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts). +If large batches can't be inserted, you can delegate batching to ClickHouse using [asynchronous inserts](/core/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts). With asynchronous inserts, data is inserted into a buffer first and then written to the database storage later in 3 steps, as illustrated by the diagram below: @@ -79,7 +79,7 @@ Generally, these mechanics shift the batching of data from the client side to th Note that the data isn't searchable by queries before being flushed to the database storage and that the buffer flush is configurable. -Full details on configuring asynchronous inserts can be found [here](/concepts/operations/insert/asyncinserts#enabling-asynchronous-inserts), with a deep dive [here](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse). +Full details on configuring asynchronous inserts can be found [here](/core/concepts/features/operations/insert/asyncinserts#enabling-asynchronous-inserts), with a deep dive [here](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse). ### Use official ClickHouse clients {#use-official-clickhouse-clients} @@ -87,21 +87,21 @@ Full details on configuring asynchronous inserts can be found [here](/concepts/o ClickHouse has clients in the most popular programming languages. These are optimized to ensure that inserts are performed correctly and natively support asynchronous inserts either directly as in e.g. the [Go client](/integrations/language-clients/go/clickhouse-api#async-insert), or indirectly when enabled in the query, user or connection level settings. -See [Clients and Drivers](/integrations/connectors/data-integrations/drivers-and-interfaces/cli) for a full list of available ClickHouse clients and drivers. +See [Clients and Drivers](/core/concepts/features/interfaces/cli) for a full list of available ClickHouse clients and drivers. ### Prefer the native format {#prefer-the-native-format} -ClickHouse supports many [input formats](/reference/formats) at insert (and query) time. -This is a significant difference with OLTP databases and makes loading data from external sources much easier - especially when coupled with [table functions](/reference/functions/table-functions) and the ability to load data from files on disk. +ClickHouse supports many [input formats](/core/reference/formats) at insert (and query) time. +This is a significant difference with OLTP databases and makes loading data from external sources much easier - especially when coupled with [table functions](/core/reference/functions/table-functions) and the ability to load data from files on disk. These formats are ideal for ad hoc data loading and data engineering tasks. -For applications looking to achieve optimal insert performance, you should insert using the [Native](/reference/formats/Native) format. +For applications looking to achieve optimal insert performance, you should insert using the [Native](/core/reference/formats/Native) format. This is supported by most clients (such as Go and Python) and ensures the server has to do a minimal amount of work since this format is already column-oriented. By doing so the responsibility for converting data into a column-oriented format is placed on the client side. This is important for scaling inserts efficiently. -Alternatively, you can use [RowBinary format](/reference/formats/RowBinary/RowBinary) (as used by the Java client) if a row format is preferred - this is typically easier to write than the Native format. -This is more efficient, in terms of compression, network overhead, and processing on the server, than alternative row formats such as [JSON](/reference/formats/JSON/JSON). -The [JSONEachRow](/reference/formats/JSON/JSONEachRow) format can be considered if you have lower write throughput looking to integrate quickly. You should be aware this format will incur a CPU overhead in ClickHouse for parsing. +Alternatively, you can use [RowBinary format](/core/reference/formats/RowBinary/RowBinary) (as used by the Java client) if a row format is preferred - this is typically easier to write than the Native format. +This is more efficient, in terms of compression, network overhead, and processing on the server, than alternative row formats such as [JSON](/core/reference/formats/JSON/JSON). +The [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) format can be considered if you have lower write throughput looking to integrate quickly. You should be aware this format will incur a CPU overhead in ClickHouse for parsing. ### Use the HTTP interface {#use-the-http-interface} @@ -112,11 +112,11 @@ We expect small differences in insert performance with the native protocol, whic Existing clients use either of these protocols (in some cases both e.g. the Go client). The native protocol does allow query progress to be easily tracked. -See [HTTP Interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http) for further details. +See [HTTP Interface](/core/concepts/features/interfaces/http) for further details. ## Basic example {#basic-example} -You can use the familiar `INSERT INTO TABLE` command with ClickHouse. Let's insert some data into the table that we created in the start guide ["Creating Tables in ClickHouse"](/get-started/oss/starter-guides/creating-tables). +You can use the familiar `INSERT INTO TABLE` command with ClickHouse. Let's insert some data into the table that we created in the start guide ["Creating Tables in ClickHouse"](/core/get-started/quickstarts/creating-tables). ```sql INSERT INTO helloworld.my_first_table (user_id, message, timestamp, metric) VALUES @@ -161,13 +161,13 @@ If you need help inserting large datasets or encounter any errors when importing ## Inserting data from the command line {#inserting-data-from-command-line} **Prerequisites** -- You have [installed](/get-started/setup/self-managed/install) ClickHouse +- You have [installed](/core/get-started/setup/install) ClickHouse - `clickhouse-server` is running - You have access to a terminal with `wget`, `zcat` and `curl` -In this example you'll see how to insert a CSV file into ClickHouse from the command line using clickhouse-client in batch mode. For more information and examples of inserting data via command line using clickhouse-client in batch mode, see ["Batch mode"](/integrations/connectors/data-integrations/drivers-and-interfaces/client#batch-mode). +In this example you'll see how to insert a CSV file into ClickHouse from the command line using clickhouse-client in batch mode. For more information and examples of inserting data via command line using clickhouse-client in batch mode, see ["Batch mode"](/core/concepts/features/interfaces/client#batch-mode). -We'll be using the [Hacker News dataset](/get-started/sample-datasets/hacker-news) for this example, which contains 28 million rows of Hacker News data. +We'll be using the [Hacker News dataset](/core/get-started/sample-datasets/hacker-news) for this example, which contains 28 million rows of Hacker News data. diff --git a/concepts/operations/insert/transactions.mdx b/core/concepts/features/operations/insert/transactions.mdx similarity index 97% rename from concepts/operations/insert/transactions.mdx rename to core/concepts/features/operations/insert/transactions.mdx index 5b9f508e..93ebe0a9 100644 --- a/concepts/operations/insert/transactions.mdx +++ b/core/concepts/features/operations/insert/transactions.mdx @@ -1,6 +1,6 @@ --- description: 'Page describing transactional (ACID) support in ClickHouse' -slug: /guides/developer/transactional +slug: /core/guides/developer/transactional title: 'Transactional (ACID) support' doc_type: 'guide' --- @@ -87,7 +87,7 @@ These examples are with a single node ClickHouse server with ClickHouse Keeper e #### Basic configuration for a single ClickHouse server node with ClickHouse Keeper enabled {#basic-configuration-for-a-single-clickhouse-server-node-with-clickhouse-keeper-enabled} -See the [deployment](/guides/oss/deployment-and-scaling/terminology) documentation for details on deploying ClickHouse server and a proper quorum of ClickHouse Keeper nodes. The configuration shown here is for experimental purposes. +See the [deployment](/core/guides/oss/deployment-and-scaling/terminology) documentation for details on deploying ClickHouse server and a proper quorum of ClickHouse Keeper nodes. The configuration shown here is for experimental purposes. ```xml title=/etc/clickhouse-server/config.d/config.xml diff --git a/concepts/operations/select/joining-tables.mdx b/core/concepts/features/operations/select/joining-tables.mdx similarity index 92% rename from concepts/operations/select/joining-tables.mdx rename to core/concepts/features/operations/select/joining-tables.mdx index 63177ba5..9356d629 100644 --- a/concepts/operations/select/joining-tables.mdx +++ b/core/concepts/features/operations/select/joining-tables.mdx @@ -2,7 +2,7 @@ title: 'Using JOINs in ClickHouse' description: 'How to join tables in ClickHouse' keywords: ['joins', 'join tables'] -slug: /guides/joining-tables +slug: /core/guides/joining-tables doc_type: 'guide' --- @@ -10,9 +10,9 @@ import { Image } from "/snippets/components/Image.jsx"; ClickHouse has [full `JOIN` support](https://clickhouse.com/blog/clickhouse-fully-supports-joins-part1), with a wide selection of join algorithms. To maximize performance, we recommend following the join optimization suggestions listed in this guide. -- For optimal performance, you should aim to reduce the number of `JOIN`s in queries, especially for real-time analytical workloads where millisecond performance is required. Aim for a maximum of 3 to 4 joins in a query. We detail a number of changes to minimize joins in the [data modeling section](/guides/cloud-oss/data-modelling/schema-design), including denormalization, dictionaries, and materialized views. +- For optimal performance, you should aim to reduce the number of `JOIN`s in queries, especially for real-time analytical workloads where millisecond performance is required. Aim for a maximum of 3 to 4 joins in a query. We detail a number of changes to minimize joins in the [data modeling section](/core/guides/clickhouse/data-modelling/schema-design), including denormalization, dictionaries, and materialized views. - As of ClickHouse 24.12, the query planner automatically reorders two-table joins to place the smaller table on the right-hand side for optimal performance. In version 25.9, this was extended to optimize join order across queries joining three or more tables. -- If your query requires a direct join i.e. a `LEFT ANY JOIN` - as shown below, we recommend using [Dictionaries](/concepts/features/dictionaries) where possible. +- If your query requires a direct join i.e. a `LEFT ANY JOIN` - as shown below, we recommend using [Dictionaries](/core/concepts/features/dictionaries) where possible. Left any join @@ -155,7 +155,7 @@ If your key optimization metric is performance and you're looking to execute the - **(1)** If the data from the right-hand side table can be pre-loaded into an in-memory low-latency key-value data structure, e.g. a dictionary, and if the join key matches the key attribute of the underlying key-value storage, and if `LEFT ANY JOIN` semantics are adequate - then the **direct join** is applicable and offers the fastest approach. -- **(2)** If your table's [physical row order](/guides/cloud-oss/data-modelling/sparse-primary-indexes#data-is-stored-on-disk-ordered-by-primary-key-columns) matches the join key sort order, then it depends. In this case, the **full sorting merge join** [skips](https://clickhouse.com/blog/clickhouse-fully-supports-joins-full-sort-partial-merge-part3#utilizing-physical-row-order) the sorting phase resulting in significantly reduced memory usage plus, depending on data size and join key value distribution, faster execution times than some of the hash join algorithms. +- **(2)** If your table's [physical row order](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#data-is-stored-on-disk-ordered-by-primary-key-columns) matches the join key sort order, then it depends. In this case, the **full sorting merge join** [skips](https://clickhouse.com/blog/clickhouse-fully-supports-joins-full-sort-partial-merge-part3#utilizing-physical-row-order) the sorting phase resulting in significantly reduced memory usage plus, depending on data size and join key value distribution, faster execution times than some of the hash join algorithms. - **(3)** If the right table fits into memory, even with the [additional memory usage overhead](https://clickhouse.com/blog/clickhouse-fully-supports-joins-hash-joins-part2#summary) of the **parallel hash join**, then this algorithm or the hash join can be faster. This depends on data size, data types, and value distribution of the join key columns. diff --git a/concepts/operations/update/index.mdx b/core/concepts/features/operations/update/index.mdx similarity index 57% rename from concepts/operations/update/index.mdx rename to core/concepts/features/operations/update/index.mdx index 9d6f0e07..7a0819a0 100644 --- a/concepts/operations/update/index.mdx +++ b/core/concepts/features/operations/update/index.mdx @@ -10,5 +10,5 @@ In this section of the documentation, you will learn how you can update your dat | Page | Description | |-----------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Working with updates](/concepts/operations/update/overview) | Provides an overview of the differences in updating data between ClickHouse and OLTP databases, as well as the various methods available to do so in ClickHouse. | | -| [Working with ReplacingMergeTree](/concepts/operations/update/replacing-merge-tree) | Learn how to update using the ReplacingMergeTree. | +| [Working with updates](/core/concepts/features/operations/update/overview) | Provides an overview of the differences in updating data between ClickHouse and OLTP databases, as well as the various methods available to do so in ClickHouse. | | +| [Working with ReplacingMergeTree](/core/concepts/features/operations/update/replacing-merge-tree) | Learn how to update using the ReplacingMergeTree. | diff --git a/concepts/operations/update/on-fly-mutations.mdx b/core/concepts/features/operations/update/on-fly-mutations.mdx similarity index 98% rename from concepts/operations/update/on-fly-mutations.mdx rename to core/concepts/features/operations/update/on-fly-mutations.mdx index 05b2cc44..8086a6ad 100644 --- a/concepts/operations/update/on-fly-mutations.mdx +++ b/core/concepts/features/operations/update/on-fly-mutations.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/on-the-fly-mutations +slug: /core/guides/developer/on-the-fly-mutations sidebarTitle: 'On-the-fly mutation' title: 'On-the-fly Mutations' keywords: ['On-the-fly mutation'] diff --git a/concepts/operations/update/overview.mdx b/core/concepts/features/operations/update/overview.mdx similarity index 80% rename from concepts/operations/update/overview.mdx rename to core/concepts/features/operations/update/overview.mdx index 52e457b5..ad5cdeed 100644 --- a/concepts/operations/update/overview.mdx +++ b/core/concepts/features/operations/update/overview.mdx @@ -8,7 +8,7 @@ sidebarTitle: 'Working with updates' --- When it comes to handling updates, analytical and transactional databases take different approaches to how they handle updates due to their underlying design philosophies and target use cases. -ClickHouse is a [column-oriented database](/get-started/about/intro#row-oriented-vs-column-oriented-storage) which is optimized for read-heavy analytics and high throughput append-only operations. +ClickHouse is a [column-oriented database](/core/get-started/about/intro#row-oriented-vs-column-oriented-storage) which is optimized for read-heavy analytics and high throughput append-only operations. In practice, tables are often restructured to convert deletes and updates into append operations that are processed asynchronously and/or at read time, capitalizing on ClickHouse's strengths for high-throughput data ingestion. ClickHouse also supports robust update and delete operations. @@ -19,7 +19,7 @@ This guide provides an overview of the available update methods in ClickHouse, a There are two fundamental approaches to updating data in ClickHouse: 1. Using **specialized table engines** that handle updates through inserts -2. Using **declarative updates** like [`UPDATE ... SET`](/reference/statements/update) or [`ALTER TABLE ... UPDATE`](/reference/statements/alter/update) statements +2. Using **declarative updates** like [`UPDATE ... SET`](/core/reference/statements/update) or [`ALTER TABLE ... UPDATE`](/core/reference/statements/alter/update) statements Within each of the two categories above, there are several ways to update data. Each has its advantages and performance characteristics and you should select the appropriate method based on your data model and the amount of data you intend to update. @@ -32,12 +32,12 @@ The engines you will commonly encounter are: | Engine | Syntax | When to use | |---------------------------------------------------------------------------------------|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [ReplacingMergeTree](/reference/engines/table-engines/mergetree-family/replacingmergetree) | `ENGINE = ReplacingMergeTree` | Use when updating large amounts of data. This table engine is optimized for data deduplication on merges. | -| [CoalescingMergeTree](/reference/engines/table-engines/mergetree-family/coalescingmergetree) | `ENGINE = CoalescingMergeTree` | Use when data arrives in fragments and you need column-level coalescing rather than full row replacement. | -| [CollapsingMergeTree](/reference/engines/table-engines/mergetree-family/collapsingmergetree) | `ENGINE = CollapsingMergeTree(Sign)` | Use when updating individual rows frequently, or for scenarios where you need to maintain the latest state of objects that change over time. For example, tracking user activity or article stats. | +| [ReplacingMergeTree](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) | `ENGINE = ReplacingMergeTree` | Use when updating large amounts of data. This table engine is optimized for data deduplication on merges. | +| [CoalescingMergeTree](/core/reference/engines/table-engines/mergetree-family/coalescingmergetree) | `ENGINE = CoalescingMergeTree` | Use when data arrives in fragments and you need column-level coalescing rather than full row replacement. | +| [CollapsingMergeTree](/core/reference/engines/table-engines/mergetree-family/collapsingmergetree) | `ENGINE = CollapsingMergeTree(Sign)` | Use when updating individual rows frequently, or for scenarios where you need to maintain the latest state of objects that change over time. For example, tracking user activity or article stats. | -As MergeTree-family table engines merge data parts in the background, they offer _eventual consistency_, and the [`FINAL`](/reference/statements/select/from#final-modifier) keyword needs to be used to ensure proper deduplication in the interim when querying the table. -There are other [engine types](/reference/engines/table-engines/mergetree-family) too, but these are the most commonly used ones. +As MergeTree-family table engines merge data parts in the background, they offer _eventual consistency_, and the [`FINAL`](/core/reference/statements/select/from#final-modifier) keyword needs to be used to ensure proper deduplication in the interim when querying the table. +There are other [engine types](/core/reference/engines/table-engines/mergetree-family) too, but these are the most commonly used ones. ### When to use declarative updates {#when-to-use-declaritive-updates} @@ -45,8 +45,8 @@ Declarative UPDATE statements can be more straightforward for simple update oper | Method | Syntax | When to use | |--------------------------------------------------------------|--------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Lightweight updates](/reference/statements/update) | `UPDATE [table] SET ... WHERE` | Use this in most scenarios, particularly when running frequent, small UPDATEs (up to ~10% of table) as part of your application or workflows. For example, a user wants to delete their event history, and events are spread across a multi-tenant table with many users. This approach creates patch parts for immediate visibility without rewriting entire columns. It adds overhead to `SELECT` queries but has predictable latency. | -| [Update mutation](/reference/statements/alter/update) | `ALTER TABLE [table] UPDATE` | Use this when performing larger scale data management, particularly when an update aligns with your table partitioning. For example, you need to update a column of all rows within a month, in a table partitioned by month. | +| [Lightweight updates](/core/reference/statements/update) | `UPDATE [table] SET ... WHERE` | Use this in most scenarios, particularly when running frequent, small UPDATEs (up to ~10% of table) as part of your application or workflows. For example, a user wants to delete their event history, and events are spread across a multi-tenant table with many users. This approach creates patch parts for immediate visibility without rewriting entire columns. It adds overhead to `SELECT` queries but has predictable latency. | +| [Update mutation](/core/reference/statements/alter/update) | `ALTER TABLE [table] UPDATE` | Use this when performing larger scale data management, particularly when an update aligns with your table partitioning. For example, you need to update a column of all rows within a month, in a table partitioned by month. | ## Updates using specialized table engines {#insert-based-updates} @@ -73,7 +73,7 @@ To update a row, simply insert a new version with the same sorting key values an `ReplacingMergeTree` can't update sorting key values. It also supports a `Deleted` column for logical deletes. -Read more: [ReplacingMergeTree guide](/concepts/operations/update/replacing-merge-tree) | [ReplacingMergeTree reference](/reference/engines/table-engines/mergetree-family/replacingmergetree) +Read more: [ReplacingMergeTree guide](/core/concepts/features/operations/update/replacing-merge-tree) | [ReplacingMergeTree reference](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) ### CoalescingMergeTree {#coalescingmergetree} @@ -101,7 +101,7 @@ When rows with the same sorting key are merged, CoalescingMergeTree keeps the la This engine is available from ClickHouse 25.6. -Read more: [CoalescingMergeTree](/reference/engines/table-engines/mergetree-family/coalescingmergetree) +Read more: [CoalescingMergeTree](/core/reference/engines/table-engines/mergetree-family/coalescingmergetree) ### CollapsingMergeTree {#collapsingmergetree} @@ -145,11 +145,11 @@ Unlike `ReplacingMergeTree`, `CollapsingMergeTree` allows you to modify sorting The approach above for updating requires your application to maintain state client-side in order to insert the cancellation row. While this is most efficient from ClickHouse's perspective, it can be complex to work with at scale. Queries also need aggregation with sign multiplication to produce correct results. -Read more: [CollapsingMergeTree](/reference/engines/table-engines/mergetree-family/collapsingmergetree) +Read more: [CollapsingMergeTree](/core/reference/engines/table-engines/mergetree-family/collapsingmergetree) ## Declarative updates {#sql-style-updates} -These methods work with tables using [MergeTree family](/reference/engines/table-engines/mergetree-family) engines. +These methods work with tables using [MergeTree family](/core/reference/engines/table-engines/mergetree-family) engines. | Method | Syntax | Best for | Trade-offs | |--------|--------|----------|------------| @@ -167,13 +167,13 @@ ALTER TABLE posts UPDATE AnswerCount = AnswerCount + 1 WHERE AnswerCount = 0 Mutations are I/O-heavy, rewriting all parts that match the `WHERE` expression. There is no atomicity to this process. Parts get substituted for mutated parts as soon as they are ready, and a `SELECT` query that starts executing during a mutation will see data from parts that have already been mutated along with data from parts that have not been mutated yet. -You can track the state of progress via the [`system.mutations`](/reference/system-tables/mutations) table. +You can track the state of progress via the [`system.mutations`](/core/reference/system-tables/mutations) table. Mutations are I/O intensive and should be used sparingly as they can impact cluster `SELECT` performance. If mutations queue faster than they process, query performance will degrade. Monitor the queue via `system.mutations`. -Read more: [ALTER TABLE UPDATE](/reference/statements/alter/update) +Read more: [ALTER TABLE UPDATE](/core/reference/statements/alter/update) #### On-the-fly mutations {#on-the-fly-mutations} @@ -278,7 +278,7 @@ This approach uses the standard `UPDATE` syntax and creates patch parts immediat The trade-off is that `SELECT` queries incur overhead when applying patches, and patch parts count toward part limits. Beyond the ~10% threshold, patch-on-read overhead grows proportionally, making synchronous mutations more efficient for larger updates. -Read more: [Lightweight UPDATE](/reference/statements/update) +Read more: [Lightweight UPDATE](/core/reference/statements/update) ### On-the-fly mutations {#on-the-fly-mutations} @@ -320,12 +320,12 @@ The following table summarizes query performance overhead based on [benchmarks]( | Method | Query slowdown | Memory overhead | Notes | |--------|----------------|-----------------|-------| -| [Mutations](/reference/statements/alter/update) | Baseline | Baseline | Full speed after completion; data physically rewritten | +| [Mutations](/core/reference/statements/alter/update) | Baseline | Baseline | Full speed after completion; data physically rewritten | | [On-the-fly mutations](#on-the-fly-mutations) | Variable | Variable | Instant visibility; performance degrades if many updates accumulate | -| [Lightweight updates](/reference/statements/update#lightweight-update-requirements) | 7–18% (avg ~12%) | +20–210% | Most efficient for queries; best for updating ≤10% of table | -| [ReplacingMergeTree](/concepts/operations/update/replacing-merge-tree) + `FINAL` | 21–550% (avg ~280%) | 20–200× baseline | Must read all row versions; heaviest query overhead | -| [CoalescingMergeTree](/reference/engines/table-engines/mergetree-family/coalescingmergetree) + `FINAL` | Similar to ReplacingMergeTree | Similar to ReplacingMergeTree | Column-level coalescing adds comparable overhead | -| [CollapsingMergeTree](/reference/engines/table-engines/mergetree-family/collapsingmergetree) | Aggregation dependent | Aggregation dependent | Overhead depends on query complexity | +| [Lightweight updates](/core/reference/statements/update#lightweight-update-requirements) | 7–18% (avg ~12%) | +20–210% | Most efficient for queries; best for updating ≤10% of table | +| [ReplacingMergeTree](/core/concepts/features/operations/update/replacing-merge-tree) + `FINAL` | 21–550% (avg ~280%) | 20–200× baseline | Must read all row versions; heaviest query overhead | +| [CoalescingMergeTree](/core/reference/engines/table-engines/mergetree-family/coalescingmergetree) + `FINAL` | Similar to ReplacingMergeTree | Similar to ReplacingMergeTree | Column-level coalescing adds comparable overhead | +| [CollapsingMergeTree](/core/reference/engines/table-engines/mergetree-family/collapsingmergetree) | Aggregation dependent | Aggregation dependent | Overhead depends on query complexity | ## More resources {#more-resources} diff --git a/concepts/operations/update/replacing-merge-tree.mdx b/core/concepts/features/operations/update/replacing-merge-tree.mdx similarity index 92% rename from concepts/operations/update/replacing-merge-tree.mdx rename to core/concepts/features/operations/update/replacing-merge-tree.mdx index a68c0e68..4b072917 100644 --- a/concepts/operations/update/replacing-merge-tree.mdx +++ b/core/concepts/features/operations/update/replacing-merge-tree.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/replacing-merge-tree +slug: /core/guides/replacing-merge-tree title: 'Working with the ReplacingMergeTree engine' description: 'Guide on how to use the ReplacingMergeTree engine in ClickHouse' keywords: ['replacingmergetree', 'inserts', 'deduplication'] @@ -14,7 +14,7 @@ In order to process a stream of update and delete rows while avoiding the above ## Automatic upserts of inserted rows {#automatic-upserts-of-inserted-rows} -The [ReplacingMergeTree table engine](/reference/engines/table-engines/mergetree-family/replacingmergetree) allows update operations to be applied to rows, without needing to use inefficient `ALTER` or `DELETE` statements, by offering the ability for you to insert multiple copies of the same row and denote one as the latest version. A background process, in turn, asynchronously removes older versions of the same row, efficiently imitating an update operation through the use of immutable inserts. +The [ReplacingMergeTree table engine](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) allows update operations to be applied to rows, without needing to use inefficient `ALTER` or `DELETE` statements, by offering the ability for you to insert multiple copies of the same row and denote one as the latest version. A background process, in turn, asynchronously removes older versions of the same row, efficiently imitating an update operation through the use of immutable inserts. This relies on the ability of the table engine to identify duplicate rows. This is achieved using the `ORDER BY` clause to determine uniqueness, i.e., if two rows have the same values for the columns specified in the `ORDER BY`, they're considered duplicates. A `version` column, specified when defining the table, allows the latest version of a row to be retained when two rows are identified as duplicates i.e. the row with the highest version value is kept. We illustrate this process in the example below. Here, the rows are uniquely identified by the A column (the `ORDER BY` for the table). We assume these rows have been inserted as two batches, resulting in the formation of two data parts on disk. Later, during an asynchronous background process, these parts are merged together. @@ -55,8 +55,8 @@ We recommend pausing inserts once (1) is guaranteed and until this command and t Above, we highlighted an important additional constraint that must also be satisfied in the case of the ReplacingMergeTree: the values of columns of the `ORDER BY` uniquely identify a row across changes. If migrating from a transactional database like Postgres, the original Postgres primary key should thus be included in the Clickhouse `ORDER BY` clause. -Users of ClickHouse will be familiar with choosing the columns in their tables `ORDER BY` clause to [optimize for query performance](/guides/cloud-oss/data-modelling/schema-design#choosing-an-ordering-key). Generally, these columns should be selected based on your [frequent queries and listed in order of increasing cardinality](/guides/cloud-oss/data-modelling/sparse-primary-indexes#an-index-design-for-massive-data-scales). Importantly, the ReplacingMergeTree imposes an additional constraint - these columns must be immutable, i.e., if replicating from Postgres, only add columns to this clause if they don't change in the underlying Postgres data. While other columns can change, these are required to be consistent for unique row identification. -For analytical workloads, the Postgres primary key is generally of little use as you will rarely perform point row lookups. Given we recommend that columns be ordered in order of increasing cardinality, as well as the fact that matches on [columns listed earlier in the ORDER BY will usually be faster](/guides/cloud-oss/data-modelling/sparse-primary-indexes#ordering-key-columns-efficiently), the Postgres primary key should be appended to the end of the `ORDER BY` (unless it has analytical value). In the case that multiple columns form a primary key in Postgres, they should be appended to the `ORDER BY`, respecting cardinality and the likelihood of query value. You may also wish to generate a unique primary key using a concatenation of values via a `MATERIALIZED` column. +Users of ClickHouse will be familiar with choosing the columns in their tables `ORDER BY` clause to [optimize for query performance](/core/guides/clickhouse/data-modelling/schema-design#choosing-an-ordering-key). Generally, these columns should be selected based on your [frequent queries and listed in order of increasing cardinality](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#an-index-design-for-massive-data-scales). Importantly, the ReplacingMergeTree imposes an additional constraint - these columns must be immutable, i.e., if replicating from Postgres, only add columns to this clause if they don't change in the underlying Postgres data. While other columns can change, these are required to be consistent for unique row identification. +For analytical workloads, the Postgres primary key is generally of little use as you will rarely perform point row lookups. Given we recommend that columns be ordered in order of increasing cardinality, as well as the fact that matches on [columns listed earlier in the ORDER BY will usually be faster](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#ordering-key-columns-efficiently), the Postgres primary key should be appended to the end of the `ORDER BY` (unless it has analytical value). In the case that multiple columns form a primary key in Postgres, they should be appended to the `ORDER BY`, respecting cardinality and the likelihood of query value. You may also wish to generate a unique primary key using a concatenation of values via a `MATERIALIZED` column. Consider the posts table from the Stack Overflow dataset. diff --git a/concepts/features/performance/allocation-profiling-old.mdx b/core/concepts/features/performance/allocation-profiling-old.mdx similarity index 97% rename from concepts/features/performance/allocation-profiling-old.mdx rename to core/concepts/features/performance/allocation-profiling-old.mdx index 003e36d3..7b84d9b9 100644 --- a/concepts/features/performance/allocation-profiling-old.mdx +++ b/core/concepts/features/performance/allocation-profiling-old.mdx @@ -197,19 +197,19 @@ WHERE metric LIKE '%jemalloc%' FORMAT Vertical ``` -[Reference](/reference/system-tables/asynchronous_metrics) +[Reference](/core/reference/system-tables/asynchronous_metrics) ### System table `jemalloc_bins` {#system-table-jemalloc_bins} Contains information about memory allocations done via the jemalloc allocator in different size classes (bins) aggregated from all arenas. -[Reference](/reference/system-tables/jemalloc_bins) +[Reference](/core/reference/system-tables/jemalloc_bins) ### Prometheus {#prometheus} All `jemalloc` related metrics from `asynchronous_metrics` are also exposed using the Prometheus endpoint in both ClickHouse and Keeper. -[Reference](/reference/settings/server-settings/settings#prometheus) +[Reference](/core/reference/settings/server-settings/settings#prometheus) ### `jmst` 4LW command in Keeper {#jmst-4lw-command-in-keeper} diff --git a/concepts/features/performance/allocation-profiling.mdx b/core/concepts/features/performance/allocation-profiling.mdx similarity index 98% rename from concepts/features/performance/allocation-profiling.mdx rename to core/concepts/features/performance/allocation-profiling.mdx index 7fc48383..e097b3ad 100644 --- a/concepts/features/performance/allocation-profiling.mdx +++ b/core/concepts/features/performance/allocation-profiling.mdx @@ -18,7 +18,7 @@ ClickHouse and Keeper allow you to control sampling using configs, query setting This guide is applicable for versions 25.9+. -For older versions, please check [allocation profiling for versions before 25.9](/concepts/features/performance/allocation-profiling-old). +For older versions, please check [allocation profiling for versions before 25.9](/core/concepts/features/performance/allocation-profiling-old). ## Sampling allocations {#sampling-allocations} @@ -477,13 +477,13 @@ WHERE metric LIKE '%jemalloc%' FORMAT Vertical ``` -[Reference](/reference/system-tables/asynchronous_metrics) +[Reference](/core/reference/system-tables/asynchronous_metrics) ### System table `jemalloc_bins` {#system-table-jemalloc_bins} Contains information about memory allocations done via the jemalloc allocator in different size classes (bins) aggregated from all arenas. -[Reference](/reference/system-tables/jemalloc_bins) +[Reference](/core/reference/system-tables/jemalloc_bins) ### System table `jemalloc_stats` (26.2+) {#system-table-jemalloc_stats} @@ -497,7 +497,7 @@ SELECT * FROM system.jemalloc_stats All `jemalloc` related metrics from `asynchronous_metrics` are also exposed using the Prometheus endpoint in both ClickHouse and Keeper. -[Reference](/reference/settings/server-settings/settings#prometheus) +[Reference](/core/reference/settings/server-settings/settings#prometheus) ### `jmst` 4LW command in Keeper {#jmst-4lw-command-in-keeper} diff --git a/core/concepts/features/performance/caches/caches.mdx b/core/concepts/features/performance/caches/caches.mdx new file mode 100644 index 00000000..07729446 --- /dev/null +++ b/core/concepts/features/performance/caches/caches.mdx @@ -0,0 +1,36 @@ +--- +description: 'When performing queries, ClickHouse uses different caches.' +sidebarTitle: 'Caches' +slug: /operations/caches +title: 'Cache types' +keywords: ['cache'] +doc_type: 'reference' +--- + +When performing queries, ClickHouse uses different caches to speed up queries +and reduce the need to read from or write to disk. + +The main cache types are: + +- `mark_cache` — Cache of [marks](/resources/develop-contribute/introduction/architecture#merge-tree) used by table engines of the [`MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) family. +- `uncompressed_cache` — Cache of uncompressed data used by table engines of the [`MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) family. +- Operating system page cache (used indirectly, for files with actual data). + +There are also a host of additional cache types: + +- DNS cache. +- [Regexp](/core/reference/formats/Regexp) cache. +- Compiled expressions cache. +- [Vector similarity index](/core/reference/engines/table-engines/mergetree-family/annindexes) cache. +- [Text index](/core/reference/engines/table-engines/mergetree-family/textindexes#caching) cache. +- [Avro format](/core/reference/formats/Avro/Avro) schemas cache. +- [Dictionaries](/core/reference/statements/create/dictionary) data cache. +- Schema inference cache. +- [Filesystem cache](/core/concepts/features/configuration/server-config/storing-data) over S3, Azure, Local and other disks. +- [Userspace page cache](/core/concepts/features/performance/caches/userspace-page-cache) +- [Query cache](/core/concepts/features/performance/caches/query-cache). +- [Query condition cache](/core/concepts/features/performance/caches/query-condition-cache). +- Format schema cache. + +Should you wish to clear one of the caches, for performance tuning, troubleshooting, or data consistency reasons, +you can use the [`SYSTEM CLEAR ... CACHE`](/core/reference/statements/system) statement. diff --git a/concepts/features/performance/caches/query-cache.mdx b/core/concepts/features/performance/caches/query-cache.mdx similarity index 66% rename from concepts/features/performance/caches/query-cache.mdx rename to core/concepts/features/performance/caches/query-cache.mdx index 6a8c0c8d..aefa35fa 100644 --- a/concepts/features/performance/caches/query-cache.mdx +++ b/core/concepts/features/performance/caches/query-cache.mdx @@ -33,15 +33,15 @@ effort and avoids redundancy. ## Configuration settings and usage {#configuration-settings-and-usage} -In ClickHouse Cloud, you must use [query level settings](/concepts/features/configuration/settings/settings-query-level) to edit query cache settings. Editing [config level settings](/concepts/features/configuration/server-config/configuration-files) is currently not supported. +In ClickHouse Cloud, you must use [query level settings](/core/concepts/features/configuration/settings/settings-query-level) to edit query cache settings. Editing [config level settings](/core/concepts/features/configuration/server-config/configuration-files) is currently not supported. -[clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local) runs a single query at a time. Since query result caching does not make sense, the query +[clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local) runs a single query at a time. Since query result caching does not make sense, the query result cache is disabled in clickhouse-local. -Setting [use_query_cache](/reference/settings/session-settings#use_query_cache) can be used to control whether a specific query or all queries of the +Setting [use_query_cache](/core/reference/settings/session-settings#use_query_cache) can be used to control whether a specific query or all queries of the current session should utilize the query cache. For example, the first execution of query ```sql @@ -59,8 +59,8 @@ the results of `SELECT`s to views created by `CREATE VIEW AS SELECT [...] SETTIN statement runs with `SETTINGS use_query_cache = true`. -The way the cache is utilized can be configured in more detail using settings [enable_writes_to_query_cache](/reference/settings/session-settings#enable_writes_to_query_cache) -and [enable_reads_from_query_cache](/reference/settings/session-settings#enable_reads_from_query_cache) (both `true` by default). The former setting +The way the cache is utilized can be configured in more detail using settings [enable_writes_to_query_cache](/core/reference/settings/session-settings#enable_writes_to_query_cache) +and [enable_reads_from_query_cache](/core/reference/settings/session-settings#enable_reads_from_query_cache) (both `true` by default). The former setting controls whether query results are stored in the cache, whereas the latter setting determines if the database should try to retrieve query results from the cache. For example, the following query will use the cache only passively, i.e. attempt to read from it but not store its result in it: @@ -76,25 +76,25 @@ For maximum control, it is generally recommended to provide settings `use_query_ use_query_cache = true`) but one should keep in mind that all `SELECT` queries may return cached results then. The query cache can be cleared using statement `SYSTEM CLEAR QUERY CACHE`. The content of the query cache is displayed in system table -[system.query_cache](/reference/system-tables/query_cache). The number of query cache hits and misses since database start are shown as events -"QueryCacheHits" and "QueryCacheMisses" in system table [system.events](/reference/system-tables/events). Both counters are only updated for +[system.query_cache](/core/reference/system-tables/query_cache). The number of query cache hits and misses since database start are shown as events +"QueryCacheHits" and "QueryCacheMisses" in system table [system.events](/core/reference/system-tables/events). Both counters are only updated for `SELECT` queries which run with setting `use_query_cache = true`, other queries do not affect "QueryCacheMisses". Field `query_cache_usage` -in system table [system.query_log](/reference/system-tables/query_log) shows for each executed query whether the query result was written into or +in system table [system.query_log](/core/reference/system-tables/query_log) shows for each executed query whether the query result was written into or read from the query cache. Metrics `QueryCacheEntries` and `QueryCacheBytes` in system table -[system.metrics](/reference/system-tables/metrics) show how many entries / bytes the query cache currently contains. +[system.metrics](/core/reference/system-tables/metrics) show how many entries / bytes the query cache currently contains. The query cache exists once per ClickHouse server process. However, cache results are by default not shared between users. This can be changed (see below) but doing so is not recommended for security reasons. Query results are referenced in the query cache by the [Abstract Syntax Tree (AST)](https://en.wikipedia.org/wiki/Abstract_syntax_tree) of their query. This means that caching is agnostic to upper/lowercase, for example `SELECT 1` and `select 1` are treated as the same query. To -make the matching more natural, all query-level settings related to the query cache and [output formatting](/reference/settings/formats)) +make the matching more natural, all query-level settings related to the query cache and [output formatting](/core/reference/settings/formats)) are removed from the AST. If the query was aborted due to an exception or user cancellation, no entry is written into the query cache. The size of the query cache in bytes, the maximum number of cache entries and the maximum size of individual cache entries (in bytes and in -records) can be configured using different [server configuration options](/reference/settings/server-settings/settings#query_cache). +records) can be configured using different [server configuration options](/core/reference/settings/server-settings/settings#query_cache). ```xml @@ -105,11 +105,11 @@ records) can be configured using different [server configuration options](/refer ``` -It is also possible to limit the cache usage of individual users using [settings profiles](/concepts/features/configuration/settings/settings-profiles) and [settings -constraints](/concepts/features/configuration/settings/constraints-on-settings). More specifically, you can restrict the maximum amount of memory (in bytes) a user may +It is also possible to limit the cache usage of individual users using [settings profiles](/core/concepts/features/configuration/settings/settings-profiles) and [settings +constraints](/core/concepts/features/configuration/settings/constraints-on-settings). More specifically, you can restrict the maximum amount of memory (in bytes) a user may allocate in the query cache and the maximum number of stored query results. For that, first provide configurations -[query_cache_max_size_in_bytes](/reference/settings/session-settings#query_cache_max_size_in_bytes) and -[query_cache_max_entries](/reference/settings/session-settings#query_cache_max_entries) in a user profile in `users.xml`, then make both settings +[query_cache_max_size_in_bytes](/core/reference/settings/session-settings#query_cache_max_size_in_bytes) and +[query_cache_max_entries](/core/reference/settings/session-settings#query_cache_max_entries) in a user profile in `users.xml`, then make both settings readonly: ```xml @@ -133,7 +133,7 @@ readonly: ``` To define how long a query must run at least such that its result can be cached, you can use setting -[query_cache_min_query_duration](/reference/settings/session-settings#query_cache_min_query_duration). For example, the result of query +[query_cache_min_query_duration](/core/reference/settings/session-settings#query_cache_min_query_duration). For example, the result of query ```sql SELECT some_expensive_calculation(column_1, column_2) @@ -142,10 +142,10 @@ SETTINGS use_query_cache = true, query_cache_min_query_duration = 5000; ``` is only cached if the query runs longer than 5 seconds. It is also possible to specify how often a query needs to run until its result is -cached - for that use setting [query_cache_min_query_runs](/reference/settings/session-settings#query_cache_min_query_runs). +cached - for that use setting [query_cache_min_query_runs](/core/reference/settings/session-settings#query_cache_min_query_runs). Entries in the query cache become stale after a certain time period (time-to-live). By default, this period is 60 seconds but a different -value can be specified at session, profile or query level using setting [query_cache_ttl](/reference/settings/session-settings#query_cache_ttl). The query +value can be specified at session, profile or query level using setting [query_cache_ttl](/core/reference/settings/session-settings#query_cache_ttl). The query cache evicts entries "lazily", i.e. when an entry becomes stale, it is not immediately removed from the cache. Instead, when a new entry is to be inserted into the query cache, the database checks whether the cache has enough free space for the new entry. If this is not the case, the database tries to remove all stale entries. If the cache still has not enough free space, the new entry is not inserted. @@ -154,10 +154,10 @@ If the query is run via HTTP, then ClickHouse sets the `Age` and `Expires` heade cached entry. Entries in the query cache are compressed by default. This reduces the overall memory consumption at the cost of slower writes into / reads -from the query cache. To disable compression, use setting [query_cache_compress_entries](/reference/settings/session-settings#query_cache_compress_entries). +from the query cache. To disable compression, use setting [query_cache_compress_entries](/core/reference/settings/session-settings#query_cache_compress_entries). Sometimes it is useful to keep multiple results for the same query cached. This can be achieved using setting -[query_cache_tag](/reference/settings/session-settings#query_cache_tag) that acts as as a label (or namespace) for a query cache entries. The query cache +[query_cache_tag](/core/reference/settings/session-settings#query_cache_tag) that acts as as a label (or namespace) for a query cache entries. The query cache considers results of the same query with different tags different. Example for creating three different query cache entries for the same query: @@ -170,46 +170,46 @@ SELECT 1 SETTINGS use_query_cache = true, query_cache_tag = 'tag 2'; To remove only entries with tag `tag` from the query cache, you can use statement `SYSTEM CLEAR QUERY CACHE TAG 'tag'`. -ClickHouse reads table data in blocks of [max_block_size](/reference/settings/session-settings#max_block_size) rows. Due to filtering, aggregation, +ClickHouse reads table data in blocks of [max_block_size](/core/reference/settings/session-settings#max_block_size) rows. Due to filtering, aggregation, etc., result blocks are typically much smaller than 'max_block_size' but there are also cases where they are much bigger. Setting -[query_cache_squash_partial_results](/reference/settings/session-settings#query_cache_squash_partial_results) (enabled by default) controls if result blocks +[query_cache_squash_partial_results](/core/reference/settings/session-settings#query_cache_squash_partial_results) (enabled by default) controls if result blocks are squashed (if they are tiny) or split (if they are large) into blocks of 'max_block_size' size before insertion into the query result cache. This reduces performance of writes into the query cache but improves compression rate of cache entries and provides more natural block granularity when query results are later served from the query cache. As a result, the query cache stores for each query multiple (partial) result blocks. While this behavior is a good default, it can be suppressed using setting -[query_cache_squash_partial_results](/reference/settings/session-settings#query_cache_squash_partial_results). +[query_cache_squash_partial_results](/core/reference/settings/session-settings#query_cache_squash_partial_results). Also, results of queries with non-deterministic functions are not cached by default. Such functions include -- functions for accessing dictionaries: [`dictGet()`](/reference/functions/regular-functions/ext-dict-functions) etc. -- [user-defined functions](/reference/statements/create/function) without tag `true` in their XML +- functions for accessing dictionaries: [`dictGet()`](/core/reference/functions/regular-functions/ext-dict-functions) etc. +- [user-defined functions](/core/reference/statements/create/function) without tag `true` in their XML definition, -- functions which return the current date or time: [`now()`](/reference/functions/regular-functions/date-time-functions#now), - [`today()`](/reference/functions/regular-functions/date-time-functions#today), - [`yesterday()`](/reference/functions/regular-functions/date-time-functions#yesterday) etc., -- functions which return random values: [`randomString()`](/reference/functions/regular-functions/random-functions#randomString), - [`fuzzBits()`](/reference/functions/regular-functions/random-functions#fuzzBits) etc., +- functions which return the current date or time: [`now()`](/core/reference/functions/regular-functions/date-time-functions#now), + [`today()`](/core/reference/functions/regular-functions/date-time-functions#today), + [`yesterday()`](/core/reference/functions/regular-functions/date-time-functions#yesterday) etc., +- functions which return random values: [`randomString()`](/core/reference/functions/regular-functions/random-functions#randomString), + [`fuzzBits()`](/core/reference/functions/regular-functions/random-functions#fuzzBits) etc., - functions whose result depends on the size and order or the internal chunks used for query processing: - [`nowInBlock()`](/reference/functions/regular-functions/date-time-functions#nowInBlock) etc., - [`rowNumberInBlock()`](/reference/functions/regular-functions/other-functions#rowNumberInBlock), - [`runningDifference()`](/reference/functions/regular-functions/other-functions#runningDifference), - [`blockSize()`](/reference/functions/regular-functions/other-functions#blockSize) etc., -- functions which depend on the environment: [`currentUser()`](/reference/functions/regular-functions/other-functions#currentUser), - [`queryID()`](/reference/functions/regular-functions/other-functions#queryID), - [`getMacro()`](/reference/functions/regular-functions/other-functions#getMacro) etc. + [`nowInBlock()`](/core/reference/functions/regular-functions/date-time-functions#nowInBlock) etc., + [`rowNumberInBlock()`](/core/reference/functions/regular-functions/other-functions#rowNumberInBlock), + [`runningDifference()`](/core/reference/functions/regular-functions/other-functions#runningDifference), + [`blockSize()`](/core/reference/functions/regular-functions/other-functions#blockSize) etc., +- functions which depend on the environment: [`currentUser()`](/core/reference/functions/regular-functions/other-functions#currentUser), + [`queryID()`](/core/reference/functions/regular-functions/other-functions#queryID), + [`getMacro()`](/core/reference/functions/regular-functions/other-functions#getMacro) etc. To force caching of results of queries with non-deterministic functions regardless, use setting -[query_cache_nondeterministic_function_handling](/reference/settings/session-settings#query_cache_nondeterministic_function_handling). +[query_cache_nondeterministic_function_handling](/core/reference/settings/session-settings#query_cache_nondeterministic_function_handling). -Results of queries that involve system tables (e.g. [system.processes](/reference/system-tables/processes)` or -[information_schema.tables](/reference/system-tables/information_schema)) are not cached by default. To force caching of results of queries with -system tables regardless, use setting [query_cache_system_table_handling](/reference/settings/session-settings#query_cache_system_table_handling). +Results of queries that involve system tables (e.g. [system.processes](/core/reference/system-tables/processes)` or +[information_schema.tables](/core/reference/system-tables/information_schema)) are not cached by default. To force caching of results of queries with +system tables regardless, use setting [query_cache_system_table_handling](/core/reference/settings/session-settings#query_cache_system_table_handling). Finally, entries in the query cache are not shared between users due to security reasons. For example, user A must not be able to bypass a row policy on a table by running the same query as another user B for whom no such policy exists. However, if necessary, cache entries can be marked accessible by other users (i.e. shared) by supplying setting -[query_cache_share_between_users](/reference/settings/session-settings#query_cache_share_between_users). +[query_cache_share_between_users](/core/reference/settings/session-settings#query_cache_share_between_users). ## Related content {#related-content} diff --git a/concepts/features/performance/caches/query-condition-cache.mdx b/core/concepts/features/performance/caches/query-condition-cache.mdx similarity index 83% rename from concepts/features/performance/caches/query-condition-cache.mdx rename to core/concepts/features/performance/caches/query-condition-cache.mdx index e3680358..2c5afaf1 100644 --- a/concepts/features/performance/caches/query-condition-cache.mdx +++ b/core/concepts/features/performance/caches/query-condition-cache.mdx @@ -7,13 +7,13 @@ doc_type: 'guide' --- -The query condition cache only works when [enable_analyzer](/reference/settings/session-settings#enable_analyzer) is set to true, which is the default value. +The query condition cache only works when [enable_analyzer](/core/reference/settings/session-settings#enable_analyzer) is set to true, which is the default value. Many real-world workloads involve repeated queries against the same or almost the same data (for instance, previously existing data plus new data). ClickHouse provides various optimization techniques to optimize for such query patterns. One possibility is to tune the physical data layout using index structures (e.g., primary key indexes, skipping indexes, projections) or pre-calculation (materialized views). -Another possibility is to use ClickHouse's [query cache](/concepts/features/performance/caches/query-cache) to avoid repeated query evaluation. +Another possibility is to use ClickHouse's [query cache](/core/concepts/features/performance/caches/query-cache) to avoid repeated query evaluation. The downside of the first approach is that that it requires manual intervention and monitoring by a database administrator. The second approach may return stale results (as the query cache is transactionally not consistent) which may or may not be acceptable, depending on the use case. @@ -31,14 +31,14 @@ The query condition cache is effective if three prerequisites are fulfilled: ## Memory consumption {#memory-consumption} Since the query condition cache stores only a single bit per filter condition and granule, it consumes only little memory. -The maximum size of the query condition cache can be configured using server settings [`query_condition_cache_size`](/reference/settings/server-settings/settings#query_condition_cache_size) (default: 100 MB). +The maximum size of the query condition cache can be configured using server settings [`query_condition_cache_size`](/core/reference/settings/server-settings/settings#query_condition_cache_size) (default: 100 MB). A cache size of 100 MB corresponds to 100 * 1024 * 1024 * 8 = 838,860,800 entries. Since each entry represents a mark (8192 rows by default), the cache can cover up to 6,871,947,673,600 (6.8 trillion) rows of a single column. In practice, filter are evaluated on more than one column, so that number needs to be divided by the number of filtered columns. ## Configuration settings and usage {#configuration-settings-and-usage} -Setting [use_query_condition_cache](/reference/settings/session-settings#use_query_condition_cache) controls whether a specific query or all queries of the current session should utilize the query condition cache. +Setting [use_query_condition_cache](/core/reference/settings/session-settings#use_query_condition_cache) controls whether a specific query or all queries of the current session should utilize the query condition cache. For example, the first execution of query @@ -56,13 +56,13 @@ Subsequent executions of the same query, also with parameter `use_query_conditio The query condition cache is not retained between restarts of ClickHouse. -To clear the query condition cache, run [`SYSTEM CLEAR QUERY CONDITION CACHE`](/reference/statements/system#drop-query-condition-cache). +To clear the query condition cache, run [`SYSTEM CLEAR QUERY CONDITION CACHE`](/core/reference/statements/system#drop-query-condition-cache). -The content of the cache is displayed in system table [system.query_condition_cache](/reference/system-tables/query_condition_cache). +The content of the cache is displayed in system table [system.query_condition_cache](/core/reference/system-tables/query_condition_cache). To calculate the current size of the query condition cache in MB, run `SELECT formatReadableSize(sum(entry_size)) FROM system.query_condition_cache`. If you like to investigate individual filter conditions, you can check field `condition` in `system.query_condition_cache`. Note that this field is only available in debug builds. -The number of query condition cache hits and misses since database start are shown as events "QueryConditionCacheHits" and "QueryConditionCacheMisses" in system table [system.events](/reference/system-tables/events). +The number of query condition cache hits and misses since database start are shown as events "QueryConditionCacheHits" and "QueryConditionCacheMisses" in system table [system.events](/core/reference/system-tables/events). Both counters are only updated for `SELECT` queries which run with setting `use_query_condition_cache = true`, other queries do not affect "QueryCacheMisses". ## Related content {#related-content} diff --git a/concepts/features/performance/caches/userspace-page-cache.mdx b/core/concepts/features/performance/caches/userspace-page-cache.mdx similarity index 94% rename from concepts/features/performance/caches/userspace-page-cache.mdx rename to core/concepts/features/performance/caches/userspace-page-cache.mdx index d0cef5ab..3fe10881 100644 --- a/concepts/features/performance/caches/userspace-page-cache.mdx +++ b/core/concepts/features/performance/caches/userspace-page-cache.mdx @@ -12,7 +12,7 @@ doc_type: 'reference' > The userspace page cache is a new caching mechanism that allows for caching of data in in-process memory rather than relying on the OS page cache. -ClickHouse already offers the [Filesystem cache](/concepts/features/configuration/server-config/storing-data) +ClickHouse already offers the [Filesystem cache](/core/concepts/features/configuration/server-config/storing-data) as a way of caching on top of remote object storage such as Amazon S3, Google Cloud Storage (GCS) or Azure Blob Storage. The userspace page cache is designed to speed up access to remote data when the normal OS caching isn't doing a good @@ -57,7 +57,7 @@ SET use_page_cache_for_disks_without_file_cache=1; |----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------| | `use_page_cache_for_disks_without_file_cache` | Use userspace page cache for remote disks that don't have filesystem cache enabled. | `0` | | `use_page_cache_with_distributed_cache` | Use userspace page cache when distributed cache is used. | `0` | -| `read_from_page_cache_if_exists_otherwise_bypass_cache` | Use userspace page cache in passive mode, similar to [`read_from_filesystem_cache_if_exists_otherwise_bypass_cache`](/reference/settings/session-settings#read_from_filesystem_cache_if_exists_otherwise_bypass_cache). | `0` | +| `read_from_page_cache_if_exists_otherwise_bypass_cache` | Use userspace page cache in passive mode, similar to [`read_from_filesystem_cache_if_exists_otherwise_bypass_cache`](/core/reference/settings/session-settings#read_from_filesystem_cache_if_exists_otherwise_bypass_cache). | `0` | | `page_cache_inject_eviction` | Userspace page cache will sometimes invalidate some pages at random. Intended for testing. | `0` | | `page_cache_block_size` | Size of file chunks to store in the userspace page cache, in bytes. All reads that go through the cache will be rounded up to a multiple of this size. | `1048576` | | `page_cache_history_window_ms` | Delay before freed memory can be used by userspace page cache. | `1000` | @@ -70,5 +70,5 @@ SET use_page_cache_for_disks_without_file_cache=1; | `page_cache_shards` | Stripe userspace page cache over this many shards to reduce mutex contention. Experimental, not likely to improve performance. | `4` | ## Related content {#related-content} -- [Filesystem cache](/concepts/features/configuration/server-config/storing-data) +- [Filesystem cache](/core/concepts/features/configuration/server-config/storing-data) - [ClickHouse v25.3 Release Webinar](https://www.youtube.com/live/iCKEzp0_Z2Q?feature=shared&t=1320) diff --git a/core/concepts/features/performance/index.mdx b/core/concepts/features/performance/index.mdx new file mode 100644 index 00000000..420a3f2a --- /dev/null +++ b/core/concepts/features/performance/index.mdx @@ -0,0 +1,33 @@ +--- +slug: /operations/overview +title: 'Performance and optimizations' +description: 'Overview of performance and optimization features in ClickHouse' +keywords: ['performance optimization', 'best practices', 'optimization guide', 'ClickHouse performance', 'database optimization'] +doc_type: 'landing-page' +--- + +This section covers features and techniques for improving query and ingestion +performance with ClickHouse. We recommend reading +[Core Concepts](/core/concepts/core-concepts/parts) first for the foundational +material these guides build on. + + + + How `PREWHERE` reduces I/O by filtering data before reading non-filter columns, and how to monitor its effectiveness. + + + Profile memory allocations to diagnose memory pressure and tune resource usage in ClickHouse. + + + Query cache, query-condition cache, and userspace page cache for accelerating repeated workloads. + + + Use secondary skip indexes to prune irrelevant data blocks and accelerate filtered queries. + + + Defer column reads until they are needed to reduce I/O for selective queries. + + + Sampling query profiler, hardware benchmarking, and debugging memory issues. + + \ No newline at end of file diff --git a/concepts/features/performance/lazy-materialization.mdx b/core/concepts/features/performance/lazy-materialization.mdx similarity index 81% rename from concepts/features/performance/lazy-materialization.mdx rename to core/concepts/features/performance/lazy-materialization.mdx index 0142ef40..cf778610 100644 --- a/concepts/features/performance/lazy-materialization.mdx +++ b/core/concepts/features/performance/lazy-materialization.mdx @@ -23,10 +23,10 @@ These techniques form the foundation of its speed and efficiency: | Optimization | Description | |---|---| -| [**Columnar storage**](/get-started/about/intro#row-oriented-vs-column-oriented-storage) | Allows skipping entire columns that aren't needed for a query and also enables high compression by grouping similar values together, minimizing I/O during data loading. | -| [**Sparse primary indexes**](/guides/cloud-oss/data-modelling/sparse-primary-indexes) \| [**secondary data-skipping indexes**](/concepts/features/performance/skip-indexes/skipping-indexes) \| [**projections**](/concepts/features/projections/projections) | Prune irrelevant data by identifying which [granules](/concepts/core-concepts/glossary#granule) (row blocks) might match filters on _indexed columns_. These techniques operate at the granule level and can be used individually or in combination. | -| [**PREWHERE**](/reference/statements/select/prewhere) | Checks matches also for filters on _non-indexed_ columns to skip data early that would otherwise be loaded and discarded. It can work independently or refine the granules selected by indexes, complementing granule pruning by skipping rows that don't match _all_ column filters. | -| [**Query condition cache**](/concepts/features/performance/caches/query-condition-cache) | Speeds up repeated queries by remembering which granules matched all filters last time. ClickHouse can then skip reading and filtering granules that didn't match, even if the query shape changes. | +| [**Columnar storage**](/core/get-started/about/intro#row-oriented-vs-column-oriented-storage) | Allows skipping entire columns that aren't needed for a query and also enables high compression by grouping similar values together, minimizing I/O during data loading. | +| [**Sparse primary indexes**](/core/guides/clickhouse/data-modelling/sparse-primary-indexes) \| [**secondary data-skipping indexes**](/core/concepts/features/performance/skip-indexes/skipping-indexes) \| [**projections**](/core/concepts/features/projections/projections) | Prune irrelevant data by identifying which [granules](/core/concepts/core-concepts/glossary#granule) (row blocks) might match filters on _indexed columns_. These techniques operate at the granule level and can be used individually or in combination. | +| [**PREWHERE**](/core/reference/statements/select/prewhere) | Checks matches also for filters on _non-indexed_ columns to skip data early that would otherwise be loaded and discarded. It can work independently or refine the granules selected by indexes, complementing granule pruning by skipping rows that don't match _all_ column filters. | +| [**Query condition cache**](/core/concepts/features/performance/caches/query-condition-cache) | Speeds up repeated queries by remembering which granules matched all filters last time. ClickHouse can then skip reading and filtering granules that didn't match, even if the query shape changes. | While the aforementioned I/O optimizations can significantly reduce data read, they still assume that all columns for rows passing the `WHERE` clause must be loaded before running operations like sorting, aggregation, or `LIMIT`. But what if some columns aren’t needed until later, or some data, despite passing the `WHERE` clause, is never needed at all? That’s where lazy materialization comes in. It is an orthogonal enhancement that completes the I/O optimization stack: @@ -47,7 +47,7 @@ Lazy materialization layers cleanly on top, but unlike the other optimizations m Consider the following example query which finds Amazon reviews with the highest number of helpful votes, regardless of date, product, rating, or verification status, and returns the top 3 along with their title, headline, and full text. -First running the query (with cold filesystem caches) with lazy materialization disabled (using [`query_plan_optimize_lazy_materialization`](/reference/settings/session-settings#query_plan_optimize_lazy_materialization)): +First running the query (with cold filesystem caches) with lazy materialization disabled (using [`query_plan_optimize_lazy_materialization`](/core/reference/settings/session-settings#query_plan_optimize_lazy_materialization)): ```sql title="Query" SELECT @@ -146,7 +146,7 @@ Consider the difference in performance with lazy materialization turned off and ## How to confirm lazy materialization in the query execution plan {#confirm-lazy-materialization} -You can observe usage of lazy materialization for the previous query by inspecting the query’s logical execution plan using the [`EXPLAIN`](/reference/statements/explain) clause: +You can observe usage of lazy materialization for the previous query by inspecting the query’s logical execution plan using the [`EXPLAIN`](/core/reference/statements/explain) clause: ```sql EXPLAIN actions = 1 diff --git a/concepts/features/performance/prewhere.mdx b/core/concepts/features/performance/prewhere.mdx similarity index 92% rename from concepts/features/performance/prewhere.mdx rename to core/concepts/features/performance/prewhere.mdx index 2d53df75..32a4cacd 100644 --- a/concepts/features/performance/prewhere.mdx +++ b/core/concepts/features/performance/prewhere.mdx @@ -9,13 +9,13 @@ keywords: ['prewhere', 'query optimization', 'performance', 'filtering', 'best p import { Image } from "/snippets/components/Image.jsx"; -The [PREWHERE clause](/reference/statements/select/prewhere) is a query execution optimization in ClickHouse. It reduces I/O and improves query speed by avoiding unnecessary data reads, and filtering out irrelevant data before reading non-filter columns from disk. +The [PREWHERE clause](/core/reference/statements/select/prewhere) is a query execution optimization in ClickHouse. It reduces I/O and improves query speed by avoiding unnecessary data reads, and filtering out irrelevant data before reading non-filter columns from disk. This guide explains how PREWHERE works, how to measure its impact, and how to tune it for best performance. ## Query processing without PREWHERE optimization {#query-processing-without-prewhere-optimization} -We'll start by illustrating how a query on the [uk_price_paid_simple](/concepts/core-concepts/parts) table is processed without using PREWHERE: +We'll start by illustrating how a query on the [uk_price_paid_simple](/core/concepts/core-concepts/parts) table is processed without using PREWHERE: Query processing without PREWHERE optimization @@ -85,7 +85,7 @@ Note that ClickHouse processes the same number of rows in both the PREWHERE and ## PREWHERE optimization is automatically applied {#prewhere-optimization-is-automatically-applied} -The PREWHERE clause can be added manually, as shown in the example above. However, you don't need to write PREWHERE manually. When the setting [`optimize_move_to_prewhere`](/reference/settings/session-settings#optimize_move_to_prewhere) is enabled (true by default), ClickHouse automatically moves filter conditions from WHERE to PREWHERE, prioritizing those that will reduce read volume the most. +The PREWHERE clause can be added manually, as shown in the example above. However, you don't need to write PREWHERE manually. When the setting [`optimize_move_to_prewhere`](/core/reference/settings/session-settings#optimize_move_to_prewhere) is enabled (true by default), ClickHouse automatically moves filter conditions from WHERE to PREWHERE, prioritizing those that will reduce read volume the most. The idea is that smaller columns are faster to scan, and by the time larger columns are processed, most granules have already been filtered out. Since all columns have the same number of rows, a column's size is primarily determined by its data type, for example, a `UInt8` column is generally much smaller than a `String` column. @@ -148,7 +148,7 @@ The same number of rows was processed (2.31 million), but thanks to PREWHERE, Cl For deeper insight into how ClickHouse applies PREWHERE behind the scenes, use EXPLAIN and trace logs. -We inspect the query's logical plan using the [EXPLAIN](/reference/statements/explain#explain-plan) clause: +We inspect the query's logical plan using the [EXPLAIN](/core/reference/statements/explain#explain-plan) clause: ```sql EXPLAIN PLAN actions = 1 SELECT diff --git a/concepts/features/performance/skip-indexes/skipping-indexes-examples.mdx b/core/concepts/features/performance/skip-indexes/skipping-indexes-examples.mdx similarity index 76% rename from concepts/features/performance/skip-indexes/skipping-indexes-examples.mdx rename to core/concepts/features/performance/skip-indexes/skipping-indexes-examples.mdx index fd6d8143..0ae3f2e0 100644 --- a/concepts/features/performance/skip-indexes/skipping-indexes-examples.mdx +++ b/core/concepts/features/performance/skip-indexes/skipping-indexes-examples.mdx @@ -7,7 +7,7 @@ doc_type: 'guide' keywords: ['skipping indexes', 'data skipping', 'performance', 'indexing', 'best practices'] --- -This page consolidates ClickHouse data skipping index examples, showing how to declare each type, when to use them, and how to verify they're applied. All features work with [MergeTree-family tables](/reference/engines/table-engines/mergetree-family/mergetree). +This page consolidates ClickHouse data skipping index examples, showing how to declare each type, when to use them, and how to verify they're applied. All features work with [MergeTree-family tables](/core/reference/engines/table-engines/mergetree-family/mergetree). **Index syntax:** @@ -56,7 +56,7 @@ EXPLAIN indexes = 1 SELECT count() FROM events WHERE ts >= now() - 3600; ``` -See a [worked example](/concepts/best-practices/using-data-skipping-indices#example) with `EXPLAIN` and pruning. +See a [worked example](/core/concepts/best-practices/using-data-skipping-indices#example) with `EXPLAIN` and pruning. ## Set index {#set-index} @@ -72,7 +72,7 @@ EXPLAIN indexes = 1 SELECT * FROM events WHERE user_id IN (101, 202); ``` -A creation/materialization workflow and the before/after effect are shown in the [basic operation guide](/concepts/features/performance/skip-indexes/skipping-indexes#basic-operation). +A creation/materialization workflow and the before/after effect are shown in the [basic operation guide](/core/concepts/features/performance/skip-indexes/skipping-indexes#basic-operation). ## Text index (text) for full text search {#textindex-for-full-text-search} @@ -80,7 +80,7 @@ A creation/materialization workflow and the before/after effect are shown in the Designed specifically for full-text search workloads, enabling efficient and deterministic token and term lookup. Recommended for natural language or large-scale text search use cases. -Just see [Full-text Search with Text Indexes](/reference/engines/table-engines/mergetree-family/textindexes) for more details and examples. +Just see [Full-text Search with Text Indexes](/core/reference/engines/table-engines/mergetree-family/textindexes) for more details and examples. ```sql ALTER TABLE logs ADD INDEX msg_text msg TYPE text(tokenizer = splitByNonAlpha); @@ -89,7 +89,7 @@ ALTER TABLE logs MATERIALIZE INDEX msg_text; SELECT count() FROM logs WHERE hasAllTokens(msg, 'exception'); ``` -See a more complete observability example [here](/guides/observability/build-your-own/schema-design#text-index-for-full-text-search) documentation. +See a more complete observability example [here](/core/guides/use-cases/observability/build-your-own/schema-design#text-index-for-full-text-search) documentation. The text index is totally deterministic and fully tunable in terms of tokenization and text processing at a cost of some more storage consumption compared with bloom filter–based indexes, @@ -110,10 +110,10 @@ SELECT * FROM events WHERE value IN (7, 42, 99); ## N-gram Bloom filter (ngrambf\_v1) for substring search *(Deprecated)* {#n-gram-bloom-filter-ngrambf-v1-for-substring-search} -The usage of `ngrambf_v1` indexes for full-text search is deprecated in ClickHouse versions `>= 26.2` in favor of `text` indexes (see [here](/reference/engines/table-engines/mergetree-family/textindexes) for further details). +The usage of `ngrambf_v1` indexes for full-text search is deprecated in ClickHouse versions `>= 26.2` in favor of `text` indexes (see [here](/core/reference/engines/table-engines/mergetree-family/textindexes) for further details). -The `ngrambf_v1` index splits strings into n-grams. It works well for `LIKE '%...%'` queries. It supports String/FixedString/Map (via mapKeys/mapValues), as well as tunable size, hash count, and seed. See the documentation for [N-gram bloom filter](/reference/engines/table-engines/mergetree-family/mergetree#n-gram-bloom-filter) for further details. +The `ngrambf_v1` index splits strings into n-grams. It works well for `LIKE '%...%'` queries. It supports String/FixedString/Map (via mapKeys/mapValues), as well as tunable size, hash count, and seed. See the documentation for [N-gram bloom filter](/core/reference/engines/table-engines/mergetree-family/mergetree#n-gram-bloom-filter) for further details. ```sql -- Create index for substring search @@ -127,7 +127,7 @@ EXPLAIN indexes = 1 SELECT count() FROM logs WHERE msg LIKE '%timeout%'; ``` -[This guide](/guides/observability/build-your-own/schema-design#text-index-for-full-text-search) shows practical examples and when to use token vs ngram. +[This guide](/core/guides/use-cases/observability/build-your-own/schema-design#text-index-for-full-text-search) shows practical examples and when to use token vs ngram. **Parameter optimization helpers:** @@ -145,17 +145,17 @@ SELECT bfEstimateBmSize(4300, 0.0001) / 8 AS size_bytes; -- ~10304 SELECT bfEstimateFunctions(4300, bfEstimateBmSize(4300, 0.0001)) AS k; -- ~13 ``` -See [parameter docs](/reference/engines/table-engines/mergetree-family/mergetree#n-gram-bloom-filter) for complete tuning guidance. +See [parameter docs](/core/reference/engines/table-engines/mergetree-family/mergetree#n-gram-bloom-filter) for complete tuning guidance. ## Token Bloom filter (tokenbf\_v1) for word-based search *(Deprecated)* {#token-bloom-filter-tokenbf-v1-for-word-based-search} -The usage of `tokenbf_v1` indexes for full-text search is deprecated in ClickHouse versions `>= 26.2` in favor of `text` indexes (see [here](/reference/engines/table-engines/mergetree-family/textindexes) for further details). +The usage of `tokenbf_v1` indexes for full-text search is deprecated in ClickHouse versions `>= 26.2` in favor of `text` indexes (see [here](/core/reference/engines/table-engines/mergetree-family/textindexes) for further details). -`tokenbf_v1` indexes tokens separated by non-alphanumeric characters. You should use it with [`hasToken`](/reference/functions/regular-functions/string-search-functions#hasToken), `LIKE` word patterns or equals/IN. It supports `String`/`FixedString`/`Map` types. +`tokenbf_v1` indexes tokens separated by non-alphanumeric characters. You should use it with [`hasToken`](/core/reference/functions/regular-functions/string-search-functions#hasToken), `LIKE` word patterns or equals/IN. It supports `String`/`FixedString`/`Map` types. -See [Token bloom filter](/reference/engines/table-engines/mergetree-family/mergetree#token-bloom-filter) and [Bloom filter types](/concepts/features/performance/skip-indexes/skipping-indexes#skip-index-types) pages for more details. +See [Token bloom filter](/core/reference/engines/table-engines/mergetree-family/mergetree#token-bloom-filter) and [Bloom filter types](/core/concepts/features/performance/skip-indexes/skipping-indexes#skip-index-types) pages for more details. ```sql ALTER TABLE logs ADD INDEX msg_token lower(msg) TYPE tokenbf_v1(10000, 7, 7) GRANULARITY 1; @@ -168,7 +168,7 @@ EXPLAIN indexes = 1 SELECT count() FROM logs WHERE hasToken(lower(msg), 'exception'); ``` -See observability examples and guidance on token vs ngram [here](/guides/observability/build-your-own/schema-design#text-index-for-full-text-search). +See observability examples and guidance on token vs ngram [here](/core/guides/use-cases/observability/build-your-own/schema-design#text-index-for-full-text-search). ## Add indexes during CREATE TABLE (multiple examples) {#add-indexes-during-create-table-multiple-examples} @@ -205,7 +205,7 @@ SELECT count() FROM t WHERE u64 IN (123, 456); SET send_logs_level = 'trace'; ``` -This [worked minmax example](/concepts/best-practices/using-data-skipping-indices#example) demonstrates EXPLAIN output structure and pruning counts. +This [worked minmax example](/core/concepts/best-practices/using-data-skipping-indices#example) demonstrates EXPLAIN output structure and pruning counts. ## When to use and when to avoid skipping indexes {#when-use-and-when-to-avoid} @@ -228,7 +228,7 @@ If a value appears even once in a data block, ClickHouse must read the entire bl ## Temporarily ignore or force indexes {#temporarily-ignore-or-force-indexes} -Disable specific indexes by name for individual queries during testing and troubleshooting. Settings also exist to force index usage when needed. See [`ignore_data_skipping_indices`](/reference/settings/session-settings#ignore_data_skipping_indices). +Disable specific indexes by name for individual queries during testing and troubleshooting. Settings also exist to force index usage when needed. See [`ignore_data_skipping_indices`](/core/reference/settings/session-settings#ignore_data_skipping_indices). ```sql -- Ignore an index by name @@ -239,12 +239,12 @@ SETTINGS ignore_data_skipping_indices = 'msg_token'; ## Notes and caveats {#notes-and-caveats} -* Skipping indexes are only supported on [MergeTree-family tables](/reference/engines/table-engines/mergetree-family/mergetree); pruning happens at the granule/block level. +* Skipping indexes are only supported on [MergeTree-family tables](/core/reference/engines/table-engines/mergetree-family/mergetree); pruning happens at the granule/block level. * Bloom-filter-based indexes are probabilistic (false positives cause extra reads but won't skip valid data). * Bloom filters and other skip indexes should be validated with `EXPLAIN` and tracing; adjust granularity to balance pruning vs. index size. ## Related docs {#related-docs} -- [Data skipping index guide](/concepts/features/performance/skip-indexes/skipping-indexes) -- [Best practices guide](/concepts/best-practices/using-data-skipping-indices) -- [Manipulating data skipping indices](/reference/statements/alter/skipping-index) -- [System table information](/reference/system-tables/data_skipping_indices) +- [Data skipping index guide](/core/concepts/features/performance/skip-indexes/skipping-indexes) +- [Best practices guide](/core/concepts/best-practices/using-data-skipping-indices) +- [Manipulating data skipping indices](/core/reference/statements/alter/skipping-index) +- [System table information](/core/reference/system-tables/data_skipping_indices) diff --git a/concepts/features/performance/skip-indexes/skipping-indexes.mdx b/core/concepts/features/performance/skip-indexes/skipping-indexes.mdx similarity index 92% rename from concepts/features/performance/skip-indexes/skipping-indexes.mdx rename to core/concepts/features/performance/skip-indexes/skipping-indexes.mdx index 6e8d4079..64a2ec3e 100644 --- a/concepts/features/performance/skip-indexes/skipping-indexes.mdx +++ b/core/concepts/features/performance/skip-indexes/skipping-indexes.mdx @@ -138,7 +138,7 @@ The cost, performance, and effectiveness of this index is dependent on the cardi For workloads that involve natural language or free-form text search (e.g., searching words or phrases in large text columns), ClickHouse provides a **text index** (a real inverted index). Text index supports efficient full-text search semantics and tokenized lookups. It is the recommended choice for full-text search queries because it provides deterministic token indexing and better performance for search functions such as `hasAnyToken`, `hasAllTokens` but also optimize all common text search functions. -See the text index documentation for details [here](/reference/engines/table-engines/mergetree-family/textindexes). +See the text index documentation for details [here](/core/reference/engines/table-engines/mergetree-family/textindexes). ### Bloom filter types {#bloom-filter-types} @@ -159,7 +159,7 @@ This index works only with String, FixedString, and Map datatypes. The input exp ``` This index can also be useful for text searches, particularly languages without word breaks, such as Chinese. -> For full-text search workloads, the dedicated **text index** (see [Text index for full-text search](/reference/engines/table-engines/mergetree-family/textindexes)) is recommended over the deprecated *tokenbf_v1* or *ngrambf_v1* indexes. +> For full-text search workloads, the dedicated **text index** (see [Text index for full-text search](/core/reference/engines/table-engines/mergetree-family/textindexes)) is recommended over the deprecated *tokenbf_v1* or *ngrambf_v1* indexes. The text index provides a true inverted index with better search performance, more predictable behavior, and greater flexibility and performance compared with token-based Bloom filter indexes. ## Skip index functions {#skip-index-functions} @@ -169,7 +169,7 @@ The core purpose of data-skipping indexes is to limit the amount of data analyze * the query is processed and the expression is applied to the stored index values to determine whether to exclude the block. Each type of skip index works on a subset of available ClickHouse functions appropriate to the index implementation listed -[here](/reference/engines/table-engines/mergetree-family/mergetree#functions-support). In general, set indexes and Bloom filter based indexes (another type of set index) are both unordered and therefore don't work with ranges. In contrast, minmax indexes work particularly well with ranges since determining whether ranges intersect is very fast. The efficacy of partial match functions LIKE, startsWith, endsWith, and hasToken depend on the index type used, the index expression, and the particular shape of the data. +[here](/core/reference/engines/table-engines/mergetree-family/mergetree#functions-support). In general, set indexes and Bloom filter based indexes (another type of set index) are both unordered and therefore don't work with ranges. In contrast, minmax indexes work particularly well with ranges since determining whether ranges intersect is very fast. The efficacy of partial match functions LIKE, startsWith, endsWith, and hasToken depend on the index type used, the index expression, and the particular shape of the data. ## Skip index settings {#skip-index-settings} @@ -203,7 +203,7 @@ read from disk. The exact opposite is true for a ClickHouse data skipping index regardless of the type of skip index. Accordingly, the natural impulse to try to speed up ClickHouse queries by simply adding an index to key -columns is often incorrect. This advanced functionality should only be used after investigating other alternatives, such as modifying the primary key (see [How to Pick a Primary Key](/guides/cloud-oss/data-modelling/sparse-primary-indexes)), using projections, or using materialized views. Even when a data skipping index is appropriate, careful tuning both the index and the table +columns is often incorrect. This advanced functionality should only be used after investigating other alternatives, such as modifying the primary key (see [How to Pick a Primary Key](/core/guides/clickhouse/data-modelling/sparse-primary-indexes)), using projections, or using materialized views. Even when a data skipping index is appropriate, careful tuning both the index and the table will often be necessary. In most cases a useful skip index requires a strong correlation between the primary key and the targeted, non-primary column/expression. @@ -228,7 +228,7 @@ include variations of the type, granularity size and other parameters. Testing w thought experiments alone. ## Related docs {#related-docs} -- [Best practices guide](/concepts/best-practices/using-data-skipping-indices) -- [Data skipping index examples](/concepts/features/performance/skip-indexes/skipping-indexes-examples) -- [Manipulating data skipping indices](/reference/statements/alter/skipping-index) -- [System table information](/reference/system-tables/data_skipping_indices) +- [Best practices guide](/core/concepts/best-practices/using-data-skipping-indices) +- [Data skipping index examples](/core/concepts/features/performance/skip-indexes/skipping-indexes-examples) +- [Manipulating data skipping indices](/core/reference/statements/alter/skipping-index) +- [System table information](/core/reference/system-tables/data_skipping_indices) diff --git a/concepts/features/performance/troubleshoot/debugging-memory-issues.mdx b/core/concepts/features/performance/troubleshoot/debugging-memory-issues.mdx similarity index 97% rename from concepts/features/performance/troubleshoot/debugging-memory-issues.mdx rename to core/concepts/features/performance/troubleshoot/debugging-memory-issues.mdx index c00bab78..db178653 100644 --- a/concepts/features/performance/troubleshoot/debugging-memory-issues.mdx +++ b/core/concepts/features/performance/troubleshoot/debugging-memory-issues.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/debugging-memory-issues +slug: /core/guides/developer/debugging-memory-issues sidebarTitle: 'Debugging memory issues' description: 'Queries to help you debug memory issues.' keywords: ['memory issues'] diff --git a/concepts/features/performance/troubleshoot/performance-test.mdx b/core/concepts/features/performance/troubleshoot/performance-test.mdx similarity index 100% rename from concepts/features/performance/troubleshoot/performance-test.mdx rename to core/concepts/features/performance/troubleshoot/performance-test.mdx diff --git a/concepts/features/performance/troubleshoot/sampling-query-profiler.mdx b/core/concepts/features/performance/troubleshoot/sampling-query-profiler.mdx similarity index 87% rename from concepts/features/performance/troubleshoot/sampling-query-profiler.mdx rename to core/concepts/features/performance/troubleshoot/sampling-query-profiler.mdx index 99331117..5f2809cb 100644 --- a/concepts/features/performance/troubleshoot/sampling-query-profiler.mdx +++ b/core/concepts/features/performance/troubleshoot/sampling-query-profiler.mdx @@ -64,7 +64,7 @@ In self-managed deployments, to use the query profiler follow the steps below: ### Install ClickHouse with debug info {#debug-info} Install the `clickhouse-common-static-dbg` package: -1. Follow the instructions in step ["Set up the Debian repository"](/get-started/setup/self-managed/debian-ubuntu#setup-the-debian-repository) +1. Follow the instructions in step ["Set up the Debian repository"](/core/get-started/setup/self-managed/debian-ubuntu#setup-the-debian-repository) 2. Run `sudo apt-get install clickhouse-server clickhouse-client clickhouse-common-static-dbg` to install ClickHouse compiled binary files with debug info 3. Run `sudo service clickhouse-server start` to start the server 4. Run `clickhouse-client`. The debug symbols from clickhouse-common-static-dbg will automatically be picked up by the server - you don't need to do anything special to enable them @@ -72,7 +72,7 @@ Install the `clickhouse-common-static-dbg` package: ### Check server config {#server-config} -Ensure that the [`trace_log`](/reference/settings/server-settings/settings#trace_log) section of your [server configuration file](/concepts/features/configuration/server-config/configuration-files) is set up. It is enabled by default: +Ensure that the [`trace_log`](/core/reference/settings/server-settings/settings#trace_log) section of your [server configuration file](/core/concepts/features/configuration/server-config/configuration-files) is set up. It is enabled by default: ```xml "p1: ${p1:CSV}, p2: ${p2:CSV}" TemplateIgnoreSpaces --> "p1:${p1:CSV}, p2:${p2:CSV}" @@ -129,7 +129,7 @@ FORMAT Template SETTINGS format_template_resultset = 'output.results', ``` ### Exporting to HTML files {#exporting-to-html-files} -Template-based results can also be exported to files using an [`INTO OUTFILE`](/reference/statements/select/into-outfile) clause. Let's generate HTML files based on given [resultset](/assets/html.results) and [row](/assets/html.row) formats: +Template-based results can also be exported to files using an [`INTO OUTFILE`](/core/reference/statements/select/into-outfile) clause. Let's generate HTML files based on given [resultset](/assets/html.results) and [row](/assets/html.row) formats: ```sql SELECT @@ -146,7 +146,7 @@ SETTINGS format_template_resultset = 'html.results', Template format can be used to generate all imaginable text format files, including XML. Just put a relevant template and do the export. -Also consider using an [XML](/reference/formats/XML) format to get standard XML results including metadata: +Also consider using an [XML](/core/reference/formats/XML) format to get standard XML results including metadata: ```sql SELECT * @@ -188,7 +188,7 @@ FORMAT XML ## Importing data based on regular expressions {#importing-data-based-on-regular-expressions} -[Regexp](/reference/formats/Regexp) format addresses more sophisticated cases when input data needs to be parsed in a more complex way. Let's parse our [error.log](/assets/error.log) example file, but capture the file name and protocol this time to save them into separate columns. First, let's prepare a new table for that: +[Regexp](/core/reference/formats/Regexp) format addresses more sophisticated cases when input data needs to be parsed in a more complex way. Let's parse our [error.log](/assets/error.log) example file, but capture the file name and protocol this time to save them into separate columns. First, let's prepare a new table for that: ```sql CREATE TABLE error_log @@ -227,7 +227,7 @@ SELECT * FROM error_log LIMIT 5 └─────────────────────┴─────────┴─────────────┴──────────────────────────────┴──────────┘ ``` -By default, ClickHouse will raise an error in case of unmatched rows. If you want to skip unmatched rows instead, enable it using [format_regexp_skip_unmatched](/reference/settings/formats#format_regexp_skip_unmatched) option: +By default, ClickHouse will raise an error in case of unmatched rows. If you want to skip unmatched rows instead, enable it using [format_regexp_skip_unmatched](/core/reference/settings/formats#format_regexp_skip_unmatched) option: ```sql SET format_regexp_skip_unmatched = 1; @@ -237,11 +237,11 @@ SET format_regexp_skip_unmatched = 1; ClickHouse introduces support for many formats, both text, and binary, to cover various scenarios and platforms. Explore more formats and ways to work with them in the following articles: -- [CSV and TSV formats](/integrations/connectors/data-ingestion/data-formats/csv-tsv) -- [Parquet](/integrations/connectors/data-ingestion/data-formats/parquet) -- [JSON formats](/integrations/connectors/data-ingestion/data-formats/json/intro) +- [CSV and TSV formats](/core/guides/clickhouse/data-formats/csv-tsv) +- [Parquet](/core/guides/clickhouse/data-formats/parquet) +- [JSON formats](/core/guides/clickhouse/data-formats/json/intro) - **Regex and templates** -- [Native and binary formats](/integrations/connectors/data-ingestion/data-formats/binary) -- [SQL formats](/integrations/connectors/data-ingestion/data-formats/sql) +- [Native and binary formats](/core/guides/clickhouse/data-formats/binary) +- [SQL formats](/core/guides/clickhouse/data-formats/sql) And also check [clickhouse-local](https://clickhouse.com/blog/extracting-converting-querying-local-files-with-sql-clickhouse-local) - a portable full-featured tool to work on local/remote files without the need for Clickhouse server. diff --git a/guides/cloud-oss/data-modelling/backfilling.mdx b/core/guides/clickhouse/data-modelling/backfilling.mdx similarity index 84% rename from guides/cloud-oss/data-modelling/backfilling.mdx rename to core/guides/clickhouse/data-modelling/backfilling.mdx index d3138966..a77900a6 100644 --- a/guides/cloud-oss/data-modelling/backfilling.mdx +++ b/core/guides/clickhouse/data-modelling/backfilling.mdx @@ -11,7 +11,7 @@ import { Image } from "/snippets/components/Image.jsx"; Whether new to ClickHouse or responsible for an existing deployment, you will invariably need to backfill tables with historical data. In some cases, this is relatively simple but can become more complex when materialized views need to be populated. This guide documents some processes for this task that you can apply to your use case. -This guide assumes users are already familiar with the concept of [Incremental Materialized Views](/concepts/features/materialized-views/incremental-materialized-view) and [data loading using table functions such as s3 and gcs](/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse). We also recommend users read our guide on [optimizing insert performance from object storage](/integrations/connectors/data-ingestion/AWS/performance), the advice of which can be applied to inserts throughout this guide. +This guide assumes users are already familiar with the concept of [Incremental Materialized Views](/core/concepts/features/materialized-views/incremental-materialized-view) and [data loading using table functions such as s3 and gcs](/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse). We also recommend users read our guide on [optimizing insert performance from object storage](/integrations/connectors/data-ingestion/AWS/performance), the advice of which can be applied to inserts throughout this guide. ## Example dataset {#example-dataset} @@ -67,7 +67,7 @@ The full PyPI dataset, consisting of over 1 trillion rows, is available in our p ## Backfilling scenarios {#backfilling-scenarios} -Backfilling is typically needed when a stream of data is being consumed from a point in time. This data is being inserted into ClickHouse tables with [incremental materialized views](/concepts/features/materialized-views/incremental-materialized-view), triggering on blocks as they're inserted. These views may be transforming the data prior to insert or computing aggregates and sending results to target tables for later use in downstream applications. +Backfilling is typically needed when a stream of data is being consumed from a point in time. This data is being inserted into ClickHouse tables with [incremental materialized views](/core/concepts/features/materialized-views/incremental-materialized-view), triggering on blocks as they're inserted. These views may be transforming the data prior to insert or computing aggregates and sending results to target tables for later use in downstream applications. We will attempt to cover the following scenarios: @@ -76,7 +76,7 @@ We will attempt to cover the following scenarios: We assume data will be backfilled from object storage. In all cases, we aim to avoid pauses in data insertion. -We recommend backfilling historical data from object storage. Data should be exported to Parquet where possible for optimal read performance and compression (reduced network transfer). A file size of around 150MB is typically preferred, but ClickHouse supports over [70 file formats](/reference/formats) and is capable of handling files of all sizes. +We recommend backfilling historical data from object storage. Data should be exported to Parquet where possible for optimal read performance and compression (reduced network transfer). A file size of around 150MB is typically preferred, but ClickHouse supports over [70 file formats](/core/reference/formats) and is capable of handling files of all sizes. ## Using duplicate tables and views {#using-duplicate-tables-and-views} @@ -143,7 +143,7 @@ Peak memory usage: 682.38 KiB. Suppose we wish to load another subset `{101..200}`. While we could insert directly into `pypi`, we can do this backfill in isolation by creating duplicate tables. -Should the backfill fail, we haven't impacted our main tables and can simply [truncate](/concepts/operations/delete/truncate) our duplicate tables and repeat. +Should the backfill fail, we haven't impacted our main tables and can simply [truncate](/core/concepts/features/operations/delete/truncate) our duplicate tables and repeat. To create new copies of these views, we can use the `CREATE TABLE AS` clause with the suffix `_v2`: @@ -189,9 +189,9 @@ FROM pypi_downloads_v2 Peak memory usage: 688.77 KiB. ``` -If we experienced a failure at any point during this second load, we could simply [truncate](/concepts/operations/delete/truncate) our `pypi_v2` and `pypi_downloads_v2` and repeat the data load. +If we experienced a failure at any point during this second load, we could simply [truncate](/core/concepts/features/operations/delete/truncate) our `pypi_v2` and `pypi_downloads_v2` and repeat the data load. -With our data load complete, we can move the data from our duplicate tables to the main tables using the [`ALTER TABLE MOVE PARTITION`](/reference/statements/alter/partition#move-partition-to-table) clause. +With our data load complete, we can move the data from our duplicate tables to the main tables using the [`ALTER TABLE MOVE PARTITION`](/core/reference/statements/alter/partition#move-partition-to-table) clause. ```sql ALTER TABLE pypi_v2 MOVE PARTITION () TO pypi @@ -206,7 +206,7 @@ ALTER TABLE pypi_downloads_v2 MOVE PARTITION () TO pypi_downloads **Partition names** -The above `MOVE PARTITION` call uses the partition name `()`. This represents the single partition for this table (which isn't partitioned). For tables that are partitioned, you will need to invoke multiple `MOVE PARTITION` calls - one for each partition. The name of the current partitions can be established from the [`system.parts`](/reference/system-tables/parts) table e.g. `SELECT DISTINCT partition FROM system.parts WHERE (table = 'pypi_v2')`. +The above `MOVE PARTITION` call uses the partition name `()`. This represents the single partition for this table (which isn't partitioned). For tables that are partitioned, you will need to invoke multiple `MOVE PARTITION` calls - one for each partition. The name of the current partitions can be established from the [`system.parts`](/core/reference/system-tables/parts) table e.g. `SELECT DISTINCT partition FROM system.parts WHERE (table = 'pypi_v2')`. We can now confirm `pypi` and `pypi_downloads` contain the complete data. `pypi_downloads_v2` and `pypi_v2` can be safely dropped. @@ -327,7 +327,7 @@ It isn't uncommon for new materialized views to need to be added to a setup for **Avoid POPULATE** -We don't recommend using the [`POPULATE`](/reference/statements/create/view#materialized-view) command for backfilling materialized views for anything other than small datasets where ingest is paused. This operator can miss rows inserted into its source table, with the materialized view created after the populate hash is finished. Furthermore, this populate runs against all data and is vulnerable to interruptions or memory limits on large datasets. +We don't recommend using the [`POPULATE`](/core/reference/statements/create/view#materialized-view) command for backfilling materialized views for anything other than small datasets where ingest is paused. This operator can miss rows inserted into its source table, with the materialized view created after the populate hash is finished. Furthermore, this populate runs against all data and is vulnerable to interruptions or memory limits on large datasets. ### Timestamp or Monotonically increasing column available {#timestamp-or-monotonically-increasing-column-available} @@ -397,7 +397,7 @@ Peak memory usage: 543.71 MiB. ``` -In the above example our target table is a [SummingMergeTree](/reference/engines/table-engines/mergetree-family/summingmergetree). In this case we can simply use our original aggregation query. For more complex use cases which exploit the [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree), you will use `-State` functions for the aggregates. An example of this can be found in this [integration guide](/integrations/connectors/data-ingestion/AWS/performance#be-aware-of-merges). +In the above example our target table is a [SummingMergeTree](/core/reference/engines/table-engines/mergetree-family/summingmergetree). In this case we can simply use our original aggregation query. For more complex use cases which exploit the [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree), you will use `-State` functions for the aggregates. An example of this can be found in this [integration guide](/integrations/connectors/data-ingestion/AWS/performance#be-aware-of-merges). In our case, this is a relatively lightweight aggregation that completes in under 3s and uses less than 600MiB of memory. For more complex or longer-running aggregations, you can make this process more resilient by using the earlier duplicate table approach i.e. create a shadow target table, e.g., `pypi_downloads_per_day_v2`, insert into this, and attach its resulting partitions to `pypi_downloads_per_day`. @@ -407,7 +407,7 @@ Often materialized view's query can be more complex (not uncommon as otherwise u In this case, users have several options: 1. Modify your query to backfill ranges e.g. `WHERE timestamp BETWEEN 2024-12-17 08:00:00 AND 2024-12-17 09:00:00`, `WHERE timestamp BETWEEN 2024-12-17 07:00:00 AND 2024-12-17 08:00:00` etc. -2. Use a [Null table engine](/reference/engines/table-engines/special/null) to fill the materialized view. This replicates the typical incremental population of a materialized view, executing it's query over blocks of data (of configurable size). +2. Use a [Null table engine](/core/reference/engines/table-engines/special/null) to fill the materialized view. This replicates the typical incremental population of a materialized view, executing it's query over blocks of data (of configurable size). (1) represents the simplest approach is often sufficient. We don't include examples for brevity. @@ -415,7 +415,7 @@ We explore (2) further below. #### Using a Null table engine for filling materialized views {#using-a-null-table-engine-for-filling-materialized-views} -The [Null table engine](/reference/engines/table-engines/special/null) provides a storage engine which doesn't persist data (think of it as the `/dev/null` of the table engine world). While this seems contradictory, materialized views will still execute on data inserted into this table engine. This allows materialized views to be constructed without persisting the original data - avoiding I/O and the associated storage. +The [Null table engine](/core/reference/engines/table-engines/special/null) provides a storage engine which doesn't persist data (think of it as the `/dev/null` of the table engine world). While this seems contradictory, materialized views will still execute on data inserted into this table engine. This allows materialized views to be constructed without persisting the original data - avoiding I/O and the associated storage. Importantly, any materialized views attached to the table engine still execute over blocks of data as its inserted - sending their results to a target table. These blocks are of a configurable size. While larger blocks can potentially be more efficient (and faster to process), they consume more resources (principally memory). Use of this table engine means we can build our materialized view incrementally i.e. a block at a time, avoiding the need to hold the entire aggregation in memory. @@ -465,10 +465,10 @@ Notice our memory usage here is `639.47 MiB`. Several factors will determine the performance and resources used in the above scenario. Before attempting to tune, we recommend readers understand the insert mechanics documented in detail in the [Using Threads for Reads](/integrations/connectors/data-ingestion/AWS/performance#using-threads-for-reads) section of the [Optimizing for S3 Insert and Read Performance guide](/integrations/connectors/data-ingestion/AWS/performance). In summary: -- **Read Parallelism** - The number of threads used to read. Controlled through [`max_threads`](/reference/settings/session-settings#max_threads). In ClickHouse Cloud this is determined by the instance size with it defaulting to the number of vCPUs. Increasing this value may improve read performance at the expense of greater memory usage. -- **Insert Parallelism** - The number of insert threads used to insert. Controlled through [`max_insert_threads`](/reference/settings/session-settings#max_insert_threads). **Note**: This value is capped by `max_threads`, so the effective insert parallelism is `min(max_insert_threads, max_threads)`. In ClickHouse Cloud this is determined by the instance size (between 2 and 4) and is set to 1 in OSS. Increasing this value may improve performance at the expense of greater memory usage. -- **Insert Block Size** - data is processed in a loop where it is pulled, parsed, and formed into in-memory insert blocks based on the [partitioning key](/reference/engines/table-engines/mergetree-family/custom-partitioning-key). These blocks are sorted, optimized, compressed, and written to storage as new [data parts](/concepts/core-concepts/parts). The size of the insert block, controlled by settings [`min_insert_block_size_rows`](/reference/settings/session-settings#min_insert_block_size_rows) and [`min_insert_block_size_bytes`](/reference/settings/session-settings#min_insert_block_size_bytes) (uncompressed), impacts memory usage and disk I/O. Larger blocks use more memory but create fewer parts, reducing I/O and background merges. These settings represent minimum thresholds (whichever is reached first triggers a flush). -- **Materialized view block size** - As well as the above mechanics for the main insert, prior to insertion into materialized views, blocks are also squashed for more efficient processing. The size of these blocks is determined by the settings [`min_insert_block_size_bytes_for_materialized_views`](/reference/settings/session-settings#min_insert_block_size_bytes_for_materialized_views) and [`min_insert_block_size_rows_for_materialized_views`](/reference/settings/session-settings#min_insert_block_size_rows_for_materialized_views). Larger blocks allow more efficient processing at the expense of greater memory usage. By default, these settings revert to the values of the source table settings [`min_insert_block_size_rows`](/reference/settings/session-settings#min_insert_block_size_rows) and [`min_insert_block_size_bytes`](/reference/settings/session-settings#min_insert_block_size_bytes), respectively. +- **Read Parallelism** - The number of threads used to read. Controlled through [`max_threads`](/core/reference/settings/session-settings#max_threads). In ClickHouse Cloud this is determined by the instance size with it defaulting to the number of vCPUs. Increasing this value may improve read performance at the expense of greater memory usage. +- **Insert Parallelism** - The number of insert threads used to insert. Controlled through [`max_insert_threads`](/core/reference/settings/session-settings#max_insert_threads). **Note**: This value is capped by `max_threads`, so the effective insert parallelism is `min(max_insert_threads, max_threads)`. In ClickHouse Cloud this is determined by the instance size (between 2 and 4) and is set to 1 in OSS. Increasing this value may improve performance at the expense of greater memory usage. +- **Insert Block Size** - data is processed in a loop where it is pulled, parsed, and formed into in-memory insert blocks based on the [partitioning key](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key). These blocks are sorted, optimized, compressed, and written to storage as new [data parts](/core/concepts/core-concepts/parts). The size of the insert block, controlled by settings [`min_insert_block_size_rows`](/core/reference/settings/session-settings#min_insert_block_size_rows) and [`min_insert_block_size_bytes`](/core/reference/settings/session-settings#min_insert_block_size_bytes) (uncompressed), impacts memory usage and disk I/O. Larger blocks use more memory but create fewer parts, reducing I/O and background merges. These settings represent minimum thresholds (whichever is reached first triggers a flush). +- **Materialized view block size** - As well as the above mechanics for the main insert, prior to insertion into materialized views, blocks are also squashed for more efficient processing. The size of these blocks is determined by the settings [`min_insert_block_size_bytes_for_materialized_views`](/core/reference/settings/session-settings#min_insert_block_size_bytes_for_materialized_views) and [`min_insert_block_size_rows_for_materialized_views`](/core/reference/settings/session-settings#min_insert_block_size_rows_for_materialized_views). Larger blocks allow more efficient processing at the expense of greater memory usage. By default, these settings revert to the values of the source table settings [`min_insert_block_size_rows`](/core/reference/settings/session-settings#min_insert_block_size_rows) and [`min_insert_block_size_bytes`](/core/reference/settings/session-settings#min_insert_block_size_bytes), respectively. **Tip for trivial INSERT SELECT queries**: For simple `INSERT INTO t1 SELECT * FROM t2` queries without complex transformations, consider enabling `optimize_trivial_insert_select=1`. This setting (disabled by default since version 24.7) automatically adjusts the SELECT parallelism to match `max_insert_threads`, reducing resource usage and the number of parts created. This is particularly useful for bulk data migrations between tables. @@ -531,7 +531,7 @@ The above processes rely on the user have a timestamp or monotonically increasin 1. Pause inserts into your main table. 2. Create a duplicate of your main target table using the `CREATE AS` syntax. -3. Attach partitions from the original target table to the duplicate using [`ALTER TABLE ATTACH`](/reference/statements/alter/partition#attach-partitionpart). **Note:** This attach operation is different than the earlier used move. While relying on hard links, the data in the original table is preserved. +3. Attach partitions from the original target table to the duplicate using [`ALTER TABLE ATTACH`](/core/reference/statements/alter/partition#attach-partitionpart). **Note:** This attach operation is different than the earlier used move. While relying on hard links, the data in the original table is preserved. 4. Create new materialized views. 5. Restart inserts. **Note:** Inserts will only update the target table, and not the duplicate, which will reference only the original data. 6. Backfill the materialized view, applying the same process used above for data with timestamps, using the duplicate table as the source. diff --git a/guides/cloud-oss/data-modelling/compression/compression-in-clickhouse.mdx b/core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse.mdx similarity index 98% rename from guides/cloud-oss/data-modelling/compression/compression-in-clickhouse.mdx rename to core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse.mdx index 14956b1c..4d39a6a7 100644 --- a/guides/cloud-oss/data-modelling/compression/compression-in-clickhouse.mdx +++ b/core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse.mdx @@ -65,9 +65,9 @@ GROUP BY name If you're seeing `compressed_size` or `uncompressed_size` values equal to `0`, this could be because the type of the -parts are `compact` and not `wide` (see description for `part_type` in [`system.parts`](/reference/system-tables/parts)). -The part format is controlled by settings [`min_bytes_for_wide_part`](/reference/settings/merge-tree-settings#min_bytes_for_wide_part) -and [`min_rows_for_wide_part`](/reference/settings/merge-tree-settings#min_rows_for_wide_part) meaning that if the inserted +parts are `compact` and not `wide` (see description for `part_type` in [`system.parts`](/core/reference/system-tables/parts)). +The part format is controlled by settings [`min_bytes_for_wide_part`](/core/reference/settings/merge-tree-settings#min_bytes_for_wide_part) +and [`min_rows_for_wide_part`](/core/reference/settings/merge-tree-settings#min_rows_for_wide_part) meaning that if the inserted data results in a part which doesn't exceed the values of the aforementioned settings, the part will be compact rather than wide and you won't see the values for `compressed_size` or `uncompressed_size`. @@ -223,7 +223,7 @@ Recommendation | Reasoning **`Gorilla` and `T64` for unknown patterns?** | If the data has an unknown pattern, it may be worth trying `Gorilla` and `T64`. **`Gorilla` for gauge data** | `Gorilla` can be effective on floating point data, specifically that which represents gauge readings, i.e. random spikes. -See [here](/reference/statements/create/table#column_compression_codec) for further options. +See [here](/core/reference/statements/create/table#column_compression_codec) for further options. Below we specify the `Delta` codec for the `Id`, `ViewCount` and `AnswerCount`, hypothesizing these will be linearly correlated with the ordering key and thus should benefit from Delta encoding. diff --git a/guides/cloud-oss/data-modelling/compression/compression-modes.mdx b/core/guides/clickhouse/data-modelling/compression/compression-modes.mdx similarity index 85% rename from guides/cloud-oss/data-modelling/compression/compression-modes.mdx rename to core/guides/clickhouse/data-modelling/compression/compression-modes.mdx index 7444b932..6bf581da 100644 --- a/guides/cloud-oss/data-modelling/compression/compression-modes.mdx +++ b/core/guides/clickhouse/data-modelling/compression/compression-modes.mdx @@ -12,7 +12,7 @@ ClickHouse protocol supports **data blocks** compression with checksums. Use `LZ4` if not sure what mode to pick. `` -Learn more about the [column compression codecs](/reference/statements/create/table#column_compression_codec) available and specify them when creating your tables, or afterward. +Learn more about the [column compression codecs](/core/reference/statements/create/table#column_compression_codec) available and specify them when creating your tables, or afterward. ## Modes {#modes} @@ -35,7 +35,7 @@ From [Facebook benchmarks](https://facebook.github.io/zstd/#benchmarks): | field | type | description | |-----------------|---------|--------------------------------------------------| -| checksum | uint128 | [Hash](/resources/contribute/native-protocol/hash) of (header + compressed data) | +| checksum | uint128 | [Hash](/resources/develop-contribute/native-protocol/hash) of (header + compressed data) | | raw_size | uint32 | Raw size without header | | data_size | uint32 | Uncompressed data size | | mode | byte | Compression mode | @@ -45,7 +45,7 @@ From [Facebook benchmarks](https://facebook.github.io/zstd/#benchmarks): Header is (raw_size + data_size + mode), raw size consists of len(header + compressed_data). -Checksum is `hash(header + compressed_data)`, using [ClickHouse CityHash](/resources/contribute/native-protocol/hash). +Checksum is `hash(header + compressed_data)`, using [ClickHouse CityHash](/resources/develop-contribute/native-protocol/hash). ## None mode {#none-mode} diff --git a/guides/cloud-oss/data-modelling/denormalization.mdx b/core/guides/clickhouse/data-modelling/denormalization.mdx similarity index 96% rename from guides/cloud-oss/data-modelling/denormalization.mdx rename to core/guides/clickhouse/data-modelling/denormalization.mdx index 46c53471..dba1baaa 100644 --- a/guides/cloud-oss/data-modelling/denormalization.mdx +++ b/core/guides/clickhouse/data-modelling/denormalization.mdx @@ -123,7 +123,7 @@ LIMIT 5 └──────────┴──────────────────────────────────────────────┴───────┘ ``` -The main observation here is that aggregated vote statistics for each post would be sufficient for most analysis - we don't need to denormalize all of the vote information. For example, the current `Score` column represents such a statistic i.e. total up votes minus down votes. Ideally, we would just be able to retrieve these statistics at query time with a simple lookup (see [dictionaries](/concepts/features/dictionaries)). +The main observation here is that aggregated vote statistics for each post would be sufficient for most analysis - we don't need to denormalize all of the vote information. For example, the current `Score` column represents such a statistic i.e. total up votes minus down votes. Ideally, we would just be able to retrieve these statistics at query time with a simple lookup (see [dictionaries](/core/concepts/features/dictionaries)). ### Users and Badges {#users-and-badges} @@ -362,9 +362,9 @@ We have shown above how ClickHouse can be used to perform this transformation on Users have several options for orchestrating this in ClickHouse, assuming a periodic batch load process is acceptable: -- **[Refreshable Materialized Views](/concepts/features/materialized-views/refreshable-materialized-view)** - Refreshable materialized views can be used to periodically schedule a query with the results sent to a target table. On query execution, the view ensures the target table is atomically updated. This provides a ClickHouse native means of scheduling this work. -- **External tooling** - Utilizing tools such as [dbt](https://www.getdbt.com/) and [Airflow](https://airflow.apache.org/) to periodically schedule the transformation. The [ClickHouse integration for dbt](/integrations/connectors/data-ingestion/etl-tools/dbt) ensures this is performed atomically with a new version of the target table created and then atomically swapped with the version receiving queries (via the [EXCHANGE](/reference/statements/exchange) command). +- **[Refreshable Materialized Views](/core/concepts/features/materialized-views/refreshable-materialized-view)** - Refreshable materialized views can be used to periodically schedule a query with the results sent to a target table. On query execution, the view ensures the target table is atomically updated. This provides a ClickHouse native means of scheduling this work. +- **External tooling** - Utilizing tools such as [dbt](https://www.getdbt.com/) and [Airflow](https://airflow.apache.org/) to periodically schedule the transformation. The [ClickHouse integration for dbt](/integrations/connectors/data-ingestion/etl-tools/dbt) ensures this is performed atomically with a new version of the target table created and then atomically swapped with the version receiving queries (via the [EXCHANGE](/core/reference/statements/exchange) command). ### Streaming {#streaming} -You may alternatively wish to perform this outside of ClickHouse, prior to insertion, using streaming technologies such as [Apache Flink](/integrations/connectors/data-ingestion/apache-flink). Alternatively, incremental [materialized views](/concepts/features/materialized-views/cascading-materialized-views) can be used to perform this process as data is inserted. +You may alternatively wish to perform this outside of ClickHouse, prior to insertion, using streaming technologies such as [Apache Flink](/integrations/connectors/data-ingestion/apache-flink). Alternatively, incremental [materialized views](/core/concepts/features/materialized-views/cascading-materialized-views) can be used to perform this process as data is inserted. diff --git a/get-started/oss/starter-guides/generating-test-data.mdx b/core/guides/clickhouse/data-modelling/generating-test-data.mdx similarity index 95% rename from get-started/oss/starter-guides/generating-test-data.mdx rename to core/guides/clickhouse/data-modelling/generating-test-data.mdx index 1380e98a..a258945f 100644 --- a/get-started/oss/starter-guides/generating-test-data.mdx +++ b/core/guides/clickhouse/data-modelling/generating-test-data.mdx @@ -1,7 +1,7 @@ --- sidebarTitle: 'Generating random test data' title: 'Generating random test data in ClickHouse' -slug: /guides/generating-test-data +slug: /core/guides/generating-test-data description: 'Learn about Generating Random Test Data in ClickHouse' show_related_blogs: true doc_type: 'guide' @@ -9,7 +9,7 @@ keywords: ['random data', 'test data'] --- Generating random data is useful when testing new use cases or benchmarking your implementation. -ClickHouse has a [wide range of functions for generating random data](/reference/functions/regular-functions/random-functions) that, in many cases, avoid the need for an external data generator. +ClickHouse has a [wide range of functions for generating random data](/core/reference/functions/regular-functions/random-functions) that, in many cases, avoid the need for an external data generator. This guide provides several examples of how to generate random datasets in ClickHouse with different randomness requirements. @@ -146,7 +146,7 @@ Read the [Generating Random Data in ClickHouse](https://clickhouse.com/blog/gene ## Generating random tables {#generating-random-tables} -The [`generateRandomStructure`](/reference/functions/regular-functions/other-functions#generateRandomStructure) function is particularly useful when combined with the [`generateRandom`](/reference/functions/table-functions/generate) table engine for testing, benchmarking, or creating mock data with arbitrary schemas. +The [`generateRandomStructure`](/core/reference/functions/regular-functions/other-functions#generateRandomStructure) function is particularly useful when combined with the [`generateRandom`](/core/reference/functions/table-functions/generate) table engine for testing, benchmarking, or creating mock data with arbitrary schemas. Let's start by just seeing what a random structure looks like using the `generateRandomStructure` function: diff --git a/core/guides/clickhouse/data-modelling/index.mdx b/core/guides/clickhouse/data-modelling/index.mdx new file mode 100644 index 00000000..ff7de4d3 --- /dev/null +++ b/core/guides/clickhouse/data-modelling/index.mdx @@ -0,0 +1,18 @@ +--- +slug: /data-modeling/overview +title: 'Data modelling overview' +description: 'Overview of Data Modelling' +keywords: ['data modelling', 'schema design', 'dictionary', 'materialized view', 'data compression', 'denormalizing data'] +doc_type: 'landing-page' +--- + +This section is about data modeling in ClickHouse and contains the following topics: + +| Page | Description | +|-----------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [Schema Design](/core/guides/clickhouse/data-modelling/schema-design) | Discusses ClickHouse schema design for optimal performance, considering factors like queries, data updates, latency, and volume. | +| [Dictionary](/core/concepts/features/dictionaries) | An explainer on how to define and use dictionaries to improve query performance and enrich data. | +| [Materialized Views](/core/concepts/features/materialized-views) | Information on Materialized Views and Refreshable Materialized Views in ClickHouse. | +| [Projections](/core/concepts/features/projections/projections)| Information on Projections in ClickHouse.| +| [Data Compression](/core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse) | Discusses various compression modes in ClickHouse and how to optimize data storage and query performance by choosing the right compression method for your specific data types and workloads. | +| [Denormalizing Data](/core/guides/clickhouse/data-modelling/denormalization) | Discusses the denormalization approach used in ClickHouse which aims to improve query performance by storing related data in a single table. | diff --git a/guides/cloud-oss/data-modelling/merge-table-function.mdx b/core/guides/clickhouse/data-modelling/merge-table-function.mdx similarity index 94% rename from guides/cloud-oss/data-modelling/merge-table-function.mdx rename to core/guides/clickhouse/data-modelling/merge-table-function.mdx index fd11e6ff..720d3222 100644 --- a/guides/cloud-oss/data-modelling/merge-table-function.mdx +++ b/core/guides/clickhouse/data-modelling/merge-table-function.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/merge-table-function +slug: /core/guides/developer/merge-table-function sidebarTitle: 'Merge table function' title: 'Merge table function' description: 'Query multiple tables at the same time.' @@ -7,8 +7,8 @@ doc_type: 'reference' keywords: ['merge', 'table function', 'query patterns', 'table engine', 'data access'] --- -The [merge table function](/reference/functions/table-functions/merge) lets us query multiple tables in parallel. -It does this by creating a temporary [Merge](/reference/engines/table-engines/special/merge) table and derives this table's structure by taking a union of their columns and by deriving common types. +The [merge table function](/core/reference/functions/table-functions/merge) lets us query multiple tables in parallel. +It does this by creating a temporary [Merge](/core/reference/engines/table-engines/special/merge) table and derives this table's structure by taking a union of their columns and by deriving common types. @@ -132,7 +132,7 @@ AND multiIf( ); ``` -We use the [`variantType`](/reference/functions/regular-functions/other-functions#variantType) function to check the type of `winner_seed` for each row and then [`variantElement`](/reference/functions/regular-functions/other-functions#variantElement) to extract the underlying value. +We use the [`variantType`](/core/reference/functions/regular-functions/other-functions#variantType) function to check the type of `winner_seed` for each row and then [`variantElement`](/core/reference/functions/regular-functions/other-functions#variantElement) to extract the underlying value. When the type is `String`, we cast to a number and then do the comparison. The result of running the query is shown below: diff --git a/guides/cloud-oss/data-modelling/schema-design.mdx b/core/guides/clickhouse/data-modelling/schema-design.mdx similarity index 94% rename from guides/cloud-oss/data-modelling/schema-design.mdx rename to core/guides/clickhouse/data-modelling/schema-design.mdx index 77040bb2..cf5de438 100644 --- a/guides/cloud-oss/data-modelling/schema-design.mdx +++ b/core/guides/clickhouse/data-modelling/schema-design.mdx @@ -30,7 +30,7 @@ Since the `posts` table will be the target for most analytics queries, we focus > Loading data from S3 in Parquet format represents the most common and preferred way to load data into ClickHouse. ClickHouse is optimized for processing Parquet and can potentially read and insert 10s of millions of rows from S3 per second. -ClickHouse provides a schema inference capability to automatically identify the types for a dataset. This is supported for all data formats, including Parquet. We can exploit this feature to identify the ClickHouse types for the data via s3 table function and[`DESCRIBE`](/reference/statements/describe-table) command. Note below we use the glob pattern `*.parquet` to read all files in the `stackoverflow/parquet/posts` folder. +ClickHouse provides a schema inference capability to automatically identify the types for a dataset. This is supported for all data formats, including Parquet. We can exploit this feature to identify the ClickHouse types for the data via s3 table function and[`DESCRIBE`](/core/reference/statements/describe-table) command. Note below we use the glob pattern `*.parquet` to read all files in the `stackoverflow/parquet/posts` folder. ```sql DESCRIBE TABLE s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/posts/*.parquet') @@ -62,7 +62,7 @@ SETTINGS describe_compact_output = 1 └───────────────────────┴────────────────────────────────┘ ``` -> The [s3 table function](/reference/functions/table-functions/s3) allows data in S3 to be queried in-place from ClickHouse. This function is compatible with all of the file formats ClickHouse supports. +> The [s3 table function](/core/reference/functions/table-functions/s3) allows data in S3 to be queried in-place from ClickHouse. This function is compatible with all of the file formats ClickHouse supports. This provides us with an initial non-optimized schema. By default, ClickHouse maps these to equivalent Nullable types. We can create a ClickHouse table using these types with a simple `CREATE EMPTY AS SELECT` command. @@ -122,7 +122,7 @@ INSERT INTO posts SELECT * FROM s3('https://datasets-documentation.s3.eu-west-3. 0 rows in set. Elapsed: 148.140 sec. Processed 59.82 million rows, 38.07 GB (403.80 thousand rows/s., 257.00 MB/s.) ``` -> The above query loads 60m rows. While small for ClickHouse, users with slower internet connections may wish to load a subset of data. This can be achieved by simply specifying the years they wish to load via a glob pattern e.g. `https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/posts/2008.parquet` or `https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/posts/{2008, 2009}.parquet`. See [here](/reference/functions/table-functions/file#globs-in-path) for how glob patterns can be used to target subsets of files. +> The above query loads 60m rows. While small for ClickHouse, users with slower internet connections may wish to load a subset of data. This can be achieved by simply specifying the years they wish to load via a glob pattern e.g. `https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/posts/2008.parquet` or `https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/parquet/posts/{2008, 2009}.parquet`. See [here](/core/reference/functions/table-functions/file#globs-in-path) for how glob patterns can be used to target subsets of files. ## Optimizing Types {#optimizing-types} @@ -323,7 +323,7 @@ LIMIT 3 10 rows in set. Elapsed: 0.020 sec. Processed 290.09 thousand rows, 21.03 MB (14.65 million rows/s., 1.06 GB/s.) ``` -For users interested in the compression improvements achieved by using specific types and appropriate ordering keys, see [Compression in ClickHouse](/guides/cloud-oss/data-modelling/compression/compression-in-clickhouse). If you need to further improve compression we also recommend the section [Choosing the right column compression codec](/guides/cloud-oss/data-modelling/compression/compression-in-clickhouse#choosing-the-right-column-compression-codec). +For users interested in the compression improvements achieved by using specific types and appropriate ordering keys, see [Compression in ClickHouse](/core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse). If you need to further improve compression we also recommend the section [Choosing the right column compression codec](/core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse#choosing-the-right-column-compression-codec). ## Next: Data Modeling Techniques {#next-data-modeling-techniques} @@ -339,9 +339,9 @@ The following approaches all aim to minimize the need to use JOINs to optimize r In order to minimize the use of Joins at query time, users have several tools/approaches: -- [**Denormalizing data**](/guides/cloud-oss/data-modelling/denormalization) - Denormalize data by combining tables and using complex types for non 1:1 relationships. This often involves moving any joins from query time to insert time. -- [**Dictionaries**](/concepts/features/dictionaries) - A ClickHouse specific feature for handling direct joins and key value lookups. -- [**Incremental Materialized Views**](/concepts/features/materialized-views/incremental-materialized-view) - A ClickHouse feature for shifting the cost of a computation from query time to insert time, including the ability to incrementally compute aggregate values. -- [**Refreshable Materialized Views**](/concepts/features/materialized-views/refreshable-materialized-view) - Similar to materialized views used in other database products, this allows the results of a query to be periodically computed and the result cached. +- [**Denormalizing data**](/core/guides/clickhouse/data-modelling/denormalization) - Denormalize data by combining tables and using complex types for non 1:1 relationships. This often involves moving any joins from query time to insert time. +- [**Dictionaries**](/core/concepts/features/dictionaries) - A ClickHouse specific feature for handling direct joins and key value lookups. +- [**Incremental Materialized Views**](/core/concepts/features/materialized-views/incremental-materialized-view) - A ClickHouse feature for shifting the cost of a computation from query time to insert time, including the ability to incrementally compute aggregate values. +- [**Refreshable Materialized Views**](/core/concepts/features/materialized-views/refreshable-materialized-view) - Similar to materialized views used in other database products, this allows the results of a query to be periodically computed and the result cached. We explore each of these approaches in each guide, highlighting when each is appropriate with an example showing how it can be applied to solving questions for the Stack Overflow dataset. diff --git a/guides/cloud-oss/data-modelling/sparse-primary-indexes.mdx b/core/guides/clickhouse/data-modelling/sparse-primary-indexes.mdx similarity index 89% rename from guides/cloud-oss/data-modelling/sparse-primary-indexes.mdx rename to core/guides/clickhouse/data-modelling/sparse-primary-indexes.mdx index 909316e1..9eeac48a 100644 --- a/guides/cloud-oss/data-modelling/sparse-primary-indexes.mdx +++ b/core/guides/clickhouse/data-modelling/sparse-primary-indexes.mdx @@ -2,7 +2,7 @@ sidebarTitle: 'Primary indexes' description: 'In this guide we''re going to do a deep dive into ClickHouse indexing.' title: 'A practical introduction to primary indexes in ClickHouse' -slug: /guides/best-practices/sparse-primary-indexes +slug: /core/guides/best-practices/sparse-primary-indexes show_related_blogs: true doc_type: 'guide' keywords: ['primary index', 'indexing', 'performance', 'query optimization', 'best practices'] @@ -18,12 +18,12 @@ In this guide we're going to do a deep dive into ClickHouse indexing. We will il - [what some of the best practices are for indexing in ClickHouse](#using-multiple-primary-indexes) You can optionally execute all ClickHouse SQL statements and queries given in this guide by yourself on your own machine. -For installation of ClickHouse and getting started instructions, see the [Quick Start](/get-started/setup/overview). +For installation of ClickHouse and getting started instructions, see the [Quick Start](/core/get-started/setup/install). This guide is focusing on ClickHouse sparse primary indexes. -For ClickHouse [secondary data skipping indexes](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes), see the [Tutorial](/concepts/features/performance/skip-indexes/skipping-indexes). +For ClickHouse [secondary data skipping indexes](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes), see the [Tutorial](/core/concepts/features/performance/skip-indexes/skipping-indexes). ### Data set {#data-set} @@ -60,7 +60,7 @@ PRIMARY KEY tuple(); ``` Next insert a subset of the hits data set into the table with the following SQL insert statement. -This uses the [URL table function](/reference/functions/table-functions/url) in order to load a subset of the full dataset hosted remotely at clickhouse.com: +This uses the [URL table function](/core/reference/functions/table-functions/url) in order to load a subset of the full dataset hosted remotely at clickhouse.com: ```sql INSERT INTO hits_NoPrimaryKey SELECT @@ -79,7 +79,7 @@ Ok. ClickHouse client's result output shows us that the statement above inserted 8.87 million rows into the table. -Lastly, in order to simplify the discussions later on in this guide and to make the diagrams and results reproducible, we [optimize](/reference/statements/optimize) the table using the FINAL keyword: +Lastly, in order to simplify the discussions later on in this guide and to make the diagrams and results reproducible, we [optimize](/core/reference/statements/optimize) the table using the FINAL keyword: ```sql OPTIMIZE TABLE hits_NoPrimaryKey FINAL; @@ -130,7 +130,7 @@ To make this (way) more efficient and (much) faster, we need to use a table with In traditional relational database management systems, the primary index would contain one entry per table row. This would result in the primary index containing 8.87 million entries for our data set. Such an index allows the fast location of specific rows, resulting in high efficiency for lookup queries and point updates. Searching an entry in a `B(+)-Tree` data structure has an average time complexity of `O(log n)`; more precisely, `log_b n = log_2 n / log_2 b` where `b` is the branching factor of the `B(+)-Tree` and `n` is the number of indexed rows. Because `b` is typically between several hundred and several thousand, `B(+)-Trees` are very shallow structures, and few disk-seeks are required to locate records. With 8.87 million rows and a branching factor of 1000, 2.3 disk seeks are needed on average. This capability comes at a cost: additional disk and memory overheads, higher insertion costs when adding new rows to the table and entries to the index, and sometimes rebalancing of the B-Tree. -Considering the challenges associated with B-Tree indexes, table engines in ClickHouse utilise a different approach. The ClickHouse [MergeTree Engine Family](/reference/engines/table-engines/mergetree-family) has been designed and optimized to handle massive data volumes. These tables are designed to receive millions of row inserts per second and store very large (100s of Petabytes) volumes of data. Data is quickly written to a table [part by part](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage), with rules applied for merging the parts in the background. In ClickHouse each part has its own primary index. When parts are merged, then the merged part's primary indexes are also merged. At the very large scale that ClickHouse is designed for, it is paramount to be very disk and memory efficient. Therefore, instead of indexing every row, the primary index for a part has one index entry (known as a 'mark') per group of rows (called 'granule') - this technique is called **sparse index**. +Considering the challenges associated with B-Tree indexes, table engines in ClickHouse utilise a different approach. The ClickHouse [MergeTree Engine Family](/core/reference/engines/table-engines/mergetree-family) has been designed and optimized to handle massive data volumes. These tables are designed to receive millions of row inserts per second and store very large (100s of Petabytes) volumes of data. Data is quickly written to a table [part by part](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage), with rules applied for merging the parts in the background. In ClickHouse each part has its own primary index. When parts are merged, then the merged part's primary indexes are also merged. At the very large scale that ClickHouse is designed for, it is paramount to be very disk and memory efficient. Therefore, instead of indexing every row, the primary index for a part has one index entry (known as a 'mark') per group of rows (called 'granule') - this technique is called **sparse index**. Sparse indexing is possible because ClickHouse is storing the rows for a part on disk ordered by the primary key columns. Instead of directly locating single rows (like a B-Tree based index), the sparse primary index allows it to quickly (via a binary search over index entries) identify groups of rows that could possibly match the query. The located groups of potentially matching rows (granules) are then in parallel streamed into the ClickHouse engine in order to find the matches. This index design allows for the primary index to be small (it can, and must, completely fit into the main memory), whilst still significantly speeding up query execution times: especially for range queries that are typical in data analytics use cases. @@ -250,7 +250,7 @@ bytes_on_disk: 207.07 MiB The output of the ClickHouse client shows: -- The table's data is stored in [wide format](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage) in a specific directory on disk meaning that there will be one data file (and one mark file) per table column inside that directory. +- The table's data is stored in [wide format](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage) in a specific directory on disk meaning that there will be one data file (and one mark file) per table column inside that directory. - The table has 8.87 million rows. - The uncompressed data size of all rows together is 733.28 MB. - The compressed size on disk of all rows together is 206.94 MB. @@ -260,8 +260,8 @@ The output of the ClickHouse client shows: ### Data is stored on disk ordered by primary key columns {#data-is-stored-on-disk-ordered-by-primary-key-columns} Our table that we created above has -- a compound [primary key](/reference/engines/table-engines/mergetree-family/mergetree#primary-keys-and-indexes-in-queries) `(UserID, URL)` and -- a compound [sorting key](/reference/engines/table-engines/mergetree-family/mergetree#choosing-a-primary-key-that-differs-from-the-sorting-key) `(UserID, URL, EventTime)`. +- a compound [primary key](/core/reference/engines/table-engines/mergetree-family/mergetree#primary-keys-and-indexes-in-queries) `(UserID, URL)` and +- a compound [sorting key](/core/reference/engines/table-engines/mergetree-family/mergetree#choosing-a-primary-key-that-differs-from-the-sorting-key) `(UserID, URL, EventTime)`. - If we would have specified only the sorting key, then the primary key would be implicitly defined to be equal to the sorting key. @@ -279,8 +279,8 @@ The inserted rows are stored on disk in lexicographical order (ascending) by the ClickHouse allows inserting multiple rows with identical primary key column values. In this case (see row 1 and row 2 in the diagram below), the final order is determined by the specified sorting key and therefore the value of the `EventTime` column. -ClickHouse is a column-oriented database management system. As shown in the diagram below -- for the on disk representation, there is a single data file (*.bin) per table column where all the values for that column are stored in a compressed format, and +ClickHouse is a column-oriented database management system. As shown in the diagram below +- for the on disk representation, there is a single data file (*.bin) per table column where all the values for that column are stored in a compressed format, and - the 8.87 million rows are stored on disk in lexicographic ascending order by the primary key columns (and the additional sort key columns) i.e. in this case - first by `UserID`, - then by `URL`, @@ -319,7 +319,7 @@ The first (based on physical order on disk) 8192 rows (their column values) logi Therefore all granules (except the last one) of our example table have the same size. -- For tables with adaptive index granularity (index granularity is adaptive by [default](/reference/settings/merge-tree-settings#index_granularity_bytes) the size of some granules can be less than 8192 rows depending on the row data sizes. +- For tables with adaptive index granularity (index granularity is adaptive by [default](/core/reference/settings/merge-tree-settings#index_granularity_bytes) the size of some granules can be less than 8192 rows depending on the row data sizes. - We marked some column values from our primary key columns (`UserID`, `URL`) in orange. These orange-marked column values are the primary key column values of each first row of each granule. @@ -353,9 +353,9 @@ In total the index has 1083 entries for our table with 8.87 million rows and 108

-On a self-managed ClickHouse cluster we can use the file table function for inspecting the content of the primary index of our example table. +On a self-managed ClickHouse cluster we can use the file table function for inspecting the content of the primary index of our example table. -For that we first need to copy the primary index file into the user_files_path of a node from the running cluster: +For that we first need to copy the primary index file into the user_files_path of a node from the running cluster:

  • Step 1: Get part-path that contains the primary index file
  • ` @@ -468,7 +468,7 @@ Processed 8.19 thousand rows, The output for the ClickHouse client is now showing that instead of doing a full table scan, only 8.19 thousand rows were streamed into ClickHouse. -If trace logging is enabled then the ClickHouse server log file shows that ClickHouse was running a binary search over the 1083 UserID index marks, in order to identify granules that possibly can contain rows with a UserID column value of `749927693`. This requires 19 steps with an average time complexity of `O(log2 n)`: +If trace logging is enabled then the ClickHouse server log file shows that ClickHouse was running a binary search over the 1083 UserID index marks, in order to identify granules that possibly can contain rows with a UserID column value of `749927693`. This requires 19 steps with an average time complexity of `O(log2 n)`: ```response highlight={2,7} ...Executor): Key condition: (column 0 in [749927693, 749927693]) ...Executor): Running binary search on index range for part all_1_9_2 (1083 marks) @@ -489,7 +489,7 @@ Mark 176 was identified (the 'found left boundary mark' is inclusive, the 'found

    -We can also reproduce this by using the EXPLAIN clause in our example query: +We can also reproduce this by using the EXPLAIN clause in our example query: ```sql EXPLAIN indexes = 1 SELECT URL, count(URL) AS Count @@ -575,7 +575,7 @@ Once ClickHouse has identified and selected the index mark for a granule that ca Each mark file entry for a specific column is storing two locations in the form of offsets: -- The first offset ('block_offset' in the diagram above) is locating the block in the compressed column data file that contains the compressed version of the selected granule. This compressed block potentially contains a few compressed granules. The located compressed file block is uncompressed into the main memory on read. +- The first offset ('block_offset' in the diagram above) is locating the block in the compressed column data file that contains the compressed version of the selected granule. This compressed block potentially contains a few compressed granules. The located compressed file block is uncompressed into the main memory on read. - The second offset ('granule_offset' in the diagram above) from the mark-file provides the location of the granule within the uncompressed block data. @@ -583,13 +583,13 @@ All the 8192 rows belonging to the located uncompressed granule are then streame -- For tables with [wide format](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage) and without [adaptive index granularity](/resources/changelogs/oss/2019#experimental-features-1), ClickHouse uses `.mrk` mark files as visualised above, that contain entries with two 8 byte long addresses per entry. These entries are physical locations of granules that all have the same size. +- For tables with [wide format](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage) and without [adaptive index granularity](/resources/changelogs/oss/2019#experimental-features-1), ClickHouse uses `.mrk` mark files as visualised above, that contain entries with two 8 byte long addresses per entry. These entries are physical locations of granules that all have the same size. - Index granularity is adaptive by [default](/reference/settings/merge-tree-settings#index_granularity_bytes), but for our example table we disabled adaptive index granularity (in order to simplify the discussions in this guide, as well as make the diagrams and results reproducible). Our table is using wide format because the size of the data is larger than [min_bytes_for_wide_part](/reference/settings/merge-tree-settings#min_bytes_for_wide_part) (which is 10 MB by default for self-managed clusters). + Index granularity is adaptive by [default](/core/reference/settings/merge-tree-settings#index_granularity_bytes), but for our example table we disabled adaptive index granularity (in order to simplify the discussions in this guide, as well as make the diagrams and results reproducible). Our table is using wide format because the size of the data is larger than [min_bytes_for_wide_part](/core/reference/settings/merge-tree-settings#min_bytes_for_wide_part) (which is 10 MB by default for self-managed clusters). - For tables with wide format and with adaptive index granularity, ClickHouse uses `.mrk2` mark files, that contain similar entries to `.mrk` mark files but with an additional third value per entry: the number of rows of the granule that the current entry is associated with. -- For tables with [compact format](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage), ClickHouse uses `.mrk3` mark files. +- For tables with [compact format](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage), ClickHouse uses `.mrk3` mark files. @@ -684,7 +684,7 @@ Processed 8.81 million rows, The client output indicates that ClickHouse almost executed a full table scan despite the [URL column being part of the compound primary key](#a-table-with-a-primary-key)! ClickHouse reads 8.81 million rows from the 8.87 million rows of the table. -If [trace_logging](/reference/settings/server-settings/settings#logger) is enabled then the ClickHouse server log file shows that ClickHouse used a generic exclusion search over the 1083 URL index marks in order to identify those granules that possibly can contain rows with a URL column value of "http://public_search": +If [trace_logging](/core/reference/settings/server-settings/settings#logger) is enabled then the ClickHouse server log file shows that ClickHouse used a generic exclusion search over the 1083 URL index marks in order to identify those granules that possibly can contain rows with a URL column value of "http://public_search": ```response highlight={3,6} ...Executor): Key condition: (column 1 in ['http://public_search', 'http://public_search']) @@ -760,10 +760,10 @@ In our sample data set both key columns (UserID, URL) have similar high cardinal ### Note about data skipping index {#note-about-data-skipping-index} -Because of the similarly high cardinality of UserID and URL, our [query filtering on URL](/guides/cloud-oss/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient) also wouldn't benefit much from creating a [secondary data skipping index](/concepts/features/performance/skip-indexes/skipping-indexes) on the URL column +Because of the similarly high cardinality of UserID and URL, our [query filtering on URL](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient) also wouldn't benefit much from creating a [secondary data skipping index](/core/concepts/features/performance/skip-indexes/skipping-indexes) on the URL column of our [table with compound primary key (UserID, URL)](#a-table-with-a-primary-key). -For example this two statements create and populate a [minmax](/reference/engines/table-engines/mergetree-family/mergetree#primary-keys-and-indexes-in-queries) data skipping index on the URL column of our table: +For example this two statements create and populate a [minmax](/core/reference/engines/table-engines/mergetree-family/mergetree#primary-keys-and-indexes-in-queries) data skipping index on the URL column of our table: ```sql ALTER TABLE hits_UserID_URL ADD INDEX url_skipping_index URL TYPE minmax GRANULARITY 4; ALTER TABLE hits_UserID_URL MATERIALIZE INDEX url_skipping_index; @@ -778,7 +778,7 @@ The second index entry ('mark 1') is storing the minimum and maximum URL values (ClickHouse also created a special [mark file](#mark-files-are-used-for-locating-granules) for to the data skipping index for [locating](#mark-files-are-used-for-locating-granules) the groups of granules associated with the index marks.) -Because of the similarly high cardinality of UserID and URL, this secondary data skipping index can't help with excluding granules from being selected when our [query filtering on URL](/guides/cloud-oss/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient) is executed. +Because of the similarly high cardinality of UserID and URL, this secondary data skipping index can't help with excluding granules from being selected when our [query filtering on URL](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient) is executed. The specific URL value that the query is looking for (i.e. 'http://public_search') very likely is between the minimum and maximum value stored by the index for each group of granules resulting in ClickHouse being forced to select the group of granules (because they might contain rows matching the query). @@ -898,9 +898,9 @@ Processed 319.49 thousand rows, 11.38 MB (18.41 million rows/s., 655.75 MB/s.) ``` -Now, instead of [almost doing a full table scan](/guides/cloud-oss/data-modelling/sparse-primary-indexes#efficient-filtering-on-secondary-key-columns), ClickHouse executed that query much more effectively. +Now, instead of [almost doing a full table scan](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#efficient-filtering-on-secondary-key-columns), ClickHouse executed that query much more effectively. -With the primary index from the [original table](#a-table-with-a-primary-key) where UserID was the first, and URL the second key column, ClickHouse used a [generic exclusion search](/guides/cloud-oss/data-modelling/sparse-primary-indexes#generic-exclusion-search-algorithm) over the index marks for executing that query and that wasn't very effective because of the similarly high cardinality of UserID and URL. +With the primary index from the [original table](#a-table-with-a-primary-key) where UserID was the first, and URL the second key column, ClickHouse used a [generic exclusion search](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#generic-exclusion-search-algorithm) over the index marks for executing that query and that wasn't very effective because of the similarly high cardinality of UserID and URL. With URL as the first column in the primary index, ClickHouse is now running binary search over the index marks. The corresponding trace log in the ClickHouse server log file confirms that: @@ -919,7 +919,7 @@ ClickHouse selected only 39 index marks, instead of 1076 when generic exclusion Note that the additional table is optimized for speeding up the execution of our example query filtering on URLs. -Similar to the [bad performance](/guides/cloud-oss/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient) of that query with our [original table](#a-table-with-a-primary-key), our [example query filtering on `UserIDs`](#the-primary-index-is-used-for-selecting-granules) won't run very effectively with the new additional table, because UserID is now the second key column in the primary index of that table and therefore ClickHouse will use generic exclusion search for granule selection, which is [not very effective for similarly high cardinality](/guides/cloud-oss/data-modelling/sparse-primary-indexes#generic-exclusion-search-algorithm) of UserID and URL. +Similar to the [bad performance](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient) of that query with our [original table](#a-table-with-a-primary-key), our [example query filtering on `UserIDs`](#the-primary-index-is-used-for-selecting-granules) won't run very effectively with the new additional table, because UserID is now the second key column in the primary index of that table and therefore ClickHouse will use generic exclusion search for granule selection, which is [not very effective for similarly high cardinality](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#generic-exclusion-search-algorithm) of UserID and URL. Open the details box for specifics. @@ -971,7 +971,7 @@ We now have two tables. Optimized for speeding up queries filtering on `UserIDs` ### Option 2: Materialized Views {#option-2-materialized-views} -Create a [materialized view](/reference/statements/create/view) on our existing table. +Create a [materialized view](/core/reference/statements/create/view) on our existing table. ```sql CREATE MATERIALIZED VIEW mv_hits_URL_UserID ENGINE = MergeTree() @@ -993,10 +993,10 @@ Ok. - we switch the order of the key columns (compared to our [original table](#a-table-with-a-primary-key) ) in the view's primary key - the materialized view is backed by an **implicitly created table** whose row order and primary index are based on the given primary key definition - the implicitly created table is listed by the `SHOW TABLES` query and has a name starting with `.inner` -- it is also possible to first explicitly create the backing table for a materialized view and then the view can target that table via the `TO [db].[table]` [clause](/reference/statements/create/view) +- it is also possible to first explicitly create the backing table for a materialized view and then the view can target that table via the `TO [db].[table]` [clause](/core/reference/statements/create/view) - we use the `POPULATE` keyword in order to immediately populate the implicitly created table with all 8.87 million rows from the source table [hits_UserID_URL](#a-table-with-a-primary-key) - if new rows are inserted into the source table hits_UserID_URL, then that rows are automatically also inserted into the implicitly created table -- Effectively the implicitly created table has the same row order and primary index as the [secondary table that we created explicitly](/guides/cloud-oss/data-modelling/sparse-primary-indexes#option-1-secondary-tables): +- Effectively the implicitly created table has the same row order and primary index as the [secondary table that we created explicitly](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#option-1-secondary-tables): Sparse Primary Indices 12b1 @@ -1036,7 +1036,7 @@ Processed 335.87 thousand rows, 13.54 MB (12.91 million rows/s., 520.38 MB/s.) ``` -Because effectively the implicitly created table (and its primary index) backing the materialized view is identical to the [secondary table that we created explicitly](/guides/cloud-oss/data-modelling/sparse-primary-indexes#option-1-secondary-tables), the query is executed in the same effective way as with the explicitly created table. +Because effectively the implicitly created table (and its primary index) backing the materialized view is identical to the [secondary table that we created explicitly](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#option-1-secondary-tables), the query is executed in the same effective way as with the explicitly created table. The corresponding trace log in the ClickHouse server log file confirms that ClickHouse is running binary search over the index marks: @@ -1075,7 +1075,7 @@ ALTER TABLE hits_UserID_URL - if new rows are inserted into the source table hits_UserID_URL, then that rows are automatically also inserted into the hidden table - a query is always (syntactically) targeting the source table hits_UserID_URL, but if the row order and primary index of the hidden table allows a more effective query execution, then that hidden table will be used instead - please note that projections don't make queries that use ORDER BY more efficient, even if the ORDER BY matches the projection's ORDER BY statement (see https://github.com/ClickHouse/ClickHouse/issues/47333) -- Effectively the implicitly created hidden table has the same row order and primary index as the [secondary table that we created explicitly](/guides/cloud-oss/data-modelling/sparse-primary-indexes#option-1-secondary-tables): +- Effectively the implicitly created hidden table has the same row order and primary index as the [secondary table that we created explicitly](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#option-1-secondary-tables): Sparse Primary Indices 12c1 @@ -1115,7 +1115,7 @@ Processed 319.49 thousand rows, 1 1.38 MB (11.05 million rows/s., 393.58 MB/s.) ``` -Because effectively the hidden table (and its primary index) created by the projection is identical to the [secondary table that we created explicitly](/guides/cloud-oss/data-modelling/sparse-primary-indexes#option-1-secondary-tables), the query is executed in the same effective way as with the explicitly created table. +Because effectively the hidden table (and its primary index) created by the projection is identical to the [secondary table that we created explicitly](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#option-1-secondary-tables), the query is executed in the same effective way as with the explicitly created table. The corresponding trace log in the ClickHouse server log file confirms that ClickHouse is running binary search over the index marks: @@ -1133,16 +1133,16 @@ The corresponding trace log in the ClickHouse server log file confirms that Clic ### Summary {#summary} -The primary index of our [table with compound primary key (UserID, URL)](#a-table-with-a-primary-key) was very useful for speeding up a [query filtering on UserID](#the-primary-index-is-used-for-selecting-granules). But that index isn't providing significant help with speeding up a [query filtering on URL](/guides/cloud-oss/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient), despite the URL column being part of the compound primary key. +The primary index of our [table with compound primary key (UserID, URL)](#a-table-with-a-primary-key) was very useful for speeding up a [query filtering on UserID](#the-primary-index-is-used-for-selecting-granules). But that index isn't providing significant help with speeding up a [query filtering on URL](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient), despite the URL column being part of the compound primary key. And vice versa: -The primary index of our [table with compound primary key (URL, UserID)](/guides/cloud-oss/data-modelling/sparse-primary-indexes#option-1-secondary-tables) was speeding up a [query filtering on URL](/guides/cloud-oss/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient), but didn't provide much support for a [query filtering on UserID](#the-primary-index-is-used-for-selecting-granules). +The primary index of our [table with compound primary key (URL, UserID)](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#option-1-secondary-tables) was speeding up a [query filtering on URL](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient), but didn't provide much support for a [query filtering on UserID](#the-primary-index-is-used-for-selecting-granules). Because of the similarly high cardinality of the primary key columns UserID and URL, a query that filters on the second key column [doesn't benefit much from the second key column being in the index](#generic-exclusion-search-algorithm). -Therefore it makes sense to remove the second key column from the primary index (resulting in less memory consumption of the index) and to [use multiple primary indexes](/guides/cloud-oss/data-modelling/sparse-primary-indexes#using-multiple-primary-indexes) instead. +Therefore it makes sense to remove the second key column from the primary index (resulting in less memory consumption of the index) and to [use multiple primary indexes](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#using-multiple-primary-indexes) instead. -However if the key columns in a compound primary key have big differences in cardinality, then it is [beneficial for queries](/guides/cloud-oss/data-modelling/sparse-primary-indexes#generic-exclusion-search-algorithm) to order the primary key columns by cardinality in ascending order. +However if the key columns in a compound primary key have big differences in cardinality, then it is [beneficial for queries](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#generic-exclusion-search-algorithm) to order the primary key columns by cardinality in ascending order. The higher the cardinality difference between the key columns is, the more the order of those columns in the key matters. We will demonstrate that in the next section. @@ -1161,7 +1161,7 @@ We will use a compound primary key containing all three aforementioned columns t - how much (percentage of) traffic to a specific URL is from bots or - how confident we're that a specific user is (not) a bot (what percentage of traffic from that user is (not) assumed to be bot traffic) -We use this query for calculating the cardinalities of the three columns that we want to use as key columns in a compound primary key (note that we're using the [URL table function](/reference/functions/table-functions/url) for querying TSV data ad hoc without having to create a local table). Run this query in `clickhouse client`: +We use this query for calculating the cardinalities of the three columns that we want to use as key columns in a compound primary key (note that we're using the [URL table function](/core/reference/functions/table-functions/url) for querying TSV data ad hoc without having to create a local table). Run this query in `clickhouse client`: ```sql SELECT formatReadableQuantity(uniq(URL)) AS cardinality_URL, @@ -1248,7 +1248,7 @@ The response is: When a query is filtering on at least one column that is part of a compound key, and is the first key column, [then ClickHouse is running the binary search algorithm over the key column's index marks](#the-primary-index-is-used-for-selecting-granules). -When a query is filtering (only) on a column that is part of a compound key, but isn't the first key column, [then ClickHouse is using the generic exclusion search algorithm over the key column's index marks](/guides/cloud-oss/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient). +When a query is filtering (only) on a column that is part of a compound key, but isn't the first key column, [then ClickHouse is using the generic exclusion search algorithm over the key column's index marks](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient). For the second case the ordering of the key columns in the compound primary key is significant for the effectiveness of the [generic exclusion search algorithm](https://github.com/ClickHouse/ClickHouse/blob/22.3/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp#L1444). @@ -1316,7 +1316,7 @@ This is the response: ``` We can see that the compression ratio for the `UserID` column is significantly higher for the table where we ordered the key columns `(IsRobot, UserID, URL)` by cardinality in ascending order. -Although in both tables exactly the same data is stored (we inserted the same 8.87 million rows into both tables), the order of the key columns in the compound primary key has a significant influence on how much disk space the compressed data in the table's [column data files](#data-is-stored-on-disk-ordered-by-primary-key-columns) requires: +Although in both tables exactly the same data is stored (we inserted the same 8.87 million rows into both tables), the order of the key columns in the compound primary key has a significant influence on how much disk space the compressed data in the table's [column data files](#data-is-stored-on-disk-ordered-by-primary-key-columns) requires: - in the table `hits_URL_UserID_IsRobot` with the compound primary key `(URL, UserID, IsRobot)` where we order the key columns by cardinality in descending order, the `UserID.bin` data file takes **11.24 MiB** of disk space - in the table `hits_IsRobot_UserID_URL` with the compound primary key `(IsRobot, UserID, URL)` where we order the key columns by cardinality in ascending order, the `UserID.bin` data file takes only **877.47 KiB** of disk space diff --git a/guides/cloud-oss/data-modelling/stored-procedures-and-prepared-statements.mdx b/core/guides/clickhouse/data-modelling/stored-procedures-and-prepared-statements.mdx similarity index 93% rename from guides/cloud-oss/data-modelling/stored-procedures-and-prepared-statements.mdx rename to core/guides/clickhouse/data-modelling/stored-procedures-and-prepared-statements.mdx index 40a0c3a0..5a3695d9 100644 --- a/guides/cloud-oss/data-modelling/stored-procedures-and-prepared-statements.mdx +++ b/core/guides/clickhouse/data-modelling/stored-procedures-and-prepared-statements.mdx @@ -2,7 +2,7 @@ sidebarTitle: 'Stored procedures & query parameters' keywords: ['clickhouse', 'stored procedures', 'prepared statements', 'query parameters', 'UDF', 'parameterized views'] description: 'Guide on stored procedures, prepared statements, and query parameters in ClickHouse' -slug: /guides/developer/stored-procedures-and-prepared-statements +slug: /core/guides/developer/stored-procedures-and-prepared-statements title: 'Stored procedures and query parameters' doc_type: 'guide' --- @@ -99,7 +99,7 @@ SELECT format_phone('5551234567'); - Can't modify data (`INSERT`/`UPDATE`/`DELETE`) - Recursive functions not allowed -See [`CREATE FUNCTION`](/reference/statements/create/function) for complete syntax. +See [`CREATE FUNCTION`](/core/reference/statements/create/function) for complete syntax. #### Executable UDFs {#executable-udfs} @@ -131,7 +131,7 @@ FROM customer_reviews; Executable UDFs can implement arbitrary logic in any language (Python, Node.js, Go, etc.). -See [Executable UDFs](/reference/functions/regular-functions/udf) for details. +See [Executable UDFs](/core/reference/functions/regular-functions/udf) for details. ### Parameterized views {#parameterized-views} @@ -229,7 +229,7 @@ SELECT * FROM top_products_by_category( ); ``` -See the [Parameterized Views](/reference/statements/create/view#parameterized-view) section for more information. +See the [Parameterized Views](/core/reference/statements/create/view#parameterized-view) section for more information. ### Materialized views {#materialized-views} @@ -308,7 +308,7 @@ SELECT * FROM monthly_sales_report WHERE month = toStartOfMonth(today()); ``` -See [Cascading Materialized Views](/concepts/features/materialized-views/cascading-materialized-views) for advanced patterns. +See [Cascading Materialized Views](/core/concepts/features/materialized-views/cascading-materialized-views) for advanced patterns. ### External orchestration {#external-orchestration} @@ -403,7 +403,7 @@ SELECT @status, @points; **Query parameters** The example below uses query parameters in ClickHouse. -Skip ahead to ["Alternatives to prepared statements in ClickHouse"](/guides/cloud-oss/data-modelling/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse) +Skip ahead to ["Alternatives to prepared statements in ClickHouse"](/core/guides/clickhouse/data-modelling/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse) if you're not yet familiar with query parameters in ClickHouse. @@ -555,7 +555,7 @@ print(f"Status: {status}, Loyalty Points: {points}") 1. **Control flow** - MySQL stored procedure uses `IF/ELSE`, `WHILE` loops. In ClickHouse, implement this logic in your application code (Python, Java, etc.) 2. **Transactions** - MySQL supports `BEGIN/COMMIT/ROLLBACK` for ACID transactions. ClickHouse is an analytical database optimized for append-only workloads, not transactional updates -3. **Updates** - MySQL uses `UPDATE` statements. ClickHouse prefers `INSERT` with [ReplacingMergeTree](/reference/engines/table-engines/mergetree-family/replacingmergetree) or [CollapsingMergeTree](/reference/engines/table-engines/mergetree-family/collapsingmergetree) for mutable data +3. **Updates** - MySQL uses `UPDATE` statements. ClickHouse prefers `INSERT` with [ReplacingMergeTree](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) or [CollapsingMergeTree](/core/reference/engines/table-engines/mergetree-family/collapsingmergetree) for mutable data 4. **Variables and state** - MySQL stored procedures can declare variables (`DECLARE v_discount`). With ClickHouse, manage state in your application code 5. **Error handling** - MySQL supports `SIGNAL` and exception handlers. In application code, use your language's native error handling (try/catch) @@ -854,7 +854,7 @@ def get_user_orders(user_id: int, start_date: str): ### MySQL protocol prepared statements {#mysql-protocol-prepared-statements} -ClickHouse's [MySQL interface](/integrations/connectors/data-integrations/drivers-and-interfaces/mysql) includes minimal support for prepared statements (`COM_STMT_PREPARE`, `COM_STMT_EXECUTE`, `COM_STMT_CLOSE`), primarily to enable connectivity with tools like Tableau Online that wrap queries in prepared statements. +ClickHouse's [MySQL interface](/core/concepts/features/interfaces/mysql) includes minimal support for prepared statements (`COM_STMT_PREPARE`, `COM_STMT_EXECUTE`, `COM_STMT_CLOSE`), primarily to enable connectivity with tools like Tableau Online that wrap queries in prepared statements. **Key limitations:** @@ -880,7 +880,7 @@ SELECT * FROM users WHERE id = {user_id: UInt64}; ``` -For more details, see the [MySQL Interface documentation](/integrations/connectors/data-integrations/drivers-and-interfaces/mysql) and the [blog post on MySQL support](https://clickhouse.com/blog/mysql-support-in-clickhouse-the-journey). +For more details, see the [MySQL Interface documentation](/core/concepts/features/interfaces/mysql) and the [blog post on MySQL support](https://clickhouse.com/blog/mysql-support-in-clickhouse-the-journey). ## Summary {#summary} @@ -905,8 +905,8 @@ Query parameters can be used for: ## Related documentation {#related-documentation} -- [`CREATE FUNCTION`](/reference/statements/create/function) - User-Defined Functions -- [`CREATE VIEW`](/reference/statements/create/view) - Views including parameterized and materialized -- [SQL Syntax - Query Parameters](/reference/syntax#defining-and-using-query-parameters) - Complete parameter syntax -- [Cascading Materialized Views](/concepts/features/materialized-views/cascading-materialized-views) - Advanced materialized view patterns -- [Executable UDFs](/reference/functions/regular-functions/udf) - External function execution +- [`CREATE FUNCTION`](/core/reference/statements/create/function) - User-Defined Functions +- [`CREATE VIEW`](/core/reference/statements/create/view) - Views including parameterized and materialized +- [SQL Syntax - Query Parameters](/core/reference/syntax#defining-and-using-query-parameters) - Complete parameter syntax +- [Cascading Materialized Views](/core/concepts/features/materialized-views/cascading-materialized-views) - Advanced materialized view patterns +- [Executable UDFs](/core/reference/functions/regular-functions/udf) - External function execution diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/anyIf.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/anyIf.mdx similarity index 79% rename from guides/cloud-oss/examples/aggregate-function-combinators/anyIf.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/anyIf.mdx index 61215157..5df9ae18 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/anyIf.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/anyIf.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`If`](/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`any`](/reference/functions/aggregate-functions/reference/any) +The [`If`](/core/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`any`](/core/reference/functions/aggregate-functions/reference/any) aggregate function to select the first encountered element from a given column that matches the given condition. @@ -53,5 +53,5 @@ FROM sales; ``` ## See also {#see-also} -- [`any`](/reference/functions/aggregate-functions/reference/any) -- [`If combinator`](/reference/functions/aggregate-functions/combinators#-if) +- [`any`](/core/reference/functions/aggregate-functions/reference/any) +- [`If combinator`](/core/reference/functions/aggregate-functions/combinators#-if) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/argMaxIf.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/argMaxIf.mdx similarity index 78% rename from guides/cloud-oss/examples/aggregate-function-combinators/argMaxIf.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/argMaxIf.mdx index d8349654..51777505 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/argMaxIf.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/argMaxIf.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`If`](/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`argMax`](/reference/functions/aggregate-functions/reference/argMax) +The [`If`](/core/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`argMax`](/core/reference/functions/aggregate-functions/reference/argMax) function to find the value of `arg` that corresponds to the maximum value of `val` for rows where the condition is true, using the `argMaxIf` aggregate combinator function. @@ -54,7 +54,7 @@ among the popular products. ``` ## See also {#see-also} -- [`argMax`](/reference/functions/aggregate-functions/reference/argMax) -- [`argMin`](/reference/functions/aggregate-functions/reference/argMin) -- [`argMinIf`](/guides/cloud-oss/examples/aggregate-function-combinators/argMinIf) -- [`If combinator`](/reference/functions/aggregate-functions/combinators#-if) +- [`argMax`](/core/reference/functions/aggregate-functions/reference/argMax) +- [`argMin`](/core/reference/functions/aggregate-functions/reference/argMin) +- [`argMinIf`](/core/guides/clickhouse/examples/aggregate-function-combinators/argMinIf) +- [`If combinator`](/core/reference/functions/aggregate-functions/combinators#-if) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/argMinIf.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/argMinIf.mdx similarity index 80% rename from guides/cloud-oss/examples/aggregate-function-combinators/argMinIf.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/argMinIf.mdx index 6cee98af..f9457d53 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/argMinIf.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/argMinIf.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`If`](/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`argMin`](/reference/functions/aggregate-functions/reference/argMin) +The [`If`](/core/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`argMin`](/core/reference/functions/aggregate-functions/reference/argMin) function to find the value of `arg` that corresponds to the minimum value of `val` for rows where the condition is true, using the `argMinIf` aggregate combinator function. @@ -59,7 +59,7 @@ but only considering rows where `in_stock = 1`. For example: ``` ## See also {#see-also} -- [`argMin`](/reference/functions/aggregate-functions/reference/argMin) -- [`argMax`](/reference/functions/aggregate-functions/reference/argMax) -- [`argMaxIf`](/guides/cloud-oss/examples/aggregate-function-combinators/argMaxIf) -- [`If combinator`](/reference/functions/aggregate-functions/combinators#-if) +- [`argMin`](/core/reference/functions/aggregate-functions/reference/argMin) +- [`argMax`](/core/reference/functions/aggregate-functions/reference/argMax) +- [`argMaxIf`](/core/guides/clickhouse/examples/aggregate-function-combinators/argMaxIf) +- [`If combinator`](/core/reference/functions/aggregate-functions/combinators#-if) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/avgIf.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/avgIf.mdx similarity index 80% rename from guides/cloud-oss/examples/aggregate-function-combinators/avgIf.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/avgIf.mdx index 8e216a1b..5677d040 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/avgIf.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/avgIf.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`If`](/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`avg`](/reference/functions/aggregate-functions/reference/avg) +The [`If`](/core/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`avg`](/core/reference/functions/aggregate-functions/reference/avg) function to calculate the arithmetic mean of values for rows where the condition is true, using the `avgIf` aggregate combinator function. @@ -49,5 +49,5 @@ In this case, it will average the amounts: 100.50, 200.75, 300.00, and 175.25. ``` ## See also {#see-also} -- [`avg`](/reference/functions/aggregate-functions/reference/avg) -- [`If combinator`](/reference/functions/aggregate-functions/combinators#-if) +- [`avg`](/core/reference/functions/aggregate-functions/reference/avg) +- [`If combinator`](/core/reference/functions/aggregate-functions/combinators#-if) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/avgMap.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/avgMap.mdx similarity index 86% rename from guides/cloud-oss/examples/aggregate-function-combinators/avgMap.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/avgMap.mdx index 3fe69e46..126daf81 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/avgMap.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/avgMap.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`Map`](/reference/functions/aggregate-functions/combinators#-map) combinator can be applied to the [`avg`](/reference/functions/aggregate-functions/reference/avg) +The [`Map`](/core/reference/functions/aggregate-functions/combinators#-map) combinator can be applied to the [`avg`](/core/reference/functions/aggregate-functions/reference/avg) function to calculate the arithmetic mean of values in a Map according to each key, using the `avgMap` aggregate combinator function. @@ -61,5 +61,5 @@ The `avgMap` function will calculate the average count for each status code with ``` ## See also {#see-also} -- [`avg`](/reference/functions/aggregate-functions/reference/avg) -- [`Map combinator`](/reference/functions/aggregate-functions/combinators#-map) +- [`avg`](/core/reference/functions/aggregate-functions/reference/avg) +- [`Map combinator`](/core/reference/functions/aggregate-functions/combinators#-map) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/avgMerge.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/avgMerge.mdx similarity index 50% rename from guides/cloud-oss/examples/aggregate-function-combinators/avgMerge.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/avgMerge.mdx index fe235f1f..f3f0bc05 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/avgMerge.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/avgMerge.mdx @@ -9,17 +9,17 @@ doc_type: 'reference' ## Description {#description} -The [`Merge`](/reference/functions/aggregate-functions/combinators#-state) combinator -can be applied to the [`avg`](/reference/functions/aggregate-functions/reference/avg) +The [`Merge`](/core/reference/functions/aggregate-functions/combinators#-state) combinator +can be applied to the [`avg`](/core/reference/functions/aggregate-functions/reference/avg) function to produce a final result by combining partial aggregate states. ## Example usage {#example-usage} The `Merge` combinator is closely related to the `State` combinator. Refer to -["avgState example usage"](/guides/cloud-oss/examples/aggregate-function-combinators/avgState#example-usage) +["avgState example usage"](/core/guides/clickhouse/examples/aggregate-function-combinators/avgState#example-usage) for an example of both `avgMerge` and `avgState`. ## See also {#see-also} -- [`avg`](/reference/functions/aggregate-functions/reference/avg) -- [`Merge`](/reference/functions/aggregate-functions/combinators#-merge) -- [`MergeState`](/reference/functions/aggregate-functions/combinators#-mergestate) +- [`avg`](/core/reference/functions/aggregate-functions/reference/avg) +- [`Merge`](/core/reference/functions/aggregate-functions/combinators#-merge) +- [`MergeState`](/core/reference/functions/aggregate-functions/combinators#-mergestate) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/avgMergeState.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/avgMergeState.mdx similarity index 92% rename from guides/cloud-oss/examples/aggregate-function-combinators/avgMergeState.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/avgMergeState.mdx index 4c002fd4..12d78c99 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/avgMergeState.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/avgMergeState.mdx @@ -11,8 +11,8 @@ doc_type: 'reference' ## Description {#description} -The [`MergeState`](/reference/functions/aggregate-functions/combinators#-state) combinator -can be applied to the [`avg`](/reference/functions/aggregate-functions/reference/avg) +The [`MergeState`](/core/reference/functions/aggregate-functions/combinators#-state) combinator +can be applied to the [`avg`](/core/reference/functions/aggregate-functions/reference/avg) function to merge partial aggregate states of type `AverageFunction(avg, T)` and return a new intermediate aggregation state. @@ -207,7 +207,7 @@ ORDER BY datacenter; ``` ## See also {#see-also} -- [`avg`](/reference/functions/aggregate-functions/reference/avg) -- [`AggregateFunction`](/reference/data-types/aggregatefunction) -- [`Merge`](/reference/functions/aggregate-functions/combinators#-merge) -- [`MergeState`](/reference/functions/aggregate-functions/combinators#-mergestate) +- [`avg`](/core/reference/functions/aggregate-functions/reference/avg) +- [`AggregateFunction`](/core/reference/data-types/aggregatefunction) +- [`Merge`](/core/reference/functions/aggregate-functions/combinators#-merge) +- [`MergeState`](/core/reference/functions/aggregate-functions/combinators#-mergestate) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/avgResample.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/avgResample.mdx similarity index 81% rename from guides/cloud-oss/examples/aggregate-function-combinators/avgResample.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/avgResample.mdx index d111ab98..4014451f 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/avgResample.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/avgResample.mdx @@ -9,8 +9,8 @@ doc_type: 'reference' ## Description {#description} -The [`Resample`](/reference/functions/aggregate-functions/combinators#-resample) -combinator can be applied to the [`count`](/reference/functions/aggregate-functions/reference/count) +The [`Resample`](/core/reference/functions/aggregate-functions/combinators#-resample) +combinator can be applied to the [`count`](/core/reference/functions/aggregate-functions/reference/count) aggregate function to count values of a specified key column in a fixed number of intervals (`N`). @@ -63,5 +63,5 @@ FROM avg_wage; ``` ## See also {#see-also} -- [`count`](/reference/functions/aggregate-functions/reference/count) -- [`Resample combinator`](/reference/functions/aggregate-functions/combinators#-resample) +- [`count`](/core/reference/functions/aggregate-functions/reference/count) +- [`Resample combinator`](/core/reference/functions/aggregate-functions/combinators#-resample) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/avgState.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/avgState.mdx similarity index 93% rename from guides/cloud-oss/examples/aggregate-function-combinators/avgState.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/avgState.mdx index 91b8ea2e..d975ab83 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/avgState.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/avgState.mdx @@ -9,8 +9,8 @@ doc_type: 'reference' ## Description {#description} -The [`State`](/reference/functions/aggregate-functions/combinators#-state) combinator -can be applied to the [`avg`](/reference/functions/aggregate-functions/reference/avg) +The [`State`](/core/reference/functions/aggregate-functions/combinators#-state) combinator +can be applied to the [`avg`](/core/reference/functions/aggregate-functions/reference/avg) function to produce an intermediate state of `AggregateFunction(avg, T)` type where `T` is the specified type for the average. @@ -141,5 +141,5 @@ Now we see the correct averages: ``` ## See also {#see-also} -- [`avg`](/reference/functions/aggregate-functions/reference/avg) -- [`State`](/reference/functions/aggregate-functions/combinators#-state) +- [`avg`](/core/reference/functions/aggregate-functions/reference/avg) +- [`State`](/core/reference/functions/aggregate-functions/combinators#-state) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/countIf.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/countIf.mdx similarity index 81% rename from guides/cloud-oss/examples/aggregate-function-combinators/countIf.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/countIf.mdx index cb32594b..6762bb14 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/countIf.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/countIf.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`If`](/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`count`](/reference/functions/aggregate-functions/reference/count) +The [`If`](/core/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`count`](/core/reference/functions/aggregate-functions/reference/count) function to count the number of rows where the condition is true, using the `countIf` aggregate combinator function. @@ -51,5 +51,5 @@ The `countIf` function will count only the rows where `is_successful = 1` for ea ``` ## See also {#see-also} -- [`count`](/reference/functions/aggregate-functions/reference/count) -- [`If combinator`](/reference/functions/aggregate-functions/combinators#-if) +- [`count`](/core/reference/functions/aggregate-functions/reference/count) +- [`If combinator`](/core/reference/functions/aggregate-functions/combinators#-if) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/countResample.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/countResample.mdx similarity index 79% rename from guides/cloud-oss/examples/aggregate-function-combinators/countResample.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/countResample.mdx index 94a667d1..ba239892 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/countResample.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/countResample.mdx @@ -9,8 +9,8 @@ doc_type: 'reference' ## Description {#description} -The [`Resample`](/reference/functions/aggregate-functions/combinators#-resample) -combinator can be applied to the [`count`](/reference/functions/aggregate-functions/reference/count) +The [`Resample`](/core/reference/functions/aggregate-functions/combinators#-resample) +combinator can be applied to the [`count`](/core/reference/functions/aggregate-functions/reference/count) aggregate function to count values of a specified key column in a fixed number of intervals (`N`). @@ -56,5 +56,5 @@ SELECT countResample(30, 75, 30)(name, age) AS amount FROM employee_data ``` ## See also {#see-also} -- [`count`](/reference/functions/aggregate-functions/reference/count) -- [`Resample combinator`](/reference/functions/aggregate-functions/combinators#-resample) +- [`count`](/core/reference/functions/aggregate-functions/reference/count) +- [`Resample combinator`](/core/reference/functions/aggregate-functions/combinators#-resample) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/groupArrayDistinct.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayDistinct.mdx similarity index 73% rename from guides/cloud-oss/examples/aggregate-function-combinators/groupArrayDistinct.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayDistinct.mdx index d062a6f9..8e7be59d 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/groupArrayDistinct.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayDistinct.mdx @@ -11,8 +11,8 @@ import { RunnableCode } from "/snippets/components/RunnableCode/RunnableCode.jsx ## Description {#description} -The [`groupArrayDistinct`](/reference/functions/aggregate-functions/combinators#-foreach) combinator -can be applied to the [`groupArray`](/reference/functions/aggregate-functions/reference/sum) aggregate function to create an array +The [`groupArrayDistinct`](/core/reference/functions/aggregate-functions/combinators#-foreach) combinator +can be applied to the [`groupArray`](/core/reference/functions/aggregate-functions/reference/sum) aggregate function to create an array of distinct argument values. ## Example usage {#example-usage} @@ -37,5 +37,5 @@ LIMIT 20; ``` ## See also {#see-also} -- [`groupArray`](/reference/functions/aggregate-functions/reference/groupArray) -- [`Distinct combinator`](/reference/functions/aggregate-functions/combinators#-distinct) +- [`groupArray`](/core/reference/functions/aggregate-functions/reference/groupArray) +- [`Distinct combinator`](/core/reference/functions/aggregate-functions/combinators#-distinct) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/groupArrayResample.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayResample.mdx similarity index 84% rename from guides/cloud-oss/examples/aggregate-function-combinators/groupArrayResample.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayResample.mdx index 113e6608..c528f8b8 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/groupArrayResample.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayResample.mdx @@ -9,8 +9,8 @@ doc_type: 'reference' ## Description {#description} -The [`Resample`](/reference/functions/aggregate-functions/combinators#-resample) -combinator can be applied to the [`groupArray`](/reference/functions/aggregate-functions/reference/sum) aggregate function to +The [`Resample`](/core/reference/functions/aggregate-functions/combinators#-resample) +combinator can be applied to the [`groupArray`](/core/reference/functions/aggregate-functions/reference/sum) aggregate function to divide the range of a specified key column into a fixed number of intervals (`N`) and construct the resulting array by selecting one representative value (corresponding to the minimum key) from the data points falling into each interval. @@ -60,5 +60,5 @@ SELECT groupArrayResample(30, 75, 30)(name, age) FROM employee_data ``` ## See also {#see-also} -- [`groupArray`](/reference/functions/aggregate-functions/reference/groupArray) -- [`Resample combinator`](/reference/functions/aggregate-functions/combinators#-resample) +- [`groupArray`](/core/reference/functions/aggregate-functions/reference/groupArray) +- [`Resample combinator`](/core/reference/functions/aggregate-functions/combinators#-resample) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/maxMap.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/maxMap.mdx similarity index 86% rename from guides/cloud-oss/examples/aggregate-function-combinators/maxMap.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/maxMap.mdx index 705e0da6..01a323d3 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/maxMap.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/maxMap.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`Map`](/reference/functions/aggregate-functions/combinators#-map) combinator can be applied to the [`max`](/reference/functions/aggregate-functions/reference/max) +The [`Map`](/core/reference/functions/aggregate-functions/combinators#-map) combinator can be applied to the [`max`](/core/reference/functions/aggregate-functions/reference/max) function to calculate the maximum value in a Map according to each key, using the `maxMap` aggregate combinator function. @@ -61,5 +61,5 @@ The `maxMap` function will find the maximum count for each status code within ea ``` ## See also {#see-also} -- [`max`](/reference/functions/aggregate-functions/reference/max) -- [`Map combinator`](/reference/functions/aggregate-functions/combinators#-map) +- [`max`](/core/reference/functions/aggregate-functions/reference/max) +- [`Map combinator`](/core/reference/functions/aggregate-functions/combinators#-map) diff --git a/core/guides/clickhouse/examples/aggregate-function-combinators/maxSimpleState.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/maxSimpleState.mdx new file mode 100644 index 00000000..b3e24eb3 --- /dev/null +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/maxSimpleState.mdx @@ -0,0 +1,24 @@ +--- +slug: '/examples/aggregate-function-combinators/maxSimpleState' +title: 'maxSimpleState' +description: 'Example of using the maxSimpleState combinator' +keywords: ['max', 'state', 'simple', 'combinator', 'examples', 'maxSimpleState'] +sidebarTitle: 'maxSimpleState' +doc_type: 'reference' +--- + +## Description {#description} + +The [`SimpleState`](/core/reference/functions/aggregate-functions/combinators#-simplestate) combinator can be applied to the [`max`](/core/reference/functions/aggregate-functions/reference/max) +function to return the maximum value across all input values. It returns the +result with type `SimpleAggregateState`. + +## Example usage {#example-usage} + +The example given in [`minSimpleState`](/core/guides/clickhouse/examples/aggregate-function-combinators/minSimpleState#example-usage) +demonstrates a usage of both `maxSimpleState` and `minSimpleState`. + +## See also {#see-also} +- [`max`](/core/reference/functions/aggregate-functions/reference/max) +- [`SimpleState combinator`](/core/reference/functions/aggregate-functions/combinators#-simplestate) +- [`SimpleAggregateFunction type`](/core/reference/data-types/simpleaggregatefunction) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/minMap.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/minMap.mdx similarity index 86% rename from guides/cloud-oss/examples/aggregate-function-combinators/minMap.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/minMap.mdx index 758ba0b1..2a8f74b2 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/minMap.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/minMap.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`Map`](/reference/functions/aggregate-functions/combinators#-map) combinator can be applied to the [`min`](/reference/functions/aggregate-functions/reference/min) +The [`Map`](/core/reference/functions/aggregate-functions/combinators#-map) combinator can be applied to the [`min`](/core/reference/functions/aggregate-functions/reference/min) function to calculate the minimum value in a Map according to each key, using the `minMap` aggregate combinator function. @@ -61,5 +61,5 @@ The `minMap` function will find the minimum count for each status code within ea ``` ## See also {#see-also} -- [`min`](/reference/functions/aggregate-functions/reference/min) -- [`Map combinator`](/reference/functions/aggregate-functions/combinators#-map) +- [`min`](/core/reference/functions/aggregate-functions/reference/min) +- [`Map combinator`](/core/reference/functions/aggregate-functions/combinators#-map) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/minSimpleState.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/minSimpleState.mdx similarity index 90% rename from guides/cloud-oss/examples/aggregate-function-combinators/minSimpleState.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/minSimpleState.mdx index 4e23fde8..8541d50e 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/minSimpleState.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/minSimpleState.mdx @@ -9,9 +9,9 @@ doc_type: 'reference' ## Description {#description} -The [`SimpleState`](/reference/functions/aggregate-functions/combinators#-simplestate) combinator can be applied to the [`min`](/reference/functions/aggregate-functions/reference/min) +The [`SimpleState`](/core/reference/functions/aggregate-functions/combinators#-simplestate) combinator can be applied to the [`min`](/core/reference/functions/aggregate-functions/reference/min) function to return the minimum value across all input values. It returns the -result with type [`SimpleAggregateFunction`](/reference/data-types/simpleaggregatefunction). +result with type [`SimpleAggregateFunction`](/core/reference/data-types/simpleaggregatefunction). ## Example usage {#example-usage} @@ -163,6 +163,6 @@ partial aggregation states. ## See also {#see-also} -- [`min`](/reference/functions/aggregate-functions/reference/min) -- [`SimpleState combinator`](/reference/functions/aggregate-functions/combinators#-simplestate) -- [`SimpleAggregateFunction type`](/reference/data-types/simpleaggregatefunction) +- [`min`](/core/reference/functions/aggregate-functions/reference/min) +- [`SimpleState combinator`](/core/reference/functions/aggregate-functions/combinators#-simplestate) +- [`SimpleAggregateFunction type`](/core/reference/data-types/simpleaggregatefunction) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingArrayIf.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingArrayIf.mdx similarity index 84% rename from guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingArrayIf.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingArrayIf.mdx index 70f208a0..226eeaea 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingArrayIf.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingArrayIf.mdx @@ -9,8 +9,8 @@ doc_type: 'reference' ## Description {#description} -The [`Array`](/reference/functions/aggregate-functions/combinators#-array) and [`If`](/reference/functions/aggregate-functions/combinators#-if) -combinator can be applied to the [`quantilesTiming`](/reference/functions/aggregate-functions/reference/quantileTiming) +The [`Array`](/core/reference/functions/aggregate-functions/combinators#-array) and [`If`](/core/reference/functions/aggregate-functions/combinators#-if) +combinator can be applied to the [`quantilesTiming`](/core/reference/functions/aggregate-functions/reference/quantileTiming) function to calculate quantiles of timing values in arrays for rows where the condition is true, using the `quantilesTimingArrayIf` aggregate combinator function. @@ -58,5 +58,5 @@ The returned array contains the following quantiles in order: ``` ## See also {#see-also} -- [`quantilesTiming`](/reference/functions/aggregate-functions/reference/quantileTiming) -- [`If combinator`](/reference/functions/aggregate-functions/combinators#-if) +- [`quantilesTiming`](/core/reference/functions/aggregate-functions/reference/quantileTiming) +- [`If combinator`](/core/reference/functions/aggregate-functions/combinators#-if) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingIf.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingIf.mdx similarity index 87% rename from guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingIf.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingIf.mdx index c95f9a57..a91c4167 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingIf.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingIf.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`If`](/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`quantilesTiming`](/reference/functions/aggregate-functions/reference/quantileTiming) +The [`If`](/core/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`quantilesTiming`](/core/reference/functions/aggregate-functions/reference/quantileTiming) function to calculate quantiles of timing values for rows where the condition is true, using the `quantilesTimingIf` aggregate combinator function. @@ -78,5 +78,5 @@ The returned array contains the following quantiles in order: ``` ## See also {#see-also} -- [`quantilesTiming`](/reference/functions/aggregate-functions/reference/quantileTiming) -- [`If combinator`](/reference/functions/aggregate-functions/combinators#-if) +- [`quantilesTiming`](/core/reference/functions/aggregate-functions/reference/quantileTiming) +- [`If combinator`](/core/reference/functions/aggregate-functions/combinators#-if) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/sumArray.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/sumArray.mdx similarity index 74% rename from guides/cloud-oss/examples/aggregate-function-combinators/sumArray.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/sumArray.mdx index c0720651..de0a06be 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/sumArray.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/sumArray.mdx @@ -9,8 +9,8 @@ doc_type: 'reference' ## Description {#description} -The [`Array`](/reference/functions/aggregate-functions/combinators#-array) combinator -can be applied to the [`sum`](/reference/functions/aggregate-functions/reference/sum) +The [`Array`](/core/reference/functions/aggregate-functions/combinators#-array) combinator +can be applied to the [`sum`](/core/reference/functions/aggregate-functions/reference/sum) function to calculate the sum of all elements in an array, using the `sumArray` aggregate combinator function. @@ -49,7 +49,7 @@ For example, on `2024-01-01`, it sums `100 + 200 + 150 = 450`. This gives the same result as `arraySum`. ## See also {#see-also} -- [`sum`](/reference/functions/aggregate-functions/reference/sum) -- [`arraySum`](/reference/functions/regular-functions/array-functions#arraySum) -- [`Array combinator`](/reference/functions/aggregate-functions/combinators#-array) -- [`sumMap`](/guides/cloud-oss/examples/aggregate-function-combinators/sumMap) +- [`sum`](/core/reference/functions/aggregate-functions/reference/sum) +- [`arraySum`](/core/reference/functions/regular-functions/array-functions#arraySum) +- [`Array combinator`](/core/reference/functions/aggregate-functions/combinators#-array) +- [`sumMap`](/core/guides/clickhouse/examples/aggregate-function-combinators/sumMap) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/sumForEach.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/sumForEach.mdx similarity index 79% rename from guides/cloud-oss/examples/aggregate-function-combinators/sumForEach.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/sumForEach.mdx index 7486e058..8a7a56db 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/sumForEach.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/sumForEach.mdx @@ -11,8 +11,8 @@ import { RunnableCode } from "/snippets/components/RunnableCode/RunnableCode.jsx ## Description {#description} -The [`ForEach`](/reference/functions/aggregate-functions/combinators#-foreach) combinator -can be applied to the [`sum`](/reference/functions/aggregate-functions/reference/sum) aggregate function to turn it from an aggregate +The [`ForEach`](/core/reference/functions/aggregate-functions/combinators#-foreach) combinator +can be applied to the [`sum`](/core/reference/functions/aggregate-functions/reference/sum) aggregate function to turn it from an aggregate function which operates on row values to an aggregate function which operates on array columns, applying the aggregate to each element in the array across rows. @@ -47,5 +47,5 @@ ORDER BY hour_of_day; ``` ## See also {#see-also} -- [`sum`](/reference/functions/aggregate-functions/reference/sum) -- [`ForEach` combinator](/reference/functions/aggregate-functions/combinators#-foreach) +- [`sum`](/core/reference/functions/aggregate-functions/reference/sum) +- [`ForEach` combinator](/core/reference/functions/aggregate-functions/combinators#-foreach) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/sumIf.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/sumIf.mdx similarity index 95% rename from guides/cloud-oss/examples/aggregate-function-combinators/sumIf.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/sumIf.mdx index ed7918ab..363f2948 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/sumIf.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/sumIf.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`If`](/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`sum`](/reference/functions/aggregate-functions/reference/sum) +The [`If`](/core/reference/functions/aggregate-functions/combinators#-if) combinator can be applied to the [`sum`](/core/reference/functions/aggregate-functions/reference/sum) function to calculate the sum of values for rows where the condition is true, using the `sumIf` aggregate combinator function. @@ -121,5 +121,5 @@ ORDER BY month; ``` ## See also {#see-also} -- [`sum`](/reference/functions/aggregate-functions/reference/sum) -- [`If combinator`](/reference/functions/aggregate-functions/combinators#-if) +- [`sum`](/core/reference/functions/aggregate-functions/reference/sum) +- [`If combinator`](/core/reference/functions/aggregate-functions/combinators#-if) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/sumMap.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/sumMap.mdx similarity index 86% rename from guides/cloud-oss/examples/aggregate-function-combinators/sumMap.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/sumMap.mdx index 6fd449a3..8641d757 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/sumMap.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/sumMap.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`Map`](/reference/functions/aggregate-functions/combinators#-map) combinator can be applied to the [`sum`](/reference/functions/aggregate-functions/reference/sum) +The [`Map`](/core/reference/functions/aggregate-functions/combinators#-map) combinator can be applied to the [`sum`](/core/reference/functions/aggregate-functions/reference/sum) function to calculate the sum of values in a Map according to each key, using the `sumMap` aggregate combinator function. @@ -61,5 +61,5 @@ The `sumMap` function will calculate the total count for each status code within ``` ## See also {#see-also} -- [`sum`](/reference/functions/aggregate-functions/reference/sum) -- [`Map combinator`](/reference/functions/aggregate-functions/combinators#-map) +- [`sum`](/core/reference/functions/aggregate-functions/reference/sum) +- [`Map combinator`](/core/reference/functions/aggregate-functions/combinators#-map) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/sumSimpleState.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/sumSimpleState.mdx similarity index 84% rename from guides/cloud-oss/examples/aggregate-function-combinators/sumSimpleState.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/sumSimpleState.mdx index b3fb7fd8..7d75be28 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/sumSimpleState.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/sumSimpleState.mdx @@ -9,9 +9,9 @@ doc_type: 'reference' ## Description {#description} -The [`SimpleState`](/reference/functions/aggregate-functions/combinators#-simplestate) combinator can be applied to the [`sum`](/reference/functions/aggregate-functions/reference/sum) +The [`SimpleState`](/core/reference/functions/aggregate-functions/combinators#-simplestate) combinator can be applied to the [`sum`](/core/reference/functions/aggregate-functions/reference/sum) function to return the sum across all input values. It returns the result with -type [`SimpleAggregateFunction`](/reference/data-types/simpleaggregatefunction). +type [`SimpleAggregateFunction`](/core/reference/data-types/simpleaggregatefunction). ## Example usage {#example-usage} @@ -100,6 +100,6 @@ ORDER BY post_id ASC; ``` ## See also {#see-also} -- [`sum`](/reference/functions/aggregate-functions/reference/sum) -- [`SimpleState combinator`](/reference/functions/aggregate-functions/combinators#-simplestate) -- [`SimpleAggregateFunction type`](/reference/data-types/simpleaggregatefunction) +- [`sum`](/core/reference/functions/aggregate-functions/reference/sum) +- [`SimpleState combinator`](/core/reference/functions/aggregate-functions/combinators#-simplestate) +- [`SimpleAggregateFunction type`](/core/reference/data-types/simpleaggregatefunction) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/uniqArray.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/uniqArray.mdx similarity index 80% rename from guides/cloud-oss/examples/aggregate-function-combinators/uniqArray.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/uniqArray.mdx index 46369909..3ac5a1f7 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/uniqArray.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/uniqArray.mdx @@ -9,8 +9,8 @@ doc_type: 'reference' ## Description {#description} -The [`Array`](/reference/functions/aggregate-functions/combinators#-array) combinator -can be applied to the [`uniq`](/reference/functions/aggregate-functions/reference/uniq) +The [`Array`](/core/reference/functions/aggregate-functions/combinators#-array) combinator +can be applied to the [`uniq`](/core/reference/functions/aggregate-functions/reference/uniq) function to calculate the approximate number of unique elements across all arrays, using the `uniqArray` aggregate combinator function. @@ -54,7 +54,7 @@ In this example: ``` ## See also {#see-also} -- [`uniq`](/reference/functions/aggregate-functions/reference/uniq) -- [`arrayJoin`](/reference/functions/regular-functions/array-join) -- [`Array combinator`](/reference/functions/aggregate-functions/combinators#-array) -- [`uniqCombined`](/reference/functions/aggregate-functions/reference/uniqCombined) +- [`uniq`](/core/reference/functions/aggregate-functions/reference/uniq) +- [`arrayJoin`](/core/reference/functions/regular-functions/array-join) +- [`Array combinator`](/core/reference/functions/aggregate-functions/combinators#-array) +- [`uniqCombined`](/core/reference/functions/aggregate-functions/reference/uniqCombined) diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/uniqArrayIf.mdx b/core/guides/clickhouse/examples/aggregate-function-combinators/uniqArrayIf.mdx similarity index 84% rename from guides/cloud-oss/examples/aggregate-function-combinators/uniqArrayIf.mdx rename to core/guides/clickhouse/examples/aggregate-function-combinators/uniqArrayIf.mdx index f0205f95..9c8bff9d 100644 --- a/guides/cloud-oss/examples/aggregate-function-combinators/uniqArrayIf.mdx +++ b/core/guides/clickhouse/examples/aggregate-function-combinators/uniqArrayIf.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The [`Array`](/reference/functions/aggregate-functions/combinators#-array) and [`If`](/reference/functions/aggregate-functions/combinators#-if) combinators can be applied to the [`uniq`](/reference/functions/aggregate-functions/reference/uniq) +The [`Array`](/core/reference/functions/aggregate-functions/combinators#-array) and [`If`](/core/reference/functions/aggregate-functions/combinators#-if) combinators can be applied to the [`uniq`](/core/reference/functions/aggregate-functions/reference/uniq) function to count the number of unique values in arrays for rows where the condition is true, using the `uniqArrayIf` aggregate combinator function. @@ -77,6 +77,6 @@ total_unique_products: 7 ``` ## See also {#see-also} -- [`uniq`](/reference/functions/aggregate-functions/reference/uniq) -- [`Array combinator`](/reference/functions/aggregate-functions/combinators#-array) -- [`If combinator`](/reference/functions/aggregate-functions/combinators#-if) +- [`uniq`](/core/reference/functions/aggregate-functions/reference/uniq) +- [`Array combinator`](/core/reference/functions/aggregate-functions/combinators#-array) +- [`If combinator`](/core/reference/functions/aggregate-functions/combinators#-if) diff --git a/core/guides/clickhouse/index.mdx b/core/guides/clickhouse/index.mdx new file mode 100644 index 00000000..03d24c0f --- /dev/null +++ b/core/guides/clickhouse/index.mdx @@ -0,0 +1,34 @@ +--- +slug: /core/guides/developer/overview +title: 'ClickHouse guides' +sidebarTitle: 'Overview' +description: 'Guides for working with ClickHouse — data modelling, performance, examples, OSS deployment, and more.' +keywords: ['ClickHouse guides', 'developer guides', 'data modelling', 'performance', 'deployment', 'OSS'] +doc_type: 'landing-page' +--- + +Pick an area to dive into. + + + + Working with CSV, Parquet, Arrow, Avro, JSON, SQL, binary, and template/regex formats. + + + Schema design, primary indexes, denormalization, backfilling, compression, and working with arrays/joins. + + + Query optimization, the analyzer, and techniques for understanding query execution. + + + Worked examples of every aggregate-function combinator (`-If`, `-Map`, `-Array`, `-State`, `-Merge`, `-Resample`, etc.). + + + Upgrade procedure for self-managed ClickHouse deployments. + + + Sizing, hardware recommendations, and operational tips for running ClickHouse OSS. + + + Replication, sharding, Keeper, monitoring, and end-to-end deployment examples. + + \ No newline at end of file diff --git a/guides/cloud-oss/performance-and-monitoring/analyzer.mdx b/core/guides/clickhouse/performance-and-monitoring/analyzer.mdx similarity index 98% rename from guides/cloud-oss/performance-and-monitoring/analyzer.mdx rename to core/guides/clickhouse/performance-and-monitoring/analyzer.mdx index d1902a5d..6a69b00d 100644 --- a/guides/cloud-oss/performance-and-monitoring/analyzer.mdx +++ b/core/guides/clickhouse/performance-and-monitoring/analyzer.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' --- In ClickHouse version `24.3`, the new query analyzer was enabled by default. -You can read more details about how it works [here](/guides/cloud-oss/performance-and-monitoring/understanding-query-execution-with-the-analyzer#analyzer). +You can read more details about how it works [here](/core/guides/clickhouse/performance-and-monitoring/understanding-query-execution-with-the-analyzer#analyzer). ## Known incompatibilities {#known-incompatibilities} diff --git a/guides/cloud-oss/performance-and-monitoring/dynamic-column-selection.mdx b/core/guides/clickhouse/performance-and-monitoring/dynamic-column-selection.mdx similarity index 90% rename from guides/cloud-oss/performance-and-monitoring/dynamic-column-selection.mdx rename to core/guides/clickhouse/performance-and-monitoring/dynamic-column-selection.mdx index 11fa1367..ead0afcd 100644 --- a/guides/cloud-oss/performance-and-monitoring/dynamic-column-selection.mdx +++ b/core/guides/clickhouse/performance-and-monitoring/dynamic-column-selection.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/dynamic-column-selection +slug: /core/guides/developer/dynamic-column-selection sidebarTitle: 'Dynamic column selection' title: 'Dynamic column selection' description: 'Use alternative query languages in ClickHouse' @@ -7,9 +7,9 @@ doc_type: 'guide' keywords: ['dynamic column selection', 'regular expressions', 'APPLY modifier', 'advanced queries', 'developer guide'] --- -[Dynamic column selection](/reference/statements/select#dynamic-column-selection) is a powerful but underutilized ClickHouse feature that allows you to select columns using regular expressions instead of naming each column individually. You can also apply functions to matching columns using the `APPLY` modifier, making it incredibly useful for data analysis and transformation tasks. +[Dynamic column selection](/core/reference/statements/select#dynamic-column-selection) is a powerful but underutilized ClickHouse feature that allows you to select columns using regular expressions instead of naming each column individually. You can also apply functions to matching columns using the `APPLY` modifier, making it incredibly useful for data analysis and transformation tasks. -We're going to learn how to use this feature with help from the [New York taxis dataset](/get-started/sample-datasets/nyc-taxi), which you can also find in the [ClickHouse SQL playground](https://sql.clickhouse.com?query=LS0gRGF0YXNldCBjb250YWluaW5nIHRheGkgcmlkZSBkYXRhIGluIE5ZQyBmcm9tIDIwMDkuIE1vcmUgaW5mbyBoZXJlOiBodHRwczovL2NsaWNraG91c2UuY29tL2RvY3MvZW4vZ2V0dGluZy1zdGFydGVkL2V4YW1wbGUtZGF0YXNldHMvbnljLXRheGkKU0VMRUNUICogRlJPTSBueWNfdGF4aS50cmlwcyBMSU1JVCAxMDA). +We're going to learn how to use this feature with help from the [New York taxis dataset](/core/get-started/sample-datasets/nyc-taxi), which you can also find in the [ClickHouse SQL playground](https://sql.clickhouse.com?query=LS0gRGF0YXNldCBjb250YWluaW5nIHRheGkgcmlkZSBkYXRhIGluIE5ZQyBmcm9tIDIwMDkuIE1vcmUgaW5mbyBoZXJlOiBodHRwczovL2NsaWNraG91c2UuY29tL2RvY3MvZW4vZ2V0dGluZy1zdGFydGVkL2V4YW1wbGUtZGF0YXNldHMvbnljLXRheGkKU0VMRUNUICogRlJPTSBueWNfdGF4aS50cmlwcyBMSU1JVCAxMDA). @@ -90,7 +90,7 @@ LIMIT 5; ## Apply functions to all columns {#applying-functions} -We can also use the [`APPLY`](/reference/statements/select) modifier to apply functions across every column. +We can also use the [`APPLY`](/core/reference/statements/select) modifier to apply functions across every column. For example, if we wanted to find the maximum value of each of those columns, we could run the following query: ```sql @@ -153,7 +153,7 @@ FROM nyc_taxi.trips; ## Replacing columns {#replacing-columns} -So far so good. But let’s say we want to adjust one of the values, while leaving the other ones as they're. For example, maybe we want to double the total amount and divide the MTA tax by 1.1. We can do that by using the [`REPLACE`](/reference/statements/select) modifier, which will replace a column while leaving the other ones as they're. +So far so good. But let’s say we want to adjust one of the values, while leaving the other ones as they're. For example, maybe we want to double the total amount and divide the MTA tax by 1.1. We can do that by using the [`REPLACE`](/core/reference/statements/select) modifier, which will replace a column while leaving the other ones as they're. ```sql FROM nyc_taxi.trips @@ -177,7 +177,7 @@ SELECT ## Excluding columns {#excluding-columns} -We can also choose to exclude a field by using the [`EXCEPT`](/reference/statements/select) modifier. For example, to remove the `tolls_amount` column, we would write the following query: +We can also choose to exclude a field by using the [`EXCEPT`](/core/reference/statements/select) modifier. For example, to remove the `tolls_amount` column, we would write the following query: ```sql FROM nyc_taxi.trips diff --git a/guides/cloud-oss/performance-and-monitoring/query-optimization.mdx b/core/guides/clickhouse/performance-and-monitoring/query-optimization.mdx similarity index 89% rename from guides/cloud-oss/performance-and-monitoring/query-optimization.mdx rename to core/guides/clickhouse/performance-and-monitoring/query-optimization.mdx index 9c119171..40a8e37b 100644 --- a/guides/cloud-oss/performance-and-monitoring/query-optimization.mdx +++ b/core/guides/clickhouse/performance-and-monitoring/query-optimization.mdx @@ -11,11 +11,11 @@ import { Image } from "/snippets/components/Image.jsx"; # A simple guide for query optimization -This section aims to illustrate through common scenarios how to use different performance and optimization techniques, such as [analyzer](/guides/cloud-oss/performance-and-monitoring/analyzer), [query profiling](/concepts/features/performance/troubleshoot/sampling-query-profiler) or [avoid nullable Columns](/concepts/best-practices/avoidnullablecolumns), in order to improve your ClickHouse query performances. +This section aims to illustrate through common scenarios how to use different performance and optimization techniques, such as [analyzer](/core/guides/clickhouse/performance-and-monitoring/analyzer), [query profiling](/core/concepts/features/performance/troubleshoot/sampling-query-profiler) or [avoid nullable Columns](/core/concepts/best-practices/avoidnullablecolumns), in order to improve your ClickHouse query performances. ## Understand query performance {#understand-query-performance} -The best moment to think about performance optimization is when you're setting up your [data schema](/guides/cloud-oss/data-modelling/schema-design) before ingesting data into ClickHouse for the first time.  +The best moment to think about performance optimization is when you're setting up your [data schema](/core/guides/clickhouse/data-modelling/schema-design) before ingesting data into ClickHouse for the first time.  But let's be honest; it is difficult to predict how much your data will grow or what types of queries will be executed.  @@ -29,7 +29,7 @@ In this section, we will look at those tools and how to use them.  To understand query performance, let's look at what happens in ClickHouse when a query is executed.  -The following part is deliberately simplified and takes some shortcuts; the idea here isn't to drown you with details but to get you up to speed with the basic concepts. For more information you can read about [query analyzer](/guides/cloud-oss/performance-and-monitoring/analyzer).  +The following part is deliberately simplified and takes some shortcuts; the idea here isn't to drown you with details but to get you up to speed with the basic concepts. For more information you can read about [query analyzer](/core/guides/clickhouse/performance-and-monitoring/analyzer).  From a very high-level standpoint, when ClickHouse executes a query, the following happens:  @@ -49,7 +49,7 @@ The data is read and processed in parallel. This is the stage where ClickHouse a The results are merged, sorted, and formatted into a final result before being sent to the client. -In reality, many [optimizations](/get-started/about/why-clickhouse-is-so-fast) are taking place, and we will discuss them a bit more in this guide, but for now, those main concepts give us a good understanding of what is happening behind the scenes when ClickHouse executes a query.  +In reality, many [optimizations](/core/get-started/about/why-clickhouse-is-so-fast) are taking place, and we will discuss them a bit more in this guide, but for now, those main concepts give us a good understanding of what is happening behind the scenes when ClickHouse executes a query.  With this high-level understanding, let's examine the tooling ClickHouse provides and how we can use it to track the metrics that affect query performance.  @@ -107,7 +107,7 @@ ORDER BY tuple() ### Query logs {#query-logs} -By default, ClickHouse collects and logs information about each executed query in the [query logs](/reference/system-tables/query_log). This data is stored in the table `system.query_log`.  +By default, ClickHouse collects and logs information about each executed query in the [query logs](/core/reference/system-tables/query_log). This data is stored in the table `system.query_log`.  For each executed query, ClickHouse logs statistics such as query execution time, number of rows read, and resource usage, such as CPU, memory usage, or filesystem cache hits.  @@ -324,9 +324,9 @@ The table contains 329.04 million rows, therefore each query is doing a full sca ### Explain statement {#explain-statement} -Now that we have some long-running queries, let's understand how they're executed. For this, ClickHouse supports the [EXPLAIN statement command](/reference/statements/explain). It is a very useful tool that provides a very detailed view of all the query execution stages without actually running the query. While it can be overwhelming to look at for a non-ClickHouse expert, it remains an essential tool for gaining insight into how your query is executed. +Now that we have some long-running queries, let's understand how they're executed. For this, ClickHouse supports the [EXPLAIN statement command](/core/reference/statements/explain). It is a very useful tool that provides a very detailed view of all the query execution stages without actually running the query. While it can be overwhelming to look at for a non-ClickHouse expert, it remains an essential tool for gaining insight into how your query is executed. -The documentation provides a detailed [guide](/guides/cloud-oss/performance-and-monitoring/understanding-query-execution-with-the-analyzer) on what the EXPLAIN statement is and how to use it to analyze your query execution. Rather than repeating what is in this guide, let's focus on a few commands that will help us find bottlenecks in query execution performance.  +The documentation provides a detailed [guide](/core/guides/clickhouse/performance-and-monitoring/understanding-query-execution-with-the-analyzer) on what the EXPLAIN statement is and how to use it to analyze your query execution. Rather than repeating what is in this guide, let's focus on a few commands that will help us find bottlenecks in query execution performance.  **Explain indexes = 1** @@ -404,7 +404,7 @@ Query optimization requires structure. I'm not talking about advanced benchmarki Start by identifying your slow queries from query logs, then investigate potential improvements in isolation. When testing the query, make sure you disable the filesystem cache.  -> ClickHouse leverages [caching](/concepts/features/performance/caches/caches) to speed up query performance at different stages. This is good for query performance, but during troubleshooting, it could hide potential I/O bottlenecks or poor table schema. For this reason, I suggest turning off the filesystem cache during testing. Make sure to have it enabled in production setup. +> ClickHouse leverages [caching](/core/concepts/features/performance/caches/caches) to speed up query performance at different stages. This is good for query performance, but during troubleshooting, it could hide potential I/O bottlenecks or poor table schema. For this reason, I suggest turning off the filesystem cache during testing. Make sure to have it enabled in production setup. Once you have identified potential optimizations, it is recommended that you implement them one by one to better track how they affect performance. Below is a diagram describing the general approach. @@ -418,11 +418,11 @@ Now that we have our framework to test, we can start optimizing. The best place to start is to look at how the data is stored. As for any database, the less data we read, the faster the query will be executed.  -Depending on how you ingested your data, you might have leveraged ClickHouse [capabilities](/integrations/connectors/data-integrations/drivers-and-interfaces/schema-inference) to infer the table schema based on the ingested data. While this is very practical to get started, if you want to optimize your query performance, you'll need to review the data schema to best fit your use case. +Depending on how you ingested your data, you might have leveraged ClickHouse [capabilities](/core/concepts/features/interfaces/schema-inference) to infer the table schema based on the ingested data. While this is very practical to get started, if you want to optimize your query performance, you'll need to review the data schema to best fit your use case. ### Nullable {#nullable} -As described in the [best practices documentation](/concepts/best-practices/select-data-type#avoid-nullable-columns), avoid nullable columns wherever possible. It is tempting to use them often, as they make the data ingestion mechanism more flexible, but they negatively affect performance as an additional column has to be processed every time. +As described in the [best practices documentation](/core/concepts/best-practices/select-data-type#avoid-nullable-columns), avoid nullable columns wherever possible. It is tempting to use them often, as they make the data ingestion mechanism more flexible, but they negatively affect performance as an additional column has to be processed every time. Running an SQL query that counts the rows with a NULL value can easily reveal the columns in your tables that actually need a Nullable value. @@ -468,7 +468,7 @@ We have only two columns with null values: `mta_tax` and `payment_type`. The res ### Low cardinality {#low-cardinality} -An easy optimization to apply to Strings is to make best use of the LowCardinality data type. As described in the low cardinality [documentation](/reference/data-types/lowcardinality), ClickHouse applies dictionary coding to LowCardinality-columns, which significantly increases query performance.  +An easy optimization to apply to Strings is to make best use of the LowCardinality data type. As described in the low cardinality [documentation](/core/reference/data-types/lowcardinality), ClickHouse applies dictionary coding to LowCardinality-columns, which significantly increases query performance.  An easy rule of thumb for determining which columns are good candidates for LowCardinality is that any column with less than 10,000 unique values is a perfect candidate. @@ -587,7 +587,7 @@ The new table is considerably smaller than the previous one. We see a reduction Primary keys in ClickHouse work differently than in most traditional database systems. In those systems, primary keys enforce uniqueness and data integrity. Any attempt to insert duplicate primary key values is rejected, and a B-tree or hash-based index is usually created for fast lookup.  -In ClickHouse, the primary key's [objective](/guides/cloud-oss/data-modelling/sparse-primary-indexes#a-table-with-a-primary-key) is different; it doesn't enforce uniqueness or help with data integrity. Instead, it is designed to optimize query performance. The primary key defines the order in which the data is stored on disk and is implemented as a sparse index that stores pointers to the first row of each granule. +In ClickHouse, the primary key's [objective](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#a-table-with-a-primary-key) is different; it doesn't enforce uniqueness or help with data integrity. Instead, it is designed to optimize query performance. The primary key defines the order in which the data is stored on disk and is implemented as a sparse index that stores pointers to the first row of each granule. > Granules in ClickHouse are the smallest units of data read during query execution. They contain up to a fixed number of rows, determined by index_granularity, with a default value of 8192 rows. Granules are stored contiguously and sorted by the primary key.  @@ -781,6 +781,6 @@ Thanks to the primary key, only a subset of the table granules has been selected ## Next steps {#next-steps} -Hopefully this guide gets a good understanding on how to investigate slow queries with ClickHouse and how to make them faster. To explore more on this topic, you can read more about [query analyzer](/guides/cloud-oss/performance-and-monitoring/analyzer) and [profiling](/concepts/features/performance/troubleshoot/sampling-query-profiler) to understand better how exactly ClickHouse is executing your query. +Hopefully this guide gets a good understanding on how to investigate slow queries with ClickHouse and how to make them faster. To explore more on this topic, you can read more about [query analyzer](/core/guides/clickhouse/performance-and-monitoring/analyzer) and [profiling](/core/concepts/features/performance/troubleshoot/sampling-query-profiler) to understand better how exactly ClickHouse is executing your query. -As you get more familiar with ClickHouse specificities, I would recommend to read about [partitioning keys](/concepts/best-practices/partitioning-keys) and [data skipping indexes](/concepts/features/performance/skip-indexes/skipping-indexes) to learn about more advanced techniques you can use to accelerate your queries. +As you get more familiar with ClickHouse specificities, I would recommend to read about [partitioning keys](/core/concepts/best-practices/partitioning-keys) and [data skipping indexes](/core/concepts/features/performance/skip-indexes/skipping-indexes) to learn about more advanced techniques you can use to accelerate your queries. diff --git a/guides/cloud-oss/performance-and-monitoring/understanding-query-execution-with-the-analyzer.mdx b/core/guides/clickhouse/performance-and-monitoring/understanding-query-execution-with-the-analyzer.mdx similarity index 98% rename from guides/cloud-oss/performance-and-monitoring/understanding-query-execution-with-the-analyzer.mdx rename to core/guides/clickhouse/performance-and-monitoring/understanding-query-execution-with-the-analyzer.mdx index 9b96ec25..f3e647a2 100644 --- a/guides/cloud-oss/performance-and-monitoring/understanding-query-execution-with-the-analyzer.mdx +++ b/core/guides/clickhouse/performance-and-monitoring/understanding-query-execution-with-the-analyzer.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/understanding-query-execution-with-the-analyzer +slug: /core/guides/developer/understanding-query-execution-with-the-analyzer sidebarTitle: 'Understanding query execution with the analyzer' title: 'Understanding query execution with the analyzer' description: 'Describes how you can use the analyzer to understand how ClickHouse executes your queries' @@ -69,7 +69,7 @@ Each node has corresponding children and the overall tree represents the overall ClickHouse currently has two architectures for the Analyzer. You can use the old architecture by setting: `enable_analyzer=0`. The new architecture is enabled by default. We're going to describe only the new architecture here, given the old one is going to be deprecated once the new analyzer is generally available. -The new architecture should provide us with a better framework to improve ClickHouse's performance. However, given it is a fundamental component of the query processing steps, it also might have a negative impact on some queries and there are [known incompatibilities](/guides/cloud-oss/performance-and-monitoring/analyzer#known-incompatibilities). You can revert back to the old analyzer by changing the `enable_analyzer` setting at the query or user level. +The new architecture should provide us with a better framework to improve ClickHouse's performance. However, given it is a fundamental component of the query processing steps, it also might have a negative impact on some queries and there are [known incompatibilities](/core/guides/clickhouse/performance-and-monitoring/analyzer#known-incompatibilities). You can revert back to the old analyzer by changing the `enable_analyzer` setting at the query or user level. The analyzer is an important step of the query execution. It takes an AST and transforms it into a query tree. The main benefit of a query tree over an AST is that a lot of the components will be resolved, like the storage for instance. We also know from which table to read, aliases are also resolved, and the tree knows the different data types used. With all these benefits, the analyzer can apply optimizations. The way these optimizations work is via "passes". Every pass is going to look for different optimizations. You can see all the passes [here](https://github.com/ClickHouse/ClickHouse/blob/76578ebf92af3be917cd2e0e17fea2965716d958/src/Analyzer/QueryTreePassManager.cpp#L249), let's see it in practice with our previous query: diff --git a/guides/cloud-oss/working-with-arrays.mdx b/core/guides/clickhouse/working-with-arrays.mdx similarity index 88% rename from guides/cloud-oss/working-with-arrays.mdx rename to core/guides/clickhouse/working-with-arrays.mdx index 7fa9d198..1ef041a3 100644 --- a/guides/cloud-oss/working-with-arrays.mdx +++ b/core/guides/clickhouse/working-with-arrays.mdx @@ -3,20 +3,20 @@ title: 'Working with arrays in ClickHouse' description: 'Starter guide on how to use arrays in ClickHouse' keywords: ['Arrays'] sidebarTitle: 'Working with arrays in ClickHouse' -slug: /guides/working-with-arrays +slug: /core/guides/working-with-arrays doc_type: 'guide' --- import { RunnableCode } from "/snippets/components/RunnableCode/RunnableCode.jsx"; -> In this guide, you'll learn how to use arrays in ClickHouse along with some of the most commonly used [array functions](/reference/functions/regular-functions/array-functions). +> In this guide, you'll learn how to use arrays in ClickHouse along with some of the most commonly used [array functions](/core/reference/functions/regular-functions/array-functions). ## Introduction to arrays {#array-basics} An array is an in-memory data structure which groups together values. We call these _elements_ of the array, and each element can be referred to by an index, which indicates the position of the element in this grouping. -Arrays in ClickHouse can be formed using the [`array`](/reference/data-types/array) function: +Arrays in ClickHouse can be formed using the [`array`](/core/reference/data-types/array) function: ```sql array(T) @@ -48,7 +48,7 @@ SELECT array('hello', 'world') AS string_array └───────────────────┘ ``` -Or an array of nested types such as [tuples](/reference/data-types/tuple): +Or an array of nested types such as [tuples](/core/reference/data-types/tuple): ```sql SELECT array(tuple(1, 2), tuple(3, 4)) @@ -85,7 +85,7 @@ SELECT [1::UInt8, 2.5::Float32, 3::UInt8] AS mixed_array, toTypeName([1, 2.5, 3] You can use the `use_variant_as_common_type` setting to change the default behavior described above. -This allows you to use the [Variant](/reference/data-types/variant) type as a result type for `if`/`multiIf`/`array`/`map` functions when there is no common type for argument types. +This allows you to use the [Variant](/core/reference/data-types/variant) type as a result type for `if`/`multiIf`/`array`/`map` functions when there is no common type for argument types. For example: @@ -178,7 +178,7 @@ SELECT length(string_array); └──────────────────────┘ ``` -You can also use the [`arrayEnumerate`](/reference/functions/regular-functions/array-functions#arrayEnumerate) function to return an array of indexes of the elements: +You can also use the [`arrayEnumerate`](/core/reference/functions/regular-functions/array-functions#arrayEnumerate) function to return an array of indexes of the elements: ```sql WITH array('learning', 'ClickHouse', 'arrays') AS string_array @@ -200,7 +200,7 @@ SELECT indexOf([4, 2, 8, 8, 9], 8); ``` Notice that this function will return the first index it encounters if there are multiple identical values in the array. -If your array elements are sorted in ascending order then you can use the [`indexOfAssumeSorted`](/reference/functions/regular-functions/array-functions#indexOfAssumeSorted) function. +If your array elements are sorted in ascending order then you can use the [`indexOfAssumeSorted`](/core/reference/functions/regular-functions/array-functions#indexOfAssumeSorted) function. The functions `has`, `hasAll` and `hasAny` are useful for determining whether an array contains a given value. Consider the following example: @@ -231,7 +231,7 @@ hasAll_false: 0 So far, the examples have been pretty simple. The utility of arrays really shows itself when used on a real-world dataset. -We will be using the [ontime dataset](/get-started/sample-datasets/ontime), which contains flight data from the Bureau of Transportation Statistics. +We will be using the [ontime dataset](/core/get-started/sample-datasets/ontime), which contains flight data from the Bureau of Transportation Statistics. You can find this dataset on the [SQL playground](https://sql.clickhouse.com/?query_id=M4FSVBVMSHY98NKCQP8N4K). We've selected this dataset as arrays are often well suited to working with time-series data and can assist in simplifying @@ -269,7 +269,7 @@ Let's take a look at the top 10 busiest airports in the US on a particular day c We're interested in understanding how many flights depart from each airport. Our data contains one row per flight, but it would be convenient if we could group the data by the origin airport and roll the destinations into an array. -To achieve this we can use the [`groupArray`](/reference/functions/aggregate-functions/reference/groupArray) aggregate function, which takes values of the specified column from each row and groups them in an array. +To achieve this we can use the [`groupArray`](/core/reference/functions/aggregate-functions/reference/groupArray) aggregate function, which takes values of the specified column from each row and groups them in an array. Run the query below to see how it works: @@ -285,7 +285,7 @@ GROUP BY FlightDate, Origin ORDER BY length(Destinations) ``` -The [`toStringCutToZero`](/reference/functions/regular-functions/type-conversion-functions#toStringCutToZero) in the query above is used to remove null characters which appear after some of the airport's 3 letter designation. +The [`toStringCutToZero`](/core/reference/functions/regular-functions/type-conversion-functions#toStringCutToZero) in the query above is used to remove null characters which appear after some of the airport's 3 letter designation. With the data in this format, we can easily find the order of the busiest airports by finding the length of the rolled up "Destinations" arrays: @@ -316,8 +316,8 @@ ORDER BY outward_flights DESC We saw in the previous query that Denver International Airport was the airport with the most outward flights for our particular chosen day. Let's take a look at how many of those flights were on-time, delayed by 15-30 minutes or delayed by more than 30 minutes. -Many of the array functions in ClickHouse are so-called ["higher-order functions"](/reference/functions/regular-functions/overview#higher-order-functions) and accept a lambda function as the first parameter. -The [`arrayMap`](/reference/functions/regular-functions/array-functions#arrayMap) function is an example of one such higher-order function and returns a new array from the provided array by applying a lambda function to each element of the original array. +Many of the array functions in ClickHouse are so-called ["higher-order functions"](/core/reference/functions/regular-functions/overview#higher-order-functions) and accept a lambda function as the first parameter. +The [`arrayMap`](/core/reference/functions/regular-functions/array-functions#arrayMap) function is an example of one such higher-order function and returns a new array from the provided array by applying a lambda function to each element of the original array. Run the query below which uses the `arrayMap` function to see which flights were delayed or on-time. For pairs of origin/destinations, it shows the tail number and status for every flight: @@ -343,7 +343,7 @@ GROUP BY ALL In the above query, the `arrayMap` function takes a single-element array `[DepDelayMinutes]` and applies the lambda function `d -> if(d >= 30, 'DELAYED', if(d >= 15, 'WARNING', 'ON-TIME'` to categorize it. Then the first element of the resulting array is extracted with `[DepDelayMinutes][1]`. -The [`arrayZip`](/reference/functions/regular-functions/array-functions#arrayZip) function combines the `Tail_Number` array and the `statuses` array into a single array. +The [`arrayZip`](/core/reference/functions/regular-functions/array-functions#arrayZip) function combines the `Tail_Number` array and the `statuses` array into a single array. ### arrayFilter {#arrayfilter} @@ -362,7 +362,7 @@ GROUP BY Origin, OriginCityName ORDER BY num_delays_30_min_or_more DESC ``` -In the query above we pass a lambda function as the first argument to the [`arrayFilter`](/reference/functions/regular-functions/array-functions#arrayFilter) function. +In the query above we pass a lambda function as the first argument to the [`arrayFilter`](/core/reference/functions/regular-functions/array-functions#arrayFilter) function. This lambda function itself takes the delay in minutes (d) and returns `1` if the condition is met, else `0`. ```sql @@ -371,7 +371,7 @@ d -> d >= 30 ### arraySort and arrayIntersect {#arraysort-and-arrayintersect} -Next, we'll figure out which pairs of major US airports serve the most common destinations with the help of the [`arraySort`](/reference/functions/regular-functions/array-functions#arraySort) and [`arrayIntersect`](/reference/functions/regular-functions/array-functions#arrayIntersect) functions. +Next, we'll figure out which pairs of major US airports serve the most common destinations with the help of the [`arraySort`](/core/reference/functions/regular-functions/array-functions#arraySort) and [`arrayIntersect`](/core/reference/functions/regular-functions/array-functions#arrayIntersect) functions. `arraySort` takes an array and sorts the elements in ascending order by default, although you can also pass a lambda function to it to define the sorting order. `arrayIntersect` takes multiple arrays and returns an array which contains elements present in all the arrays. @@ -505,7 +505,7 @@ ORDER BY flightsDelayed DESC Congratulations! You've learned how to work with arrays in ClickHouse, from basic array creation and indexing to powerful functions like `groupArray`, `arrayFilter`, `arrayMap`, `arrayReduce`, and `arrayJoin`. To continue your learning journey, explore the complete array functions reference to discover additional functions like `arrayFlatten`, `arrayReverse`, and `arrayDistinct`. -You might also want to learn about related data structures such as [`tuples`](/reference/data-types/tuple#creating-tuples), [JSON](/reference/data-types/newjson), and [Map](/reference/data-types/map) types which work well alongside arrays. +You might also want to learn about related data structures such as [`tuples`](/core/reference/data-types/tuple#creating-tuples), [JSON](/core/reference/data-types/newjson), and [Map](/core/reference/data-types/map) types which work well alongside arrays. Practice applying these concepts to your own datasets, and experiment with different queries on the SQL playground or other example datasets. Arrays are a fundamental feature in ClickHouse that enable, efficient analytical queries - as you become more comfortable with array functions, you'll find they can dramatically simplify complex aggregations and time-series analysis. diff --git a/guides/cloud-oss/working-with-joins.mdx b/core/guides/clickhouse/working-with-joins.mdx similarity index 94% rename from guides/cloud-oss/working-with-joins.mdx rename to core/guides/clickhouse/working-with-joins.mdx index 0325aa39..d836546d 100644 --- a/guides/cloud-oss/working-with-joins.mdx +++ b/core/guides/clickhouse/working-with-joins.mdx @@ -3,7 +3,7 @@ title: 'Working with JOINs in ClickHouse' description: 'Starter guide on how to use JOINs in ClickHouse' keywords: ['JOINs', 'SQL', 'INNER JOIN', 'OUTER JOIN', 'CROSS JOIN', 'SEMI JOIN', 'ANTI JOIN', 'ANY JOIN', 'ASOF JOIN'] sidebarTitle: 'Working with JOINs in ClickHouse' -slug: /guides/working-with-joins +slug: /core/guides/working-with-joins doc_type: 'guide' --- @@ -90,7 +90,7 @@ The behavior of the `INNER JOIN` can be extended or changed, by using one of the ## (LEFT / RIGHT / FULL) OUTER JOIN {#left--right--full-outer-join} -The `LEFT OUTER JOIN` behaves like `INNER JOIN`; plus, for non-matching left table rows, ClickHouse returns [default values](/reference/statements/create/table#default_values) for the right table’s columns. +The `LEFT OUTER JOIN` behaves like `INNER JOIN`; plus, for non-matching left table rows, ClickHouse returns [default values](/core/reference/statements/create/table#default_values) for the right table’s columns. A `RIGHT OUTER JOIN` query is similar and also returns values from non-matching rows from the right table together with default values for the columns of the left table. @@ -99,7 +99,7 @@ A `FULL OUTER JOIN` query combines the `LEFT` and `RIGHT OUTER JOIN` and returns Outer Join -ClickHouse can be [configured](/reference/settings/session-settings#join_use_nulls) to return [NULL](/reference/syntax#null)s instead of default values (however, for [performance reasons](/reference/data-types/nullable#storage-features), that is less recommended). +ClickHouse can be [configured](/core/reference/settings/session-settings#join_use_nulls) to return [NULL](/core/reference/syntax#null)s instead of default values (however, for [performance reasons](/core/reference/data-types/nullable#storage-features), that is less recommended). This query finds all movies that have no genre by querying for all rows from the `movies` table that don’t have matches in the `genres` table, and therefore get (at query time) the default value 0 for the `movie_id` column: @@ -189,7 +189,7 @@ An alternative syntax for `CROSS JOIN` specifies multiple tables in the `FROM` c ClickHouse is [rewriting](https://github.com/ClickHouse/ClickHouse/blob/23.2/src/Core/Settings.h#L896) a `CROSS JOIN` to an `INNER JOIN` if there are joining expressions in the `WHERE` section of the query. -You can check that for the example query via [EXPLAIN SYNTAX](/reference/statements/explain#explain-syntax) (that returns the syntactically optimized version into which a query gets rewritten before being [executed](https://youtu.be/hP6G2Nlz_cA)): +You can check that for the example query via [EXPLAIN SYNTAX](/core/reference/statements/explain#explain-syntax) (that returns the syntactically optimized version into which a query gets rewritten before being [executed](https://youtu.be/hP6G2Nlz_cA)): ```sql EXPLAIN SYNTAX @@ -222,7 +222,7 @@ LIMIT 10; └─────────────────────────────────────────────┘ ``` -The `INNER JOIN` clause in the syntactically optimized `CROSS JOIN` query version contains the `ALL` keyword, that got explicitly added in order to keep the cartesian product semantics of the `CROSS JOIN` even when being rewritten into an `INNER JOIN`, for which the cartesian product can be [disabled](/reference/settings/session-settings#join_default_strictness). +The `INNER JOIN` clause in the syntactically optimized `CROSS JOIN` query version contains the `ALL` keyword, that got explicitly added in order to keep the cartesian product semantics of the `CROSS JOIN` even when being rewritten into an `INNER JOIN`, for which the cartesian product can be [disabled](/core/reference/settings/session-settings#join_default_strictness). ```sql ALL @@ -314,7 +314,7 @@ And the `INNER ANY JOIN` is the `INNER JOIN` with a disabled cartesian product. Any Join -The following example demonstrates the `LEFT ANY JOIN` with an abstract example using two temporary tables (`left_table` and `right_table`) constructed with the [values](https://github.com/ClickHouse/ClickHouse/blob/23.2/src/TableFunctions/TableFunctionValues.h) [table function](/reference/functions/table-functions): +The following example demonstrates the `LEFT ANY JOIN` with an abstract example using two temporary tables (`left_table` and `right_table`) constructed with the [values](https://github.com/ClickHouse/ClickHouse/blob/23.2/src/TableFunctions/TableFunctionValues.h) [table function](/core/reference/functions/table-functions): ```sql WITH @@ -438,4 +438,4 @@ The `ON` clause of the `ASOF JOIN` is required and specifies an exact match cond ## Summary {#summary} This guide shows how ClickHouse supports all standard SQL JOIN types, plus specialized joins to power analytical queries. -See the documentation for the [JOIN](/reference/statements/select/join) statement for more details on JOINs. +See the documentation for the [JOIN](/core/reference/statements/select/join) statement for more details on JOINs. diff --git a/core/guides/navigation.json b/core/guides/navigation.json new file mode 100644 index 00000000..722a8c6c --- /dev/null +++ b/core/guides/navigation.json @@ -0,0 +1,271 @@ +{ + "item": "Guides", + "icon": "/images/icons/icon-guides.svg", + "groups": [ + { + "group": "ClickHouse guides", + "root": "core/guides/clickhouse/index", + "pages": [ + { + "group": "Data formats", + "root": "core/guides/clickhouse/data-formats/intro", + "pages": [ + "core/guides/clickhouse/data-formats/csv-tsv", + "core/guides/clickhouse/data-formats/parquet", + "core/guides/clickhouse/data-formats/arrow-avro-orc", + "core/guides/clickhouse/data-formats/binary", + "core/guides/clickhouse/data-formats/sql", + "core/guides/clickhouse/data-formats/templates-regex", + { + "group": "JSON", + "root": "core/guides/clickhouse/data-formats/json/intro", + "pages": [ + "core/guides/clickhouse/data-formats/json/loading", + "core/guides/clickhouse/data-formats/json/inference", + "core/guides/clickhouse/data-formats/json/schema", + "core/guides/clickhouse/data-formats/json/formats", + "core/guides/clickhouse/data-formats/json/exporting", + "core/guides/clickhouse/data-formats/json/other" + ] + } + ] + }, + { + "group": "Data modelling", + "root": "core/guides/clickhouse/data-modelling/index", + "pages": [ + "core/guides/clickhouse/data-modelling/schema-design", + "core/guides/clickhouse/data-modelling/sparse-primary-indexes", + "core/guides/clickhouse/data-modelling/denormalization", + "core/guides/clickhouse/data-modelling/backfilling", + "core/guides/clickhouse/data-modelling/merge-table-function", + "core/guides/clickhouse/data-modelling/stored-procedures-and-prepared-statements", + "core/guides/clickhouse/data-modelling/generating-test-data", + { + "group": "Compression", + "expanded": false, + "pages": [ + "core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse", + "core/guides/clickhouse/data-modelling/compression/compression-modes" + ] + }, + "core/guides/clickhouse/working-with-arrays", + "core/guides/clickhouse/working-with-joins" + ] + }, + { + "group": "Performance & monitoring", + "pages": [ + "core/guides/clickhouse/performance-and-monitoring/query-optimization", + "core/guides/clickhouse/performance-and-monitoring/analyzer", + "core/guides/clickhouse/performance-and-monitoring/understanding-query-execution-with-the-analyzer", + "core/guides/clickhouse/performance-and-monitoring/dynamic-column-selection" + ] + }, + { + "group": "Aggregate combinator examples", + "expanded": false, + "pages": [ + "core/guides/clickhouse/examples/aggregate-function-combinators/anyIf", + "core/guides/clickhouse/examples/aggregate-function-combinators/argMaxIf", + "core/guides/clickhouse/examples/aggregate-function-combinators/argMinIf", + "core/guides/clickhouse/examples/aggregate-function-combinators/avgIf", + "core/guides/clickhouse/examples/aggregate-function-combinators/avgMap", + "core/guides/clickhouse/examples/aggregate-function-combinators/avgMerge", + "core/guides/clickhouse/examples/aggregate-function-combinators/avgMergeState", + "core/guides/clickhouse/examples/aggregate-function-combinators/avgResample", + "core/guides/clickhouse/examples/aggregate-function-combinators/avgState", + "core/guides/clickhouse/examples/aggregate-function-combinators/countIf", + "core/guides/clickhouse/examples/aggregate-function-combinators/countResample", + "core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayDistinct", + "core/guides/clickhouse/examples/aggregate-function-combinators/groupArrayResample", + "core/guides/clickhouse/examples/aggregate-function-combinators/maxMap", + "core/guides/clickhouse/examples/aggregate-function-combinators/maxSimpleState", + "core/guides/clickhouse/examples/aggregate-function-combinators/minMap", + "core/guides/clickhouse/examples/aggregate-function-combinators/minSimpleState", + "core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingArrayIf", + "core/guides/clickhouse/examples/aggregate-function-combinators/quantilesTimingIf", + "core/guides/clickhouse/examples/aggregate-function-combinators/sumArray", + "core/guides/clickhouse/examples/aggregate-function-combinators/sumForEach", + "core/guides/clickhouse/examples/aggregate-function-combinators/sumIf", + "core/guides/clickhouse/examples/aggregate-function-combinators/sumMap", + "core/guides/clickhouse/examples/aggregate-function-combinators/sumSimpleState", + "core/guides/clickhouse/examples/aggregate-function-combinators/uniqArray", + "core/guides/clickhouse/examples/aggregate-function-combinators/uniqArrayIf" + ] + }, + "core/guides/oss/update", + { + "group": "OSS best practices", + "pages": [ + "core/guides/oss/best-practices/sizing-and-hardware-recommendations", + "core/guides/oss/best-practices/tips" + ] + }, + { + "group": "Deployment and scaling", + "expanded": false, + "root": "core/guides/oss/deployment-and-scaling/index", + "pages": [ + "core/guides/oss/deployment-and-scaling/terminology", + "core/guides/oss/deployment-and-scaling/shards", + "core/guides/oss/deployment-and-scaling/scaling-clusters", + "core/guides/oss/deployment-and-scaling/separation-storage-compute", + "core/guides/oss/deployment-and-scaling/cluster-discovery", + { + "group": "Keeper", + "expanded": false, + "pages": [ + "core/guides/oss/deployment-and-scaling/keeper/index", + "core/guides/oss/deployment-and-scaling/keeper/ssl-zookeeper" + ] + }, + { + "group": "Monitoring", + "expanded": false, + "pages": [ + "core/guides/oss/deployment-and-scaling/monitoring/monitoring", + "core/guides/oss/deployment-and-scaling/monitoring/opentelemetry" + ] + }, + { + "group": "Examples", + "expanded": false, + "pages": [ + "core/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas", + "core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica", + "core/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas" + ] + } + ] + } + ] + }, + { + "group": "Use case guides", + "root": "core/guides/use-cases/index", + "expandable": true, + "expanded": false, + "pages": [ + { + "group": "Real-time analytics", + "pages": [ + { + "group": "Time series", + "expanded": false, + "pages": [ + "core/guides/use-cases/real-time-analytics/time-series/index", + "core/guides/use-cases/real-time-analytics/time-series/date-time-data-types", + "core/guides/use-cases/real-time-analytics/time-series/basic-operations", + "core/guides/use-cases/real-time-analytics/time-series/analysis-functions", + "core/guides/use-cases/real-time-analytics/time-series/storage-efficiency", + "core/guides/use-cases/real-time-analytics/time-series/query-performance", + "core/guides/use-cases/real-time-analytics/time-series/materialized-view-rollup", + "core/guides/use-cases/real-time-analytics/time-series/time-series-filling-gaps" + ] + } + ] + }, + { + "group": "Observability", + "root": "core/guides/use-cases/observability/index", + "pages": [ + "core/guides/use-cases/observability/cloud-monitoring", + "core/guides/use-cases/observability/self-managed-monitoring", + { + "group": "Build your own", + "pages": [ + "core/guides/use-cases/observability/build-your-own/index", + "core/guides/use-cases/observability/build-your-own/introduction", + "core/guides/use-cases/observability/build-your-own/schema-design", + "core/guides/use-cases/observability/build-your-own/integrating-opentelemetry", + "core/guides/use-cases/observability/build-your-own/managing-data", + "core/guides/use-cases/observability/build-your-own/grafana", + "core/guides/use-cases/observability/build-your-own/demo-application" + ] + } + ] + }, + { + "group": "Data warehousing", + "root": "core/guides/use-cases/data-warehousing/index", + "pages": [ + { + "group": "Getting started", + "root": "core/guides/use-cases/data-warehousing/getting-started/overview", + "pages": [ + "core/guides/use-cases/data-warehousing/getting-started/querying-directly", + "core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs", + "core/guides/use-cases/data-warehousing/getting-started/accelerating-analytics", + "core/guides/use-cases/data-warehousing/getting-started/writing-data" + ] + }, + { + "group": "Catalogs", + "root": "core/guides/use-cases/data-warehousing/reference/index", + "pages": [ + "core/guides/use-cases/data-warehousing/glue-catalog", + "core/guides/use-cases/data-warehousing/lakekeeper-catalog", + "core/guides/use-cases/data-warehousing/nessie-catalog", + "core/guides/use-cases/data-warehousing/onelake-catalog", + "core/guides/use-cases/data-warehousing/polaris-catalog", + "core/guides/use-cases/data-warehousing/rest-catalog", + "core/guides/use-cases/data-warehousing/unity-catalog", + "core/guides/use-cases/data-warehousing/biglake-catalog" + ] + }, + "core/guides/use-cases/data-warehousing/support-matrix" + ] + }, + { + "group": "AI/ML", + "root": "core/guides/use-cases/ai-ml/index", + "pages": [ + "core/guides/use-cases/ai-ml/vector-search", + "core/guides/use-cases/ai-ml/ai-powered-sql-generation", + { + "group": "Data exploration", + "pages": [ + "core/guides/use-cases/ai-ml/data-exploration/jupyter-notebook", + "core/guides/use-cases/ai-ml/data-exploration/marimo-notebook" + ] + }, + { + "group": "MCP", + "pages": [ + "core/guides/use-cases/ai-ml/MCP/index", + "core/guides/use-cases/ai-ml/MCP/claude-desktop", + "core/guides/use-cases/ai-ml/MCP/librechat", + "core/guides/use-cases/ai-ml/MCP/anythingllm", + "core/guides/use-cases/ai-ml/MCP/open-webui", + "core/guides/use-cases/ai-ml/MCP/ollama", + "core/guides/use-cases/ai-ml/MCP/janai", + { + "group": "AI agent libraries", + "pages": [ + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/index", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/streamlit", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/langchain", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/llamaindex", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/pydantic-ai", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/slackbot", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/agno", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/chainlit", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/copilotkit", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/crewai", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/dspy", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/mcp-agent", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/upsonic", + "core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/openai-agents" + ] + } + ] + } + ] + } + ] + } + ] +} diff --git a/guides/oss/best-practices/sizing-and-hardware-recommendations.mdx b/core/guides/oss/best-practices/sizing-and-hardware-recommendations.mdx similarity index 90% rename from guides/oss/best-practices/sizing-and-hardware-recommendations.mdx rename to core/guides/oss/best-practices/sizing-and-hardware-recommendations.mdx index c3452366..5dfcfc23 100644 --- a/guides/oss/best-practices/sizing-and-hardware-recommendations.mdx +++ b/core/guides/oss/best-practices/sizing-and-hardware-recommendations.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/sizing-and-hardware-recommendations +slug: /core/guides/sizing-and-hardware-recommendations sidebarTitle: 'Sizing and hardware recommendations' title: 'Sizing and hardware recommendations' description: 'This guide discusses our general recommendations regarding hardware, compute, memory, and disk configurations for open-source users.' @@ -30,7 +30,7 @@ To maximize performance, we recommend directly attaching [provisioned IOPS SSD v For lower costs, you can use [general purpose SSD EBS volumes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/general-purpose.html). -You can also implement a tiered storage using SSDs and HDDs in a [hot/warm/cold architecture](/concepts/operations/delete/ttl#implementing-a-hotwarmcold-architecture). Alternatively, [AWS S3](https://aws.amazon.com/s3/) for storage is also possible to separate compute and storage. Please see our guide for using open-source ClickHouse with separation of compute and storage [here](/guides/oss/deployment-and-scaling/separation-storage-compute). Separation of compute and storage is available by default in ClickHouse Cloud. +You can also implement a tiered storage using SSDs and HDDs in a [hot/warm/cold architecture](/core/concepts/features/operations/delete/ttl#implementing-a-hotwarmcold-architecture). Alternatively, [AWS S3](https://aws.amazon.com/s3/) for storage is also possible to separate compute and storage. Please see our guide for using open-source ClickHouse with separation of compute and storage [here](/core/guides/oss/deployment-and-scaling/separation-storage-compute). Separation of compute and storage is available by default in ClickHouse Cloud. ## CPU {#cpu} @@ -64,7 +64,7 @@ The number of CPUs you should use depends on your workload. However, we generall - **[R-type](https://aws.amazon.com/ec2/instance-types/#Memory_Optimized) (data warehousing use cases):** 8 GB:1 memory-to-CPU-core ratio - **[C-type](https://aws.amazon.com/ec2/instance-types/#Compute_Optimized) (compute-optimized use cases):** 2 GB:1 memory-to-CPU-core ratio -As an example, when using M-type CPUs, we recommend provisioning 100GB of memory per 25 CPU cores. To determine the amount of memory appropriate for your application, profiling your memory usage is necessary. You can read [this guide on debugging memory issues](/concepts/features/performance/troubleshoot/debugging-memory-issues) or use the [built-in observability dashboard](/guides/oss/deployment-and-scaling/monitoring/monitoring) to monitor ClickHouse. +As an example, when using M-type CPUs, we recommend provisioning 100GB of memory per 25 CPU cores. To determine the amount of memory appropriate for your application, profiling your memory usage is necessary. You can read [this guide on debugging memory issues](/core/concepts/features/performance/troubleshoot/debugging-memory-issues) or use the [built-in observability dashboard](/core/guides/oss/deployment-and-scaling/monitoring/monitoring) to monitor ClickHouse. ## Memory {#memory} @@ -75,7 +75,7 @@ The required volume of RAM generally depends on: - The amount of data that is processed in queries. In general, however, the more memory you have, the faster your queries will run. -If your use case is sensitive to price, lower amounts of memory will work as it is possible to enable settings ([`max_bytes_before_external_group_by`](/reference/settings/session-settings#max_bytes_before_external_group_by) and [`max_bytes_before_external_sort`](/reference/settings/session-settings#max_bytes_before_external_sort)) to allow spilling data to disk, but note that this may significantly affect query performance. +If your use case is sensitive to price, lower amounts of memory will work as it is possible to enable settings ([`max_bytes_before_external_group_by`](/core/reference/settings/session-settings#max_bytes_before_external_group_by) and [`max_bytes_before_external_sort`](/core/reference/settings/session-settings#max_bytes_before_external_sort)) to allow spilling data to disk, but note that this may significantly affect query performance. ### What should the memory-to-storage ratio be? {#what-should-the-memory-to-storage-ratio-be} diff --git a/guides/oss/best-practices/tips.mdx b/core/guides/oss/best-practices/tips.mdx similarity index 99% rename from guides/oss/best-practices/tips.mdx rename to core/guides/oss/best-practices/tips.mdx index 8a0a181d..36a2738f 100644 --- a/guides/oss/best-practices/tips.mdx +++ b/core/guides/oss/best-practices/tips.mdx @@ -155,7 +155,7 @@ Otherwise you may get `Illegal instruction` crashes when hypervisor is run on ol ## ClickHouse Keeper and ZooKeeper {#zookeeper} -ClickHouse Keeper is recommended to replace ZooKeeper for ClickHouse clusters. See the documentation for [ClickHouse Keeper](/guides/oss/deployment-and-scaling/keeper) +ClickHouse Keeper is recommended to replace ZooKeeper for ClickHouse clusters. See the documentation for [ClickHouse Keeper](/core/guides/oss/deployment-and-scaling/keeper) If you would like to continue using ZooKeeper then it is best to use a fresh version of ZooKeeper – 3.4.9 or later. The version in stable Linux distributions may be outdated. diff --git a/guides/oss/deployment-and-scaling/cluster-discovery.mdx b/core/guides/oss/deployment-and-scaling/cluster-discovery.mdx similarity index 98% rename from guides/oss/deployment-and-scaling/cluster-discovery.mdx rename to core/guides/oss/deployment-and-scaling/cluster-discovery.mdx index 04eef1ed..85162bea 100644 --- a/guides/oss/deployment-and-scaling/cluster-discovery.mdx +++ b/core/guides/oss/deployment-and-scaling/cluster-discovery.mdx @@ -219,4 +219,4 @@ SELECT hostname(), database, table FROM clusterAllReplicas(default, system.table └──────────────┴──────────┴─────────────┘ ``` -If you need to have tables replicated on all the nodes, you may use the [Replicated](/reference/engines/database-engines/replicated) database engine in alternative to cluster discovery. +If you need to have tables replicated on all the nodes, you may use the [Replicated](/core/reference/engines/database-engines/replicated) database engine in alternative to cluster discovery. diff --git a/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas.mdx b/core/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas.mdx similarity index 98% rename from guides/oss/deployment-and-scaling/examples/1-shard-2-replicas.mdx rename to core/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas.mdx index 12edd0f4..5e9e3847 100644 --- a/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas.mdx +++ b/core/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas.mdx @@ -32,8 +32,8 @@ The architecture of the cluster you will be setting up is shown below: ## Prerequisites {#pre-requisites} -- You've set up a [local ClickHouse server](/get-started/setup/self-managed/install) before -- You're familiar with basic configuration concepts of ClickHouse such as [configuration files](/concepts/features/configuration/server-config/configuration-files) +- You've set up a [local ClickHouse server](/core/get-started/setup/install) before +- You're familiar with basic configuration concepts of ClickHouse such as [configuration files](/core/concepts/features/configuration/server-config/configuration-files) - You have docker installed on your machine @@ -479,7 +479,7 @@ In the next step, you will create a table in the cluster. ## Create a database {#creating-a-database} Now that you have verified the cluster is correctly setup and is running, you -will be recreating the same table as the one used in the [UK property prices](/get-started/sample-datasets/uk-price-paid) +will be recreating the same table as the one used in the [UK property prices](/core/get-started/sample-datasets/uk-price-paid) example dataset tutorial. It consists of around 30 million rows of prices paid for real-estate property in England and Wales since 1995. @@ -563,14 +563,14 @@ ORDER BY (postcode1, postcode2, addr1, addr2); ``` Notice that it is identical to the query used in the original `CREATE` statement of the -[UK property prices](/get-started/sample-datasets/uk-price-paid) example dataset tutorial, +[UK property prices](/core/get-started/sample-datasets/uk-price-paid) example dataset tutorial, except for the `ON CLUSTER` clause and use of the `ReplicatedMergeTree` engine. The `ON CLUSTER` clause is designed for distributed execution of DDL (Data Definition Language) queries such as `CREATE`, `DROP`, `ALTER`, and `RENAME`, ensuring that these schema changes are applied across all nodes in a cluster. -The [`ReplicatedMergeTree`](/reference/engines/table-engines/mergetree-family/replication#converting-from-mergetree-to-replicatedmergetree) +The [`ReplicatedMergeTree`](/core/reference/engines/table-engines/mergetree-family/replication#converting-from-mergetree-to-replicatedmergetree) engine works just as the ordinary `MergeTree` table engine, but it will also replicate the data. You can run the query below from either `clickhouse-01` or `clickhouse-02` client diff --git a/guides/oss/deployment-and-scaling/examples/2-shards-1-replica.mdx b/core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica.mdx similarity index 97% rename from guides/oss/deployment-and-scaling/examples/2-shards-1-replica.mdx rename to core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica.mdx index 8e4328c9..84950b8d 100644 --- a/guides/oss/deployment-and-scaling/examples/2-shards-1-replica.mdx +++ b/core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica.mdx @@ -31,8 +31,8 @@ The architecture of the cluster you will be setting up is shown below: ## Prerequisites {#pre-requisites} -- You've set up a [local ClickHouse server](/get-started/setup/self-managed/install) before -- You're familiar with basic configuration concepts of ClickHouse such as [configuration files](/concepts/features/configuration/server-config/configuration-files) +- You've set up a [local ClickHouse server](/core/get-started/setup/install) before +- You're familiar with basic configuration concepts of ClickHouse such as [configuration files](/core/concepts/features/configuration/server-config/configuration-files) - You have docker installed on your machine @@ -497,7 +497,7 @@ In the next step, you will create a table in the cluster. ## Create a database {#creating-a-database} Now that you have verified the cluster is correctly setup and is running, you -will be recreating the same table as the one used in the [UK property prices](/get-started/sample-datasets/uk-price-paid) +will be recreating the same table as the one used in the [UK property prices](/core/get-started/sample-datasets/uk-price-paid) example dataset tutorial. It consists of around 30 million rows of prices paid for real-estate property in England and Wales since 1995. @@ -581,7 +581,7 @@ ORDER BY (postcode1, postcode2, addr1, addr2); ``` Notice that it is identical to the query used in the original `CREATE` statement of the -[UK property prices](/get-started/sample-datasets/uk-price-paid) example dataset tutorial, +[UK property prices](/core/get-started/sample-datasets/uk-price-paid) example dataset tutorial, except for the `ON CLUSTER` clause. The `ON CLUSTER` clause is designed for distributed execution of DDL (Data Definition Language) @@ -652,7 +652,7 @@ across all the shards, combining the data from both shards when we run select qu on it or inserting data to both shards when we run insert queries. In ClickHouse this interface is called a **distributed table**, which we create using -the [`Distributed`](/reference/engines/table-engines/special/distributed) table engine. Let's take a look at how it works. +the [`Distributed`](/core/reference/engines/table-engines/special/distributed) table engine. Let's take a look at how it works. ## Create a distributed table {#create-distributed-table} @@ -811,7 +811,7 @@ Code: 198. DB::NetException: Not found address of host: clickhouse-01: (clickhou Unfortunately, our cluster isn't fault-tolerant. If one of the hosts fails, the cluster is considered unhealthy and the query fails compared to the replicated -table we saw in the [previous example](/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas) for which +table we saw in the [previous example](/core/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas) for which we were able to insert data even when one of the hosts failed. @@ -826,6 +826,6 @@ utilization and reduces I/O per host. The main disadvantage of this cluster topology is, of course, that losing one of the hosts renders us unable to serve queries. -In the [next example](/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas), we'll look at how to +In the [next example](/core/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas), we'll look at how to set up a cluster with two shards and two replicas offering both scalability and fault tolerance. diff --git a/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas.mdx b/core/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas.mdx similarity index 97% rename from guides/oss/deployment-and-scaling/examples/2-shards-2-replicas.mdx rename to core/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas.mdx index 31cd346f..14f32fca 100644 --- a/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas.mdx +++ b/core/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas.mdx @@ -31,8 +31,8 @@ The architecture of the cluster you will be setting up is shown below: ## Prerequisites {#prerequisites} -- You've set up a [local ClickHouse server](/get-started/setup/self-managed/install) before -- You're familiar with basic configuration concepts of ClickHouse such as [configuration files](/concepts/features/configuration/server-config/configuration-files) +- You've set up a [local ClickHouse server](/core/get-started/setup/install) before +- You're familiar with basic configuration concepts of ClickHouse such as [configuration files](/core/concepts/features/configuration/server-config/configuration-files) - You have docker installed on your machine @@ -529,7 +529,7 @@ In the next step, you will create a table in the cluster. ## Create a database {#creating-a-database} Now that you have verified the cluster is correctly setup and is running, you -will be recreating the same table as the one used in the [UK property prices](/get-started/sample-datasets/uk-price-paid) +will be recreating the same table as the one used in the [UK property prices](/core/get-started/sample-datasets/uk-price-paid) example dataset tutorial. It consists of around 30 million rows of prices paid for real-estate property in England and Wales since 1995. @@ -616,14 +616,14 @@ ORDER BY (postcode1, postcode2, addr1, addr2); ``` Notice that it is identical to the query used in the original `CREATE` statement of the -[UK property prices](/get-started/sample-datasets/uk-price-paid) example dataset tutorial, +[UK property prices](/core/get-started/sample-datasets/uk-price-paid) example dataset tutorial, except for the `ON CLUSTER` clause and use of the `ReplicatedMergeTree` engine. The `ON CLUSTER` clause is designed for distributed execution of DDL (Data Definition Language) queries such as `CREATE`, `DROP`, `ALTER`, and `RENAME`, ensuring that these schema changes are applied across all nodes in a cluster. -The [`ReplicatedMergeTree`](/reference/engines/table-engines/mergetree-family/replication#converting-from-mergetree-to-replicatedmergetree) +The [`ReplicatedMergeTree`](/core/reference/engines/table-engines/mergetree-family/replication#converting-from-mergetree-to-replicatedmergetree) engine works just as the ordinary `MergeTree` table engine, but it will also replicate the data. It requires two parameters to be specified: @@ -662,8 +662,8 @@ SHOW TABLES IN uk; To insert data into the table, `ON CLUSTER` can't be used as it does not apply to DML (Data Manipulation Language) queries such as `INSERT`, `UPDATE`, and `DELETE`. To insert data, it is necessary to make use of the -[`Distributed`](/reference/engines/table-engines/special/distributed) table engine. -As you learned in the [guide](/guides/oss/deployment-and-scaling/examples/2-shards-1-replica) for setting up a cluster with 2 shards and 1 replica, distributed tables are tables which have access to shards located on different +[`Distributed`](/core/reference/engines/table-engines/special/distributed) table engine. +As you learned in the [guide](/core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica) for setting up a cluster with 2 shards and 1 replica, distributed tables are tables which have access to shards located on different hosts and are defined using the `Distributed` table engine. The distributed table acts as the interface across all the shards in the cluster. diff --git a/guides/oss/deployment-and-scaling/index.mdx b/core/guides/oss/deployment-and-scaling/index.mdx similarity index 52% rename from guides/oss/deployment-and-scaling/index.mdx rename to core/guides/oss/deployment-and-scaling/index.mdx index a0e72672..a7f03436 100644 --- a/guides/oss/deployment-and-scaling/index.mdx +++ b/core/guides/oss/deployment-and-scaling/index.mdx @@ -10,7 +10,7 @@ This section covers the following topics: | Topic | |------------------------------------------------------------------| -| [Introduction](/guides/oss/deployment-and-scaling/terminology) | -| [Scaling Out](/guides/oss/deployment-and-scaling/examples/2-shards-1-replica) | -| [Replication for fault tolerance](/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas) | -| [Cluster deployment](/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas) | +| [Introduction](/core/guides/oss/deployment-and-scaling/terminology) | +| [Scaling Out](/core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica) | +| [Replication for fault tolerance](/core/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas) | +| [Cluster deployment](/core/guides/oss/deployment-and-scaling/examples/2-shards-2-replicas) | diff --git a/guides/oss/deployment-and-scaling/keeper/index.mdx b/core/guides/oss/deployment-and-scaling/keeper/index.mdx similarity index 98% rename from guides/oss/deployment-and-scaling/keeper/index.mdx rename to core/guides/oss/deployment-and-scaling/keeper/index.mdx index 7d5a9dfb..0590cc82 100644 --- a/guides/oss/deployment-and-scaling/keeper/index.mdx +++ b/core/guides/oss/deployment-and-scaling/keeper/index.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/sre/keeper/clickhouse-keeper +slug: /core/guides/sre/keeper/clickhouse-keeper sidebarTitle: 'Configuring ClickHouse Keeper' keywords: ['Keeper', 'ZooKeeper', 'clickhouse-keeper'] @@ -12,7 +12,7 @@ import SelfManaged from '/snippets/_self_managed_only_automated.mdx'; -ClickHouse Keeper provides the coordination system for data [replication](/reference/engines/table-engines/mergetree-family/replication) and [distributed DDL](/reference/statements/distributed-ddl) queries execution. ClickHouse Keeper is compatible with ZooKeeper. +ClickHouse Keeper provides the coordination system for data [replication](/core/reference/engines/table-engines/mergetree-family/replication) and [distributed DDL](/core/reference/statements/distributed-ddl) queries execution. ClickHouse Keeper is compatible with ZooKeeper. ### Implementation details {#implementation-details} @@ -485,7 +485,7 @@ Record comparison metrics before migration so you can verify consistency afterwa 4. Optional, but recommended: find the ZooKeeper leader node, start and stop it again. This forces ZooKeeper to write a consistent snapshot to disk before conversion. -5. Run `clickhouse-keeper-converter` on the leader node. If you have the full ClickHouse binary installed, use the `keeper-converter` subcommand instead (`clickhouse keeper-converter`). If neither is available, [download the binary](/get-started/oss/oss#install-clickhouse). +5. Run `clickhouse-keeper-converter` on the leader node. If you have the full ClickHouse binary installed, use the `keeper-converter` subcommand instead (`clickhouse keeper-converter`). If neither is available, [download the binary](/core/get-started/setup/self-managed/quick-install#install-clickhouse). ```bash clickhouse-keeper-converter \ @@ -569,7 +569,7 @@ After making sure that the above things are true, you need to do the following: ## Using disks with Keeper {#using-disks-with-keeper} -Keeper supports a subset of [external disks](/concepts/features/configuration/server-config/storing-data) for storing snapshots, log files, and the state file. +Keeper supports a subset of [external disks](/core/concepts/features/configuration/server-config/storing-data) for storing snapshots, log files, and the state file. Supported types of disks are: - s3_plain @@ -699,9 +699,9 @@ Settings: - `endpoint` – HTTP endpoint for scraping metrics by the Prometheus server. Start from '/'. - `port` – Port for `endpoint`. -- `metrics` – Flag that sets to expose metrics from the [system.metrics](/reference/system-tables/metrics) table. -- `events` – Flag that sets to expose metrics from the [system.events](/reference/system-tables/events) table. -- `asynchronous_metrics` – Flag that sets to expose current metrics values from the [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) table. +- `metrics` – Flag that sets to expose metrics from the [system.metrics](/core/reference/system-tables/metrics) table. +- `events` – Flag that sets to expose metrics from the [system.events](/core/reference/system-tables/events) table. +- `asynchronous_metrics` – Flag that sets to expose current metrics values from the [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) table. **Example** @@ -733,7 +733,7 @@ This guide provides simple and minimal settings to configure ClickHouse Keeper w ### 1. Configure nodes with Keeper settings {#1-configure-nodes-with-keeper-settings} -1. Install 3 ClickHouse instances on 3 hosts (`chnode1`, `chnode2`, `chnode3`). (View the [Quick Start](/get-started/setup/self-managed/install) for details on installing ClickHouse.) +1. Install 3 ClickHouse instances on 3 hosts (`chnode1`, `chnode2`, `chnode3`). (View the [Quick Start](/core/get-started/setup/install) for details on installing ClickHouse.) 2. On each node, add the following entry to allow external communication through the network interface. ```xml diff --git a/guides/oss/deployment-and-scaling/keeper/ssl-zookeeper.mdx b/core/guides/oss/deployment-and-scaling/keeper/ssl-zookeeper.mdx similarity index 100% rename from guides/oss/deployment-and-scaling/keeper/ssl-zookeeper.mdx rename to core/guides/oss/deployment-and-scaling/keeper/ssl-zookeeper.mdx diff --git a/guides/oss/deployment-and-scaling/monitoring/monitoring.mdx b/core/guides/oss/deployment-and-scaling/monitoring/monitoring.mdx similarity index 62% rename from guides/oss/deployment-and-scaling/monitoring/monitoring.mdx rename to core/guides/oss/deployment-and-scaling/monitoring/monitoring.mdx index f04e3a6b..e8247722 100644 --- a/guides/oss/deployment-and-scaling/monitoring/monitoring.mdx +++ b/core/guides/oss/deployment-and-scaling/monitoring/monitoring.mdx @@ -54,19 +54,19 @@ This data is collected in the `system.asynchronous_metric_log` table. ClickHouse server has embedded instruments for self-state monitoring. -To track server events use server logs. See the [logger](/reference/settings/server-settings/settings#logger) section of the configuration file. +To track server events use server logs. See the [logger](/core/reference/settings/server-settings/settings#logger) section of the configuration file. ClickHouse collects: - Different metrics of how the server uses computational resources. - Common statistics on query processing. -You can find metrics in the [system.metrics](/reference/system-tables/metrics), [system.events](/reference/system-tables/events), and [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) tables. +You can find metrics in the [system.metrics](/core/reference/system-tables/metrics), [system.events](/core/reference/system-tables/events), and [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) tables. -You can configure ClickHouse to export metrics to [Graphite](https://github.com/graphite-project). See the [Graphite section](/reference/settings/server-settings/settings#graphite) in the ClickHouse server configuration file. Before configuring export of metrics, you should set up Graphite by following their official [guide](https://graphite.readthedocs.io/en/latest/install.html). +You can configure ClickHouse to export metrics to [Graphite](https://github.com/graphite-project). See the [Graphite section](/core/reference/settings/server-settings/settings#graphite) in the ClickHouse server configuration file. Before configuring export of metrics, you should set up Graphite by following their official [guide](https://graphite.readthedocs.io/en/latest/install.html). -You can configure ClickHouse to export metrics to [Prometheus](https://prometheus.io). See the [Prometheus section](/reference/settings/server-settings/settings#prometheus) in the ClickHouse server configuration file. Before configuring export of metrics, you should set up Prometheus by following their official [guide](https://prometheus.io/docs/prometheus/latest/installation/). +You can configure ClickHouse to export metrics to [Prometheus](https://prometheus.io). See the [Prometheus section](/core/reference/settings/server-settings/settings#prometheus) in the ClickHouse server configuration file. Before configuring export of metrics, you should set up Prometheus by following their official [guide](https://prometheus.io/docs/prometheus/latest/installation/). Additionally, you can monitor server availability through the HTTP API. Send the `HTTP GET` request to `/ping`. If the server is available, it responds with `200 OK`. -To monitor servers in a cluster configuration, you should set the [max_replica_delay_for_distributed_queries](/reference/settings/session-settings#max_replica_delay_for_distributed_queries) parameter and use the HTTP resource `/replicas_status`. A request to `/replicas_status` returns `200 OK` if the replica is available and is not delayed behind the other replicas. If a replica is delayed, it returns `503 HTTP_SERVICE_UNAVAILABLE` with information about the gap. +To monitor servers in a cluster configuration, you should set the [max_replica_delay_for_distributed_queries](/core/reference/settings/session-settings#max_replica_delay_for_distributed_queries) parameter and use the HTTP resource `/replicas_status`. A request to `/replicas_status` returns `200 OK` if the replica is available and is not delayed behind the other replicas. If a replica is delayed, it returns `503 HTTP_SERVICE_UNAVAILABLE` with information about the gap. diff --git a/guides/oss/deployment-and-scaling/monitoring/opentelemetry.mdx b/core/guides/oss/deployment-and-scaling/monitoring/opentelemetry.mdx similarity index 79% rename from guides/oss/deployment-and-scaling/monitoring/opentelemetry.mdx rename to core/guides/oss/deployment-and-scaling/monitoring/opentelemetry.mdx index 0aab0573..ee70fc54 100644 --- a/guides/oss/deployment-and-scaling/monitoring/opentelemetry.mdx +++ b/core/guides/oss/deployment-and-scaling/monitoring/opentelemetry.mdx @@ -13,19 +13,19 @@ doc_type: 'guide' ClickHouse accepts trace context HTTP headers, as described by the [W3C recommendation](https://www.w3.org/TR/trace-context/). It also accepts trace context over a native protocol that is used for communication between ClickHouse servers or between the client and server. For manual testing, trace context headers conforming to the Trace Context recommendation can be supplied to `clickhouse-client` using `--opentelemetry-traceparent` and `--opentelemetry-tracestate` flags. -If no parent trace context is supplied or the provided trace context does not comply with W3C standard above, ClickHouse can start a new trace, with probability controlled by the [opentelemetry_start_trace_probability](/reference/settings/session-settings#opentelemetry_start_trace_probability) setting. +If no parent trace context is supplied or the provided trace context does not comply with W3C standard above, ClickHouse can start a new trace, with probability controlled by the [opentelemetry_start_trace_probability](/core/reference/settings/session-settings#opentelemetry_start_trace_probability) setting. ## Propagating the trace context {#propagating-the-trace-context} The trace context is propagated to downstream services in the following cases: -* Queries to remote ClickHouse servers, such as when using [Distributed](/reference/engines/table-engines/special/distributed) table engine. +* Queries to remote ClickHouse servers, such as when using [Distributed](/core/reference/engines/table-engines/special/distributed) table engine. -* [url](/reference/functions/table-functions/url) table function. Trace context information is sent in HTTP headers. +* [url](/core/reference/functions/table-functions/url) table function. Trace context information is sent in HTTP headers. ## Tracing ClickHouse Keeper Requests {#tracing-clickhouse-keeper-requests} -ClickHouse supports OpenTelemetry tracing for [ClickHouse Keeper](/guides/oss/deployment-and-scaling/keeper) requests (ZooKeeper-compatible coordination service). This feature provides detailed visibility into the lifecycle of Keeper operations, from client request submission through server-side processing. +ClickHouse supports OpenTelemetry tracing for [ClickHouse Keeper](/core/guides/oss/deployment-and-scaling/keeper) requests (ZooKeeper-compatible coordination service). This feature provides detailed visibility into the lifecycle of Keeper operations, from client request submission through server-side processing. ### Enabling Keeper Tracing {#enabling-keeper-tracing} @@ -76,21 +76,21 @@ To manage tracing overhead, Keeper implements dynamic sampling. Sampling rate au ClickHouse creates `trace spans` for each query and some of the query execution stages, such as query planning or distributed queries. -To be useful, the tracing information has to be exported to a monitoring system that supports OpenTelemetry, such as [Jaeger](https://jaegertracing.io/) or [Prometheus](https://prometheus.io/). ClickHouse avoids a dependency on a particular monitoring system, instead only providing the tracing data through a system table. OpenTelemetry trace span information [required by the standard](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/overview.md#span) is stored in the [system.opentelemetry_span_log](/reference/system-tables/opentelemetry_span_log) table. +To be useful, the tracing information has to be exported to a monitoring system that supports OpenTelemetry, such as [Jaeger](https://jaegertracing.io/) or [Prometheus](https://prometheus.io/). ClickHouse avoids a dependency on a particular monitoring system, instead only providing the tracing data through a system table. OpenTelemetry trace span information [required by the standard](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/overview.md#span) is stored in the [system.opentelemetry_span_log](/core/reference/system-tables/opentelemetry_span_log) table. The table must be enabled in the server configuration, see the `opentelemetry_span_log` element in the default config file `config.xml`. It is enabled by default. -The tags or attributes are saved as two parallel arrays, containing the keys and values. Use [ARRAY JOIN](/reference/statements/select/array-join) to work with them. +The tags or attributes are saved as two parallel arrays, containing the keys and values. Use [ARRAY JOIN](/core/reference/statements/select/array-join) to work with them. ## Log-query-settings {#log-query-settings} -Setting [log_query_settings](/reference/settings/session-settings) allows log changes to query settings during query execution. When enabled, any modifications made to query settings will be recorded in the OpenTelemetry span log. This feature is particularly useful in production environments for tracking configuration changes that may affect query performance. +Setting [log_query_settings](/core/reference/settings/session-settings) allows log changes to query settings during query execution. When enabled, any modifications made to query settings will be recorded in the OpenTelemetry span log. This feature is particularly useful in production environments for tracking configuration changes that may affect query performance. ## Integration with monitoring systems {#integration-with-monitoring-systems} At the moment, there is no ready tool that can export the tracing data from ClickHouse to a monitoring system. -For testing, it is possible to setup the export using a materialized view with the [URL](/reference/engines/table-engines/special/url) engine over the [system.opentelemetry_span_log](/reference/system-tables/opentelemetry_span_log) table, which would push the arriving log data to an HTTP endpoint of a trace collector. For example, to push the minimal span data to a Zipkin instance running at `http://localhost:9411`, in Zipkin v2 JSON format: +For testing, it is possible to setup the export using a materialized view with the [URL](/core/reference/engines/table-engines/special/url) engine over the [system.opentelemetry_span_log](/core/reference/system-tables/opentelemetry_span_log) table, which would push the arriving log data to an HTTP endpoint of a trace collector. For example, to push the minimal span data to a Zipkin instance running at `http://localhost:9411`, in Zipkin v2 JSON format: ```sql CREATE MATERIALIZED VIEW default.zipkin_spans diff --git a/guides/oss/deployment-and-scaling/scaling-clusters.mdx b/core/guides/oss/deployment-and-scaling/scaling-clusters.mdx similarity index 57% rename from guides/oss/deployment-and-scaling/scaling-clusters.mdx rename to core/guides/oss/deployment-and-scaling/scaling-clusters.mdx index 7a8ca169..1484d5c5 100644 --- a/guides/oss/deployment-and-scaling/scaling-clusters.mdx +++ b/core/guides/oss/deployment-and-scaling/scaling-clusters.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/sre/scaling-clusters +slug: /core/guides/sre/scaling-clusters sidebarTitle: 'Rebalancing shards' description: 'ClickHouse doesn''t support automatic shard rebalancing, so we provide some best practices for how to rebalance shards.' title: 'Rebalancing Data' @@ -9,10 +9,10 @@ keywords: ['scaling', 'clusters', 'horizontal scaling', 'capacity planning', 'pe ClickHouse doesn't support automatic shard rebalancing. However, there are ways to rebalance shards in order of preference: -1. Adjust the shard for the [distributed table](/reference/engines/table-engines/special/distributed), allowing writes to be biased to the new shard. This potentially will cause load imbalances and hot spots on the cluster but can be viable in most scenarios where write throughput isn't extremely high. It doesn't require the user to change their write target i.e. It can remain as the distributed table. This doesn't assist with rebalancing existing data. +1. Adjust the shard for the [distributed table](/core/reference/engines/table-engines/special/distributed), allowing writes to be biased to the new shard. This potentially will cause load imbalances and hot spots on the cluster but can be viable in most scenarios where write throughput isn't extremely high. It doesn't require the user to change their write target i.e. It can remain as the distributed table. This doesn't assist with rebalancing existing data. 2. As an alternative to (1), modify the existing cluster and write exclusively to the new shard until the cluster is balanced - manually weighting writes. This has the same limitations as (1). 3. If you need to rebalance existing data and you have partitioned your data, consider detaching partitions and manually relocating them to another node before reattaching to the new shard. This is more manual than subsequent techniques but may be faster and less resource-intensive. This is a manual operation and thus needs to consider the rebalancing of the data. -4. Export the data from the source cluster to the new cluster via an [INSERT FROM SELECT](/reference/statements/insert-into#inserting-the-results-of-select). This won't be performant on very large datasets and will potentially incur significant IO on the source cluster and use considerable network resources. This represents a last resort. +4. Export the data from the source cluster to the new cluster via an [INSERT FROM SELECT](/core/reference/statements/insert-into#inserting-the-results-of-select). This won't be performant on very large datasets and will potentially incur significant IO on the source cluster and use considerable network resources. This represents a last resort. diff --git a/guides/oss/deployment-and-scaling/separation-storage-compute.mdx b/core/guides/oss/deployment-and-scaling/separation-storage-compute.mdx similarity index 97% rename from guides/oss/deployment-and-scaling/separation-storage-compute.mdx rename to core/guides/oss/deployment-and-scaling/separation-storage-compute.mdx index 294c4872..3919bacf 100644 --- a/guides/oss/deployment-and-scaling/separation-storage-compute.mdx +++ b/core/guides/oss/deployment-and-scaling/separation-storage-compute.mdx @@ -1,6 +1,6 @@ --- sidebarTitle: 'Separation of storage and compute' -slug: /guides/separation-storage-compute +slug: /core/guides/separation-storage-compute title: 'Separation of storage and compute' description: 'This guide explores how you can use ClickHouse and S3 to implement an architecture with separated storage and compute.' doc_type: 'guide' @@ -68,7 +68,7 @@ Copy the following XML in to the newly created file, replacing `BUCKET`, `ACCESS ``` -If you need to further specify settings for the S3 disk, for example to specify a `region` or send a custom HTTP `header`, you can find the list of relevant settings [here](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). +If you need to further specify settings for the S3 disk, for example to specify a `region` or send a custom HTTP `header`, you can find the list of relevant settings [here](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). You can also replace `access_key_id` and `secret_access_key` with the following, which will attempt to obtain credentials from environment variables and Amazon EC2 metadata: diff --git a/guides/oss/deployment-and-scaling/shards.mdx b/core/guides/oss/deployment-and-scaling/shards.mdx similarity index 74% rename from guides/oss/deployment-and-scaling/shards.mdx rename to core/guides/oss/deployment-and-scaling/shards.mdx index 3fc6eac0..24288df2 100644 --- a/guides/oss/deployment-and-scaling/shards.mdx +++ b/core/guides/oss/deployment-and-scaling/shards.mdx @@ -14,7 +14,7 @@ This topic doesn't apply to ClickHouse Cloud, where [Parallel Replicas](/product ## What are table shards in ClickHouse? {#what-are-table-shards-in-clickhouse} -In traditional [shared-nothing](https://en.wikipedia.org/wiki/Shared-nothing_architecture) ClickHouse clusters, sharding is used when ① the data is too large for a single server or ② a single server is too slow for processing the data. The next figure illustrates case ①, where the [uk_price_paid_simple](/concepts/core-concepts/parts) table exceeds a single machine's capacity: +In traditional [shared-nothing](https://en.wikipedia.org/wiki/Shared-nothing_architecture) ClickHouse clusters, sharding is used when ① the data is too large for a single server or ② a single server is too slow for processing the data. The next figure illustrates case ①, where the [uk_price_paid_simple](/core/concepts/core-concepts/parts) table exceeds a single machine's capacity: SHARDS @@ -26,10 +26,10 @@ In such a case the data can be split over multiple ClickHouse servers in the for
    -Each shard holds a subset of the data and functions as a regular ClickHouse table that can be queried independently. However, queries will only process that subset, which may be a valid use case depending on data distribution. Typically, a [distributed table](/reference/engines/table-engines/special/distributed) (often per server) provides a unified view of the full dataset. It doesn't store data itself but forwards **SELECT** queries to all shards, assembles the results, and routes **INSERTS** to distribute data evenly. +Each shard holds a subset of the data and functions as a regular ClickHouse table that can be queried independently. However, queries will only process that subset, which may be a valid use case depending on data distribution. Typically, a [distributed table](/core/reference/engines/table-engines/special/distributed) (often per server) provides a unified view of the full dataset. It doesn't store data itself but forwards **SELECT** queries to all shards, assembles the results, and routes **INSERTS** to distribute data evenly. ## Distributed table creation {#distributed-table-creation} -To illustrate **SELECT** query forwarding and **INSERT** routing, we consider the [What are table parts](/concepts/core-concepts/parts) example table split across two shards on two ClickHouse servers. First, we show the DDL statement for creating a corresponding **Distributed table** for this setup: +To illustrate **SELECT** query forwarding and **INSERT** routing, we consider the [What are table parts](/core/concepts/core-concepts/parts) example table split across two shards on two ClickHouse servers. First, we show the DDL statement for creating a corresponding **Distributed table** for this setup: ```sql CREATE TABLE uk.uk_price_paid_simple_dist ON CLUSTER test_cluster @@ -42,9 +42,9 @@ CREATE TABLE uk.uk_price_paid_simple_dist ON CLUSTER test_cluster ENGINE = Distributed('test_cluster', 'uk', 'uk_price_paid_simple', rand()) ``` -The `ON CLUSTER` clause makes the DDL statement a [distributed DDL statement](/reference/statements/distributed-ddl), instructing ClickHouse to create the table on all servers listed in the `test_cluster` [cluster definition](/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas#configure-clickhouse-servers). Distributed DDL requires an additional [Keeper](https://clickhouse.com/clickhouse/keeper) component in the [cluster architecture](/guides/oss/deployment-and-scaling/examples/2-shards-1-replica). +The `ON CLUSTER` clause makes the DDL statement a [distributed DDL statement](/core/reference/statements/distributed-ddl), instructing ClickHouse to create the table on all servers listed in the `test_cluster` [cluster definition](/core/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas#configure-clickhouse-servers). Distributed DDL requires an additional [Keeper](https://clickhouse.com/clickhouse/keeper) component in the [cluster architecture](/core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica). -For the [distributed engine parameters](/reference/engines/table-engines/special/distributed#distributed-parameters), we specify the cluster name (`test_cluster`), the database name (`uk`) for the sharded target table, the sharded target table's name (`uk_price_paid_simple`), and the **sharding key** for INSERT routing. In this example, we use the [rand](/reference/functions/regular-functions/random-functions#rand) function to randomly assign rows to shards. However, any expression—even complex ones—can be used as a sharding key, depending on the use case. The next section illustrates how INSERT routing works. +For the [distributed engine parameters](/core/reference/engines/table-engines/special/distributed#distributed-parameters), we specify the cluster name (`test_cluster`), the database name (`uk`) for the sharded target table, the sharded target table's name (`uk_price_paid_simple`), and the **sharding key** for INSERT routing. In this example, we use the [rand](/core/reference/functions/regular-functions/random-functions#rand) function to randomly assign rows to shards. However, any expression—even complex ones—can be used as a sharding key, depending on the use case. The next section illustrates how INSERT routing works. ## INSERT routing {#insert-routing} The diagram below illustrates how INSERTs into a distributed table are processed in ClickHouse: @@ -75,7 +75,7 @@ Then, the ClickHouse server hosting the initially targeted distributed table ③ ## What are table replicas in ClickHouse? {#what-are-table-replicas-in-clickhouse} Replication in ClickHouse ensures **data integrity** and **failover** by maintaining **copies of shard data** across multiple servers. Since hardware failures are inevitable, replication prevents data loss by ensuring that each shard has multiple replicas. Writes can be directed to any replica, either directly or via a [distributed table](#distributed-table-creation), which selects a replica for the operation. Changes are automatically propagated to other replicas. In case of a failure or maintenance, data remains available on other replicas, and once a failed host recovers, it synchronizes automatically to stay up to date. -Note that replication requires a [Keeper](https://clickhouse.com/clickhouse/keeper) component in the [cluster architecture](/guides/oss/deployment-and-scaling/examples/2-shards-1-replica). +Note that replication requires a [Keeper](https://clickhouse.com/clickhouse/keeper) component in the [cluster architecture](/core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica). The following diagram illustrates a ClickHouse cluster with six servers, where the two table shards `Shard-1` and `Shard-2` introduced earlier each have three replicas. A query is sent to this cluster: @@ -93,10 +93,10 @@ Query processing works similarly to setups without replicas, with only a single The rest works the [same](#select-forwarding) as in setups without replicas and isn't shown in the diagram above. The ClickHouse server hosting the initially targeted distributed table collects all local results, merges them into the final global result, and returns it to the query sender. -Note that ClickHouse allows configuring the query forwarding strategy for ②. By default—unlike in the diagram above—the distributed table [prefers](/reference/settings/session-settings#prefer_localhost_replica) a local replica if available, but other load balancing [strategies](/reference/settings/session-settings#load_balancing) can be used. +Note that ClickHouse allows configuring the query forwarding strategy for ②. By default—unlike in the diagram above—the distributed table [prefers](/core/reference/settings/session-settings#prefer_localhost_replica) a local replica if available, but other load balancing [strategies](/core/reference/settings/session-settings#load_balancing) can be used. ## Where to find more information {#where-to-find-more-information} -For more details beyond this high-level introduction to table shards and replicas, check out our [deployment and scaling guide](/guides/oss/deployment-and-scaling/examples/2-shards-1-replica). +For more details beyond this high-level introduction to table shards and replicas, check out our [deployment and scaling guide](/core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica). We also highly recommend this tutorial video for a deeper dive into ClickHouse shards and replicas: diff --git a/guides/oss/deployment-and-scaling/terminology.mdx b/core/guides/oss/deployment-and-scaling/terminology.mdx similarity index 100% rename from guides/oss/deployment-and-scaling/terminology.mdx rename to core/guides/oss/deployment-and-scaling/terminology.mdx diff --git a/guides/oss/update.mdx b/core/guides/oss/update.mdx similarity index 100% rename from guides/oss/update.mdx rename to core/guides/oss/update.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/agno.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/agno.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/agno.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/agno.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/chainlit.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/chainlit.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/chainlit.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/chainlit.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/copilotkit.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/copilotkit.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/copilotkit.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/copilotkit.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/crewai.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/crewai.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/crewai.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/crewai.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/dspy.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/dspy.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/dspy.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/dspy.mdx diff --git a/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/index.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/index.mdx new file mode 100644 index 00000000..b0ea7802 --- /dev/null +++ b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/index.mdx @@ -0,0 +1,28 @@ +--- +slug: /use-cases/AI/MCP/ai-agent-libraries +title: 'Integrate AI agent libraries with ClickHouse MCP server' +description: 'Learn how to build an AI agent with DSPy and the ClickHouse MCP server' +keywords: ['ClickHouse', 'Agno', 'Chainlit', 'MCP', 'DSPy', 'LangChain', 'LlamaIndex', 'OpenAI agents', 'PydanticAI', 'SlackBot', 'StreamLit'] +doc_type: 'guide' +--- + +{/*AUTOGENERATED_START*/} +| Page | Description | +|-----|-----| +| [How to build a ClickHouse-backed AI Agent with Streamlit](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/streamlit) | Learn how to build a web-based AI Agent with Streamlit and the ClickHouse MCP server | +| [How to build a LangChain/LangGraph AI agent using ClickHouse MCP server.](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/langchain) | Learn how to build a LangChain/LangGraph AI agent that can interact with ClickHouse's SQL playground using ClickHouse's MCP server. | +| [How to build a LlamaIndex AI agent using ClickHouse MCP server.](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/llamaindex) | Learn how to build a LlamaIndex AI agent that can interact with ClickHouse MCP server. | +| [How to build a PydanticAI agent using ClickHouse MCP server.](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/pydantic-ai) | Learn how to build a PydanticAI agent that can interact with ClickHouse MCP server. | +| [How to build a SlackBot agent using ClickHouse MCP server.](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/slackbot) | Learn how to build a SlackBot agent that can interact with ClickHouse MCP server. | +| [How to build an AI Agent with Agno and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/agno) | Learn how build an AI Agent with Agno and the ClickHouse MCP server | +| [How to build an AI Agent with Chainlit and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/chainlit) | Learn how to use Chainlit to build LLM-based chat apps together with the ClickHouse MCP server | +| [How to build an AI Agent with Claude Agent SDK and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk) | Learn how build an AI Agent with Claude Agent SDK and the ClickHouse MCP server | +| [How to build an AI Agent with CopilotKit and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/copilotkit) | Learn how to build an agentic application using data stored in ClickHouse with ClickHouse MCP and CopilotKit | +| [How to build an AI Agent with CrewAI and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/crewai) | Learn how build an AI Agent with CrewAI and the ClickHouse MCP server | +| [How to build an AI Agent with DSPy and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/dspy) | Learn how to build an AI agent with DSPy and the ClickHouse MCP server | +| [How to build an AI Agent with mcp-agent and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/mcp-agent) | Learn how build an AI Agent with mcp-agent and the ClickHouse MCP server | +| [How to build an AI Agent with Microsoft Agent framework and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework) | Learn how build an AI Agent with Microsoft Agent framework and the ClickHouse MCP server | +| [How to build an AI Agent with Upsonic and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/upsonic) | Learn how build an AI Agent with Upsonic and the ClickHouse MCP server | +| [How to build an OpenAI agent using ClickHouse MCP server.](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/openai-agents) | Learn how to build an OpenAI agent that can interact with ClickHouse MCP server. | +{/*AUTOGENERATED_END*/} + diff --git a/guides/ai-ml/MCP/ai-agent-libraries/langchain.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/langchain.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/langchain.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/langchain.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/llamaindex.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/llamaindex.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/llamaindex.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/llamaindex.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/mcp-agent.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/mcp-agent.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/mcp-agent.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/mcp-agent.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/openai-agents.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/openai-agents.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/openai-agents.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/openai-agents.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/pydantic-ai.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/pydantic-ai.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/pydantic-ai.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/pydantic-ai.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/slackbot.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/slackbot.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/slackbot.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/slackbot.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/streamlit.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/streamlit.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/streamlit.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/streamlit.mdx diff --git a/guides/ai-ml/MCP/ai-agent-libraries/upsonic.mdx b/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/upsonic.mdx similarity index 100% rename from guides/ai-ml/MCP/ai-agent-libraries/upsonic.mdx rename to core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/upsonic.mdx diff --git a/guides/ai-ml/MCP/anythingllm.mdx b/core/guides/use-cases/ai-ml/MCP/anythingllm.mdx similarity index 97% rename from guides/ai-ml/MCP/anythingllm.mdx rename to core/guides/use-cases/ai-ml/MCP/anythingllm.mdx index afe04843..7651dacc 100644 --- a/guides/ai-ml/MCP/anythingllm.mdx +++ b/core/guides/use-cases/ai-ml/MCP/anythingllm.mdx @@ -82,7 +82,7 @@ Create a file called `anythingllm_mcp_servers.json` in the `plugins` directory a ``` If you want to explore your own data, you can do so by -using the [host, username and password](/get-started/setup/cloud#connect-with-your-app) +using the [host, username and password](/core/get-started/setup/cloud#connect-with-your-app) of your own ClickHouse Cloud service. diff --git a/guides/ai-ml/MCP/claude-desktop.mdx b/core/guides/use-cases/ai-ml/MCP/claude-desktop.mdx similarity index 100% rename from guides/ai-ml/MCP/claude-desktop.mdx rename to core/guides/use-cases/ai-ml/MCP/claude-desktop.mdx diff --git a/guides/ai-ml/MCP/index.mdx b/core/guides/use-cases/ai-ml/MCP/index.mdx similarity index 53% rename from guides/ai-ml/MCP/index.mdx rename to core/guides/use-cases/ai-ml/MCP/index.mdx index 59245ec7..3fed74f2 100644 --- a/guides/ai-ml/MCP/index.mdx +++ b/core/guides/use-cases/ai-ml/MCP/index.mdx @@ -55,25 +55,25 @@ Below are some guides showing how to use the ClickHouse MCP server. {/*AUTOGENERATED_START*/} | Page | Description | |-----|-----| -| [How to build a ClickHouse-backed AI Agent with Streamlit](/guides/ai-ml/MCP/ai-agent-libraries/streamlit) | Learn how to build a web-based AI Agent with Streamlit and the ClickHouse MCP server | -| [How to build a LangChain/LangGraph AI agent using ClickHouse MCP server.](/guides/ai-ml/MCP/ai-agent-libraries/langchain) | Learn how to build a LangChain/LangGraph AI agent that can interact with ClickHouse's SQL playground using ClickHouse's MCP server. | -| [How to build a LlamaIndex AI agent using ClickHouse MCP server.](/guides/ai-ml/MCP/ai-agent-libraries/llamaindex) | Learn how to build a LlamaIndex AI agent that can interact with ClickHouse MCP server. | -| [How to build a PydanticAI agent using ClickHouse MCP server.](/guides/ai-ml/MCP/ai-agent-libraries/pydantic-ai) | Learn how to build a PydanticAI agent that can interact with ClickHouse MCP server. | -| [How to build a SlackBot agent using ClickHouse MCP server.](/guides/ai-ml/MCP/ai-agent-libraries/slackbot) | Learn how to build a SlackBot agent that can interact with ClickHouse MCP server. | -| [How to build an AI Agent with Agno and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/agno) | Learn how build an AI Agent with Agno and the ClickHouse MCP server | -| [How to build an AI Agent with Chainlit and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/chainlit) | Learn how to use Chainlit to build LLM-based chat apps together with the ClickHouse MCP server | -| [How to build an AI Agent with Claude Agent SDK and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk) | Learn how build an AI Agent with Claude Agent SDK and the ClickHouse MCP server | -| [How to build an AI Agent with CopilotKit and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/copilotkit) | Learn how to build an agentic application using data stored in ClickHouse with ClickHouse MCP and CopilotKit | -| [How to build an AI Agent with CrewAI and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/crewai) | Learn how build an AI Agent with CrewAI and the ClickHouse MCP server | -| [How to build an AI Agent with DSPy and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/dspy) | Learn how to build an AI agent with DSPy and the ClickHouse MCP server | -| [How to build an AI Agent with mcp-agent and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/mcp-agent) | Learn how build an AI Agent with mcp-agent and the ClickHouse MCP server | -| [How to build an AI Agent with Microsoft Agent framework and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework) | Learn how build an AI Agent with Microsoft Agent framework and the ClickHouse MCP server | -| [How to build an AI Agent with Upsonic and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/upsonic) | Learn how build an AI Agent with Upsonic and the ClickHouse MCP server | -| [How to build an OpenAI agent using ClickHouse MCP server.](/guides/ai-ml/MCP/ai-agent-libraries/openai-agents) | Learn how to build an OpenAI agent that can interact with ClickHouse MCP server. | -| [Set up ClickHouse MCP server with AnythingLLM and ClickHouse Cloud](/guides/ai-ml/MCP/anythingllm) | This guide explains how to set up AnythingLLM with a ClickHouse MCP server using Docker. | -| [Set up ClickHouse MCP server with Claude Desktop](/guides/ai-ml/MCP/claude-desktop) | This guide explains how to set up Claude Desktop with a ClickHouse MCP server. | -| [Set up ClickHouse MCP server with Jan.ai](/guides/ai-ml/MCP/janai) | This guide explains how to set up Jan.ai with a ClickHouse MCP server. | -| [Set up ClickHouse MCP server with LibreChat and ClickHouse Cloud](/guides/ai-ml/MCP/librechat) | This guide explains how to set up LibreChat with a ClickHouse MCP server using Docker. | -| [Set up ClickHouse MCP server with Ollama](/guides/ai-ml/MCP/ollama) | This guide explains how to set up Ollama with a ClickHouse MCP server. | -| [Set up ClickHouse MCP server with Open WebUI and ClickHouse Cloud](/guides/ai-ml/MCP/open-webui) | This guide explains how to set up Open WebUI with a ClickHouse MCP server using Docker. | +| [How to build a ClickHouse-backed AI Agent with Streamlit](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/streamlit) | Learn how to build a web-based AI Agent with Streamlit and the ClickHouse MCP server | +| [How to build a LangChain/LangGraph AI agent using ClickHouse MCP server.](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/langchain) | Learn how to build a LangChain/LangGraph AI agent that can interact with ClickHouse's SQL playground using ClickHouse's MCP server. | +| [How to build a LlamaIndex AI agent using ClickHouse MCP server.](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/llamaindex) | Learn how to build a LlamaIndex AI agent that can interact with ClickHouse MCP server. | +| [How to build a PydanticAI agent using ClickHouse MCP server.](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/pydantic-ai) | Learn how to build a PydanticAI agent that can interact with ClickHouse MCP server. | +| [How to build a SlackBot agent using ClickHouse MCP server.](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/slackbot) | Learn how to build a SlackBot agent that can interact with ClickHouse MCP server. | +| [How to build an AI Agent with Agno and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/agno) | Learn how build an AI Agent with Agno and the ClickHouse MCP server | +| [How to build an AI Agent with Chainlit and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/chainlit) | Learn how to use Chainlit to build LLM-based chat apps together with the ClickHouse MCP server | +| [How to build an AI Agent with Claude Agent SDK and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk) | Learn how build an AI Agent with Claude Agent SDK and the ClickHouse MCP server | +| [How to build an AI Agent with CopilotKit and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/copilotkit) | Learn how to build an agentic application using data stored in ClickHouse with ClickHouse MCP and CopilotKit | +| [How to build an AI Agent with CrewAI and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/crewai) | Learn how build an AI Agent with CrewAI and the ClickHouse MCP server | +| [How to build an AI Agent with DSPy and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/dspy) | Learn how to build an AI agent with DSPy and the ClickHouse MCP server | +| [How to build an AI Agent with mcp-agent and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/mcp-agent) | Learn how build an AI Agent with mcp-agent and the ClickHouse MCP server | +| [How to build an AI Agent with Microsoft Agent framework and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework) | Learn how build an AI Agent with Microsoft Agent framework and the ClickHouse MCP server | +| [How to build an AI Agent with Upsonic and the ClickHouse MCP server](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/upsonic) | Learn how build an AI Agent with Upsonic and the ClickHouse MCP server | +| [How to build an OpenAI agent using ClickHouse MCP server.](/core/guides/use-cases/ai-ml/MCP/ai-agent-libraries/openai-agents) | Learn how to build an OpenAI agent that can interact with ClickHouse MCP server. | +| [Set up ClickHouse MCP server with AnythingLLM and ClickHouse Cloud](/core/guides/use-cases/ai-ml/MCP/anythingllm) | This guide explains how to set up AnythingLLM with a ClickHouse MCP server using Docker. | +| [Set up ClickHouse MCP server with Claude Desktop](/core/guides/use-cases/ai-ml/MCP/claude-desktop) | This guide explains how to set up Claude Desktop with a ClickHouse MCP server. | +| [Set up ClickHouse MCP server with Jan.ai](/core/guides/use-cases/ai-ml/MCP/janai) | This guide explains how to set up Jan.ai with a ClickHouse MCP server. | +| [Set up ClickHouse MCP server with LibreChat and ClickHouse Cloud](/core/guides/use-cases/ai-ml/MCP/librechat) | This guide explains how to set up LibreChat with a ClickHouse MCP server using Docker. | +| [Set up ClickHouse MCP server with Ollama](/core/guides/use-cases/ai-ml/MCP/ollama) | This guide explains how to set up Ollama with a ClickHouse MCP server. | +| [Set up ClickHouse MCP server with Open WebUI and ClickHouse Cloud](/core/guides/use-cases/ai-ml/MCP/open-webui) | This guide explains how to set up Open WebUI with a ClickHouse MCP server using Docker. | {/*AUTOGENERATED_END*/} diff --git a/guides/ai-ml/MCP/janai.mdx b/core/guides/use-cases/ai-ml/MCP/janai.mdx similarity index 100% rename from guides/ai-ml/MCP/janai.mdx rename to core/guides/use-cases/ai-ml/MCP/janai.mdx diff --git a/guides/ai-ml/MCP/librechat.mdx b/core/guides/use-cases/ai-ml/MCP/librechat.mdx similarity index 98% rename from guides/ai-ml/MCP/librechat.mdx rename to core/guides/use-cases/ai-ml/MCP/librechat.mdx index 979a43f8..04481495 100644 --- a/guides/ai-ml/MCP/librechat.mdx +++ b/core/guides/use-cases/ai-ml/MCP/librechat.mdx @@ -111,7 +111,7 @@ services: ``` If you want to explore your own data, you can do so by -using the [host, username and password](/get-started/setup/cloud#connect-with-your-app) +using the [host, username and password](/core/get-started/setup/cloud#connect-with-your-app) of your own ClickHouse Cloud service. diff --git a/guides/ai-ml/MCP/ollama.mdx b/core/guides/use-cases/ai-ml/MCP/ollama.mdx similarity index 100% rename from guides/ai-ml/MCP/ollama.mdx rename to core/guides/use-cases/ai-ml/MCP/ollama.mdx diff --git a/guides/ai-ml/MCP/open-webui.mdx b/core/guides/use-cases/ai-ml/MCP/open-webui.mdx similarity index 100% rename from guides/ai-ml/MCP/open-webui.mdx rename to core/guides/use-cases/ai-ml/MCP/open-webui.mdx diff --git a/guides/ai-ml/ai-powered-sql-generation.mdx b/core/guides/use-cases/ai-ml/ai-powered-sql-generation.mdx similarity index 93% rename from guides/ai-ml/ai-powered-sql-generation.mdx rename to core/guides/use-cases/ai-ml/ai-powered-sql-generation.mdx index c19563d3..9cc523d3 100644 --- a/guides/ai-ml/ai-powered-sql-generation.mdx +++ b/core/guides/use-cases/ai-ml/ai-powered-sql-generation.mdx @@ -8,7 +8,7 @@ show_related_blogs: true doc_type: 'guide' --- -Starting from ClickHouse 25.7, [ClickHouse Client](/integrations/connectors/data-integrations/drivers-and-interfaces/cli) and [clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local) include [AI-powered functionality](/integrations/connectors/data-integrations/drivers-and-interfaces/cli#ai-sql-generation) that converts natural language descriptions into SQL queries. This feature allows you to describe your data requirements in plain text, which the system then translates into corresponding SQL statements. +Starting from ClickHouse 25.7, [ClickHouse Client](/core/concepts/features/interfaces/cli) and [clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local) include [AI-powered functionality](/core/concepts/features/interfaces/cli#ai-sql-generation) that converts natural language descriptions into SQL queries. This feature allows you to describe your data requirements in plain text, which the system then translates into corresponding SQL statements. This capability is particularly useful if you're not familiar with complex SQL syntax or need to quickly generate queries for exploratory data analysis. The feature works with standard ClickHouse tables and supports common query patterns including filtering, aggregation, and joins. @@ -27,7 +27,7 @@ export ANTHROPIC_API_KEY=your_api_key export OPENAI_API_KEY=your_api_key ``` -Alternatively, you can [provide a configuration file](/integrations/connectors/data-integrations/drivers-and-interfaces/cli#ai-sql-generation-configuration). +Alternatively, you can [provide a configuration file](/core/concepts/features/interfaces/cli#ai-sql-generation-configuration). ## Connecting to the ClickHouse SQL playground {#connecting-to-the-clickhouse-sql-playground} @@ -43,7 +43,7 @@ clickhouse client -mn \ ``` -We'll assume you have ClickHouse installed, but if not, refer to the [installation guide](/get-started/setup/self-managed/install) +We'll assume you have ClickHouse installed, but if not, refer to the [installation guide](/core/get-started/setup/install) ## Asking ClickHouse questions in natural language {#asking-clickhouse-questions-in-natural-language} diff --git a/guides/ai-ml/data-exploration/jupyter-notebook.mdx b/core/guides/use-cases/ai-ml/data-exploration/jupyter-notebook.mdx similarity index 98% rename from guides/ai-ml/data-exploration/jupyter-notebook.mdx rename to core/guides/use-cases/ai-ml/data-exploration/jupyter-notebook.mdx index 6c1d1655..7c4bf937 100644 --- a/guides/ai-ml/data-exploration/jupyter-notebook.mdx +++ b/core/guides/use-cases/ai-ml/data-exploration/jupyter-notebook.mdx @@ -105,7 +105,7 @@ print(result) With the UK price paid data set up and chDB up and running in a Jupyter notebook, we can now get started exploring our data. Let's imagine we're interested in checking how price has changed with time for a specific area in the UK such as the capital city, London. -ClickHouse's [`remoteSecure`](/reference/functions/table-functions/remote) function allows you to easily retrieve the data from ClickHouse Cloud. +ClickHouse's [`remoteSecure`](/core/reference/functions/table-functions/remote) function allows you to easily retrieve the data from ClickHouse Cloud. You can instruct chDB to return this data in process as a Pandas data frame - which is a convenient and familiar way of working with data. Write the following query to fetch the UK price paid data from your ClickHouse Cloud service and turn it into a `pandas.DataFrame`: diff --git a/guides/ai-ml/data-exploration/marimo-notebook.mdx b/core/guides/use-cases/ai-ml/data-exploration/marimo-notebook.mdx similarity index 97% rename from guides/ai-ml/data-exploration/marimo-notebook.mdx rename to core/guides/use-cases/ai-ml/data-exploration/marimo-notebook.mdx index ab1b305a..09099485 100644 --- a/guides/ai-ml/data-exploration/marimo-notebook.mdx +++ b/core/guides/use-cases/ai-ml/data-exploration/marimo-notebook.mdx @@ -118,7 +118,7 @@ You should see the result shown underneath the cell you just ran: With the UK price paid data set up and chDB up and running in a Marimo notebook, we can now get started exploring our data. Let's imagine we're interested in checking how price has changed with time for a specific area in the UK such as the capital city, London. -ClickHouse's [`remoteSecure`](/reference/functions/table-functions/remote) function allows you to easily retrieve the data from ClickHouse Cloud. +ClickHouse's [`remoteSecure`](/core/reference/functions/table-functions/remote) function allows you to easily retrieve the data from ClickHouse Cloud. You can instruct chDB to return this data in process as a Pandas data frame - which is a convenient and familiar way of working with data. ### Querying ClickHouse Cloud data {#querying-clickhouse-cloud-data} @@ -148,7 +148,7 @@ df.head() In the snippet above, `chdb.query(query, "DataFrame")` runs the specified query and outputs the result as a Pandas DataFrame. -In the query we're using the [`remoteSecure`](/reference/functions/table-functions/remote) function to connect to ClickHouse Cloud. +In the query we're using the [`remoteSecure`](/core/reference/functions/table-functions/remote) function to connect to ClickHouse Cloud. The `remoteSecure` functions takes as parameters: - a connection string diff --git a/core/guides/use-cases/ai-ml/index.mdx b/core/guides/use-cases/ai-ml/index.mdx new file mode 100644 index 00000000..f1f222f3 --- /dev/null +++ b/core/guides/use-cases/ai-ml/index.mdx @@ -0,0 +1,19 @@ +--- +description: 'Landing page for Machine Learning and GenAI use case guides' +slug: /use-cases/AI/ask-ai +title: 'Machine learning and GenAI' +keywords: ['machine learning', 'genAI', 'AI'] +doc_type: 'landing-page' +--- + +ClickHouse is ideally suited as a real-time database to power Machine Learning workloads. +With ClickHouse, it's easier than ever to unleash GenAI on your analytics data. +In this section, you'll find some guides around how ClickHouse is used for +Machine Learning and GenAI. + +| Section | Description | +| ------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | +| [AI chat](/products/cloud/features/ai-ml/aichat/using-ai-chat) | This guide explains how to enable and use the AI Chat feature in the ClickHouse Cloud Console. | +| [Semantic Layer](/products/cloud/features/ai-ml/aichat/customizing-semantic-layer) | Learn how to customize the ClickHouse Assistant chat agent with AGENTS.md to provide business-specific rules, calculations, and data structure guidance. | +| [MCP](/core/guides/use-cases/ai-ml/MCP) | A collection of guides to get you setup using Model Context Protocol (MCP) with ClickHouse | +| [AI-powered SQL generation](/core/guides/use-cases/ai-ml/ai-powered-sql-generation) | This feature allows you to describe your data requirements in plain text, which the system then translates into corresponding SQL statements. | diff --git a/guides/ai-ml/vector-search.mdx b/core/guides/use-cases/ai-ml/vector-search.mdx similarity index 98% rename from guides/ai-ml/vector-search.mdx rename to core/guides/use-cases/ai-ml/vector-search.mdx index 89a6d4e1..0f22bbe1 100644 --- a/guides/ai-ml/vector-search.mdx +++ b/core/guides/use-cases/ai-ml/vector-search.mdx @@ -36,7 +36,7 @@ Vector search is everywhere now. It powers music recommendations, retrieval-augmented generation (RAG) for large language models where external knowledge is fetched to improve answers, and even googling is powered by vector search to some extent. Users often prefer regular databases with ad-hoc vector capabilities over fully specialized vector stores, despite specialized databases' advantages. -ClickHouse supports [brute-force vector search](/reference/engines/table-engines/mergetree-family/annindexes#exact-nearest-neighbor-search) as well as [methods for approximate nearest neighbour (ANN) search](/reference/engines/table-engines/mergetree-family/annindexes#approximate-nearest-neighbor-search), including HNSW – the current standard for fast vector retrieval. +ClickHouse supports [brute-force vector search](/core/reference/engines/table-engines/mergetree-family/annindexes#exact-nearest-neighbor-search) as well as [methods for approximate nearest neighbour (ANN) search](/core/reference/engines/table-engines/mergetree-family/annindexes#approximate-nearest-neighbor-search), including HNSW – the current standard for fast vector retrieval. ### Understanding embeddings {#understanding-embeddings} @@ -191,7 +191,7 @@ If the original vector length doesn't divide evenly by 8, the structure is padde ### The distance calculation {#the-distance-calculation} -To query with QBit, use the [`L2DistanceTransposed`](/reference/functions/regular-functions/distance-functions#L2DistanceTransposed) function with a precision parameter: +To query with QBit, use the [`L2DistanceTransposed`](/core/reference/functions/regular-functions/distance-functions#L2DistanceTransposed) function with a precision parameter: ```sql SELECT diff --git a/guides/data-warehousing/biglake-catalog.mdx b/core/guides/use-cases/data-warehousing/biglake-catalog.mdx similarity index 97% rename from guides/data-warehousing/biglake-catalog.mdx rename to core/guides/use-cases/data-warehousing/biglake-catalog.mdx index 02ee5e31..c2609882 100644 --- a/guides/data-warehousing/biglake-catalog.mdx +++ b/core/guides/use-cases/data-warehousing/biglake-catalog.mdx @@ -31,7 +31,7 @@ Before creating a connection from ClickHouse to Lakehouse runtime catalog (BigLa ## Creating a connection between Lakehouse runtime catalog and ClickHouse {#creating-a-connection} -With the OAuth credentials in place, create a database in ClickHouse that uses the [DataLakeCatalog](/reference/engines/database-engines/datalake) database engine: +With the OAuth credentials in place, create a database in ClickHouse that uses the [DataLakeCatalog](/core/reference/engines/database-engines/datalake) database engine: ```sql SET allow_database_iceberg = 1; diff --git a/guides/data-warehousing/getting-started/accelerating-analytics.mdx b/core/guides/use-cases/data-warehousing/getting-started/accelerating-analytics.mdx similarity index 78% rename from guides/data-warehousing/getting-started/accelerating-analytics.mdx rename to core/guides/use-cases/data-warehousing/getting-started/accelerating-analytics.mdx index 54db5304..24188a43 100644 --- a/guides/data-warehousing/getting-started/accelerating-analytics.mdx +++ b/core/guides/use-cases/data-warehousing/getting-started/accelerating-analytics.mdx @@ -8,21 +8,21 @@ keywords: ['data lake', 'lakehouse', 'MergeTree', 'accelerate', 'analytics', 'in doc_type: 'guide' --- -In the [previous section](/guides/data-warehousing/getting-started/connecting-catalogs), you connected ClickHouse to a data catalog and queried open table formats directly. While querying data in place is convenient, open table formats are not optimized for the low-latency, high-concurrency workloads that power dashboards and operational reporting. For these use cases, loading data into ClickHouse's [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) engine delivers dramatically better performance. +In the [previous section](/core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs), you connected ClickHouse to a data catalog and queried open table formats directly. While querying data in place is convenient, open table formats are not optimized for the low-latency, high-concurrency workloads that power dashboards and operational reporting. For these use cases, loading data into ClickHouse's [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) engine delivers dramatically better performance. MergeTree offers several advantages over reading open table formats directly: -- **[Sparse primary index](/guides/cloud-oss/data-modelling/sparse-primary-indexes)** - Orders data on disk by a chosen key, allowing ClickHouse to skip over large ranges of irrelevant rows during queries. -- **Enhanced data types** - Native support for types such as [JSON](/concepts/best-practices/json-type), [LowCardinality](/reference/data-types/lowcardinality), and [Enum](/reference/data-types/enum), enabling more compact storage and faster processing. -- **[Skip indices](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes)** and **[full-text indices](/reference/engines/table-engines/mergetree-family/textindexes)** - Secondary index structures that let ClickHouse skip granules that don't match a query's filter predicates, particularly effective for text search workloads. +- **[Sparse primary index](/core/guides/clickhouse/data-modelling/sparse-primary-indexes)** - Orders data on disk by a chosen key, allowing ClickHouse to skip over large ranges of irrelevant rows during queries. +- **Enhanced data types** - Native support for types such as [JSON](/core/concepts/best-practices/json-type), [LowCardinality](/core/reference/data-types/lowcardinality), and [Enum](/core/reference/data-types/enum), enabling more compact storage and faster processing. +- **[Skip indices](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes)** and **[full-text indices](/core/reference/engines/table-engines/mergetree-family/textindexes)** - Secondary index structures that let ClickHouse skip granules that don't match a query's filter predicates, particularly effective for text search workloads. - **Fast inserts with automatic compaction** - ClickHouse is designed for high-throughput inserts and automatically merges data parts in the background, analogous to compaction in open table formats. -- **Optimized for concurrent reads** - MergeTree columnar storage layout, combined with [multiple caching layers](/concepts/features/performance/caches/caches), supports real-time analytical workloads with high concurrency - something open table formats are not designed for. +- **Optimized for concurrent reads** - MergeTree columnar storage layout, combined with [multiple caching layers](/core/concepts/features/performance/caches/caches), supports real-time analytical workloads with high concurrency - something open table formats are not designed for. This guide shows how to load data from a catalog into a MergeTree table using `INSERT INTO SELECT` for faster analytics. ## Connect to the catalog {#connect-catalog} -We'll use the same Unity Catalog connection from the [previous guide](/guides/data-warehousing/getting-started/connecting-catalogs), connecting via the Iceberg REST endpoint: +We'll use the same Unity Catalog connection from the [previous guide](/core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs), connecting via the Iceberg REST endpoint: ```sql SET allow_database_iceberg = 1; @@ -115,7 +115,7 @@ LIMIT 5 Peak memory usage: 4.35 GiB. ``` -The query takes nearly **9 seconds** because ClickHouse must perform a full table scan across all Parquet files in object storage. Performance could be improved with partitioning, but columns like `logger_name` may be too high cardinality to partition effectively. We also have no indices such as [Text indices](/reference/engines/table-engines/mergetree-family/mergetree#text) to further prune data. This is where MergeTree excels. +The query takes nearly **9 seconds** because ClickHouse must perform a full table scan across all Parquet files in object storage. Performance could be improved with partitioning, but columns like `logger_name` may be too high cardinality to partition effectively. We also have no indices such as [Text indices](/core/reference/engines/table-engines/mergetree-family/mergetree#text) to further prune data. This is where MergeTree excels. ## Load data into MergeTree {#load-data} @@ -125,8 +125,8 @@ We create a MergeTree table with some effort to optimize the schema. Notice a fe - **No `Nullable` wrappers** - removing `Nullable` improves storage efficiency and query performance. - **`LowCardinality(String)`** on the `level`, `instance_type`, `thread_name` and `check_name` columns - dictionary-encodes a column with few distinct values for better compression and faster filtering. -- **A [full-text index](/reference/engines/table-engines/mergetree-family/textindexes)** on the `message` column - accelerates token-based text searches like `hasToken(message, 'error')`. -- **An `ORDER BY` key** of `(instance_type, thread_name, toStartOfMinute(event_time))` - aligns data on disk with common filter patterns so the [sparse primary index](/guides/cloud-oss/data-modelling/sparse-primary-indexes) can skip irrelevant granules. +- **A [full-text index](/core/reference/engines/table-engines/mergetree-family/textindexes)** on the `message` column - accelerates token-based text searches like `hasToken(message, 'error')`. +- **An `ORDER BY` key** of `(instance_type, thread_name, toStartOfMinute(event_time))` - aligns data on disk with common filter patterns so the [sparse primary index](/core/guides/clickhouse/data-modelling/sparse-primary-indexes) can skip irrelevant granules. ```sql SET enable_full_text_index = 1; diff --git a/guides/data-warehousing/getting-started/connecting-catalogs.mdx b/core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs.mdx similarity index 80% rename from guides/data-warehousing/getting-started/connecting-catalogs.mdx rename to core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs.mdx index be51426d..f3f8e9e5 100644 --- a/guides/data-warehousing/getting-started/connecting-catalogs.mdx +++ b/core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs.mdx @@ -10,17 +10,17 @@ doc_type: 'guide' import BetaBadge from "/snippets/components/BetaBadge/BetaBadge.jsx"; -In the [previous section](/guides/data-warehousing/getting-started/querying-directly), you queried open table formats by passing storage paths directly. In practice, most organizations manage table metadata through a **data catalog** - a central registry that tracks table locations, schemas, and partitions. When you connect ClickHouse to a catalog using the [`DataLakeCatalog`](/reference/engines/database-engines/datalake) database engine, the entire catalog is exposed as a ClickHouse database. Every table in the catalog appears automatically and can be queried with full ClickHouse SQL - no need to know individual table paths or manage credentials per table. +In the [previous section](/core/guides/use-cases/data-warehousing/getting-started/querying-directly), you queried open table formats by passing storage paths directly. In practice, most organizations manage table metadata through a **data catalog** - a central registry that tracks table locations, schemas, and partitions. When you connect ClickHouse to a catalog using the [`DataLakeCatalog`](/core/reference/engines/database-engines/datalake) database engine, the entire catalog is exposed as a ClickHouse database. Every table in the catalog appears automatically and can be queried with full ClickHouse SQL - no need to know individual table paths or manage credentials per table. This guide walks through connecting to [Databricks Unity Catalog](https://www.databricks.com/product/unity-catalog). ClickHouse also supports the following catalogs - refer to each reference guide for full setup instructions: | Catalog | Reference guide | |---------|----------------| -| AWS Glue | [AWS Glue catalog](/guides/data-warehousing/glue-catalog) | -| Iceberg REST Catalog | [REST catalog](/guides/data-warehousing/rest-catalog) | -| Lakekeeper | [Lakekeeper catalog](/guides/data-warehousing/lakekeeper-catalog) | -| Project Nessie | [Nessie catalog](/guides/data-warehousing/nessie-catalog) | -| Microsoft OneLake | [Fabric OneLake](/guides/data-warehousing/onelake-catalog) | +| AWS Glue | [AWS Glue catalog](/core/guides/use-cases/data-warehousing/glue-catalog) | +| Iceberg REST Catalog | [REST catalog](/core/guides/use-cases/data-warehousing/rest-catalog) | +| Lakekeeper | [Lakekeeper catalog](/core/guides/use-cases/data-warehousing/lakekeeper-catalog) | +| Project Nessie | [Nessie catalog](/core/guides/use-cases/data-warehousing/nessie-catalog) | +| Microsoft OneLake | [Fabric OneLake](/core/guides/use-cases/data-warehousing/onelake-catalog) | ## Connecting to a Unity Catalog {#connecting-to-unity-catalog} @@ -56,7 +56,7 @@ With the credentials, you can connect to the relevant endpoint to query the Iceb -The [Unity catalog](/guides/data-warehousing/unity-catalog) should be used for accessing data in the Delta format. +The [Unity catalog](/core/guides/use-cases/data-warehousing/unity-catalog) should be used for accessing data in the Delta format. ```sql SET allow_experimental_database_unity_catalog = 1; @@ -152,4 +152,4 @@ FROM unity.`icebench.single_day_log` 1 row in set. Elapsed: 1.265 sec. ``` -For full setup instructions, see the [Unity catalog reference guide](/guides/data-warehousing/unity-catalog). +For full setup instructions, see the [Unity catalog reference guide](/core/guides/use-cases/data-warehousing/unity-catalog). diff --git a/guides/data-warehousing/getting-started/overview.mdx b/core/guides/use-cases/data-warehousing/getting-started/overview.mdx similarity index 65% rename from guides/data-warehousing/getting-started/overview.mdx rename to core/guides/use-cases/data-warehousing/getting-started/overview.mdx index 68eaf859..3bddf0c3 100644 --- a/guides/data-warehousing/getting-started/overview.mdx +++ b/core/guides/use-cases/data-warehousing/getting-started/overview.mdx @@ -23,7 +23,7 @@ Screenshots in this guide are from the [ClickHouse Cloud](https://console.clickh ## Query Iceberg data directly {#query-directly} -The fastest way to start is with the [`icebergS3()`](/reference/functions/table-functions/iceberg) table function — point it at an Iceberg table in S3 and query immediately, no setup required. +The fastest way to start is with the [`icebergS3()`](/core/reference/functions/table-functions/iceberg) table function — point it at an Iceberg table in S3 and query immediately, no setup required. Inspect the schema: @@ -45,9 +45,9 @@ LIMIT 5 Iceberg Query -ClickHouse reads the Iceberg metadata directly from S3 and infers the schema automatically. The same approach works for [`deltaLake()`](/reference/functions/table-functions/deltalake), [`hudi()`](/reference/functions/table-functions/hudi), and [`paimon()`](/reference/functions/table-functions/paimon). +ClickHouse reads the Iceberg metadata directly from S3 and infers the schema automatically. The same approach works for [`deltaLake()`](/core/reference/functions/table-functions/deltalake), [`hudi()`](/core/reference/functions/table-functions/hudi), and [`paimon()`](/core/reference/functions/table-functions/paimon). -**Learn more:** [Querying open table formats directly](/guides/data-warehousing/getting-started/querying-directly) covers all four formats, cluster variants for distributed reads, and storage backend options (S3, Azure, HDFS, local). +**Learn more:** [Querying open table formats directly](/core/guides/use-cases/data-warehousing/getting-started/querying-directly) covers all four formats, cluster variants for distributed reads, and storage backend options (S3, Azure, HDFS, local). ## Create a persistent table engine {#table-engine} @@ -73,14 +73,14 @@ LIMIT 5 Iceberg Query -The table engine supports data caching, metadata caching, schema evolution, and time travel. See the [Querying directly](/guides/data-warehousing/getting-started/querying-directly) guide for details on table engine features and the [support matrix](/guides/data-warehousing/support-matrix) for a full feature comparison. +The table engine supports data caching, metadata caching, schema evolution, and time travel. See the [Querying directly](/core/guides/use-cases/data-warehousing/getting-started/querying-directly) guide for details on table engine features and the [support matrix](/core/guides/use-cases/data-warehousing/support-matrix) for a full feature comparison. ## Connect to a catalog {#connect-catalog} -Most organizations manage Iceberg tables through a data catalog to centralize the table metadata and data discovery. ClickHouse supports connecting to your catalog using the [`DataLakeCatalog`](/reference/engines/database-engines/datalake) database engine, exposing all catalog tables as a ClickHouse database. This is the more scalable path so as new Iceberg tables are created, they are always accessible in ClickHouse without additional work. +Most organizations manage Iceberg tables through a data catalog to centralize the table metadata and data discovery. ClickHouse supports connecting to your catalog using the [`DataLakeCatalog`](/core/reference/engines/database-engines/datalake) database engine, exposing all catalog tables as a ClickHouse database. This is the more scalable path so as new Iceberg tables are created, they are always accessible in ClickHouse without additional work. -Here's an example connecting to [AWS Glue](/guides/data-warehousing/glue-catalog): +Here's an example connecting to [AWS Glue](/core/guides/use-cases/data-warehousing/glue-catalog): ```sql CREATE DATABASE my_lake @@ -92,7 +92,7 @@ SETTINGS aws_secret_access_key = '' ``` -Each catalog type requires its own connection settings — see the [Catalogs guides](/guides/data-warehousing/reference) for the full list of supported catalogs and their configuration options. +Each catalog type requires its own connection settings — see the [Catalogs guides](/core/guides/use-cases/data-warehousing/reference) for the full list of supported catalogs and their configuration options. Browse tables and query: @@ -108,7 +108,7 @@ SELECT count(*) FROM my_lake.`.` Backticks are required around `.
    ` because ClickHouse doesn't natively support more than one namespace. -**Learn more:** [Connecting to a data catalog](/guides/data-warehousing/getting-started/connecting-catalogs) walks through a full Unity Catalog setup with Delta and Iceberg examples. +**Learn more:** [Connecting to a data catalog](/core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs) walks through a full Unity Catalog setup with Delta and Iceberg examples. ## Issue a query {#issue-query} @@ -192,9 +192,9 @@ LIMIT 5 Because `counterid` is the first column in the `ORDER BY` key, ClickHouse's sparse primary index skips directly to the relevant granules — only reading the rows for `counterid = 38` instead of scanning all 100 million rows. The result is a dramatic speedup. -The [accelerating analytics](/guides/data-warehousing/getting-started/accelerating-analytics) guide takes this further with `LowCardinality` types, full-text indices, and optimized ordering keys, demonstrating a **~40x improvement** on a 283 million row dataset. +The [accelerating analytics](/core/guides/use-cases/data-warehousing/getting-started/accelerating-analytics) guide takes this further with `LowCardinality` types, full-text indices, and optimized ordering keys, demonstrating a **~40x improvement** on a 283 million row dataset. -**Learn more:** [Accelerating analytics with MergeTree](/guides/data-warehousing/getting-started/accelerating-analytics) covers schema optimization, full-text indexing, and a complete before/after performance comparison. +**Learn more:** [Accelerating analytics with MergeTree](/core/guides/use-cases/data-warehousing/getting-started/accelerating-analytics) covers schema optimization, full-text indexing, and a complete before/after performance comparison. ## Write back to Iceberg {#write-back} @@ -228,7 +228,7 @@ ORDER BY cnt DESC The resulting Iceberg table is readable by any Iceberg-compatible engine. -**Learn more:** [Writing data to open table formats](/guides/data-warehousing/getting-started/writing-data) covers writing raw data and aggregated results using the UK Price Paid dataset, including schema considerations when mapping ClickHouse types to Iceberg. +**Learn more:** [Writing data to open table formats](/core/guides/use-cases/data-warehousing/getting-started/writing-data) covers writing raw data and aggregated results using the UK Price Paid dataset, including schema considerations when mapping ClickHouse types to Iceberg. @@ -236,8 +236,8 @@ The resulting Iceberg table is readable by any Iceberg-compatible engine. Now that you've seen the full workflow, dive deeper into each area: -- [Querying directly](/guides/data-warehousing/getting-started/querying-directly) — All four formats, cluster variants, table engines, caching -- [Connecting to catalogs](/guides/data-warehousing/getting-started/connecting-catalogs) — Full Unity Catalog walkthrough with Delta and Iceberg -- [Accelerating analytics](/guides/data-warehousing/getting-started/accelerating-analytics) — Schema optimization, indexing, ~40x speedup demo -- [Writing to data lakes](/guides/data-warehousing/getting-started/writing-data) — Raw writes, aggregated writes, type mapping -- [Support matrix](/guides/data-warehousing/support-matrix) — Feature comparison across formats and storage backends +- [Querying directly](/core/guides/use-cases/data-warehousing/getting-started/querying-directly) — All four formats, cluster variants, table engines, caching +- [Connecting to catalogs](/core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs) — Full Unity Catalog walkthrough with Delta and Iceberg +- [Accelerating analytics](/core/guides/use-cases/data-warehousing/getting-started/accelerating-analytics) — Schema optimization, indexing, ~40x speedup demo +- [Writing to data lakes](/core/guides/use-cases/data-warehousing/getting-started/writing-data) — Raw writes, aggregated writes, type mapping +- [Support matrix](/core/guides/use-cases/data-warehousing/support-matrix) — Feature comparison across formats and storage backends diff --git a/guides/data-warehousing/getting-started/querying-directly.mdx b/core/guides/use-cases/data-warehousing/getting-started/querying-directly.mdx similarity index 65% rename from guides/data-warehousing/getting-started/querying-directly.mdx rename to core/guides/use-cases/data-warehousing/getting-started/querying-directly.mdx index 098b2edf..d3cb8b23 100644 --- a/guides/data-warehousing/getting-started/querying-directly.mdx +++ b/core/guides/use-cases/data-warehousing/getting-started/querying-directly.mdx @@ -17,15 +17,15 @@ You pass the storage path and credentials directly in the function call, and Cli **Server, local or chDB** -The steps in this guide can be executed using an existing ClickHouse server installation. For ad hoc querying, you can instead use [clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local) and complete the same workflow without running a server. With minor adjustments, the process can also be performed using ClickHouse’s in process distribution, [chDB](/products/chdb). +The steps in this guide can be executed using an existing ClickHouse server installation. For ad hoc querying, you can instead use [clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local) and complete the same workflow without running a server. With minor adjustments, the process can also be performed using ClickHouse’s in process distribution, [chDB](/products/chdb). -The following examples use the [hits](/get-started/sample-datasets/star-schema) dataset stored in each lakehouse format on S3. For each lake format, dedicated functions exist for each object store provider. +The following examples use the [hits](/core/get-started/sample-datasets/star-schema) dataset stored in each lakehouse format on S3. For each lake format, dedicated functions exist for each object store provider. -The [`iceberg`](/reference/functions/table-functions/iceberg) table function (alias for `icebergS3`) reads Iceberg tables directly from object storage. Variants exist for each storage backend: `icebergS3`, `icebergAzure`, `icebergHDFS`, and `icebergLocal`. +The [`iceberg`](/core/reference/functions/table-functions/iceberg) table function (alias for `icebergS3`) reads Iceberg tables directly from object storage. Variants exist for each storage backend: `icebergS3`, `icebergAzure`, `icebergHDFS`, and `icebergLocal`. **Example syntax:** @@ -68,7 +68,7 @@ Peak memory usage: 10.48 GiB. ### Cluster variant {#iceberg-cluster-variant} -The [`icebergS3Cluster`](/reference/functions/table-functions/icebergCluster) function distributes reads across multiple nodes in a ClickHouse cluster. The initiator node establishes connections to all nodes and dispatches data files dynamically. Each worker node requests and processes tasks until all files have been read. `icebergCluster` is an alias for `icebergS3Cluster`. Variants also exist for Azure ([`icebergAzureCluster`](/reference/functions/table-functions/icebergCluster)) and HDFS ([`icebergHDFSCluster`](/reference/functions/table-functions/icebergCluster)). +The [`icebergS3Cluster`](/core/reference/functions/table-functions/icebergCluster) function distributes reads across multiple nodes in a ClickHouse cluster. The initiator node establishes connections to all nodes and dispatches data files dynamically. Each worker node requests and processes tasks until all files have been read. `icebergCluster` is an alias for `icebergS3Cluster`. Variants also exist for Azure ([`icebergAzureCluster`](/core/reference/functions/table-functions/icebergCluster)) and HDFS ([`icebergHDFSCluster`](/core/reference/functions/table-functions/icebergCluster)). **Example syntax:** @@ -96,9 +96,9 @@ LIMIT 5 ### Table engine {#iceberg-table-engine} -As an alternative to using the table function in every query, you can create a persistent table using the [`Iceberg` table engine](/reference/engines/table-engines/integrations/iceberg). The data still resides in object storage and is read on demand - no data is copied into ClickHouse. The advantage is that the table definition is stored in ClickHouse and can be shared across users and sessions without each user needing to specify the storage path and credentials. Engine variants exist for each storage backend: `IcebergS3` (or the `Iceberg` alias), `IcebergAzure`, `IcebergHDFS`, and `IcebergLocal`. +As an alternative to using the table function in every query, you can create a persistent table using the [`Iceberg` table engine](/core/reference/engines/table-engines/integrations/iceberg). The data still resides in object storage and is read on demand - no data is copied into ClickHouse. The advantage is that the table definition is stored in ClickHouse and can be shared across users and sessions without each user needing to specify the storage path and credentials. Engine variants exist for each storage backend: `IcebergS3` (or the `Iceberg` alias), `IcebergAzure`, `IcebergHDFS`, and `IcebergLocal`. -Both the table engine and the table function support [data caching](/reference/engines/table-engines/integrations/iceberg#data-cache), using the same caching mechanism as the S3, AzureBlobStorage, and HDFS storage engines. Additionally, a [metadata cache](/reference/engines/table-engines/integrations/iceberg#metadata-cache) stores manifest file information in memory, reducing repeated reads of Iceberg metadata. This cache is enabled by default via the `use_iceberg_metadata_files_cache` setting. +Both the table engine and the table function support [data caching](/core/reference/engines/table-engines/integrations/iceberg#data-cache), using the same caching mechanism as the S3, AzureBlobStorage, and HDFS storage engines. Additionally, a [metadata cache](/core/reference/engines/table-engines/integrations/iceberg#metadata-cache) stores manifest file information in memory, reducing repeated reads of Iceberg metadata. This cache is enabled by default via the `use_iceberg_metadata_files_cache` setting. **Example syntax:** @@ -147,13 +147,13 @@ LIMIT 5 Peak memory usage: 10.53 GiB. ``` -For supported features including partition pruning, schema evolution, time travel, caching, and more, see the [support matrix](/guides/data-warehousing/support-matrix#format-support). For full reference, see the [`iceberg` table function](/reference/functions/table-functions/iceberg) and [`Iceberg` table engine](/reference/engines/table-engines/integrations/iceberg) documentation. +For supported features including partition pruning, schema evolution, time travel, caching, and more, see the [support matrix](/core/guides/use-cases/data-warehousing/support-matrix#format-support). For full reference, see the [`iceberg` table function](/core/reference/functions/table-functions/iceberg) and [`Iceberg` table engine](/core/reference/engines/table-engines/integrations/iceberg) documentation. -The [`deltaLake`](/reference/functions/table-functions/deltalake) table function (alias for `deltaLakeS3`) reads Delta Lake tables from object storage. Variants exist for other backends: `deltaLakeAzure` and `deltaLakeLocal`. +The [`deltaLake`](/core/reference/functions/table-functions/deltalake) table function (alias for `deltaLakeS3`) reads Delta Lake tables from object storage. Variants exist for other backends: `deltaLakeAzure` and `deltaLakeLocal`. **Example syntax:** @@ -196,7 +196,7 @@ Peak memory usage: 9.16 GiB. ### Cluster variant {#delta-cluster-variant} -The [`deltaLakeCluster`](/reference/functions/table-functions/deltalakeCluster) function distributes reads across multiple nodes in a ClickHouse cluster. The initiator node dispatches data files dynamically to worker nodes for parallel processing. `deltaLakeS3Cluster` is an alias for `deltaLakeCluster`. An Azure variant ([`deltaLakeAzureCluster`](/reference/functions/table-functions/deltalakeCluster)) is also available. +The [`deltaLakeCluster`](/core/reference/functions/table-functions/deltalakeCluster) function distributes reads across multiple nodes in a ClickHouse cluster. The initiator node dispatches data files dynamically to worker nodes for parallel processing. `deltaLakeS3Cluster` is an alias for `deltaLakeCluster`. An Azure variant ([`deltaLakeAzureCluster`](/core/reference/functions/table-functions/deltalakeCluster)) is also available. **Example syntax:** @@ -230,9 +230,9 @@ LIMIT 5 ### Table engine {#delta-table-engine} -As an alternative to using the table function in every query, you can create a persistent table using the [`DeltaLake` table engine](/reference/engines/table-engines/integrations/deltalake) if using S3 compatible storage. The data still resides in object storage and is read on demand - no data is copied into ClickHouse. The advantage is that the table definition is stored in ClickHouse and can be shared across users and sessions without each user needing to specify the storage path and credentials. +As an alternative to using the table function in every query, you can create a persistent table using the [`DeltaLake` table engine](/core/reference/engines/table-engines/integrations/deltalake) if using S3 compatible storage. The data still resides in object storage and is read on demand - no data is copied into ClickHouse. The advantage is that the table definition is stored in ClickHouse and can be shared across users and sessions without each user needing to specify the storage path and credentials. -Both the table engine and the table function support [data caching](/reference/engines/table-engines/integrations/deltalake#data-cache), using the same caching mechanism as the S3, AzureBlobStorage, and HDFS storage engines. +Both the table engine and the table function support [data caching](/core/reference/engines/table-engines/integrations/deltalake#data-cache), using the same caching mechanism as the S3, AzureBlobStorage, and HDFS storage engines. **Example syntax:** @@ -273,12 +273,12 @@ LIMIT 5 Peak memory usage: 9.27 GiB. ``` -For supported features including storage backends, caching, and more, see the [support matrix](/guides/data-warehousing/support-matrix#format-support). For full reference, see the [`deltaLake` table function](/reference/functions/table-functions/deltalake) and [`DeltaLake` table engine](/reference/engines/table-engines/integrations/deltalake) documentation. +For supported features including storage backends, caching, and more, see the [support matrix](/core/guides/use-cases/data-warehousing/support-matrix#format-support). For full reference, see the [`deltaLake` table function](/core/reference/functions/table-functions/deltalake) and [`DeltaLake` table engine](/core/reference/engines/table-engines/integrations/deltalake) documentation. -The [`hudi`](/reference/functions/table-functions/hudi) table function reads Hudi tables from S3. +The [`hudi`](/core/reference/functions/table-functions/hudi) table function reads Hudi tables from S3. **Syntax:** @@ -288,7 +288,7 @@ hudi(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,co ### Cluster variant {#hudi-cluster-variant} -The [`hudiCluster`](/reference/functions/table-functions/hudiCluster) function distributes reads across multiple nodes in a ClickHouse cluster. The initiator node dispatches data files dynamically to worker nodes for parallel processing. +The [`hudiCluster`](/core/reference/functions/table-functions/hudiCluster) function distributes reads across multiple nodes in a ClickHouse cluster. The initiator node dispatches data files dynamically to worker nodes for parallel processing. ```sql hudiCluster(cluster_name, url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,compression]) @@ -296,7 +296,7 @@ hudiCluster(cluster_name, url [,aws_access_key_id, aws_secret_access_key] [,form ### Table engine {#hudi-table-engine} -As an alternative to using the table function in every query, you can create a persistent table using the [`Hudi` table engine](/reference/engines/table-engines/integrations/hudi). The data still resides in object storage and is read on demand - no data is copied into ClickHouse. The advantage is that the table definition is stored in ClickHouse and can be shared across users and sessions without each user needing to specify the storage path and credentials. +As an alternative to using the table function in every query, you can create a persistent table using the [`Hudi` table engine](/core/reference/engines/table-engines/integrations/hudi). The data still resides in object storage and is read on demand - no data is copied into ClickHouse. The advantage is that the table definition is stored in ClickHouse and can be shared across users and sessions without each user needing to specify the storage path and credentials. **Syntax:** @@ -305,14 +305,14 @@ CREATE TABLE hudi_table ENGINE = Hudi(url [,aws_access_key_id, aws_secret_access_key]) ``` -For supported features including storage backends and more, see the [support matrix](/guides/data-warehousing/support-matrix#format-support). For full reference, see the [`hudi` table function](/reference/functions/table-functions/hudi) and [`Hudi` table engine](/reference/engines/table-engines/integrations/hudi) documentation. +For supported features including storage backends and more, see the [support matrix](/core/guides/use-cases/data-warehousing/support-matrix#format-support). For full reference, see the [`hudi` table function](/core/reference/functions/table-functions/hudi) and [`Hudi` table engine](/core/reference/engines/table-engines/integrations/hudi) documentation. -The [`paimon`](/reference/functions/table-functions/paimon) table function (alias for `paimonS3`) reads Paimon tables from object storage. Variants exist for each storage backend: `paimonS3`, `paimonAzure`, `paimonHDFS`, and `paimonLocal`. +The [`paimon`](/core/reference/functions/table-functions/paimon) table function (alias for `paimonS3`) reads Paimon tables from object storage. Variants exist for each storage backend: `paimonS3`, `paimonAzure`, `paimonHDFS`, and `paimonLocal`. **Syntax:** @@ -329,7 +329,7 @@ paimonLocal(path_to_table, [,format] [,compression_method]) ### Cluster variant {#paimon-cluster-variant} -The [`paimonS3Cluster`](/reference/functions/table-functions/paimonCluster) function distributes reads across multiple nodes in a ClickHouse cluster. The initiator node dispatches data files dynamically to worker nodes for parallel processing. `paimonCluster` is an alias for `paimonS3Cluster`. Variants also exist for Azure ([`paimonAzureCluster`](/reference/functions/table-functions/paimonCluster)) and HDFS ([`paimonHDFSCluster`](/reference/functions/table-functions/paimonCluster)). +The [`paimonS3Cluster`](/core/reference/functions/table-functions/paimonCluster) function distributes reads across multiple nodes in a ClickHouse cluster. The initiator node dispatches data files dynamically to worker nodes for parallel processing. `paimonCluster` is an alias for `paimonS3Cluster`. Variants also exist for Azure ([`paimonAzureCluster`](/core/reference/functions/table-functions/paimonCluster)) and HDFS ([`paimonHDFSCluster`](/core/reference/functions/table-functions/paimonCluster)). ```sql paimonS3Cluster(cluster_name, url [,access_key_id, secret_access_key] [,format] [,structure] [,compression]) @@ -344,7 +344,7 @@ paimonHDFSCluster(cluster_name, path_to_table, [,format] [,compression_method]) Paimon does not currently have a dedicated table engine in ClickHouse. Use the table functions above for querying Paimon tables. -For supported features including storage backends and more, see the [support matrix](/guides/data-warehousing/support-matrix#format-support). For full reference, see the [`paimon` table function](/reference/functions/table-functions/paimon) documentation. +For supported features including storage backends and more, see the [support matrix](/core/guides/use-cases/data-warehousing/support-matrix#format-support). For full reference, see the [`paimon` table function](/core/reference/functions/table-functions/paimon) documentation. diff --git a/guides/data-warehousing/getting-started/writing-data.mdx b/core/guides/use-cases/data-warehousing/getting-started/writing-data.mdx similarity index 96% rename from guides/data-warehousing/getting-started/writing-data.mdx rename to core/guides/use-cases/data-warehousing/getting-started/writing-data.mdx index fa4df32c..020b570f 100644 --- a/guides/data-warehousing/getting-started/writing-data.mdx +++ b/core/guides/use-cases/data-warehousing/getting-started/writing-data.mdx @@ -21,7 +21,7 @@ Writing to open table formats is currently supported for **Iceberg tables only** ## Prepare a source dataset {#prepare-source} -For this guide, we'll use the [UK Price Paid](/get-started/sample-datasets/uk-price-paid) dataset - a public record of every residential property transaction in England and Wales. +For this guide, we'll use the [UK Price Paid](/core/get-started/sample-datasets/uk-price-paid) dataset - a public record of every residential property transaction in England and Wales. ### Create and populate a MergeTree table {#create-source-table} @@ -97,7 +97,7 @@ Peak memory usage: 485.15 MiB. ### Create the Iceberg table {#create-iceberg-table} -To write data into Iceberg, create a table using the [`IcebergS3` table engine](/reference/engines/table-engines/integrations/iceberg). +To write data into Iceberg, create a table using the [`IcebergS3` table engine](/core/reference/engines/table-engines/integrations/iceberg). Note that the schema must be simplified compared to the MergeTree source. ClickHouse supports a richer type system than Iceberg and the underlying Parquet files - types such as `Enum`, `LowCardinality`, and `UInt8` are not supported in Iceberg and must be mapped to compatible types. diff --git a/guides/data-warehousing/glue-catalog.mdx b/core/guides/use-cases/data-warehousing/glue-catalog.mdx similarity index 100% rename from guides/data-warehousing/glue-catalog.mdx rename to core/guides/use-cases/data-warehousing/glue-catalog.mdx diff --git a/core/guides/use-cases/data-warehousing/index.mdx b/core/guides/use-cases/data-warehousing/index.mdx new file mode 100644 index 00000000..928d1f64 --- /dev/null +++ b/core/guides/use-cases/data-warehousing/index.mdx @@ -0,0 +1,62 @@ +--- +description: 'Use ClickHouse to query, accelerate, and analyze data in open table formats such as Apache Iceberg, Delta Lake, Apache Hudi, and Apache Paimon.' +slug: /use-cases/data-lake +title: 'Data Lake' +keywords: ['data lake', 'lakehouse', 'iceberg', 'delta lake', 'hudi', 'paimon', 'glue', 'unity', 'rest', 'OneLake', 'BigLake'] +doc_type: 'landing-page' +--- + +ClickHouse integrates with open table formats, including [Apache Iceberg](/core/reference/engines/table-engines/integrations/iceberg), [Delta Lake](/core/reference/engines/table-engines/integrations/deltalake), [Apache Hudi](/core/reference/engines/table-engines/integrations/hudi), and [Apache Paimon](/core/reference/functions/table-functions/paimon). This allows users to connect ClickHouse to data already stored in these formats across object storage, combining the analytical power of ClickHouse with their existing data lake infrastructure. + +## Why use ClickHouse with open table formats? {#why-clickhouse-uses-lake-formats} + +### Query existing data in place {#querying-data-in-place} + +ClickHouse can query open table formats directly in object storage without duplicating data. Organizations standardized on Iceberg, Delta Lake, Hudi, or Paimon can point ClickHouse at existing tables and immediately use its SQL dialect, analytical functions, and efficient native Parquet reader. At the same time, tools like [clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local) and [chDB](/products/chdb) enable exploratory, ad hoc analysis across more than 70 file formats in remote storage, allowing users to interactively explore data lake datasets with no infrastructure setup. + +Users can achieve this with either direct reading, using [table functions and table engines](/core/guides/use-cases/data-warehousing/getting-started/querying-directly), or by [connecting to a data catalogue](/core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs). + +### Real-time analytical workloads with ClickHouse {#real-time-with-clickhouse} + +For workloads that demand high concurrency and low-latency responses, users can load data from open table formats into ClickHouse's [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) engine. This provides a real-time analytics layer on top of data that originates in a data lake, supporting dashboards, operational reporting, and other latency-sensitive workloads that benefit from MergeTree columnar storage and indexing capabilities. + +See the getting started guide for [accelerating analytics with MergeTree](/core/guides/use-cases/data-warehousing/getting-started/accelerating-analytics). + +## Capabilities {#capabilities} + +### Read data directly {#read-data-directly} + +ClickHouse provides [table functions](/core/reference/functions/table-functions) and [engines](/core/reference/engines/table-engines/integrations) for reading open table formats directly on object storage. Functions such as [`iceberg()`](/core/reference/functions/table-functions/iceberg), [`deltaLake()`](/core/reference/functions/table-functions/deltalake), [`hudi()`](/core/reference/functions/table-functions/hudi), and [`paimon()`](/core/reference/functions/table-functions/paimon) allow users to query open table format tables from within a SQL statement without any prior configuration. Versions of these functions exist for most common object stores, such as S3, Azure Blob Storage, and GCS. These functions also have equivalent table engines which can be used to create tables within ClickHouse which reference underlying open table format object storage - thus making querying more convenient. + +See our getting started guide for [querying directly](/core/guides/use-cases/data-warehousing/getting-started/querying-directly), or by [connecting to a data catalogue](/core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs). + +### Expose catalogs as databases {#expose-catalogs-as-databases} + +Using the [`DataLakeCatalog`](/core/reference/engines/database-engines/datalake) database engine, users can connect ClickHouse to an external catalog and expose it as a database. Tables registered in the catalog appear as tables within ClickHouse, enabling the full range of ClickHouse SQL syntax and analytical functions to be used transparently. This means users can query, join, and aggregate across catalog-managed tables as if they were native ClickHouse tables, benefiting from ClickHouse's query optimization, parallel execution, and reading capabilities. + +Supported catalogs include: + +| Catalog | Guide | +|---------|-------| +| AWS Glue | [Glue Catalog guide](/core/guides/use-cases/data-warehousing/glue-catalog) | +| BigLake Metastore | [BigLake Metastore guide](/core/guides/use-cases/data-warehousing/biglake-catalog) | +| Databricks Unity Catalog | [Unity Catalog guide](/core/guides/use-cases/data-warehousing/unity-catalog) | +| Iceberg REST Catalog | [REST Catalog guide](/core/guides/use-cases/data-warehousing/rest-catalog) | +| Lakekeeper | [Lakekeeper Catalog guide](/core/guides/use-cases/data-warehousing/lakekeeper-catalog) | +| Project Nessie | [Nessie Catalog guide](/core/guides/use-cases/data-warehousing/nessie-catalog) | +| Microsoft OneLake | [OneLake Catalog guide](/core/guides/use-cases/data-warehousing/onelake-catalog) | + +See the getting started guide for [connecting to catalogs](/core/guides/use-cases/data-warehousing/getting-started/connecting-catalogs). + +### Write back to open table formats {#write-back-to-lakehouse-formats} + +ClickHouse supports writing data back to open table formats, which is relevant in scenarios such as: + +- **Real-time to long-term storage** - Data transits through ClickHouse as a real-time analytics layer, and users need to offload results to Iceberg or other formats for durable, cost-effective long-term storage. +- **Reverse ETL** - Users perform transformations inside ClickHouse using materialized views or scheduled queries and wish to persist the results into open table formats for consumption by other tools in the data ecosystem. + +See the getting started guide for [writing to data lakes](/core/guides/use-cases/data-warehousing/getting-started/writing-data). + +## Next steps {#next-steps} + +Ready to try it out? The [Getting Started guide](/core/guides/use-cases/data-warehousing/getting-started/overview) walks through querying open table formats directly, connecting to a catalog, loading data into MergeTree for fast analytics, and writing results back - all in a single end-to-end workflow. diff --git a/guides/data-warehousing/lakekeeper-catalog.mdx b/core/guides/use-cases/data-warehousing/lakekeeper-catalog.mdx similarity index 100% rename from guides/data-warehousing/lakekeeper-catalog.mdx rename to core/guides/use-cases/data-warehousing/lakekeeper-catalog.mdx diff --git a/guides/data-warehousing/nessie-catalog.mdx b/core/guides/use-cases/data-warehousing/nessie-catalog.mdx similarity index 100% rename from guides/data-warehousing/nessie-catalog.mdx rename to core/guides/use-cases/data-warehousing/nessie-catalog.mdx diff --git a/guides/data-warehousing/onelake-catalog.mdx b/core/guides/use-cases/data-warehousing/onelake-catalog.mdx similarity index 100% rename from guides/data-warehousing/onelake-catalog.mdx rename to core/guides/use-cases/data-warehousing/onelake-catalog.mdx diff --git a/guides/data-warehousing/polaris-catalog.mdx b/core/guides/use-cases/data-warehousing/polaris-catalog.mdx similarity index 100% rename from guides/data-warehousing/polaris-catalog.mdx rename to core/guides/use-cases/data-warehousing/polaris-catalog.mdx diff --git a/core/guides/use-cases/data-warehousing/reference/index.mdx b/core/guides/use-cases/data-warehousing/reference/index.mdx new file mode 100644 index 00000000..a83c4ce5 --- /dev/null +++ b/core/guides/use-cases/data-warehousing/reference/index.mdx @@ -0,0 +1,18 @@ +--- +description: 'Reference guides for connecting ClickHouse to data lake catalogs including AWS Glue, Unity, REST, Lakekeeper, Nessie, and OneLake.' +slug: /use-cases/data-lake/reference +title: 'Catalog guides' +keywords: ['data lake', 'lakehouse', 'catalog', 'glue', 'unity', 'rest', 'lakekeeper', 'nessie', 'OneLake'] +doc_type: 'landing-page' +--- + +ClickHouse integrates with a range of data lake catalogs through the [`DataLakeCatalog`](/core/reference/engines/database-engines/datalake) database engine. The following guides walk through connecting ClickHouse to each supported catalog, including configuration, authentication, and querying examples. + +| Catalog | Description | +|---------|-------------| +| [AWS Glue](/core/guides/use-cases/data-warehousing/glue-catalog) | Query Iceberg tables registered in the AWS Glue Data Catalog from data stored in S3. | +| [Databricks Unity Catalog](/core/guides/use-cases/data-warehousing/unity-catalog) | Connect to Databricks Unity Catalog for Delta Lake and Iceberg tables. | +| [Iceberg REST Catalog](/core/guides/use-cases/data-warehousing/rest-catalog) | Use any catalog implementing the Iceberg REST specification, such as Tabular. | +| [Lakekeeper](/core/guides/use-cases/data-warehousing/lakekeeper-catalog) | Connect to the Lakekeeper Catalog for Iceberg tables. | +| [Project Nessie](/core/guides/use-cases/data-warehousing/nessie-catalog) | Query Iceberg tables using the Nessie Catalog with Git-like data version control. | +| [Microsoft OneLake](/core/guides/use-cases/data-warehousing/onelake-catalog) | Query Iceberg tables in Microsoft Fabric OneLake. | diff --git a/guides/data-warehousing/rest-catalog.mdx b/core/guides/use-cases/data-warehousing/rest-catalog.mdx similarity index 100% rename from guides/data-warehousing/rest-catalog.mdx rename to core/guides/use-cases/data-warehousing/rest-catalog.mdx diff --git a/core/guides/use-cases/data-warehousing/support-matrix.mdx b/core/guides/use-cases/data-warehousing/support-matrix.mdx new file mode 100644 index 00000000..405ed865 --- /dev/null +++ b/core/guides/use-cases/data-warehousing/support-matrix.mdx @@ -0,0 +1,175 @@ +--- +title: 'Support matrix' +sidebarTitle: 'Support matrix' +slug: /use-cases/data-lake/support-matrix +description: 'Comprehensive support matrices for ClickHouse open table format integrations and data catalog connections.' +keywords: ['data lake', 'lakehouse', 'support', 'iceberg', 'delta lake', 'hudi', 'paimon', 'catalog', 'features'] +doc_type: 'reference' +--- + +This page provides comprehensive support matrices for ClickHouse's data lake integrations. It covers the features available for each open table format, the catalogs ClickHouse can connect to, and the capabilities supported by each catalog. + +## Open table format support {#format-support} + +ClickHouse integrates with four open table formats: [Apache Iceberg](/core/reference/engines/table-engines/integrations/iceberg), [Delta Lake](/core/reference/engines/table-engines/integrations/deltalake), [Apache Hudi](/core/reference/engines/table-engines/integrations/hudi), and [Apache Paimon](/core/reference/functions/table-functions/paimon). Select a format below to view its support matrix. + +**Legend:** ✅ Supported | ⚠️ Partial / Experimental | ❌ Not supported + + + + +| Feature | Status | Notes | +|---------|:-:|-------| +| **Storage backends** | | | +| AWS S3 | ✅ | Via [`icebergS3()`](/core/reference/functions/table-functions/iceberg) or `iceberg()` alias | +| GCS | ✅ | Via [`icebergS3()`](/core/reference/functions/table-functions/iceberg) or `iceberg()` alias | +| Azure Blob Storage | ✅ | Via [`icebergAzure()`](/core/reference/functions/table-functions/iceberg) | +| HDFS | ⚠️ | Via [`icebergHDFS()`](/core/reference/functions/table-functions/iceberg). Deprecated. | +| Local filesystem | ✅ | Via [`icebergLocal()`](/core/reference/functions/table-functions/iceberg) | +| **Access methods** | | | +| Table function | ✅ | [`icebergS3()`](/core/reference/functions/table-functions/iceberg) with variants per backend | +| Table engine | ✅ | [`IcebergS3`](/core/reference/engines/table-engines/integrations/iceberg) with variants per backend | +| Cluster-distributed reads | ✅ | [`icebergS3Cluster`](/core/reference/functions/table-functions/icebergCluster), [`icebergAzureCluster`](/core/reference/functions/table-functions/icebergCluster), [`icebergHDFSCluster`](/core/reference/functions/table-functions/icebergCluster) | +| Named collections | ✅ | [Defining a named collection](/core/reference/functions/table-functions/iceberg#defining-a-named-collection) | +| | | | +| **Read features** | | | +| Read support | ✅ | Full SELECT support with all ClickHouse SQL functions | +| Partition pruning | ✅ | See [Partition pruning](/core/reference/engines/table-engines/integrations/iceberg#partition-pruning). | +| Hidden partitioning | ✅ | Iceberg transform-based partitioning supported | +| Partition evolution | ✅ | Reading tables with changing partition specs over time supported | +| Schema evolution | ✅ | Column addition, removal, and reordering. See [Schema evolution](/core/reference/engines/table-engines/integrations/iceberg#schema-evolution). | +| Type promotion / widening | ✅ | `int` → `long`, `float` → `double`, `decimal(P,S)` → `decimal(P',S)` where P' > P. See [Schema evolution](/core/reference/engines/table-engines/integrations/iceberg#schema-evolution). | +| Time travel / snapshots | ✅ | Via `iceberg_timestamp_ms` or `iceberg_snapshot_id` settings. See [Time travel](/core/reference/engines/table-engines/integrations/iceberg#time-travel). | +| Position deletes | ✅ | See [Processing deleted rows](/core/reference/engines/table-engines/integrations/iceberg#deleted-rows). | +| Equality deletes | ✅ | Table engine only, from v25.8+. See [Processing deleted rows](/core/reference/engines/table-engines/integrations/iceberg#deleted-rows). | +| Merge-on-read | ⚠️ | Experimental. Supported for [delete operations](/core/reference/functions/table-functions/iceberg#iceberg-writes-delete). | +| Format versions | ⚠️ | v1 and v2 supported. V3 not supported. | +| Column statistics | ✅ | | +| Bloom filters / puffin files | ❌ | Bloom filter indexes in puffin files not supported | +| Virtual columns | ✅ | `_path`, `_file`, `_size`, `_time`, `_etag`. See [Virtual columns](/core/reference/functions/table-functions/iceberg#virtual-columns). | +| | | | +| **Write features** | | | +| Table creation | ✅ | Experimental. Requires `allow_insert_into_iceberg = 1`. From v25.7+. See [Creating a table](/core/reference/functions/table-functions/iceberg#create-iceberg-table). | +| INSERT | ✅ | Beta from 26.2. Requires `allow_insert_into_iceberg = 1`. See [Inserting data](/core/reference/functions/table-functions/iceberg#writes-inserts). | +| DELETE | ✅ | Experimental. Requires `allow_insert_into_iceberg = 1`. Via `ALTER TABLE ... DELETE WHERE`. See [Deleting data](/core/reference/functions/table-functions/iceberg#iceberg-writes-delete). | +| ALTER TABLE (schema changes) | ✅ | Experimental. Requires `allow_insert_into_iceberg = 1`. Add, drop, modify, rename columns. See [Schema evolution](/core/reference/functions/table-functions/iceberg#iceberg-writes-schema-evolution). | +| Compaction | ⚠️ | Experimental. Requires `allow_experimental_iceberg_compaction = 1`. Merges position delete files into data files. See [Compaction](/core/reference/functions/table-functions/iceberg#iceberg-writes-compaction). Other Iceberg compaction operations not supported. | +| UPDATE / MERGE | ❌ | Not supported. See Compaction. | +| Copy-on-write | ❌ | Not supported | +| Expire snapshots | ❌ | Not supported | +| Remove orphan files | ❌ | Not supported | +| Writing partitions | ✅ | Supported. | +| Altering partitions | ❌ | The changing of the partitioning scheme from ClickHouse is not supported. ClickHouse can write to iceberg tables which have an evolved partitioning. | +| | | | +| **Metadata** | | | +| Branching and tagging | ❌ | Iceberg branch/tag references not supported | +| Metadata file resolution | ✅ | Support for metadata resolution through catalogs, simple directory listing, using 'version-hint' and specific path. Configurable via `iceberg_metadata_file_path` and `iceberg_metadata_table_uuid`. See [Metadata file resolution](/core/reference/engines/table-engines/integrations/iceberg#metadata-file-resolution). | +| Data caching | ✅ | Same mechanism as S3/Azure/HDFS storage engines. See [Data cache](/core/reference/engines/table-engines/integrations/iceberg#data-cache). | +| Metadata caching | ✅ | Manifest and metadata files cached in memory. Enabled by default via `use_iceberg_metadata_files_cache`. See [Metadata cache](/core/reference/engines/table-engines/integrations/iceberg#metadata-cache). | + + + + +From version 25.6, ClickHouse reads Delta Lake tables using the Delta Lake Rust kernel, providing broader feature support; however, known issues occur when accessing data in Azure Blob Storage. For this reason the Kernel is disabled when reading data on Azure Blob Storage. We indicate below which features require this kernel. + +| Feature | Status | Notes | +|---------|:-:|-------| +| **Storage backends** | | | +| AWS S3 | ✅ | Via [`deltaLake()`](/core/reference/functions/table-functions/deltalake) or `deltaLakeS3()` | +| GCS | ✅ | Via [`deltaLake()`](/core/reference/functions/table-functions/deltalake) or `deltaLakeS3()` | +| Azure Blob Storage | ✅ | Via [`deltaLakeAzure()`](/core/reference/functions/table-functions/deltalake) | +| HDFS | ❌ | Not supported | +| Local filesystem | ✅ | Via [`deltaLakeLocal()`](/core/reference/functions/table-functions/deltalake) | +| **Access methods** | | | +| Table function | ✅ | [`deltaLake()`](/core/reference/functions/table-functions/deltalake) with variants per backend | +| Table engine | ✅ | [`DeltaLake`](/core/reference/engines/table-engines/integrations/deltalake) | +| Cluster-distributed reads | ✅ | [`deltaLakeCluster`](/core/reference/functions/table-functions/deltalakeCluster), [`deltaLakeAzureCluster`](/core/reference/functions/table-functions/deltalakeCluster) | +| Named collections | ✅ | [Named collection](/core/reference/functions/table-functions/deltalake#arguments) | +| **Read features** | | | +| Read support | ✅ | Full SELECT support with all ClickHouse SQL functions | +| Partition pruning | ✅ | Requires Delta Kernel. | +| Schema evolution | ✅ | Requires Delta Kernel. | +| Time travel | ✅ | Requires Delta Kernel. | +| Deletion vectors | ✅ | | +| Column mapping | ✅ | | +| Change data feed | ✅ | Requires Delta Kernel. | +| Virtual columns | ✅ | `_path`, `_file`, `_size`, `_time`, `_etag`. See [Virtual columns](/core/reference/functions/table-functions/deltalake#virtual-columns). | +| **Write features** | | | +| INSERT | ✅ | Experimental. Requires `allow_experimental_delta_lake_writes = 1`. See [DeltaLake engine](/core/reference/engines/table-engines/integrations/deltalake). Requires Delta Kernel. | +| DELETE / UPDATE / MERGE | ❌ | Not supported | +| CREATE empty table | ❌ | Creation of a new empty Delta Lake table is not supported. `CREATE TABLE` operation assumes existence of existing Delta Lake on object storage. | +| **Caching** | | | +| Data caching | ✅ | Same mechanism as S3/Azure/HDFS storage engines. See [Data cache](/core/reference/engines/table-engines/integrations/deltalake#data-cache). | + + + + +| Feature | Status | Notes | +|---------|:-:|-------| +| **Storage backends** | | | +| AWS S3 | ✅ | Via [`hudi()`](/core/reference/functions/table-functions/hudi) | +| GCS | ✅ | Via [`hudi()`](/core/reference/functions/table-functions/hudi) | +| Azure Blob Storage | ❌ | Not supported | +| HDFS | ❌ | Not supported | +| Local filesystem | ❌ | Not supported | +| **Access methods** | | | +| Table function | ✅ | [`hudi()`](/core/reference/functions/table-functions/hudi) | +| Table engine | ✅ | [`Hudi`](/core/reference/engines/table-engines/integrations/hudi) | +| Cluster-distributed reads | ✅ | [`hudiCluster`](/core/reference/functions/table-functions/hudiCluster) (S3 only) | +| Named collections | ✅ | [Hudi arguments](/core/reference/functions/table-functions/hudi#arguments) | +| **Read features** | | | +| Read support | ✅ | Full SELECT support with all ClickHouse SQL functions | +| Schema evolution | ❌ | Not supported | +| Time travel | ❌ | Not supported | +| Virtual columns | ✅ | `_path`, `_file`, `_size`, `_time`, `_etag`. See [Virtual columns](/core/reference/functions/table-functions/hudi#virtual-columns). | +| **Write features** | | | +| INSERT / DELETE / UPDATE | ❌ | Read-only integration | +| **Caching** | | | +| Data caching | ❌ | Not supported | + + + + +| Feature | Status | Notes | +|---------|:-:|-------| +| **Storage backends** | | | +| S3 | ✅ | Experimental. Via [`paimon()`](/core/reference/functions/table-functions/paimon) or `paimonS3()` | +| GCS | ✅ | Experimental. Via [`paimon()`](/core/reference/functions/table-functions/paimon) or `paimonS3()` | +| Azure Blob Storage | ✅ | Experimental. Via [`paimonAzure()`](/core/reference/functions/table-functions/paimon) | +| HDFS | ⚠️ | Experimental. Via [`paimonHDFS()`](/core/reference/functions/table-functions/paimon). Deprecated. | +| Local filesystem | ✅ | Experimental. Via [`paimonLocal()`](/core/reference/functions/table-functions/paimon) | +| **Access methods** | | | +| Table function | ✅ | Experimental. [`paimon()`](/core/reference/functions/table-functions/paimon) with variants per backend | +| Table engine | ❌ | No dedicated table engine | +| Cluster-distributed reads | ✅ | Experimental. [`paimonS3Cluster`](/core/reference/functions/table-functions/paimonCluster), [`paimonAzureCluster`](/core/reference/functions/table-functions/paimonCluster), [`paimonHDFSCluster`](/core/reference/functions/table-functions/paimonCluster) | +| Named collections | ✅ | Experimental. [Defining a named collection](/core/reference/functions/table-functions/paimon#defining-a-named-collection) | +| **Read features** | | | +| Read support | ✅ | Experimental. Full SELECT support with all ClickHouse SQL functions | +| Schema evolution | ❌ | Not supported | +| Time travel | ❌ | Not supported | +| Virtual columns | ✅ | Experimental. `_path`, `_file`, `_size`, `_time`, `_etag`. See [Virtual columns](/core/reference/functions/table-functions/paimon#virtual-columns). | +| **Write features** | | | +| INSERT / DELETE / UPDATE | ❌ | Read-only integration | +| **Caching** | | | +| Data caching | ❌ | Not supported | + + + + +## Catalog support {#catalog-support} + +ClickHouse can connect to external data catalogs using the [`DataLakeCatalog`](/core/reference/engines/database-engines/datalake) database engine, which exposes the catalog as a ClickHouse database. Tables registered in the catalog appear automatically and can be queried with standard SQL. + +The following catalogs are currently supported. Refer to each catalog's reference guide for full setup instructions. + +| Catalog | Formats | Read | Create table | INSERT | Reference guide | +|---------|---------|:-:|:-:|:-:|---------| +| [AWS Glue Catalog](/core/guides/use-cases/data-warehousing/glue-catalog) | Iceberg | ✅ Beta | ❌ | ❌ | [Glue catalog guide](/core/guides/use-cases/data-warehousing/glue-catalog) | +| [BigLake Metastore](/core/guides/use-cases/data-warehousing/biglake-catalog) | Iceberg | ✅ Beta | ❌ | ❌ | [BigLake Metastore guide](/core/guides/use-cases/data-warehousing/biglake-catalog) | +| [Databricks Unity Catalog](/core/guides/use-cases/data-warehousing/unity-catalog) | Delta, Iceberg | ✅ Beta | ❌ | ❌ | [Unity Catalog guide](/core/guides/use-cases/data-warehousing/unity-catalog) | +| [Iceberg REST](/core/guides/use-cases/data-warehousing/rest-catalog) | Iceberg | ✅ Beta | ❌ | ❌ | [REST catalog guide](/core/guides/use-cases/data-warehousing/rest-catalog) | +| [Lakekeeper](/core/guides/use-cases/data-warehousing/lakekeeper-catalog) | Iceberg | ✅ Beta | ❌ | ❌ | [Lakekeeper catalog guide](/core/guides/use-cases/data-warehousing/lakekeeper-catalog) | +| [Project Nessie](/core/guides/use-cases/data-warehousing/nessie-catalog) | Iceberg | ✅ Experimental | ❌ | ❌ | [Nessie catalog guide](/core/guides/use-cases/data-warehousing/nessie-catalog) | +| [Microsoft OneLake](/core/guides/use-cases/data-warehousing/onelake-catalog) | Iceberg | ✅ Beta | ❌ | ❌ | [OneLake catalog guide](/core/guides/use-cases/data-warehousing/onelake-catalog) | + +All catalog integrations currently require an experimental or beta setting to be enabled and expose **read-only** access — tables can be queried but not created or written to through the catalog connection. To load data from a catalog into ClickHouse for faster analytics, use `INSERT INTO SELECT` as described in the [accelerating analytics guide](/core/guides/use-cases/data-warehousing/getting-started/accelerating-analytics). To write data back to open table formats, create standalone Iceberg tables as described in the [writing data guide](/core/guides/use-cases/data-warehousing/getting-started/writing-data). diff --git a/guides/data-warehousing/unity-catalog.mdx b/core/guides/use-cases/data-warehousing/unity-catalog.mdx similarity index 100% rename from guides/data-warehousing/unity-catalog.mdx rename to core/guides/use-cases/data-warehousing/unity-catalog.mdx diff --git a/core/guides/use-cases/index.mdx b/core/guides/use-cases/index.mdx new file mode 100644 index 00000000..8317a6c1 --- /dev/null +++ b/core/guides/use-cases/index.mdx @@ -0,0 +1,24 @@ +--- +slug: /use-cases +title: 'Use case guides' +description: 'Landing page for use case guides' +doc_type: 'landing-page' +keywords: ['use cases', 'observability', 'time-series', 'data lake', 'machine learning', 'AI'] +--- + +Pick a use case below to see how to set up and use ClickHouse for it. + + + + Build low-latency analytical applications with ClickHouse — including time-series workloads. + + + Set up logs, metrics, and traces on ClickHouse, either self-hosted or via the build-your-own stack. + + + Use ClickHouse as a data warehouse, including data-lake integrations and federated query patterns. + + + Build ML and GenAI applications on ClickHouse — vector search, AI-powered SQL, and MCP integrations. + + \ No newline at end of file diff --git a/guides/observability/build-your-own/demo-application.mdx b/core/guides/use-cases/observability/build-your-own/demo-application.mdx similarity index 100% rename from guides/observability/build-your-own/demo-application.mdx rename to core/guides/use-cases/observability/build-your-own/demo-application.mdx diff --git a/guides/observability/build-your-own/grafana.mdx b/core/guides/use-cases/observability/build-your-own/grafana.mdx similarity index 94% rename from guides/observability/build-your-own/grafana.mdx rename to core/guides/use-cases/observability/build-your-own/grafana.mdx index 37256337..c69da3d1 100644 --- a/guides/observability/build-your-own/grafana.mdx +++ b/core/guides/use-cases/observability/build-your-own/grafana.mdx @@ -28,7 +28,7 @@ You can connect Grafana to ClickHouse over either the HTTP or Native protocol. T The Logs configuration requires a time, log level, and message column in order for logs to be rendered correctly. -The Traces configuration is slightly more complex (full list [here](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage)). The required columns here are needed such that subsequent queries, which build a full trace profile, can be abstracted. These queries assume data is structured similarly to OTel, so users deviating significantly from the standard schema will need to use views to benefit from this feature. +The Traces configuration is slightly more complex (full list [here](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage)). The required columns here are needed such that subsequent queries, which build a full trace profile, can be abstracted. These queries assume data is structured similarly to OTel, so users deviating significantly from the standard schema will need to use views to benefit from this feature. @@ -104,7 +104,7 @@ LIMIT 1000 ``` -Note how the above query uses the materialized view `otel_traces_trace_id_ts` to perform the trace id lookup. See [Accelerating Queries - Using Materialized views for lookups](/guides/observability/build-your-own/schema-design#using-materialized-views-incremental--for-fast-lookups) for further details. +Note how the above query uses the materialized view `otel_traces_trace_id_ts` to perform the trace id lookup. See [Accelerating Queries - Using Materialized views for lookups](/core/guides/use-cases/observability/build-your-own/schema-design#using-materialized-views-incremental--for-fast-lookups) for further details. diff --git a/core/guides/use-cases/observability/build-your-own/index.mdx b/core/guides/use-cases/observability/build-your-own/index.mdx new file mode 100644 index 00000000..b4642553 --- /dev/null +++ b/core/guides/use-cases/observability/build-your-own/index.mdx @@ -0,0 +1,18 @@ +--- +slug: /use-cases/observability/build-your-own +title: 'Build your own observability stack' +description: 'Landing page building your own observability stack' +doc_type: 'landing-page' +keywords: ['observability', 'custom stack', 'build your own', 'logs', 'traces', 'metrics', 'OpenTelemetry'] +--- + +This guide helps you build a custom observability stack using ClickHouse as the foundation. Learn how to design, implement, and optimize your observability solution for logs, metrics, and traces, with practical examples and best practices. + +| Page | Description | +|-------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [Introduction](/core/guides/use-cases/observability/build-your-own/introduction) | This guide is designed for if you're looking to build your own observability solution using ClickHouse, focusing on logs and traces. | +| [Schema design](/core/guides/use-cases/observability/build-your-own/schema-design) | Learn why users are recommended to create their own schema for logs and traces, along with some best practices for doing so. | +| [Managing data](/core/guides/use-cases/observability/build-your-own/managing-data) | Deployments of ClickHouse for observability invariably involve large datasets, which need to be managed. ClickHouse offers features to assist with data management. | +| [Integrating OpenTelemetry](/core/guides/use-cases/observability/build-your-own/integrating-opentelemetry) | Collecting and exporting logs and traces using OpenTelemetry with ClickHouse. | +| [Using Visualization Tools](/core/guides/use-cases/observability/build-your-own/grafana) | Learn how to use observability visualization tools for ClickHouse, including HyperDX and Grafana. | +| [Demo Application](/core/guides/use-cases/observability/build-your-own/demo-application) | Explore the OpenTelemetry demo application forked to work with ClickHouse for logs and traces. | diff --git a/guides/observability/build-your-own/integrating-opentelemetry.mdx b/core/guides/use-cases/observability/build-your-own/integrating-opentelemetry.mdx similarity index 93% rename from guides/observability/build-your-own/integrating-opentelemetry.mdx rename to core/guides/use-cases/observability/build-your-own/integrating-opentelemetry.mdx index 8717905e..7175f371 100644 --- a/guides/observability/build-your-own/integrating-opentelemetry.mdx +++ b/core/guides/use-cases/observability/build-your-own/integrating-opentelemetry.mdx @@ -119,7 +119,7 @@ The following represents a simple configuration for the OTel Collector which rea **Consider ClickHouse for parsing** -The below example extracts the timestamp from the log. This requires the use of the `json_parser` operator, which converts the entire log line to a JSON string, placing the result in `LogAttributes`. This can be computationally expensive and [can be done more efficiently in ClickHouse](https://clickhouse.com/blog/worlds-fastest-json-querying-tool-clickhouse-local) - [Extracting structure with SQL](/guides/observability/build-your-own/schema-design#extracting-structure-with-sql). An equivalent unstructured example, which uses the [`regex_parser`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/pkg/stanza/docs/operators/regex_parser.md) to achieve this, can be found [here](https://pastila.nl/?01da7ee2/2ffd3ba8124a7d6e4ddf39422ad5b863#swBkiAXvGP7mRPgbuzzHFA==). +The below example extracts the timestamp from the log. This requires the use of the `json_parser` operator, which converts the entire log line to a JSON string, placing the result in `LogAttributes`. This can be computationally expensive and [can be done more efficiently in ClickHouse](https://clickhouse.com/blog/worlds-fastest-json-querying-tool-clickhouse-local) - [Extracting structure with SQL](/core/guides/use-cases/observability/build-your-own/schema-design#extracting-structure-with-sql). An equivalent unstructured example, which uses the [`regex_parser`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/pkg/stanza/docs/operators/regex_parser.md) to achieve this, can be found [here](https://pastila.nl/?01da7ee2/2ffd3ba8124a7d6e4ddf39422ad5b863#swBkiAXvGP7mRPgbuzzHFA==). **[config-structured-logs.yaml](https://www.otelbin.io/#config=receivers%3A*N_filelog%3A*N___include%3A*N_____-_%2Fopt%2Fdata%2Flogs%2Faccess-structured.log*N___start*_at%3A_beginning*N___operators%3A*N_____-_type%3A_json*_parser*N_______timestamp%3A*N_________parse*_from%3A_attributes.time*_local*N_________layout%3A_*%22*.Y-*.m-*.d_*.H%3A*.M%3A*.S*%22*N*N*Nprocessors%3A*N__batch%3A*N____timeout%3A_5s*N____send*_batch*_size%3A_1*N*N*Nexporters%3A*N_logging%3A*N___loglevel%3A_debug*N*N*Nservice%3A*N_pipelines%3A*N___logs%3A*N_____receivers%3A_%5Bfilelog%5D*N_____processors%3A_%5Bbatch%5D*N_____exporters%3A_%5Blogging%5D%7E)** @@ -203,7 +203,7 @@ For users needing to collect local or Kubernetes log files, we recommend users b ## Collecting Kubernetes logs {#collecting-kubernetes-logs} -For the collection of Kubernetes logs, we recommend the [OpenTelemetry documentation guide](https://opentelemetry.io/docs/kubernetes/). The [Kubernetes Attributes Processor](https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-attributes-processor) is recommended for enriching logs and metrics with pod metadata. This can potentially produce dynamic metadata e.g. labels, stored in the column `ResourceAttributes`. ClickHouse currently uses the type `Map(String, String)` for this column. See [Using Maps](/guides/observability/build-your-own/schema-design#using-maps) and [Extracting from maps](/guides/observability/build-your-own/schema-design#extracting-from-maps) for further details on handling and optimizing this type. +For the collection of Kubernetes logs, we recommend the [OpenTelemetry documentation guide](https://opentelemetry.io/docs/kubernetes/). The [Kubernetes Attributes Processor](https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-attributes-processor) is recommended for enriching logs and metrics with pod metadata. This can potentially produce dynamic metadata e.g. labels, stored in the column `ResourceAttributes`. ClickHouse currently uses the type `Map(String, String)` for this column. See [Using Maps](/core/guides/use-cases/observability/build-your-own/schema-design#using-maps) and [Extracting from maps](/core/guides/use-cases/observability/build-your-own/schema-design#extracting-from-maps) for further details on handling and optimizing this type. ## Collecting traces {#collecting-traces} @@ -287,7 +287,7 @@ As demonstrated in the earlier example of setting the timestamp for a log event, - **Operators** - [Operators](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/pkg/stanza/docs/operators/README.md) provide the most basic unit of processing available at the receiver. Basic parsing is supported, allowing fields such as the Severity and Timestamp to be set. JSON and regex parsing are supported here along with event filtering and basic transformations. We recommend performing event filtering here. -We recommend users avoid doing excessive event processing using operators or [transform processors](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/transformprocessor/README.md). These can incur considerable memory and CPU overhead, especially JSON parsing. It is possible to do all processing in ClickHouse at insert time with materialized views and columns with some exceptions - specifically, context-aware enrichment e.g. adding of k8s metadata. For more details see [Extracting structure with SQL](/guides/observability/build-your-own/schema-design#extracting-structure-with-sql). +We recommend users avoid doing excessive event processing using operators or [transform processors](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/transformprocessor/README.md). These can incur considerable memory and CPU overhead, especially JSON parsing. It is possible to do all processing in ClickHouse at insert time with materialized views and columns with some exceptions - specifically, context-aware enrichment e.g. adding of k8s metadata. For more details see [Extracting structure with SQL](/core/guides/use-cases/observability/build-your-own/schema-design#extracting-structure-with-sql). If processing is done using the OTel collector, we recommend doing transformations at gateway instances and minimizing any work done at agent instances. This will ensure the resources required by agents at the edge, running on servers, are as minimal as possible. Typically, we see users only performing filtering (to minimize unnecessary network usage), timestamp setting (via operators), and enrichment, which requires context in agents. For example, if gateway instances reside in a different Kubernetes cluster, k8s enrichment will need to occur in the agent. @@ -410,7 +410,7 @@ Note the following key settings: - **batch** - a batch processor ensures events are sent as batches. We recommend a value of at least 10,000 with a timeout of 5s (values up to 100,000 can be used if memory allows). Whichever of these is reached first will initiate a batch to be flushed to the exporter. Lowering these values will mean a lower latency pipeline with data available for querying sooner, at the expense of more connections and batches sent to ClickHouse. This isn't recommended if you're not using [asynchronous inserts](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse) as it may cause issues with [too many parts](https://clickhouse.com/blog/common-getting-started-issues-with-clickhouse#1-too-many-parts) in ClickHouse. Conversely, if you're using asynchronous inserts these availability data for querying will also be dependent on asynchronous insert settings - although data will still be flushed from the connector sooner. See [Batching](#batching) for more details. - **sending_queue** - controls the size of the sending queue. Each item in the queue contains a batch. If this queue is exceeded e.g. due to ClickHouse being unreachable but events continue to arrive, batches will be dropped. -Assuming users have extracted the structured log file and have a [local instance of ClickHouse](/get-started/setup/self-managed/install) running (with default authentication), you can run this configuration via the command: +Assuming users have extracted the structured log file and have a [local instance of ClickHouse](/core/get-started/setup/install) running (with default authentication), you can run this configuration via the command: ```bash ./otelcol-contrib --config clickhouse-config.yaml @@ -533,13 +533,13 @@ The columns here correlate with the OTel official specification for logs documen A few important notes on this schema: - By default, the table is partitioned by date via `PARTITION BY toDate(Timestamp)`. This makes it efficient to drop data that expires. -- The TTL is set via `TTL toDateTime(Timestamp) + toIntervalDay(3)` and corresponds to the value set in the collector configuration. [`ttl_only_drop_parts=1`](/reference/settings/merge-tree-settings#ttl_only_drop_parts) means only whole parts are dropped when all the contained rows have expired. This is more efficient than dropping rows within parts, which incurs an expensive delete. We recommend this always be set. See [Data management with TTL](/guides/observability/build-your-own/managing-data#data-management-with-ttl-time-to-live) for more details. -- The table uses the classic [`MergeTree` engine](/reference/engines/table-engines/mergetree-family/mergetree). This is recommended for logs and traces and shouldn't need to be changed. -- The table is ordered by `ORDER BY (ServiceName, SeverityText, toUnixTimestamp(Timestamp), TraceId)`. This means queries will be optimized for filters on `ServiceName`, `SeverityText`, `Timestamp` and `TraceId` - earlier columns in the list will filter faster than later ones e.g. filtering by `ServiceName` will be significantly faster than filtering by `TraceId`. You should modify this ordering according to their expected access patterns - see [Choosing a primary key](/guides/observability/build-your-own/schema-design#choosing-a-primary-ordering-key). -- The above schema applies `ZSTD(1)` to columns. This offers the best compression for logs. You can increase the ZSTD compression level (above the default of 1) for better compression, although this is rarely beneficial. Increasing this value will incur greater CPU overhead at insert time (during compression), although decompression (and thus queries) should remain comparable. See [here](https://clickhouse.com/blog/optimize-clickhouse-codecs-compression-schema) for further details. Additional [delta encoding](/reference/statements/create/table#delta) is applied to the Timestamp with the aim of reducing its size on disk. -- Note how [`ResourceAttributes`](https://opentelemetry.io/docs/specs/otel/resource/sdk/), [`LogAttributes`](https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-attributes) and [`ScopeAttributes`](https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-instrumentationscope) are maps. It's important to understand the differences between them. See ["Using maps"](/guides/observability/build-your-own/schema-design#using-maps) for how to access these maps and optimize accessing keys within them. +- The TTL is set via `TTL toDateTime(Timestamp) + toIntervalDay(3)` and corresponds to the value set in the collector configuration. [`ttl_only_drop_parts=1`](/core/reference/settings/merge-tree-settings#ttl_only_drop_parts) means only whole parts are dropped when all the contained rows have expired. This is more efficient than dropping rows within parts, which incurs an expensive delete. We recommend this always be set. See [Data management with TTL](/core/guides/use-cases/observability/build-your-own/managing-data#data-management-with-ttl-time-to-live) for more details. +- The table uses the classic [`MergeTree` engine](/core/reference/engines/table-engines/mergetree-family/mergetree). This is recommended for logs and traces and shouldn't need to be changed. +- The table is ordered by `ORDER BY (ServiceName, SeverityText, toUnixTimestamp(Timestamp), TraceId)`. This means queries will be optimized for filters on `ServiceName`, `SeverityText`, `Timestamp` and `TraceId` - earlier columns in the list will filter faster than later ones e.g. filtering by `ServiceName` will be significantly faster than filtering by `TraceId`. You should modify this ordering according to their expected access patterns - see [Choosing a primary key](/core/guides/use-cases/observability/build-your-own/schema-design#choosing-a-primary-ordering-key). +- The above schema applies `ZSTD(1)` to columns. This offers the best compression for logs. You can increase the ZSTD compression level (above the default of 1) for better compression, although this is rarely beneficial. Increasing this value will incur greater CPU overhead at insert time (during compression), although decompression (and thus queries) should remain comparable. See [here](https://clickhouse.com/blog/optimize-clickhouse-codecs-compression-schema) for further details. Additional [delta encoding](/core/reference/statements/create/table#delta) is applied to the Timestamp with the aim of reducing its size on disk. +- Note how [`ResourceAttributes`](https://opentelemetry.io/docs/specs/otel/resource/sdk/), [`LogAttributes`](https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-attributes) and [`ScopeAttributes`](https://opentelemetry.io/docs/specs/otel/logs/data-model/#field-instrumentationscope) are maps. It's important to understand the differences between them. See ["Using maps"](/core/guides/use-cases/observability/build-your-own/schema-design#using-maps) for how to access these maps and optimize accessing keys within them. - Most other types here e.g. `ServiceName` as LowCardinality, are optimized. Note that `Body`, which is JSON in our example logs, is stored as a String. -- Bloom filters are applied to map keys and values, as well as the `Body` column. These aim to improve query times for queries accessing these columns but are typically not required. See [Secondary/Data skipping indices](/guides/observability/build-your-own/schema-design#secondarydata-skipping-indices). +- Bloom filters are applied to map keys and values, as well as the `Body` column. These aim to improve query times for queries accessing these columns but are typically not required. See [Secondary/Data skipping indices](/core/guides/use-cases/observability/build-your-own/schema-design#secondarydata-skipping-indices). ```sql CREATE TABLE default.otel_traces @@ -582,7 +582,7 @@ SETTINGS ttl_only_drop_parts = 1 Again, this will correlate with the columns corresponding to OTel official specification for traces documented [here](https://opentelemetry.io/docs/specs/otel/trace/api/). The schema here employs many of the same settings as the above logs schema with additional Link columns specific to spans. -We recommend users disable auto schema creation and create their tables manually. This allows modification of the primary and secondary keys, as well as the opportunity to introduce additional columns for optimizing query performance. For further details see [Schema design](/guides/observability/build-your-own/schema-design). +We recommend users disable auto schema creation and create their tables manually. This allows modification of the primary and secondary keys, as well as the opportunity to introduce additional columns for optimizing query performance. For further details see [Schema design](/core/guides/use-cases/observability/build-your-own/schema-design). ## Optimizing inserts {#optimizing-inserts} @@ -605,15 +605,15 @@ We recommend users use the [batch processor](https://github.com/open-telemetry/o Typically, users are forced to send smaller batches when the throughput of a collector is low, and yet they still expect data to reach ClickHouse within a minimum end-to-end latency. In this case, small batches are sent when the `timeout` of the batch processor expires. This can cause problems and is when asynchronous inserts are required. This case typically arises when **collectors in the agent role are configured to send directly to ClickHouse**. Gateways, by acting as aggregators, can alleviate this problem - see [Scaling with Gateways](#scaling-with-gateways). -If large batches can't be guaranteed, you can delegate batching to ClickHouse using [Asynchronous Inserts](/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts). With asynchronous inserts, data is inserted into a buffer first and then written to the database storage later or asynchronously respectively. +If large batches can't be guaranteed, you can delegate batching to ClickHouse using [Asynchronous Inserts](/core/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts). With asynchronous inserts, data is inserted into a buffer first and then written to the database storage later or asynchronously respectively. -With [enabled asynchronous inserts](/concepts/operations/insert/asyncinserts#enabling-asynchronous-inserts), when ClickHouse ① receives an insert query, the query's data is ② immediately written into an in-memory buffer first. When ③ the next buffer flush takes place, the buffer's data is [sorted](/guides/cloud-oss/data-modelling/sparse-primary-indexes#data-is-stored-on-disk-ordered-by-primary-key-columns) and written as a part to the database storage. Note, that the data isn't searchable by queries before being flushed to the database storage; the buffer flush is [configurable](/concepts/operations/insert/asyncinserts). +With [enabled asynchronous inserts](/core/concepts/features/operations/insert/asyncinserts#enabling-asynchronous-inserts), when ClickHouse ① receives an insert query, the query's data is ② immediately written into an in-memory buffer first. When ③ the next buffer flush takes place, the buffer's data is [sorted](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#data-is-stored-on-disk-ordered-by-primary-key-columns) and written as a part to the database storage. Note, that the data isn't searchable by queries before being flushed to the database storage; the buffer flush is [configurable](/core/concepts/features/operations/insert/asyncinserts). To enable asynchronous inserts for the collector, add `async_insert=1` to the connection string. We recommend users use `wait_for_async_insert=1` (the default) to get delivery guarantees - see [here](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse) for further details. -Data from an async insert is inserted once the ClickHouse buffer is flushed. This occurs either after the [`async_insert_max_data_size`](/reference/settings/session-settings#async_insert_max_data_size) is exceeded or after [`async_insert_busy_timeout_ms`](/reference/settings/session-settings#async_insert_max_data_size) milliseconds since the first INSERT query. If the `async_insert_stale_timeout_ms` is set to a non-zero value, the data is inserted after `async_insert_stale_timeout_ms milliseconds` since the last query. You can tune these settings to control the end-to-end latency of their pipeline. Further settings which can be used to tune buffer flushing are documented [here](/reference/settings/session-settings#async_insert). Generally, defaults are appropriate. +Data from an async insert is inserted once the ClickHouse buffer is flushed. This occurs either after the [`async_insert_max_data_size`](/core/reference/settings/session-settings#async_insert_max_data_size) is exceeded or after [`async_insert_busy_timeout_ms`](/core/reference/settings/session-settings#async_insert_max_data_size) milliseconds since the first INSERT query. If the `async_insert_stale_timeout_ms` is set to a non-zero value, the data is inserted after `async_insert_stale_timeout_ms milliseconds` since the last query. You can tune these settings to control the end-to-end latency of their pipeline. Further settings which can be used to tune buffer flushing are documented [here](/core/reference/settings/session-settings#async_insert). Generally, defaults are appropriate. **Consider Adaptive Asynchronous Inserts** @@ -621,9 +621,9 @@ Data from an async insert is inserted once the ClickHouse buffer is flushed. Thi In cases where a low number of agents are in use, with low throughput but strict end-to-end latency requirements, [adaptive asynchronous inserts](https://clickhouse.com/blog/clickhouse-release-24-02#adaptive-asynchronous-inserts) may be useful. Generally, these aren't applicable to high throughput Observability use cases, as seen with ClickHouse. -Finally, the previous deduplication behavior associated with synchronous inserts into ClickHouse isn't enabled by default when using asynchronous inserts. If required, see the setting [`async_insert_deduplicate`](/reference/settings/session-settings#async_insert_deduplicate). +Finally, the previous deduplication behavior associated with synchronous inserts into ClickHouse isn't enabled by default when using asynchronous inserts. If required, see the setting [`async_insert_deduplicate`](/core/reference/settings/session-settings#async_insert_deduplicate). -Full details on configuring this feature can be found [here](/concepts/operations/insert/asyncinserts#enabling-asynchronous-inserts), with a deep dive [here](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse). +Full details on configuring this feature can be found [here](/core/concepts/features/operations/insert/asyncinserts#enabling-asynchronous-inserts), with a deep dive [here](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse). ## Deployment architectures {#deployment-architectures} diff --git a/guides/observability/build-your-own/introduction.mdx b/core/guides/use-cases/observability/build-your-own/introduction.mdx similarity index 98% rename from guides/observability/build-your-own/introduction.mdx rename to core/guides/use-cases/observability/build-your-own/introduction.mdx index 0629a6c2..43336011 100644 --- a/guides/observability/build-your-own/introduction.mdx +++ b/core/guides/use-cases/observability/build-your-own/introduction.mdx @@ -39,7 +39,7 @@ More specifically, the following means ClickHouse is ideally suited for the stor - **Compression** - Observability data typically contains fields for which the values are taken from a distinct set e.g. HTTP codes or service names. ClickHouse's column-oriented storage, where values are stored sorted, means this data compresses extremely well - especially when combined with a range of specialized codecs for time-series data. Unlike other data stores, which require as much storage as the original data size of the data, typically in JSON format, ClickHouse compresses logs and traces on average up to 14x. Beyond providing significant storage savings for large Observability installations, this compression assists in accelerating queries as less data needs to be read from disk. - **Fast Aggregations** - Observability solutions typically heavily involve the visualization of data through charts e.g. lines showing error rates or bar charts showing traffic sources. Aggregations, or GROUP BYs, are fundamental to powering these charts which must also be fast and responsive when applying filters in workflows for issue diagnosis. ClickHouse's column-oriented format combined with a vectorized query execution engine is ideal for fast aggregations, with sparse indexing allowing rapid filtering of data in response to user actions. -- **Fast Linear scans** - While alternative technologies rely on inverted indices for fast querying of logs, these invariably result in high disk and resource utilization. While ClickHouse provides inverted indices as an additional optional index type, linear scans are highly parallelized and use all of the available cores on a machine (unless configured otherwise). This potentially allows 10s of GB/s per second (compressed) to be scanned for matches with [highly optimized text-matching operators](/reference/functions/regular-functions/string-search-functions). +- **Fast Linear scans** - While alternative technologies rely on inverted indices for fast querying of logs, these invariably result in high disk and resource utilization. While ClickHouse provides inverted indices as an additional optional index type, linear scans are highly parallelized and use all of the available cores on a machine (unless configured otherwise). This potentially allows 10s of GB/s per second (compressed) to be scanned for matches with [highly optimized text-matching operators](/core/reference/functions/regular-functions/string-search-functions). - **Familiarity of SQL** - SQL is the ubiquitous language with which all engineers are familiar. With over 50 years of development, it has proven itself as the de facto language for data analytics and remains the [3rd most popular programming language](https://clickhouse.com/blog/the-state-of-sql-based-observability#lingua-franca). Observability is just another data problem for which SQL is ideal. - **Analytical functions** - ClickHouse extends ANSI SQL with analytical functions designed to make SQL queries simpler and easier to write. These are essential if you're performing root cause analysis where data needs to be sliced and diced. - **Secondary indices** - ClickHouse supports secondary indexes, such as bloom filters, to accelerate specific query profiles. These can be optionally enabled at a column level, giving the user granular control and allowing them to assess the cost-performance benefit. diff --git a/guides/observability/build-your-own/managing-data.mdx b/core/guides/use-cases/observability/build-your-own/managing-data.mdx similarity index 81% rename from guides/observability/build-your-own/managing-data.mdx rename to core/guides/use-cases/observability/build-your-own/managing-data.mdx index afc3df74..91979d37 100644 --- a/guides/observability/build-your-own/managing-data.mdx +++ b/core/guides/use-cases/observability/build-your-own/managing-data.mdx @@ -13,7 +13,7 @@ Deployments of ClickHouse for Observability invariably involve large datasets, w ## Partitions {#partitions} -Partitioning in ClickHouse allows data to be logically separated on disk according to a column or SQL expression. By separating data logically, each partition can be operated on independently e.g. deleted. This allows you to move partitions, and thus subsets, between storage tiers efficiently on time or [expire data/efficiently delete from a cluster](/reference/statements/alter/partition). +Partitioning in ClickHouse allows data to be logically separated on disk according to a column or SQL expression. By separating data logically, each partition can be operated on independently e.g. deleted. This allows you to move partitions, and thus subsets, between storage tiers efficiently on time or [expire data/efficiently delete from a cluster](/core/reference/statements/alter/partition). Partitioning is specified on a table when it is initially defined via the `PARTITION BY` clause. This clause can contain a SQL expression on any column/s, the results of which will define which partition a row is sent to. @@ -31,7 +31,7 @@ PARTITION BY toDate(Timestamp) ORDER BY (ServiceName, SeverityText, toUnixTimestamp(Timestamp), TraceId) ``` -A [number of operations](/reference/statements/alter/partition) can be performed on partitions, including [backups](/reference/statements/alter/partition#freeze-partition), [column manipulations](/reference/statements/alter/partition#clear-column-in-partition), mutations [altering](/reference/statements/alter/partition#update-in-partition)/[deleting](/reference/statements/alter/partition#delete-in-partition) data by row) and [index clearing (e.g. secondary indices)](/reference/statements/alter/partition#clear-index-in-partition). +A [number of operations](/core/reference/statements/alter/partition) can be performed on partitions, including [backups](/core/reference/statements/alter/partition#freeze-partition), [column manipulations](/core/reference/statements/alter/partition#clear-column-in-partition), mutations [altering](/core/reference/statements/alter/partition#update-in-partition)/[deleting](/core/reference/statements/alter/partition#delete-in-partition) data by row) and [index clearing (e.g. secondary indices)](/core/reference/statements/alter/partition#clear-index-in-partition). As an example, suppose our `otel_logs` table is partitioned by day. If populated with the structured log dataset, this will contain several days of data: @@ -116,7 +116,7 @@ This is in contrast to other techniques, which would require the use of an `INSE **Moving partitions** -[Moving partitions between tables](/reference/statements/alter/partition#move-partition-to-table) requires several conditions to be met, not least tables must have the same structure, partition key, primary key and indices/projections. Detailed notes on how to specify partitions in `ALTER` DDL can be found [here](/reference/statements/alter/partition#how-to-set-partition-expression). +[Moving partitions between tables](/core/reference/statements/alter/partition#move-partition-to-table) requires several conditions to be met, not least tables must have the same structure, partition key, primary key and indices/projections. Detailed notes on how to specify partitions in `ALTER` DDL can be found [here](/core/reference/statements/alter/partition#how-to-set-partition-expression). Furthermore, data can be efficiently deleted by partition. This is far more resource-efficient than alternative techniques (mutations or lightweight deletes) and should be preferred. @@ -139,7 +139,7 @@ ORDER BY c DESC ``` -This feature is exploited by TTL when the setting [`ttl_only_drop_parts=1`](/reference/settings/merge-tree-settings#ttl_only_drop_parts) is used. See [Data management with TTL](#data-management-with-ttl-time-to-live) for further details. +This feature is exploited by TTL when the setting [`ttl_only_drop_parts=1`](/core/reference/settings/merge-tree-settings#ttl_only_drop_parts) is used. See [Data management with TTL](#data-management-with-ttl-time-to-live) for further details. ### Applications {#applications} @@ -153,7 +153,7 @@ We explore both of these in detail below. ### Query performance {#query-performance} -While partitions can assist with query performance, this depends heavily on the access patterns. If queries target only a few partitions (ideally one), performance can potentially improve. This is only typically useful if the partitioning key isn't in the primary key and you're filtering by it. However, queries which need to cover many partitions may perform worse than if no partitioning is used (as there may possibly be more parts). The benefit of targeting a single partition will be even less pronounced to non-existent if the partitioning key is already an early entry in the primary key. Partitioning can also be used to [optimize GROUP BY queries](/reference/engines/table-engines/mergetree-family/custom-partitioning-key#group-by-optimisation-using-partition-key) if values in each partition are unique. However, in general, you should ensure the primary key is optimized and only consider partitioning as a query optimization technique in exceptional cases where access patterns access a specific predictable subset of the data, e.g., partitioning by day, with most queries in the last day. See [here](https://medium.com/datadenys/using-partitions-in-clickhouse-3ea0decb89c4) for an example of this behavior. +While partitions can assist with query performance, this depends heavily on the access patterns. If queries target only a few partitions (ideally one), performance can potentially improve. This is only typically useful if the partitioning key isn't in the primary key and you're filtering by it. However, queries which need to cover many partitions may perform worse than if no partitioning is used (as there may possibly be more parts). The benefit of targeting a single partition will be even less pronounced to non-existent if the partitioning key is already an early entry in the primary key. Partitioning can also be used to [optimize GROUP BY queries](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key#group-by-optimisation-using-partition-key) if values in each partition are unique. However, in general, you should ensure the primary key is optimized and only consider partitioning as a query optimization technique in exceptional cases where access patterns access a specific predictable subset of the data, e.g., partitioning by day, with most queries in the last day. See [here](https://medium.com/datadenys/using-partitions-in-clickhouse-3ea0decb89c4) for an example of this behavior. ## Data management with TTL (Time-to-live) {#data-management-with-ttl-time-to-live} @@ -181,7 +181,7 @@ TTL toDateTime(Timestamp) + toIntervalDay(4) SETTINGS ttl_only_drop_parts = 1 ``` -By default, data with an expired TTL is removed when ClickHouse [merges data parts](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage). When ClickHouse detects that data is expired, it performs an off-schedule merge. +By default, data with an expired TTL is removed when ClickHouse [merges data parts](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage). When ClickHouse detects that data is expired, it performs an off-schedule merge. **Scheduled TTLs** @@ -189,7 +189,7 @@ By default, data with an expired TTL is removed when ClickHouse [merges data par TTLs aren't applied immediately but rather on a schedule, as noted above. The MergeTree table setting `merge_with_ttl_timeout` sets the minimum delay in seconds before repeating a merge with delete TTL. The default value is 14400 seconds (4 hours). But that is just the minimum delay, it can take longer until a TTL merge is triggered. If the value is too low, it will perform many off-schedule merges that may consume a lot of resources. A TTL expiration can be forced using the command `ALTER TABLE my_table MATERIALIZE TTL`. -**Important: We recommend using the setting [`ttl_only_drop_parts=1`](/reference/settings/merge-tree-settings#ttl_only_drop_parts) ** (applied by the default schema). When this setting is enabled, ClickHouse drops a whole part when all rows in it are expired. Dropping whole parts instead of partial cleaning TTL-d rows (achieved through resource-intensive mutations when `ttl_only_drop_parts=0`) allows having shorter `merge_with_ttl_timeout` times and lower impact on system performance. If data is partitioned by the same unit at which you perform TTL expiration e.g. day, parts will naturally only contain data from the defined interval. This will ensure `ttl_only_drop_parts=1` can be efficiently applied. +**Important: We recommend using the setting [`ttl_only_drop_parts=1`](/core/reference/settings/merge-tree-settings#ttl_only_drop_parts) ** (applied by the default schema). When this setting is enabled, ClickHouse drops a whole part when all rows in it are expired. Dropping whole parts instead of partial cleaning TTL-d rows (achieved through resource-intensive mutations when `ttl_only_drop_parts=0`) allows having shorter `merge_with_ttl_timeout` times and lower impact on system performance. If data is partitioned by the same unit at which you perform TTL expiration e.g. day, parts will naturally only contain data from the defined interval. This will ensure `ttl_only_drop_parts=1` can be efficiently applied. ### Column level TTL {#column-level-ttl} @@ -250,7 +250,7 @@ TTL Timestamp + INTERVAL 4 DAY RECOMPRESS CODEC(ZSTD(3)) We recommend users always evaluate both the insert and query performance impact of different compression levels and algorithms. For example, delta codecs can be helpful in the compression of timestamps. However, if these are part of the primary key then filtering performance can suffer. -Further details and examples on configuring TTL can be found [here](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes). Examples such as how TTLs can be added and modified for tables and columns, can be found [here](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). For how TTLs enable storage hierarchies such as hot-warm architectures, see [Storage tiers](#storage-tiers). +Further details and examples on configuring TTL can be found [here](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes). Examples such as how TTLs can be added and modified for tables and columns, can be found [here](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). For how TTLs enable storage hierarchies such as hot-warm architectures, see [Storage tiers](#storage-tiers). ## Storage tiers {#storage-tiers} @@ -262,9 +262,9 @@ In ClickHouse, you may create storage tiers on different disks, e.g. hot/recent ClickHouse Cloud uses a single copy of the data that is backed on S3, with SSD-backed node caches. Storage tiers in ClickHouse Cloud, therefore, aren't required. -The creation of storage tiers requires users to create disks, which are then used to formulate storage policies, with volumes that can be specified during table creation. Data can be automatically moved between disks based on fill rates, part sizes, and volume priorities. Further details can be found [here](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes). +The creation of storage tiers requires users to create disks, which are then used to formulate storage policies, with volumes that can be specified during table creation. Data can be automatically moved between disks based on fill rates, part sizes, and volume priorities. Further details can be found [here](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes). -While data can be manually moved between disks using the `ALTER TABLE MOVE PARTITION` command, the movement of data between volumes can also be controlled using TTLs. A full example can be found [here](/concepts/operations/delete/ttl#implementing-a-hotwarmcold-architecture). +While data can be manually moved between disks using the `ALTER TABLE MOVE PARTITION` command, the movement of data between volumes can also be controlled using TTLs. A full example can be found [here](/core/concepts/features/operations/delete/ttl#implementing-a-hotwarmcold-architecture). ## Managing schema changes {#managing-schema-changes} @@ -274,11 +274,11 @@ In order to avoid downtime during schema changes, users have several options, wh ### Use default values {#use-default-values} -Columns can be added to the schema using [`DEFAULT` values](/reference/statements/create/table#default). The specified default will be used if it isn't specified during the INSERT. +Columns can be added to the schema using [`DEFAULT` values](/core/reference/statements/create/table#default). The specified default will be used if it isn't specified during the INSERT. Schema changes can be made prior to modifying any materialized view transformation logic or OTel collector configuration, which causes these new columns to be sent. -Once the schema has been changed, you can reconfigure OTel collectors. Assuming users are using the recommended process outlined in ["Extracting structure with SQL"](/guides/observability/build-your-own/schema-design#extracting-structure-with-sql), where OTel collectors send their data to a Null table engine with a materialized view responsible for extracting the target schema and sending the results to a target table for storage, the view can be modified using the [`ALTER TABLE ... MODIFY QUERY` syntax](/reference/statements/alter/view). Suppose we have the target table below with its corresponding materialized view (similar to that used in "Extracting structure with SQL") to extract the target schema from the OTel structured logs: +Once the schema has been changed, you can reconfigure OTel collectors. Assuming users are using the recommended process outlined in ["Extracting structure with SQL"](/core/guides/use-cases/observability/build-your-own/schema-design#extracting-structure-with-sql), where OTel collectors send their data to a Null table engine with a materialized view responsible for extracting the target schema and sending the results to a target table for storage, the view can be modified using the [`ALTER TABLE ... MODIFY QUERY` syntax](/core/reference/statements/alter/view). Suppose we have the target table below with its corresponding materialized view (similar to that used in "Extracting structure with SQL") to extract the target schema from the OTel structured logs: ```sql CREATE TABLE default.otel_logs_v2 @@ -380,7 +380,7 @@ Subsequent rows will have a `Size` column populated at insert time. As an alternative to the above process, you can simply create a new target table with the new schema. Any materialized views can then be modified to use the new table using the above `ALTER TABLE MODIFY QUERY.` With this approach, you can version your tables e.g. `otel_logs_v3`. -This approach leaves the users with multiple tables to query. To query across tables, you can use the [`merge` function](/reference/functions/table-functions/merge) which accepts wildcard patterns for the table name. We demonstrate this below by querying a v2 and v3 of the `otel_logs` table: +This approach leaves the users with multiple tables to query. To query across tables, you can use the [`merge` function](/core/reference/functions/table-functions/merge) which accepts wildcard patterns for the table name. We demonstrate this below by querying a v2 and v3 of the `otel_logs` table: ```sql SELECT Status, count() AS c @@ -400,7 +400,7 @@ LIMIT 5 5 rows in set. Elapsed: 0.137 sec. Processed 41.46 million rows, 82.92 MB (302.43 million rows/s., 604.85 MB/s.) ``` -Should users wish to avoid using the `merge` function and expose a table to end users that combines multiple tables, the [Merge table engine](/reference/engines/table-engines/special/merge) can be used. We demonstrate this below: +Should users wish to avoid using the `merge` function and expose a table to end users that combines multiple tables, the [Merge table engine](/core/reference/engines/table-engines/special/merge) can be used. We demonstrate this below: ```sql CREATE TABLE otel_logs_merged diff --git a/guides/observability/build-your-own/schema-design.mdx b/core/guides/use-cases/observability/build-your-own/schema-design.mdx similarity index 89% rename from guides/observability/build-your-own/schema-design.mdx rename to core/guides/use-cases/observability/build-your-own/schema-design.mdx index 54d9c84b..75b2dae1 100644 --- a/guides/observability/build-your-own/schema-design.mdx +++ b/core/guides/use-cases/observability/build-your-own/schema-design.mdx @@ -69,9 +69,9 @@ LIMIT 5 Peak memory usage: 153.71 MiB. ``` -Note the use of the map syntax here e.g. `LogAttributes['request_path']`, and the [`path` function](/reference/functions/regular-functions/url-functions#path) for stripping query parameters from the URL. +Note the use of the map syntax here e.g. `LogAttributes['request_path']`, and the [`path` function](/core/reference/functions/regular-functions/url-functions#path) for stripping query parameters from the URL. -If the user hasn't enabled JSON parsing in the collector, then `LogAttributes` will be empty, forcing us to use [JSON functions](/reference/functions/regular-functions/json-functions) to extract the columns from the String `Body`. +If the user hasn't enabled JSON parsing in the collector, then `LogAttributes` will be empty, forcing us to use [JSON functions](/core/reference/functions/regular-functions/json-functions) to extract the columns from the String `Body`. **Prefer ClickHouse for parsing** @@ -153,7 +153,7 @@ Both of these use cases can be satisfied using ClickHouse by moving the above qu **OTel or ClickHouse for processing?** -You may also perform processing using OTel Collector processors and operators as described [here](/guides/observability/build-your-own/integrating-opentelemetry#processing---filtering-transforming-and-enriching). In most cases, you will find ClickHouse is significantly more resource-efficient and faster than the collector's processors. The principal downside of performing all event processing in SQL is the coupling of your solution to ClickHouse. For example, you may wish to send processed logs to alternative destinations from the OTel collector e.g. S3. +You may also perform processing using OTel Collector processors and operators as described [here](/core/guides/use-cases/observability/build-your-own/integrating-opentelemetry#processing---filtering-transforming-and-enriching). In most cases, you will find ClickHouse is significantly more resource-efficient and faster than the collector's processors. The principal downside of performing all event processing in SQL is the coupling of your solution to ClickHouse. For example, you may wish to send processed logs to alternative destinations from the OTel collector e.g. S3. ### Materialized columns {#materialized-columns} @@ -166,7 +166,7 @@ Materialized columns offer the simplest solution to extract structure from other Materialized columns incur additional storage overhead as the values are extracted to new columns on disk at insert time. -Materialized columns support any ClickHouse expression and can exploit any of the analytical functions for [processing strings](/reference/functions/regular-functions/string-functions) (including [regex and searching](/reference/functions/regular-functions/string-search-functions)) and [urls](/reference/functions/regular-functions/url-functions), performing [type conversions](/reference/functions/regular-functions/type-conversion-functions), [extracting values from JSON](/reference/functions/regular-functions/json-functions) or [mathematical operations](/reference/functions/regular-functions/math-functions). +Materialized columns support any ClickHouse expression and can exploit any of the analytical functions for [processing strings](/core/reference/functions/regular-functions/string-functions) (including [regex and searching](/core/reference/functions/regular-functions/string-search-functions)) and [urls](/core/reference/functions/regular-functions/url-functions), performing [type conversions](/core/reference/functions/regular-functions/type-conversion-functions), [extracting values from JSON](/core/reference/functions/regular-functions/json-functions) or [mathematical operations](/core/reference/functions/regular-functions/math-functions). We recommend materialized columns for basic processing. They're especially useful for extracting values from maps, promoting them to root columns, and performing type conversions. They're often most useful when used in very basic schemas or in conjunction with materialized views. Consider the following schema for logs from which the JSON has been extracted to the `LogAttributes` column by the collector: @@ -227,7 +227,7 @@ Materialized columns will, by default, not be returned in a `SELECT *`. This is ## Materialized views {#materialized-views} -[Materialized views](/concepts/features/materialized-views) provide a more powerful means of applying SQL filtering and transformations to logs and traces. +[Materialized views](/core/concepts/features/materialized-views) provide a more powerful means of applying SQL filtering and transformations to logs and traces. Materialized Views allow you to shift the cost of computation from query time to insert time. A ClickHouse materialized view is just a trigger that runs a query on blocks of data as they're inserted into a table. The results of this query are inserted into a second "target" table. @@ -243,7 +243,7 @@ The query associated with the materialized view can theoretically be any query, You should remember the query is just a trigger executing over the rows being inserted into a table (the source table), with the results sent to a new table (the target table). -In order to ensure we don't persist the data twice (in the source and target tables) we can change the table of the source table to be a [Null table engine](/reference/engines/table-engines/special/null), preserving the original schema. Our OTel collectors will continue to send data to this table. For example, for logs, the `otel_logs` table becomes: +In order to ensure we don't persist the data twice (in the source and target tables) we can change the table of the source table to be a [Null table engine](/core/reference/engines/table-engines/special/null), preserving the original schema. Our OTel collectors will continue to send data to this table. For example, for logs, the `otel_logs` table becomes: ```sql CREATE TABLE otel_logs @@ -321,7 +321,7 @@ We also extract the `Body` column above - in case additional attributes are adde **Conditionals** -Note the use of [conditionals](/reference/functions/regular-functions/conditional-functions) above for extracting the `SeverityText` and `SeverityNumber`. These are extremely useful for formulating complex conditions and checking if values are set in maps - we naively assume all keys exist in `LogAttributes`. We recommend users become familiar with them - they're your friend in log parsing in addition to functions for handling [null values](/reference/functions/regular-functions/functions-for-nulls)! +Note the use of [conditionals](/core/reference/functions/regular-functions/conditional-functions) above for extracting the `SeverityText` and `SeverityNumber`. These are extremely useful for formulating complex conditions and checking if values are set in maps - we naively assume all keys exist in `LogAttributes`. We recommend users become familiar with them - they're your friend in log parsing in addition to functions for handling [null values](/core/reference/functions/regular-functions/functions-for-nulls)! We require a table to receive these results. The below target table matches the above query: @@ -354,7 +354,7 @@ ORDER BY (ServiceName, Timestamp) The types selected here are based on optimizations discussed in ["Optimizing types"](#optimizing-types). -Notice how we have dramatically changed our schema. In reality you will likely also have Trace columns they will want to preserve as well as the column `ResourceAttributes` (this usually contains Kubernetes metadata). Grafana can exploit trace columns to provide linking functionality between logs and traces - see ["Using Grafana"](/guides/observability/build-your-own/grafana). +Notice how we have dramatically changed our schema. In reality you will likely also have Trace columns they will want to preserve as well as the column `ResourceAttributes` (this usually contains Kubernetes metadata). Grafana can exploit trace columns to provide linking functionality between logs and traces - see ["Using Grafana"](/core/guides/use-cases/observability/build-your-own/grafana). Below, we create a materialized view `otel_logs_mv`, which executes the above select for the `otel_logs` table and sends the results to `otel_logs_v2`. @@ -386,7 +386,7 @@ This above is visualized below: -If we now restart the collector config used in ["Exporting to ClickHouse"](/guides/observability/build-your-own/integrating-opentelemetry#exporting-to-clickhouse) data will appear in `otel_logs_v2` in our desired format. Note the use of typed JSON extract functions. +If we now restart the collector config used in ["Exporting to ClickHouse"](/core/guides/use-cases/observability/build-your-own/integrating-opentelemetry#exporting-to-clickhouse) data will appear in `otel_logs_v2` in our desired format. Note the use of typed JSON extract functions. ```sql SELECT * @@ -443,16 +443,16 @@ FROM otel_logs ### Beware types {#beware-types} -The above materialized views rely on implicit casting - especially in the case of using the `LogAttributes` map. ClickHouse will often transparently cast the extracted value to the target table type, reducing the syntax required. However, we recommend users always test their views by using the views `SELECT` statement with an [`INSERT INTO`](/reference/statements/insert-into) statement with a target table using the same schema. This should confirm that types are correctly handled. Special attention should be given to the following cases: +The above materialized views rely on implicit casting - especially in the case of using the `LogAttributes` map. ClickHouse will often transparently cast the extracted value to the target table type, reducing the syntax required. However, we recommend users always test their views by using the views `SELECT` statement with an [`INSERT INTO`](/core/reference/statements/insert-into) statement with a target table using the same schema. This should confirm that types are correctly handled. Special attention should be given to the following cases: -- If a key doesn't exist in a map, an empty string will be returned. In the case of numerics, you will need to map these to an appropriate value. This can be achieved with [conditionals](/reference/functions/regular-functions/conditional-functions) e.g. `if(LogAttributes['status'] = ", 200, LogAttributes['status'])` or [cast functions](/reference/functions/regular-functions/type-conversion-functions) if default values are acceptable e.g. `toUInt8OrDefault(LogAttributes['status'] )` +- If a key doesn't exist in a map, an empty string will be returned. In the case of numerics, you will need to map these to an appropriate value. This can be achieved with [conditionals](/core/reference/functions/regular-functions/conditional-functions) e.g. `if(LogAttributes['status'] = ", 200, LogAttributes['status'])` or [cast functions](/core/reference/functions/regular-functions/type-conversion-functions) if default values are acceptable e.g. `toUInt8OrDefault(LogAttributes['status'] )` - Some types won't always be cast e.g. string representations of numerics won't be cast to enum values. - JSON extract functions return default values for their type if a value isn't found. Ensure these values make sense! **Avoid Nullable** -Avoid using [Nullable](/reference/data-types/nullable) in Clickhouse for Observability data. It is rarely required in logs and traces to be able to distinguish between empty and null. This feature incurs an additional storage overhead and will negatively impact query performance. See [here](/guides/cloud-oss/data-modelling/schema-design#optimizing-types) for further details. +Avoid using [Nullable](/core/reference/data-types/nullable) in Clickhouse for Observability data. It is rarely required in logs and traces to be able to distinguish between empty and null. This feature incurs an additional storage overhead and will negatively impact query performance. See [here](/core/guides/clickhouse/data-modelling/schema-design#optimizing-types) for further details. ## Choosing a primary (ordering) key {#choosing-a-primary-ordering-key} @@ -468,7 +468,7 @@ Some simple rules can be applied to help choose an ordering key. The following c
    -On identifying the subset of columns for the ordering key, they must be declared in a specific order. This order can significantly influence both the efficiency of the filtering on secondary key columns in queries and the compression ratio for the table's data files. In general, it is **best to order the keys in ascending order of cardinality**. This should be balanced against the fact that filtering on columns that appear later in the ordering key will be less efficient than filtering on those that appear earlier in the tuple. Balance these behaviors and consider your access patterns. Most importantly, test variants. For further understanding of ordering keys and how to optimize them, we recommend [this article](/guides/cloud-oss/data-modelling/sparse-primary-indexes). +On identifying the subset of columns for the ordering key, they must be declared in a specific order. This order can significantly influence both the efficiency of the filtering on secondary key columns in queries and the compression ratio for the table's data files. In general, it is **best to order the keys in ascending order of cardinality**. This should be balanced against the fact that filtering on columns that appear later in the ordering key will be less efficient than filtering on those that appear earlier in the tuple. Balance these behaviors and consider your access patterns. Most importantly, test variants. For further understanding of ordering keys and how to optimize them, we recommend [this article](/core/guides/clickhouse/data-modelling/sparse-primary-indexes). **Structure first** @@ -478,9 +478,9 @@ We recommend deciding on your ordering keys once you have structured your logs. ## Using maps {#using-maps} -Earlier examples show the use of map syntax `map['key']` to access values in the `Map(String, String)` columns. As well as using map notation to access the nested keys, specialized ClickHouse [map functions](/reference/functions/regular-functions/tuple-map-functions#mapKeys) are available for filtering or selecting these columns. +Earlier examples show the use of map syntax `map['key']` to access values in the `Map(String, String)` columns. As well as using map notation to access the nested keys, specialized ClickHouse [map functions](/core/reference/functions/regular-functions/tuple-map-functions#mapKeys) are available for filtering or selecting these columns. -For example, the following query identifies all of the unique keys available in the `LogAttributes` column using the [`mapKeys` function](/reference/functions/regular-functions/tuple-map-functions#mapKeys) followed by the [`groupArrayDistinctArray` function](/reference/functions/aggregate-functions/combinators) (a combinator). +For example, the following query identifies all of the unique keys available in the `LogAttributes` column using the [`mapKeys` function](/core/reference/functions/regular-functions/tuple-map-functions#mapKeys) followed by the [`groupArrayDistinctArray` function](/core/reference/functions/aggregate-functions/combinators) (a combinator). ```sql SELECT groupArrayDistinctArray(mapKeys(LogAttributes)) @@ -582,11 +582,11 @@ By default, `SELECT *` excludes ALIAS columns. This behavior can be disabled by ## Optimizing types {#optimizing-types} -The [general Clickhouse best practices](/guides/cloud-oss/data-modelling/schema-design#optimizing-types) for optimizing types apply to the ClickHouse use case. +The [general Clickhouse best practices](/core/guides/clickhouse/data-modelling/schema-design#optimizing-types) for optimizing types apply to the ClickHouse use case. ## Using codecs {#using-codecs} -In addition to type optimizations, you can follow the [general best practices for codecs](/guides/cloud-oss/data-modelling/compression/compression-in-clickhouse#choosing-the-right-column-compression-codec) when attempting to optimize compression for ClickHouse Observability schemas. +In addition to type optimizations, you can follow the [general best practices for codecs](/core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse#choosing-the-right-column-compression-codec) when attempting to optimize compression for ClickHouse Observability schemas. In general, you will find the `ZSTD` codec highly applicable to logging and trace datasets. Increasing the compression value from its default value of 1 may improve compression. This should, however, be tested, as higher values incur a greater CPU overhead at insert time. Typically, we see little gain from increasing this value. @@ -594,7 +594,7 @@ Furthermore, timestamps, while benefiting from delta encoding with respect to co ## Using dictionaries {#using-dictionaries} -[Dictionaries](/reference/statements/create/dictionary) are a [key feature](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) of ClickHouse providing in-memory [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) representation of data from various internal and external [sources](/reference/statements/create/dictionary/sources/overview#dictionary-sources), optimized for super-low latency lookup queries. +[Dictionaries](/core/reference/statements/create/dictionary) are a [key feature](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) of ClickHouse providing in-memory [key-value](https://en.wikipedia.org/wiki/Key%E2%80%93value_database) representation of data from various internal and external [sources](/core/reference/statements/create/dictionary/sources/overview#dictionary-sources), optimized for super-low latency lookup queries. @@ -604,7 +604,7 @@ While joins are rarely required in Observability use cases, dictionaries can sti **Accelerating joins** -Users interested in accelerating joins with dictionaries can find further details [here](/concepts/features/dictionaries). +Users interested in accelerating joins with dictionaries can find further details [here](/core/concepts/features/dictionaries). ### Insert time vs query time {#insert-time-vs-query-time} @@ -614,9 +614,9 @@ Dictionaries can be used for enriching datasets at query time or insert time. Ea - **Insert time** - This is typically appropriate if the enrichment value doesn't change and exists in an external source which can be used to populate the dictionary. In this case, enriching the row at insert time avoids the query time lookup to the dictionary. This comes at the cost of insert performance as well as an additional storage overhead, as enriched values will be stored as columns. - **Query time** - If values in a dictionary change frequently, query time lookups are often more applicable. This avoids needing to update columns (and rewrite data) if mapped values change. This flexibility comes at the expense of a query time lookup cost. This query time cost is typically appreciable if a lookup is required for many rows, e.g. using a dictionary lookup in a filter clause. For result enrichment, i.e. in the `SELECT`, this overhead is typically not appreciable. -We recommend that users familiarize themselves with the basics of dictionaries. Dictionaries provide an in-memory lookup table from which values can be retrieved using dedicated [specialist functions](/reference/functions/regular-functions/ext-dict-functions#dictGetAll). +We recommend that users familiarize themselves with the basics of dictionaries. Dictionaries provide an in-memory lookup table from which values can be retrieved using dedicated [specialist functions](/core/reference/functions/regular-functions/ext-dict-functions#dictGetAll). -For simple enrichment examples see the guide on Dictionaries [here](/concepts/features/dictionaries). Below, we focus on common observability enrichment tasks. +For simple enrichment examples see the guide on Dictionaries [here](/core/concepts/features/dictionaries). Below, we focus on common observability enrichment tasks. ### Using IP dictionaries {#using-ip-dictionaries} @@ -630,7 +630,7 @@ From [the readme](https://github.com/sapics/ip-location-db#csv-format), we can s | ip_range_start | ip_range_end | country_code | state1 | state2 | city | postcode | latitude | longitude | timezone | ``` -Given this structure, let's start by taking a peek at the data using the [url()](/reference/functions/table-functions/url) table function: +Given this structure, let's start by taking a peek at the data using the [url()](/core/reference/functions/table-functions/url) table function: ```sql SELECT * @@ -651,7 +651,7 @@ longitude: 153.017 timezone: ᴺᵁᴸᴸ ``` -To make our lives easier, let's use the [`URL()`](/reference/engines/table-engines/special/url) table engine to create a ClickHouse table object with our field names and confirm the total number of rows: +To make our lives easier, let's use the [`URL()`](/core/reference/engines/table-engines/special/url) table engine to create a ClickHouse table object with our field names and confirm the total number of rows: ```sql CREATE TABLE geoip_url( @@ -733,7 +733,7 @@ SELECT FROM geoip_url ``` -In order to perform low-latency IP lookups in ClickHouse, we'll leverage dictionaries to store key -> attributes mapping for our Geo IP data in-memory. ClickHouse provides an `ip_trie` [dictionary structure](/reference/statements/create/dictionary/layouts/ip-trie) to map our network prefixes (CIDR blocks) to coordinates and country codes. The following query specifies a dictionary using this layout and the above table as the source. +In order to perform low-latency IP lookups in ClickHouse, we'll leverage dictionaries to store key -> attributes mapping for our Geo IP data in-memory. ClickHouse provides an `ip_trie` [dictionary structure](/core/reference/statements/create/dictionary/layouts/ip-trie) to map our network prefixes (CIDR blocks) to coordinates and country codes. The following query specifies a dictionary using this layout and the above table as the source. ```sql CREATE DICTIONARY ip_trie ( @@ -768,7 +768,7 @@ SELECT * FROM ip_trie LIMIT 3 Dictionaries in ClickHouse are periodically refreshed based on the underlying table data and the lifetime clause used above. To update our Geo IP dictionary to reflect the latest changes in the DB-IP dataset, we'll just need to reinsert data from the geoip_url remote table to our `geoip` table with transformations applied. -Now that we have Geo IP data loaded into our `ip_trie` dictionary (conveniently also named `ip_trie`), we can use it for IP geo location. This can be accomplished using the [`dictGet()` function](/reference/functions/regular-functions/ext-dict-functions) as follows: +Now that we have Geo IP data loaded into our `ip_trie` dictionary (conveniently also named `ip_trie`), we can use it for IP geo location. This can be accomplished using the [`dictGet()` function](/core/reference/functions/regular-functions/ext-dict-functions) as follows: ```sql SELECT dictGet('ip_trie', ('country_code', 'latitude', 'longitude'), CAST('85.242.48.167', 'IPv4')) AS ip_details @@ -838,19 +838,19 @@ ORDER BY (ServiceName, Timestamp) **Update periodically** -Users are likely to want the ip enrichment dictionary to be periodically updated based on new data. This can be achieved using the `LIFETIME` clause of the dictionary which will cause the dictionary to be periodically reloaded from the underlying table. To update the underlying table, see ["Refreshable Materialized views"](/concepts/features/materialized-views/refreshable-materialized-view). +Users are likely to want the ip enrichment dictionary to be periodically updated based on new data. This can be achieved using the `LIFETIME` clause of the dictionary which will cause the dictionary to be periodically reloaded from the underlying table. To update the underlying table, see ["Refreshable Materialized views"](/core/concepts/features/materialized-views/refreshable-materialized-view). -The above countries and coordinates offer visualization capabilities beyond grouping and filtering by country. For inspiration see ["Visualizing geo data"](/guides/observability/build-your-own/grafana#visualizing-geo-data). +The above countries and coordinates offer visualization capabilities beyond grouping and filtering by country. For inspiration see ["Visualizing geo data"](/core/guides/use-cases/observability/build-your-own/grafana#visualizing-geo-data). ### Using regex dictionaries (user agent parsing) {#using-regex-dictionaries-user-agent-parsing} The parsing of [user agent strings](https://en.wikipedia.org/wiki/User_agent) is a classical regular expression problem and a common requirement in log and trace based datasets. ClickHouse provides efficient parsing of user agents using Regular Expression Tree Dictionaries. -Regular expression tree dictionaries are defined in ClickHouse open-source using the YAMLRegExpTree dictionary source type which provides the path to a YAML file containing the regular expression tree. Should you wish to provide your own regular expression dictionary, the details on the required structure can be found [here](/reference/statements/create/dictionary/layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-open-source). Below we focus on user-agent parsing using [uap-core](https://github.com/ua-parser/uap-core) and load our dictionary for the supported CSV format. This approach is compatible with OSS and ClickHouse Cloud. +Regular expression tree dictionaries are defined in ClickHouse open-source using the YAMLRegExpTree dictionary source type which provides the path to a YAML file containing the regular expression tree. Should you wish to provide your own regular expression dictionary, the details on the required structure can be found [here](/core/reference/statements/create/dictionary/layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-open-source). Below we focus on user-agent parsing using [uap-core](https://github.com/ua-parser/uap-core) and load our dictionary for the supported CSV format. This approach is compatible with OSS and ClickHouse Cloud. -In the examples below, we use snapshots of the latest uap-core regular expressions for user-agent parsing from June 2024. The latest file, which is occasionally updated, can be found [here](https://raw.githubusercontent.com/ua-parser/uap-core/master/regexes.yaml). You can follow the steps [here](/reference/statements/create/dictionary/layouts/regexp-tree#collecting-attribute-values) to load into the CSV file used below. +In the examples below, we use snapshots of the latest uap-core regular expressions for user-agent parsing from June 2024. The latest file, which is occasionally updated, can be found [here](https://raw.githubusercontent.com/ua-parser/uap-core/master/regexes.yaml). You can follow the steps [here](/core/reference/statements/create/dictionary/layouts/regexp-tree#collecting-attribute-values) to load into the CSV file used below. Create the following Memory tables. These hold our regular expressions for parsing devices, browsers and operating systems. @@ -1037,9 +1037,9 @@ Note the use of Tuples for these user agent columns. Tuples are recommended for For more examples and details on dictionaries, we recommend the following articles: -- [Advanced dictionary topics](/concepts/features/dictionaries#advanced-dictionary-topics) +- [Advanced dictionary topics](/core/concepts/features/dictionaries#advanced-dictionary-topics) - ["Using Dictionaries to Accelerate Queries"](https://clickhouse.com/blog/faster-queries-dictionaries-clickhouse) -- [Dictionaries](/reference/statements/create/dictionary) +- [Dictionaries](/core/reference/statements/create/dictionary) ## Accelerating queries {#accelerating-queries} @@ -1123,7 +1123,7 @@ We've effectively reduced the number of rows here from 10m (in `otel_logs`) to 1 Since the merging of rows is asynchronous, there may be more than one row per hour when a user queries. To ensure any outstanding rows are merged at query time, we have two options: -- Use the [`FINAL` modifier](/reference/statements/select/from#final-modifier) on the table name (which we did for the count query above). +- Use the [`FINAL` modifier](/core/reference/statements/select/from#final-modifier) on the table name (which we did for the count query above). - Aggregate by the ordering key used in our final table i.e. Timestamp and sum the metrics. Typically, the second option is more efficient and flexible (the table can be used for other things), but the first can be simpler for some queries. We show both below: @@ -1174,7 +1174,7 @@ These savings can be even greater on larger datasets with more complex queries. #### A more complex example {#a-more-complex-example} -The above example aggregates a simple count per hour using the [SummingMergeTree](/reference/engines/table-engines/mergetree-family/summingmergetree). Statistics beyond simple sums require a different target table engine: the [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree). +The above example aggregates a simple count per hour using the [SummingMergeTree](/core/reference/engines/table-engines/mergetree-family/summingmergetree). Statistics beyond simple sums require a different target table engine: the [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree). Suppose we wish to compute the number of unique IP addresses (or unique users) per day. The query for this: @@ -1204,7 +1204,7 @@ ENGINE = AggregatingMergeTree ORDER BY Hour ``` -To ensure ClickHouse knows that aggregate states will be stored, we define the `UniqueUsers` column as the type [`AggregateFunction`](/reference/data-types/aggregatefunction), specifying the function source of the partial states (uniq) and the type of the source column (IPv4). Like the SummingMergeTree, rows with the same `ORDER BY` key value will be merged (Hour in the above example). +To ensure ClickHouse knows that aggregate states will be stored, we define the `UniqueUsers` column as the type [`AggregateFunction`](/core/reference/data-types/aggregatefunction), specifying the function source of the partial states (uniq) and the type of the source column (IPv4). Like the SummingMergeTree, rows with the same `ORDER BY` key value will be merged (Hour in the above example). The associated materialized view uses the earlier query: @@ -1291,7 +1291,7 @@ PARTITION BY toDate(Timestamp) ORDER BY (ServiceName, SpanName, toUnixTimestamp(Timestamp), TraceId) ``` -This schema is optimized for filtering by `ServiceName`, `SpanName`, and `Timestamp`. In tracing, users also need the ability to perform lookups by a specific `TraceId` and retrieving the associated trace's spans. While this is present in the ordering key, its position at the end means [filtering won't be as efficient](/guides/cloud-oss/data-modelling/sparse-primary-indexes#ordering-key-columns-efficiently) and likely means significant amounts of data will need to be scanned when retrieving a single trace. +This schema is optimized for filtering by `ServiceName`, `SpanName`, and `Timestamp`. In tracing, users also need the ability to perform lookups by a specific `TraceId` and retrieving the associated trace's spans. While this is present in the ordering key, its position at the end means [filtering won't be as efficient](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#ordering-key-columns-efficiently) and likely means significant amounts of data will need to be scanned when retrieving a single trace. The OTel collector also installs a materialized view and associated table to address this challenge. The table and view are shown below: @@ -1352,7 +1352,7 @@ LIMIT 1000 The CTE here identifies the minimum and maximum timestamp for the trace id `ae9226c78d1d360601e6383928e4d22d`, before using this to filter the main `otel_traces` for its associated spans. -This same approach can be applied for similar access patterns. We explore a similar example in Data Modeling [here](/concepts/features/materialized-views/incremental-materialized-view#lookup-table). +This same approach can be applied for similar access patterns. We explore a similar example in Data Modeling [here](/core/concepts/features/materialized-views/incremental-materialized-view#lookup-table). ### Using projections {#using-projections} @@ -1473,24 +1473,24 @@ No matter how well the primary key is tuned in ClickHouse, some queries will ine The default OTel schemas use secondary indices in an attempt to accelerate access to map access. While we find these to be generally ineffective and don't recommend copying them into your custom schema, skipping indices can still be useful. -You should read and understand the [guide to secondary indices](/concepts/features/performance/skip-indexes/skipping-indexes) before attempting to apply them. +You should read and understand the [guide to secondary indices](/core/concepts/features/performance/skip-indexes/skipping-indexes) before attempting to apply them. **In general, they're effective when a strong correlation exists between the primary key and the targeted, non-primary column/expression and users are looking up rare values i.e. those which don't occur in many granules.** ### Text index for full text search {#text-index-for-full-text-search} -ClickHouse provides a specialized [text index](/reference/engines/table-engines/mergetree-family/textindexes) for full-text search. +ClickHouse provides a specialized [text index](/core/reference/engines/table-engines/mergetree-family/textindexes) for full-text search. This index builds an inverted index over tokenized text data, enabling fast token-based search queries. Text indexes are available starting from ClickHouse version 26.2. -They can be defined on the following column types in MergeTree tables: [String](/reference/data-types/string), [FixedString](/reference/data-types/fixedstring), [Array(String)](/reference/data-types/array), [Array(FixedString)](/reference/data-types/array), and [Map](/reference/data-types/map) (via [mapKeys](/reference/functions/regular-functions/tuple-map-functions#mapKeys) and [mapValues](/reference/functions/regular-functions/tuple-map-functions#mapValues) map functions) columns in MergeTree tables. +They can be defined on the following column types in MergeTree tables: [String](/core/reference/data-types/string), [FixedString](/core/reference/data-types/fixedstring), [Array(String)](/core/reference/data-types/array), [Array(FixedString)](/core/reference/data-types/array), and [Map](/core/reference/data-types/map) (via [mapKeys](/core/reference/functions/regular-functions/tuple-map-functions#mapKeys) and [mapValues](/core/reference/functions/regular-functions/tuple-map-functions#mapValues) map functions) columns in MergeTree tables. A text index requires a `tokenizer` argument in its definition. Optionally, a preprocessor function can be specified to transform the input string before tokenization. The recommended functions to search in the index are: `hasAnyTokens` and `hasAllTokens`. Some traditional string search functions are also automatically optimized when a text index is present. -See the documentation for details and supported functions [here](/reference/engines/table-engines/mergetree-family/textindexes#using-a-text-index) and [here](/reference/engines/table-engines/mergetree-family/textindexes#functions-example-hasanytokens-hasalltokens). +See the documentation for details and supported functions [here](/core/reference/engines/table-engines/mergetree-family/textindexes#using-a-text-index) and [here](/core/reference/engines/table-engines/mergetree-family/textindexes#functions-example-hasanytokens-hasalltokens). In the examples below, we use a structured logs dataset. @@ -1650,7 +1650,7 @@ Query id: 730e4b77-e697-40b3-a24d-67219ec42075 **Other indexes for text search -Further details on secondary skip indices can be found [here](/concepts/features/performance/skip-indexes/skipping-indexes#skip-index-functions). +Further details on secondary skip indices can be found [here](/core/concepts/features/performance/skip-indexes/skipping-indexes#skip-index-functions).
    @@ -1660,7 +1660,7 @@ Further details on secondary skip indices can be found [here](/concepts/features `ngrambf_v1` and `tokenbf_v1` indexes are no longer recommended for full text search. -The ngram and token-based bloom filter indexes [`ngrambf_v1`](/concepts/features/performance/skip-indexes/skipping-indexes#bloom-filter-types) and [`tokenbf_v1`](/concepts/features/performance/skip-indexes/skipping-indexes#bloom-filter-types) can be used to accelerate searches over String columns with the operators `LIKE`, `IN`, and hasToken. Importantly, the token-based index generates tokens using non-alphanumeric characters as a separator. This means only tokens (or whole words) can be matched at query time. For more granular matching, the [N-gram bloom filter](/concepts/features/performance/skip-indexes/skipping-indexes#bloom-filter-types) can be used. This splits strings into ngrams of a specified size, thus allowing sub-word matching. +The ngram and token-based bloom filter indexes [`ngrambf_v1`](/core/concepts/features/performance/skip-indexes/skipping-indexes#bloom-filter-types) and [`tokenbf_v1`](/core/concepts/features/performance/skip-indexes/skipping-indexes#bloom-filter-types) can be used to accelerate searches over String columns with the operators `LIKE`, `IN`, and hasToken. Importantly, the token-based index generates tokens using non-alphanumeric characters as a separator. This means only tokens (or whole words) can be matched at query time. For more granular matching, the [N-gram bloom filter](/core/concepts/features/performance/skip-indexes/skipping-indexes#bloom-filter-types) can be used. This splits strings into ngrams of a specified size, thus allowing sub-word matching. To evaluate the tokens that will be produced and therefore, matched, the `tokens` function can be used: @@ -1728,7 +1728,7 @@ ENGINE = MergeTree ORDER BY (Timestamp) ``` -The index `ngrambf_v1(3, 10000, 3, 7)` here takes four parameters. The last of these (value 7) represents a seed. The others represent the ngram size (3), the value `m` (filter size), and the number of hash functions `k` (7). `k` and `m` require tuning and will be based on the number of unique ngrams/tokens and the probability the filter results in a true negative - thus confirming a value isn't present in a granule. We recommend [these functions](/reference/engines/table-engines/mergetree-family/mergetree#bloom-filter) to help establish these values. +The index `ngrambf_v1(3, 10000, 3, 7)` here takes four parameters. The last of these (value 7) represents a seed. The others represent the ngram size (3), the value `m` (filter size), and the number of hash functions `k` (7). `k` and `m` require tuning and will be based on the number of unique ngrams/tokens and the probability the filter results in a true negative - thus confirming a value isn't present in a granule. We recommend [these functions](/core/reference/engines/table-engines/mergetree-family/mergetree#bloom-filter) to help establish these values. If tuned correctly, the speedup here can be significant: @@ -1752,7 +1752,7 @@ The above is for illustrative purposes only. We recommend users extract structur Some general guidelines around using bloom filters: -The objective of the bloom is to filter [granules](/guides/cloud-oss/data-modelling/sparse-primary-indexes#clickhouse-index-design), thus avoiding the need to load all values for a column and perform a linear scan. The `EXPLAIN` clause, with the parameter `indexes=1`, can be used to identify the number of granules that have been skipped. Consider the responses below for the original table `otel_logs_v2` and the table `otel_logs_bloom` with an ngram bloom filter. +The objective of the bloom is to filter [granules](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#clickhouse-index-design), thus avoiding the need to load all values for a column and perform a linear scan. The `EXPLAIN` clause, with the parameter `indexes=1`, can be used to identify the number of granules that have been skipped. Consider the responses below for the original table `otel_logs_v2` and the table `otel_logs_bloom` with an ngram bloom filter. ```sql EXPLAIN indexes = 1 @@ -1834,7 +1834,7 @@ WHERE `table` = 'otel_logs_bloom' In the examples above, we can see the secondary bloom filter index is 12MB - almost 5x smaller than the compressed size of the column itself at 56MB. -Bloom filters can require significant tuning. We recommend following the notes [here](/reference/engines/table-engines/mergetree-family/mergetree#bloom-filter) which can be useful in identifying optimal settings. Bloom filters can also be expensive at insert and merge time. You should evaluate the impact on insert performance prior to adding bloom filters to production. +Bloom filters can require significant tuning. We recommend following the notes [here](/core/reference/engines/table-engines/mergetree-family/mergetree#bloom-filter) which can be useful in identifying optimal settings. Bloom filters can also be expensive at insert and merge time. You should evaluate the impact on insert performance prior to adding bloom filters to production.
    @@ -1842,7 +1842,7 @@ Bloom filters can require significant tuning. We recommend following the notes [ The Map type is prevalent in the OTel schemas. This type requires the values and keys to have the same type - sufficient for metadata such as Kubernetes labels. Be aware that when querying a subkey of a Map type, the entire parent column is loaded. If the map has many keys, this can incur a significant query penalty as more data needs to be read from disk than if the key existed as a column. -If you frequently query a specific key, consider moving it into its own dedicated column at the root. This is typically a task that happens in response to common access patterns and after deployment and may be difficult to predict before production. See ["Managing schema changes"](/guides/observability/build-your-own/managing-data#managing-schema-changes) for how to modify your schema post-deployment. +If you frequently query a specific key, consider moving it into its own dedicated column at the root. This is typically a task that happens in response to common access patterns and after deployment and may be difficult to predict before production. See ["Managing schema changes"](/core/guides/use-cases/observability/build-your-own/managing-data#managing-schema-changes) for how to modify your schema post-deployment. ## Measuring table size & compression {#measuring-table-size--compression} @@ -1850,4 +1850,4 @@ One of the principal reasons ClickHouse is used for Observability is compression As well as dramatically reducing storage costs, less data on disk means less I/O and faster queries and inserts. The reduction in IO will out weight the overhead of any compression algorithm with respect to CPU. Improving the compression of the data should therefore be the first focus when working on ensuring ClickHouse queries are fast. -Details on measuring compression can be found [here](/guides/cloud-oss/data-modelling/compression/compression-in-clickhouse). +Details on measuring compression can be found [here](/core/guides/clickhouse/data-modelling/compression/compression-in-clickhouse). diff --git a/guides/observability/cloud-monitoring.mdx b/core/guides/use-cases/observability/cloud-monitoring.mdx similarity index 97% rename from guides/observability/cloud-monitoring.mdx rename to core/guides/use-cases/observability/cloud-monitoring.mdx index 200b045a..45011f01 100644 --- a/guides/observability/cloud-monitoring.mdx +++ b/core/guides/use-cases/observability/cloud-monitoring.mdx @@ -45,7 +45,7 @@ ClickHouse Cloud includes additional monitoring capabilities: - Query Insights: Built-in interface for query performance analysis and troubleshooting - Resource Utilization Dashboard: Tracks memory, CPU allocation, and data transfer patterns. CPU usage and memory usage graphs show the maximum utilization metric in a particular time period. The CPU usage graph shows a system-level CPU utilization metric (NOT a ClickHouse CPU utilization metric). -See the [query insights](/products/cloud/features/sql-console-features/query-insights) and [resource utilization](/guides/oss/deployment-and-scaling/monitoring/monitoring#resource-utilization) documentation for detailed features. +See the [query insights](/products/cloud/features/sql-console-features/query-insights) and [resource utilization](/core/guides/oss/deployment-and-scaling/monitoring/monitoring#resource-utilization) documentation for detailed features. ## Prometheus-compatible metrics endpoint {#prometheus} diff --git a/guides/observability/index.mdx b/core/guides/use-cases/observability/index.mdx similarity index 59% rename from guides/observability/index.mdx rename to core/guides/use-cases/observability/index.mdx index ec8b2b61..e62e5554 100644 --- a/guides/observability/index.mdx +++ b/core/guides/use-cases/observability/index.mdx @@ -21,7 +21,7 @@ The ClickHouse Observability Stack is our **recommended approach** for most user | [Example Datasets](/products/clickstack/example-datasets) | Sample datasets and use cases | | [Architecture](/products/clickstack/architecture) | System architecture and components overview | | [Deployment](/products/clickstack/deployment) | Deployment guides and options | -| [Configuration](/products/clickstack/config) | Detailed configuration options and settings | +| [Configuration](/products/clickstack/managing/config) | Detailed configuration options and settings | | [Ingesting Data](/products/clickstack/ingesting-data) | Guidelines for ingesting data to ClickStack | | [Search](/products/clickstack/features/search) | How to search and query your observability data | | [Production](/products/clickstack/managing/production) | Best practices for production deployment | @@ -32,9 +32,9 @@ For users with **custom requirements** — such as highly specialized ingestion | Page | Description | |-------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Introduction](/guides/observability/build-your-own/introduction) | This guide is designed for if you're looking to build your own observability solution using ClickHouse, focusing on logs and traces. | -| [Schema design](/guides/observability/build-your-own/schema-design) | Learn why users are recommended to create their own schema for logs and traces, along with some best practices for doing so. | -| [Managing data](/guides/observability/build-your-own/managing-data) | Deployments of ClickHouse for observability invariably involve large datasets, which need to be managed. ClickHouse offers features to assist with data management. | -| [Integrating OpenTelemetry](/guides/observability/build-your-own/integrating-opentelemetry) | Collecting and exporting logs and traces using OpenTelemetry with ClickHouse. | -| [Using Visualization Tools](/guides/observability/build-your-own/grafana) | Learn how to use observability visualization tools for ClickHouse, including HyperDX and Grafana. | -| [Demo Application](/guides/observability/build-your-own/demo-application) | Explore the OpenTelemetry demo application forked to work with ClickHouse for logs and traces. | +| [Introduction](/core/guides/use-cases/observability/build-your-own/introduction) | This guide is designed for if you're looking to build your own observability solution using ClickHouse, focusing on logs and traces. | +| [Schema design](/core/guides/use-cases/observability/build-your-own/schema-design) | Learn why users are recommended to create their own schema for logs and traces, along with some best practices for doing so. | +| [Managing data](/core/guides/use-cases/observability/build-your-own/managing-data) | Deployments of ClickHouse for observability invariably involve large datasets, which need to be managed. ClickHouse offers features to assist with data management. | +| [Integrating OpenTelemetry](/core/guides/use-cases/observability/build-your-own/integrating-opentelemetry) | Collecting and exporting logs and traces using OpenTelemetry with ClickHouse. | +| [Using Visualization Tools](/core/guides/use-cases/observability/build-your-own/grafana) | Learn how to use observability visualization tools for ClickHouse, including HyperDX and Grafana. | +| [Demo Application](/core/guides/use-cases/observability/build-your-own/demo-application) | Explore the OpenTelemetry demo application forked to work with ClickHouse for logs and traces. | diff --git a/guides/observability/self-managed-monitoring.mdx b/core/guides/use-cases/observability/self-managed-monitoring.mdx similarity index 100% rename from guides/observability/self-managed-monitoring.mdx rename to core/guides/use-cases/observability/self-managed-monitoring.mdx diff --git a/guides/real-time-analytics/time-series/analysis-functions.mdx b/core/guides/use-cases/real-time-analytics/time-series/analysis-functions.mdx similarity index 96% rename from guides/real-time-analytics/time-series/analysis-functions.mdx rename to core/guides/use-cases/real-time-analytics/time-series/analysis-functions.mdx index a56614ab..0326e555 100644 --- a/guides/real-time-analytics/time-series/analysis-functions.mdx +++ b/core/guides/use-cases/real-time-analytics/time-series/analysis-functions.mdx @@ -22,7 +22,7 @@ These can all be achieved through combinations of aggregations, window functions When analyzing time series data, we often need to understand how values change between time periods. This is essential for both gauge and counter metrics. -The [`lagInFrame`](/reference/functions/window-functions/lagInFrame) window function lets us access the previous period's value to calculate these changes. +The [`lagInFrame`](/core/reference/functions/window-functions/lagInFrame) window function lets us access the previous period's value to calculate these changes. The following query demonstrates this by calculating day-over-day changes in views for "Weird Al" Yankovic's Wikipedia page. The trend column shows whether traffic increased (positive values) or decreased (negative values) compared to the previous day, helping identify unusual spikes or drops in activity. @@ -150,7 +150,7 @@ Row 1: hist: [(10033,23224.55065359477,60.625),(23224.55065359477,37855.38888888889,15.625),(37855.38888888889,52913.5,3.5),(52913.5,69438,1.25),(69438,83102.16666666666,1.25),(83102.16666666666,94267.66666666666,2.5),(94267.66666666666,116778,1.25),(116778,186175.75,1.125),(186175.75,946963.25,1.75),(946963.25,1655250,1.125)] ``` -We can then use [`arrayJoin()`](/reference/functions/regular-functions/array-join) to massage the data and `bar()` to visualize it: +We can then use [`arrayJoin()`](/core/reference/functions/regular-functions/array-join) to massage the data and `bar()` to visualize it: ```sql WITH histogram(10)(hits) AS hist diff --git a/guides/real-time-analytics/time-series/basic-operations.mdx b/core/guides/use-cases/real-time-analytics/time-series/basic-operations.mdx similarity index 85% rename from guides/real-time-analytics/time-series/basic-operations.mdx rename to core/guides/use-cases/real-time-analytics/time-series/basic-operations.mdx index c269934a..aaf813a7 100644 --- a/guides/real-time-analytics/time-series/basic-operations.mdx +++ b/core/guides/use-cases/real-time-analytics/time-series/basic-operations.mdx @@ -62,7 +62,7 @@ LIMIT 5; └────────────┴──────────┘ ``` -We've used the [`toDate()`](/reference/functions/regular-functions/type-conversion-functions#toDate) function here, which converts the specified time to a date type. Alternatively, we can batch by an hour and filter on the specific date: +We've used the [`toDate()`](/core/reference/functions/regular-functions/type-conversion-functions#toDate) function here, which converts the specified time to a date type. Alternatively, we can batch by an hour and filter on the specific date: ```sql SELECT @@ -85,15 +85,15 @@ LIMIT 5; └─────────────────────┴────────┘ ``` -The [`toStartOfHour()`](/reference/functions/regular-functions/date-time-functions#toStartOfHour) function used here converts the given time to the start of the hour. +The [`toStartOfHour()`](/core/reference/functions/regular-functions/date-time-functions#toStartOfHour) function used here converts the given time to the start of the hour. You can also group by year, quarter, month, or day. ## Custom grouping intervals {#time-series-custom-grouping-intervals} -We can even group by arbitrary intervals, e.g., 5 minutes using the [`toStartOfInterval()`](/reference/functions/regular-functions/date-time-functions#toStartOfInterval) function. +We can even group by arbitrary intervals, e.g., 5 minutes using the [`toStartOfInterval()`](/core/reference/functions/regular-functions/date-time-functions#toStartOfInterval) function. Let's say we want to group by 4-hour intervals. -We can specify the grouping interval using the [`INTERVAL`](/reference/data-types/special-data-types/interval) clause: +We can specify the grouping interval using the [`INTERVAL`](/core/reference/data-types/special-data-types/interval) clause: ```sql SELECT @@ -106,7 +106,7 @@ ORDER BY interval ASC LIMIT 6; ``` -Or we can use the [`toIntervalHour()`](/reference/functions/regular-functions/type-conversion-functions#toIntervalHour) function +Or we can use the [`toIntervalHour()`](/core/reference/functions/regular-functions/type-conversion-functions#toIntervalHour) function ```sql SELECT @@ -171,7 +171,7 @@ ORDER BY hour ASC; └─────────────────────┴───────────┘ ``` -ClickHouse provides the [`WITH FILL`](/guides/real-time-analytics/time-series/time-series-filling-gaps#with-fill) modifier to address this. This will fill out all the empty hours with zeros, so we can better understand the distribution over time: +ClickHouse provides the [`WITH FILL`](/core/guides/use-cases/real-time-analytics/time-series/time-series-filling-gaps#with-fill) modifier to address this. This will fill out all the empty hours with zeros, so we can better understand the distribution over time: ```sql SELECT @@ -217,7 +217,7 @@ ORDER BY hour ASC WITH FILL STEP toIntervalHour(1); Sometimes, we don't want to deal with the start of intervals (like the start of a day or an hour) but window intervals. Let's say we want to understand the total hits for a window, not based on days but on a 24-hour period offset from 6 pm. -We can use the [`date_diff()`](/reference/functions/regular-functions/date-time-functions#timeDiff) function to calculate the difference between a reference time and each record's time. +We can use the [`date_diff()`](/core/reference/functions/regular-functions/date-time-functions#timeDiff) function to calculate the difference between a reference time and each record's time. In this case, the `day` column will represent the difference in days (e.g., 1 day ago, 2 days ago, etc.): ```sql diff --git a/guides/real-time-analytics/time-series/date-time-data-types.mdx b/core/guides/use-cases/real-time-analytics/time-series/date-time-data-types.mdx similarity index 80% rename from guides/real-time-analytics/time-series/date-time-data-types.mdx rename to core/guides/use-cases/real-time-analytics/time-series/date-time-data-types.mdx index 01ca59f4..d66fd43d 100644 --- a/guides/real-time-analytics/time-series/date-time-data-types.mdx +++ b/core/guides/use-cases/real-time-analytics/time-series/date-time-data-types.mdx @@ -14,13 +14,13 @@ From compact date representations to high-precision timestamps with nanosecond a Whether you're working with historical financial data, IoT sensor readings, or future-dated events, ClickHouse's date and time types provide the flexibility needed to handle various temporal data scenarios. The range of supported types allows you to optimize both storage space and query performance while maintaining the precision your use case demands. -* The [`Date`](/reference/data-types/date) type should be sufficient in most cases. This type requires 2 bytes to store a date and limits the range to `[1970-01-01, 2149-06-06]`. +* The [`Date`](/core/reference/data-types/date) type should be sufficient in most cases. This type requires 2 bytes to store a date and limits the range to `[1970-01-01, 2149-06-06]`. -* [`Date32`](/reference/data-types/date32) covers a wider range of dates. It requires 4 bytes to store a date and limits the range to `[1900-01-01, 2299-12-31]` +* [`Date32`](/core/reference/data-types/date32) covers a wider range of dates. It requires 4 bytes to store a date and limits the range to `[1900-01-01, 2299-12-31]` -* [`DateTime`](/reference/data-types/datetime) stores date time values with second precision and a range of `[1970-01-01 00:00:00, 2106-02-07 06:28:15]` It requires 4 bytes per value. +* [`DateTime`](/core/reference/data-types/datetime) stores date time values with second precision and a range of `[1970-01-01 00:00:00, 2106-02-07 06:28:15]` It requires 4 bytes per value. -* For cases where more precision is required, [`DateTime64`](/reference/data-types/datetime64) can be used. This allows storing time with up to nanoseconds precision, with a range of `[1900-01-01 00:00:00, 2299-12-31 23:59:59.99999999]`. It requires 8 bytes per value. +* For cases where more precision is required, [`DateTime64`](/core/reference/data-types/datetime64) can be used. This allows storing time with up to nanoseconds precision, with a range of `[1900-01-01 00:00:00, 2299-12-31 23:59:59.99999999]`. It requires 8 bytes per value. Let's create a table that stores various date types: @@ -37,7 +37,7 @@ ENGINE = MergeTree ORDER BY tuple(); ``` -We can use the [`now()`](/reference/functions/regular-functions/date-time-functions#now) function to return the current time and [`now64()`](/reference/functions/regular-functions/date-time-functions#now64) to get it in a specified precision via the first argument. +We can use the [`now()`](/core/reference/functions/regular-functions/date-time-functions#now) function to return the current time and [`now64()`](/core/reference/functions/regular-functions/date-time-functions#now64) to get it in a specified precision via the first argument. ```sql INSERT INTO dates @@ -67,7 +67,7 @@ very_precise_datetime: 2025-03-12 11:39:07.196724000 ## Time and Time64 types {#time-series-time-types} -For scenarios where you need to store time-of-day values without date components, ClickHouse provides the [`Time`](/reference/data-types/time) and [`Time64`](/reference/data-types/time64) types, which was introduced in version 25.6. These are useful for representing recurring schedules, daily patterns, or situations where separating date and time components makes sense. +For scenarios where you need to store time-of-day values without date components, ClickHouse provides the [`Time`](/core/reference/data-types/time) and [`Time64`](/core/reference/data-types/time64) types, which was introduced in version 25.6. These are useful for representing recurring schedules, daily patterns, or situations where separating date and time components makes sense. Using `Time` and `Time64` requires enabling the setting: `SET enable_time_time64_type = 1;` @@ -190,7 +190,7 @@ As in the first row, `dt_1` and `dt64_1` are converted to `Europe/Berlin`, while ClickHouse also comes with a set of functions that let us convert between the different data types. -For example, we can use [`toDate`](/reference/functions/regular-functions/type-conversion-functions#toDate) to convert a `DateTime` value to the `Date` type: +For example, we can use [`toDate`](/core/reference/functions/regular-functions/type-conversion-functions#toDate) to convert a `DateTime` value to the `Date` type: ```sql SELECT @@ -210,7 +210,7 @@ date_only: 2025-03-12 toTypeName(date_only): Date ``` -We can use [`toDateTime64`](/reference/functions/regular-functions/type-conversion-functions#toDateTime64) to convert `DateTime` to `DateTime64`: +We can use [`toDateTime64`](/core/reference/functions/regular-functions/type-conversion-functions#toDateTime64) to convert `DateTime` to `DateTime64`: ```sql SELECT @@ -230,7 +230,7 @@ date_only: 2025-03-12 12:35:01.000 toTypeName(date_only): DateTime64(3) ``` -And we can use [`toDateTime`](/reference/functions/regular-functions/type-conversion-functions#toDateTime) to go from `Date` or `DateTime64` back to `DateTime`: +And we can use [`toDateTime`](/core/reference/functions/regular-functions/type-conversion-functions#toDateTime) to go from `Date` or `DateTime64` back to `DateTime`: ```sql SELECT diff --git a/guides/real-time-analytics/time-series/index.mdx b/core/guides/use-cases/real-time-analytics/time-series/index.mdx similarity index 68% rename from guides/real-time-analytics/time-series/index.mdx rename to core/guides/use-cases/real-time-analytics/time-series/index.mdx index 1c12bd9f..a07b357d 100644 --- a/guides/real-time-analytics/time-series/index.mdx +++ b/core/guides/use-cases/real-time-analytics/time-series/index.mdx @@ -14,10 +14,10 @@ ClickHouse excels at handling time-series data, offering powerful features for b This guide walks you through everything you need to know about working with time-series data in ClickHouse, from basic concepts to advanced optimization techniques. You'll learn how to: -* [Choose the right date and time data types for your use case](/guides/real-time-analytics/time-series/date-time-data-types) -* [Perform common time-series operations and aggregations](/guides/real-time-analytics/time-series/basic-operations) -* [Apply specialized analysis functions for time-based data](/guides/real-time-analytics/time-series/analysis-functions) -* [Optimize storage efficiency for temporal data](/guides/real-time-analytics/time-series/storage-efficiency) -* [Tune query performance for time-series workloads](/guides/real-time-analytics/time-series/query-performance) +* [Choose the right date and time data types for your use case](/core/guides/use-cases/real-time-analytics/time-series/date-time-data-types) +* [Perform common time-series operations and aggregations](/core/guides/use-cases/real-time-analytics/time-series/basic-operations) +* [Apply specialized analysis functions for time-based data](/core/guides/use-cases/real-time-analytics/time-series/analysis-functions) +* [Optimize storage efficiency for temporal data](/core/guides/use-cases/real-time-analytics/time-series/storage-efficiency) +* [Tune query performance for time-series workloads](/core/guides/use-cases/real-time-analytics/time-series/query-performance) Whether you're new to time-series analysis or looking to optimize an existing implementation, this guide will help you make the most of ClickHouse's time-series capabilities. diff --git a/guides/real-time-analytics/time-series/materialized-view-rollup.mdx b/core/guides/use-cases/real-time-analytics/time-series/materialized-view-rollup.mdx similarity index 99% rename from guides/real-time-analytics/time-series/materialized-view-rollup.mdx rename to core/guides/use-cases/real-time-analytics/time-series/materialized-view-rollup.mdx index 42a1323c..87ebf58f 100644 --- a/guides/real-time-analytics/time-series/materialized-view-rollup.mdx +++ b/core/guides/use-cases/real-time-analytics/time-series/materialized-view-rollup.mdx @@ -6,7 +6,7 @@ keywords: ['materialized view', 'rollup', 'aggregate', 'timeseries', 'tutorial'] doc_type: 'guide' --- -> This tutorial shows you how to maintain pre-aggregated roll-ups from a high-volume events table using [**materialized views**](/concepts/features/materialized-views). +> This tutorial shows you how to maintain pre-aggregated roll-ups from a high-volume events table using [**materialized views**](/core/concepts/features/materialized-views). You’ll create three objects: a raw table, a rollup table, and the materialized view that writes into the rollup automatically. ## When to use this pattern {#when-to-use} diff --git a/guides/real-time-analytics/time-series/query-performance.mdx b/core/guides/use-cases/real-time-analytics/time-series/query-performance.mdx similarity index 93% rename from guides/real-time-analytics/time-series/query-performance.mdx rename to core/guides/use-cases/real-time-analytics/time-series/query-performance.mdx index f3aa3f44..ebbaf1be 100644 --- a/guides/real-time-analytics/time-series/query-performance.mdx +++ b/core/guides/use-cases/real-time-analytics/time-series/query-performance.mdx @@ -167,9 +167,9 @@ GROUP BY path, month; ### Backfilling destination table {#time-series-backfill-destination-table} -This destination table will only be populated when new records are inserted into the `wikistat` table, so we need to do some [backfilling](/guides/cloud-oss/data-modelling/backfilling). +This destination table will only be populated when new records are inserted into the `wikistat` table, so we need to do some [backfilling](/core/guides/clickhouse/data-modelling/backfilling). -The easiest way to do this is using an [`INSERT INTO SELECT`](/reference/statements/insert-into#inserting-the-results-of-select) statement to insert directly into the materialized view's target table [using](https://github.com/ClickHouse/examples/tree/main/ClickHouse_vs_ElasticSearch/DataAnalytics#variant-1---directly-inserting-into-the-target-table-by-using-the-materialized-views-transformation-query) the view's `SELECT` query (transformation): +The easiest way to do this is using an [`INSERT INTO SELECT`](/core/reference/statements/insert-into#inserting-the-results-of-select) statement to insert directly into the materialized view's target table [using](https://github.com/ClickHouse/examples/tree/main/ClickHouse_vs_ElasticSearch/DataAnalytics#variant-1---directly-inserting-into-the-target-table-by-using-the-materialized-views-transformation-query) the view's `SELECT` query (transformation): ```sql INSERT INTO wikistat_top diff --git a/guides/real-time-analytics/time-series/storage-efficiency.mdx b/core/guides/use-cases/real-time-analytics/time-series/storage-efficiency.mdx similarity index 100% rename from guides/real-time-analytics/time-series/storage-efficiency.mdx rename to core/guides/use-cases/real-time-analytics/time-series/storage-efficiency.mdx diff --git a/guides/real-time-analytics/time-series/time-series-filling-gaps.mdx b/core/guides/use-cases/real-time-analytics/time-series/time-series-filling-gaps.mdx similarity index 99% rename from guides/real-time-analytics/time-series/time-series-filling-gaps.mdx rename to core/guides/use-cases/real-time-analytics/time-series/time-series-filling-gaps.mdx index 66d8a0a2..e8743fa6 100644 --- a/guides/real-time-analytics/time-series/time-series-filling-gaps.mdx +++ b/core/guides/use-cases/real-time-analytics/time-series/time-series-filling-gaps.mdx @@ -1,5 +1,5 @@ --- -slug: /guides/developer/time-series-filling-gaps +slug: /core/guides/developer/time-series-filling-gaps sidebarTitle: 'Time series - gap fill' description: 'Filling gaps in time-series data.' keywords: ['time series', 'gap fill'] diff --git a/core/reference/README.md b/core/reference/README.md new file mode 100644 index 00000000..c8e6636b --- /dev/null +++ b/core/reference/README.md @@ -0,0 +1,22 @@ +# Reference + +**What goes here:** Lookup material. Exhaustive, factual documentation of +ClickHouse's surface area — SQL statements, functions, operators, data types, +table engines, formats, settings, system tables. + +**Audience:** Users who already know what they want to do and need the precise +syntax, arguments, defaults, or behavior. Pages here are for skimming and +cross-referencing, not reading start-to-finish. + +**Subdirectories:** +- `statements/` — SQL statements (SELECT, ALTER, CREATE, etc.). +- `functions/` — regular, aggregate, table, and window functions. +- `operators/` — SQL operators. +- `data-types/` — type reference. +- `engines/` — table and database engines. +- `formats/` — input/output format reference. +- `settings/` — server, session, and MergeTree settings. +- `system-tables/` — system table schemas. + +If a page explains *why* you'd use something or walks through *how* to use it, +it belongs in `/concepts` or `/guides` respectively, not here. \ No newline at end of file diff --git a/reference/data-types/aggregatefunction.mdx b/core/reference/data-types/aggregatefunction.mdx similarity index 78% rename from reference/data-types/aggregatefunction.mdx rename to core/reference/data-types/aggregatefunction.mdx index 3ae93f94..64cdec67 100644 --- a/reference/data-types/aggregatefunction.mdx +++ b/core/reference/data-types/aggregatefunction.mdx @@ -10,17 +10,17 @@ doc_type: 'reference' ## Description {#description} -All [Aggregate functions](/reference/functions/aggregate-functions) in ClickHouse have +All [Aggregate functions](/core/reference/functions/aggregate-functions) in ClickHouse have an implementation-specific intermediate state that can be serialized to an `AggregateFunction` data type and stored in a table. This is usually done by -means of a [materialized view](/reference/statements/create/view). +means of a [materialized view](/core/reference/statements/create/view). -There are two aggregate function [combinators](/reference/functions/aggregate-functions/combinators) +There are two aggregate function [combinators](/core/reference/functions/aggregate-functions/combinators) commonly used with the `AggregateFunction` type: -- The [`-State`](/reference/functions/aggregate-functions/combinators#-state) aggregate function combinator, which when appended to an aggregate +- The [`-State`](/core/reference/functions/aggregate-functions/combinators#-state) aggregate function combinator, which when appended to an aggregate function name, produces `AggregateFunction` intermediate states. -- The [`-Merge`](/reference/functions/aggregate-functions/combinators#-merge) aggregate +- The [`-Merge`](/core/reference/functions/aggregate-functions/combinators#-merge) aggregate function combinator, which is used to get the final result of an aggregation from the intermediate states. @@ -53,7 +53,7 @@ CREATE TABLE t To insert data into a table with columns of type `AggregateFunction`, you can use `INSERT SELECT` with aggregate functions and the -[`-State`](/reference/functions/aggregate-functions/combinators#-state) aggregate +[`-State`](/core/reference/functions/aggregate-functions/combinators#-state) aggregate function combinator. For example, to insert into columns of type `AggregateFunction(uniq, UInt64)` and @@ -86,7 +86,7 @@ It supports the following formats: When selecting data from `AggregatingMergeTree` table, use the `GROUP BY` clause and the same aggregate functions as for when you inserted the data, but use the -[`-Merge`](/reference/functions/aggregate-functions/combinators#-merge) combinator. +[`-Merge`](/core/reference/functions/aggregate-functions/combinators#-merge) combinator. An aggregate function with the `-Merge` combinator appended to it takes a set of states, combines them, and returns the result of the complete data aggregation. @@ -101,11 +101,11 @@ SELECT uniqMerge(state) FROM (SELECT uniqState(UserID) AS state FROM table GROUP ## Usage Example {#usage-example} -See [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) engine description. +See [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) engine description. ## Related Content {#related-content} - Blog: [Using Aggregate Combinators in ClickHouse](https://clickhouse.com/blog/aggregate-functions-combinators-in-clickhouse-for-arrays-maps-and-states) -- [MergeState](/reference/functions/aggregate-functions/combinators#-mergestate) +- [MergeState](/core/reference/functions/aggregate-functions/combinators#-mergestate) combinator. -- [State](/reference/functions/aggregate-functions/combinators#-state) combinator. +- [State](/core/reference/functions/aggregate-functions/combinators#-state) combinator. diff --git a/reference/data-types/array.mdx b/core/reference/data-types/array.mdx similarity index 89% rename from reference/data-types/array.mdx rename to core/reference/data-types/array.mdx index 2b850f73..9f758241 100644 --- a/reference/data-types/array.mdx +++ b/core/reference/data-types/array.mdx @@ -46,7 +46,7 @@ SELECT [1, 2] AS x, toTypeName(x) ## Working with Data Types {#working-with-data-types} -When creating an array on the fly, ClickHouse automatically defines the argument type as the narrowest data type that can store all the listed arguments. If there are any [Nullable](/reference/data-types/nullable) or literal [NULL](/reference/settings/formats#input_format_null_as_default) values, the type of an array element also becomes [Nullable](/reference/data-types/nullable). +When creating an array on the fly, ClickHouse automatically defines the argument type as the narrowest data type that can store all the listed arguments. If there are any [Nullable](/core/reference/data-types/nullable) or literal [NULL](/core/reference/settings/formats#input_format_null_as_default) values, the type of an array element also becomes [Nullable](/core/reference/data-types/nullable). If ClickHouse couldn't determine the data type, it generates an exception. For instance, this happens when trying to create an array with strings and numbers simultaneously (`SELECT array(1, 'a')`). @@ -95,7 +95,7 @@ SELECT arr.size0, arr.size1, arr.size2 FROM t_arr; ## Reading nested subcolumns from Array {#reading-nested-subcolumns-from-array} -If nested type `T` inside `Array` has subcolumns (for example, if it's a [named tuple](/reference/data-types/tuple)), you can read its subcolumns from an `Array(T)` type with the same subcolumn names. The type of a subcolumn will be `Array` of the type of original subcolumn. +If nested type `T` inside `Array` has subcolumns (for example, if it's a [named tuple](/core/reference/data-types/tuple)), you can read its subcolumns from an `Array(T)` type with the same subcolumn names. The type of a subcolumn will be `Array` of the type of original subcolumn. **Example** diff --git a/reference/data-types/boolean.mdx b/core/reference/data-types/boolean.mdx similarity index 100% rename from reference/data-types/boolean.mdx rename to core/reference/data-types/boolean.mdx diff --git a/reference/data-types/data-types-binary-encoding.mdx b/core/reference/data-types/data-types-binary-encoding.mdx similarity index 99% rename from reference/data-types/data-types-binary-encoding.mdx rename to core/reference/data-types/data-types-binary-encoding.mdx index 41de2cda..8f3a2d4a 100644 --- a/reference/data-types/data-types-binary-encoding.mdx +++ b/core/reference/data-types/data-types-binary-encoding.mdx @@ -6,7 +6,7 @@ title: 'Data types binary encoding specification' doc_type: 'reference' --- -This specification describes the binary format that can be used for binary encoding and decoding of ClickHouse data types. This format is used in `Dynamic` column [binary serialization](/reference/data-types/dynamic#binary-output-format) and can be used in input/output formats [RowBinaryWithNamesAndTypes](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) and [Native](/reference/formats/Native) under corresponding settings. +This specification describes the binary format that can be used for binary encoding and decoding of ClickHouse data types. This format is used in `Dynamic` column [binary serialization](/core/reference/data-types/dynamic#binary-output-format) and can be used in input/output formats [RowBinaryWithNamesAndTypes](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) and [Native](/core/reference/formats/Native) under corresponding settings. The table below describes how each data type is represented in binary format. Each data type encoding consist of 1 byte that indicates the type and some optional additional information. `var_uint` in the binary encoding means that the size is encoded using Variable-Length Quantity compression. diff --git a/reference/data-types/date.mdx b/core/reference/data-types/date.mdx similarity index 81% rename from reference/data-types/date.mdx rename to core/reference/data-types/date.mdx index 813c3dc3..f83304c8 100644 --- a/reference/data-types/date.mdx +++ b/core/reference/data-types/date.mdx @@ -45,6 +45,6 @@ SELECT * FROM dt; **See Also** -- [Functions for working with dates and times](/reference/functions/regular-functions/date-time-functions) -- [Operators for working with dates and times](/reference/operators#operators-for-working-with-dates-and-times) -- [`DateTime` data type](/reference/data-types/datetime) +- [Functions for working with dates and times](/core/reference/functions/regular-functions/date-time-functions) +- [Operators for working with dates and times](/core/reference/operators#operators-for-working-with-dates-and-times) +- [`DateTime` data type](/core/reference/data-types/datetime) diff --git a/reference/data-types/date32.mdx b/core/reference/data-types/date32.mdx similarity index 60% rename from reference/data-types/date32.mdx rename to core/reference/data-types/date32.mdx index ef17ce52..e15dcf1a 100644 --- a/reference/data-types/date32.mdx +++ b/core/reference/data-types/date32.mdx @@ -7,7 +7,7 @@ title: 'Date32' doc_type: 'reference' --- -A date. Supports the date range same with [DateTime64](/reference/data-types/datetime64). Stored as a signed 32-bit integer in native byte order with the value representing the days since `1900-01-01`. **Important!** 0 represents `1970-01-01`, and negative values represent the days before `1970-01-01`. +A date. Supports the date range same with [DateTime64](/core/reference/data-types/datetime64). Stored as a signed 32-bit integer in native byte order with the value representing the days since `1900-01-01`. **Important!** 0 represents `1970-01-01`, and negative values represent the days before `1970-01-01`. **Examples** @@ -42,6 +42,6 @@ SELECT * FROM dt32; **See Also** -- [toDate32](/reference/functions/regular-functions/type-conversion-functions#toDate32) -- [toDate32OrZero](/reference/functions/regular-functions/type-conversion-functions#toDate32OrZero) -- [toDate32OrNull](/reference/functions/regular-functions/type-conversion-functions#toDate32OrNull) +- [toDate32](/core/reference/functions/regular-functions/type-conversion-functions#toDate32) +- [toDate32OrZero](/core/reference/functions/regular-functions/type-conversion-functions#toDate32OrZero) +- [toDate32OrNull](/core/reference/functions/regular-functions/type-conversion-functions#toDate32OrNull) diff --git a/reference/data-types/datetime.mdx b/core/reference/data-types/datetime.mdx similarity index 82% rename from reference/data-types/datetime.mdx rename to core/reference/data-types/datetime.mdx index 81e14156..6791ceb7 100644 --- a/reference/data-types/datetime.mdx +++ b/core/reference/data-types/datetime.mdx @@ -33,13 +33,13 @@ Timezone agnostic Unix timestamp is stored in tables, and the timezone is used t A list of supported time zones can be found in the [IANA Time Zone Database](https://www.iana.org/time-zones) and also can be queried by `SELECT * FROM system.time_zones`. [The list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) is also available at Wikipedia. -You can explicitly set a time zone for `DateTime`-type columns when creating a table. Example: `DateTime('UTC')`. If the time zone isn't set, ClickHouse uses the value of the [timezone](/reference/settings/server-settings/settings#timezone) parameter in the server settings or the operating system settings at the moment of the ClickHouse server start. +You can explicitly set a time zone for `DateTime`-type columns when creating a table. Example: `DateTime('UTC')`. If the time zone isn't set, ClickHouse uses the value of the [timezone](/core/reference/settings/server-settings/settings#timezone) parameter in the server settings or the operating system settings at the moment of the ClickHouse server start. -The [clickhouse-client](/integrations/connectors/data-integrations/drivers-and-interfaces/client) applies the server time zone by default if a time zone isn't explicitly set when initializing the data type. To use the client time zone, run `clickhouse-client` with the `--use_client_time_zone` parameter. +The [clickhouse-client](/core/concepts/features/interfaces/client) applies the server time zone by default if a time zone isn't explicitly set when initializing the data type. To use the client time zone, run `clickhouse-client` with the `--use_client_time_zone` parameter. -ClickHouse outputs values depending on the value of the [date_time_output_format](/reference/settings/formats#date_time_output_format) setting. `YYYY-MM-DD hh:mm:ss` text format by default. Additionally, you can change the output with the [formatDateTime](/reference/functions/regular-functions/date-time-functions#formatDateTime) function. +ClickHouse outputs values depending on the value of the [date_time_output_format](/core/reference/settings/formats#date_time_output_format) setting. `YYYY-MM-DD hh:mm:ss` text format by default. Additionally, you can change the output with the [formatDateTime](/core/reference/functions/regular-functions/date-time-functions#formatDateTime) function. -When inserting data into ClickHouse, you can use different formats of date and time strings, depending on the value of the [date_time_input_format](/reference/settings/formats#date_time_input_format) setting. +When inserting data into ClickHouse, you can use different formats of date and time strings, depending on the value of the [date_time_input_format](/core/reference/settings/formats#date_time_input_format) setting. ## Examples {#examples} @@ -145,7 +145,7 @@ Time shifts for multiple days. Some pacific islands changed their timezone offse ClickHouse's DateTime type with time zones can exhibit unexpected behavior during Daylight Saving Time (DST) transitions, particularly when: -- [`date_time_output_format`](/reference/settings/formats#date_time_output_format) is set to `simple`. +- [`date_time_output_format`](/core/reference/settings/formats#date_time_output_format) is set to `simple`. - Clocks move backward ("Fall Back"), causing a one-hour overlap. - Clocks move forward ("Spring Forward"), causing a one-hour gap. @@ -184,12 +184,12 @@ In this case, ClickHouse shifts the non-existent time `2023-03-26 01:30:00` back ## See Also {#see-also} -- [Type conversion functions](/reference/functions/regular-functions/type-conversion-functions) -- [Functions for working with dates and times](/reference/functions/regular-functions/date-time-functions) -- [Functions for working with arrays](/reference/functions/regular-functions/array-functions) -- [The `date_time_input_format` setting](/reference/settings/formats#date_time_input_format) -- [The `date_time_output_format` setting](/reference/settings/formats#date_time_output_format) -- [The `timezone` server configuration parameter](/reference/settings/server-settings/settings#timezone) -- [The `session_timezone` setting](/reference/settings/session-settings#session_timezone) -- [Operators for working with dates and times](/reference/operators#operators-for-working-with-dates-and-times) -- [The `Date` data type](/reference/data-types/date) +- [Type conversion functions](/core/reference/functions/regular-functions/type-conversion-functions) +- [Functions for working with dates and times](/core/reference/functions/regular-functions/date-time-functions) +- [Functions for working with arrays](/core/reference/functions/regular-functions/array-functions) +- [The `date_time_input_format` setting](/core/reference/settings/formats#date_time_input_format) +- [The `date_time_output_format` setting](/core/reference/settings/formats#date_time_output_format) +- [The `timezone` server configuration parameter](/core/reference/settings/server-settings/settings#timezone) +- [The `session_timezone` setting](/core/reference/settings/session-settings#session_timezone) +- [Operators for working with dates and times](/core/reference/operators#operators-for-working-with-dates-and-times) +- [The `Date` data type](/core/reference/data-types/date) diff --git a/reference/data-types/datetime64.mdx b/core/reference/data-types/datetime64.mdx similarity index 85% rename from reference/data-types/datetime64.mdx rename to core/reference/data-types/datetime64.mdx index c6d6809c..502625c3 100644 --- a/reference/data-types/datetime64.mdx +++ b/core/reference/data-types/datetime64.mdx @@ -18,7 +18,7 @@ Typically, are used - 3 (milliseconds), 6 (microseconds), 9 (nanoseconds). DateTime64(precision, [timezone]) ``` -Internally, stores data as a number of 'ticks' since epoch start (1970-01-01 00:00:00 UTC) as Int64. The tick resolution is determined by the precision parameter. Additionally, the `DateTime64` type can store time zone that is the same for the entire column, that affects how the values of the `DateTime64` type values are displayed in text format and how the values specified as strings are parsed ('2020-01-01 05:00:01.000'). The time zone is not stored in the rows of the table (or in resultset), but is stored in the column metadata. See details in [DateTime](/reference/data-types/datetime). +Internally, stores data as a number of 'ticks' since epoch start (1970-01-01 00:00:00 UTC) as Int64. The tick resolution is determined by the precision parameter. Additionally, the `DateTime64` type can store time zone that is the same for the entire column, that affects how the values of the `DateTime64` type values are displayed in text format and how the values specified as strings are parsed ('2020-01-01 05:00:01.000'). The time zone is not stored in the rows of the table (or in resultset), but is stored in the column metadata. See details in [DateTime](/core/reference/data-types/datetime). Supported range of values: \[1900-01-01 00:00:00, 2299-12-31 23:59:59.999999999\] @@ -124,12 +124,12 @@ FROM dt64; **See Also** -- [Type conversion functions](/reference/functions/regular-functions/type-conversion-functions) -- [Functions for working with dates and times](/reference/functions/regular-functions/date-time-functions) -- [The `date_time_input_format` setting](/reference/settings/formats#date_time_input_format) -- [The `date_time_output_format` setting](/reference/settings/formats#date_time_output_format) -- [The `timezone` server configuration parameter](/reference/settings/server-settings/settings#timezone) -- [The `session_timezone` setting](/reference/settings/session-settings#session_timezone) -- [Operators for working with dates and times](/reference/operators#operators-for-working-with-dates-and-times) -- [`Date` data type](/reference/data-types/date) -- [`DateTime` data type](/reference/data-types/datetime) +- [Type conversion functions](/core/reference/functions/regular-functions/type-conversion-functions) +- [Functions for working with dates and times](/core/reference/functions/regular-functions/date-time-functions) +- [The `date_time_input_format` setting](/core/reference/settings/formats#date_time_input_format) +- [The `date_time_output_format` setting](/core/reference/settings/formats#date_time_output_format) +- [The `timezone` server configuration parameter](/core/reference/settings/server-settings/settings#timezone) +- [The `session_timezone` setting](/core/reference/settings/session-settings#session_timezone) +- [Operators for working with dates and times](/core/reference/operators#operators-for-working-with-dates-and-times) +- [`Date` data type](/core/reference/data-types/date) +- [`DateTime` data type](/core/reference/data-types/datetime) diff --git a/reference/data-types/decimal.mdx b/core/reference/data-types/decimal.mdx similarity index 96% rename from reference/data-types/decimal.mdx rename to core/reference/data-types/decimal.mdx index 5cf5002f..98ff8d69 100644 --- a/reference/data-types/decimal.mdx +++ b/core/reference/data-types/decimal.mdx @@ -118,5 +118,5 @@ DB::Exception: Can't compare. ``` **See also** -- [isDecimalOverflow](/reference/functions/regular-functions/other-functions#isDecimalOverflow) -- [countDigits](/reference/functions/regular-functions/other-functions#countDigits) +- [isDecimalOverflow](/core/reference/functions/regular-functions/other-functions#isDecimalOverflow) +- [countDigits](/core/reference/functions/regular-functions/other-functions#countDigits) diff --git a/reference/data-types/domains/index.mdx b/core/reference/data-types/domains/index.mdx similarity index 100% rename from reference/data-types/domains/index.mdx rename to core/reference/data-types/domains/index.mdx diff --git a/reference/data-types/dynamic.mdx b/core/reference/data-types/dynamic.mdx similarity index 100% rename from reference/data-types/dynamic.mdx rename to core/reference/data-types/dynamic.mdx diff --git a/reference/data-types/enum.mdx b/core/reference/data-types/enum.mdx similarity index 97% rename from reference/data-types/enum.mdx rename to core/reference/data-types/enum.mdx index fdf1c420..8b7383ff 100644 --- a/reference/data-types/enum.mdx +++ b/core/reference/data-types/enum.mdx @@ -126,9 +126,9 @@ SELECT toTypeName(CAST('a', 'Enum(\'a\' = 1, \'b\' = 2)')) Each of the values is assigned a number in the range `-128 ... 127` for `Enum8` or in the range `-32768 ... 32767` for `Enum16`. All the strings and numbers must be different. An empty string is allowed. If this type is specified (in a table definition), numbers can be in an arbitrary order. However, the order does not matter. -Neither the string nor the numeric value in an `Enum` can be [NULL](/reference/syntax). +Neither the string nor the numeric value in an `Enum` can be [NULL](/core/reference/syntax). -An `Enum` can be contained in [Nullable](/reference/data-types/nullable) type. So if you create a table using the query +An `Enum` can be contained in [Nullable](/core/reference/data-types/nullable) type. So if you create a table using the query ```sql CREATE TABLE t_enum_nullable diff --git a/reference/data-types/fixedstring.mdx b/core/reference/data-types/fixedstring.mdx similarity index 88% rename from reference/data-types/fixedstring.mdx rename to core/reference/data-types/fixedstring.mdx index 3bd1fd08..8e028d32 100644 --- a/reference/data-types/fixedstring.mdx +++ b/core/reference/data-types/fixedstring.mdx @@ -25,7 +25,7 @@ Examples of the values that can be efficiently stored in `FixedString`-typed col - Currency codes (USD, RUB ... ). - Binary representation of hashes (`FixedString(16)` for MD5, `FixedString(32)` for SHA256). -To store UUID values, use the [UUID](/reference/data-types/uuid) data type. +To store UUID values, use the [UUID](/core/reference/data-types/uuid) data type. When inserting the data, ClickHouse: @@ -56,7 +56,7 @@ FROM FixedStringTable; └──────┴──────────────────┴──────────────┴─────────────┘ ``` -Note that the length of the `FixedString(N)` value is constant. The [length](/reference/functions/regular-functions/array-functions#length) function returns `N` even if the `FixedString(N)` value is filled only with null bytes, but the [empty](/reference/functions/regular-functions/array-functions#empty) function returns `1` in this case. +Note that the length of the `FixedString(N)` value is constant. The [length](/core/reference/functions/regular-functions/array-functions#length) function returns `N` even if the `FixedString(N)` value is filled only with null bytes, but the [empty](/core/reference/functions/regular-functions/array-functions#empty) function returns `1` in this case. Selecting data with `WHERE` clause return various result depending on how the condition is specified: diff --git a/reference/data-types/float.mdx b/core/reference/data-types/float.mdx similarity index 91% rename from reference/data-types/float.mdx rename to core/reference/data-types/float.mdx index 366d9dc5..aa9ba291 100644 --- a/reference/data-types/float.mdx +++ b/core/reference/data-types/float.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' --- -If you need accurate calculations, in particular if you work with financial or business data requiring a high precision, you should consider using [Decimal](/reference/data-types/decimal) instead. +If you need accurate calculations, in particular if you work with financial or business data requiring a high precision, you should consider using [Decimal](/core/reference/data-types/decimal) instead. [Floating Point Numbers](https://en.wikipedia.org/wiki/IEEE_754) might lead to inaccurate results as illustrated below: @@ -109,7 +109,7 @@ SELECT 0 / 0 └──────────────┘ ``` -See the rules for `NaN` sorting in the section [ORDER BY clause](/reference/statements/select/order-by). +See the rules for `NaN` sorting in the section [ORDER BY clause](/core/reference/statements/select/order-by). ## BFloat16 {#bfloat16} @@ -117,7 +117,7 @@ See the rules for `NaN` sorting in the section [ORDER BY clause](/reference/stat It is useful for machine learning and AI applications. ClickHouse supports conversions between `Float32` and `BFloat16` which -can be done using the [`toFloat32()`](/reference/functions/regular-functions/type-conversion-functions#toFloat32) or [`toBFloat16`](/reference/functions/regular-functions/type-conversion-functions#toBFloat16) functions. +can be done using the [`toFloat32()`](/core/reference/functions/regular-functions/type-conversion-functions#toFloat32) or [`toBFloat16`](/core/reference/functions/regular-functions/type-conversion-functions#toBFloat16) functions. Most other operations are not supported. diff --git a/reference/data-types/geo.mdx b/core/reference/data-types/geo.mdx similarity index 92% rename from reference/data-types/geo.mdx rename to core/reference/data-types/geo.mdx index f99b5c30..73c1d7e4 100644 --- a/reference/data-types/geo.mdx +++ b/core/reference/data-types/geo.mdx @@ -14,7 +14,7 @@ ClickHouse supports data types for representing geographical objects — locatio ## Point {#point} -`Point` is represented by its X and Y coordinates, stored as a [Tuple](/reference/data-types/tuple)([Float64](/reference/data-types/float), [Float64](/reference/data-types/float)). +`Point` is represented by its X and Y coordinates, stored as a [Tuple](/core/reference/data-types/tuple)([Float64](/core/reference/data-types/float), [Float64](/core/reference/data-types/float)). **Example** @@ -32,7 +32,7 @@ SELECT p, toTypeName(p) FROM geo_point; ## Ring {#ring} -`Ring` is a simple polygon without holes stored as an array of points: [Array](/reference/data-types/array)([Point](#point)). +`Ring` is a simple polygon without holes stored as an array of points: [Array](/core/reference/data-types/array)([Point](#point)). **Example** @@ -50,7 +50,7 @@ SELECT r, toTypeName(r) FROM geo_ring; ## LineString {#linestring} -`LineString` is a line stored as an array of points: [Array](/reference/data-types/array)([Point](#point)). +`LineString` is a line stored as an array of points: [Array](/core/reference/data-types/array)([Point](#point)). **Example** @@ -68,7 +68,7 @@ SELECT l, toTypeName(l) FROM geo_linestring; ## MultiLineString {#multilinestring} -`MultiLineString` is multiple lines stored as an array of `LineString`: [Array](/reference/data-types/array)([LineString](#linestring)). +`MultiLineString` is multiple lines stored as an array of `LineString`: [Array](/core/reference/data-types/array)([LineString](#linestring)). **Example** @@ -86,7 +86,7 @@ SELECT l, toTypeName(l) FROM geo_multilinestring; ## Polygon {#polygon} -`Polygon` is a polygon with holes stored as an array of rings: [Array](/reference/data-types/array)([Ring](#ring)). First element of outer array is the outer shape of polygon and all the following elements are holes. +`Polygon` is a polygon with holes stored as an array of rings: [Array](/core/reference/data-types/array)([Ring](#ring)). First element of outer array is the outer shape of polygon and all the following elements are holes. **Example** @@ -106,7 +106,7 @@ SELECT pg, toTypeName(pg) FROM geo_polygon; ## MultiPolygon {#multipolygon} -`MultiPolygon` consists of multiple polygons and is stored as an array of polygons: [Array](/reference/data-types/array)([Polygon](#polygon)). +`MultiPolygon` consists of multiple polygons and is stored as an array of polygons: [Array](/core/reference/data-types/array)([Polygon](#polygon)). **Example** diff --git a/reference/data-types/index.mdx b/core/reference/data-types/index.mdx similarity index 62% rename from reference/data-types/index.mdx rename to core/reference/data-types/index.mdx index c8425125..0243b1da 100644 --- a/reference/data-types/index.mdx +++ b/core/reference/data-types/index.mdx @@ -6,8 +6,8 @@ title: 'Data Types in ClickHouse' doc_type: 'reference' --- -This section describes the data types supported by ClickHouse, for example [integers](/reference/data-types/int-uint), [floats](/reference/data-types/float) and [strings](/reference/data-types/string). +This section describes the data types supported by ClickHouse, for example [integers](/core/reference/data-types/int-uint), [floats](/core/reference/data-types/float) and [strings](/core/reference/data-types/string). -System table [system.data_type_families](/reference/system-tables/data_type_families) provides an +System table [system.data_type_families](/core/reference/system-tables/data_type_families) provides an overview of all available data types. It also shows whether a data type is an alias to another data type and its name is case-sensitive (e.g. `bool` vs. `BOOL`). diff --git a/reference/data-types/int-uint.mdx b/core/reference/data-types/int-uint.mdx similarity index 100% rename from reference/data-types/int-uint.mdx rename to core/reference/data-types/int-uint.mdx diff --git a/reference/data-types/ipv4.mdx b/core/reference/data-types/ipv4.mdx similarity index 95% rename from reference/data-types/ipv4.mdx rename to core/reference/data-types/ipv4.mdx index bd9e354c..a5b7ae20 100644 --- a/reference/data-types/ipv4.mdx +++ b/core/reference/data-types/ipv4.mdx @@ -73,4 +73,4 @@ SELECT toIPv4('127.0.0.1') = toIPv6('::ffff:127.0.0.1'); **See Also** -- [Functions for Working with IPv4 and IPv6 Addresses](/reference/functions/regular-functions/ip-address-functions) +- [Functions for Working with IPv4 and IPv6 Addresses](/core/reference/functions/regular-functions/ip-address-functions) diff --git a/reference/data-types/ipv6.mdx b/core/reference/data-types/ipv6.mdx similarity index 96% rename from reference/data-types/ipv6.mdx rename to core/reference/data-types/ipv6.mdx index 086a5037..cb853acf 100644 --- a/reference/data-types/ipv6.mdx +++ b/core/reference/data-types/ipv6.mdx @@ -74,4 +74,4 @@ SELECT toIPv4('127.0.0.1') = toIPv6('::ffff:127.0.0.1'); **See Also** -- [Functions for Working with IPv4 and IPv6 Addresses](/reference/functions/regular-functions/ip-address-functions) +- [Functions for Working with IPv4 and IPv6 Addresses](/core/reference/functions/regular-functions/ip-address-functions) diff --git a/reference/data-types/lowcardinality.mdx b/core/reference/data-types/lowcardinality.mdx similarity index 54% rename from reference/data-types/lowcardinality.mdx rename to core/reference/data-types/lowcardinality.mdx index 7cf6c3a7..b190d4b2 100644 --- a/reference/data-types/lowcardinality.mdx +++ b/core/reference/data-types/lowcardinality.mdx @@ -16,15 +16,15 @@ LowCardinality(data_type) **Parameters** -- `data_type` — [String](/reference/data-types/string), [FixedString](/reference/data-types/fixedstring), [Date](/reference/data-types/date), [DateTime](/reference/data-types/datetime), and numbers excepting [Decimal](/reference/data-types/decimal). `LowCardinality` is not efficient for some data types, see the [allow_suspicious_low_cardinality_types](/reference/settings/session-settings#allow_suspicious_low_cardinality_types) setting description. +- `data_type` — [String](/core/reference/data-types/string), [FixedString](/core/reference/data-types/fixedstring), [Date](/core/reference/data-types/date), [DateTime](/core/reference/data-types/datetime), and numbers excepting [Decimal](/core/reference/data-types/decimal). `LowCardinality` is not efficient for some data types, see the [allow_suspicious_low_cardinality_types](/core/reference/settings/session-settings#allow_suspicious_low_cardinality_types) setting description. ## Description {#description} -`LowCardinality` is a superstructure that changes a data storage method and rules of data processing. ClickHouse applies [dictionary coding](https://en.wikipedia.org/wiki/Dictionary_coder) to `LowCardinality`-columns. Operating with dictionary encoded data significantly increases performance of [SELECT](/reference/statements/select) queries for many applications. +`LowCardinality` is a superstructure that changes a data storage method and rules of data processing. ClickHouse applies [dictionary coding](https://en.wikipedia.org/wiki/Dictionary_coder) to `LowCardinality`-columns. Operating with dictionary encoded data significantly increases performance of [SELECT](/core/reference/statements/select) queries for many applications. The efficiency of using `LowCardinality` data type depends on data diversity. If a dictionary contains less than 10,000 distinct values, then ClickHouse mostly shows higher efficiency of data reading and storing. If a dictionary contains more than 100,000 distinct values, then ClickHouse can perform worse in comparison with using ordinary data types. -Consider using `LowCardinality` instead of [Enum](/reference/data-types/enum) when working with strings. `LowCardinality` provides more flexibility in use and often reveals the same or higher efficiency. +Consider using `LowCardinality` instead of [Enum](/core/reference/data-types/enum) when working with strings. `LowCardinality` provides more flexibility in use and often reveals the same or higher efficiency. ## Example {#example} @@ -44,15 +44,15 @@ ORDER BY id Settings: -- [low_cardinality_max_dictionary_size](/reference/settings/session-settings#low_cardinality_max_dictionary_size) -- [low_cardinality_use_single_dictionary_for_part](/reference/settings/session-settings#low_cardinality_use_single_dictionary_for_part) -- [low_cardinality_allow_in_native_format](/reference/settings/session-settings#low_cardinality_allow_in_native_format) -- [allow_suspicious_low_cardinality_types](/reference/settings/session-settings#allow_suspicious_low_cardinality_types) -- [output_format_arrow_low_cardinality_as_dictionary](/reference/settings/formats#output_format_arrow_low_cardinality_as_dictionary) +- [low_cardinality_max_dictionary_size](/core/reference/settings/session-settings#low_cardinality_max_dictionary_size) +- [low_cardinality_use_single_dictionary_for_part](/core/reference/settings/session-settings#low_cardinality_use_single_dictionary_for_part) +- [low_cardinality_allow_in_native_format](/core/reference/settings/session-settings#low_cardinality_allow_in_native_format) +- [allow_suspicious_low_cardinality_types](/core/reference/settings/session-settings#allow_suspicious_low_cardinality_types) +- [output_format_arrow_low_cardinality_as_dictionary](/core/reference/settings/formats#output_format_arrow_low_cardinality_as_dictionary) Functions: -- [toLowCardinality](/reference/functions/regular-functions/type-conversion-functions#toLowCardinality) +- [toLowCardinality](/core/reference/functions/regular-functions/type-conversion-functions#toLowCardinality) ## Related content {#related-content} diff --git a/reference/data-types/map.mdx b/core/reference/data-types/map.mdx similarity index 92% rename from reference/data-types/map.mdx rename to core/reference/data-types/map.mdx index 9a79f8f2..a2e89db7 100644 --- a/reference/data-types/map.mdx +++ b/core/reference/data-types/map.mdx @@ -16,7 +16,7 @@ Also, `m[k]` scans the map, i.e. the runtime of the operation is linear in the s **Parameters** -- `K` — The type of the Map keys. Arbitrary type except [Nullable](/reference/data-types/nullable) and [LowCardinality](/reference/data-types/lowcardinality) nested with [Nullable](/reference/data-types/nullable) types. +- `K` — The type of the Map keys. Arbitrary type except [Nullable](/core/reference/data-types/nullable) and [LowCardinality](/core/reference/data-types/lowcardinality) nested with [Nullable](/core/reference/data-types/nullable) types. - `V` — The type of the Map values. Arbitrary type. **Examples** @@ -43,7 +43,7 @@ SELECT m['key2'] FROM tab; ``` If the requested key `k` is not contained in the map, `m[k]` returns the value type's default value, e.g. `0` for integer types and `''` for string types. -To check whether a key exists in a map, you can use function [mapContains](/reference/functions/regular-functions/tuple-map-functions#mapContainsKey). +To check whether a key exists in a map, you can use function [mapContains](/core/reference/functions/regular-functions/tuple-map-functions#mapContainsKey). ```sql title="Query" CREATE TABLE tab (m Map(String, UInt64)) ENGINE=Memory; @@ -60,7 +60,7 @@ SELECT m['key1'] FROM tab; ## Converting Tuple to Map {#converting-tuple-to-map} -Values of type `Tuple()` can be cast to values of type `Map()` using function [CAST](/reference/functions/regular-functions/type-conversion-functions#CAST): +Values of type `Tuple()` can be cast to values of type `Map()` using function [CAST](/core/reference/functions/regular-functions/type-conversion-functions#CAST): **Example** @@ -188,7 +188,7 @@ If bucketed `Map` serialization does not fit your use case, there are two altern #### Using the JSON Data Type {#using-the-json-data-type} -The [JSON](/reference/data-types/newjson) data type stores each frequent path as a separate dynamic subcolumn. Paths that exceed the `max_dynamic_paths` limit go into a [shared data structure](/reference/data-types/newjson#shared-data-structure), which can use `advanced` serialization for optimized single-path reads. See the [blog post](https://clickhouse.com/blog/json-data-type-gets-even-better) for a detailed overview of the `advanced` serialization. +The [JSON](/core/reference/data-types/newjson) data type stores each frequent path as a separate dynamic subcolumn. Paths that exceed the `max_dynamic_paths` limit go into a [shared data structure](/core/reference/data-types/newjson#shared-data-structure), which can use `advanced` serialization for optimized single-path reads. See the [blog post](https://clickhouse.com/blog/json-data-type-gets-even-better) for a detailed overview of the `advanced` serialization. | Aspect | `Map` with buckets | `JSON` | |--------------------|------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -229,9 +229,9 @@ Manual sharding is beneficial when vertical merges are important for reducing me **See Also** -- [map()](/reference/functions/regular-functions/tuple-map-functions#map) function -- [CAST()](/reference/functions/regular-functions/type-conversion-functions#CAST) function -- [-Map combinator for Map datatype](/reference/functions/aggregate-functions/combinators#-map) +- [map()](/core/reference/functions/regular-functions/tuple-map-functions#map) function +- [CAST()](/core/reference/functions/regular-functions/type-conversion-functions#CAST) function +- [-Map combinator for Map datatype](/core/reference/functions/aggregate-functions/combinators#-map) ## Related content {#related-content} diff --git a/reference/data-types/nested-data-structures/index.mdx b/core/reference/data-types/nested-data-structures/index.mdx similarity index 94% rename from reference/data-types/nested-data-structures/index.mdx rename to core/reference/data-types/nested-data-structures/index.mdx index 9ae933b8..b257fa1c 100644 --- a/reference/data-types/nested-data-structures/index.mdx +++ b/core/reference/data-types/nested-data-structures/index.mdx @@ -8,7 +8,7 @@ doc_type: 'guide' ## Nested(name1 Type1, Name2 Type2, ...) {#nestedname1-type1-name2-type2-} -A nested data structure is like a table inside a cell. The parameters of a nested data structure – the column names and types – are specified the same way as in a [CREATE TABLE](/reference/statements/create/table) query. Each table row can correspond to any number of rows in a nested data structure. +A nested data structure is like a table inside a cell. The parameters of a nested data structure – the column names and types – are specified the same way as in a [CREATE TABLE](/core/reference/statements/create/table) query. Each table row can correspond to any number of rows in a nested data structure. **Avoid using dots in column names** @@ -46,7 +46,7 @@ CREATE TABLE test.visits This example declares the `Goals` nested data structure, which contains data about conversions (goals reached). Each row in the 'visits' table can correspond to zero or any number of conversions. -When [flatten_nested](/reference/settings/session-settings#flatten_nested) is set to `0` (which is not by default), arbitrary levels of nesting are supported. +When [flatten_nested](/core/reference/settings/session-settings#flatten_nested) is set to `0` (which is not by default), arbitrary levels of nesting are supported. In most cases, when working with a nested data structure, its columns are specified with column names separated by a dot. These columns make up an array of matching types. All the column arrays of a single nested data structure have the same length. diff --git a/reference/data-types/newjson.mdx b/core/reference/data-types/newjson.mdx similarity index 92% rename from reference/data-types/newjson.mdx rename to core/reference/data-types/newjson.mdx index bddd0e78..530aa271 100644 --- a/reference/data-types/newjson.mdx +++ b/core/reference/data-types/newjson.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' import WhenToUseJson from '/snippets/_when-to-use-json.mdx'; - + Check out our JSON best practice guide for examples, advanced features and considerations for using the JSON type. @@ -152,7 +152,7 @@ and **not**: The `JSON` type supports reading every path as a separate sub-column. If the type of the requested path is not specified in the JSON type declaration, -then the sub column of the path will always have type [Dynamic](/reference/data-types/dynamic). +then the sub column of the path will always have type [Dynamic](/core/reference/data-types/dynamic). For example: @@ -276,7 +276,7 @@ while executing 'FUNCTION CAST(__table1.json.a.g :: 2, 'UUID'_String :: 1) -> CA ``` -To read subcolumns efficiently from Compact MergeTree parts make sure MergeTree setting [write_marks_for_substreams_in_compact_parts](/reference/settings/merge-tree-settings#write_marks_for_substreams_in_compact_parts) is enabled. +To read subcolumns efficiently from Compact MergeTree parts make sure MergeTree setting [write_marks_for_substreams_in_compact_parts](/core/reference/settings/merge-tree-settings#write_marks_for_substreams_in_compact_parts) is enabled. ## Reading JSON sub-objects as sub-columns {#reading-json-sub-objects-as-sub-columns} @@ -369,19 +369,19 @@ When paths are stored in basic (`map`) [shared data](#shared-data-structure), re ## Type inference for paths {#type-inference-for-paths} During parsing of `JSON`, ClickHouse tries to detect the most appropriate data type for each JSON path. -It works similarly to [automatic schema inference from input data](/integrations/connectors/data-integrations/drivers-and-interfaces/schema-inference), +It works similarly to [automatic schema inference from input data](/core/concepts/features/interfaces/schema-inference), and is controlled by the same settings: -- [input_format_try_infer_dates](/reference/settings/formats#input_format_try_infer_dates) -- [input_format_try_infer_datetimes](/reference/settings/formats#input_format_try_infer_datetimes) -- [schema_inference_make_columns_nullable](/reference/settings/formats#schema_inference_make_columns_nullable) -- [input_format_json_try_infer_numbers_from_strings](/reference/settings/formats#input_format_json_try_infer_numbers_from_strings) -- [input_format_json_infer_incomplete_types_as_strings](/reference/settings/formats#input_format_json_infer_incomplete_types_as_strings) -- [input_format_json_read_numbers_as_strings](/reference/settings/formats#input_format_json_read_numbers_as_strings) -- [input_format_json_read_bools_as_strings](/reference/settings/formats#input_format_json_read_bools_as_strings) -- [input_format_json_read_bools_as_numbers](/reference/settings/formats#input_format_json_read_bools_as_numbers) -- [input_format_json_read_arrays_as_strings](/reference/settings/formats#input_format_json_read_arrays_as_strings) -- [input_format_json_infer_array_of_dynamic_from_array_of_different_types](/reference/settings/formats#input_format_json_infer_array_of_dynamic_from_array_of_different_types) +- [input_format_try_infer_dates](/core/reference/settings/formats#input_format_try_infer_dates) +- [input_format_try_infer_datetimes](/core/reference/settings/formats#input_format_try_infer_datetimes) +- [schema_inference_make_columns_nullable](/core/reference/settings/formats#schema_inference_make_columns_nullable) +- [input_format_json_try_infer_numbers_from_strings](/core/reference/settings/formats#input_format_json_try_infer_numbers_from_strings) +- [input_format_json_infer_incomplete_types_as_strings](/core/reference/settings/formats#input_format_json_infer_incomplete_types_as_strings) +- [input_format_json_read_numbers_as_strings](/core/reference/settings/formats#input_format_json_read_numbers_as_strings) +- [input_format_json_read_bools_as_strings](/core/reference/settings/formats#input_format_json_read_bools_as_strings) +- [input_format_json_read_bools_as_numbers](/core/reference/settings/formats#input_format_json_read_bools_as_numbers) +- [input_format_json_read_arrays_as_strings](/core/reference/settings/formats#input_format_json_read_arrays_as_strings) +- [input_format_json_infer_array_of_dynamic_from_array_of_different_types](/core/reference/settings/formats#input_format_json_infer_array_of_dynamic_from_array_of_different_types) Let's take a look at some examples: @@ -585,7 +585,7 @@ Code: 117. DB::Exception: Cannot insert data into JSON column: Duplicate path fo ``` If you want to keep keys with dots and avoid formatting them as nested objects, you can enable -setting [json_type_escape_dots_in_keys](/reference/settings/formats#json_type_escape_dots_in_keys) (available starting from version `25.8`). In this case during parsing all dots in JSON keys will be +setting [json_type_escape_dots_in_keys](/core/reference/settings/formats#json_type_escape_dots_in_keys) (available starting from version `25.8`). In this case during parsing all dots in JSON keys will be escaped into `%2E` and unescaped back during formatting. ```sql title="Query" @@ -663,11 +663,11 @@ SELECT '{"a.b" : 42, "a" : {"b" : "Hello World!"}}'::JSON(SKIP `a%2Eb`) as json, ## Reading JSON type from data {#reading-json-type-from-data} All text formats -([`JSONEachRow`](/reference/formats/JSON/JSONEachRow), -[`TSV`](/reference/formats/TabSeparated/TabSeparated), -[`CSV`](/reference/formats/CSV/CSV), -[`CustomSeparated`](/reference/formats/CustomSeparated/CustomSeparated), -[`Values`](/reference/formats/Values), etc.) support reading the `JSON` type. +([`JSONEachRow`](/core/reference/formats/JSON/JSONEachRow), +[`TSV`](/core/reference/formats/TabSeparated/TabSeparated), +[`CSV`](/core/reference/formats/CSV/CSV), +[`CustomSeparated`](/core/reference/formats/CustomSeparated/CustomSeparated), +[`Values`](/core/reference/formats/Values), etc.) support reading the `JSON` type. Examples: @@ -822,7 +822,7 @@ As we can see, ClickHouse kept the most frequent paths `a`, `b` and `c` and move As was described in the previous section, when the `max_dynamic_paths` limit is reached all new paths are stored in a single shared data structure. In this section we will look into the details of the shared data structure and how we read paths sub-columns from it. -See section ["introspection functions"](/reference/data-types/newjson#introspection-functions) for details of functions used for inspecting the contents of a JSON column. +See section ["introspection functions"](/core/reference/data-types/newjson#introspection-functions) for details of functions used for inspecting the contents of a JSON column. ### Shared data structure in memory {#shared-data-structure-in-memory} @@ -831,17 +831,17 @@ To extract a path subcolumn from it, we just iterate over all rows in this `Map` ### Shared data structure in MergeTree parts {#shared-data-structure-in-merge-tree-parts} -In [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables we store data in data parts that stores everything on disk (local or remote). And data on disk can be stored in a different way compared to memory. +In [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables we store data in data parts that stores everything on disk (local or remote). And data on disk can be stored in a different way compared to memory. Currently, there are 3 different shared data structure serializations in MergeTree data parts: `map`, `map_with_buckets` and `advanced`. The serialization version is controlled by MergeTree -settings [object_shared_data_serialization_version](/reference/settings/merge-tree-settings#object_shared_data_serialization_version) -and [object_shared_data_serialization_version_for_zero_level_parts](/reference/settings/merge-tree-settings#object_shared_data_serialization_version_for_zero_level_parts) +settings [object_shared_data_serialization_version](/core/reference/settings/merge-tree-settings#object_shared_data_serialization_version) +and [object_shared_data_serialization_version_for_zero_level_parts](/core/reference/settings/merge-tree-settings#object_shared_data_serialization_version_for_zero_level_parts) (zero level part is the part created during inserting data into the table, during merges parts have higher level). Note: changing shared data structure serialization is supported only -for `v3` [object serialization version](/reference/settings/merge-tree-settings#object_serialization_version) +for `v3` [object serialization version](/core/reference/settings/merge-tree-settings#object_serialization_version) #### Map {#shared-data-map} @@ -860,8 +860,8 @@ reads the whole `Map` column from a single bucket and extracts the requested pat This serialization is less efficient for writing data and reading the whole `JSON` column, but it's more efficient for reading paths sub-columns because it reads data only from required buckets. -Number of buckets `N` is controlled by MergeTree settings [object_shared_data_buckets_for_compact_part](/reference/settings/merge-tree-settings#object_shared_data_buckets_for_compact_part) (8 by default) -and [object_shared_data_buckets_for_wide_part](/reference/settings/merge-tree-settings#object_shared_data_buckets_for_wide_part) (32 by default). +Number of buckets `N` is controlled by MergeTree settings [object_shared_data_buckets_for_compact_part](/core/reference/settings/merge-tree-settings#object_shared_data_buckets_for_compact_part) (8 by default) +and [object_shared_data_buckets_for_wide_part](/core/reference/settings/merge-tree-settings#object_shared_data_buckets_for_wide_part) (32 by default). The maximum allowed value for both settings is 256. #### Advanced {#shared-data-advanced} @@ -892,15 +892,15 @@ Note: limit on dynamic paths cannot exceed the value specified in `max_dynamic_p ## Introspection functions {#introspection-functions} There are several functions that can help to inspect the content of the JSON column: -- [`JSONAllPaths`](/reference/functions/regular-functions/json-functions#JSONAllPaths) -- [`JSONAllPathsWithTypes`](/reference/functions/regular-functions/json-functions#JSONAllPathsWithTypes) -- [`JSONAllValues`](/reference/functions/regular-functions/json-functions#JSONAllValues) -- [`JSONDynamicPaths`](/reference/functions/regular-functions/json-functions#JSONDynamicPaths) -- [`JSONDynamicPathsWithTypes`](/reference/functions/regular-functions/json-functions#JSONDynamicPathsWithTypes) -- [`JSONSharedDataPaths`](/reference/functions/regular-functions/json-functions#JSONSharedDataPaths) -- [`JSONSharedDataPathsWithTypes`](/reference/functions/regular-functions/json-functions#JSONSharedDataPathsWithTypes) -- [`distinctDynamicTypes`](/reference/functions/aggregate-functions/reference/distinctDynamicTypes) -- [`distinctJSONPaths and distinctJSONPathsAndTypes`](/reference/functions/aggregate-functions/reference/distinctJSONPaths) +- [`JSONAllPaths`](/core/reference/functions/regular-functions/json-functions#JSONAllPaths) +- [`JSONAllPathsWithTypes`](/core/reference/functions/regular-functions/json-functions#JSONAllPathsWithTypes) +- [`JSONAllValues`](/core/reference/functions/regular-functions/json-functions#JSONAllValues) +- [`JSONDynamicPaths`](/core/reference/functions/regular-functions/json-functions#JSONDynamicPaths) +- [`JSONDynamicPathsWithTypes`](/core/reference/functions/regular-functions/json-functions#JSONDynamicPathsWithTypes) +- [`JSONSharedDataPaths`](/core/reference/functions/regular-functions/json-functions#JSONSharedDataPaths) +- [`JSONSharedDataPathsWithTypes`](/core/reference/functions/regular-functions/json-functions#JSONSharedDataPathsWithTypes) +- [`distinctDynamicTypes`](/core/reference/functions/aggregate-functions/reference/distinctDynamicTypes) +- [`distinctJSONPaths and distinctJSONPathsAndTypes`](/core/reference/functions/aggregate-functions/reference/distinctJSONPaths) **Examples** @@ -1154,20 +1154,20 @@ SELECT json1, json2, json1 < json2, json1 = json2, json1 > json2 FROM test; └────────────┴─────────────────────┴────────────────────┴──────────────────────┴───────────────────────┘ ``` -**Note:** when 2 paths contain values of different data types, they are compared according to [comparison rule](/reference/data-types/variant#comparing-values-of-variant-data) of `Variant` data type. +**Note:** when 2 paths contain values of different data types, they are compared according to [comparison rule](/core/reference/data-types/variant#comparing-values-of-variant-data) of `Variant` data type. ## Data skipping indexes for JSON {#data-skipping-indexes-for-json} -[Data skipping indexes](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) can be used with `JSON` columns in three ways: +[Data skipping indexes](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) can be used with `JSON` columns in three ways: 1. **Indexes on specific subcolumns** — create a standard skip index on a known JSON path, just like on a regular column. This indexes the *values* at that path. 2. **Path-based indexes with `JSONAllPaths`** — index the *set of paths* present in each granule to skip granules that cannot contain the queried path. -3. **Value-based indexes with `JSONAllValues`** — index *all values* across all JSON paths using a [text index](/reference/engines/table-engines/mergetree-family/textindexes) to accelerate full-text search on any JSON subcolumn with a single index. +3. **Value-based indexes with `JSONAllValues`** — index *all values* across all JSON paths using a [text index](/core/reference/engines/table-engines/mergetree-family/textindexes) to accelerate full-text search on any JSON subcolumn with a single index. ### Indexes on specific subcolumns {#json-indexes-on-subcolumns} You can create a skip index on any JSON subcolumn using the same syntax as for regular columns. -Any [supported index type](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) works (`minmax`, `set`, `bloom_filter`, `tokenbf_v1`, `ngrambf_v1`, etc.). +Any [supported index type](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) works (`minmax`, `set`, `bloom_filter`, `tokenbf_v1`, `ngrambf_v1`, etc.). There are two ways to reference a JSON subcolumn in an index expression: @@ -1227,16 +1227,16 @@ EXPLAIN indexes = 1 SELECT * FROM sensor_data WHERE data.location::String = 'roo ### Path-based indexes with JSONAllPaths {#json-indexes-jsonallpaths} -[Data skipping indexes](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) can also be created on `JSON` columns using the [`JSONAllPaths`](/reference/functions/regular-functions/json-functions#JSONAllPaths) function. -This works similarly to creating skip indexes on [`Map`](/reference/data-types/map) columns via `mapKeys` — the index stores the set of JSON paths present in each granule and uses it to skip granules that cannot contain the queried path. +[Data skipping indexes](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) can also be created on `JSON` columns using the [`JSONAllPaths`](/core/reference/functions/regular-functions/json-functions#JSONAllPaths) function. +This works similarly to creating skip indexes on [`Map`](/core/reference/data-types/map) columns via `mapKeys` — the index stores the set of JSON paths present in each granule and uses it to skip granules that cannot contain the queried path. #### Supported index types {#json-indexes-jsonallpaths-supported-types} `JSONAllPaths` can be used with the following skip index types: -- [`bloom_filter`](/reference/engines/table-engines/mergetree-family/mergetree#bloom-filter) — supports `equals`, `in`, and `IS NOT NULL`. -- [`tokenbf_v1`](/reference/engines/table-engines/mergetree-family/mergetree#token-bloom-filter) — supports `equals` and `IS NOT NULL`. -- [`ngrambf_v1`](/reference/engines/table-engines/mergetree-family/mergetree#n-gram-bloom-filter) — supports `equals` and `IS NOT NULL`. -- [`text`](/reference/engines/table-engines/mergetree-family/textindexes) (inverted index) — supports `equals`, `in` and `IS NOT NULL`. +- [`bloom_filter`](/core/reference/engines/table-engines/mergetree-family/mergetree#bloom-filter) — supports `equals`, `in`, and `IS NOT NULL`. +- [`tokenbf_v1`](/core/reference/engines/table-engines/mergetree-family/mergetree#token-bloom-filter) — supports `equals` and `IS NOT NULL`. +- [`ngrambf_v1`](/core/reference/engines/table-engines/mergetree-family/mergetree#n-gram-bloom-filter) — supports `equals` and `IS NOT NULL`. +- [`text`](/core/reference/engines/table-engines/mergetree-family/textindexes) (inverted index) — supports `equals`, `in` and `IS NOT NULL`. #### Example {#json-indexes-jsonallpaths-example} @@ -1315,11 +1315,11 @@ When a JSON path is absent from a granule, the subcolumn evaluates to: ### Full-text search with JSONAllValues {#json-indexes-jsonallvalues} -[Text indexes](/reference/engines/table-engines/mergetree-family/textindexes) can be used to accelerate full-text search on JSON columns via the [`JSONAllValues`](/reference/functions/regular-functions/json-functions#JSONAllValues) function. +[Text indexes](/core/reference/engines/table-engines/mergetree-family/textindexes) can be used to accelerate full-text search on JSON columns via the [`JSONAllValues`](/core/reference/functions/regular-functions/json-functions#JSONAllValues) function. `JSONAllValues` returns all values from a JSON column as `Array(String)`, which can be indexed by a text index. A single index on `JSONAllValues(json_column)` covers all JSON paths, enabling full-text search on any subcolumn without creating separate indexes for each path. -See [Value-based indexes with JSONAllValues](/reference/engines/table-engines/mergetree-family/textindexes#json-indexes-jsonallvalues) in the text indexes documentation for details and examples. +See [Value-based indexes with JSONAllValues](/core/reference/engines/table-engines/mergetree-family/textindexes#json-indexes-jsonallvalues) in the text indexes documentation for details and examples. ## Tips for better usage of the JSON type {#tips-for-better-usage-of-the-json-type} diff --git a/reference/data-types/nullable.mdx b/core/reference/data-types/nullable.mdx similarity index 77% rename from reference/data-types/nullable.mdx rename to core/reference/data-types/nullable.mdx index 5113fde6..f7536a14 100644 --- a/reference/data-types/nullable.mdx +++ b/core/reference/data-types/nullable.mdx @@ -6,19 +6,19 @@ title: 'Nullable(T)' doc_type: 'reference' --- -Allows to store special marker ([NULL](/reference/syntax)) that denotes "missing value" alongside normal values allowed by `T`. For example, a `Nullable(Int8)` type column can store `Int8` type values, and the rows that do not have a value will store `NULL`. +Allows to store special marker ([NULL](/core/reference/syntax)) that denotes "missing value" alongside normal values allowed by `T`. For example, a `Nullable(Int8)` type column can store `Int8` type values, and the rows that do not have a value will store `NULL`. `T` can't be any of the following composite data types: -- [Array](/reference/data-types/array) — Not supported -- [Map](/reference/data-types/map) — Not supported -- [Tuple](/reference/data-types/tuple) — Experimental support available* +- [Array](/core/reference/data-types/array) — Not supported +- [Map](/core/reference/data-types/map) — Not supported +- [Tuple](/core/reference/data-types/tuple) — Experimental support available* However, composite data types **can contain** `Nullable` type values, e.g. `Array(Nullable(Int8))` or `Tuple(Nullable(String), Nullable(Int64))`. **Experimental: Nullable Tuples** -* [Nullable(Tuple(...))](/reference/data-types/tuple#nullable-tuple) is supported when `allow_experimental_nullable_tuple_type = 1` is enabled. +* [Nullable(Tuple(...))](/core/reference/data-types/tuple#nullable-tuple) is supported when `allow_experimental_nullable_tuple_type = 1` is enabled. A `Nullable` type field can't be included in table indexes. diff --git a/reference/data-types/qbit.mdx b/core/reference/data-types/qbit.mdx similarity index 91% rename from reference/data-types/qbit.mdx rename to core/reference/data-types/qbit.mdx index 670cce50..258ba366 100644 --- a/reference/data-types/qbit.mdx +++ b/core/reference/data-types/qbit.mdx @@ -64,5 +64,5 @@ The number of accessible subcolumns depends on the element type: These are the distance functions for vector similarity search that use `QBit` data type: -* [`L2DistanceTransposed`](/reference/functions/regular-functions/distance-functions#L2DistanceTransposed) -* [`cosineDistanceTransposed`](/reference/functions/regular-functions/distance-functions#cosineDistanceTransposed) +* [`L2DistanceTransposed`](/core/reference/functions/regular-functions/distance-functions#L2DistanceTransposed) +* [`cosineDistanceTransposed`](/core/reference/functions/regular-functions/distance-functions#cosineDistanceTransposed) diff --git a/reference/data-types/simpleaggregatefunction.mdx b/core/reference/data-types/simpleaggregatefunction.mdx similarity index 58% rename from reference/data-types/simpleaggregatefunction.mdx rename to core/reference/data-types/simpleaggregatefunction.mdx index 0a0a068c..d56e214e 100644 --- a/reference/data-types/simpleaggregatefunction.mdx +++ b/core/reference/data-types/simpleaggregatefunction.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} The `SimpleAggregateFunction` data type stores the intermediate state of an -aggregate function, but not its full state as the [`AggregateFunction`](/reference/data-types/aggregatefunction) +aggregate function, but not its full state as the [`AggregateFunction`](/core/reference/data-types/aggregatefunction) type does. This optimization can be applied to functions for which the following property @@ -27,7 +27,7 @@ requires keeping track of a sum and a count, which will be divided to get the average in a final `Merge` step which combines the intermediate states. Aggregate function values are commonly produced by calling an aggregate function -with the [`-SimpleState`](/reference/functions/aggregate-functions/combinators#-simplestate) combinator appended to the function name. +with the [`-SimpleState`](/core/reference/functions/aggregate-functions/combinators#-simplestate) combinator appended to the function name. ## Syntax {#syntax} @@ -44,23 +44,23 @@ SimpleAggregateFunction(aggregate_function_name, types_of_arguments...) The following aggregate functions are supported: -- [`any`](/reference/functions/aggregate-functions/reference/any) -- [`any_respect_nulls`](/reference/functions/aggregate-functions/reference/any) -- [`anyLast`](/reference/functions/aggregate-functions/reference/anyLast) -- [`anyLast_respect_nulls`](/reference/functions/aggregate-functions/reference/anyLast) -- [`min`](/reference/functions/aggregate-functions/reference/min) -- [`max`](/reference/functions/aggregate-functions/reference/max) -- [`sum`](/reference/functions/aggregate-functions/reference/sum) -- [`sumWithOverflow`](/reference/functions/aggregate-functions/reference/sumWithOverflow) -- [`groupBitAnd`](/reference/functions/aggregate-functions/reference/groupBitAnd) -- [`groupBitOr`](/reference/functions/aggregate-functions/reference/groupBitOr) -- [`groupBitXor`](/reference/functions/aggregate-functions/reference/groupBitXor) -- [`groupArrayArray`](/reference/functions/aggregate-functions/reference/groupArrayArray) -- [`groupUniqArrayArray`](/reference/functions/aggregate-functions/reference/groupUniqArray) -- [`groupUniqArrayArrayMap`](/reference/functions/aggregate-functions/combinators#-map) -- [`sumMap` (`sumMappedArrays`)](/reference/functions/aggregate-functions/reference/sumMap) -- [`minMap` (`minMappedArrays`)](/reference/functions/aggregate-functions/reference/minMap) -- [`maxMap` (`maxMappedArrays`)](/reference/functions/aggregate-functions/reference/maxMap) +- [`any`](/core/reference/functions/aggregate-functions/reference/any) +- [`any_respect_nulls`](/core/reference/functions/aggregate-functions/reference/any) +- [`anyLast`](/core/reference/functions/aggregate-functions/reference/anyLast) +- [`anyLast_respect_nulls`](/core/reference/functions/aggregate-functions/reference/anyLast) +- [`min`](/core/reference/functions/aggregate-functions/reference/min) +- [`max`](/core/reference/functions/aggregate-functions/reference/max) +- [`sum`](/core/reference/functions/aggregate-functions/reference/sum) +- [`sumWithOverflow`](/core/reference/functions/aggregate-functions/reference/sumWithOverflow) +- [`groupBitAnd`](/core/reference/functions/aggregate-functions/reference/groupBitAnd) +- [`groupBitOr`](/core/reference/functions/aggregate-functions/reference/groupBitOr) +- [`groupBitXor`](/core/reference/functions/aggregate-functions/reference/groupBitXor) +- [`groupArrayArray`](/core/reference/functions/aggregate-functions/reference/groupArrayArray) +- [`groupUniqArrayArray`](/core/reference/functions/aggregate-functions/reference/groupUniqArray) +- [`groupUniqArrayArrayMap`](/core/reference/functions/aggregate-functions/combinators#-map) +- [`sumMap` (`sumMappedArrays`)](/core/reference/functions/aggregate-functions/reference/sumMap) +- [`minMap` (`minMappedArrays`)](/core/reference/functions/aggregate-functions/reference/minMap) +- [`maxMap` (`maxMappedArrays`)](/core/reference/functions/aggregate-functions/reference/maxMap) Values of the `SimpleAggregateFunction(func, Type)` have the same `Type`, @@ -79,4 +79,4 @@ CREATE TABLE simple (id UInt64, val SimpleAggregateFunction(sum, Double)) ENGINE ## Related Content {#related-content} - Blog: [Using Aggregate Combinators in ClickHouse](https://clickhouse.com/blog/aggregate-functions-combinators-in-clickhouse-for-arrays-maps-and-states) - Blog: [Using Aggregate Combinators in ClickHouse](https://clickhouse.com/blog/aggregate-functions-combinators-in-clickhouse-for-arrays-maps-and-states) -- [AggregateFunction](/reference/data-types/aggregatefunction) type. \ No newline at end of file +- [AggregateFunction](/core/reference/data-types/aggregatefunction) type. \ No newline at end of file diff --git a/reference/data-types/special-data-types/expression.mdx b/core/reference/data-types/special-data-types/expression.mdx similarity index 100% rename from reference/data-types/special-data-types/expression.mdx rename to core/reference/data-types/special-data-types/expression.mdx diff --git a/reference/data-types/special-data-types/index.mdx b/core/reference/data-types/special-data-types/index.mdx similarity index 100% rename from reference/data-types/special-data-types/index.mdx rename to core/reference/data-types/special-data-types/index.mdx diff --git a/reference/data-types/special-data-types/interval.mdx b/core/reference/data-types/special-data-types/interval.mdx similarity index 90% rename from reference/data-types/special-data-types/interval.mdx rename to core/reference/data-types/special-data-types/interval.mdx index 9251ee1d..2b19a8ef 100644 --- a/reference/data-types/special-data-types/interval.mdx +++ b/core/reference/data-types/special-data-types/interval.mdx @@ -6,7 +6,7 @@ title: 'Interval' doc_type: 'reference' --- -The family of data types representing time and date intervals. The resulting types of the [INTERVAL](/reference/operators#interval) operator. +The family of data types representing time and date intervals. The resulting types of the [INTERVAL](/core/reference/operators#interval) operator. Structure: @@ -41,7 +41,7 @@ SELECT toTypeName(INTERVAL 4 DAY) ## Usage Remarks {#usage-remarks} -You can use `Interval`-type values in arithmetical operations with [Date](/reference/data-types/date) and [DateTime](/reference/data-types/datetime)-type values. For example, you can add 4 days to the current time: +You can use `Interval`-type values in arithmetical operations with [Date](/core/reference/data-types/date) and [DateTime](/core/reference/data-types/datetime)-type values. For example, you can add 4 days to the current time: ```sql SELECT now() AS current_date_time, current_date_time + INTERVAL 4 DAY @@ -122,5 +122,5 @@ SELECT INTERVAL '+1:30' HOUR TO MINUTE; ## See Also {#see-also} -- [INTERVAL](/reference/operators#interval) operator -- [toInterval](/reference/functions/regular-functions/type-conversion-functions#toIntervalYear) type conversion functions +- [INTERVAL](/core/reference/operators#interval) operator +- [toInterval](/core/reference/functions/regular-functions/type-conversion-functions#toIntervalYear) type conversion functions diff --git a/reference/data-types/special-data-types/nothing.mdx b/core/reference/data-types/special-data-types/nothing.mdx similarity index 78% rename from reference/data-types/special-data-types/nothing.mdx rename to core/reference/data-types/special-data-types/nothing.mdx index 94945817..ef3b58ae 100644 --- a/reference/data-types/special-data-types/nothing.mdx +++ b/core/reference/data-types/special-data-types/nothing.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' The only purpose of this data type is to represent cases where a value is not expected. So you can't create a `Nothing` type value. -For example, literal [NULL](/reference/syntax#null) has type of `Nullable(Nothing)`. See more about [Nullable](/reference/data-types/nullable). +For example, literal [NULL](/core/reference/syntax#null) has type of `Nullable(Nothing)`. See more about [Nullable](/core/reference/data-types/nullable). The `Nothing` type can also used to denote empty arrays: diff --git a/reference/data-types/special-data-types/set.mdx b/core/reference/data-types/special-data-types/set.mdx similarity index 72% rename from reference/data-types/special-data-types/set.mdx rename to core/reference/data-types/special-data-types/set.mdx index 625e33ee..2a7dbc73 100644 --- a/reference/data-types/special-data-types/set.mdx +++ b/core/reference/data-types/special-data-types/set.mdx @@ -6,4 +6,4 @@ title: 'Set' doc_type: 'reference' --- -Used for the right half of an [IN](/reference/statements/in) expression. +Used for the right half of an [IN](/core/reference/statements/in) expression. diff --git a/reference/data-types/string.mdx b/core/reference/data-types/string.mdx similarity index 81% rename from reference/data-types/string.mdx rename to core/reference/data-types/string.mdx index e39ba29f..21de1c36 100644 --- a/reference/data-types/string.mdx +++ b/core/reference/data-types/string.mdx @@ -20,4 +20,4 @@ Aliases: ClickHouse does not have the concept of encodings. Strings can contain an arbitrary set of bytes, which are stored and output as-is. If you need to store texts, we recommend using UTF-8 encoding. At the very least, if your terminal uses UTF-8 (as recommended), you can read and write your values without making conversions. Similarly, certain functions for working with strings have separate variations that work under the assumption that the string contains a set of bytes representing a UTF-8 encoded text. -For example, the [length](/reference/functions/regular-functions/array-functions#length) function calculates the string length in bytes, while the [lengthUTF8](/reference/functions/regular-functions/string-functions#lengthUTF8) function calculates the string length in Unicode code points, assuming that the value is UTF-8 encoded. +For example, the [length](/core/reference/functions/regular-functions/array-functions#length) function calculates the string length in bytes, while the [lengthUTF8](/core/reference/functions/regular-functions/string-functions#lengthUTF8) function calculates the string length in Unicode code points, assuming that the value is UTF-8 encoded. diff --git a/reference/data-types/time.mdx b/core/reference/data-types/time.mdx similarity index 75% rename from reference/data-types/time.mdx rename to core/reference/data-types/time.mdx index dd9a3d49..e75a8cc5 100644 --- a/reference/data-types/time.mdx +++ b/core/reference/data-types/time.mdx @@ -115,7 +115,7 @@ SELECT CAST('14:30:25' AS Time) AS column, toTypeName(column) AS type ## Addition with Date {#addition-with-date} -A [Time](/reference/data-types/time) value can be added to a [Date](/reference/data-types/date) or [Date32](/reference/data-types/date32) value to produce a [DateTime](/reference/data-types/datetime) or [DateTime64](/reference/data-types/datetime64): +A [Time](/core/reference/data-types/time) value can be added to a [Date](/core/reference/data-types/date) or [Date32](/core/reference/data-types/date32) value to produce a [DateTime](/core/reference/data-types/datetime) or [DateTime64](/core/reference/data-types/datetime64): ```sql SET use_legacy_to_time = 0; @@ -128,16 +128,16 @@ SELECT toDate('2024-07-15') + toTime('14:30:25') as datetime; └─────────────────────┘ ``` -See [Date and Time Addition](/reference/operators#date-time-addition) for details on all supported combinations and result types. +See [Date and Time Addition](/core/reference/operators#date-time-addition) for details on all supported combinations and result types. ## See Also {#see-also} -- [Type conversion functions](/reference/functions/regular-functions/type-conversion-functions) -- [Functions for working with dates and times](/reference/functions/regular-functions/date-time-functions) -- [Functions for working with arrays](/reference/functions/regular-functions/array-functions) -- [The `date_time_input_format` setting](/reference/settings/formats#date_time_input_format) -- [The `date_time_output_format` setting](/reference/settings/formats#date_time_output_format) -- [The `timezone` server configuration parameter](/reference/settings/server-settings/settings#timezone) -- [The `session_timezone` setting](/reference/settings/session-settings#session_timezone) -- [The `DateTime` data type](/reference/data-types/datetime) -- [The `Date` data type](/reference/data-types/date) +- [Type conversion functions](/core/reference/functions/regular-functions/type-conversion-functions) +- [Functions for working with dates and times](/core/reference/functions/regular-functions/date-time-functions) +- [Functions for working with arrays](/core/reference/functions/regular-functions/array-functions) +- [The `date_time_input_format` setting](/core/reference/settings/formats#date_time_input_format) +- [The `date_time_output_format` setting](/core/reference/settings/formats#date_time_output_format) +- [The `timezone` server configuration parameter](/core/reference/settings/server-settings/settings#timezone) +- [The `session_timezone` setting](/core/reference/settings/session-settings#session_timezone) +- [The `DateTime` data type](/core/reference/data-types/datetime) +- [The `Date` data type](/core/reference/data-types/date) diff --git a/reference/data-types/time64.mdx b/core/reference/data-types/time64.mdx similarity index 77% rename from reference/data-types/time64.mdx rename to core/reference/data-types/time64.mdx index 6a77779c..9ef9aa8f 100644 --- a/reference/data-types/time64.mdx +++ b/core/reference/data-types/time64.mdx @@ -24,7 +24,7 @@ The tick resolution is determined by the `precision` parameter. Time zones are not supported: specifying a time zone with `Time64` will throw an error. Unlike `DateTime64`, `Time64` does not store a date component. -See also [`Time`](/reference/data-types/time). +See also [`Time`](/core/reference/data-types/time). Text representation range: [-999:59:59.000, 999:59:59.999] for `precision = 3`. In general, the minimum is `-999:59:59` and the maximum is `999:59:59` with up to `precision` fractional digits (for `precision = 9`, the minimum is `-999:59:59.999999999`). @@ -120,7 +120,7 @@ SELECT CAST('14:30:25.250' AS Time64(3)) AS column, toTypeName(column) AS type; ## Addition with Date {#addition-with-date} -A [Time64](/reference/data-types/time64) value can be added to a [Date](/reference/data-types/date) or [Date32](/reference/data-types/date32) value to produce a [DateTime64](/reference/data-types/datetime64) with the same scale as the `Time64`: +A [Time64](/core/reference/data-types/time64) value can be added to a [Date](/core/reference/data-types/date) or [Date32](/core/reference/data-types/date32) value to produce a [DateTime64](/core/reference/data-types/datetime64) with the same scale as the `Time64`: ```sql SET use_legacy_to_time = 0; @@ -133,17 +133,17 @@ SELECT toDate('2024-07-15') + toTime64('14:30:25.123456', 6) AS dt, toTypeName(d └────────────────────────────┴────────────────┘ ``` -See [Date and Time Addition](/reference/operators#date-time-addition) for details on all supported combinations and result types. +See [Date and Time Addition](/core/reference/operators#date-time-addition) for details on all supported combinations and result types. **See Also** -- [Type conversion functions](/reference/functions/regular-functions/type-conversion-functions) -- [Functions for working with dates and times](/reference/functions/regular-functions/date-time-functions) -- [The `date_time_input_format` setting](/reference/settings/formats#date_time_input_format) -- [The `date_time_output_format` setting](/reference/settings/formats#date_time_output_format) -- [The `timezone` server configuration parameter](/reference/settings/server-settings/settings#timezone) -- [The `session_timezone` setting](/reference/settings/session-settings#session_timezone) -- [Operators for working with dates and times](/reference/operators#operators-for-working-with-dates-and-times) -- [`Date` data type](/reference/data-types/date) -- [`Time` data type](/reference/data-types/time) -- [`DateTime` data type](/reference/data-types/datetime) +- [Type conversion functions](/core/reference/functions/regular-functions/type-conversion-functions) +- [Functions for working with dates and times](/core/reference/functions/regular-functions/date-time-functions) +- [The `date_time_input_format` setting](/core/reference/settings/formats#date_time_input_format) +- [The `date_time_output_format` setting](/core/reference/settings/formats#date_time_output_format) +- [The `timezone` server configuration parameter](/core/reference/settings/server-settings/settings#timezone) +- [The `session_timezone` setting](/core/reference/settings/session-settings#session_timezone) +- [Operators for working with dates and times](/core/reference/operators#operators-for-working-with-dates-and-times) +- [`Date` data type](/core/reference/data-types/date) +- [`Time` data type](/core/reference/data-types/time) +- [`DateTime` data type](/core/reference/data-types/datetime) diff --git a/reference/data-types/tuple.mdx b/core/reference/data-types/tuple.mdx similarity index 92% rename from reference/data-types/tuple.mdx rename to core/reference/data-types/tuple.mdx index 267ad43a..e6016b3b 100644 --- a/reference/data-types/tuple.mdx +++ b/core/reference/data-types/tuple.mdx @@ -6,9 +6,9 @@ title: 'Tuple(T1, T2, ...)' doc_type: 'reference' --- -A tuple of elements, each having an individual [type](/reference/data-types). Tuple must contain at least one element. +A tuple of elements, each having an individual [type](/core/reference/data-types). Tuple must contain at least one element. -Tuples are used for temporary column grouping. Columns can be grouped when an IN expression is used in a query, and for specifying certain formal parameters of lambda functions. For more information, see the sections [IN operators](/reference/statements/in) and [Higher order functions](/reference/functions/regular-functions/overview#higher-order-functions). +Tuples are used for temporary column grouping. Columns can be grouped when an IN expression is used in a query, and for specifying certain formal parameters of lambda functions. For more information, see the sections [IN operators](/core/reference/statements/in) and [Higher order functions](/core/reference/functions/regular-functions/overview#higher-order-functions). Tuples can be the result of a query. In this case, for text formats other than JSON, values are comma-separated in `()`. In JSON formats, tuples are output as arrays (in `[]`). @@ -62,7 +62,7 @@ SELECT (1, 'a') AS x, (today(), rand(), 'someString') AS y, ('a') AS not_a_tuple ## Data Type Detection {#data-type-detection} -When creating tuples on the fly, ClickHouse interferes the type of the tuples arguments as the smallest types which can hold the provided argument value. If the value is [NULL](/reference/settings/formats#input_format_null_as_default), the interfered type is [Nullable](/reference/data-types/nullable). +When creating tuples on the fly, ClickHouse interferes the type of the tuples arguments as the smallest types which can hold the provided argument value. If the value is [NULL](/core/reference/settings/formats#input_format_null_as_default), the interfered type is [Nullable](/core/reference/data-types/nullable). Example of automatic data type detection: diff --git a/reference/data-types/uuid.mdx b/core/reference/data-types/uuid.mdx similarity index 88% rename from reference/data-types/uuid.mdx rename to core/reference/data-types/uuid.mdx index d3bfcae0..b62e0fb7 100644 --- a/reference/data-types/uuid.mdx +++ b/core/reference/data-types/uuid.mdx @@ -98,7 +98,7 @@ ORDER BY (UUIDv7ToDateTime(uuid), uuid) ## Generating UUIDs {#generating-uuids} -ClickHouse provides the [generateUUIDv4](/reference/functions/regular-functions/uuid-functions) function to generate random UUID version 4 values. +ClickHouse provides the [generateUUIDv4](/core/reference/functions/regular-functions/uuid-functions) function to generate random UUID version 4 values. ## Usage Example {#usage-example} @@ -139,6 +139,6 @@ SELECT * FROM t_uuid ## Restrictions {#restrictions} -The UUID data type only supports functions which [String](/reference/data-types/string) data type also supports (for example, [min](/reference/functions/aggregate-functions/reference/min), [max](/reference/functions/aggregate-functions/reference/max), and [count](/reference/functions/aggregate-functions/reference/count)). +The UUID data type only supports functions which [String](/core/reference/data-types/string) data type also supports (for example, [min](/core/reference/functions/aggregate-functions/reference/min), [max](/core/reference/functions/aggregate-functions/reference/max), and [count](/core/reference/functions/aggregate-functions/reference/count)). -The UUID data type is not supported by arithmetic operations (for example, [abs](/reference/functions/regular-functions/arithmetic-functions#abs)) or aggregate functions, such as [sum](/reference/functions/aggregate-functions/reference/sum) and [avg](/reference/functions/aggregate-functions/reference/avg). +The UUID data type is not supported by arithmetic operations (for example, [abs](/core/reference/functions/regular-functions/arithmetic-functions#abs)) or aggregate functions, such as [sum](/core/reference/functions/aggregate-functions/reference/sum) and [avg](/core/reference/functions/aggregate-functions/reference/avg). diff --git a/reference/data-types/variant.mdx b/core/reference/data-types/variant.mdx similarity index 100% rename from reference/data-types/variant.mdx rename to core/reference/data-types/variant.mdx diff --git a/core/reference/datalakes.mdx b/core/reference/datalakes.mdx new file mode 100644 index 00000000..80e9a9c0 --- /dev/null +++ b/core/reference/datalakes.mdx @@ -0,0 +1,42 @@ +--- +description: 'Documentation for Data Lakes' +sidebarTitle: 'Data Lakes' +slug: /sql-reference/datalakes +title: 'Data Lakes' +doc_type: 'reference' +--- + +In this section, we will take a look at ClickHouse's support for Data Lakes. +ClickHouse supports many of the most popular table formats and data catalogs, including Iceberg, Delta Lake, Hudi, AWS Glue, REST Catalog, Unity Catalog and Microsoft OneLake. + +# Open table formats {#open-table-formats} + +## Iceberg {#iceberg} + +See [iceberg](/core/reference/functions/table-functions/iceberg) which supports reading from Amazon S3 and S3-compatible services, HDFS, Azure and local file systems. [icebergCluster](/core/reference/functions/table-functions/icebergCluster) is the distributed variant of the `iceberg` function. + +## Delta Lake {#delta-lake} + +See [deltaLake](/core/reference/functions/table-functions/deltalake) which supports reading from Amazon S3 and S3-compatible services, Azure and local file systems. [deltaLakeCluster](/core/reference/functions/table-functions/deltalakeCluster) is the distributed variant of the `deltaLake` function. + +## Hudi {#hudi} + +See [hudi](/core/reference/functions/table-functions/hudi) which supports reading from Amazon S3 and S3-compatible services. [hudiCluster](/core/reference/functions/table-functions/hudiCluster) is the distributed variant of the `hudi` function. + +# Data catalogs {#data-catalogs} + +## AWS Glue {#aws-glue} + +AWS Glue Data Catalog can be used with Iceberg tables. You can use it with the `iceberg` table engine, or with the [DataLakeCatalog](/core/reference/engines/database-engines/datalake) database engine. + +## Iceberg REST Catalog {#iceberg-rest-catalog} + +The Iceberg REST Catalog can be used with Iceberg tables. You can use it with the `iceberg` table engine, or with the [DataLakeCatalog](/core/reference/engines/database-engines/datalake) database engine. + +## Unity Catalog {#unity-catalog} + +Unity Catalog can be used with both Delta Lake and Iceberg tables. You can use it with the `iceberg` or `deltaLake` table engines, or with the [DataLakeCatalog](/core/reference/engines/database-engines/datalake) database engine. + +## Microsoft OneLake {#microsoft-onelake} + +Microsoft OneLake can be used with both Delta Lake and Iceberg tables. You can use it with the [DataLakeCatalog](/core/reference/engines/database-engines/datalake) database engine. diff --git a/reference/engines/database-engines/atomic.mdx b/core/reference/engines/database-engines/atomic.mdx similarity index 58% rename from reference/engines/database-engines/atomic.mdx rename to core/reference/engines/database-engines/atomic.mdx index 4a34c5ab..311c70c4 100644 --- a/reference/engines/database-engines/atomic.mdx +++ b/core/reference/engines/database-engines/atomic.mdx @@ -25,7 +25,7 @@ CREATE DATABASE test [ENGINE = Atomic] [SETTINGS disk=...]; ### Table UUID {#table-uuid} -Each table in the `Atomic` database has a persistent [UUID](/reference/data-types/uuid) and stores its data in the following directory: +Each table in the `Atomic` database has a persistent [UUID](/core/reference/data-types/uuid) and stores its data in the following directory: ```text /clickhouse_path/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/ @@ -42,21 +42,21 @@ CREATE TABLE name UUID '28f1c61c-2970-457a-bffe-454156ddcfef' (n UInt64) ENGINE ``` -You can use the [show_table_uuid_in_table_create_query_if_not_nil](/reference/settings/session-settings#show_table_uuid_in_table_create_query_if_not_nil) setting to display the UUID with the `SHOW CREATE` query. +You can use the [show_table_uuid_in_table_create_query_if_not_nil](/core/reference/settings/session-settings#show_table_uuid_in_table_create_query_if_not_nil) setting to display the UUID with the `SHOW CREATE` query. ### RENAME TABLE {#rename-table} -[`RENAME`](/reference/statements/rename) queries do not modify the UUID or move table data. These queries execute immediately and do not wait for other queries that are using the table to complete. +[`RENAME`](/core/reference/statements/rename) queries do not modify the UUID or move table data. These queries execute immediately and do not wait for other queries that are using the table to complete. ### DROP/DETACH TABLE {#drop-detach-table} -When using `DROP TABLE`, no data is removed. The `Atomic` engine just marks the table as dropped by moving it's metadata to `/clickhouse_path/metadata_dropped/` and notifies the background thread. The delay before the final table data deletion is specified by the [`database_atomic_delay_before_drop_table_sec`](/reference/settings/server-settings/settings#database_atomic_delay_before_drop_table_sec) setting. -You can specify synchronous mode using `SYNC` modifier. Use the [`database_atomic_wait_for_drop_and_detach_synchronously`](/reference/settings/session-settings#database_atomic_wait_for_drop_and_detach_synchronously) setting to do this. In this case `DROP` waits for running `SELECT`, `INSERT` and other queries which are using the table to finish. The table will be removed when it's not in use. +When using `DROP TABLE`, no data is removed. The `Atomic` engine just marks the table as dropped by moving it's metadata to `/clickhouse_path/metadata_dropped/` and notifies the background thread. The delay before the final table data deletion is specified by the [`database_atomic_delay_before_drop_table_sec`](/core/reference/settings/server-settings/settings#database_atomic_delay_before_drop_table_sec) setting. +You can specify synchronous mode using `SYNC` modifier. Use the [`database_atomic_wait_for_drop_and_detach_synchronously`](/core/reference/settings/session-settings#database_atomic_wait_for_drop_and_detach_synchronously) setting to do this. In this case `DROP` waits for running `SELECT`, `INSERT` and other queries which are using the table to finish. The table will be removed when it's not in use. ### EXCHANGE TABLES/DICTIONARIES {#exchange-tables} -The [`EXCHANGE`](/reference/statements/exchange) query swaps tables or dictionaries atomically. For instance, instead of this non-atomic operation: +The [`EXCHANGE`](/core/reference/statements/exchange) query swaps tables or dictionaries atomically. For instance, instead of this non-atomic operation: ```sql title="Non-atomic" RENAME TABLE new_table TO tmp, old_table TO new_table, tmp TO old_table; @@ -69,7 +69,7 @@ EXCHANGE TABLES new_table AND old_table; ### ReplicatedMergeTree in atomic database {#replicatedmergetree-in-atomic-database} -For [`ReplicatedMergeTree`](/reference/engines/table-engines/mergetree-family/replication) tables, it is recommended not to specify the engine parameters for the path in ZooKeeper and the replica name. In this case, the configuration parameters [`default_replica_path`](/reference/settings/server-settings/settings#default_replica_path) and [`default_replica_name`](/reference/settings/server-settings/settings#default_replica_name) will be used. If you want to specify engine parameters explicitly, it is recommended to use the `{uuid}` macros. This ensures that unique paths are automatically generated for each table in ZooKeeper. +For [`ReplicatedMergeTree`](/core/reference/engines/table-engines/mergetree-family/replication) tables, it is recommended not to specify the engine parameters for the path in ZooKeeper and the replica name. In this case, the configuration parameters [`default_replica_path`](/core/reference/settings/server-settings/settings#default_replica_path) and [`default_replica_name`](/core/reference/settings/server-settings/settings#default_replica_name) will be used. If you want to specify engine parameters explicitly, it is recommended to use the `{uuid}` macros. This ensures that unique paths are automatically generated for each table in ZooKeeper. ### Metadata disk {#metadata-disk} When `disk` is specified in `SETTINGS`, the disk is used to store table metadata files. @@ -82,4 +82,4 @@ If unspecified, the disk defined in `database_disk.disk` is used by default. ## See also {#see-also} -- [system.databases](/reference/system-tables/databases) system table +- [system.databases](/core/reference/system-tables/databases) system table diff --git a/reference/engines/database-engines/backup.mdx b/core/reference/engines/database-engines/backup.mdx similarity index 93% rename from reference/engines/database-engines/backup.mdx rename to core/reference/engines/database-engines/backup.mdx index de4d34f9..4ab3022a 100644 --- a/reference/engines/database-engines/backup.mdx +++ b/core/reference/engines/database-engines/backup.mdx @@ -7,7 +7,7 @@ title: 'Backup' doc_type: 'reference' --- -Database backup allows to instantly attach table/database from [backups](/concepts/features/backup-restore/overview) in read-only mode. +Database backup allows to instantly attach table/database from [backups](/core/concepts/features/backup-restore/overview) in read-only mode. Database backup works with both incremental and non-incremental backups. @@ -18,7 +18,7 @@ CREATE DATABASE backup_database ENGINE = Backup('database_name_inside_backup', 'backup_destination') ``` -Backup destination can be any valid backup [destination](/concepts/features/backup-restore/local-disk#configure-backup-destinations-for-disk) like `Disk`, `S3`, `File`. +Backup destination can be any valid backup [destination](/core/concepts/features/backup-restore/local-disk#configure-backup-destinations-for-disk) like `Disk`, `S3`, `File`. With `Disk` backup destination, query to create database from backup looks like this: diff --git a/reference/engines/database-engines/datalake.mdx b/core/reference/engines/database-engines/datalake.mdx similarity index 96% rename from reference/engines/database-engines/datalake.mdx rename to core/reference/engines/database-engines/datalake.mdx index bf4bf9cb..dccf413e 100644 --- a/reference/engines/database-engines/datalake.mdx +++ b/core/reference/engines/database-engines/datalake.mdx @@ -64,8 +64,8 @@ The following settings are supported: See below sections for examples of using the `DataLakeCatalog` engine: -* [Unity Catalog](/guides/data-warehousing/unity-catalog) -* [Glue Catalog](/guides/data-warehousing/glue-catalog) +* [Unity Catalog](/core/guides/use-cases/data-warehousing/unity-catalog) +* [Glue Catalog](/core/guides/use-cases/data-warehousing/glue-catalog) * OneLake Catalog Can be used by enabling `allow_experimental_database_iceberg` or `allow_database_iceberg`. ```sql diff --git a/core/reference/engines/database-engines/index.mdx b/core/reference/engines/database-engines/index.mdx new file mode 100644 index 00000000..9aa0438c --- /dev/null +++ b/core/reference/engines/database-engines/index.mdx @@ -0,0 +1,34 @@ +--- +description: 'Documentation for Database Engines' +slug: /engines/database-engines/ +toc_folder_title: 'Database Engines' +toc_priority: 27 +toc_title: 'Introduction' +title: 'Database Engines' +doc_type: 'landing-page' +--- + +Database engines allow you to work with tables. By default, ClickHouse uses the [Atomic](/core/reference/engines/database-engines/atomic) database engine, which provides configurable [table engines](/core/reference/engines/table-engines) and an [SQL dialect](/core/reference/syntax). + +Here is a complete list of available database engines. Follow the links for more details: + +{/* The table of contents table for this page is automatically generated by +https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh +from the YAML front matter fields: slug, description, title. + +If you've spotted an error, please edit the YML frontmatter of the pages themselves. +*/} + +{/*AUTOGENERATED_START*/} +| Page | Description | +|-----|-----| +| [Shared](/core/reference/engines/database-engines/shared) | Page describing the `Shared` database engine, available in ClickHouse Cloud | +| [Atomic](/core/reference/engines/database-engines/atomic) | The `Atomic` engine supports non-blocking `DROP TABLE` and `RENAME TABLE` queries, and atomic `EXCHANGE TABLES`queries. The `Atomic` database engine is used by default. | +| [Replicated](/core/reference/engines/database-engines/replicated) | The engine is based on the Atomic engine. It supports replication of metadata via DDL log being written to ZooKeeper and executed on all of the replicas for a given database. | +| [PostgreSQL](/core/reference/engines/database-engines/postgresql) | Allows to connect to databases on a remote PostgreSQL server. | +| [MySQL](/core/reference/engines/database-engines/mysql) | Allows connecting to databases on a remote MySQL server and perform `INSERT` and `SELECT` queries to exchange data between ClickHouse and MySQL. | +| [SQLite](/core/reference/engines/database-engines/sqlite) | Allows to connect to SQLite databases and perform `INSERT` and `SELECT` queries to exchange data between ClickHouse and SQLite. | +| [MaterializedPostgreSQL](/core/reference/engines/database-engines/materialized-postgresql) | Creates a ClickHouse database with tables from PostgreSQL database. | +| [Backup](/core/reference/engines/database-engines/backup) | Allows to instantly attach table/database from backups in read-only mode. | +| [DataLakeCatalog](/core/reference/engines/database-engines/datalake) | The DataLakeCatalog database engine enables you to connect ClickHouse to external data catalogs and query open table format data | +{/*AUTOGENERATED_END*/} diff --git a/reference/engines/database-engines/materialized-postgresql.mdx b/core/reference/engines/database-engines/materialized-postgresql.mdx similarity index 97% rename from reference/engines/database-engines/materialized-postgresql.mdx rename to core/reference/engines/database-engines/materialized-postgresql.mdx index f0f8e743..e53358fc 100644 --- a/reference/engines/database-engines/materialized-postgresql.mdx +++ b/core/reference/engines/database-engines/materialized-postgresql.mdx @@ -162,7 +162,7 @@ Replication of [**TOAST**](https://www.postgresql.org/docs/9.5/storage-toast.htm ### `materialized_postgresql_tables_list` {#materialized-postgresql-tables-list} - Sets a comma-separated list of PostgreSQL database tables, which will be replicated via [MaterializedPostgreSQL](/reference/engines/database-engines/materialized-postgresql) database engine. + Sets a comma-separated list of PostgreSQL database tables, which will be replicated via [MaterializedPostgreSQL](/core/reference/engines/database-engines/materialized-postgresql) database engine. Each table can have subset of replicated columns in brackets. If subset of columns is omitted, then all columns for table will be replicated. @@ -196,7 +196,7 @@ Replication of [**TOAST**](https://www.postgresql.org/docs/9.5/storage-toast.htm ### `materialized_postgresql_snapshot` {#materialized-postgresql-snapshot} - A text string identifying a snapshot, from which [initial dump of PostgreSQL tables](/reference/engines/database-engines/materialized-postgresql) will be performed. Must be used together with `materialized_postgresql_replication_slot`. + A text string identifying a snapshot, from which [initial dump of PostgreSQL tables](/core/reference/engines/database-engines/materialized-postgresql) will be performed. Must be used together with `materialized_postgresql_replication_slot`. ```sql CREATE DATABASE database1 diff --git a/reference/engines/database-engines/mysql.mdx b/core/reference/engines/database-engines/mysql.mdx similarity index 70% rename from reference/engines/database-engines/mysql.mdx rename to core/reference/engines/database-engines/mysql.mdx index f9c949b9..c335cb01 100644 --- a/reference/engines/database-engines/mysql.mdx +++ b/core/reference/engines/database-engines/mysql.mdx @@ -41,23 +41,23 @@ ENGINE = MySQL('host:port', ['database' | database], 'user', 'password') | MySQL | ClickHouse | |----------------------------------|--------------------------------------------------------------| -| UNSIGNED TINYINT | [UInt8](/reference/data-types/int-uint) | -| TINYINT | [Int8](/reference/data-types/int-uint) | -| UNSIGNED SMALLINT | [UInt16](/reference/data-types/int-uint) | -| SMALLINT | [Int16](/reference/data-types/int-uint) | -| UNSIGNED INT, UNSIGNED MEDIUMINT | [UInt32](/reference/data-types/int-uint) | -| INT, MEDIUMINT | [Int32](/reference/data-types/int-uint) | -| UNSIGNED BIGINT | [UInt64](/reference/data-types/int-uint) | -| BIGINT | [Int64](/reference/data-types/int-uint) | -| FLOAT | [Float32](/reference/data-types/float) | -| DOUBLE | [Float64](/reference/data-types/float) | -| DATE | [Date](/reference/data-types/date) | -| DATETIME, TIMESTAMP | [DateTime](/reference/data-types/datetime) | -| BINARY | [FixedString](/reference/data-types/fixedstring) | - -All other MySQL data types are converted into [String](/reference/data-types/string). - -[Nullable](/reference/data-types/nullable) is supported. +| UNSIGNED TINYINT | [UInt8](/core/reference/data-types/int-uint) | +| TINYINT | [Int8](/core/reference/data-types/int-uint) | +| UNSIGNED SMALLINT | [UInt16](/core/reference/data-types/int-uint) | +| SMALLINT | [Int16](/core/reference/data-types/int-uint) | +| UNSIGNED INT, UNSIGNED MEDIUMINT | [UInt32](/core/reference/data-types/int-uint) | +| INT, MEDIUMINT | [Int32](/core/reference/data-types/int-uint) | +| UNSIGNED BIGINT | [UInt64](/core/reference/data-types/int-uint) | +| BIGINT | [Int64](/core/reference/data-types/int-uint) | +| FLOAT | [Float32](/core/reference/data-types/float) | +| DOUBLE | [Float64](/core/reference/data-types/float) | +| DATE | [Date](/core/reference/data-types/date) | +| DATETIME, TIMESTAMP | [DateTime](/core/reference/data-types/datetime) | +| BINARY | [FixedString](/core/reference/data-types/fixedstring) | + +All other MySQL data types are converted into [String](/core/reference/data-types/string). + +[Nullable](/core/reference/data-types/nullable) is supported. ## Global variables support {#global-variables-support} diff --git a/reference/engines/database-engines/postgresql.mdx b/core/reference/engines/database-engines/postgresql.mdx similarity index 80% rename from reference/engines/database-engines/postgresql.mdx rename to core/reference/engines/database-engines/postgresql.mdx index 54391473..c28cfa42 100644 --- a/reference/engines/database-engines/postgresql.mdx +++ b/core/reference/engines/database-engines/postgresql.mdx @@ -32,19 +32,19 @@ ENGINE = PostgreSQL('host:port', 'database', 'user', 'password'[, `schema`, `use | PostgreSQL | ClickHouse | |------------------|--------------------------------------------------------------| -| DATE | [Date](/reference/data-types/date) | -| TIMESTAMP | [DateTime](/reference/data-types/datetime) | -| REAL | [Float32](/reference/data-types/float) | -| DOUBLE | [Float64](/reference/data-types/float) | -| DECIMAL, NUMERIC | [Decimal](/reference/data-types/decimal) | -| SMALLINT | [Int16](/reference/data-types/int-uint) | -| INTEGER | [Int32](/reference/data-types/int-uint) | -| BIGINT | [Int64](/reference/data-types/int-uint) | -| SERIAL | [UInt32](/reference/data-types/int-uint) | -| BIGSERIAL | [UInt64](/reference/data-types/int-uint) | -| TEXT, CHAR | [String](/reference/data-types/string) | -| INTEGER | Nullable([Int32](/reference/data-types/int-uint))| -| ARRAY | [Array](/reference/data-types/array) | +| DATE | [Date](/core/reference/data-types/date) | +| TIMESTAMP | [DateTime](/core/reference/data-types/datetime) | +| REAL | [Float32](/core/reference/data-types/float) | +| DOUBLE | [Float64](/core/reference/data-types/float) | +| DECIMAL, NUMERIC | [Decimal](/core/reference/data-types/decimal) | +| SMALLINT | [Int16](/core/reference/data-types/int-uint) | +| INTEGER | [Int32](/core/reference/data-types/int-uint) | +| BIGINT | [Int64](/core/reference/data-types/int-uint) | +| SERIAL | [UInt32](/core/reference/data-types/int-uint) | +| BIGSERIAL | [UInt64](/core/reference/data-types/int-uint) | +| TEXT, CHAR | [String](/core/reference/data-types/string) | +| INTEGER | Nullable([Int32](/core/reference/data-types/int-uint))| +| ARRAY | [Array](/core/reference/data-types/array) | ## Examples of use {#examples-of-use} diff --git a/reference/engines/database-engines/replicated.mdx b/core/reference/engines/database-engines/replicated.mdx similarity index 84% rename from reference/engines/database-engines/replicated.mdx rename to core/reference/engines/database-engines/replicated.mdx index 1a359327..87ea92de 100644 --- a/reference/engines/database-engines/replicated.mdx +++ b/core/reference/engines/database-engines/replicated.mdx @@ -8,7 +8,7 @@ title: 'Replicated' doc_type: 'reference' --- -The engine is based on the [Atomic](/reference/engines/database-engines/atomic) engine. It supports replication of metadata via DDL log being written to ZooKeeper and executed on all of the replicas for a given database. +The engine is based on the [Atomic](/core/reference/engines/database-engines/atomic) engine. It supports replication of metadata via DDL log being written to ZooKeeper and executed on all of the replicas for a given database. One ClickHouse server can have multiple replicated databases running and updating at the same time. But there can't be multiple replicas of the same replicated database. @@ -25,9 +25,9 @@ CREATE DATABASE testdb [UUID '...'] ENGINE = Replicated('zoo_path', 'shard_name' Parameters can be omitted, in such case missing parameters are substituted with defaults. -If `zoo_path` contains macro `{uuid}`, it is required to specify explicit UUID or add [ON CLUSTER](/reference/statements/distributed-ddl) to create statement to ensure all replicas use the same UUID for this database. +If `zoo_path` contains macro `{uuid}`, it is required to specify explicit UUID or add [ON CLUSTER](/core/reference/statements/distributed-ddl) to create statement to ensure all replicas use the same UUID for this database. -For [ReplicatedMergeTree](/reference/engines/table-engines/mergetree-family/replication) tables if no arguments provided, then default arguments are used: `/clickhouse/tables/{uuid}/{shard}` and `{replica}`. These can be changed in the server settings [default_replica_path](/reference/settings/server-settings/settings#default_replica_path) and [default_replica_name](/reference/settings/server-settings/settings#default_replica_name). Macro `{uuid}` is unfolded to table's uuid, `{shard}` and `{replica}` are unfolded to values from server config, not from database engine arguments. But in the future, it will be possible to use `shard_name` and `replica_name` of Replicated database. +For [ReplicatedMergeTree](/core/reference/engines/table-engines/mergetree-family/replication) tables if no arguments provided, then default arguments are used: `/clickhouse/tables/{uuid}/{shard}` and `{replica}`. These can be changed in the server settings [default_replica_path](/core/reference/settings/server-settings/settings#default_replica_path) and [default_replica_name](/core/reference/settings/server-settings/settings#default_replica_name). Macro `{uuid}` is unfolded to table's uuid, `{shard}` and `{replica}` are unfolded to values from server config, not from database engine arguments. But in the future, it will be possible to use `shard_name` and `replica_name` of Replicated database. Auxiliary ZooKeeper cluster is also supported for storing metadata of a replicated database instead of using the default ZooKeeper cluster. We can use SQL to create the replicated database with auxiliary ZooKeeper cluster as follows: @@ -37,19 +37,19 @@ CREATE DATABASE database_name ENGINE = Replicated('zookeeper_name_configured_in_ ## Specifics and recommendations {#specifics-and-recommendations} -DDL queries with `Replicated` database work in a similar way to [ON CLUSTER](/reference/statements/distributed-ddl) queries, but with minor differences. +DDL queries with `Replicated` database work in a similar way to [ON CLUSTER](/core/reference/statements/distributed-ddl) queries, but with minor differences. -First, the DDL request tries to execute on the initiator (the host that originally received the request from the user). If the request is not fulfilled, then the user immediately receives an error, other hosts do not try to fulfill it. If the request has been successfully completed on the initiator, then all other hosts will automatically retry until they complete it. The initiator will try to wait for the query to be completed on other hosts (no longer than [distributed_ddl_task_timeout](/reference/settings/session-settings#distributed_ddl_task_timeout)) and will return a table with the query execution statuses on each host. +First, the DDL request tries to execute on the initiator (the host that originally received the request from the user). If the request is not fulfilled, then the user immediately receives an error, other hosts do not try to fulfill it. If the request has been successfully completed on the initiator, then all other hosts will automatically retry until they complete it. The initiator will try to wait for the query to be completed on other hosts (no longer than [distributed_ddl_task_timeout](/core/reference/settings/session-settings#distributed_ddl_task_timeout)) and will return a table with the query execution statuses on each host. -The behavior in case of errors is regulated by the [distributed_ddl_output_mode](/reference/settings/session-settings#distributed_ddl_output_mode) setting, for a `Replicated` database it is better to set it to `null_status_on_timeout` — i.e. if some hosts did not have time to execute the request for [distributed_ddl_task_timeout](/reference/settings/session-settings#distributed_ddl_task_timeout), then do not throw an exception, but show the `NULL` status for them in the table. +The behavior in case of errors is regulated by the [distributed_ddl_output_mode](/core/reference/settings/session-settings#distributed_ddl_output_mode) setting, for a `Replicated` database it is better to set it to `null_status_on_timeout` — i.e. if some hosts did not have time to execute the request for [distributed_ddl_task_timeout](/core/reference/settings/session-settings#distributed_ddl_task_timeout), then do not throw an exception, but show the `NULL` status for them in the table. -The [system.clusters](/reference/system-tables/clusters) system table contains a cluster named like the replicated database, which consists of all replicas of the database. This cluster is updated automatically when creating/deleting replicas, and it can be used for [Distributed](/reference/engines/table-engines/special/distributed) tables. +The [system.clusters](/core/reference/system-tables/clusters) system table contains a cluster named like the replicated database, which consists of all replicas of the database. This cluster is updated automatically when creating/deleting replicas, and it can be used for [Distributed](/core/reference/engines/table-engines/special/distributed) tables. When creating a new replica of the database, this replica creates tables by itself. If the replica has been unavailable for a long time and has lagged behind the replication log — it checks its local metadata with the current metadata in ZooKeeper, moves the extra tables with data to a separate non-replicated database (so as not to accidentally delete anything superfluous), creates the missing tables, updates the table names if they have been renamed. The data is replicated at the `ReplicatedMergeTree` level, i.e. if the table is not replicated, the data will not be replicated (the database is responsible only for metadata). -[`ALTER TABLE FREEZE|ATTACH|FETCH|DROP|DROP DETACHED|DETACH PARTITION|PART`](/reference/statements/alter/partition) queries are allowed but not replicated. The database engine will only add/fetch/remove the partition/part to the current replica. However, if the table itself uses a Replicated table engine, then the data will be replicated after using `ATTACH`. +[`ALTER TABLE FREEZE|ATTACH|FETCH|DROP|DROP DETACHED|DETACH PARTITION|PART`](/core/reference/statements/alter/partition) queries are allowed but not replicated. The database engine will only add/fetch/remove the partition/part to the current replica. However, if the table itself uses a Replicated table engine, then the data will be replicated after using `ATTACH`. -In case you need only configure a cluster without maintaining table replication, refer to [Cluster Discovery](/guides/oss/deployment-and-scaling/cluster-discovery) feature. +In case you need only configure a cluster without maintaining table replication, refer to [Cluster Discovery](/core/guides/oss/deployment-and-scaling/cluster-discovery) feature. ## Usage example {#usage-example} diff --git a/reference/engines/database-engines/shared.mdx b/core/reference/engines/database-engines/shared.mdx similarity index 100% rename from reference/engines/database-engines/shared.mdx rename to core/reference/engines/database-engines/shared.mdx diff --git a/reference/engines/database-engines/sqlite.mdx b/core/reference/engines/database-engines/sqlite.mdx similarity index 74% rename from reference/engines/database-engines/sqlite.mdx rename to core/reference/engines/database-engines/sqlite.mdx index 5e1181a0..9ddcb96c 100644 --- a/reference/engines/database-engines/sqlite.mdx +++ b/core/reference/engines/database-engines/sqlite.mdx @@ -26,22 +26,22 @@ The table below shows the default type mapping when ClickHouse automatically inf | SQLite | ClickHouse | |---------------|---------------------------------------------------------| -| INTEGER | [Int32](/reference/data-types/int-uint) | -| REAL | [Float32](/reference/data-types/float) | -| TEXT | [String](/reference/data-types/string) | -| TEXT | [UUID](/reference/data-types/uuid) | -| BLOB | [String](/reference/data-types/string) | - -When you explicitly define a table with specific ClickHouse types using the [SQLite table engine](/reference/engines/table-engines/integrations/sqlite), the following ClickHouse types can be parsed from SQLite TEXT columns: - -- [Date](/reference/data-types/date), [Date32](/reference/data-types/date32) -- [DateTime](/reference/data-types/datetime), [DateTime64](/reference/data-types/datetime64) -- [UUID](/reference/data-types/uuid) -- [Enum8, Enum16](/reference/data-types/enum) -- [Decimal32, Decimal64, Decimal128, Decimal256](/reference/data-types/decimal) -- [FixedString](/reference/data-types/fixedstring) -- All integer types ([UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64](/reference/data-types/int-uint)) -- [Float32, Float64](/reference/data-types/float) +| INTEGER | [Int32](/core/reference/data-types/int-uint) | +| REAL | [Float32](/core/reference/data-types/float) | +| TEXT | [String](/core/reference/data-types/string) | +| TEXT | [UUID](/core/reference/data-types/uuid) | +| BLOB | [String](/core/reference/data-types/string) | + +When you explicitly define a table with specific ClickHouse types using the [SQLite table engine](/core/reference/engines/table-engines/integrations/sqlite), the following ClickHouse types can be parsed from SQLite TEXT columns: + +- [Date](/core/reference/data-types/date), [Date32](/core/reference/data-types/date32) +- [DateTime](/core/reference/data-types/datetime), [DateTime64](/core/reference/data-types/datetime64) +- [UUID](/core/reference/data-types/uuid) +- [Enum8, Enum16](/core/reference/data-types/enum) +- [Decimal32, Decimal64, Decimal128, Decimal256](/core/reference/data-types/decimal) +- [FixedString](/core/reference/data-types/fixedstring) +- All integer types ([UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64](/core/reference/data-types/int-uint)) +- [Float32, Float64](/core/reference/data-types/float) SQLite has dynamic typing, and its type access functions perform automatic type coercion. For example, reading a TEXT column as an integer will return 0 if the text cannot be parsed as a number. This means that if a ClickHouse table is defined with a different type than the underlying SQLite column, values may be silently coerced rather than causing an error. diff --git a/reference/engines/engines.mdx b/core/reference/engines/engines.mdx similarity index 54% rename from reference/engines/engines.mdx rename to core/reference/engines/engines.mdx index 14b15114..ddf8a35d 100644 --- a/reference/engines/engines.mdx +++ b/core/reference/engines/engines.mdx @@ -7,5 +7,5 @@ doc_type: 'landing-page' | Page | Description | |----------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Database Engines](/reference/engines/database-engines) | Database engines in ClickHouse allow you to work with tables and determine how data is stored and managed. Learn more about the various database engines available in ClickHouse. | -| [Table Engines](/reference/engines/table-engines) | Table engines in ClickHouse are a fundamental concept that determines how data is stored, written, and read. Learn more about the various table engines available in ClickHouse. | +| [Database Engines](/core/reference/engines/database-engines) | Database engines in ClickHouse allow you to work with tables and determine how data is stored and managed. Learn more about the various database engines available in ClickHouse. | +| [Table Engines](/core/reference/engines/table-engines) | Table engines in ClickHouse are a fundamental concept that determines how data is stored, written, and read. Learn more about the various table engines available in ClickHouse. | diff --git a/core/reference/engines/table-engines/index.mdx b/core/reference/engines/table-engines/index.mdx new file mode 100644 index 00000000..7e538c65 --- /dev/null +++ b/core/reference/engines/table-engines/index.mdx @@ -0,0 +1,112 @@ +--- +description: 'Documentation for Table Engines' +slug: /engines/table-engines/ +toc_folder_title: 'Table Engines' +toc_priority: 26 +toc_title: 'Introduction' +title: 'Table Engines' +doc_type: 'reference' +--- + +The table engine (type of table) determines: + +- How and where data is stored, where to write it to, and where to read it from. +- Which queries are supported, and how. +- Concurrent data access. +- Use of indexes, if present. +- Whether multithread request execution is possible. +- Data replication parameters. + +## Engine families {#engine-families} + +### MergeTree {#mergetree} + +The most universal and functional table engines for high-load tasks. The property shared by these engines is quick data insertion with subsequent background data processing. `MergeTree` family engines support data replication (with [Replicated\*](/core/reference/engines/table-engines/mergetree-family/replication) versions of engines), partitioning, secondary data-skipping indexes, and other features not supported in other engines. + +Engines in the family: + +| MergeTree Engines | +|-------------------------------------------------------------------------------------------------------------------------------------------| +| [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) | +| [ReplacingMergeTree](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) | +| [SummingMergeTree](/core/reference/engines/table-engines/mergetree-family/summingmergetree) | +| [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) | +| [CollapsingMergeTree](/core/reference/engines/table-engines/mergetree-family/collapsingmergetree) | +| [VersionedCollapsingMergeTree](/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree) | +| [GraphiteMergeTree](/core/reference/engines/table-engines/mergetree-family/graphitemergetree) | +| [CoalescingMergeTree](/core/reference/engines/table-engines/mergetree-family/coalescingmergetree) | + +### Log {#log} + +Lightweight [engines](/core/reference/engines/table-engines/log-family) with minimum functionality. They're the most effective when you need to quickly write many small tables (up to approximately 1 million rows) and read them later as a whole. + +Engines in the family: + +| Log Engines | +|----------------------------------------------------------------------------| +| [TinyLog](/core/reference/engines/table-engines/log-family/tinylog) | +| [StripeLog](/core/reference/engines/table-engines/log-family/stripelog) | +| [Log](/core/reference/engines/table-engines/log-family/log) | + +### Integration engines {#integration-engines} + +Engines for communicating with other data storage and processing systems. + +Engines in the family: + +| Integration Engines | +|---------------------------------------------------------------------------------| +| [ODBC](/core/reference/engines/table-engines/integrations/odbc) | +| [JDBC](/core/reference/engines/table-engines/integrations/jdbc) | +| [MySQL](/core/reference/engines/table-engines/integrations/mysql) | +| [MongoDB](/core/reference/engines/table-engines/integrations/mongodb) | +| [Redis](/core/reference/engines/table-engines/integrations/redis) | +| [HDFS](/core/reference/engines/table-engines/integrations/hdfs) | +| [S3](/core/reference/engines/table-engines/integrations/s3) | +| [Kafka](/core/reference/engines/table-engines/integrations/kafka) | +| [EmbeddedRocksDB](/core/reference/engines/table-engines/integrations/embedded-rocksdb) | +| [RabbitMQ](/core/reference/engines/table-engines/integrations/rabbitmq) | +| [PostgreSQL](/core/reference/engines/table-engines/integrations/postgresql) | +| [S3Queue](/core/reference/engines/table-engines/integrations/s3queue) | +| [TimeSeries](/core/reference/engines/table-engines/integrations/time-series) | + +### Special engines {#special-engines} + +Engines in the family: + +| Special Engines | +|---------------------------------------------------------------| +| [Distributed](/core/reference/engines/table-engines/special/distributed) | +| [Dictionary](/core/reference/engines/table-engines/special/dictionary) | +| [Merge](/core/reference/engines/table-engines/special/merge) | +| [Executable](/core/reference/engines/table-engines/special/executable) | +| [File](/core/reference/engines/table-engines/special/file) | +| [Null](/core/reference/engines/table-engines/special/null) | +| [Set](/core/reference/engines/table-engines/special/set) | +| [Join](/core/reference/engines/table-engines/special/join) | +| [URL](/core/reference/engines/table-engines/special/url) | +| [View](/core/reference/engines/table-engines/special/view) | +| [Memory](/core/reference/engines/table-engines/special/memory) | +| [Buffer](/core/reference/engines/table-engines/special/buffer) | +| [External Data](/core/reference/engines/table-engines/special/external-data) | +| [GenerateRandom](/core/reference/engines/table-engines/special/generate) | +| [KeeperMap](/core/reference/engines/table-engines/special/keepermap) | +| [FileLog](/core/reference/engines/table-engines/special/filelog) | + +## Virtual columns {#table_engines-virtual_columns} + +A virtual column is an integral table engine attribute that is defined in the engine source code. + +You shouldn't specify virtual columns in the `CREATE TABLE` query, and you can't see them in `SHOW CREATE TABLE` and `DESCRIBE TABLE` query results. Virtual columns are also read-only, so you can't insert data into virtual columns. + +To select data from a virtual column, you must specify its name in the `SELECT` query. `SELECT *` does not return values from virtual columns. + +If you create a table with a column that has the same name as one of the table virtual columns, the virtual column becomes inaccessible. We do not recommend doing this. To help avoid conflicts, virtual column names are usually prefixed with an underscore. + +- `_table` — Contains the name of the table from which data was read. Type: [String](/core/reference/data-types/string). + + Regardless of the table engine being used, each table includes a universal virtual column named `_table`. + + When querying a table with the merge table engine, you can set the constant conditions on `_table` in the `WHERE/PREWHERE` clause (for example, `WHERE _table='xyz'`). In this case the read operation is performed only for that tables where the condition on `_table` is satisfied, so the `_table` column acts as an index. + + When using queries formatted like `SELECT ... FROM (... UNION ALL ...)`, we can determine which actual table the returned rows originate from by specifying the `_table` column. diff --git a/reference/engines/table-engines/integrations/ExternalDistributed.mdx b/core/reference/engines/table-engines/integrations/ExternalDistributed.mdx similarity index 75% rename from reference/engines/table-engines/integrations/ExternalDistributed.mdx rename to core/reference/engines/table-engines/integrations/ExternalDistributed.mdx index 054453b0..da0802fc 100644 --- a/reference/engines/table-engines/integrations/ExternalDistributed.mdx +++ b/core/reference/engines/table-engines/integrations/ExternalDistributed.mdx @@ -8,7 +8,7 @@ title: 'ExternalDistributed table engine' doc_type: 'reference' --- -The `ExternalDistributed` engine allows to perform `SELECT` queries on data that is stored on a remote servers MySQL or PostgreSQL. Accepts [MySQL](/reference/engines/table-engines/integrations/mysql) or [PostgreSQL](/reference/engines/table-engines/integrations/postgresql) engines as an argument so sharding is possible. +The `ExternalDistributed` engine allows to perform `SELECT` queries on data that is stored on a remote servers MySQL or PostgreSQL. Accepts [MySQL](/core/reference/engines/table-engines/integrations/mysql) or [PostgreSQL](/core/reference/engines/table-engines/integrations/postgresql) engines as an argument so sharding is possible. ## Creating a table {#creating-a-table} @@ -21,12 +21,12 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ) ENGINE = ExternalDistributed('engine', 'host:port', 'database', 'table', 'user', 'password'); ``` -See a detailed description of the [CREATE TABLE](/reference/statements/create/table) query. +See a detailed description of the [CREATE TABLE](/core/reference/statements/create/table) query. The table structure can differ from the original table structure: - Column names should be the same as in the original table, but you can use just some of these columns and in any order. -- Column types may differ from those in the original table. ClickHouse tries to [cast](/reference/functions/regular-functions/type-conversion-functions#CAST) values to the ClickHouse data types. +- Column types may differ from those in the original table. ClickHouse tries to [cast](/core/reference/functions/regular-functions/type-conversion-functions#CAST) values to the ClickHouse data types. **Engine Parameters** @@ -51,6 +51,6 @@ You can specify any number of shards and any number of replicas for each shard. **See Also** -- [MySQL table engine](/reference/engines/table-engines/integrations/mysql) -- [PostgreSQL table engine](/reference/engines/table-engines/integrations/postgresql) -- [Distributed table engine](/reference/engines/table-engines/special/distributed) +- [MySQL table engine](/core/reference/engines/table-engines/integrations/mysql) +- [PostgreSQL table engine](/core/reference/engines/table-engines/integrations/postgresql) +- [Distributed table engine](/core/reference/engines/table-engines/special/distributed) diff --git a/reference/engines/table-engines/integrations/arrowflight.mdx b/core/reference/engines/table-engines/integrations/arrowflight.mdx similarity index 96% rename from reference/engines/table-engines/integrations/arrowflight.mdx rename to core/reference/engines/table-engines/integrations/arrowflight.mdx index 88f46398..cfe348ac 100644 --- a/reference/engines/table-engines/integrations/arrowflight.mdx +++ b/core/reference/engines/table-engines/integrations/arrowflight.mdx @@ -60,4 +60,4 @@ SELECT * FROM remote_flight_data ORDER BY id; ## See Also {#see-also} * [Apache Arrow Flight SQL](https://arrow.apache.org/docs/format/FlightSql.html) -* [Arrow format integration in ClickHouse](/reference/formats/Arrow/Arrow) +* [Arrow format integration in ClickHouse](/core/reference/formats/Arrow/Arrow) diff --git a/reference/engines/table-engines/integrations/azure-queue.mdx b/core/reference/engines/table-engines/integrations/azure-queue.mdx similarity index 89% rename from reference/engines/table-engines/integrations/azure-queue.mdx rename to core/reference/engines/table-engines/integrations/azure-queue.mdx index 9ef1ccc2..4006cdff 100644 --- a/reference/engines/table-engines/integrations/azure-queue.mdx +++ b/core/reference/engines/table-engines/integrations/azure-queue.mdx @@ -23,9 +23,9 @@ CREATE TABLE test (name String, value UInt32) **Engine parameters** -`AzureQueue` parameters are the same as `AzureBlobStorage` table engine supports. See parameters section [here](/reference/engines/table-engines/integrations/azureBlobStorage). +`AzureQueue` parameters are the same as `AzureBlobStorage` table engine supports. See parameters section [here](/core/reference/engines/table-engines/integrations/azureBlobStorage). -Similar to the [AzureBlobStorage](/reference/engines/table-engines/integrations/azureBlobStorage) table engine, users can use Azurite emulator for local Azure Storage development. Further details [here](https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=docker-hub%2Cblob-storage). +Similar to the [AzureBlobStorage](/core/reference/engines/table-engines/integrations/azureBlobStorage) table engine, users can use Azurite emulator for local Azure Storage development. Further details [here](https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=docker-hub%2Cblob-storage). **Example** @@ -41,7 +41,7 @@ SETTINGS mode = 'unordered' ## Settings {#settings} -The set of supported settings is mostly the same as for `S3Queue` table engine, but without `s3queue_` prefix. See [full list of settings settings](/reference/engines/table-engines/integrations/s3queue#settings). +The set of supported settings is mostly the same as for `S3Queue` table engine, but without `s3queue_` prefix. See [full list of settings settings](/core/reference/engines/table-engines/integrations/s3queue#settings). To get a list of settings, configured for the table, use `system.azure_queue_settings` table. Available from `24.10`. Below are the settings only compatible with AzureQueue and not applicable for S3Queue. @@ -90,7 +90,7 @@ The AzureQueue engine has a special setting for SELECT queries: `commit_on_selec ## Description {#description} -`SELECT` is not particularly useful for streaming import (except for debugging), because each file can be imported only once. It is more practical to create real-time threads using [materialized views](/reference/statements/create/view). To do this: +`SELECT` is not particularly useful for streaming import (except for debugging), because each file can be imported only once. It is more practical to create real-time threads using [materialized views](/core/reference/statements/create/view). To do this: 1. Use the engine to create a table for consuming from specified path in S3 and consider it a data stream. 2. Create a table with the desired structure. @@ -120,13 +120,13 @@ SELECT * FROM stats ORDER BY key; - `_path` — Path to the file. - `_file` — Name of the file. -For more information about virtual columns see [here](/reference/engines/table-engines#table_engines-virtual_columns). +For more information about virtual columns see [here](/core/reference/engines/table-engines#table_engines-virtual_columns). ## Introspection {#introspection} Enable logging for the table via the table setting `enable_logging_to_queue_log=1`. -Introspection capabilities are the same as the [S3Queue table engine](/reference/engines/table-engines/integrations/s3queue#introspection) with several distinct differences: +Introspection capabilities are the same as the [S3Queue table engine](/core/reference/engines/table-engines/integrations/s3queue#introspection) with several distinct differences: 1. Use the `system.azure_queue_metadata_cache` for the in-memory state of the queue for server versions >= 25.1. For older versions use the `system.s3queue_metadata_cache` (it would contain information for `azure` tables as well). 2. Enable the `system.azure_queue_log` via the main ClickHouse configuration e.g. diff --git a/reference/engines/table-engines/integrations/azureBlobStorage.mdx b/core/reference/engines/table-engines/integrations/azureBlobStorage.mdx similarity index 93% rename from reference/engines/table-engines/integrations/azureBlobStorage.mdx rename to core/reference/engines/table-engines/integrations/azureBlobStorage.mdx index 944f1de3..42ed802c 100644 --- a/reference/engines/table-engines/integrations/azureBlobStorage.mdx +++ b/core/reference/engines/table-engines/integrations/azureBlobStorage.mdx @@ -26,7 +26,7 @@ CREATE TABLE azure_blob_storage_table (name String, value UInt32) - `blobpath` - file path. Supports following wildcards in readonly mode: `*`, `**`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` — numbers, `'abc'`, `'def'` — strings. - `account_name` - if storage_account_url is used, then account name can be specified here - `account_key` - if storage_account_url is used, then account key can be specified here -- `format` — The [format](/reference/formats) of the file. +- `format` — The [format](/core/reference/formats) of the file. - `compression` — Supported values: `none`, `gzip/gz`, `brotli/br`, `xz/LZMA`, `zstd/zst`. By default, it will autodetect compression by file extension. (same as setting to `auto`). - `partition_strategy` – Options: `WILDCARD` or `HIVE`. `WILDCARD` requires a `{_partition_id}` in the path, which is replaced with the partition key. `HIVE` does not allow wildcards, assumes the path is the table root, and generates Hive-style partitioned directories with Snowflake IDs as filenames and the file format as the extension. Defaults to `WILDCARD` - `partition_columns_in_data_file` - Only used with `HIVE` partition strategy. Tells ClickHouse whether to expect partition columns to be written in the data file. Defaults `false`. @@ -64,13 +64,13 @@ SELECT * FROM test_table; Currently there are 3 ways to authenticate: - `Managed Identity` - Can be used by providing an `endpoint`, `connection_string` or `storage_account_url`. -- `SAS Token` - Can be used by providing an `endpoint`, `connection_string` or `storage_account_url`. It is identified by presence of '?' in the url. See [azureBlobStorage](/reference/functions/table-functions/azureBlobStorage#using-shared-access-signatures-sas-sas-tokens) for examples. +- `SAS Token` - Can be used by providing an `endpoint`, `connection_string` or `storage_account_url`. It is identified by presence of '?' in the url. See [azureBlobStorage](/core/reference/functions/table-functions/azureBlobStorage#using-shared-access-signatures-sas-sas-tokens) for examples. - `Workload Identity` - Can be used by providing an `endpoint` or `storage_account_url`. If `use_workload_identity` parameter is set in config, ([workload identity](https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/identity/azure-identity#authenticate-azure-hosted-applications)) is used for authentication. ### Data cache {#data-cache} `Azure` table engine supports data caching on local disk. -See filesystem cache configuration options and usage in this [section](/concepts/features/configuration/server-config/storing-data#using-local-cache). +See filesystem cache configuration options and usage in this [section](/core/concepts/features/configuration/server-config/storing-data#using-local-cache). Caching is made depending on the path and ETag of the storage object, so clickhouse will not read a stale cache version. To enable caching use a setting `filesystem_cache_name = ''` and `enable_filesystem_cache = 1`. @@ -94,13 +94,13 @@ SETTINGS filesystem_cache_name = 'cache_for_azure', enable_filesystem_cache = 1; ``` -2. reuse cache configuration (and therefore cache storage) from clickhouse `storage_configuration` section, [described here](/concepts/features/configuration/server-config/storing-data#using-local-cache) +2. reuse cache configuration (and therefore cache storage) from clickhouse `storage_configuration` section, [described here](/core/concepts/features/configuration/server-config/storing-data#using-local-cache) ### PARTITION BY {#partition-by} `PARTITION BY` — Optional. In most cases you don't need a partition key, and if it is needed you generally don't need a partition key more granular than by month. Partitioning does not speed up queries (in contrast to the ORDER BY expression). You should never use too granular partitioning. Don't partition your data by client identifiers or names (instead, make client identifier or name the first column in the ORDER BY expression). -For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](/reference/data-types/date). The partition names here have the `"YYYYMM"` format. +For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](/core/reference/data-types/date). The partition names here have the `"YYYYMM"` format. #### Partition strategy {#partition-strategy} @@ -127,4 +127,4 @@ arthur :) select _path, * from azure_table; ## See also {#see-also} -[Azure Blob Storage Table Function](/reference/functions/table-functions/azureBlobStorage) +[Azure Blob Storage Table Function](/core/reference/functions/table-functions/azureBlobStorage) diff --git a/reference/engines/table-engines/integrations/deltalake.mdx b/core/reference/engines/table-engines/integrations/deltalake.mdx similarity index 94% rename from reference/engines/table-engines/integrations/deltalake.mdx rename to core/reference/engines/table-engines/integrations/deltalake.mdx index 348ee7df..6d44b303 100644 --- a/reference/engines/table-engines/integrations/deltalake.mdx +++ b/core/reference/engines/table-engines/integrations/deltalake.mdx @@ -29,7 +29,7 @@ ENGINE = DeltaLake(url, [aws_access_key_id, aws_secret_access_key,] [extra_crede - `aws_access_key_id`, `aws_secret_access_key` - Long-term credentials for the [AWS](https://aws.amazon.com/) account user. You can use these to authenticate your requests. Parameter is optional. If credentials are not specified, they are used from the configuration file. - `extra_credentials` - Optional. Used to pass a `role_arn` for role-based access in ClickHouse Cloud. See [Secure S3](/products/cloud/guides/data-sources/accessing-s3-data-securely) for configuration steps. -Engine parameters can be specified using [Named Collections](/concepts/features/configuration/server-config/named-collections). +Engine parameters can be specified using [Named Collections](/core/concepts/features/configuration/server-config/named-collections). **Example** @@ -136,8 +136,8 @@ Writes to Azure are not yet supported but work for S3 and GCS. ### Data cache {#data-cache} -The `DeltaLake` table engine and table function support data caching, the same as `S3`, `AzureBlobStorage`, `HDFS` storages. See ["S3 table engine"](/reference/engines/table-engines/integrations/s3#data-cache) for more details. +The `DeltaLake` table engine and table function support data caching, the same as `S3`, `AzureBlobStorage`, `HDFS` storages. See ["S3 table engine"](/core/reference/engines/table-engines/integrations/s3#data-cache) for more details. ## See also {#see-also} -- [deltaLake table function](/reference/functions/table-functions/deltalake) +- [deltaLake table function](/core/reference/functions/table-functions/deltalake) diff --git a/reference/engines/table-engines/integrations/embedded-rocksdb.mdx b/core/reference/engines/table-engines/integrations/embedded-rocksdb.mdx similarity index 97% rename from reference/engines/table-engines/integrations/embedded-rocksdb.mdx rename to core/reference/engines/table-engines/integrations/embedded-rocksdb.mdx index 066b1940..a5086066 100644 --- a/reference/engines/table-engines/integrations/embedded-rocksdb.mdx +++ b/core/reference/engines/table-engines/integrations/embedded-rocksdb.mdx @@ -222,5 +222,5 @@ ORDER BY key ASC ``` ### More information on Joins {#more-information-on-joins} -- [`join_algorithm` setting](/reference/settings/session-settings#join_algorithm) -- [JOIN clause](/reference/statements/select/join) +- [`join_algorithm` setting](/core/reference/settings/session-settings#join_algorithm) +- [JOIN clause](/core/reference/statements/select/join) diff --git a/reference/engines/table-engines/integrations/hdfs.mdx b/core/reference/engines/table-engines/integrations/hdfs.mdx similarity index 90% rename from reference/engines/table-engines/integrations/hdfs.mdx rename to core/reference/engines/table-engines/integrations/hdfs.mdx index 04bbc3b4..13c4110c 100644 --- a/reference/engines/table-engines/integrations/hdfs.mdx +++ b/core/reference/engines/table-engines/integrations/hdfs.mdx @@ -12,7 +12,7 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ -This engine provides integration with the [Apache Hadoop](https://en.wikipedia.org/wiki/Apache_Hadoop) ecosystem by allowing to manage data on [HDFS](https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html) via ClickHouse. This engine is similar to the [File](/reference/engines/table-engines/special/file) and [URL](/reference/engines/table-engines/special/url) engines, but provides Hadoop-specific features. +This engine provides integration with the [Apache Hadoop](https://en.wikipedia.org/wiki/Apache_Hadoop) ecosystem by allowing to manage data on [HDFS](https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html) via ClickHouse. This engine is similar to the [File](/core/reference/engines/table-engines/special/file) and [URL](/core/reference/engines/table-engines/special/url) engines, but provides Hadoop-specific features. This feature is not supported by ClickHouse engineers, and it is known to have a sketchy quality. In case of any problems, fix them yourself and submit a pull request. @@ -28,14 +28,14 @@ ENGINE = HDFS(URI, format) - `format` - specifies one of the available file formats. To perform `SELECT` queries, the format must be supported for input, and to perform `INSERT` queries – for output. The available formats are listed in the -[Formats](/reference/formats#formats-overview) section. +[Formats](/core/reference/formats#formats-overview) section. - [PARTITION BY expr] ### PARTITION BY {#partition-by} `PARTITION BY` — Optional. In most cases you don't need a partition key, and if it is needed you generally don't need a partition key more granular than by month. Partitioning does not speed up queries (in contrast to the ORDER BY expression). You should never use too granular partitioning. Don't partition your data by client identifiers or names (instead, make client identifier or name the first column in the ORDER BY expression). -For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](/reference/data-types/date). The partition names here have the `"YYYYMM"` format. +For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](/core/reference/data-types/date). The partition names here have the `"YYYYMM"` format. **Example:** @@ -70,7 +70,7 @@ SELECT * FROM hdfs_engine_table LIMIT 2 - Not supported: - `ALTER` and `SELECT...SAMPLE` operations. - Indexes. - - [Zero-copy](/concepts/features/configuration/server-config/storing-data#zero-copy) replication is possible, but not recommended. + - [Zero-copy](/core/concepts/features/configuration/server-config/storing-data#zero-copy) replication is possible, but not recommended. **Zero-copy replication is not ready for production** @@ -87,7 +87,7 @@ Multiple path components can have globs. For being processed file should exists - `{some_string,another_string,yet_another_one}` — Substitutes any of strings `'some_string', 'another_string', 'yet_another_one'`. - `{N..M}` — Substitutes any number in range from N to M including both borders. -Constructions with `{}` are similar to the [remote](/reference/functions/table-functions/remote) table function. +Constructions with `{}` are similar to the [remote](/core/reference/functions/table-functions/remote) table function. **Example** @@ -243,10 +243,10 @@ libhdfs3 support HDFS namenode HA. ## Storage settings {#storage-settings} -- [hdfs_truncate_on_insert](/reference/settings/session-settings#hdfs_truncate_on_insert) - allows to truncate file before insert into it. Disabled by default. -- [hdfs_create_new_file_on_insert](/reference/settings/session-settings#hdfs_create_new_file_on_insert) - allows to create a new file on each insert if format has suffix. Disabled by default. -- [hdfs_skip_empty_files](/reference/settings/session-settings#hdfs_skip_empty_files) - allows to skip empty files while reading. Disabled by default. +- [hdfs_truncate_on_insert](/core/reference/settings/session-settings#hdfs_truncate_on_insert) - allows to truncate file before insert into it. Disabled by default. +- [hdfs_create_new_file_on_insert](/core/reference/settings/session-settings#hdfs_create_new_file_on_insert) - allows to create a new file on each insert if format has suffix. Disabled by default. +- [hdfs_skip_empty_files](/core/reference/settings/session-settings#hdfs_skip_empty_files) - allows to skip empty files while reading. Disabled by default. **See Also** -- [Virtual columns](/reference/engines/table-engines#table_engines-virtual_columns) +- [Virtual columns](/core/reference/engines/table-engines#table_engines-virtual_columns) diff --git a/reference/engines/table-engines/integrations/hive.mdx b/core/reference/engines/table-engines/integrations/hive.mdx similarity index 99% rename from reference/engines/table-engines/integrations/hive.mdx rename to core/reference/engines/table-engines/integrations/hive.mdx index 0c5dd017..0a498b97 100644 --- a/reference/engines/table-engines/integrations/hive.mdx +++ b/core/reference/engines/table-engines/integrations/hive.mdx @@ -30,7 +30,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ) ENGINE = Hive('thrift://host:port', 'database', 'table'); PARTITION BY expr ``` -See a detailed description of the [CREATE TABLE](/reference/statements/create/table) query. +See a detailed description of the [CREATE TABLE](/core/reference/statements/create/table) query. The table structure can differ from the original Hive table structure: - Column names should be the same as in the original Hive table, but you can use just some of these columns and in any order, also you can use some alias columns calculated from other columns. diff --git a/reference/engines/table-engines/integrations/hudi.mdx b/core/reference/engines/table-engines/integrations/hudi.mdx similarity index 93% rename from reference/engines/table-engines/integrations/hudi.mdx rename to core/reference/engines/table-engines/integrations/hudi.mdx index d59700c7..24d3f6aa 100644 --- a/reference/engines/table-engines/integrations/hudi.mdx +++ b/core/reference/engines/table-engines/integrations/hudi.mdx @@ -24,7 +24,7 @@ CREATE TABLE hudi_table - `aws_access_key_id`, `aws_secret_access_key` - Long-term credentials for the [AWS](https://aws.amazon.com/) account user. You can use these to authenticate your requests. Parameter is optional. If credentials are not specified, they are used from the configuration file. - `extra_credentials` - Optional. Used to pass a `role_arn` for role-based access in ClickHouse Cloud. See [Secure S3](/products/cloud/guides/data-sources/accessing-s3-data-securely) for configuration steps. -Engine parameters can be specified using [Named Collections](/concepts/features/configuration/server-config/named-collections). +Engine parameters can be specified using [Named Collections](/core/concepts/features/configuration/server-config/named-collections). **Example** @@ -52,4 +52,4 @@ CREATE TABLE hudi_table ENGINE=Hudi(hudi_conf, filename = 'test_table') ## See also {#see-also} -- [hudi table function](/reference/functions/table-functions/hudi) +- [hudi table function](/core/reference/functions/table-functions/hudi) diff --git a/reference/engines/table-engines/integrations/iceberg.mdx b/core/reference/engines/table-engines/integrations/iceberg.mdx similarity index 96% rename from reference/engines/table-engines/integrations/iceberg.mdx rename to core/reference/engines/table-engines/integrations/iceberg.mdx index 2bcdcb1f..a9af580a 100644 --- a/reference/engines/table-engines/integrations/iceberg.mdx +++ b/core/reference/engines/table-engines/integrations/iceberg.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' --- -We recommend using the [Iceberg Table Function](/reference/functions/table-functions/iceberg) for working with Iceberg data in ClickHouse. The Iceberg Table Function currently provides sufficient functionality, offering a partial read-only interface for Iceberg tables. +We recommend using the [Iceberg Table Function](/core/reference/functions/table-functions/iceberg) for working with Iceberg data in ClickHouse. The Iceberg Table Function currently provides sufficient functionality, offering a partial read-only interface for Iceberg tables. The Iceberg Table Engine is available but may have limitations. ClickHouse wasn't originally designed to support tables with externally changing schemas, which can affect the functionality of the Iceberg Table Engine. As a result, some features that work with regular tables may be unavailable or may not function correctly, especially when using the old analyzer. @@ -42,7 +42,7 @@ Description of the arguments coincides with description of arguments in engines For `IcebergS3`, an optional `extra_credentials` parameter can be used to pass a `role_arn` for role-based access in ClickHouse Cloud. See [Secure S3](/products/cloud/guides/data-sources/accessing-s3-data-securely) for configuration steps. -Engine parameters can be specified using [Named Collections](/concepts/features/configuration/server-config/named-collections) +Engine parameters can be specified using [Named Collections](/core/concepts/features/configuration/server-config/named-collections) ### Example {#example} @@ -321,7 +321,7 @@ CREATE TABLE example_table ENGINE = Iceberg( ## Data cache {#data-cache} -`Iceberg` table engine and table function support data caching same as `S3`, `AzureBlobStorage`, `HDFS` storages. See [here](/reference/engines/table-engines/integrations/s3#data-cache). +`Iceberg` table engine and table function support data caching same as `S3`, `AzureBlobStorage`, `HDFS` storages. See [here](/core/reference/engines/table-engines/integrations/s3#data-cache). ## Metadata cache {#metadata-cache} @@ -357,4 +357,4 @@ SETTINGS iceberg_metadata_staleness_ms=120000 ## See also {#see-also} -- [iceberg table function](/reference/functions/table-functions/iceberg) +- [iceberg table function](/core/reference/functions/table-functions/iceberg) diff --git a/core/reference/engines/table-engines/integrations/index.mdx b/core/reference/engines/table-engines/integrations/index.mdx new file mode 100644 index 00000000..eeb29393 --- /dev/null +++ b/core/reference/engines/table-engines/integrations/index.mdx @@ -0,0 +1,47 @@ +--- +description: 'Documentation for Table Engines for Integrations' +sidebarTitle: 'Integrations' +slug: /engines/table-engines/integrations/ +title: 'Table Engines for Integrations' +doc_type: 'reference' +--- + +ClickHouse provides various means for integrating with external systems, including table engines. Like with all other table engines, the configuration is done using `CREATE TABLE` or `ALTER TABLE` queries. Then from a user perspective, the configured integration looks like a normal table, but queries to it are proxied to the external system. This transparent querying is one of the key advantages of this approach over alternative integration methods, like dictionaries or table functions, which require the use of custom query methods on each use. + +{/* The table of contents table for this page is automatically generated by +https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh +from the YAML front matter fields: slug, description, title. + +If you've spotted an error, please edit the YML frontmatter of the pages themselves. +*/} + +{/*AUTOGENERATED_START*/} +| Page | Description | +|-----|-----| +| [AzureBlobStorage table engine](/core/reference/engines/table-engines/integrations/azureBlobStorage) | This engine provides an integration with Azure Blob Storage ecosystem. | +| [DeltaLake table engine](/core/reference/engines/table-engines/integrations/deltalake) | This engine provides a read-only integration with existing Delta Lake tables in Amazon S3. | +| [EmbeddedRocksDB table engine](/core/reference/engines/table-engines/integrations/embedded-rocksdb) | This engine allows integrating ClickHouse with RocksDB | +| [ExternalDistributed table engine](/core/reference/engines/table-engines/integrations/ExternalDistributed) | The `ExternalDistributed` engine allows to perform `SELECT` queries on data that is stored on a remote servers MySQL or PostgreSQL. Accepts MySQL or PostgreSQL engines as an argument so sharding is possible. | +| [TimeSeries table engine](/core/reference/engines/table-engines/integrations/time-series) | A table engine storing time series, i.e. a set of values associated with timestamps and tags (or labels). | +| [HDFS table engine](/core/reference/engines/table-engines/integrations/hdfs) | This engine provides integration with the Apache Hadoop ecosystem by allowing to manage data on HDFS via ClickHouse. This engine is similar to the File and URL engines, but provides Hadoop-specific features. | +| [Hive table engine](/core/reference/engines/table-engines/integrations/hive) | The Hive engine allows you to perform `SELECT` queries on HDFS Hive table. | +| [Hudi table engine](/core/reference/engines/table-engines/integrations/hudi) | This engine provides a read-only integration with existing Apache Hudi tables in Amazon S3. | +| [Iceberg table engine](/core/reference/engines/table-engines/integrations/iceberg) | This engine provides a read-only integration with existing Apache Iceberg tables in Amazon S3, Azure, HDFS and locally stored tables. | +| [Paimon table engine](/core/reference/engines/table-engines/integrations/paimon) | This engine provides a read-only integration with existing Apache Paimon tables in Amazon S3, Azure, HDFS and locally stored tables. | +| [JDBC table engine](/core/reference/engines/table-engines/integrations/jdbc) | Allows ClickHouse to connect to external databases via JDBC. | +| [Kafka table engine](/core/reference/engines/table-engines/integrations/kafka) | The Kafka Table Engine can be used to publish works with Apache Kafka and lets you publish or subscribe to data flows, organize fault-tolerant storage, and process streams as they become available. | +| [MaterializedPostgreSQL table engine](/core/reference/engines/table-engines/integrations/materialized-postgresql) | Creates a ClickHouse table with an initial data dump of a PostgreSQL table and starts the replication process. | +| [MongoDB table engine](/core/reference/engines/table-engines/integrations/mongodb) | MongoDB engine is read-only table engine which allows to read data from a remote collection. | +| [MySQL table engine](/core/reference/engines/table-engines/integrations/mysql) | Documentation for MySQL Table Engine | +| [NATS table engine](/core/reference/engines/table-engines/integrations/nats) | This engine allows integrating ClickHouse with NATS to publish or subscribe to message subjects, and process new messages as they become available. | +| [ODBC table engine](/core/reference/engines/table-engines/integrations/odbc) | Allows ClickHouse to connect to external databases via ODBC. | +| [PostgreSQL table Engine](/core/reference/engines/table-engines/integrations/postgresql) | The PostgreSQL engine allows `SELECT` and `INSERT` queries on data stored on a remote PostgreSQL server. | +| [RabbitMQ table engine](/core/reference/engines/table-engines/integrations/rabbitmq) | This engine allows integrating ClickHouse with RabbitMQ. | +| [Redis table engine](/core/reference/engines/table-engines/integrations/redis) | This engine allows integrating ClickHouse with Redis. | +| [S3 table engine](/core/reference/engines/table-engines/integrations/s3) | This engine provides integration with the Amazon S3 ecosystem. Similar to the HDFS engine, but provides S3-specific features. | +| [S3Queue table engine](/core/reference/engines/table-engines/integrations/s3queue) | This engine provides integration with the Amazon S3 ecosystem and allows streaming imports. Similar to the Kafka and RabbitMQ engines, but provides S3-specific features. | +| [AzureQueue table engine](/core/reference/engines/table-engines/integrations/azure-queue) | This engine provides an integration with the Azure Blob Storage ecosystem, allowing streaming data import. | +| [YTsaurus table engine](/core/reference/engines/table-engines/integrations/ytsaurus) | Table engine that allows importing data from a YTsaurus cluster. | +| [SQLite table engine](/core/reference/engines/table-engines/integrations/sqlite) | The engine allows to import and export data to SQLite and supports queries to SQLite tables directly from ClickHouse. | +| [ArrowFlight table engine](/core/reference/engines/table-engines/integrations/arrowflight) | The engine allows querying remote datasets via Apache Arrow Flight. | +{/*AUTOGENERATED_END*/} diff --git a/reference/engines/table-engines/integrations/jdbc.mdx b/core/reference/engines/table-engines/integrations/jdbc.mdx similarity index 93% rename from reference/engines/table-engines/integrations/jdbc.mdx rename to core/reference/engines/table-engines/integrations/jdbc.mdx index 41c0bb84..30581ac8 100644 --- a/reference/engines/table-engines/integrations/jdbc.mdx +++ b/core/reference/engines/table-engines/integrations/jdbc.mdx @@ -19,7 +19,7 @@ Allows ClickHouse to connect to external databases via [JDBC](https://en.wikiped To implement the JDBC connection, ClickHouse uses the separate program [clickhouse-jdbc-bridge](https://github.com/ClickHouse/clickhouse-jdbc-bridge) that should run as a daemon. -This engine supports the [Nullable](/reference/data-types/nullable) data type. +This engine supports the [Nullable](/core/reference/data-types/nullable) data type. ## Creating a table {#creating-a-table} @@ -42,7 +42,7 @@ ENGINE = JDBC(datasource, external_database, external_table) - `external_table` — Name of the table in an external database or a select query like `select * from table1 where column1=1`. -- These parameters can also be passed using [named collections](/concepts/features/configuration/server-config/named-collections). +- These parameters can also be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). ## Usage example {#usage-example} @@ -101,4 +101,4 @@ FROM system.numbers ## See also {#see-also} -- [JDBC table function](/reference/functions/table-functions/jdbc). +- [JDBC table function](/core/reference/functions/table-functions/jdbc). diff --git a/reference/engines/table-engines/integrations/kafka.mdx b/core/reference/engines/table-engines/integrations/kafka.mdx similarity index 93% rename from reference/engines/table-engines/integrations/kafka.mdx rename to core/reference/engines/table-engines/integrations/kafka.mdx index 5c5189c1..94be0fb2 100644 --- a/reference/engines/table-engines/integrations/kafka.mdx +++ b/core/reference/engines/table-engines/integrations/kafka.mdx @@ -62,7 +62,7 @@ Required parameters: - `kafka_broker_list` — A comma-separated list of brokers (for example, `localhost:9092`). - `kafka_topic_list` — A list of Kafka topics. - `kafka_group_name` — A group of Kafka consumers. Reading margins are tracked for each group separately. If you do not want messages to be duplicated in the cluster, use the same group name everywhere. -- `kafka_format` — Message format. Uses the same notation as the SQL `FORMAT` function, such as `JSONEachRow`. For more information, see the [Formats](/reference/formats) section. +- `kafka_format` — Message format. Uses the same notation as the SQL `FORMAT` function, such as `JSONEachRow`. For more information, see the [Formats](/core/reference/formats) section. Optional parameters: @@ -73,13 +73,13 @@ Optional parameters: - `kafka_schema` — Parameter that must be used if the format requires a schema definition. For example, [Cap'n Proto](https://capnproto.org/) requires the path to the schema file and the name of the root `schema.capnp:Message` object. - `kafka_schema_registry_skip_bytes` — The number of bytes to skip from the beginning of each message when using schema registry with envelope headers (e.g., AWS Glue Schema Registry which includes a 19-byte envelope). Range: `[0, 255]`. Default: `0`. - `kafka_num_consumers` — The number of consumers per table. Specify more consumers if the throughput of one consumer is insufficient. The total number of consumers should not exceed the number of partitions in the topic, since only one consumer can be assigned per partition, and must not be greater than the number of physical cores on the server where ClickHouse is deployed. Default: `1`. -- `kafka_max_block_size` — The maximum batch size (in messages) for poll. Default: [max_insert_block_size](/reference/settings/session-settings#max_insert_block_size). +- `kafka_max_block_size` — The maximum batch size (in messages) for poll. Default: [max_insert_block_size](/core/reference/settings/session-settings#max_insert_block_size). - `kafka_skip_broken_messages` — Kafka message parser tolerance to schema-incompatible messages per block. If `kafka_skip_broken_messages = N` then the engine skips *N* Kafka messages that cannot be parsed (a message equals a row of data). Default: `0`. - `kafka_commit_every_batch` — Commit every consumed and handled batch instead of a single commit after writing a whole block. Default: `0`. - `kafka_client_id` — Client identifier. Empty by default. -- `kafka_poll_timeout_ms` — Timeout for single poll from Kafka. Default: [stream_poll_timeout_ms](/reference/settings/session-settings#stream_poll_timeout_ms). -- `kafka_poll_max_batch_size` — Maximum amount of messages to be polled in a single Kafka poll. Default: [max_block_size](/reference/settings/session-settings#max_block_size). -- `kafka_flush_interval_ms` — Timeout for flushing data from Kafka. Default: [stream_flush_interval_ms](/reference/settings/session-settings#stream_flush_interval_ms). +- `kafka_poll_timeout_ms` — Timeout for single poll from Kafka. Default: [stream_poll_timeout_ms](/core/reference/settings/session-settings#stream_poll_timeout_ms). +- `kafka_poll_max_batch_size` — Maximum amount of messages to be polled in a single Kafka poll. Default: [max_block_size](/core/reference/settings/session-settings#max_block_size). +- `kafka_flush_interval_ms` — Timeout for flushing data from Kafka. Default: [stream_flush_interval_ms](/core/reference/settings/session-settings#stream_flush_interval_ms). - `kafka_consumer_reschedule_ms` — Reschedule interval when Kafka stream processing is stalled (e.g., when no messages are available to consume). This setting controls the delay before the consumer retries polling. Must not exceed `kafka_consumers_pool_ttl_ms`. Default: `500` milliseconds. - `kafka_thread_per_consumer` — Provide independent thread for each consumer. When enabled, every consumer flush the data independently, in parallel (otherwise — rows from several consumers squashed to form one block). Default: `0`. - `kafka_handle_error_mode` — How to handle errors for Kafka engine. Possible values: default (the exception will be thrown if we fail to parse a message), stream (the exception message and raw message will be saved in virtual columns `_error` and `_raw_message`), dead_letter_queue (error related data will be saved in system.dead_letter_queue). @@ -146,7 +146,7 @@ Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format -The Kafka table engine doesn't support columns with [default value](/reference/statements/create/table#default_values). If you need columns with default value, you can add them at materialized view level (see below). +The Kafka table engine doesn't support columns with [default value](/core/reference/statements/create/table#default_values). If you need columns with default value, you can add them at materialized view level (see below). ## Description {#description} @@ -187,7 +187,7 @@ Example: SELECT level, sum(total) FROM daily GROUP BY level; ``` -To improve performance, received messages are grouped into blocks the size of [max_insert_block_size](/reference/settings/session-settings#max_insert_block_size). If the block wasn't formed within [stream_flush_interval_ms](/reference/settings/session-settings#stream_flush_interval_ms) milliseconds, the data will be flushed to the table regardless of the completeness of the block. +To improve performance, received messages are grouped into blocks the size of [max_insert_block_size](/core/reference/settings/session-settings#max_insert_block_size). If the block wasn't formed within [stream_flush_interval_ms](/core/reference/settings/session-settings#stream_flush_interval_ms) milliseconds, the data will be flushed to the table regardless of the completeness of the block. To stop receiving topic data or to change the conversion logic, detach the materialized view: @@ -317,11 +317,11 @@ The produced Kafka message has payload `{"event_json":"{\"a\":1}"}`, key `sessio ## Data formats support {#data-formats-support} -Kafka engine supports all [formats](/reference/formats) supported in ClickHouse. +Kafka engine supports all [formats](/core/reference/formats) supported in ClickHouse. The number of rows in one Kafka message depends on whether the format is row-based or block-based: - For row-based formats the number of rows in one Kafka message can be controlled by setting `kafka_max_rows_per_message`. -- For block-based formats we cannot divide block into smaller parts, but the number of rows in one block can be controlled by general setting [max_block_size](/reference/settings/session-settings#max_block_size). +- For block-based formats we cannot divide block into smaller parts, but the number of rows in one block can be controlled by general setting [max_block_size](/core/reference/settings/session-settings#max_block_size). ## Engine to store committed offsets in ClickHouse Keeper {#engine-to-store-committed-offsets-in-clickhouse-keeper} @@ -352,6 +352,6 @@ As the new engine is experimental, it is not production ready yet. There are few **See Also** -- [Virtual columns](/reference/engines/table-engines#table_engines-virtual_columns) -- [background_message_broker_schedule_pool_size](/reference/settings/server-settings/settings#background_message_broker_schedule_pool_size) -- [system.kafka_consumers](/reference/system-tables/kafka_consumers) +- [Virtual columns](/core/reference/engines/table-engines#table_engines-virtual_columns) +- [background_message_broker_schedule_pool_size](/core/reference/settings/server-settings/settings#background_message_broker_schedule_pool_size) +- [system.kafka_consumers](/core/reference/system-tables/kafka_consumers) diff --git a/reference/engines/table-engines/integrations/materialized-postgresql.mdx b/core/reference/engines/table-engines/integrations/materialized-postgresql.mdx similarity index 82% rename from reference/engines/table-engines/integrations/materialized-postgresql.mdx rename to core/reference/engines/table-engines/integrations/materialized-postgresql.mdx index ed8ba9a3..90bc669a 100644 --- a/reference/engines/table-engines/integrations/materialized-postgresql.mdx +++ b/core/reference/engines/table-engines/integrations/materialized-postgresql.mdx @@ -27,7 +27,7 @@ SET allow_experimental_materialized_postgresql_table=1 ``` -If more than one table is required, it is highly recommended to use the [MaterializedPostgreSQL](/reference/engines/database-engines/materialized-postgresql) database engine instead of the table engine and use the `materialized_postgresql_tables_list` setting, which specifies the tables to be replicated (will also be possible to add database `schema`). It will be much better in terms of CPU, fewer connections and fewer replication slots inside the remote PostgreSQL database. +If more than one table is required, it is highly recommended to use the [MaterializedPostgreSQL](/core/reference/engines/database-engines/materialized-postgresql) database engine instead of the table engine and use the `materialized_postgresql_tables_list` setting, which specifies the tables to be replicated (will also be possible to add database `schema`). It will be much better in terms of CPU, fewer connections and fewer replication slots inside the remote PostgreSQL database. ## Creating a table {#creating-a-table} @@ -49,7 +49,7 @@ PRIMARY KEY key; 1. The [wal_level](https://www.postgresql.org/docs/current/runtime-config-wal.html) setting must have a value `logical` and `max_replication_slots` parameter must have a value at least `2` in the PostgreSQL config file. -2. A table with `MaterializedPostgreSQL` engine must have a primary key — the same as a replica identity index (by default: primary key) of a PostgreSQL table (see [details on replica identity index](/reference/engines/database-engines/materialized-postgresql#requirements)). +2. A table with `MaterializedPostgreSQL` engine must have a primary key — the same as a replica identity index (by default: primary key) of a PostgreSQL table (see [details on replica identity index](/core/reference/engines/database-engines/materialized-postgresql#requirements)). 3. Only database [Atomic](https://en.wikipedia.org/wiki/Atomicity_(database_systems)) is allowed. @@ -57,9 +57,9 @@ PRIMARY KEY key; ## Virtual columns {#virtual-columns} -- `_version` — Transaction counter. Type: [UInt64](/reference/data-types/int-uint). +- `_version` — Transaction counter. Type: [UInt64](/core/reference/data-types/int-uint). -- `_sign` — Deletion mark. Type: [Int8](/reference/data-types/int-uint). Possible values: +- `_sign` — Deletion mark. Type: [Int8](/core/reference/data-types/int-uint). Possible values: - `1` — Row is not deleted, - `-1` — Row is deleted. diff --git a/reference/engines/table-engines/integrations/mongodb.mdx b/core/reference/engines/table-engines/integrations/mongodb.mdx similarity index 99% rename from reference/engines/table-engines/integrations/mongodb.mdx rename to core/reference/engines/table-engines/integrations/mongodb.mdx index 71799380..0b9e7f1d 100644 --- a/reference/engines/table-engines/integrations/mongodb.mdx +++ b/core/reference/engines/table-engines/integrations/mongodb.mdx @@ -128,7 +128,7 @@ SELECT count() FROM sample_oid WHERE another_oid_column = '67bf6cc40000000000ea4 Only queries with simple expressions are supported (for example, `WHERE field = ORDER BY field2 LIMIT `). Such expressions are translated to MongoDB query language and executed on the server side. -You can disable all these restriction, using [mongodb_throw_on_unsupported_query](/reference/settings/session-settings#mongodb_throw_on_unsupported_query). +You can disable all these restriction, using [mongodb_throw_on_unsupported_query](/core/reference/settings/session-settings#mongodb_throw_on_unsupported_query). In that case ClickHouse tries to convert query on best effort basis, but it can lead to full table scan and processing on ClickHouse side. diff --git a/reference/engines/table-engines/integrations/mysql.mdx b/core/reference/engines/table-engines/integrations/mysql.mdx similarity index 83% rename from reference/engines/table-engines/integrations/mysql.mdx rename to core/reference/engines/table-engines/integrations/mysql.mdx index b516c4f6..37c82502 100644 --- a/reference/engines/table-engines/integrations/mysql.mdx +++ b/core/reference/engines/table-engines/integrations/mysql.mdx @@ -27,13 +27,13 @@ SETTINGS ; ``` -See a detailed description of the [CREATE TABLE](/reference/statements/create/table) query. +See a detailed description of the [CREATE TABLE](/core/reference/statements/create/table) query. The table structure can differ from the original MySQL table structure: - Column names should be the same as in the original MySQL table, but you can use just some of these columns and in any order. -- Column types may differ from those in the original MySQL table. ClickHouse tries to [cast](/reference/engines/database-engines/mysql#data_types-support) values to the ClickHouse data types. -- The [external_table_functions_use_nulls](/reference/settings/session-settings#external_table_functions_use_nulls) setting defines how to handle Nullable columns. Default value: 1. If 0, the table function does not make Nullable columns and inserts default values instead of nulls. This is also applicable for NULL values inside arrays. +- Column types may differ from those in the original MySQL table. ClickHouse tries to [cast](/core/reference/engines/database-engines/mysql#data_types-support) values to the ClickHouse data types. +- The [external_table_functions_use_nulls](/core/reference/settings/session-settings#external_table_functions_use_nulls) setting defines how to handle Nullable columns. Default value: 1. If 0, the table function does not make Nullable columns and inserts default values instead of nulls. This is also applicable for NULL values inside arrays. **Engine Parameters** @@ -47,7 +47,7 @@ The table structure can differ from the original MySQL table structure: Example: `INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1`, where `on_duplicate_clause` is `UPDATE c2 = c2 + 1`. See the [MySQL documentation](https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html) to find which `on_duplicate_clause` you can use with the `ON DUPLICATE KEY` clause. To specify `on_duplicate_clause` you need to pass `0` to the `replace_query` parameter. If you simultaneously pass `replace_query = 1` and `on_duplicate_clause`, ClickHouse generates an exception. -Arguments also can be passed using [named collections](/concepts/features/configuration/server-config/named-collections). In this case `host` and `port` should be specified separately. This approach is recommended for production environment. +Arguments also can be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). In this case `host` and `port` should be specified separately. This approach is recommended for production environment. Simple `WHERE` clauses such as `=, !=, >, >=, <, <=` are executed on the MySQL server. @@ -95,7 +95,7 @@ CREATE TABLE mysql_table ENGINE = MySQL('localhost:3306', 'test', 'test', 'bayonet', '123') ``` -Or using [named collections](/concepts/features/configuration/server-config/named-collections): +Or using [named collections](/core/concepts/features/configuration/server-config/named-collections): ```sql CREATE NAMED COLLECTION creds AS @@ -192,5 +192,5 @@ Default value: `300`. ## See also {#see-also} -- [The mysql table function](/reference/functions/table-functions/mysql) -- [Using MySQL as a dictionary source](/reference/statements/create/dictionary/sources/mysql) +- [The mysql table function](/core/reference/functions/table-functions/mysql) +- [Using MySQL as a dictionary source](/core/reference/statements/create/dictionary/sources/mysql) diff --git a/reference/engines/table-engines/integrations/nats.mdx b/core/reference/engines/table-engines/integrations/nats.mdx similarity index 95% rename from reference/engines/table-engines/integrations/nats.mdx rename to core/reference/engines/table-engines/integrations/nats.mdx index 815c76fd..484e2b18 100644 --- a/reference/engines/table-engines/integrations/nats.mdx +++ b/core/reference/engines/table-engines/integrations/nats.mdx @@ -49,7 +49,7 @@ Required parameters: - `nats_url` – host:port (for example, `localhost:5672`).. - `nats_subjects` – List of subject for NATS table to subscribe/publish to. Supports wildcard subjects like `foo.*.bar` or `baz.>` -- `nats_format` – Message format. Uses the same notation as the SQL `FORMAT` function, such as `JSONEachRow`. For more information, see the [Formats](/reference/formats) section. +- `nats_format` – Message format. Uses the same notation as the SQL `FORMAT` function, such as `JSONEachRow`. For more information, see the [Formats](/core/reference/formats) section. Optional parameters: @@ -62,8 +62,8 @@ Optional parameters: - `nats_reconnect_wait` – Amount of time in milliseconds to sleep between each reconnect attempt. Default: `5000`. - `nats_server_list` - Server list for connection. Can be specified to connect to NATS cluster. - `nats_skip_broken_messages` - NATS message parser tolerance to schema-incompatible messages per block. Default: `0`. If `nats_skip_broken_messages = N` then the engine skips *N* NATS messages that cannot be parsed (a message equals a row of data). -- `nats_max_block_size` - Number of row collected by poll(s) for flushing data from NATS. Default: [max_insert_block_size](/reference/settings/session-settings#max_insert_block_size). -- `nats_flush_interval_ms` - Timeout for flushing data read from NATS. Default: [stream_flush_interval_ms](/reference/settings/session-settings#stream_flush_interval_ms). +- `nats_max_block_size` - Number of row collected by poll(s) for flushing data from NATS. Default: [max_insert_block_size](/core/reference/settings/session-settings#max_insert_block_size). +- `nats_flush_interval_ms` - Timeout for flushing data read from NATS. Default: [stream_flush_interval_ms](/core/reference/settings/session-settings#stream_flush_interval_ms). - `nats_username` - NATS username. - `nats_password` - NATS password. - `nats_token` - NATS auth token. @@ -128,7 +128,7 @@ More specifically you can add your password for the NATS engine: ## Description {#description} -`SELECT` is not particularly useful for reading messages (except for debugging), because each message can be read only once. It is more practical to create real-time threads using [materialized views](/reference/statements/create/view). To do this: +`SELECT` is not particularly useful for reading messages (except for debugging), because each message can be read only once. It is more practical to create real-time threads using [materialized views](/core/reference/statements/create/view). To do this: 1. Use the engine to create a NATS consumer and consider it a data stream. 2. Create a table with the desired structure. @@ -180,11 +180,11 @@ Note: `_raw_message` and `_error` virtual columns are filled only in case of exc ## Data formats support {#data-formats-support} -NATS engine supports all [formats](/reference/formats) supported in ClickHouse. +NATS engine supports all [formats](/core/reference/formats) supported in ClickHouse. The number of rows in one NATS message depends on whether the format is row-based or block-based: - For row-based formats the number of rows in one NATS message can be controlled by setting `nats_max_rows_per_message`. -- For block-based formats we cannot divide block into smaller parts, but the number of rows in one block can be controlled by general setting [max_block_size](/reference/settings/session-settings#max_block_size). +- For block-based formats we cannot divide block into smaller parts, but the number of rows in one block can be controlled by general setting [max_block_size](/core/reference/settings/session-settings#max_block_size). ## Using JetStream {#using-jetstream} diff --git a/reference/engines/table-engines/integrations/odbc.mdx b/core/reference/engines/table-engines/integrations/odbc.mdx similarity index 81% rename from reference/engines/table-engines/integrations/odbc.mdx rename to core/reference/engines/table-engines/integrations/odbc.mdx index 4ea23413..fed1b07a 100644 --- a/reference/engines/table-engines/integrations/odbc.mdx +++ b/core/reference/engines/table-engines/integrations/odbc.mdx @@ -14,7 +14,7 @@ Allows ClickHouse to connect to external databases via [ODBC](https://en.wikiped To safely implement ODBC connections, ClickHouse uses a separate program `clickhouse-odbc-bridge`. If the ODBC driver is loaded directly from `clickhouse-server`, driver problems can crash the ClickHouse server. ClickHouse automatically starts `clickhouse-odbc-bridge` when it is required. The ODBC bridge program is installed from the same package as the `clickhouse-server`. -This engine supports the [Nullable](/reference/data-types/nullable) data type. +This engine supports the [Nullable](/core/reference/data-types/nullable) data type. ## Creating a table {#creating-a-table} @@ -28,13 +28,13 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ENGINE = ODBC(datasource, external_database, external_table) ``` -See a detailed description of the [CREATE TABLE](/reference/statements/create/table) query. +See a detailed description of the [CREATE TABLE](/core/reference/statements/create/table) query. The table structure can differ from the source table structure: - Column names should be the same as in the source table, but you can use just some of these columns and in any order. -- Column types may differ from those in the source table. ClickHouse tries to [cast](/reference/functions/regular-functions/type-conversion-functions#CAST) values to the ClickHouse data types. -- The [external_table_functions_use_nulls](/reference/settings/session-settings#external_table_functions_use_nulls) setting defines how to handle Nullable columns. Default value: 1. If 0, the table function does not make Nullable columns and inserts default values instead of nulls. This is also applicable for NULL values inside arrays. +- Column types may differ from those in the source table. ClickHouse tries to [cast](/core/reference/functions/regular-functions/type-conversion-functions#CAST) values to the ClickHouse data types. +- The [external_table_functions_use_nulls](/core/reference/settings/session-settings#external_table_functions_use_nulls) setting defines how to handle Nullable columns. Default value: 1. If 0, the table function does not make Nullable columns and inserts default values instead of nulls. This is also applicable for NULL values inside arrays. **Engine Parameters** @@ -42,7 +42,7 @@ The table structure can differ from the source table structure: - `external_database` — Name of a database in an external DBMS. - `external_table` — Name of a table in the `external_database`. -These parameters can also be passed using [named collections](/concepts/features/configuration/server-config/named-collections). +These parameters can also be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). ## Usage example {#usage-example} @@ -135,5 +135,5 @@ SELECT * FROM odbc_t ## See also {#see-also} -- [ODBC dictionaries](/reference/statements/create/dictionary/sources/odbc) -- [ODBC table function](/reference/functions/table-functions/odbc) +- [ODBC dictionaries](/core/reference/statements/create/dictionary/sources/odbc) +- [ODBC table function](/core/reference/functions/table-functions/odbc) diff --git a/reference/engines/table-engines/integrations/paimon.mdx b/core/reference/engines/table-engines/integrations/paimon.mdx similarity index 99% rename from reference/engines/table-engines/integrations/paimon.mdx rename to core/reference/engines/table-engines/integrations/paimon.mdx index 8985aaeb..9bf48e82 100644 --- a/reference/engines/table-engines/integrations/paimon.mdx +++ b/core/reference/engines/table-engines/integrations/paimon.mdx @@ -36,7 +36,7 @@ CREATE TABLE paimon_table_local Description of the arguments coincides with description of arguments in engines `S3`, `AzureBlobStorage`, `HDFS` and `File` correspondingly. `format` stands for the format of data files in the Paimon table. -Engine parameters can be specified using [Named Collections](/concepts/features/configuration/server-config/named-collections) +Engine parameters can be specified using [Named Collections](/core/concepts/features/configuration/server-config/named-collections) ### Example {#example} diff --git a/reference/engines/table-engines/integrations/postgresql.mdx b/core/reference/engines/table-engines/integrations/postgresql.mdx similarity index 82% rename from reference/engines/table-engines/integrations/postgresql.mdx rename to core/reference/engines/table-engines/integrations/postgresql.mdx index f7b2e64b..a2dd89af 100644 --- a/reference/engines/table-engines/integrations/postgresql.mdx +++ b/core/reference/engines/table-engines/integrations/postgresql.mdx @@ -28,13 +28,13 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ) ENGINE = PostgreSQL({host:port, database, table, user, password[, schema, [, on_conflict]] | named_collection[, option=value [,..]]}) ``` -See a detailed description of the [CREATE TABLE](/reference/statements/create/table) query. +See a detailed description of the [CREATE TABLE](/core/reference/statements/create/table) query. The table structure can differ from the original PostgreSQL table structure: - Column names should be the same as in the original PostgreSQL table, but you can use just some of these columns and in any order. -- Column types may differ from those in the original PostgreSQL table. ClickHouse tries to [cast](/reference/engines/database-engines/postgresql#data_types-support) values to the ClickHouse data types. -- The [external_table_functions_use_nulls](/reference/settings/session-settings#external_table_functions_use_nulls) setting defines how to handle Nullable columns. Default value: 1. If 0, the table function does not make Nullable columns and inserts default values instead of nulls. This is also applicable for NULL values inside arrays. +- Column types may differ from those in the original PostgreSQL table. ClickHouse tries to [cast](/core/reference/engines/database-engines/postgresql#data_types-support) values to the ClickHouse data types. +- The [external_table_functions_use_nulls](/core/reference/settings/session-settings#external_table_functions_use_nulls) setting defines how to handle Nullable columns. Default value: 1. If 0, the table function does not make Nullable columns and inserts default values instead of nulls. This is also applicable for NULL values inside arrays. **Engine Parameters** @@ -46,7 +46,7 @@ The table structure can differ from the original PostgreSQL table structure: - `schema` — Non-default table schema. Optional. - `on_conflict` — Conflict resolution strategy. Example: `ON CONFLICT DO NOTHING`. Optional. Note: adding this option will make insertion less efficient. -[Named collections](/concepts/features/configuration/server-config/named-collections) (available since version 21.11) are recommended for production environment. Here is an example: +[Named collections](/core/concepts/features/configuration/server-config/named-collections) (available since version 21.11) are recommended for production environment. Here is an example: ```xml @@ -139,7 +139,7 @@ postgresql> SELECT * FROM test; ### Creating Table in ClickHouse, and connecting to PostgreSQL table created above {#creating-table-in-clickhouse-and-connecting-to--postgresql-table-created-above} -This example uses the [PostgreSQL table engine](/reference/engines/table-engines/integrations/postgresql) to connect the ClickHouse table to the PostgreSQL table and use both SELECT and INSERT statements to the PostgreSQL database: +This example uses the [PostgreSQL table engine](/core/reference/engines/table-engines/integrations/postgresql) to connect the ClickHouse table to the PostgreSQL table and use both SELECT and INSERT statements to the PostgreSQL database: ```sql CREATE TABLE default.postgresql_table @@ -153,7 +153,7 @@ ENGINE = PostgreSQL('localhost:5432', 'public', 'test', 'postgres_user', 'postgr ### Inserting initial data from PostgreSQL table into ClickHouse table, using a SELECT query {#inserting-initial-data-from-postgresql-table-into-clickhouse-table-using-a-select-query} -The [postgresql table function](/reference/functions/table-functions/postgresql) copies the data from PostgreSQL to ClickHouse, which is often used for improving the query performance of the data by querying or performing analytics in ClickHouse rather than in PostgreSQL, or can also be used for migrating data from PostgreSQL to ClickHouse. Since we will be copying the data from PostgreSQL to ClickHouse, we will use a MergeTree table engine in ClickHouse and call it postgresql_copy: +The [postgresql table function](/core/reference/functions/table-functions/postgresql) copies the data from PostgreSQL to ClickHouse, which is often used for improving the query performance of the data by querying or performing analytics in ClickHouse rather than in PostgreSQL, or can also be used for migrating data from PostgreSQL to ClickHouse. Since we will be copying the data from PostgreSQL to ClickHouse, we will use a MergeTree table engine in ClickHouse and call it postgresql_copy: ```sql CREATE TABLE default.postgresql_copy @@ -218,8 +218,8 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32) **See Also** -- [The `postgresql` table function](/reference/functions/table-functions/postgresql) -- [Using PostgreSQL as a dictionary source](/reference/statements/create/dictionary/sources/postgresql) +- [The `postgresql` table function](/core/reference/functions/table-functions/postgresql) +- [Using PostgreSQL as a dictionary source](/core/reference/statements/create/dictionary/sources/postgresql) ## Related content {#related-content} diff --git a/reference/engines/table-engines/integrations/rabbitmq.mdx b/core/reference/engines/table-engines/integrations/rabbitmq.mdx similarity index 91% rename from reference/engines/table-engines/integrations/rabbitmq.mdx rename to core/reference/engines/table-engines/integrations/rabbitmq.mdx index 7185ad05..682651b0 100644 --- a/reference/engines/table-engines/integrations/rabbitmq.mdx +++ b/core/reference/engines/table-engines/integrations/rabbitmq.mdx @@ -52,7 +52,7 @@ Required parameters: - `rabbitmq_host_port` – host:port (for example, `localhost:5672`). - `rabbitmq_exchange_name` – RabbitMQ exchange name. -- `rabbitmq_format` – Message format. Uses the same notation as the SQL `FORMAT` function, such as `JSONEachRow`. For more information, see the [Formats](/reference/formats) section. +- `rabbitmq_format` – Message format. Uses the same notation as the SQL `FORMAT` function, such as `JSONEachRow`. For more information, see the [Formats](/core/reference/formats) section. Optional parameters: @@ -64,8 +64,8 @@ Optional parameters: - `rabbitmq_queue_base` - Specify a hint for queue names. Use cases of this setting are described below. - `rabbitmq_persistent` - If set to 1 (true), in insert query delivery mode will be set to 2 (marks messages as 'persistent'). Default: `0`. - `rabbitmq_skip_broken_messages` – RabbitMQ message parser tolerance to schema-incompatible messages per block. If `rabbitmq_skip_broken_messages = N` then the engine skips *N* RabbitMQ messages that cannot be parsed (a message equals a row of data). Default: `0`. -- `rabbitmq_max_block_size` - Number of row collected before flushing data from RabbitMQ. Default: [max_insert_block_size](/reference/settings/session-settings#max_insert_block_size). -- `rabbitmq_flush_interval_ms` - Timeout for flushing data from RabbitMQ. Default: [stream_flush_interval_ms](/reference/settings/session-settings#stream_flush_interval_ms). +- `rabbitmq_max_block_size` - Number of row collected before flushing data from RabbitMQ. Default: [max_insert_block_size](/core/reference/settings/session-settings#max_insert_block_size). +- `rabbitmq_flush_interval_ms` - Timeout for flushing data from RabbitMQ. Default: [stream_flush_interval_ms](/core/reference/settings/session-settings#stream_flush_interval_ms). - `rabbitmq_queue_settings_list` - allows to set RabbitMQ settings when creating a queue. Available settings: `x-max-length`, `x-max-length-bytes`, `x-message-ttl`, `x-expires`, `x-priority`, `x-max-priority`, `x-overflow`, `x-dead-letter-exchange`, `x-queue-type`. The `durable` setting is enabled automatically for the queue. - `rabbitmq_address` - Address for connection. Use ether this setting or `rabbitmq_host_port`. - `rabbitmq_vhost` - RabbitMQ vhost. Default: `'\'`. @@ -122,7 +122,7 @@ Additional configuration: ## Description {#description} -`SELECT` is not particularly useful for reading messages (except for debugging), because each message can be read only once. It is more practical to create real-time threads using [materialized views](/reference/statements/create/view). To do this: +`SELECT` is not particularly useful for reading messages (except for debugging), because each message can be read only once. It is more practical to create real-time threads using [materialized views](/core/reference/statements/create/view). To do this: 1. Use the engine to create a RabbitMQ consumer and consider it a data stream. 2. Create a table with the desired structure. @@ -148,7 +148,7 @@ Setting `rabbitmq_queue_base` may be used for the following cases: - to be able to restore reading from certain durable queues when not all messages were successfully consumed. To resume consumption from one specific queue - set its name in `rabbitmq_queue_base` setting and do not specify `rabbitmq_num_consumers` and `rabbitmq_num_queues` (defaults to 1). To resume consumption from all queues, which were declared for a specific table - just specify the same settings: `rabbitmq_queue_base`, `rabbitmq_num_consumers`, `rabbitmq_num_queues`. By default, queue names will be unique to tables. - to reuse queues as they are declared durable and not auto-deleted. (Can be deleted via any of RabbitMQ CLI tools.) -To improve performance, received messages are grouped into blocks the size of [max_insert_block_size](/reference/settings/session-settings#max_insert_block_size). If the block wasn't formed within [stream_flush_interval_ms](/reference/settings/server-settings/settings) milliseconds, the data will be flushed to the table regardless of the completeness of the block. +To improve performance, received messages are grouped into blocks the size of [max_insert_block_size](/core/reference/settings/session-settings#max_insert_block_size). If the block wasn't formed within [stream_flush_interval_ms](/core/reference/settings/server-settings/settings) milliseconds, the data will be flushed to the table regardless of the completeness of the block. If `rabbitmq_num_consumers` and/or `rabbitmq_num_queues` settings are specified along with `rabbitmq_exchange_type`, then: @@ -199,12 +199,12 @@ Note: `_raw_message` and `_error` virtual columns are filled only in case of exc ## Caveats {#caveats} -Even though you may specify [default column expressions](/reference/statements/create/table#default_values) (such as `DEFAULT`, `MATERIALIZED`, `ALIAS`) in the table definition, these will be ignored. Instead, the columns will be filled with their respective default values for their types. +Even though you may specify [default column expressions](/core/reference/statements/create/table#default_values) (such as `DEFAULT`, `MATERIALIZED`, `ALIAS`) in the table definition, these will be ignored. Instead, the columns will be filled with their respective default values for their types. ## Data formats support {#data-formats-support} -RabbitMQ engine supports all [formats](/reference/formats) supported in ClickHouse. +RabbitMQ engine supports all [formats](/core/reference/formats) supported in ClickHouse. The number of rows in one RabbitMQ message depends on whether the format is row-based or block-based: - For row-based formats the number of rows in one RabbitMQ message can be controlled by setting `rabbitmq_max_rows_per_message`. -- For block-based formats we cannot divide block into smaller parts, but the number of rows in one block can be controlled by general setting [max_block_size](/reference/settings/session-settings#max_block_size). +- For block-based formats we cannot divide block into smaller parts, but the number of rows in one block can be controlled by general setting [max_block_size](/core/reference/settings/session-settings#max_block_size). diff --git a/reference/engines/table-engines/integrations/redis.mdx b/core/reference/engines/table-engines/integrations/redis.mdx similarity index 90% rename from reference/engines/table-engines/integrations/redis.mdx rename to core/reference/engines/table-engines/integrations/redis.mdx index 3d75c674..35e63b2f 100644 --- a/reference/engines/table-engines/integrations/redis.mdx +++ b/core/reference/engines/table-engines/integrations/redis.mdx @@ -35,7 +35,7 @@ PRIMARY KEY(primary_key_name); Columns other than the primary key will be serialized in binary as Redis value in corresponding order. -Arguments also can be passed using [named collections](/concepts/features/configuration/server-config/named-collections). In this case `host` and `port` should be specified separately. This approach is recommended for production environment. At this moment, all parameters passed using named collections to redis are required. +Arguments also can be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). In this case `host` and `port` should be specified separately. This approach is recommended for production environment. At this moment, all parameters passed using named collections to redis are required. **Filtering** @@ -58,7 +58,7 @@ CREATE TABLE redis_table ENGINE = Redis('redis1:6379') PRIMARY KEY(key); ``` -Or using [named collections](/concepts/features/configuration/server-config/named-collections): +Or using [named collections](/core/concepts/features/configuration/server-config/named-collections): ```xml diff --git a/reference/engines/table-engines/integrations/s3.mdx b/core/reference/engines/table-engines/integrations/s3.mdx similarity index 94% rename from reference/engines/table-engines/integrations/s3.mdx rename to core/reference/engines/table-engines/integrations/s3.mdx index dbcdeab5..db2cf849 100644 --- a/reference/engines/table-engines/integrations/s3.mdx +++ b/core/reference/engines/table-engines/integrations/s3.mdx @@ -7,7 +7,7 @@ title: 'S3 table engine' doc_type: 'reference' --- -This engine provides integration with the [Amazon S3](https://aws.amazon.com/s3/) ecosystem. This engine is similar to the [HDFS](/reference/engines/table-engines/integrations/hdfs) engine, but provides S3-specific features. +This engine provides integration with the [Amazon S3](https://aws.amazon.com/s3/) ecosystem. This engine is similar to the [HDFS](/core/reference/engines/table-engines/integrations/hdfs) engine, but provides S3-specific features. ## Example {#example} @@ -41,8 +41,8 @@ CREATE TABLE s3_engine_table (name String, value UInt32) - `path` — Bucket url with path to file. Supports following wildcards in readonly mode: `*`, `**`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` — numbers, `'abc'`, `'def'` — strings. For more information see [below](#wildcards-in-path). - `NOSIGN` - If this keyword is provided in place of credentials, all the requests will not be signed. -- `format` — The [format](/reference/formats#formats-overview) of the file. -- `aws_access_key_id`, `aws_secret_access_key` - Long-term credentials for the [AWS](https://aws.amazon.com/) account user. You can use these to authenticate your requests. Parameter is optional. If credentials are not specified, they are used from the configuration file. For more information see [Using S3 for Data Storage](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). +- `format` — The [format](/core/reference/formats#formats-overview) of the file. +- `aws_access_key_id`, `aws_secret_access_key` - Long-term credentials for the [AWS](https://aws.amazon.com/) account user. You can use these to authenticate your requests. Parameter is optional. If credentials are not specified, they are used from the configuration file. For more information see [Using S3 for Data Storage](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). - `compression` — Compression type. Supported values: `none`, `gzip/gz`, `brotli/br`, `xz/LZMA`, `zstd/zst`. Parameter is optional. By default, it will auto-detect compression by file extension. - `partition_strategy` – Options: `WILDCARD` or `HIVE`. `WILDCARD` requires a `{_partition_id}` in the path, which is replaced with the partition key. `HIVE` does not allow wildcards, assumes the path is the table root, and generates Hive-style partitioned directories with Snowflake IDs as filenames and the file format as the extension. Defaults to `WILDCARD` - `partition_columns_in_data_file` - Only used with `HIVE` partition strategy. Tells ClickHouse whether to expect partition columns to be written in the data file. Defaults `false`. @@ -52,7 +52,7 @@ CREATE TABLE s3_engine_table (name String, value UInt32) ### Data cache {#data-cache} `S3` table engine supports data caching on local disk. -See filesystem cache configuration options and usage in this [section](/concepts/features/configuration/server-config/storing-data#using-local-cache). +See filesystem cache configuration options and usage in this [section](/core/concepts/features/configuration/server-config/storing-data#using-local-cache). Caching is made depending on the path and ETag of the storage object, so clickhouse will not read a stale cache version. To enable caching use a setting `filesystem_cache_name = ''` and `enable_filesystem_cache = 1`. @@ -78,13 +78,13 @@ There are two ways to define cache in configuration file. ``` -2. reuse cache configuration (and therefore cache storage) from clickhouse `storage_configuration` section, [described here](/concepts/features/configuration/server-config/storing-data#using-local-cache) +2. reuse cache configuration (and therefore cache storage) from clickhouse `storage_configuration` section, [described here](/core/concepts/features/configuration/server-config/storing-data#using-local-cache) ### PARTITION BY {#partition-by} `PARTITION BY` — Optional. In most cases you don't need a partition key, and if it is needed you generally don't need a partition key more granular than by month. Partitioning does not speed up queries (in contrast to the ORDER BY expression). You should never use too granular partitioning. Don't partition your data by client identifiers or names (instead, make client identifier or name the first column in the ORDER BY expression). -For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](/reference/data-types/date). The partition names here have the `"YYYYMM"` format. +For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](/core/reference/data-types/date). The partition names here have the `"YYYYMM"` format. #### Partition strategy {#partition-strategy} @@ -235,7 +235,7 @@ Note that rows can only be inserted into new files. There are no merge cycles or - `_etag` — ETag of the file. Type: `LowCardinality(String)`. If the etag is unknown, the value is `NULL`. - `_tags` — Tags of the file. Type: `Map(String, String)`. If no tag exist, the value is an empty map `{}'. -For more information about virtual columns see [here](/reference/engines/table-engines#table_engines-virtual_columns). +For more information about virtual columns see [here](/core/reference/engines/table-engines#table_engines-virtual_columns). ## Implementation details {#implementation-details} @@ -243,7 +243,7 @@ For more information about virtual columns see [here](/reference/engines/table-e - Not supported: - `ALTER` and `SELECT...SAMPLE` operations. - Indexes. - - [Zero-copy](/concepts/features/configuration/server-config/storing-data#zero-copy) replication is possible, but not supported. + - [Zero-copy](/core/concepts/features/configuration/server-config/storing-data#zero-copy) replication is possible, but not supported. **Zero-copy replication is not ready for production** @@ -261,7 +261,7 @@ For more information about virtual columns see [here](/reference/engines/table-e - `{some_string,another_string,yet_another_one}` — Substitutes any of strings `'some_string', 'another_string', 'yet_another_one'`. - `{N..M}` — Substitutes any number in range from N to M including both borders. N and M can have leading zeroes e.g. `000..078`. -Constructions with `{}` are similar to the [remote](/reference/functions/table-functions/remote) table function. +Constructions with `{}` are similar to the [remote](/core/reference/functions/table-functions/remote) table function. If the listing of files contains number ranges with leading zeros, use the construction with braces for each digit separately or use `?`. @@ -312,9 +312,9 @@ CREATE TABLE table_with_asterisk (name String, value UInt32) ## Storage settings {#storage-settings} -- [s3_truncate_on_insert](/reference/settings/session-settings#s3_truncate_on_insert) - allows to truncate file before insert into it. Disabled by default. -- [s3_create_new_file_on_insert](/reference/settings/session-settings#s3_create_new_file_on_insert) - allows to create a new file on each insert if format has suffix. Disabled by default. -- [s3_skip_empty_files](/reference/settings/session-settings#s3_skip_empty_files) - allows to skip empty files while reading. Enabled by default. +- [s3_truncate_on_insert](/core/reference/settings/session-settings#s3_truncate_on_insert) - allows to truncate file before insert into it. Disabled by default. +- [s3_create_new_file_on_insert](/core/reference/settings/session-settings#s3_create_new_file_on_insert) - allows to create a new file on each insert if format has suffix. Disabled by default. +- [s3_skip_empty_files](/core/reference/settings/session-settings#s3_skip_empty_files) - allows to skip empty files while reading. Enabled by default. ## S3-related settings {#settings} @@ -430,5 +430,5 @@ ENGINE = S3('https://my-bucket.s3.amazonaws.com/data/*.csv', extra_credentials(r ## See also {#see-also} -- [s3 table function](/reference/functions/table-functions/s3) +- [s3 table function](/core/reference/functions/table-functions/s3) - [Integrating S3 with ClickHouse](/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse) diff --git a/reference/engines/table-engines/integrations/s3queue.mdx b/core/reference/engines/table-engines/integrations/s3queue.mdx similarity index 96% rename from reference/engines/table-engines/integrations/s3queue.mdx rename to core/reference/engines/table-engines/integrations/s3queue.mdx index cc449b02..b9d473d5 100644 --- a/reference/engines/table-engines/integrations/s3queue.mdx +++ b/core/reference/engines/table-engines/integrations/s3queue.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' import ScalePlanFeatureBadge from "/snippets/components/ScalePlanFeatureBadge/ScalePlanFeatureBadge.jsx"; -This engine provides integration with [Amazon S3](https://aws.amazon.com/s3/) ecosystem and allows streaming import. This engine is similar to the [Kafka](/reference/engines/table-engines/integrations/kafka), [RabbitMQ](/reference/engines/table-engines/integrations/rabbitmq) engines, but provides S3-specific features. +This engine provides integration with [Amazon S3](https://aws.amazon.com/s3/) ecosystem and allows streaming import. This engine is similar to the [Kafka](/core/reference/engines/table-engines/integrations/kafka), [RabbitMQ](/core/reference/engines/table-engines/integrations/rabbitmq) engines, but provides S3-specific features. It is important to understand this note from the [original PR for S3Queue implementation](https://github.com/ClickHouse/ClickHouse/pull/49086/files#diff-e1106769c9c8fbe48dd84f18310ef1a250f2c248800fde97586b3104e9cd6af8R183): when the `MATERIALIZED VIEW` joins the engine, the S3Queue Table Engine starts collecting data in the background. @@ -50,7 +50,7 @@ Before `24.7`, it is required to use `s3queue_` prefix for all settings apart fr **Engine parameters** -`S3Queue` parameters are the same as `S3` table engine supports. See parameters section [here](/reference/engines/table-engines/integrations/s3#parameters). +`S3Queue` parameters are the same as `S3` table engine supports. See parameters section [here](/core/reference/engines/table-engines/integrations/s3#parameters). **Example** @@ -137,7 +137,7 @@ SETTINGS after_processing_move_secret_access_key = 'test'; ``` -Move from an Azure container to another Azure container requires the Blob Storage connection string as `after_processing_move_connection_string` and the container name as `after_processing_move_container`. See [the AzureQueue settings](/reference/engines/table-engines/integrations/azure-queue#settings). +Move from an Azure container to another Azure container requires the Blob Storage connection string as `after_processing_move_connection_string` and the container name as `after_processing_move_container`. See [the AzureQueue settings](/core/reference/engines/table-engines/integrations/azure-queue#settings). Tagging requires tag key and value provided as `after_processing_tag_key` and `after_processing_tag_value`. @@ -335,7 +335,7 @@ Default value: `3600` (1 hour). ## S3-related settings {#s3-settings} -Engine supports all s3 related settings. For more information about S3 settings see [here](/reference/engines/table-engines/integrations/s3). +Engine supports all s3 related settings. For more information about S3 settings see [here](/core/reference/engines/table-engines/integrations/s3). ## S3 role-based access {#s3-role-based-access} @@ -379,7 +379,7 @@ The S3Queue engine has a special setting for SELECT queries: `commit_on_select`. ## Description {#description} -`SELECT` is not particularly useful for streaming import (except for debugging), because each file can be imported only once. It is more practical to create real-time threads using [materialized views](/reference/statements/create/view). To do this: +`SELECT` is not particularly useful for streaming import (except for debugging), because each file can be imported only once. It is more practical to create real-time threads using [materialized views](/core/reference/statements/create/view). To do this: 1. Use the engine to create a table for consuming from specified path in S3 and consider it a data stream. 2. Create a table with the desired structure. @@ -411,7 +411,7 @@ Example: - `_size` — Size of the file. - `_time` — Time of the file creation. -For more information about virtual columns see [here](/reference/engines/table-engines#table_engines-virtual_columns). +For more information about virtual columns see [here](/core/reference/engines/table-engines#table_engines-virtual_columns). ## Wildcards in path {#wildcards-in-path} @@ -423,7 +423,7 @@ For more information about virtual columns see [here](/reference/engines/table-e - `{some_string,another_string,yet_another_one}` — Substitutes any of strings `'some_string', 'another_string', 'yet_another_one'`. - `{N..M}` — Substitutes any number in range from N to M including both borders. N and M can have leading zeroes e.g. `000..078`. -Constructions with `{}` are similar to the [remote](/reference/functions/table-functions/remote) table function. +Constructions with `{}` are similar to the [remote](/core/reference/functions/table-functions/remote) table function. ## Limitations {#limitations} diff --git a/reference/engines/table-engines/integrations/sqlite.mdx b/core/reference/engines/table-engines/integrations/sqlite.mdx similarity index 67% rename from reference/engines/table-engines/integrations/sqlite.mdx rename to core/reference/engines/table-engines/integrations/sqlite.mdx index 1c23dad6..5c38e87c 100644 --- a/reference/engines/table-engines/integrations/sqlite.mdx +++ b/core/reference/engines/table-engines/integrations/sqlite.mdx @@ -32,16 +32,16 @@ The engine allows to import and export data to SQLite and supports queries to SQ When you explicitly specify ClickHouse column types in the table definition, the following ClickHouse types can be parsed from SQLite TEXT columns: -- [Date](/reference/data-types/date), [Date32](/reference/data-types/date32) -- [DateTime](/reference/data-types/datetime), [DateTime64](/reference/data-types/datetime64) -- [UUID](/reference/data-types/uuid) -- [Enum8, Enum16](/reference/data-types/enum) -- [Decimal32, Decimal64, Decimal128, Decimal256](/reference/data-types/decimal) -- [FixedString](/reference/data-types/fixedstring) -- All integer types ([UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64](/reference/data-types/int-uint)) -- [Float32, Float64](/reference/data-types/float) +- [Date](/core/reference/data-types/date), [Date32](/core/reference/data-types/date32) +- [DateTime](/core/reference/data-types/datetime), [DateTime64](/core/reference/data-types/datetime64) +- [UUID](/core/reference/data-types/uuid) +- [Enum8, Enum16](/core/reference/data-types/enum) +- [Decimal32, Decimal64, Decimal128, Decimal256](/core/reference/data-types/decimal) +- [FixedString](/core/reference/data-types/fixedstring) +- All integer types ([UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64](/core/reference/data-types/int-uint)) +- [Float32, Float64](/core/reference/data-types/float) -See [SQLite database engine](/reference/engines/database-engines/sqlite#data_types-support) for the default type mapping. +See [SQLite database engine](/core/reference/engines/database-engines/sqlite#data_types-support) for the default type mapping. ## Usage example {#usage-example} @@ -76,5 +76,5 @@ SELECT * FROM sqlite_db.table2 ORDER BY col1; **See Also** -- [SQLite](/reference/engines/database-engines/sqlite) engine -- [sqlite](/reference/functions/table-functions/sqlite) table function +- [SQLite](/core/reference/engines/database-engines/sqlite) engine +- [sqlite](/core/reference/functions/table-functions/sqlite) table function diff --git a/reference/engines/table-engines/integrations/time-series.mdx b/core/reference/engines/table-engines/integrations/time-series.mdx similarity index 90% rename from reference/engines/table-engines/integrations/time-series.mdx rename to core/reference/engines/table-engines/integrations/time-series.mdx index 38d75263..d7225164 100644 --- a/reference/engines/table-engines/integrations/time-series.mdx +++ b/core/reference/engines/table-engines/integrations/time-series.mdx @@ -23,7 +23,7 @@ metric_name2[...] = ... This is an experimental feature that may change in backwards-incompatible ways in the future releases. Enable usage of the TimeSeries table engine -with [allow_experimental_time_series_table](/reference/settings/session-settings#allow_experimental_time_series_table) setting. +with [allow_experimental_time_series_table](/core/reference/settings/session-settings#allow_experimental_time_series_table) setting. Input the command `set allow_experimental_time_series_table = 1`. @@ -46,13 +46,13 @@ CREATE TABLE my_table ENGINE=TimeSeries ``` Then this table can be used with the following protocols (a port must be assigned in the server configuration): -- [prometheus remote-write](/integrations/connectors/data-integrations/drivers-and-interfaces/prometheus#remote-write) -- [prometheus remote-read](/integrations/connectors/data-integrations/drivers-and-interfaces/prometheus#remote-read) +- [prometheus remote-write](/core/concepts/features/interfaces/prometheus#remote-write) +- [prometheus remote-read](/core/concepts/features/interfaces/prometheus#remote-read) ## Target tables {#target-tables} A `TimeSeries` table doesn't have its own data, everything is stored in its target tables. -This is similar to how a [materialized view](/reference/statements/create/view#materialized-view) works, +This is similar to how a [materialized view](/core/reference/statements/create/view#materialized-view) works, with the difference that a materialized view has one target table whereas a `TimeSeries` table has three target tables named [data](#data-table), [tags](#tags-table), and [metrics](#metrics-table). @@ -144,7 +144,7 @@ METRICS INNER UUID '01234567-89ab-cdef-0123-456789abcdef' So the columns were generated automatically and also there are three inner UUIDs in this statement - one per each inner target table that was created. (Inner UUIDs are not shown normally until setting -[show_table_uuid_in_table_create_query_if_not_nil](/reference/settings/session-settings#show_table_uuid_in_table_create_query_if_not_nil) +[show_table_uuid_in_table_create_query_if_not_nil](/core/reference/settings/session-settings#show_table_uuid_in_table_create_query_if_not_nil) is set.) Inner target tables have names like `.inner_id.data.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`, @@ -265,10 +265,10 @@ SETTINGS tags_to_columns = {'instance': 'instance', 'job': 'job'} ## Table engines of inner target tables {#inner-table-engines} By default inner target tables use the following table engines: -- the [data](#data-table) table uses [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree); -- the [tags](#tags-table) table uses [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) because the same data is often inserted multiple times to this table so we need a way +- the [data](#data-table) table uses [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree); +- the [tags](#tags-table) table uses [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) because the same data is often inserted multiple times to this table so we need a way to remove duplicates, and also because it's required to do aggregation for columns `min_time` and `max_time`; -- the [metrics](#metrics-table) table uses [ReplacingMergeTree](/reference/engines/table-engines/mergetree-family/replacingmergetree) because the same data is often inserted multiple times to this table so we need a way +- the [metrics](#metrics-table) table uses [ReplacingMergeTree](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) because the same data is often inserted multiple times to this table so we need a way to remove duplicates. Other table engines also can be used for inner target tables if it's specified so: @@ -316,6 +316,6 @@ Here is a list of settings which can be specified while defining a `TimeSeries` # Functions {#functions} Here is a list of functions supporting a `TimeSeries` table as an argument: -- [timeSeriesData](/reference/functions/table-functions/timeSeriesData) -- [timeSeriesTags](/reference/functions/table-functions/timeSeriesTags) -- [timeSeriesMetrics](/reference/functions/table-functions/timeSeriesMetrics) +- [timeSeriesData](/core/reference/functions/table-functions/timeSeriesData) +- [timeSeriesTags](/core/reference/functions/table-functions/timeSeriesTags) +- [timeSeriesMetrics](/core/reference/functions/table-functions/timeSeriesMetrics) diff --git a/reference/engines/table-engines/integrations/ytsaurus.mdx b/core/reference/engines/table-engines/integrations/ytsaurus.mdx similarity index 94% rename from reference/engines/table-engines/integrations/ytsaurus.mdx rename to core/reference/engines/table-engines/integrations/ytsaurus.mdx index 06594332..fdce39d2 100644 --- a/reference/engines/table-engines/integrations/ytsaurus.mdx +++ b/core/reference/engines/table-engines/integrations/ytsaurus.mdx @@ -28,7 +28,7 @@ The YTsaurus table engine allows you to import data from a YTsaurus cluster. This is an experimental feature that may change in backwards-incompatible ways in future releases. Enable usage of the YTsaurus table engine -using setting [`allow_experimental_ytsaurus_table_engine`](/reference/settings/session-settings#allow_experimental_ytsaurus_table_engine). +using setting [`allow_experimental_ytsaurus_table_engine`](/core/reference/settings/session-settings#allow_experimental_ytsaurus_table_engine). You can do so using: @@ -120,6 +120,6 @@ SELECT * FROM yt_saurus; **See Also** -- [ytsaurus](/reference/functions/table-functions/ytsaurus) table function +- [ytsaurus](/core/reference/functions/table-functions/ytsaurus) table function - [ytsaurus data schema](https://ytsaurus.tech/docs/en/user-guide/storage/static-schema) - [ytsaurus data types](https://ytsaurus.tech/docs/en/user-guide/storage/data-types) diff --git a/reference/engines/table-engines/log-family/index.mdx b/core/reference/engines/table-engines/log-family/index.mdx similarity index 82% rename from reference/engines/table-engines/log-family/index.mdx rename to core/reference/engines/table-engines/log-family/index.mdx index af3f0627..d3f11906 100644 --- a/reference/engines/table-engines/log-family/index.mdx +++ b/core/reference/engines/table-engines/log-family/index.mdx @@ -18,11 +18,11 @@ Engines of the family: | Log Engines | |---------------------------------------------------------------------| -| [StripeLog](/reference/engines/table-engines/log-family/stripelog) | -| [Log](/reference/engines/table-engines/log-family/log) | -| [TinyLog](/reference/engines/table-engines/log-family/tinylog) | +| [StripeLog](/core/reference/engines/table-engines/log-family/stripelog) | +| [Log](/core/reference/engines/table-engines/log-family/log) | +| [TinyLog](/core/reference/engines/table-engines/log-family/tinylog) | -`Log` family table engines can store data to [HDFS](/reference/engines/table-engines/integrations/hdfs) or [S3](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3) distributed file systems. +`Log` family table engines can store data to [HDFS](/core/reference/engines/table-engines/integrations/hdfs) or [S3](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3) distributed file systems. **This engine is not for log data.** @@ -42,7 +42,7 @@ Engines: During `INSERT` queries, the table is locked, and other queries for reading and writing data both wait for the table to unlock. If there are no data writing queries, any number of data reading queries can be performed concurrently. -- Do not support [mutations](/reference/statements/alter#mutations). +- Do not support [mutations](/core/reference/statements/alter#mutations). - Do not support indexes. diff --git a/reference/engines/table-engines/log-family/log.mdx b/core/reference/engines/table-engines/log-family/log.mdx similarity index 89% rename from reference/engines/table-engines/log-family/log.mdx rename to core/reference/engines/table-engines/log-family/log.mdx index 75f82c3f..50bd986d 100644 --- a/reference/engines/table-engines/log-family/log.mdx +++ b/core/reference/engines/table-engines/log-family/log.mdx @@ -11,9 +11,9 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ -The engine belongs to the family of `Log` engines. See the common properties of `Log` engines and their differences in the [Log Engine Family](/reference/engines/table-engines/log-family) article. +The engine belongs to the family of `Log` engines. See the common properties of `Log` engines and their differences in the [Log Engine Family](/core/reference/engines/table-engines/log-family) article. -`Log` differs from [TinyLog](/reference/engines/table-engines/log-family/tinylog) in that a small file of "marks" resides with the column files. These marks are written on every data block and contain offsets that indicate where to start reading the file in order to skip the specified number of rows. This makes it possible to read table data in multiple threads. +`Log` differs from [TinyLog](/core/reference/engines/table-engines/log-family/tinylog) in that a small file of "marks" resides with the column files. These marks are written on every data block and contain offsets that indicate where to start reading the file in order to skip the specified number of rows. This makes it possible to read table data in multiple threads. For concurrent data access, the read operations can be performed simultaneously, while write operations block reads and each other. The `Log` engine does not support indexes. Similarly, if writing to a table failed, the table is broken, and reading from it returns an error. The `Log` engine is appropriate for temporary data, write-once tables, and for testing or demonstration purposes. @@ -28,7 +28,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ) ENGINE = Log ``` -See the detailed description of the [CREATE TABLE](/reference/statements/create/table) query. +See the detailed description of the [CREATE TABLE](/core/reference/statements/create/table) query. ## Writing the data {#table_engines-log-writing-the-data} diff --git a/reference/engines/table-engines/log-family/stripelog.mdx b/core/reference/engines/table-engines/log-family/stripelog.mdx similarity index 92% rename from reference/engines/table-engines/log-family/stripelog.mdx rename to core/reference/engines/table-engines/log-family/stripelog.mdx index 53e5ed0d..da67832e 100644 --- a/reference/engines/table-engines/log-family/stripelog.mdx +++ b/core/reference/engines/table-engines/log-family/stripelog.mdx @@ -11,9 +11,9 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ -This engine belongs to the family of log engines. See the common properties of log engines and their differences in the [Log Engine Family](/reference/engines/table-engines/log-family) article. +This engine belongs to the family of log engines. See the common properties of log engines and their differences in the [Log Engine Family](/core/reference/engines/table-engines/log-family) article. -Use this engine in scenarios when you need to write many tables with a small amount of data (less than 1 million rows). For example, this table can be used to store incoming data batches for transformation where atomic processing of them is required. 100k instances of this table type are viable for a ClickHouse server. This table engine should be preferred over [Log](/reference/engines/table-engines/log-family/log) when a high number of tables are required. This is at the expense of read efficiency. +Use this engine in scenarios when you need to write many tables with a small amount of data (less than 1 million rows). For example, this table can be used to store incoming data batches for transformation where atomic processing of them is required. 100k instances of this table type are viable for a ClickHouse server. This table engine should be preferred over [Log](/core/reference/engines/table-engines/log-family/log) when a high number of tables are required. This is at the expense of read efficiency. ## Creating a table {#table_engines-stripelog-creating-a-table} @@ -26,7 +26,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ) ENGINE = StripeLog ``` -See the detailed description of the [CREATE TABLE](/reference/statements/create/table) query. +See the detailed description of the [CREATE TABLE](/core/reference/statements/create/table) query. ## Writing the data {#table_engines-stripelog-writing-the-data} diff --git a/reference/engines/table-engines/log-family/tinylog.mdx b/core/reference/engines/table-engines/log-family/tinylog.mdx similarity index 91% rename from reference/engines/table-engines/log-family/tinylog.mdx rename to core/reference/engines/table-engines/log-family/tinylog.mdx index 2cc9d110..9f5c6543 100644 --- a/reference/engines/table-engines/log-family/tinylog.mdx +++ b/core/reference/engines/table-engines/log-family/tinylog.mdx @@ -11,11 +11,11 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ -The engine belongs to the log engine family. See [Log Engine Family](/reference/engines/table-engines/log-family) for common properties of log engines and their differences. +The engine belongs to the log engine family. See [Log Engine Family](/core/reference/engines/table-engines/log-family) for common properties of log engines and their differences. This table engine is typically used with the write-once method: write data one time, then read it as many times as necessary. For example, you can use `TinyLog`-type tables for intermediary data that is processed in small batches. Note that storing data in a large number of small tables is inefficient. -Queries are executed in a single stream. In other words, this engine is intended for relatively small tables (up to about 1,000,000 rows). It makes sense to use this table engine if you have many small tables, since it's simpler than the [Log](/reference/engines/table-engines/log-family/log) engine (fewer files need to be opened). +Queries are executed in a single stream. In other words, this engine is intended for relatively small tables (up to about 1,000,000 rows). It makes sense to use this table engine if you have many small tables, since it's simpler than the [Log](/core/reference/engines/table-engines/log-family/log) engine (fewer files need to be opened). ## Characteristics {#characteristics} @@ -36,7 +36,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ) ENGINE = TinyLog ``` -See the detailed description of the [CREATE TABLE](/reference/statements/create/table) query. +See the detailed description of the [CREATE TABLE](/core/reference/statements/create/table) query. ## Writing the data {#table_engines-tinylog-writing-the-data} diff --git a/reference/engines/table-engines/mergetree-family/aggregatingmergetree.mdx b/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree.mdx similarity index 84% rename from reference/engines/table-engines/mergetree-family/aggregatingmergetree.mdx rename to core/reference/engines/table-engines/mergetree-family/aggregatingmergetree.mdx index b4a36d8c..4ebdaf0b 100644 --- a/reference/engines/table-engines/mergetree-family/aggregatingmergetree.mdx +++ b/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree.mdx @@ -1,6 +1,6 @@ --- description: 'Replaces all rows with the same primary key (or more accurately, with - the same [sorting key](/reference/engines/table-engines/mergetree-family/mergetree)) + the same [sorting key](/core/reference/engines/table-engines/mergetree-family/mergetree)) with a single row (within a single data part) that stores a combination of states of aggregate functions.' sidebarTitle: 'AggregatingMergeTree' @@ -9,7 +9,7 @@ title: 'AggregatingMergeTree table engine' doc_type: 'reference' --- -The engine inherits from [MergeTree](/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree), altering the logic for data parts merging. ClickHouse replaces all rows with the same primary key (or more accurately, with the same [sorting key](/reference/engines/table-engines/mergetree-family/mergetree)) with a single row (within a single data part) that stores a combination of states of aggregate functions. +The engine inherits from [MergeTree](/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree), altering the logic for data parts merging. ClickHouse replaces all rows with the same primary key (or more accurately, with the same [sorting key](/core/reference/engines/table-engines/mergetree-family/mergetree)) with a single row (within a single data part) that stores a combination of states of aggregate functions. You can use `AggregatingMergeTree` tables for incremental data aggregation, including for aggregated materialized views. @@ -22,8 +22,8 @@ You can see an example of how to use the AggregatingMergeTree and Aggregate func The engine processes all columns with the following types: -- [`AggregateFunction`](/reference/data-types/aggregatefunction) -- [`SimpleAggregateFunction`](/reference/data-types/simpleaggregatefunction) +- [`AggregateFunction`](/core/reference/data-types/aggregatefunction) +- [`SimpleAggregateFunction`](/core/reference/data-types/simpleaggregatefunction) It is appropriate to use `AggregatingMergeTree` if it reduces the number of rows by orders. @@ -43,11 +43,11 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] [SETTINGS name=value, ...] ``` -For a description of request parameters, see [request description](/reference/statements/create/table). +For a description of request parameters, see [request description](/core/reference/statements/create/table). **Query clauses** -When creating an `AggregatingMergeTree` table, the same [clauses](/reference/engines/table-engines/mergetree-family/mergetree) are required as when creating a `MergeTree` table. +When creating an `AggregatingMergeTree` table, the same [clauses](/core/reference/engines/table-engines/mergetree-family/mergetree) are required as when creating a `MergeTree` table.
    @@ -71,7 +71,7 @@ All of the parameters have the same meaning as in `MergeTree`. ## SELECT and INSERT {#select-and-insert} -To insert data, use [INSERT SELECT](/reference/statements/insert-into) query with aggregate -State- functions. +To insert data, use [INSERT SELECT](/core/reference/statements/insert-into) query with aggregate -State- functions. When selecting data from `AggregatingMergeTree` table, use `GROUP BY` clause and the same aggregate functions as when inserting data, but using the `-Merge` suffix. In the results of `SELECT` query, the values of `AggregateFunction` type have implementation-specific binary representation for all of the ClickHouse output formats. For example, if you dump data into `TabSeparated` format with a `SELECT` query, then this dump can be loaded back using an `INSERT` query. @@ -98,7 +98,7 @@ CREATE TABLE test.visits Next, you need an `AggregatingMergeTree` table that will store `AggregationFunction`s that keep track of the total number of visits and the number of unique users. -Create an `AggregatingMergeTree` materialized view that watches the `test.visits` table, and uses the [`AggregateFunction`](/reference/data-types/aggregatefunction) type: +Create an `AggregatingMergeTree` materialized view that watches the `test.visits` table, and uses the [`AggregateFunction`](/core/reference/data-types/aggregatefunction) type: ```sql CREATE TABLE test.agg_visits ( @@ -168,7 +168,7 @@ Run the `SELECT` query again, which will return the following output: In some cases, you might want to avoid pre-aggregating rows at insert time to shift the cost of aggregation from insert time to merge time. Ordinarily, it is necessary to include the columns which are not part of the aggregation in the `GROUP BY` -clause of the materialized view definition to avoid an error. However, you can make use of the [`initializeAggregation`](/reference/functions/regular-functions/other-functions#initializeAggregation) +clause of the materialized view definition to avoid an error. However, you can make use of the [`initializeAggregation`](/core/reference/functions/regular-functions/other-functions#initializeAggregation) function with setting `optimize_on_insert = 0` (it is turned on by default) to achieve this. Use of `GROUP BY` is no longer required in this case: diff --git a/reference/engines/table-engines/mergetree-family/annindexes.mdx b/core/reference/engines/table-engines/mergetree-family/annindexes.mdx similarity index 89% rename from reference/engines/table-engines/mergetree-family/annindexes.mdx rename to core/reference/engines/table-engines/mergetree-family/annindexes.mdx index d53934e8..45dec2a0 100644 --- a/reference/engines/table-engines/mergetree-family/annindexes.mdx +++ b/core/reference/engines/table-engines/mergetree-family/annindexes.mdx @@ -23,17 +23,17 @@ ORDER BY (vectors, reference_vector) LIMIT ``` -The points in the vector space are stored in a column `vectors` of array type, e.g. [Array(Float64)](/reference/data-types/array), [Array(Float32)](/reference/data-types/array), or [Array(BFloat16)](/reference/data-types/array). +The points in the vector space are stored in a column `vectors` of array type, e.g. [Array(Float64)](/core/reference/data-types/array), [Array(Float32)](/core/reference/data-types/array), or [Array(BFloat16)](/core/reference/data-types/array). The reference vector is a constant array and given as a common table expression. `` computes the distance between the reference point and all stored points. -Any of the available [distance function](/reference/functions/regular-functions/distance-functions) can be used for that. +Any of the available [distance function](/core/reference/functions/regular-functions/distance-functions) can be used for that. `` specifies how many neighbors should be returned. ## Exact vector search {#exact-nearest-neighbor-search} An exact vector search can be performed using above SELECT query as is. The runtime of such queries is generally proportional to the number of stored vectors and their dimension, i.e. the number of array elements. -Also, since ClickHouse performs a brute-force scan of all vectors, the runtime depends also on the number of threads by the query (see setting [max_threads](/reference/settings/session-settings#max_threads)). +Also, since ClickHouse performs a brute-force scan of all vectors, the runtime depends also on the number of threads by the query (see setting [max_threads](/core/reference/settings/session-settings#max_threads)). ### Example {#exact-nearest-neighbor-search-example} @@ -91,7 +91,7 @@ Alternatively, to add a vector similarity index to an existing table: ALTER TABLE table ADD INDEX vectors TYPE vector_similarity(, , ) [GRANULARITY ]; ``` -Vector similarity indexes are special kinds of skipping indexes (see [here](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) and [here](/concepts/features/performance/skip-indexes/skipping-indexes)). +Vector similarity indexes are special kinds of skipping indexes (see [here](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) and [here](/core/concepts/features/performance/skip-indexes/skipping-indexes)). Accordingly, above `ALTER TABLE` statement only causes the index to be built for future new data inserted into the table. To build the index for existing data as well, you need to materialize it: @@ -114,7 +114,7 @@ As a result, vector indexes with `L2Distance` and `cosineDistance` can only be u `` specifies the array cardinality (number of elements) in the underlying column. If ClickHouse finds an array with a different cardinality during index creation, the index is discarded and an error is returned. -The optional GRANULARITY parameter `` refers to the size of the index granules (see [here](/concepts/features/performance/skip-indexes/skipping-indexes)). +The optional GRANULARITY parameter `` refers to the size of the index granules (see [here](/core/concepts/features/performance/skip-indexes/skipping-indexes)). Unlike regular skip indexes, which use a default index granularity of 1, vector similarity indexes use 100 million as default index granularity. This value makes sure that only few indexes are build internally even for large parts. We recommend changing the index granularity only for advanced users who understand the implications of what they are doing (see [below](#differences-to-regular-skipping-indexes)). @@ -144,10 +144,10 @@ The default values of all HNSW-specific parameters work reasonably well in the m We therefore do not recommend customizing the HNSW-specific parameters. Further restrictions apply: -- Vector similarity indexes can only be build on columns of type [Array(Float32)](/reference/data-types/array), [Array(Float64)](/reference/data-types/array), or [Array(BFloat16)](/reference/data-types/array). Arrays of nullable and low-cardinality floats such as `Array(Nullable(Float32))` and `Array(LowCardinality(Float32))` are not allowed. +- Vector similarity indexes can only be build on columns of type [Array(Float32)](/core/reference/data-types/array), [Array(Float64)](/core/reference/data-types/array), or [Array(BFloat16)](/core/reference/data-types/array). Arrays of nullable and low-cardinality floats such as `Array(Nullable(Float32))` and `Array(LowCardinality(Float32))` are not allowed. - Vector similarity indexes must be build on single columns. - Vector similarity indexes may be build on calculated expressions (e.g., `INDEX index_name arraySort(vectors) TYPE vector_similarity([...])`) but such indexes cannot be used for approximate neighbor search later on. -- Vector similarity indexes require that all arrays in the underlying column have ``-many elements - this is checked during index creation. To detect violations of this requirement as early as possible, users can add a [constraint](/reference/statements/create/table#constraints) for the vector column, e.g., `CONSTRAINT same_length CHECK length(vectors) = 256`. +- Vector similarity indexes require that all arrays in the underlying column have ``-many elements - this is checked during index creation. To detect violations of this requirement as early as possible, users can add a [constraint](/core/reference/statements/create/table#constraints) for the vector column, e.g., `CONSTRAINT same_length CHECK length(vectors) = 256`. - Likewise, array values in the underlying column must not be empty (`[]`) or have a default value (also `[]`). **Estimating storage and memory consumption** @@ -194,7 +194,7 @@ Above formula does not account for additional memory required by vector similari #### Using a Vector Similarity Index {#using-a-vector-similarity-index} -To use vector similarity indexes, setting [compatibility](/reference/settings/session-settings) has be `''` (the default value), or `'25.1'` or newer. +To use vector similarity indexes, setting [compatibility](/core/reference/settings/session-settings) has be `''` (the default value), or `'25.1'` or newer. Vector similarity indexes support SELECT queries of this form: @@ -211,12 +211,12 @@ LIMIT ClickHouse's query optimizer tries to match above query template and make use of available vector similarity indexes. A query can only use a vector similarity index if the distance function in the SELECT query is the same as the distance function in the index definition. -Advanced users may provide a custom value for setting [hnsw_candidate_list_size_for_search](/reference/settings/session-settings#hnsw_candidate_list_size_for_search) (also know as HNSW hyperparameter "ef_search") to tune the size of the candidate list during search (e.g. `SELECT [...] SETTINGS hnsw_candidate_list_size_for_search = `). +Advanced users may provide a custom value for setting [hnsw_candidate_list_size_for_search](/core/reference/settings/session-settings#hnsw_candidate_list_size_for_search) (also know as HNSW hyperparameter "ef_search") to tune the size of the candidate list during search (e.g. `SELECT [...] SETTINGS hnsw_candidate_list_size_for_search = `). The default value of the setting 256 works well in the majority of use cases. Higher setting values mean better accuracy at the cost of slower performance. If the query can use a vector similarity index, ClickHouse checks that the LIMIT `` provided in SELECT queries is within reasonable bounds. -More specifically, an error is returned if `` is bigger than the value of setting [max_limit_for_vector_search_queries](/reference/settings/session-settings#max_limit_for_vector_search_queries) with default value 100. +More specifically, an error is returned if `` is bigger than the value of setting [max_limit_for_vector_search_queries](/core/reference/settings/session-settings#max_limit_for_vector_search_queries) with default value 100. Too large LIMIT values can slow down searches and usually indicate a usage error. To check if a SELECT query uses a vector similarity index, you can prefix the query with `EXPLAIN indexes = 1`. @@ -263,7 +263,7 @@ In this case, the vector similarity index dropped two of four granules, i.e. 50% The more granules can be dropped, the more effective index usage becomes. -To enforce index usage, you can run the SELECT query with setting [force_data_skipping_indexes](/reference/settings/session-settings#force_data_skipping_indices) (provide the index name as setting value). +To enforce index usage, you can run the SELECT query with setting [force_data_skipping_indexes](/core/reference/settings/session-settings#force_data_skipping_indices) (provide the index name as setting value). **Post-filtering and Pre-filtering** @@ -302,7 +302,7 @@ If additional filter conditions cannot be evaluated using indexes (primary key i *Additional filters can be evaluated using the primary key index* -If additional filter conditions can be evaluated using the [primary key](/reference/engines/table-engines/mergetree-family/mergetree#primary-key) (i.e., they form a prefix of the primary key) and +If additional filter conditions can be evaluated using the [primary key](/core/reference/engines/table-engines/mergetree-family/mergetree#primary-key) (i.e., they form a prefix of the primary key) and - the filter condition eliminates at least one row within a part, the ClickHouse will fall back to pre-filtering for the "surviving" ranges within the part, - the filter condition eliminates no rows within a part, the ClickHouse will perform post-filtering for the part. @@ -310,12 +310,12 @@ In practical use cases, the latter case is rather unlikely. *Additional filters can be evaluated using skipping index* -If additional filter conditions can be evaluated using [skipping indexes](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) (minmax index, set index, etc.), Clickhouse performs post-filtering. +If additional filter conditions can be evaluated using [skipping indexes](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) (minmax index, set index, etc.), Clickhouse performs post-filtering. In such cases, the vector similarity index is evaluated first as it is expected to remove the most rows relative to other skipping indexes. For finer control over post-filtering vs. pre-filtering, two settings can be used: -Setting [vector_search_filter_strategy](/reference/settings/session-settings#vector_search_filter_strategy) (default: `auto` which implements above heuristics) may be set to `prefilter`. +Setting [vector_search_filter_strategy](/core/reference/settings/session-settings#vector_search_filter_strategy) (default: `auto` which implements above heuristics) may be set to `prefilter`. This is useful to force pre-filtering in cases where the additional filter conditions are extremely selective. As an example, the following query may benefit from pre-filtering: @@ -330,7 +330,7 @@ LIMIT 10 Assuming that only a very small number of books cost less than 2 dollar, post-filtering may return zero rows because the top 10 matches returned by the vector index could all be priced above 2 dollar. By forcing pre-filtering (add `SETTINGS vector_search_filter_strategy = 'prefilter'` to the query), ClickHouse first finds all books with a price of less than 2 dollar and then executes a brute-force vector search for the found books. -As an alternative approach to resolve above issue, setting [vector_search_index_fetch_multiplier](/reference/settings/session-settings#vector_search_index_fetch_multiplier) (default: `1.0`, maximum: `1000.0`) may be configured to a value > `1.0` (for example, `2.0`). +As an alternative approach to resolve above issue, setting [vector_search_index_fetch_multiplier](/core/reference/settings/session-settings#vector_search_index_fetch_multiplier) (default: `1.0`, maximum: `1000.0`) may be configured to a value > `1.0` (for example, `2.0`). The number of nearest neighbors fetched from the vector index is multiplied by the setting value and then the additional filter to be applied on those rows to return LIMIT-many rows. As an example, we can query again but with multiplier `3.0`: @@ -356,7 +356,7 @@ ClickHouse will then load these granules from disk, and repeat the distance calc This step is called rescoring and while it can theoretically improve accuracy - remember the vector similarity index returns only an _approximate_ result, it is obvious not optimal in terms of performance. ClickHouse therefore provides an optimization which disables rescoring and returns the most similar vectors and their distances directly from the index. -The optimization is enabled by default, see setting [vector_search_with_rescoring](/reference/settings/session-settings#vector_search_with_rescoring). +The optimization is enabled by default, see setting [vector_search_with_rescoring](/core/reference/settings/session-settings#vector_search_with_rescoring). The way it works at a high level is that ClickHouse makes the most similar vectors and their distances available as a virtual column `_distances`. To see this, run a vector search query with `EXPLAIN header = 1`: @@ -400,7 +400,7 @@ A query run without rescoring (`vector_search_with_rescoring = 0`) and with para **Tuning compression** In virtually all use cases, the vectors in the underlying column are dense and do not compress well. -As a result, [compression](/reference/statements/create/table#column_compression_codec) slows down inserts and reads into/from the vector column. +As a result, [compression](/core/reference/statements/create/table#column_compression_codec) slows down inserts and reads into/from the vector column. We therefore recommend to disable compression. To do that, specify `CODEC(NONE)` for the vector column like this: @@ -412,22 +412,22 @@ CREATE TABLE tab(id Int32, vec Array(Float32) CODEC(NONE), INDEX idx vec TYPE ve The life cycle of vector similarity indexes is tied to the life cycle of parts. In other words, whenever a new part with defined vector similarity index is created, the index is create as well. -This typically happens when data is [inserted](/get-started/oss/starter-guides/inserting-data) or during [merges](/concepts/core-concepts/merges). +This typically happens when data is [inserted](/core/concepts/features/operations/insert/inserting-data) or during [merges](/core/concepts/core-concepts/merges). Unfortunately, HNSW is known for long index creation times which can significantly slow down inserts and merges. Vector similarity indexes are ideally only used if the data is immutable or rarely changed. To speed up index creation, the following techniques can be used: First, index creation can be parallelized. -The maximum number of index creation threads can be configured using server setting [max_build_vector_similarity_index_thread_pool_size](/reference/settings/server-settings/settings#max_build_vector_similarity_index_thread_pool_size). +The maximum number of index creation threads can be configured using server setting [max_build_vector_similarity_index_thread_pool_size](/core/reference/settings/server-settings/settings#max_build_vector_similarity_index_thread_pool_size). For optimal performance, the setting value should be configured to the number of CPU cores. -Second, to speed up INSERT statements, users may disable the creation of skipping indexes on newly inserted parts using session setting [materialize_skip_indexes_on_insert](/reference/settings/session-settings#materialize_skip_indexes_on_insert). +Second, to speed up INSERT statements, users may disable the creation of skipping indexes on newly inserted parts using session setting [materialize_skip_indexes_on_insert](/core/reference/settings/session-settings#materialize_skip_indexes_on_insert). SELECT queries on such parts will fall back to exact search. Since inserted parts tend to be small compared to the total table size, the performance impact of that is expected to be negligible. -Third, to speed up merges, users may disable the creation of skipping indexes on merged parts using session setting [materialize_skip_indexes_on_merge](/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge). -This, in conjunction with statement [ALTER TABLE \[...\] MATERIALIZE INDEX \[...\]](/reference/statements/alter/skipping-index#materialize-index), provides explicit control over the life cycle of vector similarity indexes. +Third, to speed up merges, users may disable the creation of skipping indexes on merged parts using session setting [materialize_skip_indexes_on_merge](/core/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge). +This, in conjunction with statement [ALTER TABLE \[...\] MATERIALIZE INDEX \[...\]](/core/reference/statements/alter/skipping-index#materialize-index), provides explicit control over the life cycle of vector similarity indexes. For example, index creation can be deferred until all data was ingested or until a period of low system load such as the weekend. **Tuning index usage** @@ -435,7 +435,7 @@ For example, index creation can be deferred until all data was ingested or until SELECT queries need to load vector similarity indexes into main memory to use them. To avoid that the same vector similarity index is loaded repeatedly into main memory, ClickHouse provides a dedicated in-memory cache for such indexes. The bigger this cache is, the fewer unnecessary loads will happen. -The maximum cache size can be configured using server setting [vector_similarity_index_cache_size](/reference/settings/server-settings/settings#vector_similarity_index_cache_size). +The maximum cache size can be configured using server setting [vector_similarity_index_cache_size](/core/reference/settings/server-settings/settings#vector_similarity_index_cache_size). By default, the cache can grow up to 5 GB in size. The following log messages (`system.text_log`) indicate that the vector similarity index is being loaded. @@ -452,12 +452,12 @@ If such messages appear repeatedly for different vector search queries, this ind The vector similarity index cache stores vector index granules. If individual vector index granules are bigger than the cache size, they will not be cached. -Therefore, please make sure to calculate the vector index size (based on the formula in "Estimating storage and memory consumption" or [system.data_skipping_indices](/reference/system-tables/data_skipping_indices)) and size the cache correspondingly. +Therefore, please make sure to calculate the vector index size (based on the formula in "Estimating storage and memory consumption" or [system.data_skipping_indices](/core/reference/system-tables/data_skipping_indices)) and size the cache correspondingly. _We reiterate that verifying and, if necessary, increasing the vector index cache should be the first step when investigating slow vector search queries._ -The current size of the vector similarity index cache is shown in [system.metrics](/reference/system-tables/metrics): +The current size of the vector similarity index cache is shown in [system.metrics](/core/reference/system-tables/metrics): ```sql SELECT metric, value @@ -465,7 +465,7 @@ FROM system.metrics WHERE metric = 'VectorSimilarityIndexCacheBytes' ``` -The cache hits and misses for a query with some query id can be obtained from [system.query_log](/reference/system-tables/query_log): +The cache hits and misses for a query with some query id can be obtained from [system.query_log](/core/reference/system-tables/query_log): ```sql SYSTEM FLUSH LOGS query_log; @@ -495,7 +495,7 @@ Quantization reduces the precision of vector searches compared to searching the However, on most datasets, half-precision brain float quantization (`bf16`) results in a negligible precision loss, therefore vector similarity indexes use this quantization technique by default. Quarter precision (`i8`) and binary (`b1`) quantization causes appreciable precision loss in vector searches. We recommend both quantizations only if the the size of the vector similarity index is significantly larger than the available DRAM size. -In this case, we also suggest enabling rescoring ([vector_search_index_fetch_multiplier](/reference/settings/session-settings#vector_search_index_fetch_multiplier), [vector_search_with_rescoring](/reference/settings/session-settings#vector_search_with_rescoring)) to improve accuracy. +In this case, we also suggest enabling rescoring ([vector_search_index_fetch_multiplier](/core/reference/settings/session-settings#vector_search_index_fetch_multiplier), [vector_search_with_rescoring](/core/reference/settings/session-settings#vector_search_with_rescoring)) to improve accuracy. Binary quantization is only recommended for 1) normalized embeddings (i.e. vector length = 1, OpenAI models are usually normalized), and 2) if the cosine distance is used as distance function. Binary quantization internally uses the Hamming distance to construct and search the proximity graph. The rescoring step uses the original full-precision vectors stored in the table to identify the nearest neighbours via cosine distance. @@ -542,7 +542,7 @@ This saves CPU time on the server side, and avoids bloat in the server logs and #### Administration and monitoring {#administration} -The on-disk size of vector similarity indexes can be obtained from [system.data_skipping_indices](/reference/system-tables/data_skipping_indices): +The on-disk size of vector similarity indexes can be obtained from [system.data_skipping_indices](/core/reference/system-tables/data_skipping_indices): ```sql SELECT database, table, name, formatReadableSize(data_compressed_bytes) @@ -560,7 +560,7 @@ Example output: #### Differences to regular skipping indexes {#differences-to-regular-skipping-indexes} -As all regular [skipping indexes](/concepts/features/performance/skip-indexes/skipping-indexes), vector similarity indexes are constructed over granules and each indexed block consists of `GRANULARITY = [N]`-many granules (`[N]` = 1 by default for normal skipping indexes). +As all regular [skipping indexes](/core/concepts/features/performance/skip-indexes/skipping-indexes), vector similarity indexes are constructed over granules and each indexed block consists of `GRANULARITY = [N]`-many granules (`[N]` = 1 by default for normal skipping indexes). For example, if the primary index granularity of the table is 8192 (setting `index_granularity = 8192`) and `GRANULARITY = 2`, then each indexed block will contain 16384 rows. However, data structures and algorithms for approximate neighbor search are inherently row-oriented. They store a compact representation of a set of rows and also return rows for vector search queries. @@ -608,14 +608,14 @@ LIMIT 3; ``` Further example datasets that use approximate vector search: -- [LAION-400M](/get-started/sample-datasets/laion) -- [LAION-5B](/get-started/sample-datasets/laion5b) -- [dbpedia](/get-started/sample-datasets/dbpedia) -- [hackernews](/get-started/sample-datasets/hacker-news-vector-search) +- [LAION-400M](/core/get-started/sample-datasets/laion) +- [LAION-5B](/core/get-started/sample-datasets/laion5b) +- [dbpedia](/core/get-started/sample-datasets/dbpedia) +- [hackernews](/core/get-started/sample-datasets/hacker-news-vector-search) ### Quantized Bit (QBit) {#approximate-nearest-neighbor-search-qbit} -One common approach to speed up exact vector search is to use a lower-precision [float data type](/reference/data-types/float). +One common approach to speed up exact vector search is to use a lower-precision [float data type](/core/reference/data-types/float). For example, if vectors are stored as `Array(BFloat16)` instead of `Array(Float32)`, the data size is reduced by half, and query runtimes are expected to decrease proportionally. This method is known as quantization. While it speeds up computation, it may reduce result accuracy despite performing an exhaustive scan of all vectors. @@ -659,7 +659,7 @@ INSERT INTO fruit_animal VALUES Let's find the nearest neighbors to a vector representing word 'lemon' using L2 distance. The third parameter in the distance function specifies the precision in bits - higher values provide more accuracy but require more computation. -You can find all available distance functions for `QBit` [here](/reference/data-types/qbit#vector-search-functions). +You can find all available distance functions for `QBit` [here](/core/reference/data-types/qbit#vector-search-functions). **Full precision search (64-bit):** diff --git a/reference/engines/table-engines/mergetree-family/coalescingmergetree.mdx b/core/reference/engines/table-engines/mergetree-family/coalescingmergetree.mdx similarity index 86% rename from reference/engines/table-engines/mergetree-family/coalescingmergetree.mdx rename to core/reference/engines/table-engines/mergetree-family/coalescingmergetree.mdx index de9ede06..5a2ff77c 100644 --- a/reference/engines/table-engines/mergetree-family/coalescingmergetree.mdx +++ b/core/reference/engines/table-engines/mergetree-family/coalescingmergetree.mdx @@ -15,11 +15,11 @@ doc_type: 'reference' This table engine is available from version 25.6 and higher in both OSS and Cloud. -This engine inherits from [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree). The key difference is in how data parts are merged: for `CoalescingMergeTree` tables, ClickHouse replaces all rows with the same primary key (or more precisely, the same [sorting key](/reference/engines/table-engines/mergetree-family/mergetree)) with a single row that contains the latest non-NULL values for each column. +This engine inherits from [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree). The key difference is in how data parts are merged: for `CoalescingMergeTree` tables, ClickHouse replaces all rows with the same primary key (or more precisely, the same [sorting key](/core/reference/engines/table-engines/mergetree-family/mergetree)) with a single row that contains the latest non-NULL values for each column. This enables column-level upserts, meaning you can update only specific columns rather than entire rows. -`CoalescingMergeTree` is intended for use with Nullable types in non-key columns. If the columns are not Nullable, the behavior is the same as with [ReplacingMergeTree](/reference/engines/table-engines/mergetree-family/replacingmergetree). +`CoalescingMergeTree` is intended for use with Nullable types in non-key columns. If the columns are not Nullable, the behavior is the same as with [ReplacingMergeTree](/core/reference/engines/table-engines/mergetree-family/replacingmergetree). ## Creating a table {#creating-a-table} @@ -36,7 +36,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] [SETTINGS name=value, ...] ``` -For a description of request parameters, see [request description](/reference/statements/create/table). +For a description of request parameters, see [request description](/core/reference/statements/create/table). ### Parameters of CoalescingMergeTree {#parameters-of-coalescingmergetree} @@ -46,7 +46,7 @@ For a description of request parameters, see [request description](/reference/st ### Query clauses {#query-clauses} -When creating a `CoalescingMergeTree` table the same [clauses](/reference/engines/table-engines/mergetree-family/mergetree) are required, as when creating a `MergeTree` table. +When creating a `CoalescingMergeTree` table the same [clauses](/core/reference/engines/table-engines/mergetree-family/mergetree) are required, as when creating a `MergeTree` table.
    diff --git a/reference/engines/table-engines/mergetree-family/collapsingmergetree.mdx b/core/reference/engines/table-engines/mergetree-family/collapsingmergetree.mdx similarity index 93% rename from reference/engines/table-engines/mergetree-family/collapsingmergetree.mdx rename to core/reference/engines/table-engines/mergetree-family/collapsingmergetree.mdx index a04de558..6d532282 100644 --- a/reference/engines/table-engines/mergetree-family/collapsingmergetree.mdx +++ b/core/reference/engines/table-engines/mergetree-family/collapsingmergetree.mdx @@ -10,7 +10,7 @@ doc_type: 'guide' ## Description {#description} -The `CollapsingMergeTree` engine inherits from [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) +The `CollapsingMergeTree` engine inherits from [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) and adds logic for collapsing rows during the merge process. The `CollapsingMergeTree` table engine asynchronously deletes (collapses) pairs of rows if all the fields in a sorting key (`ORDER BY`) are equivalent except for the special field `Sign`, @@ -27,9 +27,9 @@ increasing the efficiency of `SELECT` queries as a consequence. ## Parameters {#parameters} All parameters of this table engine, with the exception of the `Sign` parameter, -have the same meaning as in [`MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree). +have the same meaning as in [`MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree). -- `Sign` — The name given to a column with the type of row where `1` is a "state" row and `-1` is a "cancel" row. Type: [Int8](/reference/data-types/int-uint). +- `Sign` — The name given to a column with the type of row where `1` is a "state" row and `-1` is a "cancel" row. Type: [Int8](/core/reference/data-types/int-uint). ## Creating a table {#creating-a-table} @@ -66,12 +66,12 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ENGINE [=] CollapsingMergeTree(date-column [, sampling_expression], (primary, key), index_granularity, Sign) ``` -`Sign` — The name given to a column with the type of row where `1` is a "state" row and `-1` is a "cancel" row. [Int8](/reference/data-types/int-uint). +`Sign` — The name given to a column with the type of row where `1` is a "state" row and `-1` is a "cancel" row. [Int8](/core/reference/data-types/int-uint).
    -- For a description of query parameters, see [query description](/reference/statements/create/table). -- When creating a `CollapsingMergeTree` table, the same [query clauses](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) are required, as when creating a `MergeTree` table. +- For a description of query parameters, see [query description](/core/reference/statements/create/table). +- When creating a `CollapsingMergeTree` table, the same [query clauses](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) are required, as when creating a `MergeTree` table. ## Collapsing {#table_engine-collapsingmergetree-collapsing} @@ -135,7 +135,7 @@ is further discussed in the [Algorithm](#table_engine-collapsingmergetree-collap ### Algorithm {#table_engine-collapsingmergetree-collapsing-algorithm} -When ClickHouse merges data [parts](/concepts/core-concepts/glossary#parts), +When ClickHouse merges data [parts](/core/concepts/core-concepts/glossary#parts), each group of consecutive rows with the same sorting key (`ORDER BY`) is reduced to no more than two rows, the "state" row with `Sign` = `1` and the "cancel" row with `Sign` = `-1`. In other words, in ClickHouse entries collapse. @@ -174,7 +174,7 @@ because `CollapsingMergeTree` does not save the history of the collapsed states. If you need to extract data without aggregation (for example, to check whether rows whose newest values match certain conditions are present), -you can use the [`FINAL`](/reference/statements/select/from#final-modifier) modifier for the `FROM` clause. It will merge the data before returning the result. +you can use the [`FINAL`](/core/reference/statements/select/from#final-modifier) modifier for the `FROM` clause. It will merge the data before returning the result. For CollapsingMergeTree, only the latest state row for each key is returned. @@ -245,8 +245,8 @@ However, collapsing **did not occur** because there was no merge of the data par and ClickHouse merges data parts in the background at an unknown moment which we cannot predict. We therefore need an aggregation -which we perform with the [`sum`](/reference/functions/aggregate-functions/reference/sum) -aggregate function and the [`HAVING`](/reference/statements/select/having) clause: +which we perform with the [`sum`](/core/reference/functions/aggregate-functions/reference/sum) +aggregate function and the [`HAVING`](/core/reference/statements/select/having) clause: ```sql SELECT diff --git a/reference/engines/table-engines/mergetree-family/custom-partitioning-key.mdx b/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key.mdx similarity index 82% rename from reference/engines/table-engines/mergetree-family/custom-partitioning-key.mdx rename to core/reference/engines/table-engines/mergetree-family/custom-partitioning-key.mdx index 4cf0546f..88382a5d 100644 --- a/reference/engines/table-engines/mergetree-family/custom-partitioning-key.mdx +++ b/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key.mdx @@ -12,11 +12,11 @@ In most cases you do not need a partition key, and in most other cases you do no You should never use too granular of partitioning. Don't partition your data by client identifiers or names. Instead, make a client identifier or name the first column in the ORDER BY expression. -Partitioning is available for the [MergeTree family tables](/reference/engines/table-engines/mergetree-family/mergetree), including [replicated tables](/reference/engines/table-engines/mergetree-family/replication) and [materialized views](/reference/statements/create/view#materialized-view). +Partitioning is available for the [MergeTree family tables](/core/reference/engines/table-engines/mergetree-family/mergetree), including [replicated tables](/core/reference/engines/table-engines/mergetree-family/replication) and [materialized views](/core/reference/statements/create/view#materialized-view). A partition is a logical combination of records in a table by a specified criterion. You can set a partition by an arbitrary criterion, such as by month, by day, or by event type. Each partition is stored separately to simplify manipulations of this data. When accessing the data, ClickHouse uses the smallest subset of partitions possible. Partitions improve performance for queries containing a partitioning key because ClickHouse will filter for that partition before selecting the parts and granules within the partition. -The partition is specified in the `PARTITION BY expr` clause when [creating a table](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table). The partition key can be any expression from the table columns. For example, to specify partitioning by month, use the expression `toYYYYMM(date_column)`: +The partition is specified in the `PARTITION BY expr` clause when [creating a table](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table). The partition key can be any expression from the table columns. For example, to specify partitioning by month, use the expression `toYYYYMM(date_column)`: ```sql CREATE TABLE visits @@ -30,7 +30,7 @@ PARTITION BY toYYYYMM(VisitDate) ORDER BY Hour; ``` -The partition key can also be a tuple of expressions (similar to the [primary key](/reference/engines/table-engines/mergetree-family/mergetree#primary-keys-and-indexes-in-queries)). For example: +The partition key can also be a tuple of expressions (similar to the [primary key](/core/reference/engines/table-engines/mergetree-family/mergetree#primary-keys-and-indexes-in-queries)). For example: ```sql ENGINE = ReplicatedCollapsingMergeTree('/clickhouse/tables/name', 'replica1', Sign) @@ -40,7 +40,7 @@ ORDER BY (CounterID, StartDate, intHash32(UserID)); In this example, we set partitioning by the event types that occurred during the current week. -By default, the floating-point partition key is not supported. To use it enable the setting [allow_floating_point_partition_key](/reference/settings/merge-tree-settings#allow_floating_point_partition_key). +By default, the floating-point partition key is not supported. To use it enable the setting [allow_floating_point_partition_key](/core/reference/settings/merge-tree-settings#allow_floating_point_partition_key). When inserting new data to a table, this data is stored as a separate part (chunk) sorted by the primary key. In 10-15 minutes after inserting, the parts of the same partition are merged into the entire part. @@ -48,7 +48,7 @@ When inserting new data to a table, this data is stored as a separate part (chun A merge only works for data parts that have the same value for the partitioning expression. This means **you shouldn't make overly granular partitions** (more than about a thousand partitions). Otherwise, the `SELECT` query performs poorly because of an unreasonably large number of files in the file system and open file descriptors. -Use the [system.parts](/reference/system-tables/parts) table to view the table parts and partitions. For example, let's assume that we have a `visits` table with partitioning by month. Let's perform the `SELECT` query for the `system.parts` table: +Use the [system.parts](/core/reference/system-tables/parts) table to view the table parts and partitions. For example, let's assume that we have a `visits` table with partitioning by month. Let's perform the `SELECT` query for the `system.parts` table: ```sql SELECT @@ -71,9 +71,9 @@ WHERE table = 'visits' └───────────┴───────────────────┴────────┘ ``` -The `partition` column contains the names of the partitions. There are two partitions in this example: `201901` and `201902`. You can use this column value to specify the partition name in [ALTER ... PARTITION](/reference/statements/alter/partition) queries. +The `partition` column contains the names of the partitions. There are two partitions in this example: `201901` and `201902`. You can use this column value to specify the partition name in [ALTER ... PARTITION](/core/reference/statements/alter/partition) queries. -The `name` column contains the names of the partition data parts. You can use this column to specify the name of the part in the [ALTER ATTACH PART](/reference/statements/alter/partition#attach-partitionpart) query. +The `name` column contains the names of the partition data parts. You can use this column to specify the name of the part in the [ALTER ATTACH PART](/core/reference/statements/alter/partition#attach-partitionpart) query. Let's break down the name of the part: `201901_1_9_2_11`: @@ -89,7 +89,7 @@ The parts of old-type tables have the name: `20190117_20190123_2_2_0` (minimum d The `active` column shows the status of the part. `1` is active; `0` is inactive. The inactive parts are, for example, source parts remaining after merging to a larger part. The corrupted data parts are also indicated as inactive. -As you can see in the example, there are several separated parts of the same partition (for example, `201901_1_3_1` and `201901_1_9_2`). This means that these parts are not merged yet. ClickHouse merges the inserted parts of data periodically, approximately 15 minutes after inserting. In addition, you can perform a non-scheduled merge using the [OPTIMIZE](/reference/statements/optimize) query. Example: +As you can see in the example, there are several separated parts of the same partition (for example, `201901_1_3_1` and `201901_1_9_2`). This means that these parts are not merged yet. ClickHouse merges the inserted parts of data periodically, approximately 15 minutes after inserting. In addition, you can perform a non-scheduled merge using the [OPTIMIZE](/core/reference/statements/optimize) query. Example: ```sql OPTIMIZE TABLE visits PARTITION 201902; @@ -128,11 +128,11 @@ drwxr-xr-x 2 clickhouse clickhouse 4096 Feb 1 16:48 detached The folders '201901_1_1_0', '201901_1_7_1' and so on are the directories of the parts. Each part relates to a corresponding partition and contains data just for a certain month (the table in this example has partitioning by month). -The `detached` directory contains parts that were detached from the table using the [DETACH](/reference/statements/detach) query. The corrupted parts are also moved to this directory, instead of being deleted. The server does not use the parts from the `detached` directory. You can add, delete, or modify the data in this directory at any time – the server will not know about this until you run the [ATTACH](/reference/statements/alter/partition#attach-partitionpart) query. +The `detached` directory contains parts that were detached from the table using the [DETACH](/core/reference/statements/detach) query. The corrupted parts are also moved to this directory, instead of being deleted. The server does not use the parts from the `detached` directory. You can add, delete, or modify the data in this directory at any time – the server will not know about this until you run the [ATTACH](/core/reference/statements/alter/partition#attach-partitionpart) query. Note that on the operating server, you cannot manually change the set of parts or their data on the file system, since the server will not know about it. For non-replicated tables, you can do this when the server is stopped, but it isn't recommended. For replicated tables, the set of parts cannot be changed in any case. -ClickHouse allows you to perform operations with the partitions: delete them, copy from one table to another, or create a backup. See the list of all operations in the section [Manipulations With Partitions and Parts](/reference/statements/alter/partition). +ClickHouse allows you to perform operations with the partitions: delete them, copy from one table to another, or create a backup. See the list of all operations in the section [Manipulations With Partitions and Parts](/core/reference/statements/alter/partition). ## Group By optimisation using partition key {#group-by-optimisation-using-partition-key} diff --git a/reference/engines/table-engines/mergetree-family/graphitemergetree.mdx b/core/reference/engines/table-engines/mergetree-family/graphitemergetree.mdx similarity index 90% rename from reference/engines/table-engines/mergetree-family/graphitemergetree.mdx rename to core/reference/engines/table-engines/mergetree-family/graphitemergetree.mdx index 08554948..fd464d1e 100644 --- a/reference/engines/table-engines/mergetree-family/graphitemergetree.mdx +++ b/core/reference/engines/table-engines/mergetree-family/graphitemergetree.mdx @@ -10,7 +10,7 @@ This engine is designed for thinning and aggregating/averaging (rollup) [Graphit You can use any ClickHouse table engine to store the Graphite data if you do not need rollup, but if you need a rollup use `GraphiteMergeTree`. The engine reduces the volume of storage and increases the efficiency of queries from Graphite. -The engine inherits properties from [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree). +The engine inherits properties from [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree). ## Creating a table {#creating-table} @@ -29,7 +29,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] [SETTINGS name=value, ...] ``` -See a detailed description of the [CREATE TABLE](/reference/statements/create/table) query. +See a detailed description of the [CREATE TABLE](/core/reference/statements/create/table) query. A table for the Graphite data should have the following columns for the following data: @@ -49,7 +49,7 @@ The names of these columns should be set in the rollup configuration. **Query clauses** -When creating a `GraphiteMergeTree` table, the same [clauses](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) are required, as when creating a `MergeTree` table. +When creating a `GraphiteMergeTree` table, the same [clauses](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) are required, as when creating a `MergeTree` table.
    @@ -79,7 +79,7 @@ All of the parameters excepting `config_section` have the same meaning as in `Me ## Rollup configuration {#rollup-configuration} -The settings for rollup are defined by the [graphite_rollup](/reference/settings/server-settings/settings#graphite) parameter in the server configuration. The name of the parameter could be any. You can create several configurations and use them for different tables. +The settings for rollup are defined by the [graphite_rollup](/core/reference/settings/server-settings/settings#graphite) parameter in the server configuration. The name of the parameter could be any. You can create several configurations and use them for different tables. Rollup configuration structure: @@ -264,5 +264,5 @@ Valid values: ``` -Data rollup is performed during merges. Usually, for old partitions, merges are not started, so for rollup it is necessary to trigger an unscheduled merge using [optimize](/reference/statements/optimize). Or use additional tools, for example [graphite-ch-optimizer](https://github.com/innogames/graphite-ch-optimizer). +Data rollup is performed during merges. Usually, for old partitions, merges are not started, so for rollup it is necessary to trigger an unscheduled merge using [optimize](/core/reference/statements/optimize). Or use additional tools, for example [graphite-ch-optimizer](https://github.com/innogames/graphite-ch-optimizer). diff --git a/core/reference/engines/table-engines/mergetree-family/index.mdx b/core/reference/engines/table-engines/mergetree-family/index.mdx new file mode 100644 index 00000000..c3d9a696 --- /dev/null +++ b/core/reference/engines/table-engines/mergetree-family/index.mdx @@ -0,0 +1,41 @@ +--- +description: 'Documentation for MergeTree Engine Family' +sidebarTitle: 'MergeTree Family' +slug: /engines/table-engines/mergetree-family/ +title: 'MergeTree Engine Family' +doc_type: 'reference' +--- + +Table engines from the MergeTree family are the core of ClickHouse data storage capabilities. They provide most features for resilience and high-performance data retrieval: columnar storage, custom partitioning, sparse primary index, secondary data-skipping indexes, etc. + +Base [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) table engine can be considered the default table engine for single-node ClickHouse instances because it is versatile and practical for a wide range of use cases. + +For production usage [ReplicatedMergeTree](/core/reference/engines/table-engines/mergetree-family/replication) is the way to go, because it adds high-availability to all features of regular MergeTree engine. A bonus is automatic data deduplication on data ingestion, so the software can safely retry if there was some network issue during insert. + +All other engines of MergeTree family add extra functionality for some specific use cases. Usually, it's implemented as additional data manipulation in background. + +The main downside of MergeTree engines is that they are rather heavy-weight. So the typical pattern is to have not so many of them. If you need many small tables, for example for temporary data, consider [Log engine family](/core/reference/engines/table-engines/log-family). + +{/* The table of contents table for this page is automatically generated by +https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh +from the YAML front matter fields: slug, description, title. + +If you've spotted an error, please edit the YML frontmatter of the pages themselves. +*/} + +{/*AUTOGENERATED_START*/} +| Page | Description | +|-----|-----| +| [MergeTree table engine](/core/reference/engines/table-engines/mergetree-family/mergetree) | `MergeTree`-family table engines are designed for high data ingest rates and huge data volumes. | +| [Replicated* table engines](/core/reference/engines/table-engines/mergetree-family/replication) | Overview of data replication with the Replicated* family of table engines in ClickHouse | +| [Custom Partitioning Key](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key) | Learn how to add a custom partitioning key to MergeTree tables. | +| [ReplacingMergeTree table engine](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) | differs from MergeTree in that it removes duplicate entries with the same sorting key value (`ORDER BY` table section, not `PRIMARY KEY`). | +| [CoalescingMergeTree table engine](/core/reference/engines/table-engines/mergetree-family/coalescingmergetree) | CoalescingMergeTree inherits from the MergeTree engine. Its key feature is the ability to automatically store last non-null value of each column during part merges. | +| [SummingMergeTree table engine](/core/reference/engines/table-engines/mergetree-family/summingmergetree) | SummingMergeTree inherits from the MergeTree engine. Its key feature is the ability to automatically sum numeric data during part merges. | +| [AggregatingMergeTree table engine](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) | Replaces all rows with the same primary key (or more accurately, with the same [sorting key](/core/reference/engines/table-engines/mergetree-family/mergetree)) with a single row (within a single data part) that stores a combination of states of aggregate functions. | +| [CollapsingMergeTree table engine](/core/reference/engines/table-engines/mergetree-family/collapsingmergetree) | Inherits from MergeTree but adds logic for collapsing rows during the merge process. | +| [VersionedCollapsingMergeTree table engine](/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree) | Allows for quick writing of object states that are continually changing, and deleting old object states in the background. | +| [GraphiteMergeTree table engine](/core/reference/engines/table-engines/mergetree-family/graphitemergetree) | Designed for thinning and aggregating/averaging (rollup) Graphite data. | +| [Exact and Approximate Vector Search](/core/reference/engines/table-engines/mergetree-family/annindexes) | Documentation for Exact and Approximate Vector Search | +| [Full-text Search with Text Indexes](/core/reference/engines/table-engines/mergetree-family/textindexes) | Quickly find search terms in text. | +{/*AUTOGENERATED_END*/} diff --git a/reference/engines/table-engines/mergetree-family/invertedindexes.mdx b/core/reference/engines/table-engines/mergetree-family/invertedindexes.mdx similarity index 72% rename from reference/engines/table-engines/mergetree-family/invertedindexes.mdx rename to core/reference/engines/table-engines/mergetree-family/invertedindexes.mdx index 69c85e8f..24fe942a 100644 --- a/reference/engines/table-engines/mergetree-family/invertedindexes.mdx +++ b/core/reference/engines/table-engines/mergetree-family/invertedindexes.mdx @@ -25,7 +25,7 @@ To create a text index, first enable the corresponding experimental setting: SET allow_experimental_full_text_index = true; ``` -A text index can be defined on a [String](/reference/data-types/string), [FixedString](/reference/data-types/fixedstring), [Array(String)](/reference/data-types/array), [Array(FixedString)](/reference/data-types/array), and [Map](/reference/data-types/map) (via [mapKeys](/reference/functions/regular-functions/tuple-map-functions#mapkeys) and [mapValues](/reference/functions/regular-functions/tuple-map-functions#mapvalues) map functions) column using the following syntax: +A text index can be defined on a [String](/core/reference/data-types/string), [FixedString](/core/reference/data-types/fixedstring), [Array(String)](/core/reference/data-types/array), [Array(FixedString)](/core/reference/data-types/array), and [Map](/core/reference/data-types/map) (via [mapKeys](/core/reference/functions/regular-functions/tuple-map-functions#mapkeys) and [mapValues](/core/reference/functions/regular-functions/tuple-map-functions#mapvalues) map functions) column using the following syntax: ```sql CREATE TABLE tab @@ -50,16 +50,16 @@ ORDER BY key **Tokenizer argument**. The `tokenizer` argument specifies the tokenizer: -- `splitByNonAlpha` splits strings along non-alphanumeric ASCII characters (also see function [splitByNonAlpha](/reference/functions/regular-functions/splitting-merging-functions#splitByNonAlpha)). -- `splitByString(S)` splits strings along certain user-defined separator strings `S` (also see function [splitByString](/reference/functions/regular-functions/splitting-merging-functions#splitByString)). +- `splitByNonAlpha` splits strings along non-alphanumeric ASCII characters (also see function [splitByNonAlpha](/core/reference/functions/regular-functions/splitting-merging-functions#splitByNonAlpha)). +- `splitByString(S)` splits strings along certain user-defined separator strings `S` (also see function [splitByString](/core/reference/functions/regular-functions/splitting-merging-functions#splitByString)). The separators can be specified using an optional parameter, for example, `tokenizer = splitByString([', ', '; ', '\n', '\\'])`. Note that each string can consist of multiple characters (`', '` in the example). The default separator list, if not specified explicitly (for example, `tokenizer = splitByString`), is a single whitespace `[' ']`. -- `ngrams(N)` splits strings into equally large `N`-grams (also see function [ngrams](/reference/functions/regular-functions/splitting-merging-functions#ngrams)). +- `ngrams(N)` splits strings into equally large `N`-grams (also see function [ngrams](/core/reference/functions/regular-functions/splitting-merging-functions#ngrams)). The ngram length can be specified using an optional integer parameter between 2 and 8, for example, `tokenizer = ngrams(3)`. The default ngram size, if not specified explicitly (for example, `tokenizer = ngrams`), is 3. -- `array` performs no tokenization, i.e. every row value is a token (also see function [array](/reference/functions/regular-functions/array-functions#array)). -- `sparseGrams(min_length, max_length, min_cutoff_length)` — uses the algorithm as in the [sparseGrams](/reference/functions/regular-functions/string-functions#sparseGrams) function to split a string into all ngrams of `min_length` and several ngrams of larger size up to `max_length`, inclusive. If `min_cutoff_length` is specified, only N-grams with length greater than or equal to `min_cutoff_length` are saved in the index. Unlike `ngrams(N)`, which generates only fixed-length N-grams, `sparseGrams` produces a set of variable-length N-grams within the specified range, allowing for a more flexible representation of text context. For example, `tokenizer = sparseGrams(3, 5, 4)` will generate 3-, 4-, 5-grams from the input string and save only the 4- and 5-grams in the index. +- `array` performs no tokenization, i.e. every row value is a token (also see function [array](/core/reference/functions/regular-functions/array-functions#array)). +- `sparseGrams(min_length, max_length, min_cutoff_length)` — uses the algorithm as in the [sparseGrams](/core/reference/functions/regular-functions/string-functions#sparseGrams) function to split a string into all ngrams of `min_length` and several ngrams of larger size up to `max_length`, inclusive. If `min_cutoff_length` is specified, only N-grams with length greater than or equal to `min_cutoff_length` are saved in the index. Unlike `ngrams(N)`, which generates only fixed-length N-grams, `sparseGrams` produces a set of variable-length N-grams within the specified range, allowing for a more flexible representation of text context. For example, `tokenizer = sparseGrams(3, 5, 4)` will generate 3-, 4-, 5-grams from the input string and save only the 4- and 5-grams in the index. The `splitByString` tokenizer applies the split separators left-to-right. @@ -76,7 +76,7 @@ The currently supported tokenizers may lead to huge index sizes and large query We plan to add specialized language-specific tokenizers in future which will handle these cases better. -To test how the tokenizers split the input string, you can use ClickHouse's [tokens](/reference/functions/regular-functions/splitting-merging-functions#tokens) function: +To test how the tokenizers split the input string, you can use ClickHouse's [tokens](/core/reference/functions/regular-functions/splitting-merging-functions#tokens) function: As an example, @@ -95,11 +95,11 @@ returns **Preprocessor argument**. The optional argument `preprocessor` is an expression which transforms the input string before tokenization. Typical use cases for the preprocessor argument include -1. Lower-casing (or upper-casing) the input strings to enable case-insensitive matching, e.g., [lower](/reference/functions/regular-functions/string-functions#lower), [lowerUTF8](/reference/functions/regular-functions/string-functions#lowerUTF8), see the first example below. -2. UTF-8 normalization, e.g. [normalizeUTF8NFC](/reference/functions/regular-functions/string-functions#normalizeUTF8NFC), [normalizeUTF8NFD](/reference/functions/regular-functions/string-functions#normalizeUTF8NFD), [normalizeUTF8NFKC](/reference/functions/regular-functions/string-functions#normalizeUTF8NFKC), [normalizeUTF8NFKD](/reference/functions/regular-functions/string-functions#normalizeUTF8NFKD), [toValidUTF8](/reference/functions/regular-functions/string-functions#toValidUTF8). -3. Removing or transforming unwanted characters or substrings, e.g. [extractTextFromHTML](/reference/functions/regular-functions/string-functions#extractTextFromHTML), [substring](/reference/functions/regular-functions/string-functions#substring), [idnaEncode](/reference/functions/regular-functions/string-functions#idnaEncode). +1. Lower-casing (or upper-casing) the input strings to enable case-insensitive matching, e.g., [lower](/core/reference/functions/regular-functions/string-functions#lower), [lowerUTF8](/core/reference/functions/regular-functions/string-functions#lowerUTF8), see the first example below. +2. UTF-8 normalization, e.g. [normalizeUTF8NFC](/core/reference/functions/regular-functions/string-functions#normalizeUTF8NFC), [normalizeUTF8NFD](/core/reference/functions/regular-functions/string-functions#normalizeUTF8NFD), [normalizeUTF8NFKC](/core/reference/functions/regular-functions/string-functions#normalizeUTF8NFKC), [normalizeUTF8NFKD](/core/reference/functions/regular-functions/string-functions#normalizeUTF8NFKD), [toValidUTF8](/core/reference/functions/regular-functions/string-functions#toValidUTF8). +3. Removing or transforming unwanted characters or substrings, e.g. [extractTextFromHTML](/core/reference/functions/regular-functions/string-functions#extractTextFromHTML), [substring](/core/reference/functions/regular-functions/string-functions#substring), [idnaEncode](/core/reference/functions/regular-functions/string-functions#idnaEncode). -The preprocessor expression must transform an input value of type [String](/reference/data-types/string) or [FixedString](/reference/data-types/fixedstring) to a value of the same type. +The preprocessor expression must transform an input value of type [String](/core/reference/data-types/string) or [FixedString](/core/reference/data-types/fixedstring) to a value of the same type. Examples: - `INDEX idx(col) TYPE text(tokenizer = 'splitByNonAlpha', preprocessor = lower(col))` @@ -109,7 +109,7 @@ Examples: Also, the preprocessor expression must only reference the column on top of which the text index is defined. Using non-deterministic functions is not allowed. -Functions [hasToken](/reference/functions/regular-functions/string-search-functions#hasToken), [hasAllTokens](/reference/functions/regular-functions/string-search-functions#hasAllTokens) and [hasAnyTokens](/reference/functions/regular-functions/string-search-functions#hasAnyTokens) use the preprocessor to first transform the search term before tokenizing it. +Functions [hasToken](/core/reference/functions/regular-functions/string-search-functions#hasToken), [hasAllTokens](/core/reference/functions/regular-functions/string-search-functions#hasAllTokens) and [hasAnyTokens](/core/reference/functions/regular-functions/string-search-functions#hasAnyTokens) use the preprocessor to first transform the search term before tokenizing it. For example: @@ -141,7 +141,7 @@ ORDER BY tuple(); SELECT count() FROM tab WHERE hasToken(str, lower('Foo')); ``` -**Other arguments**. Text indexes in ClickHouse are implemented as [secondary indexes](/reference/engines/table-engines/mergetree-family/mergetree#skip-index-types). +**Other arguments**. Text indexes in ClickHouse are implemented as [secondary indexes](/core/reference/engines/table-engines/mergetree-family/mergetree#skip-index-types). However, unlike other skipping indexes, text indexes have a default index GRANULARITY of 64. This value has been chosen empirically and it provides a good trade-off between speed and index size for most use cases. Advanced users can specify a different index granularity (we do not recommend this). @@ -184,7 +184,7 @@ WHERE string_search_function(column_with_text_index) #### `=` and `!=` -`=` ([equals](/reference/functions/regular-functions/comparison-functions#equals)) and `!=` ([notEquals](/reference/functions/regular-functions/comparison-functions#notEquals) ) match the entire given search term. +`=` ([equals](/core/reference/functions/regular-functions/comparison-functions#equals)) and `!=` ([notEquals](/core/reference/functions/regular-functions/comparison-functions#notEquals) ) match the entire given search term. Example: @@ -196,7 +196,7 @@ The text index supports `=` and `!=`, yet equality and inequality search only ma #### `IN` and `NOT IN` -`IN` ([in](/reference/functions/regular-functions/in-functions)) and `NOT IN` ([notIn](/reference/functions/regular-functions/in-functions)) are similar to functions `equals` and `notEquals` but they match all (`IN`) or none (`NOT IN`) of the search terms. +`IN` ([in](/core/reference/functions/regular-functions/in-functions)) and `NOT IN` ([notIn](/core/reference/functions/regular-functions/in-functions)) are similar to functions `equals` and `notEquals` but they match all (`IN`) or none (`NOT IN`) of the search terms. Example: @@ -212,7 +212,7 @@ The same restrictions as for `=` and `!=` apply, i.e. `IN` and `NOT IN` only mak These functions currently use the text index for filtering only if the index tokenizer is either `splitByNonAlpha` or `ngrams`. -In order to use `LIKE` [like](/reference/functions/regular-functions/string-search-functions#like), `NOT LIKE` ([notLike](/reference/functions/regular-functions/string-search-functions#notLike)), and the [match](/reference/functions/regular-functions/string-search-functions#match) function with text indexes, ClickHouse must be able to extract complete tokens from the search term. +In order to use `LIKE` [like](/core/reference/functions/regular-functions/string-search-functions#like), `NOT LIKE` ([notLike](/core/reference/functions/regular-functions/string-search-functions#notLike)), and the [match](/core/reference/functions/regular-functions/string-search-functions#match) function with text indexes, ClickHouse must be able to extract complete tokens from the search term. Example: @@ -233,7 +233,7 @@ The spaces left and right of `support` make sure that the term can be extracted #### `startsWith` and `endsWith` -Similar to `LIKE`, functions [startsWith](/reference/functions/regular-functions/string-functions#startsWith) and [endsWith](/reference/functions/regular-functions/string-functions#endsWith) can only use a text index, if complete tokens can be extracted from the search term. +Similar to `LIKE`, functions [startsWith](/core/reference/functions/regular-functions/string-functions#startsWith) and [endsWith](/core/reference/functions/regular-functions/string-functions#endsWith) can only use a text index, if complete tokens can be extracted from the search term. Example: @@ -258,7 +258,7 @@ SELECT count() FROM tab WHERE endsWith(comment, ' olap engine'); #### `hasToken` and `hasTokenOrNull` -Functions [hasToken](/reference/functions/regular-functions/string-search-functions#hasToken) and [hasTokenOrNull](/reference/functions/regular-functions/string-search-functions#hasTokenOrNull) match against a single given token. +Functions [hasToken](/core/reference/functions/regular-functions/string-search-functions#hasToken) and [hasTokenOrNull](/core/reference/functions/regular-functions/string-search-functions#hasTokenOrNull) match against a single given token. Unlike the previously mentioned functions, they do not tokenize the search term (they assume the input is a single token). @@ -272,7 +272,7 @@ Functions `hasToken` and `hasTokenOrNull` are the most performant functions to u #### `hasAnyTokens` and `hasAllTokens` -Functions [hasAnyTokens](/reference/functions/regular-functions/string-search-functions#hasAnyTokens) and [hasAllTokens](/reference/functions/regular-functions/string-search-functions#hasAllTokens) match against one or all of the given tokens. +Functions [hasAnyTokens](/core/reference/functions/regular-functions/string-search-functions#hasAnyTokens) and [hasAllTokens](/core/reference/functions/regular-functions/string-search-functions#hasAllTokens) match against one or all of the given tokens. These two functions accept the search tokens as either a string which will be tokenized using the same tokenizer used for the index column, or as an array of already processed tokens to which no tokenization will be applied prior to searching. See the function documentation for more info. @@ -291,7 +291,7 @@ SELECT count() FROM tab WHERE hasAllTokens(comment, ['clickhouse', 'olap']); #### `has` -Array function [has](/reference/functions/regular-functions/array-functions#has) matches against a single token in the array of strings. +Array function [has](/core/reference/functions/regular-functions/array-functions#has) matches against a single token in the array of strings. Example: @@ -301,7 +301,7 @@ SELECT count() FROM tab WHERE has(array, 'clickhouse'); #### `mapContains` -Function [mapContains](/reference/functions/regular-functions/tuple-map-functions#mapcontains)(alias of: `mapContainsKey`) matches against a single token in the keys of a map. +Function [mapContains](/core/reference/functions/regular-functions/tuple-map-functions#mapcontains)(alias of: `mapContainsKey`) matches against a single token in the keys of a map. Example: @@ -313,7 +313,7 @@ SELECT count() FROM tab WHERE mapContains(map, 'clickhouse'); #### `operator[]` -Access [operator[]](/reference/operators#access-operators) can be used with the text index to filter out keys and values. +Access [operator[]](/core/reference/operators#access-operators) can be used with the text index to filter out keys and values. Example: @@ -382,7 +382,7 @@ ENGINE = MergeTree ORDER BY (timestamp); ``` -Without a text index, searching through [Map](/reference/data-types/map) data requires full table scans: +Without a text index, searching through [Map](/core/reference/data-types/map) data requires full table scans: 1. Finds all logs with rate limiting: @@ -398,15 +398,15 @@ SELECT count() FROM logs WHERE has(mapValues(attributes), '192.168.1.1'); -- slo As log volume grows, these queries become slow. -The solution is creating a text index for the [Map](/reference/data-types/map) keys and values. +The solution is creating a text index for the [Map](/core/reference/data-types/map) keys and values. -Use [mapKeys](/reference/functions/regular-functions/tuple-map-functions#mapkeys) to create a text index when you need to find logs by field names or attribute types: +Use [mapKeys](/core/reference/functions/regular-functions/tuple-map-functions#mapkeys) to create a text index when you need to find logs by field names or attribute types: ```sql ALTER TABLE logs ADD INDEX attributes_keys_idx mapKeys(attributes) TYPE text(tokenizer = array); ``` -Use [mapValues](/reference/functions/regular-functions/tuple-map-functions#mapvalues) to create a text index when you need to search within the actual content of attributes: +Use [mapValues](/core/reference/functions/regular-functions/tuple-map-functions#mapvalues) to create a text index when you need to search within the actual content of attributes: ```sql ALTER TABLE logs ADD INDEX attributes_vals_idx mapValues(attributes) TYPE text(tokenizer = array); @@ -453,7 +453,7 @@ A dictionary blocks file (.dct) consists all the dictionary blocks of all index **Index granules file (.idx)** The index granules file contains for each dictionary block the block's first token, its relative offset in the dictionary blocks file, and a bloom filter for all tokens in the block. -This sparse index structure is similar to ClickHouse's [sparse primary key index](/guides/cloud-oss/data-modelling/sparse-primary-indexes)). +This sparse index structure is similar to ClickHouse's [sparse primary key index](/core/guides/clickhouse/data-modelling/sparse-primary-indexes)). The bloom filter allows to skip dictionary blocks early if the searched token is not contained in a dictionary block. **Postings lists file (.pst)** @@ -479,8 +479,8 @@ The direct read optimization in ClickHouse answers the query exclusively using t Text index lookups read relatively little data and are therefore much faster than usual skip indexes in ClickHouse (which do a skip index lookup, followed by loading and filtering surviving granules). Direct read is controlled by two settings: -- Setting [query_plan_direct_read_from_text_index](/reference/settings/session-settings#query_plan_direct_read_from_text_index) (default: 1) which specifies if direct read is generally enabled. -- Setting [use_skip_indexes_on_data_read](/reference/settings/session-settings#use_skip_indexes_on_data_read) (default: 1) which is another prerequisite for direct read. Note that on ClickHouse databases with [compatibility](/reference/settings/session-settings#compatibility) < 25.10, `use_skip_indexes_on_data_read` is disabled, so you either need to raise the compatibility setting value or `SET use_skip_indexes_on_data_read = 1` explicitly. +- Setting [query_plan_direct_read_from_text_index](/core/reference/settings/session-settings#query_plan_direct_read_from_text_index) (default: 1) which specifies if direct read is generally enabled. +- Setting [use_skip_indexes_on_data_read](/core/reference/settings/session-settings#use_skip_indexes_on_data_read) (default: 1) which is another prerequisite for direct read. Note that on ClickHouse databases with [compatibility](/core/reference/settings/session-settings#compatibility) < 25.10, `use_skip_indexes_on_data_read` is disabled, so you either need to raise the compatibility setting value or `SET use_skip_indexes_on_data_read = 1` explicitly. Also, the text index must be fully materialized to use direct reading (use `ALTER TABLE ... MATERIALIZE INDEX` for that). @@ -761,7 +761,7 @@ For this specific case, `hasAnyTokens(comment, ['ClickHouse', 'clickhouse'])` wo Currently, there are caches for the deserialized dictionary blocks, headers and posting lists of the text index to reduce I/O. -They can be enabled via settings [use_text_index_dictionary_cache](/reference/settings/session-settings#use_text_index_dictionary_cache), [use_text_index_header_cache](/reference/settings/session-settings#use_text_index_header_cache) and [use_text_index_postings_cache](/reference/settings/session-settings#use_text_index_postings_cache) respectively. By default, they are disabled. +They can be enabled via settings [use_text_index_dictionary_cache](/core/reference/settings/session-settings#use_text_index_dictionary_cache), [use_text_index_header_cache](/core/reference/settings/session-settings#use_text_index_header_cache) and [use_text_index_postings_cache](/core/reference/settings/session-settings#use_text_index_postings_cache) respectively. By default, they are disabled. Refer the following server settings to configure the cache. @@ -771,28 +771,28 @@ Refer the following server settings to configure the cache. | Setting | Description | Default | |----------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|--------------| -| [text_index_dictionary_block_cache_policy](/reference/settings/server-settings/settings#text_index_dictionary_block_cache_policy) | Text index dictionary block cache policy name. | `SLRU` | -| [text_index_dictionary_block_cache_size](/reference/settings/server-settings/settings#text_index_dictionary_block_cache_size) | Maximum cache size in bytes. | `1073741824` | -| [text_index_dictionary_block_cache_max_entries](/reference/settings/server-settings/settings#text_index_dictionary_block_cache_max_entries) | Maximum number of deserialized dictionary blocks in cache. | `1'000'000` | -| [text_index_dictionary_block_cache_size_ratio](/reference/settings/server-settings/settings#text_index_dictionary_block_cache_size_ratio) | The size of the protected queue in the text index dictionary block cache relative to the cache\'s total size. | `0.5` | +| [text_index_dictionary_block_cache_policy](/core/reference/settings/server-settings/settings#text_index_dictionary_block_cache_policy) | Text index dictionary block cache policy name. | `SLRU` | +| [text_index_dictionary_block_cache_size](/core/reference/settings/server-settings/settings#text_index_dictionary_block_cache_size) | Maximum cache size in bytes. | `1073741824` | +| [text_index_dictionary_block_cache_max_entries](/core/reference/settings/server-settings/settings#text_index_dictionary_block_cache_max_entries) | Maximum number of deserialized dictionary blocks in cache. | `1'000'000` | +| [text_index_dictionary_block_cache_size_ratio](/core/reference/settings/server-settings/settings#text_index_dictionary_block_cache_size_ratio) | The size of the protected queue in the text index dictionary block cache relative to the cache\'s total size. | `0.5` | #### Header cache settings | Setting | Description | Default | |--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|--------------| -| [text_index_header_cache_policy](/reference/settings/server-settings/settings#text_index_header_cache_policy) | Text index header cache policy name. | `SLRU` | -| [text_index_header_cache_size](/reference/settings/server-settings/settings#text_index_header_cache_size) | Maximum cache size in bytes. | `1073741824` | -| [text_index_header_cache_max_entries](/reference/settings/server-settings/settings#text_index_header_cache_max_entries) | Maximum number of deserialized headers in cache. | `100'000` | -| [text_index_header_cache_size_ratio](/reference/settings/server-settings/settings#text_index_header_cache_size_ratio) | The size of the protected queue in the text index header cache relative to the cache\'s total size. | `0.5` | +| [text_index_header_cache_policy](/core/reference/settings/server-settings/settings#text_index_header_cache_policy) | Text index header cache policy name. | `SLRU` | +| [text_index_header_cache_size](/core/reference/settings/server-settings/settings#text_index_header_cache_size) | Maximum cache size in bytes. | `1073741824` | +| [text_index_header_cache_max_entries](/core/reference/settings/server-settings/settings#text_index_header_cache_max_entries) | Maximum number of deserialized headers in cache. | `100'000` | +| [text_index_header_cache_size_ratio](/core/reference/settings/server-settings/settings#text_index_header_cache_size_ratio) | The size of the protected queue in the text index header cache relative to the cache\'s total size. | `0.5` | #### Posting lists cache settings | Setting | Description | Default | |---------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|--------------| -| [text_index_postings_cache_policy](/reference/settings/server-settings/settings#text_index_postings_cache_policy) | Text index postings cache policy name. | `SLRU` | -| [text_index_postings_cache_size](/reference/settings/server-settings/settings#text_index_postings_cache_size) | Maximum cache size in bytes. | `2147483648` | -| [text_index_postings_cache_max_entries](/reference/settings/server-settings/settings#text_index_postings_cache_max_entries) | Maximum number of deserialized postings in cache. | `1'000'000` | -| [text_index_postings_cache_size_ratio](/reference/settings/server-settings/settings#text_index_postings_cache_size_ratio) | The size of the protected queue in the text index postings cache relative to the cache\'s total size. | `0.5` | +| [text_index_postings_cache_policy](/core/reference/settings/server-settings/settings#text_index_postings_cache_policy) | Text index postings cache policy name. | `SLRU` | +| [text_index_postings_cache_size](/core/reference/settings/server-settings/settings#text_index_postings_cache_size) | Maximum cache size in bytes. | `2147483648` | +| [text_index_postings_cache_max_entries](/core/reference/settings/server-settings/settings#text_index_postings_cache_max_entries) | Maximum number of deserialized postings in cache. | `1'000'000` | +| [text_index_postings_cache_size_ratio](/core/reference/settings/server-settings/settings#text_index_postings_cache_size_ratio) | The size of the protected queue in the text index postings cache relative to the cache\'s total size. | `0.5` | ## Related content diff --git a/reference/engines/table-engines/mergetree-family/mergetree.mdx b/core/reference/engines/table-engines/mergetree-family/mergetree.mdx similarity index 78% rename from reference/engines/table-engines/mergetree-family/mergetree.mdx rename to core/reference/engines/table-engines/mergetree-family/mergetree.mdx index 37004964..aab8f3f8 100644 --- a/reference/engines/table-engines/mergetree-family/mergetree.mdx +++ b/core/reference/engines/table-engines/mergetree-family/mergetree.mdx @@ -21,12 +21,12 @@ Main features of `MergeTree`-family table engines. - Tables can be partitioned using an arbitrary partition expression. Partition pruning ensures partitions are omitted from reading when the query allows it. -- Data can be replicated across multiple cluster nodes for high availability, failover, and zero downtime upgrades. See [Data replication](/reference/engines/table-engines/mergetree-family/replication). +- Data can be replicated across multiple cluster nodes for high availability, failover, and zero downtime upgrades. See [Data replication](/core/reference/engines/table-engines/mergetree-family/replication). - `MergeTree` table engines support various statistics kinds and sampling methods to help query optimization. -Despite a similar name, the [Merge](/reference/engines/table-engines/special/merge) engine is different from `*MergeTree` engines. +Despite a similar name, the [Merge](/core/reference/engines/table-engines/special/merge) engine is different from `*MergeTree` engines. ## Creating tables {#table_engine-mergetree-creating-a-table} @@ -54,7 +54,7 @@ ORDER BY expr [SETTINGS name = value, ...] ``` -For a detailed description of the parameters, see the [CREATE TABLE](/reference/statements/create/table) statement +For a detailed description of the parameters, see the [CREATE TABLE](/core/reference/statements/create/table) statement ### Query clauses {#mergetree-query-clauses} @@ -75,9 +75,9 @@ Alternatively, if setting `create_table_empty_primary_key_by_default` is enabled #### PARTITION BY {#partition-by} -`PARTITION BY` — The [partitioning key](/reference/engines/table-engines/mergetree-family/custom-partitioning-key). Optional. In most cases, you don't need a partition key, and if you do need to partition, generally you do not need a partition key more granular than by month. Partitioning does not speed up queries (in contrast to the ORDER BY expression). You should never use too granular partitioning. Don't partition your data by client identifiers or names (instead, make client identifier or name the first column in the ORDER BY expression). +`PARTITION BY` — The [partitioning key](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key). Optional. In most cases, you don't need a partition key, and if you do need to partition, generally you do not need a partition key more granular than by month. Partitioning does not speed up queries (in contrast to the ORDER BY expression). You should never use too granular partitioning. Don't partition your data by client identifiers or names (instead, make client identifier or name the first column in the ORDER BY expression). -For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](/reference/data-types/date). The partition names here have the `"YYYYMM"` format. +For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](/core/reference/data-types/date). The partition names here have the `"YYYYMM"` format. #### PRIMARY KEY {#primary-key} @@ -107,7 +107,7 @@ For more details, see [TTL for columns and tables](#table_engine-mergetree-ttl) #### SETTINGS {#settings} -See [MergeTree Settings](/reference/settings/merge-tree-settings). +See [MergeTree Settings](/core/reference/settings/merge-tree-settings). **Example of Sections Setting** @@ -117,7 +117,7 @@ ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDa In the example, we set partitioning by month. -We also set an expression for sampling as a hash by the user ID. This allows you to pseudorandomize the data in the table for each `CounterID` and `EventDate`. If you define a [SAMPLE](/reference/statements/select/sample) clause when selecting the data, ClickHouse will return an evenly pseudorandom data sample for a subset of users. +We also set an expression for sampling as a hash by the user ID. This allows you to pseudorandomize the data in the table for each `CounterID` and `EventDate`. If you define a [SAMPLE](/core/reference/statements/select/sample) clause when selecting the data, ClickHouse will return an evenly pseudorandom data sample for a subset of users. The `index_granularity` setting can be omitted because 8192 is the default value. @@ -140,9 +140,9 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] **MergeTree() Parameters** -- `date-column` — The name of a column of the [Date](/reference/data-types/date) type. ClickHouse automatically creates partitions by month based on this column. The partition names are in the `"YYYYMM"` format. +- `date-column` — The name of a column of the [Date](/core/reference/data-types/date) type. ClickHouse automatically creates partitions by month based on this column. The partition names are in the `"YYYYMM"` format. - `sampling_expression` — An expression for sampling. -- `(primary, key)` — Primary key. Type: [Tuple()](/reference/data-types/tuple) +- `(primary, key)` — Primary key. Type: [Tuple()](/core/reference/data-types/tuple) - `index_granularity` — The granularity of an index. The number of data rows between the "marks" of an index. The value 8192 is appropriate for most tasks. **Example** @@ -197,7 +197,7 @@ Sparse indexes allow you to work with a very large number of table rows, because ClickHouse does not require a unique primary key. You can insert multiple rows with the same primary key. -You can use `Nullable`-typed expressions in the `PRIMARY KEY` and `ORDER BY` clauses but it is strongly discouraged. To allow this feature, turn on the [allow_nullable_key](/reference/settings/merge-tree-settings#allow_nullable_key) setting. The [NULLS_LAST](/reference/statements/select/order-by#sorting-of-special-values) principle applies for `NULL` values in the `ORDER BY` clause. +You can use `Nullable`-typed expressions in the `PRIMARY KEY` and `ORDER BY` clauses but it is strongly discouraged. To allow this feature, turn on the [allow_nullable_key](/core/reference/settings/merge-tree-settings#allow_nullable_key) setting. The [NULLS_LAST](/core/reference/statements/select/order-by#sorting-of-special-values) principle applies for `NULL` values in the `ORDER BY` clause. ### Selecting a primary key {#selecting-a-primary-key} @@ -214,26 +214,26 @@ The number of columns in the primary key is not explicitly limited. Depending on ClickHouse sorts data by primary key, so the higher the consistency, the better the compression. -- Provide additional logic when merging data parts in the [CollapsingMergeTree](/reference/engines/table-engines/mergetree-family/collapsingmergetree) and [SummingMergeTree](/reference/engines/table-engines/mergetree-family/summingmergetree) engines. +- Provide additional logic when merging data parts in the [CollapsingMergeTree](/core/reference/engines/table-engines/mergetree-family/collapsingmergetree) and [SummingMergeTree](/core/reference/engines/table-engines/mergetree-family/summingmergetree) engines. In this case it makes sense to specify the *sorting key* that is different from the primary key. A long primary key will negatively affect the insert performance and memory consumption, but extra columns in the primary key do not affect ClickHouse performance during `SELECT` queries. -You can create a table without a primary key using the `ORDER BY tuple()` syntax. In this case, ClickHouse stores data in the order of inserting. If you want to save data order when inserting data by `INSERT ... SELECT` queries, set [max_insert_threads = 1](/reference/settings/session-settings#max_insert_threads). +You can create a table without a primary key using the `ORDER BY tuple()` syntax. In this case, ClickHouse stores data in the order of inserting. If you want to save data order when inserting data by `INSERT ... SELECT` queries, set [max_insert_threads = 1](/core/reference/settings/session-settings#max_insert_threads). -To select data in the initial order, use [single-threaded](/reference/settings/session-settings#max_threads) `SELECT` queries. +To select data in the initial order, use [single-threaded](/core/reference/settings/session-settings#max_threads) `SELECT` queries. ### Choosing a primary key that differs from the sorting key {#choosing-a-primary-key-that-differs-from-the-sorting-key} It is possible to specify a primary key (an expression with values that are written in the index file for each mark) that is different from the sorting key (an expression for sorting the rows in data parts). In this case the primary key expression tuple must be a prefix of the sorting key expression tuple. -This feature is helpful when using the [SummingMergeTree](/reference/engines/table-engines/mergetree-family/summingmergetree) and -[AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) table engines. In a common case when using these engines, the table has two types of columns: *dimensions* and *measures*. Typical queries aggregate values of measure columns with arbitrary `GROUP BY` and filtering by dimensions. Because SummingMergeTree and AggregatingMergeTree aggregate rows with the same value of the sorting key, it is natural to add all dimensions to it. As a result, the key expression consists of a long list of columns and this list must be frequently updated with newly added dimensions. +This feature is helpful when using the [SummingMergeTree](/core/reference/engines/table-engines/mergetree-family/summingmergetree) and +[AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) table engines. In a common case when using these engines, the table has two types of columns: *dimensions* and *measures*. Typical queries aggregate values of measure columns with arbitrary `GROUP BY` and filtering by dimensions. Because SummingMergeTree and AggregatingMergeTree aggregate rows with the same value of the sorting key, it is natural to add all dimensions to it. As a result, the key expression consists of a long list of columns and this list must be frequently updated with newly added dimensions. In this case it makes sense to leave only a few columns in the primary key that will provide efficient range scans and add the remaining dimension columns to the sorting key tuple. -[ALTER](/reference/statements/alter) of the sorting key is a lightweight operation because when a new column is simultaneously added to the table and to the sorting key, existing data parts do not need to be changed. Since the old sorting key is a prefix of the new sorting key and there is no data in the newly added column, the data is sorted by both the old and new sorting keys at the moment of table modification. +[ALTER](/core/reference/statements/alter) of the sorting key is a lightweight operation because when a new column is simultaneously added to the table and to the sorting key, existing data parts do not need to be changed. Since the old sorting key is a prefix of the new sorting key and there is no data in the newly added column, the data is sorted by both the old and new sorting keys at the moment of table modification. ### Use of indexes and partitions in queries {#use-of-indexes-and-partitions-in-queries} @@ -277,7 +277,7 @@ In the example below, the index can't be used. SELECT count() FROM table WHERE CounterID = 34 OR URL LIKE '%upyachka%' ``` -To check whether ClickHouse can use the index when running a query, use the settings [force_index_by_date](/reference/settings/session-settings#force_index_by_date) and [force_primary_key](/reference/settings/session-settings#force_primary_key). +To check whether ClickHouse can use the index when running a query, use the settings [force_index_by_date](/core/reference/settings/session-settings#force_index_by_date) and [force_primary_key](/core/reference/settings/session-settings#force_primary_key). The key for partitioning by month allows reading only those data blocks which contain dates from the proper range. In this case, the data block may contain data for many dates (up to an entire month). Within a block, data is sorted by primary key, which might not contain the date as the first column. Because of this, using a query with only a date condition that does not specify the primary key prefix will cause more data to be read than for a single date. @@ -394,7 +394,7 @@ INDEX nested_2_index col.nested_col2 TYPE bloom_filter The `MergeTree` table engine supports the following types of skip indexes. For more information on how skip indexes can be used for performance optimization -see ["Understanding ClickHouse data skipping indexes"](/concepts/features/performance/skip-indexes/skipping-indexes). +see ["Understanding ClickHouse data skipping indexes"](/core/concepts/features/performance/skip-indexes/skipping-indexes). - [`MinMax`](#minmax) index - [`Set`](#set) index @@ -449,13 +449,13 @@ The following data types are supported: **Map data type: specifying index creation with keys or values** -For the `Map` data type, the client can specify if the index should be created for keys or for values using the [`mapKeys`](/reference/functions/regular-functions/tuple-map-functions#mapKeys) or [`mapValues`](/reference/functions/regular-functions/tuple-map-functions#mapValues) functions. +For the `Map` data type, the client can specify if the index should be created for keys or for values using the [`mapKeys`](/core/reference/functions/regular-functions/tuple-map-functions#mapKeys) or [`mapValues`](/core/reference/functions/regular-functions/tuple-map-functions#mapValues) functions. **JSON data type: indexing JSON paths** -For the [`JSON`](/reference/data-types/newjson) data type, a bloom filter index can be created on the set of paths using the [`JSONAllPaths`](/reference/functions/regular-functions/json-functions#JSONAllPaths) function. This allows skipping granules where a queried JSON path is absent. See [Data skipping indexes for JSON](/reference/data-types/newjson#data-skipping-indexes-for-json) for details. +For the [`JSON`](/core/reference/data-types/newjson) data type, a bloom filter index can be created on the set of paths using the [`JSONAllPaths`](/core/reference/functions/regular-functions/json-functions#JSONAllPaths) function. This allows skipping granules where a queried JSON path is absent. See [Data skipping indexes for JSON](/core/reference/data-types/newjson#data-skipping-indexes-for-json) for details. #### N-gram bloom filter *(Deprecated)* {#n-gram-bloom-filter} @@ -463,7 +463,7 @@ For the [`JSON`](/reference/data-types/newjson) data type, a bloom filter index With general availability (GA) of the `text` index starting from ClickHouse version 26.2, the `ngrambf_v1` index is no longer recommended for full text search. -See page ["Full-text search with text indexes"](/reference/engines/table-engines/mergetree-family/textindexes) for details. +See page ["Full-text search with text indexes"](/core/reference/engines/table-engines/mergetree-family/textindexes) for details. For each index granule stores a [bloom filter](https://en.wikipedia.org/wiki/Bloom_filter) for the [n-grams](https://en.wikipedia.org/wiki/N-gram) of the specified columns. @@ -480,11 +480,11 @@ ngrambf_v1(n, size_of_bloom_filter_in_bytes, number_of_hash_functions, random_se |`random_seed` |Seed for the bloom filter hash functions.| This index only works with the following data types: -- [`String`](/reference/data-types/string) -- [`FixedString`](/reference/data-types/fixedstring) -- [`Map`](/reference/data-types/map) +- [`String`](/core/reference/data-types/string) +- [`FixedString`](/core/reference/data-types/fixedstring) +- [`Map`](/core/reference/data-types/map) -To estimate the parameters of `ngrambf_v1`, you can use the following [User Defined Functions (UDFs)](/reference/statements/create/function). +To estimate the parameters of `ngrambf_v1`, you can use the following [User Defined Functions (UDFs)](/core/reference/statements/create/function). ```sql title="UDFs for ngrambf_v1" CREATE FUNCTION bfEstimateFunctions [ON CLUSTER cluster] @@ -535,7 +535,7 @@ The functions above refer to the bloom filter calculator [here](https://hur.st/b With general availability (GA) of the `text` index starting from ClickHouse version 26.2, the `tokenbf_v1` index is no longer recommended for full text search. -See page ["Full-text search with text indexes"](/reference/engines/table-engines/mergetree-family/textindexes) for details. +See page ["Full-text search with text indexes"](/core/reference/engines/table-engines/mergetree-family/textindexes) for details. ```text title="Syntax" @@ -544,7 +544,7 @@ tokenbf_v1(size_of_bloom_filter_in_bytes, number_of_hash_functions, random_seed) #### Sparse grams bloom filter {#sparse-grams-bloom-filter} -The sparse grams bloom filter is similar to `ngrambf_v1` but uses [sparse grams tokens](/reference/functions/regular-functions/string-functions#sparseGrams) instead of ngrams. +The sparse grams bloom filter is similar to `ngrambf_v1` but uses [sparse grams tokens](/core/reference/functions/regular-functions/string-functions#sparseGrams) instead of ngrams. ```text title="Syntax" sparse_grams(min_ngram_length, max_ngram_length, min_cutoff_length, size_of_bloom_filter_in_bytes, number_of_hash_functions, random_seed) @@ -552,11 +552,11 @@ sparse_grams(min_ngram_length, max_ngram_length, min_cutoff_length, size_of_bloo ### Text index {#text} -Builds an inverted index over tokenized string data, enabling efficient and deterministic full-text search. See [here](/reference/engines/table-engines/mergetree-family/textindexes) for details. +Builds an inverted index over tokenized string data, enabling efficient and deterministic full-text search. See [here](/core/reference/engines/table-engines/mergetree-family/textindexes) for details. #### Vector similarity {#vector-similarity} -Supports approximate nearest neighbor search, see [here](/reference/engines/table-engines/mergetree-family/annindexes) for details. +Supports approximate nearest neighbor search, see [here](/core/reference/engines/table-engines/mergetree-family/annindexes) for details. ### Functions support {#functions-support} @@ -566,36 +566,36 @@ Indexes of type `set` can be utilized by all functions. The other index types ar | Function (operator) / Index | primary key | minmax | ngrambf_v1 | tokenbf_v1 | bloom_filter | sparse_grams | text | |--------------------------------------------------------------------------------------------------------------------------------|-------------|--------|------------|------------|--------------|--------------|------| -| [equals (=, ==)](/reference/functions/regular-functions/comparison-functions#equals) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| [notEquals(!=, <>)](/reference/functions/regular-functions/comparison-functions#notEquals) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✗ | -| [like](/reference/functions/regular-functions/string-search-functions#like) | ✔ | ✔ | ✔ | ✔ | ✗ | ✔ | ✔ | -| [notLike](/reference/functions/regular-functions/string-search-functions#notLike) | ✔ | ✔ | ✔ | ✔ | ✗ | ✔ | ✗ | -| [match](/reference/functions/regular-functions/string-search-functions#match) | ✗ | ✗ | ✔ | ✔ | ✗ | ✔ | ✔ | -| [startsWith](/reference/functions/regular-functions/string-functions#startsWith) | ✔ | ✔ | ✔ | ✔ | ✗ | ✔ | ✔ | -| [endsWith](/reference/functions/regular-functions/string-functions#endsWith) | ✗ | ✗ | ✔ | ✔ | ✗ | ✔ | ✔ | -| [multiSearchAny](/reference/functions/regular-functions/string-search-functions#multiSearchAny) | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | ✗ | -| [in](/reference/functions/regular-functions/in-functions) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| [notIn](/reference/functions/regular-functions/in-functions) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✗ | -| [less (`<`)](/reference/functions/regular-functions/comparison-functions#less) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | -| [greater (`>`)](/reference/functions/regular-functions/comparison-functions#greater) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | -| [lessOrEquals (`<=`)](/reference/functions/regular-functions/comparison-functions#lessOrEquals) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | -| [greaterOrEquals (`>=`)](/reference/functions/regular-functions/comparison-functions#greaterOrEquals) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | -| [empty](/reference/functions/regular-functions/array-functions#empty) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | -| [notEmpty](/reference/functions/regular-functions/array-functions#notEmpty) | ✗ | ✔ | ✗ | ✗ | ✗ | ✔ | ✗ | -| [has](/reference/functions/regular-functions/array-functions#has) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | -| [hasAny](/reference/functions/regular-functions/array-functions#hasAny) | ✗ | ✗ | ✔ | ✔ | ✔ | ✔ | ✗ | -| [hasAll](/reference/functions/regular-functions/array-functions#hasAll) | ✗ | ✗ | ✔ | ✔ | ✔ | ✔ | ✗ | -| [hasToken](/reference/functions/regular-functions/string-search-functions#hasToken) | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✔ | -| [hasTokenOrNull](/reference/functions/regular-functions/string-search-functions#hasTokenOrNull) | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✔ | -| [hasTokenCaseInsensitive (`*`)](/reference/functions/regular-functions/string-search-functions#hasTokenCaseInsensitive) | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | -| [hasTokenCaseInsensitiveOrNull (`*`)](/reference/functions/regular-functions/string-search-functions#hasTokenCaseInsensitiveOrNull) | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | -| [hasAnyTokens](/reference/functions/regular-functions/string-search-functions#hasAnyTokens) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | -| [hasAllTokens](/reference/functions/regular-functions/string-search-functions#hasAllTokens) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | -| [pointInPolygon](/reference/functions/regular-functions/geo/coordinates#pointinpolygon) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | -| [mapContains (mapContainsKey)](/reference/functions/regular-functions/tuple-map-functions#mapContainsKey) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | -| [mapContainsKeyLike](/reference/functions/regular-functions/tuple-map-functions#mapContainsKeyLike) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | -| [mapContainsValue](/reference/functions/regular-functions/tuple-map-functions#mapContainsValue) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | -| [mapContainsValueLike](/reference/functions/regular-functions/tuple-map-functions#mapContainsValueLike) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [equals (=, ==)](/core/reference/functions/regular-functions/comparison-functions#equals) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| [notEquals(!=, <>)](/core/reference/functions/regular-functions/comparison-functions#notEquals) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✗ | +| [like](/core/reference/functions/regular-functions/string-search-functions#like) | ✔ | ✔ | ✔ | ✔ | ✗ | ✔ | ✔ | +| [notLike](/core/reference/functions/regular-functions/string-search-functions#notLike) | ✔ | ✔ | ✔ | ✔ | ✗ | ✔ | ✗ | +| [match](/core/reference/functions/regular-functions/string-search-functions#match) | ✗ | ✗ | ✔ | ✔ | ✗ | ✔ | ✔ | +| [startsWith](/core/reference/functions/regular-functions/string-functions#startsWith) | ✔ | ✔ | ✔ | ✔ | ✗ | ✔ | ✔ | +| [endsWith](/core/reference/functions/regular-functions/string-functions#endsWith) | ✗ | ✗ | ✔ | ✔ | ✗ | ✔ | ✔ | +| [multiSearchAny](/core/reference/functions/regular-functions/string-search-functions#multiSearchAny) | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | ✗ | +| [in](/core/reference/functions/regular-functions/in-functions) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| [notIn](/core/reference/functions/regular-functions/in-functions) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✗ | +| [less (`<`)](/core/reference/functions/regular-functions/comparison-functions#less) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | +| [greater (`>`)](/core/reference/functions/regular-functions/comparison-functions#greater) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | +| [lessOrEquals (`<=`)](/core/reference/functions/regular-functions/comparison-functions#lessOrEquals) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | +| [greaterOrEquals (`>=`)](/core/reference/functions/regular-functions/comparison-functions#greaterOrEquals) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | +| [empty](/core/reference/functions/regular-functions/array-functions#empty) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | +| [notEmpty](/core/reference/functions/regular-functions/array-functions#notEmpty) | ✗ | ✔ | ✗ | ✗ | ✗ | ✔ | ✗ | +| [has](/core/reference/functions/regular-functions/array-functions#has) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | +| [hasAny](/core/reference/functions/regular-functions/array-functions#hasAny) | ✗ | ✗ | ✔ | ✔ | ✔ | ✔ | ✗ | +| [hasAll](/core/reference/functions/regular-functions/array-functions#hasAll) | ✗ | ✗ | ✔ | ✔ | ✔ | ✔ | ✗ | +| [hasToken](/core/reference/functions/regular-functions/string-search-functions#hasToken) | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✔ | +| [hasTokenOrNull](/core/reference/functions/regular-functions/string-search-functions#hasTokenOrNull) | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✔ | +| [hasTokenCaseInsensitive (`*`)](/core/reference/functions/regular-functions/string-search-functions#hasTokenCaseInsensitive) | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | +| [hasTokenCaseInsensitiveOrNull (`*`)](/core/reference/functions/regular-functions/string-search-functions#hasTokenCaseInsensitiveOrNull) | ✗ | ✗ | ✗ | ✔ | ✗ | ✗ | ✗ | +| [hasAnyTokens](/core/reference/functions/regular-functions/string-search-functions#hasAnyTokens) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [hasAllTokens](/core/reference/functions/regular-functions/string-search-functions#hasAllTokens) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [pointInPolygon](/core/reference/functions/regular-functions/geo/coordinates#pointinpolygon) | ✔ | ✔ | ✗ | ✗ | ✗ | ✗ | ✗ | +| [mapContains (mapContainsKey)](/core/reference/functions/regular-functions/tuple-map-functions#mapContainsKey) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsKeyLike](/core/reference/functions/regular-functions/tuple-map-functions#mapContainsKeyLike) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsValue](/core/reference/functions/regular-functions/tuple-map-functions#mapContainsValue) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | +| [mapContainsValueLike](/core/reference/functions/regular-functions/tuple-map-functions#mapContainsValueLike) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✔ | Functions with a constant argument that is less than ngram size can't be used by `ngrambf_v1` for query optimization. @@ -621,13 +621,13 @@ For example: ## Projections {#projections} -Projections are like [materialized views](/reference/statements/create/view) but defined in part-level. It provides consistency guarantees along with automatic usage in queries. +Projections are like [materialized views](/core/reference/statements/create/view) but defined in part-level. It provides consistency guarantees along with automatic usage in queries. -When you are implementing projections you should also consider the [force_optimize_projection](/reference/settings/session-settings#force_optimize_projection) setting. +When you are implementing projections you should also consider the [force_optimize_projection](/core/reference/settings/session-settings#force_optimize_projection) setting. -Projections are not supported in the `SELECT` statements with the [FINAL](/reference/statements/select/from#final-modifier) modifier. +Projections are not supported in the `SELECT` statements with the [FINAL](/core/reference/statements/select/from#final-modifier) modifier. ### Projection query {#projection-query} A projection query is what defines a projection. It implicitly selects data from the parent table. @@ -637,7 +637,7 @@ A projection query is what defines a projection. It implicitly selects data from SELECT [GROUP BY] [ORDER BY] ``` -Projections can be modified or dropped with the [ALTER](/reference/statements/alter/projection) statement. +Projections can be modified or dropped with the [ALTER](/core/reference/statements/alter/projection) statement. ### Projection indexes {#projection-index} @@ -676,7 +676,7 @@ Currently supported: The framework allows adding more index types in the future. ### Projection storage {#projection-storage} -Projections are stored inside the part directory. It's similar to an index but contains a subdirectory that stores an anonymous `MergeTree` table's part. The table is induced by the definition query of the projection. If there is a `GROUP BY` clause, the underlying storage engine becomes [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree), and all aggregate functions are converted to `AggregateFunction`. If there is an `ORDER BY` clause, the `MergeTree` table uses it as its primary key expression. During the merge process the projection part is merged via its storage's merge routine. The checksum of the parent table's part is combined with the projection's part. Other maintenance jobs are similar to skip indices. +Projections are stored inside the part directory. It's similar to an index but contains a subdirectory that stores an anonymous `MergeTree` table's part. The table is induced by the definition query of the projection. If there is a `GROUP BY` clause, the underlying storage engine becomes [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree), and all aggregate functions are converted to `AggregateFunction`. If there is an `ORDER BY` clause, the `MergeTree` table uses it as its primary key expression. During the merge process the projection part is merged via its storage's merge routine. The checksum of the parent table's part is combined with the projection's part. Other maintenance jobs are similar to skip indices. ### Query analysis {#projection-query-analysis} 1. Check if the projection can be used to answer the given query, that is, it generates the same answer as querying the base table. @@ -695,7 +695,7 @@ Determines the lifetime of values. The `TTL` clause can be set for the whole table and for each individual column. Table-level `TTL` can also specify the logic of automatic moving data between disks and volumes, or recompressing parts where all the data has been expired. -Expressions must evaluate to [Date](/reference/data-types/date), [Date32](/reference/data-types/date32), [DateTime](/reference/data-types/datetime) or [DateTime64](/reference/data-types/datetime64) data type. +Expressions must evaluate to [Date](/core/reference/data-types/date), [Date32](/core/reference/data-types/date32), [DateTime](/core/reference/data-types/datetime) or [DateTime64](/core/reference/data-types/datetime64) data type. **Avoid non-deterministic functions in TTL expressions** @@ -714,7 +714,7 @@ TTL time_column TTL time_column + interval ``` -To define `interval`, use [time interval](/reference/operators#operators-for-working-with-dates-and-times) operators, for example: +To define `interval`, use [time interval](/core/reference/operators#operators-for-working-with-dates-and-times) operators, for example: ```sql TTL date_time + INTERVAL 1 MONTH @@ -864,23 +864,23 @@ Data with an expired `TTL` is removed when ClickHouse merges data parts. When ClickHouse detects that data is expired, it performs an off-schedule merge. To control the frequency of such merges, you can set `merge_with_ttl_timeout`. If the value is too low, it will perform many off-schedule merges that may consume a lot of resources. -If you perform the `SELECT` query between merges, you may get expired data. To avoid it, use the [OPTIMIZE](/reference/statements/optimize) query before `SELECT`. +If you perform the `SELECT` query between merges, you may get expired data. To avoid it, use the [OPTIMIZE](/core/reference/statements/optimize) query before `SELECT`. **See Also** -- [ttl_only_drop_parts](/reference/settings/merge-tree-settings#ttl_only_drop_parts) setting +- [ttl_only_drop_parts](/core/reference/settings/merge-tree-settings#ttl_only_drop_parts) setting ## Disk types {#disk-types} In addition to local block devices, ClickHouse supports these storage types: - [`s3` for S3 and MinIO](#table_engine-mergetree-s3) -- [`gcs` for GCS](/reference/functions/table-functions/gcs#creating-a-disk) -- [`blob_storage_disk` for Azure Blob Storage](/concepts/features/configuration/server-config/storing-data#azure-blob-storage) -- [`hdfs` for HDFS](/reference/engines/table-engines/integrations/hdfs) -- [`web` for read-only from web](/concepts/features/configuration/server-config/storing-data#web-storage) -- [`cache` for local caching](/concepts/features/configuration/server-config/storing-data#using-local-cache) -- [`s3_plain` for backups to S3](/concepts/features/backup-restore/local-disk) -- [`s3_plain_rewritable` for immutable, non-replicated tables in S3](/concepts/features/configuration/server-config/storing-data#s3-plain-rewritable-storage) +- [`gcs` for GCS](/core/reference/functions/table-functions/gcs#creating-a-disk) +- [`blob_storage_disk` for Azure Blob Storage](/core/concepts/features/configuration/server-config/storing-data#azure-blob-storage) +- [`hdfs` for HDFS](/core/reference/engines/table-engines/integrations/hdfs) +- [`web` for read-only from web](/core/concepts/features/configuration/server-config/storing-data#web-storage) +- [`cache` for local caching](/core/concepts/features/configuration/server-config/storing-data#using-local-cache) +- [`s3_plain` for backups to S3](/core/concepts/features/backup-restore/local-disk) +- [`s3_plain_rewritable` for immutable, non-replicated tables in S3](/core/concepts/features/configuration/server-config/storing-data#s3-plain-rewritable-storage) ## Using multiple block devices for data storage {#table_engine-mergetree-multiple-volumes} @@ -890,16 +890,16 @@ In addition to local block devices, ClickHouse supports these storage types: This applies to all disk types, including S3 and other object storage disks. For example, you can spread data across multiple S3 buckets within a single volume, or create tiered policies that move data from local disks to S3. See [Using S3 disks with multiple volumes](#s3-multiple-volumes) for details. -Data part is the minimum movable unit for `MergeTree`-engine tables. The data belonging to one part are stored on one disk. Data parts can be moved between disks in the background (according to user settings) as well as by means of the [ALTER](/reference/statements/alter/partition) queries. +Data part is the minimum movable unit for `MergeTree`-engine tables. The data belonging to one part are stored on one disk. Data parts can be moved between disks in the background (according to user settings) as well as by means of the [ALTER](/core/reference/statements/alter/partition) queries. ### Terms {#terms} - Disk — Block device mounted to the filesystem. -- Default disk — Disk that stores the path specified in the [path](/reference/settings/server-settings/settings#path) server setting. +- Default disk — Disk that stores the path specified in the [path](/core/reference/settings/server-settings/settings#path) server setting. - Volume — Ordered set of equal disks (similar to [JBOD](https://en.wikipedia.org/wiki/Non-RAID_drive_architectures)). - Storage policy — Set of volumes and the rules for moving data between them. -The names given to the described entities can be found in the system tables, [system.storage_policies](/reference/system-tables/storage_policies) and [system.disks](/reference/system-tables/disks). To apply one of the configured storage policies for a table, use the `storage_policy` setting of `MergeTree`-engine family tables. +The names given to the described entities can be found in the system tables, [system.storage_policies](/core/reference/system-tables/storage_policies) and [system.disks](/core/reference/system-tables/disks). To apply one of the configured storage policies for a table, use the `storage_policy` setting of `MergeTree`-engine family tables. ### Configuration {#table_engine-mergetree-multiple-volumes_configure} @@ -908,7 +908,7 @@ Disks, volumes and storage policies should be declared inside the ` Disks can also be declared in the `SETTINGS` section of a query. This is useful for ad-hoc analysis to temporarily attach a disk that is, for example, hosted at a URL. -See [dynamic storage](/concepts/features/configuration/server-config/storing-data#dynamic-configuration) for more details. +See [dynamic storage](/core/concepts/features/configuration/server-config/storing-data#dynamic-configuration) for more details. Configuration structure: @@ -1058,16 +1058,16 @@ SETTINGS storage_policy = 'moving_from_ssd_to_hdd' The `default` storage policy implies using only one volume, which consists of only one disk given in ``. You could change storage policy after table creation with [ALTER TABLE ... MODIFY SETTING] query, new policy should include all old disks and volumes with same names. -The number of threads performing background moves of data parts can be changed by [background_move_pool_size](/reference/settings/server-settings/settings#background_move_pool_size) setting. +The number of threads performing background moves of data parts can be changed by [background_move_pool_size](/core/reference/settings/server-settings/settings#background_move_pool_size) setting. ### Details {#details} In the case of `MergeTree` tables, data is getting to disk in different ways: - As a result of an insert (`INSERT` query). -- During background merges and [mutations](/reference/statements/alter#mutations). +- During background merges and [mutations](/core/reference/statements/alter#mutations). - When downloading from another replica. -- As a result of partition freezing [ALTER TABLE ... FREEZE PARTITION](/reference/statements/alter/partition#freeze-partition). +- As a result of partition freezing [ALTER TABLE ... FREEZE PARTITION](/core/reference/statements/alter/partition#freeze-partition). In all these cases except for mutations and partition freezing, a part is stored on a volume and a disk according to the given storage policy: @@ -1077,20 +1077,20 @@ In all these cases except for mutations and partition freezing, a part is stored Under the hood, mutations and partition freezing make use of [hard links](https://en.wikipedia.org/wiki/Hard_link). Hard links between different disks are not supported, therefore in such cases the resulting parts are stored on the same disks as the initial ones. In the background, parts are moved between volumes on the basis of the amount of free space (`move_factor` parameter) according to the order the volumes are declared in the configuration file. -Data is never transferred from the last one and into the first one. One may use system tables [system.part_log](/reference/system-tables/part_log) (field `type = MOVE_PART`) and [system.parts](/reference/system-tables/parts) (fields `path` and `disk`) to monitor background moves. Also, the detailed information can be found in server logs. +Data is never transferred from the last one and into the first one. One may use system tables [system.part_log](/core/reference/system-tables/part_log) (field `type = MOVE_PART`) and [system.parts](/core/reference/system-tables/parts) (fields `path` and `disk`) to monitor background moves. Also, the detailed information can be found in server logs. -User can force moving a part or a partition from one volume to another using the query [ALTER TABLE ... MOVE PART\|PARTITION ... TO VOLUME\|DISK ...](/reference/statements/alter/partition), all the restrictions for background operations are taken into account. The query initiates a move on its own and does not wait for background operations to be completed. User will get an error message if not enough free space is available or if any of the required conditions are not met. +User can force moving a part or a partition from one volume to another using the query [ALTER TABLE ... MOVE PART\|PARTITION ... TO VOLUME\|DISK ...](/core/reference/statements/alter/partition), all the restrictions for background operations are taken into account. The query initiates a move on its own and does not wait for background operations to be completed. User will get an error message if not enough free space is available or if any of the required conditions are not met. Moving data does not interfere with data replication. Therefore, different storage policies can be specified for the same table on different replicas. After the completion of background merges and mutations, old parts are removed only after a certain amount of time (`old_parts_lifetime`). During this time, they are not moved to other volumes or disks. Therefore, until the parts are finally removed, they are still taken into account for evaluation of the occupied disk space. -User can assign new big parts to different disks of a [JBOD](https://en.wikipedia.org/wiki/Non-RAID_drive_architectures) volume in a balanced way using the [min_bytes_to_rebalance_partition_over_jbod](/reference/settings/merge-tree-settings#min_bytes_to_rebalance_partition_over_jbod) setting. +User can assign new big parts to different disks of a [JBOD](https://en.wikipedia.org/wiki/Non-RAID_drive_architectures) volume in a balanced way using the [min_bytes_to_rebalance_partition_over_jbod](/core/reference/settings/merge-tree-settings#min_bytes_to_rebalance_partition_over_jbod) setting. ## Using external storage for data storage {#table_engine-mergetree-s3} -[MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) family table engines can store data to `S3`, `AzureBlobStorage`, `HDFS` using a disk with types `s3`, `azure_blob_storage`, `hdfs` accordingly. See [configuring external storage options](/concepts/features/configuration/server-config/storing-data#configuring-external-storage) for more details. +[MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) family table engines can store data to `S3`, `AzureBlobStorage`, `HDFS` using a disk with types `s3`, `azure_blob_storage`, `hdfs` accordingly. See [configuring external storage options](/core/concepts/features/configuration/server-config/storing-data#configuring-external-storage) for more details. Example for [S3](https://aws.amazon.com/s3/) as external storage using a disk with type `s3`. @@ -1134,7 +1134,7 @@ Configuration markup: ``` -Also see [configuring external storage options](/concepts/features/configuration/server-config/storing-data#configuring-external-storage). +Also see [configuring external storage options](/core/concepts/features/configuration/server-config/storing-data#configuring-external-storage). ### Using S3 disks with multiple volumes {#s3-multiple-volumes} @@ -1207,12 +1207,12 @@ You can also combine local and S3 volumes in a tiered policy, for example moving When using `use_environment_credentials` for S3 authentication, the environment credentials (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN`) are shared across all S3 disks. It is not possible to use different environment credentials for different disks. If you need different credentials for each S3 disk, use explicit `access_key_id` and `secret_access_key` settings per disk instead. -It is possible to set up non-replicated MergeTree tables with a one-writer, many-readers scenario on shared storage. This is provided by the automatic refresh of the parts list, which can be set up on readers. Note that this requires shared filesystem metadata across replicas (or `table_disk = true` with a table-local disk). See [refresh_parts_interval and table_disk](/concepts/features/configuration/server-config/storing-data#refresh-parts-interval-and-table-disk). +It is possible to set up non-replicated MergeTree tables with a one-writer, many-readers scenario on shared storage. This is provided by the automatic refresh of the parts list, which can be set up on readers. Note that this requires shared filesystem metadata across replicas (or `table_disk = true` with a table-local disk). See [refresh_parts_interval and table_disk](/core/concepts/features/configuration/server-config/storing-data#refresh-parts-interval-and-table-disk). **cache configuration** -ClickHouse versions 22.3 through 22.7 use a different cache configuration, see [using local cache](/concepts/features/configuration/server-config/storing-data#using-local-cache) if you are using one of those versions. +ClickHouse versions 22.3 through 22.7 use a different cache configuration, see [using local cache](/core/concepts/features/configuration/server-config/storing-data#using-local-cache) if you are using one of those versions. ## Virtual columns {#virtual-columns} @@ -1362,7 +1362,7 @@ ENGINE = MergeTree ORDER BY id ``` -Column-level settings can be modified or removed using [ALTER MODIFY COLUMN](/reference/statements/alter/column), for example: +Column-level settings can be modified or removed using [ALTER MODIFY COLUMN](/core/reference/statements/alter/column), for example: - Remove `SETTINGS` from column declaration: diff --git a/reference/engines/table-engines/mergetree-family/replacingmergetree.mdx b/core/reference/engines/table-engines/mergetree-family/replacingmergetree.mdx similarity index 91% rename from reference/engines/table-engines/mergetree-family/replacingmergetree.mdx rename to core/reference/engines/table-engines/mergetree-family/replacingmergetree.mdx index cbcfac52..b9b8afe5 100644 --- a/reference/engines/table-engines/mergetree-family/replacingmergetree.mdx +++ b/core/reference/engines/table-engines/mergetree-family/replacingmergetree.mdx @@ -7,14 +7,14 @@ title: 'ReplacingMergeTree table engine' doc_type: 'reference' --- -The engine differs from [MergeTree](/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree) in that it removes duplicate entries with the same [sorting key](/reference/engines/table-engines/mergetree-family/mergetree) value (`ORDER BY` table section, not `PRIMARY KEY`). +The engine differs from [MergeTree](/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree) in that it removes duplicate entries with the same [sorting key](/core/reference/engines/table-engines/mergetree-family/mergetree) value (`ORDER BY` table section, not `PRIMARY KEY`). Data deduplication occurs only during a merge. Merging occurs in the background at an unknown time, so you can't plan for it. Some of the data may remain unprocessed. Although you can run an unscheduled merge using the `OPTIMIZE` query, do not count on using it, because the `OPTIMIZE` query will read and write a large amount of data. Thus, `ReplacingMergeTree` is suitable for clearing out duplicate data in the background in order to save space, but it does not guarantee the absence of duplicates. -A detailed guide on ReplacingMergeTree, including best practices and how to optimize performance, is available [here](/concepts/operations/update/replacing-merge-tree). +A detailed guide on ReplacingMergeTree, including best practices and how to optimize performance, is available [here](/core/concepts/features/operations/update/replacing-merge-tree). ## Creating a table {#creating-a-table} @@ -33,7 +33,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] [SETTINGS name=value, ...] ``` -For a description of request parameters, see [statement description](/reference/statements/create/table). +For a description of request parameters, see [statement description](/core/reference/statements/create/table). Uniqueness of rows is determined by the `ORDER BY` table section, not `PRIMARY KEY`. @@ -149,7 +149,7 @@ select * from myThirdReplacingMT final; ## Query clauses {#query-clauses} -When creating a `ReplacingMergeTree` table the same [clauses](/reference/engines/table-engines/mergetree-family/mergetree) are required, as when creating a `MergeTree` table. +When creating a `ReplacingMergeTree` table the same [clauses](/core/reference/engines/table-engines/mergetree-family/mergetree) are required, as when creating a `MergeTree` table.
    @@ -220,4 +220,4 @@ FINAL 1 row in set. Elapsed: 0.002 sec. ``` -For further details on `FINAL`, including how to optimize `FINAL` performance, we recommend reading our [detailed guide on ReplacingMergeTree](/concepts/operations/update/replacing-merge-tree). +For further details on `FINAL`, including how to optimize `FINAL` performance, we recommend reading our [detailed guide on ReplacingMergeTree](/core/concepts/features/operations/update/replacing-merge-tree). diff --git a/reference/engines/table-engines/mergetree-family/replication.mdx b/core/reference/engines/table-engines/mergetree-family/replication.mdx similarity index 88% rename from reference/engines/table-engines/mergetree-family/replication.mdx rename to core/reference/engines/table-engines/mergetree-family/replication.mdx index a09ac3fa..acde6eb6 100644 --- a/reference/engines/table-engines/mergetree-family/replication.mdx +++ b/core/reference/engines/table-engines/mergetree-family/replication.mdx @@ -38,7 +38,7 @@ Replication works at the level of an individual table, not the entire server. A Replication does not depend on sharding. Each shard has its own independent replication. -Compressed data for `INSERT` and `ALTER` queries is replicated (for more information, see the documentation for [ALTER](/reference/statements/alter). +Compressed data for `INSERT` and `ALTER` queries is replicated (for more information, see the documentation for [ALTER](/core/reference/statements/alter). `CREATE`, `DROP`, `ATTACH`, `DETACH` and `RENAME` queries are executed on a single server and are not replicated: @@ -46,9 +46,9 @@ Compressed data for `INSERT` and `ALTER` queries is replicated (for more informa - The `DROP TABLE` query deletes the replica located on the server where the query is run. - The `RENAME` query renames the table on one of the replicas. In other words, replicated tables can have different names on different replicas. -ClickHouse uses [ClickHouse Keeper](/guides/oss/deployment-and-scaling/keeper) for storing replicas meta information. It is possible to use ZooKeeper version 3.4.5 or newer, but ClickHouse Keeper is recommended. +ClickHouse uses [ClickHouse Keeper](/core/guides/oss/deployment-and-scaling/keeper) for storing replicas meta information. It is possible to use ZooKeeper version 3.4.5 or newer, but ClickHouse Keeper is recommended. -To use replication, set parameters in the [zookeeper](/reference/settings/server-settings/settings#zookeeper) server configuration section. +To use replication, set parameters in the [zookeeper](/core/reference/settings/server-settings/settings#zookeeper) server configuration section. Don't neglect the security setting. ClickHouse supports the `digest` [ACL scheme](https://zookeeper.apache.org/doc/current/zookeeperProgrammers.html#sc_ZooKeeperAccessControl) of the ZooKeeper security subsystem. @@ -113,21 +113,21 @@ You can specify any existing ZooKeeper cluster and the system will use a directo If ZooKeeper is not set in the config file, you can't create replicated tables, and any existing replicated tables will be read-only. -ZooKeeper is not used in `SELECT` queries because replication does not affect the performance of `SELECT` and queries run just as fast as they do for non-replicated tables. When querying distributed replicated tables, ClickHouse behavior is controlled by the settings [max_replica_delay_for_distributed_queries](/reference/settings/session-settings#max_replica_delay_for_distributed_queries) and [fallback_to_stale_replicas_for_distributed_queries](/reference/settings/session-settings#fallback_to_stale_replicas_for_distributed_queries). +ZooKeeper is not used in `SELECT` queries because replication does not affect the performance of `SELECT` and queries run just as fast as they do for non-replicated tables. When querying distributed replicated tables, ClickHouse behavior is controlled by the settings [max_replica_delay_for_distributed_queries](/core/reference/settings/session-settings#max_replica_delay_for_distributed_queries) and [fallback_to_stale_replicas_for_distributed_queries](/core/reference/settings/session-settings#fallback_to_stale_replicas_for_distributed_queries). For each `INSERT` query, approximately ten entries are added to ZooKeeper through several transactions. (To be more precise, this is for each inserted block of data; an INSERT query contains one block or one block per `max_insert_block_size = 1048576` rows.) This leads to slightly longer latencies for `INSERT` compared to non-replicated tables. But if you follow the recommendations to insert data in batches of no more than one `INSERT` per second, it does not create any problems. The entire ClickHouse cluster used for coordinating one ZooKeeper cluster has a total of several hundred `INSERTs` per second. The throughput on data inserts (the number of rows per second) is just as high as for non-replicated data. For very large clusters, you can use different ZooKeeper clusters for different shards. However, from our experience this has not proven necessary based on production clusters with approximately 300 servers. -Replication is asynchronous and multi-master. `INSERT` queries (as well as `ALTER`) can be sent to any available server. Data is inserted on the server where the query is run, and then it is copied to the other servers. Because it is asynchronous, recently inserted data appears on the other replicas with some latency. If part of the replicas are not available, the data is written when they become available. If a replica is available, the latency is the amount of time it takes to transfer the block of compressed data over the network. The number of threads performing background tasks for replicated tables can be set by [background_schedule_pool_size](/reference/settings/server-settings/settings#background_schedule_pool_size) setting. +Replication is asynchronous and multi-master. `INSERT` queries (as well as `ALTER`) can be sent to any available server. Data is inserted on the server where the query is run, and then it is copied to the other servers. Because it is asynchronous, recently inserted data appears on the other replicas with some latency. If part of the replicas are not available, the data is written when they become available. If a replica is available, the latency is the amount of time it takes to transfer the block of compressed data over the network. The number of threads performing background tasks for replicated tables can be set by [background_schedule_pool_size](/core/reference/settings/server-settings/settings#background_schedule_pool_size) setting. -`ReplicatedMergeTree` engine uses a separate thread pool for replicated fetches. Size of the pool is limited by the [background_fetches_pool_size](/reference/settings/server-settings/settings#background_fetches_pool_size) setting which can be tuned with a server restart. +`ReplicatedMergeTree` engine uses a separate thread pool for replicated fetches. Size of the pool is limited by the [background_fetches_pool_size](/core/reference/settings/server-settings/settings#background_fetches_pool_size) setting which can be tuned with a server restart. By default, an INSERT query waits for confirmation of writing the data from only one replica. If the data was successfully written to only one replica and the server with this replica ceases to exist, the stored data will be lost. To enable getting confirmation of data writes from multiple replicas, use the `insert_quorum` option. Each block of data is written atomically. The INSERT query is divided into blocks up to `max_insert_block_size = 1048576` rows. In other words, if the `INSERT` query has less than 1048576 rows, it is made atomically. -Data blocks are deduplicated. For multiple writes of the same data block (data blocks of the same size containing the same rows in the same order), the block is only written once. The reason for this is in case of network failures when the client application does not know if the data was written to the DB, so the `INSERT` query can simply be repeated. It does not matter which replica INSERTs were sent to with identical data. `INSERTs` are idempotent. Deduplication parameters are controlled by [merge_tree](/reference/settings/server-settings/settings#merge_tree) server settings. +Data blocks are deduplicated. For multiple writes of the same data block (data blocks of the same size containing the same rows in the same order), the block is only written once. The reason for this is in case of network failures when the client application does not know if the data was written to the DB, so the `INSERT` query can simply be repeated. It does not matter which replica INSERTs were sent to with identical data. `INSERTs` are idempotent. Deduplication parameters are controlled by [merge_tree](/core/reference/settings/server-settings/settings#merge_tree) server settings. During replication, only the source data to insert is transferred over the network. Further data transformation (merging) is coordinated and performed on all the replicas in the same way. This minimizes network usage, which means that replication works well when replicas reside in different datacenters. (Note that duplicating data in different datacenters is the main goal of replication.) @@ -140,7 +140,7 @@ The system monitors data synchronicity on replicas and is able to recover after In ClickHouse Cloud, replication is handled automatically. -Create tables using [`MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) without replication arguments. The system internally rewrites [`MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) to [`SharedMergeTree`](/products/cloud/features/infrastructure/shared-merge-tree) for replication and data distribution. +Create tables using [`MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) without replication arguments. The system internally rewrites [`MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) to [`SharedMergeTree`](/products/cloud/features/infrastructure/shared-merge-tree) for replication and data distribution. Avoid using `ReplicatedMergeTree` or specifying replication parameters, as replication is managed by the platform. @@ -184,7 +184,7 @@ CREATE TABLE table_name
    -As the example shows, these parameters can contain substitutions in `{}`. The substituted values are taken from the [macros](/reference/settings/server-settings/settings#macros) section of the configuration file. +As the example shows, these parameters can contain substitutions in `{}`. The substituted values are taken from the [macros](/core/reference/settings/server-settings/settings#macros) section of the configuration file. Example: @@ -290,7 +290,7 @@ We use the term `MergeTree` to refer to all table engines in the `MergeTree fami If you had a `MergeTree` table that was manually replicated, you can convert it to a replicated table. You might need to do this if you have already collected a large amount of data in a `MergeTree` table and now you want to enable replication. -[ATTACH TABLE ... AS REPLICATED](/reference/statements/attach#attach-mergetree-table-as-replicatedmergetree) statement allows to attach detached `MergeTree` table as `ReplicatedMergeTree`. +[ATTACH TABLE ... AS REPLICATED](/core/reference/statements/attach#attach-mergetree-table-as-replicatedmergetree) statement allows to attach detached `MergeTree` table as `ReplicatedMergeTree`. `MergeTree` table can be automatically converted on server restart if `convert_to_replicated` flag is set at the table's data directory (`/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/` for `Atomic` database). Create empty `convert_to_replicated` file and the table will be loaded as replicated on next server restart. @@ -318,7 +318,7 @@ Then run `ALTER TABLE ATTACH PARTITION` on one of the replicas to add these data ## Converting from ReplicatedMergeTree to MergeTree {#converting-from-replicatedmergetree-to-mergetree} -Use [ATTACH TABLE ... AS NOT REPLICATED](/reference/statements/attach#attach-mergetree-table-as-replicatedmergetree) statement to attach detached `ReplicatedMergeTree` table as `MergeTree` on a single server. +Use [ATTACH TABLE ... AS NOT REPLICATED](/core/reference/statements/attach#attach-mergetree-table-as-replicatedmergetree) statement to attach detached `ReplicatedMergeTree` table as `MergeTree` on a single server. Another way to do this involves server restart. Create a MergeTree table with a different name. Move all the data from the directory with the `ReplicatedMergeTree` table data to the new table's data directory. Then delete the `ReplicatedMergeTree` table and restart the server. @@ -335,8 +335,8 @@ If the data in ClickHouse Keeper was lost or damaged, you can save data by movin **See Also** -- [background_schedule_pool_size](/reference/settings/server-settings/settings#background_schedule_pool_size) -- [background_fetches_pool_size](/reference/settings/server-settings/settings#background_fetches_pool_size) -- [execute_merges_on_single_replica_time_threshold](/reference/settings/merge-tree-settings#execute_merges_on_single_replica_time_threshold) -- [max_replicated_fetches_network_bandwidth](/reference/settings/merge-tree-settings#max_replicated_fetches_network_bandwidth) -- [max_replicated_sends_network_bandwidth](/reference/settings/merge-tree-settings#max_replicated_sends_network_bandwidth) +- [background_schedule_pool_size](/core/reference/settings/server-settings/settings#background_schedule_pool_size) +- [background_fetches_pool_size](/core/reference/settings/server-settings/settings#background_fetches_pool_size) +- [execute_merges_on_single_replica_time_threshold](/core/reference/settings/merge-tree-settings#execute_merges_on_single_replica_time_threshold) +- [max_replicated_fetches_network_bandwidth](/core/reference/settings/merge-tree-settings#max_replicated_fetches_network_bandwidth) +- [max_replicated_sends_network_bandwidth](/core/reference/settings/merge-tree-settings#max_replicated_sends_network_bandwidth) diff --git a/reference/engines/table-engines/mergetree-family/summingmergetree.mdx b/core/reference/engines/table-engines/mergetree-family/summingmergetree.mdx similarity index 82% rename from reference/engines/table-engines/mergetree-family/summingmergetree.mdx rename to core/reference/engines/table-engines/mergetree-family/summingmergetree.mdx index 50511776..bc1efb9f 100644 --- a/reference/engines/table-engines/mergetree-family/summingmergetree.mdx +++ b/core/reference/engines/table-engines/mergetree-family/summingmergetree.mdx @@ -7,7 +7,7 @@ title: 'SummingMergeTree table engine' doc_type: 'reference' --- -The engine inherits from [MergeTree](/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree). The difference is that when merging data parts for `SummingMergeTree` tables ClickHouse replaces all the rows with the same primary key (or more accurately, with the same [sorting key](/reference/engines/table-engines/mergetree-family/mergetree)) with one row which contains summed values for the columns with the numeric data type. If the sorting key is composed in a way that a single key value corresponds to large number of rows, this significantly reduces storage volume and speeds up data selection. +The engine inherits from [MergeTree](/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree). The difference is that when merging data parts for `SummingMergeTree` tables ClickHouse replaces all the rows with the same primary key (or more accurately, with the same [sorting key](/core/reference/engines/table-engines/mergetree-family/mergetree)) with one row which contains summed values for the columns with the numeric data type. If the sorting key is composed in a way that a single key value corresponds to large number of rows, this significantly reduces storage volume and speeds up data selection. We recommend using the engine together with `MergeTree`. Store complete data in `MergeTree` table, and use `SummingMergeTree` for aggregated data storing, for example, when preparing reports. Such an approach will prevent you from losing valuable data due to an incorrectly composed primary key. @@ -26,7 +26,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] [SETTINGS name=value, ...] ``` -For a description of request parameters, see [request description](/reference/statements/create/table). +For a description of request parameters, see [request description](/core/reference/statements/create/table). ### Parameters of SummingMergeTree {#parameters-of-summingmergetree} @@ -39,7 +39,7 @@ For a description of request parameters, see [request description](/reference/st ### Query clauses {#query-clauses} -When creating a `SummingMergeTree` table the same [clauses](/reference/engines/table-engines/mergetree-family/mergetree) are required, as when creating a `MergeTree` table. +When creating a `SummingMergeTree` table the same [clauses](/core/reference/engines/table-engines/mergetree-family/mergetree) are required, as when creating a `MergeTree` table.
    @@ -101,7 +101,7 @@ SELECT key, sum(value) FROM summtt GROUP BY key When data are inserted into a table, they are saved as-is. ClickHouse merges the inserted parts of data periodically and this is when rows with the same primary key are summed and replaced with one for each resulting part of data. -ClickHouse can merge the data parts so that different resulting parts of data can consist rows with the same primary key, i.e. the summation will be incomplete. Therefore (`SELECT`) an aggregate function [sum()](/reference/functions/aggregate-functions/reference/sum) and `GROUP BY` clause should be used in a query as described in the example above. +ClickHouse can merge the data parts so that different resulting parts of data can consist rows with the same primary key, i.e. the summation will be incomplete. Therefore (`SELECT`) an aggregate function [sum()](/core/reference/functions/aggregate-functions/reference/sum) and `GROUP BY` clause should be used in a query as described in the example above. ### Common rules for summation {#common-rules-for-summation} @@ -115,7 +115,7 @@ The values are not summed for columns in the primary key. ### The summation in the AggregateFunction columns {#the-summation-in-the-aggregatefunction-columns} -For columns of [AggregateFunction type](/reference/data-types/aggregatefunction) ClickHouse behaves as [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) engine aggregating according to the function. +For columns of [AggregateFunction type](/core/reference/data-types/aggregatefunction) ClickHouse behaves as [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) engine aggregating according to the function. ### Nested structures {#nested-structures} @@ -184,7 +184,7 @@ ARRAY JOIN └──────┴─────────┴─────────────┴────────┘ ``` -When requesting data, use the [sumMap(key, value)](/reference/functions/aggregate-functions/reference/sumMap) function for aggregation of `Map`. +When requesting data, use the [sumMap(key, value)](/core/reference/functions/aggregate-functions/reference/sumMap) function for aggregation of `Map`. For nested data structure, you do not need to specify its columns in the tuple of columns for summation. diff --git a/reference/engines/table-engines/mergetree-family/textindexes.mdx b/core/reference/engines/table-engines/mergetree-family/textindexes.mdx similarity index 79% rename from reference/engines/table-engines/mergetree-family/textindexes.mdx rename to core/reference/engines/table-engines/mergetree-family/textindexes.mdx index 6b6d977a..31735c98 100644 --- a/reference/engines/table-engines/mergetree-family/textindexes.mdx +++ b/core/reference/engines/table-engines/mergetree-family/textindexes.mdx @@ -65,7 +65,7 @@ In these versions, no special settings need to be configured to use the text ind We strongly recommend using ClickHouse versions >= 26.2 for production use cases. -Text indexes can be used with any ClickHouse version >= 26.2, regardless of the [compatibility](/reference/settings/session-settings#compatibility) setting. +Text indexes can be used with any ClickHouse version >= 26.2, regardless of the [compatibility](/core/reference/settings/session-settings#compatibility) setting. To create a text index use the following syntax: @@ -97,12 +97,12 @@ ORDER BY key ``` Text indexes can be defined on columns of these types: -- [String](/reference/data-types/string) and [FixedString](/reference/data-types/fixedstring), -- [Array(String)](/reference/data-types/array) and [Array(FixedString)](/reference/data-types/array), -- [Map](/reference/data-types/map) (via [mapKeys](/reference/functions/regular-functions/tuple-map-functions#mapKeys) and [mapValues](/reference/functions/regular-functions/tuple-map-functions#mapValues) functions), and -- [JSON](/reference/data-types/newjson) (via [JSONAllPaths](/reference/functions/regular-functions/json-functions#JSONAllPaths) and [`JSONAllValues`](/reference/functions/regular-functions/json-functions#JSONAllValues) functions). +- [String](/core/reference/data-types/string) and [FixedString](/core/reference/data-types/fixedstring), +- [Array(String)](/core/reference/data-types/array) and [Array(FixedString)](/core/reference/data-types/array), +- [Map](/core/reference/data-types/map) (via [mapKeys](/core/reference/functions/regular-functions/tuple-map-functions#mapKeys) and [mapValues](/core/reference/functions/regular-functions/tuple-map-functions#mapValues) functions), and +- [JSON](/core/reference/data-types/newjson) (via [JSONAllPaths](/core/reference/functions/regular-functions/json-functions#JSONAllPaths) and [`JSONAllValues`](/core/reference/functions/regular-functions/json-functions#JSONAllValues) functions). -Columns of type [Nullable(T)](/reference/data-types/nullable) and [LowCardinality()](/reference/data-types/lowcardinality) are also supported, including `Array(Nullable(String or FixedString))`. +Columns of type [Nullable(T)](/core/reference/data-types/nullable) and [LowCardinality()](/core/reference/data-types/lowcardinality) are also supported, including `Array(Nullable(String or FixedString))`. Alternatively, to add a text index to an existing table: @@ -141,23 +141,23 @@ ALTER TABLE table DROP INDEX text_idx; **Tokenizer argument (mandatory)**. The `tokenizer` argument specifies the tokenizer: -- `splitByNonAlpha` splits strings along non-alphanumeric ASCII characters (see function [splitByNonAlpha](/reference/functions/regular-functions/splitting-merging-functions#splitByNonAlpha)). -- `splitByString(S)` splits strings along certain user-defined separator strings `S` (see function [splitByString](/reference/functions/regular-functions/splitting-merging-functions#splitByString)). +- `splitByNonAlpha` splits strings along non-alphanumeric ASCII characters (see function [splitByNonAlpha](/core/reference/functions/regular-functions/splitting-merging-functions#splitByNonAlpha)). +- `splitByString(S)` splits strings along certain user-defined separator strings `S` (see function [splitByString](/core/reference/functions/regular-functions/splitting-merging-functions#splitByString)). The separators can be specified using an optional parameter, for example, `tokenizer = splitByString([', ', '; ', '\n', '\\'])`. Note that each string can consist of multiple characters (`', '` in the example). The default separator list, if not specified explicitly (for example, `tokenizer = splitByString`), is a single whitespace `[' ']`. - `asciiCJK` splits strings into tokens using Unicode word boundary rules (similar to [Unicode Text Segmentation (UAX #29)](https://unicode.org/reports/tr29/)). ASCII alphanumeric characters and underscores form tokens with connectors (ASCII `:` for letters, `.` and `'` for same-type characters). Non-ASCII Unicode characters, including [CJK](https://en.wikipedia.org/wiki/CJK_characters) characters, become single-character tokens. -- `ngrams(N)` splits strings into equally large `N`-grams (see function [ngrams](/reference/functions/regular-functions/splitting-merging-functions#ngrams)). +- `ngrams(N)` splits strings into equally large `N`-grams (see function [ngrams](/core/reference/functions/regular-functions/splitting-merging-functions#ngrams)). The ngram length can be specified using an optional integer parameter between 1 and 8, for example, `tokenizer = ngrams(3)`. The default ngram size, if not specified explicitly (for example, `tokenizer = ngrams`), is 3. -- `sparseGrams(min_length, max_length, min_cutoff_length)` splits strings into variable-length n-grams of at least `min_length` and at most `max_length` (inclusive) characters (see function [sparseGrams](/reference/functions/regular-functions/string-functions#sparseGrams)). +- `sparseGrams(min_length, max_length, min_cutoff_length)` splits strings into variable-length n-grams of at least `min_length` and at most `max_length` (inclusive) characters (see function [sparseGrams](/core/reference/functions/regular-functions/string-functions#sparseGrams)). Unless specified explicitly, `min_length` and `max_length` default to 3 and 100. If parameter `min_cutoff_length` is provided, only n-grams with length greater or equal than `min_cutoff_length` are returned. Compared to `ngrams(N)`, the `sparseGrams` tokenizer produces variable-length N-grams, allowing for a more flexible representation of the original text. For example, `tokenizer = sparseGrams(3, 5, 4)` internally generates 3-, 4-, 5-grams from the input string but only the 4- and 5-grams are returned. -- `array` performs no tokenization, i.e. every row value is a token (see function [array](/reference/functions/regular-functions/array-functions#array)). +- `array` performs no tokenization, i.e. every row value is a token (see function [array](/core/reference/functions/regular-functions/array-functions#array)). -All available tokenizers are listed in [system.tokenizers](/reference/system-tables/tokenizers). +All available tokenizers are listed in [system.tokenizers](/core/reference/system-tables/tokenizers). The `splitByString` tokenizer applies the split separators left-to-right. @@ -168,7 +168,7 @@ This can generally be done by passing the separator strings in order of descendi If the separator strings happen to form a [prefix code](https://en.wikipedia.org/wiki/Prefix_code), they can be passed in arbitrary order. -To understand how a tokenizer split the input string, you can use the [tokens](/reference/functions/regular-functions/splitting-merging-functions#tokens) and [tokensForLikePattern](/reference/functions/regular-functions/splitting-merging-functions#tokensForLikePattern) functions: +To understand how a tokenizer split the input string, you can use the [tokens](/core/reference/functions/regular-functions/splitting-merging-functions#tokens) and [tokensForLikePattern](/core/reference/functions/regular-functions/splitting-merging-functions#tokensForLikePattern) functions: Example: @@ -188,11 +188,11 @@ For non-ASCII text, the `asciiCJK` tokenizer is recommended as it correctly hand **Preprocessor argument (optional)**. The preprocessor refers to an expression which is applied to the input string before tokenization. Typical use cases for the preprocessor argument include -1. Lower/upper-casing, or case folding to enable case-insensitive matching, e.g., [lower](/reference/functions/regular-functions/string-functions#lower), [lowerUTF8](/reference/functions/regular-functions/string-functions#lowerUTF8), [caseFoldUTF8](/reference/functions/regular-functions/string-functions#caseFoldUTF8). -2. UTF-8 normalization, e.g. [normalizeUTF8NFC](/reference/functions/regular-functions/string-functions#normalizeUTF8NFC), [normalizeUTF8NFD](/reference/functions/regular-functions/string-functions#normalizeUTF8NFD), [normalizeUTF8NFKC](/reference/functions/regular-functions/string-functions#normalizeUTF8NFKC), [normalizeUTF8NFKD](/reference/functions/regular-functions/string-functions#normalizeUTF8NFKD), [normalizeUTF8NFKCCasefold](/reference/functions/regular-functions/string-functions#normalizeUTF8NFKCCasefold), [toValidUTF8](/reference/functions/regular-functions/string-functions#toValidUTF8). -3. Removing or transforming unwanted characters or substrings, such as accents e.g. [extractTextFromHTML](/reference/functions/regular-functions/string-functions#extractTextFromHTML), [substring](/reference/functions/regular-functions/string-functions#substring), [idnaEncode](/reference/functions/regular-functions/string-functions#idnaEncode), [translate](/reference/functions/regular-functions/string-replace-functions#translate), [removeDiacriticsUTF8](/reference/functions/regular-functions/string-functions#removeDiacriticsUTF8). +1. Lower/upper-casing, or case folding to enable case-insensitive matching, e.g., [lower](/core/reference/functions/regular-functions/string-functions#lower), [lowerUTF8](/core/reference/functions/regular-functions/string-functions#lowerUTF8), [caseFoldUTF8](/core/reference/functions/regular-functions/string-functions#caseFoldUTF8). +2. UTF-8 normalization, e.g. [normalizeUTF8NFC](/core/reference/functions/regular-functions/string-functions#normalizeUTF8NFC), [normalizeUTF8NFD](/core/reference/functions/regular-functions/string-functions#normalizeUTF8NFD), [normalizeUTF8NFKC](/core/reference/functions/regular-functions/string-functions#normalizeUTF8NFKC), [normalizeUTF8NFKD](/core/reference/functions/regular-functions/string-functions#normalizeUTF8NFKD), [normalizeUTF8NFKCCasefold](/core/reference/functions/regular-functions/string-functions#normalizeUTF8NFKCCasefold), [toValidUTF8](/core/reference/functions/regular-functions/string-functions#toValidUTF8). +3. Removing or transforming unwanted characters or substrings, such as accents e.g. [extractTextFromHTML](/core/reference/functions/regular-functions/string-functions#extractTextFromHTML), [substring](/core/reference/functions/regular-functions/string-functions#substring), [idnaEncode](/core/reference/functions/regular-functions/string-functions#idnaEncode), [translate](/core/reference/functions/regular-functions/string-replace-functions#translate), [removeDiacriticsUTF8](/core/reference/functions/regular-functions/string-functions#removeDiacriticsUTF8). -The preprocessor expression must transform an input value of type [String](/reference/data-types/string) or [FixedString](/reference/data-types/fixedstring) to a value of the same type. +The preprocessor expression must transform an input value of type [String](/core/reference/data-types/string) or [FixedString](/core/reference/data-types/fixedstring) to a value of the same type. If the text index was build on a column of type `Nullable(T)` or `LowCardinality(T)` column, then the preprocessor expression should accept nullable or low-cardinality values (i.e. not throw an exception). Examples: @@ -212,7 +212,7 @@ Examples: Using non-deterministic functions is disallowed. -Functions [hasToken](/reference/functions/regular-functions/string-search-functions#hasToken), [hasAllTokens](/reference/functions/regular-functions/string-search-functions#hasAllTokens) and [hasAnyTokens](/reference/functions/regular-functions/string-search-functions#hasAnyTokens) use the preprocessor to first transform the search term before tokenizing it. +Functions [hasToken](/core/reference/functions/regular-functions/string-search-functions#hasToken), [hasAllTokens](/core/reference/functions/regular-functions/string-search-functions#hasAllTokens) and [hasAnyTokens](/core/reference/functions/regular-functions/string-search-functions#hasAnyTokens) use the preprocessor to first transform the search term before tokenizing it. For example, @@ -261,7 +261,7 @@ ORDER BY tuple(); SELECT count() FROM tab WHERE hasAllTokens(arr, 'foo'); ``` -To define a preprocessor in a text index on build [Map](/reference/data-types/map)-type columns, users need to decide if the index is +To define a preprocessor in a text index on build [Map](/core/reference/data-types/map)-type columns, users need to decide if the index is build on the map keys or values. Example: @@ -299,7 +299,7 @@ Optional parameter `posting_list_codec` (default: `none`) specifies the codec fo
    *Index granularity.* -Text indexes are implemented within ClickHouse as a type of [skip indexes](/reference/engines/table-engines/mergetree-family/mergetree#skip-index-types). +Text indexes are implemented within ClickHouse as a type of [skip indexes](/core/reference/engines/table-engines/mergetree-family/mergetree#skip-index-types). However, unlike other skip indexes, text indexes use an infinite granularity (100 million). This can be seen in the table definition of a text index. @@ -356,7 +356,7 @@ WHERE string_search_function(column_with_text_index) #### `=` {#functions-example-equals} -`=` ([equals](/reference/functions/regular-functions/comparison-functions#equals)) matches the entire given search term. +`=` ([equals](/core/reference/functions/regular-functions/comparison-functions#equals)) matches the entire given search term. Example: @@ -366,7 +366,7 @@ SELECT * from table WHERE str = 'Hello'; #### `IN` {#functions-example-in} -`IN` ([in](/reference/functions/regular-functions/in-functions)) is similar to `equals` but matches all search terms. +`IN` ([in](/core/reference/functions/regular-functions/in-functions)) is similar to `equals` but matches all search terms. Example: @@ -388,7 +388,7 @@ These functions currently use the text index for filtering only if the index tok `NOT LIKE` (`notLike`) is not supported by the text index.
    -In order to use `LIKE` ([like](/reference/functions/regular-functions/string-search-functions#like)) and the [match](/reference/functions/regular-functions/string-search-functions#match) function with text indexes, ClickHouse must be able to extract complete tokens from the search term. +In order to use `LIKE` ([like](/core/reference/functions/regular-functions/string-search-functions#like)) and the [match](/core/reference/functions/regular-functions/string-search-functions#match) function with text indexes, ClickHouse must be able to extract complete tokens from the search term. For the index with `ngrams` tokenizer, this is the case if the length of the searched strings between wildcards is equal or longer than the ngram length. Example for the text index with `splitByNonAlpha` tokenizer: @@ -414,7 +414,7 @@ See the [LIKE/ILIKE performance tuning section](#like-ilike-queries-perf) for de #### `startsWith` and `endsWith` {#functions-example-startswith-endswith} -Similar to `LIKE`, functions [startsWith](/reference/functions/regular-functions/string-functions#startsWith) and [endsWith](/reference/functions/regular-functions/string-functions#endsWith) can only use a text index, if complete tokens can be extracted from the search term. +Similar to `LIKE`, functions [startsWith](/core/reference/functions/regular-functions/string-functions#startsWith) and [endsWith](/core/reference/functions/regular-functions/string-functions#endsWith) can only use a text index, if complete tokens can be extracted from the search term. For the index with `ngrams` tokenizer, this is the case if the length of the searched strings between wildcards is equal or longer than the ngram length. Example for the text index with `splitByNonAlpha` tokenizer: @@ -445,7 +445,7 @@ Function `hasToken` looks straightforward to use but it has certain pitfalls wit We recommend using functions `hasAnyTokens` and `hasAllTokens` instead. -Functions [hasToken](/reference/functions/regular-functions/string-search-functions#hasToken) and [hasTokenOrNull](/reference/functions/regular-functions/string-search-functions#hasTokenOrNull) match against a single given token. +Functions [hasToken](/core/reference/functions/regular-functions/string-search-functions#hasToken) and [hasTokenOrNull](/core/reference/functions/regular-functions/string-search-functions#hasTokenOrNull) match against a single given token. Unlike the previously mentioned functions, they do not tokenize the search term (they assume the input is a single token). @@ -457,7 +457,7 @@ SELECT count() FROM table WHERE hasToken(comment, 'clickhouse'); #### `hasAnyTokens` and `hasAllTokens` {#functions-example-hasanytokens-hasalltokens} -Functions [hasAnyTokens](/reference/functions/regular-functions/string-search-functions#hasAnyTokens) and [hasAllTokens](/reference/functions/regular-functions/string-search-functions#hasAllTokens) match against one or all of the given tokens. +Functions [hasAnyTokens](/core/reference/functions/regular-functions/string-search-functions#hasAnyTokens) and [hasAllTokens](/core/reference/functions/regular-functions/string-search-functions#hasAllTokens) match against one or all of the given tokens. These two functions accept the search tokens as either a string which will be tokenized using the same tokenizer used for the index column, or as an array of already processed tokens to which no tokenization will be applied prior to searching. See the function documentation for more info. @@ -476,7 +476,7 @@ SELECT count() FROM table WHERE hasAllTokens(comment, ['clickhouse', 'olap']); #### `hasPhrase` {#functions-example-hasphrase} -Function [hasPhrase](/reference/functions/regular-functions/string-search-functions#hasPhrase) matches against a phrase: all tokens must appear consecutively and in the same order as in the search string. +Function [hasPhrase](/core/reference/functions/regular-functions/string-search-functions#hasPhrase) matches against a phrase: all tokens must appear consecutively and in the same order as in the search string. Unlike `hasAllTokens`, which only requires all tokens to be present somewhere, `hasPhrase` requires them to appear as a consecutive sequence. The search phrase is tokenized using the same tokenizer configured for the index column. @@ -494,7 +494,7 @@ SELECT count() FROM table WHERE hasPhrase(comment, 'clickhouse olap'); #### `has` {#functions-example-has} -Array function [has](/reference/functions/regular-functions/array-functions#has) matches against a single token in the array of strings. +Array function [has](/core/reference/functions/regular-functions/array-functions#has) matches against a single token in the array of strings. Example: @@ -504,7 +504,7 @@ SELECT count() FROM table WHERE has(array, 'clickhouse'); #### `hasAny` and `hasAll` {#functions-example-hasany-hasall} -Array functions [hasAny](/reference/functions/regular-functions/array-functions#hasAny) and [hasAll](/reference/functions/regular-functions/array-functions#hasAll) test whether the indexed array column contains any or all of a constant set of needle strings. +Array functions [hasAny](/core/reference/functions/regular-functions/array-functions#hasAny) and [hasAll](/core/reference/functions/regular-functions/array-functions#hasAll) test whether the indexed array column contains any or all of a constant set of needle strings. Example: @@ -515,7 +515,7 @@ SELECT count() FROM table WHERE hasAll(tags, ['clickhouse', 'olap']); #### `mapContains` {#functions-example-mapcontains} -Function [mapContains](/reference/functions/regular-functions/tuple-map-functions#mapContainsKey) (an alias of `mapContainsKey`) matches against tokens extracted from the searched string in the keys of a map. +Function [mapContains](/core/reference/functions/regular-functions/tuple-map-functions#mapContainsKey) (an alias of `mapContainsKey`) matches against tokens extracted from the searched string in the keys of a map. The behaviour is similar to the `equals` function with a `String` column. The text index is only used if it was created on a `mapKeys(map)` expression. @@ -529,7 +529,7 @@ SELECT count() FROM table WHERE mapContains(map, 'clickhouse'); #### `mapContainsValue` {#functions-example-mapcontainsvalue} -Function [mapContainsValue](/reference/functions/regular-functions/tuple-map-functions#mapContainsValue) matches against tokens extracted from the searched string in the values of a map. +Function [mapContainsValue](/core/reference/functions/regular-functions/tuple-map-functions#mapContainsValue) matches against tokens extracted from the searched string in the values of a map. The behaviour is similar to the `equals` function with a `String` column. The text index is only used if it was created on a `mapValues(map)` expression. @@ -541,7 +541,7 @@ SELECT count() FROM table WHERE mapContainsValue(map, 'clickhouse'); #### `mapContainsKeyLike` and `mapContainsValueLike` {#functions-example-mapcontainslike} -The functions [mapContainsKeyLike](/reference/functions/regular-functions/tuple-map-functions#mapContainsKeyLike) and [mapContainsValueLike](/reference/functions/regular-functions/tuple-map-functions#mapContainsValueLike) match a pattern against all keys or values (respectively) of a map. +The functions [mapContainsKeyLike](/core/reference/functions/regular-functions/tuple-map-functions#mapContainsKeyLike) and [mapContainsValueLike](/core/reference/functions/regular-functions/tuple-map-functions#mapContainsValueLike) match a pattern against all keys or values (respectively) of a map. Example: @@ -552,7 +552,7 @@ SELECT count() FROM table WHERE mapContainsValueLike(map, '% clickhouse %'); #### `operator[]` {#functions-example-access-operator} -Access [operator[]](/reference/operators#access-operators) can be used with the text index to filter out keys and values. The text index is only used if it is created on `mapKeys(map)` or `mapValues(map)` expressions, or both. +Access [operator[]](/core/reference/operators#access-operators) can be used with the text index to filter out keys and values. The text index is only used if it is created on `mapKeys(map)` or `mapValues(map)` expressions, or both. Example: @@ -615,7 +615,7 @@ ENGINE = MergeTree ORDER BY (timestamp); ``` -Without a text index, searching through [Map](/reference/data-types/map) data requires full table scans: +Without a text index, searching through [Map](/core/reference/data-types/map) data requires full table scans: ```sql -- Finds all logs with rate limiting data: @@ -627,15 +627,15 @@ SELECT * FROM logs WHERE has(mapValues(attributes), '192.168.1.1'); -- slow full As log volume grows, these queries become slow. -The solution is creating a text index for the [Map](/reference/data-types/map) keys and values. -Use [mapKeys](/reference/functions/regular-functions/tuple-map-functions#mapKeys) to create a text index when you need to find logs by field names or attribute types: +The solution is creating a text index for the [Map](/core/reference/data-types/map) keys and values. +Use [mapKeys](/core/reference/functions/regular-functions/tuple-map-functions#mapKeys) to create a text index when you need to find logs by field names or attribute types: ```sql ALTER TABLE logs ADD INDEX attributes_keys_idx mapKeys(attributes) TYPE text(tokenizer = array); ALTER TABLE posts MATERIALIZE INDEX attributes_keys_idx; ``` -Use [mapValues](/reference/functions/regular-functions/tuple-map-functions#mapValues) to create a text index when you need to search within the actual content of attributes: +Use [mapValues](/core/reference/functions/regular-functions/tuple-map-functions#mapValues) to create a text index when you need to search within the actual content of attributes: ```sql ALTER TABLE logs ADD INDEX attributes_vals_idx mapValues(attributes) TYPE text(tokenizer = array); @@ -660,8 +660,8 @@ SELECT * FROM logs WHERE mapContainsValueLike(attributes, '% error %'); -- fast Text indexes can be used with `JSON` columns in three ways: 1. **Indexes on specific subcolumns** — create a text index on a known JSON path, just like on a regular column. This indexes the *values* at that path. -2. **Path-based indexes with [JSONAllPaths](/reference/functions/regular-functions/json-functions#JSONAllPaths)** — indexes *all paths* present in each granule to skip granules that cannot contain the queried path. Similar to `Map` columns. -3. **Value-based indexes with [JSONAllValues](/reference/functions/regular-functions/json-functions#JSONAllValues)** — indexes *all values* across all JSON paths to accelerate full-text search on any JSON subcolumn with a single index. +2. **Path-based indexes with [JSONAllPaths](/core/reference/functions/regular-functions/json-functions#JSONAllPaths)** — indexes *all paths* present in each granule to skip granules that cannot contain the queried path. Similar to `Map` columns. +3. **Value-based indexes with [JSONAllValues](/core/reference/functions/regular-functions/json-functions#JSONAllValues)** — indexes *all values* across all JSON paths to accelerate full-text search on any JSON subcolumn with a single index. #### Indexes on specific subcolumns {#json-indexes-on-subcolumns} @@ -725,7 +725,7 @@ EXPLAIN indexes = 1 SELECT * FROM sensor_data WHERE data.location::String = 'roo #### Path-based indexes with JSONAllPaths {#json-indexes-jsonallpaths} -Similar to `Map` columns, text indexes can be created on [JSON](/reference/data-types/newjson) columns using [`JSONAllPaths`](/reference/functions/regular-functions/json-functions#JSONAllPaths). +Similar to `Map` columns, text indexes can be created on [JSON](/core/reference/data-types/newjson) columns using [`JSONAllPaths`](/core/reference/functions/regular-functions/json-functions#JSONAllPaths). The index stores the set of JSON paths present in each granule and uses them to skip granules where a queried path is absent. Example index definition: @@ -803,7 +803,7 @@ EXPLAIN indexes = 1 SELECT * FROM events WHERE data.user.name IS NOT NULL; #### Value-based indexes with JSONAllValues {#json-indexes-jsonallvalues} -Text indexes can be used to accelerate searches on [JSON](/reference/data-types/newjson) columns via function [`JSONAllValues`](/reference/functions/regular-functions/json-functions#JSONAllValues). +Text indexes can be used to accelerate searches on [JSON](/core/reference/data-types/newjson) columns via function [`JSONAllValues`](/core/reference/functions/regular-functions/json-functions#JSONAllValues). `JSONAllValues` returns all values from a JSON column as `Array(String)`. Values of non-string datatypes (e.g. integers and arrays) are converted to their text representation. @@ -921,8 +921,8 @@ The direct read optimization answers the query exclusively using the text index Text index lookups read relatively little data and are therefore much faster than usual skip indexes in ClickHouse (which do a skip index lookup, followed by loading and filtering remaining granules). Direct read is controlled by two settings: -- Setting [query_plan_direct_read_from_text_index](/reference/settings/session-settings#query_plan_direct_read_from_text_index) (true by default) which specifies if direct read is generally enabled. -- Setting [use_skip_indexes_on_data_read](/reference/settings/session-settings#use_skip_indexes_on_data_read) was a prerequisite for direct read in ClickHouse versions < 26.4. +- Setting [query_plan_direct_read_from_text_index](/core/reference/settings/session-settings#query_plan_direct_read_from_text_index) (true by default) which specifies if direct read is generally enabled. +- Setting [use_skip_indexes_on_data_read](/core/reference/settings/session-settings#use_skip_indexes_on_data_read) was a prerequisite for direct read in ClickHouse versions < 26.4. **Supported functions** @@ -991,7 +991,7 @@ Supported functions are: `like`, `startsWith`, `endsWith`, `equals`, `has`, `has The additional filter can provide additional selectivity to restrict the result set in combination with other filters further, helping to reduce the amount of data read from other columns. -Direct read as a hint is controlled by setting [query_plan_text_index_add_hint](/reference/settings/session-settings#query_plan_text_index_add_hint) (enabled by default). +Direct read as a hint is controlled by setting [query_plan_text_index_add_hint](/core/reference/settings/session-settings#query_plan_text_index_add_hint) (enabled by default). Example of query without hint: @@ -1031,7 +1031,7 @@ Prewhere filter column: and(__text_index_idx_col_like_d306f7c9c95238594618ac23eb ``` In the second EXPLAIN PLAN output, you can see that an additional conjunct (`__text_index_...`) has been added to the filter condition. -Thanks to the [PREWHERE](/reference/statements/select/prewhere) optimization, the filter condition is broken down into three separate conjuncts, which are applied in order of increasing computational complexity. +Thanks to the [PREWHERE](/core/reference/statements/select/prewhere) optimization, the filter condition is broken down into three separate conjuncts, which are applied in order of increasing computational complexity. For this query, the application order is `__text_index_...`, then `greaterOrEquals(...)`, and finally `like(...)`. This ordering enables skipping even more data granules than the granules skipped by the text index and the original filter, before reading the heavy columns used in the query after `WHERE` clause further reducing the amount of data to read. @@ -1042,11 +1042,11 @@ When a LIKE/ILIKE query pattern is `%%` When the optimization is enabled, LIKE/ILIKE queries should be significantly faster than a full-table scan. However, when the pattern matches most dictionary tokens, the performance can be worse compared to a full-table scan. Luckily, there is a fallback mechanism to prevent that. The optimization is controlled by a setting: -- [use_text_index_like_evaluation_by_dictionary_scan](/reference/settings/session-settings#use_text_index_like_evaluation_by_dictionary_scan) +- [use_text_index_like_evaluation_by_dictionary_scan](/core/reference/settings/session-settings#use_text_index_like_evaluation_by_dictionary_scan) The fallback mechanism is controlled by two settings: -- [text_index_like_min_pattern_length](/reference/settings/session-settings#text_index_like_min_pattern_length) -- [text_index_like_max_postings_to_read](/reference/settings/session-settings#text_index_like_max_postings_to_read) +- [text_index_like_min_pattern_length](/core/reference/settings/session-settings#text_index_like_min_pattern_length) +- [text_index_like_max_postings_to_read](/core/reference/settings/session-settings#text_index_like_max_postings_to_read) This optimization supports only functions `like` and `ilike`. @@ -1054,10 +1054,10 @@ This optimization supports only functions `like` and `ilike`. Different caches are available to buffer parts of the text index in memory (see section [Implementation Details](#implementation)): Currently, there are caches for the deserialized headers, tokens, and posting lists of the text index to reduce I/O. -They can be enabled via settings [use_text_index_header_cache](/reference/settings/session-settings#use_text_index_header_cache), [use_text_index_tokens_cache](/reference/settings/session-settings#use_text_index_tokens_cache), and [use_text_index_postings_cache](/reference/settings/session-settings#use_text_index_postings_cache). +They can be enabled via settings [use_text_index_header_cache](/core/reference/settings/session-settings#use_text_index_header_cache), [use_text_index_tokens_cache](/core/reference/settings/session-settings#use_text_index_tokens_cache), and [use_text_index_postings_cache](/core/reference/settings/session-settings#use_text_index_postings_cache). By default, all caches are disabled. -To clear the caches, use statement [SYSTEM CLEAR TEXT INDEX CACHES](/reference/statements/system#drop-text-index-caches) +To clear the caches, use statement [SYSTEM CLEAR TEXT INDEX CACHES](/core/reference/statements/system#drop-text-index-caches) Please refer the following server settings to configure the caches. @@ -1065,28 +1065,28 @@ Please refer the following server settings to configure the caches. | Setting | Description | |----------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------| -| [text_index_tokens_cache_policy](/reference/settings/server-settings/settings#text_index_tokens_cache_policy) | Text index tokens cache policy name. | -| [text_index_tokens_cache_size](/reference/settings/server-settings/settings#text_index_tokens_cache_size) | Maximum cache size in bytes. | -| [text_index_tokens_cache_max_entries](/reference/settings/server-settings/settings#text_index_tokens_cache_max_entries) | Maximum number of deserialized tokens in cache. | -| [text_index_tokens_cache_size_ratio](/reference/settings/server-settings/settings#text_index_tokens_cache_size_ratio) | The size of the protected queue in the text index tokens cache relative to the cache\'s total size. | +| [text_index_tokens_cache_policy](/core/reference/settings/server-settings/settings#text_index_tokens_cache_policy) | Text index tokens cache policy name. | +| [text_index_tokens_cache_size](/core/reference/settings/server-settings/settings#text_index_tokens_cache_size) | Maximum cache size in bytes. | +| [text_index_tokens_cache_max_entries](/core/reference/settings/server-settings/settings#text_index_tokens_cache_max_entries) | Maximum number of deserialized tokens in cache. | +| [text_index_tokens_cache_size_ratio](/core/reference/settings/server-settings/settings#text_index_tokens_cache_size_ratio) | The size of the protected queue in the text index tokens cache relative to the cache\'s total size. | #### Header cache settings {#caching-header} | Setting | Description | |--------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------| -| [text_index_header_cache_policy](/reference/settings/server-settings/settings#text_index_header_cache_policy) | Text index header cache policy name. | -| [text_index_header_cache_size](/reference/settings/server-settings/settings#text_index_header_cache_size) | Maximum cache size in bytes. | -| [text_index_header_cache_max_entries](/reference/settings/server-settings/settings#text_index_header_cache_max_entries) | Maximum number of deserialized headers in cache. | -| [text_index_header_cache_size_ratio](/reference/settings/server-settings/settings#text_index_header_cache_size_ratio) | The size of the protected queue in the text index header cache relative to the cache\'s total size. | +| [text_index_header_cache_policy](/core/reference/settings/server-settings/settings#text_index_header_cache_policy) | Text index header cache policy name. | +| [text_index_header_cache_size](/core/reference/settings/server-settings/settings#text_index_header_cache_size) | Maximum cache size in bytes. | +| [text_index_header_cache_max_entries](/core/reference/settings/server-settings/settings#text_index_header_cache_max_entries) | Maximum number of deserialized headers in cache. | +| [text_index_header_cache_size_ratio](/core/reference/settings/server-settings/settings#text_index_header_cache_size_ratio) | The size of the protected queue in the text index header cache relative to the cache\'s total size. | #### Posting lists cache settings {#caching-posting-lists} | Setting | Description | |---------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------| -| [text_index_postings_cache_policy](/reference/settings/server-settings/settings#text_index_postings_cache_policy) | Text index postings cache policy name. | -| [text_index_postings_cache_size](/reference/settings/server-settings/settings#text_index_postings_cache_size) | Maximum cache size in bytes. | -| [text_index_postings_cache_max_entries](/reference/settings/server-settings/settings#text_index_postings_cache_max_entries) | Maximum number of deserialized postings in cache. | -| [text_index_postings_cache_size_ratio](/reference/settings/server-settings/settings#text_index_postings_cache_size_ratio) | The size of the protected queue in the text index postings cache relative to the cache\'s total size. | +| [text_index_postings_cache_policy](/core/reference/settings/server-settings/settings#text_index_postings_cache_policy) | Text index postings cache policy name. | +| [text_index_postings_cache_size](/core/reference/settings/server-settings/settings#text_index_postings_cache_size) | Maximum cache size in bytes. | +| [text_index_postings_cache_max_entries](/core/reference/settings/server-settings/settings#text_index_postings_cache_max_entries) | Maximum number of deserialized postings in cache. | +| [text_index_postings_cache_size_ratio](/core/reference/settings/server-settings/settings#text_index_postings_cache_size_ratio) | The size of the protected queue in the text index postings cache relative to the cache\'s total size. | ## Limitations {#limitations} @@ -1104,7 +1104,7 @@ String predicates can be sped up using text indexes and bloom-filter-based based - Are based on probabilistic data structures which may produce false positives. - Are only able to answer set membership questions, i.e. the column may contain token X vs. definitely does not contain X. - Store granule-level information to enable skipping coarse ranges during query execution. -- Are hard to tune properly (see [here](/reference/engines/table-engines/mergetree-family/mergetree#n-gram-bloom-filter) for an example). +- Are hard to tune properly (see [here](/core/reference/engines/table-engines/mergetree-family/mergetree#n-gram-bloom-filter) for an example). - Are rather compact (a few kilobytes or megabytes per part). **Text indexes** @@ -1146,7 +1146,7 @@ A dictionary blocks file (.dct) consists all the dictionary blocks of all index The index header file contains for each dictionary block the block's first token and its relative offset in the dictionary blocks file. -This sparse index structure is similar to ClickHouse's [sparse primary key index](/guides/cloud-oss/data-modelling/sparse-primary-indexes)). +This sparse index structure is similar to ClickHouse's [sparse primary key index](/core/guides/clickhouse/data-modelling/sparse-primary-indexes)). **Postings lists file (.pst)** @@ -1159,12 +1159,12 @@ If the posting list is larger than `posting_list_block_size`, it is split into m When data parts are merged, the text index does not need to be rebuilt from scratch; instead, it can be merged efficiently in a separate step of the merge process. During this step, the sorted dictionaries of the text indexes of each input part are read and combined into a new unified dictionary. The row numbers in the postings lists are also recalculated to reflect their new positions in the merged data part, using a mapping of old to new row numbers that is created during the initial merge phase. -This method of merging text indexes is similar to how [projections](/reference/statements/alter/projection#projection-indexes) with `_part_offset` column are merged. +This method of merging text indexes is similar to how [projections](/core/reference/statements/alter/projection#projection-indexes) with `_part_offset` column are merged. If index is not materialized in the source part, it is built, written into a temporary file and then merged together with indexes from the other parts and from other temporary index files. **Debugging** -Table function [mergeTreeTextIndex](/reference/functions/table-functions/mergeTreeTextIndex) can be used to introspect text indexes. +Table function [mergeTreeTextIndex](/core/reference/functions/table-functions/mergeTreeTextIndex) can be used to introspect text indexes. ## Example: Hackernews dataset {#hacker-news-dataset} diff --git a/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree.mdx b/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree.mdx similarity index 90% rename from reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree.mdx rename to core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree.mdx index 9b5c8b13..99e2ead7 100644 --- a/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree.mdx +++ b/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree.mdx @@ -14,7 +14,7 @@ This engine: See the section [Collapsing](#table_engines_versionedcollapsingmergetree) for details. -The engine inherits from [MergeTree](/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree) and adds the logic for collapsing rows to the algorithm for merging data parts. `VersionedCollapsingMergeTree` serves the same purpose as [CollapsingMergeTree](/reference/engines/table-engines/mergetree-family/collapsingmergetree) but uses a different collapsing algorithm that allows inserting the data in any order with multiple threads. In particular, the `Version` column helps to collapse the rows properly even if they are inserted in the wrong order. In contrast, `CollapsingMergeTree` allows only strictly consecutive insertion. +The engine inherits from [MergeTree](/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree) and adds the logic for collapsing rows to the algorithm for merging data parts. `VersionedCollapsingMergeTree` serves the same purpose as [CollapsingMergeTree](/core/reference/engines/table-engines/mergetree-family/collapsingmergetree) but uses a different collapsing algorithm that allows inserting the data in any order with multiple threads. In particular, the `Version` column helps to collapse the rows properly even if they are inserted in the wrong order. In contrast, `CollapsingMergeTree` allows only strictly consecutive insertion. ## Creating a table {#creating-a-table} @@ -31,7 +31,7 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] [SETTINGS name=value, ...] ``` -For a description of query parameters, see the [query description](/reference/statements/create/table). +For a description of query parameters, see the [query description](/core/reference/statements/create/table). ### Engine parameters {#engine-parameters} @@ -41,12 +41,12 @@ VersionedCollapsingMergeTree(sign, version) | Parameter | Description | Type | |-----------|----------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `sign` | Name of the column with the type of row: `1` is a "state" row, `-1` is a "cancel" row. | [`Int8`](/reference/data-types/int-uint) | -| `version` | Name of the column with the version of the object state. | [`Int*`](/reference/data-types/int-uint), [`UInt*`](/reference/data-types/int-uint), [`Date`](/reference/data-types/date), [`Date32`](/reference/data-types/date32), [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) | +| `sign` | Name of the column with the type of row: `1` is a "state" row, `-1` is a "cancel" row. | [`Int8`](/core/reference/data-types/int-uint) | +| `version` | Name of the column with the version of the object state. | [`Int*`](/core/reference/data-types/int-uint), [`UInt*`](/core/reference/data-types/int-uint), [`Date`](/core/reference/data-types/date), [`Date32`](/core/reference/data-types/date32), [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) | ### Query clauses {#query-clauses} -When creating a `VersionedCollapsingMergeTree` table, the same [clauses](/reference/engines/table-engines/mergetree-family/mergetree) are required as when creating a `MergeTree` table. +When creating a `VersionedCollapsingMergeTree` table, the same [clauses](/core/reference/engines/table-engines/mergetree-family/mergetree) are required as when creating a `MergeTree` table.
    diff --git a/reference/engines/table-engines/special/alias.mdx b/core/reference/engines/table-engines/special/alias.mdx similarity index 98% rename from reference/engines/table-engines/special/alias.mdx rename to core/reference/engines/table-engines/special/alias.mdx index 1bb19536..ecfa5ea3 100644 --- a/reference/engines/table-engines/special/alias.mdx +++ b/core/reference/engines/table-engines/special/alias.mdx @@ -15,7 +15,7 @@ The `Alias` engine creates a proxy to another table. All read and write operatio This is an experimental feature that may change in backwards-incompatible ways in the future releases. Enable usage of the Alias table engine -with [allow_experimental_alias_table_engine](/reference/settings/session-settings#allow_experimental_alias_table_engine) setting. +with [allow_experimental_alias_table_engine](/core/reference/settings/session-settings#allow_experimental_alias_table_engine) setting. Input the command `set allow_experimental_alias_table_engine = 1`. diff --git a/reference/engines/table-engines/special/buffer.mdx b/core/reference/engines/table-engines/special/buffer.mdx similarity index 98% rename from reference/engines/table-engines/special/buffer.mdx rename to core/reference/engines/table-engines/special/buffer.mdx index 2b583885..bc2e4823 100644 --- a/reference/engines/table-engines/special/buffer.mdx +++ b/core/reference/engines/table-engines/special/buffer.mdx @@ -11,7 +11,7 @@ doc_type: 'reference' Buffers the data to write in RAM, periodically flushing it to another table. During the read operation, data is read from the buffer and the other table simultaneously. -A recommended alternative to the Buffer Table Engine is enabling [asynchronous inserts](/concepts/operations/insert/asyncinserts). +A recommended alternative to the Buffer Table Engine is enabling [asynchronous inserts](/core/concepts/features/operations/insert/asyncinserts). ```sql diff --git a/reference/engines/table-engines/special/dictionary.mdx b/core/reference/engines/table-engines/special/dictionary.mdx similarity index 88% rename from reference/engines/table-engines/special/dictionary.mdx rename to core/reference/engines/table-engines/special/dictionary.mdx index 1d93b5ef..a4a9981c 100644 --- a/reference/engines/table-engines/special/dictionary.mdx +++ b/core/reference/engines/table-engines/special/dictionary.mdx @@ -7,7 +7,7 @@ title: 'Dictionary table engine' doc_type: 'reference' --- -The `Dictionary` engine displays the [dictionary](/reference/statements/create/dictionary) data as a ClickHouse table. +The `Dictionary` engine displays the [dictionary](/core/reference/statements/create/dictionary) data as a ClickHouse table. ## Example {#example} @@ -66,7 +66,7 @@ WHERE name = 'products' └──────────┴──────┴────────┴─────────────────┴─────────────────┴─────────────────┴───────────────┴─────────────────┘ ``` -You can use the [dictGet\*](/reference/functions/regular-functions/ext-dict-functions) functions to get the dictionary data in this format. +You can use the [dictGet\*](/core/reference/functions/regular-functions/ext-dict-functions) functions to get the dictionary data in this format. This view isn't helpful when you need to get raw data, or when performing a `JOIN` operation. For these cases, you can use the `Dictionary` engine, which displays the dictionary data in a table. @@ -98,4 +98,4 @@ SELECT * FROM products LIMIT 1; **See Also** -- [Dictionary function](/reference/functions/table-functions/dictionary) +- [Dictionary function](/core/reference/functions/table-functions/dictionary) diff --git a/reference/engines/table-engines/special/distributed.mdx b/core/reference/engines/table-engines/special/distributed.mdx similarity index 83% rename from reference/engines/table-engines/special/distributed.mdx rename to core/reference/engines/table-engines/special/distributed.mdx index 513893fd..0fda061d 100644 --- a/reference/engines/table-engines/special/distributed.mdx +++ b/core/reference/engines/table-engines/special/distributed.mdx @@ -12,7 +12,7 @@ doc_type: 'reference' **Distributed engine in Cloud** -To create a distributed table engine in ClickHouse Cloud, you can use the [`remote` and `remoteSecure`](/reference/functions/table-functions/remote) table functions. +To create a distributed table engine in ClickHouse Cloud, you can use the [`remote` and `remoteSecure`](/core/reference/functions/table-functions/remote) table functions. The `Distributed(...)` syntax cannot be used in ClickHouse Cloud. @@ -51,8 +51,8 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] AS [db2.]name2 **See Also** -- [distributed_foreground_insert](/reference/settings/session-settings#distributed_foreground_insert) setting -- [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes) for the examples +- [distributed_foreground_insert](/core/reference/settings/session-settings#distributed_foreground_insert) setting +- [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes) for the examples ### Distributed settings {#distributed-settings} | Setting | Description | Default value | @@ -63,10 +63,10 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] AS [db2.]name2 | `bytes_to_throw_insert` | If more than this number of compressed bytes will be pending for background `INSERT`, an exception will be thrown. `0` - do not throw. | `0` | | `bytes_to_delay_insert` | If more than this number of compressed bytes will be pending for background INSERT, the query will be delayed. 0 - do not delay. | `0` | | `max_delay_to_insert` | Max delay of inserting data into Distributed table in seconds, if there are a lot of pending bytes for background send. | `60` | -| `background_insert_batch` | The same as [`distributed_background_insert_batch`](/reference/settings/session-settings#distributed_background_insert_batch) | `0` | -| `background_insert_split_batch_on_failure` | The same as [`distributed_background_insert_split_batch_on_failure`](/reference/settings/session-settings#distributed_background_insert_split_batch_on_failure) | `0` | -| `background_insert_sleep_time_ms` | The same as [`distributed_background_insert_sleep_time_ms`](/reference/settings/session-settings#distributed_background_insert_sleep_time_ms) | `0` | -| `background_insert_max_sleep_time_ms` | The same as [`distributed_background_insert_max_sleep_time_ms`](/reference/settings/session-settings#distributed_background_insert_max_sleep_time_ms) | `0` | +| `background_insert_batch` | The same as [`distributed_background_insert_batch`](/core/reference/settings/session-settings#distributed_background_insert_batch) | `0` | +| `background_insert_split_batch_on_failure` | The same as [`distributed_background_insert_split_batch_on_failure`](/core/reference/settings/session-settings#distributed_background_insert_split_batch_on_failure) | `0` | +| `background_insert_sleep_time_ms` | The same as [`distributed_background_insert_sleep_time_ms`](/core/reference/settings/session-settings#distributed_background_insert_sleep_time_ms) | `0` | +| `background_insert_max_sleep_time_ms` | The same as [`distributed_background_insert_max_sleep_time_ms`](/core/reference/settings/session-settings#distributed_background_insert_max_sleep_time_ms) | `0` | | `flush_on_detach` | Flush data to remote nodes on `DETACH`/`DROP`/server shutdown. | `true` | @@ -78,8 +78,8 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] AS [db2.]name2 For **Insert limit settings** (`..._insert`) see also: -- [`distributed_foreground_insert`](/reference/settings/session-settings#distributed_foreground_insert) setting -- [`prefer_localhost_replica`](/reference/settings/session-settings#prefer_localhost_replica) setting +- [`distributed_foreground_insert`](/core/reference/settings/session-settings#distributed_foreground_insert) setting +- [`prefer_localhost_replica`](/core/reference/settings/session-settings#prefer_localhost_replica) setting - `bytes_to_throw_insert` handled before `bytes_to_delay_insert`, so you should not set it to the value less then `bytes_to_delay_insert` @@ -99,7 +99,7 @@ Instead of the database name, you can use a constant expression that returns a s ## Clusters {#distributed-clusters} -Clusters are configured in the [server configuration file](/concepts/features/configuration/server-config/configuration-files): +Clusters are configured in the [server configuration file](/core/concepts/features/configuration/server-config/configuration-files): ```xml @@ -165,13 +165,13 @@ The parameters `host`, `port`, and optionally `user`, `password`, `secure`, `com |---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------| | `host` | The address of the remote server. You can use either the domain or the IPv4 or IPv6 address. If you specify the domain, the server makes a DNS request when it starts, and the result is stored as long as the server is running. If the DNS request fails, the server does not start. If you change the DNS record, restart the server. | - | | `port` | The TCP port for messenger activity (`tcp_port` in the config, usually set to 9000). Not to be confused with `http_port`. | - | -| `user` | Name of the user for connecting to a remote server. This user must have access to connect to the specified server. Access is configured in the `users.xml` file. For more information, see the section [Access rights](/concepts/features/security/access-rights). | `default` | +| `user` | Name of the user for connecting to a remote server. This user must have access to connect to the specified server. Access is configured in the `users.xml` file. For more information, see the section [Access rights](/core/concepts/features/security/access-rights). | `default` | | `password` | The password for connecting to a remote server (not masked). | '' | | `secure` | Whether to use a secure SSL/TLS connection. Usually also requires specifying the port (the default secure port is `9440`). The server should listen on `9440` and be configured with correct certificates. | `false` | | `compression` | Use data compression. | `true` | | `bind_host` | The source address to use when connecting to the remote server from this node. IPv4 address only supported. Intended for advanced deployment use cases where setting the source IP address used by ClickHouse distributed queries is needed. | - | -When specifying replicas, one of the available replicas will be selected for each of the shards when reading. You can configure the algorithm for load balancing (the preference for which replica to access) – see the [load_balancing](/reference/settings/session-settings#load_balancing) setting. If the connection with the server is not established, there will be an attempt to connect with a short timeout. If the connection failed, the next replica will be selected, and so on for all the replicas. If the connection attempt failed for all the replicas, the attempt will be repeated the same way, several times. This works in favour of resiliency, but does not provide complete fault tolerance: a remote server might accept the connection, but might not work, or work poorly. +When specifying replicas, one of the available replicas will be selected for each of the shards when reading. You can configure the algorithm for load balancing (the preference for which replica to access) – see the [load_balancing](/core/reference/settings/session-settings#load_balancing) setting. If the connection with the server is not established, there will be an attempt to connect with a short timeout. If the connection failed, the next replica will be selected, and so on for all the replicas. If the connection attempt failed for all the replicas, the attempt will be repeated the same way, several times. This works in favour of resiliency, but does not provide complete fault tolerance: a remote server might accept the connection, but might not work, or work poorly. You can specify just one of the shards (in this case, query processing should be called remote, rather than distributed) or up to any number of shards. In each shard, you can specify from one to any number of replicas. You can specify a different number of replicas for each shard. @@ -181,7 +181,7 @@ To view your clusters, use the `system.clusters` table. The `Distributed` engine allows working with a cluster like a local server. However, the cluster's configuration cannot be specified dynamically, it has to be configured in the server config file. Usually, all servers in a cluster will have the same cluster config (though this is not required). Clusters from the config file are updated on the fly, without restarting the server. -If you need to send a query to an unknown set of shards and replicas each time, you do not need to create a `Distributed` table – use the `remote` table function instead. See the section [Table functions](/reference/functions/table-functions). +If you need to send a query to an unknown set of shards and replicas each time, you do not need to create a `Distributed` table – use the `remote` table function instead. See the section [Table functions](/core/reference/functions/table-functions). ## Writing data {#distributed-writing-data} @@ -208,7 +208,7 @@ You should be concerned about the sharding scheme in the following cases: - Queries are used that require joining data (`IN` or `JOIN`) by a specific key. If data is sharded by this key, you can use local `IN` or `JOIN` instead of `GLOBAL IN` or `GLOBAL JOIN`, which is much more efficient. - A large number of servers is used (hundreds or more) with a large number of small queries, for example, queries for data of individual clients (e.g. websites, advertisers, or partners). In order for the small queries to not affect the entire cluster, it makes sense to locate data for a single client on a single shard. Alternatively, you can set up bi-level sharding: divide the entire cluster into "layers", where a layer may consist of multiple shards. Data for a single client is located on a single layer, but shards can be added to a layer as necessary, and data is randomly distributed within them. `Distributed` tables are created for each layer, and a single shared distributed table is created for global queries. -Data is written in background. When inserted in the table, the data block is just written to the local file system. The data is sent to the remote servers in the background as soon as possible. The periodicity for sending data is managed by the [distributed_background_insert_sleep_time_ms](/reference/settings/session-settings#distributed_background_insert_sleep_time_ms) and [distributed_background_insert_max_sleep_time_ms](/reference/settings/session-settings#distributed_background_insert_max_sleep_time_ms) settings. The `Distributed` engine sends each file with inserted data separately, but you can enable batch sending of files with the [distributed_background_insert_batch](/reference/settings/session-settings#distributed_background_insert_batch) setting. This setting improves cluster performance by better utilizing local server and network resources. You should check whether data is sent successfully by checking the list of files (data waiting to be sent) in the table directory: `/var/lib/clickhouse/data/database/table/`. The number of threads performing background tasks can be set by [background_distributed_schedule_pool_size](/reference/settings/server-settings/settings#background_distributed_schedule_pool_size) setting. +Data is written in background. When inserted in the table, the data block is just written to the local file system. The data is sent to the remote servers in the background as soon as possible. The periodicity for sending data is managed by the [distributed_background_insert_sleep_time_ms](/core/reference/settings/session-settings#distributed_background_insert_sleep_time_ms) and [distributed_background_insert_max_sleep_time_ms](/core/reference/settings/session-settings#distributed_background_insert_max_sleep_time_ms) settings. The `Distributed` engine sends each file with inserted data separately, but you can enable batch sending of files with the [distributed_background_insert_batch](/core/reference/settings/session-settings#distributed_background_insert_batch) setting. This setting improves cluster performance by better utilizing local server and network resources. You should check whether data is sent successfully by checking the list of files (data waiting to be sent) in the table directory: `/var/lib/clickhouse/data/database/table/`. The number of threads performing background tasks can be set by [background_distributed_schedule_pool_size](/core/reference/settings/server-settings/settings#background_distributed_schedule_pool_size) setting. If the server ceased to exist or had a rough restart (for example, due to a hardware failure) after an `INSERT` to a `Distributed` table, the inserted data might be lost. If a damaged data part is detected in the table directory, it is transferred to the `broken` subdirectory and no longer used. @@ -216,22 +216,22 @@ If the server ceased to exist or had a rough restart (for example, due to a hard When querying a `Distributed` table, `SELECT` queries are sent to all shards and work regardless of how data is distributed across the shards (they can be distributed completely randomly). When you add a new shard, you do not have to transfer old data into it. Instead, you can write new data to it by using a heavier weight – the data will be distributed slightly unevenly, but queries will work correctly and efficiently. -When the `max_parallel_replicas` option is enabled, query processing is parallelized across all replicas within a single shard. For more information, see the section [max_parallel_replicas](/reference/settings/session-settings#max_parallel_replicas). +When the `max_parallel_replicas` option is enabled, query processing is parallelized across all replicas within a single shard. For more information, see the section [max_parallel_replicas](/core/reference/settings/session-settings#max_parallel_replicas). -To learn more about how distributed `in` and `global in` queries are processed, refer to [this](/reference/statements/in#distributed-subqueries) documentation. +To learn more about how distributed `in` and `global in` queries are processed, refer to [this](/core/reference/statements/in#distributed-subqueries) documentation. ## Virtual columns {#virtual-columns} #### _Shard_num {#_shard_num} -`_shard_num` — Contains the `shard_num` value from the table `system.clusters`. Type: [UInt32](/reference/data-types/int-uint). +`_shard_num` — Contains the `shard_num` value from the table `system.clusters`. Type: [UInt32](/core/reference/data-types/int-uint). -Since [`remote`](/reference/functions/table-functions/remote) and [`cluster](../../../sql-reference/table-functions/cluster.md) table functions internally create temporary Distributed table, `_shard_num` is available there too. +Since [`remote`](/core/reference/functions/table-functions/remote) and [`cluster](../../../sql-reference/table-functions/cluster.md) table functions internally create temporary Distributed table, `_shard_num` is available there too. **See Also** -- [Virtual columns](/reference/engines/table-engines#table_engines-virtual_columns) description -- [`background_distributed_schedule_pool_size`](/reference/settings/server-settings/settings#background_distributed_schedule_pool_size) setting -- [`shardNum()`](/reference/functions/regular-functions/other-functions#shardNum) and [`shardCount()`](/reference/functions/regular-functions/other-functions#shardCount) functions +- [Virtual columns](/core/reference/engines/table-engines#table_engines-virtual_columns) description +- [`background_distributed_schedule_pool_size`](/core/reference/settings/server-settings/settings#background_distributed_schedule_pool_size) setting +- [`shardNum()`](/core/reference/functions/regular-functions/other-functions#shardNum) and [`shardCount()`](/core/reference/functions/regular-functions/other-functions#shardCount) functions diff --git a/reference/engines/table-engines/special/executable.mdx b/core/reference/engines/table-engines/special/executable.mdx similarity index 96% rename from reference/engines/table-engines/special/executable.mdx rename to core/reference/engines/table-engines/special/executable.mdx index 29634d7e..4b06dfe8 100644 --- a/reference/engines/table-engines/special/executable.mdx +++ b/core/reference/engines/table-engines/special/executable.mdx @@ -101,7 +101,7 @@ SELECT * FROM my_executable_table Users of the Hacker News website leave comments. Python contains a natural language processing toolkit (`nltk`) with a `SentimentIntensityAnalyzer` for determining if comments are positive, negative, or neutral - including assigning a value between -1 (a very negative comment) and 1 (a very positive comment). Let's create an `Executable` table that computes the sentiment of Hacker News comments using `nltk`. -This example uses the `hackernews` table described [here](/reference/engines/table-engines/mergetree-family/textindexes#hacker-news-dataset). The `hackernews` table includes an `id` column of type `UInt64` and a `String` column named `comment`. Let's start by defining the `Executable` table: +This example uses the `hackernews` table described [here](/core/reference/engines/table-engines/mergetree-family/textindexes#hacker-news-dataset). The `hackernews` table includes an `id` column of type `UInt64` and a `String` column named `comment`. Let's start by defining the `Executable` table: ```sql CREATE TABLE sentiment ( diff --git a/reference/engines/table-engines/special/external-data.mdx b/core/reference/engines/table-engines/special/external-data.mdx similarity index 100% rename from reference/engines/table-engines/special/external-data.mdx rename to core/reference/engines/table-engines/special/external-data.mdx diff --git a/reference/engines/table-engines/special/file.mdx b/core/reference/engines/table-engines/special/file.mdx similarity index 64% rename from reference/engines/table-engines/special/file.mdx rename to core/reference/engines/table-engines/special/file.mdx index f8822520..3e350477 100644 --- a/reference/engines/table-engines/special/file.mdx +++ b/core/reference/engines/table-engines/special/file.mdx @@ -7,7 +7,7 @@ title: 'File table engine' doc_type: 'reference' --- -The File table engine keeps the data in a file in one of the supported [file formats](/reference/formats#formats-overview) (`TabSeparated`, `Native`, etc.). +The File table engine keeps the data in a file in one of the supported [file formats](/core/reference/formats#formats-overview) (`TabSeparated`, `Native`, etc.). Usage scenarios: @@ -16,7 +16,7 @@ Usage scenarios: - Updating data in ClickHouse via editing a file on a disk. -This engine is not currently available in ClickHouse Cloud, please [use the S3 table function instead](/reference/functions/table-functions/s3). +This engine is not currently available in ClickHouse Cloud, please [use the S3 table function instead](/core/reference/functions/table-functions/s3). ## Usage in ClickHouse Server {#usage-in-clickhouse-server} @@ -28,13 +28,13 @@ File(Format) The `Format` parameter specifies one of the available file formats. To perform `SELECT` queries, the format must be supported for input, and to perform `INSERT` queries – for output. The available formats are listed in the -[Formats](/reference/formats#formats-overview) section. +[Formats](/core/reference/formats#formats-overview) section. -ClickHouse does not allow specifying filesystem path for `File`. It will use folder defined by [path](/reference/settings/server-settings/settings) setting in server configuration. +ClickHouse does not allow specifying filesystem path for `File`. It will use folder defined by [path](/core/reference/settings/server-settings/settings) setting in server configuration. When creating table using `File(Format)` it creates empty subdirectory in that folder. When data is written to that table, it's put into `data.Format` file in that subdirectory. -You may manually create this subfolder and file in server filesystem and then [ATTACH](/reference/statements/attach) it to table information with matching name, so you can query data from that file. +You may manually create this subfolder and file in server filesystem and then [ATTACH](/core/reference/statements/attach) it to table information with matching name, so you can query data from that file. Be careful with this functionality, because ClickHouse does not keep track of external changes to such files. The result of simultaneous writes via ClickHouse and outside of ClickHouse is undefined. @@ -73,7 +73,7 @@ SELECT * FROM file_engine_table ## Usage in ClickHouse-local {#usage-in-clickhouse-local} -In [clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local) File engine accepts file path in addition to `Format`. Default input/output streams can be specified using numeric or human-readable names like `0` or `stdin`, `1` or `stdout`. It is possible to read and write compressed files based on an additional engine parameter or file extension (`gz`, `br` or `xz`). +In [clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local) File engine accepts file path in addition to `Format`. Default input/output streams can be specified using numeric or human-readable names like `0` or `stdin`, `1` or `stdout`. It is possible to read and write compressed files based on an additional engine parameter or file extension (`gz`, `br` or `xz`). **Example:** @@ -96,7 +96,7 @@ $ echo -e "1,2\n3,4" | clickhouse-local -q "CREATE TABLE table (a Int64, b Int64 `PARTITION BY` — Optional. It is possible to create separate files by partitioning the data on a partition key. In most cases, you don't need a partition key, and if it is needed you generally don't need a partition key more granular than by month. Partitioning does not speed up queries (in contrast to the ORDER BY expression). You should never use too granular partitioning. Don't partition your data by client identifiers or names (instead, make client identifier or name the first column in the ORDER BY expression). -For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](/reference/data-types/date). The partition names here have the `"YYYYMM"` format. +For partitioning by month, use the `toYYYYMM(date_column)` expression, where `date_column` is a column with a date of the type [Date](/core/reference/data-types/date). The partition names here have the `"YYYYMM"` format. ## Virtual columns {#virtual-columns} @@ -107,8 +107,8 @@ For partitioning by month, use the `toYYYYMM(date_column)` expression, where `da ## Settings {#settings} -- [engine_file_empty_if_not_exists](/reference/settings/session-settings#engine_file_empty_if_not_exists) - allows to select empty data from a file that doesn't exist. Disabled by default. -- [engine_file_truncate_on_insert](/reference/settings/session-settings#engine_file_truncate_on_insert) - allows to truncate file before insert into it. Disabled by default. -- [engine_file_allow_create_multiple_files](/reference/settings/session-settings#engine_file_allow_create_multiple_files) - allows to create a new file on each insert if format has suffix. Disabled by default. -- [engine_file_skip_empty_files](/reference/settings/session-settings#engine_file_skip_empty_files) - allows to skip empty files while reading. Disabled by default. -- [storage_file_read_method](/reference/settings/session-settings#engine_file_empty_if_not_exists) - method of reading data from storage file, one of: `read`, `pread`, `mmap`. The mmap method does not apply to clickhouse-server (it's intended for clickhouse-local). Default value: `pread` for clickhouse-server, `mmap` for clickhouse-local. +- [engine_file_empty_if_not_exists](/core/reference/settings/session-settings#engine_file_empty_if_not_exists) - allows to select empty data from a file that doesn't exist. Disabled by default. +- [engine_file_truncate_on_insert](/core/reference/settings/session-settings#engine_file_truncate_on_insert) - allows to truncate file before insert into it. Disabled by default. +- [engine_file_allow_create_multiple_files](/core/reference/settings/session-settings#engine_file_allow_create_multiple_files) - allows to create a new file on each insert if format has suffix. Disabled by default. +- [engine_file_skip_empty_files](/core/reference/settings/session-settings#engine_file_skip_empty_files) - allows to skip empty files while reading. Disabled by default. +- [storage_file_read_method](/core/reference/settings/session-settings#engine_file_empty_if_not_exists) - method of reading data from storage file, one of: `read`, `pread`, `mmap`. The mmap method does not apply to clickhouse-server (it's intended for clickhouse-local). Default value: `pread` for clickhouse-server, `mmap` for clickhouse-local. diff --git a/reference/engines/table-engines/special/filelog.mdx b/core/reference/engines/table-engines/special/filelog.mdx similarity index 92% rename from reference/engines/table-engines/special/filelog.mdx rename to core/reference/engines/table-engines/special/filelog.mdx index 5be2ac88..ab102444 100644 --- a/reference/engines/table-engines/special/filelog.mdx +++ b/core/reference/engines/table-engines/special/filelog.mdx @@ -40,9 +40,9 @@ Engine arguments: Optional parameters: -- `poll_timeout_ms` - Timeout for single poll from log file. Default: [stream_poll_timeout_ms](/reference/settings/session-settings#stream_poll_timeout_ms). -- `poll_max_batch_size` — Maximum amount of records to be polled in a single poll. Default: [max_block_size](/reference/settings/session-settings#max_block_size). -- `max_block_size` — The maximum batch size (in records) for poll. Default: [max_insert_block_size](/reference/settings/session-settings#max_insert_block_size). +- `poll_timeout_ms` - Timeout for single poll from log file. Default: [stream_poll_timeout_ms](/core/reference/settings/session-settings#stream_poll_timeout_ms). +- `poll_max_batch_size` — Maximum amount of records to be polled in a single poll. Default: [max_block_size](/core/reference/settings/session-settings#max_block_size). +- `max_block_size` — The maximum batch size (in records) for poll. Default: [max_insert_block_size](/core/reference/settings/session-settings#max_insert_block_size). - `max_threads` - Number of max threads to parse files, default is 0, which means the number will be max(1, physical_cpu_cores / 4). - `poll_directory_watch_events_backoff_init` - The initial sleep value for watch directory thread. Default: `500`. - `poll_directory_watch_events_backoff_max` - The max sleep value for watch directory thread. Default: `32000`. @@ -53,7 +53,7 @@ Optional parameters: The delivered records are tracked automatically, so each record in a log file is only counted once. -`SELECT` is not particularly useful for reading records (except for debugging), because each record can be read only once. It is more practical to create real-time threads using [materialized views](/reference/statements/create/view). To do this: +`SELECT` is not particularly useful for reading records (except for debugging), because each record can be read only once. It is more practical to create real-time threads using [materialized views](/core/reference/statements/create/view). To do this: 1. Use the engine to create a FileLog table and consider it a data stream. 2. Create a table with the desired structure. diff --git a/reference/engines/table-engines/special/generate.mdx b/core/reference/engines/table-engines/special/generate.mdx similarity index 92% rename from reference/engines/table-engines/special/generate.mdx rename to core/reference/engines/table-engines/special/generate.mdx index 1bfd8d44..ed4f004e 100644 --- a/reference/engines/table-engines/special/generate.mdx +++ b/core/reference/engines/table-engines/special/generate.mdx @@ -25,7 +25,7 @@ array or map columns and strings correspondingly in generated data. Generate table engine supports only `SELECT` queries. -It supports all [DataTypes](/reference/data-types) that can be stored in a table except `AggregateFunction`. +It supports all [DataTypes](/core/reference/data-types) that can be stored in a table except `AggregateFunction`. ## Example {#example} diff --git a/core/reference/engines/table-engines/special/index.mdx b/core/reference/engines/table-engines/special/index.mdx new file mode 100644 index 00000000..dda96c1c --- /dev/null +++ b/core/reference/engines/table-engines/special/index.mdx @@ -0,0 +1,44 @@ +--- +description: 'Documentation for Special Table Engines' +sidebarTitle: 'Special' +slug: /engines/table-engines/special/ +title: 'Special table engines' +doc_type: 'reference' +--- + +There are three main categories of table engines: + +- [MergeTree engine family](/core/reference/engines/table-engines/mergetree-family) for main production use. +- [Log engine family](/core/reference/engines/table-engines/log-family) for small temporary data. +- [Table engines for integrations](/core/reference/engines/table-engines/integrations). + +The remaining engines are unique in their purpose and are not grouped into families yet, thus they are placed in this "special" category. + +{/* The table of contents table for this page is automatically generated by +https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh +from the YAML front matter fields: slug, description, title. + +If you've spotted an error, please edit the YML frontmatter of the pages themselves. +*/} + +{/*AUTOGENERATED_START*/} +| Page | Description | +|-----|-----| +| [Alias table engine](/core/reference/engines/table-engines/special/alias) | The Alias table engine creates a transparent proxy to another table. All operations are forwarded to the target table while the alias itself stores no data. | +| [Distributed table engine](/core/reference/engines/table-engines/special/distributed) | Tables with Distributed engine do not store any data of their own, but allow distributed query processing on multiple servers. Reading is automatically parallelized. During a read, the table indexes on remote servers are used, if there are any. | +| [Dictionary table engine](/core/reference/engines/table-engines/special/dictionary) | The `Dictionary` engine displays the dictionary data as a ClickHouse table. | +| [Merge table engine](/core/reference/engines/table-engines/special/merge) | The `Merge` engine (not to be confused with `MergeTree`) does not store data itself, but allows reading from any number of other tables simultaneously. | +| [Executable and ExecutablePool table engines](/core/reference/engines/table-engines/special/executable) | The `Executable` and `ExecutablePool` table engines allow you to define a table whose rows are generated from a script that you define (by writing rows to **stdout**). | +| [File table engine](/core/reference/engines/table-engines/special/file) | The File table engine keeps the data in a file in one of the supported file formats (`TabSeparated`, `Native`, etc.). | +| [Null table engine](/core/reference/engines/table-engines/special/null) | When writing to a `Null` table, data is ignored. When reading from a `Null` table, the response is empty. | +| [Set table engine](/core/reference/engines/table-engines/special/set) | A data set that is always in RAM. It is intended for use on the right side of the `IN` operator. | +| [Join table engine](/core/reference/engines/table-engines/special/join) | Optional prepared data structure for usage in JOIN operations. | +| [URL table engine](/core/reference/engines/table-engines/special/url) | Queries data to/from a remote HTTP/HTTPS server. This engine is similar to the File engine. | +| [View table engine](/core/reference/engines/table-engines/special/view) | Used for implementing views (for more information, see the `CREATE VIEW query`). It does not store data, but only stores the specified `SELECT` query. When reading from a table, it runs this query (and deletes all unnecessary columns from the query). | +| [Memory table engine](/core/reference/engines/table-engines/special/memory) | The Memory engine stores data in RAM, in uncompressed form. Data is stored in exactly the same form as it is received when read. In other words, reading from this table is completely free. | +| [Buffer table engine](/core/reference/engines/table-engines/special/buffer) | Buffers the data to write in RAM, periodically flushing it to another table. During the read operation, data is read from the buffer and the other table simultaneously. | +| [External data for query processing](/core/reference/engines/table-engines/special/external-data) | ClickHouse allows sending a server the data that is needed for processing a query, together with a `SELECT` query. This data is put in a temporary table and can be used in the query (for example, in `IN` operators). | +| [GenerateRandom table engine](/core/reference/engines/table-engines/special/generate) | The GenerateRandom table engine produces random data for given table schema. | +| [KeeperMap table engine](/core/reference/engines/table-engines/special/keepermap) | This engine allows you to use Keeper/ZooKeeper cluster as consistent key-value store with linearizable writes and sequentially consistent reads. | +| [FileLog table engine](/core/reference/engines/table-engines/special/filelog) | This engine allows processing of application log files as a stream of records. | +{/*AUTOGENERATED_END*/} diff --git a/reference/engines/table-engines/special/join.mdx b/core/reference/engines/table-engines/special/join.mdx similarity index 74% rename from reference/engines/table-engines/special/join.mdx rename to core/reference/engines/table-engines/special/join.mdx index 9b7e4ff3..a06e5f4e 100644 --- a/reference/engines/table-engines/special/join.mdx +++ b/core/reference/engines/table-engines/special/join.mdx @@ -6,7 +6,7 @@ title: 'Join table engine' doc_type: 'reference' --- -Optional prepared data structure for usage in [JOIN](/reference/statements/select/join) operations. +Optional prepared data structure for usage in [JOIN](/core/reference/statements/select/join) operations. In ClickHouse Cloud, if your service was created with a version earlier than 25.4, you will need to set the compatibility to at least 25.4 using `SET compatibility=25.4`. @@ -22,17 +22,17 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ) ENGINE = Join(join_strictness, join_type, k1[, k2, ...]) ``` -See the detailed description of the [CREATE TABLE](/reference/statements/create/table) query. +See the detailed description of the [CREATE TABLE](/core/reference/statements/create/table) query. ## Engine parameters {#engine-parameters} ### `join_strictness` {#join_strictness} -`join_strictness` – [JOIN strictness](/reference/statements/select/join#supported-types-of-join). +`join_strictness` – [JOIN strictness](/core/reference/statements/select/join#supported-types-of-join). ### `join_type` {#join_type} -`join_type` – [JOIN type](/reference/statements/select/join#supported-types-of-join). +`join_type` – [JOIN type](/core/reference/statements/select/join#supported-types-of-join). ### Key columns {#key-columns} @@ -55,11 +55,11 @@ You can use `INSERT` queries to add data to the `Join`-engine tables. If the tab Main use-cases for `Join`-engine tables are following: - Place the table to the right side in a `JOIN` clause. -- Call the [joinGet](/reference/functions/regular-functions/other-functions#joinGet) function, which lets you extract data from the table the same way as from a dictionary. +- Call the [joinGet](/core/reference/functions/regular-functions/other-functions#joinGet) function, which lets you extract data from the table the same way as from a dictionary. ### Deleting data {#deleting-data} -`ALTER DELETE` queries for `Join`-engine tables are implemented as [mutations](/reference/statements/alter#mutations). `DELETE` mutation reads filtered data and overwrites data of memory and disk. +`ALTER DELETE` queries for `Join`-engine tables are implemented as [mutations](/core/reference/statements/alter#mutations). `DELETE` mutation reads filtered data and overwrites data of memory and disk. ### Limitations and settings {#join-limitations-and-settings} @@ -67,28 +67,28 @@ When creating a table, the following settings are applied: #### `join_use_nulls` {#join_use_nulls} -[join_use_nulls](/reference/settings/session-settings#join_use_nulls) +[join_use_nulls](/core/reference/settings/session-settings#join_use_nulls) #### `max_rows_in_join` {#max_rows_in_join} -[max_rows_in_join](/reference/settings/session-settings#max_rows_in_join) +[max_rows_in_join](/core/reference/settings/session-settings#max_rows_in_join) #### `max_bytes_in_join` {#max_bytes_in_join} -[max_bytes_in_join](/reference/settings/session-settings#max_bytes_in_join) +[max_bytes_in_join](/core/reference/settings/session-settings#max_bytes_in_join) #### `join_overflow_mode` {#join_overflow_mode} -[join_overflow_mode](/reference/settings/session-settings#join_overflow_mode) +[join_overflow_mode](/core/reference/settings/session-settings#join_overflow_mode) #### `join_any_take_last_row` {#join_any_take_last_row} -[join_any_take_last_row](/reference/settings/session-settings#join_any_take_last_row) +[join_any_take_last_row](/core/reference/settings/session-settings#join_any_take_last_row) #### `join_use_nulls` {#join_use_nulls-1} #### Persistent {#persistent} -Disables persistency for the Join and [Set](/reference/engines/table-engines/special/set) table engines. +Disables persistency for the Join and [Set](/core/reference/engines/table-engines/special/set) table engines. Reduces the I/O overhead. Suitable for scenarios that pursue performance and do not require persistence. @@ -101,7 +101,7 @@ Default value: `1`. The `Join`-engine tables can't be used in `GLOBAL JOIN` operations. -The `Join`-engine allows to specify [join_use_nulls](/reference/settings/session-settings#join_use_nulls) setting in the `CREATE TABLE` statement. [SELECT](/reference/statements/select) query should have the same `join_use_nulls` value. +The `Join`-engine allows to specify [join_use_nulls](/core/reference/settings/session-settings#join_use_nulls) setting in the `CREATE TABLE` statement. [SELECT](/core/reference/statements/select) query should have the same `join_use_nulls` value. ## Usage examples {#example} diff --git a/reference/engines/table-engines/special/keepermap.mdx b/core/reference/engines/table-engines/special/keepermap.mdx similarity index 100% rename from reference/engines/table-engines/special/keepermap.mdx rename to core/reference/engines/table-engines/special/keepermap.mdx diff --git a/reference/engines/table-engines/special/memory.mdx b/core/reference/engines/table-engines/special/memory.mdx similarity index 98% rename from reference/engines/table-engines/special/memory.mdx rename to core/reference/engines/table-engines/special/memory.mdx index f72292b5..d8dd0930 100644 --- a/reference/engines/table-engines/special/memory.mdx +++ b/core/reference/engines/table-engines/special/memory.mdx @@ -11,7 +11,7 @@ doc_type: 'reference' When using the Memory table engine on ClickHouse Cloud, data is not replicated across all nodes (by design). To guarantee that all queries are routed to the same node and that the Memory table engine works as expected, you can do one of the following: - Execute all operations in the same session -- Use a client that uses TCP or the native interface (which enables support for sticky connections) such as [clickhouse-client](/integrations/connectors/data-integrations/drivers-and-interfaces/client) +- Use a client that uses TCP or the native interface (which enables support for sticky connections) such as [clickhouse-client](/core/concepts/features/interfaces/client) The Memory engine stores data in RAM, in uncompressed form. Data is stored in exactly the same form as it is received when read. In other words, reading from this table is completely free. diff --git a/reference/engines/table-engines/special/merge.mdx b/core/reference/engines/table-engines/special/merge.mdx similarity index 92% rename from reference/engines/table-engines/special/merge.mdx rename to core/reference/engines/table-engines/special/merge.mdx index af7a96dc..c39f603a 100644 --- a/reference/engines/table-engines/special/merge.mdx +++ b/core/reference/engines/table-engines/special/merge.mdx @@ -95,13 +95,13 @@ SELECT * FROM WatchLog; ## Virtual columns {#virtual-columns} -- `_table` — The name of the table from which data was read. Type: [String](/reference/data-types/string). +- `_table` — The name of the table from which data was read. Type: [String](/core/reference/data-types/string). If you filter on `_table`, (for example `WHERE _table='xyz'`) only tables which satisfy the filter condition are read. -- `_database` — Contains the name of the database from which data was read. Type: [String](/reference/data-types/string). +- `_database` — Contains the name of the database from which data was read. Type: [String](/core/reference/data-types/string). **See Also** -- [Virtual columns](/reference/engines/table-engines#table_engines-virtual_columns) -- [merge](/reference/functions/table-functions/merge) table function +- [Virtual columns](/core/reference/engines/table-engines#table_engines-virtual_columns) +- [merge](/core/reference/functions/table-functions/merge) table function diff --git a/reference/engines/table-engines/special/null.mdx b/core/reference/engines/table-engines/special/null.mdx similarity index 100% rename from reference/engines/table-engines/special/null.mdx rename to core/reference/engines/table-engines/special/null.mdx diff --git a/reference/engines/table-engines/special/set.mdx b/core/reference/engines/table-engines/special/set.mdx similarity index 93% rename from reference/engines/table-engines/special/set.mdx rename to core/reference/engines/table-engines/special/set.mdx index 2a84dd80..a22c6a47 100644 --- a/reference/engines/table-engines/special/set.mdx +++ b/core/reference/engines/table-engines/special/set.mdx @@ -26,7 +26,7 @@ When creating a table, the following settings are applied: #### Persistent {#persistent} -Disables persistency for the Set and [Join](/reference/engines/table-engines/special/join) table engines. +Disables persistency for the Set and [Join](/core/reference/engines/table-engines/special/join) table engines. Reduces the I/O overhead. Suitable for scenarios that pursue performance and do not require persistence. diff --git a/reference/engines/table-engines/special/url.mdx b/core/reference/engines/table-engines/special/url.mdx similarity index 79% rename from reference/engines/table-engines/special/url.mdx rename to core/reference/engines/table-engines/special/url.mdx index 50d36841..ef507d24 100644 --- a/reference/engines/table-engines/special/url.mdx +++ b/core/reference/engines/table-engines/special/url.mdx @@ -7,13 +7,13 @@ title: 'URL table engine' doc_type: 'reference' --- -Queries data to/from a remote HTTP/HTTPS server. This engine is similar to the [File](/reference/engines/table-engines/special/file) engine. +Queries data to/from a remote HTTP/HTTPS server. This engine is similar to the [File](/core/reference/engines/table-engines/special/file) engine. Syntax: `URL(URL [,Format] [,CompressionMethod])` - The `URL` parameter must conform to the structure of a Uniform Resource Locator. The specified URL must point to a server that uses HTTP or HTTPS. This does not require any additional headers for getting a response from the server. -- The `Format` must be one that ClickHouse can use in `SELECT` queries and, if necessary, in `INSERTs`. For the full list of supported formats, see [Formats](/reference/formats#formats-overview). +- The `Format` must be one that ClickHouse can use in `SELECT` queries and, if necessary, in `INSERTs`. For the full list of supported formats, see [Formats](/core/reference/formats#formats-overview). If this argument is not specified, ClickHouse detects the format automatically from the suffix of the `URL` parameter. If the suffix of `URL` parameter does not match any supported formats, it fails to create table. For example, for engine expression `URL('http://localhost/test.json')`, `JSON` format is applied. @@ -43,7 +43,7 @@ For example, for engine expression `URL('http://localhost/test.gzip')`, `gzip` c respectively. For processing `POST` requests, the remote server must support [Chunked transfer encoding](https://en.wikipedia.org/wiki/Chunked_transfer_encoding). -You can limit the maximum number of HTTP GET redirect hops using the [max_http_get_redirects](/reference/settings/session-settings#max_http_get_redirects) setting. +You can limit the maximum number of HTTP GET redirect hops using the [max_http_get_redirects](/core/reference/settings/session-settings#max_http_get_redirects) setting. ## Example {#example} @@ -108,7 +108,7 @@ SELECT * FROM url_engine_table ## Resolving relative URLs {#resolving-relative-urls} -The [url_base](/reference/settings/session-settings#url_base) setting allows using a relative URL in the `URL` engine. When `url_base` is set, the URL passed to the engine is resolved against it per [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). For a full description of the resolution rules, see the [url table function docs](/reference/functions/table-functions/url#resolving-relative-urls). +The [url_base](/core/reference/settings/session-settings#url_base) setting allows using a relative URL in the `URL` engine. When `url_base` is set, the URL passed to the engine is resolved against it per [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). For a full description of the resolution rules, see the [url table function docs](/core/reference/functions/table-functions/url#resolving-relative-urls). **Example** @@ -120,6 +120,6 @@ SELECT * FROM url_engine_table; ## Storage settings {#storage-settings} -- [engine_url_skip_empty_files](/reference/settings/session-settings#engine_url_skip_empty_files) - allows to skip empty files while reading. Disabled by default. -- [enable_url_encoding](/reference/settings/session-settings#enable_url_encoding) - allows to enable/disable decoding/encoding path in uri. Enabled by default. -- [url_base](/reference/settings/session-settings#url_base) - base URL for resolving relative URLs passed to the engine. +- [engine_url_skip_empty_files](/core/reference/settings/session-settings#engine_url_skip_empty_files) - allows to skip empty files while reading. Disabled by default. +- [enable_url_encoding](/core/reference/settings/session-settings#enable_url_encoding) - allows to enable/disable decoding/encoding path in uri. Enabled by default. +- [url_base](/core/reference/settings/session-settings#url_base) - base URL for resolving relative URLs passed to the engine. diff --git a/reference/engines/table-engines/special/view.mdx b/core/reference/engines/table-engines/special/view.mdx similarity index 100% rename from reference/engines/table-engines/special/view.mdx rename to core/reference/engines/table-engines/special/view.mdx diff --git a/reference/formats/Arrow/Arrow.mdx b/core/reference/formats/Arrow/Arrow.mdx similarity index 50% rename from reference/formats/Arrow/Arrow.mdx rename to core/reference/formats/Arrow/Arrow.mdx index 9cd164d9..3821710e 100644 --- a/reference/formats/Arrow/Arrow.mdx +++ b/core/reference/formats/Arrow/Arrow.mdx @@ -20,40 +20,40 @@ doc_type: 'reference' ## Data types matching {#data-types-matching} -The table below shows the supported data types and how they correspond to ClickHouse [data types](/reference/data-types) in `INSERT` and `SELECT` queries. +The table below shows the supported data types and how they correspond to ClickHouse [data types](/core/reference/data-types) in `INSERT` and `SELECT` queries. | Arrow data type (`INSERT`) | ClickHouse data type | Arrow data type (`SELECT`) | |-----------------------------------------|------------------------------------------------------------------------------------------------------------|----------------------------| -| `BOOL` | [Bool](/reference/data-types/boolean) | `BOOL` | -| `UINT8`, `BOOL` | [UInt8](/reference/data-types/int-uint) | `UINT8` | -| `INT8` | [Int8](/reference/data-types/int-uint)/[Enum8](/reference/data-types/enum) | `INT8` | -| `UINT16` | [UInt16](/reference/data-types/int-uint) | `UINT16` | -| `INT16` | [Int16](/reference/data-types/int-uint)/[Enum16](/reference/data-types/enum) | `INT16` | -| `UINT32` | [UInt32](/reference/data-types/int-uint) | `UINT32` | -| `INT32` | [Int32](/reference/data-types/int-uint) | `INT32` | -| `UINT64` | [UInt64](/reference/data-types/int-uint) | `UINT64` | -| `INT64` | [Int64](/reference/data-types/int-uint) | `INT64` | -| `FLOAT`, `HALF_FLOAT` | [Float32](/reference/data-types/float) | `FLOAT32` | -| `DOUBLE` | [Float64](/reference/data-types/float) | `FLOAT64` | -| `DATE32` | [Date32](/reference/data-types/date32) | `UINT16` | -| `DATE64` | [DateTime](/reference/data-types/datetime) | `UINT32` | -| `TIMESTAMP`, `TIME32`, `TIME64` | [DateTime64](/reference/data-types/datetime64) | `TIMESTAMP` | -| `STRING`, `BINARY` | [String](/reference/data-types/string) | `BINARY` | -| `STRING`, `BINARY`, `FIXED_SIZE_BINARY` | [FixedString](/reference/data-types/fixedstring) | `FIXED_SIZE_BINARY` | -| `DECIMAL` | [Decimal](/reference/data-types/decimal) | `DECIMAL` | -| `DECIMAL256` | [Decimal256](/reference/data-types/decimal) | `DECIMAL256` | -| `LIST` | [Array](/reference/data-types/array) | `LIST` | -| `STRUCT` | [Tuple](/reference/data-types/tuple) | `STRUCT` | -| `MAP` | [Map](/reference/data-types/map) | `MAP` | -| `UINT32` | [IPv4](/reference/data-types/ipv4) | `UINT32` | -| `FIXED_SIZE_BINARY`, `BINARY` | [IPv6](/reference/data-types/ipv6) | `FIXED_SIZE_BINARY` | -| `FIXED_SIZE_BINARY`, `BINARY` | [Int128/UInt128/Int256/UInt256](/reference/data-types/int-uint) | `FIXED_SIZE_BINARY` | -| `DURATION` | [Interval](/reference/data-types/special-data-types/interval) (Nanosecond/Microsecond/Millisecond/Second) | `DURATION` | -| `INT64` | [Interval](/reference/data-types/special-data-types/interval) (Minute/Hour/Day/Week/Month/Quarter/Year) | `INT64` | +| `BOOL` | [Bool](/core/reference/data-types/boolean) | `BOOL` | +| `UINT8`, `BOOL` | [UInt8](/core/reference/data-types/int-uint) | `UINT8` | +| `INT8` | [Int8](/core/reference/data-types/int-uint)/[Enum8](/core/reference/data-types/enum) | `INT8` | +| `UINT16` | [UInt16](/core/reference/data-types/int-uint) | `UINT16` | +| `INT16` | [Int16](/core/reference/data-types/int-uint)/[Enum16](/core/reference/data-types/enum) | `INT16` | +| `UINT32` | [UInt32](/core/reference/data-types/int-uint) | `UINT32` | +| `INT32` | [Int32](/core/reference/data-types/int-uint) | `INT32` | +| `UINT64` | [UInt64](/core/reference/data-types/int-uint) | `UINT64` | +| `INT64` | [Int64](/core/reference/data-types/int-uint) | `INT64` | +| `FLOAT`, `HALF_FLOAT` | [Float32](/core/reference/data-types/float) | `FLOAT32` | +| `DOUBLE` | [Float64](/core/reference/data-types/float) | `FLOAT64` | +| `DATE32` | [Date32](/core/reference/data-types/date32) | `UINT16` | +| `DATE64` | [DateTime](/core/reference/data-types/datetime) | `UINT32` | +| `TIMESTAMP`, `TIME32`, `TIME64` | [DateTime64](/core/reference/data-types/datetime64) | `TIMESTAMP` | +| `STRING`, `BINARY` | [String](/core/reference/data-types/string) | `BINARY` | +| `STRING`, `BINARY`, `FIXED_SIZE_BINARY` | [FixedString](/core/reference/data-types/fixedstring) | `FIXED_SIZE_BINARY` | +| `DECIMAL` | [Decimal](/core/reference/data-types/decimal) | `DECIMAL` | +| `DECIMAL256` | [Decimal256](/core/reference/data-types/decimal) | `DECIMAL256` | +| `LIST` | [Array](/core/reference/data-types/array) | `LIST` | +| `STRUCT` | [Tuple](/core/reference/data-types/tuple) | `STRUCT` | +| `MAP` | [Map](/core/reference/data-types/map) | `MAP` | +| `UINT32` | [IPv4](/core/reference/data-types/ipv4) | `UINT32` | +| `FIXED_SIZE_BINARY`, `BINARY` | [IPv6](/core/reference/data-types/ipv6) | `FIXED_SIZE_BINARY` | +| `FIXED_SIZE_BINARY`, `BINARY` | [Int128/UInt128/Int256/UInt256](/core/reference/data-types/int-uint) | `FIXED_SIZE_BINARY` | +| `DURATION` | [Interval](/core/reference/data-types/special-data-types/interval) (Nanosecond/Microsecond/Millisecond/Second) | `DURATION` | +| `INT64` | [Interval](/core/reference/data-types/special-data-types/interval) (Minute/Hour/Day/Week/Month/Quarter/Year) | `INT64` | Arrays can be nested and can have a value of the `Nullable` type as an argument. `Tuple` and `Map` types can also be nested. -The `DICTIONARY` type is supported for `INSERT` queries, and for `SELECT` queries there is an [`output_format_arrow_low_cardinality_as_dictionary`](/reference/settings/formats#output_format_arrow_low_cardinality_as_dictionary) setting that allows to output [LowCardinality](/reference/data-types/lowcardinality) type as a `DICTIONARY` type. Note that there might be unused values in `LowCardinality` dictionary, which can lead to unused values in Arrow `DICTIONARY` during output. +The `DICTIONARY` type is supported for `INSERT` queries, and for `SELECT` queries there is an [`output_format_arrow_low_cardinality_as_dictionary`](/core/reference/settings/formats#output_format_arrow_low_cardinality_as_dictionary) setting that allows to output [LowCardinality](/core/reference/data-types/lowcardinality) type as a `DICTIONARY` type. Note that there might be unused values in `LowCardinality` dictionary, which can lead to unused values in Arrow `DICTIONARY` during output. Unsupported Arrow data types: - `FIXED_SIZE_BINARY` @@ -61,7 +61,7 @@ Unsupported Arrow data types: - `UUID` - `ENUM`. -The data types of ClickHouse table columns do not have to match the corresponding Arrow data fields. When inserting data, ClickHouse interprets data types according to the table above and then [casts](/reference/functions/regular-functions/type-conversion-functions#CAST) the data to the data type set for the ClickHouse table column. +The data types of ClickHouse table columns do not have to match the corresponding Arrow data fields. When inserting data, ClickHouse interprets data types according to the table above and then [casts](/core/reference/functions/regular-functions/type-conversion-functions#CAST) the data to the data type set for the ClickHouse table column. ## Example usage {#example-usage} diff --git a/reference/formats/Arrow/ArrowStream.mdx b/core/reference/formats/Arrow/ArrowStream.mdx similarity index 100% rename from reference/formats/Arrow/ArrowStream.mdx rename to core/reference/formats/Arrow/ArrowStream.mdx diff --git a/reference/formats/Avro/Avro.mdx b/core/reference/formats/Avro/Avro.mdx similarity index 88% rename from reference/formats/Avro/Avro.mdx rename to core/reference/formats/Avro/Avro.mdx index d7740180..87430684 100644 --- a/reference/formats/Avro/Avro.mdx +++ b/core/reference/formats/Avro/Avro.mdx @@ -17,7 +17,7 @@ import DataTypeMapping from '/snippets/data-types-matching.mdx'; ## Description {#description} -[Apache Avro](https://avro.apache.org/) is a row-oriented serialization format that uses binary encoding for efficient data processing. The `Avro` format supports reading and writing [Avro data files](https://avro.apache.org/docs/++version++/specification/#object-container-files). This format expects self-describing messages with an embedded schema. If you're using Avro with a schema registry, refer to the [`AvroConfluent`](/reference/formats/Avro/AvroConfluent) format. +[Apache Avro](https://avro.apache.org/) is a row-oriented serialization format that uses binary encoding for efficient data processing. The `Avro` format supports reading and writing [Avro data files](https://avro.apache.org/docs/++version++/specification/#object-container-files). This format expects self-describing messages with an embedded schema. If you're using Avro with a schema registry, refer to the [`AvroConfluent`](/core/reference/formats/Avro/AvroConfluent) format. ## Data type mapping {#data-type-mapping} @@ -49,9 +49,9 @@ The root schema of the ingested Avro file must be of type `record`. To find the correspondence between table columns and fields of Avro schema, ClickHouse compares their names. This comparison is case-sensitive and unused fields are skipped. -Data types of ClickHouse table columns can differ from the corresponding fields of the Avro data inserted. When inserting data, ClickHouse interprets data types according to the table above and then [casts](/reference/functions/regular-functions/type-conversion-functions#CAST) the data to the corresponding column type. +Data types of ClickHouse table columns can differ from the corresponding fields of the Avro data inserted. When inserting data, ClickHouse interprets data types according to the table above and then [casts](/core/reference/functions/regular-functions/type-conversion-functions#CAST) the data to the corresponding column type. -While importing data, when a field is not found in the schema and setting [`input_format_avro_allow_missing_fields`](/reference/settings/formats#input_format_avro_allow_missing_fields) is enabled, the default value will be used instead of throwing an error. +While importing data, when a field is not found in the schema and setting [`input_format_avro_allow_missing_fields`](/core/reference/settings/formats#input_format_avro_allow_missing_fields) is enabled, the default value will be used instead of throwing an error. ### Writing Avro data {#writing-avro-data} @@ -66,11 +66,11 @@ Column names must: - Start with `[A-Za-z_]` - Be followed by only `[A-Za-z0-9_]` -The output compression and sync interval for Avro files can be configured using the [`output_format_avro_codec`](/reference/settings/formats#output_format_avro_codec) and [`output_format_avro_sync_interval`](/reference/settings/formats#output_format_avro_sync_interval) settings, respectively. +The output compression and sync interval for Avro files can be configured using the [`output_format_avro_codec`](/core/reference/settings/formats#output_format_avro_codec) and [`output_format_avro_sync_interval`](/core/reference/settings/formats#output_format_avro_sync_interval) settings, respectively. ### Inferring the Avro schema {#inferring-the-avro-schema} -Using the ClickHouse [`DESCRIBE`](/reference/statements/describe-table) function, you can quickly view the inferred format of an Avro file like the following example. +Using the ClickHouse [`DESCRIBE`](/core/reference/statements/describe-table) function, you can quickly view the inferred format of an Avro file like the following example. This example includes the URL of a publicly accessible Avro file in the ClickHouse S3 public bucket: ```sql diff --git a/reference/formats/Avro/AvroConfluent.mdx b/core/reference/formats/Avro/AvroConfluent.mdx similarity index 92% rename from reference/formats/Avro/AvroConfluent.mdx rename to core/reference/formats/Avro/AvroConfluent.mdx index aa77ebb3..628bd34d 100644 --- a/reference/formats/Avro/AvroConfluent.mdx +++ b/core/reference/formats/Avro/AvroConfluent.mdx @@ -45,7 +45,7 @@ Each message uses the Confluent wire format: a magic byte (`0x00`) followed by a ### Reading from Kafka {#reading-from-kafka} -To read an Avro-encoded Kafka topic using the [Kafka table engine](/reference/engines/table-engines/integrations/kafka), use the `format_avro_schema_registry_url` setting to provide the URL of the schema registry. +To read an Avro-encoded Kafka topic using the [Kafka table engine](/core/reference/engines/table-engines/integrations/kafka), use the `format_avro_schema_registry_url` setting to provide the URL of the schema registry. ```sql CREATE TABLE topic1_stream @@ -106,14 +106,14 @@ format_avro_schema_registry_url = 'https://:@schema-registry ## Troubleshooting {#troubleshooting} -To monitor ingestion progress and debug errors with the Kafka consumer, you can query the [`system.kafka_consumers` system table](/reference/system-tables/kafka_consumers). If your deployment has multiple replicas (e.g., ClickHouse Cloud), you must use the [`clusterAllReplicas`](/reference/functions/table-functions/cluster) table function. +To monitor ingestion progress and debug errors with the Kafka consumer, you can query the [`system.kafka_consumers` system table](/core/reference/system-tables/kafka_consumers). If your deployment has multiple replicas (e.g., ClickHouse Cloud), you must use the [`clusterAllReplicas`](/core/reference/functions/table-functions/cluster) table function. ```sql SELECT * FROM clusterAllReplicas('default',system.kafka_consumers) ORDER BY assignments.partition_id ASC; ``` -If you run into schema resolution issues, you can use [kafkacat](https://github.com/edenhill/kafkacat) with [clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local) to troubleshoot: +If you run into schema resolution issues, you can use [kafkacat](https://github.com/edenhill/kafkacat) with [clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local) to troubleshoot: ```bash $ kafkacat -b kafka-broker -C -t topic1 -o beginning -f '%s' -c 3 | clickhouse-local --input-format AvroConfluent --format_avro_schema_registry_url 'http://schema-registry' -S "field1 Int64, field2 String" -q 'select * from table' diff --git a/core/reference/formats/Avro/_snippets/data-types-matching.mdx b/core/reference/formats/Avro/_snippets/data-types-matching.mdx new file mode 100644 index 00000000..17e5fafd --- /dev/null +++ b/core/reference/formats/Avro/_snippets/data-types-matching.mdx @@ -0,0 +1,39 @@ +The table below shows all data types supported by the Apache Avro format, and their corresponding ClickHouse [data types](/core/reference/data-types) in `INSERT` and `SELECT` queries. + +| Avro data type `INSERT` | ClickHouse data type | Avro data type `SELECT` | +|---------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|---------------------------------| +| `boolean`, `int`, `long`, `float`, `double` | [Int(8\16\32)](/core/reference/data-types/int-uint), [UInt(8\16\32)](/core/reference/data-types/int-uint) | `int` | +| `boolean`, `int`, `long`, `float`, `double` | [Int64](/core/reference/data-types/int-uint), [UInt64](/core/reference/data-types/int-uint) | `long` | +| `boolean`, `int`, `long`, `float`, `double` | [Float32](/core/reference/data-types/float) | `float` | +| `boolean`, `int`, `long`, `float`, `double` | [Float64](/core/reference/data-types/float) | `double` | +| `bytes`, `string`, `fixed`, `enum` | [String](/core/reference/data-types/string) | `bytes` or `string` \* | +| `bytes`, `string`, `fixed` | [FixedString(N)](/core/reference/data-types/fixedstring) | `fixed(N)` | +| `enum` | [Enum(8\16)](/core/reference/data-types/enum) | `enum` | +| `array(T)` | [Array(T)](/core/reference/data-types/array) | `array(T)` | +| `map(V, K)` | [Map(V, K)](/core/reference/data-types/map) | `map(string, K)` | +| `union(null, T)`, `union(T, null)` | [Nullable(T)](/core/reference/data-types/date) | `union(null, T)` | +| `union(T1, T2, …)` \** | [Variant(T1, T2, …)](/core/reference/data-types/variant) | `union(T1, T2, …)` \** | +| `null` | [Nullable(Nothing)](/core/reference/data-types/special-data-types/nothing) | `null` | +| `int (date)` \**\* | [Date](/core/reference/data-types/date), [Date32](/core/reference/data-types/date32) | `int (date)` \**\* | +| `long (timestamp-millis)` \**\* | [DateTime64(3)](/core/reference/data-types/datetime) | `long (timestamp-millis)` \**\* | +| `long (timestamp-micros)` \**\* | [DateTime64(6)](/core/reference/data-types/datetime) | `long (timestamp-micros)` \**\* | +| `bytes (decimal)` \**\* | [DateTime64(N)](/core/reference/data-types/datetime) | `bytes (decimal)` \**\* | +| `int` | [IPv4](/core/reference/data-types/ipv4) | `int` | +| `fixed(16)` | [IPv6](/core/reference/data-types/ipv6) | `fixed(16)` | +| `bytes (decimal)` \**\* | [Decimal(P, S)](/core/reference/data-types/decimal) | `bytes (decimal)` \**\* | +| `string (uuid)` \**\* | [UUID](/core/reference/data-types/uuid) | `string (uuid)` \**\* | +| `fixed(16)` | [Int128/UInt128](/core/reference/data-types/int-uint) | `fixed(16)` | +| `fixed(32)` | [Int256/UInt256](/core/reference/data-types/int-uint) | `fixed(32)` | +| `record` | [Tuple](/core/reference/data-types/tuple) | `record` | + +\* `bytes` is default, controlled by setting [`output_format_avro_string_column_pattern`](/core/reference/settings/formats#output_format_avro_string_column_pattern) + +\** The [Variant type](/core/reference/data-types/variant) implicitly accepts `null` as a field value, so for example the Avro `union(T1, T2, null)` will be converted to `Variant(T1, T2)`. +As a result, when producing Avro from ClickHouse, we have to always include the `null` type to the Avro `union` type set as we don't know if any value is actually `null` during the schema inference. + +\**\* [Avro logical types](https://avro.apache.org/docs/current/spec.html#Logical+Types) + +Unsupported Avro logical data types: +- `time-millis` +- `time-micros` +- `duration` \ No newline at end of file diff --git a/reference/formats/BSONEachRow.mdx b/core/reference/formats/BSONEachRow.mdx similarity index 50% rename from reference/formats/BSONEachRow.mdx rename to core/reference/formats/BSONEachRow.mdx index c4169fe7..ea72a030 100644 --- a/reference/formats/BSONEachRow.mdx +++ b/core/reference/formats/BSONEachRow.mdx @@ -24,54 +24,54 @@ For output it uses the following correspondence between ClickHouse types and BSO | ClickHouse type | BSON Type | |-----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------| -| [Bool](/reference/data-types/boolean) | `\x08` boolean | -| [Int8/UInt8](/reference/data-types/int-uint)/[Enum8](/reference/data-types/enum) | `\x10` int32 | -| [Int16/UInt16](/reference/data-types/int-uint)/[Enum16](/reference/data-types/enum) | `\x10` int32 | -| [Int32](/reference/data-types/int-uint) | `\x10` int32 | -| [UInt32](/reference/data-types/int-uint) | `\x12` int64 | -| [Int64/UInt64](/reference/data-types/int-uint) | `\x12` int64 | -| [Float32/Float64](/reference/data-types/float) | `\x01` double | -| [Date](/reference/data-types/date)/[Date32](/reference/data-types/date32) | `\x10` int32 | -| [DateTime](/reference/data-types/datetime) | `\x12` int64 | -| [DateTime64](/reference/data-types/datetime64) | `\x09` datetime | -| [Decimal32](/reference/data-types/decimal) | `\x10` int32 | -| [Decimal64](/reference/data-types/decimal) | `\x12` int64 | -| [Decimal128](/reference/data-types/decimal) | `\x05` binary, `\x00` binary subtype, size = 16 | -| [Decimal256](/reference/data-types/decimal) | `\x05` binary, `\x00` binary subtype, size = 32 | -| [Int128/UInt128](/reference/data-types/int-uint) | `\x05` binary, `\x00` binary subtype, size = 16 | -| [Int256/UInt256](/reference/data-types/int-uint) | `\x05` binary, `\x00` binary subtype, size = 32 | -| [String](/reference/data-types/string)/[FixedString](/reference/data-types/fixedstring) | `\x05` binary, `\x00` binary subtype or \x02 string if setting output_format_bson_string_as_string is enabled | -| [UUID](/reference/data-types/uuid) | `\x05` binary, `\x04` uuid subtype, size = 16 | -| [Array](/reference/data-types/array) | `\x04` array | -| [Tuple](/reference/data-types/tuple) | `\x04` array | -| [Named Tuple](/reference/data-types/tuple) | `\x03` document | -| [Map](/reference/data-types/map) | `\x03` document | -| [IPv4](/reference/data-types/ipv4) | `\x10` int32 | -| [IPv6](/reference/data-types/ipv6) | `\x05` binary, `\x00` binary subtype | +| [Bool](/core/reference/data-types/boolean) | `\x08` boolean | +| [Int8/UInt8](/core/reference/data-types/int-uint)/[Enum8](/core/reference/data-types/enum) | `\x10` int32 | +| [Int16/UInt16](/core/reference/data-types/int-uint)/[Enum16](/core/reference/data-types/enum) | `\x10` int32 | +| [Int32](/core/reference/data-types/int-uint) | `\x10` int32 | +| [UInt32](/core/reference/data-types/int-uint) | `\x12` int64 | +| [Int64/UInt64](/core/reference/data-types/int-uint) | `\x12` int64 | +| [Float32/Float64](/core/reference/data-types/float) | `\x01` double | +| [Date](/core/reference/data-types/date)/[Date32](/core/reference/data-types/date32) | `\x10` int32 | +| [DateTime](/core/reference/data-types/datetime) | `\x12` int64 | +| [DateTime64](/core/reference/data-types/datetime64) | `\x09` datetime | +| [Decimal32](/core/reference/data-types/decimal) | `\x10` int32 | +| [Decimal64](/core/reference/data-types/decimal) | `\x12` int64 | +| [Decimal128](/core/reference/data-types/decimal) | `\x05` binary, `\x00` binary subtype, size = 16 | +| [Decimal256](/core/reference/data-types/decimal) | `\x05` binary, `\x00` binary subtype, size = 32 | +| [Int128/UInt128](/core/reference/data-types/int-uint) | `\x05` binary, `\x00` binary subtype, size = 16 | +| [Int256/UInt256](/core/reference/data-types/int-uint) | `\x05` binary, `\x00` binary subtype, size = 32 | +| [String](/core/reference/data-types/string)/[FixedString](/core/reference/data-types/fixedstring) | `\x05` binary, `\x00` binary subtype or \x02 string if setting output_format_bson_string_as_string is enabled | +| [UUID](/core/reference/data-types/uuid) | `\x05` binary, `\x04` uuid subtype, size = 16 | +| [Array](/core/reference/data-types/array) | `\x04` array | +| [Tuple](/core/reference/data-types/tuple) | `\x04` array | +| [Named Tuple](/core/reference/data-types/tuple) | `\x03` document | +| [Map](/core/reference/data-types/map) | `\x03` document | +| [IPv4](/core/reference/data-types/ipv4) | `\x10` int32 | +| [IPv6](/core/reference/data-types/ipv6) | `\x05` binary, `\x00` binary subtype | For input it uses the following correspondence between BSON types and ClickHouse types: | BSON Type | ClickHouse Type | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `\x01` double | [Float32/Float64](/reference/data-types/float) | -| `\x02` string | [String](/reference/data-types/string)/[FixedString](/reference/data-types/fixedstring) | -| `\x03` document | [Map](/reference/data-types/map)/[Named Tuple](/reference/data-types/tuple) | -| `\x04` array | [Array](/reference/data-types/array)/[Tuple](/reference/data-types/tuple) | -| `\x05` binary, `\x00` binary subtype | [String](/reference/data-types/string)/[FixedString](/reference/data-types/fixedstring)/[IPv6](/reference/data-types/ipv6) | -| `\x05` binary, `\x02` old binary subtype | [String](/reference/data-types/string)/[FixedString](/reference/data-types/fixedstring) | -| `\x05` binary, `\x03` old uuid subtype | [UUID](/reference/data-types/uuid) | -| `\x05` binary, `\x04` uuid subtype | [UUID](/reference/data-types/uuid) | -| `\x07` ObjectId | [String](/reference/data-types/string)/[FixedString](/reference/data-types/fixedstring) | -| `\x08` boolean | [Bool](/reference/data-types/boolean) | -| `\x09` datetime | [DateTime64](/reference/data-types/datetime64) | -| `\x0A` null value | [NULL](/reference/data-types/nullable) | -| `\x0D` JavaScript code | [String](/reference/data-types/string)/[FixedString](/reference/data-types/fixedstring) | -| `\x0E` symbol | [String](/reference/data-types/string)/[FixedString](/reference/data-types/fixedstring) | -| `\x10` int32 | [Int32/UInt32](/reference/data-types/int-uint)/[Decimal32](/reference/data-types/decimal)/[IPv4](/reference/data-types/ipv4)/[Enum8/Enum16](/reference/data-types/enum) | -| `\x12` int64 | [Int64/UInt64](/reference/data-types/int-uint)/[Decimal64](/reference/data-types/decimal)/[DateTime64](/reference/data-types/datetime64) | +| `\x01` double | [Float32/Float64](/core/reference/data-types/float) | +| `\x02` string | [String](/core/reference/data-types/string)/[FixedString](/core/reference/data-types/fixedstring) | +| `\x03` document | [Map](/core/reference/data-types/map)/[Named Tuple](/core/reference/data-types/tuple) | +| `\x04` array | [Array](/core/reference/data-types/array)/[Tuple](/core/reference/data-types/tuple) | +| `\x05` binary, `\x00` binary subtype | [String](/core/reference/data-types/string)/[FixedString](/core/reference/data-types/fixedstring)/[IPv6](/core/reference/data-types/ipv6) | +| `\x05` binary, `\x02` old binary subtype | [String](/core/reference/data-types/string)/[FixedString](/core/reference/data-types/fixedstring) | +| `\x05` binary, `\x03` old uuid subtype | [UUID](/core/reference/data-types/uuid) | +| `\x05` binary, `\x04` uuid subtype | [UUID](/core/reference/data-types/uuid) | +| `\x07` ObjectId | [String](/core/reference/data-types/string)/[FixedString](/core/reference/data-types/fixedstring) | +| `\x08` boolean | [Bool](/core/reference/data-types/boolean) | +| `\x09` datetime | [DateTime64](/core/reference/data-types/datetime64) | +| `\x0A` null value | [NULL](/core/reference/data-types/nullable) | +| `\x0D` JavaScript code | [String](/core/reference/data-types/string)/[FixedString](/core/reference/data-types/fixedstring) | +| `\x0E` symbol | [String](/core/reference/data-types/string)/[FixedString](/core/reference/data-types/fixedstring) | +| `\x10` int32 | [Int32/UInt32](/core/reference/data-types/int-uint)/[Decimal32](/core/reference/data-types/decimal)/[IPv4](/core/reference/data-types/ipv4)/[Enum8/Enum16](/core/reference/data-types/enum) | +| `\x12` int64 | [Int64/UInt64](/core/reference/data-types/int-uint)/[Decimal64](/core/reference/data-types/decimal)/[DateTime64](/core/reference/data-types/datetime64) | Other BSON types are not supported. Additionally, it performs conversion between different integer types. -For example, it is possible to insert a BSON `int32` value into ClickHouse as [`UInt8`](/reference/data-types/int-uint). +For example, it is possible to insert a BSON `int32` value into ClickHouse as [`UInt8`](/core/reference/data-types/int-uint). Big integers and decimals such as `Int128`/`UInt128`/`Int256`/`UInt256`/`Decimal128`/`Decimal256` can be parsed from a BSON Binary value with the `\x00` binary subtype. In this case, the format will validate that the size of the binary data equals the size of the expected value. @@ -132,5 +132,5 @@ BSON is a binary format that does not display in a human-readable form on the te | Setting | Description | Default | |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|----------| -| [`output_format_bson_string_as_string`](/reference/settings/formats#output_format_bson_string_as_string) | Use BSON String type instead of Binary for String columns. | `false` | -| [`input_format_bson_skip_fields_with_unsupported_types_in_schema_inference`](/reference/settings/formats#input_format_bson_skip_fields_with_unsupported_types_in_schema_inference) | Allow skipping columns with unsupported types while schema inference for format BSONEachRow. | `false` | \ No newline at end of file +| [`output_format_bson_string_as_string`](/core/reference/settings/formats#output_format_bson_string_as_string) | Use BSON String type instead of Binary for String columns. | `false` | +| [`input_format_bson_skip_fields_with_unsupported_types_in_schema_inference`](/core/reference/settings/formats#input_format_bson_skip_fields_with_unsupported_types_in_schema_inference) | Allow skipping columns with unsupported types while schema inference for format BSONEachRow. | `false` | \ No newline at end of file diff --git a/reference/formats/Buffers.mdx b/core/reference/formats/Buffers.mdx similarity index 82% rename from reference/formats/Buffers.mdx rename to core/reference/formats/Buffers.mdx index 54b8392d..2ecbfd03 100644 --- a/reference/formats/Buffers.mdx +++ b/core/reference/formats/Buffers.mdx @@ -17,16 +17,16 @@ doc_type: 'reference' `Buffers` is a very simple binary format for **ephemeral** data exchange, where both the consumer and producer already know the schema and column order. -Unlike [Native](/reference/formats/Native), it does **not** store column names, column types, or any extra metadata. +Unlike [Native](/core/reference/formats/Native), it does **not** store column names, column types, or any extra metadata. -In this format, data is written and read by [blocks](/resources/contribute/architecture#block) in a binary format. Buffers uses the same per-column binary representation as the [Native](/reference/formats/Native) format and respects the same Native format settings. +In this format, data is written and read by [blocks](/resources/develop-contribute/introduction/architecture#block) in a binary format. Buffers uses the same per-column binary representation as the [Native](/core/reference/formats/Native) format and respects the same Native format settings. For each block, the following sequence is written: 1. Number of columns (UInt64, little-endian). 2. Number of rows (UInt64, little-endian). 3. For each column: - Total byte size of the serialized column data (UInt64, little-endian). -- Serialized column data bytes, exactly as in the [Native](/reference/formats/Native) format. +- Serialized column data bytes, exactly as in the [Native](/core/reference/formats/Native) format. ## Example usage {#example-usage} diff --git a/core/reference/formats/CSV/CSV.mdx b/core/reference/formats/CSV/CSV.mdx new file mode 100644 index 00000000..78914938 --- /dev/null +++ b/core/reference/formats/CSV/CSV.mdx @@ -0,0 +1,71 @@ +--- +alias: [] +description: 'Documentation for the CSV format' +input_format: true +keywords: ['CSV'] +output_format: true +slug: /interfaces/formats/CSV +title: 'CSV' +doc_type: 'reference' +--- + +## Description {#description} + +Comma Separated Values format ([RFC](https://tools.ietf.org/html/rfc4180)). +When formatting, rows are enclosed in double quotes. A double quote inside a string is output as two double quotes in a row. +There are no other rules for escaping characters. + +- Date and date-time are enclosed in double quotes. +- Numbers are output without quotes. +- Values are separated by a delimiter character, which is `,` by default. The delimiter character is defined in the setting [format_csv_delimiter](/core/reference/settings/formats#format_csv_delimiter). +- Rows are separated using the Unix line feed (LF). +- Arrays are serialized in CSV as follows: + - first, the array is serialized to a string as in TabSeparated format + - The resulting string is output to CSV in double quotes. +- Tuples in CSV format are serialized as separate columns (that is, their nesting in the tuple is lost). + +```bash +$ clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO test.csv FORMAT CSV" < data.csv +``` + + +By default, the delimiter is `,` +See the [format_csv_delimiter](/core/reference/settings/formats#format_csv_delimiter) setting for more information. + + +When parsing, all values can be parsed either with or without quotes. Both double and single quotes are supported. + +Rows can also be arranged without quotes. In this case, they are parsed up to the delimiter character or line feed (CR or LF). +However, in violation of the RFC, when parsing rows without quotes, the leading and trailing spaces and tabs are ignored. +The line feed supports: Unix (LF), Windows (CR LF) and Mac OS Classic (CR LF) types. + +`NULL` is formatted according to setting [format_csv_null_representation](/core/reference/settings/formats#format_csv_null_representation) (the default value is `\N`). + +In the input data, `ENUM` values can be represented as names or as ids. +First, we try to match the input value to the ENUM name. +If we fail and the input value is a number, we try to match this number to the ENUM id. +If input data contains only ENUM ids, it's recommended to enable the setting [input_format_csv_enum_as_number](/core/reference/settings/formats#input_format_csv_enum_as_number) to optimize `ENUM` parsing. + +## Example usage {#example-usage} + +## Format settings {#format-settings} + +| Setting | Description | Default | Notes | +|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [format_csv_delimiter](/core/reference/settings/formats#format_csv_delimiter) | the character to be considered as a delimiter in CSV data. | `,` | | +| [format_csv_allow_single_quotes](/core/reference/settings/formats#format_csv_allow_single_quotes) | allow strings in single quotes. | `true` | | +| [format_csv_allow_double_quotes](/core/reference/settings/formats#format_csv_allow_double_quotes) | allow strings in double quotes. | `true` | | +| [format_csv_null_representation](/core/reference/settings/formats#format_tsv_null_representation) | custom NULL representation in CSV format. | `\N` | | +| [input_format_csv_empty_as_default](/core/reference/settings/formats#input_format_csv_empty_as_default) | treat empty fields in CSV input as default values. | `true` | For complex default expressions, [input_format_defaults_for_omitted_fields](/core/reference/settings/formats#input_format_defaults_for_omitted_fields) must be enabled too. | +| [input_format_csv_enum_as_number](/core/reference/settings/formats#input_format_csv_enum_as_number) | treat inserted enum values in CSV formats as enum indices. | `false` | | +| [input_format_csv_use_best_effort_in_schema_inference](/core/reference/settings/formats#input_format_csv_use_best_effort_in_schema_inference) | use some tweaks and heuristics to infer schema in CSV format. If disabled, all fields will be inferred as Strings. | `true` | | +| [input_format_csv_arrays_as_nested_csv](/core/reference/settings/formats#input_format_csv_arrays_as_nested_csv) | when reading Array from CSV, expect that its elements were serialized in nested CSV and then put into string. | `false` | | +| [output_format_csv_crlf_end_of_line](/core/reference/settings/formats#output_format_csv_crlf_end_of_line) | if it is set to true, end of line in CSV output format will be `\r\n` instead of `\n`. | `false` | | +| [input_format_csv_skip_first_lines](/core/reference/settings/formats#input_format_csv_skip_first_lines) | skip the specified number of lines at the beginning of data. | `0` | | +| [input_format_csv_detect_header](/core/reference/settings/formats#input_format_csv_detect_header) | automatically detect header with names and types in CSV format. | `true` | | +| [input_format_csv_skip_trailing_empty_lines](/core/reference/settings/formats#input_format_csv_skip_trailing_empty_lines) | skip trailing empty lines at the end of data. | `false` | | +| [input_format_csv_trim_whitespaces](/core/reference/settings/formats#input_format_csv_trim_whitespaces) | trim spaces and tabs in non-quoted CSV strings. | `true` | | +| [input_format_csv_allow_whitespace_or_tab_as_delimiter](/core/reference/settings/formats#input_format_csv_allow_whitespace_or_tab_as_delimiter) | Allow to use whitespace or tab as field delimiter in CSV strings. | `false` | | +| [input_format_csv_allow_variable_number_of_columns](/core/reference/settings/formats#input_format_csv_allow_variable_number_of_columns) | allow variable number of columns in CSV format, ignore extra columns and use default values on missing columns. | `false` | | +| [input_format_csv_use_default_on_bad_values](/core/reference/settings/formats#input_format_csv_use_default_on_bad_values) | Allow to set default value to column when CSV field deserialization failed on bad value. | `false` | | +| [input_format_csv_try_infer_numbers_from_strings](/core/reference/settings/formats#input_format_csv_try_infer_numbers_from_strings) | Try to infer numbers from string fields while schema inference. | `false` | | \ No newline at end of file diff --git a/reference/formats/CSV/CSVWithNames.mdx b/core/reference/formats/CSV/CSVWithNames.mdx similarity index 91% rename from reference/formats/CSV/CSVWithNames.mdx rename to core/reference/formats/CSV/CSVWithNames.mdx index 69999a6d..754d2785 100644 --- a/reference/formats/CSV/CSVWithNames.mdx +++ b/core/reference/formats/CSV/CSVWithNames.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Also prints the header row with column names, similar to [TabSeparatedWithNames](/reference/formats/TabSeparated/TabSeparatedWithNames). +Also prints the header row with column names, similar to [TabSeparatedWithNames](/core/reference/formats/TabSeparated/TabSeparatedWithNames). ## Example usage {#example-usage} @@ -106,7 +106,7 @@ The output will be a CSV with a single header row: ## Format settings {#format-settings} -If setting [`input_format_with_names_use_header`](/reference/settings/formats#input_format_with_names_use_header) is set to `1`, -the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. +If setting [`input_format_with_names_use_header`](/core/reference/settings/formats#input_format_with_names_use_header) is set to `1`, +the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. Otherwise, the first row will be skipped. diff --git a/reference/formats/CSV/CSVWithNamesAndTypes.mdx b/core/reference/formats/CSV/CSVWithNamesAndTypes.mdx similarity index 88% rename from reference/formats/CSV/CSVWithNamesAndTypes.mdx rename to core/reference/formats/CSV/CSVWithNamesAndTypes.mdx index 81495fc8..95d1d76f 100644 --- a/reference/formats/CSV/CSVWithNamesAndTypes.mdx +++ b/core/reference/formats/CSV/CSVWithNamesAndTypes.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Also prints two header rows with column names and types, similar to [TabSeparatedWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes). +Also prints two header rows with column names and types, similar to [TabSeparatedWithNamesAndTypes](/core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes). ## Example usage {#example-usage} @@ -108,12 +108,12 @@ The output will be a CSV with a two header rows for column names and types: ## Format settings {#format-settings} -If setting [input_format_with_names_use_header](/reference/settings/formats#input_format_with_names_use_header) is set to `1`, -the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. +If setting [input_format_with_names_use_header](/core/reference/settings/formats#input_format_with_names_use_header) is set to `1`, +the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. Otherwise, the first row will be skipped. -If setting [input_format_with_types_use_header](/reference/settings/formats#input_format_with_types_use_header) is set to `1`, +If setting [input_format_with_types_use_header](/core/reference/settings/formats#input_format_with_types_use_header) is set to `1`, the types from input data will be compared with the types of the corresponding columns from the table. Otherwise, the second row will be skipped. \ No newline at end of file diff --git a/reference/formats/CapnProto.mdx b/core/reference/formats/CapnProto.mdx similarity index 58% rename from reference/formats/CapnProto.mdx rename to core/reference/formats/CapnProto.mdx index bf92136c..0bc9ec16 100644 --- a/reference/formats/CapnProto.mdx +++ b/core/reference/formats/CapnProto.mdx @@ -19,40 +19,40 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ ## Description {#description} -The `CapnProto` format is a binary message format similar to the [`Protocol Buffers`](https://developers.google.com/protocol-buffers/) format and [Thrift](https://en.wikipedia.org/wiki/Apache_Thrift), but not like [JSON](/reference/formats/JSON/JSON) or [MessagePack](https://msgpack.org/). +The `CapnProto` format is a binary message format similar to the [`Protocol Buffers`](https://developers.google.com/protocol-buffers/) format and [Thrift](https://en.wikipedia.org/wiki/Apache_Thrift), but not like [JSON](/core/reference/formats/JSON/JSON) or [MessagePack](https://msgpack.org/). CapnProto messages are strictly typed and not self-describing, meaning they need an external schema description. The schema is applied on the fly and cached for each query. -See also [Format Schema](/reference/formats#formatschema). +See also [Format Schema](/core/reference/formats#formatschema). ## Data types matching {#data_types-matching-capnproto} -The table below shows supported data types and how they match ClickHouse [data types](/reference/data-types) in `INSERT` and `SELECT` queries. +The table below shows supported data types and how they match ClickHouse [data types](/core/reference/data-types) in `INSERT` and `SELECT` queries. | CapnProto data type (`INSERT`) | ClickHouse data type | CapnProto data type (`SELECT`) | |------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------| -| `UINT8`, `BOOL` | [UInt8](/reference/data-types/int-uint) | `UINT8` | -| `INT8` | [Int8](/reference/data-types/int-uint) | `INT8` | -| `UINT16` | [UInt16](/reference/data-types/int-uint), [Date](/reference/data-types/date) | `UINT16` | -| `INT16` | [Int16](/reference/data-types/int-uint) | `INT16` | -| `UINT32` | [UInt32](/reference/data-types/int-uint), [DateTime](/reference/data-types/datetime) | `UINT32` | -| `INT32` | [Int32](/reference/data-types/int-uint), [Decimal32](/reference/data-types/decimal) | `INT32` | -| `UINT64` | [UInt64](/reference/data-types/int-uint) | `UINT64` | -| `INT64` | [Int64](/reference/data-types/int-uint), [DateTime64](/reference/data-types/datetime), [Decimal64](/reference/data-types/decimal) | `INT64` | -| `FLOAT32` | [Float32](/reference/data-types/float) | `FLOAT32` | -| `FLOAT64` | [Float64](/reference/data-types/float) | `FLOAT64` | -| `TEXT, DATA` | [String](/reference/data-types/string), [FixedString](/reference/data-types/fixedstring) | `TEXT, DATA` | -| `union(T, Void), union(Void, T)` | [Nullable(T)](/reference/data-types/date) | `union(T, Void), union(Void, T)` | -| `ENUM` | [Enum(8/16)](/reference/data-types/enum) | `ENUM` | -| `LIST` | [Array](/reference/data-types/array) | `LIST` | -| `STRUCT` | [Tuple](/reference/data-types/tuple) | `STRUCT` | -| `UINT32` | [IPv4](/reference/data-types/ipv4) | `UINT32` | -| `DATA` | [IPv6](/reference/data-types/ipv6) | `DATA` | -| `DATA` | [Int128/UInt128/Int256/UInt256](/reference/data-types/int-uint) | `DATA` | -| `DATA` | [Decimal128/Decimal256](/reference/data-types/decimal) | `DATA` | -| `STRUCT(entries LIST(STRUCT(key Key, value Value)))` | [Map](/reference/data-types/map) | `STRUCT(entries LIST(STRUCT(key Key, value Value)))` | +| `UINT8`, `BOOL` | [UInt8](/core/reference/data-types/int-uint) | `UINT8` | +| `INT8` | [Int8](/core/reference/data-types/int-uint) | `INT8` | +| `UINT16` | [UInt16](/core/reference/data-types/int-uint), [Date](/core/reference/data-types/date) | `UINT16` | +| `INT16` | [Int16](/core/reference/data-types/int-uint) | `INT16` | +| `UINT32` | [UInt32](/core/reference/data-types/int-uint), [DateTime](/core/reference/data-types/datetime) | `UINT32` | +| `INT32` | [Int32](/core/reference/data-types/int-uint), [Decimal32](/core/reference/data-types/decimal) | `INT32` | +| `UINT64` | [UInt64](/core/reference/data-types/int-uint) | `UINT64` | +| `INT64` | [Int64](/core/reference/data-types/int-uint), [DateTime64](/core/reference/data-types/datetime), [Decimal64](/core/reference/data-types/decimal) | `INT64` | +| `FLOAT32` | [Float32](/core/reference/data-types/float) | `FLOAT32` | +| `FLOAT64` | [Float64](/core/reference/data-types/float) | `FLOAT64` | +| `TEXT, DATA` | [String](/core/reference/data-types/string), [FixedString](/core/reference/data-types/fixedstring) | `TEXT, DATA` | +| `union(T, Void), union(Void, T)` | [Nullable(T)](/core/reference/data-types/date) | `union(T, Void), union(Void, T)` | +| `ENUM` | [Enum(8/16)](/core/reference/data-types/enum) | `ENUM` | +| `LIST` | [Array](/core/reference/data-types/array) | `LIST` | +| `STRUCT` | [Tuple](/core/reference/data-types/tuple) | `STRUCT` | +| `UINT32` | [IPv4](/core/reference/data-types/ipv4) | `UINT32` | +| `DATA` | [IPv6](/core/reference/data-types/ipv6) | `DATA` | +| `DATA` | [Int128/UInt128/Int256/UInt256](/core/reference/data-types/int-uint) | `DATA` | +| `DATA` | [Decimal128/Decimal256](/core/reference/data-types/decimal) | `DATA` | +| `STRUCT(entries LIST(STRUCT(key Key, value Value)))` | [Map](/core/reference/data-types/map) | `STRUCT(entries LIST(STRUCT(key Key, value Value)))` | - Integer types can be converted into each other during input/output. -- For working with `Enum` in CapnProto format use the [format_capn_proto_enum_comparising_mode](/reference/settings/formats#format_capn_proto_enum_comparising_mode) setting. +- For working with `Enum` in CapnProto format use the [format_capn_proto_enum_comparising_mode](/core/reference/settings/formats#format_capn_proto_enum_comparising_mode) setting. - Arrays can be nested and can have a value of the `Nullable` type as an argument. `Tuple` and `Map` types also can be nested. ## Example usage {#example-usage} @@ -92,7 +92,7 @@ FORMAT CapnProto SETTINGS format_capn_proto_use_autogenerated_schema=1 ``` -In this case, ClickHouse will autogenerate CapnProto schema according to the table structure using function [structureToCapnProtoSchema](/reference/functions/regular-functions/other-functions#structureToCapnProtoSchema) and will use this schema to serialize data in CapnProto format. +In this case, ClickHouse will autogenerate CapnProto schema according to the table structure using function [structureToCapnProtoSchema](/core/reference/functions/regular-functions/other-functions#structureToCapnProtoSchema) and will use this schema to serialize data in CapnProto format. You can also read CapnProto file with autogenerated schema (in this case the file must be created using the same schema): @@ -102,9 +102,9 @@ $ cat hits.bin | clickhouse-client --query "INSERT INTO test.hits SETTINGS forma ## Format settings {#format-settings} -The setting [`format_capn_proto_use_autogenerated_schema`](/reference/settings/formats#format_capn_proto_use_autogenerated_schema) is enabled by default and is applicable if [`format_schema`](/reference/formats#formatschema) is not set. +The setting [`format_capn_proto_use_autogenerated_schema`](/core/reference/settings/formats#format_capn_proto_use_autogenerated_schema) is enabled by default and is applicable if [`format_schema`](/core/reference/formats#formatschema) is not set. -You can also save the autogenerated schema to a file during input/output using setting [`output_format_schema`](/reference/settings/formats#output_format_schema). +You can also save the autogenerated schema to a file during input/output using setting [`output_format_schema`](/core/reference/settings/formats#output_format_schema). For example: diff --git a/reference/formats/CustomSeparated/CustomSeparated.mdx b/core/reference/formats/CustomSeparated/CustomSeparated.mdx similarity index 68% rename from reference/formats/CustomSeparated/CustomSeparated.mdx rename to core/reference/formats/CustomSeparated/CustomSeparated.mdx index 37a084b8..514c6b72 100644 --- a/reference/formats/CustomSeparated/CustomSeparated.mdx +++ b/core/reference/formats/CustomSeparated/CustomSeparated.mdx @@ -15,20 +15,20 @@ doc_type: 'reference' ## Description {#description} -Similar to [Template](/reference/formats/Template/Template), but it prints or reads all names and types of columns and uses escaping rule from [format_custom_escaping_rule](/reference/settings/formats#format_custom_escaping_rule) setting and delimiters from the following settings: +Similar to [Template](/core/reference/formats/Template/Template), but it prints or reads all names and types of columns and uses escaping rule from [format_custom_escaping_rule](/core/reference/settings/formats#format_custom_escaping_rule) setting and delimiters from the following settings: -- [format_custom_field_delimiter](/reference/settings/formats#format_custom_field_delimiter) -- [format_custom_row_before_delimiter](/reference/settings/formats#format_custom_row_before_delimiter) -- [format_custom_row_after_delimiter](/reference/settings/formats#format_custom_row_after_delimiter) -- [format_custom_row_between_delimiter](/reference/settings/formats#format_custom_row_between_delimiter) -- [format_custom_result_before_delimiter](/reference/settings/formats#format_custom_result_before_delimiter) -- [format_custom_result_after_delimiter](/reference/settings/formats#format_custom_result_after_delimiter) +- [format_custom_field_delimiter](/core/reference/settings/formats#format_custom_field_delimiter) +- [format_custom_row_before_delimiter](/core/reference/settings/formats#format_custom_row_before_delimiter) +- [format_custom_row_after_delimiter](/core/reference/settings/formats#format_custom_row_after_delimiter) +- [format_custom_row_between_delimiter](/core/reference/settings/formats#format_custom_row_between_delimiter) +- [format_custom_result_before_delimiter](/core/reference/settings/formats#format_custom_result_before_delimiter) +- [format_custom_result_after_delimiter](/core/reference/settings/formats#format_custom_result_after_delimiter) It does not use escaping rules settings and delimiters from format strings. -There is also the [`CustomSeparatedIgnoreSpaces`](/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces) format, which is similar to [TemplateIgnoreSpaces](/reference/formats/Template/TemplateIgnoreSpaces). +There is also the [`CustomSeparatedIgnoreSpaces`](/core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces) format, which is similar to [TemplateIgnoreSpaces](/core/reference/formats/Template/TemplateIgnoreSpaces). ## Example usage {#example-usage} @@ -88,6 +88,6 @@ Additional settings: | Setting | Description | Default | |----------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|---------| -| [input_format_custom_detect_header](/reference/settings/formats#input_format_custom_detect_header) | enables automatic detection of header with names and types if any. | `true` | -| [input_format_custom_skip_trailing_empty_lines](/reference/settings/formats#input_format_custom_skip_trailing_empty_lines) | skip trailing empty lines at the end of file. | `false` | -| [input_format_custom_allow_variable_number_of_columns](/reference/settings/formats#input_format_custom_allow_variable_number_of_columns) | allow variable number of columns in CustomSeparated format, ignore extra columns and use default values for missing columns. | `false` | \ No newline at end of file +| [input_format_custom_detect_header](/core/reference/settings/formats#input_format_custom_detect_header) | enables automatic detection of header with names and types if any. | `true` | +| [input_format_custom_skip_trailing_empty_lines](/core/reference/settings/formats#input_format_custom_skip_trailing_empty_lines) | skip trailing empty lines at the end of file. | `false` | +| [input_format_custom_allow_variable_number_of_columns](/core/reference/settings/formats#input_format_custom_allow_variable_number_of_columns) | allow variable number of columns in CustomSeparated format, ignore extra columns and use default values for missing columns. | `false` | \ No newline at end of file diff --git a/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.mdx b/core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.mdx similarity index 100% rename from reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.mdx rename to core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces.mdx diff --git a/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.mdx b/core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.mdx similarity index 100% rename from reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.mdx rename to core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames.mdx diff --git a/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.mdx b/core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.mdx similarity index 100% rename from reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.mdx rename to core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes.mdx diff --git a/reference/formats/CustomSeparated/CustomSeparatedWithNames.mdx b/core/reference/formats/CustomSeparated/CustomSeparatedWithNames.mdx similarity index 92% rename from reference/formats/CustomSeparated/CustomSeparatedWithNames.mdx rename to core/reference/formats/CustomSeparated/CustomSeparatedWithNames.mdx index 2e9f5364..a2f7e007 100644 --- a/reference/formats/CustomSeparated/CustomSeparatedWithNames.mdx +++ b/core/reference/formats/CustomSeparated/CustomSeparatedWithNames.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Also prints the header row with column names, similar to [TabSeparatedWithNames](/reference/formats/TabSeparated/TabSeparatedWithNames). +Also prints the header row with column names, similar to [TabSeparatedWithNames](/core/reference/formats/TabSeparated/TabSeparatedWithNames). ## Example usage {#example-usage} @@ -72,8 +72,8 @@ row('date';'season';'home_team';'away_team';'home_team_goals';'away_team_goals') ## Format settings {#format-settings} -If setting [`input_format_with_names_use_header`](/reference/settings/formats#input_format_with_names_use_header) is set to `1`, +If setting [`input_format_with_names_use_header`](/core/reference/settings/formats#input_format_with_names_use_header) is set to `1`, the columns from the input data will be mapped to the columns from the table by their names, -columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. +columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. Otherwise, the first row will be skipped. \ No newline at end of file diff --git a/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.mdx b/core/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.mdx similarity index 89% rename from reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.mdx rename to core/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.mdx index 23a2cc40..677957b8 100644 --- a/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.mdx +++ b/core/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Also prints two header rows with column names and types, similar to [TabSeparatedWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes). +Also prints two header rows with column names and types, similar to [TabSeparatedWithNamesAndTypes](/core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes). ## Example usage {#example-usage} @@ -72,12 +72,12 @@ row('date';'season';'home_team';'away_team';'home_team_goals';'away_team_goals') ## Format settings {#format-settings} -If setting [`input_format_with_names_use_header`](/reference/settings/formats#input_format_with_names_use_header) is set to `1`, -the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. +If setting [`input_format_with_names_use_header`](/core/reference/settings/formats#input_format_with_names_use_header) is set to `1`, +the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. Otherwise, the first row will be skipped. -If setting [`input_format_with_types_use_header`](/reference/settings/formats#input_format_with_types_use_header) is set to `1`, +If setting [`input_format_with_types_use_header`](/core/reference/settings/formats#input_format_with_types_use_header) is set to `1`, the types from input data will be compared with the types of the corresponding columns from the table. Otherwise, the second row will be skipped. diff --git a/reference/formats/DWARF.mdx b/core/reference/formats/DWARF.mdx similarity index 100% rename from reference/formats/DWARF.mdx rename to core/reference/formats/DWARF.mdx diff --git a/reference/formats/Form.mdx b/core/reference/formats/Form.mdx similarity index 100% rename from reference/formats/Form.mdx rename to core/reference/formats/Form.mdx diff --git a/reference/formats/Hash.mdx b/core/reference/formats/Hash.mdx similarity index 100% rename from reference/formats/Hash.mdx rename to core/reference/formats/Hash.mdx diff --git a/reference/formats/HiveText.mdx b/core/reference/formats/HiveText.mdx similarity index 100% rename from reference/formats/HiveText.mdx rename to core/reference/formats/HiveText.mdx diff --git a/reference/formats/JSON/JSON.mdx b/core/reference/formats/JSON/JSON.mdx similarity index 88% rename from reference/formats/JSON/JSON.mdx rename to core/reference/formats/JSON/JSON.mdx index 6c0b257f..6b84edb9 100644 --- a/reference/formats/JSON/JSON.mdx +++ b/core/reference/formats/JSON/JSON.mdx @@ -36,9 +36,9 @@ The `JSON` type is compatible with JavaScript. To ensure this, some characters a - Invalid UTF-8 sequences are changed to the replacement character � so the output text will consist of valid UTF-8 sequences. For compatibility with JavaScript, Int64 and UInt64 integers are enclosed in double quotes by default. -To remove the quotes, you can set the configuration parameter [`output_format_json_quote_64bit_integers`](/reference/settings/formats#output_format_json_quote_64bit_integers) to `0`. +To remove the quotes, you can set the configuration parameter [`output_format_json_quote_64bit_integers`](/core/reference/settings/formats#output_format_json_quote_64bit_integers) to `0`. -ClickHouse supports [NULL](/reference/syntax), which is displayed as `null` in the JSON output. To enable `+nan`, `-nan`, `+inf`, `-inf` values in output, set the [output_format_json_quote_denormals](/reference/settings/formats#output_format_json_quote_denormals) to `1`. +ClickHouse supports [NULL](/core/reference/syntax), which is displayed as `null` in the JSON output. To enable `+nan`, `-nan`, `+inf`, `-inf` values in output, set the [output_format_json_quote_denormals](/core/reference/settings/formats#output_format_json_quote_denormals) to `1`. ## Example usage {#example-usage} @@ -100,10 +100,10 @@ SELECT SearchPhrase, count() AS c FROM test.hits GROUP BY SearchPhrase WITH TOTA ## Format settings {#format-settings} -For JSON input format, if setting [`input_format_json_validate_types_from_metadata`](/reference/settings/formats#input_format_json_validate_types_from_metadata) is set to `1`, +For JSON input format, if setting [`input_format_json_validate_types_from_metadata`](/core/reference/settings/formats#input_format_json_validate_types_from_metadata) is set to `1`, the types from metadata in input data will be compared with the types of the corresponding columns from the table. ## See also {#see-also} -- [JSONEachRow](/reference/formats/JSON/JSONEachRow) format -- [output_format_json_array_of_rows](/reference/settings/formats#output_format_json_array_of_rows) setting +- [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) format +- [output_format_json_array_of_rows](/core/reference/settings/formats#output_format_json_array_of_rows) setting diff --git a/reference/formats/JSON/JSONAsObject.mdx b/core/reference/formats/JSON/JSONAsObject.mdx similarity index 81% rename from reference/formats/JSON/JSONAsObject.mdx rename to core/reference/formats/JSON/JSONAsObject.mdx index c444d09b..a97bebc8 100644 --- a/reference/formats/JSON/JSONAsObject.mdx +++ b/core/reference/formats/JSON/JSONAsObject.mdx @@ -11,9 +11,9 @@ doc_type: 'reference' ## Description {#description} -In this format, a single JSON object is interpreted as a single [JSON](/reference/data-types/newjson) value. If the input has several JSON objects (comma separated), they are interpreted as separate rows. If the input data is enclosed in `[]`, it is interpreted as an array of JSONs. +In this format, a single JSON object is interpreted as a single [JSON](/core/reference/data-types/newjson) value. If the input has several JSON objects (comma separated), they are interpreted as separate rows. If the input data is enclosed in `[]`, it is interpreted as an array of JSONs. -This format can only be parsed for a table with a single field of type [JSON](/reference/data-types/newjson). The remaining columns must be set to [`DEFAULT`](/reference/statements/create/table#default) or [`MATERIALIZED`](/reference/statements/create/view#materialized-view). +This format can only be parsed for a table with a single field of type [JSON](/core/reference/data-types/newjson). The remaining columns must be set to [`DEFAULT`](/core/reference/statements/create/table#default) or [`MATERIALIZED`](/core/reference/statements/create/view#materialized-view). ## Example usage {#example-usage} diff --git a/reference/formats/JSON/JSONAsString.mdx b/core/reference/formats/JSON/JSONAsString.mdx similarity index 86% rename from reference/formats/JSON/JSONAsString.mdx rename to core/reference/formats/JSON/JSONAsString.mdx index 188096a0..a06d7d6a 100644 --- a/reference/formats/JSON/JSONAsString.mdx +++ b/core/reference/formats/JSON/JSONAsString.mdx @@ -20,12 +20,12 @@ If the input has several JSON objects (which are comma separated), they are inte If the input data is enclosed in `[]`, it is interpreted as an array of JSON objects. -This format can only be parsed for a table with a single field of type [String](/reference/data-types/string). -The remaining columns must be set to either [`DEFAULT`](/reference/statements/create/table#default) or [`MATERIALIZED`](/reference/statements/create/view#materialized-view), +This format can only be parsed for a table with a single field of type [String](/core/reference/data-types/string). +The remaining columns must be set to either [`DEFAULT`](/core/reference/statements/create/table#default) or [`MATERIALIZED`](/core/reference/statements/create/view#materialized-view), or be omitted. -Once you serialize the entire JSON object to a String you can use the [JSON functions](/reference/functions/regular-functions/json-functions) to process it. +Once you serialize the entire JSON object to a String you can use the [JSON functions](/core/reference/functions/regular-functions/json-functions) to process it. ## Example usage {#example-usage} diff --git a/reference/formats/JSON/JSONColumns.mdx b/core/reference/formats/JSON/JSONColumns.mdx similarity index 94% rename from reference/formats/JSON/JSONColumns.mdx rename to core/reference/formats/JSON/JSONColumns.mdx index ad2e9435..77f3310e 100644 --- a/reference/formats/JSON/JSONColumns.mdx +++ b/core/reference/formats/JSON/JSONColumns.mdx @@ -74,5 +74,5 @@ The output will be in JSON format: ## Format settings {#format-settings} -During import, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. -Columns that are not present in the block will be filled with default values (you can use the [`input_format_defaults_for_omitted_fields`](/reference/settings/formats#input_format_defaults_for_omitted_fields) setting here) \ No newline at end of file +During import, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. +Columns that are not present in the block will be filled with default values (you can use the [`input_format_defaults_for_omitted_fields`](/core/reference/settings/formats#input_format_defaults_for_omitted_fields) setting here) \ No newline at end of file diff --git a/reference/formats/JSON/JSONColumnsWithMetadata.mdx b/core/reference/formats/JSON/JSONColumnsWithMetadata.mdx similarity index 82% rename from reference/formats/JSON/JSONColumnsWithMetadata.mdx rename to core/reference/formats/JSON/JSONColumnsWithMetadata.mdx index 30f7f94d..a6cdec3b 100644 --- a/reference/formats/JSON/JSONColumnsWithMetadata.mdx +++ b/core/reference/formats/JSON/JSONColumnsWithMetadata.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from the [`JSONColumns`](/reference/formats/JSON/JSONColumns) format in that it also contains some metadata and statistics (similar to the [`JSON`](/reference/formats/JSON/JSON) format). +Differs from the [`JSONColumns`](/core/reference/formats/JSON/JSONColumns) format in that it also contains some metadata and statistics (similar to the [`JSON`](/core/reference/formats/JSON/JSON) format). The `JSONColumnsWithMetadata` format buffers all data in memory and then outputs it as a single block, so, it can lead to high memory consumption. @@ -64,7 +64,7 @@ Example: } ``` -For the `JSONColumnsWithMetadata` input format, if setting [`input_format_json_validate_types_from_metadata`](/reference/settings/formats#input_format_json_validate_types_from_metadata) is set to `1`, +For the `JSONColumnsWithMetadata` input format, if setting [`input_format_json_validate_types_from_metadata`](/core/reference/settings/formats#input_format_json_validate_types_from_metadata) is set to `1`, the types from metadata in input data will be compared with the types of the corresponding columns from the table. ## Format settings {#format-settings} \ No newline at end of file diff --git a/reference/formats/JSON/JSONCompact.mdx b/core/reference/formats/JSON/JSONCompact.mdx similarity index 97% rename from reference/formats/JSON/JSONCompact.mdx rename to core/reference/formats/JSON/JSONCompact.mdx index 4b2e69df..eb3e429e 100644 --- a/reference/formats/JSON/JSONCompact.mdx +++ b/core/reference/formats/JSON/JSONCompact.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from [JSON](/reference/formats/JSON/JSON) only in that data rows are output as arrays, not as objects. +Differs from [JSON](/core/reference/formats/JSON/JSON) only in that data rows are output as arrays, not as objects. ## Example usage {#example-usage} diff --git a/reference/formats/JSON/JSONCompactColumns.mdx b/core/reference/formats/JSON/JSONCompactColumns.mdx similarity index 97% rename from reference/formats/JSON/JSONCompactColumns.mdx rename to core/reference/formats/JSON/JSONCompactColumns.mdx index a6524bc6..85bd0366 100644 --- a/reference/formats/JSON/JSONCompactColumns.mdx +++ b/core/reference/formats/JSON/JSONCompactColumns.mdx @@ -67,6 +67,6 @@ The output will be in JSON format: ] ``` -Columns that are not present in the block will be filled with default values (you can use [`input_format_defaults_for_omitted_fields`](/reference/settings/formats#input_format_defaults_for_omitted_fields) setting here) +Columns that are not present in the block will be filled with default values (you can use [`input_format_defaults_for_omitted_fields`](/core/reference/settings/formats#input_format_defaults_for_omitted_fields) setting here) ## Format settings {#format-settings} diff --git a/reference/formats/JSON/JSONCompactEachRow.mdx b/core/reference/formats/JSON/JSONCompactEachRow.mdx similarity index 95% rename from reference/formats/JSON/JSONCompactEachRow.mdx rename to core/reference/formats/JSON/JSONCompactEachRow.mdx index 77b1668a..52c211cc 100644 --- a/reference/formats/JSON/JSONCompactEachRow.mdx +++ b/core/reference/formats/JSON/JSONCompactEachRow.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from [`JSONEachRow`](/reference/formats/JSON/JSONEachRow) only in that data rows are output as arrays, not as objects. +Differs from [`JSONEachRow`](/core/reference/formats/JSON/JSONEachRow) only in that data rows are output as arrays, not as objects. ## Example usage {#example-usage} diff --git a/reference/formats/JSON/JSONCompactEachRowWithNames.mdx b/core/reference/formats/JSON/JSONCompactEachRowWithNames.mdx similarity index 86% rename from reference/formats/JSON/JSONCompactEachRowWithNames.mdx rename to core/reference/formats/JSON/JSONCompactEachRowWithNames.mdx index 8719f0e3..3c437678 100644 --- a/reference/formats/JSON/JSONCompactEachRowWithNames.mdx +++ b/core/reference/formats/JSON/JSONCompactEachRowWithNames.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from the [`JSONCompactEachRow`](/reference/formats/JSON/JSONCompactEachRow) format in that it also prints the header row with column names, similar to the [`TabSeparatedWithNames`](/reference/formats/TabSeparated/TabSeparatedWithNames) format. +Differs from the [`JSONCompactEachRow`](/core/reference/formats/JSON/JSONCompactEachRow) format in that it also prints the header row with column names, similar to the [`TabSeparatedWithNames`](/core/reference/formats/TabSeparated/TabSeparatedWithNames) format. ## Example usage {#example-usage} @@ -86,7 +86,7 @@ The output will be in JSON format: ## Format settings {#format-settings} -If setting [`input_format_with_names_use_header`](/reference/settings/formats#input_format_with_names_use_header) is set to 1, -the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. +If setting [`input_format_with_names_use_header`](/core/reference/settings/formats#input_format_with_names_use_header) is set to 1, +the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. Otherwise, the first row will be skipped. diff --git a/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes.mdx b/core/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes.mdx similarity index 84% rename from reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes.mdx rename to core/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes.mdx index fc307a63..774d104d 100644 --- a/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes.mdx +++ b/core/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from the [`JSONCompactEachRow`](/reference/formats/JSON/JSONCompactEachRow) format in that it also prints two header rows with column names and types, similar to the [TabSeparatedWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) format. +Differs from the [`JSONCompactEachRow`](/core/reference/formats/JSON/JSONCompactEachRow) format in that it also prints two header rows with column names and types, similar to the [TabSeparatedWithNamesAndTypes](/core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) format. ## Example usage {#example-usage} @@ -88,9 +88,9 @@ The output will be in JSON format: ## Format settings {#format-settings} -If setting [`input_format_with_names_use_header`](/reference/settings/formats#input_format_with_names_use_header) is set to `1`, -the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. +If setting [`input_format_with_names_use_header`](/core/reference/settings/formats#input_format_with_names_use_header) is set to `1`, +the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. Otherwise, the first row will be skipped. -If setting [`input_format_with_types_use_header`](/reference/settings/formats#input_format_with_types_use_header) is set to `1`, +If setting [`input_format_with_types_use_header`](/core/reference/settings/formats#input_format_with_types_use_header) is set to `1`, the types from input data will be compared with the types of the corresponding columns from the table. Otherwise, the second row will be skipped. \ No newline at end of file diff --git a/reference/formats/JSON/JSONCompactEachRowWithProgress.mdx b/core/reference/formats/JSON/JSONCompactEachRowWithProgress.mdx similarity index 100% rename from reference/formats/JSON/JSONCompactEachRowWithProgress.mdx rename to core/reference/formats/JSON/JSONCompactEachRowWithProgress.mdx diff --git a/reference/formats/JSON/JSONCompactStrings.mdx b/core/reference/formats/JSON/JSONCompactStrings.mdx similarity index 94% rename from reference/formats/JSON/JSONCompactStrings.mdx rename to core/reference/formats/JSON/JSONCompactStrings.mdx index 48280238..8ead19f2 100644 --- a/reference/formats/JSON/JSONCompactStrings.mdx +++ b/core/reference/formats/JSON/JSONCompactStrings.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -The `JSONCompactStrings` format differs from [JSONStrings](/reference/formats/JSON/JSONStrings) only in that data rows are output as arrays, not as objects. +The `JSONCompactStrings` format differs from [JSONStrings](/core/reference/formats/JSON/JSONStrings) only in that data rows are output as arrays, not as objects. ## Example usage {#example-usage} diff --git a/reference/formats/JSON/JSONCompactStringsEachRow.mdx b/core/reference/formats/JSON/JSONCompactStringsEachRow.mdx similarity index 95% rename from reference/formats/JSON/JSONCompactStringsEachRow.mdx rename to core/reference/formats/JSON/JSONCompactStringsEachRow.mdx index 20bcd8a3..7b119c45 100644 --- a/reference/formats/JSON/JSONCompactStringsEachRow.mdx +++ b/core/reference/formats/JSON/JSONCompactStringsEachRow.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from [`JSONCompactEachRow`](/reference/formats/JSON/JSONCompactEachRow) only in that data fields are output as strings, not as typed JSON values. +Differs from [`JSONCompactEachRow`](/core/reference/formats/JSON/JSONCompactEachRow) only in that data fields are output as strings, not as typed JSON values. ## Example usage {#example-usage} diff --git a/reference/formats/JSON/JSONCompactStringsEachRowWithNames.mdx b/core/reference/formats/JSON/JSONCompactStringsEachRowWithNames.mdx similarity index 87% rename from reference/formats/JSON/JSONCompactStringsEachRowWithNames.mdx rename to core/reference/formats/JSON/JSONCompactStringsEachRowWithNames.mdx index ee42c226..9fd0d7d1 100644 --- a/reference/formats/JSON/JSONCompactStringsEachRowWithNames.mdx +++ b/core/reference/formats/JSON/JSONCompactStringsEachRowWithNames.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from the [`JSONCompactEachRow`](/reference/formats/JSON/JSONCompactEachRow) format in that it also prints the header row with column names, similar to the [TabSeparatedWithNames](/reference/formats/TabSeparated/TabSeparatedWithNames) format. +Differs from the [`JSONCompactEachRow`](/core/reference/formats/JSON/JSONCompactEachRow) format in that it also prints the header row with column names, similar to the [TabSeparatedWithNames](/core/reference/formats/TabSeparated/TabSeparatedWithNames) format. ## Example usage {#example-usage} @@ -86,7 +86,7 @@ The output will be in JSON format: ## Format settings {#format-settings} -If setting [`input_format_with_names_use_header`](/reference/settings/formats#input_format_with_names_use_header) is set to `1`, -the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. +If setting [`input_format_with_names_use_header`](/core/reference/settings/formats#input_format_with_names_use_header) is set to `1`, +the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. Otherwise, the first row will be skipped. \ No newline at end of file diff --git a/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.mdx b/core/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.mdx similarity index 89% rename from reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.mdx rename to core/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.mdx index 56896bfd..0a1e1c20 100644 --- a/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.mdx +++ b/core/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes.mdx @@ -12,7 +12,7 @@ doc_type: 'reference' ## Description {#description} -Differs from `JSONCompactEachRow` format in that it also prints two header rows with column names and types, similar to [TabSeparatedWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes). +Differs from `JSONCompactEachRow` format in that it also prints two header rows with column names and types, similar to [TabSeparatedWithNamesAndTypes](/core/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes). ## Example usage {#example-usage} @@ -85,12 +85,12 @@ The output will be in JSON format: ## Format settings {#format-settings} -If setting [input_format_with_names_use_header](/reference/settings/formats#input_format_with_names_use_header) is set to 1, -the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. +If setting [input_format_with_names_use_header](/core/reference/settings/formats#input_format_with_names_use_header) is set to 1, +the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. Otherwise, the first row will be skipped. -If setting [input_format_with_types_use_header](/reference/settings/formats#input_format_with_types_use_header) is set to 1, +If setting [input_format_with_types_use_header](/core/reference/settings/formats#input_format_with_types_use_header) is set to 1, the types from input data will be compared with the types of the corresponding columns from the table. Otherwise, the second row will be skipped. \ No newline at end of file diff --git a/reference/formats/JSON/JSONCompactStringsEachRowWithProgress.mdx b/core/reference/formats/JSON/JSONCompactStringsEachRowWithProgress.mdx similarity index 92% rename from reference/formats/JSON/JSONCompactStringsEachRowWithProgress.mdx rename to core/reference/formats/JSON/JSONCompactStringsEachRowWithProgress.mdx index 64dd0dc2..cefa77e4 100644 --- a/reference/formats/JSON/JSONCompactStringsEachRowWithProgress.mdx +++ b/core/reference/formats/JSON/JSONCompactStringsEachRowWithProgress.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Similar to [`JSONCompactEachRowWithProgress`](/reference/formats/JSON/JSONCompactEachRowWithProgress), but all values are converted to strings. +Similar to [`JSONCompactEachRowWithProgress`](/core/reference/formats/JSON/JSONCompactEachRowWithProgress), but all values are converted to strings. This is useful when you need consistent string representation of all data types. Key features: diff --git a/reference/formats/JSON/JSONEachRow.mdx b/core/reference/formats/JSON/JSONEachRow.mdx similarity index 97% rename from reference/formats/JSON/JSONEachRow.mdx rename to core/reference/formats/JSON/JSONEachRow.mdx index 2b007bac..42a1a4da 100644 --- a/reference/formats/JSON/JSONEachRow.mdx +++ b/core/reference/formats/JSON/JSONEachRow.mdx @@ -79,6 +79,6 @@ The output will be in JSON format: {"date":"2022-05-07","season":2021,"home_team":"Walsall","away_team":"Swindon Town","home_team_goals":0,"away_team_goals":3} ``` -Importing data columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. +Importing data columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. ## Format settings {#format-settings} \ No newline at end of file diff --git a/reference/formats/JSON/JSONEachRowWithProgress.mdx b/core/reference/formats/JSON/JSONEachRowWithProgress.mdx similarity index 77% rename from reference/formats/JSON/JSONEachRowWithProgress.mdx rename to core/reference/formats/JSON/JSONEachRowWithProgress.mdx index e1ff14bd..1a0f5956 100644 --- a/reference/formats/JSON/JSONEachRowWithProgress.mdx +++ b/core/reference/formats/JSON/JSONEachRowWithProgress.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from [`JSONEachRow`](/reference/formats/JSON/JSONEachRow)/[`JSONStringsEachRow`](/reference/formats/JSON/JSONStringsEachRow) in that ClickHouse will also yield progress information as JSON values. +Differs from [`JSONEachRow`](/core/reference/formats/JSON/JSONEachRow)/[`JSONStringsEachRow`](/core/reference/formats/JSON/JSONStringsEachRow) in that ClickHouse will also yield progress information as JSON values. ## Example usage {#example-usage} diff --git a/reference/formats/JSON/JSONLines.mdx b/core/reference/formats/JSON/JSONLines.mdx similarity index 97% rename from reference/formats/JSON/JSONLines.mdx rename to core/reference/formats/JSON/JSONLines.mdx index 84303ad3..ff0ca810 100644 --- a/reference/formats/JSON/JSONLines.mdx +++ b/core/reference/formats/JSON/JSONLines.mdx @@ -81,6 +81,6 @@ The output will be in JSON format: {"date":"2022-05-07","season":2021,"home_team":"Walsall","away_team":"Swindon Town","home_team_goals":0,"away_team_goals":3} ``` -Importing data columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. +Importing data columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. ## Format settings {#format-settings} \ No newline at end of file diff --git a/reference/formats/JSON/JSONObjectEachRow.mdx b/core/reference/formats/JSON/JSONObjectEachRow.mdx similarity index 56% rename from reference/formats/JSON/JSONObjectEachRow.mdx rename to core/reference/formats/JSON/JSONObjectEachRow.mdx index 8d15bf4d..cbedf82c 100644 --- a/reference/formats/JSON/JSONObjectEachRow.mdx +++ b/core/reference/formats/JSON/JSONObjectEachRow.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -In this format, all data is represented as a single JSON Object, with each row represented as a separate field of this object similar to the [`JSONEachRow`](/reference/formats/JSON/JSONEachRow) format. +In this format, all data is represented as a single JSON Object, with each row represented as a separate field of this object similar to the [`JSONEachRow`](/core/reference/formats/JSON/JSONEachRow) format. ## Example usage {#example-usage} @@ -31,7 +31,7 @@ Given some JSON: } ``` -To use an object name as a column value you can use the special setting [`format_json_object_each_row_column_for_object_name`](/reference/settings/formats#format_json_object_each_row_column_for_object_name). +To use an object name as a column value you can use the special setting [`format_json_object_each_row_column_for_object_name`](/core/reference/settings/formats#format_json_object_each_row_column_for_object_name). The value of this setting is set to the name of a column, that is used as JSON key for a row in the resulting object. #### Output {#output} @@ -104,9 +104,9 @@ ClickHouse ignores spaces between elements and commas after the objects. You can #### Omitted values processing {#omitted-values-processing} -ClickHouse substitutes omitted values with the default values for the corresponding [data types](/reference/data-types). +ClickHouse substitutes omitted values with the default values for the corresponding [data types](/core/reference/data-types). -If `DEFAULT expr` is specified, ClickHouse uses different substitution rules depending on the [input_format_defaults_for_omitted_fields](/reference/settings/formats#input_format_defaults_for_omitted_fields) setting. +If `DEFAULT expr` is specified, ClickHouse uses different substitution rules depending on the [input_format_defaults_for_omitted_fields](/core/reference/settings/formats#input_format_defaults_for_omitted_fields) setting. Consider the following table: @@ -143,15 +143,15 @@ The query `SELECT * FROM UserActivity FORMAT JSONEachRow` returns: {"UserID":"4324182021466249494","PageViews":6,"Duration":185,"Sign":1} ``` -Unlike the [JSON](/reference/formats/JSON/JSON) format, there is no substitution of invalid UTF-8 sequences. Values are escaped in the same way as for `JSON`. +Unlike the [JSON](/core/reference/formats/JSON/JSON) format, there is no substitution of invalid UTF-8 sequences. Values are escaped in the same way as for `JSON`. -Any set of bytes can be output in the strings. Use the [`JSONEachRow`](/reference/formats/JSON/JSONEachRow) format if you are sure that the data in the table can be formatted as JSON without losing any information. +Any set of bytes can be output in the strings. Use the [`JSONEachRow`](/core/reference/formats/JSON/JSONEachRow) format if you are sure that the data in the table can be formatted as JSON without losing any information. ### Usage of Nested Structures {#jsoneachrow-nested} -If you have a table with the [`Nested`](/reference/data-types/nested-data-structures) data type columns, you can insert JSON data with the same structure. Enable this feature with the [input_format_import_nested_json](/reference/settings/formats#input_format_import_nested_json) setting. +If you have a table with the [`Nested`](/core/reference/data-types/nested-data-structures) data type columns, you can insert JSON data with the same structure. Enable this feature with the [input_format_import_nested_json](/core/reference/settings/formats#input_format_import_nested_json) setting. For example, consider the following table: @@ -165,7 +165,7 @@ As you can see in the `Nested` data type description, ClickHouse treats each com INSERT INTO json_each_row_nested FORMAT JSONEachRow {"n.s": ["abc", "def"], "n.i": [1, 23]} ``` -To insert data as a hierarchical JSON object, set [`input_format_import_nested_json=1`](/reference/settings/formats#input_format_import_nested_json). +To insert data as a hierarchical JSON object, set [`input_format_import_nested_json=1`](/core/reference/settings/formats#input_format_import_nested_json). ```json { @@ -212,26 +212,26 @@ SELECT * FROM json_each_row_nested | Setting | Description | Default | Notes | |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [`input_format_import_nested_json`](/reference/settings/formats#input_format_import_nested_json) | map nested JSON data to nested tables (it works for JSONEachRow format). | `false` | | -| [`input_format_json_read_bools_as_numbers`](/reference/settings/formats#input_format_json_read_bools_as_numbers) | allow to parse bools as numbers in JSON input formats. | `true` | | -| [`input_format_json_read_bools_as_strings`](/reference/settings/formats#input_format_json_read_bools_as_strings) | allow to parse bools as strings in JSON input formats. | `true` | | -| [`input_format_json_read_numbers_as_strings`](/reference/settings/formats#input_format_json_read_numbers_as_strings) | allow to parse numbers as strings in JSON input formats. | `true` | | -| [`input_format_json_read_arrays_as_strings`](/reference/settings/formats#input_format_json_read_arrays_as_strings) | allow to parse JSON arrays as strings in JSON input formats. | `true` | | -| [`input_format_json_read_objects_as_strings`](/reference/settings/formats#input_format_json_read_objects_as_strings) | allow to parse JSON objects as strings in JSON input formats. | `true` | | -| [`input_format_json_named_tuples_as_objects`](/reference/settings/formats#input_format_json_named_tuples_as_objects) | parse named tuple columns as JSON objects. | `true` | | -| [`input_format_json_try_infer_numbers_from_strings`](/reference/settings/formats#input_format_json_try_infer_numbers_from_strings) | try to infer numbers from string fields while schema inference. | `false` | | -| [`input_format_json_try_infer_named_tuples_from_objects`](/reference/settings/formats#input_format_json_try_infer_named_tuples_from_objects) | try to infer named tuple from JSON objects during schema inference. | `true` | | -| [`input_format_json_infer_incomplete_types_as_strings`](/reference/settings/formats#input_format_json_infer_incomplete_types_as_strings) | use type String for keys that contains only Nulls or empty objects/arrays during schema inference in JSON input formats. | `true` | | -| [`input_format_json_defaults_for_missing_elements_in_named_tuple`](/reference/settings/formats#input_format_json_defaults_for_missing_elements_in_named_tuple) | insert default values for missing elements in JSON object while parsing named tuple. | `true` | | -| [`input_format_json_ignore_unknown_keys_in_named_tuple`](/reference/settings/formats#input_format_json_ignore_unknown_keys_in_named_tuple) | ignore unknown keys in json object for named tuples. | `false` | | -| [`input_format_json_compact_allow_variable_number_of_columns`](/reference/settings/formats#input_format_json_compact_allow_variable_number_of_columns) | allow variable number of columns in JSONCompact/JSONCompactEachRow format, ignore extra columns and use default values on missing columns. | `false` | | -| [`input_format_json_throw_on_bad_escape_sequence`](/reference/settings/formats#input_format_json_throw_on_bad_escape_sequence) | throw an exception if JSON string contains bad escape sequence. If disabled, bad escape sequences will remain as is in the data. | `true` | | -| [`input_format_json_empty_as_default`](/reference/settings/formats#input_format_json_empty_as_default) | treat empty fields in JSON input as default values. | `false`. | For complex default expressions [`input_format_defaults_for_omitted_fields`](/reference/settings/formats#input_format_defaults_for_omitted_fields) must be enabled too. | -| [`output_format_json_quote_64bit_integers`](/reference/settings/formats#output_format_json_quote_64bit_integers) | controls quoting of 64-bit integers in JSON output format. | `true` | | -| [`output_format_json_quote_64bit_floats`](/reference/settings/formats#output_format_json_quote_64bit_floats) | controls quoting of 64-bit floats in JSON output format. | `false` | | -| [`output_format_json_quote_denormals`](/reference/settings/formats#output_format_json_quote_denormals) | enables '+nan', '-nan', '+inf', '-inf' outputs in JSON output format. | `false` | | -| [`output_format_json_quote_decimals`](/reference/settings/formats#output_format_json_quote_decimals) | controls quoting of decimals in JSON output format. | `false` | | -| [`output_format_json_escape_forward_slashes`](/reference/settings/formats#output_format_json_escape_forward_slashes) | controls escaping forward slashes for string outputs in JSON output format. | `true` | | -| [`output_format_json_named_tuples_as_objects`](/reference/settings/formats#output_format_json_named_tuples_as_objects) | serialize named tuple columns as JSON objects. | `true` | | -| [`output_format_json_array_of_rows`](/reference/settings/formats#output_format_json_array_of_rows) | output a JSON array of all rows in JSONEachRow(Compact) format. | `false` | | -| [`output_format_json_validate_utf8`](/reference/settings/formats#output_format_json_validate_utf8) | enables validation of UTF-8 sequences in JSON output formats (note that it doesn't impact formats JSON/JSONCompact/JSONColumnsWithMetadata, they always validate utf8). | `false` | | \ No newline at end of file +| [`input_format_import_nested_json`](/core/reference/settings/formats#input_format_import_nested_json) | map nested JSON data to nested tables (it works for JSONEachRow format). | `false` | | +| [`input_format_json_read_bools_as_numbers`](/core/reference/settings/formats#input_format_json_read_bools_as_numbers) | allow to parse bools as numbers in JSON input formats. | `true` | | +| [`input_format_json_read_bools_as_strings`](/core/reference/settings/formats#input_format_json_read_bools_as_strings) | allow to parse bools as strings in JSON input formats. | `true` | | +| [`input_format_json_read_numbers_as_strings`](/core/reference/settings/formats#input_format_json_read_numbers_as_strings) | allow to parse numbers as strings in JSON input formats. | `true` | | +| [`input_format_json_read_arrays_as_strings`](/core/reference/settings/formats#input_format_json_read_arrays_as_strings) | allow to parse JSON arrays as strings in JSON input formats. | `true` | | +| [`input_format_json_read_objects_as_strings`](/core/reference/settings/formats#input_format_json_read_objects_as_strings) | allow to parse JSON objects as strings in JSON input formats. | `true` | | +| [`input_format_json_named_tuples_as_objects`](/core/reference/settings/formats#input_format_json_named_tuples_as_objects) | parse named tuple columns as JSON objects. | `true` | | +| [`input_format_json_try_infer_numbers_from_strings`](/core/reference/settings/formats#input_format_json_try_infer_numbers_from_strings) | try to infer numbers from string fields while schema inference. | `false` | | +| [`input_format_json_try_infer_named_tuples_from_objects`](/core/reference/settings/formats#input_format_json_try_infer_named_tuples_from_objects) | try to infer named tuple from JSON objects during schema inference. | `true` | | +| [`input_format_json_infer_incomplete_types_as_strings`](/core/reference/settings/formats#input_format_json_infer_incomplete_types_as_strings) | use type String for keys that contains only Nulls or empty objects/arrays during schema inference in JSON input formats. | `true` | | +| [`input_format_json_defaults_for_missing_elements_in_named_tuple`](/core/reference/settings/formats#input_format_json_defaults_for_missing_elements_in_named_tuple) | insert default values for missing elements in JSON object while parsing named tuple. | `true` | | +| [`input_format_json_ignore_unknown_keys_in_named_tuple`](/core/reference/settings/formats#input_format_json_ignore_unknown_keys_in_named_tuple) | ignore unknown keys in json object for named tuples. | `false` | | +| [`input_format_json_compact_allow_variable_number_of_columns`](/core/reference/settings/formats#input_format_json_compact_allow_variable_number_of_columns) | allow variable number of columns in JSONCompact/JSONCompactEachRow format, ignore extra columns and use default values on missing columns. | `false` | | +| [`input_format_json_throw_on_bad_escape_sequence`](/core/reference/settings/formats#input_format_json_throw_on_bad_escape_sequence) | throw an exception if JSON string contains bad escape sequence. If disabled, bad escape sequences will remain as is in the data. | `true` | | +| [`input_format_json_empty_as_default`](/core/reference/settings/formats#input_format_json_empty_as_default) | treat empty fields in JSON input as default values. | `false`. | For complex default expressions [`input_format_defaults_for_omitted_fields`](/core/reference/settings/formats#input_format_defaults_for_omitted_fields) must be enabled too. | +| [`output_format_json_quote_64bit_integers`](/core/reference/settings/formats#output_format_json_quote_64bit_integers) | controls quoting of 64-bit integers in JSON output format. | `true` | | +| [`output_format_json_quote_64bit_floats`](/core/reference/settings/formats#output_format_json_quote_64bit_floats) | controls quoting of 64-bit floats in JSON output format. | `false` | | +| [`output_format_json_quote_denormals`](/core/reference/settings/formats#output_format_json_quote_denormals) | enables '+nan', '-nan', '+inf', '-inf' outputs in JSON output format. | `false` | | +| [`output_format_json_quote_decimals`](/core/reference/settings/formats#output_format_json_quote_decimals) | controls quoting of decimals in JSON output format. | `false` | | +| [`output_format_json_escape_forward_slashes`](/core/reference/settings/formats#output_format_json_escape_forward_slashes) | controls escaping forward slashes for string outputs in JSON output format. | `true` | | +| [`output_format_json_named_tuples_as_objects`](/core/reference/settings/formats#output_format_json_named_tuples_as_objects) | serialize named tuple columns as JSON objects. | `true` | | +| [`output_format_json_array_of_rows`](/core/reference/settings/formats#output_format_json_array_of_rows) | output a JSON array of all rows in JSONEachRow(Compact) format. | `false` | | +| [`output_format_json_validate_utf8`](/core/reference/settings/formats#output_format_json_validate_utf8) | enables validation of UTF-8 sequences in JSON output formats (note that it doesn't impact formats JSON/JSONCompact/JSONColumnsWithMetadata, they always validate utf8). | `false` | | \ No newline at end of file diff --git a/reference/formats/JSON/JSONStrings.mdx b/core/reference/formats/JSON/JSONStrings.mdx similarity index 98% rename from reference/formats/JSON/JSONStrings.mdx rename to core/reference/formats/JSON/JSONStrings.mdx index 3127ba39..ce71704e 100644 --- a/reference/formats/JSON/JSONStrings.mdx +++ b/core/reference/formats/JSON/JSONStrings.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from the [JSON](/reference/formats/JSON/JSON) format only in that data fields are output as strings, not as typed JSON values. +Differs from the [JSON](/core/reference/formats/JSON/JSON) format only in that data fields are output as strings, not as typed JSON values. ## Example usage {#example-usage} diff --git a/reference/formats/JSON/JSONStringsEachRow.mdx b/core/reference/formats/JSON/JSONStringsEachRow.mdx similarity index 97% rename from reference/formats/JSON/JSONStringsEachRow.mdx rename to core/reference/formats/JSON/JSONStringsEachRow.mdx index af83a503..0c8b85ef 100644 --- a/reference/formats/JSON/JSONStringsEachRow.mdx +++ b/core/reference/formats/JSON/JSONStringsEachRow.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from the [`JSONEachRow`](/reference/formats/JSON/JSONEachRow) only in that data fields are output in strings, not in typed JSON values. +Differs from the [`JSONEachRow`](/core/reference/formats/JSON/JSONEachRow) only in that data fields are output in strings, not in typed JSON values. ## Example usage {#example-usage} diff --git a/reference/formats/JSON/JSONStringsEachRowWithProgress.mdx b/core/reference/formats/JSON/JSONStringsEachRowWithProgress.mdx similarity index 100% rename from reference/formats/JSON/JSONStringsEachRowWithProgress.mdx rename to core/reference/formats/JSON/JSONStringsEachRowWithProgress.mdx diff --git a/reference/formats/JSON/PrettyJSONEachRow.mdx b/core/reference/formats/JSON/PrettyJSONEachRow.mdx similarity index 97% rename from reference/formats/JSON/PrettyJSONEachRow.mdx rename to core/reference/formats/JSON/PrettyJSONEachRow.mdx index c7738685..30254720 100644 --- a/reference/formats/JSON/PrettyJSONEachRow.mdx +++ b/core/reference/formats/JSON/PrettyJSONEachRow.mdx @@ -15,7 +15,7 @@ doc_type: 'guide' ## Description {#description} -Differs from [JSONEachRow](/reference/formats/JSON/JSONEachRow) only in that JSON is pretty formatted with new line delimiters and 4 space indents. +Differs from [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) only in that JSON is pretty formatted with new line delimiters and 4 space indents. ## Example usage {#example-usage} ### Inserting data {#inserting-data} diff --git a/core/reference/formats/JSON/format-settings.mdx b/core/reference/formats/JSON/format-settings.mdx new file mode 100644 index 00000000..d5e0edae --- /dev/null +++ b/core/reference/formats/JSON/format-settings.mdx @@ -0,0 +1,37 @@ +--- +description: 'List of format settings for the JSON format' +keywords: ['Format Settings', 'JSON'] +slug: /interfaces/formats/JSON/format-settings +title: 'Format Settings For JSON' +doc_type: 'reference' +--- + +On this page you can find format settings common to all JSON formats. + +{/* TO DO - AUTOGENERATE THE TABLE BELOW */} + +| Setting | Description | Default | Note | +|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [`input_format_import_nested_json`](/core/reference/settings/formats#input_format_import_nested_json) | Map nested JSON data to nested tables (it works for JSONEachRow format). | `false` | | +| [`input_format_json_read_bools_as_numbers`](/core/reference/settings/formats#input_format_json_read_bools_as_numbers) | Allow to parse bools as numbers in JSON input formats. | `true` | | +| [`input_format_json_read_bools_as_strings`](/core/reference/settings/formats#input_format_json_read_bools_as_strings) | Allow to parse bools as strings in JSON input formats. | `true` | | +| [`input_format_json_read_numbers_as_strings`](/core/reference/settings/formats#input_format_json_read_numbers_as_strings) | Allow to parse numbers as strings in JSON input formats. | `true` | | +| [`input_format_json_read_arrays_as_strings`](/core/reference/settings/formats#input_format_json_read_arrays_as_strings) | Allow to parse JSON arrays as strings in JSON input formats. | `true` | | +| [`input_format_json_read_objects_as_strings`](/core/reference/settings/formats#input_format_json_read_objects_as_strings) | Allow to parse JSON objects as strings in JSON input formats. | `true` | | +| [`input_format_json_named_tuples_as_objects`](/core/reference/settings/formats#input_format_json_named_tuples_as_objects) | Parse named tuple columns as JSON objects. | `true` | | +| [`input_format_json_try_infer_numbers_from_strings`](/core/reference/settings/formats#input_format_json_try_infer_numbers_from_strings) | Try to infer numbers from string fields while schema inference. | `false` | | +| [`input_format_json_try_infer_named_tuples_from_objects`](/core/reference/settings/formats#input_format_json_try_infer_named_tuples_from_objects) | Try to infer named tuple from JSON objects during schema inference. | `true` | | +| [`input_format_json_infer_incomplete_types_as_strings`](/core/reference/settings/formats#input_format_json_infer_incomplete_types_as_strings) | Use type String for keys that contains only Nulls or empty objects/arrays during schema inference in JSON input formats. | `true` | | +| [`input_format_json_defaults_for_missing_elements_in_named_tuple`](/core/reference/settings/formats#input_format_json_defaults_for_missing_elements_in_named_tuple) | Insert default values for missing elements in JSON object while parsing named tuple. | `true` | | +| [`input_format_json_ignore_unknown_keys_in_named_tuple`](/core/reference/settings/formats#input_format_json_ignore_unknown_keys_in_named_tuple) | Ignore unknown keys in json object for named tuples. | `false` | | +| [`input_format_json_compact_allow_variable_number_of_columns`](/core/reference/settings/formats#input_format_json_compact_allow_variable_number_of_columns) | Allow variable number of columns in JSONCompact/JSONCompactEachRow format, ignore extra columns and use default values on missing columns. | `false` | | +| [`input_format_json_throw_on_bad_escape_sequence`](/core/reference/settings/formats#input_format_json_throw_on_bad_escape_sequence) | Throw an exception if JSON string contains bad escape sequence. If disabled, bad escape sequences will remain as is in the data. | `true` | | +| [`input_format_json_empty_as_default`](/core/reference/settings/formats#input_format_json_empty_as_default) | Treat empty fields in JSON input as default values. | `false` | For complex default expressions [input_format_defaults_for_omitted_fields](/core/reference/settings/formats#input_format_defaults_for_omitted_fields) must be enabled too. | +| [`output_format_json_quote_64bit_integers`](/core/reference/settings/formats#output_format_json_quote_64bit_integers) | Controls quoting of 64-bit integers in JSON output format. | `true` | | +| [`output_format_json_quote_64bit_floats`](/core/reference/settings/formats#output_format_json_quote_64bit_floats) | Controls quoting of 64-bit floats in JSON output format. | `false` | | +| [`output_format_json_quote_denormals`](/core/reference/settings/formats#output_format_json_quote_denormals) | Enables '+nan', '-nan', '+inf', '-inf' outputs in JSON output format. | `false` | | +| [`output_format_json_quote_decimals`](/core/reference/settings/formats#output_format_json_quote_decimals) | Controls quoting of decimals in JSON output format. | `false` | | +| [`output_format_json_escape_forward_slashes`](/core/reference/settings/formats#output_format_json_escape_forward_slashes) | Controls escaping forward slashes for string outputs in JSON output format. | `true` | | +| [`output_format_json_named_tuples_as_objects`](/core/reference/settings/formats#output_format_json_named_tuples_as_objects) | Serialize named tuple columns as JSON objects. | `true` | | +| [`output_format_json_array_of_rows`](/core/reference/settings/formats#output_format_json_array_of_rows) | Output a JSON array of all rows in JSONEachRow(Compact) format. | `false` | | +| [`output_format_json_validate_utf8`](/core/reference/settings/formats#output_format_json_validate_utf8) | Enables validation of UTF-8 sequences in JSON output formats | `false` | Note that it doesn't impact formats JSON/JSONCompact/JSONColumnsWithMetadata, they always validate utf8. | diff --git a/reference/formats/LineAsString/LineAsString.mdx b/core/reference/formats/LineAsString/LineAsString.mdx similarity index 83% rename from reference/formats/LineAsString/LineAsString.mdx rename to core/reference/formats/LineAsString/LineAsString.mdx index 9f3a9177..0cbf81e9 100644 --- a/reference/formats/LineAsString/LineAsString.mdx +++ b/core/reference/formats/LineAsString/LineAsString.mdx @@ -16,8 +16,8 @@ doc_type: 'reference' ## Description {#description} The `LineAsString` format interprets every line of input data as a single string value. -This format can only be parsed for a table with a single field of type [String](/reference/data-types/string). -The remaining columns must be set to [`DEFAULT`](/reference/statements/create/table#default), [`MATERIALIZED`](/reference/statements/create/view#materialized-view), or omitted. +This format can only be parsed for a table with a single field of type [String](/core/reference/data-types/string). +The remaining columns must be set to [`DEFAULT`](/core/reference/statements/create/table#default), [`MATERIALIZED`](/core/reference/statements/create/view#materialized-view), or omitted. ## Example usage {#example-usage} diff --git a/reference/formats/LineAsString/LineAsStringWithNames.mdx b/core/reference/formats/LineAsString/LineAsStringWithNames.mdx similarity index 88% rename from reference/formats/LineAsString/LineAsStringWithNames.mdx rename to core/reference/formats/LineAsString/LineAsStringWithNames.mdx index b0c88bd7..c33495bb 100644 --- a/reference/formats/LineAsString/LineAsStringWithNames.mdx +++ b/core/reference/formats/LineAsString/LineAsStringWithNames.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -The `LineAsStringWithNames` format is similar to the [`LineAsString`](/reference/formats/LineAsString/LineAsString) format but prints the header row with column names. +The `LineAsStringWithNames` format is similar to the [`LineAsString`](/core/reference/formats/LineAsString/LineAsString) format but prints the header row with column names. ## Example usage {#example-usage} diff --git a/reference/formats/LineAsString/LineAsStringWithNamesAndTypes.mdx b/core/reference/formats/LineAsString/LineAsStringWithNamesAndTypes.mdx similarity index 93% rename from reference/formats/LineAsString/LineAsStringWithNamesAndTypes.mdx rename to core/reference/formats/LineAsString/LineAsStringWithNamesAndTypes.mdx index f0c3ab1b..aec5b9ef 100644 --- a/reference/formats/LineAsString/LineAsStringWithNamesAndTypes.mdx +++ b/core/reference/formats/LineAsString/LineAsStringWithNamesAndTypes.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -The `LineAsStringWithNames` format is similar to the [`LineAsString`](/reference/formats/LineAsString/LineAsString) format +The `LineAsStringWithNames` format is similar to the [`LineAsString`](/core/reference/formats/LineAsString/LineAsString) format but prints two header rows: one with column names, the other with types. ## Example usage {#example-usage} diff --git a/reference/formats/Markdown.mdx b/core/reference/formats/Markdown.mdx similarity index 100% rename from reference/formats/Markdown.mdx rename to core/reference/formats/Markdown.mdx diff --git a/core/reference/formats/MsgPack.mdx b/core/reference/formats/MsgPack.mdx new file mode 100644 index 00000000..b1a488e9 --- /dev/null +++ b/core/reference/formats/MsgPack.mdx @@ -0,0 +1,60 @@ +--- +alias: [] +description: 'Documentation for the MsgPack format' +input_format: true +keywords: ['MsgPack'] +output_format: true +slug: /interfaces/formats/MsgPack +title: 'MsgPack' +doc_type: 'reference' +--- + +| Input | Output | Alias | +|-------|--------|-------| +| ✔ | ✔ | | + +## Description {#description} + +ClickHouse supports reading and writing [MessagePack](https://msgpack.org/) data files. + +## Data types matching {#data-types-matching} + +| MessagePack data type (`INSERT`) | ClickHouse data type | MessagePack data type (`SELECT`) | +|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|----------------------------------| +| `uint N`, `positive fixint` | [`UIntN`](/core/reference/data-types/int-uint) | `uint N` | +| `int N`, `negative fixint` | [`IntN`](/core/reference/data-types/int-uint) | `int N` | +| `bool` | [`UInt8`](/core/reference/data-types/int-uint) | `uint 8` | +| `fixstr`, `str 8`, `str 16`, `str 32`, `bin 8`, `bin 16`, `bin 32` | [`String`](/core/reference/data-types/string) | `bin 8`, `bin 16`, `bin 32` | +| `fixstr`, `str 8`, `str 16`, `str 32`, `bin 8`, `bin 16`, `bin 32` | [`FixedString`](/core/reference/data-types/fixedstring) | `bin 8`, `bin 16`, `bin 32` | +| `float 32` | [`Float32`](/core/reference/data-types/float) | `float 32` | +| `float 64` | [`Float64`](/core/reference/data-types/float) | `float 64` | +| `uint 16` | [`Date`](/core/reference/data-types/date) | `uint 16` | +| `int 32` | [`Date32`](/core/reference/data-types/date32) | `int 32` | +| `uint 32` | [`DateTime`](/core/reference/data-types/datetime) | `uint 32` | +| `uint 64` | [`DateTime64`](/core/reference/data-types/datetime) | `uint 64` | +| `fixarray`, `array 16`, `array 32` | [`Array`](/core/reference/data-types/array)/[`Tuple`](/core/reference/data-types/tuple) | `fixarray`, `array 16`, `array 32` | +| `fixmap`, `map 16`, `map 32` | [`Map`](/core/reference/data-types/map) | `fixmap`, `map 16`, `map 32` | +| `uint 32` | [`IPv4`](/core/reference/data-types/ipv4) | `uint 32` | +| `bin 8` | [`String`](/core/reference/data-types/string) | `bin 8` | +| `int 8` | [`Enum8`](/core/reference/data-types/enum) | `int 8` | +| `bin 8` | [`(U)Int128`/`(U)Int256`](/core/reference/data-types/int-uint) | `bin 8` | +| `int 32` | [`Decimal32`](/core/reference/data-types/decimal) | `int 32` | +| `int 64` | [`Decimal64`](/core/reference/data-types/decimal) | `int 64` | +| `bin 8` | [`Decimal128`/`Decimal256`](/core/reference/data-types/decimal) | `bin 8 ` | + +## Example usage {#example-usage} + +Writing to a file ".msgpk": + +```sql +$ clickhouse-client --query="CREATE TABLE msgpack (array Array(UInt8)) ENGINE = Memory;" +$ clickhouse-client --query="INSERT INTO msgpack VALUES ([0, 1, 2, 3, 42, 253, 254, 255]), ([255, 254, 253, 42, 3, 2, 1, 0])"; +$ clickhouse-client --query="SELECT * FROM msgpack FORMAT MsgPack" > tmp_msgpack.msgpk; +``` + +## Format settings {#format-settings} + +| Setting | Description | Default | +|--------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|---------| +| [`input_format_msgpack_number_of_columns`](/core/reference/settings/formats#input_format_msgpack_number_of_columns) | the number of columns in inserted MsgPack data. Used for automatic schema inference from data. | `0` | +| [`output_format_msgpack_uuid_representation`](/core/reference/settings/formats#output_format_msgpack_uuid_representation) | the way how to output UUID in MsgPack format. | `EXT` | \ No newline at end of file diff --git a/reference/formats/MySQLDump.mdx b/core/reference/formats/MySQLDump.mdx similarity index 93% rename from reference/formats/MySQLDump.mdx rename to core/reference/formats/MySQLDump.mdx index d20ea630..c02685ae 100644 --- a/reference/formats/MySQLDump.mdx +++ b/core/reference/formats/MySQLDump.mdx @@ -82,6 +82,6 @@ SETTINGS input_format_mysql_dump_table_name = 'test2' ## Format settings {#format-settings} -You can specify the name of the table from which to read data from using the [`input_format_mysql_dump_table_name`](/reference/settings/formats#input_format_mysql_dump_table_name) setting. +You can specify the name of the table from which to read data from using the [`input_format_mysql_dump_table_name`](/core/reference/settings/formats#input_format_mysql_dump_table_name) setting. If setting `input_format_mysql_dump_map_columns` is set to `1` and the dump contains a `CREATE` query for specified table or column names in the `INSERT` query, the columns from the input data will map to the columns from the table by name. -Columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. \ No newline at end of file +Columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. \ No newline at end of file diff --git a/reference/formats/MySQLWire.mdx b/core/reference/formats/MySQLWire.mdx similarity index 100% rename from reference/formats/MySQLWire.mdx rename to core/reference/formats/MySQLWire.mdx diff --git a/reference/formats/Native.mdx b/core/reference/formats/Native.mdx similarity index 89% rename from reference/formats/Native.mdx rename to core/reference/formats/Native.mdx index 8be8a451..0463347b 100644 --- a/reference/formats/Native.mdx +++ b/core/reference/formats/Native.mdx @@ -18,7 +18,7 @@ doc_type: 'reference' The `Native` format is ClickHouse's most efficient format because it is truly "columnar" in that it does not convert columns to rows. -In this format data is written and read by [blocks](/resources/contribute/architecture#block) in a binary format. +In this format data is written and read by [blocks](/resources/develop-contribute/introduction/architecture#block) in a binary format. For each block, the number of rows, number of columns, column names and types, and parts of columns in the block are recorded one after another. This is the format used in the native interface for interaction between servers, for using the command-line client, and for C++ clients. @@ -33,7 +33,7 @@ It might not be practical to work with this format yourself. Data is sent over the wire in a columnar format, which means that each column is sent separately, and all values of a column are sent together as a single array. -Each column in a block contains a header similar to [RowBinaryWithNamesAndTypes](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes). +Each column in a block contains a header similar to [RowBinaryWithNamesAndTypes](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes). When using the native TCP binary protocol (or when the HTTP endpoint receives `?client_protocol_version=`), @@ -155,7 +155,7 @@ The full list of types that match this description includes: - IPv6 - UUID -Refer to the descriptions of the types above in ["RowBinary data types wire format"](/reference/formats/RowBinary/RowBinary#data-types-wire-format) for more details. +Refer to the descriptions of the types above in ["RowBinary data types wire format"](/core/reference/formats/RowBinary/RowBinary#data-types-wire-format) for more details. ### Complex data types {#complex-data-types} @@ -291,7 +291,7 @@ const data = new Uint8Array([ #### LowCardinality {#lowcardinality} -Unlike [RowBinary](/reference/formats/RowBinary/RowBinary#lowcardinality) where `LowCardinality` is transparent, the Native format uses a dictionary-based columnar encoding. A column is encoded as a version prefix, then a dictionary of unique values, and an array of integer indexes into that dictionary. +Unlike [RowBinary](/core/reference/formats/RowBinary/RowBinary#lowcardinality) where `LowCardinality` is transparent, the Native format uses a dictionary-based columnar encoding. A column is encoded as a version prefix, then a dictionary of unique values, and an array of integer indexes into that dictionary. A column can be defined as `LowCardinality(Nullable(T))`, but it is not possible to define it as `Nullable(LowCardinality(T))` — it will always result in an error from the server. @@ -339,7 +339,7 @@ With `LowCardinality(Nullable(String))`, index 0 is `NULL`: #### Array {#array} -Unlike [RowBinary](/reference/formats/RowBinary/RowBinary#array) where each array is prefixed with a LEB128 element count, the Native format encodes arrays as two columnar sub-streams: +Unlike [RowBinary](/core/reference/formats/RowBinary/RowBinary#array) where each array is prefixed with a LEB128 element count, the Native format encodes arrays as two columnar sub-streams: - N cumulative `UInt64` offsets (little-endian, 8 bytes each). Row `i` has `offset[i] - offset[i-1]` elements, with `offset[-1]` implicitly 0. - All nested elements across all rows, bulk-serialized contiguously. @@ -378,7 +378,7 @@ An empty array has the same offset as the previous row. For example, `Array(Stri #### Map {#map} -A `Map(K, V)` is encoded as `Array(Tuple(K, V))` — array offsets followed by all keys, then all values. This differs from [RowBinary](/reference/formats/RowBinary/RowBinary#map) where keys and values are interleaved per entry. +A `Map(K, V)` is encoded as `Array(Tuple(K, V))` — array offsets followed by all keys, then all values. This differs from [RowBinary](/core/reference/formats/RowBinary/RowBinary#map) where keys and values are interleaved per entry. For example, `Map(String, UInt64)` with 3 rows `[{'a':0,'b':10}, {'a':1,'b':11}, {'a':2,'b':12}]`: @@ -407,7 +407,7 @@ For example, `Map(String, UInt64)` with 3 rows `[{'a':0,'b':10}, {'a':1,'b':11}, #### Variant {#variant} -Unlike [RowBinary](/reference/formats/RowBinary/RowBinary#variant) where each row carries its own discriminant byte followed by the value inline, the Native format separates discriminators from data. +Unlike [RowBinary](/core/reference/formats/RowBinary/RowBinary#variant) where each row carries its own discriminant byte followed by the value inline, the Native format separates discriminators from data. As with RowBinary, the types in the definition are always sorted alphabetically, and the discriminant is the index in that sorted list. `0xFF` (255) represents `NULL`. @@ -436,7 +436,7 @@ For example, `Variant(String, UInt32)` with 5 rows `[0::UInt32, 'hello', NULL, 3 #### Dynamic {#dynamic} -Unlike [RowBinary](/reference/formats/RowBinary/RowBinary#dynamic) where each value is self-describing (type prefix + value), the Native format serializes `Dynamic` as a structure prefix followed by a [Variant](#variant) column. +Unlike [RowBinary](/core/reference/formats/RowBinary/RowBinary#dynamic) where each value is self-describing (type prefix + value), the Native format serializes `Dynamic` as a structure prefix followed by a [Variant](#variant) column. The structure prefix contains a `UInt64(LE)` serialization version, then the number of dynamic types (as VarUInt), then the type names as strings. In version V1 the type count is written twice for compatibility. The data that follows is a `Variant` column whose type list is the dynamic types plus an internal `SharedVariant` type, sorted alphabetically. @@ -463,6 +463,6 @@ For example, `Dynamic` with 5 rows `[0::UInt32, 'hello', NULL, 3::UInt32, 'hello #### JSON {#json} -Unlike [RowBinary](/reference/formats/RowBinary/RowBinary#json) where each row is self-describing with path names and values, the Native format serializes `JSON` in a columnar structure. The encoding is complex and version-dependent: it consists of a structure prefix with the serialization version, dynamic path names, and shared data layout, followed by typed paths (each as a bulk column), dynamic paths (each as a [Dynamic](#dynamic) column), and shared data for overflow paths. +Unlike [RowBinary](/core/reference/formats/RowBinary/RowBinary#json) where each row is self-describing with path names and values, the Native format serializes `JSON` in a columnar structure. The encoding is complex and version-dependent: it consists of a structure prefix with the serialization version, dynamic path names, and shared data layout, followed by typed paths (each as a bulk column), dynamic paths (each as a [Dynamic](#dynamic) column), and shared data for overflow paths. For simpler interoperability, consider using the setting `output_format_native_write_json_as_string=1`, which serializes JSON columns as plain JSON text strings (one `String` per row). diff --git a/reference/formats/Npy.mdx b/core/reference/formats/Npy.mdx similarity index 58% rename from reference/formats/Npy.mdx rename to core/reference/formats/Npy.mdx index 8e5158f6..ac080d25 100644 --- a/reference/formats/Npy.mdx +++ b/core/reference/formats/Npy.mdx @@ -25,18 +25,18 @@ The table below gives the supported Npy data types and their corresponding type | Npy data type (`INSERT`) | ClickHouse data type | Npy data type (`SELECT`) | |--------------------------|-----------------------------------------------------------------|-------------------------| -| `i1` | [Int8](/reference/data-types/int-uint) | `i1` | -| `i2` | [Int16](/reference/data-types/int-uint) | `i2` | -| `i4` | [Int32](/reference/data-types/int-uint) | `i4` | -| `i8` | [Int64](/reference/data-types/int-uint) | `i8` | -| `u1`, `b1` | [UInt8](/reference/data-types/int-uint) | `u1` | -| `u2` | [UInt16](/reference/data-types/int-uint) | `u2` | -| `u4` | [UInt32](/reference/data-types/int-uint) | `u4` | -| `u8` | [UInt64](/reference/data-types/int-uint) | `u8` | -| `f2`, `f4` | [Float32](/reference/data-types/float) | `f4` | -| `f8` | [Float64](/reference/data-types/float) | `f8` | -| `S`, `U` | [String](/reference/data-types/string) | `S` | -| | [FixedString](/reference/data-types/fixedstring) | `S` | +| `i1` | [Int8](/core/reference/data-types/int-uint) | `i1` | +| `i2` | [Int16](/core/reference/data-types/int-uint) | `i2` | +| `i4` | [Int32](/core/reference/data-types/int-uint) | `i4` | +| `i8` | [Int64](/core/reference/data-types/int-uint) | `i8` | +| `u1`, `b1` | [UInt8](/core/reference/data-types/int-uint) | `u1` | +| `u2` | [UInt16](/core/reference/data-types/int-uint) | `u2` | +| `u4` | [UInt32](/core/reference/data-types/int-uint) | `u4` | +| `u8` | [UInt64](/core/reference/data-types/int-uint) | `u8` | +| `f2`, `f4` | [Float32](/core/reference/data-types/float) | `f4` | +| `f8` | [Float64](/core/reference/data-types/float) | `f8` | +| `S`, `U` | [String](/core/reference/data-types/string) | `S` | +| | [FixedString](/core/reference/data-types/fixedstring) | `S` | ## Example usage {#example-usage} diff --git a/reference/formats/Null.mdx b/core/reference/formats/Null.mdx similarity index 100% rename from reference/formats/Null.mdx rename to core/reference/formats/Null.mdx diff --git a/reference/formats/ODBCDriver2.mdx b/core/reference/formats/ODBCDriver2.mdx similarity index 100% rename from reference/formats/ODBCDriver2.mdx rename to core/reference/formats/ODBCDriver2.mdx diff --git a/reference/formats/ORC.mdx b/core/reference/formats/ORC.mdx similarity index 52% rename from reference/formats/ORC.mdx rename to core/reference/formats/ORC.mdx index 7feb6769..cb064c96 100644 --- a/reference/formats/ORC.mdx +++ b/core/reference/formats/ORC.mdx @@ -19,32 +19,32 @@ doc_type: 'reference' ## Data types matching {#data-types-matching-orc} -The table below compares supported ORC data types and their corresponding ClickHouse [data types](/reference/data-types) in `INSERT` and `SELECT` queries. +The table below compares supported ORC data types and their corresponding ClickHouse [data types](/core/reference/data-types) in `INSERT` and `SELECT` queries. | ORC data type (`INSERT`) | ClickHouse data type | ORC data type (`SELECT`) | |---------------------------------------|-------------------------------------------------------------------------------------------------------------------|--------------------------| -| `Boolean` | [UInt8](/reference/data-types/int-uint) | `Boolean` | -| `Tinyint` | [Int8/UInt8](/reference/data-types/int-uint)/[Enum8](/reference/data-types/enum) | `Tinyint` | -| `Smallint` | [Int16/UInt16](/reference/data-types/int-uint)/[Enum16](/reference/data-types/enum) | `Smallint` | -| `Int` | [Int32/UInt32](/reference/data-types/int-uint) | `Int` | -| `Bigint` | [Int64/UInt32](/reference/data-types/int-uint) | `Bigint` | -| `Float` | [Float32](/reference/data-types/float) | `Float` | -| `Double` | [Float64](/reference/data-types/float) | `Double` | -| `Decimal` | [Decimal](/reference/data-types/decimal) | `Decimal` | -| `Date` | [Date32](/reference/data-types/date32) | `Date` | -| `Timestamp` | [DateTime64](/reference/data-types/datetime64) | `Timestamp` | -| `String`, `Char`, `Varchar`, `Binary` | [String](/reference/data-types/string) | `Binary` | -| `List` | [Array](/reference/data-types/array) | `List` | -| `Struct` | [Tuple](/reference/data-types/tuple) | `Struct` | -| `Map` | [Map](/reference/data-types/map) | `Map` | -| `Int` | [IPv4](/reference/data-types/int-uint) | `Int` | -| `Binary` | [IPv6](/reference/data-types/ipv6) | `Binary` | -| `Binary` | [Int128/UInt128/Int256/UInt256](/reference/data-types/int-uint) | `Binary` | -| `Binary` | [Decimal256](/reference/data-types/decimal) | `Binary` | +| `Boolean` | [UInt8](/core/reference/data-types/int-uint) | `Boolean` | +| `Tinyint` | [Int8/UInt8](/core/reference/data-types/int-uint)/[Enum8](/core/reference/data-types/enum) | `Tinyint` | +| `Smallint` | [Int16/UInt16](/core/reference/data-types/int-uint)/[Enum16](/core/reference/data-types/enum) | `Smallint` | +| `Int` | [Int32/UInt32](/core/reference/data-types/int-uint) | `Int` | +| `Bigint` | [Int64/UInt32](/core/reference/data-types/int-uint) | `Bigint` | +| `Float` | [Float32](/core/reference/data-types/float) | `Float` | +| `Double` | [Float64](/core/reference/data-types/float) | `Double` | +| `Decimal` | [Decimal](/core/reference/data-types/decimal) | `Decimal` | +| `Date` | [Date32](/core/reference/data-types/date32) | `Date` | +| `Timestamp` | [DateTime64](/core/reference/data-types/datetime64) | `Timestamp` | +| `String`, `Char`, `Varchar`, `Binary` | [String](/core/reference/data-types/string) | `Binary` | +| `List` | [Array](/core/reference/data-types/array) | `List` | +| `Struct` | [Tuple](/core/reference/data-types/tuple) | `Struct` | +| `Map` | [Map](/core/reference/data-types/map) | `Map` | +| `Int` | [IPv4](/core/reference/data-types/int-uint) | `Int` | +| `Binary` | [IPv6](/core/reference/data-types/ipv6) | `Binary` | +| `Binary` | [Int128/UInt128/Int256/UInt256](/core/reference/data-types/int-uint) | `Binary` | +| `Binary` | [Decimal256](/core/reference/data-types/decimal) | `Binary` | - Other types are not supported. - Arrays can be nested and can have a value of the `Nullable` type as an argument. `Tuple` and `Map` types also can be nested. -- The data types of ClickHouse table columns do not have to match the corresponding ORC data fields. When inserting data, ClickHouse interprets data types according to the table above and then [casts](/reference/functions/regular-functions/type-conversion-functions#CAST) the data to the data type set for the ClickHouse table column. +- The data types of ClickHouse table columns do not have to match the corresponding ORC data fields. When inserting data, ClickHouse interprets data types according to the table above and then [casts](/core/reference/functions/regular-functions/type-conversion-functions#CAST) the data to the data type set for the ClickHouse table column. ## Example usage {#example-usage} @@ -99,10 +99,10 @@ ORC is a binary format that does not display in a human-readable form on the ter | Setting | Description | Default | |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|---------| -| [`output_format_arrow_string_as_string`](/reference/settings/formats#output_format_arrow_string_as_string) | Use Arrow String type instead of Binary for String columns. | `false` | -| [`output_format_orc_compression_method`](/reference/settings/formats#output_format_orc_compression_method) | Compression method used in output ORC format. Default value | `none` | -| [`input_format_arrow_case_insensitive_column_matching`](/reference/settings/formats#input_format_arrow_case_insensitive_column_matching) | Ignore case when matching Arrow columns with ClickHouse columns. | `false` | -| [`input_format_arrow_allow_missing_columns`](/reference/settings/formats#input_format_arrow_allow_missing_columns) | Allow missing columns while reading Arrow data. | `false` | -| [`input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference`](/reference/settings/formats#input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference) | Allow skipping columns with unsupported types while schema inference for Arrow format. | `false` | +| [`output_format_arrow_string_as_string`](/core/reference/settings/formats#output_format_arrow_string_as_string) | Use Arrow String type instead of Binary for String columns. | `false` | +| [`output_format_orc_compression_method`](/core/reference/settings/formats#output_format_orc_compression_method) | Compression method used in output ORC format. Default value | `none` | +| [`input_format_arrow_case_insensitive_column_matching`](/core/reference/settings/formats#input_format_arrow_case_insensitive_column_matching) | Ignore case when matching Arrow columns with ClickHouse columns. | `false` | +| [`input_format_arrow_allow_missing_columns`](/core/reference/settings/formats#input_format_arrow_allow_missing_columns) | Allow missing columns while reading Arrow data. | `false` | +| [`input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference`](/core/reference/settings/formats#input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference) | Allow skipping columns with unsupported types while schema inference for Arrow format. | `false` | -To exchange data with Hadoop, you can use [HDFS table engine](/reference/engines/table-engines/integrations/hdfs). +To exchange data with Hadoop, you can use [HDFS table engine](/core/reference/engines/table-engines/integrations/hdfs). diff --git a/reference/formats/One.mdx b/core/reference/formats/One.mdx similarity index 91% rename from reference/formats/One.mdx rename to core/reference/formats/One.mdx index 1e870c09..57e57379 100644 --- a/reference/formats/One.mdx +++ b/core/reference/formats/One.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -The `One` format is a special input format that doesn't read any data from file, and returns only one row with column of type [`UInt8`](/reference/data-types/int-uint), name `dummy` and value `0` (like the `system.one` table). +The `One` format is a special input format that doesn't read any data from file, and returns only one row with column of type [`UInt8`](/core/reference/data-types/int-uint), name `dummy` and value `0` (like the `system.one` table). Can be used with virtual columns `_file/_path` to list all files without reading actual data. ## Example usage {#example-usage} diff --git a/reference/formats/Parquet/Parquet.mdx b/core/reference/formats/Parquet/Parquet.mdx similarity index 85% rename from reference/formats/Parquet/Parquet.mdx rename to core/reference/formats/Parquet/Parquet.mdx index d94373a2..130d76b6 100644 --- a/reference/formats/Parquet/Parquet.mdx +++ b/core/reference/formats/Parquet/Parquet.mdx @@ -19,48 +19,48 @@ doc_type: 'reference' ## Data types matching {#data-types-matching-parquet} -The table below shows how Parquet data types match ClickHouse [data types](/reference/data-types). +The table below shows how Parquet data types match ClickHouse [data types](/core/reference/data-types). | Parquet type (logical, converted, or physical) | ClickHouse data type | |------------------------------------------------|----------------------| -| `BOOLEAN` | [Bool](/reference/data-types/boolean) | -| `UINT_8` | [UInt8](/reference/data-types/int-uint) | -| `INT_8` | [Int8](/reference/data-types/int-uint) | -| `UINT_16` | [UInt16](/reference/data-types/int-uint) | -| `INT_16` | [Int16](/reference/data-types/int-uint)/[Enum16](/reference/data-types/enum) | -| `UINT_32` | [UInt32](/reference/data-types/int-uint) | -| `INT_32` | [Int32](/reference/data-types/int-uint) | -| `UINT_64` | [UInt64](/reference/data-types/int-uint) | -| `INT_64` | [Int64](/reference/data-types/int-uint) | -| `DATE` | [Date32](/reference/data-types/date) | -| `TIMESTAMP`, `TIME` | [DateTime64](/reference/data-types/datetime64) | -| `FLOAT` | [Float32](/reference/data-types/float) | -| `DOUBLE` | [Float64](/reference/data-types/float) | -| `INT96` | [DateTime64(9, 'UTC')](/reference/data-types/datetime64) | -| `BYTE_ARRAY`, `UTF8`, `ENUM`, `BSON` | [String](/reference/data-types/string) | -| `JSON` | [JSON](/reference/data-types/newjson) | -| `FIXED_LEN_BYTE_ARRAY` | [FixedString](/reference/data-types/fixedstring) | -| `DECIMAL` | [Decimal](/reference/data-types/decimal) | -| `LIST` | [Array](/reference/data-types/array) | -| `MAP` | [Map](/reference/data-types/map) | -| struct | [Tuple](/reference/data-types/tuple) | -| `FLOAT16` | [Float32](/reference/data-types/float) | -| `UUID` | [FixedString(16)](/reference/data-types/fixedstring) | -| `INTERVAL` | [FixedString(12)](/reference/data-types/fixedstring) | +| `BOOLEAN` | [Bool](/core/reference/data-types/boolean) | +| `UINT_8` | [UInt8](/core/reference/data-types/int-uint) | +| `INT_8` | [Int8](/core/reference/data-types/int-uint) | +| `UINT_16` | [UInt16](/core/reference/data-types/int-uint) | +| `INT_16` | [Int16](/core/reference/data-types/int-uint)/[Enum16](/core/reference/data-types/enum) | +| `UINT_32` | [UInt32](/core/reference/data-types/int-uint) | +| `INT_32` | [Int32](/core/reference/data-types/int-uint) | +| `UINT_64` | [UInt64](/core/reference/data-types/int-uint) | +| `INT_64` | [Int64](/core/reference/data-types/int-uint) | +| `DATE` | [Date32](/core/reference/data-types/date) | +| `TIMESTAMP`, `TIME` | [DateTime64](/core/reference/data-types/datetime64) | +| `FLOAT` | [Float32](/core/reference/data-types/float) | +| `DOUBLE` | [Float64](/core/reference/data-types/float) | +| `INT96` | [DateTime64(9, 'UTC')](/core/reference/data-types/datetime64) | +| `BYTE_ARRAY`, `UTF8`, `ENUM`, `BSON` | [String](/core/reference/data-types/string) | +| `JSON` | [JSON](/core/reference/data-types/newjson) | +| `FIXED_LEN_BYTE_ARRAY` | [FixedString](/core/reference/data-types/fixedstring) | +| `DECIMAL` | [Decimal](/core/reference/data-types/decimal) | +| `LIST` | [Array](/core/reference/data-types/array) | +| `MAP` | [Map](/core/reference/data-types/map) | +| struct | [Tuple](/core/reference/data-types/tuple) | +| `FLOAT16` | [Float32](/core/reference/data-types/float) | +| `UUID` | [FixedString(16)](/core/reference/data-types/fixedstring) | +| `INTERVAL` | [FixedString(12)](/core/reference/data-types/fixedstring) | When writing Parquet file, data types that don't have a matching Parquet type are converted to the nearest available type: | ClickHouse data type | Parquet type | |----------------------|--------------| -| [IPv4](/reference/data-types/ipv4) | `UINT_32` | -| [IPv6](/reference/data-types/ipv6) | `FIXED_LEN_BYTE_ARRAY` (16 bytes) | -| [Date](/reference/data-types/date) (16 bits) | `DATE` (32 bits) | -| [DateTime](/reference/data-types/datetime) (32 bits, seconds) | `TIMESTAMP` (64 bits, milliseconds) | -| [Int128/UInt128/Int256/UInt256](/reference/data-types/int-uint) | `FIXED_LEN_BYTE_ARRAY` (16/32 bytes, little-endian) | +| [IPv4](/core/reference/data-types/ipv4) | `UINT_32` | +| [IPv6](/core/reference/data-types/ipv6) | `FIXED_LEN_BYTE_ARRAY` (16 bytes) | +| [Date](/core/reference/data-types/date) (16 bits) | `DATE` (32 bits) | +| [DateTime](/core/reference/data-types/datetime) (32 bits, seconds) | `TIMESTAMP` (64 bits, milliseconds) | +| [Int128/UInt128/Int256/UInt256](/core/reference/data-types/int-uint) | `FIXED_LEN_BYTE_ARRAY` (16/32 bytes, little-endian) | Arrays can be nested and can have a value of `Nullable` type as an argument. `Tuple` and `Map` types can also be nested. -Data types of ClickHouse table columns can differ from the corresponding fields of the Parquet data inserted. When inserting data, ClickHouse interprets data types according to the table above and then [casts](/reference/functions/regular-functions/type-conversion-functions#CAST) the data to that data type which is set for the ClickHouse table column. E.g. a `UINT_32` Parquet column can be read into an [IPv4](/reference/data-types/ipv4) ClickHouse column. +Data types of ClickHouse table columns can differ from the corresponding fields of the Parquet data inserted. When inserting data, ClickHouse interprets data types according to the table above and then [casts](/core/reference/functions/regular-functions/type-conversion-functions#CAST) the data to that data type which is set for the ClickHouse table column. E.g. a `UINT_32` Parquet column can be read into an [IPv4](/core/reference/data-types/ipv4) ClickHouse column. For some Parquet types there's no closely matching ClickHouse type. We read them as follows: * `TIME` (time of day) is read as a timestamp. E.g. `10:23:13.000` becomes `1970-01-01 10:23:13.000`. @@ -116,7 +116,7 @@ FORMAT Parquet Parquet is a binary format that does not display in a human-readable form on the terminal. Use the `INTO OUTFILE` to output Parquet files. -To exchange data with Hadoop, you can use the [`HDFS table engine`](/reference/engines/table-engines/integrations/hdfs). +To exchange data with Hadoop, you can use the [`HDFS table engine`](/core/reference/engines/table-engines/integrations/hdfs). ## Format settings {#format-settings} diff --git a/reference/formats/Parquet/ParquetMetadata.mdx b/core/reference/formats/Parquet/ParquetMetadata.mdx similarity index 100% rename from reference/formats/Parquet/ParquetMetadata.mdx rename to core/reference/formats/Parquet/ParquetMetadata.mdx diff --git a/reference/formats/PostgreSQLWire.mdx b/core/reference/formats/PostgreSQLWire.mdx similarity index 100% rename from reference/formats/PostgreSQLWire.mdx rename to core/reference/formats/PostgreSQLWire.mdx diff --git a/reference/formats/Pretty/Pretty.mdx b/core/reference/formats/Pretty/Pretty.mdx similarity index 90% rename from reference/formats/Pretty/Pretty.mdx rename to core/reference/formats/Pretty/Pretty.mdx index e02abd91..5fb51f42 100644 --- a/reference/formats/Pretty/Pretty.mdx +++ b/core/reference/formats/Pretty/Pretty.mdx @@ -23,11 +23,11 @@ A full grid of the table is drawn, and each row occupies two lines in the termin Each result block is output as a separate table. This is necessary so that blocks can be output without buffering results (buffering would be necessary to pre-calculate the visible width of all the values). -[NULL](/reference/syntax) is output as `ᴺᵁᴸᴸ`. +[NULL](/core/reference/syntax) is output as `ᴺᵁᴸᴸ`. ## Example usage {#example-usage} -Example (shown for the [`PrettyCompact`](/reference/formats/Pretty/PrettyCompact) format): +Example (shown for the [`PrettyCompact`](/core/reference/formats/Pretty/PrettyCompact) format): ```sql title="Query" SELECT * FROM t_null @@ -39,7 +39,7 @@ SELECT * FROM t_null └───┴──────┘ ``` -Rows are not escaped in any of the `Pretty` formats. The following example is shown for the [`PrettyCompact`](/reference/formats/Pretty/PrettyCompact) format: +Rows are not escaped in any of the `Pretty` formats. The following example is shown for the [`PrettyCompact`](/core/reference/formats/Pretty/PrettyCompact) format: ```sql title="Query" SELECT 'String with \'quotes\' and \t character' AS Escaping_test @@ -60,7 +60,7 @@ This format is only appropriate for outputting a query result, but not for parsi The Pretty format supports outputting total values (when using `WITH TOTALS`) and extremes (when 'extremes' is set to 1). In these cases, total values and extreme values are output after the main data, in separate tables. -This is shown in the following example which uses the [`PrettyCompact`](/reference/formats/Pretty/PrettyCompact) format: +This is shown in the following example which uses the [`PrettyCompact`](/core/reference/formats/Pretty/PrettyCompact) format: ```sql title="Query" SELECT EventDate, count() AS c diff --git a/reference/formats/Pretty/PrettyCompact.mdx b/core/reference/formats/Pretty/PrettyCompact.mdx similarity index 82% rename from reference/formats/Pretty/PrettyCompact.mdx rename to core/reference/formats/Pretty/PrettyCompact.mdx index 06fe6246..2b7777b1 100644 --- a/reference/formats/Pretty/PrettyCompact.mdx +++ b/core/reference/formats/Pretty/PrettyCompact.mdx @@ -17,7 +17,7 @@ import PrettyFormatSettings from '/snippets/common-pretty-format-settings.mdx'; ## Description {#description} -Differs from the [`Pretty`](/reference/formats/Pretty/Pretty) format in that the table is displayed with a grid drawn between rows. +Differs from the [`Pretty`](/core/reference/formats/Pretty/Pretty) format in that the table is displayed with a grid drawn between rows. Because of this the result is more compact. diff --git a/reference/formats/Pretty/PrettyCompactMonoBlock.mdx b/core/reference/formats/Pretty/PrettyCompactMonoBlock.mdx similarity index 77% rename from reference/formats/Pretty/PrettyCompactMonoBlock.mdx rename to core/reference/formats/Pretty/PrettyCompactMonoBlock.mdx index f1e22165..1f3839cc 100644 --- a/reference/formats/Pretty/PrettyCompactMonoBlock.mdx +++ b/core/reference/formats/Pretty/PrettyCompactMonoBlock.mdx @@ -17,8 +17,8 @@ import PrettyFormatSettings from '/snippets/common-pretty-format-settings.mdx'; ## Description {#description} -Differs from the [`PrettyCompact`](/reference/formats/Pretty/PrettyCompact) format in that up to `10,000` rows are buffered, -and then output as a single table, and not by [blocks](/resources/contribute/architecture#block). +Differs from the [`PrettyCompact`](/core/reference/formats/Pretty/PrettyCompact) format in that up to `10,000` rows are buffered, +and then output as a single table, and not by [blocks](/resources/develop-contribute/introduction/architecture#block). ## Example usage {#example-usage} diff --git a/reference/formats/Pretty/PrettyCompactNoEscapes.mdx b/core/reference/formats/Pretty/PrettyCompactNoEscapes.mdx similarity index 78% rename from reference/formats/Pretty/PrettyCompactNoEscapes.mdx rename to core/reference/formats/Pretty/PrettyCompactNoEscapes.mdx index a05f6614..ec8dea2c 100644 --- a/reference/formats/Pretty/PrettyCompactNoEscapes.mdx +++ b/core/reference/formats/Pretty/PrettyCompactNoEscapes.mdx @@ -17,7 +17,7 @@ import PrettyFormatSettings from '/snippets/common-pretty-format-settings.mdx'; ## Description {#description} -Differs from the [`PrettyCompact`](/reference/formats/Pretty/PrettyCompact) format in that [ANSI-escape sequences](http://en.wikipedia.org/wiki/ANSI_escape_code) aren't used. +Differs from the [`PrettyCompact`](/core/reference/formats/Pretty/PrettyCompact) format in that [ANSI-escape sequences](http://en.wikipedia.org/wiki/ANSI_escape_code) aren't used. This is necessary for displaying the format in a browser, as well as for using the 'watch' command-line utility. ## Example usage {#example-usage} diff --git a/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock.mdx b/core/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock.mdx similarity index 76% rename from reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock.mdx rename to core/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock.mdx index 4f2c2564..2f21a52f 100644 --- a/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock.mdx +++ b/core/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock.mdx @@ -17,8 +17,8 @@ import PrettyFormatSettings from '/snippets/common-pretty-format-settings.mdx'; ## Description {#description} -Differs from the [`PrettyCompactNoEscapes`](/reference/formats/Pretty/PrettyCompactNoEscapes) format in that up to `10,000` rows are buffered, -and then output as a single table, and not by [blocks](/resources/contribute/architecture#block). +Differs from the [`PrettyCompactNoEscapes`](/core/reference/formats/Pretty/PrettyCompactNoEscapes) format in that up to `10,000` rows are buffered, +and then output as a single table, and not by [blocks](/resources/develop-contribute/introduction/architecture#block). ## Example usage {#example-usage} diff --git a/reference/formats/Pretty/PrettyMonoBlock.mdx b/core/reference/formats/Pretty/PrettyMonoBlock.mdx similarity index 77% rename from reference/formats/Pretty/PrettyMonoBlock.mdx rename to core/reference/formats/Pretty/PrettyMonoBlock.mdx index ef4ebe2a..87afb716 100644 --- a/reference/formats/Pretty/PrettyMonoBlock.mdx +++ b/core/reference/formats/Pretty/PrettyMonoBlock.mdx @@ -17,8 +17,8 @@ import PrettyFormatSettings from '/snippets/common-pretty-format-settings.mdx'; ## Description {#description} -Differs from the [`Pretty`](/reference/formats/Pretty/Pretty) format in that up to `10,000` rows are buffered, -and then output as a single table, and not by [blocks](/resources/contribute/architecture#block). +Differs from the [`Pretty`](/core/reference/formats/Pretty/Pretty) format in that up to `10,000` rows are buffered, +and then output as a single table, and not by [blocks](/resources/develop-contribute/introduction/architecture#block). ## Example usage {#example-usage} diff --git a/reference/formats/Pretty/PrettyNoEscapes.mdx b/core/reference/formats/Pretty/PrettyNoEscapes.mdx similarity index 72% rename from reference/formats/Pretty/PrettyNoEscapes.mdx rename to core/reference/formats/Pretty/PrettyNoEscapes.mdx index 123e5995..ca453b0e 100644 --- a/reference/formats/Pretty/PrettyNoEscapes.mdx +++ b/core/reference/formats/Pretty/PrettyNoEscapes.mdx @@ -17,7 +17,7 @@ import PrettyFormatSettings from '/snippets/common-pretty-format-settings.mdx'; ## Description {#description} -Differs from [Pretty](/reference/formats/Pretty/Pretty) in that [ANSI-escape sequences](http://en.wikipedia.org/wiki/ANSI_escape_code) aren't used. +Differs from [Pretty](/core/reference/formats/Pretty/Pretty) in that [ANSI-escape sequences](http://en.wikipedia.org/wiki/ANSI_escape_code) aren't used. This is necessary for displaying the format in a browser, as well as for using the 'watch' command-line utility. ## Example usage {#example-usage} @@ -29,7 +29,7 @@ $ watch -n1 "clickhouse-client --query='SELECT event, value FROM system.events F ``` -The [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http) can be used for displaying this format in the browser. +The [HTTP interface](/core/concepts/features/interfaces/http) can be used for displaying this format in the browser. ## Format settings {#format-settings} diff --git a/reference/formats/Pretty/PrettyNoEscapesMonoBlock.mdx b/core/reference/formats/Pretty/PrettyNoEscapesMonoBlock.mdx similarity index 82% rename from reference/formats/Pretty/PrettyNoEscapesMonoBlock.mdx rename to core/reference/formats/Pretty/PrettyNoEscapesMonoBlock.mdx index 872e08c4..51f9b3dd 100644 --- a/reference/formats/Pretty/PrettyNoEscapesMonoBlock.mdx +++ b/core/reference/formats/Pretty/PrettyNoEscapesMonoBlock.mdx @@ -17,7 +17,7 @@ import PrettyFormatSettings from '/snippets/common-pretty-format-settings.mdx'; ## Description {#description} -Differs from the [`PrettyNoEscapes`](/reference/formats/Pretty/PrettyNoEscapes) format in that up to `10,000` rows are buffered, +Differs from the [`PrettyNoEscapes`](/core/reference/formats/Pretty/PrettyNoEscapes) format in that up to `10,000` rows are buffered, and then output as a single table, and not by blocks. ## Example usage {#example-usage} diff --git a/reference/formats/Pretty/PrettySpace.mdx b/core/reference/formats/Pretty/PrettySpace.mdx similarity index 84% rename from reference/formats/Pretty/PrettySpace.mdx rename to core/reference/formats/Pretty/PrettySpace.mdx index 0f509c86..0b2900cb 100644 --- a/reference/formats/Pretty/PrettySpace.mdx +++ b/core/reference/formats/Pretty/PrettySpace.mdx @@ -17,7 +17,7 @@ import PrettyFormatSettings from '/snippets/common-pretty-format-settings.mdx'; ## Description {#description} -Differs from the [`PrettyCompact`](/reference/formats/Pretty/PrettyCompact) format in that whitespace +Differs from the [`PrettyCompact`](/core/reference/formats/Pretty/PrettyCompact) format in that whitespace (space characters) is used for displaying the table instead of a grid. ## Example usage {#example-usage} diff --git a/reference/formats/Pretty/PrettySpaceMonoBlock.mdx b/core/reference/formats/Pretty/PrettySpaceMonoBlock.mdx similarity index 77% rename from reference/formats/Pretty/PrettySpaceMonoBlock.mdx rename to core/reference/formats/Pretty/PrettySpaceMonoBlock.mdx index 66ec5258..2e6a7b16 100644 --- a/reference/formats/Pretty/PrettySpaceMonoBlock.mdx +++ b/core/reference/formats/Pretty/PrettySpaceMonoBlock.mdx @@ -17,8 +17,8 @@ import PrettyFormatSettings from '/snippets/common-pretty-format-settings.mdx'; ## Description {#description} -Differs from the [`PrettySpace`](/reference/formats/Pretty/PrettySpace) format in that up to `10,000` rows are buffered, -and then output as a single table, and not by [blocks](/resources/contribute/architecture#block). +Differs from the [`PrettySpace`](/core/reference/formats/Pretty/PrettySpace) format in that up to `10,000` rows are buffered, +and then output as a single table, and not by [blocks](/resources/develop-contribute/introduction/architecture#block). ## Example usage {#example-usage} diff --git a/reference/formats/Pretty/PrettySpaceNoEscapes.mdx b/core/reference/formats/Pretty/PrettySpaceNoEscapes.mdx similarity index 79% rename from reference/formats/Pretty/PrettySpaceNoEscapes.mdx rename to core/reference/formats/Pretty/PrettySpaceNoEscapes.mdx index 977beb74..2198bc19 100644 --- a/reference/formats/Pretty/PrettySpaceNoEscapes.mdx +++ b/core/reference/formats/Pretty/PrettySpaceNoEscapes.mdx @@ -17,7 +17,7 @@ import PrettyFormatSettings from '/snippets/common-pretty-format-settings.mdx'; ## Description {#description} -Differs from the [`PrettySpace`](/reference/formats/Pretty/PrettySpace) format in that [ANSI-escape sequences](http://en.wikipedia.org/wiki/ANSI_escape_code) are not used. +Differs from the [`PrettySpace`](/core/reference/formats/Pretty/PrettySpace) format in that [ANSI-escape sequences](http://en.wikipedia.org/wiki/ANSI_escape_code) are not used. This is necessary for displaying this format in a browser, as well as for using the 'watch' command-line utility. ## Example usage {#example-usage} diff --git a/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock.mdx b/core/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock.mdx similarity index 76% rename from reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock.mdx rename to core/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock.mdx index 6f5fb64c..2e2bb19c 100644 --- a/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock.mdx +++ b/core/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock.mdx @@ -17,8 +17,8 @@ import PrettyFormatSettings from '/snippets/common-pretty-format-settings.mdx'; ## Description {#description} -Differs from the [`PrettySpaceNoEscapes`](/reference/formats/Pretty/PrettySpaceNoEscapes) format in that up to `10,000` rows are buffered, -and then output as a single table, and not by [blocks](/resources/contribute/architecture#block). +Differs from the [`PrettySpaceNoEscapes`](/core/reference/formats/Pretty/PrettySpaceNoEscapes) format in that up to `10,000` rows are buffered, +and then output as a single table, and not by [blocks](/resources/develop-contribute/introduction/architecture#block). ## Example usage {#example-usage} diff --git a/core/reference/formats/Pretty/_snippets/common-pretty-format-settings.mdx b/core/reference/formats/Pretty/_snippets/common-pretty-format-settings.mdx new file mode 100644 index 00000000..39997436 --- /dev/null +++ b/core/reference/formats/Pretty/_snippets/common-pretty-format-settings.mdx @@ -0,0 +1,14 @@ +{/* Note: This file is used as a snippet in all files that import it */} + +The following settings are common to all `Pretty` formats: + +| Setting | Description | Default | +|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| +| [`output_format_pretty_max_rows`](/core/reference/settings/formats#output_format_pretty_max_rows) | Row limit for Pretty formats. | `10000` | +| [`output_format_pretty_max_column_pad_width`](/core/reference/settings/formats#output_format_pretty_max_column_pad_width) | Maximum width to pad all values in a column in Pretty formats. | `250` | +| [`output_format_pretty_max_value_width`](/core/reference/settings/formats#output_format_pretty_max_value_width) | Maximum width of value to display in Pretty formats. If greater - it will be cut. | `10000` | +| [`output_format_pretty_color`](/core/reference/settings/formats#output_format_pretty_color) | Use ANSI escape sequences to paint colors in Pretty formats. | `true` | +| [`output_format_pretty_grid_charset`](/core/reference/settings/formats#output_format_pretty_grid_charset) | Charset for printing grid borders. Available charsets: ASCII, UTF-8. | `UTF-8` | +| [`output_format_pretty_row_numbers`](/core/reference/settings/formats#output_format_pretty_row_numbers) | Add row numbers before each row for pretty output format. | `true` | +| [`output_format_pretty_display_footer_column_names`](/core/reference/settings/formats#output_format_pretty_display_footer_column_names) | Display column names in the footer if table contains many rows. | `true` | +| [`output_format_pretty_display_footer_column_names_min_rows`](/core/reference/settings/formats#output_format_pretty_display_footer_column_names_min_rows) | Sets the minimum number of rows for which a footer will be displayed if [`output_format_pretty_display_footer_column_names`](/core/reference/settings/formats#output_format_pretty_display_footer_column_names) is enabled. | `50` | diff --git a/reference/formats/Prometheus.mdx b/core/reference/formats/Prometheus.mdx similarity index 94% rename from reference/formats/Prometheus.mdx rename to core/reference/formats/Prometheus.mdx index fdb2cfb4..0078fb16 100644 --- a/reference/formats/Prometheus.mdx +++ b/core/reference/formats/Prometheus.mdx @@ -19,10 +19,10 @@ Exposes metrics in the [Prometheus text-based exposition format](https://prometh For this format, it is a requirement for the output table to be structured correctly, by the following rules: -- Columns `name` ([String](/reference/data-types/string)) and `value` (number) are required. -- Rows may optionally contain `help` ([String](/reference/data-types/string)) and `timestamp` (number). -- Column `type` ([String](/reference/data-types/string)) should be one of `counter`, `gauge`, `histogram`, `summary`, `untyped` or empty. -- Each metric value may also have some `labels` ([Map(String, String)](/reference/data-types/map)). +- Columns `name` ([String](/core/reference/data-types/string)) and `value` (number) are required. +- Rows may optionally contain `help` ([String](/core/reference/data-types/string)) and `timestamp` (number). +- Column `type` ([String](/core/reference/data-types/string)) should be one of `counter`, `gauge`, `histogram`, `summary`, `untyped` or empty. +- Each metric value may also have some `labels` ([Map(String, String)](/core/reference/data-types/map)). - Several consequent rows may refer to the one metric with different labels. The table should be sorted by metric name (e.g., with `ORDER BY name`). There are special requirements for the `histogram` and `summary` labels - see [Prometheus doc](https://prometheus.io/docs/instrumenting/exposition_formats/#histograms-and-summaries) for the details. diff --git a/reference/formats/Protobuf/Protobuf.mdx b/core/reference/formats/Protobuf/Protobuf.mdx similarity index 92% rename from reference/formats/Protobuf/Protobuf.mdx rename to core/reference/formats/Protobuf/Protobuf.mdx index 3c7e1731..085526f8 100644 --- a/reference/formats/Protobuf/Protobuf.mdx +++ b/core/reference/formats/Protobuf/Protobuf.mdx @@ -43,9 +43,9 @@ message MessageType { ClickHouse tries to find a column named `x.y.z` (or `x_y_z` or `X.y_Z` and so on). -Nested messages are suitable for input or output of a [nested data structures](/reference/data-types/nested-data-structures). +Nested messages are suitable for input or output of a [nested data structures](/core/reference/data-types/nested-data-structures). -Default values defined in a protobuf schema like the one that follows are not applied, rather the [table defaults](/reference/statements/create/table#default_values) are used instead of them: +Default values defined in a protobuf schema like the one that follows are not applied, rather the [table defaults](/core/reference/statements/create/table#default_values) are used instead of them: ```capnp syntax = "proto2"; @@ -89,7 +89,7 @@ Nested messages are supported (see [basic-examples](#basic-examples)). Empty me Allowed types are Int8, UInt8, Int16, UInt16, Int32, UInt32, Int64, UInt64, Enum, Enum8 or Enum16. Enum (as well as Enum8 or Enum16) must contain all oneof' possible tags plus 0 to indicate absence, string representations does not matter. -The setting [`input_format_protobuf_oneof_presence`](/reference/settings/formats#input_format_protobuf_oneof_presence) is disabled by default +The setting [`input_format_protobuf_oneof_presence`](/core/reference/settings/formats#input_format_protobuf_oneof_presence) is disabled by default ClickHouse inputs and outputs protobuf messages in the `length-delimited` format. This means that before every message its length should be written as a [variable width integer (varint)](https://developers.google.com/protocol-buffers/docs/encoding#varints). @@ -356,7 +356,7 @@ SELECT * FROM test.hits format Protobuf SETTINGS format_protobuf_use_autogenerat ``` In this case, ClickHouse will autogenerate the Protobuf schema according to the table structure using function -[`structureToProtobufSchema`](/reference/functions/regular-functions/other-functions#structureToProtobufSchema). It will then use this schema to serialize data in the Protobuf format. +[`structureToProtobufSchema`](/core/reference/functions/regular-functions/other-functions#structureToProtobufSchema). It will then use this schema to serialize data in the Protobuf format. You can also read a Protobuf file with the autogenerated schema. In this case it is necessary for the file to be created using the same schema: @@ -364,9 +364,9 @@ You can also read a Protobuf file with the autogenerated schema. In this case it $ cat hits.bin | clickhouse-client --query "INSERT INTO test.hits SETTINGS format_protobuf_use_autogenerated_schema=1 FORMAT Protobuf" ``` -The setting [`format_protobuf_use_autogenerated_schema`](/reference/settings/formats#format_protobuf_use_autogenerated_schema) is enabled by default and applies if [`format_schema`](/reference/settings/formats#format_schema) is not set. +The setting [`format_protobuf_use_autogenerated_schema`](/core/reference/settings/formats#format_protobuf_use_autogenerated_schema) is enabled by default and applies if [`format_schema`](/core/reference/settings/formats#format_schema) is not set. -You can also save autogenerated schema in the file during input/output using setting [`output_format_schema`](/reference/settings/formats#output_format_schema). For example: +You can also save autogenerated schema in the file during input/output using setting [`output_format_schema`](/core/reference/settings/formats#output_format_schema). For example: ```sql SELECT * FROM test.hits format Protobuf SETTINGS format_protobuf_use_autogenerated_schema=1, output_format_schema='path/to/schema/schema.proto' @@ -376,7 +376,7 @@ In this case autogenerated Protobuf schema will be saved in file `path/to/schema ### Drop protobuf cache {#drop-protobuf-cache} -To reload the Protobuf schema loaded from [`format_schema_path`](/reference/settings/server-settings/settings#format_schema_path) use the [`SYSTEM DROP ... FORMAT CACHE`](/reference/statements/system#system-drop-schema-format) statement. +To reload the Protobuf schema loaded from [`format_schema_path`](/core/reference/settings/server-settings/settings#format_schema_path) use the [`SYSTEM DROP ... FORMAT CACHE`](/core/reference/statements/system#system-drop-schema-format) statement. ```sql SYSTEM DROP FORMAT SCHEMA CACHE FOR Protobuf diff --git a/reference/formats/Protobuf/ProtobufList.mdx b/core/reference/formats/Protobuf/ProtobufList.mdx similarity index 87% rename from reference/formats/Protobuf/ProtobufList.mdx rename to core/reference/formats/Protobuf/ProtobufList.mdx index b6e20bef..64032c2c 100644 --- a/reference/formats/Protobuf/ProtobufList.mdx +++ b/core/reference/formats/Protobuf/ProtobufList.mdx @@ -19,7 +19,7 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ ## Description {#description} -The `ProtobufList` format is similar to the [`Protobuf`](/reference/formats/Protobuf/Protobuf) format but rows are represented as a sequence of sub-messages contained in a message with a fixed name of "Envelope". +The `ProtobufList` format is similar to the [`Protobuf`](/core/reference/formats/Protobuf/Protobuf) format but rows are represented as a sequence of sub-messages contained in a message with a fixed name of "Envelope". ## Example usage {#example-usage} diff --git a/reference/formats/Protobuf/ProtobufSingle.mdx b/core/reference/formats/Protobuf/ProtobufSingle.mdx similarity index 73% rename from reference/formats/Protobuf/ProtobufSingle.mdx rename to core/reference/formats/Protobuf/ProtobufSingle.mdx index 1dd0bd7b..fcd013f8 100644 --- a/reference/formats/Protobuf/ProtobufSingle.mdx +++ b/core/reference/formats/Protobuf/ProtobufSingle.mdx @@ -19,7 +19,7 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ ## Description {#description} -The `ProtobufSingle` format is the same as the [`Protobuf`](/reference/formats/Protobuf/Protobuf) format but it is intended for storing/parsing single Protobuf messages without length delimiters. +The `ProtobufSingle` format is the same as the [`Protobuf`](/core/reference/formats/Protobuf/Protobuf) format but it is intended for storing/parsing single Protobuf messages without length delimiters. ## Example usage {#example-usage} diff --git a/reference/formats/RawBLOB.mdx b/core/reference/formats/RawBLOB.mdx similarity index 91% rename from reference/formats/RawBLOB.mdx rename to core/reference/formats/RawBLOB.mdx index b65f197a..217e7181 100644 --- a/reference/formats/RawBLOB.mdx +++ b/core/reference/formats/RawBLOB.mdx @@ -8,12 +8,12 @@ doc_type: 'reference' ## Description {#description} -The `RawBLOB` formats reads all input data to a single value. It is possible to parse only a table with a single field of type [`String`](/reference/data-types/string) or similar. +The `RawBLOB` formats reads all input data to a single value. It is possible to parse only a table with a single field of type [`String`](/core/reference/data-types/string) or similar. The result is output as a binary format without delimiters and escaping. If more than one value is output, the format is ambiguous, and it will be impossible to read the data back. ### Raw formats comparison {#raw-formats-comparison} -Below is a comparison of the formats `RawBLOB` and [`TabSeparatedRaw`](/reference/formats/TabSeparated/TabSeparatedRaw). +Below is a comparison of the formats `RawBLOB` and [`TabSeparatedRaw`](/core/reference/formats/TabSeparated/TabSeparatedRaw). `RawBLOB`: - data is output in binary format, no escaping; @@ -25,7 +25,7 @@ Below is a comparison of the formats `RawBLOB` and [`TabSeparatedRaw`](/referenc - the rows contain values separated by tabs; - there is a line feed after the last value in every row. -The following is a comparison of the `RawBLOB` and [RowBinary](/reference/formats/RowBinary/RowBinary) formats. +The following is a comparison of the `RawBLOB` and [RowBinary](/core/reference/formats/RowBinary/RowBinary) formats. `RawBLOB`: - String fields are output without being prefixed by length. diff --git a/reference/formats/Regexp.mdx b/core/reference/formats/Regexp.mdx similarity index 62% rename from reference/formats/Regexp.mdx rename to core/reference/formats/Regexp.mdx index 9f355890..678631dd 100644 --- a/reference/formats/Regexp.mdx +++ b/core/reference/formats/Regexp.mdx @@ -19,13 +19,13 @@ The `Regex` format parses every line of imported data according to the provided **Usage** -The regular expression from [format_regexp](/reference/settings/formats#format_regexp) setting is applied to every line of imported data. The number of subpatterns in the regular expression must be equal to the number of columns in imported dataset. +The regular expression from [format_regexp](/core/reference/settings/formats#format_regexp) setting is applied to every line of imported data. The number of subpatterns in the regular expression must be equal to the number of columns in imported dataset. Lines of the imported data must be separated by newline character `'\n'` or DOS-style newline `"\r\n"`. -The content of every matched subpattern is parsed with the method of corresponding data type, according to [format_regexp_escaping_rule](/reference/settings/formats#format_regexp_escaping_rule) setting. +The content of every matched subpattern is parsed with the method of corresponding data type, according to [format_regexp_escaping_rule](/core/reference/settings/formats#format_regexp_escaping_rule) setting. -If the regular expression does not match the line and [format_regexp_skip_unmatched](/reference/settings/formats#format_regexp_escaping_rule) is set to 1, the line is silently skipped. Otherwise, exception is thrown. +If the regular expression does not match the line and [format_regexp_skip_unmatched](/core/reference/settings/formats#format_regexp_escaping_rule) is set to 1, the line is silently skipped. Otherwise, exception is thrown. ## Example usage {#example-usage} @@ -66,13 +66,13 @@ SELECT * FROM imp_regex_table; When working with the `Regexp` format, you can use the following settings: -- `format_regexp` — [String](/reference/data-types/string). Contains regular expression in the [re2](https://github.com/google/re2/wiki/Syntax) format. -- `format_regexp_escaping_rule` — [String](/reference/data-types/string). The following escaping rules are supported: +- `format_regexp` — [String](/core/reference/data-types/string). Contains regular expression in the [re2](https://github.com/google/re2/wiki/Syntax) format. +- `format_regexp_escaping_rule` — [String](/core/reference/data-types/string). The following escaping rules are supported: - - CSV (similarly to [CSV](/reference/formats/CSV/CSV) - - JSON (similarly to [JSONEachRow](/reference/formats/JSON/JSONEachRow) - - Escaped (similarly to [TSV](/reference/formats/TabSeparated/TabSeparated) - - Quoted (similarly to [Values](/reference/formats/Values) - - Raw (extracts subpatterns as a whole, no escaping rules, similarly to [TSVRaw](/reference/formats/TabSeparated/TabSeparated) + - CSV (similarly to [CSV](/core/reference/formats/CSV/CSV) + - JSON (similarly to [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) + - Escaped (similarly to [TSV](/core/reference/formats/TabSeparated/TabSeparated) + - Quoted (similarly to [Values](/core/reference/formats/Values) + - Raw (extracts subpatterns as a whole, no escaping rules, similarly to [TSVRaw](/core/reference/formats/TabSeparated/TabSeparated) -- `format_regexp_skip_unmatched` — [UInt8](/reference/data-types/int-uint). Defines the need to throw an exception in case the `format_regexp` expression does not match the imported data. Can be set to `0` or `1`. +- `format_regexp_skip_unmatched` — [UInt8](/core/reference/data-types/int-uint). Defines the need to throw an exception in case the `format_regexp` expression does not match the imported data. Can be set to `0` or `1`. diff --git a/reference/formats/RowBinary/RowBinary.mdx b/core/reference/formats/RowBinary/RowBinary.mdx similarity index 96% rename from reference/formats/RowBinary/RowBinary.mdx rename to core/reference/formats/RowBinary/RowBinary.mdx index 993c4049..901017f9 100644 --- a/reference/formats/RowBinary/RowBinary.mdx +++ b/core/reference/formats/RowBinary/RowBinary.mdx @@ -31,7 +31,7 @@ Because data is in the binary format the delimiter after `FORMAT RowBinary` is s - Immediately followed by binary data. -This format is less efficient than the [Native](/reference/formats/Native) format since it is row-based. +This format is less efficient than the [Native](/core/reference/formats/Native) format since it is row-based. ## Data types wire format {#data-types-wire-format} @@ -68,7 +68,7 @@ Boolean values are encoded as a single byte, and can be deserialized similarly t ### BFloat16 {#bfloat16} -[BFloat16](/reference/data-types/float#bfloat16) (Brain Floating Point) is a 16-bit floating point format with the range of Float32 and reduced precision, making it useful for machine learning workloads. The wire format is essentially the top 16 bits of a Float32 value. If your language doesn't support it natively, the easiest way to handle it is to read and write as UInt16, converting to and from Float32: +[BFloat16](/core/reference/data-types/float#bfloat16) (Brain Floating Point) is a 16-bit floating point format with the range of Float32 and reduced precision, making it useful for machine learning workloads. The wire format is essentially the top 16 bits of a Float32 value. If your language doesn't support it natively, the easiest way to handle it is to read and write as UInt16, converting to and from Float32: To convert BFloat16 to Float32 (pseudocode): @@ -126,7 +126,7 @@ let scale_multiplier = 10 ** scale let result = whole_part * scale_multiplier + fractional_part ``` -See more details in the [Decimal types ClickHouse docs](/reference/data-types/decimal). +See more details in the [Decimal types ClickHouse docs](/core/reference/data-types/decimal). ### String {#string} @@ -531,7 +531,7 @@ This only applies to RowBinary. In the Native format, `LowCardinality` uses a di A column can be defined as `LowCardinality(Nullable(T))`, but it is not possible to define it as `Nullable(LowCardinality(T))` - it will always result in an error from the server. -While testing, [allow_suspicious_low_cardinality_types](/reference/settings/session-settings#allow_suspicious_low_cardinality_types) can be set to `1` to allow most of the data types inside `LowCardinality` for better coverage. +While testing, [allow_suspicious_low_cardinality_types](/core/reference/settings/session-settings#allow_suspicious_low_cardinality_types) can be set to `1` to allow most of the data types inside `LowCardinality` for better coverage. ### Array {#array} @@ -727,17 +727,17 @@ SELECT NULL :: Variant(UInt32, String) 0xFF, // discriminant = NULL ``` -The [allow_suspicious_variant_types](/reference/settings/session-settings#allow_suspicious_variant_types) setting can be used to allow more exhaustive testing of the `Variant` type. +The [allow_suspicious_variant_types](/core/reference/settings/session-settings#allow_suspicious_variant_types) setting can be used to allow more exhaustive testing of the `Variant` type. ### Dynamic {#dynamic} -The `Dynamic` type can hold values of any type, determined at runtime. In RowBinary format, each value is self-describing: the first part is the type specification in [this format](/reference/data-types/data-types-binary-encoding). The contents then follow, with the value encoding as described in this document. So to parse a value you just need to use the type index to determine the right parser and then re-use the RowBinary parsing you already have elsewhere. +The `Dynamic` type can hold values of any type, determined at runtime. In RowBinary format, each value is self-describing: the first part is the type specification in [this format](/core/reference/data-types/data-types-binary-encoding). The contents then follow, with the value encoding as described in this document. So to parse a value you just need to use the type index to determine the right parser and then re-use the RowBinary parsing you already have elsewhere. ```text [BinaryTypeIndex][type-specific parameters...][value] ``` -Where `BinaryTypeIndex` is a single byte identifying the type. See the reference [here](/reference/data-types/data-types-binary-encoding) for the type indices and parameters. +Where `BinaryTypeIndex` is a single byte identifying the type. See the reference [here](/core/reference/data-types/data-types-binary-encoding) for the type indices and parameters. A `NULL` Dynamic value is encoded with `BinaryTypeIndex` `0x00` (the `Nothing` type), with no additional bytes: diff --git a/reference/formats/RowBinary/RowBinaryWithDefaults.mdx b/core/reference/formats/RowBinary/RowBinaryWithDefaults.mdx similarity index 86% rename from reference/formats/RowBinary/RowBinaryWithDefaults.mdx rename to core/reference/formats/RowBinary/RowBinaryWithDefaults.mdx index d4efd85d..5e74f0f9 100644 --- a/reference/formats/RowBinary/RowBinaryWithDefaults.mdx +++ b/core/reference/formats/RowBinary/RowBinaryWithDefaults.mdx @@ -17,7 +17,7 @@ import RowBinaryFormatSettings from '/snippets/common-row-binary-format-settings ## Description {#description} -Similar to the [`RowBinary`](/reference/formats/RowBinary/RowBinary) format, but with an extra byte before each column that indicates if the default value should be used. +Similar to the [`RowBinary`](/core/reference/formats/RowBinary/RowBinary) format, but with an extra byte before each column that indicates if the default value should be used. ## Example usage {#example-usage} diff --git a/reference/formats/RowBinary/RowBinaryWithNames.mdx b/core/reference/formats/RowBinary/RowBinaryWithNames.mdx similarity index 69% rename from reference/formats/RowBinary/RowBinaryWithNames.mdx rename to core/reference/formats/RowBinary/RowBinaryWithNames.mdx index 58812f21..42cb1e42 100644 --- a/reference/formats/RowBinary/RowBinaryWithNames.mdx +++ b/core/reference/formats/RowBinary/RowBinaryWithNames.mdx @@ -16,7 +16,7 @@ import RowBinaryFormatSettings from '/snippets/common-row-binary-format-settings ## Description {#description} -Similar to the [`RowBinary`](/reference/formats/RowBinary/RowBinary) format, but with added header: +Similar to the [`RowBinary`](/core/reference/formats/RowBinary/RowBinary) format, but with added header: - [`LEB128`](https://en.wikipedia.org/wiki/LEB128)-encoded number of columns (N). - N `String`s specifying column names. @@ -28,8 +28,8 @@ Similar to the [`RowBinary`](/reference/formats/RowBinary/RowBinary) format, but -- If setting [`input_format_with_names_use_header`](/reference/settings/formats#input_format_with_names_use_header) is set to `1`, +- If setting [`input_format_with_names_use_header`](/core/reference/settings/formats#input_format_with_names_use_header) is set to `1`, the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped. -- If setting [`input_format_skip_unknown_fields`](/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. +- If setting [`input_format_skip_unknown_fields`](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. Otherwise, the first row will be skipped. \ No newline at end of file diff --git a/reference/formats/RowBinary/RowBinaryWithNamesAndTypes.mdx b/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes.mdx similarity index 68% rename from reference/formats/RowBinary/RowBinaryWithNamesAndTypes.mdx rename to core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes.mdx index 21aa5644..cfae781b 100644 --- a/reference/formats/RowBinary/RowBinaryWithNamesAndTypes.mdx +++ b/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes.mdx @@ -17,7 +17,7 @@ import RowBinaryFormatSettings from '/snippets/common-row-binary-format-settings ## Description {#description} -Similar to the [RowBinary](/reference/formats/RowBinary/RowBinary) format, but with added header: +Similar to the [RowBinary](/core/reference/formats/RowBinary/RowBinary) format, but with added header: - [`LEB128`](https://en.wikipedia.org/wiki/LEB128)-encoded number of columns (N). - N `String`s specifying column names. @@ -30,9 +30,9 @@ Similar to the [RowBinary](/reference/formats/RowBinary/RowBinary) format, but w -If setting [`input_format_with_names_use_header`](/reference/settings/formats#input_format_with_names_use_header) is set to 1, -the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. +If setting [`input_format_with_names_use_header`](/core/reference/settings/formats#input_format_with_names_use_header) is set to 1, +the columns from input data will be mapped to the columns from the table by their names, columns with unknown names will be skipped if setting [input_format_skip_unknown_fields](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. Otherwise, the first row will be skipped. -If setting [`input_format_with_types_use_header`](/reference/settings/formats#input_format_with_types_use_header) is set to `1`, +If setting [`input_format_with_types_use_header`](/core/reference/settings/formats#input_format_with_types_use_header) is set to `1`, the types from input data will be compared with the types of the corresponding columns from the table. Otherwise, the second row will be skipped. \ No newline at end of file diff --git a/core/reference/formats/RowBinary/_snippets/common-row-binary-format-settings.mdx b/core/reference/formats/RowBinary/_snippets/common-row-binary-format-settings.mdx new file mode 100644 index 00000000..1ffb5db7 --- /dev/null +++ b/core/reference/formats/RowBinary/_snippets/common-row-binary-format-settings.mdx @@ -0,0 +1,11 @@ +{/* Note: This snippet is reused in any file it is imported by */} + +The following settings are common to all `RowBinary` type formats. + +| Setting | Description | Default | +|------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| +| [`format_binary_max_string_size`](/core/reference/settings/formats#format_binary_max_string_size) | The maximum allowed size for String in RowBinary format. | `1GiB` | +| [`output_format_binary_encode_types_in_binary_format`](/core/reference/settings/formats#input_format_binary_decode_types_in_binary_format) | Allows to write types in header using [`binary encoding`](/core/reference/data-types/data-types-binary-encoding) instead of strings with type names in [`RowBinaryWithNamesAndTypes`](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) output format. | `false` | +| [`input_format_binary_decode_types_in_binary_format`](/core/reference/settings/formats#input_format_binary_decode_types_in_binary_format) | Allows to read types in header using [`binary encoding`](/core/reference/data-types/data-types-binary-encoding) instead of strings with type names in [`RowBinaryWithNamesAndTypes`](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) input format. | `false` | +| [`output_format_binary_write_json_as_string`](/core/reference/settings/formats#output_format_binary_write_json_as_string) | Allows to write values of the [`JSON`](/core/reference/data-types/newjson) data type as `JSON` [String](/core/reference/data-types/string) values in [`RowBinary`](/core/reference/formats/RowBinary/RowBinary) output format. | `false` | +| [`input_format_binary_read_json_as_string`](/core/reference/settings/formats#input_format_binary_read_json_as_string) | Allows to read values of the [`JSON`](/core/reference/data-types/newjson) data type as `JSON` [String](/core/reference/data-types/string) values in [`RowBinary`](/core/reference/formats/RowBinary/RowBinary) input format. | `false` | diff --git a/reference/formats/SQLInsert.mdx b/core/reference/formats/SQLInsert.mdx similarity index 57% rename from reference/formats/SQLInsert.mdx rename to core/reference/formats/SQLInsert.mdx index 1d71a9a5..e37527ef 100644 --- a/reference/formats/SQLInsert.mdx +++ b/core/reference/formats/SQLInsert.mdx @@ -33,14 +33,14 @@ INSERT INTO table (x, y, z) VALUES (6, 7, 'Hello'), (7, 8, 'Hello'); INSERT INTO table (x, y, z) VALUES (8, 9, 'Hello'), (9, 10, 'Hello'); ``` -To read data output by this format you can use [MySQLDump](/reference/formats/MySQLDump) input format. +To read data output by this format you can use [MySQLDump](/core/reference/formats/MySQLDump) input format. ## Format settings {#format-settings} | Setting | Description | Default | |----------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|-----------| -| [`output_format_sql_insert_max_batch_size`](/reference/settings/formats#output_format_sql_insert_max_batch_size) | The maximum number of rows in one INSERT statement. | `65505` | -| [`output_format_sql_insert_table_name`](/reference/settings/formats#output_format_sql_insert_table_name) | The name of the table in the output INSERT query. | `'table'` | -| [`output_format_sql_insert_include_column_names`](/reference/settings/formats#output_format_sql_insert_include_column_names) | Include column names in INSERT query. | `true` | -| [`output_format_sql_insert_use_replace`](/reference/settings/formats#output_format_sql_insert_use_replace) | Use REPLACE statement instead of INSERT. | `false` | -| [`output_format_sql_insert_quote_names`](/reference/settings/formats#output_format_sql_insert_quote_names) | Quote column names with "\`" characters. | `true` | +| [`output_format_sql_insert_max_batch_size`](/core/reference/settings/formats#output_format_sql_insert_max_batch_size) | The maximum number of rows in one INSERT statement. | `65505` | +| [`output_format_sql_insert_table_name`](/core/reference/settings/formats#output_format_sql_insert_table_name) | The name of the table in the output INSERT query. | `'table'` | +| [`output_format_sql_insert_include_column_names`](/core/reference/settings/formats#output_format_sql_insert_include_column_names) | Include column names in INSERT query. | `true` | +| [`output_format_sql_insert_use_replace`](/core/reference/settings/formats#output_format_sql_insert_use_replace) | Use REPLACE statement instead of INSERT. | `false` | +| [`output_format_sql_insert_quote_names`](/core/reference/settings/formats#output_format_sql_insert_quote_names) | Quote column names with "\`" characters. | `true` | diff --git a/reference/formats/TabSeparated/TSKV.mdx b/core/reference/formats/TabSeparated/TSKV.mdx similarity index 91% rename from reference/formats/TabSeparated/TSKV.mdx rename to core/reference/formats/TabSeparated/TSKV.mdx index dfcc4076..81492e44 100644 --- a/reference/formats/TabSeparated/TSKV.mdx +++ b/core/reference/formats/TabSeparated/TSKV.mdx @@ -15,8 +15,8 @@ doc_type: 'reference' ## Description {#description} -Similar to the [`TabSeparated`](/reference/formats/TabSeparated/TabSeparated) format, but outputs a value in `name=value` format. -Names are escaped the same way as in the [`TabSeparated`](/reference/formats/TabSeparated/TabSeparated) format, and the `=` symbol is also escaped. +Similar to the [`TabSeparated`](/core/reference/formats/TabSeparated/TabSeparated) format, but outputs a value in `name=value` format. +Names are escaped the same way as in the [`TabSeparated`](/core/reference/formats/TabSeparated/TabSeparated) format, and the `=` symbol is also escaped. ```text SearchPhrase= count()=8267016 @@ -41,7 +41,7 @@ x=1 y=\N When there are a large number of small columns, this format is ineffective, and there is generally no reason to use it. -Nevertheless, it is no worse than the [`JSONEachRow`](/reference/formats/JSON/JSONEachRow) format in terms of efficiency. +Nevertheless, it is no worse than the [`JSONEachRow`](/core/reference/formats/JSON/JSONEachRow) format in terms of efficiency. For parsing, any order is supported for the values of the different columns. @@ -52,9 +52,9 @@ Complex values that could be specified in the table are not supported as default Parsing allows an additional field `tskv` to be added without the equal sign or a value. This field is ignored. During import, columns with unknown names will be skipped, -if setting [`input_format_skip_unknown_fields`](/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. +if setting [`input_format_skip_unknown_fields`](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. -[NULL](/reference/syntax) is formatted as `\N`. +[NULL](/core/reference/syntax) is formatted as `\N`. ## Example usage {#example-usage} diff --git a/reference/formats/TabSeparated/TabSeparated.mdx b/core/reference/formats/TabSeparated/TabSeparated.mdx similarity index 72% rename from reference/formats/TabSeparated/TabSeparated.mdx rename to core/reference/formats/TabSeparated/TabSeparated.mdx index d5bc0935..080121fb 100644 --- a/reference/formats/TabSeparated/TabSeparated.mdx +++ b/core/reference/formats/TabSeparated/TabSeparated.mdx @@ -72,12 +72,12 @@ Only a small set of symbols are escaped. You can easily stumble onto a string va Arrays are written as a list of comma-separated values in `[]`. Number items in the array are formatted as normally. `Date` and `DateTime` types are written in single quotes. Strings are written in single quotes with the same escaping rules as above. -[NULL](/reference/syntax) is formatted according to setting [format_tsv_null_representation](/reference/settings/formats#format_tsv_null_representation) (default value is `\N`). +[NULL](/core/reference/syntax) is formatted according to setting [format_tsv_null_representation](/core/reference/settings/formats#format_tsv_null_representation) (default value is `\N`). In input data, ENUM values can be represented as names or as ids. First, we try to match the input value to the ENUM name. If we fail and the input value is a number, we try to match this number to ENUM id. -If input data contains only ENUM ids, it's recommended to enable the setting [input_format_tsv_enum_as_number](/reference/settings/formats#input_format_tsv_enum_as_number) to optimize ENUM parsing. +If input data contains only ENUM ids, it's recommended to enable the setting [input_format_tsv_enum_as_number](/core/reference/settings/formats#input_format_tsv_enum_as_number) to optimize ENUM parsing. -Each element of [Nested](/reference/data-types/nested-data-structures) structures is represented as an array. +Each element of [Nested](/core/reference/data-types/nested-data-structures) structures is represented as an array. For example: @@ -171,13 +171,13 @@ The output will be in tab separated format: | Setting | Description | Default | |------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| -| [`format_tsv_null_representation`](/reference/settings/formats#format_tsv_null_representation) | Custom NULL representation in TSV format. | `\N` | -| [`input_format_tsv_empty_as_default`](/reference/settings/formats#input_format_tsv_empty_as_default) | treat empty fields in TSV input as default values. For complex default expressions [input_format_defaults_for_omitted_fields](/reference/settings/formats#input_format_defaults_for_omitted_fields) must be enabled too. | `false` | -| [`input_format_tsv_enum_as_number`](/reference/settings/formats#input_format_tsv_enum_as_number) | treat inserted enum values in TSV formats as enum indices. | `false` | -| [`input_format_tsv_use_best_effort_in_schema_inference`](/reference/settings/formats#input_format_tsv_use_best_effort_in_schema_inference) | use some tweaks and heuristics to infer schema in TSV format. If disabled, all fields will be inferred as Strings. | `true` | -| [`output_format_tsv_crlf_end_of_line`](/reference/settings/formats#output_format_tsv_crlf_end_of_line) | if it is set true, end of line in TSV output format will be `\r\n` instead of `\n`. | `false` | -| [`input_format_tsv_crlf_end_of_line`](/reference/settings/formats#input_format_tsv_crlf_end_of_line) | if it is set true, end of line in TSV input format will be `\r\n` instead of `\n`. | `false` | -| [`input_format_tsv_skip_first_lines`](/reference/settings/formats#input_format_tsv_skip_first_lines) | skip specified number of lines at the beginning of data. | `0` | -| [`input_format_tsv_detect_header`](/reference/settings/formats#input_format_tsv_detect_header) | automatically detect header with names and types in TSV format. | `true` | -| [`input_format_tsv_skip_trailing_empty_lines`](/reference/settings/formats#input_format_tsv_skip_trailing_empty_lines) | skip trailing empty lines at the end of data. | `false` | -| [`input_format_tsv_allow_variable_number_of_columns`](/reference/settings/formats#input_format_tsv_allow_variable_number_of_columns) | allow variable number of columns in TSV format, ignore extra columns and use default values on missing columns. | `false` | +| [`format_tsv_null_representation`](/core/reference/settings/formats#format_tsv_null_representation) | Custom NULL representation in TSV format. | `\N` | +| [`input_format_tsv_empty_as_default`](/core/reference/settings/formats#input_format_tsv_empty_as_default) | treat empty fields in TSV input as default values. For complex default expressions [input_format_defaults_for_omitted_fields](/core/reference/settings/formats#input_format_defaults_for_omitted_fields) must be enabled too. | `false` | +| [`input_format_tsv_enum_as_number`](/core/reference/settings/formats#input_format_tsv_enum_as_number) | treat inserted enum values in TSV formats as enum indices. | `false` | +| [`input_format_tsv_use_best_effort_in_schema_inference`](/core/reference/settings/formats#input_format_tsv_use_best_effort_in_schema_inference) | use some tweaks and heuristics to infer schema in TSV format. If disabled, all fields will be inferred as Strings. | `true` | +| [`output_format_tsv_crlf_end_of_line`](/core/reference/settings/formats#output_format_tsv_crlf_end_of_line) | if it is set true, end of line in TSV output format will be `\r\n` instead of `\n`. | `false` | +| [`input_format_tsv_crlf_end_of_line`](/core/reference/settings/formats#input_format_tsv_crlf_end_of_line) | if it is set true, end of line in TSV input format will be `\r\n` instead of `\n`. | `false` | +| [`input_format_tsv_skip_first_lines`](/core/reference/settings/formats#input_format_tsv_skip_first_lines) | skip specified number of lines at the beginning of data. | `0` | +| [`input_format_tsv_detect_header`](/core/reference/settings/formats#input_format_tsv_detect_header) | automatically detect header with names and types in TSV format. | `true` | +| [`input_format_tsv_skip_trailing_empty_lines`](/core/reference/settings/formats#input_format_tsv_skip_trailing_empty_lines) | skip trailing empty lines at the end of data. | `false` | +| [`input_format_tsv_allow_variable_number_of_columns`](/core/reference/settings/formats#input_format_tsv_allow_variable_number_of_columns) | allow variable number of columns in TSV format, ignore extra columns and use default values on missing columns. | `false` | diff --git a/reference/formats/TabSeparated/TabSeparatedRaw.mdx b/core/reference/formats/TabSeparated/TabSeparatedRaw.mdx similarity index 93% rename from reference/formats/TabSeparated/TabSeparatedRaw.mdx rename to core/reference/formats/TabSeparated/TabSeparatedRaw.mdx index 730205d0..a92c5807 100644 --- a/reference/formats/TabSeparated/TabSeparatedRaw.mdx +++ b/core/reference/formats/TabSeparated/TabSeparatedRaw.mdx @@ -15,13 +15,13 @@ doc_type: 'reference' ## Description {#description} -Differs from the [`TabSeparated`](/reference/formats/TabSeparated/TabSeparated) format in that rows are written without escaping. +Differs from the [`TabSeparated`](/core/reference/formats/TabSeparated/TabSeparated) format in that rows are written without escaping. When parsing with this format, tabs or line-feeds are not allowed in each field. -For a comparison of the `TabSeparatedRaw` format and the `RawBlob` format see: [Raw Formats Comparison](/reference/formats/RawBLOB#raw-formats-comparison) +For a comparison of the `TabSeparatedRaw` format and the `RawBlob` format see: [Raw Formats Comparison](/core/reference/formats/RawBLOB#raw-formats-comparison) ## Example usage {#example-usage} diff --git a/reference/formats/TabSeparated/TabSeparatedRawWithNames.mdx b/core/reference/formats/TabSeparated/TabSeparatedRawWithNames.mdx similarity index 97% rename from reference/formats/TabSeparated/TabSeparatedRawWithNames.mdx rename to core/reference/formats/TabSeparated/TabSeparatedRawWithNames.mdx index 93862f78..1adf1aa4 100644 --- a/reference/formats/TabSeparated/TabSeparatedRawWithNames.mdx +++ b/core/reference/formats/TabSeparated/TabSeparatedRawWithNames.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from the [`TabSeparatedWithNames`](/reference/formats/TabSeparated/TabSeparatedWithNames) format, +Differs from the [`TabSeparatedWithNames`](/core/reference/formats/TabSeparated/TabSeparatedWithNames) format, in that the rows are written without escaping. diff --git a/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.mdx b/core/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.mdx similarity index 96% rename from reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.mdx rename to core/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.mdx index ca3b27d2..b88f252a 100644 --- a/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.mdx +++ b/core/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes.mdx @@ -15,7 +15,7 @@ doc_type: 'reference' ## Description {#description} -Differs from the [`TabSeparatedWithNamesAndTypes`](/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) format, +Differs from the [`TabSeparatedWithNamesAndTypes`](/core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) format, in that the rows are written without escaping. diff --git a/reference/formats/TabSeparated/TabSeparatedWithNames.mdx b/core/reference/formats/TabSeparated/TabSeparatedWithNames.mdx similarity index 90% rename from reference/formats/TabSeparated/TabSeparatedWithNames.mdx rename to core/reference/formats/TabSeparated/TabSeparatedWithNames.mdx index ed2e4152..80c95a48 100644 --- a/reference/formats/TabSeparated/TabSeparatedWithNames.mdx +++ b/core/reference/formats/TabSeparated/TabSeparatedWithNames.mdx @@ -15,13 +15,13 @@ doc_type: 'reference' ## Description {#description} -Differs from the [`TabSeparated`](/reference/formats/TabSeparated/TabSeparated) format in that the column names are written in the first row. +Differs from the [`TabSeparated`](/core/reference/formats/TabSeparated/TabSeparated) format in that the column names are written in the first row. During parsing, the first row is expected to contain the column names. You can use column names to determine their position and to check their correctness. -If setting [`input_format_with_names_use_header`](/reference/settings/formats#input_format_with_names_use_header) is set to `1`, -the columns from the input data will be mapped to the columns of the table by their names, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. +If setting [`input_format_with_names_use_header`](/core/reference/settings/formats#input_format_with_names_use_header) is set to `1`, +the columns from the input data will be mapped to the columns of the table by their names, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to `1`. Otherwise, the first row will be skipped. diff --git a/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes.mdx b/core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes.mdx similarity index 87% rename from reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes.mdx rename to core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes.mdx index ad730eb6..52e34c7e 100644 --- a/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes.mdx +++ b/core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes.mdx @@ -12,13 +12,13 @@ doc_type: 'reference' ## Description {#description} -Differs from the [`TabSeparated`](/reference/formats/TabSeparated/TabSeparated) format in that the column names are written to the first row, while the column types are in the second row. +Differs from the [`TabSeparated`](/core/reference/formats/TabSeparated/TabSeparated) format in that the column names are written to the first row, while the column types are in the second row. -- If setting [`input_format_with_names_use_header`](/reference/settings/formats#input_format_with_names_use_header) is set to `1`, -the columns from the input data will be mapped to the columns in the table by their names, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. +- If setting [`input_format_with_names_use_header`](/core/reference/settings/formats#input_format_with_names_use_header) is set to `1`, +the columns from the input data will be mapped to the columns in the table by their names, columns with unknown names will be skipped if setting [`input_format_skip_unknown_fields`](/core/reference/settings/formats#input_format_skip_unknown_fields) is set to 1. Otherwise, the first row will be skipped. -- If setting [`input_format_with_types_use_header`](/reference/settings/formats#input_format_with_types_use_header) is set to `1`, +- If setting [`input_format_with_types_use_header`](/core/reference/settings/formats#input_format_with_types_use_header) is set to `1`, the types from input data will be compared with the types of the corresponding columns from the table. Otherwise, the second row will be skipped. diff --git a/reference/formats/Template/Template.mdx b/core/reference/formats/Template/Template.mdx similarity index 100% rename from reference/formats/Template/Template.mdx rename to core/reference/formats/Template/Template.mdx diff --git a/reference/formats/Template/TemplateIgnoreSpaces.mdx b/core/reference/formats/Template/TemplateIgnoreSpaces.mdx similarity index 96% rename from reference/formats/Template/TemplateIgnoreSpaces.mdx rename to core/reference/formats/Template/TemplateIgnoreSpaces.mdx index 9daf732b..a934e774 100644 --- a/reference/formats/Template/TemplateIgnoreSpaces.mdx +++ b/core/reference/formats/Template/TemplateIgnoreSpaces.mdx @@ -27,7 +27,7 @@ This format is suitable only for input. ## Example usage {#example-usage} -The following request can be used for inserting data from its output example of format [JSON](/reference/formats/JSON/JSON): +The following request can be used for inserting data from its output example of format [JSON](/core/reference/formats/JSON/JSON): ```sql INSERT INTO table_name diff --git a/reference/formats/Values.mdx b/core/reference/formats/Values.mdx similarity index 62% rename from reference/formats/Values.mdx rename to core/reference/formats/Values.mdx index 70a9ffe5..8eef19d5 100644 --- a/reference/formats/Values.mdx +++ b/core/reference/formats/Values.mdx @@ -22,10 +22,10 @@ The `Values` format prints every row in brackets. - Numbers are output in a decimal format without quotes. - Arrays are output in `[]`. - Strings, dates, and dates with times are output in quotes. -- Escaping rules and parsing are similar to the [TabSeparated](/reference/formats/TabSeparated/TabSeparated) format. +- Escaping rules and parsing are similar to the [TabSeparated](/core/reference/formats/TabSeparated/TabSeparated) format. During formatting, extra spaces aren't inserted, but during parsing, they are allowed and skipped (except for spaces inside array values, which are not allowed). -[`NULL`](/reference/syntax) is represented as `NULL`. +[`NULL`](/core/reference/syntax) is represented as `NULL`. The minimum set of characters that you need to escape when passing data in the `Values` format: - single quotes @@ -39,6 +39,6 @@ This is the format that is used in `INSERT INTO t VALUES ...`, but you can also | Setting | Description | Default | |-------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| -| [`input_format_values_interpret_expressions`](/reference/settings/formats#input_format_values_interpret_expressions) | if the field could not be parsed by streaming parser, run SQL parser and try to interpret it as SQL expression. | `true` | -| [`input_format_values_deduce_templates_of_expressions`](/reference/settings/formats#input_format_values_deduce_templates_of_expressions) | if the field could not be parsed by streaming parser, run SQL parser, deduce template of the SQL expression, try to parse all rows using template and then interpret expression for all rows. | `true` | -| [`input_format_values_accurate_types_of_literals`](/reference/settings/formats#input_format_values_accurate_types_of_literals) | when parsing and interpreting expressions using template, check actual type of literal to avoid possible overflow and precision issues. | `true` | +| [`input_format_values_interpret_expressions`](/core/reference/settings/formats#input_format_values_interpret_expressions) | if the field could not be parsed by streaming parser, run SQL parser and try to interpret it as SQL expression. | `true` | +| [`input_format_values_deduce_templates_of_expressions`](/core/reference/settings/formats#input_format_values_deduce_templates_of_expressions) | if the field could not be parsed by streaming parser, run SQL parser, deduce template of the SQL expression, try to parse all rows using template and then interpret expression for all rows. | `true` | +| [`input_format_values_accurate_types_of_literals`](/core/reference/settings/formats#input_format_values_accurate_types_of_literals) | when parsing and interpreting expressions using template, check actual type of literal to avoid possible overflow and precision issues. | `true` | diff --git a/reference/formats/Vertical.mdx b/core/reference/formats/Vertical.mdx similarity index 78% rename from reference/formats/Vertical.mdx rename to core/reference/formats/Vertical.mdx index e6dfc611..91e6bec2 100644 --- a/reference/formats/Vertical.mdx +++ b/core/reference/formats/Vertical.mdx @@ -17,7 +17,7 @@ doc_type: 'reference' Prints each value on a separate line with the column name specified. This format is convenient for printing just one or a few rows if each row consists of a large number of columns. -Note that [`NULL`](/reference/syntax) is output as `ᴺᵁᴸᴸ` to make it easier to distinguish between the string value `NULL` and no value. JSON columns will be pretty printed, and `NULL` is output as `null`, because it is a valid JSON value and easily distinguishable from `"null"`. +Note that [`NULL`](/core/reference/syntax) is output as `ᴺᵁᴸᴸ` to make it easier to distinguish between the string value `NULL` and no value. JSON columns will be pretty printed, and `NULL` is output as `null`, because it is a valid JSON value and easily distinguishable from `"null"`. ## Example usage {#example-usage} diff --git a/reference/formats/XML.mdx b/core/reference/formats/XML.mdx similarity index 100% rename from reference/formats/XML.mdx rename to core/reference/formats/XML.mdx diff --git a/core/reference/formats/index.mdx b/core/reference/formats/index.mdx new file mode 100644 index 00000000..8981af11 --- /dev/null +++ b/core/reference/formats/index.mdx @@ -0,0 +1,163 @@ +--- +description: 'Overview of supported data formats for input and output in ClickHouse' +sidebarTitle: 'View all formats...' +slug: /interfaces/formats +title: 'Formats for input and output data' +doc_type: 'reference' +--- + +import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/CloudNotSupportedBadge.jsx"; + +# Formats for input and output data {#formats-for-input-and-output-data} + +ClickHouse supports most of the known text and binary data formats. This allows easy integration into almost any working +data pipeline to leverage the benefits of ClickHouse. + +## Input formats {#input-formats} + +Input formats are used for: +- Parsing data provided to `INSERT` statements +- Performing `SELECT` queries from file-backed tables such as `File`, `URL`, or `HDFS` +- Reading dictionaries + +Choosing the right input format is crucial for efficient data ingestion in ClickHouse. With over 70 supported formats, +selecting the most performant option can significantly impact insert speed, CPU and memory usage, and overall system +efficiency. To help navigate these choices, we benchmarked ingestion performance across formats, revealing key takeaways: + +- **The [Native](/core/reference/formats/Native) format is the most efficient input format**, offering the best compression, lowest + resource usage, and minimal server-side processing overhead. +- **Compression is essential** - LZ4 reduces data size with minimal CPU cost, while ZSTD offers higher compression at the + expense of additional CPU usage. +- **Pre-sorting has a moderate impact**, as ClickHouse already sorts efficiently. +- **Batching significantly improves efficiency** - larger batches reduce insert overhead and improve throughput. + +For a deep dive into the results and best practices, +read the full [benchmark analysis](https://www.clickhouse.com/blog/clickhouse-input-format-matchup-which-is-fastest-most-efficient). +For the full test results, explore the [FastFormats](https://fastformats.clickhouse.com/) online dashboard. + +## Output formats {#output-formats} + +Formats supported for output are used for: +- Arranging the results of a `SELECT` query +- Performing `INSERT` operations into file-backed tables + +## Formats overview {#formats-overview} + +The supported formats are: + +| Format | Input | Output | +|------------------------------------------------------------------------------------------------------------|-----|-------| +| [TabSeparated](/core/reference/formats/TabSeparated/TabSeparated) | ✔ | ✔ | +| [TabSeparatedRaw](/core/reference/formats/TabSeparated/TabSeparatedRaw) | ✔ | ✔ | +| [TabSeparatedWithNames](/core/reference/formats/TabSeparated/TabSeparatedWithNames) | ✔ | ✔ | +| [TabSeparatedWithNamesAndTypes](/core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) | ✔ | ✔ | +| [TabSeparatedRawWithNames](/core/reference/formats/TabSeparated/TabSeparatedRawWithNames) | ✔ | ✔ | +| [TabSeparatedRawWithNamesAndTypes](/core/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes) | ✔ | ✔ | +| [Template](/core/reference/formats/Template/Template) | ✔ | ✔ | +| [TemplateIgnoreSpaces](/core/reference/formats/Template/TemplateIgnoreSpaces) | ✔ | ✗ | +| [CSV](/core/reference/formats/CSV/CSV) | ✔ | ✔ | +| [CSVWithNames](/core/reference/formats/CSV/CSVWithNames) | ✔ | ✔ | +| [CSVWithNamesAndTypes](/core/reference/formats/CSV/CSVWithNamesAndTypes) | ✔ | ✔ | +| [CustomSeparated](/core/reference/formats/CustomSeparated/CustomSeparated) | ✔ | ✔ | +| [CustomSeparatedWithNames](/core/reference/formats/CustomSeparated/CustomSeparatedWithNames) | ✔ | ✔ | +| [CustomSeparatedWithNamesAndTypes](/core/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes) | ✔ | ✔ | +| [SQLInsert](/core/reference/formats/SQLInsert) | ✗ | ✔ | +| [Values](/core/reference/formats/Values) | ✔ | ✔ | +| [Vertical](/core/reference/formats/Vertical) | ✗ | ✔ | +| [JSON](/core/reference/formats/JSON/JSON) | ✔ | ✔ | +| [JSONAsString](/core/reference/formats/JSON/JSONAsString) | ✔ | ✗ | +| [JSONAsObject](/core/reference/formats/JSON/JSONAsObject) | ✔ | ✗ | +| [JSONStrings](/core/reference/formats/JSON/JSONStrings) | ✔ | ✔ | +| [JSONColumns](/core/reference/formats/JSON/JSONColumns) | ✔ | ✔ | +| [JSONColumnsWithMetadata](/core/reference/formats/JSON/JSONColumnsWithMetadata) | ✔ | ✔ | +| [JSONCompact](/core/reference/formats/JSON/JSONCompact) | ✔ | ✔ | +| [JSONCompactStrings](/core/reference/formats/JSON/JSONCompactStrings) | ✗ | ✔ | +| [JSONCompactColumns](/core/reference/formats/JSON/JSONCompactColumns) | ✔ | ✔ | +| [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) | ✔ | ✔ | +| [PrettyJSONEachRow](/core/reference/formats/JSON/PrettyJSONEachRow) | ✗ | ✔ | +| [JSONEachRowWithProgress](/core/reference/formats/JSON/JSONEachRowWithProgress) | ✗ | ✔ | +| [JSONStringsEachRow](/core/reference/formats/JSON/JSONStringsEachRow) | ✔ | ✔ | +| [JSONStringsEachRowWithProgress](/core/reference/formats/JSON/JSONStringsEachRowWithProgress) | ✗ | ✔ | +| [JSONCompactEachRow](/core/reference/formats/JSON/JSONCompactEachRow) | ✔ | ✔ | +| [JSONCompactEachRowWithNames](/core/reference/formats/JSON/JSONCompactEachRowWithNames) | ✔ | ✔ | +| [JSONCompactEachRowWithNamesAndTypes](/core/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes) | ✔ | ✔ | +| [JSONCompactEachRowWithProgress](/core/reference/formats/JSON/JSONCompactEachRowWithProgress) | ✗ | ✔ | +| [JSONCompactStringsEachRow](/core/reference/formats/JSON/JSONCompactStringsEachRow) | ✔ | ✔ | +| [JSONCompactStringsEachRowWithNames](/core/reference/formats/JSON/JSONCompactStringsEachRowWithNames) | ✔ | ✔ | +| [JSONCompactStringsEachRowWithNamesAndTypes](/core/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes) | ✔ | ✔ | +| [JSONCompactStringsEachRowWithProgress](/core/reference/formats/JSON/JSONCompactStringsEachRowWithProgress) | ✗ | ✔ | +| [JSONObjectEachRow](/core/reference/formats/JSON/JSONObjectEachRow) | ✔ | ✔ | +| [BSONEachRow](/core/reference/formats/BSONEachRow) | ✔ | ✔ | +| [TSKV](/core/reference/formats/TabSeparated/TSKV) | ✔ | ✔ | +| [Pretty](/core/reference/formats/Pretty/Pretty) | ✗ | ✔ | +| [PrettyNoEscapes](/core/reference/formats/Pretty/PrettyNoEscapes) | ✗ | ✔ | +| [PrettyMonoBlock](/core/reference/formats/Pretty/PrettyMonoBlock) | ✗ | ✔ | +| [PrettyNoEscapesMonoBlock](/core/reference/formats/Pretty/PrettyNoEscapesMonoBlock) | ✗ | ✔ | +| [PrettyCompact](/core/reference/formats/Pretty/PrettyCompact) | ✗ | ✔ | +| [PrettyCompactNoEscapes](/core/reference/formats/Pretty/PrettyCompactNoEscapes) | ✗ | ✔ | +| [PrettyCompactMonoBlock](/core/reference/formats/Pretty/PrettyCompactMonoBlock) | ✗ | ✔ | +| [PrettyCompactNoEscapesMonoBlock](/core/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock) | ✗ | ✔ | +| [PrettySpace](/core/reference/formats/Pretty/PrettySpace) | ✗ | ✔ | +| [PrettySpaceNoEscapes](/core/reference/formats/Pretty/PrettySpaceNoEscapes) | ✗ | ✔ | +| [PrettySpaceMonoBlock](/core/reference/formats/Pretty/PrettySpaceMonoBlock) | ✗ | ✔ | +| [PrettySpaceNoEscapesMonoBlock](/core/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock) | ✗ | ✔ | +| [Prometheus](/core/reference/formats/Prometheus) | ✗ | ✔ | +| [Protobuf](/core/reference/formats/Protobuf/Protobuf) | ✔ | ✔ | +| [ProtobufSingle](/core/reference/formats/Protobuf/ProtobufSingle) | ✔ | ✔ | +| [ProtobufList](/core/reference/formats/Protobuf/ProtobufList) | ✔ | ✔ | +| [Avro](/core/reference/formats/Avro/Avro) | ✔ | ✔ | +| [AvroConfluent](/core/reference/formats/Avro/AvroConfluent) | ✔ | ✔ | +| [Parquet](/core/reference/formats/Parquet/Parquet) | ✔ | ✔ | +| [ParquetMetadata](/core/reference/formats/Parquet/ParquetMetadata) | ✔ | ✗ | +| [Arrow](/core/reference/formats/Arrow/Arrow) | ✔ | ✔ | +| [ArrowStream](/core/reference/formats/Arrow/ArrowStream) | ✔ | ✔ | +| [ORC](/core/reference/formats/ORC) | ✔ | ✔ | +| [One](/core/reference/formats/One) | ✔ | ✗ | +| [Npy](/core/reference/formats/Npy) | ✔ | ✔ | +| [RowBinary](/core/reference/formats/RowBinary/RowBinary) | ✔ | ✔ | +| [RowBinaryWithNames](/core/reference/formats/RowBinary/RowBinaryWithNames) | ✔ | ✔ | +| [RowBinaryWithNamesAndTypes](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) | ✔ | ✔ | +| [RowBinaryWithDefaults](/core/reference/formats/RowBinary/RowBinaryWithDefaults) | ✔ | ✗ | +| [Native](/core/reference/formats/Native) | ✔ | ✔ | +| [Buffers](/core/reference/formats/Buffers) | ✔ | ✔ | +| [Null](/core/reference/formats/Null) | ✗ | ✔ | +| [Hash](/core/reference/formats/Hash) | ✗ | ✔ | +| [XML](/core/reference/formats/XML) | ✗ | ✔ | +| [CapnProto](/core/reference/formats/CapnProto) | ✔ | ✔ | +| [LineAsString](/core/reference/formats/LineAsString/LineAsString) | ✔ | ✔ | +| [LineAsStringWithNames](/core/reference/formats/LineAsString/LineAsStringWithNames) | ✔ | ✔ | +| [LineAsStringWithNamesAndTypes](/core/reference/formats/LineAsString/LineAsStringWithNamesAndTypes) | ✔ | ✔ | +| [Regexp](/core/reference/formats/Regexp) | ✔ | ✗ | +| [RawBLOB](/core/reference/formats/RawBLOB) | ✔ | ✔ | +| [MsgPack](/core/reference/formats/MsgPack) | ✔ | ✔ | +| [MySQLDump](/core/reference/formats/MySQLDump) | ✔ | ✗ | +| [DWARF](/core/reference/formats/DWARF) | ✔ | ✗ | +| [Markdown](/core/reference/formats/Markdown) | ✗ | ✔ | +| [Form](/core/reference/formats/Form) | ✔ | ✗ | + +You can control some format processing parameters with the ClickHouse settings. For more information read the [Settings](/core/reference/settings/formats) section. + +## Format schema {#formatschema} + +The file name containing the format schema is set by the setting `format_schema`. +It's required to set this setting when it is used one of the formats `Cap'n Proto` and `Protobuf`. +The format schema is a combination of a file name and the name of a message type in this file, delimited by a colon, +e.g. `schemafile.proto:MessageType`. +If the file has the standard extension for the format (for example, `.proto` for `Protobuf`), +it can be omitted and in this case, the format schema looks like `schemafile:MessageType`. + +If you input or output data via the [client](/core/concepts/features/interfaces/client) in interactive mode, the file name specified in the format schema +can contain an absolute path or a path relative to the current directory on the client. +If you use the client in the [batch mode](/core/concepts/features/interfaces/client#batch-mode), the path to the schema must be relative due to security reasons. + +If you input or output data via the [HTTP interface](/core/concepts/features/interfaces/http) the file name specified in the format schema +should be located in the directory specified in [format_schema_path](/core/reference/settings/server-settings/settings#format_schema_path) +in the server configuration. + +## Skipping errors {#skippingerrors} + +Some formats such as `CSV`, `TabSeparated`, `TSKV`, `JSONEachRow`, `Template`, `CustomSeparated` and `Protobuf` can skip broken row if parsing error occurred and continue parsing from the beginning of next row. See [input_format_allow_errors_num](/core/reference/settings/formats#input_format_allow_errors_num) and +[input_format_allow_errors_ratio](/core/reference/settings/formats#input_format_allow_errors_ratio) settings. +Limitations: +- In case of parsing error `JSONEachRow` skips all data until the new line (or EOF), so rows must be delimited by `\n` to count errors correctly. +- `Template` and `CustomSeparated` use delimiter after the last column and delimiter between rows to find the beginning of next row, so skipping errors works only if at least one of them is not empty. diff --git a/reference/functions/aggregate-functions/combinators.mdx b/core/reference/functions/aggregate-functions/combinators.mdx similarity index 89% rename from reference/functions/aggregate-functions/combinators.mdx rename to core/reference/functions/aggregate-functions/combinators.mdx index f90f45ce..d00d15fe 100644 --- a/reference/functions/aggregate-functions/combinators.mdx +++ b/core/reference/functions/aggregate-functions/combinators.mdx @@ -62,7 +62,7 @@ GROUP BY timeslot; ## -SimpleState {#-simplestate} -If you apply this combinator, the aggregate function returns the same value but with a different type. This is a [SimpleAggregateFunction(...)](/reference/data-types/simpleaggregatefunction) that can be stored in a table to work with [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) tables. +If you apply this combinator, the aggregate function returns the same value but with a different type. This is a [SimpleAggregateFunction(...)](/core/reference/data-types/simpleaggregatefunction) that can be stored in a table to work with [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) tables. **Syntax** @@ -92,7 +92,7 @@ WITH anySimpleState(number) AS c SELECT toTypeName(c), c FROM numbers(1); ## -State {#-state} -If you apply this combinator, the aggregate function does not return the resulting value (such as the number of unique values for the [uniq](/reference/functions/aggregate-functions/reference/uniq) function), but an intermediate state of the aggregation (for `uniq`, this is the hash table for calculating the number of unique values). This is an `AggregateFunction(...)` that can be used for further processing or stored in a table to finish aggregating later. +If you apply this combinator, the aggregate function does not return the resulting value (such as the number of unique values for the [uniq](/core/reference/functions/aggregate-functions/reference/uniq) function), but an intermediate state of the aggregation (for `uniq`, this is the hash table for calculating the number of unique values). This is an `AggregateFunction(...)` that can be used for further processing or stored in a table to finish aggregating later. Please notice, that -MapState is not an invariant for the same data due to the fact that order of data in intermediate state can change, though it doesn't impact ingestion of this data. @@ -100,9 +100,9 @@ Please notice, that -MapState is not an invariant for the same data due to the f To work with these states, use: -- [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) table engine. -- [finalizeAggregation](/reference/functions/regular-functions/other-functions#finalizeAggregation) function. -- [runningAccumulate](/reference/functions/regular-functions/other-functions#runningAccumulate) function. +- [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) table engine. +- [finalizeAggregation](/core/reference/functions/regular-functions/other-functions#finalizeAggregation) function. +- [runningAccumulate](/core/reference/functions/regular-functions/other-functions#runningAccumulate) function. - [-Merge](#-merge) combinator. - [-MergeState](#-mergestate) combinator. @@ -179,7 +179,7 @@ FROM Changes behavior of an aggregate function. -This combinator converts a result of an aggregate function to the [Nullable](/reference/data-types/nullable) data type. If the aggregate function does not have values to calculate it returns [NULL](/reference/settings/formats#input_format_null_as_default). +This combinator converts a result of an aggregate function to the [Nullable](/core/reference/data-types/nullable) data type. If the aggregate function does not have values to calculate it returns [NULL](/core/reference/settings/formats#input_format_null_as_default). `-OrNull` can be used with other combinators. @@ -267,7 +267,7 @@ Consider the `people` table with the following data: Let's get the names of the people whose age lies in the intervals of `[30,60)` and `[60,75)`. Since we use integer representation for age, we get ages in the `[30, 59]` and `[60,74]` intervals. -To aggregate names in an array, we use the [groupArray](/reference/functions/aggregate-functions/reference/groupArray) aggregate function. It takes one argument. In our case, it's the `name` column. The `groupArrayResample` function should use the `age` column to aggregate names by age. To define the required intervals, we pass the `30, 75, 30` arguments into the `groupArrayResample` function. +To aggregate names in an array, we use the [groupArray](/core/reference/functions/aggregate-functions/reference/groupArray) aggregate function. It takes one argument. In our case, it's the `name` column. The `groupArrayResample` function should use the `age` column to aggregate names by age. To define the required intervals, we pass the `30, 75, 30` arguments into the `groupArrayResample` function. ```sql SELECT groupArrayResample(30, 75, 30)(name, age) FROM people diff --git a/reference/functions/aggregate-functions/grouping_function.mdx b/core/reference/functions/aggregate-functions/grouping_function.mdx similarity index 95% rename from reference/functions/aggregate-functions/grouping_function.mdx rename to core/reference/functions/aggregate-functions/grouping_function.mdx index 2a7387ef..f1c90c27 100644 --- a/reference/functions/aggregate-functions/grouping_function.mdx +++ b/core/reference/functions/aggregate-functions/grouping_function.mdx @@ -7,7 +7,7 @@ doc_type: 'reference' ## GROUPING {#grouping} -[ROLLUP](/reference/statements/select/group-by#rollup-modifier) and [CUBE](/reference/statements/select/group-by#cube-modifier) are modifiers to GROUP BY. Both of these calculate subtotals. ROLLUP takes an ordered list of columns, for example `(day, month, year)`, and calculates subtotals at each level of the aggregation and then a grand total. CUBE calculates subtotals across all possible combinations of the columns specified. GROUPING identifies which rows returned by ROLLUP or CUBE are superaggregates, and which are rows that would be returned by an unmodified GROUP BY. +[ROLLUP](/core/reference/statements/select/group-by#rollup-modifier) and [CUBE](/core/reference/statements/select/group-by#cube-modifier) are modifiers to GROUP BY. Both of these calculate subtotals. ROLLUP takes an ordered list of columns, for example `(day, month, year)`, and calculates subtotals at each level of the aggregation and then a grand total. CUBE calculates subtotals across all possible combinations of the columns specified. GROUPING identifies which rows returned by ROLLUP or CUBE are superaggregates, and which are rows that would be returned by an unmodified GROUP BY. The GROUPING function takes multiple columns as an argument, and returns a bitmask. - `1` indicates that a row returned by a `ROLLUP` or `CUBE` modifier to `GROUP BY` is a subtotal diff --git a/reference/functions/aggregate-functions/index.mdx b/core/reference/functions/aggregate-functions/index.mdx similarity index 71% rename from reference/functions/aggregate-functions/index.mdx rename to core/reference/functions/aggregate-functions/index.mdx index d2a4ef84..1becaa12 100644 --- a/reference/functions/aggregate-functions/index.mdx +++ b/core/reference/functions/aggregate-functions/index.mdx @@ -10,14 +10,14 @@ Aggregate functions work in the [normal](http://www.sql-tutorial.com/sql-aggrega ClickHouse also supports: -- [Parametric aggregate functions](/reference/functions/aggregate-functions/parametric-functions), which accept other parameters in addition to columns. -- [Combinators](/reference/functions/aggregate-functions/combinators), which change the behavior of aggregate functions. +- [Parametric aggregate functions](/core/reference/functions/aggregate-functions/parametric-functions), which accept other parameters in addition to columns. +- [Combinators](/core/reference/functions/aggregate-functions/combinators), which change the behavior of aggregate functions. ## NULL processing {#null-processing} During aggregation, all `NULL` arguments are skipped. If the aggregation has several arguments it will ignore any row in which one or more of them are NULL. -There is an exception to this rule, which are the functions [`first_value`](/reference/functions/aggregate-functions/reference/first_value), [`last_value`](/reference/functions/aggregate-functions/reference/last_value) and their aliases (`any` and `anyLast` respectively) when followed by the modifier `RESPECT NULLS`. For example, `FIRST_VALUE(b) RESPECT NULLS`. +There is an exception to this rule, which are the functions [`first_value`](/core/reference/functions/aggregate-functions/reference/first_value), [`last_value`](/core/reference/functions/aggregate-functions/reference/last_value) and their aliases (`any` and `anyLast` respectively) when followed by the modifier `RESPECT NULLS`. For example, `FIRST_VALUE(b) RESPECT NULLS`. **Examples:** @@ -59,7 +59,7 @@ SELECT groupArray(y) FROM t_null_big `groupArray` does not include `NULL` in the resulting array. -You can use [COALESCE](/reference/functions/regular-functions/functions-for-nulls#coalesce) to change NULL into a value that makes sense in your use case. For example: `avg(COALESCE(column, 0))` with use the column value in the aggregation or zero if NULL: +You can use [COALESCE](/core/reference/functions/regular-functions/functions-for-nulls#coalesce) to change NULL into a value that makes sense in your use case. For example: `avg(COALESCE(column, 0))` with use the column value in the aggregation or zero if NULL: ```sql SELECT @@ -74,7 +74,7 @@ FROM t_null_big └────────────────────┴─────────────────────┘ ``` -Also you can use [Tuple](/reference/data-types/tuple) to work around NULL skipping behavior. A `Tuple` that contains only a `NULL` value is not `NULL`, so the aggregate functions won't skip that row because of that `NULL` value. +Also you can use [Tuple](/core/reference/data-types/tuple) to work around NULL skipping behavior. A `Tuple` that contains only a `NULL` value is not `NULL`, so the aggregate functions won't skip that row because of that `NULL` value. ```sql SELECT @@ -87,7 +87,7 @@ FROM t_null_big; └───────────────┴───────────────────────────────────────┘ ``` -Note that aggregations are skipped when the columns are used as arguments to an aggregated function. For example [`count`](/reference/functions/aggregate-functions/reference/count) without parameters (`count()`) or with constant ones (`count(1)`) will count all rows in the block (independently of the value of the GROUP BY column as it's not an argument), while `count(column)` will only return the number of rows where column is not NULL. +Note that aggregations are skipped when the columns are used as arguments to an aggregated function. For example [`count`](/core/reference/functions/aggregate-functions/reference/count) without parameters (`count()`) or with constant ones (`count(1)`) will count all rows in the block (independently of the value of the GROUP BY column as it's not an argument), while `count(column)` will only return the number of rows where column is not NULL. ```sql SELECT diff --git a/reference/functions/aggregate-functions/parametric-functions.mdx b/core/reference/functions/aggregate-functions/parametric-functions.mdx similarity index 93% rename from reference/functions/aggregate-functions/parametric-functions.mdx rename to core/reference/functions/aggregate-functions/parametric-functions.mdx index c36c8b50..e0d1ed1a 100644 --- a/reference/functions/aggregate-functions/parametric-functions.mdx +++ b/core/reference/functions/aggregate-functions/parametric-functions.mdx @@ -20,7 +20,7 @@ The functions uses [A Streaming Parallel Decision Tree Algorithm](http://jmlr.or **Arguments** -`values` — [Expression](/reference/syntax#expressions) resulting in input values. +`values` — [Expression](/core/reference/syntax#expressions) resulting in input values. **Parameters** @@ -28,7 +28,7 @@ The functions uses [A Streaming Parallel Decision Tree Algorithm](http://jmlr.or **Returned values** -- [Array](/reference/data-types/array) of [Tuples](/reference/data-types/tuple) of the following format: +- [Array](/core/reference/data-types/array) of [Tuples](/core/reference/data-types/tuple) of the following format: ``` [(lower_1, upper_1, height_1), ... (lower_N, upper_N, height_N)] @@ -55,7 +55,7 @@ FROM ( └─────────────────────────────────────────────────────────────────────────┘ ``` -You can visualize a histogram with the [bar](/reference/functions/regular-functions/other-functions#bar) function, for example: +You can visualize a histogram with the [bar](/core/reference/functions/regular-functions/other-functions#bar) function, for example: ```sql WITH histogram(5)(rand() % 100) AS hist @@ -98,7 +98,7 @@ Events that occur at the same second may lay in the sequence in an undefined ord **Arguments** -- `timestamp` — Column considered to contain time data. Typical data types are `Date` and `DateTime`. You can also use any of the supported [UInt](/reference/data-types/int-uint) data types. +- `timestamp` — Column considered to contain time data. Typical data types are `Date` and `DateTime`. You can also use any of the supported [UInt](/core/reference/data-types/int-uint) data types. - `cond1`, `cond2` — Conditions that describe the chain of events. Data type: `UInt8`. You can pass up to 32 condition arguments. The function takes only the events described in these conditions into account. If the sequence contains data that isn't described in a condition, the function skips them. @@ -189,7 +189,7 @@ sequenceCount(pattern)(timestamp, cond1, cond2, ...) **Arguments** -- `timestamp` — Column considered to contain time data. Typical data types are `Date` and `DateTime`. You can also use any of the supported [UInt](/reference/data-types/int-uint) data types. +- `timestamp` — Column considered to contain time data. Typical data types are `Date` and `DateTime`. You can also use any of the supported [UInt](/core/reference/data-types/int-uint) data types. - `cond1`, `cond2` — Conditions that describe the chain of events. Data type: `UInt8`. You can pass up to 32 condition arguments. The function takes only the events described in these conditions into account. If the sequence contains data that isn't described in a condition, the function skips them. @@ -246,7 +246,7 @@ sequenceMatchEvents(pattern)(timestamp, cond1, cond2, ...) **Arguments** -- `timestamp` — Column considered to contain time data. Typical data types are `Date` and `DateTime`. You can also use any of the supported [UInt](/reference/data-types/int-uint) data types. +- `timestamp` — Column considered to contain time data. Typical data types are `Date` and `DateTime`. You can also use any of the supported [UInt](/core/reference/data-types/int-uint) data types. - `cond1`, `cond2` — Conditions that describe the chain of events. Data type: `UInt8`. You can pass up to 32 condition arguments. The function takes only the events described in these conditions into account. If the sequence contains data that isn't described in a condition, the function skips them. @@ -311,8 +311,8 @@ windowFunnel(window, [mode, [mode, ... ]])(timestamp, cond1, cond2, ..., condN) **Arguments** -- `timestamp` — Name of the column containing the timestamp. Data types supported: [Date](/reference/data-types/date), [DateTime](/reference/data-types/datetime) and other unsigned integer types (note that even though timestamp supports the `UInt64` type, it's value can't exceed the Int64 maximum, which is 2^63 - 1). -- `cond` — Conditions or data describing the chain of events. [UInt8](/reference/data-types/int-uint). +- `timestamp` — Name of the column containing the timestamp. Data types supported: [Date](/core/reference/data-types/date), [DateTime](/core/reference/data-types/datetime) and other unsigned integer types (note that even though timestamp supports the `UInt64` type, it's value can't exceed the Int64 maximum, which is 2^63 - 1). +- `cond` — Conditions or data describing the chain of events. [UInt8](/core/reference/data-types/int-uint). **Parameters** @@ -418,7 +418,7 @@ ORDER BY level ASC; ## retention {#retention} The function takes as arguments a set of conditions from 1 to 32 arguments of type `UInt8` that indicate whether a certain condition was met for the event. -Any condition can be specified as an argument (as in [WHERE](/reference/statements/select/where)). +Any condition can be specified as an argument (as in [WHERE](/core/reference/statements/select/where)). The conditions, except the first, apply in pairs: the result of the second will be true if the first and second are true, of the third if the first and third are true, etc. @@ -584,7 +584,7 @@ HAVING uniqUpTo(4)(UserID) >= 5 ## sumMapFiltered {#summapfiltered} -This function behaves the same as [sumMap](/reference/functions/aggregate-functions/reference/sumMap) except that it also accepts an array of keys to filter with as a parameter. This can be especially useful when working with a high cardinality of keys. +This function behaves the same as [sumMap](/core/reference/functions/aggregate-functions/reference/sumMap) except that it also accepts an array of keys to filter with as a parameter. This can be especially useful when working with a high cardinality of keys. **Syntax** @@ -592,9 +592,9 @@ This function behaves the same as [sumMap](/reference/functions/aggregate-functi **Parameters** -- `keys_to_keep`: [Array](/reference/data-types/array) of keys to filter with. -- `keys`: [Array](/reference/data-types/array) of keys. -- `values`: [Array](/reference/data-types/array) of values. +- `keys_to_keep`: [Array](/core/reference/data-types/array) of keys to filter with. +- `keys`: [Array](/core/reference/data-types/array) of keys. +- `values`: [Array](/core/reference/data-types/array) of values. **Returned Value** @@ -630,7 +630,7 @@ SELECT sumMapFiltered([1, 4, 8])(statusMap.status, statusMap.requests) FROM sum_ ## sumMapFilteredWithOverflow {#summapfilteredwithoverflow} -This function behaves the same as [sumMap](/reference/functions/aggregate-functions/reference/sumMap) except that it also accepts an array of keys to filter with as a parameter. This can be especially useful when working with a high cardinality of keys. It differs from the [sumMapFiltered](#summapfiltered) function in that it does summation with overflow - i.e. returns the same data type for the summation as the argument data type. +This function behaves the same as [sumMap](/core/reference/functions/aggregate-functions/reference/sumMap) except that it also accepts an array of keys to filter with as a parameter. This can be especially useful when working with a high cardinality of keys. It differs from the [sumMapFiltered](#summapfiltered) function in that it does summation with overflow - i.e. returns the same data type for the summation as the argument data type. **Syntax** @@ -638,9 +638,9 @@ This function behaves the same as [sumMap](/reference/functions/aggregate-functi **Parameters** -- `keys_to_keep`: [Array](/reference/data-types/array) of keys to filter with. -- `keys`: [Array](/reference/data-types/array) of keys. -- `values`: [Array](/reference/data-types/array) of values. +- `keys_to_keep`: [Array](/core/reference/data-types/array) of keys to filter with. +- `keys`: [Array](/core/reference/data-types/array) of keys. +- `values`: [Array](/core/reference/data-types/array) of values. **Returned Value** @@ -712,17 +712,17 @@ sequenceNextNode(direction, base)(timestamp, event_column, base_condition, event **Arguments** -- `timestamp` — Name of the column containing the timestamp. Data types supported: [Date](/reference/data-types/date), [DateTime](/reference/data-types/datetime) and other unsigned integer types. -- `event_column` — Name of the column containing the value of the next event to be returned. Data types supported: [String](/reference/data-types/string) and [Nullable(String)](/reference/data-types/nullable). +- `timestamp` — Name of the column containing the timestamp. Data types supported: [Date](/core/reference/data-types/date), [DateTime](/core/reference/data-types/datetime) and other unsigned integer types. +- `event_column` — Name of the column containing the value of the next event to be returned. Data types supported: [String](/core/reference/data-types/string) and [Nullable(String)](/core/reference/data-types/nullable). - `base_condition` — Condition that the base point must fulfill. -- `event1`, `event2`, ... — Conditions describing the chain of events. [UInt8](/reference/data-types/int-uint). +- `event1`, `event2`, ... — Conditions describing the chain of events. [UInt8](/core/reference/data-types/int-uint). **Returned values** - `event_column[next_index]` — If the pattern is matched and next value exists. - `NULL` - If the pattern isn't matched or next value doesn't exist. -Type: [Nullable(String)](/reference/data-types/nullable). +Type: [Nullable(String)](/core/reference/data-types/nullable). **Example** diff --git a/reference/functions/aggregate-functions/reference/aggThrow.mdx b/core/reference/functions/aggregate-functions/reference/aggThrow.mdx similarity index 96% rename from reference/functions/aggregate-functions/reference/aggThrow.mdx rename to core/reference/functions/aggregate-functions/reference/aggThrow.mdx index 4207fd61..05404ab0 100644 --- a/reference/functions/aggregate-functions/reference/aggThrow.mdx +++ b/core/reference/functions/aggregate-functions/reference/aggThrow.mdx @@ -22,7 +22,7 @@ aggThrow(throw_prob) **Arguments** -- `throw_prob` — Probability to throw on creation. [`Float64`](/reference/data-types/float) +- `throw_prob` — Probability to throw on creation. [`Float64`](/core/reference/data-types/float) **Returned value** diff --git a/reference/functions/aggregate-functions/reference/analysis_of_variance.mdx b/core/reference/functions/aggregate-functions/reference/analysis_of_variance.mdx similarity index 81% rename from reference/functions/aggregate-functions/reference/analysis_of_variance.mdx rename to core/reference/functions/aggregate-functions/reference/analysis_of_variance.mdx index f151c425..36c237e6 100644 --- a/reference/functions/aggregate-functions/reference/analysis_of_variance.mdx +++ b/core/reference/functions/aggregate-functions/reference/analysis_of_variance.mdx @@ -30,12 +30,12 @@ analysisOfVariance(val, group_no) **Arguments** -- `val` — Value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `group_no` — Group number that `val` belongs to. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `val` — Value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `group_no` — Group number that `val` belongs to. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a tuple with the F-statistic and p-value. [`Tuple(Float64, Float64)`](/reference/data-types/tuple) +Returns a tuple with the F-statistic and p-value. [`Tuple(Float64, Float64)`](/core/reference/data-types/tuple) **Examples** diff --git a/reference/functions/aggregate-functions/reference/any.mdx b/core/reference/functions/aggregate-functions/reference/any.mdx similarity index 95% rename from reference/functions/aggregate-functions/reference/any.mdx rename to core/reference/functions/aggregate-functions/reference/any.mdx index 46f5d143..06cafffb 100644 --- a/reference/functions/aggregate-functions/reference/any.mdx +++ b/core/reference/functions/aggregate-functions/reference/any.mdx @@ -45,12 +45,12 @@ any(column)[ RESPECT NULLS] **Arguments** -- `column` — The column name. [`Any`](/reference/data-types) +- `column` — The column name. [`Any`](/core/reference/data-types) **Returned value** Returns the first value encountered. - [`Any`](/reference/data-types) + [`Any`](/core/reference/data-types) **Examples** diff --git a/reference/functions/aggregate-functions/reference/anyHeavy.mdx b/core/reference/functions/aggregate-functions/reference/anyHeavy.mdx similarity index 90% rename from reference/functions/aggregate-functions/reference/anyHeavy.mdx rename to core/reference/functions/aggregate-functions/reference/anyHeavy.mdx index f02d1dac..1a40372e 100644 --- a/reference/functions/aggregate-functions/reference/anyHeavy.mdx +++ b/core/reference/functions/aggregate-functions/reference/anyHeavy.mdx @@ -25,11 +25,11 @@ anyHeavy(column) **Arguments** -- `column` — The column name. [`String`](/reference/data-types/string) +- `column` — The column name. [`String`](/core/reference/data-types/string) **Returned value** -Returns a frequently occurring value. The result is nondeterministic. [`Any`](/reference/data-types) +Returns a frequently occurring value. The result is nondeterministic. [`Any`](/core/reference/data-types) **Examples** diff --git a/reference/functions/aggregate-functions/reference/anyLast.mdx b/core/reference/functions/aggregate-functions/reference/anyLast.mdx similarity index 83% rename from reference/functions/aggregate-functions/reference/anyLast.mdx rename to core/reference/functions/aggregate-functions/reference/anyLast.mdx index feaec101..94450e2d 100644 --- a/reference/functions/aggregate-functions/reference/anyLast.mdx +++ b/core/reference/functions/aggregate-functions/reference/anyLast.mdx @@ -14,7 +14,7 @@ Selects the last encountered value of a column. As a query can be executed in arbitrary order, the result of this function is non-deterministic. -If you need an arbitrary but deterministic result, use functions [min](/reference/functions/aggregate-functions/reference/min) or [max](/reference/functions/aggregate-functions/reference/max). +If you need an arbitrary but deterministic result, use functions [min](/core/reference/functions/aggregate-functions/reference/min) or [max](/core/reference/functions/aggregate-functions/reference/max). By default, the function never returns NULL, i.e. ignores NULL values in the input column. @@ -31,11 +31,11 @@ anyLast(column) [RESPECT NULLS] **Arguments** -- `column` — The column name. [`Any`](/reference/data-types) +- `column` — The column name. [`Any`](/core/reference/data-types) **Returned value** -Returns the last value encountered. [`Any`](/reference/data-types) +Returns the last value encountered. [`Any`](/core/reference/data-types) **Examples** diff --git a/reference/functions/aggregate-functions/reference/approxtopk.mdx b/core/reference/functions/aggregate-functions/reference/approxtopk.mdx similarity index 75% rename from reference/functions/aggregate-functions/reference/approxtopk.mdx rename to core/reference/functions/aggregate-functions/reference/approxtopk.mdx index d61ddef4..d7d01383 100644 --- a/reference/functions/aggregate-functions/reference/approxtopk.mdx +++ b/core/reference/functions/aggregate-functions/reference/approxtopk.mdx @@ -28,16 +28,16 @@ approx_top_k(N[, reserved])(column) **Parameters** -- `N` — The number of elements to return. Default value: `10`. Maximum value of `N = 65536`. [`UInt64`](/reference/data-types/int-uint) -- `reserved` — Optional. Defines how many cells reserved for values. If `uniq(column) > reserved`, the result will be approximate. Default value: `N * 3`. [`UInt64`](/reference/data-types/int-uint) +- `N` — The number of elements to return. Default value: `10`. Maximum value of `N = 65536`. [`UInt64`](/core/reference/data-types/int-uint) +- `reserved` — Optional. Defines how many cells reserved for values. If `uniq(column) > reserved`, the result will be approximate. Default value: `N * 3`. [`UInt64`](/core/reference/data-types/int-uint) **Arguments** -- `column` — The name of the column for which to find the most frequent values. [`String`](/reference/data-types/string) +- `column` — The name of the column for which to find the most frequent values. [`String`](/core/reference/data-types/string) **Returned value** -Returns an array of the approximately most frequent values and their counts, sorted in descending order of approximate frequency. [`Array`](/reference/data-types/array) +Returns an array of the approximately most frequent values and their counts, sorted in descending order of approximate frequency. [`Array`](/core/reference/data-types/array) **Examples** @@ -58,6 +58,6 @@ FROM VALUES('k Char, w UInt64', ('y', 1), ('y', 1), ('x', 5), ('y', 1), ('z', 10 **See Also** -- [topK](/reference/functions/aggregate-functions/reference/topK) -- [topKWeighted](/reference/functions/aggregate-functions/reference/topKWeighted) -- [approx_top_sum](/reference/functions/aggregate-functions/reference/approxtopsum) +- [topK](/core/reference/functions/aggregate-functions/reference/topK) +- [topKWeighted](/core/reference/functions/aggregate-functions/reference/topKWeighted) +- [approx_top_sum](/core/reference/functions/aggregate-functions/reference/approxtopsum) diff --git a/reference/functions/aggregate-functions/reference/approxtopsum.mdx b/core/reference/functions/aggregate-functions/reference/approxtopsum.mdx similarity index 69% rename from reference/functions/aggregate-functions/reference/approxtopsum.mdx rename to core/reference/functions/aggregate-functions/reference/approxtopsum.mdx index 4eaedcc8..66a79a19 100644 --- a/reference/functions/aggregate-functions/reference/approxtopsum.mdx +++ b/core/reference/functions/aggregate-functions/reference/approxtopsum.mdx @@ -20,9 +20,9 @@ In certain situations, errors might occur and it might return frequent values th **See Also** -- [topK](/reference/functions/aggregate-functions/reference/topK) -- [topKWeighted](/reference/functions/aggregate-functions/reference/topKWeighted) -- [approx_top_k](/reference/functions/aggregate-functions/reference/approxtopk) +- [topK](/core/reference/functions/aggregate-functions/reference/topK) +- [topKWeighted](/core/reference/functions/aggregate-functions/reference/topKWeighted) +- [approx_top_k](/core/reference/functions/aggregate-functions/reference/approxtopk) **Syntax** @@ -33,17 +33,17 @@ approx_top_sum(N[, reserved])(column, weight) **Parameters** -- `N` — The number of elements to return. Optional. Default value: 10. [`UInt64`](/reference/data-types/int-uint) -- `reserved` — Optional. Defines, how many cells reserved for values. If `uniq(column) > reserved`, result of topK function will be approximate. Default value: `N * 3`. Maximum value of `N = 65536`. [`UInt64`](/reference/data-types/int-uint) +- `N` — The number of elements to return. Optional. Default value: 10. [`UInt64`](/core/reference/data-types/int-uint) +- `reserved` — Optional. Defines, how many cells reserved for values. If `uniq(column) > reserved`, result of topK function will be approximate. Default value: `N * 3`. Maximum value of `N = 65536`. [`UInt64`](/core/reference/data-types/int-uint) **Arguments** -- `column` — The name of the column for which to find the most frequent values. [`String`](/reference/data-types/string) -- `weight` — The weight. Every value is accounted `weight` times for frequency calculation. [`UInt64`](/reference/data-types/int-uint) +- `column` — The name of the column for which to find the most frequent values. [`String`](/core/reference/data-types/string) +- `weight` — The weight. Every value is accounted `weight` times for frequency calculation. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of the approximately most frequent values and their counts, sorted in descending order of approximate frequency. [`Array`](/reference/data-types/array) +Returns an array of the approximately most frequent values and their counts, sorted in descending order of approximate frequency. [`Array`](/core/reference/data-types/array) **Examples** @@ -64,6 +64,6 @@ FROM VALUES('k Char, w UInt64', ('y', 1), ('y', 1), ('x', 5), ('y', 1), ('z', 10 **See Also** -- [topK](/reference/functions/aggregate-functions/reference/topK) -- [topKWeighted](/reference/functions/aggregate-functions/reference/topKWeighted) -- [approx_top_k](/reference/functions/aggregate-functions/reference/approxtopk) +- [topK](/core/reference/functions/aggregate-functions/reference/topK) +- [topKWeighted](/core/reference/functions/aggregate-functions/reference/topKWeighted) +- [approx_top_k](/core/reference/functions/aggregate-functions/reference/approxtopk) diff --git a/reference/functions/aggregate-functions/reference/argAndMax.mdx b/core/reference/functions/aggregate-functions/reference/argAndMax.mdx similarity index 71% rename from reference/functions/aggregate-functions/reference/argAndMax.mdx rename to core/reference/functions/aggregate-functions/reference/argAndMax.mdx index 47765d56..fa4a45e2 100644 --- a/reference/functions/aggregate-functions/reference/argAndMax.mdx +++ b/core/reference/functions/aggregate-functions/reference/argAndMax.mdx @@ -12,7 +12,7 @@ Introduced in: v1.1.0 Calculates the `arg` and `val` value for a maximum `val` value. If there are multiple rows with equal `val` being the maximum, which of the associated `arg` and `val` is returned is not deterministic. -Both parts the `arg` and the `max` behave as [aggregate functions](/reference/functions/aggregate-functions), they both [skip `Null`](/reference/functions/aggregate-functions#null-processing) during processing and return not `Null` values if not `Null` values are available. +Both parts the `arg` and the `max` behave as [aggregate functions](/core/reference/functions/aggregate-functions), they both [skip `Null`](/core/reference/functions/aggregate-functions#null-processing) during processing and return not `Null` values if not `Null` values are available. The only difference with `argMax` is that `argAndMax` returns both argument and value. @@ -20,8 +20,8 @@ The only difference with `argMax` is that `argAndMax` returns both argument and **See also** -- [argMax](/reference/functions/aggregate-functions/reference/argMax) -- [Tuple](/reference/data-types/tuple) +- [argMax](/core/reference/functions/aggregate-functions/reference/argMax) +- [Tuple](/core/reference/data-types/tuple) **Syntax** @@ -32,12 +32,12 @@ argAndMax(arg, val) **Arguments** -- `arg` — Argument for which to find the maximum value. [`const String`](/reference/data-types/string) -- `val` — The maximum value. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`Tuple`](/reference/data-types/tuple) +- `arg` — Argument for which to find the maximum value. [`const String`](/core/reference/data-types/string) +- `val` — The maximum value. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`Tuple`](/core/reference/data-types/tuple) **Returned value** -Returns a tuple containing the `arg` value that corresponds to maximum `val` value and the maximum `val` value. [`Tuple`](/reference/data-types/tuple) +Returns a tuple containing the `arg` value that corresponds to maximum `val` value and the maximum `val` value. [`Tuple`](/core/reference/data-types/tuple) **Examples** @@ -90,5 +90,5 @@ SELECT argAndMax(a, (b,a)) FROM test; **See also** -- [argMax](/reference/functions/aggregate-functions/reference/argMax) -- [Tuple](/reference/data-types/tuple) +- [argMax](/core/reference/functions/aggregate-functions/reference/argMax) +- [Tuple](/core/reference/data-types/tuple) diff --git a/reference/functions/aggregate-functions/reference/argAndMin.mdx b/core/reference/functions/aggregate-functions/reference/argAndMin.mdx similarity index 71% rename from reference/functions/aggregate-functions/reference/argAndMin.mdx rename to core/reference/functions/aggregate-functions/reference/argAndMin.mdx index f8745e1b..794b077e 100644 --- a/reference/functions/aggregate-functions/reference/argAndMin.mdx +++ b/core/reference/functions/aggregate-functions/reference/argAndMin.mdx @@ -12,7 +12,7 @@ Introduced in: v1.1.0 Calculates the `arg` and `val` value for a minimum `val` value. If there are multiple rows with equal `val` being the minimum, which of the associated `arg` and `val` is returned is not deterministic. -Both parts the `arg` and the `min` behave as [aggregate functions](/reference/functions/aggregate-functions), they both [skip `Null`](/reference/functions/aggregate-functions#null-processing) during processing and return not `Null` values if not `Null` values are available. +Both parts the `arg` and the `min` behave as [aggregate functions](/core/reference/functions/aggregate-functions), they both [skip `Null`](/core/reference/functions/aggregate-functions#null-processing) during processing and return not `Null` values if not `Null` values are available. The only difference with `argMin` is that `argAndMin` returns both argument and value. @@ -20,8 +20,8 @@ The only difference with `argMin` is that `argAndMin` returns both argument and **See also** -- [argMin](/reference/functions/aggregate-functions/reference/argMin) -- [Tuple](/reference/data-types/tuple) +- [argMin](/core/reference/functions/aggregate-functions/reference/argMin) +- [Tuple](/core/reference/data-types/tuple) **Syntax** @@ -32,12 +32,12 @@ argAndMin(arg, val) **Arguments** -- `arg` — Argument for which to find the minimum value. [`const String`](/reference/data-types/string) -- `val` — The minimum value. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`Tuple`](/reference/data-types/tuple) +- `arg` — Argument for which to find the minimum value. [`const String`](/core/reference/data-types/string) +- `val` — The minimum value. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`Tuple`](/core/reference/data-types/tuple) **Returned value** -Returns a tuple containing the `arg` value that corresponds to minimum `val` value and the minimum `val` value. [`Tuple`](/reference/data-types/tuple) +Returns a tuple containing the `arg` value that corresponds to minimum `val` value and the minimum `val` value. [`Tuple`](/core/reference/data-types/tuple) **Examples** @@ -90,5 +90,5 @@ SELECT argAndMin(a, (b, a)), min(tuple(b, a)) FROM test; **See also** -- [argMin](/reference/functions/aggregate-functions/reference/argMin) -- [Tuple](/reference/data-types/tuple) +- [argMin](/core/reference/functions/aggregate-functions/reference/argMin) +- [Tuple](/core/reference/data-types/tuple) diff --git a/reference/functions/aggregate-functions/reference/argMax.mdx b/core/reference/functions/aggregate-functions/reference/argMax.mdx similarity index 74% rename from reference/functions/aggregate-functions/reference/argMax.mdx rename to core/reference/functions/aggregate-functions/reference/argMax.mdx index 0333e863..204ac77a 100644 --- a/reference/functions/aggregate-functions/reference/argMax.mdx +++ b/core/reference/functions/aggregate-functions/reference/argMax.mdx @@ -11,11 +11,11 @@ doc_type: 'reference' Introduced in: v1.1.0 Calculates the `arg` value for a maximum `val` value. If there are multiple rows with equal `val` being the maximum, which of the associated `arg` is returned is not deterministic. -Both parts the `arg` and the `max` behave as [aggregate functions](/reference/functions/aggregate-functions), they both [skip `Null`](/reference/functions/aggregate-functions#null-processing) during processing and return not `Null` values if not `Null` values are available. +Both parts the `arg` and the `max` behave as [aggregate functions](/core/reference/functions/aggregate-functions), they both [skip `Null`](/core/reference/functions/aggregate-functions#null-processing) during processing and return not `Null` values if not `Null` values are available. **See also** -- [Tuple](/reference/data-types/tuple) +- [Tuple](/core/reference/data-types/tuple) **Syntax** @@ -26,8 +26,8 @@ argMax(arg, val) **Arguments** -- `arg` — Argument for which to find the maximum value. [`const String`](/reference/data-types/string) -- `val` — The maximum value. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`Tuple`](/reference/data-types/tuple) +- `arg` — Argument for which to find the maximum value. [`const String`](/core/reference/data-types/string) +- `val` — The maximum value. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`Tuple`](/core/reference/data-types/tuple) **Returned value** diff --git a/reference/functions/aggregate-functions/reference/argMin.mdx b/core/reference/functions/aggregate-functions/reference/argMin.mdx similarity index 77% rename from reference/functions/aggregate-functions/reference/argMin.mdx rename to core/reference/functions/aggregate-functions/reference/argMin.mdx index fa7be3cc..c79eb2de 100644 --- a/reference/functions/aggregate-functions/reference/argMin.mdx +++ b/core/reference/functions/aggregate-functions/reference/argMin.mdx @@ -13,11 +13,11 @@ doc_type: 'reference' Introduced in: v1.1.0 Calculates the `arg` value for a minimum `val` value. If there are multiple rows with equal `val` being the maximum, which of the associated `arg` is returned is not deterministic. -Both parts the `arg` and the `min` behave as [aggregate functions](/reference/functions/aggregate-functions), they both [skip `Null`](/reference/functions/aggregate-functions#null-processing) during processing and return not `Null` values if not `Null` values are available. +Both parts the `arg` and the `min` behave as [aggregate functions](/core/reference/functions/aggregate-functions), they both [skip `Null`](/core/reference/functions/aggregate-functions#null-processing) during processing and return not `Null` values if not `Null` values are available. **See also** -- [Tuple](/reference/data-types/tuple) +- [Tuple](/core/reference/data-types/tuple) **Syntax** @@ -28,8 +28,8 @@ argMin(arg, val) **Arguments** -- `arg` — Argument for which to find the maximum value. [`const String`](/reference/data-types/string) -- `val` — The minimum value. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`Tuple`](/reference/data-types/tuple) +- `arg` — Argument for which to find the maximum value. [`const String`](/core/reference/data-types/string) +- `val` — The minimum value. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`Tuple`](/core/reference/data-types/tuple) **Returned value** diff --git a/reference/functions/aggregate-functions/reference/avg.mdx b/core/reference/functions/aggregate-functions/reference/avg.mdx similarity index 77% rename from reference/functions/aggregate-functions/reference/avg.mdx rename to core/reference/functions/aggregate-functions/reference/avg.mdx index 64ccb9d6..16ac8c6f 100644 --- a/reference/functions/aggregate-functions/reference/avg.mdx +++ b/core/reference/functions/aggregate-functions/reference/avg.mdx @@ -21,11 +21,11 @@ avg(x) **Arguments** -- `x` — Input values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — Input values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the arithmetic mean, otherwise returns `NaN` if the input parameter `x` is empty. [`Float64`](/reference/data-types/float) +Returns the arithmetic mean, otherwise returns `NaN` if the input parameter `x` is empty. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/avgWeighted.mdx b/core/reference/functions/aggregate-functions/reference/avgWeighted.mdx similarity index 85% rename from reference/functions/aggregate-functions/reference/avgWeighted.mdx rename to core/reference/functions/aggregate-functions/reference/avgWeighted.mdx index 9131e694..71cbba6f 100644 --- a/reference/functions/aggregate-functions/reference/avgWeighted.mdx +++ b/core/reference/functions/aggregate-functions/reference/avgWeighted.mdx @@ -21,12 +21,12 @@ avgWeighted(x, weight) **Arguments** -- `x` — Values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `weight` — Weights of the values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x` — Values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `weight` — Weights of the values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `NaN` if all the weights are equal to 0 or the supplied weights parameter is empty, or the weighted mean otherwise. [`Float64`](/reference/data-types/float) +Returns `NaN` if all the weights are equal to 0 or the supplied weights parameter is empty, or the weighted mean otherwise. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/boundrat.mdx b/core/reference/functions/aggregate-functions/reference/boundrat.mdx similarity index 81% rename from reference/functions/aggregate-functions/reference/boundrat.mdx rename to core/reference/functions/aggregate-functions/reference/boundrat.mdx index 0d647415..da2eeab6 100644 --- a/reference/functions/aggregate-functions/reference/boundrat.mdx +++ b/core/reference/functions/aggregate-functions/reference/boundrat.mdx @@ -22,12 +22,12 @@ boundingRatio(x, y) **Arguments** -- `x` — X-coordinate values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `y` — Y-coordinate values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — X-coordinate values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `y` — Y-coordinate values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the slope of the line between the leftmost and rightmost points, otherwise returns `NaN` if the data is empty. [`Float64`](/reference/data-types/float) +Returns the slope of the line between the leftmost and rightmost points, otherwise returns `NaN` if the data is empty. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/categoricalInformationValue.mdx b/core/reference/functions/aggregate-functions/reference/categoricalInformationValue.mdx similarity index 92% rename from reference/functions/aggregate-functions/reference/categoricalInformationValue.mdx rename to core/reference/functions/aggregate-functions/reference/categoricalInformationValue.mdx index 6005bb4e..c0358dae 100644 --- a/reference/functions/aggregate-functions/reference/categoricalInformationValue.mdx +++ b/core/reference/functions/aggregate-functions/reference/categoricalInformationValue.mdx @@ -33,12 +33,12 @@ categoricalInformationValue(category1[, category2, ...,]tag) **Arguments** -- `category1, category2, ...` — One or more categorical features to analyze. Each category should contain discrete values. [`UInt8`](/reference/data-types/int-uint) -- `tag` — Binary target variable for prediction. Should contain values 0 and 1. [`UInt8`](/reference/data-types/int-uint) +- `category1, category2, ...` — One or more categorical features to analyze. Each category should contain discrete values. [`UInt8`](/core/reference/data-types/int-uint) +- `tag` — Binary target variable for prediction. Should contain values 0 and 1. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of Float64 values representing the information value for each unique combination of categories. Each value indicates the predictive strength of that category combination for the target variable. [`Array(Float64)`](/reference/data-types/array) +Returns an array of Float64 values representing the information value for each unique combination of categories. Each value indicates the predictive strength of that category combination for the target variable. [`Array(Float64)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/contingency.mdx b/core/reference/functions/aggregate-functions/reference/contingency.mdx similarity index 76% rename from reference/functions/aggregate-functions/reference/contingency.mdx rename to core/reference/functions/aggregate-functions/reference/contingency.mdx index 1404df7a..0b43e9e2 100644 --- a/reference/functions/aggregate-functions/reference/contingency.mdx +++ b/core/reference/functions/aggregate-functions/reference/contingency.mdx @@ -14,7 +14,7 @@ doc_type: 'reference' Introduced in: v22.1.0 The `contingency` function calculates the [contingency coefficient](https://en.wikipedia.org/wiki/Contingency_table#Cram%C3%A9r's_V_and_the_contingency_coefficient_C), a value that measures the association between two columns in a table. -The computation is similar to the [`cramersV`](/reference/functions/aggregate-functions/reference/cramersV) function but with a different denominator in the square root. +The computation is similar to the [`cramersV`](/core/reference/functions/aggregate-functions/reference/cramersV) function but with a different denominator in the square root. **Syntax** @@ -25,12 +25,12 @@ contingency(column1, column2) **Arguments** -- `column1` — First column to compare. [`Any`](/reference/data-types) -- `column2` — Second column to compare. [`Any`](/reference/data-types) +- `column1` — First column to compare. [`Any`](/core/reference/data-types) +- `column2` — Second column to compare. [`Any`](/core/reference/data-types) **Returned value** -Returns a value between 0 and 1. The larger the result, the closer the association of the two columns. [`Float64`](/reference/data-types/float) +Returns a value between 0 and 1. The larger the result, the closer the association of the two columns. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/corr.mdx b/core/reference/functions/aggregate-functions/reference/corr.mdx similarity index 71% rename from reference/functions/aggregate-functions/reference/corr.mdx rename to core/reference/functions/aggregate-functions/reference/corr.mdx index e5055fe1..c2efee92 100644 --- a/reference/functions/aggregate-functions/reference/corr.mdx +++ b/core/reference/functions/aggregate-functions/reference/corr.mdx @@ -19,7 +19,7 @@ $$
    -This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`corrStable`](/reference/functions/aggregate-functions/reference/corrStable) function. It is slower but provides a more accurate result. +This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`corrStable`](/core/reference/functions/aggregate-functions/reference/corrStable) function. It is slower but provides a more accurate result. @@ -31,12 +31,12 @@ corr(x, y) **Arguments** -- `x` — First variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `y` — Second variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x` — First variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `y` — Second variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the Pearson correlation coefficient. [`Float64`](/reference/data-types/float) +Returns the Pearson correlation coefficient. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/corrMatrix.mdx b/core/reference/functions/aggregate-functions/reference/corrMatrix.mdx similarity index 85% rename from reference/functions/aggregate-functions/reference/corrMatrix.mdx rename to core/reference/functions/aggregate-functions/reference/corrMatrix.mdx index 80c59d95..33d625c0 100644 --- a/reference/functions/aggregate-functions/reference/corrMatrix.mdx +++ b/core/reference/functions/aggregate-functions/reference/corrMatrix.mdx @@ -21,11 +21,11 @@ corrMatrix(x1[, x2, ...]) **Arguments** -- `x1[, x2, ...]` — One or more parameters for which to compute the correlation matrix over. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x1[, x2, ...]` — One or more parameters for which to compute the correlation matrix over. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the correlation matrix. [`Array(Array(Float64))`](/reference/data-types/array) +Returns the correlation matrix. [`Array(Array(Float64))`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/corrStable.mdx b/core/reference/functions/aggregate-functions/reference/corrStable.mdx similarity index 70% rename from reference/functions/aggregate-functions/reference/corrStable.mdx rename to core/reference/functions/aggregate-functions/reference/corrStable.mdx index a44d8c08..51e33e82 100644 --- a/reference/functions/aggregate-functions/reference/corrStable.mdx +++ b/core/reference/functions/aggregate-functions/reference/corrStable.mdx @@ -19,7 +19,7 @@ $$
    -Similar to the [`corr`](/reference/functions/aggregate-functions/reference/corr) function, but uses a numerically stable algorithm. +Similar to the [`corr`](/core/reference/functions/aggregate-functions/reference/corr) function, but uses a numerically stable algorithm. As a result, `corrStable` is slower than `corr` but produces a more accurate result. @@ -31,12 +31,12 @@ corrStable(x, y) **Arguments** -- `x` — First variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `y` — Second variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — First variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `y` — Second variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the Pearson correlation coefficient. [`Float64`](/reference/data-types/float) +Returns the Pearson correlation coefficient. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/count.mdx b/core/reference/functions/aggregate-functions/reference/count.mdx similarity index 68% rename from reference/functions/aggregate-functions/reference/count.mdx rename to core/reference/functions/aggregate-functions/reference/count.mdx index ea11bf67..20d40455 100644 --- a/reference/functions/aggregate-functions/reference/count.mdx +++ b/core/reference/functions/aggregate-functions/reference/count.mdx @@ -19,22 +19,22 @@ ClickHouse supports the following syntaxes for `count`: **Details** ClickHouse supports the `COUNT(DISTINCT ...)` syntax. -The behavior of this construction depends on the [`count_distinct_implementation`](/reference/settings/session-settings#count_distinct_implementation) setting. -It defines which of the [uniq*](/reference/functions/aggregate-functions/reference/uniq) functions is used to perform the operation. -The default is the [uniqExact](/reference/functions/aggregate-functions/reference/uniqExact) function. +The behavior of this construction depends on the [`count_distinct_implementation`](/core/reference/settings/session-settings#count_distinct_implementation) setting. +It defines which of the [uniq*](/core/reference/functions/aggregate-functions/reference/uniq) functions is used to perform the operation. +The default is the [uniqExact](/core/reference/functions/aggregate-functions/reference/uniqExact) function. The `SELECT count() FROM table` query is optimized by default using metadata from MergeTree. -If you need to use row-level security, disable optimization using the [`optimize_trivial_count_query`](/reference/settings/session-settings#optimize_trivial_count_query) setting. +If you need to use row-level security, disable optimization using the [`optimize_trivial_count_query`](/core/reference/settings/session-settings#optimize_trivial_count_query) setting. -However `SELECT count(nullable_column) FROM table` query can be optimized by enabling the [`optimize_functions_to_subcolumns`](/reference/settings/session-settings#optimize_functions_to_subcolumns) setting. -With `optimize_functions_to_subcolumns = 1` the function reads only [`null`](/reference/data-types/nullable#finding-null) subcolumn instead of reading and processing the whole column data. +However `SELECT count(nullable_column) FROM table` query can be optimized by enabling the [`optimize_functions_to_subcolumns`](/core/reference/settings/session-settings#optimize_functions_to_subcolumns) setting. +With `optimize_functions_to_subcolumns = 1` the function reads only [`null`](/core/reference/data-types/nullable#finding-null) subcolumn instead of reading and processing the whole column data. The query `SELECT count(n) FROM table` transforms to `SELECT sum(NOT n.null) FROM table`. **Improving COUNT(DISTINCT expr) performance** -If your `COUNT(DISTINCT expr)` query is slow, consider adding a [`GROUP BY`](/reference/statements/select/group-by) clause as this improves parallelization. -You can also use a [projection](/reference/statements/alter/projection) to create an index on the target column used with `COUNT(DISTINCT target_col)`. +If your `COUNT(DISTINCT expr)` query is slow, consider adding a [`GROUP BY`](/core/reference/statements/select/group-by) clause as this improves parallelization. +You can also use a [projection](/core/reference/statements/alter/projection) to create an index on the target column used with `COUNT(DISTINCT target_col)`. @@ -46,11 +46,11 @@ count([expr]) **Arguments** -- `expr` — Optional. An expression. The function counts how many times this expression returned not null. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Optional. An expression. The function counts how many times this expression returned not null. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns the a row count if the function is called without parameters, otherwise returns a count of how many times the passed expression returned not null. [`UInt64`](/reference/data-types/int-uint) +Returns the a row count if the function is called without parameters, otherwise returns a count of how many times the passed expression returned not null. [`UInt64`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/aggregate-functions/reference/covarPop.mdx b/core/reference/functions/aggregate-functions/reference/covarPop.mdx similarity index 69% rename from reference/functions/aggregate-functions/reference/covarPop.mdx rename to core/reference/functions/aggregate-functions/reference/covarPop.mdx index 54f8a186..b73aad71 100644 --- a/reference/functions/aggregate-functions/reference/covarPop.mdx +++ b/core/reference/functions/aggregate-functions/reference/covarPop.mdx @@ -19,7 +19,7 @@ $$
    -This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`covarPopStable`](/reference/functions/aggregate-functions/reference/covarPopStable) function. It works slower but provides a lower computational error. +This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`covarPopStable`](/core/reference/functions/aggregate-functions/reference/covarPopStable) function. It works slower but provides a lower computational error. @@ -33,12 +33,12 @@ covarPop(x, y) **Arguments** -- `x` — First variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `y` — Second variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — First variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `y` — Second variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the population covariance between `x` and `y`. [`Float64`](/reference/data-types/float) +Returns the population covariance between `x` and `y`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/covarPopMatrix.mdx b/core/reference/functions/aggregate-functions/reference/covarPopMatrix.mdx similarity index 89% rename from reference/functions/aggregate-functions/reference/covarPopMatrix.mdx rename to core/reference/functions/aggregate-functions/reference/covarPopMatrix.mdx index f4eb13d0..20c99527 100644 --- a/reference/functions/aggregate-functions/reference/covarPopMatrix.mdx +++ b/core/reference/functions/aggregate-functions/reference/covarPopMatrix.mdx @@ -21,11 +21,11 @@ covarPopMatrix(x1[, x2, ...]) **Arguments** -- `x1[, x2, ...]` — A variable number of parameters. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x1[, x2, ...]` — A variable number of parameters. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the population covariance matrix. [`Array(Array(Float64))`](/reference/data-types/array) +Returns the population covariance matrix. [`Array(Array(Float64))`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/covarPopStable.mdx b/core/reference/functions/aggregate-functions/reference/covarPopStable.mdx similarity index 66% rename from reference/functions/aggregate-functions/reference/covarPopStable.mdx rename to core/reference/functions/aggregate-functions/reference/covarPopStable.mdx index 276f881f..1098f7cb 100644 --- a/reference/functions/aggregate-functions/reference/covarPopStable.mdx +++ b/core/reference/functions/aggregate-functions/reference/covarPopStable.mdx @@ -18,7 +18,7 @@ $$
    -It is similar to the [`covarPop`](/reference/functions/aggregate-functions/reference/covarPop) function, but uses a numerically stable algorithm. As a result, `covarPopStable` is slower than `covarPop` but produces a more accurate result. +It is similar to the [`covarPop`](/core/reference/functions/aggregate-functions/reference/covarPop) function, but uses a numerically stable algorithm. As a result, `covarPopStable` is slower than `covarPop` but produces a more accurate result. **Syntax** @@ -29,12 +29,12 @@ covarPopStable(x, y) **Arguments** -- `x` — First variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `y` — Second variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — First variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `y` — Second variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the population covariance between `x` and `y`. [`Float64`](/reference/data-types/float) +Returns the population covariance between `x` and `y`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/covarSamp.mdx b/core/reference/functions/aggregate-functions/reference/covarSamp.mdx similarity index 75% rename from reference/functions/aggregate-functions/reference/covarSamp.mdx rename to core/reference/functions/aggregate-functions/reference/covarSamp.mdx index 5abb6105..b813e709 100644 --- a/reference/functions/aggregate-functions/reference/covarSamp.mdx +++ b/core/reference/functions/aggregate-functions/reference/covarSamp.mdx @@ -17,7 +17,7 @@ $$ $$ -This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`covarSampStable`](/reference/functions/aggregate-functions/reference/covarSampStable) function. +This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`covarSampStable`](/core/reference/functions/aggregate-functions/reference/covarSampStable) function. It works slower but provides a lower computational error. @@ -32,12 +32,12 @@ covarSamp(x, y) **Arguments** -- `x` — First variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `y` — Second variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — First variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `y` — Second variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the sample covariance between `x` and `y`. For `n <= 1`, `nan` is returned. [`Float64`](/reference/data-types/float) +Returns the sample covariance between `x` and `y`. For `n <= 1`, `nan` is returned. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/covarSampMatrix.mdx b/core/reference/functions/aggregate-functions/reference/covarSampMatrix.mdx similarity index 87% rename from reference/functions/aggregate-functions/reference/covarSampMatrix.mdx rename to core/reference/functions/aggregate-functions/reference/covarSampMatrix.mdx index e622b781..75eba65d 100644 --- a/reference/functions/aggregate-functions/reference/covarSampMatrix.mdx +++ b/core/reference/functions/aggregate-functions/reference/covarSampMatrix.mdx @@ -21,11 +21,11 @@ covarSampMatrix(x1[, x2, ...]) **Arguments** -- `x1[, x2, ...]` — One or more parameters over which to compute the sample covariance matrix. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x1[, x2, ...]` — One or more parameters over which to compute the sample covariance matrix. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the sample covariance matrix. [`Array(Array(Float64))`](/reference/data-types/array) +Returns the sample covariance matrix. [`Array(Array(Float64))`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/covarSampStable.mdx b/core/reference/functions/aggregate-functions/reference/covarSampStable.mdx similarity index 76% rename from reference/functions/aggregate-functions/reference/covarSampStable.mdx rename to core/reference/functions/aggregate-functions/reference/covarSampStable.mdx index 130a0bc6..e535efe8 100644 --- a/reference/functions/aggregate-functions/reference/covarSampStable.mdx +++ b/core/reference/functions/aggregate-functions/reference/covarSampStable.mdx @@ -19,7 +19,7 @@ $$
    -It is similar to [`covarSamp`](/reference/functions/aggregate-functions/reference/covarSamp) but uses a numerically stable algorithm. +It is similar to [`covarSamp`](/core/reference/functions/aggregate-functions/reference/covarSamp) but uses a numerically stable algorithm. As a result, `covarSampStable` is slower than `covarSamp` but provides a lower computational error. @@ -31,12 +31,12 @@ covarSampStable(x, y) **Arguments** -- `x` — First variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `y` — Second variable. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — First variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `y` — Second variable. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the sample covariance between `x` and `y`. For `n <= 1`, `inf` is returned. [`Float64`](/reference/data-types/float) +Returns the sample covariance between `x` and `y`. For `n <= 1`, `inf` is returned. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/cramersV.mdx b/core/reference/functions/aggregate-functions/reference/cramersV.mdx similarity index 82% rename from reference/functions/aggregate-functions/reference/cramersV.mdx rename to core/reference/functions/aggregate-functions/reference/cramersV.mdx index 52279b75..f5f1505e 100644 --- a/reference/functions/aggregate-functions/reference/cramersV.mdx +++ b/core/reference/functions/aggregate-functions/reference/cramersV.mdx @@ -18,7 +18,7 @@ The result of the `cramersV` function ranges from 0 (corresponding to no associa It may be viewed as the association between two variables as a percentage of their maximum possible variation. -For a bias corrected version of Cramer's V see: [cramersVBiasCorrected](/reference/functions/aggregate-functions/reference/cramersVBiasCorrected) +For a bias corrected version of Cramer's V see: [cramersVBiasCorrected](/core/reference/functions/aggregate-functions/reference/cramersVBiasCorrected) @@ -30,12 +30,12 @@ cramersV(column1, column2) **Arguments** -- `column1` — First column to be compared. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `column2` — Second column to be compared. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `column1` — First column to be compared. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `column2` — Second column to be compared. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a value between 0 (corresponding to no association between the columns' values) to 1 (complete association). [`Float64`](/reference/data-types/float) +Returns a value between 0 (corresponding to no association between the columns' values) to 1 (complete association). [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/cramersVBiasCorrected.mdx b/core/reference/functions/aggregate-functions/reference/cramersVBiasCorrected.mdx similarity index 75% rename from reference/functions/aggregate-functions/reference/cramersVBiasCorrected.mdx rename to core/reference/functions/aggregate-functions/reference/cramersVBiasCorrected.mdx index 422116ac..4cc5ded4 100644 --- a/reference/functions/aggregate-functions/reference/cramersVBiasCorrected.mdx +++ b/core/reference/functions/aggregate-functions/reference/cramersVBiasCorrected.mdx @@ -11,7 +11,7 @@ doc_type: 'reference' Introduced in: v22.1.0 Cramer's V is a measure of association between two columns in a table. -The result of the [`cramersV` function](/reference/functions/aggregate-functions/reference/cramersV) ranges from 0 (corresponding to no association between the variables) to 1 and can reach 1 only when each value is completely determined by the other. +The result of the [`cramersV` function](/core/reference/functions/aggregate-functions/reference/cramersV) ranges from 0 (corresponding to no association between the variables) to 1 and can reach 1 only when each value is completely determined by the other. The function can be heavily biased, so this version of Cramer's V uses the [bias correction](https://en.wikipedia.org/wiki/Cram%C3%A9r%27s_V#Bias_correction). @@ -23,12 +23,12 @@ cramersVBiasCorrected(column1, column2) **Arguments** -- `column1` — First column to be compared. [`Any`](/reference/data-types) -- `column2` — Second column to be compared. [`Any`](/reference/data-types) +- `column1` — First column to be compared. [`Any`](/core/reference/data-types) +- `column2` — Second column to be compared. [`Any`](/core/reference/data-types) **Returned value** -Returns a value between 0 (corresponding to no association between the columns' values) to 1 (complete association). [`Float64`](/reference/data-types/float) +Returns a value between 0 (corresponding to no association between the columns' values) to 1 (complete association). [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/deltaSum.mdx b/core/reference/functions/aggregate-functions/reference/deltaSum.mdx similarity index 73% rename from reference/functions/aggregate-functions/reference/deltaSum.mdx rename to core/reference/functions/aggregate-functions/reference/deltaSum.mdx index 543d647d..ad7cc00f 100644 --- a/reference/functions/aggregate-functions/reference/deltaSum.mdx +++ b/core/reference/functions/aggregate-functions/reference/deltaSum.mdx @@ -15,11 +15,11 @@ If the difference is negative, it is ignored. The underlying data must be sorted for this function to work properly. -If you would like to use this function in a [materialized view](/reference/statements/create/view#materialized-view), you most likely want to use the [`deltaSumTimestamp`](/reference/functions/aggregate-functions/reference/deltaSumTimestamp) function instead. +If you would like to use this function in a [materialized view](/core/reference/statements/create/view#materialized-view), you most likely want to use the [`deltaSumTimestamp`](/core/reference/functions/aggregate-functions/reference/deltaSumTimestamp) function instead. See also: -- [`runningDifference`](/reference/functions/regular-functions/other-functions#runningDifference) +- [`runningDifference`](/core/reference/functions/regular-functions/other-functions#runningDifference) **Syntax** @@ -30,11 +30,11 @@ deltaSum(x1[, x2, ...]) **Arguments** -- `x1[, x2, ...]` — One or more input values. [`Integer`](/reference/data-types/int-uint) or [`Float`](/reference/data-types/float) +- `x1[, x2, ...]` — One or more input values. [`Integer`](/core/reference/data-types/int-uint) or [`Float`](/core/reference/data-types/float) **Returned value** -Returns a gained arithmetic difference of the input values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +Returns a gained arithmetic difference of the input values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Examples** @@ -78,4 +78,4 @@ SELECT deltaSum(arrayJoin([2.25, 3, 4.5])) **See also** -- [`runningDifference`](/reference/functions/regular-functions/other-functions#runningDifference) +- [`runningDifference`](/core/reference/functions/regular-functions/other-functions#runningDifference) diff --git a/reference/functions/aggregate-functions/reference/deltaSumTimestamp.mdx b/core/reference/functions/aggregate-functions/reference/deltaSumTimestamp.mdx similarity index 60% rename from reference/functions/aggregate-functions/reference/deltaSumTimestamp.mdx rename to core/reference/functions/aggregate-functions/reference/deltaSumTimestamp.mdx index 84d6f44d..2949a21a 100644 --- a/reference/functions/aggregate-functions/reference/deltaSumTimestamp.mdx +++ b/core/reference/functions/aggregate-functions/reference/deltaSumTimestamp.mdx @@ -14,11 +14,11 @@ Introduced in: v21.6.0 Adds the difference between consecutive rows. If the difference is negative, it is ignored. -This function is primarily for [materialized views](/reference/statements/create/view#materialized-view) that store data ordered by some time bucket-aligned timestamp, for example, a `toStartOfMinute` bucket. +This function is primarily for [materialized views](/core/reference/statements/create/view#materialized-view) that store data ordered by some time bucket-aligned timestamp, for example, a `toStartOfMinute` bucket. Because the rows in such a materialized view will all have the same timestamp, it is impossible for them to be merged in the correct order, without storing the original, unrounded timestamp value. The `deltaSumTimestamp` function keeps track of the original `timestamp` of the values it's seen, so the values (states) of the function are correctly computed during merging of parts. -To calculate the delta sum across an ordered collection you can simply use the [`deltaSum`](/reference/functions/aggregate-functions/reference/deltaSum) function. +To calculate the delta sum across an ordered collection you can simply use the [`deltaSum`](/core/reference/functions/aggregate-functions/reference/deltaSum) function. **Syntax** @@ -29,12 +29,12 @@ deltaSumTimestamp(value, timestamp) **Arguments** -- `value` — Input values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) -- `timestamp` — The parameter for order values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `value` — Input values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) +- `timestamp` — The parameter for order values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns accumulated differences between consecutive values, ordered by the `timestamp` parameter. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Returns accumulated differences between consecutive values, ordered by the `timestamp` parameter. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** diff --git a/reference/functions/aggregate-functions/reference/distinctDynamicTypes.mdx b/core/reference/functions/aggregate-functions/reference/distinctDynamicTypes.mdx similarity index 85% rename from reference/functions/aggregate-functions/reference/distinctDynamicTypes.mdx rename to core/reference/functions/aggregate-functions/reference/distinctDynamicTypes.mdx index ebe6ecd6..2612d41a 100644 --- a/reference/functions/aggregate-functions/reference/distinctDynamicTypes.mdx +++ b/core/reference/functions/aggregate-functions/reference/distinctDynamicTypes.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' Introduced in: v24.9.0 -Calculates the list of distinct data types stored in [Dynamic](/reference/data-types/dynamic) column. +Calculates the list of distinct data types stored in [Dynamic](/core/reference/data-types/dynamic) column. **Syntax** @@ -21,11 +21,11 @@ distinctDynamicTypes(dynamic) **Arguments** -- `dynamic` — Dynamic column. [`Dynamic`](/reference/data-types/dynamic) +- `dynamic` — Dynamic column. [`Dynamic`](/core/reference/data-types/dynamic) **Returned value** -Returns the sorted list of data type names. [`Array(String)`](/reference/data-types/array) +Returns the sorted list of data type names. [`Array(String)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/distinctJSONPaths.mdx b/core/reference/functions/aggregate-functions/reference/distinctJSONPaths.mdx similarity index 85% rename from reference/functions/aggregate-functions/reference/distinctJSONPaths.mdx rename to core/reference/functions/aggregate-functions/reference/distinctJSONPaths.mdx index 62f2829f..d3d03c8b 100644 --- a/reference/functions/aggregate-functions/reference/distinctJSONPaths.mdx +++ b/core/reference/functions/aggregate-functions/reference/distinctJSONPaths.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' Introduced in: v24.9.0 -Calculates a list of distinct paths stored in a [JSON](/reference/data-types/newjson) column. +Calculates a list of distinct paths stored in a [JSON](/core/reference/data-types/newjson) column. **Syntax** @@ -21,11 +21,11 @@ distinctJSONPaths(json) **Arguments** -- `json` — JSON column. [`JSON`](/reference/data-types/newjson) +- `json` — JSON column. [`JSON`](/core/reference/data-types/newjson) **Returned value** -Returns the sorted list of paths. [`Array(String)`](/reference/data-types/array) +Returns the sorted list of paths. [`Array(String)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes.mdx b/core/reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes.mdx similarity index 94% rename from reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes.mdx rename to core/reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes.mdx index bca42b0f..3323cbfd 100644 --- a/reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes.mdx +++ b/core/reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' Introduced in: v24.9.0 -Calculates the list of distinct paths and their types stored in [JSON](/reference/data-types/newjson) column. +Calculates the list of distinct paths and their types stored in [JSON](/core/reference/data-types/newjson) column. If JSON declaration contains paths with specified types, these paths will be always included in the result of `distinctJSONPaths/distinctJSONPathsAndTypes` functions even if input data didn't have values for these paths. @@ -25,11 +25,11 @@ distinctJSONPathsAndTypes(json) **Arguments** -- `json` — JSON column. [`JSON`](/reference/data-types/newjson) +- `json` — JSON column. [`JSON`](/core/reference/data-types/newjson) **Returned value** -Returns the sorted map of paths and types. [`Map(String, Array(String))`](/reference/data-types/map) +Returns the sorted map of paths and types. [`Map(String, Array(String))`](/core/reference/data-types/map) **Examples** diff --git a/reference/functions/aggregate-functions/reference/entropy.mdx b/core/reference/functions/aggregate-functions/reference/entropy.mdx similarity index 87% rename from reference/functions/aggregate-functions/reference/entropy.mdx rename to core/reference/functions/aggregate-functions/reference/entropy.mdx index 10d7b572..f3dc117e 100644 --- a/reference/functions/aggregate-functions/reference/entropy.mdx +++ b/core/reference/functions/aggregate-functions/reference/entropy.mdx @@ -21,11 +21,11 @@ entropy(val) **Arguments** -- `val` — Column of values of any type. [`Any`](/reference/data-types) +- `val` — Column of values of any type. [`Any`](/core/reference/data-types) **Returned value** -Returns Shannon entropy. [`Float64`](/reference/data-types/float) +Returns Shannon entropy. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/estimateCompressionRatio.mdx b/core/reference/functions/aggregate-functions/reference/estimateCompressionRatio.mdx similarity index 75% rename from reference/functions/aggregate-functions/reference/estimateCompressionRatio.mdx rename to core/reference/functions/aggregate-functions/reference/estimateCompressionRatio.mdx index a2f8d283..a47c851c 100644 --- a/reference/functions/aggregate-functions/reference/estimateCompressionRatio.mdx +++ b/core/reference/functions/aggregate-functions/reference/estimateCompressionRatio.mdx @@ -15,7 +15,7 @@ Estimates the compression ratio of a given column without compressing it. For the examples below, the result will differ based on the default compression codec of the server. -See [Column Compression Codecs](/reference/statements/create/table#column_compression_codec). +See [Column Compression Codecs](/core/reference/statements/create/table#column_compression_codec). @@ -27,16 +27,16 @@ estimateCompressionRatio([codec, block_size_bytes])(column) **Parameters** -- `codec` — String containing a compression codec or multiple comma-separated codecs in a single string. [`String`](/reference/data-types/string) -- `block_size_bytes` — Block size of compressed data. This is similar to setting both [`max_compress_block_size`](/reference/settings/merge-tree-settings#max_compress_block_size) and [`min_compress_block_size`](/reference/settings/merge-tree-settings#min_compress_block_size). The default value is 1 MiB (1048576 bytes). Maximum allowed value is 256 MiB (268435456 bytes). [`UInt64`](/reference/data-types/int-uint) +- `codec` — String containing a compression codec or multiple comma-separated codecs in a single string. [`String`](/core/reference/data-types/string) +- `block_size_bytes` — Block size of compressed data. This is similar to setting both [`max_compress_block_size`](/core/reference/settings/merge-tree-settings#max_compress_block_size) and [`min_compress_block_size`](/core/reference/settings/merge-tree-settings#min_compress_block_size). The default value is 1 MiB (1048576 bytes). Maximum allowed value is 256 MiB (268435456 bytes). [`UInt64`](/core/reference/data-types/int-uint) **Arguments** -- `column` — Column of any type. [`Any`](/reference/data-types) +- `column` — Column of any type. [`Any`](/core/reference/data-types) **Returned value** -Returns an estimate compression ratio for the given column. [`Float64`](/reference/data-types/float) +Returns an estimate compression ratio for the given column. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/exponentialMovingAverage.mdx b/core/reference/functions/aggregate-functions/reference/exponentialMovingAverage.mdx similarity index 94% rename from reference/functions/aggregate-functions/reference/exponentialMovingAverage.mdx rename to core/reference/functions/aggregate-functions/reference/exponentialMovingAverage.mdx index d84a4d74..8cac53e6 100644 --- a/reference/functions/aggregate-functions/reference/exponentialMovingAverage.mdx +++ b/core/reference/functions/aggregate-functions/reference/exponentialMovingAverage.mdx @@ -26,16 +26,16 @@ exponentialMovingAverage(x)(value, timeunit) **Parameters** -- `x` — Half-life period. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — Half-life period. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Arguments** -- `value` — Value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `timeunit` — Timeunit. Timeunit is not timestamp (seconds), it's an index of the time interval. Can be calculated using `intDiv`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `value` — Value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `timeunit` — Timeunit. Timeunit is not timestamp (seconds), it's an index of the time interval. Can be calculated using `intDiv`. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns an exponentially smoothed moving average of the values for the past `x` time at the latest point of time. [`Float64`](/reference/data-types/float) +Returns an exponentially smoothed moving average of the values for the past `x` time at the latest point of time. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg.mdx b/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg.mdx similarity index 88% rename from reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg.mdx rename to core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg.mdx index fdab0cf4..0f44b098 100644 --- a/reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg.mdx +++ b/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg.mdx @@ -22,16 +22,16 @@ exponentialTimeDecayedAvg(x)(v, t) **Parameters** -- `x` — Half-life period. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — Half-life period. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Arguments** -- `v` — Value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `t` — Time. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `v` — Value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `t` — Time. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns an exponentially smoothed weighted moving average at index `t` in time. [`Float64`](/reference/data-types/float) +Returns an exponentially smoothed weighted moving average at index `t` in time. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount.mdx b/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount.mdx similarity index 93% rename from reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount.mdx rename to core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount.mdx index eb066b5e..340e3697 100644 --- a/reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount.mdx +++ b/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount.mdx @@ -22,15 +22,15 @@ exponentialTimeDecayedCount(x)(t) **Parameters** -- `x` — Half-life period. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — Half-life period. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Arguments** -- `t` — Time. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `t` — Time. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the cumulative exponential decay at the given point in time. [`Float64`](/reference/data-types/float) +Returns the cumulative exponential decay at the given point in time. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax.mdx b/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax.mdx similarity index 88% rename from reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax.mdx rename to core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax.mdx index 4a1c853e..7d5b62df 100644 --- a/reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax.mdx +++ b/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax.mdx @@ -22,16 +22,16 @@ exponentialTimeDecayedMax(x)(value, timeunit) **Parameters** -- `x` — Half-life period. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — Half-life period. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Arguments** -- `value` — Value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `timeunit` — Timeunit. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `value` — Value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `timeunit` — Timeunit. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the maximum of the exponentially smoothed weighted moving average at `t` and `t-1`. [`Float64`](/reference/data-types/float) +Returns the maximum of the exponentially smoothed weighted moving average at `t` and `t-1`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum.mdx b/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum.mdx similarity index 92% rename from reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum.mdx rename to core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum.mdx index 2518c525..a3753bcb 100644 --- a/reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum.mdx +++ b/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum.mdx @@ -22,16 +22,16 @@ exponentialTimeDecayedSum(x)(v, t) **Parameters** -- `x` — Time difference required for a value's weight to decay to 1/e. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — Time difference required for a value's weight to decay to 1/e. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Arguments** -- `v` — Value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `t` — Time. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `v` — Value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `t` — Time. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the sum of exponentially smoothed moving average values at the given point in time. [`Float64`](/reference/data-types/float) +Returns the sum of exponentially smoothed moving average values at the given point in time. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/first_value.mdx b/core/reference/functions/aggregate-functions/reference/first_value.mdx similarity index 82% rename from reference/functions/aggregate-functions/reference/first_value.mdx rename to core/reference/functions/aggregate-functions/reference/first_value.mdx index 16064bdc..373a402b 100644 --- a/reference/functions/aggregate-functions/reference/first_value.mdx +++ b/core/reference/functions/aggregate-functions/reference/first_value.mdx @@ -7,9 +7,9 @@ title: 'first_value' doc_type: 'reference' --- -It is an alias for [`any`](/reference/functions/aggregate-functions/reference/any) but it was introduced for compatibility with [Window Functions](/reference/functions/window-functions), where sometimes it's necessary to process `NULL` values (by default all ClickHouse aggregate functions ignore NULL values). +It is an alias for [`any`](/core/reference/functions/aggregate-functions/reference/any) but it was introduced for compatibility with [Window Functions](/core/reference/functions/window-functions), where sometimes it's necessary to process `NULL` values (by default all ClickHouse aggregate functions ignore NULL values). -It supports declaring a modifier to respect nulls (`RESPECT NULLS`), both under [Window Functions](/reference/functions/window-functions) and in normal aggregations. +It supports declaring a modifier to respect nulls (`RESPECT NULLS`), both under [Window Functions](/core/reference/functions/window-functions) and in normal aggregations. As with `any`, without Window Functions the result will be random if the source stream is not ordered and the return type matches the input type (Null is only returned if the input is Nullable or -OrNull combinator is added). diff --git a/reference/functions/aggregate-functions/reference/flame_graph.mdx b/core/reference/functions/aggregate-functions/reference/flame_graph.mdx similarity index 94% rename from reference/functions/aggregate-functions/reference/flame_graph.mdx rename to core/reference/functions/aggregate-functions/reference/flame_graph.mdx index bd3b9074..cd1e94c2 100644 --- a/reference/functions/aggregate-functions/reference/flame_graph.mdx +++ b/core/reference/functions/aggregate-functions/reference/flame_graph.mdx @@ -28,13 +28,13 @@ flameGraph(traces[, size[, ptr]]) **Arguments** -- `traces` — A stacktrace, either as raw addresses or as already-symbolized strings (e.g. `arrayMap(addressToSymbol, trace)`). [`Array(UInt64)`](/reference/data-types/array) or [`Array(String)`](/reference/data-types/array) -- `size` — Optional. An allocation size for memory profiling (default 1). [`UInt64`](/reference/data-types/int-uint) -- `ptr` — Optional. An allocation address (default 0). [`UInt64`](/reference/data-types/int-uint) +- `traces` — A stacktrace, either as raw addresses or as already-symbolized strings (e.g. `arrayMap(addressToSymbol, trace)`). [`Array(UInt64)`](/core/reference/data-types/array) or [`Array(String)`](/core/reference/data-types/array) +- `size` — Optional. An allocation size for memory profiling (default 1). [`UInt64`](/core/reference/data-types/int-uint) +- `ptr` — Optional. An allocation address (default 0). [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of strings for use with flamegraph.pl utility. [`Array(String)`](/reference/data-types/array) +Returns an array of strings for use with flamegraph.pl utility. [`Array(String)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupArray.mdx b/core/reference/functions/aggregate-functions/reference/groupArray.mdx similarity index 85% rename from reference/functions/aggregate-functions/reference/groupArray.mdx rename to core/reference/functions/aggregate-functions/reference/groupArray.mdx index eba9b070..5109d850 100644 --- a/reference/functions/aggregate-functions/reference/groupArray.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupArray.mdx @@ -32,15 +32,15 @@ groupArray(max_size)(x) **Parameters** -- `max_size` — Optional. Limits the size of the resulting array to `max_size` elements. [`UInt64`](/reference/data-types/int-uint) +- `max_size` — Optional. Limits the size of the resulting array to `max_size` elements. [`UInt64`](/core/reference/data-types/int-uint) **Arguments** -- `x` — Argument values to collect into an array. [`Any`](/reference/data-types) +- `x` — Argument values to collect into an array. [`Any`](/core/reference/data-types) **Returned value** -Returns an array of argument values. [`Array`](/reference/data-types/array) +Returns an array of argument values. [`Array`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupArrayArray.mdx b/core/reference/functions/aggregate-functions/reference/groupArrayArray.mdx similarity index 90% rename from reference/functions/aggregate-functions/reference/groupArrayArray.mdx rename to core/reference/functions/aggregate-functions/reference/groupArrayArray.mdx index efaf58c7..ac1518d5 100644 --- a/reference/functions/aggregate-functions/reference/groupArrayArray.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupArrayArray.mdx @@ -7,7 +7,7 @@ doc_type: 'reference' --- Aggregates arrays into a larger array of those arrays. -Combines the [`groupArray`](/reference/functions/aggregate-functions/reference/groupArray) function with the [Array](/reference/functions/aggregate-functions/combinators#-array) combinator. +Combines the [`groupArray`](/core/reference/functions/aggregate-functions/reference/groupArray) function with the [Array](/core/reference/functions/aggregate-functions/combinators#-array) combinator. Alias: `array_concat_agg` diff --git a/reference/functions/aggregate-functions/reference/groupArrayInsertAt.mdx b/core/reference/functions/aggregate-functions/reference/groupArrayInsertAt.mdx similarity index 91% rename from reference/functions/aggregate-functions/reference/groupArrayInsertAt.mdx rename to core/reference/functions/aggregate-functions/reference/groupArrayInsertAt.mdx index 0937c963..e0ab7dae 100644 --- a/reference/functions/aggregate-functions/reference/groupArrayInsertAt.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupArrayInsertAt.mdx @@ -25,17 +25,17 @@ groupArrayInsertAt(default_x, size)([x, pos]) **Parameters** -- `default_x` — Optional. Default value for substituting in empty positions. [`Any`](/reference/data-types) -- `size` — Optional. Length of the resulting array. When using this parameter, the default value `default_x` must be specified. [`UInt32`](/reference/data-types/int-uint) +- `default_x` — Optional. Default value for substituting in empty positions. [`Any`](/core/reference/data-types) +- `size` — Optional. Length of the resulting array. When using this parameter, the default value `default_x` must be specified. [`UInt32`](/core/reference/data-types/int-uint) **Arguments** -- `x` — Value to be inserted. [`Any`](/reference/data-types) -- `pos` — Position at which the specified element `x` is to be inserted. Index numbering in the array starts from zero. [`UInt32`](/reference/data-types/int-uint) +- `x` — Value to be inserted. [`Any`](/core/reference/data-types) +- `pos` — Position at which the specified element `x` is to be inserted. Index numbering in the array starts from zero. [`UInt32`](/core/reference/data-types/int-uint) **Returned value** -Returns an array with inserted values. [`Array`](/reference/data-types/array) +Returns an array with inserted values. [`Array`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupArrayIntersect.mdx b/core/reference/functions/aggregate-functions/reference/groupArrayIntersect.mdx similarity index 89% rename from reference/functions/aggregate-functions/reference/groupArrayIntersect.mdx rename to core/reference/functions/aggregate-functions/reference/groupArrayIntersect.mdx index 1d7ed0b8..33324ead 100644 --- a/reference/functions/aggregate-functions/reference/groupArrayIntersect.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupArrayIntersect.mdx @@ -22,11 +22,11 @@ groupArrayIntersect(x) **Arguments** -- `x` — Argument (column name or expression). [`Any`](/reference/data-types) +- `x` — Argument (column name or expression). [`Any`](/core/reference/data-types) **Returned value** -Returns an array that contains elements that are in all arrays. [`Array`](/reference/data-types/array) +Returns an array that contains elements that are in all arrays. [`Array`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupArrayLast.mdx b/core/reference/functions/aggregate-functions/reference/groupArrayLast.mdx similarity index 83% rename from reference/functions/aggregate-functions/reference/groupArrayLast.mdx rename to core/reference/functions/aggregate-functions/reference/groupArrayLast.mdx index 7596a90f..d0947a09 100644 --- a/reference/functions/aggregate-functions/reference/groupArrayLast.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupArrayLast.mdx @@ -24,16 +24,16 @@ groupArrayLast(max_size)(x) **Parameters** -- `max_size` — Maximum size of the resulting array. [`UInt64`](/reference/data-types/int-uint) +- `max_size` — Maximum size of the resulting array. [`UInt64`](/core/reference/data-types/int-uint) **Arguments** -- `max_size` — Maximum size of the resulting array. [`UInt64`](/reference/data-types/int-uint) -- `x` — Argument (column name or expression). [`Any`](/reference/data-types) +- `max_size` — Maximum size of the resulting array. [`UInt64`](/core/reference/data-types/int-uint) +- `x` — Argument (column name or expression). [`Any`](/core/reference/data-types) **Returned value** -Returns an array of the last argument values. [`Array(T)`](/reference/data-types/array) +Returns an array of the last argument values. [`Array(T)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupArrayMovingAvg.mdx b/core/reference/functions/aggregate-functions/reference/groupArrayMovingAvg.mdx similarity index 92% rename from reference/functions/aggregate-functions/reference/groupArrayMovingAvg.mdx rename to core/reference/functions/aggregate-functions/reference/groupArrayMovingAvg.mdx index 74da8e1d..2ed8a1b8 100644 --- a/reference/functions/aggregate-functions/reference/groupArrayMovingAvg.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupArrayMovingAvg.mdx @@ -27,15 +27,15 @@ groupArrayMovingAvg(window_size)(numbers_for_summing) **Parameters** -- `window_size` — Size of the calculation window. If left unspecified, the function takes the window size equal to the number of rows in the column. [`UInt64`](/reference/data-types/int-uint) +- `window_size` — Size of the calculation window. If left unspecified, the function takes the window size equal to the number of rows in the column. [`UInt64`](/core/reference/data-types/int-uint) **Arguments** -- `numbers_for_summing` — Expression resulting in a numeric data type value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `numbers_for_summing` — Expression resulting in a numeric data type value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns an array of the same size as the input data. For non-Decimal input, the array contains Float64 values. For Decimal input, the array contains Decimal values with the input scale. [`Array`](/reference/data-types/array) +Returns an array of the same size as the input data. For non-Decimal input, the array contains Float64 values. For Decimal input, the array contains Decimal values with the input scale. [`Array`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupArrayMovingSum.mdx b/core/reference/functions/aggregate-functions/reference/groupArrayMovingSum.mdx similarity index 90% rename from reference/functions/aggregate-functions/reference/groupArrayMovingSum.mdx rename to core/reference/functions/aggregate-functions/reference/groupArrayMovingSum.mdx index 13ec33b9..73ee4a70 100644 --- a/reference/functions/aggregate-functions/reference/groupArrayMovingSum.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupArrayMovingSum.mdx @@ -24,15 +24,15 @@ groupArrayMovingSum(window_size)(numbers_for_summing) **Parameters** -- `window_size` — Size of the calculation window. If left unspecified, the function takes the window size equal to the number of rows in the column. [`UInt64`](/reference/data-types/int-uint) +- `window_size` — Size of the calculation window. If left unspecified, the function takes the window size equal to the number of rows in the column. [`UInt64`](/core/reference/data-types/int-uint) **Arguments** -- `numbers_for_summing` — Expression resulting in a numeric data type value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `numbers_for_summing` — Expression resulting in a numeric data type value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns an array of the same size and type as the input data. [`Array`](/reference/data-types/array) +Returns an array of the same size and type as the input data. [`Array`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupArraySample.mdx b/core/reference/functions/aggregate-functions/reference/groupArraySample.mdx similarity index 88% rename from reference/functions/aggregate-functions/reference/groupArraySample.mdx rename to core/reference/functions/aggregate-functions/reference/groupArraySample.mdx index d8674750..1d5eeca9 100644 --- a/reference/functions/aggregate-functions/reference/groupArraySample.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupArraySample.mdx @@ -25,17 +25,17 @@ groupArraySample(max_size[, seed])(x) **Parameters** -- `max_size` — Maximum size of the resulting array. [`UInt64`](/reference/data-types/int-uint) -- `seed` — Optional. Seed for the random number generator. Default value: 123456. [`UInt64`](/reference/data-types/int-uint) -- `x` — Argument (column name or expression). [`Any`](/reference/data-types) +- `max_size` — Maximum size of the resulting array. [`UInt64`](/core/reference/data-types/int-uint) +- `seed` — Optional. Seed for the random number generator. Default value: 123456. [`UInt64`](/core/reference/data-types/int-uint) +- `x` — Argument (column name or expression). [`Any`](/core/reference/data-types) **Arguments** -- `array_column` — Column containing arrays to be aggregated. [`Array`](/reference/data-types/array) +- `array_column` — Column containing arrays to be aggregated. [`Array`](/core/reference/data-types/array) **Returned value** -Array of randomly selected x arguments. [`Array(T)`](/reference/data-types/array) +Array of randomly selected x arguments. [`Array(T)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupArraySorted.mdx b/core/reference/functions/aggregate-functions/reference/groupArraySorted.mdx similarity index 88% rename from reference/functions/aggregate-functions/reference/groupArraySorted.mdx rename to core/reference/functions/aggregate-functions/reference/groupArraySorted.mdx index 8502e883..55404bfe 100644 --- a/reference/functions/aggregate-functions/reference/groupArraySorted.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupArraySorted.mdx @@ -21,15 +21,15 @@ groupArraySorted(N)(column) **Parameters** -- `N` — The number of elements to return. [`UInt64`](/reference/data-types/int-uint) +- `N` — The number of elements to return. [`UInt64`](/core/reference/data-types/int-uint) **Arguments** -- `column` — Column for which to group into an array. [`Any`](/reference/data-types) +- `column` — Column for which to group into an array. [`Any`](/core/reference/data-types) **Returned value** -Returns an array with the first N items in ascending order. [`Array`](/reference/data-types/array) +Returns an array with the first N items in ascending order. [`Array`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupBitAnd.mdx b/core/reference/functions/aggregate-functions/reference/groupBitAnd.mdx similarity index 83% rename from reference/functions/aggregate-functions/reference/groupBitAnd.mdx rename to core/reference/functions/aggregate-functions/reference/groupBitAnd.mdx index 997f72ca..252db954 100644 --- a/reference/functions/aggregate-functions/reference/groupBitAnd.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupBitAnd.mdx @@ -23,11 +23,11 @@ groupBitAnd(expr) **Arguments** -- `expr` — Expression of `(U)Int*` type. [`(U)Int*`](/reference/data-types/int-uint) +- `expr` — Expression of `(U)Int*` type. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of `(U)Int*` type. [`(U)Int*`](/reference/data-types/int-uint) +Returns a value of `(U)Int*` type. [`(U)Int*`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupBitOr.mdx b/core/reference/functions/aggregate-functions/reference/groupBitOr.mdx similarity index 83% rename from reference/functions/aggregate-functions/reference/groupBitOr.mdx rename to core/reference/functions/aggregate-functions/reference/groupBitOr.mdx index 6731cc25..f1f4da6f 100644 --- a/reference/functions/aggregate-functions/reference/groupBitOr.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupBitOr.mdx @@ -23,11 +23,11 @@ groupBitOr(expr) **Arguments** -- `expr` — Expression of `(U)Int*` type. [`(U)Int*`](/reference/data-types/int-uint) +- `expr` — Expression of `(U)Int*` type. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of `(U)Int*` type. [`(U)Int*`](/reference/data-types/int-uint) +Returns a value of `(U)Int*` type. [`(U)Int*`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupBitXor.mdx b/core/reference/functions/aggregate-functions/reference/groupBitXor.mdx similarity index 83% rename from reference/functions/aggregate-functions/reference/groupBitXor.mdx rename to core/reference/functions/aggregate-functions/reference/groupBitXor.mdx index 47813127..77a749b0 100644 --- a/reference/functions/aggregate-functions/reference/groupBitXor.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupBitXor.mdx @@ -23,11 +23,11 @@ groupBitXor(expr) **Arguments** -- `expr` — Expression of `(U)Int*` type. [`(U)Int*`](/reference/data-types/int-uint) +- `expr` — Expression of `(U)Int*` type. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of `(U)Int*` type. [`(U)Int*`](/reference/data-types/int-uint) +Returns a value of `(U)Int*` type. [`(U)Int*`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupBitmap.mdx b/core/reference/functions/aggregate-functions/reference/groupBitmap.mdx similarity index 83% rename from reference/functions/aggregate-functions/reference/groupBitmap.mdx rename to core/reference/functions/aggregate-functions/reference/groupBitmap.mdx index 62680211..565e3f68 100644 --- a/reference/functions/aggregate-functions/reference/groupBitmap.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupBitmap.mdx @@ -12,7 +12,7 @@ doc_type: 'reference' Introduced in: v20.1.0 Creates a bitmap (bit array) from a column of unsigned integers, then returns the count of unique values (cardinality) in that bitmap. -By appending the `-State` combinator suffix, instead of returning the count, it returns the actual [bitmap object](/reference/functions/regular-functions/bitmap-functions). +By appending the `-State` combinator suffix, instead of returning the count, it returns the actual [bitmap object](/core/reference/functions/regular-functions/bitmap-functions). **Syntax** @@ -24,11 +24,11 @@ groupBitmapState(expr) **Arguments** -- `expr` — Expression that results in a `UInt*` type. [`UInt*`](/reference/data-types/int-uint) +- `expr` — Expression that results in a `UInt*` type. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns the count of type UInt64 type, or a bitmap object when using `-State`. [`UInt64`](/reference/data-types/int-uint) +Returns the count of type UInt64 type, or a bitmap object when using `-State`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupBitmapAnd.mdx b/core/reference/functions/aggregate-functions/reference/groupBitmapAnd.mdx similarity index 88% rename from reference/functions/aggregate-functions/reference/groupBitmapAnd.mdx rename to core/reference/functions/aggregate-functions/reference/groupBitmapAnd.mdx index 74ce88dc..dff50d15 100644 --- a/reference/functions/aggregate-functions/reference/groupBitmapAnd.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupBitmapAnd.mdx @@ -12,7 +12,7 @@ doc_type: 'reference' Introduced in: v20.1.0 Calculates the AND of a bitmap column and returns it's cardinality. -If suffix combinator [`-State`](/reference/functions/aggregate-functions/combinators#-state) is added, then it returns a bitmap object. +If suffix combinator [`-State`](/core/reference/functions/aggregate-functions/combinators#-state) is added, then it returns a bitmap object. **Syntax** @@ -24,11 +24,11 @@ groupBitmapAndState(expr) **Arguments** -- `expr` — Expression that results in an `AggregateFunction(groupBitmap, UInt*)` type. [`AggregateFunction(groupBitmap, UInt*)`](/reference/data-types/aggregatefunction) +- `expr` — Expression that results in an `AggregateFunction(groupBitmap, UInt*)` type. [`AggregateFunction(groupBitmap, UInt*)`](/core/reference/data-types/aggregatefunction) **Returned value** -Returns a count of type `UInt64`, or a bitmap object when using `-State`. [`UInt64`](/reference/data-types/int-uint) +Returns a count of type `UInt64`, or a bitmap object when using `-State`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupBitmapOr.mdx b/core/reference/functions/aggregate-functions/reference/groupBitmapOr.mdx similarity index 80% rename from reference/functions/aggregate-functions/reference/groupBitmapOr.mdx rename to core/reference/functions/aggregate-functions/reference/groupBitmapOr.mdx index b190dc92..1743cd50 100644 --- a/reference/functions/aggregate-functions/reference/groupBitmapOr.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupBitmapOr.mdx @@ -12,8 +12,8 @@ doc_type: 'reference' Introduced in: v20.1.0 Calculates the OR of a bitmap column and returns it's cardinality. -If suffix combinator [`-State`](/reference/functions/aggregate-functions/combinators#-state) is added, then it returns a bitmap object. -This is equivalent to `groupBitmapMerge` ([`groupBitmap`](/reference/functions/aggregate-functions/reference/groupBitmap) with the [`-Merge`](/reference/functions/aggregate-functions/combinators#-merge) combinator suffix). +If suffix combinator [`-State`](/core/reference/functions/aggregate-functions/combinators#-state) is added, then it returns a bitmap object. +This is equivalent to `groupBitmapMerge` ([`groupBitmap`](/core/reference/functions/aggregate-functions/reference/groupBitmap) with the [`-Merge`](/core/reference/functions/aggregate-functions/combinators#-merge) combinator suffix). **Syntax** @@ -25,11 +25,11 @@ groupBitmapOrState(expr) **Arguments** -- `expr` — Expression that results in an `AggregateFunction(groupBitmap, UInt*)` type. [`AggregateFunction(groupBitmap, UInt*)`](/reference/data-types/aggregatefunction) +- `expr` — Expression that results in an `AggregateFunction(groupBitmap, UInt*)` type. [`AggregateFunction(groupBitmap, UInt*)`](/core/reference/data-types/aggregatefunction) **Returned value** -Returns a count of type `UInt64`, or a bitmap object when using `-State`. [`UInt64`](/reference/data-types/int-uint) +Returns a count of type `UInt64`, or a bitmap object when using `-State`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupBitmapXor.mdx b/core/reference/functions/aggregate-functions/reference/groupBitmapXor.mdx similarity index 89% rename from reference/functions/aggregate-functions/reference/groupBitmapXor.mdx rename to core/reference/functions/aggregate-functions/reference/groupBitmapXor.mdx index 53ea9d09..967fc054 100644 --- a/reference/functions/aggregate-functions/reference/groupBitmapXor.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupBitmapXor.mdx @@ -12,7 +12,7 @@ doc_type: 'reference' Introduced in: v20.1.0 Calculates the XOR of a bitmap column and returns it's cardinality. -If suffix combinator [`-State`](/reference/functions/aggregate-functions/combinators#-state) is added, then it returns a bitmap object. +If suffix combinator [`-State`](/core/reference/functions/aggregate-functions/combinators#-state) is added, then it returns a bitmap object. **Syntax** @@ -24,11 +24,11 @@ groupBitmapXorState(expr) **Arguments** -- `expr` — Expression that results in an `AggregateFunction(groupBitmap, UInt*)` type. [`AggregateFunction(groupBitmap, UInt*)`](/reference/data-types/aggregatefunction) +- `expr` — Expression that results in an `AggregateFunction(groupBitmap, UInt*)` type. [`AggregateFunction(groupBitmap, UInt*)`](/core/reference/data-types/aggregatefunction) **Returned value** -Returns a count of type `UInt64`, or a bitmap object when using `-State`. [`UInt64`](/reference/data-types/int-uint) +Returns a count of type `UInt64`, or a bitmap object when using `-State`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupConcat.mdx b/core/reference/functions/aggregate-functions/reference/groupConcat.mdx similarity index 88% rename from reference/functions/aggregate-functions/reference/groupConcat.mdx rename to core/reference/functions/aggregate-functions/reference/groupConcat.mdx index c1b2548d..d3941c9e 100644 --- a/reference/functions/aggregate-functions/reference/groupConcat.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupConcat.mdx @@ -31,17 +31,17 @@ groupConcat[(delimiter [, limit])](expression) **Parameters** -- `delimiter` — A string that will be used to separate concatenated values. This parameter is optional and defaults to an empty string if not specified. [`String`](/reference/data-types/string) -- `limit` — A positive integer specifying the maximum number of elements to concatenate. If more elements are present, excess elements are ignored. This parameter is optional. [`UInt*`](/reference/data-types/int-uint) +- `delimiter` — A string that will be used to separate concatenated values. This parameter is optional and defaults to an empty string if not specified. [`String`](/core/reference/data-types/string) +- `limit` — A positive integer specifying the maximum number of elements to concatenate. If more elements are present, excess elements are ignored. This parameter is optional. [`UInt*`](/core/reference/data-types/int-uint) **Arguments** -- `expression` — The expression or column name that outputs strings to be concatenated. [`String`](/reference/data-types/string) -- `delimiter` — A string that will be used to separate concatenated values. This parameter is optional and defaults to an empty string or delimiter from parameters if not specified. [`String`](/reference/data-types/string) +- `expression` — The expression or column name that outputs strings to be concatenated. [`String`](/core/reference/data-types/string) +- `delimiter` — A string that will be used to separate concatenated values. This parameter is optional and defaults to an empty string or delimiter from parameters if not specified. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string consisting of the concatenated values of the column or expression. If the group has no elements or only null elements, and the function does not specify a handling for only null values, the result is a nullable string with a null value. [`String`](/reference/data-types/string) +Returns a string consisting of the concatenated values of the column or expression. If the group has no elements or only null elements, and the function does not specify a handling for only null values, the result is a nullable string with a null value. [`String`](/core/reference/data-types/string) **Examples** diff --git a/reference/functions/aggregate-functions/reference/groupUniqArray.mdx b/core/reference/functions/aggregate-functions/reference/groupUniqArray.mdx similarity index 81% rename from reference/functions/aggregate-functions/reference/groupUniqArray.mdx rename to core/reference/functions/aggregate-functions/reference/groupUniqArray.mdx index 9b16dc24..a8084728 100644 --- a/reference/functions/aggregate-functions/reference/groupUniqArray.mdx +++ b/core/reference/functions/aggregate-functions/reference/groupUniqArray.mdx @@ -11,7 +11,7 @@ doc_type: 'reference' Introduced in: v1.1.0 Creates an array from different argument values. -The memory consumption of this function is the same as for the [`uniqExact`](/reference/functions/aggregate-functions/reference/uniqExact) function. +The memory consumption of this function is the same as for the [`uniqExact`](/core/reference/functions/aggregate-functions/reference/uniqExact) function. **Syntax** @@ -23,15 +23,15 @@ groupUniqArray(max_size)(x) **Parameters** -- `max_size` — Limits the size of the resulting array to `max_size` elements. `groupUniqArray(1)(x)` is equivalent to `[any(x)]`. [`UInt64`](/reference/data-types/int-uint) +- `max_size` — Limits the size of the resulting array to `max_size` elements. `groupUniqArray(1)(x)` is equivalent to `[any(x)]`. [`UInt64`](/core/reference/data-types/int-uint) **Arguments** -- `x` — Expression. [`Any`](/reference/data-types) +- `x` — Expression. [`Any`](/core/reference/data-types) **Returned value** -Returns an array of unique values. [`Array`](/reference/data-types/array) +Returns an array of unique values. [`Array`](/core/reference/data-types/array) **Examples** diff --git a/core/reference/functions/aggregate-functions/reference/index.mdx b/core/reference/functions/aggregate-functions/reference/index.mdx new file mode 100644 index 00000000..2e6606b1 --- /dev/null +++ b/core/reference/functions/aggregate-functions/reference/index.mdx @@ -0,0 +1,166 @@ +--- +description: 'Landing page for aggregate functions with complete list of aggregate + functions' +slug: /sql-reference/aggregate-functions/reference/ +title: 'Aggregate Functions' +toc_folder_title: 'Reference' +toc_hidden: true +doc_type: 'landing-page' +--- + +ClickHouse supports all standard SQL aggregate functions ([sum](/core/reference/functions/aggregate-functions/reference/sum), [avg](/core/reference/functions/aggregate-functions/reference/avg), [min](/core/reference/functions/aggregate-functions/reference/min), [max](/core/reference/functions/aggregate-functions/reference/max), [count](/core/reference/functions/aggregate-functions/reference/count)), as well as a wide range of other aggregate functions. + +{/* The table of contents table for this page is automatically generated by +https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh +from the YAML front matter fields: slug, description, title. + +If you've spotted an error, please edit the YML frontmatter of the pages themselves. +*/} + +{/*AUTOGENERATED_START*/} +| Page | Description | +|-----|-----| +| [aggThrow](/core/reference/functions/aggregate-functions/reference/aggThrow) | This function can be used for the purpose of testing exception safety. It will throw an exception on creation with the specified probability. | +| [analysisOfVariance](/core/reference/functions/aggregate-functions/reference/analysis_of_variance) | Provides a statistical test for one-way analysis of variance (ANOVA test). It is a test over several groups of normally distributed observations to find out whether all groups have the same mean or not. | +| [any](/core/reference/functions/aggregate-functions/reference/any) | Selects the first encountered value of a column. | +| [anyHeavy](/core/reference/functions/aggregate-functions/reference/anyHeavy) | Selects a frequently occurring value using the heavy hitters algorithm. If there is a value that occurs more than in half the cases in each of the query execution threads, this value is returned. Normally, the result is nondeterministic. | +| [anyLast](/core/reference/functions/aggregate-functions/reference/anyLast) | Selects the last encountered value of a column. | +| [approx_top_k](/core/reference/functions/aggregate-functions/reference/approxtopk) | Returns an array of the approximately most frequent values and their counts in the specified column. | +| [approx_top_sum](/core/reference/functions/aggregate-functions/reference/approxtopsum) | Returns an array of the approximately most frequent values and their counts in the specified column. | +| [argAndMax](/core/reference/functions/aggregate-functions/reference/argAndMax) | Calculates the `arg` and `val` value for a maximum `val` value. If there are multiple rows with equal `val` being the maximum, which of the associated `arg` and `val` is returned is not deterministic. | +| [argAndMin](/core/reference/functions/aggregate-functions/reference/argAndMin) | Calculates the `arg` and `val` value for a minimum `val` value. If there are multiple rows with equal `val` being the minimum, which of the associated `arg` and `val` is returned is not deterministic. | +| [argMax](/core/reference/functions/aggregate-functions/reference/argMax) | Calculates the `arg` value for a maximum `val` value. | +| [argMin](/core/reference/functions/aggregate-functions/reference/argMin) | Calculates the `arg` value for a minimum `val` value. If there are multiple rows with equal `val` being the maximum, which of the associated `arg` is returned is not deterministic. | +| [avg](/core/reference/functions/aggregate-functions/reference/avg) | Calculates the arithmetic mean. | +| [avgWeighted](/core/reference/functions/aggregate-functions/reference/avgWeighted) | Calculates the weighted arithmetic mean. | +| [boundingRatio](/core/reference/functions/aggregate-functions/reference/boundrat) | Aggregate function that calculates the slope between the leftmost and rightmost points across a group of values. | +| [categoricalInformationValue](/core/reference/functions/aggregate-functions/reference/categoricalInformationValue) | Calculates the value of `(P(tag = 1) - P(tag = 0))(log(P(tag = 1)) - log(P(tag = 0)))` for each category. | +| [contingency](/core/reference/functions/aggregate-functions/reference/contingency) | The `contingency` function calculates the contingency coefficient, a value that measures the association between two columns in a table. The computation is similar to the `cramersV` function but with a different denominator in the square root. | +| [corr](/core/reference/functions/aggregate-functions/reference/corr) | Calculates the Pearson correlation coefficient. | +| [corrMatrix](/core/reference/functions/aggregate-functions/reference/corrMatrix) | Computes the correlation matrix over N variables. | +| [corrStable](/core/reference/functions/aggregate-functions/reference/corrStable) | Calculates the Pearson correlation coefficient, but uses a numerically stable algorithm. | +| [count](/core/reference/functions/aggregate-functions/reference/count) | Counts the number of rows or not-NULL values. | +| [covarPop](/core/reference/functions/aggregate-functions/reference/covarPop) | Calculates the population covariance | +| [covarPopMatrix](/core/reference/functions/aggregate-functions/reference/covarPopMatrix) | Returns the population covariance matrix over N variables. | +| [covarPopStable](/core/reference/functions/aggregate-functions/reference/covarPopStable) | Calculates the value of the population covariance | +| [covarSamp](/core/reference/functions/aggregate-functions/reference/covarSamp) | Calculates the value of `Σ((x - x̅)(y - y̅)) / (n - 1)` | +| [covarSampMatrix](/core/reference/functions/aggregate-functions/reference/covarSampMatrix) | Returns the sample covariance matrix over N variables. | +| [covarSampStable](/core/reference/functions/aggregate-functions/reference/covarSampStable) | Similar to covarSamp but works slower while providing a lower computational error. | +| [cramersV](/core/reference/functions/aggregate-functions/reference/cramersV) | The result of the `cramersV` function ranges from 0 (corresponding to no association between the variables) to 1 and can reach 1 only when each value is completely determined by the other. It may be viewed as the association between two variables as a percentage of their maximum possible variation. | +| [cramersVBiasCorrected](/core/reference/functions/aggregate-functions/reference/cramersVBiasCorrected) | Calculates Cramer's V, but uses a bias correction. | +| [deltaSum](/core/reference/functions/aggregate-functions/reference/deltaSum) | Sums the arithmetic difference between consecutive rows. | +| [deltaSumTimestamp](/core/reference/functions/aggregate-functions/reference/deltaSumTimestamp) | Adds the difference between consecutive rows. If the difference is negative, it is ignored. | +| [distinctDynamicTypes](/core/reference/functions/aggregate-functions/reference/distinctDynamicTypes) | Calculates the list of distinct data types stored in Dynamic column. | +| [distinctJSONPaths](/core/reference/functions/aggregate-functions/reference/distinctJSONPaths) | Calculates a list of distinct paths stored in a JSON column. | +| [distinctJSONPathsAndTypes](/core/reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes) | Calculates the list of distinct paths and their types stored in JSON | +| [entropy](/core/reference/functions/aggregate-functions/reference/entropy) | Calculates Shannon entropy of for a column of values. | +| [estimateCompressionRatio](/core/reference/functions/aggregate-functions/reference/estimateCompressionRatio) | Estimates the compression ratio of a given column without compressing it. | +| [exponentialMovingAverage](/core/reference/functions/aggregate-functions/reference/exponentialMovingAverage) | Calculates the exponential moving average of values for the determined time. | +| [exponentialTimeDecayedAvg](/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg) | Returns the exponentially smoothed weighted moving average of values of a time series at point `t` in time. | +| [exponentialTimeDecayedCount](/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount) | Returns the cumulative exponential decay over a time series at the index `t` in time. | +| [exponentialTimeDecayedMax](/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax) | Returns the maximum of the computed exponentially smoothed moving average at index `t` in time with that at `t-1`. | +| [exponentialTimeDecayedSum](/core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum) | Returns the sum of exponentially smoothed moving average values of a time series at the index `t` in time. | +| [first_value](/core/reference/functions/aggregate-functions/reference/first_value) | It is an alias for any but it was introduced for compatibility with Window Functions, where sometimes it is necessary to process `NULL` values (by default all ClickHouse aggregate functions ignore NULL values). | +| [flameGraph](/core/reference/functions/aggregate-functions/reference/flame_graph) | Aggregate function which builds a flamegraph using the list of stacktraces. | +| [groupArray](/core/reference/functions/aggregate-functions/reference/groupArray) | Creates an array of argument values. Values can be added to the array in any (indeterminate) order. | +| [groupArrayArray](/core/reference/functions/aggregate-functions/reference/groupArrayArray) | Aggregates arrays into a larger array of those arrays. | +| [groupArrayInsertAt](/core/reference/functions/aggregate-functions/reference/groupArrayInsertAt) | Inserts a value into the array at the specified position. | +| [groupArrayIntersect](/core/reference/functions/aggregate-functions/reference/groupArrayIntersect) | Return an intersection of given arrays (Return all items of arrays, that are in all given arrays). | +| [groupArrayLast](/core/reference/functions/aggregate-functions/reference/groupArrayLast) | Creates an array of the last argument values. | +| [groupArrayMovingAvg](/core/reference/functions/aggregate-functions/reference/groupArrayMovingAvg) | Calculates the moving average of input values. | +| [groupArrayMovingSum](/core/reference/functions/aggregate-functions/reference/groupArrayMovingSum) | Calculates the moving sum of input values. | +| [groupArraySample](/core/reference/functions/aggregate-functions/reference/groupArraySample) | Creates an array of sample argument values. The size of the resulting array is limited to `max_size` elements. Argument values are selected and added to the array randomly. | +| [groupArraySorted](/core/reference/functions/aggregate-functions/reference/groupArraySorted) | Returns an array with the first N items in ascending order. | +| [groupBitAnd](/core/reference/functions/aggregate-functions/reference/groupBitAnd) | Applies bit-wise `AND` for series of numbers. | +| [groupBitmap](/core/reference/functions/aggregate-functions/reference/groupBitmap) | Bitmap or Aggregate calculations from a unsigned integer column, return cardinality of type UInt64, if add suffix -State, then return a bitmap object | +| [groupBitmapAnd](/core/reference/functions/aggregate-functions/reference/groupBitmapAnd) | Calculations the AND of a bitmap column, return cardinality of type UInt64, if add suffix -State, then return a bitmap object. | +| [groupBitmapOr](/core/reference/functions/aggregate-functions/reference/groupBitmapOr) | Calculations the OR of a bitmap column, return cardinality of type UInt64, if add suffix -State, then return a bitmap object. This is equivalent to `groupBitmapMerge`. | +| [groupBitmapXor](/core/reference/functions/aggregate-functions/reference/groupBitmapXor) | Calculates the XOR of a bitmap column, and returns the cardinality of type UInt64, if used with suffix -State, then it returns a bitmap object | +| [groupBitOr](/core/reference/functions/aggregate-functions/reference/groupBitOr) | Applies bit-wise `OR` to a series of numbers. | +| [groupBitXor](/core/reference/functions/aggregate-functions/reference/groupBitXor) | Applies bit-wise `XOR` for series of numbers. | +| [groupConcat](/core/reference/functions/aggregate-functions/reference/groupConcat) | Calculates a concatenated string from a group of strings, optionally separated by a delimiter, and optionally limited by a maximum number of elements. | +| [groupUniqArray](/core/reference/functions/aggregate-functions/reference/groupUniqArray) | Creates an array from different argument values. | +| [intervalLengthSum](/core/reference/functions/aggregate-functions/reference/intervalLengthSum) | Calculates the total length of union of all ranges (segments on numeric axis). | +| [kolmogorovSmirnovTest](/core/reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest) | Applies Kolmogorov-Smirnov's test to samples from two populations. | +| [kurtPop](/core/reference/functions/aggregate-functions/reference/kurtPop) | Computes the kurtosis of a sequence. | +| [kurtSamp](/core/reference/functions/aggregate-functions/reference/kurtSamp) | Computes the sample kurtosis of a sequence. | +| [largestTriangleThreeBuckets](/core/reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets) | Applies the Largest-Triangle-Three-Buckets algorithm to the input data. | +| [last_value](/core/reference/functions/aggregate-functions/reference/last_value) | Selects the last encountered value, similar to `anyLast`, but could accept NULL. | +| [mannWhitneyUTest](/core/reference/functions/aggregate-functions/reference/mannWhitneyUTest) | Applies the Mann-Whitney rank test to samples from two populations. | +| [max](/core/reference/functions/aggregate-functions/reference/max) | Aggregate function that calculates the maximum across a group of values. | +| [maxIntersections](/core/reference/functions/aggregate-functions/reference/maxIntersections) | Aggregate function that calculates the maximum number of times that a group of intervals intersects each other (if all the intervals intersect at least once). | +| [maxIntersectionsPosition](/core/reference/functions/aggregate-functions/reference/maxIntersectionsPosition) | Aggregate function that calculates the positions of the occurrences of the maxIntersections function. | +| [maxMap](/core/reference/functions/aggregate-functions/reference/maxMap) | Calculates the maximum from `value` array according to the keys specified in the `key` array. | +| [meanZTest](/core/reference/functions/aggregate-functions/reference/meanZTest) | Applies mean z-test to samples from two populations. | +| [median](/core/reference/functions/aggregate-functions/reference/median) | The `median*` functions are the aliases for the corresponding `quantile*` functions. They calculate median of a numeric data sample. | +| [min](/core/reference/functions/aggregate-functions/reference/min) | Aggregate function that calculates the minimum across a group of values. | +| [minMap](/core/reference/functions/aggregate-functions/reference/minMap) | Calculates the minimum from `value` array according to the keys specified in the `key` array. | +| [quantile](/core/reference/functions/aggregate-functions/reference/quantile) | Computes an approximate quantile of a numeric data sequence. | +| [quantileBFloat16](/core/reference/functions/aggregate-functions/reference/quantileBFloat16) | Computes an approximate quantile of a sample consisting of bfloat16 numbers. | +| [quantileDD](/core/reference/functions/aggregate-functions/reference/quantileddsketch) | Computes an approximate quantile of a sample with relative-error guarantees. | +| [quantileDeterministic](/core/reference/functions/aggregate-functions/reference/quantileDeterministic) | Computes an approximate quantile of a numeric data sequence. | +| [quantileExact Functions](/core/reference/functions/aggregate-functions/reference/quantileExact) | quantileExact, quantileExactLow, quantileExactHigh, quantileExactExclusive, quantileExactInclusive functions | +| [quantileExactExclusive](/core/reference/functions/aggregate-functions/reference/quantileExactExclusive) | Exactly computes the quantile of a numeric data sequence. | +| [quantileExactHigh](/core/reference/functions/aggregate-functions/reference/quantileExactHigh) | Similar to quantileExact, this computes the exact quantile of a numeric data sequence. | +| [quantileExactInclusive](/core/reference/functions/aggregate-functions/reference/quantileExactInclusive) | Exactly computes the quantile of a numeric data sequence. | +| [quantileExactLow](/core/reference/functions/aggregate-functions/reference/quantileExactLow) | Similar to quantileExact, this computes the exact [quantile](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence. | +| [quantileExactWeighted](/core/reference/functions/aggregate-functions/reference/quantileExactWeighted) | Exactly computes the quantile of a numeric data sequence, taking into account the weight of each element. | +| [quantileExactWeightedInterpolated](/core/reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated) | Computes quantile of a numeric data sequence using linear interpolation, taking into account the weight of each element. | +| [quantileGK](/core/reference/functions/aggregate-functions/reference/quantileGK) | Computes the quantile of a numeric data sequence using the Greenwald-Khanna algorithm. | +| [quantileInterpolatedWeighted](/core/reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted) | Computes quantile of a numeric data sequence using linear interpolation, taking into account the weight of each element. | +| [quantilePrometheusHistogram](/core/reference/functions/aggregate-functions/reference/quantilePrometheusHistogram) | Computes quantile of a histogram using linear interpolation. | +| [quantiles Functions](/core/reference/functions/aggregate-functions/reference/quantiles) | quantiles, quantilesExactExclusive, quantilesExactInclusive, quantilesGK | +| [quantilesExactExclusive](/core/reference/functions/aggregate-functions/reference/quantilesExactExclusive) | Exactly computes the quantiles of a numeric data sequence. | +| [quantilesExactInclusive](/core/reference/functions/aggregate-functions/reference/quantilesExactInclusive) | Exactly computes the quantiles of a numeric data sequence. | +| [quantilesGK](/core/reference/functions/aggregate-functions/reference/quantilesGK) | quantilesGK works similarly to quantileGK but allows us to calculate quantities at different levels simultaneously and returns an array. | +| [quantilesTimingWeighted](/core/reference/functions/aggregate-functions/reference/quantilesTimingWeighted) | With the determined precision computes the quantile of a numeric data sequence according to the weight of each sequence member. | +| [quantileTDigest](/core/reference/functions/aggregate-functions/reference/quantileTDigest) | Computes an approximate quantile of a numeric data sequence using the t-digest algorithm. | +| [quantileTDigestWeighted](/core/reference/functions/aggregate-functions/reference/quantileTDigestWeighted) | Computes an approximate quantile of a numeric data sequence using the t-digest algorithm. | +| [quantileTiming](/core/reference/functions/aggregate-functions/reference/quantileTiming) | With the determined precision computes the quantile of a numeric data sequence. | +| [quantileTimingWeighted](/core/reference/functions/aggregate-functions/reference/quantileTimingWeighted) | With the determined precision computes the quantile of a numeric data sequence according to the weight of each sequence member. | +| [rankCorr](/core/reference/functions/aggregate-functions/reference/rankCorr) | Computes a rank correlation coefficient. | +| [simpleLinearRegression](/core/reference/functions/aggregate-functions/reference/simpleLinearRegression) | Performs simple (unidimensional) linear regression. | +| [singleValueOrNull](/core/reference/functions/aggregate-functions/reference/singleValueOrNull) | The aggregate function `singleValueOrNull` is used to implement subquery operators, such as `x = ALL (SELECT ...)`. It checks if there is only one unique non-NULL value in the data. | +| [skewPop](/core/reference/functions/aggregate-functions/reference/skewPop) | Computes the skewness of a sequence. | +| [skewSamp](/core/reference/functions/aggregate-functions/reference/skewSamp) | Computes the sample skewness of a sequence. | +| [sparkbar](/core/reference/functions/aggregate-functions/reference/sparkbar) | The function plots a frequency histogram for values `x` and the repetition rate `y` of these values over the interval `[min_x, max_x]`. | +| [stddevPop](/core/reference/functions/aggregate-functions/reference/stddevPop) | The result is equal to the square root of varPop. | +| [stddevPopStable](/core/reference/functions/aggregate-functions/reference/stddevPopStable) | The result is equal to the square root of varPop. Unlike stddevPop, this function uses a numerically stable algorithm. | +| [stddevSamp](/core/reference/functions/aggregate-functions/reference/stddevSamp) | The result is equal to the square root of varSamp | +| [stddevSampStable](/core/reference/functions/aggregate-functions/reference/stddevSampStable) | The result is equal to the square root of varSamp. Unlike this function uses a numerically stable algorithm. | +| [stochasticLinearRegression](/core/reference/functions/aggregate-functions/reference/stochasticLinearRegression) | This function implements stochastic linear regression. It supports custom parameters for learning rate, L2 regularization coefficient, mini-batch size, and has a few methods for updating weights (Adam, simple SGD, Momentum, Nesterov.) | +| [stochasticLogisticRegression](/core/reference/functions/aggregate-functions/reference/stochasticLogisticRegression) | This function implements stochastic logistic regression. It can be used for binary classification problem, supports the same custom parameters as stochasticLinearRegression and works the same way. | +| [studentTTest](/core/reference/functions/aggregate-functions/reference/studentTTest) | Applies the student t-test to samples from two populations. | +| [studentTTestOneSample](/core/reference/functions/aggregate-functions/reference/studentTTestOneSample) | Applies the one-sample Student t-test to a sample and a known population mean. | +| [sum](/core/reference/functions/aggregate-functions/reference/sum) | Calculates the sum. Only works for numbers. | +| [sumCount](/core/reference/functions/aggregate-functions/reference/sumCount) | Calculates the sum of the numbers and counts the number of rows at the same time. The function is used by ClickHouse query optimizer: if there are multiple `sum`, `count` or `avg` functions in a query, they can be replaced to single `sumCount` function to reuse the calculations. The function is rarely needed to use explicitly. | +| [sumKahan](/core/reference/functions/aggregate-functions/reference/sumKahan) | Calculates the sum of the numbers with Kahan compensated summation algorithm | +| [sumMap](/core/reference/functions/aggregate-functions/reference/sumMap) | Totals one or more `value` arrays according to the keys specified in the `key` array. Returns a tuple of arrays: keys in sorted order, followed by values summed for the corresponding keys without overflow. | +| [sumMapWithOverflow](/core/reference/functions/aggregate-functions/reference/sumMapWithOverflow) | Totals a `value` array according to the keys specified in the `key` array. Returns a tuple of two arrays: keys in sorted order, and values summed for the corresponding keys. Differs from the sumMap function in that it does summation with overflow. | +| [sumWithOverflow](/core/reference/functions/aggregate-functions/reference/sumWithOverflow) | Computes the sum of the numbers, using the same data type for the result as for the input parameters. If the sum exceeds the maximum value for this data type, it is calculated with overflow. | +| [theilsU](/core/reference/functions/aggregate-functions/reference/theilsU) | The `theilsU` function calculates Theils' U uncertainty coefficient, a value that measures the association between two columns in a table. | +| [timeSeriesChangesToGrid](/core/reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid) | Aggregate function that calculates PromQL-like changes over time series data on the specified grid. | +| [timeSeriesDeltaToGrid](/core/reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid) | Aggregate function that calculates PromQL-like delta over time series data on the specified grid. | +| [timeSeriesDerivToGrid](/core/reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid) | Aggregate function that calculates PromQL-like derivative over time series data on the specified grid. | +| [timeSeriesGroupArray](/core/reference/functions/aggregate-functions/reference/timeSeriesGroupArray) | Sorts time series by timestamp in ascending order. | +| [timeSeriesInstantDeltaToGrid](/core/reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid) | Aggregate function that calculates PromQL-like idelta over time series data on the specified grid. | +| [timeSeriesInstantRateToGrid](/core/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid) | Aggregate function that calculates PromQL-like irate over time series data on the specified grid. | +| [timeSeriesLastTwoSamples](/core/reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples) | Aggregate function for re-sampling time series data for PromQL-like irate and idelta calculation | +| [timeSeriesPredictLinearToGrid](/core/reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid) | Aggregate function that calculates PromQL-like linear prediction over time series data on the specified grid. | +| [timeSeriesRateToGrid](/core/reference/functions/aggregate-functions/reference/timeSeriesRateToGrid) | Aggregate function that calculates PromQL-like rate over time series data on the specified grid. | +| [timeSeriesResampleToGridWithStaleness](/core/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness) | Aggregate function that re-samples time series data to the specified grid. | +| [timeSeriesResetsToGrid](/core/reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid) | Aggregate function that calculates PromQL-like resets over time series data on the specified grid. | +| [topK](/core/reference/functions/aggregate-functions/reference/topK) | Returns an array of the approximately most frequent values in the specified column. The resulting array is sorted in descending order of approximate frequency of values (not by the values themselves). | +| [topKWeighted](/core/reference/functions/aggregate-functions/reference/topKWeighted) | Returns an array of the approximately most frequent values in the specified column. The resulting array is sorted in descending order of approximate frequency of values (not by the values themselves). Additionally, the weight of the value is taken into account. | +| [uniq](/core/reference/functions/aggregate-functions/reference/uniq) | Calculates the approximate number of different values of the argument. | +| [uniqCombined](/core/reference/functions/aggregate-functions/reference/uniqCombined) | Calculates the approximate number of different argument values. | +| [uniqCombined64](/core/reference/functions/aggregate-functions/reference/uniqCombined64) | Calculates the approximate number of different argument values. It is the same as uniqCombined, but uses a 64-bit hash for all data types rather than just for the String data type. | +| [uniqExact](/core/reference/functions/aggregate-functions/reference/uniqExact) | Calculates the exact number of different argument values. | +| [uniqHLL12](/core/reference/functions/aggregate-functions/reference/uniqHLL12) | Calculates the approximate number of different argument values, using the HyperLogLog algorithm. | +| [uniqTheta](/core/reference/functions/aggregate-functions/reference/uniqthetasketch) | Calculates the approximate number of different argument values, using the Theta Sketch Framework. | +| [varPop](/core/reference/functions/aggregate-functions/reference/varPop) | Calculates the population variance. | +| [varPopStable](/core/reference/functions/aggregate-functions/reference/varPopStable) | Returns the population variance. Unlike varPop , this function uses a numerically stable algorithm. It works slower but provides a lower computational error. | +| [varSamp](/core/reference/functions/aggregate-functions/reference/varSamp) | Calculate the sample variance of a data set. | +| [varSampStable](/core/reference/functions/aggregate-functions/reference/varSampStable) | Calculate the sample variance of a data set. Unlike `varSamp` , this function uses a numerically stable algorithm. It works slower but provides a lower computational error. | +| [welchTTest](/core/reference/functions/aggregate-functions/reference/welchTTest) | Applies Welch's t-test to samples from two populations. | +{/*AUTOGENERATED_END*/} diff --git a/reference/functions/aggregate-functions/reference/intervalLengthSum.mdx b/core/reference/functions/aggregate-functions/reference/intervalLengthSum.mdx similarity index 86% rename from reference/functions/aggregate-functions/reference/intervalLengthSum.mdx rename to core/reference/functions/aggregate-functions/reference/intervalLengthSum.mdx index c9b4f0e5..d86f5969 100644 --- a/reference/functions/aggregate-functions/reference/intervalLengthSum.mdx +++ b/core/reference/functions/aggregate-functions/reference/intervalLengthSum.mdx @@ -28,12 +28,12 @@ intervalLengthSum(start, end) **Arguments** -- `start` — The starting value of the interval. [`(U)Int32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`DateTime`](/reference/data-types/datetime) or [`Date`](/reference/data-types/date) -- `end` — The ending value of the interval. [`(U)Int32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`DateTime`](/reference/data-types/datetime) or [`Date`](/reference/data-types/date) +- `start` — The starting value of the interval. [`(U)Int32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`DateTime`](/core/reference/data-types/datetime) or [`Date`](/core/reference/data-types/date) +- `end` — The ending value of the interval. [`(U)Int32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`DateTime`](/core/reference/data-types/datetime) or [`Date`](/core/reference/data-types/date) **Returned value** -Returns the total length of union of all ranges (segments on numeric axis). Depending on the type of the argument, the return value may be UInt64 or Float64 type. [`UInt64`](/reference/data-types/int-uint) or [`Float64`](/reference/data-types/float) +Returns the total length of union of all ranges (segments on numeric axis). Depending on the type of the argument, the return value may be UInt64 or Float64 type. [`UInt64`](/core/reference/data-types/int-uint) or [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest.mdx b/core/reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest.mdx similarity index 88% rename from reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest.mdx rename to core/reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest.mdx index 34c01921..0faa2afd 100644 --- a/reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest.mdx +++ b/core/reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest.mdx @@ -25,17 +25,17 @@ kolmogorovSmirnovTest([alternative, computation_method])(sample_data, sample_ind **Parameters** -- `alternative` — Alternative hypothesis. (Optional, default: 'two-sided'.) Let `F(x) and G(x)` be the CDFs of the first and second distributions respectively. 'two-sided': The null hypothesis is that samples come from the same distribution, e.g. `F(x) = G(x)` for all x. And the alternative is that the distributions are not identical. 'greater': The null hypothesis is that values in the first sample are stochastically smaller than those in the second one, e.g. the CDF of first distribution lies above and hence to the left of that for the second one. Which in fact means that `F(x) >= G(x)` for all x. And the alternative in this case is that `F(x) < G(x)` for at least one x. 'less': The null hypothesis is that values in the first sample are stochastically greater than those in the second one, e.g. the CDF of first distribution lies below and hence to the right of that for the second one. Which in fact means that `F(x) <= G(x)` for all x. And the alternative in this case is that `F(x) > G(x)` for at least one x. [`String`](/reference/data-types/string) -- `computation_method` — The method used to compute p-value. (Optional, default: 'auto'.) 'exact': calculation is performed using precise probability distribution of the test statistics. Compute intensive and wasteful except for small samples. 'asymp' ('asymptotic'): calculation is performed using an approximation. For large sample sizes, the exact and asymptotic p-values are very similar. 'auto': the 'exact' method is used when a maximum number of samples is less than 10'000. [`String`](/reference/data-types/string) +- `alternative` — Alternative hypothesis. (Optional, default: 'two-sided'.) Let `F(x) and G(x)` be the CDFs of the first and second distributions respectively. 'two-sided': The null hypothesis is that samples come from the same distribution, e.g. `F(x) = G(x)` for all x. And the alternative is that the distributions are not identical. 'greater': The null hypothesis is that values in the first sample are stochastically smaller than those in the second one, e.g. the CDF of first distribution lies above and hence to the left of that for the second one. Which in fact means that `F(x) >= G(x)` for all x. And the alternative in this case is that `F(x) < G(x)` for at least one x. 'less': The null hypothesis is that values in the first sample are stochastically greater than those in the second one, e.g. the CDF of first distribution lies below and hence to the right of that for the second one. Which in fact means that `F(x) <= G(x)` for all x. And the alternative in this case is that `F(x) > G(x)` for at least one x. [`String`](/core/reference/data-types/string) +- `computation_method` — The method used to compute p-value. (Optional, default: 'auto'.) 'exact': calculation is performed using precise probability distribution of the test statistics. Compute intensive and wasteful except for small samples. 'asymp' ('asymptotic'): calculation is performed using an approximation. For large sample sizes, the exact and asymptotic p-values are very similar. 'auto': the 'exact' method is used when a maximum number of samples is less than 10'000. [`String`](/core/reference/data-types/string) **Arguments** -- `sample_data` — Sample data. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `sample_index` — Sample index. [`(U)Int*`](/reference/data-types/int-uint) +- `sample_data` — Sample data. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `sample_index` — Sample index. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two elements: a calculated statistic and a calculated p-value. [`Tuple(Float64, Float64)`](/reference/data-types/tuple) +Returns a tuple with two elements: a calculated statistic and a calculated p-value. [`Tuple(Float64, Float64)`](/core/reference/data-types/tuple) **Examples** diff --git a/reference/functions/aggregate-functions/reference/kurtPop.mdx b/core/reference/functions/aggregate-functions/reference/kurtPop.mdx similarity index 71% rename from reference/functions/aggregate-functions/reference/kurtPop.mdx rename to core/reference/functions/aggregate-functions/reference/kurtPop.mdx index 5a45d347..27bddede 100644 --- a/reference/functions/aggregate-functions/reference/kurtPop.mdx +++ b/core/reference/functions/aggregate-functions/reference/kurtPop.mdx @@ -21,11 +21,11 @@ kurtPop(expr) **Arguments** -- `expr` — [Expression](/reference/syntax#expressions) returning a number. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `expr` — [Expression](/core/reference/syntax#expressions) returning a number. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the kurtosis of the given distribution. [`Float64`](/reference/data-types/float) +Returns the kurtosis of the given distribution. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/kurtSamp.mdx b/core/reference/functions/aggregate-functions/reference/kurtSamp.mdx similarity index 79% rename from reference/functions/aggregate-functions/reference/kurtSamp.mdx rename to core/reference/functions/aggregate-functions/reference/kurtSamp.mdx index 58fdff4d..de73d105 100644 --- a/reference/functions/aggregate-functions/reference/kurtSamp.mdx +++ b/core/reference/functions/aggregate-functions/reference/kurtSamp.mdx @@ -23,11 +23,11 @@ kurtSamp(expr) **Arguments** -- `expr` — [Expression](/reference/syntax#expressions) returning a number. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `expr` — [Expression](/core/reference/syntax#expressions) returning a number. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the kurtosis of the given distribution. If `n <= 1` (`n` is a size of the sample), then the function returns `nan`. [`Float64`](/reference/data-types/float) +Returns the kurtosis of the given distribution. If `n <= 1` (`n` is a size of the sample), then the function returns `nan`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets.mdx b/core/reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets.mdx similarity index 72% rename from reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets.mdx rename to core/reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets.mdx index 8c31feb3..bd72f215 100644 --- a/reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets.mdx +++ b/core/reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets.mdx @@ -32,16 +32,16 @@ largestTriangleThreeBuckets(n)(x, y) **Parameters** -- `n` — Number of points in the resulting series. [`UInt64`](/reference/data-types/int-uint) +- `n` — Number of points in the resulting series. [`UInt64`](/core/reference/data-types/int-uint) **Arguments** -- `x` — x coordinate. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `y` — y coordinate. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `x` — x coordinate. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `y` — y coordinate. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns an array of tuples with two elements.. [`Array(Tuple(Float64, Float64))`](/reference/data-types/array) +Returns an array of tuples with two elements.. [`Array(Tuple(Float64, Float64))`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/last_value.mdx b/core/reference/functions/aggregate-functions/reference/last_value.mdx similarity index 95% rename from reference/functions/aggregate-functions/reference/last_value.mdx rename to core/reference/functions/aggregate-functions/reference/last_value.mdx index 1fc105b2..9b3015e8 100644 --- a/reference/functions/aggregate-functions/reference/last_value.mdx +++ b/core/reference/functions/aggregate-functions/reference/last_value.mdx @@ -7,7 +7,7 @@ doc_type: 'reference' --- Selects the last encountered value, similar to `anyLast`, but could accept NULL. -Mostly it should be used with [Window Functions](/reference/functions/window-functions). +Mostly it should be used with [Window Functions](/core/reference/functions/window-functions). Without Window Functions the result will be random if the source stream is not ordered. ## examples {#examples} diff --git a/reference/functions/aggregate-functions/reference/mannWhitneyUTest.mdx b/core/reference/functions/aggregate-functions/reference/mannWhitneyUTest.mdx similarity index 83% rename from reference/functions/aggregate-functions/reference/mannWhitneyUTest.mdx rename to core/reference/functions/aggregate-functions/reference/mannWhitneyUTest.mdx index b5bc3121..0fa4fdb2 100644 --- a/reference/functions/aggregate-functions/reference/mannWhitneyUTest.mdx +++ b/core/reference/functions/aggregate-functions/reference/mannWhitneyUTest.mdx @@ -29,17 +29,17 @@ mannWhitneyUTest[(alternative[, continuity_correction])](sample_data, sample_ind **Parameters** -- `alternative` — Optional. Alternative hypothesis. 'two-sided' (default): two populations are not stochastically equal. 'greater': values in the first sample are stochastically greater than those in the second sample. 'less': values in the first sample are stochastically less than those in the second sample. [`String`](/reference/data-types/string) -- `continuity_correction` — Optional. If not 0 then continuity correction in the normal approximation for the p-value is applied. The default value is 1. [`UInt64`](/reference/data-types/int-uint) +- `alternative` — Optional. Alternative hypothesis. 'two-sided' (default): two populations are not stochastically equal. 'greater': values in the first sample are stochastically greater than those in the second sample. 'less': values in the first sample are stochastically less than those in the second sample. [`String`](/core/reference/data-types/string) +- `continuity_correction` — Optional. If not 0 then continuity correction in the normal approximation for the p-value is applied. The default value is 1. [`UInt64`](/core/reference/data-types/int-uint) **Arguments** -- `sample_data` — Sample data. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) -- `sample_index` — Sample index. [`(U)Int*`](/reference/data-types/int-uint) +- `sample_data` — Sample data. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) +- `sample_index` — Sample index. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two elements: calculated U-statistic and calculated p-value. [`Tuple(Float64, Float64)`](/reference/data-types/tuple) +Returns a tuple with two elements: calculated U-statistic and calculated p-value. [`Tuple(Float64, Float64)`](/core/reference/data-types/tuple) **Examples** diff --git a/reference/functions/aggregate-functions/reference/max.mdx b/core/reference/functions/aggregate-functions/reference/max.mdx similarity index 93% rename from reference/functions/aggregate-functions/reference/max.mdx rename to core/reference/functions/aggregate-functions/reference/max.mdx index e6fb484f..9aa7a1fb 100644 --- a/reference/functions/aggregate-functions/reference/max.mdx +++ b/core/reference/functions/aggregate-functions/reference/max.mdx @@ -21,11 +21,11 @@ max(column) **Arguments** -- `column` — Column name or expression. [`Any`](/reference/data-types) +- `column` — Column name or expression. [`Any`](/core/reference/data-types) **Returned value** -The maximum value across the group with type equal to that of the input. [`Any`](/reference/data-types) +The maximum value across the group with type equal to that of the input. [`Any`](/core/reference/data-types) **Examples** diff --git a/reference/functions/aggregate-functions/reference/maxIntersections.mdx b/core/reference/functions/aggregate-functions/reference/maxIntersections.mdx similarity index 84% rename from reference/functions/aggregate-functions/reference/maxIntersections.mdx rename to core/reference/functions/aggregate-functions/reference/maxIntersections.mdx index 6ffe5e92..b7063615 100644 --- a/reference/functions/aggregate-functions/reference/maxIntersections.mdx +++ b/core/reference/functions/aggregate-functions/reference/maxIntersections.mdx @@ -23,12 +23,12 @@ maxIntersections(start_column, end_column) **Arguments** -- `start_column` — A numeric column that represents the start of each interval. If `start_column` is `NULL` or 0 then the interval will be skipped. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `end_column` — A numeric column that represents the end of each interval. If `end_column` is `NULL` or 0 then the interval will be skipped. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `start_column` — A numeric column that represents the start of each interval. If `start_column` is `NULL` or 0 then the interval will be skipped. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `end_column` — A numeric column that represents the end of each interval. If `end_column` is `NULL` or 0 then the interval will be skipped. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the maximum number of intersected intervals. [`UInt64`](/reference/data-types/int-uint) +Returns the maximum number of intersected intervals. [`UInt64`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/aggregate-functions/reference/maxIntersectionsPosition.mdx b/core/reference/functions/aggregate-functions/reference/maxIntersectionsPosition.mdx similarity index 78% rename from reference/functions/aggregate-functions/reference/maxIntersectionsPosition.mdx rename to core/reference/functions/aggregate-functions/reference/maxIntersectionsPosition.mdx index 2e932df0..d18dc70e 100644 --- a/reference/functions/aggregate-functions/reference/maxIntersectionsPosition.mdx +++ b/core/reference/functions/aggregate-functions/reference/maxIntersectionsPosition.mdx @@ -11,7 +11,7 @@ doc_type: 'reference' Introduced in: v1.1.0 -Aggregate function that calculates the positions of the occurrences of the [`maxIntersections`](/reference/functions/aggregate-functions/reference/maxIntersections) function. +Aggregate function that calculates the positions of the occurrences of the [`maxIntersections`](/core/reference/functions/aggregate-functions/reference/maxIntersections) function. **Syntax** @@ -22,12 +22,12 @@ maxIntersectionsPosition(start_column, end_column) **Arguments** -- `start_column` — A numeric column that represents the start of each interval. If `start_column` is `NULL` or 0 then the interval will be skipped. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `end_column` — A numeric column that represents the end of each interval. If `end_column` is `NULL` or 0 then the interval will be skipped. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `start_column` — A numeric column that represents the start of each interval. If `start_column` is `NULL` or 0 then the interval will be skipped. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `end_column` — A numeric column that represents the end of each interval. If `end_column` is `NULL` or 0 then the interval will be skipped. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the start positions of the maximum number of intersected intervals. [`Any`](/reference/data-types) +Returns the start positions of the maximum number of intersected intervals. [`Any`](/core/reference/data-types) **Examples** diff --git a/reference/functions/aggregate-functions/reference/maxMap.mdx b/core/reference/functions/aggregate-functions/reference/maxMap.mdx similarity index 86% rename from reference/functions/aggregate-functions/reference/maxMap.mdx rename to core/reference/functions/aggregate-functions/reference/maxMap.mdx index 7e66d7e0..128404ab 100644 --- a/reference/functions/aggregate-functions/reference/maxMap.mdx +++ b/core/reference/functions/aggregate-functions/reference/maxMap.mdx @@ -28,12 +28,12 @@ maxMappedArrays(Tuple(key, value)) **Arguments** -- `key` — Array of keys. [`Array(T)`](/reference/data-types/array) -- `value` — Array of values. [`Array(T)`](/reference/data-types/array) +- `key` — Array of keys. [`Array(T)`](/core/reference/data-types/array) +- `value` — Array of values. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns a tuple of two arrays: keys in sorted order, and values calculated for the corresponding keys. [`Tuple(Array(T), Array(T))`](/reference/data-types/tuple) +Returns a tuple of two arrays: keys in sorted order, and values calculated for the corresponding keys. [`Tuple(Array(T), Array(T))`](/core/reference/data-types/tuple) **Examples** diff --git a/reference/functions/aggregate-functions/reference/meanZTest.mdx b/core/reference/functions/aggregate-functions/reference/meanZTest.mdx similarity index 82% rename from reference/functions/aggregate-functions/reference/meanZTest.mdx rename to core/reference/functions/aggregate-functions/reference/meanZTest.mdx index e083a57f..2758c14a 100644 --- a/reference/functions/aggregate-functions/reference/meanZTest.mdx +++ b/core/reference/functions/aggregate-functions/reference/meanZTest.mdx @@ -29,18 +29,18 @@ meanZTest(population_variance_x, population_variance_y, confidence_level)(sample **Parameters** -- `population_variance_x` — Variance for population x. [`Float*`](/reference/data-types/float) -- `population_variance_y` — Variance for population y. [`Float*`](/reference/data-types/float) -- `confidence_level` — Confidence level in order to calculate confidence intervals. [`Float*`](/reference/data-types/float) +- `population_variance_x` — Variance for population x. [`Float*`](/core/reference/data-types/float) +- `population_variance_y` — Variance for population y. [`Float*`](/core/reference/data-types/float) +- `confidence_level` — Confidence level in order to calculate confidence intervals. [`Float*`](/core/reference/data-types/float) **Arguments** -- `sample_data` — Sample data. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `sample_index` — Sample index. [`(U)Int*`](/reference/data-types/int-uint) +- `sample_data` — Sample data. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `sample_index` — Sample index. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with four elements: calculated z-statistic, calculated p-value, calculated confidence-interval-low, calculated confidence-interval-high. [`Tuple(Float64, Float64, Float64, Float64)`](/reference/data-types/tuple) +Returns a tuple with four elements: calculated z-statistic, calculated p-value, calculated confidence-interval-low, calculated confidence-interval-high. [`Tuple(Float64, Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** diff --git a/core/reference/functions/aggregate-functions/reference/median.mdx b/core/reference/functions/aggregate-functions/reference/median.mdx new file mode 100644 index 00000000..eee259e2 --- /dev/null +++ b/core/reference/functions/aggregate-functions/reference/median.mdx @@ -0,0 +1,45 @@ +--- +description: 'The `median*` functions are the aliases for the corresponding `quantile*` + functions. They calculate median of a numeric data sample.' +slug: /sql-reference/aggregate-functions/reference/median +title: 'median' +doc_type: 'reference' +--- + +The `median*` functions are the aliases for the corresponding `quantile*` functions. They calculate median of a numeric data sample. + +Functions: + +- `median` — Alias for [quantile](/core/reference/functions/aggregate-functions/reference/quantile). +- `medianDeterministic` — Alias for [quantileDeterministic](/core/reference/functions/aggregate-functions/reference/quantileDeterministic). +- `medianExact` — Alias for [quantileExact](/core/reference/functions/aggregate-functions/reference/quantileExact). +- `medianExactWeighted` — Alias for [quantileExactWeighted](/core/reference/functions/aggregate-functions/reference/quantileExactWeighted). +- `medianTiming` — Alias for [quantileTiming](/core/reference/functions/aggregate-functions/reference/quantileTiming). +- `medianTimingWeighted` — Alias for [quantileTimingWeighted](/core/reference/functions/aggregate-functions/reference/quantileTimingWeighted). +- `medianTDigest` — Alias for [quantileTDigest](/core/reference/functions/aggregate-functions/reference/quantileTDigest). +- `medianTDigestWeighted` — Alias for [quantileTDigestWeighted](/core/reference/functions/aggregate-functions/reference/quantileTDigestWeighted). +- `medianBFloat16` — Alias for [quantileBFloat16](/core/reference/functions/aggregate-functions/reference/quantileBFloat16). +- `medianDD` — Alias for [quantileDD](/core/reference/functions/aggregate-functions/reference/quantileddsketch). + +**Example** + +Input table: + +```text +┌─val─┐ +│ 1 │ +│ 1 │ +│ 2 │ +│ 3 │ +└─────┘ +``` + +```sql title="Query" +SELECT medianDeterministic(val, 1) FROM t; +``` + +```text title="Response" +┌─medianDeterministic(val, 1)─┐ +│ 1.5 │ +└─────────────────────────────┘ +``` diff --git a/reference/functions/aggregate-functions/reference/min.mdx b/core/reference/functions/aggregate-functions/reference/min.mdx similarity index 91% rename from reference/functions/aggregate-functions/reference/min.mdx rename to core/reference/functions/aggregate-functions/reference/min.mdx index ba0fefa1..e6cd5da0 100644 --- a/reference/functions/aggregate-functions/reference/min.mdx +++ b/core/reference/functions/aggregate-functions/reference/min.mdx @@ -21,11 +21,11 @@ min(column) **Arguments** -- `column` — Column name or expression. [`Any`](/reference/data-types) +- `column` — Column name or expression. [`Any`](/core/reference/data-types) **Returned value** -Returns the minimum value across the group with type equal to that of the input. [`Any`](/reference/data-types) +Returns the minimum value across the group with type equal to that of the input. [`Any`](/core/reference/data-types) **Examples** diff --git a/reference/functions/aggregate-functions/reference/minMap.mdx b/core/reference/functions/aggregate-functions/reference/minMap.mdx similarity index 87% rename from reference/functions/aggregate-functions/reference/minMap.mdx rename to core/reference/functions/aggregate-functions/reference/minMap.mdx index 4625331f..fa60d77f 100644 --- a/reference/functions/aggregate-functions/reference/minMap.mdx +++ b/core/reference/functions/aggregate-functions/reference/minMap.mdx @@ -28,12 +28,12 @@ minMappedArrays(Tuple(key, value)) **Arguments** -- `key` — Array of keys. [`Array(T)`](/reference/data-types/array) -- `value` — Array of values. [`Array(T)`](/reference/data-types/array) +- `key` — Array of keys. [`Array(T)`](/core/reference/data-types/array) +- `value` — Array of values. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns a tuple of two arrays: keys in sorted order, and values calculated for the corresponding keys. [`Tuple(Array(T), Array(T))`](/reference/data-types/tuple) +Returns a tuple of two arrays: keys in sorted order, and values calculated for the corresponding keys. [`Tuple(Array(T), Array(T))`](/core/reference/data-types/tuple) **Examples** diff --git a/reference/functions/aggregate-functions/reference/quantile.mdx b/core/reference/functions/aggregate-functions/reference/quantile.mdx similarity index 63% rename from reference/functions/aggregate-functions/reference/quantile.mdx rename to core/reference/functions/aggregate-functions/reference/quantile.mdx index 47948104..5e1513d2 100644 --- a/reference/functions/aggregate-functions/reference/quantile.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantile.mdx @@ -14,10 +14,10 @@ Computes an approximate [`quantile`](https://en.wikipedia.org/wiki/Quantile) of This function applies [reservoir sampling](https://en.wikipedia.org/wiki/Reservoir_sampling) with a reservoir size up to 8192 and a random number generator for sampling. The result is non-deterministic. -To get an exact quantile, use the [`quantileExact`](/reference/functions/aggregate-functions/reference/quantileExact#quantileExact) function. +To get an exact quantile, use the [`quantileExact`](/core/reference/functions/aggregate-functions/reference/quantileExact#quantileExact) function. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [`quantiles`](/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. +In this case, use the [`quantiles`](/core/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. Note that for an empty numeric sequence, `quantile` will return NaN, but its `quantile*` variants will return either NaN or a default value for the sequence type, depending on the variant. @@ -32,15 +32,15 @@ quantile(level)(expr) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Approximate quantile of the specified level. [`Float64`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Approximate quantile of the specified level. [`Float64`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -63,5 +63,5 @@ SELECT quantile(val) FROM t; **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantileBFloat16.mdx b/core/reference/functions/aggregate-functions/reference/quantileBFloat16.mdx similarity index 78% rename from reference/functions/aggregate-functions/reference/quantileBFloat16.mdx rename to core/reference/functions/aggregate-functions/reference/quantileBFloat16.mdx index 34a0519b..e1150cc3 100644 --- a/reference/functions/aggregate-functions/reference/quantileBFloat16.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileBFloat16.mdx @@ -28,15 +28,15 @@ quantileBFloat16[(level)](expr) **Parameters** -- `level` — Optional. Level of quantile. Possible values are in the range from 0 to 1. Default value: 0.5. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Possible values are in the range from 0 to 1. Default value: 0.5. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Column with numeric data. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `expr` — Column with numeric data. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Approximate quantile of the specified level. [`Float64`](/reference/data-types/float) +Approximate quantile of the specified level. [`Float64`](/core/reference/data-types/float) **Examples** @@ -59,5 +59,5 @@ SELECT quantileBFloat16(0.75)(a), quantileBFloat16(0.75)(b) FROM example_table; **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantileDeterministic.mdx b/core/reference/functions/aggregate-functions/reference/quantileDeterministic.mdx similarity index 67% rename from reference/functions/aggregate-functions/reference/quantileDeterministic.mdx rename to core/reference/functions/aggregate-functions/reference/quantileDeterministic.mdx index 1c7b0eac..3593c12b 100644 --- a/reference/functions/aggregate-functions/reference/quantileDeterministic.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileDeterministic.mdx @@ -14,10 +14,10 @@ Computes an approximate [quantile](https://en.wikipedia.org/wiki/Quantile) of a This function applies [reservoir sampling](https://en.wikipedia.org/wiki/Reservoir_sampling) with a reservoir size up to 8192 and deterministic algorithm of sampling. The result is deterministic. -To get an exact quantile, use the [`quantileExact`](/reference/functions/aggregate-functions/reference/quantileExact#quantileExact) function. +To get an exact quantile, use the [`quantileExact`](/core/reference/functions/aggregate-functions/reference/quantileExact#quantileExact) function. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [`quantiles`](/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. +In this case, use the [`quantiles`](/core/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. **Syntax** @@ -30,16 +30,16 @@ quantileDeterministic(level)(expr, determinator) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) -- `determinator` — Number whose hash is used instead of a random number generator in the reservoir sampling algorithm to make the result of sampling deterministic. As a determinator you can use any deterministic positive number, for example, a user id or an event id. If the same determinator value occurs too often, the function works incorrectly. [`(U)Int*`](/reference/data-types/int-uint) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) +- `determinator` — Number whose hash is used instead of a random number generator in the reservoir sampling algorithm to make the result of sampling deterministic. As a determinator you can use any deterministic positive number, for example, a user id or an event id. If the same determinator value occurs too often, the function works incorrectly. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns an approximate quantile of the specified level. [`Float64`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Returns an approximate quantile of the specified level. [`Float64`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -62,5 +62,5 @@ SELECT quantileDeterministic(val, 1) FROM t; **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantileExact.mdx b/core/reference/functions/aggregate-functions/reference/quantileExact.mdx similarity index 64% rename from reference/functions/aggregate-functions/reference/quantileExact.mdx rename to core/reference/functions/aggregate-functions/reference/quantileExact.mdx index e19a6b6b..7011ac60 100644 --- a/reference/functions/aggregate-functions/reference/quantileExact.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileExact.mdx @@ -18,7 +18,7 @@ Therefore, the function consumes `O(n)` memory, where `n` is a number of values However, for a small number of values, the function is very effective. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [`quantiles`](/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. +In this case, use the [`quantiles`](/core/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. **Syntax** @@ -31,15 +31,15 @@ quantileExact(level)(expr) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Quantile of the specified level. For numeric data types the output format will be the same as the input format. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Quantile of the specified level. For numeric data types the output format will be the same as the input format. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -59,5 +59,5 @@ SELECT quantileExact(number) FROM numbers(10); **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantileExactExclusive.mdx b/core/reference/functions/aggregate-functions/reference/quantileExactExclusive.mdx similarity index 68% rename from reference/functions/aggregate-functions/reference/quantileExactExclusive.mdx rename to core/reference/functions/aggregate-functions/reference/quantileExactExclusive.mdx index 5dc40159..a70a9779 100644 --- a/reference/functions/aggregate-functions/reference/quantileExactExclusive.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileExactExclusive.mdx @@ -10,9 +10,9 @@ doc_type: 'reference' Introduced in: v20.1.0 -Similar to [`quantileExact`](/reference/functions/aggregate-functions/reference/quantileExact), this computes the exact [quantile](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence. +Similar to [`quantileExact`](/core/reference/functions/aggregate-functions/reference/quantileExact), this computes the exact [quantile](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence. -This function is equivalent to [`quantileExact`](/reference/functions/aggregate-functions/reference/quantileExact) but uses the exclusive method for calculating quantiles, as described in the [R-6 method](https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample). +This function is equivalent to [`quantileExact`](/core/reference/functions/aggregate-functions/reference/quantileExact) but uses the exclusive method for calculating quantiles, as described in the [R-6 method](https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample). When using this function, the quantile is calculated such that the interpolation formula for a given quantile p takes the form: `x[floor(n*p)] + (n*p - floor(n*p)) * (x[floor(n*p)+1] - x[floor(n*p)])`, where x is the sorted array. @@ -20,7 +20,7 @@ To get the exact value, all the passed values are combined into an array, which The sorting algorithm's complexity is `O(N·log(N))`, where `N = std::distance(first, last)` comparisons. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [quantiles](/reference/functions/aggregate-functions/reference/quantiles) function. +In this case, use the [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) function. **Syntax** @@ -31,15 +31,15 @@ quantileExactExclusive(level)(expr) **Parameters** -- `level` — Level of quantile. Constant floating-point number from 0 to 1 (exclusive). We recommend using a `level` value in the range of `(0.01, 0.99)`. [`Float*`](/reference/data-types/float) +- `level` — Level of quantile. Constant floating-point number from 0 to 1 (exclusive). We recommend using a `level` value in the range of `(0.01, 0.99)`. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns the quantile of the specified level. [`Float64`](/reference/data-types/float) +Returns the quantile of the specified level. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/quantileExactHigh.mdx b/core/reference/functions/aggregate-functions/reference/quantileExactHigh.mdx similarity index 73% rename from reference/functions/aggregate-functions/reference/quantileExactHigh.mdx rename to core/reference/functions/aggregate-functions/reference/quantileExactHigh.mdx index f1a4d17a..54c1bd86 100644 --- a/reference/functions/aggregate-functions/reference/quantileExactHigh.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileExactHigh.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' Introduced in: v20.8.0 -Similar to [`quantileExact`](/reference/functions/aggregate-functions/reference/quantileExact), this computes the exact [quantile](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence. +Similar to [`quantileExact`](/core/reference/functions/aggregate-functions/reference/quantileExact), this computes the exact [quantile](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence. To get the exact value, all the passed values are combined into an array, which is then fully sorted. The sorting algorithm's complexity is `O(N·log(N))`, where `N = std::distance(first, last)` comparisons. @@ -21,7 +21,7 @@ Median is calculated similarly to the [`median_high`](https://docs.python.org/3/ For all other levels, the element at the index corresponding to the value of `level * size_of_array` is returned. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [quantiles](/reference/functions/aggregate-functions/reference/quantiles) function. +In this case, use the [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) function. **Syntax** @@ -34,15 +34,15 @@ quantileExactHigh(level)(expr) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns the quantile of the specified level. [`Float64`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Returns the quantile of the specified level. [`Float64`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** diff --git a/reference/functions/aggregate-functions/reference/quantileExactInclusive.mdx b/core/reference/functions/aggregate-functions/reference/quantileExactInclusive.mdx similarity index 68% rename from reference/functions/aggregate-functions/reference/quantileExactInclusive.mdx rename to core/reference/functions/aggregate-functions/reference/quantileExactInclusive.mdx index db5dc140..dc0f0be7 100644 --- a/reference/functions/aggregate-functions/reference/quantileExactInclusive.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileExactInclusive.mdx @@ -10,9 +10,9 @@ doc_type: 'reference' Introduced in: v20.1.0 -Similar to [`quantileExact`](/reference/functions/aggregate-functions/reference/quantileExact), this computes the exact [quantile](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence. +Similar to [`quantileExact`](/core/reference/functions/aggregate-functions/reference/quantileExact), this computes the exact [quantile](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence. -This function is equivalent to [`quantileExact`](/reference/functions/aggregate-functions/reference/quantileExact) but uses the inclusive method for calculating quantiles, as described in the [R-7 method](https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample). +This function is equivalent to [`quantileExact`](/core/reference/functions/aggregate-functions/reference/quantileExact) but uses the inclusive method for calculating quantiles, as described in the [R-7 method](https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample). When using this function, the quantile is calculated such that the interpolation formula for a given quantile p takes the form: `x[floor((n-1)*p)] + ((n-1)*p - floor((n-1)*p)) * (x[floor((n-1)*p)+1] - x[floor((n-1)*p)])`, where x is the sorted array. @@ -20,7 +20,7 @@ To get the exact value, all the passed values are combined into an array, which The sorting algorithm's complexity is `O(N·log(N))`, where `N = std::distance(first, last)` comparisons. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [quantiles](/reference/functions/aggregate-functions/reference/quantiles) function. +In this case, use the [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) function. **Syntax** @@ -31,15 +31,15 @@ quantileExactInclusive(level)(expr) **Parameters** -- `level` — Level of quantile. Constant floating-point number from 0 to 1 (inclusive). We recommend using a `level` value in the range of `[0.01, 0.99]`. [`Float*`](/reference/data-types/float) +- `level` — Level of quantile. Constant floating-point number from 0 to 1 (inclusive). We recommend using a `level` value in the range of `[0.01, 0.99]`. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns the quantile of the specified level. [`Float64`](/reference/data-types/float) +Returns the quantile of the specified level. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/quantileExactLow.mdx b/core/reference/functions/aggregate-functions/reference/quantileExactLow.mdx similarity index 73% rename from reference/functions/aggregate-functions/reference/quantileExactLow.mdx rename to core/reference/functions/aggregate-functions/reference/quantileExactLow.mdx index db21b6b2..1be0ab7a 100644 --- a/reference/functions/aggregate-functions/reference/quantileExactLow.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileExactLow.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' Introduced in: v20.8.0 -Similar to [`quantileExact`](/reference/functions/aggregate-functions/reference/quantileExact), this computes the exact [quantile](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence. +Similar to [`quantileExact`](/core/reference/functions/aggregate-functions/reference/quantileExact), this computes the exact [quantile](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence. To get the exact value, all the passed values are combined into an array, which is then fully sorted. The sorting algorithm's complexity is `O(N·log(N))`, where `N = std::distance(first, last)` comparisons. @@ -21,7 +21,7 @@ Median is calculated similarly to the [median_low](https://docs.python.org/3/lib For all other levels, the element at the index corresponding to the value of `level * size_of_array` is returned. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [quantiles](/reference/functions/aggregate-functions/reference/quantiles) function. +In this case, use the [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) function. **Syntax** @@ -34,15 +34,15 @@ quantileExactLow(level)(expr) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns the quantile of the specified level. [`Float64`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Returns the quantile of the specified level. [`Float64`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** diff --git a/reference/functions/aggregate-functions/reference/quantileExactWeighted.mdx b/core/reference/functions/aggregate-functions/reference/quantileExactWeighted.mdx similarity index 66% rename from reference/functions/aggregate-functions/reference/quantileExactWeighted.mdx rename to core/reference/functions/aggregate-functions/reference/quantileExactWeighted.mdx index 94ab8b85..2d302d61 100644 --- a/reference/functions/aggregate-functions/reference/quantileExactWeighted.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileExactWeighted.mdx @@ -16,11 +16,11 @@ Exactly computes the [quantile](https://en.wikipedia.org/wiki/Quantile) of a num To get the exact value, all the passed values are combined into an array, which is then partially sorted. Each value is counted with its weight, as if it is present `weight` times. A hash table is used in the algorithm. -Because of this, if the passed values are frequently repeated, the function consumes less RAM than [`quantileExact`](/reference/functions/aggregate-functions/reference/quantileExact#quantileExact). +Because of this, if the passed values are frequently repeated, the function consumes less RAM than [`quantileExact`](/core/reference/functions/aggregate-functions/reference/quantileExact#quantileExact). You can use this function instead of `quantileExact` and specify the weight 1. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [quantiles](/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. +In this case, use the [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. **Syntax** @@ -33,16 +33,16 @@ quantileExactWeighted(level)(expr, weight) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) -- `weight` — Column with weights of sequence members. Weight is a number of value occurrences. [`UInt*`](/reference/data-types/int-uint) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) +- `weight` — Column with weights of sequence members. Weight is a number of value occurrences. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Quantile of the specified level. [`Float64`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Quantile of the specified level. [`Float64`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -74,5 +74,5 @@ SELECT quantileExactWeighted(n, val) FROM t; **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated.mdx b/core/reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated.mdx similarity index 79% rename from reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated.mdx rename to core/reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated.mdx index a4841036..494a5ca1 100644 --- a/reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated.mdx @@ -17,7 +17,7 @@ To get the interpolated value, all the passed values are combined into an array, Quantile interpolation is then performed using the [weighted percentile method](https://en.wikipedia.org/wiki/Percentile#The_weighted_percentile_method) by building a cumulative distribution based on weights and then a linear interpolation is performed using the weights and the values to compute the quantiles. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [quantiles](/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. +In this case, use the [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. We strongly recommend using `quantileExactWeightedInterpolated` instead of `quantileInterpolatedWeighted` because `quantileExactWeightedInterpolated` is more accurate than `quantileInterpolatedWeighted`. See the example below for more details. @@ -33,16 +33,16 @@ quantileExactWeightedInterpolated(level)(expr, weight) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) -- `weight` — Column with weights of sequence members. Weight is a number of value occurrences. [`UInt*`](/reference/data-types/int-uint) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) +- `weight` — Column with weights of sequence members. Weight is a number of value occurrences. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Quantile of the specified level. [`Float64`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Quantile of the specified level. [`Float64`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -78,5 +78,5 @@ FROM numbers(9) **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantileGK.mdx b/core/reference/functions/aggregate-functions/reference/quantileGK.mdx similarity index 80% rename from reference/functions/aggregate-functions/reference/quantileGK.mdx rename to core/reference/functions/aggregate-functions/reference/quantileGK.mdx index c40b1946..f855d112 100644 --- a/reference/functions/aggregate-functions/reference/quantileGK.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileGK.mdx @@ -32,16 +32,16 @@ quantileGK(accuracy, level)(expr) **Parameters** -- `accuracy` — Accuracy of quantile. Constant positive integer. Larger accuracy value means less error. For example, if the accuracy argument is set to 100, the computed quantile will have an error no greater than 1% with high probability. There is a trade-off between the accuracy of the computed quantiles and the computational complexity of the algorithm. A larger accuracy requires more memory and computational resources to compute the quantile accurately, while a smaller accuracy argument allows for a faster and more memory-efficient computation but with a slightly lower accuracy. [`UInt*`](/reference/data-types/int-uint) -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `accuracy` — Accuracy of quantile. Constant positive integer. Larger accuracy value means less error. For example, if the accuracy argument is set to 100, the computed quantile will have an error no greater than 1% with high probability. There is a trade-off between the accuracy of the computed quantiles and the computational complexity of the algorithm. A larger accuracy requires more memory and computational resources to compute the quantile accurately, while a smaller accuracy argument allows for a faster and more memory-efficient computation but with a slightly lower accuracy. [`UInt*`](/core/reference/data-types/int-uint) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns the quantile of the specified level and accuracy. [`Float64`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Returns the quantile of the specified level and accuracy. [`Float64`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -73,5 +73,5 @@ SELECT quantileGK(100, 0.25)(number + 1) FROM numbers(1000); **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted.mdx b/core/reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted.mdx similarity index 71% rename from reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted.mdx rename to core/reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted.mdx index 391bdba7..affd2e4e 100644 --- a/reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted.mdx @@ -17,7 +17,7 @@ To get the interpolated value, all the passed values are combined into an array, Quantile interpolation is then performed using the [weighted percentile method](https://en.wikipedia.org/wiki/Percentile#The_weighted_percentile_method) by building a cumulative distribution based on weights and then a linear interpolation is performed using the weights and the values to compute the quantiles. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [`quantiles`](/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. +In this case, use the [`quantiles`](/core/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. **Syntax** @@ -30,16 +30,16 @@ quantileInterpolatedWeighted(level)(expr, weight) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) -- `weight` — Column with weights of sequence members. Weight is a number of value occurrences. [`UInt*`](/reference/data-types/int-uint) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) +- `weight` — Column with weights of sequence members. Weight is a number of value occurrences. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Quantile of the specified level. [`Float64`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Quantile of the specified level. [`Float64`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -66,5 +66,5 @@ SELECT quantileInterpolatedWeighted(n, val) FROM t; **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantilePrometheusHistogram.mdx b/core/reference/functions/aggregate-functions/reference/quantilePrometheusHistogram.mdx similarity index 79% rename from reference/functions/aggregate-functions/reference/quantilePrometheusHistogram.mdx rename to core/reference/functions/aggregate-functions/reference/quantilePrometheusHistogram.mdx index 416157b7..0532e0fd 100644 --- a/reference/functions/aggregate-functions/reference/quantilePrometheusHistogram.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantilePrometheusHistogram.mdx @@ -17,8 +17,8 @@ Quantile interpolation is then performed similarly to the PromQL [histogram_quan **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) **Syntax** @@ -29,16 +29,16 @@ quantilePrometheusHistogram(level)(bucket_upper_bound, cumulative_bucket_value) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: `0.5`. At `level=0.5` the function calculates [median](https://en.wikipedia.org/wiki/Median). [`Float64`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: `0.5`. At `level=0.5` the function calculates [median](https://en.wikipedia.org/wiki/Median). [`Float64`](/core/reference/data-types/float) **Arguments** -- `bucket_upper_bound` — Upper bounds of the histogram buckets. The highest bucket must have an upper bound of `+Inf`. [`Float64`](/reference/data-types/float) -- `cumulative_bucket_value` — Cumulative values of the histogram buckets. Values must be monotonically increasing as the bucket upper bound increases. [`(U)Int*`](/reference/data-types/int-uint) or [`Float64`](/reference/data-types/float) +- `bucket_upper_bound` — Upper bounds of the histogram buckets. The highest bucket must have an upper bound of `+Inf`. [`Float64`](/core/reference/data-types/float) +- `cumulative_bucket_value` — Cumulative values of the histogram buckets. Values must be monotonically increasing as the bucket upper bound increases. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float64`](/core/reference/data-types/float) **Returned value** -Returns the quantile of the specified level. [`Float64`](/reference/data-types/float) +Returns the quantile of the specified level. [`Float64`](/core/reference/data-types/float) **Examples** @@ -59,5 +59,5 @@ FROM VALUES('bucket_upper_bound Float64, cumulative_bucket_value UInt64', (0, 6) **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantileTDigest.mdx b/core/reference/functions/aggregate-functions/reference/quantileTDigest.mdx similarity index 61% rename from reference/functions/aggregate-functions/reference/quantileTDigest.mdx rename to core/reference/functions/aggregate-functions/reference/quantileTDigest.mdx index a61733b9..4acea8b6 100644 --- a/reference/functions/aggregate-functions/reference/quantileTDigest.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileTDigest.mdx @@ -15,9 +15,9 @@ Computes an approximate [quantile](https://en.wikipedia.org/wiki/Quantile) of a Memory consumption is `log(n)`, where `n` is a number of values. The result depends on the order of running the query, and is nondeterministic. -The performance of the function is lower than performance of [`quantile`](/reference/functions/aggregate-functions/reference/quantile) or [`quantileTiming`](/reference/functions/aggregate-functions/reference/quantileTiming). In terms of the ratio of State size to precision, this function is much better than `quantile`. +The performance of the function is lower than performance of [`quantile`](/core/reference/functions/aggregate-functions/reference/quantile) or [`quantileTiming`](/core/reference/functions/aggregate-functions/reference/quantileTiming). In terms of the ratio of State size to precision, this function is much better than `quantile`. -When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). In this case, use the [`quantiles`](/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. +When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). In this case, use the [`quantiles`](/core/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. **Syntax** @@ -30,15 +30,15 @@ quantileTDigest(level)(expr) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Approximate quantile of the specified level. [`Float64`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Approximate quantile of the specified level. [`Float64`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -58,5 +58,5 @@ SELECT quantileTDigest(number) FROM numbers(10); **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantileTDigestWeighted.mdx b/core/reference/functions/aggregate-functions/reference/quantileTDigestWeighted.mdx similarity index 66% rename from reference/functions/aggregate-functions/reference/quantileTDigestWeighted.mdx rename to core/reference/functions/aggregate-functions/reference/quantileTDigestWeighted.mdx index adcaa784..59508ffa 100644 --- a/reference/functions/aggregate-functions/reference/quantileTDigestWeighted.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileTDigestWeighted.mdx @@ -17,17 +17,17 @@ The function takes into account the weight of each sequence member. The maximum error is 1%. Memory consumption is `log(n)`, where `n` is a number of values. -The performance of the function is lower than performance of [`quantile`](/reference/functions/aggregate-functions/reference/quantile) or [`quantileTiming`](/reference/functions/aggregate-functions/reference/quantileTiming). +The performance of the function is lower than performance of [`quantile`](/core/reference/functions/aggregate-functions/reference/quantile) or [`quantileTiming`](/core/reference/functions/aggregate-functions/reference/quantileTiming). In terms of the ratio of State size to precision, this function is much better than `quantile`. The result depends on the order of running the query, and is nondeterministic. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [`quantiles`](/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. +In this case, use the [`quantiles`](/core/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. Using `quantileTDigestWeighted` [is not recommended for tiny data sets](https://github.com/tdunning/t-digest/issues/167#issuecomment-828650275) and can lead to significant error. -In this case, consider possibility of using [`quantileTDigest`](/reference/functions/aggregate-functions/reference/quantileTDigest) instead. +In this case, consider possibility of using [`quantileTDigest`](/core/reference/functions/aggregate-functions/reference/quantileTDigest) instead. @@ -41,16 +41,16 @@ quantileTDigestWeighted(level)(expr, weight) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) -- `weight` — Column with weights of sequence elements. Weight is a number of value occurrences. [`UInt*`](/reference/data-types/int-uint) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) +- `weight` — Column with weights of sequence elements. Weight is a number of value occurrences. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Approximate quantile of the specified level. [`Float64`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +Approximate quantile of the specified level. [`Float64`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -70,5 +70,5 @@ SELECT quantileTDigestWeighted(number, 1) FROM numbers(10); **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantileTiming.mdx b/core/reference/functions/aggregate-functions/reference/quantileTiming.mdx similarity index 75% rename from reference/functions/aggregate-functions/reference/quantileTiming.mdx rename to core/reference/functions/aggregate-functions/reference/quantileTiming.mdx index c221b407..085311d3 100644 --- a/reference/functions/aggregate-functions/reference/quantileTiming.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileTiming.mdx @@ -17,7 +17,7 @@ The result is deterministic (it does not depend on the query processing order). The function is optimized for working with sequences which describe distributions like loading web pages times or backend response times. When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). -In this case, use the [`quantiles`](/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. +In this case, use the [`quantiles`](/core/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. **Accuracy** @@ -29,11 +29,11 @@ The calculation is accurate if: Otherwise, the result of the calculation is rounded to the nearest multiple of 16 ms. -For calculating page loading time quantiles, this function is more effective and accurate than [`quantile`](/reference/functions/aggregate-functions/reference/quantile). +For calculating page loading time quantiles, this function is more effective and accurate than [`quantile`](/core/reference/functions/aggregate-functions/reference/quantile). -If no values are passed to the function (when using `quantileTimingIf`), [NaN](/reference/data-types/float#nan-and-inf) is returned. The purpose of this is to differentiate these cases from cases that result in zero. See [ORDER BY clause](/reference/statements/select/order-by) for notes on sorting `NaN` values. +If no values are passed to the function (when using `quantileTimingIf`), [NaN](/core/reference/data-types/float#nan-and-inf) is returned. The purpose of this is to differentiate these cases from cases that result in zero. See [ORDER BY clause](/core/reference/statements/select/order-by) for notes on sorting `NaN` values. @@ -47,15 +47,15 @@ quantileTiming(level)(expr) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over a column values returning a Float*-type number. If negative values are passed to the function, the behavior is undefined. If the value is greater than 30,000 (a page loading time of more than 30 seconds), it is assumed to be 30,000. [`Float*`](/reference/data-types/float) +- `expr` — Expression over a column values returning a Float*-type number. If negative values are passed to the function, the behavior is undefined. If the value is greater than 30,000 (a page loading time of more than 30 seconds), it is assumed to be 30,000. [`Float*`](/core/reference/data-types/float) **Returned value** -Quantile of the specified level. If no values are passed to the function (when using `quantileTimingIf`), NaN is returned. The purpose of this is to differentiate these cases from cases that result in zero. [`Float32`](/reference/data-types/float) +Quantile of the specified level. If no values are passed to the function (when using `quantileTimingIf`), NaN is returned. The purpose of this is to differentiate these cases from cases that result in zero. [`Float32`](/core/reference/data-types/float) **Examples** @@ -78,5 +78,5 @@ SELECT quantileTiming(response_time) FROM t; **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantileTimingWeighted.mdx b/core/reference/functions/aggregate-functions/reference/quantileTimingWeighted.mdx similarity index 78% rename from reference/functions/aggregate-functions/reference/quantileTimingWeighted.mdx rename to core/reference/functions/aggregate-functions/reference/quantileTimingWeighted.mdx index 2815f71e..2b3dd615 100644 --- a/reference/functions/aggregate-functions/reference/quantileTimingWeighted.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileTimingWeighted.mdx @@ -15,7 +15,7 @@ With the determined precision computes the [quantile](https://en.wikipedia.org/w The result is deterministic (it does not depend on the query processing order). The function is optimized for working with sequences which describe distributions like loading web pages times or backend response times. -When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). In this case, use the [`quantiles`](/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. +When using multiple `quantile*` functions with different levels in a query, the internal states are not combined (that is, the query works less efficiently than it could). In this case, use the [`quantiles`](/core/reference/functions/aggregate-functions/reference/quantiles#quantiles) function. **Accuracy** @@ -27,11 +27,11 @@ The calculation is accurate if: Otherwise, the result of the calculation is rounded to the nearest multiple of 16 ms. -For calculating page loading time quantiles, this function is more effective and accurate than [`quantile`](/reference/functions/aggregate-functions/reference/quantile). +For calculating page loading time quantiles, this function is more effective and accurate than [`quantile`](/core/reference/functions/aggregate-functions/reference/quantile). -If no values are passed to the function (when using `quantileTimingIf`), [NaN](/reference/data-types/float#nan-and-inf) is returned. The purpose of this is to differentiate these cases from cases that result in zero. See [ORDER BY clause](/reference/statements/select/order-by) for notes on sorting `NaN` values. +If no values are passed to the function (when using `quantileTimingIf`), [NaN](/core/reference/data-types/float#nan-and-inf) is returned. The purpose of this is to differentiate these cases from cases that result in zero. See [ORDER BY clause](/core/reference/statements/select/order-by) for notes on sorting `NaN` values. @@ -45,16 +45,16 @@ quantileTimingWeighted(level)(expr, weight) **Parameters** -- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/reference/data-types/float) +- `level` — Optional. Level of quantile. Constant floating-point number from 0 to 1. We recommend using a `level` value in the range of `[0.01, 0.99]`. Default value: 0.5. At `level=0.5` the function calculates median. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over a column values returning a Float*-type number. If negative values are passed to the function, the behavior is undefined. If the value is greater than 30,000 (a page loading time of more than 30 seconds), it is assumed to be 30,000. [`Float*`](/reference/data-types/float) -- `weight` — Column with weights of sequence elements. Weight is a number of value occurrences. [`UInt*`](/reference/data-types/int-uint) +- `expr` — Expression over a column values returning a Float*-type number. If negative values are passed to the function, the behavior is undefined. If the value is greater than 30,000 (a page loading time of more than 30 seconds), it is assumed to be 30,000. [`Float*`](/core/reference/data-types/float) +- `weight` — Column with weights of sequence elements. Weight is a number of value occurrences. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Quantile of the specified level. [`Float32`](/reference/data-types/float) +Quantile of the specified level. [`Float32`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/quantileddsketch.mdx b/core/reference/functions/aggregate-functions/reference/quantileddsketch.mdx similarity index 76% rename from reference/functions/aggregate-functions/reference/quantileddsketch.mdx rename to core/reference/functions/aggregate-functions/reference/quantileddsketch.mdx index 02d3c956..374cd65b 100644 --- a/reference/functions/aggregate-functions/reference/quantileddsketch.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantileddsketch.mdx @@ -24,16 +24,16 @@ quantileDD(relative_accuracy, [level])(expr) **Parameters** -- `relative_accuracy` — Relative accuracy of the quantile. Possible values are in the range from 0 to 1. The size of the sketch depends on the range of the data and the relative accuracy. The larger the range and the smaller the relative accuracy, the larger the sketch. The rough memory size of the sketch is `log(max_value/min_value)/relative_accuracy`. The recommended value is 0.001 or higher. [`Float*`](/reference/data-types/float) -- `level` — Optional. Level of quantile. Possible values are in the range from 0 to 1. Default value: 0.5. [`Float*`](/reference/data-types/float) +- `relative_accuracy` — Relative accuracy of the quantile. Possible values are in the range from 0 to 1. The size of the sketch depends on the range of the data and the relative accuracy. The larger the range and the smaller the relative accuracy, the larger the sketch. The rough memory size of the sketch is `log(max_value/min_value)/relative_accuracy`. The recommended value is 0.001 or higher. [`Float*`](/core/reference/data-types/float) +- `level` — Optional. Level of quantile. Possible values are in the range from 0 to 1. Default value: 0.5. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Column with numeric data. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `expr` — Column with numeric data. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Approximate quantile of the specified level. [`Float64`](/reference/data-types/float) +Approximate quantile of the specified level. [`Float64`](/core/reference/data-types/float) **Examples** @@ -56,5 +56,5 @@ SELECT quantileDD(0.01, 0.75)(a), quantileDD(0.01, 0.75)(b) FROM example_table; **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/quantiles.mdx b/core/reference/functions/aggregate-functions/reference/quantiles.mdx similarity index 75% rename from reference/functions/aggregate-functions/reference/quantiles.mdx rename to core/reference/functions/aggregate-functions/reference/quantiles.mdx index f51006b4..d59c6369 100644 --- a/reference/functions/aggregate-functions/reference/quantiles.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantiles.mdx @@ -26,15 +26,15 @@ quantiles(level1, level2, ...)(expr) **Parameters** -- `level` — Levels of quantiles. One or more constant floating-point numbers from 0 to 1. We recommend using `level` values in the range of `[0.01, 0.99]`. [`Float*`](/reference/data-types/float) +- `level` — Levels of quantiles. One or more constant floating-point numbers from 0 to 1. We recommend using `level` values in the range of `[0.01, 0.99]`. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Array of approximate quantiles of the specified levels in the same order as the levels were specified. [`Array(Float64)`](/reference/data-types/array) or [`Array(Date)`](/reference/data-types/array) or [`Array(DateTime)`](/reference/data-types/array) +Array of approximate quantiles of the specified levels in the same order as the levels were specified. [`Array(Float64)`](/core/reference/data-types/array) or [`Array(Date)`](/core/reference/data-types/array) or [`Array(DateTime)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/quantilesExactExclusive.mdx b/core/reference/functions/aggregate-functions/reference/quantilesExactExclusive.mdx similarity index 74% rename from reference/functions/aggregate-functions/reference/quantilesExactExclusive.mdx rename to core/reference/functions/aggregate-functions/reference/quantilesExactExclusive.mdx index 3ba62ba9..ffbf7c83 100644 --- a/reference/functions/aggregate-functions/reference/quantilesExactExclusive.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantilesExactExclusive.mdx @@ -12,7 +12,7 @@ Introduced in: v20.1.0 Exactly computes multiple [quantiles](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence at different levels simultaneously using the exclusive method. -This function is equivalent to [`quantileExactExclusive`](/reference/functions/aggregate-functions/reference/quantileExactExclusive) but allows computing multiple quantile levels in a single pass, which is more efficient than calling individual quantile functions. +This function is equivalent to [`quantileExactExclusive`](/core/reference/functions/aggregate-functions/reference/quantileExactExclusive) but allows computing multiple quantile levels in a single pass, which is more efficient than calling individual quantile functions. This function uses the exclusive method for calculating quantiles, as described in the [R-6 method](https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample). This is equivalent to [PERCENTILE.EXC](https://support.microsoft.com/en-us/office/percentile-exc-function-bbaa7204-e9e1-4010-85bf-c31dc5dce4ba) Excel function. @@ -29,15 +29,15 @@ quantilesExactExclusive(level1, level2, ...)(expr) **Parameters** -- `level` — Levels of quantiles. Constant floating-point numbers from 0 to 1 (exclusive). We recommend using `level` values in the range of `(0.01, 0.99)`. [`Float*`](/reference/data-types/float) +- `level` — Levels of quantiles. Constant floating-point numbers from 0 to 1 (exclusive). We recommend using `level` values in the range of `(0.01, 0.99)`. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Array of quantiles of the specified levels in the same order as the levels were specified. [`Array(Float64)`](/reference/data-types/array) +Array of quantiles of the specified levels in the same order as the levels were specified. [`Array(Float64)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/quantilesExactInclusive.mdx b/core/reference/functions/aggregate-functions/reference/quantilesExactInclusive.mdx similarity index 74% rename from reference/functions/aggregate-functions/reference/quantilesExactInclusive.mdx rename to core/reference/functions/aggregate-functions/reference/quantilesExactInclusive.mdx index 0cc111e6..2e2113c1 100644 --- a/reference/functions/aggregate-functions/reference/quantilesExactInclusive.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantilesExactInclusive.mdx @@ -12,7 +12,7 @@ Introduced in: v20.1.0 Exactly computes multiple [quantiles](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence at different levels simultaneously using the inclusive method. -This function is equivalent to [`quantileExactInclusive`](/reference/functions/aggregate-functions/reference/quantileExactInclusive) but allows computing multiple quantile levels in a single pass, which is more efficient than calling individual quantile functions. +This function is equivalent to [`quantileExactInclusive`](/core/reference/functions/aggregate-functions/reference/quantileExactInclusive) but allows computing multiple quantile levels in a single pass, which is more efficient than calling individual quantile functions. This function uses the inclusive method for calculating quantiles, as described in the [R-7 method](https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample). This is equivalent to [PERCENTILE.INC](https://support.microsoft.com/en-us/office/percentile-inc-function-680f9539-45eb-410b-9a5e-c1355e5fe2ed) Excel function. @@ -29,15 +29,15 @@ quantilesExactInclusive(level1, level2, ...)(expr) **Parameters** -- `level` — Levels of quantiles. Constant floating-point numbers from 0 to 1 (inclusive). We recommend using `level` values in the range of `[0.01, 0.99]`. [`Float*`](/reference/data-types/float) +- `level` — Levels of quantiles. Constant floating-point numbers from 0 to 1 (inclusive). We recommend using `level` values in the range of `[0.01, 0.99]`. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Array of quantiles of the specified levels in the same order as the levels were specified. [`Array(Float64)`](/reference/data-types/array) +Array of quantiles of the specified levels in the same order as the levels were specified. [`Array(Float64)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/quantilesGK.mdx b/core/reference/functions/aggregate-functions/reference/quantilesGK.mdx similarity index 74% rename from reference/functions/aggregate-functions/reference/quantilesGK.mdx rename to core/reference/functions/aggregate-functions/reference/quantilesGK.mdx index 1b3cdadd..cf897762 100644 --- a/reference/functions/aggregate-functions/reference/quantilesGK.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantilesGK.mdx @@ -12,7 +12,7 @@ Introduced in: v23.4.0 Computes multiple [quantiles](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence at different levels simultaneously using the [Greenwald-Khanna](http://infolab.stanford.edu/~datar/courses/cs361a/papers/quantiles.pdf) algorithm. -This function works similarly with [`quantileGK`](/reference/functions/aggregate-functions/reference/quantileGK) but allows computing multiple quantile levels in a single pass, which is more efficient than calling individual quantile functions. +This function works similarly with [`quantileGK`](/core/reference/functions/aggregate-functions/reference/quantileGK) but allows computing multiple quantile levels in a single pass, which is more efficient than calling individual quantile functions. The Greenwald-Khanna algorithm is an algorithm used to compute quantiles on a stream of data in a highly efficient manner. It was introduced by Michael Greenwald and Sanjeev Khanna in 2001. @@ -28,16 +28,16 @@ quantilesGK(accuracy, level1, level2, ...)(expr) **Parameters** -- `accuracy` — Accuracy of quantiles. Constant positive integer. Larger accuracy value means less error. For example, if the accuracy argument is set to 100, the computed quantiles will have an error no greater than 1% with high probability. There is a trade-off between the accuracy of the computed quantiles and the computational complexity of the algorithm. [`UInt*`](/reference/data-types/int-uint) -- `level` — Levels of quantiles. One or more constant floating-point numbers from 0 to 1. [`Float*`](/reference/data-types/float) +- `accuracy` — Accuracy of quantiles. Constant positive integer. Larger accuracy value means less error. For example, if the accuracy argument is set to 100, the computed quantiles will have an error no greater than 1% with high probability. There is a trade-off between the accuracy of the computed quantiles and the computational complexity of the algorithm. [`UInt*`](/core/reference/data-types/int-uint) +- `level` — Levels of quantiles. One or more constant floating-point numbers from 0 to 1. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression over the column values resulting in numeric data types, Date or DateTime. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Array of quantiles of the specified levels in the same order as the levels were specified. [`Array(Float64)`](/reference/data-types/array) or [`Array(Date)`](/reference/data-types/array) or [`Array(DateTime)`](/reference/data-types/array) +Array of quantiles of the specified levels in the same order as the levels were specified. [`Array(Float64)`](/core/reference/data-types/array) or [`Array(Date)`](/core/reference/data-types/array) or [`Array(DateTime)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/quantilesTimingWeighted.mdx b/core/reference/functions/aggregate-functions/reference/quantilesTimingWeighted.mdx similarity index 74% rename from reference/functions/aggregate-functions/reference/quantilesTimingWeighted.mdx rename to core/reference/functions/aggregate-functions/reference/quantilesTimingWeighted.mdx index cef406db..c49028b7 100644 --- a/reference/functions/aggregate-functions/reference/quantilesTimingWeighted.mdx +++ b/core/reference/functions/aggregate-functions/reference/quantilesTimingWeighted.mdx @@ -13,7 +13,7 @@ Introduced in: v1.1.0 Computes multiple [quantiles](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence at different levels simultaneously with determined precision, taking into account the weight of each sequence member. -This function is equivalent to [`quantileTimingWeighted`](/reference/functions/aggregate-functions/reference/quantileTimingWeighted) but allows computing multiple quantile levels in a single pass, which is more efficient than calling individual quantile functions. +This function is equivalent to [`quantileTimingWeighted`](/core/reference/functions/aggregate-functions/reference/quantileTimingWeighted) but allows computing multiple quantile levels in a single pass, which is more efficient than calling individual quantile functions. The result is deterministic (it does not depend on the query processing order). The function is optimized for working with sequences which describe distributions like loading web pages times or backend response times. @@ -27,7 +27,7 @@ The calculation is accurate if: Otherwise, the result of the calculation is rounded to the nearest multiple of 16 ms. -For calculating page loading time quantiles, this function is more effective and accurate than [`quantiles`](/reference/functions/aggregate-functions/reference/quantiles). +For calculating page loading time quantiles, this function is more effective and accurate than [`quantiles`](/core/reference/functions/aggregate-functions/reference/quantiles). @@ -39,16 +39,16 @@ quantilesTimingWeighted(level1, level2, ...)(expr, weight) **Parameters** -- `level` — Levels of quantiles. One or more constant floating-point numbers from 0 to 1. We recommend using `level` values in the range of `[0.01, 0.99]`. [`Float*`](/reference/data-types/float) +- `level` — Levels of quantiles. One or more constant floating-point numbers from 0 to 1. We recommend using `level` values in the range of `[0.01, 0.99]`. [`Float*`](/core/reference/data-types/float) **Arguments** -- `expr` — Expression over a column values returning a Float*-type number. If negative values are passed to the function, the behavior is undefined. If the value is greater than 30,000 (a page loading time of more than 30 seconds), it is assumed to be 30,000. [`Float*`](/reference/data-types/float) -- `weight` — Column with weights of sequence elements. Weight is a number of value occurrences. [`UInt*`](/reference/data-types/int-uint) +- `expr` — Expression over a column values returning a Float*-type number. If negative values are passed to the function, the behavior is undefined. If the value is greater than 30,000 (a page loading time of more than 30 seconds), it is assumed to be 30,000. [`Float*`](/core/reference/data-types/float) +- `weight` — Column with weights of sequence elements. Weight is a number of value occurrences. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Array of quantiles of the specified levels in the same order as the levels were specified. [`Array(Float32)`](/reference/data-types/array) +Array of quantiles of the specified levels in the same order as the levels were specified. [`Array(Float32)`](/core/reference/data-types/array) **Examples** @@ -68,5 +68,5 @@ SELECT quantilesTimingWeighted(0.5, 0.99)(response_time, weight) FROM t; **See Also** -- [median](/reference/functions/aggregate-functions/reference/median) -- [quantiles](/reference/functions/aggregate-functions/reference/quantiles) +- [median](/core/reference/functions/aggregate-functions/reference/median) +- [quantiles](/core/reference/functions/aggregate-functions/reference/quantiles) diff --git a/reference/functions/aggregate-functions/reference/rankCorr.mdx b/core/reference/functions/aggregate-functions/reference/rankCorr.mdx similarity index 90% rename from reference/functions/aggregate-functions/reference/rankCorr.mdx rename to core/reference/functions/aggregate-functions/reference/rankCorr.mdx index bb07767b..499b0035 100644 --- a/reference/functions/aggregate-functions/reference/rankCorr.mdx +++ b/core/reference/functions/aggregate-functions/reference/rankCorr.mdx @@ -27,12 +27,12 @@ rankCorr(x, y) **Arguments** -- `x` — Arbitrary value. [`Float*`](/reference/data-types/float) -- `y` — Arbitrary value. [`Float*`](/reference/data-types/float) +- `x` — Arbitrary value. [`Float*`](/core/reference/data-types/float) +- `y` — Arbitrary value. [`Float*`](/core/reference/data-types/float) **Returned value** -Returns a rank correlation coefficient of the ranks of x and y. The value ranges from -1 to +1. [`Float64`](/reference/data-types/float) +Returns a rank correlation coefficient of the ranks of x and y. The value ranges from -1 to +1. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/simpleLinearRegression.mdx b/core/reference/functions/aggregate-functions/reference/simpleLinearRegression.mdx similarity index 89% rename from reference/functions/aggregate-functions/reference/simpleLinearRegression.mdx rename to core/reference/functions/aggregate-functions/reference/simpleLinearRegression.mdx index 175a96b6..cf674c08 100644 --- a/reference/functions/aggregate-functions/reference/simpleLinearRegression.mdx +++ b/core/reference/functions/aggregate-functions/reference/simpleLinearRegression.mdx @@ -21,12 +21,12 @@ simpleLinearRegression(x, y) **Arguments** -- `x` — Column with explanatory variable values. [`Float64`](/reference/data-types/float) -- `y` — Column with dependent variable values. [`Float64`](/reference/data-types/float) +- `x` — Column with explanatory variable values. [`Float64`](/core/reference/data-types/float) +- `y` — Column with dependent variable values. [`Float64`](/core/reference/data-types/float) **Returned value** -Returns constants `(k, b)` of the resulting line `y = k*x + b`. [`Tuple(Float64, Float64)`](/reference/data-types/tuple) +Returns constants `(k, b)` of the resulting line `y = k*x + b`. [`Tuple(Float64, Float64)`](/core/reference/data-types/tuple) **Examples** diff --git a/reference/functions/aggregate-functions/reference/singleValueOrNull.mdx b/core/reference/functions/aggregate-functions/reference/singleValueOrNull.mdx similarity index 91% rename from reference/functions/aggregate-functions/reference/singleValueOrNull.mdx rename to core/reference/functions/aggregate-functions/reference/singleValueOrNull.mdx index 0fc0a106..3ce73235 100644 --- a/reference/functions/aggregate-functions/reference/singleValueOrNull.mdx +++ b/core/reference/functions/aggregate-functions/reference/singleValueOrNull.mdx @@ -24,11 +24,11 @@ singleValueOrNull(x) **Arguments** -- `x` — A column of any data type except Map, Array or Tuple which cannot be of type Nullable. [`Any`](/reference/data-types) +- `x` — A column of any data type except Map, Array or Tuple which cannot be of type Nullable. [`Any`](/core/reference/data-types) **Returned value** -Returns the unique value if there is only one unique non-NULL value in `x`. Returns `NULL` if there are zero or at least two distinct values. [`Any`](/reference/data-types) or [`NULL`](/reference/syntax#null) +Returns the unique value if there is only one unique non-NULL value in `x`. Returns `NULL` if there are zero or at least two distinct values. [`Any`](/core/reference/data-types) or [`NULL`](/core/reference/syntax#null) **Examples** diff --git a/reference/functions/aggregate-functions/reference/skewPop.mdx b/core/reference/functions/aggregate-functions/reference/skewPop.mdx similarity index 81% rename from reference/functions/aggregate-functions/reference/skewPop.mdx rename to core/reference/functions/aggregate-functions/reference/skewPop.mdx index 4c8f08fe..004235ca 100644 --- a/reference/functions/aggregate-functions/reference/skewPop.mdx +++ b/core/reference/functions/aggregate-functions/reference/skewPop.mdx @@ -21,11 +21,11 @@ skewPop(expr) **Arguments** -- `expr` — An expression returning a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — An expression returning a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns the skewness of the given distribution. [`Float64`](/reference/data-types/float) +Returns the skewness of the given distribution. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/skewSamp.mdx b/core/reference/functions/aggregate-functions/reference/skewSamp.mdx similarity index 88% rename from reference/functions/aggregate-functions/reference/skewSamp.mdx rename to core/reference/functions/aggregate-functions/reference/skewSamp.mdx index 4f3baa45..7f30200e 100644 --- a/reference/functions/aggregate-functions/reference/skewSamp.mdx +++ b/core/reference/functions/aggregate-functions/reference/skewSamp.mdx @@ -23,11 +23,11 @@ skewSamp(expr) **Arguments** -- `expr` — An expression returning a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — An expression returning a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns the skewness of the given distribution. If `n <= 1` (`n` is the size of the sample), then the function returns `nan`. [`Float64`](/reference/data-types/float) +Returns the skewness of the given distribution. If `n <= 1` (`n` is the size of the sample), then the function returns `nan`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/sparkbar.mdx b/core/reference/functions/aggregate-functions/reference/sparkbar.mdx similarity index 78% rename from reference/functions/aggregate-functions/reference/sparkbar.mdx rename to core/reference/functions/aggregate-functions/reference/sparkbar.mdx index 12e5beca..c1d12000 100644 --- a/reference/functions/aggregate-functions/reference/sparkbar.mdx +++ b/core/reference/functions/aggregate-functions/reference/sparkbar.mdx @@ -30,18 +30,18 @@ sparkbar(buckets[, min_x, max_x])(x, y) **Parameters** -- `buckets` — The number of segments. [`(U)Int*`](/reference/data-types/int-uint) -- `min_x` — Optional. The interval start. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `max_x` — Optional. The interval end. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `buckets` — The number of segments. [`(U)Int*`](/core/reference/data-types/int-uint) +- `min_x` — Optional. The interval start. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `max_x` — Optional. The interval end. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Arguments** -- `x` — The field with values. [`const String`](/reference/data-types/string) -- `y` — The field with the frequency of values. [`const String`](/reference/data-types/string) +- `x` — The field with values. [`const String`](/core/reference/data-types/string) +- `y` — The field with the frequency of values. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the frequency histogram. [`String`](/reference/data-types/string) +Returns the frequency histogram. [`String`](/core/reference/data-types/string) **Examples** diff --git a/reference/functions/aggregate-functions/reference/stddevPop.mdx b/core/reference/functions/aggregate-functions/reference/stddevPop.mdx similarity index 70% rename from reference/functions/aggregate-functions/reference/stddevPop.mdx rename to core/reference/functions/aggregate-functions/reference/stddevPop.mdx index 15647755..7df500d5 100644 --- a/reference/functions/aggregate-functions/reference/stddevPop.mdx +++ b/core/reference/functions/aggregate-functions/reference/stddevPop.mdx @@ -11,10 +11,10 @@ doc_type: 'reference' Introduced in: v1.1.0 Returns the population standard deviation of a numeric data sequence. -The result is equal to the square root of [`varPop`](/reference/functions/aggregate-functions/reference/varPop). +The result is equal to the square root of [`varPop`](/core/reference/functions/aggregate-functions/reference/varPop). -This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`stddevPopStable`](/reference/functions/aggregate-functions/reference/stddevPopStable) function. It works slower but provides a lower computational error. +This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`stddevPopStable`](/core/reference/functions/aggregate-functions/reference/stddevPopStable) function. It works slower but provides a lower computational error. @@ -28,11 +28,11 @@ stddevPop(x) **Arguments** -- `x` — Population of values to find the standard deviation of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Population of values to find the standard deviation of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the square root of population variance of `x`. [`Float64`](/reference/data-types/float) +Returns the square root of population variance of `x`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/stddevPopStable.mdx b/core/reference/functions/aggregate-functions/reference/stddevPopStable.mdx similarity index 64% rename from reference/functions/aggregate-functions/reference/stddevPopStable.mdx rename to core/reference/functions/aggregate-functions/reference/stddevPopStable.mdx index 5d0f0305..5873cc98 100644 --- a/reference/functions/aggregate-functions/reference/stddevPopStable.mdx +++ b/core/reference/functions/aggregate-functions/reference/stddevPopStable.mdx @@ -11,7 +11,7 @@ doc_type: 'reference' Introduced in: v1.1.0 -The result is equal to the square root of [varPop](/reference/functions/aggregate-functions/reference/varPop). Unlike [stddevPop](/reference/functions/aggregate-functions/reference/stddevPop), this function uses a numerically stable algorithm. It works slower but provides a lower computational error. +The result is equal to the square root of [varPop](/core/reference/functions/aggregate-functions/reference/varPop). Unlike [stddevPop](/core/reference/functions/aggregate-functions/reference/stddevPop), this function uses a numerically stable algorithm. It works slower but provides a lower computational error. **Syntax** @@ -22,11 +22,11 @@ stddevPopStable(x) **Arguments** -- `x` — Population of values to find the standard deviation of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Population of values to find the standard deviation of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the square root of the variance of `x`. [`Float64`](/reference/data-types/float) +Returns the square root of the variance of `x`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/stddevSamp.mdx b/core/reference/functions/aggregate-functions/reference/stddevSamp.mdx similarity index 73% rename from reference/functions/aggregate-functions/reference/stddevSamp.mdx rename to core/reference/functions/aggregate-functions/reference/stddevSamp.mdx index e8673a2a..fbfb6895 100644 --- a/reference/functions/aggregate-functions/reference/stddevSamp.mdx +++ b/core/reference/functions/aggregate-functions/reference/stddevSamp.mdx @@ -11,11 +11,11 @@ doc_type: 'reference' Introduced in: v1.1.0 Returns the sample standard deviation of a numeric data sequence. -The result is equal to the square root of [`varSamp`](/reference/functions/aggregate-functions/reference/varSamp). +The result is equal to the square root of [`varSamp`](/core/reference/functions/aggregate-functions/reference/varSamp). This function uses a numerically unstable algorithm. -If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`stddevSampStable`](/reference/functions/aggregate-functions/reference/stddevSampStable) function. It works slower but provides a lower computational error. +If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`stddevSampStable`](/core/reference/functions/aggregate-functions/reference/stddevSampStable) function. It works slower but provides a lower computational error. @@ -29,11 +29,11 @@ stddevSamp(x) **Arguments** -- `x` — Values for which to find the square root of sample variance. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Values for which to find the square root of sample variance. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the square root of sample variance of `x`. [`Float64`](/reference/data-types/float) +Returns the square root of sample variance of `x`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/stddevSampStable.mdx b/core/reference/functions/aggregate-functions/reference/stddevSampStable.mdx similarity index 67% rename from reference/functions/aggregate-functions/reference/stddevSampStable.mdx rename to core/reference/functions/aggregate-functions/reference/stddevSampStable.mdx index dd46660f..dd70e92a 100644 --- a/reference/functions/aggregate-functions/reference/stddevSampStable.mdx +++ b/core/reference/functions/aggregate-functions/reference/stddevSampStable.mdx @@ -11,7 +11,7 @@ doc_type: 'reference' Introduced in: v1.1.0 -The result is equal to the square root of [varSamp](/reference/functions/aggregate-functions/reference/varSamp). Unlike [stddevSamp](/reference/functions/aggregate-functions/reference/stddevSamp) this function uses a numerically stable algorithm. It works slower but provides a lower computational error. +The result is equal to the square root of [varSamp](/core/reference/functions/aggregate-functions/reference/varSamp). Unlike [stddevSamp](/core/reference/functions/aggregate-functions/reference/stddevSamp) this function uses a numerically stable algorithm. It works slower but provides a lower computational error. **Syntax** @@ -22,11 +22,11 @@ stddevSampStable(x) **Arguments** -- `x` — Values for which to find the square root of sample variance. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Values for which to find the square root of sample variance. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the square root of sample variance of `x`. [`Float64`](/reference/data-types/float) +Returns the square root of sample variance of `x`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/stochasticLinearRegression.mdx b/core/reference/functions/aggregate-functions/reference/stochasticLinearRegression.mdx similarity index 89% rename from reference/functions/aggregate-functions/reference/stochasticLinearRegression.mdx rename to core/reference/functions/aggregate-functions/reference/stochasticLinearRegression.mdx index eab5b62c..1d021487 100644 --- a/reference/functions/aggregate-functions/reference/stochasticLinearRegression.mdx +++ b/core/reference/functions/aggregate-functions/reference/stochasticLinearRegression.mdx @@ -93,16 +93,16 @@ stochasticLinearRegression([learning_rate, l2_regularization_coef, mini_batch_si **Arguments** -- `learning_rate` — The coefficient on step length when gradient descent step is performed. A learning rate that is too big may cause infinite weights of the model. Default is `0.00001`. [`Float64`](/reference/data-types/float) -- `l2_regularization_coef` — L2 regularization coefficient which may help to prevent overfitting. Default is `0.1`. [`Float64`](/reference/data-types/float) -- `mini_batch_size` — Sets the number of elements which gradients will be computed and summed to perform one step of gradient descent. Pure stochastic descent uses one element, however having small batches (about 10 elements) makes gradient steps more stable. Default is `15`. [`UInt64`](/reference/data-types/int-uint) -- `method` — Method for updating weights: `Adam` (by default), `SGD`, `Momentum`, `Nesterov`. `Momentum` and `Nesterov` require slightly more computations and memory, however they happen to be useful in terms of speed of convergence and stability of stochastic gradient methods. [`const String`](/reference/data-types/string) -- `target` — Target value (dependent variable) to learn to predict. Must be numeric. [`Float*`](/reference/data-types/float) -- `x1, x2, ...` — Feature values (independent variables). All must be numeric. [`Float*`](/reference/data-types/float) +- `learning_rate` — The coefficient on step length when gradient descent step is performed. A learning rate that is too big may cause infinite weights of the model. Default is `0.00001`. [`Float64`](/core/reference/data-types/float) +- `l2_regularization_coef` — L2 regularization coefficient which may help to prevent overfitting. Default is `0.1`. [`Float64`](/core/reference/data-types/float) +- `mini_batch_size` — Sets the number of elements which gradients will be computed and summed to perform one step of gradient descent. Pure stochastic descent uses one element, however having small batches (about 10 elements) makes gradient steps more stable. Default is `15`. [`UInt64`](/core/reference/data-types/int-uint) +- `method` — Method for updating weights: `Adam` (by default), `SGD`, `Momentum`, `Nesterov`. `Momentum` and `Nesterov` require slightly more computations and memory, however they happen to be useful in terms of speed of convergence and stability of stochastic gradient methods. [`const String`](/core/reference/data-types/string) +- `target` — Target value (dependent variable) to learn to predict. Must be numeric. [`Float*`](/core/reference/data-types/float) +- `x1, x2, ...` — Feature values (independent variables). All must be numeric. [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the trained linear regression model weights. First values correspond to the parameters of the model, the last one is bias. Use `evalMLMethod` for predictions. [`Array(Float64)`](/reference/data-types/array) +Returns the trained linear regression model weights. First values correspond to the parameters of the model, the last one is bias. Use `evalMLMethod` for predictions. [`Array(Float64)`](/core/reference/data-types/array) **Examples** @@ -145,5 +145,5 @@ Returns model weights without saving state **See Also** -- [stochasticLogisticRegression](/reference/functions/aggregate-functions/reference/stochasticLogisticRegression) +- [stochasticLogisticRegression](/core/reference/functions/aggregate-functions/reference/stochasticLogisticRegression) - [Difference between linear and logistic regressions](https://stackoverflow.com/questions/12146914/what-is-the-difference-between-linear-regression-and-logistic-regression) diff --git a/reference/functions/aggregate-functions/reference/stochasticLogisticRegression.mdx b/core/reference/functions/aggregate-functions/reference/stochasticLogisticRegression.mdx similarity index 86% rename from reference/functions/aggregate-functions/reference/stochasticLogisticRegression.mdx rename to core/reference/functions/aggregate-functions/reference/stochasticLogisticRegression.mdx index 5d7fadf8..b1f0aee1 100644 --- a/reference/functions/aggregate-functions/reference/stochasticLogisticRegression.mdx +++ b/core/reference/functions/aggregate-functions/reference/stochasticLogisticRegression.mdx @@ -13,7 +13,7 @@ doc_type: 'reference' Introduced in: v20.1.0 This function implements stochastic logistic regression. -It can be used for binary classification problem, supports the same custom parameters as [`stochasticLinearRegression`](/reference/functions/aggregate-functions/reference/stochasticLinearRegression) and works the same way. +It can be used for binary classification problem, supports the same custom parameters as [`stochasticLinearRegression`](/core/reference/functions/aggregate-functions/reference/stochasticLinearRegression) and works the same way. **Usage** @@ -75,16 +75,16 @@ stochasticLogisticRegression([learning_rate, l2_regularization_coef, mini_batch_ **Arguments** -- `learning_rate` — The coefficient on step length when gradient descent step is performed. A learning rate that is too big may cause infinite weights of the model. Default is `0.00001`. [`Float64`](/reference/data-types/float) -- `l2_regularization_coef` — L2 regularization coefficient which may help to prevent overfitting. Default is `0.1`. [`Float64`](/reference/data-types/float) -- `mini_batch_size` — Sets the number of elements which gradients will be computed and summed to perform one step of gradient descent. Pure stochastic descent uses one element, however having small batches (about 10 elements) makes gradient steps more stable. Default is `15`. [`UInt64`](/reference/data-types/int-uint) -- `method` — Method for updating weights: `Adam` (by default), `SGD`, `Momentum`, `Nesterov`. `Momentum` and `Nesterov` require a little bit more computations and memory, however they happen to be useful in terms of speed of convergence and stability of stochastic gradient methods. [`String`](/reference/data-types/string) -- `target` — Target binary classification labels. Must be in range [-1, 1]. [`Float`](/reference/data-types/float) -- `x1, x2, ...` — Feature values (independent variables). All must be numeric. [`Float`](/reference/data-types/float) +- `learning_rate` — The coefficient on step length when gradient descent step is performed. A learning rate that is too big may cause infinite weights of the model. Default is `0.00001`. [`Float64`](/core/reference/data-types/float) +- `l2_regularization_coef` — L2 regularization coefficient which may help to prevent overfitting. Default is `0.1`. [`Float64`](/core/reference/data-types/float) +- `mini_batch_size` — Sets the number of elements which gradients will be computed and summed to perform one step of gradient descent. Pure stochastic descent uses one element, however having small batches (about 10 elements) makes gradient steps more stable. Default is `15`. [`UInt64`](/core/reference/data-types/int-uint) +- `method` — Method for updating weights: `Adam` (by default), `SGD`, `Momentum`, `Nesterov`. `Momentum` and `Nesterov` require a little bit more computations and memory, however they happen to be useful in terms of speed of convergence and stability of stochastic gradient methods. [`String`](/core/reference/data-types/string) +- `target` — Target binary classification labels. Must be in range [-1, 1]. [`Float`](/core/reference/data-types/float) +- `x1, x2, ...` — Feature values (independent variables). All must be numeric. [`Float`](/core/reference/data-types/float) **Returned value** -Returns the trained logistic regression model weights. Use `evalMLMethod` for predictions which returns probabilities of object having label `1`. [`Array(Float64)`](/reference/data-types/array) +Returns the trained logistic regression model weights. Use `evalMLMethod` for predictions which returns probabilities of object having label `1`. [`Array(Float64)`](/core/reference/data-types/array) **Examples** @@ -133,5 +133,5 @@ Returns binary classification labels using probability threshold **See Also** -- [stochasticLinearRegression](/reference/functions/aggregate-functions/reference/stochasticLogisticRegression) +- [stochasticLinearRegression](/core/reference/functions/aggregate-functions/reference/stochasticLogisticRegression) - [Difference between linear and logistic regressions.](https://stackoverflow.com/questions/12146914/what-is-the-difference-between-linear-regression-and-logistic-regression) diff --git a/reference/functions/aggregate-functions/reference/studentTTest.mdx b/core/reference/functions/aggregate-functions/reference/studentTTest.mdx similarity index 71% rename from reference/functions/aggregate-functions/reference/studentTTest.mdx rename to core/reference/functions/aggregate-functions/reference/studentTTest.mdx index e547bb0b..5ffab8e7 100644 --- a/reference/functions/aggregate-functions/reference/studentTTest.mdx +++ b/core/reference/functions/aggregate-functions/reference/studentTTest.mdx @@ -19,7 +19,7 @@ The null hypothesis is that means of populations are equal. Normal distribution **See Also** - [Student's t-test](https://en.wikipedia.org/wiki/Student%27s_t-test) -- [welchTTest function](/reference/functions/aggregate-functions/reference/welchTTest) +- [welchTTest function](/core/reference/functions/aggregate-functions/reference/welchTTest) **Syntax** @@ -30,16 +30,16 @@ studentTTest([confidence_level])(sample_data, sample_index) **Parameters** -- `confidence_level` — Optional. Confidence level in order to calculate confidence intervals. [`Float`](/reference/data-types/float) +- `confidence_level` — Optional. Confidence level in order to calculate confidence intervals. [`Float`](/core/reference/data-types/float) **Arguments** -- `sample_data` — Sample data. [`Integer`](/reference/data-types/int-uint) or [`Float`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `sample_index` — Sample index. [`Integer`](/reference/data-types/int-uint) +- `sample_data` — Sample data. [`Integer`](/core/reference/data-types/int-uint) or [`Float`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `sample_index` — Sample index. [`Integer`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two or four elements (if the optional `confidence_level` is specified): calculated t-statistic, calculated p-value, [calculated confidence-interval-low], [calculated confidence-interval-high]. [`Tuple(Float64, Float64)`](/reference/data-types/tuple) or [`Tuple(Float64, Float64, Float64, Float64)`](/reference/data-types/tuple) +Returns a tuple with two or four elements (if the optional `confidence_level` is specified): calculated t-statistic, calculated p-value, [calculated confidence-interval-low], [calculated confidence-interval-high]. [`Tuple(Float64, Float64)`](/core/reference/data-types/tuple) or [`Tuple(Float64, Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** @@ -60,4 +60,4 @@ SELECT studentTTest(sample_data, sample_index) FROM student_ttest; **See Also** - [Student's t-test](https://en.wikipedia.org/wiki/Student%27s_t-test) -- [welchTTest function](/reference/functions/aggregate-functions/reference/welchTTest) +- [welchTTest function](/core/reference/functions/aggregate-functions/reference/welchTTest) diff --git a/reference/functions/aggregate-functions/reference/studentTTestOneSample.mdx b/core/reference/functions/aggregate-functions/reference/studentTTestOneSample.mdx similarity index 70% rename from reference/functions/aggregate-functions/reference/studentTTestOneSample.mdx rename to core/reference/functions/aggregate-functions/reference/studentTTestOneSample.mdx index de639fa2..64bc5faa 100644 --- a/reference/functions/aggregate-functions/reference/studentTTestOneSample.mdx +++ b/core/reference/functions/aggregate-functions/reference/studentTTestOneSample.mdx @@ -24,7 +24,7 @@ The optional `confidence_level` enables confidence interval calculation. **See Also** - [Student's t-test](https://en.wikipedia.org/wiki/Student%27s_t-test) -- [studentTTest function](/reference/functions/aggregate-functions/reference/studentTTest) +- [studentTTest function](/core/reference/functions/aggregate-functions/reference/studentTTest) **Syntax** @@ -35,16 +35,16 @@ studentTTestOneSample([confidence_level])(sample_data, population_mean) **Parameters** -- `confidence_level` — Optional. Confidence level for confidence intervals. Float in (0, 1). [`Float*`](/reference/data-types/float) +- `confidence_level` — Optional. Confidence level for confidence intervals. Float in (0, 1). [`Float*`](/core/reference/data-types/float) **Arguments** -- `sample_data` — Sample data. [`Integer`](/reference/data-types/int-uint) or [`Float`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `population_mean` — Known population mean to test against (usually a constant). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `sample_data` — Sample data. [`Integer`](/core/reference/data-types/int-uint) or [`Float`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `population_mean` — Known population mean to test against (usually a constant). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a tuple with two or four elements (if `confidence_level` is specified): calculated t-statistic, calculated p-value (two-tailed), [calculated confidence-interval-low], [calculated confidence-interval-high]. Confidence intervals are for the sample mean at the given confidence level. [`Tuple(Float64, Float64)`](/reference/data-types/tuple) or [`Tuple(Float64, Float64, Float64, Float64)`](/reference/data-types/tuple) +Returns a tuple with two or four elements (if `confidence_level` is specified): calculated t-statistic, calculated p-value (two-tailed), [calculated confidence-interval-low], [calculated confidence-interval-high]. Confidence intervals are for the sample mean at the given confidence level. [`Tuple(Float64, Float64)`](/core/reference/data-types/tuple) or [`Tuple(Float64, Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** @@ -73,4 +73,4 @@ SELECT studentTTestOneSample(0.95)(value, 20.0) FROM t; **See Also** - [Student's t-test](https://en.wikipedia.org/wiki/Student%27s_t-test) -- [studentTTest function](/reference/functions/aggregate-functions/reference/studentTTest) +- [studentTTest function](/core/reference/functions/aggregate-functions/reference/studentTTest) diff --git a/reference/functions/aggregate-functions/reference/sum.mdx b/core/reference/functions/aggregate-functions/reference/sum.mdx similarity index 70% rename from reference/functions/aggregate-functions/reference/sum.mdx rename to core/reference/functions/aggregate-functions/reference/sum.mdx index 67b09adc..28d6c331 100644 --- a/reference/functions/aggregate-functions/reference/sum.mdx +++ b/core/reference/functions/aggregate-functions/reference/sum.mdx @@ -21,11 +21,11 @@ sum(num) **Arguments** -- `num` — Column of numeric values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `num` — Column of numeric values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the sum of the values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +Returns the sum of the values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Examples** diff --git a/reference/functions/aggregate-functions/reference/sumCount.mdx b/core/reference/functions/aggregate-functions/reference/sumCount.mdx similarity index 76% rename from reference/functions/aggregate-functions/reference/sumCount.mdx rename to core/reference/functions/aggregate-functions/reference/sumCount.mdx index d7d292c6..9c66e62b 100644 --- a/reference/functions/aggregate-functions/reference/sumCount.mdx +++ b/core/reference/functions/aggregate-functions/reference/sumCount.mdx @@ -17,7 +17,7 @@ Calculates the sum of the numbers and counts the number of rows at the same time **See also** -- [`optimize_syntax_fuse_functions`](/reference/settings/session-settings#optimize_syntax_fuse_functions) setting. +- [`optimize_syntax_fuse_functions`](/core/reference/settings/session-settings#optimize_syntax_fuse_functions) setting. **Syntax** @@ -28,11 +28,11 @@ sumCount(x) **Arguments** -- `x` — Input value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — Input value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a tuple `(sum, count)`, where `sum` is the sum of numbers and `count` is the number of rows with not-NULL values. [`Tuple`](/reference/data-types/tuple) +Returns a tuple `(sum, count)`, where `sum` is the sum of numbers and `count` is the number of rows with not-NULL values. [`Tuple`](/core/reference/data-types/tuple) **Examples** @@ -55,4 +55,4 @@ SELECT sumCount(x) FROM s_table; **See also** -- [optimize_syntax_fuse_functions](/reference/settings/session-settings#optimize_syntax_fuse_functions) setting. +- [optimize_syntax_fuse_functions](/core/reference/settings/session-settings#optimize_syntax_fuse_functions) setting. diff --git a/reference/functions/aggregate-functions/reference/sumKahan.mdx b/core/reference/functions/aggregate-functions/reference/sumKahan.mdx similarity index 64% rename from reference/functions/aggregate-functions/reference/sumKahan.mdx rename to core/reference/functions/aggregate-functions/reference/sumKahan.mdx index ef46444d..6f36a124 100644 --- a/reference/functions/aggregate-functions/reference/sumKahan.mdx +++ b/core/reference/functions/aggregate-functions/reference/sumKahan.mdx @@ -11,8 +11,8 @@ doc_type: 'reference' Introduced in: v1.1.0 Calculates the sum of the numbers with [Kahan compensated summation algorithm](https://en.wikipedia.org/wiki/Kahan_summation_algorithm). -Slower than [`sum`](/reference/functions/aggregate-functions/reference/sum) function. -The compensation works only for [Float](/reference/data-types/float) types. +Slower than [`sum`](/core/reference/functions/aggregate-functions/reference/sum) function. +The compensation works only for [Float](/core/reference/data-types/float) types. **Syntax** @@ -23,11 +23,11 @@ sumKahan(x) **Arguments** -- `x` — Input value. [`Integer`](/reference/data-types/int-uint) or [`Float`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — Input value. [`Integer`](/core/reference/data-types/int-uint) or [`Float`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the sum of numbers. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +Returns the sum of numbers. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Examples** diff --git a/reference/functions/aggregate-functions/reference/sumMap.mdx b/core/reference/functions/aggregate-functions/reference/sumMap.mdx similarity index 91% rename from reference/functions/aggregate-functions/reference/sumMap.mdx rename to core/reference/functions/aggregate-functions/reference/sumMap.mdx index d2ee3e0c..ece0cd6f 100644 --- a/reference/functions/aggregate-functions/reference/sumMap.mdx +++ b/core/reference/functions/aggregate-functions/reference/sumMap.mdx @@ -29,12 +29,12 @@ sumMappedArrays(Tuple(key, value1 [, value2, ...])) **Arguments** -- `key` — Array of keys. [`Array`](/reference/data-types/array) -- `value1, value2, ...` — Arrays of values to sum for each key. [`Array`](/reference/data-types/array) +- `key` — Array of keys. [`Array`](/core/reference/data-types/array) +- `value1, value2, ...` — Arrays of values to sum for each key. [`Array`](/core/reference/data-types/array) **Returned value** -Returns a tuple of arrays: the first array contains keys in sorted order, followed by arrays containing values summed for the corresponding keys. [`Tuple`](/reference/data-types/tuple) +Returns a tuple of arrays: the first array contains keys in sorted order, followed by arrays containing values summed for the corresponding keys. [`Tuple`](/core/reference/data-types/tuple) **Examples** @@ -110,5 +110,5 @@ FROM multi_metrics; **See Also** -- [Map combinator for Map datatype](/reference/functions/aggregate-functions/combinators#-map) -- [sumMapWithOverflow](/reference/functions/aggregate-functions/reference/sumMapWithOverflow) +- [Map combinator for Map datatype](/core/reference/functions/aggregate-functions/combinators#-map) +- [sumMapWithOverflow](/core/reference/functions/aggregate-functions/reference/sumMapWithOverflow) diff --git a/reference/functions/aggregate-functions/reference/sumMapWithOverflow.mdx b/core/reference/functions/aggregate-functions/reference/sumMapWithOverflow.mdx similarity index 86% rename from reference/functions/aggregate-functions/reference/sumMapWithOverflow.mdx rename to core/reference/functions/aggregate-functions/reference/sumMapWithOverflow.mdx index fb088303..b35ad28a 100644 --- a/reference/functions/aggregate-functions/reference/sumMapWithOverflow.mdx +++ b/core/reference/functions/aggregate-functions/reference/sumMapWithOverflow.mdx @@ -14,7 +14,7 @@ doc_type: 'reference' Introduced in: v20.1.0 Totals a `value` array according to the keys specified in the `key` array. Returns a tuple of two arrays: keys in sorted order, and values summed for the corresponding keys. -It differs from the [`sumMap`](/reference/functions/aggregate-functions/reference/sumMap) function in that it does summation with overflow - i.e. returns the same data type for the summation as the argument data type. +It differs from the [`sumMap`](/core/reference/functions/aggregate-functions/reference/sumMap) function in that it does summation with overflow - i.e. returns the same data type for the summation as the argument data type. - Passing a tuple of key and value arrays is identical to passing an array of keys and an array of values. @@ -31,12 +31,12 @@ sumMapWithOverflow(Tuple(key, value)) **Arguments** -- `key` — Array of keys. [`Array`](/reference/data-types/array) -- `value` — Array of values. [`Array`](/reference/data-types/array) +- `key` — Array of keys. [`Array`](/core/reference/data-types/array) +- `value` — Array of values. [`Array`](/core/reference/data-types/array) **Returned value** -Returns a tuple of two arrays: keys in sorted order, and values summed for the corresponding keys. [`Tuple(Array, Array)`](/reference/data-types/tuple) +Returns a tuple of two arrays: keys in sorted order, and values summed for the corresponding keys. [`Tuple(Array, Array)`](/core/reference/data-types/tuple) **Examples** @@ -96,4 +96,4 @@ GROUP BY timeslot; **See Also** -- [sumMap](/reference/functions/aggregate-functions/reference/sumMap) +- [sumMap](/core/reference/functions/aggregate-functions/reference/sumMap) diff --git a/reference/functions/aggregate-functions/reference/sumWithOverflow.mdx b/core/reference/functions/aggregate-functions/reference/sumWithOverflow.mdx similarity index 85% rename from reference/functions/aggregate-functions/reference/sumWithOverflow.mdx rename to core/reference/functions/aggregate-functions/reference/sumWithOverflow.mdx index a33114a3..ffa2612f 100644 --- a/reference/functions/aggregate-functions/reference/sumWithOverflow.mdx +++ b/core/reference/functions/aggregate-functions/reference/sumWithOverflow.mdx @@ -24,11 +24,11 @@ sumWithOverflow(num) **Arguments** -- `num` — Column of numeric values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `num` — Column of numeric values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -The sum of the values. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +The sum of the values. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Examples** diff --git a/reference/functions/aggregate-functions/reference/theilsU.mdx b/core/reference/functions/aggregate-functions/reference/theilsU.mdx similarity index 82% rename from reference/functions/aggregate-functions/reference/theilsU.mdx rename to core/reference/functions/aggregate-functions/reference/theilsU.mdx index de81b82a..9ac5a8ce 100644 --- a/reference/functions/aggregate-functions/reference/theilsU.mdx +++ b/core/reference/functions/aggregate-functions/reference/theilsU.mdx @@ -23,12 +23,12 @@ theilsU(column1, column2) **Arguments** -- `column1` — First column to be compared. [`Any`](/reference/data-types) -- `column2` — Second column to be compared. [`Any`](/reference/data-types) +- `column1` — First column to be compared. [`Any`](/core/reference/data-types) +- `column2` — Second column to be compared. [`Any`](/core/reference/data-types) **Returned value** -Returns a value between 0 and 1. [`Float64`](/reference/data-types/float) +Returns a value between 0 and 1. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid.mdx b/core/reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid.mdx similarity index 100% rename from reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid.mdx rename to core/reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid.mdx diff --git a/reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid.mdx b/core/reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid.mdx similarity index 84% rename from reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid.mdx rename to core/reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid.mdx index f153e2ab..3b36a0ac 100644 --- a/reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid.mdx +++ b/core/reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid.mdx @@ -26,19 +26,19 @@ timeSeriesDeltaToGrid(start_timestamp, end_timestamp, grid_step, staleness)(time **Parameters** -- `start_timestamp` — Specifies start of the grid. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) -- `end_timestamp` — Specifies end of the grid. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) -- `grid_step` — Specifies step of the grid in seconds. [`UInt32`](/reference/data-types/int-uint) -- `staleness` — Specifies the maximum staleness in seconds of the considered samples. The staleness window is a left-open and right-closed interval. [`UInt32`](/reference/data-types/int-uint) +- `start_timestamp` — Specifies start of the grid. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) +- `end_timestamp` — Specifies end of the grid. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) +- `grid_step` — Specifies step of the grid in seconds. [`UInt32`](/core/reference/data-types/int-uint) +- `staleness` — Specifies the maximum staleness in seconds of the considered samples. The staleness window is a left-open and right-closed interval. [`UInt32`](/core/reference/data-types/int-uint) **Arguments** -- `timestamp` — Timestamp of the sample. Can be individual values or arrays. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) or [`Array(UInt32)`](/reference/data-types/array) or [`Array(DateTime)`](/reference/data-types/array) -- `value` — Value of the time series corresponding to the timestamp. Can be individual values or arrays. [`Float*`](/reference/data-types/float) or [`Array(Float*)`](/reference/data-types/array) +- `timestamp` — Timestamp of the sample. Can be individual values or arrays. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) or [`Array(UInt32)`](/core/reference/data-types/array) or [`Array(DateTime)`](/core/reference/data-types/array) +- `value` — Value of the time series corresponding to the timestamp. Can be individual values or arrays. [`Float*`](/core/reference/data-types/float) or [`Array(Float*)`](/core/reference/data-types/array) **Returned value** -Returns delta values on the specified grid. The returned array contains one value for each time grid point. The value is NULL if there are not enough samples within the window to calculate the delta value for a particular grid point. [`Array(Nullable(Float64))`](/reference/data-types/array) +Returns delta values on the specified grid. The returned array contains one value for each time grid point. The value is NULL if there are not enough samples within the window to calculate the delta value for a particular grid point. [`Array(Nullable(Float64))`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid.mdx b/core/reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid.mdx similarity index 100% rename from reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid.mdx rename to core/reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid.mdx diff --git a/reference/functions/aggregate-functions/reference/timeSeriesGroupArray.mdx b/core/reference/functions/aggregate-functions/reference/timeSeriesGroupArray.mdx similarity index 84% rename from reference/functions/aggregate-functions/reference/timeSeriesGroupArray.mdx rename to core/reference/functions/aggregate-functions/reference/timeSeriesGroupArray.mdx index 44887bd7..a4fd3ee0 100644 --- a/reference/functions/aggregate-functions/reference/timeSeriesGroupArray.mdx +++ b/core/reference/functions/aggregate-functions/reference/timeSeriesGroupArray.mdx @@ -25,12 +25,12 @@ timeSeriesGroupArray(timestamp, value) **Arguments** -- `timestamp` — Timestamp of the sample. [`DateTime`](/reference/data-types/datetime) or [`UInt32`](/reference/data-types/int-uint) or [`UInt64`](/reference/data-types/int-uint) -- `value` — Value of the time series corresponding to the timestamp. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `timestamp` — Timestamp of the sample. [`DateTime`](/core/reference/data-types/datetime) or [`UInt32`](/core/reference/data-types/int-uint) or [`UInt64`](/core/reference/data-types/int-uint) +- `value` — Value of the time series corresponding to the timestamp. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns an array of tuples `(timestamp, value)` sorted by timestamp in ascending order. If there are multiple values for the same timestamp then the function chooses the greatest of these values. [`Array(Tuple(T1, T2))`](/reference/data-types/array) +Returns an array of tuples `(timestamp, value)` sorted by timestamp in ascending order. If there are multiple values for the same timestamp then the function chooses the greatest of these values. [`Array(Tuple(T1, T2))`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid.mdx b/core/reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid.mdx similarity index 84% rename from reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid.mdx rename to core/reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid.mdx index b2ccf69f..2230e056 100644 --- a/reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid.mdx +++ b/core/reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid.mdx @@ -26,19 +26,19 @@ timeSeriesInstantDeltaToGrid(start_timestamp, end_timestamp, grid_step, stalenes **Parameters** -- `start_timestamp` — Specifies start of the grid. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) -- `end_timestamp` — Specifies end of the grid. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) -- `grid_step` — Specifies step of the grid in seconds. [`UInt32`](/reference/data-types/int-uint) -- `staleness` — Specifies the maximum staleness in seconds of the considered samples. The staleness window is a left-open and right-closed interval. [`UInt32`](/reference/data-types/int-uint) +- `start_timestamp` — Specifies start of the grid. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) +- `end_timestamp` — Specifies end of the grid. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) +- `grid_step` — Specifies step of the grid in seconds. [`UInt32`](/core/reference/data-types/int-uint) +- `staleness` — Specifies the maximum staleness in seconds of the considered samples. The staleness window is a left-open and right-closed interval. [`UInt32`](/core/reference/data-types/int-uint) **Arguments** -- `timestamp` — Timestamp of the sample. Can be individual values or arrays. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) or [`Array(UInt32)`](/reference/data-types/array) or [`Array(DateTime)`](/reference/data-types/array) -- `value` — Value of the time series corresponding to the timestamp. Can be individual values or arrays. [`Float*`](/reference/data-types/float) or [`Array(Float*)`](/reference/data-types/array) +- `timestamp` — Timestamp of the sample. Can be individual values or arrays. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) or [`Array(UInt32)`](/core/reference/data-types/array) or [`Array(DateTime)`](/core/reference/data-types/array) +- `value` — Value of the time series corresponding to the timestamp. Can be individual values or arrays. [`Float*`](/core/reference/data-types/float) or [`Array(Float*)`](/core/reference/data-types/array) **Returned value** -Returns idelta values on the specified grid. The returned array contains one value for each time grid point. The value is NULL if there are not enough samples within the window to calculate the instant delta value for a particular grid point. [`Array(Nullable(Float64))`](/reference/data-types/array) +Returns idelta values on the specified grid. The returned array contains one value for each time grid point. The value is NULL if there are not enough samples within the window to calculate the instant delta value for a particular grid point. [`Array(Nullable(Float64))`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid.mdx b/core/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid.mdx similarity index 84% rename from reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid.mdx rename to core/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid.mdx index 42a7b218..14e5070f 100644 --- a/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid.mdx +++ b/core/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid.mdx @@ -25,19 +25,19 @@ timeSeriesInstantRateToGrid(start_timestamp, end_timestamp, grid_step, staleness **Parameters** -- `start_timestamp` — Specifies start of the grid. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) -- `end_timestamp` — Specifies end of the grid. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) -- `grid_step` — Specifies step of the grid in seconds. [`UInt32`](/reference/data-types/int-uint) -- `staleness` — Specifies the maximum staleness in seconds of the considered samples. The staleness window is a left-open and right-closed interval. [`UInt32`](/reference/data-types/int-uint) +- `start_timestamp` — Specifies start of the grid. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) +- `end_timestamp` — Specifies end of the grid. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) +- `grid_step` — Specifies step of the grid in seconds. [`UInt32`](/core/reference/data-types/int-uint) +- `staleness` — Specifies the maximum staleness in seconds of the considered samples. The staleness window is a left-open and right-closed interval. [`UInt32`](/core/reference/data-types/int-uint) **Arguments** -- `timestamp` — Timestamp of the sample. Can be individual values or arrays. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) or [`Array(UInt32)`](/reference/data-types/array) or [`Array(DateTime)`](/reference/data-types/array) -- `value` — Value of the time series corresponding to the timestamp. Can be individual values or arrays. [`Float*`](/reference/data-types/float) or [`Array(Float*)`](/reference/data-types/array) +- `timestamp` — Timestamp of the sample. Can be individual values or arrays. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) or [`Array(UInt32)`](/core/reference/data-types/array) or [`Array(DateTime)`](/core/reference/data-types/array) +- `value` — Value of the time series corresponding to the timestamp. Can be individual values or arrays. [`Float*`](/core/reference/data-types/float) or [`Array(Float*)`](/core/reference/data-types/array) **Returned value** -Returns irate values on the specified grid. The returned array contains one value for each time grid point. The value is NULL if there are not enough samples within the window to calculate the instant rate value for a particular grid point. [`Array(Nullable(Float64))`](/reference/data-types/array) +Returns irate values on the specified grid. The returned array contains one value for each time grid point. The value is NULL if there are not enough samples within the window to calculate the instant rate value for a particular grid point. [`Array(Nullable(Float64))`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples.mdx b/core/reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples.mdx similarity index 94% rename from reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples.mdx rename to core/reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples.mdx index 57e0c3a7..7c57e85f 100644 --- a/reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples.mdx +++ b/core/reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples.mdx @@ -29,12 +29,12 @@ timeSeriesLastTwoSamples(timestamp, value) **Arguments** -- `timestamp` — Timestamp of the sample. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`(U)Int*`](/reference/data-types/int-uint) or [`Int*`](/reference/data-types/int-uint) -- `value` — Value of the time series corresponding to the timestamp. [`Float32`](/reference/data-types/float) or [`Float64`](/reference/data-types/float) +- `timestamp` — Timestamp of the sample. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Int*`](/core/reference/data-types/int-uint) +- `value` — Value of the time series corresponding to the timestamp. [`Float32`](/core/reference/data-types/float) or [`Float64`](/core/reference/data-types/float) **Returned value** -Returns a pair of arrays of equal length from 0 to 2. The first array contains the timestamps of sampled time series, the second array contains the corresponding values of the time series. [`Tuple(Array(DateTime), Array(Float64))`](/reference/data-types/tuple) +Returns a pair of arrays of equal length from 0 to 2. The first array contains the timestamps of sampled time series, the second array contains the corresponding values of the time series. [`Tuple(Array(DateTime), Array(Float64))`](/core/reference/data-types/tuple) **Examples** diff --git a/reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid.mdx b/core/reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid.mdx similarity index 100% rename from reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid.mdx rename to core/reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid.mdx diff --git a/reference/functions/aggregate-functions/reference/timeSeriesRateToGrid.mdx b/core/reference/functions/aggregate-functions/reference/timeSeriesRateToGrid.mdx similarity index 84% rename from reference/functions/aggregate-functions/reference/timeSeriesRateToGrid.mdx rename to core/reference/functions/aggregate-functions/reference/timeSeriesRateToGrid.mdx index 074fa9ac..57d3e27a 100644 --- a/reference/functions/aggregate-functions/reference/timeSeriesRateToGrid.mdx +++ b/core/reference/functions/aggregate-functions/reference/timeSeriesRateToGrid.mdx @@ -25,19 +25,19 @@ timeSeriesRateToGrid(start_timestamp, end_timestamp, grid_step, staleness)(times **Parameters** -- `start_timestamp` — Specifies start of the grid. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) -- `end_timestamp` — Specifies end of the grid. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) -- `grid_step` — Specifies step of the grid in seconds. [`UInt32`](/reference/data-types/int-uint) -- `staleness` — Specifies the maximum staleness in seconds of the considered samples. The staleness window is a left-open and right-closed interval. [`UInt32`](/reference/data-types/int-uint) +- `start_timestamp` — Specifies start of the grid. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) +- `end_timestamp` — Specifies end of the grid. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) +- `grid_step` — Specifies step of the grid in seconds. [`UInt32`](/core/reference/data-types/int-uint) +- `staleness` — Specifies the maximum staleness in seconds of the considered samples. The staleness window is a left-open and right-closed interval. [`UInt32`](/core/reference/data-types/int-uint) **Arguments** -- `timestamp` — Timestamp of the sample. Can be individual values or arrays. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) or [`Array(UInt32)`](/reference/data-types/array) or [`Array(DateTime)`](/reference/data-types/array) -- `value` — Value of the time series corresponding to the timestamp. Can be individual values or arrays. [`Float*`](/reference/data-types/float) or [`Array(Float*)`](/reference/data-types/array) +- `timestamp` — Timestamp of the sample. Can be individual values or arrays. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) or [`Array(UInt32)`](/core/reference/data-types/array) or [`Array(DateTime)`](/core/reference/data-types/array) +- `value` — Value of the time series corresponding to the timestamp. Can be individual values or arrays. [`Float*`](/core/reference/data-types/float) or [`Array(Float*)`](/core/reference/data-types/array) **Returned value** -Returns rate values on the specified grid. The returned array contains one value for each time grid point. The value is NULL if there are not enough samples within the window to calculate the rate value for a particular grid point. [`Array(Nullable(Float64))`](/reference/data-types/array) +Returns rate values on the specified grid. The returned array contains one value for each time grid point. The value is NULL if there are not enough samples within the window to calculate the rate value for a particular grid point. [`Array(Nullable(Float64))`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness.mdx b/core/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness.mdx similarity index 83% rename from reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness.mdx rename to core/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness.mdx index 9c270d2f..9931e0dc 100644 --- a/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness.mdx +++ b/core/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness.mdx @@ -29,19 +29,19 @@ timeSeriesResampleToGridWithStaleness(start_timestamp, end_timestamp, grid_step, **Parameters** -- `start_timestamp` — Specifies start of the grid. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) -- `end_timestamp` — Specifies end of the grid. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) -- `grid_step` — Specifies step of the grid in seconds. [`UInt32`](/reference/data-types/int-uint) -- `staleness_window` — Specifies the maximum staleness of the most recent sample in seconds. [`UInt32`](/reference/data-types/int-uint) +- `start_timestamp` — Specifies start of the grid. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) +- `end_timestamp` — Specifies end of the grid. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) +- `grid_step` — Specifies step of the grid in seconds. [`UInt32`](/core/reference/data-types/int-uint) +- `staleness_window` — Specifies the maximum staleness of the most recent sample in seconds. [`UInt32`](/core/reference/data-types/int-uint) **Arguments** -- `timestamp` — Timestamp of the sample. Can be individual values or arrays. [`UInt32`](/reference/data-types/int-uint) or [`DateTime`](/reference/data-types/datetime) or [`Array(UInt32)`](/reference/data-types/array) or [`Array(DateTime)`](/reference/data-types/array) -- `value` — Value of the time series corresponding to the timestamp. Can be individual values or arrays. [`Float*`](/reference/data-types/float) or [`Array(Float*)`](/reference/data-types/array) +- `timestamp` — Timestamp of the sample. Can be individual values or arrays. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime`](/core/reference/data-types/datetime) or [`Array(UInt32)`](/core/reference/data-types/array) or [`Array(DateTime)`](/core/reference/data-types/array) +- `value` — Value of the time series corresponding to the timestamp. Can be individual values or arrays. [`Float*`](/core/reference/data-types/float) or [`Array(Float*)`](/core/reference/data-types/array) **Returned value** -Returns time series values re-sampled to the specified grid. The returned array contains one value for each time grid point. The value is NULL if there is no sample for a particular grid point. [`Array(Nullable(Float64))`](/reference/data-types/array) +Returns time series values re-sampled to the specified grid. The returned array contains one value for each time grid point. The value is NULL if there is no sample for a particular grid point. [`Array(Nullable(Float64))`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid.mdx b/core/reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid.mdx similarity index 100% rename from reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid.mdx rename to core/reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid.mdx diff --git a/reference/functions/aggregate-functions/reference/topK.mdx b/core/reference/functions/aggregate-functions/reference/topK.mdx similarity index 66% rename from reference/functions/aggregate-functions/reference/topK.mdx rename to core/reference/functions/aggregate-functions/reference/topK.mdx index 8e742da0..f68644b5 100644 --- a/reference/functions/aggregate-functions/reference/topK.mdx +++ b/core/reference/functions/aggregate-functions/reference/topK.mdx @@ -20,9 +20,9 @@ This function does not provide a guaranteed result. In certain situations, error **See Also** -- [topKWeighted](/reference/functions/aggregate-functions/reference/topKWeighted) -- [approx_top_k](/reference/functions/aggregate-functions/reference/approxtopk) -- [approx_top_sum](/reference/functions/aggregate-functions/reference/approxtopsum) +- [topKWeighted](/core/reference/functions/aggregate-functions/reference/topKWeighted) +- [approx_top_k](/core/reference/functions/aggregate-functions/reference/approxtopk) +- [approx_top_sum](/core/reference/functions/aggregate-functions/reference/approxtopsum) **Syntax** @@ -35,17 +35,17 @@ topK(N, load_factor, 'counts')(column) **Parameters** -- `N` — The number of elements to return. Default value: 10. Maximum value of `N = 65536`. [`UInt64`](/reference/data-types/int-uint) -- `load_factor` — Optional. Defines, how many cells reserved for values. If `uniq(column) > N * load_factor`, result of topK function will be approximate. Default value: 3. [`UInt64`](/reference/data-types/int-uint) -- `counts` — Optional. Defines whether the result should contain an approximate count and error value. [`Bool`](/reference/data-types/boolean) +- `N` — The number of elements to return. Default value: 10. Maximum value of `N = 65536`. [`UInt64`](/core/reference/data-types/int-uint) +- `load_factor` — Optional. Defines, how many cells reserved for values. If `uniq(column) > N * load_factor`, result of topK function will be approximate. Default value: 3. [`UInt64`](/core/reference/data-types/int-uint) +- `counts` — Optional. Defines whether the result should contain an approximate count and error value. [`Bool`](/core/reference/data-types/boolean) **Arguments** -- `column` — The name of the column for which to find the most frequent values. [`String`](/reference/data-types/string) +- `column` — The name of the column for which to find the most frequent values. [`String`](/core/reference/data-types/string) **Returned value** -Returns an array of the approximately most frequent values, sorted in descending order of approximate frequency. [`Array`](/reference/data-types/array) +Returns an array of the approximately most frequent values, sorted in descending order of approximate frequency. [`Array`](/core/reference/data-types/array) **Examples** @@ -66,6 +66,6 @@ FROM ontime; **See Also** -- [topKWeighted](/reference/functions/aggregate-functions/reference/topKWeighted) -- [approx_top_k](/reference/functions/aggregate-functions/reference/approxtopk) -- [approx_top_sum](/reference/functions/aggregate-functions/reference/approxtopsum) +- [topKWeighted](/core/reference/functions/aggregate-functions/reference/topKWeighted) +- [approx_top_k](/core/reference/functions/aggregate-functions/reference/approxtopk) +- [approx_top_sum](/core/reference/functions/aggregate-functions/reference/approxtopsum) diff --git a/reference/functions/aggregate-functions/reference/topKWeighted.mdx b/core/reference/functions/aggregate-functions/reference/topKWeighted.mdx similarity index 72% rename from reference/functions/aggregate-functions/reference/topKWeighted.mdx rename to core/reference/functions/aggregate-functions/reference/topKWeighted.mdx index da401d31..211238ba 100644 --- a/reference/functions/aggregate-functions/reference/topKWeighted.mdx +++ b/core/reference/functions/aggregate-functions/reference/topKWeighted.mdx @@ -19,9 +19,9 @@ Additionally, the weight of the value is taken into account. **See Also** -- [topK](/reference/functions/aggregate-functions/reference/topK) -- [approx_top_k](/reference/functions/aggregate-functions/reference/approxtopk) -- [approx_top_sum](/reference/functions/aggregate-functions/reference/approxtopsum) +- [topK](/core/reference/functions/aggregate-functions/reference/topK) +- [approx_top_k](/core/reference/functions/aggregate-functions/reference/approxtopk) +- [approx_top_sum](/core/reference/functions/aggregate-functions/reference/approxtopsum) **Syntax** @@ -34,17 +34,17 @@ topKWeighted(N, load_factor, 'counts')(column, weight) **Parameters** -- `N` — The number of elements to return. Default value: 10. [`UInt64`](/reference/data-types/int-uint) -- `load_factor` — Optional. Defines, how many cells reserved for values. If `uniq(column) > N * load_factor`, result of topK function will be approximate. Default value: 3. [`UInt64`](/reference/data-types/int-uint) -- `counts` — Optional. Defines whether the result should contain an approximate count and error value. [`Bool`](/reference/data-types/boolean) +- `N` — The number of elements to return. Default value: 10. [`UInt64`](/core/reference/data-types/int-uint) +- `load_factor` — Optional. Defines, how many cells reserved for values. If `uniq(column) > N * load_factor`, result of topK function will be approximate. Default value: 3. [`UInt64`](/core/reference/data-types/int-uint) +- `counts` — Optional. Defines whether the result should contain an approximate count and error value. [`Bool`](/core/reference/data-types/boolean) **Arguments** -- `column` — The name of the column for which to find the most frequent values. - `weight` — The weight. Every value is accounted `weight` times for frequency calculation. [`UInt64`](/reference/data-types/int-uint) +- `column` — The name of the column for which to find the most frequent values. - `weight` — The weight. Every value is accounted `weight` times for frequency calculation. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of the values with maximum approximate sum of weights. [`Array`](/reference/data-types/array) +Returns an array of the values with maximum approximate sum of weights. [`Array`](/core/reference/data-types/array) **Examples** @@ -78,6 +78,6 @@ FROM VALUES('k Char, w UInt64', ('y', 1), ('y', 1), ('x', 5), ('y', 1), ('z', 10 **See Also** -- [topK](/reference/functions/aggregate-functions/reference/topK) -- [approx_top_k](/reference/functions/aggregate-functions/reference/approxtopk) -- [approx_top_sum](/reference/functions/aggregate-functions/reference/approxtopsum) +- [topK](/core/reference/functions/aggregate-functions/reference/topK) +- [approx_top_k](/core/reference/functions/aggregate-functions/reference/approxtopk) +- [approx_top_sum](/core/reference/functions/aggregate-functions/reference/approxtopsum) diff --git a/reference/functions/aggregate-functions/reference/uniq.mdx b/core/reference/functions/aggregate-functions/reference/uniq.mdx similarity index 71% rename from reference/functions/aggregate-functions/reference/uniq.mdx rename to core/reference/functions/aggregate-functions/reference/uniq.mdx index cef7a8ec..a2d7ed5b 100644 --- a/reference/functions/aggregate-functions/reference/uniq.mdx +++ b/core/reference/functions/aggregate-functions/reference/uniq.mdx @@ -35,11 +35,11 @@ uniq(x[, ...]) **Arguments** -- `x` — The function takes a variable number of parameters. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — The function takes a variable number of parameters. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a UInt64-type number representing the approximate number of different values. [`UInt64`](/reference/data-types/int-uint) +Returns a UInt64-type number representing the approximate number of different values. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -87,8 +87,8 @@ FROM example_table; **See Also** -- [uniqCombined](/reference/functions/aggregate-functions/reference/uniqCombined) -- [uniqCombined64](/reference/functions/aggregate-functions/reference/uniqCombined64) -- [uniqHLL12](/reference/functions/aggregate-functions/reference/uniqHLL12) -- [uniqExact](/reference/functions/aggregate-functions/reference/uniqExact) -- [uniqTheta](/reference/functions/aggregate-functions/reference/uniqthetasketch) +- [uniqCombined](/core/reference/functions/aggregate-functions/reference/uniqCombined) +- [uniqCombined64](/core/reference/functions/aggregate-functions/reference/uniqCombined64) +- [uniqHLL12](/core/reference/functions/aggregate-functions/reference/uniqHLL12) +- [uniqExact](/core/reference/functions/aggregate-functions/reference/uniqExact) +- [uniqTheta](/core/reference/functions/aggregate-functions/reference/uniqthetasketch) diff --git a/reference/functions/aggregate-functions/reference/uniqCombined.mdx b/core/reference/functions/aggregate-functions/reference/uniqCombined.mdx similarity index 70% rename from reference/functions/aggregate-functions/reference/uniqCombined.mdx rename to core/reference/functions/aggregate-functions/reference/uniqCombined.mdx index d0cf4bca..892df5a2 100644 --- a/reference/functions/aggregate-functions/reference/uniqCombined.mdx +++ b/core/reference/functions/aggregate-functions/reference/uniqCombined.mdx @@ -15,7 +15,7 @@ It provides the result deterministically (it does not depend on the query proces Since it uses a 32-bit hash for non-String types, the result will have very high error for cardinalities significantly larger than `UINT_MAX` (the error will raise quickly after a few tens of billions of distinct values). -In the case cardinalities are larger than `UINT_MAX`, you should use [`uniqCombined64`](/reference/functions/aggregate-functions/reference/uniqCombined64) instead. +In the case cardinalities are larger than `UINT_MAX`, you should use [`uniqCombined64`](/core/reference/functions/aggregate-functions/reference/uniqCombined64) instead. Compared to the uniq function, the uniqCombined function: @@ -41,15 +41,15 @@ uniqCombined(x[, ...]) **Parameters** -- `HLL_precision` — Optional. The base-2 logarithm of the number of cells in HyperLogLog. The default value is 17, which is effectively 96 KiB of space (2^17 cells, 6 bits each). Range: [12, 20]. [`UInt8`](/reference/data-types/int-uint) +- `HLL_precision` — Optional. The base-2 logarithm of the number of cells in HyperLogLog. The default value is 17, which is effectively 96 KiB of space (2^17 cells, 6 bits each). Range: [12, 20]. [`UInt8`](/core/reference/data-types/int-uint) **Arguments** -- `x` — A variable number of parameters. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — A variable number of parameters. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a UInt64-type number representing the approximate number of different argument values. [`UInt64`](/reference/data-types/int-uint) +Returns a UInt64-type number representing the approximate number of different argument values. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -81,8 +81,8 @@ SELECT uniqCombined(15)(number) FROM numbers(1e5); **See Also** -- [uniq](/reference/functions/aggregate-functions/reference/uniq) -- [uniqCombined64](/reference/functions/aggregate-functions/reference/uniqCombined64) -- [uniqHLL12](/reference/functions/aggregate-functions/reference/uniqHLL12) -- [uniqExact](/reference/functions/aggregate-functions/reference/uniqExact) -- [uniqTheta](/reference/functions/aggregate-functions/reference/uniqthetasketch) +- [uniq](/core/reference/functions/aggregate-functions/reference/uniq) +- [uniqCombined64](/core/reference/functions/aggregate-functions/reference/uniqCombined64) +- [uniqHLL12](/core/reference/functions/aggregate-functions/reference/uniqHLL12) +- [uniqExact](/core/reference/functions/aggregate-functions/reference/uniqExact) +- [uniqTheta](/core/reference/functions/aggregate-functions/reference/uniqthetasketch) diff --git a/reference/functions/aggregate-functions/reference/uniqCombined64.mdx b/core/reference/functions/aggregate-functions/reference/uniqCombined64.mdx similarity index 64% rename from reference/functions/aggregate-functions/reference/uniqCombined64.mdx rename to core/reference/functions/aggregate-functions/reference/uniqCombined64.mdx index 5f6eac79..b94fd9a1 100644 --- a/reference/functions/aggregate-functions/reference/uniqCombined64.mdx +++ b/core/reference/functions/aggregate-functions/reference/uniqCombined64.mdx @@ -13,15 +13,15 @@ doc_type: 'reference' Introduced in: v20.1.0 Calculates the approximate number of different argument values. -It is the same as [`uniqCombined`](/reference/functions/aggregate-functions/reference/uniqCombined), but uses a 64-bit hash for all data types rather than just for the String data type. +It is the same as [`uniqCombined`](/core/reference/functions/aggregate-functions/reference/uniqCombined), but uses a 64-bit hash for all data types rather than just for the String data type. This function provides the result deterministically (it does not depend on the query processing order). -Since it uses 64-bit hash for all types, the result does not suffer from very high error for cardinalities significantly larger than `UINT_MAX` like [`uniqCombined`](/reference/functions/aggregate-functions/reference/uniqCombined) does, which uses a 32-bit hash for non-String types. +Since it uses 64-bit hash for all types, the result does not suffer from very high error for cardinalities significantly larger than `UINT_MAX` like [`uniqCombined`](/core/reference/functions/aggregate-functions/reference/uniqCombined) does, which uses a 32-bit hash for non-String types. -Compared to the [uniq](/reference/functions/aggregate-functions/reference/uniq) function, the uniqCombined64 function: +Compared to the [uniq](/core/reference/functions/aggregate-functions/reference/uniq) function, the uniqCombined64 function: - Consumes several times less memory - Calculates with several times higher accuracy @@ -43,15 +43,15 @@ uniqCombined64(x[, ...]) **Parameters** -- `HLL_precision` — Optional. The base-2 logarithm of the number of cells in HyperLogLog. The default value is 17, which is effectively 96 KiB of space (2^17 cells, 6 bits each). Range: [12, 20]. [`UInt8`](/reference/data-types/int-uint) +- `HLL_precision` — Optional. The base-2 logarithm of the number of cells in HyperLogLog. The default value is 17, which is effectively 96 KiB of space (2^17 cells, 6 bits each). Range: [12, 20]. [`UInt8`](/core/reference/data-types/int-uint) **Arguments** -- `x` — A variable number of parameters. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — A variable number of parameters. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a UInt64-type number representing the approximate number of different argument values. [`UInt64`](/reference/data-types/int-uint) +Returns a UInt64-type number representing the approximate number of different argument values. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -90,8 +90,8 @@ SELECT uniqCombined(number) FROM numbers(1e10); **See Also** -- [uniq](/reference/functions/aggregate-functions/reference/uniq) -- [uniqCombined](/reference/functions/aggregate-functions/reference/uniqCombined) -- [uniqHLL12](/reference/functions/aggregate-functions/reference/uniqHLL12) -- [uniqExact](/reference/functions/aggregate-functions/reference/uniqExact) -- [uniqTheta](/reference/functions/aggregate-functions/reference/uniqthetasketch) +- [uniq](/core/reference/functions/aggregate-functions/reference/uniq) +- [uniqCombined](/core/reference/functions/aggregate-functions/reference/uniqCombined) +- [uniqHLL12](/core/reference/functions/aggregate-functions/reference/uniqHLL12) +- [uniqExact](/core/reference/functions/aggregate-functions/reference/uniqExact) +- [uniqTheta](/core/reference/functions/aggregate-functions/reference/uniqthetasketch) diff --git a/reference/functions/aggregate-functions/reference/uniqExact.mdx b/core/reference/functions/aggregate-functions/reference/uniqExact.mdx similarity index 65% rename from reference/functions/aggregate-functions/reference/uniqExact.mdx rename to core/reference/functions/aggregate-functions/reference/uniqExact.mdx index d92f3fcc..15a28046 100644 --- a/reference/functions/aggregate-functions/reference/uniqExact.mdx +++ b/core/reference/functions/aggregate-functions/reference/uniqExact.mdx @@ -15,7 +15,7 @@ Calculates the exact number of different argument values. The `uniqExact` function uses more memory than `uniq`, because the size of the state has unbounded growth as the number of different values increases. Use the `uniqExact` function if you absolutely need an exact result. -Otherwise use the [`uniq`](/reference/functions/aggregate-functions/reference/uniq) function. +Otherwise use the [`uniq`](/core/reference/functions/aggregate-functions/reference/uniq) function. @@ -27,11 +27,11 @@ uniqExact(x[, ...]) **Arguments** -- `x` — The function takes a variable number of parameters. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — The function takes a variable number of parameters. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the exact number of different argument values as a UInt64. [`UInt64`](/reference/data-types/int-uint) +Returns the exact number of different argument values as a UInt64. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -75,7 +75,7 @@ FROM example_data; **See Also** -- [uniq](/reference/functions/aggregate-functions/reference/uniq) -- [uniqCombined](/reference/functions/aggregate-functions/reference/uniqCombined) -- [uniqHLL12](/reference/functions/aggregate-functions/reference/uniqHLL12) -- [uniqTheta](/reference/functions/aggregate-functions/reference/uniqthetasketch) +- [uniq](/core/reference/functions/aggregate-functions/reference/uniq) +- [uniqCombined](/core/reference/functions/aggregate-functions/reference/uniqCombined) +- [uniqHLL12](/core/reference/functions/aggregate-functions/reference/uniqHLL12) +- [uniqTheta](/core/reference/functions/aggregate-functions/reference/uniqthetasketch) diff --git a/reference/functions/aggregate-functions/reference/uniqHLL12.mdx b/core/reference/functions/aggregate-functions/reference/uniqHLL12.mdx similarity index 67% rename from reference/functions/aggregate-functions/reference/uniqHLL12.mdx rename to core/reference/functions/aggregate-functions/reference/uniqHLL12.mdx index 372147eb..64e20dba 100644 --- a/reference/functions/aggregate-functions/reference/uniqHLL12.mdx +++ b/core/reference/functions/aggregate-functions/reference/uniqHLL12.mdx @@ -14,7 +14,7 @@ Introduced in: v1.1.0 Calculates the approximate number of different argument values, using the [HyperLogLog](https://en.wikipedia.org/wiki/HyperLogLog) algorithm. -We do not recommend using this function. In most cases, use the [uniq](/reference/functions/aggregate-functions/reference/uniq) or [uniqCombined](/reference/functions/aggregate-functions/reference/uniqCombined) function. +We do not recommend using this function. In most cases, use the [uniq](/core/reference/functions/aggregate-functions/reference/uniq) or [uniqCombined](/core/reference/functions/aggregate-functions/reference/uniqCombined) function. @@ -39,11 +39,11 @@ uniqHLL12(x[, ...]) **Arguments** -- `x` — The function takes a variable number of parameters. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — The function takes a variable number of parameters. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a UInt64-type number representing the approximate number of different argument values. [`UInt64`](/reference/data-types/int-uint) +Returns a UInt64-type number representing the approximate number of different argument values. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -74,7 +74,7 @@ FROM example_hll; **See Also** -- [uniq](/reference/functions/aggregate-functions/reference/uniq) -- [uniqCombined](/reference/functions/aggregate-functions/reference/uniqCombined) -- [uniqExact](/reference/functions/aggregate-functions/reference/uniqExact) -- [uniqTheta](/reference/functions/aggregate-functions/reference/uniqthetasketch) +- [uniq](/core/reference/functions/aggregate-functions/reference/uniq) +- [uniqCombined](/core/reference/functions/aggregate-functions/reference/uniqCombined) +- [uniqExact](/core/reference/functions/aggregate-functions/reference/uniqExact) +- [uniqTheta](/core/reference/functions/aggregate-functions/reference/uniqthetasketch) diff --git a/reference/functions/aggregate-functions/reference/uniqthetasketch.mdx b/core/reference/functions/aggregate-functions/reference/uniqthetasketch.mdx similarity index 66% rename from reference/functions/aggregate-functions/reference/uniqthetasketch.mdx rename to core/reference/functions/aggregate-functions/reference/uniqthetasketch.mdx index 67e52409..852a1bea 100644 --- a/reference/functions/aggregate-functions/reference/uniqthetasketch.mdx +++ b/core/reference/functions/aggregate-functions/reference/uniqthetasketch.mdx @@ -32,11 +32,11 @@ uniqTheta(x[, ...]) **Arguments** -- `x` — The function takes a variable number of parameters. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — The function takes a variable number of parameters. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a UInt64-type number representing the approximate number of different argument values. [`UInt64`](/reference/data-types/int-uint) +Returns a UInt64-type number representing the approximate number of different argument values. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -67,8 +67,8 @@ FROM example_theta; **See Also** -- [uniq](/reference/functions/aggregate-functions/reference/uniq) -- [uniqCombined](/reference/functions/aggregate-functions/reference/uniqCombined) -- [uniqCombined64](/reference/functions/aggregate-functions/reference/uniqCombined64) -- [uniqHLL12](/reference/functions/aggregate-functions/reference/uniqHLL12) -- [uniqExact](/reference/functions/aggregate-functions/reference/uniqExact) +- [uniq](/core/reference/functions/aggregate-functions/reference/uniq) +- [uniqCombined](/core/reference/functions/aggregate-functions/reference/uniqCombined) +- [uniqCombined64](/core/reference/functions/aggregate-functions/reference/uniqCombined64) +- [uniqHLL12](/core/reference/functions/aggregate-functions/reference/uniqHLL12) +- [uniqExact](/core/reference/functions/aggregate-functions/reference/uniqExact) diff --git a/reference/functions/aggregate-functions/reference/varPop.mdx b/core/reference/functions/aggregate-functions/reference/varPop.mdx similarity index 73% rename from reference/functions/aggregate-functions/reference/varPop.mdx rename to core/reference/functions/aggregate-functions/reference/varPop.mdx index 22def0ef..cdc1a8f9 100644 --- a/reference/functions/aggregate-functions/reference/varPop.mdx +++ b/core/reference/functions/aggregate-functions/reference/varPop.mdx @@ -26,7 +26,7 @@ Where: - $n$ is the population size -This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`varPopStable`](/reference/functions/aggregate-functions/reference/varPopStable) function. It works slower but provides a lower computational error. +This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`varPopStable`](/core/reference/functions/aggregate-functions/reference/varPopStable) function. It works slower but provides a lower computational error. @@ -40,11 +40,11 @@ varPop(x) **Arguments** -- `x` — Population of values to find the population variance of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Population of values to find the population variance of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the population variance of `x`. [`Float64`](/reference/data-types/float) +Returns the population variance of `x`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/varPopStable.mdx b/core/reference/functions/aggregate-functions/reference/varPopStable.mdx similarity index 71% rename from reference/functions/aggregate-functions/reference/varPopStable.mdx rename to core/reference/functions/aggregate-functions/reference/varPopStable.mdx index 4b4d2b10..181a01f6 100644 --- a/reference/functions/aggregate-functions/reference/varPopStable.mdx +++ b/core/reference/functions/aggregate-functions/reference/varPopStable.mdx @@ -13,7 +13,7 @@ doc_type: 'reference' Introduced in: v1.1.0 Returns the population variance. -Unlike [`varPop`](/reference/functions/aggregate-functions/reference/varPop), this function uses a [numerically stable](https://en.wikipedia.org/wiki/Numerical_stability) algorithm. +Unlike [`varPop`](/core/reference/functions/aggregate-functions/reference/varPop), this function uses a [numerically stable](https://en.wikipedia.org/wiki/Numerical_stability) algorithm. It works slower but provides a lower computational error. @@ -25,11 +25,11 @@ varPopStable(x) **Arguments** -- `x` — Population of values to find the population variance of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Population of values to find the population variance of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the population variance of `x`. [`Float64`](/reference/data-types/float) +Returns the population variance of `x`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/varSamp.mdx b/core/reference/functions/aggregate-functions/reference/varSamp.mdx similarity index 75% rename from reference/functions/aggregate-functions/reference/varSamp.mdx rename to core/reference/functions/aggregate-functions/reference/varSamp.mdx index f09ed1f8..a1781198 100644 --- a/reference/functions/aggregate-functions/reference/varSamp.mdx +++ b/core/reference/functions/aggregate-functions/reference/varSamp.mdx @@ -25,10 +25,10 @@ Where: - $\bar{x}$ is the arithmetic mean of the data set - $n$ is the number of data points in the data set -The function assumes that the input data set represents a sample from a larger population. If you want to calculate the variance of the entire population (when you have the complete data set), you should use [`varPop`](/reference/functions/aggregate-functions/reference/varPop) instead. +The function assumes that the input data set represents a sample from a larger population. If you want to calculate the variance of the entire population (when you have the complete data set), you should use [`varPop`](/core/reference/functions/aggregate-functions/reference/varPop) instead. -This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`varSampStable`](/reference/functions/aggregate-functions/reference/varSampStable) function. It works slower but provides a lower computational error. +This function uses a numerically unstable algorithm. If you need [numerical stability](https://en.wikipedia.org/wiki/Numerical_stability) in calculations, use the [`varSampStable`](/core/reference/functions/aggregate-functions/reference/varSampStable) function. It works slower but provides a lower computational error. @@ -42,11 +42,11 @@ varSamp(x) **Arguments** -- `x` — The population for which you want to calculate the sample variance. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The population for which you want to calculate the sample variance. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the sample variance of the input data set `x`. [`Float64`](/reference/data-types/float) +Returns the sample variance of the input data set `x`. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/varSampStable.mdx b/core/reference/functions/aggregate-functions/reference/varSampStable.mdx similarity index 74% rename from reference/functions/aggregate-functions/reference/varSampStable.mdx rename to core/reference/functions/aggregate-functions/reference/varSampStable.mdx index a0e77be6..b56ac2d0 100644 --- a/reference/functions/aggregate-functions/reference/varSampStable.mdx +++ b/core/reference/functions/aggregate-functions/reference/varSampStable.mdx @@ -12,9 +12,9 @@ doc_type: 'reference' Introduced in: v1.1.0 -Calculate the sample variance of a data set. Unlike [`varSamp`](/reference/functions/aggregate-functions/reference/varSamp), this function uses a [numerically stable](https://en.wikipedia.org/wiki/Numerical_stability) algorithm. It works slower but provides a lower computational error. +Calculate the sample variance of a data set. Unlike [`varSamp`](/core/reference/functions/aggregate-functions/reference/varSamp), this function uses a [numerically stable](https://en.wikipedia.org/wiki/Numerical_stability) algorithm. It works slower but provides a lower computational error. -The sample variance is calculated using the same formula as [`varSamp`](/reference/functions/aggregate-functions/reference/varSamp): +The sample variance is calculated using the same formula as [`varSamp`](/core/reference/functions/aggregate-functions/reference/varSamp): $$ \frac{\Sigma{(x - \bar{x})^2}}{n-1} @@ -36,11 +36,11 @@ varSampStable(x) **Arguments** -- `x` — The population for which you want to calculate the sample variance. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The population for which you want to calculate the sample variance. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the sample variance of the input data set. [`Float64`](/reference/data-types/float) +Returns the sample variance of the input data set. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/aggregate-functions/reference/welchTTest.mdx b/core/reference/functions/aggregate-functions/reference/welchTTest.mdx similarity index 78% rename from reference/functions/aggregate-functions/reference/welchTTest.mdx rename to core/reference/functions/aggregate-functions/reference/welchTTest.mdx index 995b02c4..8a7da1b7 100644 --- a/reference/functions/aggregate-functions/reference/welchTTest.mdx +++ b/core/reference/functions/aggregate-functions/reference/welchTTest.mdx @@ -29,16 +29,16 @@ welchTTest([confidence_level])(sample_data, sample_index) **Parameters** -- `confidence_level` — Optional. Confidence level in order to calculate confidence intervals. [`Float`](/reference/data-types/float) +- `confidence_level` — Optional. Confidence level in order to calculate confidence intervals. [`Float`](/core/reference/data-types/float) **Arguments** -- `sample_data` — Sample data. [`Int*`](/reference/data-types/int-uint) or [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) -- `sample_index` — Sample index. [`Int*`](/reference/data-types/int-uint) or [`UInt*`](/reference/data-types/int-uint) +- `sample_data` — Sample data. [`Int*`](/core/reference/data-types/int-uint) or [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) +- `sample_index` — Sample index. [`Int*`](/core/reference/data-types/int-uint) or [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns a Tuple with two or four elements (if the optional `confidence_level` is specified): calculated t-statistic, calculated p-value, and optionally calculated confidence-interval-low and confidence-interval-high. [`Tuple(Float64, Float64)`](/reference/data-types/tuple) or [`Tuple(Float64, Float64, Float64, Float64)`](/reference/data-types/tuple) +Returns a Tuple with two or four elements (if the optional `confidence_level` is specified): calculated t-statistic, calculated p-value, and optionally calculated confidence-interval-low and confidence-interval-high. [`Tuple(Float64, Float64)`](/core/reference/data-types/tuple) or [`Tuple(Float64, Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** @@ -74,4 +74,4 @@ SELECT welchTTest(0.95)(sample_data, sample_index) FROM welch_ttest; **See Also** - [Welch's t-test](https://en.wikipedia.org/wiki/Welch%27s_t-test) -- [studentTTest function](/reference/functions/aggregate-functions/reference/studentTTest) +- [studentTTest function](/core/reference/functions/aggregate-functions/reference/studentTTest) diff --git a/core/reference/functions/index.mdx b/core/reference/functions/index.mdx new file mode 100644 index 00000000..a9785423 --- /dev/null +++ b/core/reference/functions/index.mdx @@ -0,0 +1,14 @@ +--- +description: 'Documentation for Index' +sidebar: 'sqlreference' +slug: /sql-reference/functions +title: 'Functions Overview' +doc_type: 'landing-page' +--- + +| Page | Description | +|---------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------| +| [Regular Functions](/core/reference/functions/regular-functions/regular-functions-index) | Functions whose result for each row is independent of all other rows. | +| [Aggregate Functions](/core/reference/functions/aggregate-functions) | Functions that accumulate a set of values across rows. | +| [Table Functions](/core/reference/functions/table-functions) | Methods for constructing tables. | +| [Window Functions](/core/reference/functions/window-functions) | Functions which let you perform calculations across a set of rows that are related to the current row. | diff --git a/reference/functions/regular-functions/ai-functions.mdx b/core/reference/functions/regular-functions/ai-functions.mdx similarity index 80% rename from reference/functions/regular-functions/ai-functions.mdx rename to core/reference/functions/regular-functions/ai-functions.mdx index c7d70a3d..e88f2228 100644 --- a/reference/functions/regular-functions/ai-functions.mdx +++ b/core/reference/functions/regular-functions/ai-functions.mdx @@ -14,8 +14,8 @@ AI functions can return unpredictable outputs. The result will highly depend on All functions are sharing a common infrastructure that provides: -- **Quota enforcement**: Per-query limits on tokens ([`ai_function_max_input_tokens_per_query`](/reference/settings/session-settings#ai_function_max_input_tokens_per_query), [`ai_function_max_output_tokens_per_query`](/reference/settings/session-settings#ai_function_max_output_tokens_per_query)) and API calls ([`ai_function_max_api_calls_per_query`](/reference/settings/session-settings#ai_function_max_api_calls_per_query)). -- **Retry with backoff**: Transient failures are retried ([`ai_function_max_retries`](/reference/settings/session-settings#ai_function_max_retries)) with exponential backoff ([`ai_function_retry_initial_delay_ms`](/reference/settings/session-settings#ai_function_retry_initial_delay_ms)). +- **Quota enforcement**: Per-query limits on tokens ([`ai_function_max_input_tokens_per_query`](/core/reference/settings/session-settings#ai_function_max_input_tokens_per_query), [`ai_function_max_output_tokens_per_query`](/core/reference/settings/session-settings#ai_function_max_output_tokens_per_query)) and API calls ([`ai_function_max_api_calls_per_query`](/core/reference/settings/session-settings#ai_function_max_api_calls_per_query)). +- **Retry with backoff**: Transient failures are retried ([`ai_function_max_retries`](/core/reference/settings/session-settings#ai_function_max_retries)) with exponential backoff ([`ai_function_retry_initial_delay_ms`](/core/reference/settings/session-settings#ai_function_retry_initial_delay_ms)). ## Configuration {#configuration} @@ -47,11 +47,11 @@ Any OpenAI-compatible API (e.g. vLLM, Ollama, LiteLLM) can be used by setting `p ### Query-level settings {#query-level-settings} -All AI-related settings are listed in [Settings](/reference/settings/session-settings) under the `ai_function_` prefix. +All AI-related settings are listed in [Settings](/core/reference/settings/session-settings) under the `ai_function_` prefix. ### Restricting endpoint hosts {#restricting-endpoint-hosts} -The `endpoint` URL in an AI named collection is an outbound destination the server connects to under its own identity, carrying the named collection's `api_key` in the request headers. By default, ClickHouse permits any host. To restrict functions to a specific set of providers, configure [`remote_url_allow_hosts`](/reference/settings/server-settings/settings#remote_url_allow_hosts) in the server config, e.g.: +The `endpoint` URL in an AI named collection is an outbound destination the server connects to under its own identity, carrying the named collection's `api_key` in the request headers. By default, ClickHouse permits any host. To restrict functions to a specific set of providers, configure [`remote_url_allow_hosts`](/core/reference/settings/server-settings/settings#remote_url_allow_hosts) in the server config, e.g.: ```xml @@ -71,7 +71,7 @@ Note that this setting is server-wide and applies to all HTTP-using features. ## Observability {#observability} -AI function activity is tracked through ClickHouse [ProfileEvents](/reference/system-tables/query_log): +AI function activity is tracked through ClickHouse [ProfileEvents](/core/reference/system-tables/query_log): | ProfileEvent | Description | |-------|-------------| @@ -123,14 +123,14 @@ aiClassify(collection, text, categories[, temperature]) **Arguments** -- `collection` — Name of a named collection containing provider credentials and configuration. [`String`](/reference/data-types/string) -- `text` — Text to classify. [`String`](/reference/data-types/string) -- `categories` — Constant list of candidate category labels. [`Array(String)`](/reference/data-types/array) -- `temperature` — Sampling temperature controlling randomness. Default: `0.0`. [`Float64`](/reference/data-types/float) +- `collection` — Name of a named collection containing provider credentials and configuration. [`String`](/core/reference/data-types/string) +- `text` — Text to classify. [`String`](/core/reference/data-types/string) +- `categories` — Constant list of candidate category labels. [`Array(String)`](/core/reference/data-types/array) +- `temperature` — Sampling temperature controlling randomness. Default: `0.0`. [`Float64`](/core/reference/data-types/float) **Returned value** -One of the provided category labels, or the default value for the column type (empty string) if the request failed and `ai_function_throw_on_error` is disabled. [`String`](/reference/data-types/string) +One of the provided category labels, or the default value for the column type (empty string) if the request failed and `ai_function_throw_on_error` is disabled. [`String`](/core/reference/data-types/string) **Examples** @@ -178,14 +178,14 @@ aiExtract(collection, text, instruction_or_schema[, temperature]) **Arguments** -- `collection` — Name of a named collection containing provider credentials and configuration. [`String`](/reference/data-types/string) -- `text` — Text to extract information from. [`String`](/reference/data-types/string) -- `instruction_or_schema` — Free-form extraction instruction, or a constant JSON object describing the fields to extract. [`const String`](/reference/data-types/string) -- `temperature` — Sampling temperature controlling randomness. Default: `0.0`. [`const Float64`](/reference/data-types/float) +- `collection` — Name of a named collection containing provider credentials and configuration. [`String`](/core/reference/data-types/string) +- `text` — Text to extract information from. [`String`](/core/reference/data-types/string) +- `instruction_or_schema` — Free-form extraction instruction, or a constant JSON object describing the fields to extract. [`const String`](/core/reference/data-types/string) +- `temperature` — Sampling temperature controlling randomness. Default: `0.0`. [`const Float64`](/core/reference/data-types/float) **Returned value** -A single extracted value (instruction mode) or a JSON object string (schema mode). Returns the default value for the column type (empty string) if the request failed and `ai_function_throw_on_error` is disabled. [`String`](/reference/data-types/string) +A single extracted value (instruction mode) or a JSON object string (schema mode). Returns the default value for the column type (empty string) if the request failed and `ai_function_throw_on_error` is disabled. [`String`](/core/reference/data-types/string) **Examples** @@ -231,14 +231,14 @@ aiGenerate(collection, prompt[, system_prompt[, temperature]]) **Arguments** -- `collection` — Name of a named collection containing provider credentials and configuration. [`String`](/reference/data-types/string) -- `prompt` — The user prompt or question to send to the model. [`String`](/reference/data-types/string) -- `system_prompt` — Optional constant system-level instruction that guides the model's behavior (e.g. persona, output format), sent along with each prompt. [`String`](/reference/data-types/string) -- `temperature` — Sampling temperature controlling randomness. Default: `0.7`. [`Float64`](/reference/data-types/float) +- `collection` — Name of a named collection containing provider credentials and configuration. [`String`](/core/reference/data-types/string) +- `prompt` — The user prompt or question to send to the model. [`String`](/core/reference/data-types/string) +- `system_prompt` — Optional constant system-level instruction that guides the model's behavior (e.g. persona, output format), sent along with each prompt. [`String`](/core/reference/data-types/string) +- `temperature` — Sampling temperature controlling randomness. Default: `0.7`. [`Float64`](/core/reference/data-types/float) **Returned value** -The generated text response, or the default value for the column type (empty string) if the request failed and `ai_function_throw_on_error` is disabled. [`String`](/reference/data-types/string) +The generated text response, or the default value for the column type (empty string) if the request failed and `ai_function_throw_on_error` is disabled. [`String`](/core/reference/data-types/string) **Examples** @@ -292,15 +292,15 @@ aiTranslate(collection, text, target_language[, instructions[, temperature]]) **Arguments** -- `collection` — Name of a named collection containing provider credentials and configuration. [`String`](/reference/data-types/string) -- `text` — Text to translate. [`String`](/reference/data-types/string) -- `target_language` — Target language name or BCP-47 code (e.g. `'French'`, `'es-MX'`). [`String`](/reference/data-types/string) -- `instructions` — Optional constant additional instructions for the translator. [`String`](/reference/data-types/string) -- `temperature` — Sampling temperature controlling randomness. Default: `0.3`. [`Float64`](/reference/data-types/float) +- `collection` — Name of a named collection containing provider credentials and configuration. [`String`](/core/reference/data-types/string) +- `text` — Text to translate. [`String`](/core/reference/data-types/string) +- `target_language` — Target language name or BCP-47 code (e.g. `'French'`, `'es-MX'`). [`String`](/core/reference/data-types/string) +- `instructions` — Optional constant additional instructions for the translator. [`String`](/core/reference/data-types/string) +- `temperature` — Sampling temperature controlling randomness. Default: `0.3`. [`Float64`](/core/reference/data-types/float) **Returned value** -The translated text, or the default value for the column type (empty string) if the request failed and `ai_function_throw_on_error` is disabled. [`String`](/reference/data-types/string) +The translated text, or the default value for the column type (empty string) if the request failed and `ai_function_throw_on_error` is disabled. [`String`](/core/reference/data-types/string) **Examples** diff --git a/reference/functions/regular-functions/arithmetic-functions.mdx b/core/reference/functions/regular-functions/arithmetic-functions.mdx similarity index 85% rename from reference/functions/regular-functions/arithmetic-functions.mdx rename to core/reference/functions/regular-functions/arithmetic-functions.mdx index c1f6c04f..70ea57c6 100644 --- a/reference/functions/regular-functions/arithmetic-functions.mdx +++ b/core/reference/functions/regular-functions/arithmetic-functions.mdx @@ -189,11 +189,11 @@ byteSwap(x) **Arguments** -- `x` — An integer value. [`(U)Int*`](/reference/data-types/int-uint) +- `x` — An integer value. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns `x` with bytes reversed. [`(U)Int*`](/reference/data-types/int-uint) +Returns `x` with bytes reversed. [`(U)Int*`](/core/reference/data-types/int-uint) **Examples** @@ -251,7 +251,7 @@ SELECT byteSwap(123294967295) Introduced in: v1.1.0 -Calculates the quotient of two values `a` and `b`. The result type is always [Float64](/reference/data-types/float). +Calculates the quotient of two values `a` and `b`. The result type is always [Float64](/core/reference/data-types/float). Integer division is provided by the `intDiv` function. @@ -299,7 +299,7 @@ inf Introduced in: v22.12.0 -Performs division on two decimals. Result value will be of type [Decimal256](/reference/data-types/decimal). +Performs division on two decimals. Result value will be of type [Decimal256](/core/reference/data-types/decimal). Result scale can be explicitly specified by `result_scale` argument (const Integer in range `[0, 76]`). If not specified, the result scale is the max scale of given arguments. @@ -316,11 +316,11 @@ divideDecimal(x, y[, result_scale]) **Arguments** -- `x` — First value: [Decimal](/reference/data-types/decimal). - `y` — Second value: [Decimal](/reference/data-types/decimal). - `result_scale` — Scale of result. Type [Int/UInt](/reference/data-types/int-uint). +- `x` — First value: [Decimal](/core/reference/data-types/decimal). - `y` — Second value: [Decimal](/core/reference/data-types/decimal). - `result_scale` — Scale of result. Type [Int/UInt](/core/reference/data-types/int-uint). **Returned value** -The result of division with given scale. [`Decimal256`](/reference/data-types/decimal) +The result of division with given scale. [`Decimal256`](/core/reference/data-types/decimal) **Examples** @@ -427,7 +427,7 @@ Introduced in: v20.3.0 Checks whether a floating point value is finite. -You can get a similar result by using the [ternary operator](/reference/functions/regular-functions/conditional-functions#if): `isFinite(x) ? x : y`. +You can get a similar result by using the [ternary operator](/core/reference/functions/regular-functions/conditional-functions#if): `isFinite(x) ? x : y`. **Syntax** @@ -438,8 +438,8 @@ ifNotFinite(x,y) **Arguments** -- `x` — Value to check if infinite. [`Float*`](/reference/data-types/float) -- `y` — Fallback value. [`Float*`](/reference/data-types/float) +- `x` — Value to check if infinite. [`Float*`](/core/reference/data-types/float) +- `y` — Fallback value. [`Float*`](/core/reference/data-types/float) **Returned value** @@ -531,8 +531,8 @@ intDivOrNull(x, y) **Arguments** -- `x` — Left hand operand. [`(U)Int*`](/reference/data-types/int-uint) -- `y` — Right hand operand. [`(U)Int*`](/reference/data-types/int-uint) +- `x` — Left hand operand. [`(U)Int*`](/core/reference/data-types/int-uint) +- `y` — Right hand operand. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** @@ -576,8 +576,8 @@ intDivOrZero(a, b) **Arguments** -- `a` — Left hand operand. [`(U)Int*`](/reference/data-types/int-uint) -- `b` — Right hand operand. [`(U)Int*`](/reference/data-types/int-uint) +- `a` — Left hand operand. [`(U)Int*`](/core/reference/data-types/int-uint) +- `b` — Right hand operand. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** @@ -621,7 +621,7 @@ isFinite(x) **Arguments** -- `x` — Number to check for finiteness. [`Float*`](/reference/data-types/float) +- `x` — Number to check for finiteness. [`Float*`](/core/reference/data-types/float) **Returned value** @@ -655,7 +655,7 @@ isInfinite(x) **Arguments** -- `x` — Number to check for infiniteness. [`Float*`](/reference/data-types/float) +- `x` — Number to check for infiniteness. [`Float*`](/core/reference/data-types/float) **Returned value** @@ -687,7 +687,7 @@ isNaN(x) **Arguments** -- `x` — Argument to evaluate for if it is `NaN`. [`Float*`](/reference/data-types/float) +- `x` — Argument to evaluate for if it is `NaN`. [`Float*`](/core/reference/data-types/float) **Returned value** @@ -722,12 +722,12 @@ lcm(x, y) **Arguments** -- `x` — First integer. [`(U)Int*`](/reference/data-types/int-uint) -- `y` — Second integer. [`(U)Int*`](/reference/data-types/int-uint) +- `x` — First integer. [`(U)Int*`](/core/reference/data-types/int-uint) +- `y` — Second integer. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the least common multiple of `x` and `y`. [`(U)Int*`](/reference/data-types/int-uint) +Returns the least common multiple of `x` and `y`. [`(U)Int*`](/core/reference/data-types/int-uint) **Examples** @@ -756,12 +756,12 @@ max2(x, y) **Arguments** -- `x` — First value [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `y` — Second value [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — First value [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `y` — Second value [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the bigger value of `x` and `y`. [`Float64`](/reference/data-types/float) +Returns the bigger value of `x` and `y`. [`Float64`](/core/reference/data-types/float) **Examples** @@ -875,12 +875,12 @@ min2(x, y) **Arguments** -- `x` — First value [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `y` — Second value [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — First value [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `y` — Second value [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the smaller value of `x` and `y`. [`Float64`](/reference/data-types/float) +Returns the smaller value of `x` and `y`. [`Float64`](/core/reference/data-types/float) **Examples** @@ -998,12 +998,12 @@ moduloLegacy(a, b) **Arguments** -- `a` — The dividend. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `b` — The divisor. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `a` — The dividend. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `b` — The divisor. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the remainder of the division. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +Returns the remainder of the division. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Examples** @@ -1035,8 +1035,8 @@ moduloOrNull(x, y) **Arguments** -- `x` — The dividend. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `y` — The divisor (modulus). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x` — The dividend. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `y` — The divisor (modulus). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** @@ -1070,8 +1070,8 @@ moduloOrZero(a, b) **Arguments** -- `a` — The dividend. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `b` — The divisor (modulus). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `a` — The dividend. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `b` — The divisor (modulus). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** @@ -1103,8 +1103,8 @@ multiply(x, y) **Arguments** -- `x` — factor. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `y` — factor. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — factor. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `y` — factor. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** @@ -1126,7 +1126,7 @@ SELECT multiply(5,5) Introduced in: v22.12.0 -Performs multiplication on two decimals. Result value will be of type [Decimal256](/reference/data-types/decimal). +Performs multiplication on two decimals. Result value will be of type [Decimal256](/core/reference/data-types/decimal). Result scale can be explicitly specified by `result_scale` argument (const Integer in range `[0, 76]`). If not specified, the result scale is the max scale of given arguments. @@ -1143,13 +1143,13 @@ multiplyDecimal(a, b[, result_scale]) **Arguments** -- `a` — First value. [`Decimal`](/reference/data-types/decimal) -- `b` — Second value. [`Decimal`](/reference/data-types/decimal) -- `result_scale` — Scale of result. [`(U)Int*`](/reference/data-types/int-uint) +- `a` — First value. [`Decimal`](/core/reference/data-types/decimal) +- `b` — Second value. [`Decimal`](/core/reference/data-types/decimal) +- `result_scale` — Scale of result. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -The result of multiplication with the given scale. Type: [`Decimal256`](/reference/data-types/decimal) +The result of multiplication with the given scale. Type: [`Decimal256`](/core/reference/data-types/decimal) **Examples** @@ -1309,8 +1309,8 @@ positiveModulo(x, y) **Arguments** -- `x` — The dividend. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `y` — The divisor (modulus). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — The dividend. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `y` — The divisor (modulus). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** @@ -1347,7 +1347,7 @@ positiveModuloOrNull(x, y) **Arguments** -- `x` — The dividend. [`(U)Int*`](/reference/data-types/int-uint)/[`Float32/64`](/reference/data-types/float). - `x` — The divisor (modulus). [`(U)Int*`](/reference/data-types/int-uint)/[`Float32/64`](/reference/data-types/float). +- `x` — The dividend. [`(U)Int*`](/core/reference/data-types/int-uint)/[`Float32/64`](/core/reference/data-types/float). - `x` — The divisor (modulus). [`(U)Int*`](/core/reference/data-types/int-uint)/[`Float32/64`](/core/reference/data-types/float). **Returned value** diff --git a/reference/functions/regular-functions/array-functions.mdx b/core/reference/functions/regular-functions/array-functions.mdx similarity index 82% rename from reference/functions/regular-functions/array-functions.mdx rename to core/reference/functions/regular-functions/array-functions.mdx index 41fd8c23..ec27b448 100644 --- a/reference/functions/regular-functions/array-functions.mdx +++ b/core/reference/functions/regular-functions/array-functions.mdx @@ -38,7 +38,7 @@ array(x1 [, x2, ..., xN]) **Returned value** -Returns an array, where 'T' is the smallest common type out of the passed arguments. [`Array(T)`](/reference/data-types/array) +Returns an array, where 'T' is the smallest common type out of the passed arguments. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -86,10 +86,10 @@ arrayAUCPR(scores, labels[, partial_offsets]) **Arguments** -- `cores` — Scores prediction model gives. [`Array((U)Int*)`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) -- `labels` — Labels of samples, usually 1 for positive sample and 0 for negative sample. [`Array((U)Int*)`](/reference/data-types/array) or [`Array(Enum)`](/reference/data-types/array) +- `cores` — Scores prediction model gives. [`Array((U)Int*)`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) +- `labels` — Labels of samples, usually 1 for positive sample and 0 for negative sample. [`Array((U)Int*)`](/core/reference/data-types/array) or [`Array(Enum)`](/core/reference/data-types/array) - `partial_offsets` — -- Optional. An [`Array(T)`](/reference/data-types/array) of three non-negative integers for calculating a partial area under the PR curve (equivalent to a vertical band of the PR space) instead of the whole AUC. This option is useful for distributed computation of the PR AUC. The array must contain the following elements [`higher_partitions_tp`, `higher_partitions_fp`, `total_positives`]. +- Optional. An [`Array(T)`](/core/reference/data-types/array) of three non-negative integers for calculating a partial area under the PR curve (equivalent to a vertical band of the PR space) instead of the whole AUC. This option is useful for distributed computation of the PR AUC. The array must contain the following elements [`higher_partitions_tp`, `higher_partitions_fp`, `total_positives`]. - `higher_partitions_tp`: The number of positive labels in the higher-scored partitions. - `higher_partitions_fp`: The number of negative labels in the higher-scored partitions. - `total_positives`: The total number of positive samples in the entire dataset. @@ -105,7 +105,7 @@ For example: **Returned value** -Returns area under the precision-recall (PR) curve. [`Float64`](/reference/data-types/float) +Returns area under the precision-recall (PR) curve. [`Float64`](/core/reference/data-types/float) **Examples** @@ -135,13 +135,13 @@ arrayAll(func(x[, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_arr]) **Arguments** -- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array) -- `cond1_arr, ...` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array) +- `cond1_arr, ...` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns `1` if the lambda function returns true for all elements, `0` otherwise [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the lambda function returns true for all elements, `0` otherwise [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -182,12 +182,12 @@ arrayAutocorrelation(arr, [max_lag]) **Arguments** -- `arr` — Array of numbers. [`Array(T)`](/reference/data-types/array) -- `max_lag` — Optional. Maximum number of lags to compute. Must be a non-negative integer. [`Integer`](/reference/data-types/int-uint) +- `arr` — Array of numbers. [`Array(T)`](/core/reference/data-types/array) +- `max_lag` — Optional. Maximum number of lags to compute. Must be a non-negative integer. [`Integer`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of Float64. Returns NaN if variance is 0. [`Array(Float64)`](/reference/data-types/array) +Returns an array of Float64. Returns NaN if variance is 0. [`Array(Float64)`](/core/reference/data-types/array) **Examples** @@ -248,13 +248,13 @@ arrayAvg([func(x[, y1, ..., yN])], source_arr[, cond1_arr, ... , condN_arr]) **Arguments** -- `func(x[, y1, ..., yN])` — Optional. A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array) -- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — Optional. A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array) +- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the average of elements in the source array, or the average of elements of the lambda results if provided. [`Float64`](/reference/data-types/float) +Returns the average of elements in the source array, or the average of elements of the lambda results if provided. [`Float64`](/core/reference/data-types/float) **Examples** @@ -292,11 +292,11 @@ arrayCompact(arr) **Arguments** -- `arr` — An array to remove duplicates from. [`Array(T)`](/reference/data-types/array) +- `arr` — An array to remove duplicates from. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array without duplicate values [`Array(T)`](/reference/data-types/array) +Returns an array without duplicate values [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -324,11 +324,11 @@ arrayConcat(arr1 [, arr2, ... , arrN]) **Arguments** -- `arr1 [, arr2, ... , arrN]` — N number of arrays to concatenate. [`Array(T)`](/reference/data-types/array) +- `arr1 [, arr2, ... , arrN]` — N number of arrays to concatenate. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns a single combined array from the provided array arguments. [`Array(T)`](/reference/data-types/array) +Returns a single combined array from the provided array arguments. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -349,7 +349,7 @@ Introduced in: v1.1.0 Returns the number of elements for which `func(arr1[i], ..., arrN[i])` returns true. If `func` is not specified, it returns the number of non-zero elements in the array. -`arrayCount` is a [higher-order function](/reference/functions/regular-functions/overview#higher-order-functions). +`arrayCount` is a [higher-order function](/core/reference/functions/regular-functions/overview#higher-order-functions). **Syntax** @@ -360,12 +360,12 @@ arrayCount([func, ] arr1, ...) **Arguments** -- `func` — Optional. Function to apply to each element of the array(s). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `arr1, ..., arrN` — N arrays. [`Array(T)`](/reference/data-types/array) +- `func` — Optional. Function to apply to each element of the array(s). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `arr1, ..., arrN` — N arrays. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the number of elements for which `func` returns true. Otherwise, returns the number of non-zero elements in the array. [`UInt32`](/reference/data-types/int-uint) +Returns the number of elements for which `func` returns true. Otherwise, returns the number of non-zero elements in the array. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -393,13 +393,13 @@ arrayCumSum([func,] arr1[, arr2, ... , arrN]) **Arguments** -- `func` — Optional. A lambda function to apply to the array elements at each position. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `arr1` — The source array of numeric values. [`Array(T)`](/reference/data-types/array) -- `[arr2, ..., arrN]` — Optional. Additional arrays of the same size, passed as arguments to the lambda function if specified. [`Array(T)`](/reference/data-types/array) +- `func` — Optional. A lambda function to apply to the array elements at each position. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `arr1` — The source array of numeric values. [`Array(T)`](/core/reference/data-types/array) +- `[arr2, ..., arrN]` — Optional. Additional arrays of the same size, passed as arguments to the lambda function if specified. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array of the partial sums of the elements in the source array. The result type matches the input array's numeric type. [`Array(T)`](/reference/data-types/array) +Returns an array of the partial sums of the elements in the source array. The result type matches the input array's numeric type. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -437,13 +437,13 @@ arrayCumSumNonNegative([func,] arr1[, arr2, ... , arrN]) **Arguments** -- `func` — Optional. A lambda function to apply to the array elements at each position. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `arr1` — The source array of numeric values. [`Array(T)`](/reference/data-types/array) -- `[arr2, ..., arrN]` — Optional. Additional arrays of the same size, passed as arguments to the lambda function if specified. [`Array(T)`](/reference/data-types/array) +- `func` — Optional. A lambda function to apply to the array elements at each position. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `arr1` — The source array of numeric values. [`Array(T)`](/core/reference/data-types/array) +- `[arr2, ..., arrN]` — Optional. Additional arrays of the same size, passed as arguments to the lambda function if specified. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array of the partial sums of the elements in the source array, with any negative running sum replaced by zero. The result type matches the input array's numeric type. [`Array(T)`](/reference/data-types/array) +Returns an array of the partial sums of the elements in the source array, with any negative running sum replaced by zero. The result type matches the input array's numeric type. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -484,11 +484,11 @@ arrayDifference(arr) **Arguments** -- `arr` — Array for which to calculate differences between adjacent elements. [`Array(T)`](/reference/data-types/array) +- `arr` — Array for which to calculate differences between adjacent elements. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array of differences between adjacent array elements [`UInt*`](/reference/data-types/int-uint) +Returns an array of differences between adjacent array elements [`UInt*`](/core/reference/data-types/int-uint) **Examples** @@ -528,11 +528,11 @@ arrayDistinct(arr) **Arguments** -- `arr` — Array for which to extract distinct elements. [`Array(T)`](/reference/data-types/array) +- `arr` — Array for which to extract distinct elements. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array containing the distinct elements [`Array(T)`](/reference/data-types/array) +Returns an array containing the distinct elements [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -564,8 +564,8 @@ arrayDotProduct(v1, v2) **Arguments** -- `v1` — First vector. [`Array((U)Int* | Float* | Decimal)`](/reference/data-types/array) or [`Tuple((U)Int* | Float* | Decimal)`](/reference/data-types/tuple) -- `v2` — Second vector. [`Array((U)Int* | Float* | Decimal)`](/reference/data-types/array) or [`Tuple((U)Int* | Float* | Decimal)`](/reference/data-types/tuple) +- `v1` — First vector. [`Array((U)Int* | Float* | Decimal)`](/core/reference/data-types/array) or [`Tuple((U)Int* | Float* | Decimal)`](/core/reference/data-types/tuple) +- `v2` — Second vector. [`Array((U)Int* | Float* | Decimal)`](/core/reference/data-types/array) or [`Tuple((U)Int* | Float* | Decimal)`](/core/reference/data-types/tuple) **Returned value** @@ -575,7 +575,7 @@ The dot product of the two vectors. The return type is determined by the type of the arguments. If Arrays or Tuples contain mixed element types then the result type is the supertype. - [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) + [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Examples** @@ -624,11 +624,11 @@ arrayElement(arr, n) **Arguments** -- `arr` — The array to search. [`Array(T)`](/reference/data-types/array). - `n` — Position of the element to get. [`(U)Int*`](/reference/data-types/int-uint). +- `arr` — The array to search. [`Array(T)`](/core/reference/data-types/array). - `n` — Position of the element to get. [`(U)Int*`](/core/reference/data-types/int-uint). **Returned value** -Returns a single combined array from the provided array arguments [`Array(T)`](/reference/data-types/array) +Returns a single combined array from the provided array arguments [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -693,11 +693,11 @@ arrayElementOrNull(arrays) **Arguments** -- `arrays` — Arbitrary number of array arguments. [`Array`](/reference/data-types/array) +- `arrays` — Arbitrary number of array arguments. [`Array`](/core/reference/data-types/array) **Returned value** -Returns a single combined array from the provided array arguments. [`Array(T)`](/reference/data-types/array) +Returns a single combined array from the provided array arguments. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -737,7 +737,7 @@ Introduced in: v1.1.0 Returns the array `[1, 2, 3, ..., length (arr)]` -This function is normally used with the [`ARRAY JOIN`](/reference/statements/select/array-join) clause. It allows counting something just +This function is normally used with the [`ARRAY JOIN`](/core/reference/statements/select/array-join) clause. It allows counting something just once for each array after applying `ARRAY JOIN`. This function can also be used in higher-order functions. For example, you can use it to get array indexes for elements that match a condition. @@ -749,11 +749,11 @@ arrayEnumerate(arr) **Arguments** -- `arr` — The array to enumerate. [`Array`](/reference/data-types/array) +- `arr` — The array to enumerate. [`Array`](/core/reference/data-types/array) **Returned value** -Returns the array `[1, 2, 3, ..., length (arr)]`. [`Array(UInt32)`](/reference/data-types/array) +Returns the array `[1, 2, 3, ..., length (arr)]`. [`Array(UInt32)`](/core/reference/data-types/array) **Examples** @@ -805,11 +805,11 @@ arrayEnumerateDense(arr) **Arguments** -- `arr` — The array to enumerate. [`Array(T)`](/reference/data-types/array) +- `arr` — The array to enumerate. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array of the same size as `arr`, indicating where each element first appears in the source array [`Array(T)`](/reference/data-types/array) +Returns an array of the same size as `arr`, indicating where each element first appears in the source array [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -837,13 +837,13 @@ arrayEnumerateDenseRanked(clear_depth, arr, max_array_depth) **Arguments** -- `clear_depth` — Enumerate elements at the specified level separately. Must be less than or equal to `max_arr_depth`. [`UInt*`](/reference/data-types/int-uint) -- `arr` — N-dimensional array to enumerate. [`Array(T)`](/reference/data-types/array) -- `max_array_depth` — The maximum effective depth. Must be less than or equal to the depth of `arr`. [`UInt*`](/reference/data-types/int-uint) +- `clear_depth` — Enumerate elements at the specified level separately. Must be less than or equal to `max_arr_depth`. [`UInt*`](/core/reference/data-types/int-uint) +- `arr` — N-dimensional array to enumerate. [`Array(T)`](/core/reference/data-types/array) +- `max_array_depth` — The maximum effective depth. Must be less than or equal to the depth of `arr`. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array denoting where each element first appears in the source array [`Array`](/reference/data-types/array) +Returns an array denoting where each element first appears in the source array [`Array`](/core/reference/data-types/array) **Examples** @@ -908,12 +908,12 @@ arrayEnumerateUniq(arr1[, arr2, ... , arrN]) **Arguments** -- `arr1` — First array to process. [`Array(T)`](/reference/data-types/array) -- `arr2, ...` — Optional. Additional arrays of the same size for tuple uniqueness. [`Array(UInt32)`](/reference/data-types/array) +- `arr1` — First array to process. [`Array(T)`](/core/reference/data-types/array) +- `arr2, ...` — Optional. Additional arrays of the same size for tuple uniqueness. [`Array(UInt32)`](/core/reference/data-types/array) **Returned value** -Returns an array where each element is the position among elements with the same value or tuple. [`Array(T)`](/reference/data-types/array) +Returns an array where each element is the position among elements with the same value or tuple. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -990,13 +990,13 @@ arrayEnumerateUniqRanked(clear_depth, arr, max_array_depth) **Arguments** -- `clear_depth` — Enumerate elements at the specified level separately. Positive integer less than or equal to `max_arr_depth`. [`UInt*`](/reference/data-types/int-uint) -- `arr` — N-dimensional array to enumerate. [`Array(T)`](/reference/data-types/array) -- `max_array_depth` — The maximum effective depth. Positive integer less than or equal to the depth of `arr`. [`UInt*`](/reference/data-types/int-uint) +- `clear_depth` — Enumerate elements at the specified level separately. Positive integer less than or equal to `max_arr_depth`. [`UInt*`](/core/reference/data-types/int-uint) +- `arr` — N-dimensional array to enumerate. [`Array(T)`](/core/reference/data-types/array) +- `max_array_depth` — The maximum effective depth. Positive integer less than or equal to the depth of `arr`. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns an N-dimensional array the same size as `arr` with each element showing the position of that element in relation to other elements of the same value. [`Array(T)`](/reference/data-types/array) +Returns an N-dimensional array the same size as `arr` with each element showing the position of that element in relation to other elements of the same value. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -1078,12 +1078,12 @@ arrayExcept(source, except) **Arguments** -- `source` — The source array containing elements to filter. [`Array(T)`](/reference/data-types/array) -- `except` — The array containing elements to exclude from the result. [`Array(T)`](/reference/data-types/array) +- `source` — The source array containing elements to filter. [`Array(T)`](/core/reference/data-types/array) +- `except` — The array containing elements to exclude from the result. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array of the same type as the input array containing elements from `source` that weren't found in `except`. [`Array(T)`](/reference/data-types/array) +Returns an array of the same type as the input array containing elements from `source` that weren't found in `except`. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -1141,13 +1141,13 @@ arrayExists(func(x[, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_arr]) **Arguments** -- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array) -- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array) +- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns `1` if the lambda function returns true for at least one element, `0` otherwise [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the lambda function returns true for at least one element, `0` otherwise [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1180,13 +1180,13 @@ arrayFill(func(x [, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_arr]) **Arguments** -- `func(x [, y1, ..., yN])` — A lambda function `func(x [, y1, y2, ... yN]) → F(x [, y1, y2, ... yN])` which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x [, y1, ..., yN])` — A lambda function `func(x [, y1, y2, ... yN]) → F(x [, y1, y2, ... yN])` which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array [`Array(T)`](/reference/data-types/array) +Returns an array [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -1224,13 +1224,13 @@ arrayFilter(func(x[, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_arr])] **Arguments** -- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array) -- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array) +- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns a subset of the source array [`Array(T)`](/reference/data-types/array) +Returns a subset of the source array [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -1274,7 +1274,7 @@ arrayFirst(func(x[, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_arr]) **Arguments** -- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [Lambda function](/reference/functions/regular-functions/overview#arrow-operator-and-lambda). - `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array). - `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array). +- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [Lambda function](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda). - `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array). - `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array). **Returned value** @@ -1316,11 +1316,11 @@ arrayFirstIndex(func(x[, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_arr] **Arguments** -- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [Lambda function](/reference/functions/regular-functions/overview#arrow-operator-and-lambda). - `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array). - `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array). +- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [Lambda function](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda). - `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array). - `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array). **Returned value** -Returns the index of the first element of the source array for which `func` is true, otherwise returns `0` [`UInt32`](/reference/data-types/int-uint) +Returns the index of the first element of the source array for which `func` is true, otherwise returns `0` [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -1359,9 +1359,9 @@ arrayFirstOrNull(func(x[, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_arr **Arguments** -- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array) -- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array) +- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** @@ -1412,11 +1412,11 @@ arrayFlatten(arr) **Arguments** -- `arr` — A multidimensional array. [`Array(Array(T))`](/reference/data-types/array) +- `arr` — A multidimensional array. [`Array(Array(T))`](/core/reference/data-types/array) **Returned value** -Returns a flattened array from the multidimensional array [`Array(T)`](/reference/data-types/array) +Returns a flattened array from the multidimensional array [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -1444,8 +1444,8 @@ arrayFold(λ(acc, x1 [, x2, x3, ... xN]), arr1 [, arr2, arr3, ... arrN], acc) **Arguments** -- `λ(x, x1 [, x2, x3, ... xN])` — A lambda function `λ(acc, x1 [, x2, x3, ... xN]) → F(acc, x1 [, x2, x3, ... xN])` where `F` is an operation applied to `acc` and array values from `x` with the result of `acc` re-used. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `arr1 [, arr2, arr3, ... arrN]` — N arrays over which to operate. [`Array(T)`](/reference/data-types/array) +- `λ(x, x1 [, x2, x3, ... xN])` — A lambda function `λ(acc, x1 [, x2, x3, ... xN]) → F(acc, x1 [, x2, x3, ... xN])` where `F` is an operation applied to `acc` and array values from `x` with the result of `acc` re-used. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `arr1 [, arr2, arr3, ... arrN]` — N arrays over which to operate. [`Array(T)`](/core/reference/data-types/array) - `acc` — Accumulator value with the same type as the return type of the Lambda function. **Returned value** @@ -1514,11 +1514,11 @@ arrayIntersect(arr, arr1, ..., arrN) **Arguments** -- `arrN` — N arrays from which to make the new array. [`Array(T)`](/reference/data-types/array). +- `arrN` — N arrays from which to make the new array. [`Array(T)`](/core/reference/data-types/array). **Returned value** -Returns an array with distinct elements that are present in all N arrays [`Array(T)`](/reference/data-types/array) +Returns an array with distinct elements that are present in all N arrays [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -1550,12 +1550,12 @@ arrayJaccardIndex(arr_x, arr_y) **Arguments** -- `arr_x` — First array. [`Array(T)`](/reference/data-types/array) -- `arr_y` — Second array. [`Array(T)`](/reference/data-types/array) +- `arr_x` — First array. [`Array(T)`](/core/reference/data-types/array) +- `arr_y` — Second array. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the Jaccard index of `arr_x` and `arr_y` [`Float64`](/reference/data-types/float) +Returns the Jaccard index of `arr_x` and `arr_y` [`Float64`](/core/reference/data-types/float) **Examples** @@ -1591,7 +1591,7 @@ arrayJoin(arr) **Arguments** -- `arr` — An array to unfold. [`Array(T)`](/reference/data-types/array) +- `arr` — An array to unfold. [`Array(T)`](/core/reference/data-types/array) **Returned value** @@ -1795,7 +1795,7 @@ arrayLast(func(x[, y1, ..., yN]), source[, cond1, ... , condN_arr]) **Arguments** -- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [Lambda function](/reference/functions/regular-functions/overview#arrow-operator-and-lambda). - `source` — The source array to process. [`Array(T)`](/reference/data-types/array). - `[, cond1, ... , condN]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array). +- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [Lambda function](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda). - `source` — The source array to process. [`Array(T)`](/core/reference/data-types/array). - `[, cond1, ... , condN]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array). **Returned value** @@ -1837,13 +1837,13 @@ arrayLastIndex(func(x[, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_arr]) **Arguments** -- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array) -- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array) +- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the index of the last element of the source array for which `func` is true, otherwise returns `0` [`UInt32`](/reference/data-types/int-uint) +Returns the index of the last element of the source array for which `func` is true, otherwise returns `0` [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -1882,7 +1882,7 @@ arrayLastOrNull(func(x[, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_arr] **Arguments** -- `func(x [, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [Lambda function](/reference/functions/regular-functions/overview#arrow-operator-and-lambda). - `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array). - `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array). +- `func(x [, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [Lambda function](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda). - `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array). - `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array). **Returned value** @@ -1924,11 +1924,11 @@ arrayLevenshteinDistance(from, to) **Arguments** -- `from` — The first array. [`Array(T)`](/reference/data-types/array). - `to` — The second array. [`Array(T)`](/reference/data-types/array). +- `from` — The first array. [`Array(T)`](/core/reference/data-types/array). - `to` — The second array. [`Array(T)`](/core/reference/data-types/array). **Returned value** -Levenshtein distance between the first and the second arrays. [`Float64`](/reference/data-types/float) +Levenshtein distance between the first and the second arrays. [`Float64`](/core/reference/data-types/float) **Examples** @@ -1958,12 +1958,12 @@ arrayLevenshteinDistanceWeighted(from, to, from_weights, to_weights) **Arguments** -- `from` — first array. [`Array(T)`](/reference/data-types/array). - `to` — second array. [`Array(T)`](/reference/data-types/array). - `from_weights` — weights for the first array. [`Array((U)Int*|Float*)`](/reference/data-types/array) -- `to_weights` — weights for the second array. [`Array((U)Int*|Float*)`](/reference/data-types/array) +- `from` — first array. [`Array(T)`](/core/reference/data-types/array). - `to` — second array. [`Array(T)`](/core/reference/data-types/array). - `from_weights` — weights for the first array. [`Array((U)Int*|Float*)`](/core/reference/data-types/array) +- `to_weights` — weights for the second array. [`Array((U)Int*|Float*)`](/core/reference/data-types/array) **Returned value** -Levenshtein distance between the first and the second arrays with custom weights for each element [`Float64`](/reference/data-types/float) +Levenshtein distance between the first and the second arrays with custom weights for each element [`Float64`](/core/reference/data-types/float) **Examples** @@ -1991,12 +1991,12 @@ arrayMap(func, arr) **Arguments** -- `func` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `arr` — N arrays to process. [`Array(T)`](/reference/data-types/array) +- `func` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `arr` — N arrays to process. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array from the lambda results [`Array(T)`](/reference/data-types/array) +Returns an array from the lambda results [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2037,9 +2037,9 @@ arrayMax([func(x[, y1, ..., yN])], source_arr[, cond1_arr, ... , condN_arr]) **Arguments** -- `func(x[, y1, ..., yN])` — Optional. A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array) -- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — Optional. A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array) +- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** @@ -2084,9 +2084,9 @@ arrayMin([func(x[, y1, ..., yN])], source_arr[, cond1_arr, ... , condN_arr]) **Arguments** -- `func(x[, y1, ..., yN])` — Optional. A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array) -- `cond1_arr, ...` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — Optional. A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array) +- `cond1_arr, ...` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** @@ -2128,12 +2128,12 @@ arrayNormalizedGini(predicted, label) **Arguments** -- `predicted` — The predicted value. [`Array(T)`](/reference/data-types/array) -- `label` — The actual value. [`Array(T)`](/reference/data-types/array) +- `predicted` — The predicted value. [`Array(T)`](/core/reference/data-types/array) +- `label` — The actual value. [`Array(T)`](/core/reference/data-types/array) **Returned value** -A tuple containing the Gini coefficients of the predicted values, the Gini coefficient of the normalized values, and the normalized Gini coefficient (= the ratio of the former two Gini coefficients) [`Tuple(Float64, Float64, Float64)`](/reference/data-types/tuple) +A tuple containing the Gini coefficients of the predicted values, the Gini coefficient of the normalized values, and the normalized Gini coefficient (= the ratio of the former two Gini coefficients) [`Tuple(Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** @@ -2166,10 +2166,10 @@ arrayPartialReverseSort([f,] arr [, arr1, ... ,arrN], limit) **Arguments** -- `f(arr[, arr1, ... ,arrN])` — The lambda function to apply to elements of array `x`. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `arr` — Array to be sorted. [`Array(T)`](/reference/data-types/array) -- `arr1, ... ,arrN` — N additional arrays, in the case when `f` accepts multiple arguments. [`Array(T)`](/reference/data-types/array) -- `limit` — Index value up until which sorting will occur. [`(U)Int*`](/reference/data-types/int-uint) +- `f(arr[, arr1, ... ,arrN])` — The lambda function to apply to elements of array `x`. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `arr` — Array to be sorted. [`Array(T)`](/core/reference/data-types/array) +- `arr1, ... ,arrN` — N additional arrays, in the case when `f` accepts multiple arguments. [`Array(T)`](/core/reference/data-types/array) +- `limit` — Index value up until which sorting will occur. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** @@ -2251,13 +2251,13 @@ arrayPartialShuffle(arr [, limit[, seed]]) **Arguments** -- `arr` — The array to shuffle. [`Array(T)`](/reference/data-types/array) -- `seed` — Optional. The seed to be used with random number generation. If not provided, a random one is used. [`(U)Int*`](/reference/data-types/int-uint) -- `limit` — Optional. The number to limit element swaps to, in the range `[1..N]`. [`(U)Int*`](/reference/data-types/int-uint) +- `arr` — The array to shuffle. [`Array(T)`](/core/reference/data-types/array) +- `seed` — Optional. The seed to be used with random number generation. If not provided, a random one is used. [`(U)Int*`](/core/reference/data-types/int-uint) +- `limit` — Optional. The number to limit element swaps to, in the range `[1..N]`. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Array with elements partially shuffled. [`Array(T)`](/reference/data-types/array) +Array with elements partially shuffled. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2341,10 +2341,10 @@ arrayPartialSort([f,] arr [, arr1, ... ,arrN], limit) **Arguments** -- `f(arr[, arr1, ... ,arrN])` — The lambda function to apply to elements of array `x`. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `arr` — Array to be sorted. [`Array(T)`](/reference/data-types/array) -- `arr1, ... ,arrN` — N additional arrays, in the case when `f` accepts multiple arguments. [`Array(T)`](/reference/data-types/array) -- `limit` — Index value up until which sorting will occur. [`(U)Int*`](/reference/data-types/int-uint) +- `f(arr[, arr1, ... ,arrN])` — The lambda function to apply to elements of array `x`. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `arr` — Array to be sorted. [`Array(T)`](/core/reference/data-types/array) +- `arr1, ... ,arrN` — N additional arrays, in the case when `f` accepts multiple arguments. [`Array(T)`](/core/reference/data-types/array) +- `limit` — Index value up until which sorting will occur. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** @@ -2417,11 +2417,11 @@ arrayPopBack(arr) **Arguments** -- `arr` — The array for which to remove the last element from. [`Array(T)`](/reference/data-types/array) +- `arr` — The array for which to remove the last element from. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array identical to `arr` but without the last element of `arr` [`Array(T)`](/reference/data-types/array) +Returns an array identical to `arr` but without the last element of `arr` [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2449,11 +2449,11 @@ arrayPopFront(arr) **Arguments** -- `arr` — The array for which to remove the first element from. [`Array(T)`](/reference/data-types/array) +- `arr` — The array for which to remove the first element from. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array identical to `arr` but without the first element of `arr` [`Array(T)`](/reference/data-types/array) +Returns an array identical to `arr` but without the first element of `arr` [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2484,13 +2484,13 @@ arrayProduct([func(x[, y1, ..., yN])], source_arr[, cond1_arr, ... , condN_arr]) **Arguments** -- `func(x[, y1, ..., yN])` — Optional. A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array) -- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — Optional. A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array) +- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the product of elements in the source array, or the product of elements of the lambda results if provided. [`Float64`](/reference/data-types/float) +Returns the product of elements in the source array, or the product of elements of the lambda results if provided. [`Float64`](/core/reference/data-types/float) **Examples** @@ -2528,22 +2528,22 @@ arrayPushBack(arr, x) **Arguments** -- `arr` — The array for which to add value `x` to the end of. [`Array(T)`](/reference/data-types/array) +- `arr` — The array for which to add value `x` to the end of. [`Array(T)`](/core/reference/data-types/array) - `x` — -- Single value to add to the end of the array. [`Array(T)`](/reference/data-types/array). +- Single value to add to the end of the array. [`Array(T)`](/core/reference/data-types/array). - Only numbers can be added to an array with numbers, and only strings can be added to an array of strings. - When adding numbers, ClickHouse automatically sets the type of `x` for the data type of the array. - Can be `NULL`. The function adds a `NULL` element to an array, and the type of array elements converts to `Nullable`. -For more information about the types of data in ClickHouse, see [Data types](/reference/data-types). +For more information about the types of data in ClickHouse, see [Data types](/core/reference/data-types). **Returned value** -Returns an array identical to `arr` but with an additional value `x` at the end of the array [`Array(T)`](/reference/data-types/array) +Returns an array identical to `arr` but with an additional value `x` at the end of the array [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2571,21 +2571,21 @@ arrayPushFront(arr, x) **Arguments** -- `arr` — The array for which to add value `x` to the end of. [`Array(T)`](/reference/data-types/array). - `x` — -- Single value to add to the start of the array. [`Array(T)`](/reference/data-types/array). +- `arr` — The array for which to add value `x` to the end of. [`Array(T)`](/core/reference/data-types/array). - `x` — +- Single value to add to the start of the array. [`Array(T)`](/core/reference/data-types/array). - Only numbers can be added to an array with numbers, and only strings can be added to an array of strings. - When adding numbers, ClickHouse automatically sets the type of `x` for the data type of the array. - Can be `NULL`. The function adds a `NULL` element to an array, and the type of array elements converts to `Nullable`. -For more information about the types of data in ClickHouse, see [Data types](/reference/data-types). +For more information about the types of data in ClickHouse, see [Data types](/core/reference/data-types). **Returned value** -Returns an array identical to `arr` but with an additional value `x` at the beginning of the array [`Array(T)`](/reference/data-types/array) +Returns an array identical to `arr` but with an additional value `x` at the beginning of the array [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2620,11 +2620,11 @@ arrayROCAUC(scores, labels[, scale[, partial_offsets]]) **Arguments** -- `scores` — Scores prediction model gives. [`Array((U)Int*)`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) -- `labels` — Labels of samples, usually 1 for positive sample and 0 for negative sample. [`Array((U)Int*)`](/reference/data-types/array) or [`Enum`](/reference/data-types/enum) -- `scale` — Optional. Decides whether to return the normalized area. If false, returns the area under the TP (true positives) x FP (false positives) curve instead. Default value: true. [`Bool`](/reference/data-types/boolean) +- `scores` — Scores prediction model gives. [`Array((U)Int*)`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) +- `labels` — Labels of samples, usually 1 for positive sample and 0 for negative sample. [`Array((U)Int*)`](/core/reference/data-types/array) or [`Enum`](/core/reference/data-types/enum) +- `scale` — Optional. Decides whether to return the normalized area. If false, returns the area under the TP (true positives) x FP (false positives) curve instead. Default value: true. [`Bool`](/core/reference/data-types/boolean) - `partial_offsets` — -- An array of four non-negative integers for calculating a partial area under the ROC curve (equivalent to a vertical band of the ROC space) instead of the whole AUC. This option is useful for distributed computation of the ROC AUC. The array must contain the following elements [`higher_partitions_tp`, `higher_partitions_fp`, `total_positives`, `total_negatives`]. [Array](/reference/data-types/array) of non-negative [Integers](/reference/data-types/int-uint). Optional. +- An array of four non-negative integers for calculating a partial area under the ROC curve (equivalent to a vertical band of the ROC space) instead of the whole AUC. This option is useful for distributed computation of the ROC AUC. The array must contain the following elements [`higher_partitions_tp`, `higher_partitions_fp`, `total_positives`, `total_negatives`]. [Array](/core/reference/data-types/array) of non-negative [Integers](/core/reference/data-types/int-uint). Optional. - `higher_partitions_tp`: The number of positive labels in the higher-scored partitions. - `higher_partitions_fp`: The number of negative labels in the higher-scored partitions. - `total_positives`: The total number of positive samples in the entire dataset. @@ -2641,7 +2641,7 @@ For example: **Returned value** -Returns area under the receiver operating characteristic (ROC) curve. [`Float64`](/reference/data-types/float) +Returns area under the receiver operating characteristic (ROC) curve. [`Float64`](/core/reference/data-types/float) **Examples** @@ -2669,12 +2669,12 @@ arrayRandomSample(arr, samples) **Arguments** -- `arr` — The input array or multidimensional array from which to sample elements. [`Array(T)`](/reference/data-types/array) -- `samples` — The number of elements to include in the random sample. [`(U)Int*`](/reference/data-types/int-uint) +- `arr` — The input array or multidimensional array from which to sample elements. [`Array(T)`](/core/reference/data-types/array) +- `samples` — The number of elements to include in the random sample. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -An array containing a random sample of elements from the input array [`Array(T)`](/reference/data-types/array) +An array containing a random sample of elements from the input array [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2714,8 +2714,8 @@ arrayReduce(agg_f, arr1[, arr2, ... , arrN]) **Arguments** -- `agg_f` — The name of an aggregate function which should be a constant. [`String`](/reference/data-types/string) -- `arr1[, arr2, ... , arrN]` — N arrays corresponding to the arguments of `agg_f`. [`Array(T)`](/reference/data-types/array) +- `agg_f` — The name of an aggregate function which should be a constant. [`String`](/core/reference/data-types/string) +- `arr1[, arr2, ... , arrN]` — N arrays corresponding to the arguments of `agg_f`. [`Array(T)`](/core/reference/data-types/array) **Returned value** @@ -2776,13 +2776,13 @@ arrayReduceInRanges(agg_f, ranges, arr1[, arr2, ... ,arrN]) **Arguments** -- `agg_f` — The name of the aggregate function to use. [`String`](/reference/data-types/string) -- `ranges` — The range over which to aggregate. An array of tuples, `(i, r)` containing the index `i` from which to begin from and the range `r` over which to aggregate. [`Array(T)`](/reference/data-types/array) or [`Tuple(T)`](/reference/data-types/tuple) -- `arr1[, arr2, ... ,arrN]` — N arrays as arguments to the aggregate function. [`Array(T)`](/reference/data-types/array) +- `agg_f` — The name of the aggregate function to use. [`String`](/core/reference/data-types/string) +- `ranges` — The range over which to aggregate. An array of tuples, `(i, r)` containing the index `i` from which to begin from and the range `r` over which to aggregate. [`Array(T)`](/core/reference/data-types/array) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `arr1[, arr2, ... ,arrN]` — N arrays as arguments to the aggregate function. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array containing results of the aggregate function over the specified ranges [`Array(T)`](/reference/data-types/array) +Returns an array containing results of the aggregate function over the specified ranges [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2823,7 +2823,7 @@ arrayRemove(arr, elem) **Returned value** -Returns a subset of the source array [`Array(T)`](/reference/data-types/array) +Returns a subset of the source array [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2861,7 +2861,7 @@ arrayResize(arr, size[, extender]) **Arguments** -- `arr` — Array to resize. [`Array(T)`](/reference/data-types/array) +- `arr` — Array to resize. [`Array(T)`](/core/reference/data-types/array) - `size` — -The new length of the array. If `size` is less than the original size of the array, the array is truncated from the right. @@ -2870,7 +2870,7 @@ If `size` is larger than the initial size of the array, the array is extended to **Returned value** -An array of length `size`. [`Array(T)`](/reference/data-types/array) +An array of length `size`. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2913,11 +2913,11 @@ arrayReverse(arr) **Arguments** -- `arr` — The array to reverse. [`Array(T)`](/reference/data-types/array) +- `arr` — The array to reverse. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array of the same size as the original array containing the elements in reverse order [`Array(T)`](/reference/data-types/array) +Returns an array of the same size as the original array containing the elements in reverse order [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2951,13 +2951,13 @@ arrayReverseFill(func(x[, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_arr **Arguments** -- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array) -- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array) +- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array with elements of the source array replaced by the results of the lambda. [`Array(T)`](/reference/data-types/array) +Returns an array with elements of the source array replaced by the results of the lambda. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -2998,7 +2998,7 @@ If the array to sort contains `-Inf`, `NULL`, `NaN`, or `Inf` they will be sorte 3. `NaN` 4. `NULL` -`arrayReverseSort` is a [higher-order function](/reference/functions/regular-functions/overview#higher-order-functions). +`arrayReverseSort` is a [higher-order function](/core/reference/functions/regular-functions/overview#higher-order-functions). **Syntax** @@ -3009,12 +3009,12 @@ arrayReverseSort([f,] arr [, arr1, ... ,arrN) **Arguments** -- `f(y1[, y2 ... yN])` — The lambda function to apply to elements of array `x`. - `arr` — An array to be sorted. [`Array(T)`](/reference/data-types/array) - `arr1, ..., yN` — Optional. N additional arrays, in the case when `f` accepts multiple arguments. +- `f(y1[, y2 ... yN])` — The lambda function to apply to elements of array `x`. - `arr` — An array to be sorted. [`Array(T)`](/core/reference/data-types/array) - `arr1, ..., yN` — Optional. N additional arrays, in the case when `f` accepts multiple arguments. **Returned value** Returns the array `x` sorted in descending order if no lambda function is provided, otherwise -it returns an array sorted according to the logic of the provided lambda function, and then reversed. [`Array(T)`](/reference/data-types/array). +it returns an array sorted according to the logic of the provided lambda function, and then reversed. [`Array(T)`](/core/reference/data-types/array). **Examples** @@ -3052,13 +3052,13 @@ arrayReverseSplit(func(x[, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_ar **Arguments** -- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array of arrays. [`Array(Array(T))`](/reference/data-types/array) +Returns an array of arrays. [`Array(Array(T))`](/core/reference/data-types/array) **Examples** @@ -3086,11 +3086,11 @@ arrayRotateLeft(arr, n) **Arguments** -- `arr` — The array for which to rotate the elements.[`Array(T)`](/reference/data-types/array). - `n` — Number of elements to rotate. [`(U)Int8/16/32/64`](/reference/data-types/int-uint). +- `arr` — The array for which to rotate the elements.[`Array(T)`](/core/reference/data-types/array). - `n` — Number of elements to rotate. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint). **Returned value** -An array rotated to the left by the specified number of elements [`Array(T)`](/reference/data-types/array) +An array rotated to the left by the specified number of elements [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3128,11 +3128,11 @@ arrayRotateRight(arr, n) **Arguments** -- `arr` — The array for which to rotate the elements.[`Array(T)`](/reference/data-types/array). - `n` — Number of elements to rotate. [`(U)Int8/16/32/64`](/reference/data-types/int-uint). +- `arr` — The array for which to rotate the elements.[`Array(T)`](/core/reference/data-types/array). - `n` — Number of elements to rotate. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint). **Returned value** -An array rotated to the right by the specified number of elements [`Array(T)`](/reference/data-types/array) +An array rotated to the right by the specified number of elements [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3173,11 +3173,11 @@ arrayShiftLeft(arr, n[, default]) **Arguments** -- `arr` — The array for which to shift the elements.[`Array(T)`](/reference/data-types/array). - `n` — Number of elements to shift.[`(U)Int8/16/32/64`](/reference/data-types/int-uint). - `default` — Optional. Default value for new elements. +- `arr` — The array for which to shift the elements.[`Array(T)`](/core/reference/data-types/array). - `n` — Number of elements to shift.[`(U)Int8/16/32/64`](/core/reference/data-types/int-uint). - `default` — Optional. Default value for new elements. **Returned value** -An array shifted to the left by the specified number of elements [`Array(T)`](/reference/data-types/array) +An array shifted to the left by the specified number of elements [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3228,13 +3228,13 @@ arrayShiftRight(arr, n[, default]) **Arguments** -- `arr` — The array for which to shift the elements. [`Array(T)`](/reference/data-types/array) -- `n` — Number of elements to shift. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) +- `arr` — The array for which to shift the elements. [`Array(T)`](/core/reference/data-types/array) +- `n` — Number of elements to shift. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) - `default` — Optional. Default value for new elements. **Returned value** -An array shifted to the right by the specified number of elements [`Array(T)`](/reference/data-types/array) +An array shifted to the right by the specified number of elements [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3282,12 +3282,12 @@ arrayShingles(arr, l) **Arguments** -- `arr` — Array for which to generate an array of shingles. [`Array(T)`](/reference/data-types/array) -- `l` — The length of each shingle. [`(U)Int*`](/reference/data-types/int-uint) +- `arr` — Array for which to generate an array of shingles. [`Array(T)`](/core/reference/data-types/array) +- `l` — The length of each shingle. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -An array of generated shingles [`Array(T)`](/reference/data-types/array) +An array of generated shingles [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3321,12 +3321,12 @@ arrayShuffle(arr [, seed]) **Arguments** -- `arr` — The array to shuffle. [`Array(T)`](/reference/data-types/array) -- `seed (optional)` — Optional. The seed to be used with random number generation. If not provided a random one is used. [`(U)Int*`](/reference/data-types/int-uint) +- `arr` — The array to shuffle. [`Array(T)`](/core/reference/data-types/array) +- `seed (optional)` — Optional. The seed to be used with random number generation. If not provided a random one is used. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Array with elements shuffled [`Array(T)`](/reference/data-types/array) +Array with elements shuffled [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3364,14 +3364,14 @@ arraySimilarity(from, to, from_weights, to_weights) **Arguments** -- `from` — first array [`Array(T)`](/reference/data-types/array) -- `to` — second array [`Array(T)`](/reference/data-types/array) -- `from_weights` — weights for the first array. [`Array((U)Int*|Float*)`](/reference/data-types/array) -- `to_weights` — weights for the second array. [`Array((U)Int*|Float*)`](/reference/data-types/array) +- `from` — first array [`Array(T)`](/core/reference/data-types/array) +- `to` — second array [`Array(T)`](/core/reference/data-types/array) +- `from_weights` — weights for the first array. [`Array((U)Int*|Float*)`](/core/reference/data-types/array) +- `to_weights` — weights for the second array. [`Array((U)Int*|Float*)`](/core/reference/data-types/array) **Returned value** -Returns the similarity between `0` and `1` of the two arrays based on the weighted Levenshtein distance [`Float64`](/reference/data-types/float) +Returns the similarity between `0` and `1` of the two arrays based on the weighted Levenshtein distance [`Float64`](/core/reference/data-types/float) **Examples** @@ -3399,13 +3399,13 @@ arraySlice(arr, offset [, length]) **Arguments** -- `arr` — Array to slice. [`Array(T)`](/reference/data-types/array) -- `offset` — Indent from the edge of the array. A positive value indicates an offset on the left, and a negative value is an indent on the right. Numbering of the array items begins with `1`. [`(U)Int*`](/reference/data-types/int-uint) -- `length` — The length of the required slice. If you specify a negative value, the function returns an open slice `[offset, array_length - length]`. If you omit the value, the function returns the slice `[offset, the_end_of_array]`. [`(U)Int*`](/reference/data-types/int-uint) +- `arr` — Array to slice. [`Array(T)`](/core/reference/data-types/array) +- `offset` — Indent from the edge of the array. A positive value indicates an offset on the left, and a negative value is an indent on the right. Numbering of the array items begins with `1`. [`(U)Int*`](/core/reference/data-types/int-uint) +- `length` — The length of the required slice. If you specify a negative value, the function returns an open slice `[offset, array_length - length]`. If you omit the value, the function returns the slice `[offset, the_end_of_array]`. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a slice of the array with `length` elements from the specified `offset` [`Array(T)`](/reference/data-types/array) +Returns a slice of the array with `length` elements from the specified `offset` [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3436,7 +3436,7 @@ If the array to sort contains `-Inf`, `NULL`, `NaN`, or `Inf` they will be sorte 3. `NaN` 4. `NULL` -`arraySort` is a [higher-order function](/reference/functions/regular-functions/overview#higher-order-functions). +`arraySort` is a [higher-order function](/core/reference/functions/regular-functions/overview#higher-order-functions). **Syntax** @@ -3446,12 +3446,12 @@ arraySort([f,] arr [, arr1, ... ,arrN]) **Arguments** -- `f(y1[, y2 ... yN])` — The lambda function to apply to elements of array `x`. - `arr` — An array to be sorted. [`Array(T)`](/reference/data-types/array) - `arr1, ..., yN` — Optional. N additional arrays, in the case when `f` accepts multiple arguments. +- `f(y1[, y2 ... yN])` — The lambda function to apply to elements of array `x`. - `arr` — An array to be sorted. [`Array(T)`](/core/reference/data-types/array) - `arr1, ..., yN` — Optional. N additional arrays, in the case when `f` accepts multiple arguments. **Returned value** Returns the array `arr` sorted in ascending order if no lambda function is provided, otherwise -it returns an array sorted according to the logic of the provided lambda function. [`Array(T)`](/reference/data-types/array). +it returns an array sorted according to the logic of the provided lambda function. [`Array(T)`](/core/reference/data-types/array). **Examples** @@ -3499,11 +3499,11 @@ arraySplit(func(x[, y1, ..., yN]), source_arr[, cond1_arr, ... , condN_arr]) **Arguments** -- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`).[Lambda function](/reference/functions/regular-functions/overview#arrow-operator-and-lambda). - `source_arr` — The source array to split [`Array(T)`](/reference/data-types/array). - `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array). +- `func(x[, y1, ..., yN])` — A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`).[Lambda function](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda). - `source_arr` — The source array to split [`Array(T)`](/core/reference/data-types/array). - `[, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array). **Returned value** -Returns an array of arrays [`Array(Array(T))`](/reference/data-types/array) +Returns an array of arrays [`Array(Array(T))`](/core/reference/data-types/array) **Examples** @@ -3534,9 +3534,9 @@ arraySum([func(x[, y1, ..., yN])], source_arr[, cond1_arr, ... , condN_arr]) **Arguments** -- `func(x[, y1, ..., yN])` — Optional. A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `source_arr` — The source array to process. [`Array(T)`](/reference/data-types/array) -- `, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/reference/data-types/array) +- `func(x[, y1, ..., yN])` — Optional. A lambda function which operates on elements of the source array (`x`) and condition arrays (`y`). [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `source_arr` — The source array to process. [`Array(T)`](/core/reference/data-types/array) +- `, cond1_arr, ... , condN_arr]` — Optional. N condition arrays providing additional arguments to the lambda function. [`Array(T)`](/core/reference/data-types/array) **Returned value** @@ -3584,11 +3584,11 @@ arraySymmetricDifference(arr1, arr2, ... , arrN) **Arguments** -- `arrN` — N arrays from which to make the new array. [`Array(T)`](/reference/data-types/array). +- `arrN` — N arrays from which to make the new array. [`Array(T)`](/core/reference/data-types/array). **Returned value** -Returns an array of distinct elements not present in all source arrays [`Array(T)`](/reference/data-types/array) +Returns an array of distinct elements not present in all source arrays [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3622,11 +3622,11 @@ arrayTranspose(arr) **Arguments** -- `arr` — A two-dimensional array to transpose. All inner arrays must have the same length. [`Array(Array(T))`](/reference/data-types/array) +- `arr` — A two-dimensional array to transpose. All inner arrays must have the same length. [`Array(Array(T))`](/core/reference/data-types/array) **Returned value** -A transposed two-dimensional array where element `[i][j]` of the result equals element `[j][i]` of the input. [`Array(Array(T))`](/reference/data-types/array) +A transposed two-dimensional array where element `[i][j]` of the result equals element `[j][i]` of the input. [`Array(Array(T))`](/core/reference/data-types/array) **Examples** @@ -3674,11 +3674,11 @@ arrayUnion(arr1, arr2, ..., arrN) **Arguments** -- `arrN` — N arrays from which to make the new array. [`Array(T)`](/reference/data-types/array) +- `arrN` — N arrays from which to make the new array. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array with distinct elements from the source arrays [`Array(T)`](/reference/data-types/array) +Returns an array with distinct elements from the source arrays [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3724,15 +3724,15 @@ arrayUniq(arr1[, arr2, ..., arrN]) **Arguments** -- `arr1` — Array for which to count the number of unique elements. [`Array(T)`](/reference/data-types/array) -- `[, arr2, ..., arrN]` — Optional. Additional arrays used to count the number of unique tuples of elements at corresponding positions in multiple arrays. [`Array(T)`](/reference/data-types/array) +- `arr1` — Array for which to count the number of unique elements. [`Array(T)`](/core/reference/data-types/array) +- `[, arr2, ..., arrN]` — Optional. Additional arrays used to count the number of unique tuples of elements at corresponding positions in multiple arrays. [`Array(T)`](/core/reference/data-types/array) **Returned value** For a single argument returns the number of unique elements. For multiple arguments returns the number of unique tuples made from elements at corresponding positions across the arrays. - [`UInt32`](/reference/data-types/int-uint) + [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -3771,12 +3771,12 @@ arrayWithConstant(N, x) **Arguments** -- `length` — Number of elements in the array. [`(U)Int*`](/reference/data-types/int-uint) +- `length` — Number of elements in the array. [`(U)Int*`](/core/reference/data-types/int-uint) - `x` — The value of the `N` elements in the array, of any type. **Returned value** -Returns an Array with `N` elements of value `x`. [`Array(T)`](/reference/data-types/array) +Returns an Array with `N` elements of value `x`. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3804,11 +3804,11 @@ arrayZip(arr1, arr2, ... , arrN) **Arguments** -- `arr1, arr2, ... , arrN` — N arrays to combine into a single array. [`Array(T)`](/reference/data-types/array) +- `arr1, arr2, ... , arrN` — N arrays to combine into a single array. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array with elements from the source arrays grouped in tuples. Data types in the tuple are the same as types of the input arrays and in the same order as arrays are passed [`Array(T)`](/reference/data-types/array) +Returns an array with elements from the source arrays grouped in tuples. Data types in the tuple are the same as types of the input arrays and in the same order as arrays are passed [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3836,11 +3836,11 @@ arrayZipUnaligned(arr1, arr2, ..., arrN) **Arguments** -- `arr1, arr2, ..., arrN` — N arrays to combine into a single array. [`Array(T)`](/reference/data-types/array) +- `arr1, arr2, ..., arrN` — N arrays to combine into a single array. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array with elements from the source arrays grouped in tuples. Data types in the tuple are the same as types of the input arrays and in the same order as arrays are passed. [`Array(T)`](/reference/data-types/array) or [`Tuple(T1, T2, ...)`](/reference/data-types/tuple) +Returns an array with elements from the source arrays grouped in tuples. Data types in the tuple are the same as types of the input arrays and in the same order as arrays are passed. [`Array(T)`](/core/reference/data-types/array) or [`Tuple(T1, T2, ...)`](/core/reference/data-types/tuple) **Examples** @@ -3870,12 +3870,12 @@ countEqual(arr, x) **Arguments** -- `arr` — Array to search. [`Array(T)`](/reference/data-types/array) +- `arr` — Array to search. [`Array(T)`](/core/reference/data-types/array) - `x` — Value in the array to count. Any type. **Returned value** -Returns the number of elements in the array equal to `x` [`UInt64`](/reference/data-types/int-uint) +Returns the number of elements in the array equal to `x` [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -3898,7 +3898,7 @@ Checks whether the input array is empty. An array is considered empty if it does not contain any elements. -Can be optimized by enabling the [`optimize_functions_to_subcolumns` setting](/reference/settings/session-settings#optimize_functions_to_subcolumns). With `optimize_functions_to_subcolumns = 1` the function reads only [size0](/reference/data-types/array#array-size) subcolumn instead of reading and processing the whole array column. The query `SELECT empty(arr) FROM TABLE;` transforms to `SELECT arr.size0 = 0 FROM TABLE;`. +Can be optimized by enabling the [`optimize_functions_to_subcolumns` setting](/core/reference/settings/session-settings#optimize_functions_to_subcolumns). With `optimize_functions_to_subcolumns = 1` the function reads only [size0](/core/reference/data-types/array#array-size) subcolumn instead of reading and processing the whole array column. The query `SELECT empty(arr) FROM TABLE;` transforms to `SELECT arr.size0 = 0 FROM TABLE;`. The function also works for Strings or UUIDs. @@ -3912,11 +3912,11 @@ empty(arr) **Arguments** -- `arr` — Input array. [`Array(T)`](/reference/data-types/array) +- `arr` — Input array. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns `1` for an empty array or `0` for a non-empty array [`UInt8`](/reference/data-types/int-uint) +Returns `1` for an empty array or `0` for a non-empty array [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3948,7 +3948,7 @@ emptyArrayDate() **Returned value** -An empty Date array. [`Array(T)`](/reference/data-types/array) +An empty Date array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -3980,7 +3980,7 @@ emptyArrayDateTime() **Returned value** -An empty DateTime array. [`Array(T)`](/reference/data-types/array) +An empty DateTime array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4012,7 +4012,7 @@ emptyArrayFloat32() **Returned value** -An empty Float32 array. [`Array(T)`](/reference/data-types/array) +An empty Float32 array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4044,7 +4044,7 @@ emptyArrayFloat64() **Returned value** -An empty Float64 array. [`Array(T)`](/reference/data-types/array) +An empty Float64 array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4076,7 +4076,7 @@ emptyArrayInt16() **Returned value** -An empty Int16 array. [`Array(T)`](/reference/data-types/array) +An empty Int16 array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4108,7 +4108,7 @@ emptyArrayInt32() **Returned value** -An empty Int32 array. [`Array(T)`](/reference/data-types/array) +An empty Int32 array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4140,7 +4140,7 @@ emptyArrayInt64() **Returned value** -An empty Int64 array. [`Array(T)`](/reference/data-types/array) +An empty Int64 array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4172,7 +4172,7 @@ emptyArrayInt8() **Returned value** -An empty Int8 array. [`Array(T)`](/reference/data-types/array) +An empty Int8 array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4204,7 +4204,7 @@ emptyArrayString() **Returned value** -An empty String array. [`Array(T)`](/reference/data-types/array) +An empty String array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4233,11 +4233,11 @@ emptyArrayToSingle(arr) **Arguments** -- `arr` — An empty array. [`Array(T)`](/reference/data-types/array) +- `arr` — An empty array. [`Array(T)`](/core/reference/data-types/array) **Returned value** -An array with a single value of the Array's default type. [`Array(T)`](/reference/data-types/array) +An array with a single value of the Array's default type. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4281,7 +4281,7 @@ emptyArrayUInt16() **Returned value** -An empty UInt16 array. [`Array(T)`](/reference/data-types/array) +An empty UInt16 array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4313,7 +4313,7 @@ emptyArrayUInt32() **Returned value** -An empty UInt32 array. [`Array(T)`](/reference/data-types/array) +An empty UInt32 array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4345,7 +4345,7 @@ emptyArrayUInt64() **Returned value** -An empty UInt64 array. [`Array(T)`](/reference/data-types/array) +An empty UInt64 array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4377,7 +4377,7 @@ emptyArrayUInt8() **Returned value** -An empty UInt8 array. [`Array(T)`](/reference/data-types/array) +An empty UInt8 array. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -4411,12 +4411,12 @@ has(haystack, needle) **Arguments** -- `haystack` — The source array, map, or JSON. [`Array`](/reference/data-types/array) or [`Map`](/reference/data-types/map) or [`JSON`](/reference/data-types/newjson) +- `haystack` — The source array, map, or JSON. [`Array`](/core/reference/data-types/array) or [`Map`](/core/reference/data-types/map) or [`JSON`](/core/reference/data-types/newjson) - `needle` — The value to search for (element in array, key in map, or path string in JSON). **Returned value** -Returns `1` if the haystack contains the specified needle, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the haystack contains the specified needle, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -4478,8 +4478,8 @@ hasAll(set, subset) **Arguments** -- `set` — Array of any type with a set of elements. [`Array(T)`](/reference/data-types/array) -- `subset` — Array of any type that shares a common supertype with `set` containing elements that should be tested to be a subset of `set`. [`Array(T)`](/reference/data-types/array) +- `set` — Array of any type with a set of elements. [`Array(T)`](/core/reference/data-types/array) +- `subset` — Array of any type that shares a common supertype with `set` containing elements that should be tested to be a subset of `set`. [`Array(T)`](/core/reference/data-types/array) **Returned value** @@ -4567,8 +4567,8 @@ hasAny(arr_x, arr_y) **Arguments** -- `arr_x` — Array of any type with a set of elements. [`Array(T)`](/reference/data-types/array) -- `arr_y` — Array of any type that shares a common supertype with array `arr_x`. [`Array(T)`](/reference/data-types/array) +- `arr_x` — Array of any type with a set of elements. [`Array(T)`](/core/reference/data-types/array) +- `arr_y` — Array of any type that shares a common supertype with array `arr_x`. [`Array(T)`](/core/reference/data-types/array) **Returned value** @@ -4653,12 +4653,12 @@ hasSubstr(arr1, arr2) **Arguments** -- `arr1` — Array of any type with a set of elements. [`Array(T)`](/reference/data-types/array) -- `arr2` — Array of any type with a set of elements. [`Array(T)`](/reference/data-types/array) +- `arr1` — Array of any type with a set of elements. [`Array(T)`](/core/reference/data-types/array) +- `arr2` — Array of any type with a set of elements. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns `1` if array `arr1` contains array `arr2`. Otherwise, returns `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if array `arr1` contains array `arr2`. Otherwise, returns `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -4760,12 +4760,12 @@ indexOf(arr, x) **Arguments** -- `arr` — An array to search in for `x`. [`Array(T)`](/reference/data-types/array) -- `x` — Value of the first matching element in `arr` for which to return an index. [`UInt64`](/reference/data-types/int-uint) +- `arr` — An array to search in for `x`. [`Array(T)`](/core/reference/data-types/array) +- `x` — Value of the first matching element in `arr` for which to return an index. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns the index (numbered from one) of the first `x` in `arr` if it exists. Otherwise, returns `0`. [`UInt64`](/reference/data-types/int-uint) +Returns the index (numbered from one) of the first `x` in `arr` if it exists. Otherwise, returns `0`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -4810,12 +4810,12 @@ indexOfAssumeSorted(arr, x) **Arguments** -- `arr` — A sorted array to search. [`Array(T)`](/reference/data-types/array) -- `x` — Value of the first matching element in sorted `arr` for which to return an index. [`UInt64`](/reference/data-types/int-uint) +- `arr` — A sorted array to search. [`Array(T)`](/core/reference/data-types/array) +- `x` — Value of the first matching element in sorted `arr` for which to return an index. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns the index (numbered from one) of the first `x` in `arr` if it exists. Otherwise, returns `0`. [`UInt64`](/reference/data-types/int-uint) +Returns the index (numbered from one) of the first `x` in `arr` if it exists. Otherwise, returns `0`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -4844,13 +4844,13 @@ kql_array_sort_asc(array1[, array2, ..., nulls_last]) **Arguments** -- `array1` — The array to sort. [`Array(T)`](/reference/data-types/array) -- `array2` — Optional. Additional arrays to reorder according to array1's sort order. [`Array(T)`](/reference/data-types/array) -- `nulls_last` — Optional. A boolean indicating whether nulls should appear last. Default is true. [`UInt8`](/reference/data-types/int-uint) +- `array1` — The array to sort. [`Array(T)`](/core/reference/data-types/array) +- `array2` — Optional. Additional arrays to reorder according to array1's sort order. [`Array(T)`](/core/reference/data-types/array) +- `nulls_last` — Optional. A boolean indicating whether nulls should appear last. Default is true. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple of arrays sorted in ascending order. [`Tuple(Array, ...)`](/reference/data-types/tuple) +Returns a tuple of arrays sorted in ascending order. [`Tuple(Array, ...)`](/core/reference/data-types/tuple) **Examples** @@ -4879,13 +4879,13 @@ kql_array_sort_desc(array1[, array2, ..., nulls_last]) **Arguments** -- `array1` — The array to sort. [`Array(T)`](/reference/data-types/array) -- `array2` — Optional additional arrays to reorder according to array1's sort order. [`Array(T)`](/reference/data-types/array) -- `nulls_last` — Optional boolean indicating whether nulls should appear last. Default is true. [`UInt8`](/reference/data-types/int-uint) +- `array1` — The array to sort. [`Array(T)`](/core/reference/data-types/array) +- `array2` — Optional additional arrays to reorder according to array1's sort order. [`Array(T)`](/core/reference/data-types/array) +- `nulls_last` — Optional boolean indicating whether nulls should appear last. Default is true. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple of arrays sorted in descending order. [`Tuple(Array, ...)`](/reference/data-types/tuple) +Returns a tuple of arrays sorted in descending order. [`Tuple(Array, ...)`](/core/reference/data-types/tuple) **Examples** @@ -4926,11 +4926,11 @@ length(x) **Arguments** -- `x` — Value for which to calculate the number of bytes (for String/FixedString) or elements (for Array). [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Array(T)`](/reference/data-types/array) +- `x` — Value for which to calculate the number of bytes (for String/FixedString) or elements (for Array). [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the number of number of bytes in the String/FixedString `x` / the number of elements in array `x` [`UInt64`](/reference/data-types/int-uint) +Returns the number of number of bytes in the String/FixedString `x` / the number of elements in array `x` [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -5005,7 +5005,7 @@ Checks whether the input array is non-empty. An array is considered non-empty if it contains at least one element. -Can be optimized by enabling the [`optimize_functions_to_subcolumns`](/reference/settings/session-settings#optimize_functions_to_subcolumns) setting. With `optimize_functions_to_subcolumns = 1` the function reads only [size0](/reference/data-types/array#array-size) subcolumn instead of reading and processing the whole array column. The query `SELECT notEmpty(arr) FROM table` transforms to `SELECT arr.size0 != 0 FROM TABLE`. +Can be optimized by enabling the [`optimize_functions_to_subcolumns`](/core/reference/settings/session-settings#optimize_functions_to_subcolumns) setting. With `optimize_functions_to_subcolumns = 1` the function reads only [size0](/core/reference/data-types/array#array-size) subcolumn instead of reading and processing the whole array column. The query `SELECT notEmpty(arr) FROM table` transforms to `SELECT arr.size0 != 0 FROM TABLE`. The function also works for Strings or UUIDs. @@ -5019,11 +5019,11 @@ notEmpty(arr) **Arguments** -- `arr` — Input array. [`Array(T)`](/reference/data-types/array) +- `arr` — Input array. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns `1` for a non-empty array or `0` for an empty array [`UInt8`](/reference/data-types/int-uint) +Returns `1` for a non-empty array or `0` for an empty array [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -5048,7 +5048,7 @@ The supported types are: - `Int8/16/32/64]` - All arguments `start`, `end`, `step` must be one of the above supported types. Elements of the returned array will be a super type of the arguments. -- An exception is thrown if the function returns an array with a total length more than the number of elements specified by setting [`function_range_max_elements_in_block`](/reference/settings/session-settings#function_range_max_elements_in_block). +- An exception is thrown if the function returns an array with a total length more than the number of elements specified by setting [`function_range_max_elements_in_block`](/core/reference/settings/session-settings#function_range_max_elements_in_block). - Returns `NULL` if any argument has Nullable(nothing) type. An exception is thrown if any argument has `NULL` value (Nullable(T) type). @@ -5064,7 +5064,7 @@ range([start, ] end [, step]) **Returned value** -Array of numbers from `start` to `end - 1` by `step`. [`Array(T)`](/reference/data-types/array) +Array of numbers from `start` to `end - 1` by `step`. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -5094,12 +5094,12 @@ replicate(x, arr) **Arguments** -- `x` — The value to fill the result array with. [`Any`](/reference/data-types) -- `arr` — An array. [`Array(T)`](/reference/data-types/array) +- `x` — The value to fill the result array with. [`Any`](/core/reference/data-types) +- `arr` — An array. [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns an array of the same length as `arr` filled with value `x`. [`Array(T)`](/reference/data-types/array) +Returns an array of the same length as `arr` filled with value `x`. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -5129,7 +5129,7 @@ reverse(arr | str) **Arguments** -- `arr | str` — The source array or string. [`Array(T)`](/reference/data-types/array) or [`String`](/reference/data-types/string) +- `arr | str` — The source array or string. [`Array(T)`](/core/reference/data-types/array) or [`String`](/core/reference/data-types/string) **Returned value** @@ -5161,4 +5161,4 @@ SELECT reverse('abcd'); ## Distance functions {#distance-functions} -All supported functions are described in [distance functions documentation](/reference/functions/regular-functions/distance-functions). +All supported functions are described in [distance functions documentation](/core/reference/functions/regular-functions/distance-functions). diff --git a/reference/functions/regular-functions/array-join.mdx b/core/reference/functions/regular-functions/array-join.mdx similarity index 85% rename from reference/functions/regular-functions/array-join.mdx rename to core/reference/functions/regular-functions/array-join.mdx index 4144caff..c88cda0d 100644 --- a/reference/functions/regular-functions/array-join.mdx +++ b/core/reference/functions/regular-functions/array-join.mdx @@ -17,7 +17,7 @@ All the values in columns are simply copied, except the values in the column whe If the array is empty, `arrayJoin` produces no rows. -To return a single row containing the default value of the array type, you can wrap it with [emptyArrayToSingle](/reference/functions/regular-functions/array-functions#emptyArrayToSingle), for example: `arrayJoin(emptyArrayToSingle(...))`. +To return a single row containing the default value of the array type, you can wrap it with [emptyArrayToSingle](/core/reference/functions/regular-functions/array-functions#emptyArrayToSingle), for example: `arrayJoin(emptyArrayToSingle(...))`. For example: @@ -98,7 +98,7 @@ FROM ( ); ``` -Note the [`ARRAY JOIN`](/reference/statements/select/array-join) syntax in the SELECT query, which provides broader possibilities. +Note the [`ARRAY JOIN`](/core/reference/statements/select/array-join) syntax in the SELECT query, which provides broader possibilities. `ARRAY JOIN` allows you to convert multiple arrays with the same number of elements at a time. Example: @@ -130,7 +130,7 @@ GROUP BY └─────────────┴──────────┴─────────┘ ``` -Or you can use [`Tuple`](/reference/data-types/tuple) +Or you can use [`Tuple`](/core/reference/data-types/tuple) Example: @@ -158,4 +158,4 @@ GROUP BY └─────────────┴──────────┴─────────┘ ``` -The name `arrayJoin` in ClickHouse comes from its conceptual similarity to the JOIN operation, but applied to arrays within a single row. While traditional JOINs combine rows from different tables, `arrayJoin` "joins" each element of an array in a row, producing multiple rows - one for each array element - while duplicating the other column values. ClickHouse also provides the [`ARRAY JOIN`](/reference/statements/select/array-join) clause syntax, which makes this relationship to traditional JOIN operations even more explicit by using familiar SQL JOIN terminology. This process is also referred to as "unfolding" the array, but the term "join" is used in both the function name and clause because it resembles joining the table with the array elements, effectively expanding the dataset in a way similar to a JOIN operation. +The name `arrayJoin` in ClickHouse comes from its conceptual similarity to the JOIN operation, but applied to arrays within a single row. While traditional JOINs combine rows from different tables, `arrayJoin` "joins" each element of an array in a row, producing multiple rows - one for each array element - while duplicating the other column values. ClickHouse also provides the [`ARRAY JOIN`](/core/reference/statements/select/array-join) clause syntax, which makes this relationship to traditional JOIN operations even more explicit by using familiar SQL JOIN terminology. This process is also referred to as "unfolding" the array, but the term "join" is used in both the function name and clause because it resembles joining the table with the array elements, effectively expanding the dataset in a way similar to a JOIN operation. diff --git a/reference/functions/regular-functions/bit-functions.mdx b/core/reference/functions/regular-functions/bit-functions.mdx similarity index 83% rename from reference/functions/regular-functions/bit-functions.mdx rename to core/reference/functions/regular-functions/bit-functions.mdx index f9195dea..633250c7 100644 --- a/reference/functions/regular-functions/bit-functions.mdx +++ b/core/reference/functions/regular-functions/bit-functions.mdx @@ -31,8 +31,8 @@ bitAnd(a, b) **Arguments** -- `a` — First value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `b` — Second value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `a` — First value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `b` — Second value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** @@ -82,11 +82,11 @@ bitCount(x) **Arguments** -- `x` — An integer or float value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x` — An integer or float value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the number of bits set to one in `x`. [`UInt8`](/reference/data-types/int-uint). +Returns the number of bits set to one in `x`. [`UInt8`](/core/reference/data-types/int-uint). The function does not convert the input value to a larger type ([sign extension](https://en.wikipedia.org/wiki/Sign_extension)). @@ -112,7 +112,7 @@ SELECT bin(333), bitCount(333); Introduced in: v21.1.0 Returns the [Hamming Distance](https://en.wikipedia.org/wiki/Hamming_distance) between the bit representations of two numbers. -Can be used with [`SimHash`](/reference/functions/regular-functions/hash-functions#ngramSimHash) functions for detection of semi-duplicate strings. +Can be used with [`SimHash`](/core/reference/functions/regular-functions/hash-functions#ngramSimHash) functions for detection of semi-duplicate strings. The smaller the distance, the more similar the strings are. **Syntax** @@ -123,12 +123,12 @@ bitHammingDistance(x, y) **Arguments** -- `x` — First number for Hamming distance calculation. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `y` — Second number for Hamming distance calculation. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x` — First number for Hamming distance calculation. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `y` — Second number for Hamming distance calculation. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the hamming distance between `x` and `y` [`UInt8`](/reference/data-types/int-uint) +Returns the hamming distance between `x` and `y` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -158,7 +158,7 @@ bitNot(a) **Arguments** -- `a` — Value for which to apply bitwise NOT operation. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `a` — Value for which to apply bitwise NOT operation. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** @@ -196,8 +196,8 @@ bitOr(a, b) **Arguments** -- `a` — First value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `b` — Second value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `a` — First value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `b` — Second value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** @@ -247,12 +247,12 @@ bitRotateLeft(a, N) **Arguments** -- `a` — A value to rotate. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) -- `N` — The number of positions to rotate left. [`UInt8/16/32/64`](/reference/data-types/int-uint) +- `a` — A value to rotate. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) +- `N` — The number of positions to rotate left. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns the rotated value with type equal to that of `a`. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) +Returns the rotated value with type equal to that of `a`. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) **Examples** @@ -282,12 +282,12 @@ bitRotateRight(a, N) **Arguments** -- `a` — A value to rotate. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) -- `N` — The number of positions to rotate right. [`UInt8/16/32/64`](/reference/data-types/int-uint) +- `a` — A value to rotate. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) +- `N` — The number of positions to rotate right. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns the rotated value with type equal to that of `a`. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) +Returns the rotated value with type equal to that of `a`. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) **Examples** @@ -322,8 +322,8 @@ bitShiftLeft(a, N) **Arguments** -- `a` — A value to shift. [`(U)Int*`](/reference/data-types/int-uint) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `N` — The number of positions to shift. [`UInt8/16/32/64`](/reference/data-types/int-uint) +- `a` — A value to shift. [`(U)Int*`](/core/reference/data-types/int-uint) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `N` — The number of positions to shift. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** @@ -386,8 +386,8 @@ bitShiftRight(a, N) **Arguments** -- `a` — A value to shift. [`(U)Int*`](/reference/data-types/int-uint) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `N` — The number of positions to shift. [`UInt8/16/32/64`](/reference/data-types/int-uint) +- `a` — A value to shift. [`(U)Int*`](/core/reference/data-types/int-uint) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `N` — The number of positions to shift. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** @@ -445,24 +445,24 @@ bitSlice(s, offset[, length]) **Arguments** -- `s` — The String or Fixed String to slice. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `s` — The String or Fixed String to slice. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) - `offset` — Returns the starting bit position (1-based indexing). - Positive values: count from the beginning of the string. - Negative values: count from the end of the string. - [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) + [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) - `length` — Optional. The number of bits to extract. - Positive values: extract `length` bits. - Negative values: extract from the offset to `(string_length - |length|)`. - Omitted: extract from offset to end of string. - If length is not a multiple of 8, the result is padded with zeros on the right. - [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) + [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns a string containing the extracted bits, represented as a binary sequence. The result is always padded to byte boundaries (multiples of 8 bits) [`String`](/reference/data-types/string) +Returns a string containing the extracted bits, represented as a binary sequence. The result is always padded to byte boundaries (multiples of 8 bits) [`String`](/core/reference/data-types/string) **Examples** @@ -504,12 +504,12 @@ bitTest(a, i) **Arguments** -- `a` — Number to convert. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `i` — Position of the bit to return. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `a` — Number to convert. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `i` — Position of the bit to return. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the value of the bit at position `i` in the binary representation of `a` [`UInt8`](/reference/data-types/int-uint) +Returns the value of the bit at position `i` in the binary representation of `a` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -543,12 +543,12 @@ bitTestAll(a, index1[, index2, ... , indexN]) **Arguments** -- `a` — An integer value. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) -- `index1, ...` — One or multiple positions of bits. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) +- `a` — An integer value. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) +- `index1, ...` — One or multiple positions of bits. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns the result of the logical conjunction [`UInt8`](/reference/data-types/int-uint) +Returns the result of the logical conjunction [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -594,12 +594,12 @@ bitTestAny(a, index1[, index2, ... , indexN]) **Arguments** -- `a` — An integer value. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) -- `index1, ...` — One or multiple positions of bits. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) +- `a` — An integer value. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) +- `index1, ...` — One or multiple positions of bits. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns the result of the logical disjunction [`UInt8`](/reference/data-types/int-uint) +Returns the result of the logical disjunction [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -641,8 +641,8 @@ bitXor(a, b) **Arguments** -- `a` — First value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `b` — Second value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `a` — First value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `b` — Second value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** diff --git a/reference/functions/regular-functions/bitmap-functions.mdx b/core/reference/functions/regular-functions/bitmap-functions.mdx similarity index 72% rename from reference/functions/regular-functions/bitmap-functions.mdx rename to core/reference/functions/regular-functions/bitmap-functions.mdx index 50ebcde3..3cc6df4c 100644 --- a/reference/functions/regular-functions/bitmap-functions.mdx +++ b/core/reference/functions/regular-functions/bitmap-functions.mdx @@ -29,11 +29,11 @@ bitmapAnd(bitmap1, bitmap2) **Arguments** -- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns a bitmap containing bits present in both input bitmaps [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction) +Returns a bitmap containing bits present in both input bitmaps [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction) **Examples** @@ -63,11 +63,11 @@ bitmapAndCardinality(bitmap1, bitmap2) **Arguments** -- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns the number of set bits in the intersection of the two bitmaps [`UInt64`](/reference/data-types/int-uint) +Returns the number of set bits in the intersection of the two bitmaps [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -97,11 +97,11 @@ bitmapAndnot(bitmap1, bitmap2) **Arguments** -- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns a bitmap containing set bits present in the first bitmap but not in the second [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction) +Returns a bitmap containing set bits present in the first bitmap but not in the second [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction) **Examples** @@ -131,11 +131,11 @@ bitmapAndnotCardinality(bitmap1, bitmap2) **Arguments** -- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns the number of set bits in the result of `bitmap1 AND-NOT bitmap2` [`UInt64`](/reference/data-types/int-uint) +Returns the number of set bits in the result of `bitmap1 AND-NOT bitmap2` [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -155,7 +155,7 @@ SELECT bitmapAndnotCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS re Introduced in: v20.1.0 -Builds a bitmap from an unsigned integer array. It is the opposite of function [`bitmapToArray`](/reference/functions/regular-functions/bitmap-functions#bitmapToArray). +Builds a bitmap from an unsigned integer array. It is the opposite of function [`bitmapToArray`](/core/reference/functions/regular-functions/bitmap-functions#bitmapToArray). **Syntax** @@ -165,11 +165,11 @@ bitmapBuild(array) **Arguments** -- `array` — Unsigned integer array. [`Array(UInt*)`](/reference/data-types/array) +- `array` — Unsigned integer array. [`Array(UInt*)`](/core/reference/data-types/array) **Returned value** -Returns a bitmap from the provided array [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction) +Returns a bitmap from the provided array [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction) **Examples** @@ -199,11 +199,11 @@ bitmapCardinality(bitmap) **Arguments** -- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns the number of bits set in the bitmap [`UInt64`](/reference/data-types/int-uint) +Returns the number of bits set in the bitmap [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -233,11 +233,11 @@ bitmapContains(bitmap, value) **Arguments** -- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `value` — Element to check for. [(U)Int8/16/32/64](/reference/data-types/int-uint) +- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `value` — Element to check for. [(U)Int8/16/32/64](/core/reference/data-types/int-uint) **Returned value** -Returns `1` if the bitmap contains the specified value, otherwise `0` [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the bitmap contains the specified value, otherwise `0` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -267,11 +267,11 @@ bitmapHasAll(bitmap1, bitmap2) **Arguments** -- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns `1` if all set bits of the second bitmap are present in the first bitmap, otherwise `0` [`UInt8`](/reference/data-types/int-uint) +Returns `1` if all set bits of the second bitmap are present in the first bitmap, otherwise `0` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -301,11 +301,11 @@ bitmapHasAny(bitmap1, bitmap2) **Arguments** -- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns `1` if any bits of the second bitmap are present in the first bitmap, otherwise `0` [`UInt8`](/reference/data-types/int-uint) +Returns `1` if any bits of the second bitmap are present in the first bitmap, otherwise `0` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -335,11 +335,11 @@ bitmapMax(bitmap) **Arguments** -- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns the position of the greatest bit set in the bitmap, otherwise `0` [`UInt64`](/reference/data-types/int-uint) +Returns the position of the greatest bit set in the bitmap, otherwise `0` [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -369,11 +369,11 @@ bitmapMin(bitmap) **Arguments** -- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns the position of the smallest bit set in the bitmap, or `UINT32_MAX`/`UINT64_MAX` [`UInt64`](/reference/data-types/int-uint) +Returns the position of the smallest bit set in the bitmap, or `UINT32_MAX`/`UINT64_MAX` [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -403,11 +403,11 @@ bitmapOr(bitmap1, bitmap2) **Arguments** -- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns a bitmap containing set bits present in either input bitmap [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction) +Returns a bitmap containing set bits present in either input bitmap [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction) **Examples** @@ -437,11 +437,11 @@ bitmapOrCardinality(bitmap1, bitmap2) **Arguments** -- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns the number of set bits in the union of the two bitmaps [`UInt64`](/reference/data-types/int-uint) +Returns the number of set bits in the union of the two bitmaps [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -471,11 +471,11 @@ bitmapSubsetInRange(bitmap, start, end) **Arguments** -- `bitmap` — Bitmap to extract the subset from. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `start` — Start of the range (inclusive). [`UInt*`](/reference/data-types/int-uint) - `end` — End of the range (exclusive). [`UInt*`](/reference/data-types/int-uint) +- `bitmap` — Bitmap to extract the subset from. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `start` — Start of the range (inclusive). [`UInt*`](/core/reference/data-types/int-uint) - `end` — End of the range (exclusive). [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns a bitmap containing only the set bits in the specified range [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction) +Returns a bitmap containing only the set bits in the specified range [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction) **Examples** @@ -505,11 +505,11 @@ bitmapSubsetLimit(bitmap, range_start, cardinality_limit) **Arguments** -- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `range_start` — Start of the range (inclusive). [`UInt32`](/reference/data-types/int-uint) - `cardinality_limit` — Maximum cardinality of the subset. [`UInt32`](/reference/data-types/int-uint) +- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `range_start` — Start of the range (inclusive). [`UInt32`](/core/reference/data-types/int-uint) - `cardinality_limit` — Maximum cardinality of the subset. [`UInt32`](/core/reference/data-types/int-uint) **Returned value** -Returns a bitmap containing at most `cardinality_limit` set bits, starting from `range_start` [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction) +Returns a bitmap containing at most `cardinality_limit` set bits, starting from `range_start` [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction) **Examples** @@ -529,7 +529,7 @@ SELECT bitmapToArray(bitmapSubsetLimit(bitmapBuild([1, 5, 3, 2, 8]), 3, 2)) AS r Introduced in: v20.1.0 -Converts a bitmap to an array of unsigned integers. It is the opposite of function [`bitmapBuild`](/reference/functions/regular-functions/bitmap-functions#bitmapBuild). +Converts a bitmap to an array of unsigned integers. It is the opposite of function [`bitmapBuild`](/core/reference/functions/regular-functions/bitmap-functions#bitmapBuild). **Syntax** @@ -539,11 +539,11 @@ bitmapToArray(bitmap) **Arguments** -- `bitmap` — Bitmap to convert. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap` — Bitmap to convert. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns an array of unsigned integers contained in the bitmap [`Array(UInt*)`](/reference/data-types/array) +Returns an array of unsigned integers contained in the bitmap [`Array(UInt*)`](/core/reference/data-types/array) **Examples** @@ -574,11 +574,11 @@ bitmapTransform(bitmap, from_array, to_array) **Arguments** -- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `from_array` — Array of original set bits to be replaced. [`Array(T)`](/reference/data-types/array). - `to_array` — Array of new set bits to replace with. [`Array(T)`](/reference/data-types/array). +- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `from_array` — Array of original set bits to be replaced. [`Array(T)`](/core/reference/data-types/array). - `to_array` — Array of new set bits to replace with. [`Array(T)`](/core/reference/data-types/array). **Returned value** -Returns a bitmap with elements transformed according to the given mapping [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction) +Returns a bitmap with elements transformed according to the given mapping [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction) **Examples** @@ -608,11 +608,11 @@ bitmapXor(bitmap1, bitmap2) **Arguments** -- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns a bitmap containing set bits present in either input bitmap, but not in both [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction) +Returns a bitmap containing set bits present in either input bitmap, but not in both [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction) **Examples** @@ -642,11 +642,11 @@ bitmapXorCardinality(bitmap1, bitmap2) **Arguments** -- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). +- `bitmap1` — First bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `bitmap2` — Second bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). **Returned value** -Returns the number of set bits in the symmetric difference of the two bitmaps [`UInt64`](/reference/data-types/int-uint) +Returns the number of set bits in the symmetric difference of the two bitmaps [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -676,11 +676,11 @@ subBitmap(bitmap, offset, cardinality_limit) **Arguments** -- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction). - `offset` — Number of set bits to skip from the beginning (zero-based). [`UInt32`](/reference/data-types/int-uint) - `cardinality_limit` — Maximum number of set bits to include in the subset. [`UInt32`](/reference/data-types/int-uint) +- `bitmap` — Bitmap object. [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction). - `offset` — Number of set bits to skip from the beginning (zero-based). [`UInt32`](/core/reference/data-types/int-uint) - `cardinality_limit` — Maximum number of set bits to include in the subset. [`UInt32`](/core/reference/data-types/int-uint) **Returned value** -Returns a bitmap containing at most `limit` set bits, starting after skipping `offset` set bits in ascending order [`AggregateFunction(groupBitmap, T)`](/reference/data-types/aggregatefunction) +Returns a bitmap containing at most `limit` set bits, starting after skipping `offset` set bits in ascending order [`AggregateFunction(groupBitmap, T)`](/core/reference/data-types/aggregatefunction) **Examples** diff --git a/reference/functions/regular-functions/comparison-functions.mdx b/core/reference/functions/regular-functions/comparison-functions.mdx similarity index 88% rename from reference/functions/regular-functions/comparison-functions.mdx rename to core/reference/functions/regular-functions/comparison-functions.mdx index a0318efa..6fd4d0be 100644 --- a/reference/functions/regular-functions/comparison-functions.mdx +++ b/core/reference/functions/regular-functions/comparison-functions.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' ## Comparison rules {#comparison-rules} -The comparison functions below return `0` or `1` with type [UInt8](/reference/data-types/int-uint). Only values within the same group can be +The comparison functions below return `0` or `1` with type [UInt8](/core/reference/data-types/int-uint). Only values within the same group can be compared (e.g. `UInt16` and `UInt64`) but not across groups (e.g. `UInt16` and `DateTime`). Comparison of numbers and strings are possible, as is comparison of strings with dates and dates with times. For tuples and arrays, the comparison is lexicographic meaning that the comparison is made for each corresponding @@ -54,7 +54,7 @@ equals(a, b) **Returned value** -Returns `1` if `a` is equal to `b`, otherwise `0` [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `a` is equal to `b`, otherwise `0` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -89,7 +89,7 @@ globalIn(x, set) **Returned value** -Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -122,7 +122,7 @@ globalIn(x, set) **Returned value** -Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -155,7 +155,7 @@ globalNotIn(x, set) **Returned value** -Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -188,7 +188,7 @@ globalNotIn(x, set) **Returned value** -Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -221,7 +221,7 @@ globalNotNullIn(x, set) **Returned value** -Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -254,7 +254,7 @@ globalNotNullIn(x, set) **Returned value** -Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -287,7 +287,7 @@ globalNullIn(x, set) **Returned value** -Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -320,7 +320,7 @@ globalNullIn(x, set) **Returned value** -Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -353,7 +353,7 @@ greater(a, b) **Returned value** -Returns `1` if `a` is greater than `b`, otherwise `0` [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `a` is greater than `b`, otherwise `0` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -388,7 +388,7 @@ greaterOrEquals(a, b) **Returned value** -Returns `1` if `a` is greater than or equal to `b`, otherwise `0` [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `a` is greater than or equal to `b`, otherwise `0` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -423,7 +423,7 @@ in(x, set) **Returned value** -Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -456,7 +456,7 @@ in(x, set) **Returned value** -Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -487,15 +487,15 @@ isDistinctFrom(x, y) **Arguments** -- `x` — First value to compare. Can be any ClickHouse data type. [`Any`](/reference/data-types) -- `y` — Second value to compare. Can be any ClickHouse data type. [`Any`](/reference/data-types) +- `x` — First value to compare. Can be any ClickHouse data type. [`Any`](/core/reference/data-types) +- `y` — Second value to compare. Can be any ClickHouse data type. [`Any`](/core/reference/data-types) **Returned value** Returns `true` if the two values are different, treating NULLs as comparable: - Returns `true` if x != y. - Returns `true` if exactly one of x or y is NULL. - - Returns `false` if x = y, or both x and y are NULL. [`Bool`](/reference/data-types/boolean) + - Returns `false` if x = y, or both x and y are NULL. [`Bool`](/core/reference/data-types/boolean) **Examples** @@ -532,15 +532,15 @@ isNotDistinctFrom(x, y) **Arguments** -- `x` — First value to compare. Can be any ClickHouse data type. [`Any`](/reference/data-types) -- `y` — Second value to compare. Can be any ClickHouse data type. [`Any`](/reference/data-types) +- `x` — First value to compare. Can be any ClickHouse data type. [`Any`](/core/reference/data-types) +- `y` — Second value to compare. Can be any ClickHouse data type. [`Any`](/core/reference/data-types) **Returned value** Returns `true` if the two values are equal, treating NULLs as comparable: - Returns `true` if x = y. - Returns `true` if both x and y are NULL. - - Returns `false` if x != y, or exactly one of x or y is NULL. [`Bool`](/reference/data-types/boolean) + - Returns `false` if x != y, or exactly one of x or y is NULL. [`Bool`](/core/reference/data-types/boolean) **Examples** @@ -579,7 +579,7 @@ less(a, b) **Returned value** -Returns `1` if `a` is less than `b`, otherwise `0` [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `a` is less than `b`, otherwise `0` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -614,7 +614,7 @@ lessOrEquals(a, b) **Returned value** -Returns `1` if `a` is less than or equal to `b`, otherwise `0` [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `a` is less than or equal to `b`, otherwise `0` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -650,7 +650,7 @@ notEquals(a, b) **Returned value** -Returns `1` if `a` is not equal to `b`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `a` is not equal to `b`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -685,7 +685,7 @@ notIn(x, set) **Returned value** -Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -718,7 +718,7 @@ notIn(x, set) **Returned value** -Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -751,7 +751,7 @@ notNullIn(x, set) **Returned value** -Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -784,7 +784,7 @@ notNullIn(x, set) **Returned value** -Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is not in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -817,7 +817,7 @@ nullIn(x, set) **Returned value** -Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -850,7 +850,7 @@ nullIn(x, set) **Returned value** -Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if x is in the set, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/regular-functions/conditional-functions.mdx b/core/reference/functions/regular-functions/conditional-functions.mdx similarity index 92% rename from reference/functions/regular-functions/conditional-functions.mdx rename to core/reference/functions/regular-functions/conditional-functions.mdx index db4d0d2d..2fd5b94e 100644 --- a/reference/functions/regular-functions/conditional-functions.mdx +++ b/core/reference/functions/regular-functions/conditional-functions.mdx @@ -69,7 +69,7 @@ ClickHouse supports two forms of CASE: 1. `CASE WHEN ... THEN ... ELSE ... END`
    - This form allows full flexibility and is internally implemented using the [multiIf](/reference/functions/regular-functions/conditional-functions#multiIf) function. Each condition is evaluated independently, and expressions can include non-constant values. + This form allows full flexibility and is internally implemented using the [multiIf](/core/reference/functions/regular-functions/conditional-functions#multiIf) function. Each condition is evaluated independently, and expressions can include non-constant values. ```sql SELECT @@ -330,11 +330,11 @@ greatest(x1[, x2, ...]) **Arguments** -- `x1[, x2, ...]` — One or multiple values to compare. All arguments must be of comparable types. [`Any`](/reference/data-types) +- `x1[, x2, ...]` — One or multiple values to compare. All arguments must be of comparable types. [`Any`](/core/reference/data-types) **Returned value** -Returns the greatest value among the arguments, promoted to the largest compatible type. [`Any`](/reference/data-types) +Returns the greatest value among the arguments, promoted to the largest compatible type. [`Any`](/core/reference/data-types) **Examples** @@ -385,7 +385,7 @@ Performs conditional branching. - If the condition `cond` evaluates to a non-zero value, the function returns the result of the expression `then`. - If `cond` evaluates to zero or NULL, the result of the `else` expression is returned. -The setting [`short_circuit_function_evaluation`](/reference/settings/session-settings#short_circuit_function_evaluation) controls whether short-circuit evaluation is used. +The setting [`short_circuit_function_evaluation`](/core/reference/settings/session-settings#short_circuit_function_evaluation) controls whether short-circuit evaluation is used. If enabled, the `then` expression is evaluated only on rows where `cond` is true and the `else` expression where `cond` is false. @@ -405,7 +405,7 @@ if(cond, then, else) **Arguments** -- `cond` — The evaluated condition. [`UInt8`](/reference/data-types/int-uint) or [`Nullable(UInt8)`](/reference/data-types/nullable) or [`NULL`](/reference/syntax#null) +- `cond` — The evaluated condition. [`UInt8`](/core/reference/data-types/int-uint) or [`Nullable(UInt8)`](/core/reference/data-types/nullable) or [`NULL`](/core/reference/syntax#null) - `then` — The expression returned if `cond` is true. - `else` — The expression returned if `cond` is false or `NULL`. **Returned value** @@ -452,11 +452,11 @@ least(x1[, x2, ...]) **Arguments** -- `x1[, x2, ...]` — A single value or multiple values to compare. All arguments must be of comparable types. [`Any`](/reference/data-types) +- `x1[, x2, ...]` — A single value or multiple values to compare. All arguments must be of comparable types. [`Any`](/core/reference/data-types) **Returned value** -Returns the least value among the arguments, promoted to the largest compatible type. [`Any`](/reference/data-types) +Returns the least value among the arguments, promoted to the largest compatible type. [`Any`](/core/reference/data-types) **Examples** @@ -502,11 +502,11 @@ SELECT least(toDateTime32(now() + toIntervalDay(1)), toDateTime64(now(), 3)); Introduced in: v1.1.0 -Allows writing the [`CASE`](/reference/operators#conditional-expression) operator more compactly in the query. +Allows writing the [`CASE`](/core/reference/operators#conditional-expression) operator more compactly in the query. Evaluates each condition in order. For the first condition that is true (non-zero and not `NULL`), returns the corresponding branch value. If none of the conditions are true, returns the `else` value. -Setting [`short_circuit_function_evaluation`](/reference/settings/session-settings#short_circuit_function_evaluation) controls +Setting [`short_circuit_function_evaluation`](/core/reference/settings/session-settings#short_circuit_function_evaluation) controls whether short-circuit evaluation is used. If enabled, the `then_i` expression is evaluated only on rows where `((NOT cond_1) AND ... AND (NOT cond_{i-1}) AND cond_i)` is true. @@ -529,7 +529,7 @@ multiIf(cond_1, then_1, cond_2, then_2, ..., else) **Arguments** -- `cond_N` — The N-th evaluated condition which controls if `then_N` is returned. [`UInt8`](/reference/data-types/int-uint) or [`Nullable(UInt8)`](/reference/data-types/nullable) or [`NULL`](/reference/syntax#null) +- `cond_N` — The N-th evaluated condition which controls if `then_N` is returned. [`UInt8`](/core/reference/data-types/int-uint) or [`Nullable(UInt8)`](/core/reference/data-types/nullable) or [`NULL`](/core/reference/syntax#null) - `then_N` — The result of the function when `cond_N` is true. - `else` — The result of the function if none of the conditions is true. **Returned value** diff --git a/reference/functions/regular-functions/date-time-functions.mdx b/core/reference/functions/regular-functions/date-time-functions.mdx similarity index 75% rename from reference/functions/regular-functions/date-time-functions.mdx rename to core/reference/functions/regular-functions/date-time-functions.mdx index 53a8ce01..52541197 100644 --- a/reference/functions/regular-functions/date-time-functions.mdx +++ b/core/reference/functions/regular-functions/date-time-functions.mdx @@ -58,7 +58,7 @@ UTCTimestamp() **Returned value** -Returns the current date and time at the moment of query analysis. [`DateTime`](/reference/data-types/datetime) +Returns the current date and time at the moment of query analysis. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -79,7 +79,7 @@ SELECT UTCTimestamp() Introduced in: v23.9.0 Converts a number containing the year, month and day number to a `Date`. -This function is the opposite of function [`toYYYYMMDD()`](/reference/functions/regular-functions/date-time-functions#toYYYYMMDD). +This function is the opposite of function [`toYYYYMMDD()`](/core/reference/functions/regular-functions/date-time-functions#toYYYYMMDD). The output is undefined if the input does not encode a valid Date value. @@ -91,11 +91,11 @@ YYYYMMDDToDate(YYYYMMDD) **Arguments** -- `YYYYMMDD` — Number containing the year, month and day. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `YYYYMMDD` — Number containing the year, month and day. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a `Date` value from the provided arguments [`Date`](/reference/data-types/date) +Returns a `Date` value from the provided arguments [`Date`](/core/reference/data-types/date) **Examples** @@ -116,7 +116,7 @@ SELECT YYYYMMDDToDate(20230911); Introduced in: v23.9.0 Converts a number containing the year, month and day number to a `Date32`. -This function is the opposite of function [`toYYYYMMDD()`](/reference/functions/regular-functions/date-time-functions#toYYYYMMDD). +This function is the opposite of function [`toYYYYMMDD()`](/core/reference/functions/regular-functions/date-time-functions#toYYYYMMDD). The output is undefined if the input does not encode a valid `Date32` value. @@ -128,11 +128,11 @@ YYYYMMDDToDate32(YYYYMMDD) **Arguments** -- `YYYYMMDD` — Number containing the year, month and day. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `YYYYMMDD` — Number containing the year, month and day. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a `Date32` value from the provided arguments [`Date32`](/reference/data-types/date32) +Returns a `Date32` value from the provided arguments [`Date32`](/core/reference/data-types/date32) **Examples** @@ -153,7 +153,7 @@ SELECT YYYYMMDDToDate32(20000507); Introduced in: v23.9.0 Converts a number containing the year, month, day, hour, minute, and second to a `DateTime`. -This function is the opposite of function [`toYYYYMMDDhhmmss()`](/reference/functions/regular-functions/date-time-functions#toYYYYMMDDhhmmss). +This function is the opposite of function [`toYYYYMMDDhhmmss()`](/core/reference/functions/regular-functions/date-time-functions#toYYYYMMDDhhmmss). The output is undefined if the input does not encode a valid `DateTime` value. @@ -165,12 +165,12 @@ YYYYMMDDhhmmssToDateTime(YYYYMMDDhhmmss[, timezone]) **Arguments** -- `YYYYMMDDhhmmss` — Number containing the year, month, day, hour, minute, and second. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `timezone` — Timezone name. [`String`](/reference/data-types/string) +- `YYYYMMDDhhmmss` — Number containing the year, month, day, hour, minute, and second. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `timezone` — Timezone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `DateTime` value from the provided arguments [`DateTime`](/reference/data-types/datetime) +Returns a `DateTime` value from the provided arguments [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -191,7 +191,7 @@ SELECT YYYYMMDDToDateTime(20230911131415); Introduced in: v23.9.0 Converts a number containing the year, month, day, hour, minute, and second to a `DateTime64`. -This function is the opposite of function [`toYYYYMMDDhhmmss()`](/reference/functions/regular-functions/date-time-functions#toYYYYMMDDhhmmss). +This function is the opposite of function [`toYYYYMMDDhhmmss()`](/core/reference/functions/regular-functions/date-time-functions#toYYYYMMDDhhmmss). The output is undefined if the input does not encode a valid `DateTime64` value. @@ -203,13 +203,13 @@ YYYYMMDDhhmmssToDateTime64(YYYYMMDDhhmmss[, precision[, timezone]]) **Arguments** -- `YYYYMMDDhhmmss` — Number containing the year, month, day, hour, minute, and second. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `precision` — Precision for the fractional part (0-9). [`UInt8`](/reference/data-types/int-uint) -- `timezone` — Timezone name. [`String`](/reference/data-types/string) +- `YYYYMMDDhhmmss` — Number containing the year, month, day, hour, minute, and second. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `precision` — Precision for the fractional part (0-9). [`UInt8`](/core/reference/data-types/int-uint) +- `timezone` — Timezone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `DateTime64` value from the provided arguments [`DateTime64`](/reference/data-types/datetime64) +Returns a `DateTime64` value from the provided arguments [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -241,12 +241,12 @@ addDate(datetime, interval) **Arguments** -- `datetime` — The date or date with time to which `interval` is added. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `interval` — Interval to add. [`Interval`](/reference/data-types/int-uint) +- `datetime` — The date or date with time to which `interval` is added. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `interval` — Interval to add. [`Interval`](/core/reference/data-types/int-uint) **Returned value** -Returns date or date with time obtained by adding `interval` to `datetime`. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns date or date with time obtained by adding `interval` to `datetime`. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -277,12 +277,12 @@ addDays(datetime, num) **Arguments** -- `datetime` — Date or date with time to add specified number of days to. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of days to add. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to add specified number of days to. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of days to add. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` plus `num` days. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` plus `num` days. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -332,12 +332,12 @@ addHours(datetime, num) **Arguments** -- `datetime` — Date or date with time to add specified number of hours to. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of hours to add. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to add specified number of hours to. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of hours to add. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` plus `num` hours [`DateTime`](/reference/data-types/datetime) or [`DateTime64(3)`](/reference/data-types/datetime64) +Returns `datetime` plus `num` hours [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64(3)`](/core/reference/data-types/datetime64) **Examples** @@ -391,12 +391,12 @@ addInterval(interval_1, interval_2) **Arguments** -- `interval_1` — First interval or tuple of intervals. [`Interval`](/reference/data-types/int-uint) or [`Tuple(Interval)`](/reference/data-types/tuple) -- `interval_2` — Second interval to be added. [`Interval`](/reference/data-types/int-uint) +- `interval_1` — First interval or tuple of intervals. [`Interval`](/core/reference/data-types/int-uint) or [`Tuple(Interval)`](/core/reference/data-types/tuple) +- `interval_2` — Second interval to be added. [`Interval`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple of intervals [`Tuple(Interval)`](/reference/data-types/tuple) +Returns a tuple of intervals [`Tuple(Interval)`](/core/reference/data-types/tuple) **Examples** @@ -435,12 +435,12 @@ addMicroseconds(datetime, num) **Arguments** -- `datetime` — Date with time to add specified number of microseconds to. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of microseconds to add. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date with time to add specified number of microseconds to. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of microseconds to add. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `date_time` plus `num` microseconds [`DateTime64`](/reference/data-types/datetime64) +Returns `date_time` plus `num` microseconds [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -488,12 +488,12 @@ addMilliseconds(datetime, num) **Arguments** -- `datetime` — Date with time to add specified number of milliseconds to. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of milliseconds to add. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date with time to add specified number of milliseconds to. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of milliseconds to add. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` plus `num` milliseconds [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` plus `num` milliseconds [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -541,12 +541,12 @@ addMinutes(datetime, num) **Arguments** -- `datetime` — Date or date with time to add specified number of minutes to. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of minutes to add. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to add specified number of minutes to. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of minutes to add. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` plus `num` minutes [`DateTime`](/reference/data-types/datetime) or [`DateTime64(3)`](/reference/data-types/datetime64) +Returns `datetime` plus `num` minutes [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64(3)`](/core/reference/data-types/datetime64) **Examples** @@ -596,12 +596,12 @@ addMonths(datetime, num) **Arguments** -- `datetime` — Date or date with time to add specified number of months to. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of months to add. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to add specified number of months to. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of months to add. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` plus `num` months [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` plus `num` months [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -651,12 +651,12 @@ addNanoseconds(datetime, num) **Arguments** -- `datetime` — Date with time to add specified number of nanoseconds to. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of nanoseconds to add. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date with time to add specified number of nanoseconds to. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of nanoseconds to add. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` plus `num` nanoseconds [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` plus `num` nanoseconds [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -704,12 +704,12 @@ addQuarters(datetime, num) **Arguments** -- `datetime` — Date or date with time to add specified number of quarters to. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of quarters to add. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to add specified number of quarters to. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of quarters to add. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` plus `num` quarters [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` plus `num` quarters [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -759,12 +759,12 @@ addSeconds(datetime, num) **Arguments** -- `datetime` — Date or date with time to add specified number of seconds to. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of seconds to add. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to add specified number of seconds to. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of seconds to add. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` plus `num` seconds [`DateTime`](/reference/data-types/datetime) or [`DateTime64(3)`](/reference/data-types/datetime64) +Returns `datetime` plus `num` seconds [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64(3)`](/core/reference/data-types/datetime64) **Examples** @@ -814,12 +814,12 @@ addTupleOfIntervals(datetime, intervals) **Arguments** -- `datetime` — Date or date with time to add intervals to. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `intervals` — Tuple of intervals to add to `datetime`. [`Tuple(Interval)`](/reference/data-types/tuple) +- `datetime` — Date or date with time to add intervals to. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `intervals` — Tuple of intervals to add to `datetime`. [`Tuple(Interval)`](/core/reference/data-types/tuple) **Returned value** -Returns `date` with added `intervals` [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `date` with added `intervals` [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -851,12 +851,12 @@ addWeeks(datetime, num) **Arguments** -- `datetime` — Date or date with time to add specified number of weeks to. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of weeks to add. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to add specified number of weeks to. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of weeks to add. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` plus `num` weeks [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` plus `num` weeks [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -906,12 +906,12 @@ addYears(datetime, num) **Arguments** -- `datetime` — Date or date with time to add specified number of years to. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of years to add. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to add specified number of years to. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of years to add. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` plus `num` years [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` plus `num` years [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -982,13 +982,13 @@ age('unit', startdate, enddate[, timezone]) | month | `month`, `months`, `mm`, `m` | | quarter | `quarter`, `quarters`, `qq`, `q` | | year | `year`, `years`, `yyyy`, `yy` | - - `startdate` — The first time value to subtract (the subtrahend). [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `enddate` — The second time value to subtract from (the minuend). [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone name. If specified, it is applied to both startdate and enddate. If not specified, timezones of startdate and enddate are used. If they are not the same, the result is unspecified. [`String`](/reference/data-types/string) + - `startdate` — The first time value to subtract (the subtrahend). [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `enddate` — The second time value to subtract from (the minuend). [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone name. If specified, it is applied to both startdate and enddate. If not specified, timezones of startdate and enddate are used. If they are not the same, the result is unspecified. [`String`](/core/reference/data-types/string) **Returned value** -Returns the difference between enddate and startdate expressed in unit. [`Int32`](/reference/data-types/int-uint) +Returns the difference between enddate and startdate expressed in unit. [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -1035,12 +1035,12 @@ changeDay(date_or_datetime, value) **Arguments** -- `date_or_datetime` — The value to change. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `value` — The new value. [`(U)Int*`](/reference/data-types/int-uint) +- `date_or_datetime` — The value to change. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `value` — The new value. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of the same type as `date_or_datetime` with modified day component. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns a value of the same type as `date_or_datetime` with modified day component. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1068,12 +1068,12 @@ changeHour(date_or_datetime, value) **Arguments** -- `date_or_datetime` — The value to change. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `value` — The new value. [`(U)Int*`](/reference/data-types/int-uint) +- `date_or_datetime` — The value to change. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `value` — The new value. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of the same type as `date_or_datetime` with modified hour component. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns a value of the same type as `date_or_datetime` with modified hour component. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1101,12 +1101,12 @@ changeMinute(date_or_datetime, value) **Arguments** -- `date_or_datetime` — The value to change. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `value` — The new value. [`(U)Int*`](/reference/data-types/int-uint) +- `date_or_datetime` — The value to change. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `value` — The new value. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of the same type as `date_or_datetime` with modified minute component. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns a value of the same type as `date_or_datetime` with modified minute component. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1134,12 +1134,12 @@ changeMonth(date_or_datetime, value) **Arguments** -- `date_or_datetime` — The value to change. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `value` — The new value. [`(U)Int*`](/reference/data-types/int-uint) +- `date_or_datetime` — The value to change. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `value` — The new value. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of the same type as `date_or_datetime` with modified month component. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns a value of the same type as `date_or_datetime` with modified month component. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1167,12 +1167,12 @@ changeSecond(date_or_datetime, value) **Arguments** -- `date_or_datetime` — The value to change. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `value` — The new value. [`(U)Int*`](/reference/data-types/int-uint) +- `date_or_datetime` — The value to change. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `value` — The new value. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of the same type as `date_or_datetime` with modified seconds component. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns a value of the same type as `date_or_datetime` with modified seconds component. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1200,12 +1200,12 @@ changeYear(date_or_datetime, value) **Arguments** -- `date_or_datetime` — The value to change. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `value` — The new value. [`(U)Int*`](/reference/data-types/int-uint) +- `date_or_datetime` — The value to change. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `value` — The new value. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of the same type as `date_or_datetime` with modified year component. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns a value of the same type as `date_or_datetime` with modified year component. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1259,13 +1259,13 @@ dateDiff(unit, startdate, enddate[, timezone]) | month | `month`, `months`, `mm`, `m` | | quarter | `quarter`, `quarters`, `qq`, `q` | | year | `year`, `years`, `yyyy`, `yy` | - - `startdate` — The first time value to subtract (the subtrahend). [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `enddate` — The second time value to subtract from (the minuend). [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone name. If specified, it is applied to both `startdate` and `enddate`. If not specified, timezones of `startdate` and `enddate` are used. If they are not the same, the result is unspecified. [`String`](/reference/data-types/string) + - `startdate` — The first time value to subtract (the subtrahend). [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `enddate` — The second time value to subtract from (the minuend). [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone name. If specified, it is applied to both `startdate` and `enddate`. If not specified, timezones of `startdate` and `enddate` are used. If they are not the same, the result is unspecified. [`String`](/core/reference/data-types/string) **Returned value** -Returns the difference between `enddate` and `startdate` expressed in `unit`. [`Int64`](/reference/data-types/int-uint) +Returns the difference between `enddate` and `startdate` expressed in `unit`. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -1325,13 +1325,13 @@ dateName(date_part, date[, timezone]) **Arguments** -- `date_part` — The part of the date that you want to extract. [`String`](/reference/data-types/string) -- `datetime` — A date or date with time value. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `date_part` — The part of the date that you want to extract. [`String`](/core/reference/data-types/string) +- `datetime` — A date or date with time value. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns the specified part of date. [`String`](/reference/data-types/string) +Returns the specified part of date. [`String`](/core/reference/data-types/string) **Examples** @@ -1370,9 +1370,9 @@ dateTrunc(unit, datetime[, timezone]) - `unit` — The type of interval to truncate the result. Possible values: `nanosecond` (only DateTime64), `microsecond` (only DateTime64), `millisecond` (only DateTime64), `second`, `minute`, `hour`, `day`, `week`, `month`, `quarter`, `year`. - [`String`](/reference/data-types/string) -- `datetime` — Date and time. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone name for the returned datetime. If not specified, the function uses the timezone of the `datetime` parameter. [`String`](/reference/data-types/string) + [`String`](/core/reference/data-types/string) +- `datetime` — Date and time. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone name for the returned datetime. If not specified, the function uses the timezone of the `datetime` parameter. [`String`](/core/reference/data-types/string) **Returned value** @@ -1380,9 +1380,9 @@ Returns the truncated date and time value. | Unit Argument | `datetime` Argument | Return Type | |-----------------------------|---------------------------------------|----------------------------------------------------------------------------------------| -| Year, Quarter, Month, Week | `Date32` or `DateTime64` or `Date` or `DateTime` | [`Date32`](/reference/data-types/date32) or [`Date`](/reference/data-types/date) | -| Day, Hour, Minute, Second | `Date32`, `DateTime64`, `Date`, or `DateTime` | [`DateTime64`](/reference/data-types/datetime64) or [`DateTime`](/reference/data-types/datetime) | -| Millisecond, Microsecond, | Any | [`DateTime64`](/reference/data-types/datetime64) | +| Year, Quarter, Month, Week | `Date32` or `DateTime64` or `Date` or `DateTime` | [`Date32`](/core/reference/data-types/date32) or [`Date`](/core/reference/data-types/date) | +| Day, Hour, Minute, Second | `Date32`, `DateTime64`, `Date`, or `DateTime` | [`DateTime64`](/core/reference/data-types/datetime64) or [`DateTime`](/core/reference/data-types/datetime) | +| Millisecond, Microsecond, | Any | [`DateTime64`](/core/reference/data-types/datetime64) | | Nanosecond | | with scale 3, 6, or 9 | **Examples** @@ -1419,7 +1419,7 @@ Formats a date or date with time according to the given format string. `format` `formatDateTime` uses MySQL datetime format style, refer to the [mysql docs](https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format). -The opposite operation of this function is [`parseDateTime`](/reference/functions/regular-functions/type-conversion-functions#parseDateTime). +The opposite operation of this function is [`parseDateTime`](/core/reference/functions/regular-functions/type-conversion-functions#parseDateTime). Using replacement fields, you can define a pattern for the resulting string. The example column in the table below shows formatting result for `2018-01-02 22:33:44`. @@ -1481,13 +1481,13 @@ formatDateTime(datetime, format[, timezone]) **Arguments** -- `datetime` — A date or date time to format. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `format` — Format string with replacement fields. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone name for the formatted time. [`String`](/reference/data-types/string) +- `datetime` — A date or date time to format. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `format` — Format string with replacement fields. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone name for the formatted time. [`String`](/core/reference/data-types/string) **Returned value** -Returns time and date values according to the determined format. [`String`](/reference/data-types/string) +Returns time and date values according to the determined format. [`String`](/core/reference/data-types/string) **Examples** @@ -1548,7 +1548,7 @@ Introduced in: v20.1.0 Similar to `formatDateTime`, except that it formats datetime in Joda style instead of MySQL style. Refer to [Joda Time documentation](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html). -The opposite operation of this function is [`parseDateTimeInJodaSyntax`](/reference/functions/regular-functions/type-conversion-functions#parseDateTimeInJodaSyntax). +The opposite operation of this function is [`parseDateTimeInJodaSyntax`](/core/reference/functions/regular-functions/type-conversion-functions#parseDateTimeInJodaSyntax). Using replacement fields, you can define a pattern for the resulting string. @@ -1589,13 +1589,13 @@ formatDateTimeInJodaSyntax(datetime, format[, timezone]) **Arguments** -- `datetime` — A date or date time to format. [`DateTime`](/reference/data-types/datetime) or [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime64`](/reference/data-types/datetime64) -- `format` — Format string with Joda-style replacement fields. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone name for the formatted time. [`String`](/reference/data-types/string) +- `datetime` — A date or date time to format. [`DateTime`](/core/reference/data-types/datetime) or [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime64`](/core/reference/data-types/datetime64) +- `format` — Format string with Joda-style replacement fields. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone name for the formatted time. [`String`](/core/reference/data-types/string) **Returned value** -Returns time and date values according to the determined format. [`String`](/reference/data-types/string) +Returns time and date values according to the determined format. [`String`](/core/reference/data-types/string) **Examples** @@ -1617,7 +1617,7 @@ Introduced in: v23.11.0 For a given number of days elapsed since [1 January 0000](https://en.wikipedia.org/wiki/Year_zero), returns the corresponding date in the [proleptic Gregorian calendar defined by ISO 8601](https://en.wikipedia.org/wiki/Gregorian_calendar#Proleptic_Gregorian_calendar). -The calculation is the same as in MySQL's `FROM_DAYS()` function. The result is undefined if it cannot be represented within the bounds of the [Date](/reference/data-types/date) type. +The calculation is the same as in MySQL's `FROM_DAYS()` function. The result is undefined if it cannot be represented within the bounds of the [Date](/core/reference/data-types/date) type. **Syntax** @@ -1630,11 +1630,11 @@ fromDaysSinceYearZero(days) **Arguments** -- `days` — The number of days passed since year zero. [`UInt32`](/reference/data-types/int-uint) +- `days` — The number of days passed since year zero. [`UInt32`](/core/reference/data-types/int-uint) **Returned value** -Returns the date corresponding to the number of days passed since year zero. [`Date`](/reference/data-types/date) +Returns the date corresponding to the number of days passed since year zero. [`Date`](/core/reference/data-types/date) **Examples** @@ -1657,7 +1657,7 @@ fromDaysSinceYearZero(toDaysSinceYearZero(toDate('2023-09-08'))) AS date2 Introduced in: v23.11.0 For a given number of days elapsed since [1 January 0000](https://en.wikipedia.org/wiki/Year_zero), returns the corresponding date in the [proleptic Gregorian calendar defined by ISO 8601](https://en.wikipedia.org/wiki/Gregorian_calendar#Proleptic_Gregorian_calendar). -The calculation is the same as in MySQL's `FROM_DAYS()` function. The result is undefined if it cannot be represented within the bounds of the [`Date32`](/reference/data-types/date32) type. +The calculation is the same as in MySQL's `FROM_DAYS()` function. The result is undefined if it cannot be represented within the bounds of the [`Date32`](/core/reference/data-types/date32) type. **Syntax** @@ -1668,11 +1668,11 @@ fromDaysSinceYearZero32(days) **Arguments** -- `days` — The number of days passed since year zero. [`UInt32`](/reference/data-types/int-uint) +- `days` — The number of days passed since year zero. [`UInt32`](/core/reference/data-types/int-uint) **Returned value** -Returns the date corresponding to the number of days passed since year zero. [`Date32`](/reference/data-types/date32) +Returns the date corresponding to the number of days passed since year zero. [`Date32`](/core/reference/data-types/date32) **Examples** @@ -1705,11 +1705,11 @@ fromModifiedJulianDay(day) **Arguments** -- `day` — Modified Julian Day number. [`(U)Int*`](/reference/data-types/int-uint) +- `day` — Modified Julian Day number. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns date in text form. [`String`](/reference/data-types/string) +Returns date in text form. [`String`](/core/reference/data-types/string) **Examples** @@ -1740,11 +1740,11 @@ fromModifiedJulianDayOrNull(day) **Arguments** -- `day` — Modified Julian Day number. [`(U)Int*`](/reference/data-types/int-uint) +- `day` — Modified Julian Day number. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns date in text form for valid `day` argument, otherwise `null`. [`Nullable(String)`](/reference/data-types/nullable) +Returns date in text form for valid `day` argument, otherwise `null`. [`Nullable(String)`](/core/reference/data-types/nullable) **Examples** @@ -1781,12 +1781,12 @@ fromUTCTimestamp(datetime, time_zone) **Arguments** -- `datetime` — A date or date with time const value or an expression. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `time_zone` — A String type const value or an expression representing the time zone. [`String`](/reference/data-types/string) +- `datetime` — A date or date with time const value or an expression. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `time_zone` — A String type const value or an expression representing the time zone. [`String`](/core/reference/data-types/string) **Returned value** -Returns DateTime/DateTime64 in the specified timezone. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns DateTime/DateTime64 in the specified timezone. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1810,8 +1810,8 @@ This function converts a Unix timestamp to a calendar date and a time of a day. It can be called in two ways: -- When given a single argument of type [`Integer`](/reference/data-types/int-uint), it returns a value of type [`DateTime`](/reference/data-types/datetime), i.e. behaves like [`toDateTime`](/reference/functions/regular-functions/type-conversion-functions#toDateTime). -- When given two or three arguments where the first argument is a value of type [`Integer`](/reference/data-types/int-uint), [`Date`](/reference/data-types/date), [`Date32`](/reference/data-types/date32), [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64), the second argument is a constant format string and the third argument is an optional constant time zone string, the function returns a value of type [`String`](/reference/data-types/string), i.e. it behaves like [`formatDateTime`](#formatDateTime). +- When given a single argument of type [`Integer`](/core/reference/data-types/int-uint), it returns a value of type [`DateTime`](/core/reference/data-types/datetime), i.e. behaves like [`toDateTime`](/core/reference/functions/regular-functions/type-conversion-functions#toDateTime). +- When given two or three arguments where the first argument is a value of type [`Integer`](/core/reference/data-types/int-uint), [`Date`](/core/reference/data-types/date), [`Date32`](/core/reference/data-types/date32), [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64), the second argument is a constant format string and the third argument is an optional constant time zone string, the function returns a value of type [`String`](/core/reference/data-types/string), i.e. it behaves like [`formatDateTime`](#formatDateTime). In this case, [MySQL's datetime format style](https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format) is used. @@ -1826,13 +1826,13 @@ fromUnixTimestamp(timestamp[, format[, timezone]]) **Arguments** -- `timestamp` — Unix timestamp or date/date with time value. [`(U)Int*`](/reference/data-types/int-uint) or [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `format` — Optional. Constant format string for output formatting. [`String`](/reference/data-types/string) -- `timezone` — Optional. Constant time zone string. [`String`](/reference/data-types/string) +- `timestamp` — Unix timestamp or date/date with time value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `format` — Optional. Constant format string for output formatting. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Constant time zone string. [`String`](/core/reference/data-types/string) **Returned value** -Returns `DateTime` of the timestamp when called with one argument, or a String when called with two or three arguments. [`DateTime`](/reference/data-types/datetime) or [`String`](/reference/data-types/string) +Returns `DateTime` of the timestamp when called with one argument, or a String when called with two or three arguments. [`DateTime`](/core/reference/data-types/datetime) or [`String`](/core/reference/data-types/string) **Examples** @@ -1868,9 +1868,9 @@ This function converts a Unix timestamp to a calendar date and a time of a day. It can be called in two ways: -When given a single argument of type [`Integer`](/reference/data-types/int-uint), it returns a value of type [`DateTime`](/reference/data-types/datetime), i.e. behaves like [`toDateTime`](/reference/functions/regular-functions/type-conversion-functions#toDateTime). +When given a single argument of type [`Integer`](/core/reference/data-types/int-uint), it returns a value of type [`DateTime`](/core/reference/data-types/datetime), i.e. behaves like [`toDateTime`](/core/reference/functions/regular-functions/type-conversion-functions#toDateTime). -When given two or three arguments where the first argument is a value of type [`Integer`](/reference/data-types/int-uint), [`Date`](/reference/data-types/date), [`Date32`](/reference/data-types/date32), [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64), the second argument is a constant format string and the third argument is an optional constant time zone string, the function returns a value of type [`String`](/reference/data-types/string), i.e. it behaves like [`formatDateTimeInJodaSyntax`](#formatDateTimeInJodaSyntax). In this case, [Joda datetime format style](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) is used. +When given two or three arguments where the first argument is a value of type [`Integer`](/core/reference/data-types/int-uint), [`Date`](/core/reference/data-types/date), [`Date32`](/core/reference/data-types/date32), [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64), the second argument is a constant format string and the third argument is an optional constant time zone string, the function returns a value of type [`String`](/core/reference/data-types/string), i.e. it behaves like [`formatDateTimeInJodaSyntax`](#formatDateTimeInJodaSyntax). In this case, [Joda datetime format style](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) is used. **Syntax** @@ -1882,13 +1882,13 @@ fromUnixTimestampInJodaSyntax(timestamp, format[, timezone]) **Arguments** -- `timestamp` — Unix timestamp or date/time value. [`(U)Int*`](/reference/data-types/int-uint) or [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `format` — Optional. Constant format string using Joda syntax for output formatting. [`String`](/reference/data-types/string) -- `timezone` — Optional. Constant time zone string. [`String`](/reference/data-types/string) +- `timestamp` — Unix timestamp or date/time value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `format` — Optional. Constant format string using Joda syntax for output formatting. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Constant time zone string. [`String`](/core/reference/data-types/string) **Returned value** -Returns a date with time when called with one argument, or a String when called with two or three arguments.} [`DateTime`](/reference/data-types/datetime) or [`String`](/reference/data-types/string) +Returns a date with time when called with one argument, or a String when called with two or three arguments.} [`DateTime`](/core/reference/data-types/datetime) or [`String`](/core/reference/data-types/string) **Examples** @@ -1922,14 +1922,14 @@ makeDate(year, day_of_year) **Arguments** -- `year` — Year number. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `month` — Month number (1-12). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `day` — Day of the month (1-31). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `day_of_year` — Day of the year (1-365). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `year` — Year number. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `month` — Month number (1-12). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `day` — Day of the month (1-31). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `day_of_year` — Day of the year (1-365). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a `Date` value constructed from the provided arguments [`Date`](/reference/data-types/date) +Returns a `Date` value constructed from the provided arguments [`Date`](/core/reference/data-types/date) **Examples** @@ -1975,14 +1975,14 @@ makeDate32(year, day_of_year) **Arguments** -- `year` — Year number. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `month` — Month number (1-12). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `day` — Day of the month (1-31). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `day_of_year` — Day of the year (1-365). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `year` — Year number. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `month` — Month number (1-12). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `day` — Day of the month (1-31). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `day_of_year` — Day of the year (1-365). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a `Date32` value constructed from the provided arguments [`Date32`](/reference/data-types/date32) +Returns a `Date32` value constructed from the provided arguments [`Date32`](/core/reference/data-types/date32) **Examples** @@ -2025,17 +2025,17 @@ makeDateTime(year, month, day, hour, minute, second[, timezone]) **Arguments** -- `year` — Year number. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `month` — Month number (1-12). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `day` — Day of the month (1-31). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `hour` — Hour (0-23). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `minute` — Minute (0-59). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `second` — Second (0-59). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `timezone` — Timezone name. [`String`](/reference/data-types/string) +- `year` — Year number. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `month` — Month number (1-12). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `day` — Day of the month (1-31). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `hour` — Hour (0-23). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `minute` — Minute (0-59). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `second` — Second (0-59). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `timezone` — Timezone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `DateTime` value constructed from the provided arguments [`DateTime`](/reference/data-types/datetime) +Returns a `DateTime` value constructed from the provided arguments [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -2066,19 +2066,19 @@ makeDateTime64(year, month, day, hour, minute, second[, fraction[, precision[, t **Arguments** -- `year` — Year number. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `month` — Month number (1-12). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `day` — Day of the month (1-31). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `hour` — Hour (0-23). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `minute` — Minute (0-59). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `second` — Second (0-59). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `fraction` — Fractional part of the second. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `precision` — Precision for the fractional part (0-9). [`UInt8`](/reference/data-types/int-uint) -- `timezone` — Timezone name. [`String`](/reference/data-types/string) +- `year` — Year number. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `month` — Month number (1-12). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `day` — Day of the month (1-31). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `hour` — Hour (0-23). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `minute` — Minute (0-59). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `second` — Second (0-59). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `fraction` — Fractional part of the second. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `precision` — Precision for the fractional part (0-9). [`UInt8`](/core/reference/data-types/int-uint) +- `timezone` — Timezone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `DateTime64` value constructed from the provided arguments [`DateTime64`](/reference/data-types/datetime64) +Returns a `DateTime64` value constructed from the provided arguments [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -2109,11 +2109,11 @@ monthName(datetime) **Arguments** -- `datetime` — Date or date with time. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — Date or date with time. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the name of the month. [`String`](/reference/data-types/string) +Returns the name of the month. [`String`](/core/reference/data-types/string) **Examples** @@ -2147,11 +2147,11 @@ now([timezone]) **Arguments** -- `timezone` — Optional. Timezone name for the returned value. [`String`](/reference/data-types/string) +- `timezone` — Optional. Timezone name for the returned value. [`String`](/core/reference/data-types/string) **Returned value** -Returns the current date and time. [`DateTime`](/reference/data-types/datetime) +Returns the current date and time. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -2206,12 +2206,12 @@ now64([scale[, timezone]]) **Arguments** -- `scale` — Optional. Tick size (precision): 10^-precision seconds. Valid range: [0 : 9]. Typically, are used - 3 (default) (milliseconds), 6 (microseconds), 9 (nanoseconds). [`UInt8`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone name for the returned value. [`String`](/reference/data-types/string) +- `scale` — Optional. Tick size (precision): 10^-precision seconds. Valid range: [0 : 9]. Typically, are used - 3 (default) (milliseconds), 6 (microseconds), 9 (nanoseconds). [`UInt8`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone name for the returned value. [`String`](/core/reference/data-types/string) **Returned value** -Returns current date and time with sub-second precision. [`DateTime64`](/reference/data-types/datetime64) +Returns current date and time with sub-second precision. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -2244,11 +2244,11 @@ nowInBlock([timezone]) **Arguments** -- `timezone` — Optional. Timezone name for the returned value. [`String`](/reference/data-types/string) +- `timezone` — Optional. Timezone name for the returned value. [`String`](/core/reference/data-types/string) **Returned value** -Returns the current date and time at the moment of processing of each block of data. [`DateTime`](/reference/data-types/datetime) +Returns the current date and time at the moment of processing of each block of data. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -2289,12 +2289,12 @@ nowInBlock64([scale[, timezone]]) **Arguments** -- `scale` — Optional. Tick size (precision): 10^-precision seconds. Valid range: [0 : 9]. Typically, are used - 3 (default) (milliseconds), 6 (microseconds), 9 (nanoseconds). [`UInt8`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone name for the returned value. [`String`](/reference/data-types/string) +- `scale` — Optional. Tick size (precision): 10^-precision seconds. Valid range: [0 : 9]. Typically, are used - 3 (default) (milliseconds), 6 (microseconds), 9 (nanoseconds). [`UInt8`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone name for the returned value. [`String`](/core/reference/data-types/string) **Returned value** -Returns the current date and time at the moment of processing of each block of data with sub-second precision. [`DateTime64`](/reference/data-types/datetime64) +Returns the current date and time at the moment of processing of each block of data with sub-second precision. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -2322,7 +2322,7 @@ FORMAT PrettyCompactMonoBlock Introduced in: v23.6.0 -Returns the timezone of the server, i.e. the value of the [`timezone`](/reference/settings/server-settings/settings#timezone) setting. +Returns the timezone of the server, i.e. the value of the [`timezone`](/core/reference/settings/server-settings/settings#timezone) setting. If the function is executed in the context of a distributed table, then it generates a normal column with values relevant to each shard. Otherwise, it produces a constant value. @@ -2340,7 +2340,7 @@ serverTimezone() **Returned value** -Returns the server timezone as a [`String`](/reference/data-types/string) +Returns the server timezone as a [`String`](/core/reference/data-types/string) **Examples** @@ -2372,12 +2372,12 @@ subDate(datetime, interval) **Arguments** -- `datetime` — The date or date with time from which `interval` is subtracted. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `interval` — Interval to subtract. [`Interval`](/reference/data-types/int-uint) +- `datetime` — The date or date with time from which `interval` is subtracted. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `interval` — Interval to subtract. [`Interval`](/core/reference/data-types/int-uint) **Returned value** -Returns date or date with time obtained by subtracting `interval` from `datetime`. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns date or date with time obtained by subtracting `interval` from `datetime`. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -2408,12 +2408,12 @@ subtractDays(datetime, num) **Arguments** -- `datetime` — Date or date with time to subtract specified number of days from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of days to subtract. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to subtract specified number of days from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of days to subtract. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` minus `num` days [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` minus `num` days [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -2463,12 +2463,12 @@ subtractHours(datetime, num) **Arguments** -- `datetime` — Date or date with time to subtract specified number of hours from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of hours to subtract. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to subtract specified number of hours from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of hours to subtract. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` minus `num` hours [`DateTime`](/reference/data-types/datetime) or [`DateTime64(3)`](/reference/data-types/datetime64) +Returns `datetime` minus `num` hours [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64(3)`](/core/reference/data-types/datetime64) **Examples** @@ -2521,12 +2521,12 @@ subtractInterval(interval_1, interval_2) **Arguments** -- `interval_1` — First interval or interval of tuples. [`Interval`](/reference/data-types/int-uint) or [`Tuple(Interval)`](/reference/data-types/tuple) -- `interval_2` — Second interval to be negated. [`Interval`](/reference/data-types/int-uint) +- `interval_1` — First interval or interval of tuples. [`Interval`](/core/reference/data-types/int-uint) or [`Tuple(Interval)`](/core/reference/data-types/tuple) +- `interval_2` — Second interval to be negated. [`Interval`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple of intervals [`Tuple(T)`](/reference/data-types/tuple) +Returns a tuple of intervals [`Tuple(T)`](/core/reference/data-types/tuple) **Examples** @@ -2565,12 +2565,12 @@ subtractMicroseconds(datetime, num) **Arguments** -- `datetime` — Date with time to subtract specified number of microseconds from. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of microseconds to subtract. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date with time to subtract specified number of microseconds from. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of microseconds to subtract. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` minus `num` microseconds [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` minus `num` microseconds [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -2618,12 +2618,12 @@ subtractMilliseconds(datetime, num) **Arguments** -- `datetime` — Date with time to subtract specified number of milliseconds from. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of milliseconds to subtract. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date with time to subtract specified number of milliseconds from. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of milliseconds to subtract. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` minus `num` milliseconds [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` minus `num` milliseconds [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -2671,12 +2671,12 @@ subtractMinutes(datetime, num) **Arguments** -- `datetime` — Date or date with time to subtract specified number of minutes from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of minutes to subtract. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to subtract specified number of minutes from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of minutes to subtract. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` minus `num` minutes [`DateTime`](/reference/data-types/datetime) or [`DateTime64(3)`](/reference/data-types/datetime64) +Returns `datetime` minus `num` minutes [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64(3)`](/core/reference/data-types/datetime64) **Examples** @@ -2726,12 +2726,12 @@ subtractMonths(datetime, num) **Arguments** -- `datetime` — Date or date with time to subtract specified number of months from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of months to subtract. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to subtract specified number of months from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of months to subtract. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` minus `num` months [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` minus `num` months [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -2781,12 +2781,12 @@ subtractNanoseconds(datetime, num) **Arguments** -- `datetime` — Date with time to subtract specified number of nanoseconds from. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of nanoseconds to subtract. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date with time to subtract specified number of nanoseconds from. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of nanoseconds to subtract. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` minus `num` nanoseconds [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` minus `num` nanoseconds [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -2834,12 +2834,12 @@ subtractQuarters(datetime, num) **Arguments** -- `datetime` — Date or date with time to subtract specified number of quarters from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of quarters to subtract. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to subtract specified number of quarters from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of quarters to subtract. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` minus `num` quarters [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` minus `num` quarters [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -2889,12 +2889,12 @@ subtractSeconds(datetime, num) **Arguments** -- `datetime` — Date or date with time to subtract specified number of seconds from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of seconds to subtract. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to subtract specified number of seconds from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of seconds to subtract. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` minus `num` seconds [`DateTime`](/reference/data-types/datetime) or [`DateTime64(3)`](/reference/data-types/datetime64) +Returns `datetime` minus `num` seconds [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64(3)`](/core/reference/data-types/datetime64) **Examples** @@ -2944,12 +2944,12 @@ subtractTupleOfIntervals(datetime, intervals) **Arguments** -- `datetime` — Date or date with time to subtract intervals from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `intervals` — Tuple of intervals to subtract from `datetime`. [`Tuple(Interval)`](/reference/data-types/tuple) +- `datetime` — Date or date with time to subtract intervals from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `intervals` — Tuple of intervals to subtract from `datetime`. [`Tuple(Interval)`](/core/reference/data-types/tuple) **Returned value** -Returns `date` with subtracted `intervals` [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `date` with subtracted `intervals` [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -2980,12 +2980,12 @@ subtractWeeks(datetime, num) **Arguments** -- `datetime` — Date or date with time to subtract specified number of weeks from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of weeks to subtract. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to subtract specified number of weeks from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of weeks to subtract. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` minus `num` weeks [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` minus `num` weeks [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -3035,12 +3035,12 @@ subtractYears(datetime, num) **Arguments** -- `datetime` — Date or date with time to subtract specified number of years from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `num` — Number of years to subtract. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `datetime` — Date or date with time to subtract specified number of years from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `num` — Number of years to subtract. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `datetime` minus `num` years [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns `datetime` minus `num` years [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -3095,12 +3095,12 @@ timeDiff(startdate, enddate) **Arguments** -- `startdate` — The first time value to subtract (the subtrahend). [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `enddate` — The second time value to subtract from (the minuend). [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `startdate` — The first time value to subtract (the subtrahend). [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `enddate` — The second time value to subtract from (the minuend). [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the difference between `enddate` and `startdate` expressed in seconds. [`Int64`](/reference/data-types/int-uint) +Returns the difference between `enddate` and `startdate` expressed in seconds. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -3162,12 +3162,12 @@ timeSlot(time[, time_zone]) **Arguments** -- `time` — Time to round to the start of a half-an-hour length interval. [`DateTime`](/reference/data-types/datetime) or [`Date32`](/reference/data-types/date32) or [`DateTime64`](/reference/data-types/datetime64) -- `time_zone` — Optional. A String type const value or an expression representing the time zone. [`String`](/reference/data-types/string) +- `time` — Time to round to the start of a half-an-hour length interval. [`DateTime`](/core/reference/data-types/datetime) or [`Date32`](/core/reference/data-types/date32) or [`DateTime64`](/core/reference/data-types/datetime64) +- `time_zone` — Optional. A String type const value or an expression representing the time zone. [`String`](/core/reference/data-types/string) **Returned value** -Returns the time rounded to the start of a half-an-hour length interval. [`DateTime`](/reference/data-types/datetime) +Returns the time rounded to the start of a half-an-hour length interval. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -3202,13 +3202,13 @@ timeSlots(StartTime, Duration[, Size]) **Arguments** -- `StartTime` — Starting time for the interval. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `Duration` — Duration of the interval in seconds. [`UInt32`](/reference/data-types/int-uint) or [`DateTime64`](/reference/data-types/datetime64) -- `Size` — Optional. Size of time slots in seconds. Default is 1800 (30 minutes). [`UInt32`](/reference/data-types/int-uint) or [`DateTime64`](/reference/data-types/datetime64) +- `StartTime` — Starting time for the interval. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `Duration` — Duration of the interval in seconds. [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime64`](/core/reference/data-types/datetime64) +- `Size` — Optional. Size of time slots in seconds. Default is 1800 (30 minutes). [`UInt32`](/core/reference/data-types/int-uint) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns an array of DateTime/DateTime64 (return type matches the type of `StartTime`). For DateTime64, the return value's scale can differ from the scale of `StartTime` - the highest scale among all given arguments is taken. [`Array(DateTime)`](/reference/data-types/array) or [`Array(DateTime64)`](/reference/data-types/array) +Returns an array of DateTime/DateTime64 (return type matches the type of `StartTime`). For DateTime64, the return value's scale can differ from the scale of `StartTime` - the highest scale among all given arguments is taken. [`Array(DateTime)`](/core/reference/data-types/array) or [`Array(DateTime64)`](/core/reference/data-types/array) **Examples** @@ -3236,7 +3236,7 @@ SELECT timeSlots(toDateTime64('1980-12-12 21:01:02.1234', 4, 'UTC'), toDecimal64 Introduced in: v23.9.0 -Converts the first argument `expr` to type [`DateTime64(6)`](/reference/data-types/datetime64). +Converts the first argument `expr` to type [`DateTime64(6)`](/core/reference/data-types/datetime64). If a second argument `expr_time` is provided, it adds the specified time to the converted value. @@ -3248,12 +3248,12 @@ timestamp(expr[, expr_time]) **Arguments** -- `expr` — Date or date with time. [`String`](/reference/data-types/string) -- `expr_time` — Optional. Time to add to the converted value. [`String`](/reference/data-types/string) +- `expr` — Date or date with time. [`String`](/core/reference/data-types/string) +- `expr_time` — Optional. Time to add to the converted value. [`String`](/core/reference/data-types/string) **Returned value** -Returns the converted value of `expr`, or `expr` with added time [`DateTime64(6)`](/reference/data-types/datetime64) +Returns the converted value of `expr`, or `expr` with added time [`DateTime64(6)`](/core/reference/data-types/datetime64) **Examples** @@ -3303,7 +3303,7 @@ timezone() **Returned value** -Returns the canonical time zone name as a [`String`](/reference/data-types/string) +Returns the canonical time zone name as a [`String`](/core/reference/data-types/string) **Examples** @@ -3323,7 +3323,7 @@ SELECT timezone() Introduced in: v21.4.0 -Returns the timezone name of a [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) value. +Returns the timezone name of a [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) value. **Syntax** @@ -3336,12 +3336,12 @@ timezoneOf(datetime) **Arguments** -- `datetime` — A value of type. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone name to convert the `datetime` value's timezone to. [`String`](/reference/data-types/string) +- `datetime` — A value of type. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone name to convert the `datetime` value's timezone to. [`String`](/core/reference/data-types/string) **Returned value** -Returns the timezone name for `datetime` [`String`](/reference/data-types/string) +Returns the timezone name for `datetime` [`String`](/core/reference/data-types/string) **Examples** @@ -3375,11 +3375,11 @@ timezoneOffset(datetime) **Arguments** -- `datetime` — `DateTime` value to get the timezone offset for. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — `DateTime` value to get the timezone offset for. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the offset from UTC in seconds [`Int32`](/reference/data-types/int-uint) +Returns the offset from UTC in seconds [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -3415,11 +3415,11 @@ toDayOfMonth(datetime) **Arguments** -- `datetime` — Date or date with time to get the day of month from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — Date or date with time to get the day of month from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the day of the month of the given date/time [`UInt8`](/reference/data-types/int-uint) +Returns the day of the month of the given date/time [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3462,13 +3462,13 @@ toDayOfWeek(datetime[, mode[, timezone]]) **Arguments** -- `datetime` — Date or date with time to get the day of week from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `mode` — Optional. Integer specifying the week mode (0-3). Defaults to 0 if omitted. [`UInt8`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone to use for the conversion. [`String`](/reference/data-types/string) +- `datetime` — Date or date with time to get the day of week from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `mode` — Optional. Integer specifying the week mode (0-3). Defaults to 0 if omitted. [`UInt8`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone to use for the conversion. [`String`](/core/reference/data-types/string) **Returned value** -Returns the day of the week for the given `Date` or `DateTime` [`UInt8`](/reference/data-types/int-uint) +Returns the day of the week for the given `Date` or `DateTime` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3504,11 +3504,11 @@ toDayOfYear(datetime) **Arguments** -- `datetime` — Date or date with time to get the day of year from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — Date or date with time to get the day of year from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the day of the year of the given Date or DateTime [`UInt16`](/reference/data-types/int-uint) +Returns the day of the year of the given Date or DateTime [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -3541,11 +3541,11 @@ toDaysInMonth(datetime) **Arguments** -- `datetime` — Date or date with time to get the number of days in the month from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — Date or date with time to get the number of days in the month from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the number of days in the month of the given date/time. [`UInt8`](/reference/data-types/int-uint) +Returns the number of days in the month of the given date/time. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3581,12 +3581,12 @@ toDaysSinceYearZero(date[, time_zone]) **Arguments** -- `date` — The date or date with time for which to calculate the number of days since year zero from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `time_zone` — Time zone. [`String`](/reference/data-types/string) +- `date` — The date or date with time for which to calculate the number of days since year zero from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `time_zone` — Time zone. [`String`](/core/reference/data-types/string) **Returned value** -Returns the number of days passed since date `0000-01-01`. [`UInt32`](/reference/data-types/int-uint) +Returns the number of days passed since date `0000-01-01`. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -3619,11 +3619,11 @@ toHour(datetime) **Arguments** -- `datetime` — Date with time to get the hour from. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — Date with time to get the hour from. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the hour (0-23) of `datetime`. [`UInt8`](/reference/data-types/int-uint) +Returns the hour (0-23) of `datetime`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3661,12 +3661,12 @@ toISOWeek(datetime[, timezone]) **Arguments** -- `datetime` — Date or date with time to get the ISO week number from. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`Date32`](/reference/data-types/date32) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Time zone. [`String`](/reference/data-types/string) +- `datetime` — Date or date with time to get the ISO week number from. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`Date32`](/core/reference/data-types/date32) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Time zone. [`String`](/core/reference/data-types/string) **Returned value** -Returns the ISO week number according to ISO 8601 standard. Returns a number between 1 and 53. [`UInt8`](/reference/data-types/int-uint) +Returns the ISO week number according to ISO 8601 standard. Returns a number between 1 and 53. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3709,11 +3709,11 @@ toISOYear(datetime) **Arguments** -- `datetime` — The value with date or date with time. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — The value with date or date with time. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the input value converted to an ISO year number. [`UInt16`](/reference/data-types/int-uint) +Returns the input value converted to an ISO year number. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -3738,7 +3738,7 @@ Introduced in: v1.1.0 Rounds up a date or date with time to the last day of the month. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -3752,11 +3752,11 @@ toLastDayOfMonth(value) **Arguments** -- `value` — The date or date with time to round up to the last day of the month. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `value` — The date or date with time to round up to the last day of the month. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the date of the last day of the month for the given date or date with time. [`Date`](/reference/data-types/date) +Returns the date of the last day of the month for the given date or date with time. [`Date`](/core/reference/data-types/date) **Examples** @@ -3779,7 +3779,7 @@ Introduced in: v23.5.0 Rounds a date or date with time up to the nearest Saturday or Sunday. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -3791,13 +3791,13 @@ toLastDayOfWeek(datetime[, mode[, timezone]]) **Arguments** -- `datetime` — A date or date with time to convert. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`Date32`](/reference/data-types/date32) or [`DateTime64`](/reference/data-types/datetime64) -- `mode` — Determines the first day of the week as described in the `toWeek()` function. Default `0`. [`UInt8`](/reference/data-types/int-uint) -- `timezone` — Optional. The timezone to use for the conversion. If not specified, the server's timezone is used. [`String`](/reference/data-types/string) +- `datetime` — A date or date with time to convert. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`Date32`](/core/reference/data-types/date32) or [`DateTime64`](/core/reference/data-types/datetime64) +- `mode` — Determines the first day of the week as described in the `toWeek()` function. Default `0`. [`UInt8`](/core/reference/data-types/int-uint) +- `timezone` — Optional. The timezone to use for the conversion. If not specified, the server's timezone is used. [`String`](/core/reference/data-types/string) **Returned value** -Returns the date of the nearest Saturday or Sunday, on or after the given date, depending on the mode. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) +Returns the date of the nearest Saturday or Sunday, on or after the given date, depending on the mode. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) **Examples** @@ -3838,11 +3838,11 @@ toMillisecond(datetime) **Arguments** -- `datetime` — Date with time to get the millisecond from. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — Date with time to get the millisecond from. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the millisecond in the minute (0 - 59) of `datetime`. [`UInt16`](/reference/data-types/int-uint) +Returns the millisecond in the minute (0 - 59) of `datetime`. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -3875,11 +3875,11 @@ toMinute(datetime) **Arguments** -- `datetime` — Date with time to get the minute from. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — Date with time to get the minute from. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the minute of the hour (0 - 59) of `datetime`. [`UInt8`](/reference/data-types/int-uint) +Returns the minute of the hour (0 - 59) of `datetime`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3910,11 +3910,11 @@ toModifiedJulianDay(date) **Arguments** -- `date` — The date in String form. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `date` — The date in String form. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns Modified Julian Day number. [`Int32`](/reference/data-types/int-uint) +Returns Modified Julian Day number. [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -3945,11 +3945,11 @@ toModifiedJulianDayOrNull(date) **Arguments** -- `date` — Date in text form. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `date` — Date in text form. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the modified Julian day number for valid `date`, otherwise `null`. [`Nullable(Int32)`](/reference/data-types/nullable) +Returns the modified Julian day number for valid `date`, otherwise `null`. [`Nullable(Int32)`](/core/reference/data-types/nullable) **Examples** @@ -3976,7 +3976,7 @@ Introduced in: v1.1.0 Rounds down a date or date with time to the Monday of the same week. Returns the date. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -3988,11 +3988,11 @@ toMonday(value) **Arguments** -- `value` — Date or date with time to round down to the Monday of the week. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `value` — Date or date with time to round down to the Monday of the week. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the date of the Monday of the same week for the given date or date with time. [`Date`](/reference/data-types/date) +Returns the date of the Monday of the same week for the given date or date with time. [`Date`](/core/reference/data-types/date) **Examples** @@ -4027,11 +4027,11 @@ toMonth(datetime) **Arguments** -- `datetime` — Date or date with time to get the month from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — Date or date with time to get the month from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the month of the given date/time [`UInt8`](/reference/data-types/int-uint) +Returns the month of the given date/time [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -4061,7 +4061,7 @@ toMonthNumSinceEpoch(date) **Arguments** -- `date` — A date or date with time. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `date` — A date or date with time. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** @@ -4096,11 +4096,11 @@ toQuarter(datetime) **Arguments** -- `datetime` — Date or date with time to get the quarter of the year from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — Date or date with time to get the quarter of the year from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the quarter of the year for the given date/time [`UInt8`](/reference/data-types/int-uint) +Returns the quarter of the year for the given date/time [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -4133,11 +4133,11 @@ toRelativeDayNum(date) **Arguments** -- `date` — Date or date with time. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `date` — Date or date with time. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the number of days from a fixed reference point in the past. [`UInt32`](/reference/data-types/int-uint) +Returns the number of days from a fixed reference point in the past. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -4170,11 +4170,11 @@ toRelativeHourNum(date) **Arguments** -- `date` — Date or date with time. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `date` — Date or date with time. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the number of hours from a fixed reference point in the past. [`UInt32`](/reference/data-types/int-uint) +Returns the number of hours from a fixed reference point in the past. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -4207,11 +4207,11 @@ toRelativeMinuteNum(date) **Arguments** -- `date` — Date or date with time. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `date` — Date or date with time. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the number of minutes from a fixed reference point in the past. [`UInt32`](/reference/data-types/int-uint) +Returns the number of minutes from a fixed reference point in the past. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -4244,11 +4244,11 @@ toRelativeMonthNum(date) **Arguments** -- `date` — Date or date with time. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `date` — Date or date with time. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the number of months from a fixed reference point in the past. [`UInt32`](/reference/data-types/int-uint) +Returns the number of months from a fixed reference point in the past. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -4281,11 +4281,11 @@ toRelativeQuarterNum(date) **Arguments** -- `date` — Date or date with time. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `date` — Date or date with time. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the number of quarters from a fixed reference point in the past. [`UInt32`](/reference/data-types/int-uint) +Returns the number of quarters from a fixed reference point in the past. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -4318,11 +4318,11 @@ toRelativeSecondNum(date) **Arguments** -- `date` — Date or date with time. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `date` — Date or date with time. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the number of seconds from a fixed reference point in the past. [`UInt32`](/reference/data-types/int-uint) +Returns the number of seconds from a fixed reference point in the past. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -4355,11 +4355,11 @@ toRelativeWeekNum(date) **Arguments** -- `date` — Date or date with time. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `date` — Date or date with time. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the number of weeks from a fixed reference point in the past. [`UInt32`](/reference/data-types/int-uint) +Returns the number of weeks from a fixed reference point in the past. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -4392,11 +4392,11 @@ toRelativeYearNum(date) **Arguments** -- `date` — Date or date with time. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `date` — Date or date with time. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the number of years from a fixed reference point in the past. [`UInt16`](/reference/data-types/int-uint) +Returns the number of years from a fixed reference point in the past. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -4429,11 +4429,11 @@ toSecond(datetime) **Arguments** -- `datetime` — Date with time to get the second from. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — Date with time to get the second from. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the second in the minute (0 - 59) of `datetime`. [`UInt8`](/reference/data-types/int-uint) +Returns the second in the minute (0 - 59) of `datetime`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -4456,7 +4456,7 @@ Introduced in: v1.1.0 Rounds down a date with time to the start of the day. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -4468,11 +4468,11 @@ toStartOfDay(datetime) **Arguments** -- `datetime` — A date or date with time to round. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `datetime` — A date or date with time to round. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns the date with time rounded down to the start of the day. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns the date with time rounded down to the start of the day. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -4495,7 +4495,7 @@ Introduced in: v1.1.0 Rounds down the date with time to the start of the fifteen-minute interval. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -4507,11 +4507,11 @@ toStartOfFifteenMinutes(datetime) **Arguments** -- `datetime` — A date or date with time to round. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — A date or date with time to round. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the date with time rounded to the start of the nearest fifteen-minute interval. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns the date with time rounded to the start of the nearest fifteen-minute interval. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -4540,7 +4540,7 @@ Introduced in: v22.6.0 Rounds down a date with time to the start of the nearest five-minute interval. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -4554,11 +4554,11 @@ toStartOfFiveMinutes(datetime) **Arguments** -- `datetime` — A date with time to round. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — A date with time to round. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the date with time rounded to the start of the nearest five-minute interval. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns the date with time rounded to the start of the nearest five-minute interval. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -4587,7 +4587,7 @@ Introduced in: v1.1.0 Rounds down a date with time to the start of the hour. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -4599,11 +4599,11 @@ toStartOfHour(datetime) **Arguments** -- `datetime` — A date with time to round. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — A date with time to round. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the date with time rounded down to the start of the hour. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns the date with time rounded down to the start of the hour. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -4627,7 +4627,7 @@ Introduced in: v1.1.0 Rounds down a date or date with time to the first day of the ISO year, which can be different than a regular year. See [ISO week date](https://en.wikipedia.org/wiki/ISO_week_date). -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -4639,11 +4639,11 @@ toStartOfISOYear(value) **Arguments** -- `value` — The date or date with time to round down to the first day of the ISO year. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `value` — The date or date with time to round down to the first day of the ISO year. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the first day of the ISO year for the given date or date with time. [`Date`](/reference/data-types/date) +Returns the first day of the ISO year for the given date or date with time. [`Date`](/core/reference/data-types/date) **Examples** @@ -4705,12 +4705,12 @@ toStartOfInterval(value, INTERVAL x unit[, origin[, time_zone]]) **Arguments** -- `value` — Date or date with time value to round down. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `value` — Date or date with time value to round down. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) - `x` — Interval length number. - `unit` — Interval unit: YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND, NANOSECOND. - `time_zone` — Optional. Time zone name as a string. - `origin` — Optional. Origin point for calculation (second overload only). **Returned value** -Returns the start of the interval containing the input value. [`DateTime`](/reference/data-types/datetime) +Returns the start of the interval containing the input value. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -4753,12 +4753,12 @@ toStartOfMicrosecond(datetime[, timezone]) **Arguments** -- `datetime` — Date and time. [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone for the returned value. If not specified, the function uses the timezone of the `value` parameter. [`String`](/reference/data-types/string) +- `datetime` — Date and time. [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone for the returned value. If not specified, the function uses the timezone of the `value` parameter. [`String`](/core/reference/data-types/string) **Returned value** -Input value with sub-microseconds [`DateTime64`](/reference/data-types/datetime64) +Input value with sub-microseconds [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -4803,12 +4803,12 @@ toStartOfMillisecond(datetime[, timezone]) **Arguments** -- `datetime` — Date and time. [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone for the returned value. If not specified, the function uses the timezone of the `value` parameter. [`String`](/reference/data-types/string) +- `datetime` — Date and time. [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone for the returned value. If not specified, the function uses the timezone of the `value` parameter. [`String`](/core/reference/data-types/string) **Returned value** -Input value with sub-milliseconds. [`DateTime64`](/reference/data-types/datetime64) +Input value with sub-milliseconds. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -4845,7 +4845,7 @@ Introduced in: v1.1.0 Rounds down a date with time to the start of the minute. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -4857,11 +4857,11 @@ toStartOfMinute(datetime) **Arguments** -- `datetime` — A date with time to round. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — A date with time to round. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the date with time rounded down to the start of the minute. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns the date with time rounded down to the start of the minute. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -4888,7 +4888,7 @@ Introduced in: v1.1.0 Rounds down a date or date with time to the first day of the month. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -4900,11 +4900,11 @@ toStartOfMonth(value) **Arguments** -- `value` — The date or date with time to round down to the first day of the month. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `value` — The date or date with time to round down to the first day of the month. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the first day of the month for the given date or date with time. [`Date`](/reference/data-types/date) +Returns the first day of the month for the given date or date with time. [`Date`](/core/reference/data-types/date) **Examples** @@ -4935,12 +4935,12 @@ toStartOfNanosecond(datetime[, timezone]) **Arguments** -- `datetime` — Date and time. [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone for the returned value. If not specified, the function uses the timezone of the `value` parameter. [`String`](/reference/data-types/string) +- `datetime` — Date and time. [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone for the returned value. If not specified, the function uses the timezone of the `value` parameter. [`String`](/core/reference/data-types/string) **Returned value** -Input value with nanoseconds. [`DateTime64`](/reference/data-types/datetime64) +Input value with nanoseconds. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -4977,7 +4977,7 @@ Introduced in: v1.1.0 Rounds down a date or date with time to the first day of the quarter. The first day of the quarter is either 1 January, 1 April, 1 July, or 1 October. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -4989,11 +4989,11 @@ toStartOfQuarter(value) **Arguments** -- `value` — The date or date with time to round down to the first day of the quarter. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `value` — The date or date with time to round down to the first day of the quarter. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the first day of the quarter for the given date or date with time. [`Date`](/reference/data-types/date) +Returns the first day of the quarter for the given date or date with time. [`Date`](/core/reference/data-types/date) **Examples** @@ -5024,12 +5024,12 @@ toStartOfSecond(datetime[, timezone]) **Arguments** -- `datetime` — Date and time to truncate sub-seconds from. [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone for the returned value. If not specified, the function uses the timezone of the `value` parameter. [`String`](/reference/data-types/string) +- `datetime` — Date and time to truncate sub-seconds from. [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone for the returned value. If not specified, the function uses the timezone of the `value` parameter. [`String`](/core/reference/data-types/string) **Returned value** -Returns the input value without sub-seconds. [`DateTime64`](/reference/data-types/datetime64) +Returns the input value without sub-seconds. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -5066,7 +5066,7 @@ Introduced in: v20.1.0 Rounds down a date with time to the start of the nearest ten-minute interval. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -5078,11 +5078,11 @@ toStartOfTenMinutes(datetime) **Arguments** -- `datetime` — A date with time. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — A date with time. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the date with time rounded to the start of the nearest ten-minute interval. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns the date with time rounded to the start of the nearest ten-minute interval. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -5111,7 +5111,7 @@ Introduced in: v20.1.0 Rounds a date or date with time down to the nearest Sunday or Monday. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -5123,13 +5123,13 @@ toStartOfWeek(datetime[, mode[, timezone]]) **Arguments** -- `datetime` — A date or date with time to convert. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`Date32`](/reference/data-types/date32) or [`DateTime64`](/reference/data-types/datetime64) -- `mode` — Determines the first day of the week as described in the `toWeek()` function. Default `0`. [`UInt8`](/reference/data-types/int-uint) -- `timezone` — The timezone to use for the conversion. If not specified, the server's timezone is used. [`String`](/reference/data-types/string) +- `datetime` — A date or date with time to convert. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`Date32`](/core/reference/data-types/date32) or [`DateTime64`](/core/reference/data-types/datetime64) +- `mode` — Determines the first day of the week as described in the `toWeek()` function. Default `0`. [`UInt8`](/core/reference/data-types/int-uint) +- `timezone` — The timezone to use for the conversion. If not specified, the server's timezone is used. [`String`](/core/reference/data-types/string) **Returned value** -Returns the date of the nearest Sunday or Monday on, or prior to, the given date, depending on the mode. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) +Returns the date of the nearest Sunday or Monday on, or prior to, the given date, depending on the mode. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) **Examples** @@ -5160,7 +5160,7 @@ Introduced in: v1.1.0 Rounds down a date or date with time to the first day of the year. Returns the date as a `Date` object. -The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/reference/settings/session-settings#enable_extended_results_for_datetime_functions). +The return type can be configured by setting [`enable_extended_results_for_datetime_functions`](/core/reference/settings/session-settings#enable_extended_results_for_datetime_functions). @@ -5172,11 +5172,11 @@ toStartOfYear(value) **Arguments** -- `value` — The date or date with time to round down. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `value` — The date or date with time to round down. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the first day of the year for the given date/time [`Date`](/reference/data-types/date) +Returns the first day of the year for the given date/time [`Date`](/core/reference/data-types/date) **Examples** @@ -5212,12 +5212,12 @@ toTimeWithFixedDate(date[, timezone]) **Arguments** -- `date` — Date to convert to a time. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone for the returned value. [`String`](/reference/data-types/string) +- `date` — Date to convert to a time. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone for the returned value. [`String`](/core/reference/data-types/string) **Returned value** -Returns the time component of a date or date with time in the form of an offset to a fixed point in time (selected as 1970-01-02, currently). [`DateTime`](/reference/data-types/datetime) +Returns the time component of a date or date with time in the form of an offset to a fixed point in time (selected as 1970-01-02, currently). [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -5252,12 +5252,12 @@ toTimezone(datetime, timezone) **Arguments** -- `date` — The value to convert. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — The target time zone name. [`String`](/reference/data-types/string) +- `date` — The value to convert. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — The target time zone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the same timestamp as the input, but with the specified time zone [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns the same timestamp as the input, but with the specified time zone [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -5307,12 +5307,12 @@ toUTCTimestamp(datetime, time_zone) **Arguments** -- `datetime` — A date or date with time type const value or an expression. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `time_zone` — A String type const value or an expression representing the time zone. [`String`](/reference/data-types/string) +- `datetime` — A date or date with time type const value or an expression. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `time_zone` — A String type const value or an expression representing the time zone. [`String`](/core/reference/data-types/string) **Returned value** -Returns a date or date with time in UTC timezone. [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +Returns a date or date with time in UTC timezone. [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -5343,12 +5343,12 @@ toUnixTimestamp(date[, timezone]) **Arguments** -- `date` — Value to convert. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) or [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone to use for conversion. If not specified, the server's timezone is used. [`String`](/reference/data-types/string) +- `date` — Value to convert. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) or [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone to use for conversion. If not specified, the server's timezone is used. [`String`](/core/reference/data-types/string) **Returned value** -Returns the Unix timestamp. [`UInt32`](/reference/data-types/int-uint) +Returns the Unix timestamp. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -5411,7 +5411,7 @@ For mode values with a meaning of "contains January 1", the week contains Januar It does not matter how many days in the new year the week contained, even if it contained only one day. I.e. if the last week of December contains January 1 of the next year, it will be week 1 of the next year. -The first argument can also be specified as [`String`](/reference/data-types/string) in a format supported by [`parseDateTime64BestEffort()`](/reference/functions/regular-functions/type-conversion-functions#parseDateTime64BestEffort). Support for string arguments exists only for reasons of compatibility with MySQL which is expected by certain 3rd party tools. As string argument support may in future be made dependent on new MySQL-compatibility settings and because string parsing is generally slow, it is recommended to not use it. +The first argument can also be specified as [`String`](/core/reference/data-types/string) in a format supported by [`parseDateTime64BestEffort()`](/core/reference/functions/regular-functions/type-conversion-functions#parseDateTime64BestEffort). Support for string arguments exists only for reasons of compatibility with MySQL which is expected by certain 3rd party tools. As string argument support may in future be made dependent on new MySQL-compatibility settings and because string parsing is generally slow, it is recommended to not use it. **Syntax** @@ -5424,12 +5424,12 @@ toWeek(datetime[, mode[, time_zone]]) **Arguments** -- `datetime` — Date or date with time to get the week number from. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) -- `mode` — Optional. A mode `0` to `9` determines the first day of the week and the range of the week number. Default `0`. - `time_zone` — Optional. Time zone. [`String`](/reference/data-types/string) +- `datetime` — Date or date with time to get the week number from. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) +- `mode` — Optional. A mode `0` to `9` determines the first day of the week and the range of the week number. Default `0`. - `time_zone` — Optional. Time zone. [`String`](/core/reference/data-types/string) **Returned value** -Returns the week number according to the specified mode. [`UInt32`](/reference/data-types/int-uint) +Returns the week number according to the specified mode. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -5463,12 +5463,12 @@ toYYYYMM(datetime[, timezone]) **Arguments** -- `datetime` — A date or date with time to convert. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone for the conversion. If provided, the timezone must be a string constant. [`String`](/reference/data-types/string) +- `datetime` — A date or date with time to convert. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone for the conversion. If provided, the timezone must be a string constant. [`String`](/core/reference/data-types/string) **Returned value** -Returns a UInt32 number containing the year and month number (YYYY * 100 + MM). [`UInt32`](/reference/data-types/int-uint) +Returns a UInt32 number containing the year and month number (YYYY * 100 + MM). [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -5499,12 +5499,12 @@ toYYYYMMDD(datetime[, timezone]) **Arguments** -- `datetime` — A date or date with time to convert. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone for the conversion. If provided, the timezone must be a string constant. [`String`](/reference/data-types/string) +- `datetime` — A date or date with time to convert. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone for the conversion. If provided, the timezone must be a string constant. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `UInt32` number containing the year, month and day (YYYY * 10000 + MM * 100 + DD). [`UInt32`](/reference/data-types/int-uint) +Returns a `UInt32` number containing the year, month and day (YYYY * 10000 + MM * 100 + DD). [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -5536,12 +5536,12 @@ toYYYYMMDDhhmmss(datetime[, timezone]) **Arguments** -- `datetime` — Date or date with time to convert. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone for the conversion. If provided, the timezone must be a string constant. [`String`](/reference/data-types/string) +- `datetime` — Date or date with time to convert. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone for the conversion. If provided, the timezone must be a string constant. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `UInt64` number containing the year, month, day, hour, minute and second (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss). [`UInt64`](/reference/data-types/int-uint) +Returns a `UInt64` number containing the year, month, day, hour, minute and second (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss). [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -5574,11 +5574,11 @@ toYear(datetime) **Arguments** -- `datetime` — Date or date with time to get the year from. [`Date`](/reference/data-types/date) or [`Date32`](/reference/data-types/date32) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `datetime` — Date or date with time to get the year from. [`Date`](/core/reference/data-types/date) or [`Date32`](/core/reference/data-types/date32) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the year of the given Date or DateTime [`UInt16`](/reference/data-types/int-uint) +Returns the year of the given Date or DateTime [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -5608,7 +5608,7 @@ toYearNumSinceEpoch(date) **Arguments** -- `date` — A date or date with time to convert. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `date` — A date or date with time to convert. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** @@ -5632,11 +5632,11 @@ Introduced in: v20.1.0 Returns the year and week for a date. The year in the result may be different from the year in the date argument for the first and the last week of the year. -The mode argument works like the mode argument of [`toWeek()`](/reference/functions/regular-functions/date-time-functions#toWeek). +The mode argument works like the mode argument of [`toWeek()`](/core/reference/functions/regular-functions/date-time-functions#toWeek). Warning: The week number returned by `toYearWeek()` can be different from what the `toWeek()` returns. `toWeek()` always returns week number in the context of the given year, and in case `toWeek()` returns `0`, `toYearWeek()` returns the value corresponding to the last week of previous year. See `prev_yearWeek` in example below. -The first argument can also be specified as [`String`](/reference/data-types/string) in a format supported by [`parseDateTime64BestEffort()`](/reference/functions/regular-functions/type-conversion-functions#parseDateTime64BestEffort). Support for string arguments exists only for reasons of compatibility with MySQL which is expected by certain 3rd party tools. As string argument support may in future be made dependent on new MySQL-compatibility settings and because string parsing is generally slow, it is recommended to not use it. +The first argument can also be specified as [`String`](/core/reference/data-types/string) in a format supported by [`parseDateTime64BestEffort()`](/core/reference/functions/regular-functions/type-conversion-functions#parseDateTime64BestEffort). Support for string arguments exists only for reasons of compatibility with MySQL which is expected by certain 3rd party tools. As string argument support may in future be made dependent on new MySQL-compatibility settings and because string parsing is generally slow, it is recommended to not use it. **Syntax** @@ -5649,12 +5649,12 @@ toYearWeek(datetime[, mode[, timezone]]) **Arguments** -- `datetime` — Date or date with time to get the year and week of. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) -- `mode` — Optional. A mode `0` to `9` determines the first day of the week and the range of the week number. Default `0`. - `timezone` — Optional. Time zone. [`String`](/reference/data-types/string) +- `datetime` — Date or date with time to get the year and week of. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) +- `mode` — Optional. A mode `0` to `9` determines the first day of the week and the range of the week number. Default `0`. - `timezone` — Optional. Time zone. [`String`](/core/reference/data-types/string) **Returned value** -Returns year and week number as a combined integer value. [`UInt32`](/reference/data-types/int-uint) +Returns year and week number as a combined integer value. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -5690,7 +5690,7 @@ today() **Returned value** -Returns the current date [`Date`](/reference/data-types/date) +Returns the current date [`Date`](/core/reference/data-types/date) **Examples** @@ -5741,7 +5741,7 @@ yesterday() **Returned value** -Returns yesterday's date. [`Date`](/reference/data-types/date) +Returns yesterday's date. [`Date`](/core/reference/data-types/date) **Examples** diff --git a/reference/functions/regular-functions/distance-functions.mdx b/core/reference/functions/regular-functions/distance-functions.mdx similarity index 76% rename from reference/functions/regular-functions/distance-functions.mdx rename to core/reference/functions/regular-functions/distance-functions.mdx index 3c2f4f3a..cfc97a54 100644 --- a/reference/functions/regular-functions/distance-functions.mdx +++ b/core/reference/functions/regular-functions/distance-functions.mdx @@ -31,12 +31,12 @@ L1Distance(vector1, vector2) **Arguments** -- `vector1` — First vector. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) -- `vector2` — Second vector. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) +- `vector1` — First vector. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) +- `vector2` — Second vector. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the 1-norm distance. For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, the return type follows the arithmetic result type of the element-wise operations (integer types are preserved). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +Returns the 1-norm distance. For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, the return type follows the arithmetic result type of the element-wise operations (integer types are preserved). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Examples** @@ -69,11 +69,11 @@ L1Norm(vector) **Arguments** -- `vector` — Vector or tuple of numeric values. [`Array(T)`](/reference/data-types/array) or [`Tuple(T)`](/reference/data-types/tuple) +- `vector` — Vector or tuple of numeric values. [`Array(T)`](/core/reference/data-types/array) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** -Returns the L1-norm or [taxicab geometry](https://en.wikipedia.org/wiki/Taxicab_geometry) distance. [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +Returns the L1-norm or [taxicab geometry](https://en.wikipedia.org/wiki/Taxicab_geometry) distance. [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Examples** @@ -106,11 +106,11 @@ L1Normalize(tuple) **Arguments** -- `tuple` — A tuple of numeric values. [`Tuple(T)`](/reference/data-types/tuple) +- `tuple` — A tuple of numeric values. [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** -Returns the unit vector. [`Tuple(Float64)`](/reference/data-types/tuple) +Returns the unit vector. [`Tuple(Float64)`](/core/reference/data-types/tuple) **Examples** @@ -143,12 +143,12 @@ L2Distance(vector1, vector2) **Arguments** -- `vector1` — First vector. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) -- `vector2` — Second vector. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) +- `vector1` — First vector. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) +- `vector2` — Second vector. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the 2-norm distance. For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, always returns `Float64`. [`Float*`](/reference/data-types/float) +Returns the 2-norm distance. For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, always returns `Float64`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -181,13 +181,13 @@ L2DistanceTransposed(vector1, vector2, p) **Arguments** -- `vectors` — Vectors. [`QBit(T, UInt64)`](/reference/data-types/qbit) -- `reference` — Reference vector. [`Array(T)`](/reference/data-types/array) -- `p` — Number of bits from each vector element to use in the distance calculation (1 to element bit-width). The quantization level controls the precision-speed trade-off. Using fewer bits results in faster I/O and calculations with reduced accuracy, while using more bits increases accuracy at the cost of performance. [`UInt`](/reference/data-types/int-uint) +- `vectors` — Vectors. [`QBit(T, UInt64)`](/core/reference/data-types/qbit) +- `reference` — Reference vector. [`Array(T)`](/core/reference/data-types/array) +- `p` — Number of bits from each vector element to use in the distance calculation (1 to element bit-width). The quantization level controls the precision-speed trade-off. Using fewer bits results in faster I/O and calculations with reduced accuracy, while using more bits increases accuracy at the cost of performance. [`UInt`](/core/reference/data-types/int-uint) **Returned value** -Returns the approximate 2-norm distance. Always returns `Float64`. [`Float64`](/reference/data-types/float) +Returns the approximate 2-norm distance. Always returns `Float64`. [`Float64`](/core/reference/data-types/float) **Examples** @@ -222,11 +222,11 @@ L2Norm(vector) **Arguments** -- `vector` — Vector or tuple of numeric values. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) +- `vector` — Vector or tuple of numeric values. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the L2-norm or [Euclidean distance](https://en.wikipedia.org/wiki/Euclidean_distance). [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +Returns the L2-norm or [Euclidean distance](https://en.wikipedia.org/wiki/Euclidean_distance). [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Examples** @@ -259,11 +259,11 @@ L2Normalize(tuple) **Arguments** -- `tuple` — A tuple of numeric values. [`Tuple(T)`](/reference/data-types/tuple) +- `tuple` — A tuple of numeric values. [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** -Returns the unit vector. [`Tuple(Float64)`](/reference/data-types/tuple) +Returns the unit vector. [`Tuple(Float64)`](/core/reference/data-types/tuple) **Examples** @@ -296,12 +296,12 @@ L2SquaredDistance(vector1, vector2) **Arguments** -- `vector1` — First vector. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) -- `vector2` — Second vector. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) +- `vector1` — First vector. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) +- `vector2` — Second vector. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the sum of the squares of the differences between the corresponding elements of two vectors. For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, the return type follows the arithmetic result type of the element-wise operations (integer types are preserved). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +Returns the sum of the squares of the differences between the corresponding elements of two vectors. For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, the return type follows the arithmetic result type of the element-wise operations (integer types are preserved). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Examples** @@ -334,11 +334,11 @@ L2SquaredNorm(vector) **Arguments** -- `vector` — Vector or tuple of numeric values. [`Array(T)`](/reference/data-types/array) or [`Tuple(T)`](/reference/data-types/tuple) +- `vector` — Vector or tuple of numeric values. [`Array(T)`](/core/reference/data-types/array) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** -Returns the L2-norm squared. [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +Returns the L2-norm squared. [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Examples** @@ -371,12 +371,12 @@ LinfDistance(vector1, vector2) **Arguments** -- `vector1` — First vector. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) -- `vector2` — Second vector. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) +- `vector1` — First vector. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) +- `vector2` — Second vector. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the infinity-norm distance. For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, always returns `Float64`. [`Float*`](/reference/data-types/float) +Returns the infinity-norm distance. For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, always returns `Float64`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -409,11 +409,11 @@ LinfNorm(vector) **Arguments** -- `vector` — Vector or tuple of numeric values. [`Array(T)`](/reference/data-types/array) or [`Tuple(T)`](/reference/data-types/tuple) +- `vector` — Vector or tuple of numeric values. [`Array(T)`](/core/reference/data-types/array) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** -Returns the Linf-norm or the maximum absolute value. [`Float64`](/reference/data-types/float) +Returns the Linf-norm or the maximum absolute value. [`Float64`](/core/reference/data-types/float) **Examples** @@ -446,11 +446,11 @@ LinfNormalize(tuple) **Arguments** -- `tuple` — A tuple of numeric values. [`Tuple(T)`](/reference/data-types/tuple) +- `tuple` — A tuple of numeric values. [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** -Returns the unit vector. [`Tuple(Float64)`](/reference/data-types/tuple) +Returns the unit vector. [`Tuple(Float64)`](/core/reference/data-types/tuple) **Examples** @@ -483,13 +483,13 @@ LpDistance(vector1, vector2, p) **Arguments** -- `vector1` — First vector. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) -- `vector2` — Second vector. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) -- `p` — The power. Possible values: real number from `[1; inf)`. [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `vector1` — First vector. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) +- `vector2` — Second vector. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) +- `p` — The power. Possible values: real number from `[1; inf)`. [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the p-norm distance. For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, always returns `Float64`. [`Float*`](/reference/data-types/float) +Returns the p-norm distance. For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, always returns `Float64`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -527,12 +527,12 @@ LpNorm(vector, p) **Arguments** -- `vector` — Vector or tuple of numeric values. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) -- `p` — The power. Possible values are real numbers in the range `[1; inf)`. [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `vector` — Vector or tuple of numeric values. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) +- `p` — The power. Possible values are real numbers in the range `[1; inf)`. [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the [Lp-norm](https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm). [`Float64`](/reference/data-types/float) +Returns the [Lp-norm](https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm). [`Float64`](/core/reference/data-types/float) **Examples** @@ -565,12 +565,12 @@ LpNormalize(tuple, p) **Arguments** -- `tuple` — A tuple of numeric values. [`Tuple(T)`](/reference/data-types/tuple) -- `p` — The power. Possible values are any number in the range range from `[1; inf)`. [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `tuple` — A tuple of numeric values. [`Tuple(T)`](/core/reference/data-types/tuple) +- `p` — The power. Possible values are any number in the range range from `[1; inf)`. [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the unit vector. [`Tuple(Float64)`](/reference/data-types/tuple) +Returns the unit vector. [`Tuple(Float64)`](/core/reference/data-types/tuple) **Examples** @@ -603,12 +603,12 @@ cosineDistance(vector1, vector2) **Arguments** -- `vector1` — First tuple. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) -- `vector2` — Second tuple. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) +- `vector1` — First tuple. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) +- `vector2` — Second tuple. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) **Returned value** -Returns the cosine distance (one minus the cosine similarity). For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, always returns `Float64`. [`Float*`](/reference/data-types/float) +Returns the cosine distance (one minus the cosine similarity). For `Array` inputs, returns `Float32` if the least common supertype of the element types is `Float32` or `BFloat16`, otherwise `Float64`. For `Tuple` inputs, always returns `Float64`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -641,13 +641,13 @@ cosineDistanceTransposed(vector1, vector2, p) **Arguments** -- `vectors` — Vectors. [`QBit(T, UInt64)`](/reference/data-types/qbit) -- `reference` — Reference vector. [`Array(T)`](/reference/data-types/array) -- `p` — Number of bits from each vector element to use in the distance calculation (1 to element bit-width). The quantization level controls the precision-speed trade-off. Using fewer bits results in faster I/O and calculations with reduced accuracy, while using more bits increases accuracy at the cost of performance. [`UInt`](/reference/data-types/int-uint) +- `vectors` — Vectors. [`QBit(T, UInt64)`](/core/reference/data-types/qbit) +- `reference` — Reference vector. [`Array(T)`](/core/reference/data-types/array) +- `p` — Number of bits from each vector element to use in the distance calculation (1 to element bit-width). The quantization level controls the precision-speed trade-off. Using fewer bits results in faster I/O and calculations with reduced accuracy, while using more bits increases accuracy at the cost of performance. [`UInt`](/core/reference/data-types/int-uint) **Returned value** -Returns the approximate cosine distance (one minus the cosine similarity). Always returns Float64. [`Float64`](/reference/data-types/float) +Returns the approximate cosine distance (one minus the cosine similarity). Always returns Float64. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/regular-functions/embedded-dict-functions.mdx b/core/reference/functions/regular-functions/embedded-dict-functions.mdx similarity index 88% rename from reference/functions/regular-functions/embedded-dict-functions.mdx rename to core/reference/functions/regular-functions/embedded-dict-functions.mdx index 10658599..5f5cd0bc 100644 --- a/reference/functions/regular-functions/embedded-dict-functions.mdx +++ b/core/reference/functions/regular-functions/embedded-dict-functions.mdx @@ -12,7 +12,7 @@ In order for the functions below to work, the server config must specify the pat As such, the examples shown in this section will throw an exception in [ClickHouse Fiddle](https://fiddle.clickhouse.com/) and in quick release and production deployments by default, unless first configured.
    -For information about creating reference lists, see the section ["Dictionaries"](/reference/statements/create/dictionary/embedded). +For information about creating reference lists, see the section ["Dictionaries"](/core/reference/statements/create/dictionary/embedded). ## Multiple Geobases {#multiple-geobases} @@ -25,7 +25,7 @@ The 'clickhouse-server' config specifies the file with the regional hierarchy: Besides this file, it also searches for files nearby that have the `_` symbol and any suffix appended to the name (before the file extension). For example, it will also find the file `/opt/geo/regions_hierarchy_ua.txt`, if present. Here `ua` is called the dictionary key. For a dictionary without a suffix, the key is an empty string. -All the dictionaries are re-loaded during runtime (once every certain number of seconds, as defined in the [`builtin_dictionaries_reload_interval`](/reference/settings/server-settings/settings#builtin_dictionaries_reload_interval) config parameter, or once an hour by default). However, the list of available dictionaries is defined once, when the server starts. +All the dictionaries are re-loaded during runtime (once every certain number of seconds, as defined in the [`builtin_dictionaries_reload_interval`](/core/reference/settings/server-settings/settings#builtin_dictionaries_reload_interval) config parameter, or once an hour by default). However, the list of available dictionaries is defined once, when the server starts. All functions for working with regions have an optional argument at the end – the dictionary key. It is referred to as the geobase. @@ -48,12 +48,12 @@ regionToName(id\[, lang\]) ``` **Parameters** -- `id` — Region ID from the geobase. [UInt32](/reference/data-types/int-uint). -- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/reference/data-types/string). Optional. +- `id` — Region ID from the geobase. [UInt32](/core/reference/data-types/int-uint). +- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/core/reference/data-types/string). Optional. **Returned value** -- Name of the region in the corresponding language specified by `geobase`. [String](/reference/data-types/string). +- Name of the region in the corresponding language specified by `geobase`. [String](/core/reference/data-types/string). - Otherwise, an empty string. **Example** @@ -84,12 +84,12 @@ regionToCity(id [, geobase]) **Parameters** -- `id` — Region ID from the geobase. [UInt32](/reference/data-types/int-uint). -- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/reference/data-types/string). Optional. +- `id` — Region ID from the geobase. [UInt32](/core/reference/data-types/int-uint). +- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/core/reference/data-types/string). Optional. **Returned value** -- Region ID for the appropriate city, if it exists. [UInt32](/reference/data-types/int-uint). +- Region ID for the appropriate city, if it exists. [UInt32](/core/reference/data-types/int-uint). - 0, if there is none. **Example** @@ -128,12 +128,12 @@ regionToArea(id [, geobase]) **Parameters** -- `id` — Region ID from the geobase. [UInt32](/reference/data-types/int-uint). -- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/reference/data-types/string). Optional. +- `id` — Region ID from the geobase. [UInt32](/core/reference/data-types/int-uint). +- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/core/reference/data-types/string). Optional. **Returned value** -- Region ID for the appropriate area, if it exists. [UInt32](/reference/data-types/int-uint). +- Region ID for the appropriate area, if it exists. [UInt32](/core/reference/data-types/int-uint). - 0, if there is none. **Example** @@ -176,12 +176,12 @@ regionToDistrict(id [, geobase]) **Parameters** -- `id` — Region ID from the geobase. [UInt32](/reference/data-types/int-uint). -- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/reference/data-types/string). Optional. +- `id` — Region ID from the geobase. [UInt32](/core/reference/data-types/int-uint). +- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/core/reference/data-types/string). Optional. **Returned value** -- Region ID for the appropriate city, if it exists. [UInt32](/reference/data-types/int-uint). +- Region ID for the appropriate city, if it exists. [UInt32](/core/reference/data-types/int-uint). - 0, if there is none. **Example** @@ -224,12 +224,12 @@ regionToCountry(id [, geobase]) **Parameters** -- `id` — Region ID from the geobase. [UInt32](/reference/data-types/int-uint). -- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/reference/data-types/string). Optional. +- `id` — Region ID from the geobase. [UInt32](/core/reference/data-types/int-uint). +- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/core/reference/data-types/string). Optional. **Returned value** -- Region ID for the appropriate country, if it exists. [UInt32](/reference/data-types/int-uint). +- Region ID for the appropriate country, if it exists. [UInt32](/core/reference/data-types/int-uint). - 0, if there is none. **Example** @@ -268,12 +268,12 @@ regionToContinent(id [, geobase]) **Parameters** -- `id` — Region ID from the geobase. [UInt32](/reference/data-types/int-uint). -- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/reference/data-types/string). Optional. +- `id` — Region ID from the geobase. [UInt32](/core/reference/data-types/int-uint). +- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/core/reference/data-types/string). Optional. **Returned value** -- Region ID for the appropriate continent, if it exists. [UInt32](/reference/data-types/int-uint). +- Region ID for the appropriate continent, if it exists. [UInt32](/core/reference/data-types/int-uint). - 0, if there is none. **Example** @@ -312,12 +312,12 @@ regionToTopContinent(id[, geobase]) **Parameters** -- `id` — Region ID from the geobase. [UInt32](/reference/data-types/int-uint). -- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/reference/data-types/string). Optional. +- `id` — Region ID from the geobase. [UInt32](/core/reference/data-types/int-uint). +- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/core/reference/data-types/string). Optional. **Returned value** -- Identifier of the top level continent (the latter when you climb the hierarchy of regions).[UInt32](/reference/data-types/int-uint). +- Identifier of the top level continent (the latter when you climb the hierarchy of regions).[UInt32](/core/reference/data-types/int-uint). - 0, if there is none. **Example** @@ -346,7 +346,7 @@ SELECT regionToName(number::UInt32, 'en'), regionToTopContinent(number::UInt32) ### regionToPopulation {#regiontopopulation} -Gets the population for a region. The population can be recorded in files with the geobase. See the section ["Dictionaries"](/reference/statements/create/dictionary/embedded). If the population is not recorded for the region, it returns 0. In the geobase, the population might be recorded for child regions, but not for parent regions. +Gets the population for a region. The population can be recorded in files with the geobase. See the section ["Dictionaries"](/core/reference/statements/create/dictionary/embedded). If the population is not recorded for the region, it returns 0. In the geobase, the population might be recorded for child regions, but not for parent regions. **Syntax** @@ -356,12 +356,12 @@ regionToPopulation(id[, geobase]) **Parameters** -- `id` — Region ID from the geobase. [UInt32](/reference/data-types/int-uint). -- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/reference/data-types/string). Optional. +- `id` — Region ID from the geobase. [UInt32](/core/reference/data-types/int-uint). +- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/core/reference/data-types/string). Optional. **Returned value** -- Population for the region. [UInt32](/reference/data-types/int-uint). +- Population for the region. [UInt32](/core/reference/data-types/int-uint). - 0, if there is none. **Example** @@ -400,13 +400,13 @@ regionIn(lhs, rhs\[, geobase\]) **Parameters** -- `lhs` — Lhs region ID from the geobase. [UInt32](/reference/data-types/int-uint). -- `rhs` — Rhs region ID from the geobase. [UInt32](/reference/data-types/int-uint). -- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/reference/data-types/string). Optional. +- `lhs` — Lhs region ID from the geobase. [UInt32](/core/reference/data-types/int-uint). +- `rhs` — Rhs region ID from the geobase. [UInt32](/core/reference/data-types/int-uint). +- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/core/reference/data-types/string). Optional. **Returned value** -- 1, if it belongs. [UInt8](/reference/data-types/int-uint). +- 1, if it belongs. [UInt8](/core/reference/data-types/int-uint). - 0, if it doesn't belong. **Implementation details** @@ -444,12 +444,12 @@ regionHierarchy(id\[, geobase\]) **Parameters** -- `id` — Region ID from the geobase. [UInt32](/reference/data-types/int-uint). -- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/reference/data-types/string). Optional. +- `id` — Region ID from the geobase. [UInt32](/core/reference/data-types/int-uint). +- `geobase` — Dictionary key. See [Multiple Geobases](#multiple-geobases). [String](/core/reference/data-types/string). Optional. **Returned value** -- Array of region IDs consisting of the passed region and all parents along the chain. [Array](/reference/data-types/array)([UInt32](/reference/data-types/int-uint)). +- Array of region IDs consisting of the passed region and all parents along the chain. [Array](/core/reference/data-types/array)([UInt32](/core/reference/data-types/int-uint)). **Example** diff --git a/reference/functions/regular-functions/encoding-functions.mdx b/core/reference/functions/regular-functions/encoding-functions.mdx similarity index 87% rename from reference/functions/regular-functions/encoding-functions.mdx rename to core/reference/functions/regular-functions/encoding-functions.mdx index 58fcf7dc..7449c471 100644 --- a/reference/functions/regular-functions/encoding-functions.mdx +++ b/core/reference/functions/regular-functions/encoding-functions.mdx @@ -33,12 +33,12 @@ bech32Decode(address[, 'raw']) **Arguments** -- `address` — A Bech32 string to decode. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `mode` — Optional. Pass `'raw'` to decode without stripping the first byte as a witness version. Use this for non-SegWit addresses (e.g. Cosmos SDK). [`String`](/reference/data-types/string) +- `address` — A Bech32 string to decode. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `mode` — Optional. Pass `'raw'` to decode without stripping the first byte as a witness version. Use this for non-SegWit addresses (e.g. Cosmos SDK). [`String`](/core/reference/data-types/string) **Returned value** -Returns a tuple consisting of `(hrp, data)` that was used to encode the string. The data is in binary format. [`Tuple(String, String)`](/reference/data-types/tuple) +Returns a tuple consisting of `(hrp, data)` that was used to encode the string. The data is in binary format. [`Tuple(String, String)`](/core/reference/data-types/tuple) **Examples** @@ -69,9 +69,9 @@ Introduced in: v25.6.0 Encodes a binary data string, along with a human-readable part (HRP), using the [Bech32 or Bech32m](https://en.bitcoin.it/wiki/Bech32) algorithms. -When using the [`FixedString`](/reference/data-types/fixedstring) data type, if a value does not fully fill the row it is padded with null characters. +When using the [`FixedString`](/core/reference/data-types/fixedstring) data type, if a value does not fully fill the row it is padded with null characters. While the `bech32Encode` function will handle this automatically for the hrp argument, for the data argument the values must not be padded. -For this reason it is not recommended to use the [`FixedString`](/reference/data-types/fixedstring) data type for your data values unless you are +For this reason it is not recommended to use the [`FixedString`](/core/reference/data-types/fixedstring) data type for your data values unless you are certain that they are all the same length and ensure that your `FixedString` column is set to that length as well. @@ -84,13 +84,13 @@ bech32Encode(hrp, data[, witver | 'bech32' | 'bech32m']) **Arguments** -- `hrp` — A String of `1 - 83` lowercase characters specifying the "human-readable part" of the code. Usually 'bc' or 'tb'. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `data` — A String of binary data to encode. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `witver_or_variant` — Optional. Either a UInt* witness version (default = 1, `0` for Bech32, `1`+ for Bech32m) or a String encoding variant: `'bech32'` (BIP173) or `'bech32m'` (BIP350). When a string variant is used, no witness version byte is prepended — this is needed for non-SegWit addresses such as Cosmos SDK. [`UInt*`](/reference/data-types/int-uint) or [`String`](/reference/data-types/string) +- `hrp` — A String of `1 - 83` lowercase characters specifying the "human-readable part" of the code. Usually 'bc' or 'tb'. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `data` — A String of binary data to encode. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `witver_or_variant` — Optional. Either a UInt* witness version (default = 1, `0` for Bech32, `1`+ for Bech32m) or a String encoding variant: `'bech32'` (BIP173) or `'bech32m'` (BIP350). When a string variant is used, no witness version byte is prepended — this is needed for non-SegWit addresses such as Cosmos SDK. [`UInt*`](/core/reference/data-types/int-uint) or [`String`](/core/reference/data-types/string) **Returned value** -Returns a Bech32 address string, consisting of the human-readable part, a separator character which is always '1', and a data part. The length of the string will never exceed 90 characters. If the algorithm cannot generate a valid address from the input, it will return an empty string. [`String`](/reference/data-types/string) +Returns a Bech32 address string, consisting of the human-readable part, a separator character which is always '1', and a data part. The length of the string will never exceed 90 characters. If the algorithm cannot generate a valid address from the input, it will return an empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -164,11 +164,11 @@ bin(arg) **Arguments** -- `arg` — A value to convert to binary. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `arg` — A value to convert to binary. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns a string with the binary representation of the argument. [`String`](/reference/data-types/string) +Returns a string with the binary representation of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -238,11 +238,11 @@ bitPositionsToArray(arg) **Arguments** -- `arg` — An integer value. [`(U)Int*`](/reference/data-types/int-uint) +- `arg` — An integer value. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array with the ascendingly ordered positions of 1 bits in the binary representation of the input. [`Array(UInt64)`](/reference/data-types/array) +Returns an array with the ascendingly ordered positions of 1 bits in the binary representation of the input. [`Array(UInt64)`](/core/reference/data-types/array) **Examples** @@ -286,11 +286,11 @@ bitmaskToArray(num) **Arguments** -- `num` — An integer value. [`(U)Int*`](/reference/data-types/int-uint) +- `num` — An integer value. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array with the ascendingly ordered powers of two which sum up to the input number. [`Array(UInt64)`](/reference/data-types/array) +Returns an array with the ascendingly ordered powers of two which sum up to the input number. [`Array(UInt64)`](/core/reference/data-types/array) **Examples** @@ -333,11 +333,11 @@ bitmaskToList(num) **Arguments** -- `num` — An integer value. [`(U)Int*`](/reference/data-types/int-uint) +- `num` — An integer value. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a string containing comma-separated powers of two. [`String`](/reference/data-types/string) +Returns a string containing comma-separated powers of two. [`String`](/core/reference/data-types/string) **Examples** @@ -372,11 +372,11 @@ char(num1[, num2[, ...]]) **Arguments** -- `num1[, num2[, num3 ...]]` — Numerical arguments interpreted as integers. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `num1[, num2[, num3 ...]]` — Numerical arguments interpreted as integers. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns a string of the given bytes. [`String`](/reference/data-types/string) +Returns a string of the given bytes. [`String`](/core/reference/data-types/string) **Examples** @@ -432,11 +432,11 @@ hex(arg) **Arguments** -- `arg` — A value to convert to hexadecimal. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `arg` — A value to convert to hexadecimal. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns a string with the hexadecimal representation of the argument. [`String`](/reference/data-types/string) +Returns a string with the hexadecimal representation of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -523,12 +523,12 @@ hilbertDecode(tuple_size, code) **Arguments** -- `tuple_size` — Integer value of no more than `2`. [`UInt8/16/32/64`](/reference/data-types/int-uint) or [`Tuple(UInt8/16/32/64)`](/reference/data-types/tuple) -- `code` — `UInt64` code. [`UInt64`](/reference/data-types/int-uint) +- `tuple_size` — Integer value of no more than `2`. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) or [`Tuple(UInt8/16/32/64)`](/core/reference/data-types/tuple) +- `code` — `UInt64` code. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple of the specified size. [`Tuple(UInt64)`](/reference/data-types/tuple) +Returns a tuple of the specified size. [`Tuple(UInt64)`](/core/reference/data-types/tuple) **Examples** @@ -600,8 +600,8 @@ Accepts up to 2 unsigned integers as arguments and produces a UInt64 code. **Expanded mode** -Accepts a range mask ([Tuple](/reference/data-types/tuple)) as the -first argument and up to 2 [unsigned integers](/reference/data-types/int-uint) +Accepts a range mask ([Tuple](/core/reference/data-types/tuple)) as the +first argument and up to 2 [unsigned integers](/core/reference/data-types/int-uint) as other arguments. Each number in the mask configures the number of bits by which the corresponding @@ -620,12 +620,12 @@ hilbertEncode(range_mask, args) **Arguments** -- `args` — Up to two `UInt` values or columns of type `UInt`. [`UInt8/16/32/64`](/reference/data-types/int-uint) -- `range_mask` — For the expanded mode, up to two `UInt` values or columns of type `UInt`. [`UInt8/16/32/64`](/reference/data-types/int-uint) +- `args` — Up to two `UInt` values or columns of type `UInt`. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) +- `range_mask` — For the expanded mode, up to two `UInt` values or columns of type `UInt`. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns a `UInt64` code. [`UInt64`](/reference/data-types/int-uint) +Returns a `UInt64` code. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -740,13 +740,13 @@ mortonDecode(range_mask, code) **Arguments** -- `tuple_size` — Integer value no more than 8. [`UInt8/16/32/64`](/reference/data-types/int-uint) -- `range_mask` — For the expanded mode, the mask for each argument. The mask is a tuple of unsigned integers. Each number in the mask configures the amount of range shrink. [`Tuple(UInt8/16/32/64)`](/reference/data-types/tuple) -- `code` — UInt64 code. [`UInt64`](/reference/data-types/int-uint) +- `tuple_size` — Integer value no more than 8. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) +- `range_mask` — For the expanded mode, the mask for each argument. The mask is a tuple of unsigned integers. Each number in the mask configures the amount of range shrink. [`Tuple(UInt8/16/32/64)`](/core/reference/data-types/tuple) +- `code` — UInt64 code. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple of the specified size. [`Tuple(UInt64)`](/reference/data-types/tuple) +Returns a tuple of the specified size. [`Tuple(UInt64)`](/core/reference/data-types/tuple) **Examples** @@ -822,8 +822,8 @@ Accepts up to 8 unsigned integers as arguments and produces a `UInt64` code. **Expanded mode** -Accepts a range mask ([Tuple](/reference/data-types/tuple)) as the first argument and -up to 8 [unsigned integers](/reference/data-types/int-uint) as other arguments. +Accepts a range mask ([Tuple](/core/reference/data-types/tuple)) as the first argument and +up to 8 [unsigned integers](/core/reference/data-types/int-uint) as other arguments. Each number in the mask configures the amount of range expansion: * 1 - no expansion @@ -845,12 +845,12 @@ mortonEncode(range_mask, args) **Arguments** -- `args` — Up to 8 unsigned integers or columns of the aforementioned type. [`UInt8/16/32/64`](/reference/data-types/int-uint) -- `range_mask` — For the expanded mode, the mask for each argument. The mask is a tuple of unsigned integers from `1` - `8`. Each number in the mask configures the amount of range shrink. [`Tuple(UInt8/16/32/64)`](/reference/data-types/tuple) +- `args` — Up to 8 unsigned integers or columns of the aforementioned type. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) +- `range_mask` — For the expanded mode, the mask for each argument. The mask is a tuple of unsigned integers from `1` - `8`. Each number in the mask configures the amount of range shrink. [`Tuple(UInt8/16/32/64)`](/core/reference/data-types/tuple) **Returned value** -Returns a `UInt64` code. [`UInt64`](/reference/data-types/int-uint) +Returns a `UInt64` code. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -940,11 +940,11 @@ sqidDecode(sqid) **Arguments** -- `sqid` — The sqid to decode. [`String`](/reference/data-types/string) +- `sqid` — The sqid to decode. [`String`](/core/reference/data-types/string) **Returned value** -Returns an array of numbers from `sqid`. [`Array(UInt64)`](/reference/data-types/array) +Returns an array of numbers from `sqid`. [`Array(UInt64)`](/core/reference/data-types/array) **Examples** @@ -977,11 +977,11 @@ sqidEncode(n1[, n2, ...]) **Arguments** -- `n1[, n2, ...]` — Arbitrarily many numbers. [`UInt8/16/32/64`](/reference/data-types/int-uint) +- `n1[, n2, ...]` — Arbitrarily many numbers. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns a hash ID [`String`](/reference/data-types/string) +Returns a hash ID [`String`](/core/reference/data-types/string) **Examples** @@ -1021,11 +1021,11 @@ unbin(arg) **Arguments** -- `arg` — A string containing any number of binary digits. [`String`](/reference/data-types/string) +- `arg` — A string containing any number of binary digits. [`String`](/core/reference/data-types/string) **Returned value** -Returns a binary string (BLOB). [`String`](/reference/data-types/string) +Returns a binary string (BLOB). [`String`](/core/reference/data-types/string) **Examples** @@ -1081,11 +1081,11 @@ unhex(arg) **Arguments** -- `arg` — A string containing any number of hexadecimal digits. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `arg` — A string containing any number of hexadecimal digits. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns a binary string (BLOB). [`String`](/reference/data-types/string) +Returns a binary string (BLOB). [`String`](/core/reference/data-types/string) **Examples** diff --git a/reference/functions/regular-functions/encryption-functions.mdx b/core/reference/functions/regular-functions/encryption-functions.mdx similarity index 88% rename from reference/functions/regular-functions/encryption-functions.mdx rename to core/reference/functions/regular-functions/encryption-functions.mdx index b9315433..2e3da4b7 100644 --- a/reference/functions/regular-functions/encryption-functions.mdx +++ b/core/reference/functions/regular-functions/encryption-functions.mdx @@ -63,13 +63,13 @@ HMAC(mode, message, key) **Arguments** -- `mode` — Hash algorithm name (case-insensitive). Supported: md5, sha1, sha224, sha256, sha384, sha512. [`String`](/reference/data-types/string) -- `message` — Message to be authenticated. [`String`](/reference/data-types/string) -- `key` — Secret key for HMAC. [`String`](/reference/data-types/string) +- `mode` — Hash algorithm name (case-insensitive). Supported: md5, sha1, sha224, sha256, sha384, sha512. [`String`](/core/reference/data-types/string) +- `message` — Message to be authenticated. [`String`](/core/reference/data-types/string) +- `key` — Secret key for HMAC. [`String`](/core/reference/data-types/string) **Returned value** -Returns a binary string containing the HMAC digest. [`String`](/reference/data-types/string) +Returns a binary string containing the HMAC digest. [`String`](/core/reference/data-types/string) **Examples** @@ -139,14 +139,14 @@ aes_decrypt_mysql(mode, ciphertext, key[, iv]) **Arguments** -- `mode` — Decryption mode. [`String`](/reference/data-types/string) -- `ciphertext` — Encrypted text that needs to be decrypted. [`String`](/reference/data-types/string) -- `key` — Decryption key. [`String`](/reference/data-types/string) -- `iv` — Optional. Initialization vector. [`String`](/reference/data-types/string) +- `mode` — Decryption mode. [`String`](/core/reference/data-types/string) +- `ciphertext` — Encrypted text that needs to be decrypted. [`String`](/core/reference/data-types/string) +- `key` — Decryption key. [`String`](/core/reference/data-types/string) +- `iv` — Optional. Initialization vector. [`String`](/core/reference/data-types/string) **Returned value** -Returns the decrypted String. [`String`](/reference/data-types/string) +Returns the decrypted String. [`String`](/core/reference/data-types/string) **Examples** @@ -198,14 +198,14 @@ aes_encrypt_mysql(mode, plaintext, key[, iv]) **Arguments** -- `mode` — Encryption mode. [`String`](/reference/data-types/string) -- `plaintext` — Text that should be encrypted. [`String`](/reference/data-types/string) -- `key` — Encryption key. If the key is longer than required by `mode`, MySQL-specific key folding is performed. [`String`](/reference/data-types/string) -- `iv` — Optional. Initialization vector. Only the first 16 bytes are taken into account. [`String`](/reference/data-types/string) +- `mode` — Encryption mode. [`String`](/core/reference/data-types/string) +- `plaintext` — Text that should be encrypted. [`String`](/core/reference/data-types/string) +- `key` — Encryption key. If the key is longer than required by `mode`, MySQL-specific key folding is performed. [`String`](/core/reference/data-types/string) +- `iv` — Optional. Initialization vector. Only the first 16 bytes are taken into account. [`String`](/core/reference/data-types/string) **Returned value** -Ciphertext binary string. [`String`](/reference/data-types/string) +Ciphertext binary string. [`String`](/core/reference/data-types/string) **Examples** @@ -282,15 +282,15 @@ decrypt(mode, ciphertext, key[, iv, aad]) **Arguments** -- `mode` — Decryption mode. [`String`](/reference/data-types/string) -- `ciphertext` — Encrypted text that should be decrypted. [`String`](/reference/data-types/string) -- `key` — Decryption key. [`String`](/reference/data-types/string) -- `iv` — Initialization vector. Required for `-gcm` modes, optional for others. [`String`](/reference/data-types/string) -- `aad` — Additional authenticated data. Won't decrypt if this value is incorrect. Works only in `-gcm` modes, for others throws an exception. [`String`](/reference/data-types/string) +- `mode` — Decryption mode. [`String`](/core/reference/data-types/string) +- `ciphertext` — Encrypted text that should be decrypted. [`String`](/core/reference/data-types/string) +- `key` — Decryption key. [`String`](/core/reference/data-types/string) +- `iv` — Initialization vector. Required for `-gcm` modes, optional for others. [`String`](/core/reference/data-types/string) +- `aad` — Additional authenticated data. Won't decrypt if this value is incorrect. Works only in `-gcm` modes, for others throws an exception. [`String`](/core/reference/data-types/string) **Returned value** -Returns decrypted plaintext. [`String`](/reference/data-types/string) +Returns decrypted plaintext. [`String`](/core/reference/data-types/string) **Examples** @@ -359,15 +359,15 @@ encrypt(mode, plaintext, key[, iv, aad]) **Arguments** -- `mode` — Encryption mode. [`String`](/reference/data-types/string) -- `plaintext` — Text that should be encrypted. [`String`](/reference/data-types/string) -- `key` — Encryption key. [`String`](/reference/data-types/string) -- `iv` — Initialization vector. Required for `-gcm` modes, optional for others. [`String`](/reference/data-types/string) -- `aad` — Additional authenticated data. It isn't encrypted, but it affects decryption. Works only in `-gcm` modes, for others it throws an exception. [`String`](/reference/data-types/string) +- `mode` — Encryption mode. [`String`](/core/reference/data-types/string) +- `plaintext` — Text that should be encrypted. [`String`](/core/reference/data-types/string) +- `key` — Encryption key. [`String`](/core/reference/data-types/string) +- `iv` — Initialization vector. Required for `-gcm` modes, optional for others. [`String`](/core/reference/data-types/string) +- `aad` — Additional authenticated data. It isn't encrypted, but it affects decryption. Works only in `-gcm` modes, for others it throws an exception. [`String`](/core/reference/data-types/string) **Returned value** -Returns binary string ciphertext. [`String`](/reference/data-types/string) +Returns binary string ciphertext. [`String`](/core/reference/data-types/string) **Examples** @@ -432,15 +432,15 @@ tryDecrypt(mode, ciphertext, key[, iv, aad]) **Arguments** -- `mode` — Decryption mode. [`String`](/reference/data-types/string) -- `ciphertext` — Encrypted text that should be decrypted. [`String`](/reference/data-types/string) -- `key` — Decryption key. [`String`](/reference/data-types/string) -- `iv` — Optional. Initialization vector. Required for `-gcm` modes, optional for other modes. [`String`](/reference/data-types/string) -- `aad` — Optional. Additional authenticated data. Won't decrypt if this value is incorrect. Works only in `-gcm` modes, for other modes throws an exception. [`String`](/reference/data-types/string) +- `mode` — Decryption mode. [`String`](/core/reference/data-types/string) +- `ciphertext` — Encrypted text that should be decrypted. [`String`](/core/reference/data-types/string) +- `key` — Decryption key. [`String`](/core/reference/data-types/string) +- `iv` — Optional. Initialization vector. Required for `-gcm` modes, optional for other modes. [`String`](/core/reference/data-types/string) +- `aad` — Optional. Additional authenticated data. Won't decrypt if this value is incorrect. Works only in `-gcm` modes, for other modes throws an exception. [`String`](/core/reference/data-types/string) **Returned value** -Returns the decrypted String, or `NULL` if decryption fails. [`Nullable(String)`](/reference/data-types/nullable) +Returns the decrypted String, or `NULL` if decryption fails. [`Nullable(String)`](/core/reference/data-types/nullable) **Examples** diff --git a/reference/functions/regular-functions/ext-dict-functions.mdx b/core/reference/functions/regular-functions/ext-dict-functions.mdx similarity index 79% rename from reference/functions/regular-functions/ext-dict-functions.mdx rename to core/reference/functions/regular-functions/ext-dict-functions.mdx index d0c26888..50439890 100644 --- a/reference/functions/regular-functions/ext-dict-functions.mdx +++ b/core/reference/functions/regular-functions/ext-dict-functions.mdx @@ -7,10 +7,10 @@ doc_type: 'reference' --- -For dictionaries created with [DDL queries](/reference/statements/create/dictionary), the `dict_name` parameter must be fully specified, like `.`. Otherwise, the current database is used. +For dictionaries created with [DDL queries](/core/reference/statements/create/dictionary), the `dict_name` parameter must be fully specified, like `.`. Otherwise, the current database is used. -For information on connecting and configuring dictionaries, see [Dictionaries](/reference/statements/create/dictionary). +For information on connecting and configuring dictionaries, see [Dictionaries](/core/reference/statements/create/dictionary). ## Example dictionaries {#example-dictionary} @@ -301,9 +301,9 @@ dictGet('dict_name', attr_names, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_names` — Name of the column of the dictionary, or tuple of column names. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning UInt64/Tuple(T). [`UInt64`](/reference/data-types/int-uint) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_names` — Name of the column of the dictionary, or tuple of column names. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning UInt64/Tuple(T). [`UInt64`](/core/reference/data-types/int-uint) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -360,9 +360,9 @@ dictGetAll(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -408,12 +408,12 @@ dictGetChildren(dict_name, key) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `key` — Key to be checked. [`const String`](/reference/data-types/string) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `key` — Key to be checked. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the first-level descendants for the key. [`Array(UInt64)`](/reference/data-types/array) +Returns the first-level descendants for the key. [`Array(UInt64)`](/core/reference/data-types/array) **Examples** @@ -443,9 +443,9 @@ dictGetDate(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -484,10 +484,10 @@ dictGetDateOrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -533,9 +533,9 @@ dictGetDateTime(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -574,10 +574,10 @@ dictGetDateTimeOrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -623,13 +623,13 @@ dictGetDescendants(dict_name, key, level) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `key` — Key to be checked. [`const String`](/reference/data-types/string) -- `level` — Key to be checked. Hierarchy level. If `level = 0` returns all descendants to the end. [`UInt8`](/reference/data-types/int-uint) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `key` — Key to be checked. [`const String`](/core/reference/data-types/string) +- `level` — Key to be checked. Hierarchy level. If `level = 0` returns all descendants to the end. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns the descendants for the key. [`Array(UInt64)`](/reference/data-types/array) +Returns the descendants for the key. [`Array(UInt64)`](/core/reference/data-types/array) **Examples** @@ -668,9 +668,9 @@ dictGetFloat32(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -709,10 +709,10 @@ dictGetFloat32OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -758,9 +758,9 @@ dictGetFloat64(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -799,10 +799,10 @@ dictGetFloat64OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -838,7 +838,7 @@ SELECT dictGetFloat64OrDefault('all_types_dict', 'Float64_value', 999, nan); Introduced in: v1.1.0 -Creates an array, containing all the parents of a key in the [hierarchical dictionary](/reference/statements/create/dictionary/layouts/hierarchical#hierarchical-dictionaries). +Creates an array, containing all the parents of a key in the [hierarchical dictionary](/core/reference/statements/create/dictionary/layouts/hierarchical#hierarchical-dictionaries). **Syntax** @@ -848,12 +848,12 @@ dictGetHierarchy(dict_name, key) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `key` — Key value. [`const String`](/reference/data-types/string) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `key` — Key value. [`const String`](/core/reference/data-types/string) **Returned value** -Returns parents for the key. [`Array(UInt64)`](/reference/data-types/array) +Returns parents for the key. [`Array(UInt64)`](/core/reference/data-types/array) **Examples** @@ -883,9 +883,9 @@ dictGetIPv4(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -924,10 +924,10 @@ dictGetIPv4OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -973,9 +973,9 @@ dictGetIPv6(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1014,10 +1014,10 @@ dictGetIPv6OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1063,9 +1063,9 @@ dictGetInt16(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1104,10 +1104,10 @@ dictGetInt16OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1153,9 +1153,9 @@ dictGetInt32(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1194,10 +1194,10 @@ dictGetInt32OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1243,9 +1243,9 @@ dictGetInt64(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1284,10 +1284,10 @@ dictGetInt64OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1333,9 +1333,9 @@ dictGetInt8(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1374,10 +1374,10 @@ dictGetInt8OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1429,9 +1429,9 @@ dictGetKeys('dict_name', 'attr_name', value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Attribute to match. [`String`](/reference/data-types/string) -- `value_expr` — Value to match against the attribute. [`Expression`](/reference/data-types/special-data-types/expression) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Attribute to match. [`String`](/core/reference/data-types/string) +- `value_expr` — Value to match against the attribute. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** @@ -1465,9 +1465,9 @@ dictGetOrDefault('dict_name', attr_names, id_expr, default_value) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_names` — Name of the column of the dictionary, or tuple of column names. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning UInt64/Tuple(T). [`UInt64`](/reference/data-types/int-uint) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_names` — Name of the column of the dictionary, or tuple of column names. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning UInt64/Tuple(T). [`UInt64`](/core/reference/data-types/int-uint) or [`Tuple(T)`](/core/reference/data-types/tuple) - `default_value` — Default value to return if the key is not found. Type must match the attribute's data type. **Returned value** @@ -1541,9 +1541,9 @@ dictGetString(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1582,10 +1582,10 @@ dictGetStringOrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1631,9 +1631,9 @@ dictGetUInt16(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1672,10 +1672,10 @@ dictGetUInt16OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1721,9 +1721,9 @@ dictGetUInt32(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1762,10 +1762,10 @@ dictGetUInt32OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1811,9 +1811,9 @@ dictGetUInt64(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1852,10 +1852,10 @@ dictGetUInt64OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1901,9 +1901,9 @@ dictGetUInt8(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1942,10 +1942,10 @@ dictGetUInt8OrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -1991,9 +1991,9 @@ dictGetUUID(dict_name, attr_name, id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. An expression returning a dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -2032,10 +2032,10 @@ dictGetUUIDOrDefault(dict_name, attr_name, id_expr, default_value_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `attr_name` — Name of the column of the dictionary. [`String`](/reference/data-types/string) or [`Tuple(String)`](/reference/data-types/tuple) -- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) -- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/reference/data-types/tuple) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `attr_name` — Name of the column of the dictionary. [`String`](/core/reference/data-types/string) or [`Tuple(String)`](/core/reference/data-types/tuple) +- `id_expr` — Key value. Expression returning dictionary key-type value or tuple value (dictionary configuration dependent). [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `default_value_expr` — Value(s) returned if the dictionary does not contain a row with the `id_expr` key. [`Expression`](/core/reference/data-types/special-data-types/expression) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** @@ -2081,12 +2081,12 @@ dictHas('dict_name', id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `id_expr` — Key value [`const String`](/reference/data-types/string) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `id_expr` — Key value [`const String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the key exists, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the key exists, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2129,13 +2129,13 @@ dictIsIn(dict_name, child_id_expr, ancestor_id_expr) **Arguments** -- `dict_name` — Name of the dictionary. [`String`](/reference/data-types/string) -- `child_id_expr` — Key to be checked. [`String`](/reference/data-types/string) -- `ancestor_id_expr` — Alleged ancestor of the `child_id_expr` key. [`const String`](/reference/data-types/string) +- `dict_name` — Name of the dictionary. [`String`](/core/reference/data-types/string) +- `child_id_expr` — Key to be checked. [`String`](/core/reference/data-types/string) +- `ancestor_id_expr` — Alleged ancestor of the `child_id_expr` key. [`const String`](/core/reference/data-types/string) **Returned value** -Returns `0` if `child_id_expr` is not a child of `ancestor_id_expr`, `1` if `child_id_expr` is a child of `ancestor_id_expr` or if `child_id_expr` is an `ancestor_id_expr`. [`UInt8`](/reference/data-types/int-uint) +Returns `0` if `child_id_expr` is not a child of `ancestor_id_expr`, `1` if `child_id_expr` is a child of `ancestor_id_expr` or if `child_id_expr` is an `ancestor_id_expr`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/regular-functions/files.mdx b/core/reference/functions/regular-functions/files.mdx similarity index 58% rename from reference/functions/regular-functions/files.mdx rename to core/reference/functions/regular-functions/files.mdx index fe821e13..f8422a3b 100644 --- a/reference/functions/regular-functions/files.mdx +++ b/core/reference/functions/regular-functions/files.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' Reads a file as string and loads the data into the specified column. The file content is not interpreted. -Also see table function [file](/reference/functions/table-functions/file). +Also see table function [file](/core/reference/functions/table-functions/file). **Syntax** @@ -20,8 +20,8 @@ file(path[, default]) **Arguments** -- `path` — The path of the file relative to [user_files_path](/reference/settings/server-settings/settings#user_files_path). Supports wildcards `*`, `**`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` are numbers and `'abc', 'def'` are strings. -- `default` — The value returned if the file does not exist or cannot be accessed. Supported data types: [String](/reference/data-types/string) and [NULL](/reference/settings/formats#input_format_null_as_default). +- `path` — The path of the file relative to [user_files_path](/core/reference/settings/server-settings/settings#user_files_path). Supports wildcards `*`, `**`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` are numbers and `'abc', 'def'` are strings. +- `default` — The value returned if the file does not exist or cannot be accessed. Supported data types: [String](/core/reference/data-types/string) and [NULL](/core/reference/settings/formats#input_format_null_as_default). **Example** diff --git a/reference/functions/regular-functions/financial-functions.mdx b/core/reference/functions/regular-functions/financial-functions.mdx similarity index 82% rename from reference/functions/regular-functions/financial-functions.mdx rename to core/reference/functions/regular-functions/financial-functions.mdx index e82d22ea..aa3cb682 100644 --- a/reference/functions/regular-functions/financial-functions.mdx +++ b/core/reference/functions/regular-functions/financial-functions.mdx @@ -40,12 +40,12 @@ financialInternalRateOfReturn(cashflows[, guess]) **Arguments** -- `cashflows` — Array of cash flows. Each value represents a payment (negative value) or income (positive value). [`Array(Int8/16/32/64)`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) -- `[, guess]` — Optional initial guess (constant value) for the internal rate of return (default 0.1). [`Float*`](/reference/data-types/float) +- `cashflows` — Array of cash flows. Each value represents a payment (negative value) or income (positive value). [`Array(Int8/16/32/64)`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) +- `[, guess]` — Optional initial guess (constant value) for the internal rate of return (default 0.1). [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the internal rate of return or `NaN` if the calculation cannot converge, input array is empty or has only one element, all cash flows are zero, or other calculation errors occur. [`Float64`](/reference/data-types/float) +Returns the internal rate of return or `NaN` if the calculation cannot converge, input array is empty or has only one element, all cash flows are zero, or other calculation errors occur. [`Float64`](/core/reference/data-types/float) **Examples** @@ -92,18 +92,18 @@ financialInternalRateOfReturnExtended(cashflow, date [, guess, daycount]) **Arguments** -- `cashflow` — An array of cash flows corresponding to the dates in second param. [`Array(Int8/16/32/64)`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) -- `date` — A sorted array of unique dates corresponding to the cash flows. [`Array(Date)`](/reference/data-types/array) or [`Array(Date32)`](/reference/data-types/array) -- `[, guess]` — Optional. Initial guess (constant value) for the XIRR calculation. [`Float*`](/reference/data-types/float) +- `cashflow` — An array of cash flows corresponding to the dates in second param. [`Array(Int8/16/32/64)`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) +- `date` — A sorted array of unique dates corresponding to the cash flows. [`Array(Date)`](/core/reference/data-types/array) or [`Array(Date32)`](/core/reference/data-types/array) +- `[, guess]` — Optional. Initial guess (constant value) for the XIRR calculation. [`Float*`](/core/reference/data-types/float) - `[, daycount]` — Optional day count convention (default 'ACT_365F'). Supported values: - 'ACT_365F' - Actual/365 Fixed: Uses actual number of days between dates divided by 365 - 'ACT_365_25' - Actual/365.25: Uses actual number of days between dates divided by 365.25 - [`String`](/reference/data-types/string) + [`String`](/core/reference/data-types/string) **Returned value** -Returns the XIRR value. If the calculation cannot be performed, it returns NaN. [`Float64`](/reference/data-types/float) +Returns the XIRR value. If the calculation cannot be performed, it returns NaN. [`Float64`](/core/reference/data-types/float) **Examples** @@ -164,13 +164,13 @@ financialNetPresentValue(rate, cashflows[, start_from_zero]) **Arguments** -- `rate` — The discount rate to apply. [`Float*`](/reference/data-types/float) -- `cashflows` — Array of cash flows. Each value represents a payment (negative value) or income (positive value). [`Array(Int8/16/32/64)`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) -- `[, start_from_zero]` — Optional boolean parameter indicating whether to start the NPV calculation from period `0` (true) or period `1` (false, Excel-compatible). Default: true. [`Bool`](/reference/data-types/boolean) +- `rate` — The discount rate to apply. [`Float*`](/core/reference/data-types/float) +- `cashflows` — Array of cash flows. Each value represents a payment (negative value) or income (positive value). [`Array(Int8/16/32/64)`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) +- `[, start_from_zero]` — Optional boolean parameter indicating whether to start the NPV calculation from period `0` (true) or period `1` (false, Excel-compatible). Default: true. [`Bool`](/core/reference/data-types/boolean) **Returned value** -Returns the net present value as a Float64 value. [`Float64`](/reference/data-types/float) +Returns the net present value as a Float64 value. [`Float64`](/core/reference/data-types/float) **Examples** @@ -217,14 +217,14 @@ financialNetPresentValueExtended(rate, cashflows, dates[, daycount]) **Arguments** -- `rate` — The discount rate to apply. [`Float*`](/reference/data-types/float) -- `cashflows` — Array of cash flows. Each value represents a payment (negative value) or income (positive value). Must contain at least one positive and one negative value. [`Array(Int8/16/32/64)`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) -- `dates` — Array of dates corresponding to each cash flow. Must have the same size as cashflows array. [`Array(Date)`](/reference/data-types/array) or [`Array(Date32)`](/reference/data-types/array) -- `[, daycount]` — Optional day count convention. Supported values: `'ACT_365F'` (default) — Actual/365 Fixed, `'ACT_365_25'` — Actual/365.25. [`String`](/reference/data-types/string) +- `rate` — The discount rate to apply. [`Float*`](/core/reference/data-types/float) +- `cashflows` — Array of cash flows. Each value represents a payment (negative value) or income (positive value). Must contain at least one positive and one negative value. [`Array(Int8/16/32/64)`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) +- `dates` — Array of dates corresponding to each cash flow. Must have the same size as cashflows array. [`Array(Date)`](/core/reference/data-types/array) or [`Array(Date32)`](/core/reference/data-types/array) +- `[, daycount]` — Optional day count convention. Supported values: `'ACT_365F'` (default) — Actual/365 Fixed, `'ACT_365_25'` — Actual/365.25. [`String`](/core/reference/data-types/string) **Returned value** -Returns the net present value as a Float64 value. [`Float64`](/reference/data-types/float) +Returns the net present value as a Float64 value. [`Float64`](/core/reference/data-types/float) **Examples** diff --git a/reference/functions/regular-functions/functions-for-nulls.mdx b/core/reference/functions/regular-functions/functions-for-nulls.mdx similarity index 84% rename from reference/functions/regular-functions/functions-for-nulls.mdx rename to core/reference/functions/regular-functions/functions-for-nulls.mdx index 501ae737..ac5c2021 100644 --- a/reference/functions/regular-functions/functions-for-nulls.mdx +++ b/core/reference/functions/regular-functions/functions-for-nulls.mdx @@ -18,7 +18,7 @@ See: https://github.com/ClickHouse/clickhouse-docs/blob/main/contribute/autogene Introduced in: v1.1.0 -Returns the corresponding non-`Nullable` value for a value of type [`Nullable`](/reference/data-types/nullable). +Returns the corresponding non-`Nullable` value for a value of type [`Nullable`](/core/reference/data-types/nullable). If the original value is `NULL`, an arbitrary result can be returned. See also: functions [`ifNull`](#ifNull) and [`coalesce`](#coalesce). @@ -32,11 +32,11 @@ assumeNotNull(x) **Arguments** -- `x` — The original value of any nullable type. [`Nullable(T)`](/reference/data-types/nullable) +- `x` — The original value of any nullable type. [`Nullable(T)`](/core/reference/data-types/nullable) **Returned value** -Returns the non-nullable value, if the original value was not `NULL`, otherwise an arbitrary value, if the input value is `NULL`. [`Any`](/reference/data-types) +Returns the non-nullable value, if the original value was not `NULL`, otherwise an arbitrary value, if the input value is `NULL`. [`Any`](/core/reference/data-types) **Examples** @@ -79,11 +79,11 @@ coalesce(x[, y, ...]) **Arguments** -- `x[, y, ...]` — Any number of parameters of non-compound type. All parameters must be of mutually compatible data types. [`Any`](/reference/data-types) +- `x[, y, ...]` — Any number of parameters of non-compound type. All parameters must be of mutually compatible data types. [`Any`](/core/reference/data-types) **Returned value** -Returns the first non-`NULL` argument, otherwise `NULL`, if all arguments are `NULL`. [`Any`](/reference/data-types) or [`NULL`](/reference/syntax#null) +Returns the first non-`NULL` argument, otherwise `NULL`, if all arguments are `NULL`. [`Any`](/core/reference/data-types) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -195,12 +195,12 @@ ifNull(x, alt) **Arguments** -- `x` — The value to check for `NULL`. [`Any`](/reference/data-types) -- `alt` — The value that the function returns if `x` is `NULL`. [`Any`](/reference/data-types) +- `x` — The value to check for `NULL`. [`Any`](/core/reference/data-types) +- `alt` — The value that the function returns if `x` is `NULL`. [`Any`](/core/reference/data-types) **Returned value** -Returns the value of `x` if it is not `NULL`, otherwise `alt`. [`Any`](/reference/data-types) +Returns the value of `x` if it is not `NULL`, otherwise `alt`. [`Any`](/core/reference/data-types) **Examples** @@ -222,7 +222,7 @@ Introduced in: v1.1.0 Checks if the argument is not `NULL`. -Also see: operator [`IS NOT NULL`](/reference/operators#is_not_null). +Also see: operator [`IS NOT NULL`](/core/reference/operators#is_not_null). **Syntax** @@ -233,11 +233,11 @@ isNotNull(x) **Arguments** -- `x` — A value of non-compound data type. [`Any`](/reference/data-types) +- `x` — A value of non-compound data type. [`Any`](/core/reference/data-types) **Returned value** -Returns `1` if `x` is not `NULL`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `x` is not `NULL`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -269,7 +269,7 @@ Introduced in: v1.1.0 Checks if the argument is `NULL`. -Also see: operator [`IS NULL`](/reference/operators#is_null). +Also see: operator [`IS NULL`](/core/reference/operators#is_null). **Syntax** @@ -280,11 +280,11 @@ isNull(x) **Arguments** -- `x` — A value of non-compound data type. [`Any`](/reference/data-types) +- `x` — A value of non-compound data type. [`Any`](/core/reference/data-types) **Returned value** -Returns `1` if `x` is `NULL`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `x` is `NULL`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -325,11 +325,11 @@ isNullable(x) **Arguments** -- `x` — A value of any data type. [`Any`](/reference/data-types) +- `x` — A value of any data type. [`Any`](/core/reference/data-types) **Returned value** -Returns `1` if `x` is of a `Nullable` data type, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `x` is of a `Nullable` data type, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -369,11 +369,11 @@ isZeroOrNull(x) **Arguments** -- `x` — A numeric value. [`UInt`](/reference/data-types/int-uint) +- `x` — A numeric value. [`UInt`](/core/reference/data-types/int-uint) **Returned value** -Returns `1` if `x` is `NULL` or equal to zero, otherwise `0`. [`UInt8/16/32/64`](/reference/data-types/int-uint) or [`Float32/Float64`](/reference/data-types/float) +Returns `1` if `x` is `NULL` or equal to zero, otherwise `0`. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) or [`Float32/Float64`](/core/reference/data-types/float) **Examples** @@ -415,12 +415,12 @@ nullIf(x, y) **Arguments** -- `x` — The first value. [`Any`](/reference/data-types) -- `y` — The second value. [`Any`](/reference/data-types) +- `x` — The first value. [`Any`](/core/reference/data-types) +- `y` — The second value. [`Any`](/core/reference/data-types) **Returned value** -Returns `NULL` if both arguments are equal, otherwise returns the first argument. [`NULL`](/reference/syntax#null) or [`Nullable(x)`](/reference/data-types/nullable) +Returns `NULL` if both arguments are equal, otherwise returns the first argument. [`NULL`](/core/reference/syntax#null) or [`Nullable(x)`](/core/reference/data-types/nullable) **Examples** @@ -451,11 +451,11 @@ toNullable(x) **Arguments** -- `x` — A value of any non-compound type. [`Any`](/reference/data-types) +- `x` — A value of any non-compound type. [`Any`](/core/reference/data-types) **Returned value** -Returns the input value but of `Nullable` type. [`Nullable(Any)`](/reference/data-types/nullable) +Returns the input value but of `Nullable` type. [`Nullable(Any)`](/core/reference/data-types/nullable) **Examples** diff --git a/reference/functions/regular-functions/geo/coordinates.mdx b/core/reference/functions/regular-functions/geo/coordinates.mdx similarity index 89% rename from reference/functions/regular-functions/geo/coordinates.mdx rename to core/reference/functions/regular-functions/geo/coordinates.mdx index a58272d0..c5ed5c17 100644 --- a/reference/functions/regular-functions/geo/coordinates.mdx +++ b/core/reference/functions/regular-functions/geo/coordinates.mdx @@ -153,10 +153,10 @@ pointInPolygon((x, y), [(a, b), (c, d) ...], ...) **Input values** -- `(x, y)` — Coordinates of a point on the plane. Data type — [Tuple](/reference/data-types/tuple) — A tuple of two numbers. -- `[(a, b), (c, d) ...]` — Polygon vertices. Data type — [Array](/reference/data-types/array). Each vertex is represented by a pair of coordinates `(a, b)`. Vertices should be specified in a clockwise or counterclockwise order. The minimum number of vertices is 3. The polygon must be constant. -- The function supports polygon with holes (cut-out sections). Data type — [Polygon](/reference/data-types/geo#polygon). Either pass the entire `Polygon` as the second argument, or pass the outer ring first and then each hole as separate additional arguments. -- The function also supports multipolygon. Data type — [MultiPolygon](/reference/data-types/geo#multipolygon). Either pass the entire `MultiPolygon` as the second argument, or list each component polygon as its own argument. +- `(x, y)` — Coordinates of a point on the plane. Data type — [Tuple](/core/reference/data-types/tuple) — A tuple of two numbers. +- `[(a, b), (c, d) ...]` — Polygon vertices. Data type — [Array](/core/reference/data-types/array). Each vertex is represented by a pair of coordinates `(a, b)`. Vertices should be specified in a clockwise or counterclockwise order. The minimum number of vertices is 3. The polygon must be constant. +- The function supports polygon with holes (cut-out sections). Data type — [Polygon](/core/reference/data-types/geo#polygon). Either pass the entire `Polygon` as the second argument, or pass the outer ring first and then each hole as separate additional arguments. +- The function also supports multipolygon. Data type — [MultiPolygon](/core/reference/data-types/geo#multipolygon). Either pass the entire `MultiPolygon` as the second argument, or list each component polygon as its own argument. **Returned values** diff --git a/reference/functions/regular-functions/geo/flipCoordinates.mdx b/core/reference/functions/regular-functions/geo/flipCoordinates.mdx similarity index 83% rename from reference/functions/regular-functions/geo/flipCoordinates.mdx rename to core/reference/functions/regular-functions/geo/flipCoordinates.mdx index 9d2f91af..f09ee157 100644 --- a/reference/functions/regular-functions/geo/flipCoordinates.mdx +++ b/core/reference/functions/regular-functions/geo/flipCoordinates.mdx @@ -17,10 +17,10 @@ flipCoordinates(coordinates) ### Input Parameters {#input-parameters} - `coordinates` — A tuple representing a point `(x, y)`, or an array of such tuples representing a ring, polygon, or multipolygon. Supported input types include: - - [**Point**](/reference/data-types/geo#point): A tuple `(x, y)` where `x` and `y` are [Float64](/reference/data-types/float) values. - - [**Ring**](/reference/data-types/geo#ring): An array of points `[(x1, y1), (x2, y2), ...]`. - - [**Polygon**](/reference/data-types/geo#polygon): An array of rings `[ring1, ring2, ...]`, where each ring is an array of points. - - [**Multipolygon**](/reference/data-types/geo#multipolygon): An array of polygons `[polygon1, polygon2, ...]`. + - [**Point**](/core/reference/data-types/geo#point): A tuple `(x, y)` where `x` and `y` are [Float64](/core/reference/data-types/float) values. + - [**Ring**](/core/reference/data-types/geo#ring): An array of points `[(x1, y1), (x2, y2), ...]`. + - [**Polygon**](/core/reference/data-types/geo#polygon): An array of rings `[ring1, ring2, ...]`, where each ring is an array of points. + - [**Multipolygon**](/core/reference/data-types/geo#multipolygon): An array of polygons `[polygon1, polygon2, ...]`. ### Returned Value {#returned-value} diff --git a/reference/functions/regular-functions/geo/geohash.mdx b/core/reference/functions/regular-functions/geo/geohash.mdx similarity index 82% rename from reference/functions/regular-functions/geo/geohash.mdx rename to core/reference/functions/regular-functions/geo/geohash.mdx index c6a62725..b454f238 100644 --- a/reference/functions/regular-functions/geo/geohash.mdx +++ b/core/reference/functions/regular-functions/geo/geohash.mdx @@ -24,9 +24,9 @@ geohashEncode(longitude, latitude, [precision]) **Input values** -- `longitude` — Longitude part of the coordinate you want to encode. Floating in range`[-180°, 180°]`. [Float](/reference/data-types/float). -- `latitude` — Latitude part of the coordinate you want to encode. Floating in range `[-90°, 90°]`. [Float](/reference/data-types/float). -- `precision` (optional) — Length of the resulting encoded string. Defaults to `12`. Integer in the range `[1, 12]`. [Int8](/reference/data-types/int-uint). +- `longitude` — Longitude part of the coordinate you want to encode. Floating in range`[-180°, 180°]`. [Float](/core/reference/data-types/float). +- `latitude` — Latitude part of the coordinate you want to encode. Floating in range `[-90°, 90°]`. [Float](/core/reference/data-types/float). +- `precision` (optional) — Length of the resulting encoded string. Defaults to `12`. Integer in the range `[1, 12]`. [Int8](/core/reference/data-types/int-uint). - All coordinate parameters must be of the same type: either `Float32` or `Float64`. @@ -35,7 +35,7 @@ geohashEncode(longitude, latitude, [precision]) **Returned values** -- Alphanumeric string of the encoded coordinate (modified version of the base32-encoding alphabet is used). [String](/reference/data-types/string). +- Alphanumeric string of the encoded coordinate (modified version of the base32-encoding alphabet is used). [String](/core/reference/data-types/string). **Example** @@ -65,7 +65,7 @@ geohashDecode(hash_str) **Returned values** -- Tuple `(longitude, latitude)` of `Float64` values of longitude and latitude. [Tuple](/reference/data-types/tuple)([Float64](/reference/data-types/float)) +- Tuple `(longitude, latitude)` of `Float64` values of longitude and latitude. [Tuple](/core/reference/data-types/tuple)([Float64](/core/reference/data-types/float)) **Example** @@ -91,11 +91,11 @@ geohashesInBox(longitude_min, latitude_min, longitude_max, latitude_max, precisi **Arguments** -- `longitude_min` — Minimum longitude. Range: `[-180°, 180°]`. [Float](/reference/data-types/float). -- `latitude_min` — Minimum latitude. Range: `[-90°, 90°]`. [Float](/reference/data-types/float). -- `longitude_max` — Maximum longitude. Range: `[-180°, 180°]`. [Float](/reference/data-types/float). -- `latitude_max` — Maximum latitude. Range: `[-90°, 90°]`. [Float](/reference/data-types/float). -- `precision` — Geohash precision. Range: `[1, 12]`. [UInt8](/reference/data-types/int-uint). +- `longitude_min` — Minimum longitude. Range: `[-180°, 180°]`. [Float](/core/reference/data-types/float). +- `latitude_min` — Minimum latitude. Range: `[-90°, 90°]`. [Float](/core/reference/data-types/float). +- `longitude_max` — Maximum longitude. Range: `[-180°, 180°]`. [Float](/core/reference/data-types/float). +- `latitude_max` — Maximum latitude. Range: `[-90°, 90°]`. [Float](/core/reference/data-types/float). +- `precision` — Geohash precision. Range: `[1, 12]`. [UInt8](/core/reference/data-types/int-uint). **** @@ -105,7 +105,7 @@ All coordinate parameters must be of the same type: either `Float32` or `Float64 **Returned values** -- Array of precision-long strings of geohash-boxes covering provided area, you should not rely on order of items. [Array](/reference/data-types/array)([String](/reference/data-types/string)). +- Array of precision-long strings of geohash-boxes covering provided area, you should not rely on order of items. [Array](/core/reference/data-types/array)([String](/core/reference/data-types/string)). - `[]` - Empty array if minimum latitude and longitude values aren't less than corresponding maximum values. diff --git a/reference/functions/regular-functions/geo/geometry.mdx b/core/reference/functions/regular-functions/geo/geometry.mdx similarity index 85% rename from reference/functions/regular-functions/geo/geometry.mdx rename to core/reference/functions/regular-functions/geo/geometry.mdx index c6a1eb3e..d9868c76 100644 --- a/reference/functions/regular-functions/geo/geometry.mdx +++ b/core/reference/functions/regular-functions/geo/geometry.mdx @@ -21,10 +21,10 @@ perimeterCartesian(geom) ``` **Arguments** -- `geom` — Geometry object. [Geometry](/reference/data-types/geo). +- `geom` — Geometry object. [Geometry](/core/reference/data-types/geo). **Returned values** -- Number — Perimeter of the object in the coordinate system units. [Float64](/reference/data-types/float). +- Number — Perimeter of the object in the coordinate system units. [Float64](/core/reference/data-types/float). **Example** @@ -51,10 +51,10 @@ areaCartesian(geom) ``` **Arguments** -- `geom` — Geometry object. [Geometry](/reference/data-types/geo). +- `geom` — Geometry object. [Geometry](/core/reference/data-types/geo). **Returned values** -- Number — Area of the object in coordinate system units. [Float64](/reference/data-types/float). +- Number — Area of the object in coordinate system units. [Float64](/core/reference/data-types/float). **Example** @@ -81,10 +81,10 @@ perimeterSpherical(geom) ``` **Arguments** -- `geom` — Geometry object. [Geometry](/reference/data-types/geo). +- `geom` — Geometry object. [Geometry](/core/reference/data-types/geo). **Returned values** -- Number — Perimeter. [Float64](/reference/data-types/float). +- Number — Perimeter. [Float64](/core/reference/data-types/float). **Example** @@ -111,10 +111,10 @@ areaSpherical(geom) ``` **Arguments** -- `geom` — Geometry. [Geometry](/reference/data-types/geo). +- `geom` — Geometry. [Geometry](/core/reference/data-types/geo). **Returned values** -- Number — Area. [Float64](/reference/data-types/float). +- Number — Area. [Float64](/core/reference/data-types/float). **Example** diff --git a/reference/functions/regular-functions/geo/h3.mdx b/core/reference/functions/regular-functions/geo/h3.mdx similarity index 78% rename from reference/functions/regular-functions/geo/h3.mdx rename to core/reference/functions/regular-functions/geo/h3.mdx index 989d0926..5b41a106 100644 --- a/reference/functions/regular-functions/geo/h3.mdx +++ b/core/reference/functions/regular-functions/geo/h3.mdx @@ -30,12 +30,12 @@ h3IsValid(h3index) **Parameter** -- `h3index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `h3index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned values** -- 1 — The number is a valid H3 index. [UInt8](/reference/data-types/int-uint). -- 0 — The number is not a valid H3 index. [UInt8](/reference/data-types/int-uint). +- 1 — The number is a valid H3 index. [UInt8](/core/reference/data-types/int-uint). +- 0 — The number is not a valid H3 index. [UInt8](/core/reference/data-types/int-uint). **Example** @@ -61,12 +61,12 @@ h3GetResolution(h3index) **Parameter** -- `h3index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `h3index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned values** -- Index resolution. Range: `[0, 15]`. [UInt8](/reference/data-types/int-uint). -- If the index is not valid, the function returns a random value. Use [h3IsValid](#h3isvalid) to verify the index. [UInt8](/reference/data-types/int-uint). +- Index resolution. Range: `[0, 15]`. [UInt8](/core/reference/data-types/int-uint). +- If the index is not valid, the function returns a random value. Use [h3IsValid](#h3isvalid) to verify the index. [UInt8](/core/reference/data-types/int-uint). **Example** @@ -92,11 +92,11 @@ h3EdgeAngle(resolution) **Parameter** -- `resolution` — Index resolution. [UInt8](/reference/data-types/int-uint). Range: `[0, 15]`. +- `resolution` — Index resolution. [UInt8](/core/reference/data-types/int-uint). Range: `[0, 15]`. **Returned values** -- The average length of an [H3](#h3-index) hexagon edge in grades. [Float64](/reference/data-types/float). +- The average length of an [H3](#h3-index) hexagon edge in grades. [Float64](/core/reference/data-types/float). **Example** @@ -122,11 +122,11 @@ h3EdgeLengthM(resolution) **Parameter** -- `resolution` — Index resolution. [UInt8](/reference/data-types/int-uint). Range: `[0, 15]`. +- `resolution` — Index resolution. [UInt8](/core/reference/data-types/int-uint). Range: `[0, 15]`. **Returned values** -- The average edge length of an [H3](#h3-index) hexagon in meters. [Float64](/reference/data-types/float). +- The average edge length of an [H3](#h3-index) hexagon in meters. [Float64](/core/reference/data-types/float). **Example** @@ -152,11 +152,11 @@ h3EdgeLengthKm(resolution) **Parameter** -- `resolution` — Index resolution. [UInt8](/reference/data-types/int-uint). Range: `[0, 15]`. +- `resolution` — Index resolution. [UInt8](/core/reference/data-types/int-uint). Range: `[0, 15]`. **Returned values** -- The average length of an [H3](#h3-index) hexagon edge in kilometers. [Float64](/reference/data-types/float). +- The average length of an [H3](#h3-index) hexagon edge in kilometers. [Float64](/core/reference/data-types/float). **Example** @@ -182,14 +182,14 @@ geoToH3(lat, lon, resolution) **Arguments** -- `lat` — Latitude. [Float64](/reference/data-types/float). -- `lon` — Longitude. [Float64](/reference/data-types/float). -- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/reference/data-types/int-uint). +- `lat` — Latitude. [Float64](/core/reference/data-types/float). +- `lon` — Longitude. [Float64](/core/reference/data-types/float). +- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/core/reference/data-types/int-uint). **Returned values** -- Hexagon index number. [UInt64](/reference/data-types/int-uint). -- 0 in case of error. [UInt64](/reference/data-types/int-uint). +- Hexagon index number. [UInt64](/core/reference/data-types/int-uint). +- 0 in case of error. [UInt64](/core/reference/data-types/int-uint). Note: In ClickHouse v25.4 or older, `geoToH3()` takes values in order `(lon, lat)`. As per ClickHouse v25.5, the input values are in order `(lat, lon)`. The previous behaviour can be restored using setting `geotoh3_argument_order = 'lon_lat'`. @@ -217,11 +217,11 @@ h3ToGeo(h3Index) **Arguments** -- `h3Index` — H3 Index. [UInt64](/reference/data-types/int-uint). +- `h3Index` — H3 Index. [UInt64](/core/reference/data-types/int-uint). **Returned values** -- A tuple consisting of two values: `tuple(lat,lon)`. `lat` — Latitude. [Float64](/reference/data-types/float). `lon` — Longitude. [Float64](/reference/data-types/float). +- A tuple consisting of two values: `tuple(lat,lon)`. `lat` — Latitude. [Float64](/core/reference/data-types/float). `lon` — Longitude. [Float64](/core/reference/data-types/float). Note: In ClickHouse v24.12 or older, `h3ToGeo()` returns values in order `(lon, lat)`. As per ClickHouse v25.1, the returned values are in order `(lat, lon)`. The previous behaviour can be restored using setting `h3togeo_lon_lat_result_order = true`. @@ -249,11 +249,11 @@ h3ToGeoBoundary(h3Index) **Arguments** -- `h3Index` — H3 Index. [UInt64](/reference/data-types/int-uint). +- `h3Index` — H3 Index. [UInt64](/core/reference/data-types/int-uint). **Returned values** -- Array of pairs '(lat, lon)'. [Array](/reference/data-types/array)([Float64](/reference/data-types/float), [Float64](/reference/data-types/float)). +- Array of pairs '(lat, lon)'. [Array](/core/reference/data-types/array)([Float64](/core/reference/data-types/float), [Float64](/core/reference/data-types/float)). **Example** @@ -279,12 +279,12 @@ h3kRing(h3index, k) **Arguments** -- `h3index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). -- `k` — Radius. [integer](/reference/data-types/int-uint) +- `h3index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). +- `k` — Radius. [integer](/core/reference/data-types/int-uint) **Returned values** -- Array of H3 indexes. [Array](/reference/data-types/array)([UInt64](/reference/data-types/int-uint)). +- Array of H3 indexes. [Array](/core/reference/data-types/array)([UInt64](/core/reference/data-types/int-uint)). **Example** @@ -316,15 +316,15 @@ h3PolygonToCells(geometry, resolution) **Arguments** -- `geometry` can be one of the following [Geo Data Types](/reference/data-types/geo) or their underlying primitive types: - - [Ring](/reference/data-types/geo#ring) - - [Polygon](/reference/data-types/geo#polygon) - - [MultiPolygon](/reference/data-types/geo#multipolygon) -- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/reference/data-types/int-uint). +- `geometry` can be one of the following [Geo Data Types](/core/reference/data-types/geo) or their underlying primitive types: + - [Ring](/core/reference/data-types/geo#ring) + - [Polygon](/core/reference/data-types/geo#polygon) + - [MultiPolygon](/core/reference/data-types/geo#multipolygon) +- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/core/reference/data-types/int-uint). **Returned values** -- Array of the contained H3-indexes. [Array](/reference/data-types/array)([UInt64](/reference/data-types/int-uint)). +- Array of the contained H3-indexes. [Array](/core/reference/data-types/array)([UInt64](/core/reference/data-types/int-uint)). **Example** @@ -356,11 +356,11 @@ h3GetBaseCell(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Hexagon base cell number. [UInt8](/reference/data-types/int-uint). +- Hexagon base cell number. [UInt8](/core/reference/data-types/int-uint). **Example** @@ -386,11 +386,11 @@ h3HexAreaM2(resolution) **Parameter** -- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/reference/data-types/int-uint). +- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/core/reference/data-types/int-uint). **Returned value** -- Area in square meters. [Float64](/reference/data-types/float). +- Area in square meters. [Float64](/core/reference/data-types/float). **Example** @@ -416,11 +416,11 @@ h3HexAreaKm2(resolution) **Parameter** -- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/reference/data-types/int-uint). +- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/core/reference/data-types/int-uint). **Returned value** -- Area in square kilometers. [Float64](/reference/data-types/float). +- Area in square kilometers. [Float64](/core/reference/data-types/float). **Example** @@ -446,13 +446,13 @@ h3IndexesAreNeighbors(index1, index2) **Arguments** -- `index1` — Hexagon index number. [UInt64](/reference/data-types/int-uint). -- `index2` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index1` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). +- `index2` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- `1` — Indexes are neighbours. [UInt8](/reference/data-types/int-uint). -- `0` — Indexes are not neighbours. [UInt8](/reference/data-types/int-uint). +- `1` — Indexes are neighbours. [UInt8](/core/reference/data-types/int-uint). +- `0` — Indexes are not neighbours. [UInt8](/core/reference/data-types/int-uint). **Example** @@ -478,12 +478,12 @@ h3ToChildren(index, resolution) **Arguments** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). -- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). +- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/core/reference/data-types/int-uint). **Returned values** -- Array of the child H3-indexes. [Array](/reference/data-types/array)([UInt64](/reference/data-types/int-uint)). +- Array of the child H3-indexes. [Array](/core/reference/data-types/array)([UInt64](/core/reference/data-types/int-uint)). **Example** @@ -509,12 +509,12 @@ h3ToParent(index, resolution) **Arguments** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). -- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). +- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/core/reference/data-types/int-uint). **Returned value** -- Parent H3 index. [UInt64](/reference/data-types/int-uint). +- Parent H3 index. [UInt64](/core/reference/data-types/int-uint). **Example** @@ -538,11 +538,11 @@ h3ToString(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- String representation of the H3 index. [String](/reference/data-types/string). +- String representation of the H3 index. [String](/core/reference/data-types/string). **Example** @@ -568,11 +568,11 @@ stringToH3(index_str) **Parameter** -- `index_str` — String representation of the H3 index. [String](/reference/data-types/string). +- `index_str` — String representation of the H3 index. [String](/core/reference/data-types/string). **Returned value** -- Hexagon index number. Returns 0 on error. [UInt64](/reference/data-types/int-uint). +- Hexagon index number. Returns 0 on error. [UInt64](/core/reference/data-types/int-uint). **Example** @@ -598,11 +598,11 @@ h3GetResolution(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Index resolution. Range: `[0, 15]`. [UInt8](/reference/data-types/int-uint). +- Index resolution. Range: `[0, 15]`. [UInt8](/core/reference/data-types/int-uint). **Example** @@ -628,12 +628,12 @@ h3IsResClassIII(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- `1` — Index has a resolution with Class III orientation. [UInt8](/reference/data-types/int-uint). -- `0` — Index doesn't have a resolution with Class III orientation. [UInt8](/reference/data-types/int-uint). +- `1` — Index has a resolution with Class III orientation. [UInt8](/core/reference/data-types/int-uint). +- `0` — Index doesn't have a resolution with Class III orientation. [UInt8](/core/reference/data-types/int-uint). **Example** @@ -659,12 +659,12 @@ h3IsPentagon(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- `1` — Index represents a pentagonal cell. [UInt8](/reference/data-types/int-uint). -- `0` — Index doesn't represent a pentagonal cell. [UInt8](/reference/data-types/int-uint). +- `1` — Index represents a pentagonal cell. [UInt8](/core/reference/data-types/int-uint). +- `0` — Index doesn't represent a pentagonal cell. [UInt8](/core/reference/data-types/int-uint). **Example** @@ -690,11 +690,11 @@ h3GetFaces(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned values** -- Array containing icosahedron faces intersected by a given H3 index. [Array](/reference/data-types/array)([UInt64](/reference/data-types/int-uint)). +- Array containing icosahedron faces intersected by a given H3 index. [Array](/core/reference/data-types/array)([UInt64](/core/reference/data-types/int-uint)). **Example** @@ -720,11 +720,11 @@ h3CellAreaM2(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Cell area in square meters. [Float64](/reference/data-types/float). +- Cell area in square meters. [Float64](/core/reference/data-types/float). **Example** @@ -750,11 +750,11 @@ h3CellAreaRads2(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Cell area in square radians. [Float64](/reference/data-types/float). +- Cell area in square radians. [Float64](/core/reference/data-types/float). **Example** @@ -780,12 +780,12 @@ h3ToCenterChild(index, resolution) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). -- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). +- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/core/reference/data-types/int-uint). **Returned values** -- [H3](#h3-index) index of the center child contained by given [H3](#h3-index) at the given resolution. [UInt64](/reference/data-types/int-uint). +- [H3](#h3-index) index of the center child contained by given [H3](#h3-index) at the given resolution. [UInt64](/core/reference/data-types/int-uint). **Example** @@ -811,11 +811,11 @@ h3ExactEdgeLengthM(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Exact edge length in meters. [Float64](/reference/data-types/float). +- Exact edge length in meters. [Float64](/core/reference/data-types/float). **Example** @@ -841,11 +841,11 @@ h3ExactEdgeLengthKm(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Exact edge length in kilometers. [Float64](/reference/data-types/float). +- Exact edge length in kilometers. [Float64](/core/reference/data-types/float). **Example** @@ -871,11 +871,11 @@ h3ExactEdgeLengthRads(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Exact edge length in radians. [Float64](/reference/data-types/float). +- Exact edge length in radians. [Float64](/core/reference/data-types/float). **Example** @@ -901,11 +901,11 @@ h3NumHexagons(resolution) **Parameter** -- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/reference/data-types/int-uint). +- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/core/reference/data-types/int-uint). **Returned value** -- Number of H3 indices. [Int64](/reference/data-types/int-uint). +- Number of H3 indices. [Int64](/core/reference/data-types/int-uint). **Example** @@ -931,12 +931,12 @@ h3PointDistM(lat1, lon1, lat2, lon2) **Arguments** -- `lat1`, `lon1` — Latitude and Longitude of point1 in degrees. [Float64](/reference/data-types/float). -- `lat2`, `lon2` — Latitude and Longitude of point2 in degrees. [Float64](/reference/data-types/float). +- `lat1`, `lon1` — Latitude and Longitude of point1 in degrees. [Float64](/core/reference/data-types/float). +- `lat2`, `lon2` — Latitude and Longitude of point2 in degrees. [Float64](/core/reference/data-types/float). **Returned values** -- Haversine or great circle distance in meters.[Float64](/reference/data-types/float). +- Haversine or great circle distance in meters.[Float64](/core/reference/data-types/float). **Example** @@ -962,12 +962,12 @@ h3PointDistKm(lat1, lon1, lat2, lon2) **Arguments** -- `lat1`, `lon1` — Latitude and Longitude of point1 in degrees. [Float64](/reference/data-types/float). -- `lat2`, `lon2` — Latitude and Longitude of point2 in degrees. [Float64](/reference/data-types/float). +- `lat1`, `lon1` — Latitude and Longitude of point1 in degrees. [Float64](/core/reference/data-types/float). +- `lat2`, `lon2` — Latitude and Longitude of point2 in degrees. [Float64](/core/reference/data-types/float). **Returned values** -- Haversine or great circle distance in kilometers. [Float64](/reference/data-types/float). +- Haversine or great circle distance in kilometers. [Float64](/core/reference/data-types/float). **Example** @@ -993,12 +993,12 @@ h3PointDistRads(lat1, lon1, lat2, lon2) **Arguments** -- `lat1`, `lon1` — Latitude and Longitude of point1 in degrees. [Float64](/reference/data-types/float). -- `lat2`, `lon2` — Latitude and Longitude of point2 in degrees. [Float64](/reference/data-types/float). +- `lat1`, `lon1` — Latitude and Longitude of point1 in degrees. [Float64](/core/reference/data-types/float). +- `lat2`, `lon2` — Latitude and Longitude of point2 in degrees. [Float64](/core/reference/data-types/float). **Returned values** -- Haversine or great circle distance in radians. [Float64](/reference/data-types/float). +- Haversine or great circle distance in radians. [Float64](/core/reference/data-types/float). **Example** @@ -1024,7 +1024,7 @@ h3GetRes0Indexes() **Returned values** -- Array of all the resolution 0 H3 indexes. [Array](/reference/data-types/array)([UInt64](/reference/data-types/int-uint)). +- Array of all the resolution 0 H3 indexes. [Array](/core/reference/data-types/array)([UInt64](/core/reference/data-types/int-uint)). **Example** @@ -1050,11 +1050,11 @@ h3GetPentagonIndexes(resolution) **Parameter** -- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/reference/data-types/int-uint). +- `resolution` — Index resolution. Range: `[0, 15]`. [UInt8](/core/reference/data-types/int-uint). **Returned value** -- Array of all pentagon H3 indexes. [Array](/reference/data-types/array)([UInt64](/reference/data-types/int-uint)). +- Array of all pentagon H3 indexes. [Array](/core/reference/data-types/array)([UInt64](/core/reference/data-types/int-uint)). **Example** @@ -1080,12 +1080,12 @@ h3Line(start,end) **Parameter** -- `start` — Hexagon index number that represents a starting point. [UInt64](/reference/data-types/int-uint). -- `end` — Hexagon index number that represents an ending point. [UInt64](/reference/data-types/int-uint). +- `start` — Hexagon index number that represents a starting point. [UInt64](/core/reference/data-types/int-uint). +- `end` — Hexagon index number that represents an ending point. [UInt64](/core/reference/data-types/int-uint). **Returned value** -Array of h3 indexes representing the line of indices between the two provided indices. [Array](/reference/data-types/array)([UInt64](/reference/data-types/int-uint)). +Array of h3 indexes representing the line of indices between the two provided indices. [Array](/core/reference/data-types/array)([UInt64](/core/reference/data-types/int-uint)). **Example** @@ -1111,12 +1111,12 @@ h3Distance(start,end) **Parameter** -- `start` — Hexagon index number that represents a starting point. [UInt64](/reference/data-types/int-uint). -- `end` — Hexagon index number that represents an ending point. [UInt64](/reference/data-types/int-uint). +- `start` — Hexagon index number that represents a starting point. [UInt64](/core/reference/data-types/int-uint). +- `end` — Hexagon index number that represents an ending point. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Number of grid cells. [Int64](/reference/data-types/int-uint). +- Number of grid cells. [Int64](/core/reference/data-types/int-uint). Returns a negative number if finding the distance fails. @@ -1146,12 +1146,12 @@ h3HexRing(index, k) **Parameter** -- `index` — Hexagon index number that represents the origin. [UInt64](/reference/data-types/int-uint). -- `k` — Distance. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number that represents the origin. [UInt64](/core/reference/data-types/int-uint). +- `k` — Distance. [UInt64](/core/reference/data-types/int-uint). **Returned values** -- Array of H3 indexes. [Array](/reference/data-types/array)([UInt64](/reference/data-types/int-uint)). +- Array of H3 indexes. [Array](/core/reference/data-types/array)([UInt64](/core/reference/data-types/int-uint)). **Example** @@ -1177,12 +1177,12 @@ h3GetUnidirectionalEdge(originIndex, destinationIndex) **Parameter** -- `originIndex` — Origin Hexagon index number. [UInt64](/reference/data-types/int-uint). -- `destinationIndex` — Destination Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `originIndex` — Origin Hexagon index number. [UInt64](/core/reference/data-types/int-uint). +- `destinationIndex` — Destination Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Unidirectional Edge Hexagon Index number. [UInt64](/reference/data-types/int-uint). +- Unidirectional Edge Hexagon Index number. [UInt64](/core/reference/data-types/int-uint). **Example** @@ -1208,12 +1208,12 @@ h3UnidirectionalEdgeisValid(index) **Parameter** -- `index` — Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- 1 — The H3 index is a valid unidirectional edge. [UInt8](/reference/data-types/int-uint). -- 0 — The H3 index is not a valid unidirectional edge. [UInt8](/reference/data-types/int-uint). +- 1 — The H3 index is a valid unidirectional edge. [UInt8](/core/reference/data-types/int-uint). +- 0 — The H3 index is not a valid unidirectional edge. [UInt8](/core/reference/data-types/int-uint). **Example** @@ -1239,11 +1239,11 @@ h3GetOriginIndexFromUnidirectionalEdge(edge) **Parameter** -- `edge` — Hexagon index number that represents a unidirectional edge. [UInt64](/reference/data-types/int-uint). +- `edge` — Hexagon index number that represents a unidirectional edge. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Origin Hexagon Index number. [UInt64](/reference/data-types/int-uint). +- Origin Hexagon Index number. [UInt64](/core/reference/data-types/int-uint). **Example** @@ -1269,11 +1269,11 @@ h3GetDestinationIndexFromUnidirectionalEdge(edge) **Parameter** -- `edge` — Hexagon index number that represents a unidirectional edge. [UInt64](/reference/data-types/int-uint). +- `edge` — Hexagon index number that represents a unidirectional edge. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Destination Hexagon Index number. [UInt64](/reference/data-types/int-uint). +- Destination Hexagon Index number. [UInt64](/core/reference/data-types/int-uint). **Example** @@ -1299,14 +1299,14 @@ h3GetIndexesFromUnidirectionalEdge(edge) **Parameter** -- `edge` — Hexagon index number that represents a unidirectional edge. [UInt64](/reference/data-types/int-uint). +- `edge` — Hexagon index number that represents a unidirectional edge. [UInt64](/core/reference/data-types/int-uint). **Returned value** A tuple consisting of two values `tuple(origin,destination)`: -- `origin` — Origin Hexagon index number. [UInt64](/reference/data-types/int-uint). -- `destination` — Destination Hexagon index number. [UInt64](/reference/data-types/int-uint). +- `origin` — Origin Hexagon index number. [UInt64](/core/reference/data-types/int-uint). +- `destination` — Destination Hexagon index number. [UInt64](/core/reference/data-types/int-uint). Returns `(0,0)` if the provided input is not valid. @@ -1334,11 +1334,11 @@ h3GetUnidirectionalEdgesFromHexagon(index) **Parameter** -- `index` — Hexagon index number that represents a unidirectional edge. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number that represents a unidirectional edge. [UInt64](/core/reference/data-types/int-uint). **Returned value** -Array of h3 indexes representing each unidirectional edge. [Array](/reference/data-types/array)([UInt64](/reference/data-types/int-uint)). +Array of h3 indexes representing each unidirectional edge. [Array](/core/reference/data-types/array)([UInt64](/core/reference/data-types/int-uint)). **Example** @@ -1364,11 +1364,11 @@ h3GetUnidirectionalEdgeBoundary(index) **Parameter** -- `index` — Hexagon index number that represents a unidirectional edge. [UInt64](/reference/data-types/int-uint). +- `index` — Hexagon index number that represents a unidirectional edge. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- Array of pairs '(lon, lat)'. [Array](/reference/data-types/array)([Float64](/reference/data-types/float), [Float64](/reference/data-types/float)). +- Array of pairs '(lon, lat)'. [Array](/core/reference/data-types/array)([Float64](/core/reference/data-types/float), [Float64](/core/reference/data-types/float)). **Example** diff --git a/core/reference/functions/regular-functions/geo/index.mdx b/core/reference/functions/regular-functions/geo/index.mdx new file mode 100644 index 00000000..702cb941 --- /dev/null +++ b/core/reference/functions/regular-functions/geo/index.mdx @@ -0,0 +1,9 @@ +--- +description: 'Documentation for Index' +sidebarTitle: 'Geo' +slug: /sql-reference/functions/geo/ +title: 'Geo Functions' +doc_type: 'reference' +--- + +Functions for working with geometric objects, for example [to calculate distances between points on a sphere](/core/reference/functions/regular-functions/geo/coordinates), [compute geohashes](/core/reference/functions/regular-functions/geo/geohash), and work with [h3 indexes](/core/reference/functions/regular-functions/geo/h3). diff --git a/reference/functions/regular-functions/geo/polygon.mdx b/core/reference/functions/regular-functions/geo/polygon.mdx similarity index 98% rename from reference/functions/regular-functions/geo/polygon.mdx rename to core/reference/functions/regular-functions/geo/polygon.mdx index 825a98b4..106b4797 100644 --- a/reference/functions/regular-functions/geo/polygon.mdx +++ b/core/reference/functions/regular-functions/geo/polygon.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' ## WKT {#wkt} -Returns a WKT (Well Known Text) geometric object from various [Geo Data Types](/reference/data-types/geo). Supported WKT objects are: +Returns a WKT (Well Known Text) geometric object from various [Geo Data Types](/core/reference/data-types/geo). Supported WKT objects are: - POINT - POLYGON @@ -24,14 +24,14 @@ WKT(geo_data) **Parameters** -`geo_data` can be one of the following [Geo Data Types](/reference/data-types/geo) or their underlying primitive types: +`geo_data` can be one of the following [Geo Data Types](/core/reference/data-types/geo) or their underlying primitive types: -- [Point](/reference/data-types/geo#point) -- [Ring](/reference/data-types/geo#ring) -- [Polygon](/reference/data-types/geo#polygon) -- [MultiPolygon](/reference/data-types/geo#multipolygon) -- [LineString](/reference/data-types/geo#linestring) -- [MultiLineString](/reference/data-types/geo#multilinestring) +- [Point](/core/reference/data-types/geo#point) +- [Ring](/core/reference/data-types/geo#ring) +- [Polygon](/core/reference/data-types/geo#polygon) +- [MultiPolygon](/core/reference/data-types/geo#multipolygon) +- [LineString](/core/reference/data-types/geo#linestring) +- [MultiLineString](/core/reference/data-types/geo#multilinestring) **Returned value** diff --git a/reference/functions/regular-functions/geo/s2.mdx b/core/reference/functions/regular-functions/geo/s2.mdx similarity index 79% rename from reference/functions/regular-functions/geo/s2.mdx rename to core/reference/functions/regular-functions/geo/s2.mdx index 44324111..841e7693 100644 --- a/reference/functions/regular-functions/geo/s2.mdx +++ b/core/reference/functions/regular-functions/geo/s2.mdx @@ -24,12 +24,12 @@ geoToS2(lon, lat) **Arguments** -- `lon` — Longitude. [Float64](/reference/data-types/float). -- `lat` — Latitude. [Float64](/reference/data-types/float). +- `lon` — Longitude. [Float64](/core/reference/data-types/float). +- `lat` — Latitude. [Float64](/core/reference/data-types/float). **Returned values** -- S2 point index. [UInt64](/reference/data-types/int-uint). +- S2 point index. [UInt64](/core/reference/data-types/int-uint). **Example** @@ -55,13 +55,13 @@ s2ToGeo(s2index) **Arguments** -- `s2index` — S2 Index. [UInt64](/reference/data-types/int-uint). +- `s2index` — S2 Index. [UInt64](/core/reference/data-types/int-uint). **Returned values** -- A [tuple](/reference/data-types/tuple) consisting of two values: - - `lon`. [Float64](/reference/data-types/float). - - `lat`. [Float64](/reference/data-types/float). +- A [tuple](/core/reference/data-types/tuple) consisting of two values: + - `lon`. [Float64](/core/reference/data-types/float). + - `lat`. [Float64](/core/reference/data-types/float). **Example** @@ -87,11 +87,11 @@ s2GetNeighbors(s2index) **Arguments** -- `s2index` — S2 Index. [UInt64](/reference/data-types/int-uint). +- `s2index` — S2 Index. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- An array consisting of 4 neighbor indexes: `array[s2index1, s2index3, s2index2, s2index4]`. [Array](/reference/data-types/array)([UInt64](/reference/data-types/int-uint)). +- An array consisting of 4 neighbor indexes: `array[s2index1, s2index3, s2index2, s2index4]`. [Array](/core/reference/data-types/array)([UInt64](/core/reference/data-types/int-uint)). **Example** @@ -117,12 +117,12 @@ s2CellsIntersect(s2index1, s2index2) **Arguments** -- `siIndex1`, `s2index2` — S2 Index. [UInt64](/reference/data-types/int-uint). +- `siIndex1`, `s2index2` — S2 Index. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- `1` — If the cells intersect. [UInt8](/reference/data-types/int-uint). -- `0` — If the cells don't intersect. [UInt8](/reference/data-types/int-uint). +- `1` — If the cells intersect. [UInt8](/core/reference/data-types/int-uint). +- `0` — If the cells don't intersect. [UInt8](/core/reference/data-types/int-uint). **Example** @@ -148,14 +148,14 @@ s2CapContains(center, degrees, point) **Arguments** -- `center` — S2 point index corresponding to the cap. [UInt64](/reference/data-types/int-uint). -- `degrees` — Radius of the cap in degrees. [Float64](/reference/data-types/float). -- `point` — S2 point index. [UInt64](/reference/data-types/int-uint). +- `center` — S2 point index corresponding to the cap. [UInt64](/core/reference/data-types/int-uint). +- `degrees` — Radius of the cap in degrees. [Float64](/core/reference/data-types/float). +- `point` — S2 point index. [UInt64](/core/reference/data-types/int-uint). **Returned value** -- `1` — If the cap contains the S2 point index. [UInt8](/reference/data-types/int-uint). -- `0` — If the cap doesn't contain the S2 point index. [UInt8](/reference/data-types/int-uint). +- `1` — If the cap contains the S2 point index. [UInt8](/core/reference/data-types/int-uint). +- `0` — If the cap doesn't contain the S2 point index. [UInt8](/core/reference/data-types/int-uint). **Example** @@ -181,13 +181,13 @@ s2CapUnion(center1, radius1, center2, radius2) **Arguments** -- `center1`, `center2` — S2 point indexes corresponding to the two input caps. [UInt64](/reference/data-types/int-uint). -- `radius1`, `radius2` — Radius of the two input caps in degrees. [Float64](/reference/data-types/float). +- `center1`, `center2` — S2 point indexes corresponding to the two input caps. [UInt64](/core/reference/data-types/int-uint). +- `radius1`, `radius2` — Radius of the two input caps in degrees. [Float64](/core/reference/data-types/float). **Returned values** -- `center` — S2 point index corresponding the center of the smallest cap containing the two input caps. [UInt64](/reference/data-types/int-uint). -- `radius` — Radius of the smallest cap containing the two input caps. [Float64](/reference/data-types/float). +- `center` — S2 point index corresponding the center of the smallest cap containing the two input caps. [UInt64](/core/reference/data-types/int-uint). +- `radius` — Radius of the smallest cap containing the two input caps. [Float64](/core/reference/data-types/float). **Example** @@ -213,14 +213,14 @@ s2RectAdd(s2pointLow, s2pointHigh, s2Point) **Arguments** -- `s2PointLow` — Low S2 point index corresponding to the rectangle. [UInt64](/reference/data-types/int-uint). -- `s2PointHigh` — High S2 point index corresponding to the rectangle. [UInt64](/reference/data-types/int-uint). -- `s2Point` — Target S2 point index that the bound rectangle should be grown to include. [UInt64](/reference/data-types/int-uint). +- `s2PointLow` — Low S2 point index corresponding to the rectangle. [UInt64](/core/reference/data-types/int-uint). +- `s2PointHigh` — High S2 point index corresponding to the rectangle. [UInt64](/core/reference/data-types/int-uint). +- `s2Point` — Target S2 point index that the bound rectangle should be grown to include. [UInt64](/core/reference/data-types/int-uint). **Returned values** -- `s2PointLow` — Low S2 cell id corresponding to the grown rectangle. [UInt64](/reference/data-types/int-uint). -- `s2PointHigh` — Height S2 cell id corresponding to the grown rectangle. [UInt64](/reference/data-types/float). +- `s2PointLow` — Low S2 cell id corresponding to the grown rectangle. [UInt64](/core/reference/data-types/int-uint). +- `s2PointHigh` — Height S2 cell id corresponding to the grown rectangle. [UInt64](/core/reference/data-types/float). **Example** @@ -246,9 +246,9 @@ s2RectContains(s2PointLow, s2PointHi, s2Point) **Arguments** -- `s2PointLow` — Low S2 point index corresponding to the rectangle. [UInt64](/reference/data-types/int-uint). -- `s2PointHigh` — High S2 point index corresponding to the rectangle. [UInt64](/reference/data-types/int-uint). -- `s2Point` — Target S2 point index. [UInt64](/reference/data-types/int-uint). +- `s2PointLow` — Low S2 point index corresponding to the rectangle. [UInt64](/core/reference/data-types/int-uint). +- `s2PointHigh` — High S2 point index corresponding to the rectangle. [UInt64](/core/reference/data-types/int-uint). +- `s2Point` — Target S2 point index. [UInt64](/core/reference/data-types/int-uint). **Returned value** @@ -279,13 +279,13 @@ s2RectUnion(s2Rect1PointLow, s2Rect1PointHi, s2Rect2PointLow, s2Rect2PointHi) **Arguments** -- `s2Rect1PointLow`, `s2Rect1PointHi` — Low and High S2 point indexes corresponding to the first rectangle. [UInt64](/reference/data-types/int-uint). -- `s2Rect2PointLow`, `s2Rect2PointHi` — Low and High S2 point indexes corresponding to the second rectangle. [UInt64](/reference/data-types/int-uint). +- `s2Rect1PointLow`, `s2Rect1PointHi` — Low and High S2 point indexes corresponding to the first rectangle. [UInt64](/core/reference/data-types/int-uint). +- `s2Rect2PointLow`, `s2Rect2PointHi` — Low and High S2 point indexes corresponding to the second rectangle. [UInt64](/core/reference/data-types/int-uint). **Returned values** -- `s2UnionRect2PointLow` — Low S2 cell id corresponding to the union rectangle. [UInt64](/reference/data-types/int-uint). -- `s2UnionRect2PointHi` — High S2 cell id corresponding to the union rectangle. [UInt64](/reference/data-types/int-uint). +- `s2UnionRect2PointLow` — Low S2 cell id corresponding to the union rectangle. [UInt64](/core/reference/data-types/int-uint). +- `s2UnionRect2PointHi` — High S2 cell id corresponding to the union rectangle. [UInt64](/core/reference/data-types/int-uint). **Example** @@ -311,13 +311,13 @@ s2RectIntersection(s2Rect1PointLow, s2Rect1PointHi, s2Rect2PointLow, s2Rect2Poin **Arguments** -- `s2Rect1PointLow`, `s2Rect1PointHi` — Low and High S2 point indexes corresponding to the first rectangle. [UInt64](/reference/data-types/int-uint). -- `s2Rect2PointLow`, `s2Rect2PointHi` — Low and High S2 point indexes corresponding to the second rectangle. [UInt64](/reference/data-types/int-uint). +- `s2Rect1PointLow`, `s2Rect1PointHi` — Low and High S2 point indexes corresponding to the first rectangle. [UInt64](/core/reference/data-types/int-uint). +- `s2Rect2PointLow`, `s2Rect2PointHi` — Low and High S2 point indexes corresponding to the second rectangle. [UInt64](/core/reference/data-types/int-uint). **Returned values** -- `s2UnionRect2PointLow` — Low S2 cell id corresponding to the rectangle containing the intersection of the given rectangles. [UInt64](/reference/data-types/int-uint). -- `s2UnionRect2PointHi` — High S2 cell id corresponding to the rectangle containing the intersection of the given rectangles. [UInt64](/reference/data-types/int-uint). +- `s2UnionRect2PointLow` — Low S2 cell id corresponding to the rectangle containing the intersection of the given rectangles. [UInt64](/core/reference/data-types/int-uint). +- `s2UnionRect2PointHi` — High S2 cell id corresponding to the rectangle containing the intersection of the given rectangles. [UInt64](/core/reference/data-types/int-uint). **Example** diff --git a/reference/functions/regular-functions/geo/svg.mdx b/core/reference/functions/regular-functions/geo/svg.mdx similarity index 81% rename from reference/functions/regular-functions/geo/svg.mdx rename to core/reference/functions/regular-functions/geo/svg.mdx index ca1081d0..423525a8 100644 --- a/reference/functions/regular-functions/geo/svg.mdx +++ b/core/reference/functions/regular-functions/geo/svg.mdx @@ -20,12 +20,12 @@ Aliases: `SVG`, `svg` **Parameters** -- `geometry` — Geo data. [Geo](/reference/data-types/geo). -- `style` — Optional style name. [String](/reference/data-types/string). +- `geometry` — Geo data. [Geo](/core/reference/data-types/geo). +- `style` — Optional style name. [String](/core/reference/data-types/string). **Returned value** -- The SVG representation of the geometry. [String](/reference/data-types/string). +- The SVG representation of the geometry. [String](/core/reference/data-types/string). - SVG circle - SVG polygon - SVG path diff --git a/reference/functions/regular-functions/hash-functions.mdx b/core/reference/functions/regular-functions/hash-functions.mdx similarity index 82% rename from reference/functions/regular-functions/hash-functions.mdx rename to core/reference/functions/regular-functions/hash-functions.mdx index d092d688..f69a1082 100644 --- a/reference/functions/regular-functions/hash-functions.mdx +++ b/core/reference/functions/regular-functions/hash-functions.mdx @@ -48,11 +48,11 @@ BLAKE3(message) **Arguments** -- `message` — The input string to hash. [`String`](/reference/data-types/string) +- `message` — The input string to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the 32-byte BLAKE3 hash of the input string as a fixed-length string. [`FixedString(32)`](/reference/data-types/fixedstring) +Returns the 32-byte BLAKE3 hash of the input string as a fixed-length string. [`FixedString(32)`](/core/reference/data-types/fixedstring) **Examples** @@ -83,11 +83,11 @@ MD4(s) **Arguments** -- `s` — The input string to hash. [`String`](/reference/data-types/string) +- `s` — The input string to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the MD4 hash of the given input string as a fixed-length string. [`FixedString(16)`](/reference/data-types/fixedstring) +Returns the MD4 hash of the given input string as a fixed-length string. [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -118,11 +118,11 @@ MD5(s) **Arguments** -- `s` — The input string to hash. [`String`](/reference/data-types/string) +- `s` — The input string to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the MD5 hash of the given input string as a fixed-length string. [`FixedString(16)`](/reference/data-types/fixedstring) +Returns the MD5 hash of the given input string as a fixed-length string. [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -152,11 +152,11 @@ RIPEMD160(s) **Arguments** -- `s` — The input string to hash. [`String`](/reference/data-types/string) +- `s` — The input string to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the RIPEMD160 hash of the given input string as a fixed-length string. [`FixedString(20)`](/reference/data-types/fixedstring) +Returns the RIPEMD160 hash of the given input string as a fixed-length string. [`FixedString(20)`](/core/reference/data-types/fixedstring) **Examples** @@ -187,11 +187,11 @@ SHA1(s) **Arguments** -- `s` — The input string to hash [`String`](/reference/data-types/string) +- `s` — The input string to hash [`String`](/core/reference/data-types/string) **Returned value** -Returns the SHA1 hash of the given input string as a fixed-length string. [`FixedString(20)`](/reference/data-types/fixedstring) +Returns the SHA1 hash of the given input string as a fixed-length string. [`FixedString(20)`](/core/reference/data-types/fixedstring) **Examples** @@ -222,11 +222,11 @@ SHA224(s) **Arguments** -- `s` — The input value to hash. [`String`](/reference/data-types/string) +- `s` — The input value to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the SHA224 hash of the given input string as a fixed-length string. [`FixedString(28)`](/reference/data-types/fixedstring) +Returns the SHA224 hash of the given input string as a fixed-length string. [`FixedString(28)`](/core/reference/data-types/fixedstring) **Examples** @@ -257,11 +257,11 @@ SHA256(s) **Arguments** -- `s` — The input string to hash. [`String`](/reference/data-types/string) +- `s` — The input string to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the SHA256 hash of the given input string as a fixed-length string. [`FixedString(32)`](/reference/data-types/fixedstring) +Returns the SHA256 hash of the given input string as a fixed-length string. [`FixedString(32)`](/core/reference/data-types/fixedstring) **Examples** @@ -292,11 +292,11 @@ SHA384(s) **Arguments** -- `s` — The input string to hash. [`String`](/reference/data-types/string) +- `s` — The input string to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the SHA384 hash of the given input string as a fixed-length string. [`FixedString(48)`](/reference/data-types/fixedstring) +Returns the SHA384 hash of the given input string as a fixed-length string. [`FixedString(48)`](/core/reference/data-types/fixedstring) **Examples** @@ -327,11 +327,11 @@ SHA512(s) **Arguments** -- `s` — The input string to hash [`String`](/reference/data-types/string) +- `s` — The input string to hash [`String`](/core/reference/data-types/string) **Returned value** -Returns the SHA512 hash of the given input string as a fixed-length string. [`FixedString(64)`](/reference/data-types/fixedstring) +Returns the SHA512 hash of the given input string as a fixed-length string. [`FixedString(64)`](/core/reference/data-types/fixedstring) **Examples** @@ -362,11 +362,11 @@ SHA512_256(s) **Arguments** -- `s` — The input string to hash. [`String`](/reference/data-types/string) +- `s` — The input string to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the SHA512_256 hash of the given input string as a fixed-length string. [`FixedString(32)`](/reference/data-types/fixedstring) +Returns the SHA512_256 hash of the given input string as a fixed-length string. [`FixedString(32)`](/core/reference/data-types/fixedstring) **Examples** @@ -403,12 +403,12 @@ URLHash(url[, N]) **Arguments** -- `url` — URL string to hash. [`String`](/reference/data-types/string) -- `N` — Optional. Level in the URL hierarchy. [`(U)Int*`](/reference/data-types/int-uint) +- `url` — URL string to hash. [`String`](/core/reference/data-types/string) +- `N` — Optional. Level in the URL hierarchy. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the computed hash value of `url`. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash value of `url`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -471,11 +471,11 @@ cityHash64(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed hash of the input arguments. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash of the input arguments. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -540,11 +540,11 @@ farmFingerprint64(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed hash value of the input arguments. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash value of the input arguments. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -583,11 +583,11 @@ farmHash64(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed hash value of the input arguments. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash value of the input arguments. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -619,11 +619,11 @@ gccMurmurHash(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the calculated hash value of the input arguments. [`UInt64`](/reference/data-types/int-uint) +Returns the calculated hash value of the input arguments. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -645,9 +645,9 @@ SELECT Introduced in: v1.1.0 -[Interprets](/reference/functions/regular-functions/type-conversion-functions#reinterpretAsString) all the input +[Interprets](/core/reference/functions/regular-functions/type-conversion-functions#reinterpretAsString) all the input parameters as strings and calculates the MD5 hash value for each of them. Then combines hashes, takes the first 8 bytes of the hash of the -resulting string, and interprets them as [UInt64](/reference/data-types/int-uint) in big-endian byte order. The function is +resulting string, and interprets them as [UInt64](/core/reference/data-types/int-uint) in big-endian byte order. The function is relatively slow (5 million short strings per second per processor core). Consider using the [`sipHash64`](#sipHash64) function instead. @@ -665,11 +665,11 @@ halfMD5(arg1[, arg2, ..., argN]) **Arguments** -- `arg1[, arg2, ..., argN]` — Variable number of arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ..., argN]` — Variable number of arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed half MD5 hash of the given input params returned as a `UInt64` in big-endian byte order. [`UInt64`](/reference/data-types/int-uint) +Returns the computed half MD5 hash of the given input params returned as a `UInt64` in big-endian byte order. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -706,11 +706,11 @@ hiveHash(arg) **Arguments** -- `arg` — Input string to hash. [`String`](/reference/data-types/string) +- `arg` — Input string to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the computed "hive hash" of the input string. [`Int32`](/reference/data-types/int-uint) +Returns the computed "hive hash" of the input string. [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -740,11 +740,11 @@ icebergHash(value) **Arguments** -- `value` — Source value to take the hash of [`Integer`](/reference/data-types/int-uint) or [`Bool`](/reference/data-types/boolean) or [`Decimal`](/reference/data-types/decimal) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`UUID`](/reference/data-types/uuid) or [`Date`](/reference/data-types/date) or [`Time`](/reference/data-types/time) or [`DateTime`](/reference/data-types/datetime) +- `value` — Source value to take the hash of [`Integer`](/core/reference/data-types/int-uint) or [`Bool`](/core/reference/data-types/boolean) or [`Decimal`](/core/reference/data-types/decimal) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`UUID`](/core/reference/data-types/uuid) or [`Date`](/core/reference/data-types/date) or [`Time`](/core/reference/data-types/time) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns a 32-bit Murmur3 hash, x86 variant, seeded with 0 [`Int32`](/reference/data-types/int-uint) +Returns a 32-bit Murmur3 hash, x86 variant, seeded with 0 [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -774,11 +774,11 @@ intHash32(arg) **Arguments** -- `arg` — Integer to hash. [`(U)Int*`](/reference/data-types/int-uint) +- `arg` — Integer to hash. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the computed 32-bit hash code of the input integer [`UInt32`](/reference/data-types/int-uint) +Returns the computed 32-bit hash code of the input integer [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -810,11 +810,11 @@ intHash64(int) **Arguments** -- `int` — Integer to hash. [`(U)Int*`](/reference/data-types/int-uint) +- `int` — Integer to hash. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -64-bit hash code. [`UInt64`](/reference/data-types/int-uint) +64-bit hash code. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -859,11 +859,11 @@ javaHash(arg) **Arguments** -- `arg` — Input value to hash. [`Any`](/reference/data-types) +- `arg` — Input value to hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed hash of `arg` [`Int32`](/reference/data-types/int-uint) +Returns the computed hash of `arg` [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -905,11 +905,11 @@ javaHashUTF16LE(arg) **Arguments** -- `arg` — A string in UTF-16LE encoding. [`String`](/reference/data-types/string) +- `arg` — A string in UTF-16LE encoding. [`String`](/core/reference/data-types/string) **Returned value** -Returns the computed hash of the UTF-16LE encoded string. [`Int32`](/reference/data-types/int-uint) +Returns the computed hash of the UTF-16LE encoded string. [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -939,12 +939,12 @@ jumpConsistentHash(key, buckets) **Arguments** -- `key` — The input key. [`UInt64`](/reference/data-types/int-uint) -- `buckets` — The number of buckets. [`Int32`](/reference/data-types/int-uint) +- `key` — The input key. [`UInt64`](/core/reference/data-types/int-uint) +- `buckets` — The number of buckets. [`Int32`](/core/reference/data-types/int-uint) **Returned value** -Returns the computed hash value. [`Int32`](/reference/data-types/int-uint) +Returns the computed hash value. [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -974,11 +974,11 @@ kafkaMurmurHash(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of parameters for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of parameters for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the calculated hash value of the input arguments. [`UInt32`](/reference/data-types/int-uint) +Returns the calculated hash value of the input arguments. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -1012,11 +1012,11 @@ keccak256(message) **Arguments** -- `message` — The input string to hash. [`String`](/reference/data-types/string) +- `message` — The input string to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the 32-byte Keccak-256 hash of the input string as a fixed-length string. [`FixedString(32)`](/reference/data-types/fixedstring) +Returns the 32-byte Keccak-256 hash of the input string as a fixed-length string. [`FixedString(32)`](/core/reference/data-types/fixedstring) **Examples** @@ -1049,12 +1049,12 @@ kostikConsistentHash(input, n) **Arguments** -- `input` — An integer key. [`UInt64`](/reference/data-types/int-uint) -- `n` — The number of buckets. [`UInt16`](/reference/data-types/int-uint) +- `input` — An integer key. [`UInt64`](/core/reference/data-types/int-uint) +- `n` — The number of buckets. [`UInt16`](/core/reference/data-types/int-uint) **Returned value** -Returns the computed hash value. [`UInt16`](/reference/data-types/int-uint) +Returns the computed hash value. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -1089,11 +1089,11 @@ metroHash64(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed hash of the input arguments. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash of the input arguments. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1128,11 +1128,11 @@ murmurHash2_32(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed hash value of the input arguments. [`UInt32`](/reference/data-types/int-uint) +Returns the computed hash value of the input arguments. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -1167,11 +1167,11 @@ murmurHash2_64(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed hash of the input arguments. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash of the input arguments. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1201,11 +1201,11 @@ murmurHash3_128(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed 128-bit `MurmurHash3` hash value of the input arguments. [`FixedString(16)`](/reference/data-types/fixedstring) +Returns the computed 128-bit `MurmurHash3` hash value of the input arguments. [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -1240,11 +1240,11 @@ murmurHash3_32(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed hash value of the input arguments. [`UInt32`](/reference/data-types/int-uint) +Returns the computed hash value of the input arguments. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -1279,11 +1279,11 @@ murmurHash3_64(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed hash value of the input arguments. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash value of the input arguments. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1307,7 +1307,7 @@ Splits a ASCII string into n-grams of `ngramsize` symbols and calculates hash va Uses `hashnum` minimum hashes to calculate the minimum hash and `hashnum` maximum hashes to calculate the maximum hash. It is case sensitive. -Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). +Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/core/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). For two strings, if the returned hashes are the same for both strings, then those strings are the same. **Syntax** @@ -1318,13 +1318,13 @@ ngramMinHash(string[, ngramsize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two hashes — the minimum and the maximum. [`Tuple`](/reference/data-types/tuple) +Returns a tuple with two hashes — the minimum and the maximum. [`Tuple`](/core/reference/data-types/tuple) **Examples** @@ -1355,13 +1355,13 @@ ngramMinHashArg(string[, ngramsize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two tuples with `hashnum` n-grams each. [`Tuple(String)`](/reference/data-types/tuple) +Returns a tuple with two tuples with `hashnum` n-grams each. [`Tuple(String)`](/core/reference/data-types/tuple) **Examples** @@ -1392,13 +1392,13 @@ ngramMinHashArgCaseInsensitive(string[, ngramsize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two tuples with `hashnum` n-grams each. [`Tuple(Tuple(String))`](/reference/data-types/tuple) +Returns a tuple with two tuples with `hashnum` n-grams each. [`Tuple(Tuple(String))`](/core/reference/data-types/tuple) **Examples** @@ -1429,13 +1429,13 @@ ngramMinHashArgCaseInsensitiveUTF8(string[, ngramsize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two tuples with `hashnum` n-grams each. [`Tuple(Tuple(String))`](/reference/data-types/tuple) +Returns a tuple with two tuples with `hashnum` n-grams each. [`Tuple(Tuple(String))`](/core/reference/data-types/tuple) **Examples** @@ -1466,13 +1466,13 @@ ngramMinHashArgUTF8(string[, ngramsize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two tuples with `hashnum` n-grams each. [`Tuple(Tuple(String))`](/reference/data-types/tuple) +Returns a tuple with two tuples with `hashnum` n-grams each. [`Tuple(Tuple(String))`](/core/reference/data-types/tuple) **Examples** @@ -1496,7 +1496,7 @@ Splits a ASCII string into n-grams of `ngramsize` symbols and calculates hash va Uses `hashnum` minimum hashes to calculate the minimum hash and `hashnum` maximum hashes to calculate the maximum hash. It is case insensitive. -Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). +Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/core/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). For two strings, if the returned hashes are the same for both strings, then those strings are the same. **Syntax** @@ -1507,11 +1507,11 @@ ngramMinHashCaseInsensitive(string[, ngramsize, hashnum]) **Arguments** -- `string` — String. [String](/reference/data-types/string). - `ngramsize` — The size of an n-gram. Optional. Possible values: any number from `1` to `25`. Default value: `3`. [UInt8](/reference/data-types/int-uint). - `hashnum` — The number of minimum and maximum hashes used to calculate the result. Optional. Possible values: any number from `1` to `25`. Default value: `6`. [UInt8](/reference/data-types/int-uint). +- `string` — String. [String](/core/reference/data-types/string). - `ngramsize` — The size of an n-gram. Optional. Possible values: any number from `1` to `25`. Default value: `3`. [UInt8](/core/reference/data-types/int-uint). - `hashnum` — The number of minimum and maximum hashes used to calculate the result. Optional. Possible values: any number from `1` to `25`. Default value: `6`. [UInt8](/core/reference/data-types/int-uint). **Returned value** -Tuple with two hashes — the minimum and the maximum. [Tuple](/reference/data-types/tuple)([UInt64](/reference/data-types/int-uint), [UInt64](/reference/data-types/int-uint)). [`Tuple`](/reference/data-types/tuple) +Tuple with two hashes — the minimum and the maximum. [Tuple](/core/reference/data-types/tuple)([UInt64](/core/reference/data-types/int-uint), [UInt64](/core/reference/data-types/int-uint)). [`Tuple`](/core/reference/data-types/tuple) **Examples** @@ -1535,7 +1535,7 @@ Splits a UTF-8 string into n-grams of `ngramsize` symbols and calculates hash va Uses `hashnum` minimum hashes to calculate the minimum hash and `hashnum` maximum hashes to calculate the maximum hash. It is case insensitive. -Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). +Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/core/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). For two strings, if the returned hashes are the same for both strings, then those strings are the same. **Syntax** @@ -1546,13 +1546,13 @@ ngramMinHashCaseInsensitiveUTF8(string [, ngramsize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two hashes — the minimum and the maximum. [`Tuple`](/reference/data-types/tuple) +Returns a tuple with two hashes — the minimum and the maximum. [`Tuple`](/core/reference/data-types/tuple) **Examples** @@ -1576,7 +1576,7 @@ Splits a UTF-8 string into n-grams of `ngramsize` symbols and calculates hash va Uses `hashnum` minimum hashes to calculate the minimum hash and `hashnum` maximum hashes to calculate the maximum hash. It is case sensitive. -Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). +Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/core/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). For two strings, if the returned hashes are the same for both strings, then those strings are the same. **Syntax** @@ -1587,13 +1587,13 @@ ngramMinHashUTF8(string[, ngramsize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two hashes — the minimum and the maximum. [`Tuple`](/reference/data-types/tuple) +Returns a tuple with two hashes — the minimum and the maximum. [`Tuple`](/core/reference/data-types/tuple) **Examples** @@ -1615,7 +1615,7 @@ Introduced in: v21.1.0 Splits a ASCII string into n-grams of `ngramsize` symbols and returns the n-gram `simhash`. -Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/reference/functions/regular-functions/bit-functions#bitHammingDistance). +Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/core/reference/functions/regular-functions/bit-functions#bitHammingDistance). The smaller the [Hamming distance](https://en.wikipedia.org/wiki/Hamming_distance) of the calculated `simhashes` of two strings, the more likely these strings are the same. **Syntax** @@ -1626,12 +1626,12 @@ ngramSimHash(string[, ngramsize]) **Arguments** -- `string` — String for which to compute the case sensitive `simhash`. [`String`](/reference/data-types/string) -- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is`3`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the case sensitive `simhash`. [`String`](/core/reference/data-types/string) +- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is`3`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns the computed hash of the input string. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash of the input string. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1654,7 +1654,7 @@ Introduced in: v21.1.0 Splits a ASCII string into n-grams of `ngramsize` symbols and returns the n-gram `simhash`. It is case insensitive. -Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/reference/functions/regular-functions/bit-functions#bitHammingDistance). +Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/core/reference/functions/regular-functions/bit-functions#bitHammingDistance). The smaller the [Hamming distance](https://en.wikipedia.org/wiki/Hamming_distance) of the calculated `simhashes` of two strings, the more likely these strings are the same. **Syntax** @@ -1665,12 +1665,12 @@ ngramSimHashCaseInsensitive(string[, ngramsize]) **Arguments** -- `string` — String for which to compute the case insensitive `simhash`. [`String`](/reference/data-types/string) -- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the case insensitive `simhash`. [`String`](/core/reference/data-types/string) +- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Hash value. [UInt64](/reference/data-types/int-uint). [`UInt64`](/reference/data-types/int-uint) +Hash value. [UInt64](/core/reference/data-types/int-uint). [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1693,7 +1693,7 @@ Introduced in: v21.1.0 Splits a UTF-8 string into n-grams of `ngramsize` symbols and returns the n-gram `simhash`. It is case insensitive. -Can be used for detection of semi-duplicate strings with [bitHammingDistance](/reference/functions/regular-functions/bit-functions#bitHammingDistance). The smaller is the [Hamming Distance](https://en.wikipedia.org/wiki/Hamming_distance) of the calculated `simhashes` of two strings, the more likely these strings are the same. +Can be used for detection of semi-duplicate strings with [bitHammingDistance](/core/reference/functions/regular-functions/bit-functions#bitHammingDistance). The smaller is the [Hamming Distance](https://en.wikipedia.org/wiki/Hamming_distance) of the calculated `simhashes` of two strings, the more likely these strings are the same. **Syntax** @@ -1703,12 +1703,12 @@ ngramSimHashCaseInsensitiveUTF8(string[, ngramsize]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns the computed hash value. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash value. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1731,7 +1731,7 @@ Introduced in: v21.1.0 Splits a UTF-8 encoded string into n-grams of `ngramsize` symbols and returns the n-gram `simhash`. It is case sensitive. -Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/reference/functions/regular-functions/bit-functions#bitHammingDistance). +Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/core/reference/functions/regular-functions/bit-functions#bitHammingDistance). The smaller the [Hamming distance](https://en.wikipedia.org/wiki/Hamming_distance) of the calculated `simhashes` of two strings, the more likely these strings are the same. **Syntax** @@ -1742,12 +1742,12 @@ ngramSimHashUTF8(string[, ngramsize]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `ngramsize` — Optional. The size of an n-gram, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns the computed hash value. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash value. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1785,11 +1785,11 @@ sipHash128(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns a 128-bit `SipHash` hash value. [`FixedString(16)`](/reference/data-types/fixedstring) +Returns a 128-bit `SipHash` hash value. [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -1827,12 +1827,12 @@ sipHash128Keyed((k0, k1), [arg1, arg2, ...]) **Arguments** -- `(k0, k1)` — A tuple of two UInt64 values representing the key. [`Tuple(UInt64, UInt64)`](/reference/data-types/tuple) -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `(k0, k1)` — A tuple of two UInt64 values representing the key. [`Tuple(UInt64, UInt64)`](/core/reference/data-types/tuple) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -A 128-bit `SipHash` hash value of type [FixedString(16)](/reference/data-types/fixedstring). [`FixedString(16)`](/reference/data-types/fixedstring) +A 128-bit `SipHash` hash value of type [FixedString(16)](/core/reference/data-types/fixedstring). [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -1852,7 +1852,7 @@ SELECT hex(sipHash128Keyed((506097522914230528, 1084818905618843912),'foo', '\x0 Introduced in: v23.2.0 -Like [`sipHash128`](/reference/functions/regular-functions/hash-functions#sipHash128) but implements the 128-bit algorithm from the original authors of SipHash. +Like [`sipHash128`](/core/reference/functions/regular-functions/hash-functions#sipHash128) but implements the 128-bit algorithm from the original authors of SipHash. **Syntax** @@ -1863,11 +1863,11 @@ sipHash128Reference(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed 128-bit `SipHash` hash value of the input arguments. [`FixedString(16)`](/reference/data-types/fixedstring) +Returns the computed 128-bit `SipHash` hash value of the input arguments. [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -1898,12 +1898,12 @@ sipHash128ReferenceKeyed((k0, k1), arg1[, arg2, ...]) **Arguments** -- `(k0, k1)` — Tuple of two values representing the key [`Tuple(UInt64, UInt64)`](/reference/data-types/tuple) -- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/reference/data-types) +- `(k0, k1)` — Tuple of two values representing the key [`Tuple(UInt64, UInt64)`](/core/reference/data-types/tuple) +- `arg1[, arg2, ...]` — A variable number of input arguments for which to compute the hash. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed 128-bit `SipHash` hash value of the input arguments. [`FixedString(16)`](/reference/data-types/fixedstring) +Returns the computed 128-bit `SipHash` hash value of the input arguments. [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -1927,7 +1927,7 @@ Produces a 64-bit [SipHash](https://en.wikipedia.org/wiki/SipHash) hash value. This is a cryptographic hash function. It works at least three times faster than the [`MD5`](#MD5) hash function. -The function [interprets](/reference/functions/regular-functions/type-conversion-functions#reinterpretAsString) all the input parameters as strings and calculates the hash value for each of them. +The function [interprets](/core/reference/functions/regular-functions/type-conversion-functions#reinterpretAsString) all the input parameters as strings and calculates the hash value for each of them. It then combines the hashes using the following algorithm: 1. The first and the second hash value are concatenated to an array which is hashed. @@ -1947,11 +1947,11 @@ sipHash64(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — A variable number of input arguments. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — A variable number of input arguments. [`Any`](/core/reference/data-types) **Returned value** -Returns a computed hash value of the input arguments. [`UInt64`](/reference/data-types/int-uint) +Returns a computed hash value of the input arguments. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1981,12 +1981,12 @@ sipHash64Keyed((k0, k1), arg1[,arg2, ...]) **Arguments** -- `(k0, k1)` — A tuple of two values representing the key. [`Tuple(UInt64, UInt64)`](/reference/data-types/tuple) -- `arg1[,arg2, ...]` — A variable number of input arguments. [`Any`](/reference/data-types) +- `(k0, k1)` — A tuple of two values representing the key. [`Tuple(UInt64, UInt64)`](/core/reference/data-types/tuple) +- `arg1[,arg2, ...]` — A variable number of input arguments. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed hash of the input values. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash of the input values. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2010,7 +2010,7 @@ Splits a ASCII string into parts (shingles) of `shinglesize` words, calculates h Uses `hashnum` minimum hashes to calculate the minimum hash and `hashnum` maximum hashes to calculate the maximum hash. It is case sensitive. -Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). +Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/core/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). For two strings, if the returned hashes are the same for both strings, then those strings are the same. **Syntax** @@ -2021,13 +2021,13 @@ wordShingleMinHash(string[, shinglesize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two hashes — the minimum and the maximum. [`Tuple(UInt64, UInt64)`](/reference/data-types/tuple) +Returns a tuple with two hashes — the minimum and the maximum. [`Tuple(UInt64, UInt64)`](/core/reference/data-types/tuple) **Examples** @@ -2058,13 +2058,13 @@ wordShingleMinHashArg(string[, shinglesize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two tuples with `hashnum` word shingles each. [`Tuple(Tuple(String))`](/reference/data-types/tuple) +Returns a tuple with two tuples with `hashnum` word shingles each. [`Tuple(Tuple(String))`](/core/reference/data-types/tuple) **Examples** @@ -2095,13 +2095,13 @@ wordShingleMinHashArgCaseInsensitive(string[, shinglesize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two tuples with `hashnum` word shingles each. [`Tuple(Tuple(String))`](/reference/data-types/tuple) +Returns a tuple with two tuples with `hashnum` word shingles each. [`Tuple(Tuple(String))`](/core/reference/data-types/tuple) **Examples** @@ -2132,13 +2132,13 @@ wordShingleMinHashArgCaseInsensitiveUTF8(string[, shinglesize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two tuples with `hashnum` word shingles each. [`Tuple(Tuple(String))`](/reference/data-types/tuple) +Returns a tuple with two tuples with `hashnum` word shingles each. [`Tuple(Tuple(String))`](/core/reference/data-types/tuple) **Examples** @@ -2169,13 +2169,13 @@ wordShingleMinHashArgUTF8(string[, shinglesize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two tuples with `hashnum` word shingles each. [`Tuple(Tuple(String))`](/reference/data-types/tuple) +Returns a tuple with two tuples with `hashnum` word shingles each. [`Tuple(Tuple(String))`](/core/reference/data-types/tuple) **Examples** @@ -2199,7 +2199,7 @@ Splits a ASCII string into parts (shingles) of `shinglesize` words, calculates h Uses `hashnum` minimum hashes to calculate the minimum hash and `hashnum` maximum hashes to calculate the maximum hash. It is case insensitive. -Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). +Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/core/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). For two strings, if the returned hashes are the same for both strings, then those strings are the same. **Syntax** @@ -2210,13 +2210,13 @@ wordShingleMinHashCaseInsensitive(string[, shinglesize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two hashes — the minimum and the maximum. [`Tuple(UInt64, UInt64)`](/reference/data-types/tuple) +Returns a tuple with two hashes — the minimum and the maximum. [`Tuple(UInt64, UInt64)`](/core/reference/data-types/tuple) **Examples** @@ -2240,7 +2240,7 @@ Splits a UTF-8 string into parts (shingles) of `shinglesize` words, calculates h Uses `hashnum` minimum hashes to calculate the minimum hash and `hashnum` maximum hashes to calculate the maximum hash. It is case insensitive. -Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). +Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/core/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). For two strings, if the returned hashes are the same for both strings, then those strings are the same. **Syntax** @@ -2251,13 +2251,13 @@ wordShingleMinHashCaseInsensitiveUTF8(string[, shinglesize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two hashes — the minimum and the maximum. [`Tuple(UInt64, UInt64)`](/reference/data-types/tuple) +Returns a tuple with two hashes — the minimum and the maximum. [`Tuple(UInt64, UInt64)`](/core/reference/data-types/tuple) **Examples** @@ -2281,7 +2281,7 @@ Splits a UTF-8 string into parts (shingles) of `shinglesize` words, calculates h Uses `hashnum` minimum hashes to calculate the minimum hash and `hashnum` maximum hashes to calculate the maximum hash. It is case sensitive. -Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). +Can be used to detect semi-duplicate strings with [`tupleHammingDistance`](/core/reference/functions/regular-functions/tuple-functions#tupleHammingDistance). For two strings, if the returned hashes are the same for both strings, then those strings are the same. **Syntax** @@ -2292,13 +2292,13 @@ wordShingleMinHashUTF8(string[, shinglesize, hashnum]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) -- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `hashnum` — Optional. The number of minimum and maximum hashes used to calculate the result, any number from `1` to `25`. The default value is `6`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two hashes — the minimum and the maximum. [`Tuple(UInt64, UInt64)`](/reference/data-types/tuple) +Returns a tuple with two hashes — the minimum and the maximum. [`Tuple(UInt64, UInt64)`](/core/reference/data-types/tuple) **Examples** @@ -2321,7 +2321,7 @@ Introduced in: v21.1.0 Splits a ASCII string into parts (shingles) of `shinglesize` words and returns the word shingle `simhash`. Is is case sensitive. -Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/reference/functions/regular-functions/bit-functions#bitHammingDistance). +Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/core/reference/functions/regular-functions/bit-functions#bitHammingDistance). The smaller the [Hamming distance](https://en.wikipedia.org/wiki/Hamming_distance) of the calculated `simhashes` of two strings, the more likely these strings are the same. **Syntax** @@ -2332,12 +2332,12 @@ wordShingleSimHash(string[, shinglesize]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns the computed hash value. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash value. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2360,7 +2360,7 @@ Introduced in: v21.1.0 Splits a ASCII string into parts (shingles) of `shinglesize` words and returns the word shingle `simhash`. It is case insensitive. -Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/reference/functions/regular-functions/bit-functions#bitHammingDistance). +Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/core/reference/functions/regular-functions/bit-functions#bitHammingDistance). The smaller the [Hamming distance](https://en.wikipedia.org/wiki/Hamming_distance) of the calculated `simhashes` of two strings, the more likely these strings are the same. **Syntax** @@ -2371,12 +2371,12 @@ wordShingleSimHashCaseInsensitive(string[, shinglesize]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns the computed hash value. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash value. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2399,7 +2399,7 @@ Introduced in: v1.1.0 Splits a UTF-8 encoded string into parts (shingles) of `shinglesize` words and returns the word shingle `simhash`. It is case insensitive. -Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/reference/functions/regular-functions/bit-functions#bitHammingDistance). +Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/core/reference/functions/regular-functions/bit-functions#bitHammingDistance). The smaller the [Hamming Distance](https://en.wikipedia.org/wiki/Hamming_distance) of the calculated `simhashes` of two strings, the more likely these strings are the same. **Syntax** @@ -2410,12 +2410,12 @@ wordShingleSimHashCaseInsensitiveUTF8(string[, shinglesize]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns the computed hash value. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash value. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2438,7 +2438,7 @@ Introduced in: v21.1.0 Splits a UTF-8 string into parts (shingles) of `shinglesize` words and returns the word shingle `simhash`. It is case sensitive. -Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/reference/functions/regular-functions/bit-functions#bitHammingDistance). +Can be used for detection of semi-duplicate strings with [`bitHammingDistance`](/core/reference/functions/regular-functions/bit-functions#bitHammingDistance). The smaller the [Hamming distance](https://en.wikipedia.org/wiki/Hamming_distance) of the calculated `simhashes` of two strings, the more likely these strings are the same. **Syntax** @@ -2449,12 +2449,12 @@ wordShingleSimHashUTF8(string[, shinglesize]) **Arguments** -- `string` — String for which to compute the hash. [`String`](/reference/data-types/string) -- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/reference/data-types/int-uint) +- `string` — String for which to compute the hash. [`String`](/core/reference/data-types/string) +- `shinglesize` — Optional. The size of a word shingle, any number from `1` to `25`. The default value is `3`. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns the computed hash value. [`UInt64`](/reference/data-types/int-uint) +Returns the computed hash value. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2484,11 +2484,11 @@ wyHash64(arg) **Arguments** -- `arg` — String argument for which to compute the hash. [`String`](/reference/data-types/string) +- `arg` — String argument for which to compute the hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the computed 64-bit hash value [`UInt64`](/reference/data-types/int-uint) +Returns the computed 64-bit hash value [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2518,11 +2518,11 @@ xxHash32(arg) **Arguments** -- `arg` — Input string to hash. [`String`](/reference/data-types/string) +- `arg` — Input string to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the computed 32-bit hash of the input string. [`UInt32`](/reference/data-types/int-uint) +Returns the computed 32-bit hash of the input string. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -2554,11 +2554,11 @@ xxHash64(arg) **Arguments** -- `arg` — Input string to hash. [`String`](/reference/data-types/string) +- `arg` — Input string to hash. [`String`](/core/reference/data-types/string) **Returned value** -Returns the computed 64-bit hash of the input string. [`UInt64`](/reference/data-types/int-uint) +Returns the computed 64-bit hash of the input string. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2588,11 +2588,11 @@ xxh3(expr) **Arguments** -- `expr` — A list of expressions of any data type. [`Any`](/reference/data-types) +- `expr` — A list of expressions of any data type. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed 64-bit `xxh3` hash value [`UInt64`](/reference/data-types/int-uint) +Returns the computed 64-bit `xxh3` hash value [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2620,11 +2620,11 @@ xxh3_128(expr) **Arguments** -- `expr` — A list of expressions of any data type. [`Any`](/reference/data-types) +- `expr` — A list of expressions of any data type. [`Any`](/core/reference/data-types) **Returned value** -Returns the computed 128-bit `xxh3` hash value [`UInt128`](/reference/data-types/int-uint) +Returns the computed 128-bit `xxh3` hash value [`UInt128`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/regular-functions/in-functions.mdx b/core/reference/functions/regular-functions/in-functions.mdx similarity index 82% rename from reference/functions/regular-functions/in-functions.mdx rename to core/reference/functions/regular-functions/in-functions.mdx index 52ebd0f2..d72faed5 100644 --- a/reference/functions/regular-functions/in-functions.mdx +++ b/core/reference/functions/regular-functions/in-functions.mdx @@ -8,4 +8,4 @@ doc_type: 'reference' ## in, notIn, globalIn, globalNotIn {#in-notin-globalin-globalnotin} -See the section [IN operators](/reference/statements/in). +See the section [IN operators](/core/reference/statements/in). diff --git a/reference/functions/regular-functions/introspection.mdx b/core/reference/functions/regular-functions/introspection.mdx similarity index 93% rename from reference/functions/regular-functions/introspection.mdx rename to core/reference/functions/regular-functions/introspection.mdx index e1bac239..e67cf7c2 100644 --- a/reference/functions/regular-functions/introspection.mdx +++ b/core/reference/functions/regular-functions/introspection.mdx @@ -16,11 +16,11 @@ For proper operation of introspection functions: - Install the `clickhouse-common-static-dbg` package. -- Set the [allow_introspection_functions](/reference/settings/session-settings#allow_introspection_functions) setting to 1. +- Set the [allow_introspection_functions](/core/reference/settings/session-settings#allow_introspection_functions) setting to 1. For security reasons introspection functions are disabled by default. -ClickHouse saves profiler reports to the [trace_log](/reference/system-tables/trace_log) system table. Make sure the table and profiler are configured properly. +ClickHouse saves profiler reports to the [trace_log](/core/reference/system-tables/trace_log) system table. Make sure the table and profiler are configured properly. {/* The inner content of the tags below are replaced at doc framework build time with @@ -42,7 +42,7 @@ This function is slow and may impose security considerations. To enable this introspection function: - Install the `clickhouse-common-static-dbg` package. -- Set setting [`allow_introspection_functions`](/reference/settings/session-settings#allow_introspection_functions) to `1`. +- Set setting [`allow_introspection_functions`](/core/reference/settings/session-settings#allow_introspection_functions) to `1`. **Syntax** @@ -53,11 +53,11 @@ addressToLine(address_of_binary_instruction) **Arguments** -- `address_of_binary_instruction` — Address of instruction in a running process. [`UInt64`](/reference/data-types/int-uint) +- `address_of_binary_instruction` — Address of instruction in a running process. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns a source code filename and line number delimited by a colon, for example, `/build/obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:199`. Returns the name of a binary, if no debug information could be found, otherwise an empty string, if the address is not valid. [`String`](/reference/data-types/string) +Returns a source code filename and line number delimited by a colon, for example, `/build/obj-x86_64-linux-gnu/../src/Common/ThreadPool.cpp:199`. Returns the name of a binary, if no debug information could be found, otherwise an empty string, if the address is not valid. [`String`](/core/reference/data-types/string) **Examples** @@ -130,7 +130,7 @@ As a result of this, it is slower than `addressToLine`. To enable this introspection function: - Install the `clickhouse-common-static-dbg` package. -- Set setting [`allow_introspection_functions`](/reference/settings/session-settings#allow_introspection_functions) to `1`. +- Set setting [`allow_introspection_functions`](/core/reference/settings/session-settings#allow_introspection_functions) to `1`. **Syntax** @@ -141,11 +141,11 @@ addressToLineWithInlines(address_of_binary_instruction) **Arguments** -- `address_of_binary_instruction` — The address of an instruction in a running process. [`UInt64`](/reference/data-types/int-uint) +- `address_of_binary_instruction` — The address of an instruction in a running process. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array whose first element is the source code filename and line number delimited by a colon. The second, third, etc. element list inline functions' source code filenames, line numbers and function names. If no debug information could be found, then an array with a single element equal to the name of the binary is returned, otherwise an empty array is returned if the address is not valid. [`Array(String)`](/reference/data-types/array) +Returns an array whose first element is the source code filename and line number delimited by a colon. The second, third, etc. element list inline functions' source code filenames, line numbers and function names. If no debug information could be found, then an array with a single element equal to the name of the binary is returned, otherwise an empty array is returned if the address is not valid. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -236,11 +236,11 @@ addressToSymbol(address_of_binary_instruction) **Arguments** -- `address_of_binary_instruction` — Address of instruction in a running process. [`UInt64`](/reference/data-types/int-uint) +- `address_of_binary_instruction` — Address of instruction in a running process. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns the symbol from ClickHouse object files or an empty string, if the address is not valid. [`String`](/reference/data-types/string) +Returns the symbol from ClickHouse object files or an empty string, if the address is not valid. [`String`](/core/reference/data-types/string) **Examples** @@ -332,11 +332,11 @@ demangle(symbol) **Arguments** -- `symbol` — Symbol from an object file. [`String`](/reference/data-types/string) +- `symbol` — Symbol from an object file. [`String`](/core/reference/data-types/string) **Returned value** -Returns the name of the C++ function, or an empty string if the symbol is not valid. [`String`](/reference/data-types/string) +Returns the name of the C++ function, or an empty string if the symbol is not valid. [`String`](/core/reference/data-types/string) **Examples** @@ -426,12 +426,12 @@ isMergeTreePartCoveredBy(nested_part, covering_part) **Arguments** -- `nested_part` — Name of expected nested part. [`String`](/reference/data-types/string) -- `covering_part` — Name of expected covering part. [`String`](/reference/data-types/string) +- `nested_part` — Name of expected nested part. [`String`](/core/reference/data-types/string) +- `covering_part` — Name of expected covering part. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if it covers, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if it covers, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -452,7 +452,7 @@ SELECT isMergeTreePartCoveredBy(rhs, lhs), isMergeTreePartCoveredBy(lhs, rhs); Introduced in: v20.12.0 -Emits a trace log message to the server log for each [Block](/resources/contribute/architecture#block). +Emits a trace log message to the server log for each [Block](/resources/develop-contribute/introduction/architecture#block). **Syntax** @@ -463,11 +463,11 @@ logTrace(message) **Arguments** -- `message` — Message that is emitted to the server log. [`const String`](/reference/data-types/string) +- `message` — Message that is emitted to the server log. [`const String`](/core/reference/data-types/string) **Returned value** -Returns `0` always. [`UInt8`](/reference/data-types/int-uint) +Returns `0` always. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -498,11 +498,11 @@ mergeTreePartInfo(part_name) **Arguments** -- `part_name` — Name of part to unpack. [`String`](/reference/data-types/string) +- `part_name` — Name of part to unpack. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Tuple with subcolumns: `partition_id`, `min_block`, `max_block`, `level`, `mutation`. [`Tuple`](/reference/data-types/tuple) +Returns a Tuple with subcolumns: `partition_id`, `min_block`, `max_block`, `level`, `mutation`. [`Tuple`](/core/reference/data-types/tuple) **Examples** @@ -523,7 +523,7 @@ SELECT info.partition_id, info.min_block, info.max_block, info.level, info.mutat Introduced in: v20.12.0 -Returns id of the thread, in which the current [Block](/resources/contribute/architecture#block) is processed. +Returns id of the thread, in which the current [Block](/resources/develop-contribute/introduction/architecture#block) is processed. **Syntax** @@ -538,7 +538,7 @@ tid() **Returned value** -Returns the current thread id. [`UInt64`](/reference/data-types/int-uint) +Returns the current thread id. [`UInt64`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/regular-functions/ip-address-functions.mdx b/core/reference/functions/regular-functions/ip-address-functions.mdx similarity index 84% rename from reference/functions/regular-functions/ip-address-functions.mdx rename to core/reference/functions/regular-functions/ip-address-functions.mdx index 68788827..d6c86373 100644 --- a/reference/functions/regular-functions/ip-address-functions.mdx +++ b/core/reference/functions/regular-functions/ip-address-functions.mdx @@ -29,12 +29,12 @@ IPv4CIDRToRange(ipv4, cidr) **Arguments** -- `ipv4` — IPv4 address. [`IPv4`](/reference/data-types/ipv4) or [`String`](/reference/data-types/string) -- `cidr` — CIDR value. [`UInt8`](/reference/data-types/int-uint) +- `ipv4` — IPv4 address. [`IPv4`](/core/reference/data-types/ipv4) or [`String`](/core/reference/data-types/string) +- `cidr` — CIDR value. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two IPv4 addresses representing the subnet range. [`Tuple(IPv4, IPv4)`](/reference/data-types/tuple) +Returns a tuple with two IPv4 addresses representing the subnet range. [`Tuple(IPv4, IPv4)`](/core/reference/data-types/tuple) **Examples** @@ -68,11 +68,11 @@ IPv4NumToString(num) **Arguments** -- `num` — IPv4 address as UInt32 number. [`UInt32`](/reference/data-types/int-uint) +- `num` — IPv4 address as UInt32 number. [`UInt32`](/core/reference/data-types/int-uint) **Returned value** -Returns a number representing the MAC address, or `0` if the format is invalid. [`String`](/reference/data-types/string) +Returns a number representing the MAC address, or `0` if the format is invalid. [`String`](/core/reference/data-types/string) **Examples** @@ -102,11 +102,11 @@ IPv4NumToStringClassC(num) **Arguments** -- `num` — IPv4 address as UInt32 number. [`UInt32`](/reference/data-types/int-uint) +- `num` — IPv4 address as UInt32 number. [`UInt32`](/core/reference/data-types/int-uint) **Returned value** -Returns the IPv4 address string with xxx replacing the last octet. [`String`](/reference/data-types/string) +Returns the IPv4 address string with xxx replacing the last octet. [`String`](/core/reference/data-types/string) **Examples** @@ -155,11 +155,11 @@ IPv4StringToNum(string) **Arguments** -- `string` — IPv4 address string. [`String`](/reference/data-types/string) +- `string` — IPv4 address string. [`String`](/core/reference/data-types/string) **Returned value** -Returns theIPv4 address. [`UInt32`](/reference/data-types/int-uint) +Returns theIPv4 address. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -188,11 +188,11 @@ IPv4StringToNumOrDefault(string) **Arguments** -- `string` — IPv4 address string. [`String`](/reference/data-types/string) +- `string` — IPv4 address string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the IPv4 address, or `0` if invalid. [`UInt32`](/reference/data-types/int-uint) +Returns the IPv4 address, or `0` if invalid. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -225,11 +225,11 @@ IPv4StringToNumOrNull(string) **Arguments** -- `string` — IPv4 address string. [`String`](/reference/data-types/string) +- `string` — IPv4 address string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the IPv4 address, or `NULL` if invalid. [`Nullable(UInt32)`](/reference/data-types/nullable) +Returns the IPv4 address, or `NULL` if invalid. [`Nullable(UInt32)`](/core/reference/data-types/nullable) **Examples** @@ -262,11 +262,11 @@ IPv4ToIPv6(x) **Arguments** -- `x` — IPv4 address. [`UInt32`](/reference/data-types/int-uint) +- `x` — IPv4 address. [`UInt32`](/core/reference/data-types/int-uint) **Returned value** -Returns an IPv6 address in binary format. [`FixedString(16)`](/reference/data-types/fixedstring) +Returns an IPv6 address in binary format. [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -298,12 +298,12 @@ IPv6CIDRToRange(ipv6, cidr) **Arguments** -- `ipv6` — IPv6 address. [`IPv6`](/reference/data-types/ipv6) or [`String`](/reference/data-types/string) -- `cidr` — CIDR value. [`UInt8`](/reference/data-types/int-uint) +- `ipv6` — IPv6 address. [`IPv6`](/core/reference/data-types/ipv6) or [`String`](/core/reference/data-types/string) +- `cidr` — CIDR value. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a tuple with two IPv6 addresses representing the subnet range. [`Tuple(IPv6, IPv6)`](/reference/data-types/tuple) +Returns a tuple with two IPv6 addresses representing the subnet range. [`Tuple(IPv6, IPv6)`](/core/reference/data-types/tuple) **Examples** @@ -337,11 +337,11 @@ IPv6NumToString(x) **Arguments** -- `x` — IPv6 address in binary format. [`FixedString(16)`](/reference/data-types/fixedstring) or [`IPv6`](/reference/data-types/ipv6) +- `x` — IPv6 address in binary format. [`FixedString(16)`](/core/reference/data-types/fixedstring) or [`IPv6`](/core/reference/data-types/ipv6) **Returned value** -Returns the IPv6 address string in text format. [`String`](/reference/data-types/string) +Returns the IPv6 address string in text format. [`String`](/core/reference/data-types/string) **Examples** @@ -435,11 +435,11 @@ IPv6StringToNum(string) **Arguments** -- `string` — IPv6 address string. [`String`](/reference/data-types/string) +- `string` — IPv6 address string. [`String`](/core/reference/data-types/string) **Returned value** -Returns theIPv6 address in binary format. [`FixedString(16)`](/reference/data-types/fixedstring) +Returns theIPv6 address in binary format. [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -474,11 +474,11 @@ IPv6StringToNumOrDefault(string) **Arguments** -- `string` — IPv6 address string. [`String`](/reference/data-types/string) +- `string` — IPv6 address string. [`String`](/core/reference/data-types/string) **Returned value** -IPv6 address in binary format, or zero-filled FixedString(16) if invalid. [`FixedString(16)`](/reference/data-types/fixedstring) +IPv6 address in binary format, or zero-filled FixedString(16) if invalid. [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -513,11 +513,11 @@ IPv6StringToNumOrNull(string) **Arguments** -- `string` — IPv6 address string. [`String`](/reference/data-types/string) +- `string` — IPv6 address string. [`String`](/core/reference/data-types/string) **Returned value** -Returns IPv6 address in binary format, or `NULL` if invalid. [`Nullable(FixedString(16))`](/reference/data-types/nullable) +Returns IPv6 address in binary format, or `NULL` if invalid. [`Nullable(FixedString(16))`](/core/reference/data-types/nullable) **Examples** @@ -551,13 +551,13 @@ cutIPv6(x, bytesToCutForIPv6, bytesToCutForIPv4) **Arguments** -- `x` — IPv6 address in binary format. [`FixedString(16)`](/reference/data-types/fixedstring) or [`IPv6`](/reference/data-types/ipv6) -- `bytesToCutForIPv6` — Number of bytes to cut for IPv6. [`UInt8`](/reference/data-types/int-uint) -- `bytesToCutForIPv4` — Number of bytes to cut for IPv4. [`UInt8`](/reference/data-types/int-uint) +- `x` — IPv6 address in binary format. [`FixedString(16)`](/core/reference/data-types/fixedstring) or [`IPv6`](/core/reference/data-types/ipv6) +- `bytesToCutForIPv6` — Number of bytes to cut for IPv6. [`UInt8`](/core/reference/data-types/int-uint) +- `bytesToCutForIPv4` — Number of bytes to cut for IPv4. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a string containing the IPv6 address in text format with specified bytes removed. [`String`](/reference/data-types/string) +Returns a string containing the IPv6 address in text format with specified bytes removed. [`String`](/core/reference/data-types/string) **Examples** @@ -595,12 +595,12 @@ isIPAddressInRange(address, prefix) **Arguments** -- `address` — An IPv4 or IPv6 address. [`String`](/reference/data-types/string) -- `prefix` — An IPv4 or IPv6 network prefix in CIDR. [`String`](/reference/data-types/string) +- `address` — An IPv4 or IPv6 address. [`String`](/core/reference/data-types/string) +- `prefix` — An IPv4 or IPv6 network prefix in CIDR. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the IP version of the address and the CIDR match, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the IP version of the address and the CIDR match, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -650,11 +650,11 @@ isIPv4String(string) **Arguments** -- `string` — IP address string to check. [`String`](/reference/data-types/string) +- `string` — IP address string to check. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `string` is IPv4 address, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `string` is IPv4 address, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -692,11 +692,11 @@ isIPv6String(string) **Arguments** -- `string` — IP address string to check. [`String`](/reference/data-types/string) +- `string` — IP address string to check. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `string` is IPv6 address, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `string` is IPv6 address, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -722,7 +722,7 @@ ARRAY JOIN addr; Introduced in: v20.1.0 Converts a string or a UInt32 form of IPv4 address to type IPv4. -It is similar to [`IPv4StringToNum`](/reference/functions/regular-functions/ip-address-functions#IPv4StringToNum) and [`IPv4NumToString`](/reference/functions/regular-functions/ip-address-functions#IPv4NumToString) functions but it supports both string and unsigned integer data types as input arguments. +It is similar to [`IPv4StringToNum`](/core/reference/functions/regular-functions/ip-address-functions#IPv4StringToNum) and [`IPv4NumToString`](/core/reference/functions/regular-functions/ip-address-functions#IPv4NumToString) functions but it supports both string and unsigned integer data types as input arguments. **Syntax** @@ -732,11 +732,11 @@ toIPv4(x) **Arguments** -- `x` — An IPv4 address [`String`](/reference/data-types/string) or [`UInt8/16/32`](/reference/data-types/int-uint) +- `x` — An IPv4 address [`String`](/core/reference/data-types/string) or [`UInt8/16/32`](/core/reference/data-types/int-uint) **Returned value** -Returns an IPv4 address. [`IPv4`](/reference/data-types/ipv4) +Returns an IPv4 address. [`IPv4`](/core/reference/data-types/ipv4) **Examples** @@ -784,7 +784,7 @@ SELECT toIPv4(2130706433); Introduced in: v22.3.0 -Converts a string or a UInt32 form of an IPv4 address to [`IPv4`](/reference/data-types/ipv4) type. +Converts a string or a UInt32 form of an IPv4 address to [`IPv4`](/core/reference/data-types/ipv4) type. If the IPv4 address has an invalid format, it returns `0.0.0.0` (0 IPv4), or the provided IPv4 default. @@ -796,12 +796,12 @@ toIPv4OrDefault(string[, default]) **Arguments** -- `string` — IP address string to convert. [`String`](/reference/data-types/string) -- `default` — Optional. The value to return if string is an invalid IPv4 address. [`IPv4`](/reference/data-types/ipv4) +- `string` — IP address string to convert. [`String`](/core/reference/data-types/string) +- `default` — Optional. The value to return if string is an invalid IPv4 address. [`IPv4`](/core/reference/data-types/ipv4) **Returned value** -Returns a string converted to the current IPv4 address, or the default value if conversion fails. [`IPv4`](/reference/data-types/ipv4) +Returns a string converted to the current IPv4 address, or the default value if conversion fails. [`IPv4`](/core/reference/data-types/ipv4) **Examples** @@ -850,11 +850,11 @@ toIPv4OrNull(x) **Arguments** -- `x` — A string or integer representation of an IPv4 address. [`String`](/reference/data-types/string) or [`Integer`](/reference/data-types/int-uint) +- `x` — A string or integer representation of an IPv4 address. [`String`](/core/reference/data-types/string) or [`Integer`](/core/reference/data-types/int-uint) **Returned value** -Returns an IPv4 address if successful, otherwise `NULL`. [`IPv4`](/reference/data-types/ipv4) or [`NULL`](/reference/syntax#null) +Returns an IPv4 address if successful, otherwise `NULL`. [`IPv4`](/core/reference/data-types/ipv4) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -876,7 +876,7 @@ SELECT Introduced in: v23.1.0 -Converts an input value to a value of type [IPv4](/reference/data-types/ipv4) but returns zero IPv4 address in case of an error. +Converts an input value to a value of type [IPv4](/core/reference/data-types/ipv4) but returns zero IPv4 address in case of an error. Like [`toIPv4`](#toIPv4) but returns zero IPv4 address (`0.0.0.0`) instead of throwing an exception on conversion errors. Supported arguments: @@ -897,11 +897,11 @@ toIPv4OrZero(x) **Arguments** -- `x` — A string or integer representation of an IPv4 address. [`String`](/reference/data-types/string) or [`Integer`](/reference/data-types/int-uint) +- `x` — A string or integer representation of an IPv4 address. [`String`](/core/reference/data-types/string) or [`Integer`](/core/reference/data-types/int-uint) **Returned value** -Returns an IPv4 address if successful, otherwise zero IPv4 address (`0.0.0.0`). [`IPv4`](/reference/data-types/ipv4) +Returns an IPv4 address if successful, otherwise zero IPv4 address (`0.0.0.0`). [`IPv4`](/core/reference/data-types/ipv4) **Examples** @@ -923,9 +923,9 @@ SELECT Introduced in: v20.1.0 -onverts a string or a `UInt128` form of IPv6 address to [`IPv6`](/reference/data-types/ipv6) type. +onverts a string or a `UInt128` form of IPv6 address to [`IPv6`](/core/reference/data-types/ipv6) type. For strings, if the IPv6 address has an invalid format, returns an empty value. -Similar to [`IPv6StringToNum`](/reference/functions/regular-functions/ip-address-functions#IPv6StringToNum) and [`IPv6NumToString`](/reference/functions/regular-functions/ip-address-functions#IPv6NumToString) functions, which convert IPv6 address to and from binary format (i.e. `FixedString(16)`). +Similar to [`IPv6StringToNum`](/core/reference/functions/regular-functions/ip-address-functions#IPv6StringToNum) and [`IPv6NumToString`](/core/reference/functions/regular-functions/ip-address-functions#IPv6NumToString) functions, which convert IPv6 address to and from binary format (i.e. `FixedString(16)`). If the input string contains a valid IPv4 address, then the IPv6 equivalent of the IPv4 address is returned. @@ -937,11 +937,11 @@ toIPv6(x) **Arguments** -- `x` — An IP address. [`String`](/reference/data-types/string) or [`UInt128`](/reference/data-types/int-uint) +- `x` — An IP address. [`String`](/core/reference/data-types/string) or [`UInt128`](/core/reference/data-types/int-uint) **Returned value** -Returns an IPv6 address. [`IPv6`](/reference/data-types/ipv6) +Returns an IPv6 address. [`IPv6`](/core/reference/data-types/ipv6) **Examples** @@ -976,7 +976,7 @@ SELECT toIPv6('127.0.0.1'); Introduced in: v22.3.0 -Converts a string or a UInt128 form of IPv6 address to [`IPv6`](/reference/data-types/ipv6) type. +Converts a string or a UInt128 form of IPv6 address to [`IPv6`](/core/reference/data-types/ipv6) type. If the IPv6 address has an invalid format, it returns `::` (0 IPv6) or the provided IPv6 default. @@ -992,7 +992,7 @@ toIPv6OrDefault(string[, default]) **Returned value** -Returns the IPv6 address, otherwise `::` or the provided optional default if argument `string` has an invalid format. [`IPv6`](/reference/data-types/ipv6) +Returns the IPv6 address, otherwise `::` or the provided optional default if argument `string` has an invalid format. [`IPv6`](/core/reference/data-types/ipv6) **Examples** @@ -1042,11 +1042,11 @@ toIPv6OrNull(x) **Arguments** -- `x` — A string representation of an IPv6 or IPv4 address. [`String`](/reference/data-types/string) +- `x` — A string representation of an IPv6 or IPv4 address. [`String`](/core/reference/data-types/string) **Returned value** -Returns an IPv6 address if successful, otherwise `NULL`. [`IPv6`](/reference/data-types/ipv6) or [`NULL`](/reference/syntax#null) +Returns an IPv6 address if successful, otherwise `NULL`. [`IPv6`](/core/reference/data-types/ipv6) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -1068,7 +1068,7 @@ SELECT Introduced in: v23.1.0 -Converts an input value to a value of type [IPv6](/reference/data-types/ipv6) but returns zero IPv6 address in case of an error. +Converts an input value to a value of type [IPv6](/core/reference/data-types/ipv6) but returns zero IPv6 address in case of an error. Like [`toIPv6`](#toIPv6) but returns zero IPv6 address (`::`) instead of throwing an exception on conversion errors. Supported arguments: @@ -1090,11 +1090,11 @@ toIPv6OrZero(x) **Arguments** -- `x` — A string representation of an IPv6 or IPv4 address. [`String`](/reference/data-types/string) +- `x` — A string representation of an IPv6 or IPv4 address. [`String`](/core/reference/data-types/string) **Returned value** -Returns an IPv6 address if successful, otherwise zero IPv6 address (`::`). [`IPv6`](/reference/data-types/ipv6) +Returns an IPv6 address if successful, otherwise zero IPv6 address (`::`). [`IPv6`](/core/reference/data-types/ipv6) **Examples** diff --git a/reference/functions/regular-functions/json-functions.mdx b/core/reference/functions/regular-functions/json-functions.mdx similarity index 81% rename from reference/functions/regular-functions/json-functions.mdx rename to core/reference/functions/regular-functions/json-functions.mdx index 921c214a..20dcd23e 100644 --- a/reference/functions/regular-functions/json-functions.mdx +++ b/core/reference/functions/regular-functions/json-functions.mdx @@ -59,11 +59,11 @@ JSONAllPaths(json) **Arguments** -- `json` — JSON column. [`JSON`](/reference/data-types/newjson) +- `json` — JSON column. [`JSON`](/core/reference/data-types/newjson) **Returned value** -Returns an array of all paths in the JSON column. [`Array(String)`](/reference/data-types/array) +Returns an array of all paths in the JSON column. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -98,11 +98,11 @@ JSONAllPathsWithTypes(json) **Arguments** -- `json` — JSON column. [`JSON`](/reference/data-types/newjson) +- `json` — JSON column. [`JSON`](/core/reference/data-types/newjson) **Returned value** -Returns a map of all paths and their data types in the JSON column. [`Map(String, String)`](/reference/data-types/map) +Returns a map of all paths and their data types in the JSON column. [`Map(String, String)`](/core/reference/data-types/map) **Examples** @@ -138,11 +138,11 @@ JSONAllValues(json) **Arguments** -- `json` — JSON column. [`JSON`](/reference/data-types/newjson) +- `json` — JSON column. [`JSON`](/core/reference/data-types/newjson) **Returned value** -Returns an array of all values as strings in the JSON column. [`Array(String)`](/reference/data-types/array) +Returns an array of all values as strings in the JSON column. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -180,11 +180,11 @@ JSONArrayLength(json) **Arguments** -- `json` — String with valid JSON. [`String`](/reference/data-types/string) +- `json` — String with valid JSON. [`String`](/core/reference/data-types/string) **Returned value** -Returns the number of array elements if `json` is a valid JSON array string, otherwise returns `NULL`. [`Nullable(UInt64)`](/reference/data-types/nullable) +Returns the number of array elements if `json` is a valid JSON array string, otherwise returns `NULL`. [`Nullable(UInt64)`](/core/reference/data-types/nullable) **Examples** @@ -217,11 +217,11 @@ JSONDynamicPaths(json) **Arguments** -- `json` — JSON column. [`JSON`](/reference/data-types/newjson) +- `json` — JSON column. [`JSON`](/core/reference/data-types/newjson) **Returned value** -Returns an array of dynamic paths in the JSON column. [`Array(String)`](/reference/data-types/array) +Returns an array of dynamic paths in the JSON column. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -256,11 +256,11 @@ JSONDynamicPathsWithTypes(json) **Arguments** -- `json` — JSON column. [`JSON`](/reference/data-types/newjson) +- `json` — JSON column. [`JSON`](/core/reference/data-types/newjson) **Returned value** -Returns a map of dynamic paths and their data types in the JSON column. [`Map(String, String)`](/reference/data-types/map) +Returns a map of dynamic paths and their data types in the JSON column. [`Map(String, String)`](/core/reference/data-types/map) **Examples** @@ -295,9 +295,9 @@ JSONExtract(json[, indices_or_keys, ...], return_type) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) -- `return_type` — ClickHouse data type to return. [`String`](/reference/data-types/string) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) +- `return_type` — ClickHouse data type to return. [`String`](/core/reference/data-types/string) **Returned value** @@ -332,12 +332,12 @@ JSONExtractArrayRaw(json[, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of strings with JSON array elements. If the part is not an array or does not exist, an empty array will be returned. [`Array(String)`](/reference/data-types/array) +Returns an array of strings with JSON array elements. If the part is not an array or does not exist, an empty array will be returned. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -368,12 +368,12 @@ JSONExtractArrayRawCaseInsensitive(json [, indices_or_keys]...) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional. Indices or keys to navigate to the array. Keys use case-insensitive matching [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional. Indices or keys to navigate to the array. Keys use case-insensitive matching [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of raw JSON strings. [`Array(String)`](/reference/data-types/array) +Returns an array of raw JSON strings. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -402,12 +402,12 @@ JSONExtractBool(json[, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a Bool value if it exists, otherwise returns `0`. [`Bool`](/reference/data-types/boolean) +Returns a Bool value if it exists, otherwise returns `0`. [`Bool`](/core/reference/data-types/boolean) **Examples** @@ -438,12 +438,12 @@ JSONExtractBoolCaseInsensitive(json [, indices_or_keys]...) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the extracted boolean value (1 for true, 0 for false), 0 if not found. [`UInt8`](/reference/data-types/int-uint) +Returns the extracted boolean value (1 for true, 0 for false), 0 if not found. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -472,13 +472,13 @@ JSONExtractCaseInsensitive(json [, indices_or_keys...], return_type) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) -- `return_type` — The ClickHouse data type to extract [`String`](/reference/data-types/string) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) +- `return_type` — The ClickHouse data type to extract [`String`](/core/reference/data-types/string) **Returned value** -Returns the extracted value in the specified data type. [`Any`](/reference/data-types) +Returns the extracted value in the specified data type. [`Any`](/core/reference/data-types) **Examples** @@ -517,12 +517,12 @@ JSONExtractFloat(json[, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a Float value if it exists, otherwise returns `0`. [`Float64`](/reference/data-types/float) +Returns a Float value if it exists, otherwise returns `0`. [`Float64`](/core/reference/data-types/float) **Examples** @@ -553,12 +553,12 @@ JSONExtractFloatCaseInsensitive(json [, indices_or_keys]...) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the extracted Float value, 0 if not found or cannot be converted. [`Float64`](/reference/data-types/float) +Returns the extracted Float value, 0 if not found or cannot be converted. [`Float64`](/core/reference/data-types/float) **Examples** @@ -587,12 +587,12 @@ JSONExtractInt(json[, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns an Int value if it exists, otherwise returns `0`. [`Int64`](/reference/data-types/int-uint) +Returns an Int value if it exists, otherwise returns `0`. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -623,12 +623,12 @@ JSONExtractIntCaseInsensitive(json [, indices_or_keys]...) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the extracted Int value, 0 if not found or cannot be converted. [`Int64`](/reference/data-types/int-uint) +Returns the extracted Int value, 0 if not found or cannot be converted. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -667,12 +667,12 @@ JSONExtractKeys(json[, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array with the keys of the JSON object. [`Array(String)`](/reference/data-types/array) +Returns an array with the keys of the JSON object. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -703,13 +703,13 @@ JSONExtractKeysAndValues(json[, indices_or_keys, ...], value_type) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) -- `value_type` — ClickHouse data type of the values. [`String`](/reference/data-types/string) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) +- `value_type` — ClickHouse data type of the values. [`String`](/core/reference/data-types/string) **Returned value** -Returns an array of tuples with the parsed key-value pairs. [`Array(Tuple(String, value_type))`](/reference/data-types/array) +Returns an array of tuples with the parsed key-value pairs. [`Array(Tuple(String, value_type))`](/core/reference/data-types/array) **Examples** @@ -740,13 +740,13 @@ JSONExtractKeysAndValuesCaseInsensitive(json [, indices_or_keys...], value_type) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional. Indices or keys to navigate to the object. Keys use case-insensitive matching [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) -- `value_type` — The ClickHouse data type of the values [`String`](/reference/data-types/string) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional. Indices or keys to navigate to the object. Keys use case-insensitive matching [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) +- `value_type` — The ClickHouse data type of the values [`String`](/core/reference/data-types/string) **Returned value** -Returns an array of tuples containing key-value pairs. [`Array(Tuple(String, T))`](/reference/data-types/array) +Returns an array of tuples containing key-value pairs. [`Array(Tuple(String, T))`](/core/reference/data-types/array) **Examples** @@ -775,12 +775,12 @@ JSONExtractKeysAndValuesRaw(json[, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of tuples with parsed key-value pairs where values are unparsed strings. [`Array(Tuple(String, String))`](/reference/data-types/array) +Returns an array of tuples with parsed key-value pairs where values are unparsed strings. [`Array(Tuple(String, String))`](/core/reference/data-types/array) **Examples** @@ -811,12 +811,12 @@ JSONExtractKeysAndValuesRawCaseInsensitive(json [, indices_or_keys]...) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional. Indices or keys to navigate to the object. Keys use case-insensitive matching [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional. Indices or keys to navigate to the object. Keys use case-insensitive matching [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of tuples containing key-value pairs as raw strings. [`Array(Tuple(String, String))`](/reference/data-types/array) +Returns an array of tuples containing key-value pairs as raw strings. [`Array(Tuple(String, String))`](/core/reference/data-types/array) **Examples** @@ -845,12 +845,12 @@ JSONExtractKeysCaseInsensitive(json [, indices_or_keys]...) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional. Indices or keys to navigate to the object. Keys use case-insensitive matching [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional. Indices or keys to navigate to the object. Keys use case-insensitive matching [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of keys from the JSON object. [`Array(String)`](/reference/data-types/array) +Returns an array of keys from the JSON object. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -889,12 +889,12 @@ JSONExtractRaw(json[, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the part of JSON as an unparsed string. If the part does not exist or has a wrong type, an empty string will be returned. [`String`](/reference/data-types/string) +Returns the part of JSON as an unparsed string. If the part does not exist or has a wrong type, an empty string will be returned. [`String`](/core/reference/data-types/string) **Examples** @@ -925,12 +925,12 @@ JSONExtractRawCaseInsensitive(json [, indices_or_keys]...) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the raw JSON string of the extracted element. [`String`](/reference/data-types/string) +Returns the raw JSON string of the extracted element. [`String`](/core/reference/data-types/string) **Examples** @@ -959,12 +959,12 @@ JSONExtractString(json[, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a String value if it exists, otherwise returns an empty string. [`String`](/reference/data-types/string) +Returns a String value if it exists, otherwise returns an empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -995,12 +995,12 @@ JSONExtractStringCaseInsensitive(json [, indices_or_keys]...) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the extracted string value, empty string if not found. [`String`](/reference/data-types/string) +Returns the extracted string value, empty string if not found. [`String`](/core/reference/data-types/string) **Examples** @@ -1039,12 +1039,12 @@ JSONExtractUInt(json [, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — A list of zero or more arguments each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a UInt value if it exists, otherwise returns `0`. [`UInt64`](/reference/data-types/int-uint) +Returns a UInt value if it exists, otherwise returns `0`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1075,12 +1075,12 @@ JSONExtractUIntCaseInsensitive(json [, indices_or_keys]...) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional. Indices or keys to navigate to the field. Keys use case-insensitive matching [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the extracted UInt value, 0 if not found or cannot be converted. [`UInt64`](/reference/data-types/int-uint) +Returns the extracted UInt value, 0 if not found or cannot be converted. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1109,12 +1109,12 @@ JSONHas(json[ ,indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `[ ,indices_or_keys, ...]` — A list of zero or more arguments. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `[ ,indices_or_keys, ...]` — A list of zero or more arguments. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns `1` if the value exists in `json`, otherwise `0` [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the value exists in `json`, otherwise `0` [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1145,12 +1145,12 @@ JSONKey(json[, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse. [`String`](/reference/data-types/string) -- `indices_or_keys` — Optional list of indices or keys specifying a path to a nested element. Each argument can be either a string (access by key) or an integer (access by index starting from 1). [`String`](/reference/data-types/string) or [`Int*`](/reference/data-types/int-uint) +- `json` — JSON string to parse. [`String`](/core/reference/data-types/string) +- `indices_or_keys` — Optional list of indices or keys specifying a path to a nested element. Each argument can be either a string (access by key) or an integer (access by index starting from 1). [`String`](/core/reference/data-types/string) or [`Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the key name at the specified position in the JSON object. [`String`](/reference/data-types/string) +Returns the key name at the specified position in the JSON object. [`String`](/core/reference/data-types/string) **Examples** @@ -1180,12 +1180,12 @@ JSONLength(json [, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `[, indices_or_keys, ...]` — Optional. A list of zero or more arguments. [`String`](/reference/data-types/string) or [`(U)Int8/16/32/64`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `[, indices_or_keys, ...]` — Optional. A list of zero or more arguments. [`String`](/core/reference/data-types/string) or [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns the length of the JSON array or JSON object, otherwise returns `0` if the value does not exist or has the wrong type. [`UInt64`](/reference/data-types/int-uint) +Returns the length of the JSON array or JSON object, otherwise returns `0` if the value does not exist or has the wrong type. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1218,11 +1218,11 @@ JSONMergePatch(json1[, json2, ...]) **Arguments** -- `json1[, json2, ...]` — One or more strings with valid JSON. [`String`](/reference/data-types/string) +- `json1[, json2, ...]` — One or more strings with valid JSON. [`String`](/core/reference/data-types/string) **Returned value** -Returns the merged JSON object string, if the JSON object strings are valid. [`String`](/reference/data-types/string) +Returns the merged JSON object string, if the JSON object strings are valid. [`String`](/core/reference/data-types/string) **Examples** @@ -1253,11 +1253,11 @@ JSONSharedDataPaths(json) **Arguments** -- `json` — JSON column. [`JSON`](/reference/data-types/newjson) +- `json` — JSON column. [`JSON`](/core/reference/data-types/newjson) **Returned value** -Returns an array of paths stored in shared data structure in the JSON column. [`Array(String)`](/reference/data-types/array) +Returns an array of paths stored in shared data structure in the JSON column. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -1292,11 +1292,11 @@ JSONSharedDataPathsWithTypes(json) **Arguments** -- `json` — JSON column. [`JSON`](/reference/data-types/newjson) +- `json` — JSON column. [`JSON`](/core/reference/data-types/newjson) **Returned value** -Returns a map of paths stored in shared data structure and their data types in the JSON column. [`Map(String, String)`](/reference/data-types/map) +Returns a map of paths stored in shared data structure and their data types in the JSON column. [`Map(String, String)`](/core/reference/data-types/map) **Examples** @@ -1331,12 +1331,12 @@ JSONType(json[, indices_or_keys, ...]) **Arguments** -- `json` — JSON string to parse [`String`](/reference/data-types/string) -- `json[, indices_or_keys, ...]` — A list of zero or more arguments, each of which can be either string or integer. [`String`](/reference/data-types/string) or [`(U)Int8/16/32/64`](/reference/data-types/int-uint) +- `json` — JSON string to parse [`String`](/core/reference/data-types/string) +- `json[, indices_or_keys, ...]` — A list of zero or more arguments, each of which can be either string or integer. [`String`](/core/reference/data-types/string) or [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns the type of a JSON value as a string, otherwise if the value doesn't exist it returns `Null=0` [`Enum`](/reference/data-types/enum) +Returns the type of a JSON value as a string, otherwise if the value doesn't exist it returns `Null=0` [`Enum`](/core/reference/data-types/enum) **Examples** @@ -1370,12 +1370,12 @@ JSON_EXISTS(json, path) **Arguments** -- `json` — A string with valid JSON. [`String`](/reference/data-types/string) -- `path` — A string representing the path. [`String`](/reference/data-types/string) +- `json` — A string with valid JSON. [`String`](/core/reference/data-types/string) +- `path` — A string representing the path. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the value exists in the JSON document, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the value exists in the JSON document, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1419,12 +1419,12 @@ JSON_QUERY(json, path) **Arguments** -- `json` — A string with valid JSON. [`String`](/reference/data-types/string) -- `path` — A string representing the path. [`String`](/reference/data-types/string) +- `json` — A string with valid JSON. [`String`](/core/reference/data-types/string) +- `path` — A string representing the path. [`String`](/core/reference/data-types/string) **Returned value** -Returns the extracted JSON array or JSON object as a string, or an empty string if the value does not exist. [`String`](/reference/data-types/string) +Returns the extracted JSON array or JSON object as a string, or an empty string if the value does not exist. [`String`](/core/reference/data-types/string) **Examples** @@ -1463,12 +1463,12 @@ JSON_VALUE(json, path) **Arguments** -- `json` — A string with valid JSON. [`String`](/reference/data-types/string) -- `path` — A string representing the path. [`String`](/reference/data-types/string) +- `json` — A string with valid JSON. [`String`](/core/reference/data-types/string) +- `path` — A string representing the path. [`String`](/core/reference/data-types/string) **Returned value** -Returns the extracted JSON scalar as a string, or an empty string if the value does not exist. [`String`](/reference/data-types/string) +Returns the extracted JSON scalar as a string, or an empty string if the value does not exist. [`String`](/core/reference/data-types/string) **Examples** @@ -1507,12 +1507,12 @@ dynamicElement(dynamic, type_name) **Arguments** -- `dynamic` — Dynamic column to extract from. [`Dynamic`](/reference/data-types/dynamic) +- `dynamic` — Dynamic column to extract from. [`Dynamic`](/core/reference/data-types/dynamic) - `type_name` — The name of the variant type to extract (e.g., 'String', 'Int64', 'Array(Int64)'). **Returned value** -Returns values of the specified type from the Dynamic column. Returns NULL for non-matching types (or empty array for array types). [`Any`](/reference/data-types) +Returns values of the specified type from the Dynamic column. Returns NULL for non-matching types (or empty array for array types). [`Any`](/core/reference/data-types) **Examples** @@ -1550,11 +1550,11 @@ dynamicType(dynamic) **Arguments** -- `dynamic` — Dynamic column to inspect. [`Dynamic`](/reference/data-types/dynamic) +- `dynamic` — Dynamic column to inspect. [`Dynamic`](/core/reference/data-types/dynamic) **Returned value** -Returns the type name of the value stored in each row, or 'None' for NULL values. [`String`](/reference/data-types/string) +Returns the type name of the value stored in each row, or 'None' for NULL values. [`String`](/core/reference/data-types/string) **Examples** @@ -1593,11 +1593,11 @@ isDynamicElementInSharedData(dynamic) **Arguments** -- `dynamic` — Dynamic column to inspect. [`Dynamic`](/reference/data-types/dynamic) +- `dynamic` — Dynamic column to inspect. [`Dynamic`](/core/reference/data-types/dynamic) **Returned value** -Returns true if the value is stored in shared variant format, false if stored as a separate subcolumn or is NULL. [`Bool`](/reference/data-types/boolean) +Returns true if the value is stored in shared variant format, false if stored as a separate subcolumn or is NULL. [`Bool`](/core/reference/data-types/boolean) **Examples** @@ -1633,11 +1633,11 @@ isValidJSON(json) **Arguments** -- `json` — JSON string to validate [`String`](/reference/data-types/string) +- `json` — JSON string to validate [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the string is valid JSON, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the string is valid JSON, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1691,15 +1691,15 @@ simpleJSONExtractBool(json, field_name) **Arguments** -- `json` — The JSON in which the field is searched for. [`String`](/reference/data-types/string) -- `field_name` — The name of the field to search for. [`const String`](/reference/data-types/string) +- `json` — The JSON in which the field is searched for. [`String`](/core/reference/data-types/string) +- `field_name` — The name of the field to search for. [`const String`](/core/reference/data-types/string) **Returned value** Returns `1` if the value of the field is `true`, `0` otherwise. This means this function will return `0` including (and not only) in the following cases: - If the field doesn't exists. - If the field contains `true` as a string, e.g.: `{"field":"true"}`. -- If the field contains `1` as a numerical value. [`UInt8`](/reference/data-types/int-uint) +- If the field contains `1` as a numerical value. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1745,12 +1745,12 @@ simpleJSONExtractFloat(json, field_name) **Arguments** -- `json` — The JSON in which the field is searched for. [`String`](/reference/data-types/string) -- `field_name` — The name of the field to search for. [`const String`](/reference/data-types/string) +- `json` — The JSON in which the field is searched for. [`String`](/core/reference/data-types/string) +- `field_name` — The name of the field to search for. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the number parsed from the field if the field exists and contains a number, otherwise `0`. [`Float64`](/reference/data-types/float) +Returns the number parsed from the field if the field exists and contains a number, otherwise `0`. [`Float64`](/core/reference/data-types/float) **Examples** @@ -1799,12 +1799,12 @@ simpleJSONExtractInt(json, field_name) **Arguments** -- `json` — The JSON in which the field is searched for. [`String`](/reference/data-types/string) -- `field_name` — The name of the field to search for. [`const String`](/reference/data-types/string) +- `json` — The JSON in which the field is searched for. [`String`](/core/reference/data-types/string) +- `field_name` — The name of the field to search for. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the number parsed from the field if the field exists and contains a number, `0` otherwise [`Int64`](/reference/data-types/int-uint) +Returns the number parsed from the field if the field exists and contains a number, `0` otherwise [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -1851,12 +1851,12 @@ simpleJSONExtractRaw(json, field_name) **Arguments** -- `json` — The JSON in which the field is searched for. [`String`](/reference/data-types/string) -- `field_name` — The name of the field to search for. [`const String`](/reference/data-types/string) +- `json` — The JSON in which the field is searched for. [`String`](/core/reference/data-types/string) +- `field_name` — The name of the field to search for. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the value of the field as a string, including separators if the field exists, or an empty string otherwise [`String`](/reference/data-types/string) +Returns the value of the field as a string, including separators if the field exists, or an empty string otherwise [`String`](/core/reference/data-types/string) **Examples** @@ -1906,12 +1906,12 @@ simpleJSONExtractString(json, field_name) **Arguments** -- `json` — The JSON in which the field is searched for. [`String`](/reference/data-types/string) -- `field_name` — The name of the field to search for. [`const String`](/reference/data-types/string) +- `json` — The JSON in which the field is searched for. [`String`](/core/reference/data-types/string) +- `field_name` — The name of the field to search for. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the unescaped value of a field as a string, including separators. An empty string is returned if the field doesn't contain a double quoted string, if unescaping fails or if the field doesn't exist [`String`](/reference/data-types/string) +Returns the unescaped value of a field as a string, including separators. An empty string is returned if the field doesn't contain a double quoted string, if unescaping fails or if the field doesn't exist [`String`](/core/reference/data-types/string) **Examples** @@ -1957,12 +1957,12 @@ simpleJSONExtractUInt(json, field_name) **Arguments** -- `json` — The JSON in which the field is searched for. [`String`](/reference/data-types/string) -- `field_name` — The name of the field to search for. [`const String`](/reference/data-types/string) +- `json` — The JSON in which the field is searched for. [`String`](/core/reference/data-types/string) +- `field_name` — The name of the field to search for. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the number parsed from the field if the field exists and contains a number, `0` otherwise [`UInt64`](/reference/data-types/int-uint) +Returns the number parsed from the field if the field exists and contains a number, `0` otherwise [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2009,12 +2009,12 @@ simpleJSONHas(json, field_name) **Arguments** -- `json` — The JSON in which the field is searched for. [`String`](/reference/data-types/string) -- `field_name` — The name of the field to search for. [`const String`](/reference/data-types/string) +- `json` — The JSON in which the field is searched for. [`String`](/core/reference/data-types/string) +- `field_name` — The name of the field to search for. [`const String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the field exists, `0` otherwise [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the field exists, `0` otherwise [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2044,13 +2044,13 @@ SELECT simpleJSONHas(json, 'bar') FROM jsons; Introduced in: v21.7.0 Serializes a value to its JSON representation. Various data types and nested structures are supported. -64-bit [integers](/reference/data-types/int-uint) or bigger (like `UInt64` or `Int128`) are enclosed in quotes by default. [output_format_json_quote_64bit_integers](/reference/settings/formats#output_format_json_quote_64bit_integers) controls this behavior. -Special values `NaN` and `inf` are replaced with `null`. Enable [output_format_json_quote_denormals](/reference/settings/formats#output_format_json_quote_denormals) setting to show them. -When serializing an [Enum](/reference/data-types/enum) value, the function outputs its name. +64-bit [integers](/core/reference/data-types/int-uint) or bigger (like `UInt64` or `Int128`) are enclosed in quotes by default. [output_format_json_quote_64bit_integers](/core/reference/settings/formats#output_format_json_quote_64bit_integers) controls this behavior. +Special values `NaN` and `inf` are replaced with `null`. Enable [output_format_json_quote_denormals](/core/reference/settings/formats#output_format_json_quote_denormals) setting to show them. +When serializing an [Enum](/core/reference/data-types/enum) value, the function outputs its name. See also: -- [output_format_json_quote_64bit_integers](/reference/settings/formats#output_format_json_quote_64bit_integers) -- [output_format_json_quote_denormals](/reference/settings/formats#output_format_json_quote_denormals) +- [output_format_json_quote_64bit_integers](/core/reference/settings/formats#output_format_json_quote_64bit_integers) +- [output_format_json_quote_denormals](/core/reference/settings/formats#output_format_json_quote_denormals) **Syntax** @@ -2061,11 +2061,11 @@ toJSONString(value) **Arguments** -- `value` — Value to serialize. Value may be of any data type. [`Any`](/reference/data-types) +- `value` — Value to serialize. Value may be of any data type. [`Any`](/core/reference/data-types) **Returned value** -Returns the JSON representation of the value. [`String`](/reference/data-types/string) +Returns the JSON representation of the value. [`String`](/core/reference/data-types/string) **Examples** diff --git a/reference/functions/regular-functions/logical-functions.mdx b/core/reference/functions/regular-functions/logical-functions.mdx similarity index 77% rename from reference/functions/regular-functions/logical-functions.mdx rename to core/reference/functions/regular-functions/logical-functions.mdx index f93a7bbc..1e19a6a4 100644 --- a/reference/functions/regular-functions/logical-functions.mdx +++ b/core/reference/functions/regular-functions/logical-functions.mdx @@ -7,7 +7,7 @@ doc_type: 'reference' --- The functions below perform logical operations on arguments of arbitrary numeric types. -They return either `0` or `1` as [`UInt8`](/reference/data-types/int-uint) or in some cases `NULL`. +They return either `0` or `1` as [`UInt8`](/core/reference/data-types/int-uint) or in some cases `NULL`. Zero as an argument is considered `false`, non-zero values are considered `true`. @@ -24,7 +24,7 @@ Introduced in: v1.1.0 Calculates the logical conjunction of two or more values. -Setting [`short_circuit_function_evaluation`](/reference/settings/session-settings#short_circuit_function_evaluation) controls whether short-circuit evaluation is used. +Setting [`short_circuit_function_evaluation`](/core/reference/settings/session-settings#short_circuit_function_evaluation) controls whether short-circuit evaluation is used. If enabled, `val_i` is evaluated only if `(val_1 AND val_2 AND ... AND val_{i-1})` is `true`. For example, with short-circuit evaluation, no division-by-zero exception is thrown when executing the query `SELECT and(number = 2, intDiv(1, number)) FROM numbers(5)`. @@ -38,7 +38,7 @@ and(val1, val2[, ...]) **Arguments** -- `val1, val2[, ...]` — List of at least two values. [`Nullable((U)Int*)`](/reference/data-types/nullable) or [`Nullable(Float*)`](/reference/data-types/nullable) +- `val1, val2[, ...]` — List of at least two values. [`Nullable((U)Int*)`](/core/reference/data-types/nullable) or [`Nullable(Float*)`](/core/reference/data-types/nullable) **Returned value** @@ -46,7 +46,7 @@ Returns: - `0`, if at least one argument evaluates to `false` - `NULL`, if no argument evaluates to `false` and at least one argument is `NULL` - `1`, otherwise - [`Nullable(UInt8)`](/reference/data-types/nullable) + [`Nullable(UInt8)`](/core/reference/data-types/nullable) **Examples** @@ -85,7 +85,7 @@ not(val) **Arguments** -- `val` — The value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `val` — The value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** @@ -93,7 +93,7 @@ Returns: - `1`, if `val` evaluates to `false` - `0`, if `val` evaluates to `true` - `NULL`, if `val` is `NULL`. - [`Nullable(UInt8)`](/reference/data-types/nullable) + [`Nullable(UInt8)`](/core/reference/data-types/nullable) **Examples** @@ -113,7 +113,7 @@ Introduced in: v1.1.0 Calculates the logical disjunction of two or more values. -Setting [`short_circuit_function_evaluation`](/reference/settings/session-settings#short_circuit_function_evaluation) controls whether short-circuit evaluation is used. +Setting [`short_circuit_function_evaluation`](/core/reference/settings/session-settings#short_circuit_function_evaluation) controls whether short-circuit evaluation is used. If enabled, `val_i` is evaluated only if `((NOT val_1) AND (NOT val_2) AND ... AND (NOT val_{i-1}))` is `true`. For example, with short-circuit evaluation, no division-by-zero exception is thrown when executing the query `SELECT or(number = 0, intDiv(1, number) != 0) FROM numbers(5)`. @@ -127,7 +127,7 @@ or(val1, val2[, ...]) **Arguments** -- `val1, val2[, ...]` — List of at least two values. [`Nullable((U)Int*)`](/reference/data-types/nullable) or [`Nullable(Float*)`](/reference/data-types/nullable) +- `val1, val2[, ...]` — List of at least two values. [`Nullable((U)Int*)`](/core/reference/data-types/nullable) or [`Nullable(Float*)`](/core/reference/data-types/nullable) **Returned value** @@ -135,7 +135,7 @@ Returns: - `1`, if at least one argument evaluates to `true` - `0`, if all arguments evaluate to `false` - `NULL`, if all arguments evaluate to `false` and at least one argument is `NULL` - [`Nullable(UInt8)`](/reference/data-types/nullable) + [`Nullable(UInt8)`](/core/reference/data-types/nullable) **Examples** @@ -175,7 +175,7 @@ xor(val1, val2[, ...]) **Arguments** -- `val1, val2[, ...]` — List of at least two values. [`Nullable((U)Int*)`](/reference/data-types/nullable) or [`Nullable(Float*)`](/reference/data-types/nullable) +- `val1, val2[, ...]` — List of at least two values. [`Nullable((U)Int*)`](/core/reference/data-types/nullable) or [`Nullable(Float*)`](/core/reference/data-types/nullable) **Returned value** @@ -183,7 +183,7 @@ Returns: - `1`, for two values: if one of the values evaluates to `false` and other does not - `0`, for two values: if both values evaluate to `false` or to both `true` - `NULL`, if at least one of the inputs is `NULL`. - [`Nullable(UInt8)`](/reference/data-types/nullable) + [`Nullable(UInt8)`](/core/reference/data-types/nullable) **Examples** diff --git a/reference/functions/regular-functions/machine-learning-functions.mdx b/core/reference/functions/regular-functions/machine-learning-functions.mdx similarity index 90% rename from reference/functions/regular-functions/machine-learning-functions.mdx rename to core/reference/functions/regular-functions/machine-learning-functions.mdx index 371a63be..53950276 100644 --- a/reference/functions/regular-functions/machine-learning-functions.mdx +++ b/core/reference/functions/regular-functions/machine-learning-functions.mdx @@ -12,11 +12,11 @@ Prediction using fitted regression models uses `evalMLMethod` function. See link ## stochasticLinearRegression {#stochasticlinearregression} -The [stochasticLinearRegression](/reference/functions/aggregate-functions/reference/stochasticLinearRegression) aggregate function implements stochastic gradient descent method using linear model and MSE loss function. Uses `evalMLMethod` to predict on new data. +The [stochasticLinearRegression](/core/reference/functions/aggregate-functions/reference/stochasticLinearRegression) aggregate function implements stochastic gradient descent method using linear model and MSE loss function. Uses `evalMLMethod` to predict on new data. ## stochasticLogisticRegression {#stochasticlogisticregression} -The [stochasticLogisticRegression](/reference/functions/aggregate-functions/reference/stochasticLogisticRegression) aggregate function implements stochastic gradient descent method for binary classification problem. Uses `evalMLMethod` to predict on new data. +The [stochasticLogisticRegression](/core/reference/functions/aggregate-functions/reference/stochasticLogisticRegression) aggregate function implements stochastic gradient descent method for binary classification problem. Uses `evalMLMethod` to predict on new data. ## naiveBayesClassifier {#naivebayesclassifier} @@ -30,13 +30,13 @@ naiveBayesClassifier(model_name, input_text); **Arguments** -- `model_name` — Name of the pre-configured model. [String](/reference/data-types/string) +- `model_name` — Name of the pre-configured model. [String](/core/reference/data-types/string) The model must be defined in ClickHouse's configuration files (see below). -- `input_text` — Text to classify. [String](/reference/data-types/string) +- `input_text` — Text to classify. [String](/core/reference/data-types/string) Input is processed exactly as provided (case/punctuation preserved). **Returned Value** -- Predicted class ID as an unsigned integer. [UInt32](/reference/data-types/int-uint) +- Predicted class ID as an unsigned integer. [UInt32](/core/reference/data-types/int-uint) Class IDs correspond to categories defined during model construction. **Example** diff --git a/reference/functions/regular-functions/math-functions.mdx b/core/reference/functions/regular-functions/math-functions.mdx similarity index 67% rename from reference/functions/regular-functions/math-functions.mdx rename to core/reference/functions/regular-functions/math-functions.mdx index 73f67609..b831fc20 100644 --- a/reference/functions/regular-functions/math-functions.mdx +++ b/core/reference/functions/regular-functions/math-functions.mdx @@ -27,11 +27,11 @@ acos(x) **Arguments** -- `x` — The value for which to find arc cosine of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The value for which to find arc cosine of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the arc cosine of x [`Float*`](/reference/data-types/float) +Returns the arc cosine of x [`Float*`](/core/reference/data-types/float) **Examples** @@ -59,11 +59,11 @@ acosh(x) **Arguments** -- `x` — Hyperbolic cosine of angle. Values from the interval: `1 ≤ x < +∞`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Hyperbolic cosine of angle. Values from the interval: `1 ≤ x < +∞`. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the angle, in radians. Values from the interval: `0 ≤ acosh(x) < +∞`. [`Float64`](/reference/data-types/float) +Returns the angle, in radians. Values from the interval: `0 ≤ acosh(x) < +∞`. [`Float64`](/core/reference/data-types/float) **Examples** @@ -93,11 +93,11 @@ asin(x) **Arguments** -- `x` — Argument for which to calculate arcsine of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `x` — Argument for which to calculate arcsine of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the arcsine value of the provided argument `x` [`Float64`](/reference/data-types/float) +Returns the arcsine value of the provided argument `x` [`Float64`](/core/reference/data-types/float) **Examples** @@ -145,11 +145,11 @@ asinh(x) **Arguments** -- `x` — Hyperbolic sine of angle. Values from the interval: `-∞ < x < +∞`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Hyperbolic sine of angle. Values from the interval: `-∞ < x < +∞`. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the angle, in radians. Values from the interval: `-∞ < asinh(x) < +∞`. [`Float64`](/reference/data-types/float) +Returns the angle, in radians. Values from the interval: `-∞ < asinh(x) < +∞`. [`Float64`](/core/reference/data-types/float) **Examples** @@ -177,11 +177,11 @@ atan(x) **Arguments** -- `x` — The value for which to find arc tangent of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The value for which to find arc tangent of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the arc tangent of `x`. [`Float*`](/reference/data-types/float) +Returns the arc tangent of `x`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -209,12 +209,12 @@ atan2(y, x) **Arguments** -- `y` — y-coordinate of the point through which the ray passes. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) -- `x` — x-coordinate of the point through which the ray passes. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `y` — y-coordinate of the point through which the ray passes. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) +- `x` — x-coordinate of the point through which the ray passes. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the angle `θ` such that `-π < θ ≤ π`, in radians [`Float64`](/reference/data-types/float) +Returns the angle `θ` such that `-π < θ ≤ π`, in radians [`Float64`](/core/reference/data-types/float) **Examples** @@ -242,11 +242,11 @@ atanh(x) **Arguments** -- `x` — Hyperbolic tangent of angle. Values from the interval: -1 < x < 1. `(U)Int*`, `Float*` or `Decimal*`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Hyperbolic tangent of angle. Values from the interval: -1 < x < 1. `(U)Int*`, `Float*` or `Decimal*`. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the angle, in radians. Values from the interval: -∞ < atanh(x) < +∞ [`Float64`](/reference/data-types/float) +Returns the angle, in radians. Values from the interval: -∞ < atanh(x) < +∞ [`Float64`](/core/reference/data-types/float) **Examples** @@ -274,11 +274,11 @@ cbrt(x) **Arguments** -- `x` — The value for which to find the cubic root of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The value for which to find the cubic root of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the cubic root of `x`. [`Float*`](/reference/data-types/float) +Returns the cubic root of `x`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -306,11 +306,11 @@ cos(x) **Arguments** -- `x` — The angle in radians. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The angle in radians. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the cosine of `x`. [`Float*`](/reference/data-types/float) +Returns the cosine of `x`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -338,11 +338,11 @@ cosh(x) **Arguments** -- `x` — The angle, in radians. Values from the interval: `-∞ < x < +∞`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The angle, in radians. Values from the interval: `-∞ < x < +∞`. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns values from the interval: `1 ≤ cosh(x) < +∞` [`Float64`](/reference/data-types/float) +Returns values from the interval: `1 ≤ cosh(x) < +∞` [`Float64`](/core/reference/data-types/float) **Examples** @@ -370,11 +370,11 @@ degrees(x) **Arguments** -- `x` — Input in radians. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Input in radians. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the value of `x` in degrees. [`Float64`](/reference/data-types/float) +Returns the value of `x` in degrees. [`Float64`](/core/reference/data-types/float) **Examples** @@ -406,7 +406,7 @@ e() **Returned value** -Returns Euler's constant [`Float64`](/reference/data-types/float) +Returns Euler's constant [`Float64`](/core/reference/data-types/float) **Examples** @@ -434,11 +434,11 @@ erf(x) **Arguments** -- `x` — The value for which to compute the error function value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The value for which to compute the error function value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the error function value [`Float*`](/reference/data-types/float) +Returns the error function value [`Float*`](/core/reference/data-types/float) **Examples** @@ -468,11 +468,11 @@ erfc(x) **Arguments** -- `x` — The value for which to find the error function value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The value for which to find the error function value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the complementary error function value [`Float*`](/reference/data-types/float) +Returns the complementary error function value [`Float*`](/core/reference/data-types/float) **Examples** @@ -500,11 +500,11 @@ exp(x) **Arguments** -- `x` — The exponent. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The exponent. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns `e^x` [`Float*`](/reference/data-types/float) +Returns `e^x` [`Float*`](/core/reference/data-types/float) **Examples** @@ -534,11 +534,11 @@ exp10(x) **Arguments** -- `x` — The exponent. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The exponent. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns 10^x [`Float*`](/reference/data-types/float) +Returns 10^x [`Float*`](/core/reference/data-types/float) **Examples** @@ -566,11 +566,11 @@ exp2(x) **Arguments** -- `x` — The exponent. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The exponent. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns 2^x [`Float*`](/reference/data-types/float) +Returns 2^x [`Float*`](/core/reference/data-types/float) **Examples** @@ -601,11 +601,11 @@ factorial(n) **Arguments** -- `n` — Integer value for which to calculate the factorial. Maximum value is 20. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) +- `n` — Integer value for which to calculate the factorial. Maximum value is 20. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns the factorial of the input as UInt64. Returns 1 for input 0 or any negative value. [`UInt64`](/reference/data-types/int-uint) +Returns the factorial of the input as UInt64. Returns 1 for input 0 or any negative value. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -634,12 +634,12 @@ hypot(x, y) **Arguments** -- `x` — The first cathetus of a right-angle triangle. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) -- `y` — The second cathetus of a right-angle triangle. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The first cathetus of a right-angle triangle. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) +- `y` — The second cathetus of a right-angle triangle. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the length of the hypotenuse of a right-angle triangle. [`Float64`](/reference/data-types/float) +Returns the length of the hypotenuse of a right-angle triangle. [`Float64`](/core/reference/data-types/float) **Examples** @@ -667,11 +667,11 @@ intExp10(x) **Arguments** -- `x` — The exponent. [`Int*`](/reference/data-types/int-uint) or [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x` — The exponent. [`Int*`](/core/reference/data-types/int-uint) or [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns 10^x. [`UInt64`](/reference/data-types/int-uint) +Returns 10^x. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -699,11 +699,11 @@ intExp2(x) **Arguments** -- `x` — The exponent. [`Int*`](/reference/data-types/int-uint) or [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x` — The exponent. [`Int*`](/core/reference/data-types/int-uint) or [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns 2^x. [`UInt64`](/reference/data-types/int-uint) +Returns 2^x. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -726,7 +726,7 @@ Returns `1` if the argument is a prime number, otherwise `0`. Uses an exact lookup bitmap for small values and a deterministic [Miller-Rabin test](https://en.wikipedia.org/wiki/Miller-Rabin_primality_test) for larger values. The result is exact for every supported input type. -For wider unsigned integer types (`UInt128`, `UInt256`), use [`isProbablePrime`](/reference/functions/regular-functions/math-functions#isProbablePrime) instead. +For wider unsigned integer types (`UInt128`, `UInt256`), use [`isProbablePrime`](/core/reference/functions/regular-functions/math-functions#isProbablePrime) instead. **Syntax** @@ -737,11 +737,11 @@ isPrime(n) **Arguments** -- `n` — Unsigned integer to test for primality. [`UInt8`](/reference/data-types/int-uint) or [`UInt16`](/reference/data-types/int-uint) or [`UInt32`](/reference/data-types/int-uint) or [`UInt64`](/reference/data-types/int-uint) +- `n` — Unsigned integer to test for primality. [`UInt8`](/core/reference/data-types/int-uint) or [`UInt16`](/core/reference/data-types/int-uint) or [`UInt32`](/core/reference/data-types/int-uint) or [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns `1` if `n` is prime, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `n` is prime, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -792,7 +792,7 @@ Introduced in: v26.5.0 Returns `1` if the argument is probably prime, `0` if it is definitely composite. For `UInt8`, `UInt16`, `UInt32`, and `UInt64`, the result is exact and matches -[`isPrime`](/reference/functions/regular-functions/math-functions#isPrime). The `rounds` argument is ignored. +[`isPrime`](/core/reference/functions/regular-functions/math-functions#isPrime). The `rounds` argument is ignored. For `UInt128` and `UInt256`, a return value of `1` is probabilistic. The optional `rounds` argument controls how many [Miller-Rabin](https://en.wikipedia.org/wiki/Miller-Rabin_primality_test) rounds are used: @@ -814,12 +814,12 @@ isProbablePrime(n[, rounds]) **Arguments** -- `n` — Unsigned integer to test for primality. [`UInt8`](/reference/data-types/int-uint) or [`UInt16`](/reference/data-types/int-uint) or [`UInt32`](/reference/data-types/int-uint) or [`UInt64`](/reference/data-types/int-uint) or [`UInt128`](/reference/data-types/int-uint) or [`UInt256`](/reference/data-types/int-uint) -- `rounds` — Optional positive integer constant in `[1, 256]`. Number of Miller-Rabin rounds for `UInt128`/`UInt256` (ignored for narrower types). Default `25`. [`UInt8`](/reference/data-types/int-uint) or [`UInt16`](/reference/data-types/int-uint) or [`UInt32`](/reference/data-types/int-uint) or [`UInt64`](/reference/data-types/int-uint) +- `n` — Unsigned integer to test for primality. [`UInt8`](/core/reference/data-types/int-uint) or [`UInt16`](/core/reference/data-types/int-uint) or [`UInt32`](/core/reference/data-types/int-uint) or [`UInt64`](/core/reference/data-types/int-uint) or [`UInt128`](/core/reference/data-types/int-uint) or [`UInt256`](/core/reference/data-types/int-uint) +- `rounds` — Optional positive integer constant in `[1, 256]`. Number of Miller-Rabin rounds for `UInt128`/`UInt256` (ignored for narrower types). Default `25`. [`UInt8`](/core/reference/data-types/int-uint) or [`UInt16`](/core/reference/data-types/int-uint) or [`UInt32`](/core/reference/data-types/int-uint) or [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns `1` if `n` is probably prime, `0` if it is definitely composite. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `n` is probably prime, `0` if it is definitely composite. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -897,11 +897,11 @@ lgamma(x) **Arguments** -- `x` — The number for which to compute the logarithm of the gamma function. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The number for which to compute the logarithm of the gamma function. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the logarithm of the gamma function of `x`. [`Float*`](/reference/data-types/float) +Returns the logarithm of the gamma function of `x`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -931,11 +931,11 @@ log(x) **Arguments** -- `x` — The number for which to compute the natural logarithm of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The number for which to compute the natural logarithm of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the natural logarithm of `x`. [`Float*`](/reference/data-types/float) +Returns the natural logarithm of `x`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -963,11 +963,11 @@ log10(x) **Arguments** -- `x` — Number for which to compute the decimal logarithm of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Number for which to compute the decimal logarithm of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the decimal logarithm of `x`. [`Float*`](/reference/data-types/float) +Returns the decimal logarithm of `x`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -996,11 +996,11 @@ log1p(x) **Arguments** -- `x` — Values from the interval: `-1 < x < +∞`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Values from the interval: `-1 < x < +∞`. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns values from the interval: -∞ < log1p(x) < +∞ [`Float64`](/reference/data-types/float) +Returns values from the interval: -∞ < log1p(x) < +∞ [`Float64`](/core/reference/data-types/float) **Examples** @@ -1028,11 +1028,11 @@ log2(x) **Arguments** -- `x` — The number for which to compute the binary logarithm of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The number for which to compute the binary logarithm of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the binary logarithm of `x`. [`Float*`](/reference/data-types/float) +Returns the binary logarithm of `x`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -1064,7 +1064,7 @@ pi() **Returned value** -Returns pi [`Float64`](/reference/data-types/float) +Returns pi [`Float64`](/core/reference/data-types/float) **Examples** @@ -1094,12 +1094,12 @@ pow(x, y) **Arguments** -- `x` — The base. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) -- `y` — The exponent. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The base. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) +- `y` — The exponent. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns x^y [`Float64`](/reference/data-types/float) +Returns x^y [`Float64`](/core/reference/data-types/float) **Examples** @@ -1131,16 +1131,16 @@ proportionsZTest(successes_x, successes_y, trials_x, trials_y, conf_level, pool_ **Arguments** -- `successes_x` — Number of successes in population x. [`UInt64`](/reference/data-types/int-uint) -- `successes_y` — Number of successes in population y. [`UInt64`](/reference/data-types/int-uint) -- `trials_x` — Number of trials in population x. [`UInt64`](/reference/data-types/int-uint) -- `trials_y` — Number of trials in population y. [`UInt64`](/reference/data-types/int-uint) -- `conf_level` — Confidence level for the test. [`Float64`](/reference/data-types/float) -- `pool_type` — Selection of pooling method for standard error estimation. Can be either 'unpooled' or 'pooled'. [`String`](/reference/data-types/string) +- `successes_x` — Number of successes in population x. [`UInt64`](/core/reference/data-types/int-uint) +- `successes_y` — Number of successes in population y. [`UInt64`](/core/reference/data-types/int-uint) +- `trials_x` — Number of trials in population x. [`UInt64`](/core/reference/data-types/int-uint) +- `trials_y` — Number of trials in population y. [`UInt64`](/core/reference/data-types/int-uint) +- `conf_level` — Confidence level for the test. [`Float64`](/core/reference/data-types/float) +- `pool_type` — Selection of pooling method for standard error estimation. Can be either 'unpooled' or 'pooled'. [`String`](/core/reference/data-types/string) **Returned value** -Returns a tuple containing: `z_stat` (Z statistic), `p_val` (P value), `ci_low` (lower confidence interval), `ci_high` (upper confidence interval). [`Tuple(Float64, Float64, Float64, Float64)`](/reference/data-types/tuple) +Returns a tuple containing: `z_stat` (Z statistic), `p_val` (P value), `ci_low` (lower confidence interval), `ci_high` (upper confidence interval). [`Tuple(Float64, Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** @@ -1170,11 +1170,11 @@ radians(x) **Arguments** -- `x` — Input in degrees. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — Input in degrees. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns value in radians [`Float64`](/reference/data-types/float) +Returns value in radians [`Float64`](/core/reference/data-types/float) **Examples** @@ -1203,11 +1203,11 @@ sigmoid(x) **Arguments** -- `x` — The input value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x` — The input value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the sigmoid of the input value, in the range (0, 1). [`Float64`](/reference/data-types/float) +Returns the sigmoid of the input value, in the range (0, 1). [`Float64`](/core/reference/data-types/float) **Examples** @@ -1235,11 +1235,11 @@ sign(x) **Arguments** -- `x` — Values from -∞ to +∞. [`(U)Int*`](/reference/data-types/int-uint) or [`Decimal*`](/reference/data-types/decimal) or [`Float*`](/reference/data-types/float) +- `x` — Values from -∞ to +∞. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Decimal*`](/core/reference/data-types/decimal) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `-1` for `x < 0`, `0` for `x = 0`, `1` for `x > 0`. [`Int8`](/reference/data-types/int-uint) +Returns `-1` for `x < 0`, `0` for `x = 0`, `1` for `x > 0`. [`Int8`](/core/reference/data-types/int-uint) **Examples** @@ -1287,7 +1287,7 @@ sin(x) **Arguments** -- `x` — The number whose sine will be returned. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The number whose sine will be returned. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** @@ -1319,11 +1319,11 @@ sinh(x) **Arguments** -- `x` — The angle, in radians. Values from the interval: -∞ < x < +∞. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The angle, in radians. Values from the interval: -∞ < x < +∞. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns values from the interval: -∞ < sinh(x) < +∞ [`Float64`](/reference/data-types/float) +Returns values from the interval: -∞ < sinh(x) < +∞ [`Float64`](/core/reference/data-types/float) **Examples** @@ -1351,11 +1351,11 @@ sqrt(x) **Arguments** -- `x` — The number for which to find the square root of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The number for which to find the square root of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the square root of x [`Float*`](/reference/data-types/float) +Returns the square root of x [`Float*`](/core/reference/data-types/float) **Examples** @@ -1383,11 +1383,11 @@ tan(x) **Arguments** -- `x` — The angle in radians. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The angle in radians. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the tangent of `x`. [`Float*`](/reference/data-types/float) +Returns the tangent of `x`. [`Float*`](/core/reference/data-types/float) **Examples** @@ -1415,11 +1415,11 @@ tanh(x) **Arguments** -- `x` — The angle in radians. Values from the interval: -∞ < x < +∞. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The angle in radians. Values from the interval: -∞ < x < +∞. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns values from the interval: -1 < tanh(x) < 1 [`Float*`](/reference/data-types/float) +Returns values from the interval: -1 < tanh(x) < 1 [`Float*`](/core/reference/data-types/float) **Examples** @@ -1447,11 +1447,11 @@ tgamma(x) **Arguments** -- `x` — The number for which to compute the gamma function of. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) +- `x` — The number for which to compute the gamma function of. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) **Returned value** -Returns the gamma function value [`Float*`](/reference/data-types/float) +Returns the gamma function value [`Float*`](/core/reference/data-types/float) **Examples** @@ -1482,14 +1482,14 @@ widthBucket(operand, low, high, count) **Arguments** -- `operand` — The value for which to determine the bucket. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) -- `low` — The lower bound of the histogram range. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) -- `high` — The upper bound of the histogram range. [`(U)Int8/16/32/64`](/reference/data-types/int-uint) -- `count` — The number of equal-width buckets. Cannot be zero. [`UInt8/16/32/64`](/reference/data-types/int-uint) +- `operand` — The value for which to determine the bucket. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) +- `low` — The lower bound of the histogram range. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) +- `high` — The upper bound of the histogram range. [`(U)Int8/16/32/64`](/core/reference/data-types/int-uint) +- `count` — The number of equal-width buckets. Cannot be zero. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns the bucket number as an integer. Returns 0 if operand < low, returns count+1 if operand >= high. [`UInt8/16/32/64`](/reference/data-types/int-uint) +Returns the bucket number as an integer. Returns 0 if operand < low, returns count+1 if operand >= high. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/regular-functions/nlp-functions.mdx b/core/reference/functions/regular-functions/nlp-functions.mdx similarity index 86% rename from reference/functions/regular-functions/nlp-functions.mdx rename to core/reference/functions/regular-functions/nlp-functions.mdx index 73fe3ea6..4acd4410 100644 --- a/reference/functions/regular-functions/nlp-functions.mdx +++ b/core/reference/functions/regular-functions/nlp-functions.mdx @@ -41,11 +41,11 @@ detectCharset(s) **Arguments** -- `s` — The text to analyze. [`String`](/reference/data-types/string) +- `s` — The text to analyze. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string containing the code of the detected character set [`String`](/reference/data-types/string) +Returns a string containing the code of the detected character set [`String`](/core/reference/data-types/string) **Examples** @@ -81,11 +81,11 @@ detectLanguage(s) **Arguments** -- `text_to_be_analyzed` — The text to analyze. [`String`](/reference/data-types/string) +- `text_to_be_analyzed` — The text to analyze. [`String`](/core/reference/data-types/string) **Returned value** -Returns the 2-letter ISO code of the detected language. Other possible results: `un` = unknown, can not detect any language, `other` = the detected language does not have 2 letter code. [`String`](/reference/data-types/string) +Returns the 2-letter ISO code of the detected language. Other possible results: `un` = unknown, can not detect any language, `other` = the detected language does not have 2 letter code. [`String`](/core/reference/data-types/string) **Examples** @@ -118,11 +118,11 @@ detectLanguageMixed(s) **Arguments** -- `s` — The text to analyze [`String`](/reference/data-types/string) +- `s` — The text to analyze [`String`](/core/reference/data-types/string) **Returned value** -Returns a map with keys which are 2-letter ISO codes and corresponding values which are a percentage of the text found for that language [`Map(String, Float32)`](/reference/data-types/map) +Returns a map with keys which are 2-letter ISO codes and corresponding values which are a percentage of the text found for that language [`Map(String, Float32)`](/core/reference/data-types/map) **Examples** @@ -156,11 +156,11 @@ detectLanguageUnknown('s') **Arguments** -- `s` — The text to analyze. [`String`](/reference/data-types/string) +- `s` — The text to analyze. [`String`](/core/reference/data-types/string) **Returned value** -Returns the 2-letter ISO code of the detected language. Other possible results: `un` = unknown, can not detect any language, `other` = the detected language does not have 2 letter code. [`String`](/reference/data-types/string) +Returns the 2-letter ISO code of the detected language. Other possible results: `un` = unknown, can not detect any language, `other` = the detected language does not have 2 letter code. [`String`](/core/reference/data-types/string) **Examples** @@ -199,11 +199,11 @@ detectTonality(s) **Arguments** -- `s` — The text to be analyzed. [`String`](/reference/data-types/string) +- `s` — The text to be analyzed. [`String`](/core/reference/data-types/string) **Returned value** -Returns the average sentiment value of the words in text [`Float32`](/reference/data-types/float) +Returns the average sentiment value of the words in text [`Float32`](/core/reference/data-types/float) **Examples** @@ -226,7 +226,7 @@ Introduced in: v21.9.0 Performs lemmatization on a given word. This function needs dictionaries to operate, which can be obtained from [github](https://github.com/vpodpecan/lemmagen3/tree/master/src/lemmagen3/models). -For more details on loading a dictionary from a local file see page ["Defining Dictionaries"](/reference/statements/create/dictionary/sources/local-file). +For more details on loading a dictionary from a local file see page ["Defining Dictionaries"](/core/reference/statements/create/dictionary/sources/local-file). This function is experimental and may change in unpredictable backwards-incompatible ways in future releases. @@ -241,12 +241,12 @@ lemmatize(lang, word) **Arguments** -- `lang` — Language which rules will be applied. [`String`](/reference/data-types/string) -- `word` — Lowercase word that needs to be lemmatized. [`String`](/reference/data-types/string) +- `lang` — Language which rules will be applied. [`String`](/core/reference/data-types/string) +- `word` — Lowercase word that needs to be lemmatized. [`String`](/core/reference/data-types/string) **Returned value** -Returns the lemmatized form of the word [`String`](/reference/data-types/string) +Returns the lemmatized form of the word [`String`](/core/reference/data-types/string) **Examples** @@ -278,12 +278,12 @@ stem(word, language) **Arguments** -- `word` — A single lowercase word (or array of words) to stem. Must be lowercase — uppercase characters produce undefined results. Accepts String, FixedString, Array(String), Array(FixedString), Array(Nullable(String)), or Array(Nullable(FixedString)). [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Array(String)`](/reference/data-types/array) or [`Array(FixedString)`](/reference/data-types/array) -- `language` — Language whose stemming rules will be applied. Use the two-letter ISO 639-1 code (e.g. 'en', 'de', 'fr'), see https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes. [`String`](/reference/data-types/string) +- `word` — A single lowercase word (or array of words) to stem. Must be lowercase — uppercase characters produce undefined results. Accepts String, FixedString, Array(String), Array(FixedString), Array(Nullable(String)), or Array(Nullable(FixedString)). [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Array(String)`](/core/reference/data-types/array) or [`Array(FixedString)`](/core/reference/data-types/array) +- `language` — Language whose stemming rules will be applied. Use the two-letter ISO 639-1 code (e.g. 'en', 'de', 'fr'), see https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes. [`String`](/core/reference/data-types/string) **Returned value** -The stemmed form of the word (String), or an array of stemmed words (Array(String)). [`String`](/reference/data-types/string) or [`Array(String)`](/reference/data-types/array) +The stemmed form of the word (String), or an array of stemmed words (Array(String)). [`String`](/core/reference/data-types/string) or [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -356,12 +356,12 @@ synonyms(ext_name, word) **Arguments** -- `ext_name` — Name of the extension in which search will be performed. [`String`](/reference/data-types/string) -- `word` — Word that will be searched in extension. [`String`](/reference/data-types/string) +- `ext_name` — Name of the extension in which search will be performed. [`String`](/core/reference/data-types/string) +- `word` — Word that will be searched in extension. [`String`](/core/reference/data-types/string) **Returned value** -Returns array of synonyms for the given word. [`Array(String)`](/reference/data-types/array) +Returns array of synonyms for the given word. [`Array(String)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/regular-functions/numeric-indexed-vector-functions.mdx b/core/reference/functions/regular-functions/numeric-indexed-vector-functions.mdx similarity index 79% rename from reference/functions/regular-functions/numeric-indexed-vector-functions.mdx rename to core/reference/functions/regular-functions/numeric-indexed-vector-functions.mdx index 0d2bfd89..f920ade3 100644 --- a/reference/functions/regular-functions/numeric-indexed-vector-functions.mdx +++ b/core/reference/functions/regular-functions/numeric-indexed-vector-functions.mdx @@ -113,11 +113,11 @@ numericIndexedVectorAllValueSum(v) **Arguments** -- `v` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns the sum. [`Float64`](/reference/data-types/float) +Returns the sum. [`Float64`](/core/reference/data-types/float) **Examples** @@ -148,11 +148,11 @@ numericIndexedVectorBuild(map) **Arguments** -- `map` — A mapping from index to value. [`Map`](/reference/data-types/map) +- `map` — A mapping from index to value. [`Map`](/core/reference/data-types/map) **Returned value** -Returns a NumericIndexedVector object. [`AggregateFunction`](/reference/data-types/aggregatefunction) +Returns a NumericIndexedVector object. [`AggregateFunction`](/core/reference/data-types/aggregatefunction) **Examples** @@ -183,11 +183,11 @@ numericIndexedVectorCardinality(v) **Arguments** -- `v` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns the number of unique indexes. [`UInt64`](/reference/data-types/int-uint) +Returns the number of unique indexes. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -218,12 +218,12 @@ numericIndexedVectorGetValue(v, i) **Arguments** -- `v` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) -- `i` — The index for which the value is to be retrieved. [`(U)Int*`](/reference/data-types/int-uint) +- `v` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `i` — The index for which the value is to be retrieved. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -A numeric value with the same type as the value type of NumericIndexedVector. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +A numeric value with the same type as the value type of NumericIndexedVector. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Examples** @@ -254,12 +254,12 @@ numericIndexedVectorPointwiseAdd(v1, v2) **Arguments** -- `v1` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) -- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v1` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a new numericIndexedVector object. [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +Returns a new numericIndexedVector object. [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Examples** @@ -295,12 +295,12 @@ numericIndexedVectorPointwiseDivide(v1, v2) **Arguments** -- `v1` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) -- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v1` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a new numericIndexedVector object. [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +Returns a new numericIndexedVector object. [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Examples** @@ -337,12 +337,12 @@ numericIndexedVectorPointwiseEqual(v1, v2) **Arguments** -- `v1` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) -- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v1` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a new numericIndexedVector object. [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +Returns a new numericIndexedVector object. [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Examples** @@ -379,12 +379,12 @@ numericIndexedVectorPointwiseGreater(v1, v2) **Arguments** -- `v1` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) -- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v1` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a new numericIndexedVector object. [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +Returns a new numericIndexedVector object. [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Examples** @@ -421,12 +421,12 @@ numericIndexedVectorPointwiseGreaterEqual(v1, v2) **Arguments** -- `v1` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) -- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v1` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a new numericIndexedVector object. [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +Returns a new numericIndexedVector object. [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Examples** @@ -463,12 +463,12 @@ numericIndexedVectorPointwiseLess(v1, v2) **Arguments** -- `v1` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) -- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v1` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a new numericIndexedVector object. [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +Returns a new numericIndexedVector object. [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Examples** @@ -505,12 +505,12 @@ numericIndexedVectorPointwiseLessEqual(v1, v2) **Arguments** -- `v1` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) -- `v2` — A numeric constant or numericIndexedVector object [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v1` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v2` — A numeric constant or numericIndexedVector object [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a new numericIndexedVector object. [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +Returns a new numericIndexedVector object. [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Examples** @@ -546,12 +546,12 @@ numericIndexedVectorPointwiseMultiply(v1, v2) **Arguments** -- `v1` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) -- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v1` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a new numericIndexedVector object. [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +Returns a new numericIndexedVector object. [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Examples** @@ -588,12 +588,12 @@ numericIndexedVectorPointwiseNotEqual(v1, v2) **Arguments** -- `v1` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) -- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v1` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a new numericIndexedVector object. [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +Returns a new numericIndexedVector object. [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Examples** @@ -629,12 +629,12 @@ numericIndexedVectorPointwiseSubtract(v1, v2) **Arguments** -- `v1` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) -- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v1` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v2` — A numeric constant or numericIndexedVector object. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a new numericIndexedVector object. [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +Returns a new numericIndexedVector object. [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Examples** @@ -671,11 +671,11 @@ numericIndexedVectorShortDebugString(v) **Arguments** -- `v` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a JSON string containing debug information. [`String`](/reference/data-types/string) +Returns a JSON string containing debug information. [`String`](/core/reference/data-types/string) **Examples** @@ -706,11 +706,11 @@ numericIndexedVectorToMap(v) **Arguments** -- `v` — [`numericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) +- `v` — [`numericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions#create-numeric-indexed-vector-object) **Returned value** -Returns a map with index-value pairs. [`Map`](/reference/data-types/map) +Returns a map with index-value pairs. [`Map`](/core/reference/data-types/map) **Examples** diff --git a/reference/functions/regular-functions/other-functions.mdx b/core/reference/functions/regular-functions/other-functions.mdx similarity index 84% rename from reference/functions/regular-functions/other-functions.mdx rename to core/reference/functions/regular-functions/other-functions.mdx index 4339a861..e46f6d64 100644 --- a/reference/functions/regular-functions/other-functions.mdx +++ b/core/reference/functions/regular-functions/other-functions.mdx @@ -42,7 +42,7 @@ FQDN() **Returned value** -Returns the fully qualified domain name of the ClickHouse server. [`String`](/reference/data-types/string) +Returns the fully qualified domain name of the ClickHouse server. [`String`](/core/reference/data-types/string) **Examples** @@ -62,7 +62,7 @@ SELECT fqdn() Introduced in: v1.1.0 -Interprets a [`UInt64`](/reference/data-types/int-uint) number as a MAC address in big endian format. +Interprets a [`UInt64`](/core/reference/data-types/int-uint) number as a MAC address in big endian format. Returns the corresponding MAC address in format `AA:BB:CC:DD:EE:FF` (colon-separated numbers in hexadecimal form) as string. @@ -74,11 +74,11 @@ MACNumToString(num) **Arguments** -- `num` — UInt64 number. [`UInt64`](/reference/data-types/int-uint) +- `num` — UInt64 number. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns a MAC address in format AA:BB:CC:DD:EE:FF. [`String`](/reference/data-types/string) +Returns a MAC address in format AA:BB:CC:DD:EE:FF. [`String`](/core/reference/data-types/string) **Examples** @@ -108,11 +108,11 @@ MACStringToNum(s) **Arguments** -- `s` — MAC address string. [`String`](/reference/data-types/string) +- `s` — MAC address string. [`String`](/core/reference/data-types/string) **Returned value** -Returns a UInt64 number. [`UInt64`](/reference/data-types/int-uint) +Returns a UInt64 number. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -141,11 +141,11 @@ MACStringToOUI(s) **Arguments** -- `s` — MAC address string. [`String`](/reference/data-types/string) +- `s` — MAC address string. [`String`](/core/reference/data-types/string) **Returned value** -First three octets as UInt64 number. [`UInt64`](/reference/data-types/int-uint) +First three octets as UInt64 number. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -181,7 +181,7 @@ authenticatedUser() **Returned value** -The name of the authenticated user. [`String`](/reference/data-types/string) +The name of the authenticated user. [`String`](/core/reference/data-types/string) **Examples** @@ -214,14 +214,14 @@ bar(x, min, max[, width]) **Arguments** -- `x` — Size to display. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `min` — The minimum value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `max` — The maximum value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `width` — Optional. The width of the bar in characters. The default is `80`. [`const (U)Int*`](/reference/data-types/int-uint) or [`const Float*`](/reference/data-types/float) or [`const Decimal`](/reference/data-types/decimal) +- `x` — Size to display. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `min` — The minimum value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `max` — The maximum value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `width` — Optional. The width of the bar in characters. The default is `80`. [`const (U)Int*`](/core/reference/data-types/int-uint) or [`const Float*`](/core/reference/data-types/float) or [`const Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a unicode-art bar string. [`String`](/reference/data-types/string) +Returns a unicode-art bar string. [`String`](/core/reference/data-types/string) **Examples** @@ -270,7 +270,7 @@ ORDER BY h ASC Introduced in: v1.1.0 -Returns a monotonically increasing sequence number of the [block](/resources/contribute/architecture#block) containing the row. +Returns a monotonically increasing sequence number of the [block](/resources/develop-contribute/introduction/architecture#block) containing the row. The returned block number is updated on a best-effort basis, i.e. it may not be fully accurate. @@ -286,7 +286,7 @@ blockNumber() **Returned value** -Sequence number of the data block where the row is located. [`UInt64`](/reference/data-types/int-uint) +Sequence number of the data block where the row is located. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -339,11 +339,11 @@ blockSerializedSize(x1[, x2[, ...]]) **Arguments** -- `x1[, x2, ...]` — Any number of values for which to get the uncompressed size of the block. [`Any`](/reference/data-types) +- `x1[, x2, ...]` — Any number of values for which to get the uncompressed size of the block. [`Any`](/core/reference/data-types) **Returned value** -Returns the number of bytes that will be written to disk for a block of values without compression. [`UInt64`](/reference/data-types/int-uint) +Returns the number of bytes that will be written to disk for a block of values without compression. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -363,7 +363,7 @@ SELECT blockSerializedSize(maxState(1)) AS x; Introduced in: v1.1.0 -In ClickHouse, queries are processed in [blocks](/resources/contribute/architecture#block) (chunks). +In ClickHouse, queries are processed in [blocks](/resources/develop-contribute/introduction/architecture#block) (chunks). This function returns the size (row count) of the block the function is called on. @@ -379,7 +379,7 @@ blockSize() **Returned value** -Returns the number of rows in the current block. [`UInt64`](/reference/data-types/int-uint) +Returns the number of rows in the current block. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -421,7 +421,7 @@ buildId() **Returned value** -Returns the build ID. [`String`](/reference/data-types/string) +Returns the build ID. [`String`](/core/reference/data-types/string) **Examples** @@ -454,11 +454,11 @@ byteSize(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — Values of any data type for which to estimate the uncompressed byte size. [`Any`](/reference/data-types) +- `arg1[, arg2, ...]` — Values of any data type for which to estimate the uncompressed byte size. [`Any`](/core/reference/data-types) **Returned value** -Returns an estimation of the byte size of the arguments in memory. [`UInt64`](/reference/data-types/int-uint) +Returns an estimation of the byte size of the arguments in memory. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -532,12 +532,12 @@ catboostEvaluate(path_to_model, feature_1[, feature_2, ..., feature_n]) **Arguments** -- `path_to_model` — Path to catboost model. [`const String`](/reference/data-types/string) -- `feature` — One or more model features/arguments. [`Float*`](/reference/data-types/float) +- `path_to_model` — Path to catboost model. [`const String`](/core/reference/data-types/string) +- `feature` — One or more model features/arguments. [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the model evaluation result. [`Float64`](/reference/data-types/float) +Returns the model evaluation result. [`Float64`](/core/reference/data-types/float) **Examples** @@ -590,12 +590,12 @@ colorOKLABToSRGB(tuple [, gamma]) **Arguments** -- `tuple` — A tuple of three numeric values `L`, `a`, `b`, where `L` is in the range `[0...1]`. [`Tuple(Float64, Float64, Float64)`](/reference/data-types/tuple) -- `gamma` — Optional. The exponent that is used to transform linear sRGB back to sRGB by applying `(x ^ (1 / gamma)) * 255` for each channel `x`. Defaults to `2.2`. [`Float64`](/reference/data-types/float) +- `tuple` — A tuple of three numeric values `L`, `a`, `b`, where `L` is in the range `[0...1]`. [`Tuple(Float64, Float64, Float64)`](/core/reference/data-types/tuple) +- `gamma` — Optional. The exponent that is used to transform linear sRGB back to sRGB by applying `(x ^ (1 / gamma)) * 255` for each channel `x`. Defaults to `2.2`. [`Float64`](/core/reference/data-types/float) **Returned value** -Returns a tuple (R, G, B) representing sRGB color values. [`Tuple(Float64, Float64, Float64)`](/reference/data-types/tuple) +Returns a tuple (R, G, B) representing sRGB color values. [`Tuple(Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** @@ -657,12 +657,12 @@ colorOKLCHToSRGB(tuple [, gamma]) **Arguments** -- `tuple` — A tuple of three numeric values `L`, `C`, `H`, where `L` is in the range `[0...1]`, `C >= 0` and `H` is in the range `[0...360]`. [`Tuple(Float64, Float64, Float64)`](/reference/data-types/tuple) -- `gamma` — Optional. The exponent that is used to transform linear sRGB back to sRGB by applying `(x ^ (1 / gamma)) * 255` for each channel `x`. Defaults to `2.2`. [`Float64`](/reference/data-types/float) +- `tuple` — A tuple of three numeric values `L`, `C`, `H`, where `L` is in the range `[0...1]`, `C >= 0` and `H` is in the range `[0...360]`. [`Tuple(Float64, Float64, Float64)`](/core/reference/data-types/tuple) +- `gamma` — Optional. The exponent that is used to transform linear sRGB back to sRGB by applying `(x ^ (1 / gamma)) * 255` for each channel `x`. Defaults to `2.2`. [`Float64`](/core/reference/data-types/float) **Returned value** -Returns a tuple (R, G, B) representing sRGB color values. [`Tuple(Float64, Float64, Float64)`](/reference/data-types/tuple) +Returns a tuple (R, G, B) representing sRGB color values. [`Tuple(Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** @@ -718,12 +718,12 @@ colorSRGBToOKLAB(tuple[, gamma]) **Arguments** -- `tuple` — Tuple of three values R, G, B in the range `[0...255]`. [`Tuple(UInt8, UInt8, UInt8)`](/reference/data-types/tuple) -- `gamma` — Optional. Exponent that is used to linearize sRGB by applying `(x / 255)^gamma` to each channel `x`. Defaults to `2.2`. [`Float64`](/reference/data-types/float) +- `tuple` — Tuple of three values R, G, B in the range `[0...255]`. [`Tuple(UInt8, UInt8, UInt8)`](/core/reference/data-types/tuple) +- `gamma` — Optional. Exponent that is used to linearize sRGB by applying `(x / 255)^gamma` to each channel `x`. Defaults to `2.2`. [`Float64`](/core/reference/data-types/float) **Returned value** -Returns a tuple (L, a, b) representing the OKLAB color space values. [`Tuple(Float64, Float64, Float64)`](/reference/data-types/tuple) +Returns a tuple (L, a, b) representing the OKLAB color space values. [`Tuple(Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** @@ -769,12 +769,12 @@ colorSRGBToOKLCH(tuple[, gamma]) **Arguments** -- `tuple` — Tuple of three values R, G, B in the range `[0...255]`. [`Tuple(UInt8, UInt8, UInt8)`](/reference/data-types/tuple) -- `gamma` — Optional. Exponent that is used to linearize sRGB by applying `(x / 255)^gamma` to each channel `x`. Defaults to `2.2`. [`Float64`](/reference/data-types/float) +- `tuple` — Tuple of three values R, G, B in the range `[0...255]`. [`Tuple(UInt8, UInt8, UInt8)`](/core/reference/data-types/tuple) +- `gamma` — Optional. Exponent that is used to linearize sRGB by applying `(x / 255)^gamma` to each channel `x`. Defaults to `2.2`. [`Float64`](/core/reference/data-types/float) **Returned value** -Returns a tuple (L, C, H) representing the OKLCH color space values. [`Tuple(Float64, Float64, Float64)`](/reference/data-types/tuple) +Returns a tuple (L, C, H) representing the OKLCH color space values. [`Tuple(Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** @@ -811,7 +811,7 @@ connectionId() **Returned value** -Returns the connection ID of the current client. [`UInt64`](/reference/data-types/int-uint) +Returns the connection ID of the current client. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -855,11 +855,11 @@ countDigits(x) **Arguments** -- `x` — An integer or decimal value. [`(U)Int*`](/reference/data-types/int-uint) or [`Decimal`](/reference/data-types/decimal) +- `x` — An integer or decimal value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the number of digits needed to represent `x`. [`UInt8`](/reference/data-types/int-uint) +Returns the number of digits needed to represent `x`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -884,7 +884,7 @@ Introduced in: v1.1.0 Returns the name of the current database. Useful in table engine parameters of `CREATE TABLE` queries where you need to specify the database. -Also see the [`SET` statement](/reference/statements/use). +Also see the [`SET` statement](/core/reference/statements/use). **Syntax** @@ -901,7 +901,7 @@ currentDatabase() **Returned value** -Returns the current database name. [`String`](/reference/data-types/string) +Returns the current database name. [`String`](/core/reference/data-types/string) **Examples** @@ -947,7 +947,7 @@ currentProfiles() **Returned value** -Returns an array of setting profiles for the current user. [`Array(String)`](/reference/data-types/array) +Returns an array of setting profiles for the current user. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -1016,7 +1016,7 @@ currentRoles() **Returned value** -Returns an array of the roles which are assigned to the current user. [`Array(String)`](/reference/data-types/array) +Returns an array of the roles which are assigned to the current user. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -1043,7 +1043,7 @@ Same as function [`currentDatabase`](#currentDatabase) but Function `currentSchemas` only exists for compatibility with PostgreSQL. Please use `currentDatabase` instead. -Also see the [`SET` statement](/reference/statements/use). +Also see the [`SET` statement](/core/reference/statements/use). **Syntax** @@ -1056,11 +1056,11 @@ currentSchemas(bool) **Arguments** -- `bool` — A boolean value, which is ignored. [`Bool`](/reference/data-types/boolean) +- `bool` — A boolean value, which is ignored. [`Bool`](/core/reference/data-types/boolean) **Returned value** -Returns a single-element array with the name of the current database. [`Array(String)`](/reference/data-types/array) +Returns a single-element array with the name of the current database. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -1098,7 +1098,7 @@ currentUser() **Returned value** -Returns the name of the current user, otherwise the login of the user who initiated the query. [`String`](/reference/data-types/string) +Returns the name of the current user, otherwise the login of the user who initiated the query. [`String`](/core/reference/data-types/string) **Examples** @@ -1144,7 +1144,7 @@ defaultProfiles() **Returned value** -Returns an array of default setting profile names for the current user. [`Array(String)`](/reference/data-types/array) +Returns an array of default setting profile names for the current user. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -1179,7 +1179,7 @@ defaultRoles() **Returned value** -Returns an array of default roles for the current user. [`Array(String)`](/reference/data-types/array) +Returns an array of default roles for the current user. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -1210,11 +1210,11 @@ defaultValueOfArgumentType(expression) **Arguments** -- `expression` — Arbitrary type of value or an expression that results in a value of an arbitrary type. [`Any`](/reference/data-types) +- `expression` — Arbitrary type of value or an expression that results in a value of an arbitrary type. [`Any`](/core/reference/data-types) **Returned value** -Returns `0` for numbers, an empty string for strings or `NULL` for Nullable types. [`UInt8`](/reference/data-types/int-uint) or [`String`](/reference/data-types/string) or [`NULL`](/reference/syntax#null) +Returns `0` for numbers, an empty string for strings or `NULL` for Nullable types. [`UInt8`](/core/reference/data-types/int-uint) or [`String`](/core/reference/data-types/string) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -1257,11 +1257,11 @@ defaultValueOfTypeName(type) **Arguments** -- `type` — A string representing a type name. [`String`](/reference/data-types/string) +- `type` — A string representing a type name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the default value for the given type name: `0` for numbers, an empty string for strings, or `NULL` for Nullable [`UInt8`](/reference/data-types/int-uint) or [`String`](/reference/data-types/string) or [`NULL`](/reference/syntax#null) +Returns the default value for the given type name: `0` for numbers, an empty string for strings, or `NULL` for Nullable [`UInt8`](/core/reference/data-types/int-uint) or [`String`](/core/reference/data-types/string) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -1293,7 +1293,7 @@ SELECT defaultValueOfTypeName('Nullable(Int8)'); Introduced in: v22.11.0 -Returns the value of `display_name` from [config](/concepts/features/configuration/server-config/configuration-files) or the server's Fully Qualified Domain Name (FQDN) if not set. +Returns the value of `display_name` from [config](/core/concepts/features/configuration/server-config/configuration-files) or the server's Fully Qualified Domain Name (FQDN) if not set. **Syntax** @@ -1307,7 +1307,7 @@ displayName() **Returned value** -Returns the value of `display_name` from config or server FQDN if not set. [`String`](/reference/data-types/string) +Returns the value of `display_name` from config or server FQDN if not set. [`String`](/core/reference/data-types/string) **Examples** @@ -1337,11 +1337,11 @@ dumpColumnStructure(x) **Arguments** -- `x` — Value for which to get the description of. [`Any`](/reference/data-types) +- `x` — Value for which to get the description of. [`Any`](/core/reference/data-types) **Returned value** -Returns a description of the column structure used for representing the value. [`String`](/reference/data-types/string) +Returns a description of the column structure used for representing the value. [`String`](/core/reference/data-types/string) **Examples** @@ -1375,7 +1375,7 @@ enabledProfiles() **Returned value** -Returns an array of setting profile names which are enabled for the current user. [`Array(String)`](/reference/data-types/array) +Returns an array of setting profile names which are enabled for the current user. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -1410,7 +1410,7 @@ enabledRoles() **Returned value** -Returns an array of role names which are enabled for the current user. [`Array(String)`](/reference/data-types/array) +Returns an array of role names which are enabled for the current user. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -1441,11 +1441,11 @@ errorCodeToName(error_code) **Arguments** -- `error_code` — ClickHouse error code. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `error_code` — ClickHouse error code. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns the textual name of `error_code`. [`String`](/reference/data-types/string) +Returns the textual name of `error_code`. [`String`](/core/reference/data-types/string) **Examples** @@ -1468,7 +1468,7 @@ Introduced in: v21.3.0 Reads a file as a string and loads the data into the specified column. The file content is not interpreted. -Also see the [`file`](/reference/functions/table-functions/file) table function. +Also see the [`file`](/core/reference/functions/table-functions/file) table function. **Syntax** @@ -1479,12 +1479,12 @@ file(path[, default]) **Arguments** -- `path` — The path of the file relative to the `user_files_path`. Supports wildcards `*`, `**`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` are numbers and `'abc', 'def'` are strings. [`String`](/reference/data-types/string) -- `default` — The value returned if the file does not exist or cannot be accessed. [`String`](/reference/data-types/string) or [`NULL`](/reference/syntax#null) +- `path` — The path of the file relative to the `user_files_path`. Supports wildcards `*`, `**`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` are numbers and `'abc', 'def'` are strings. [`String`](/core/reference/data-types/string) +- `default` — The value returned if the file does not exist or cannot be accessed. [`String`](/core/reference/data-types/string) or [`NULL`](/core/reference/syntax#null) **Returned value** -Returns the file content as a string. [`String`](/reference/data-types/string) +Returns the file content as a string. [`String`](/core/reference/data-types/string) **Examples** @@ -1503,7 +1503,7 @@ INSERT INTO table SELECT file('a.txt'), file('b.txt'); Introduced in: v20.1.0 Returns the amount of free space in the filesystem hosting the database persistence. -The returned value is always smaller than the total free space ([`filesystemUnreserved`](/reference/functions/regular-functions/other-functions#filesystemUnreserved)) because some space is reserved for the operating system. +The returned value is always smaller than the total free space ([`filesystemUnreserved`](/core/reference/functions/regular-functions/other-functions#filesystemUnreserved)) because some space is reserved for the operating system. **Syntax** @@ -1514,11 +1514,11 @@ filesystemAvailable([disk_name]) **Arguments** -- `disk_name` — Optional. The disk name to find the amount of free space for. If omitted, uses the default disk. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `disk_name` — Optional. The disk name to find the amount of free space for. If omitted, uses the default disk. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the amount of remaining space available in bytes. [`UInt64`](/reference/data-types/int-uint) +Returns the amount of remaining space available in bytes. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1539,7 +1539,7 @@ SELECT formatReadableSize(filesystemAvailable()) AS "Available space"; Introduced in: v20.1.0 Returns the capacity of the filesystem in bytes. -Needs the [path](/reference/settings/server-settings/settings#path) to the data directory to be configured. +Needs the [path](/core/reference/settings/server-settings/settings#path) to the data directory to be configured. **Syntax** @@ -1549,11 +1549,11 @@ filesystemCapacity([disk_name]) **Arguments** -- `disk_name` — Optional. The disk name to get the capacity for. If omitted, uses the default disk. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `disk_name` — Optional. The disk name to get the capacity for. If omitted, uses the default disk. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the capacity of the filesystem in bytes. [`UInt64`](/reference/data-types/int-uint) +Returns the capacity of the filesystem in bytes. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1584,11 +1584,11 @@ filesystemUnreserved([disk_name]) **Arguments** -- `disk_name` — Optional. The disk name for which to find the total amount of free space. If omitted, uses the default disk. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `disk_name` — Optional. The disk name for which to find the total amount of free space. If omitted, uses the default disk. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the amount of free space in bytes. [`UInt64`](/reference/data-types/int-uint) +Returns the amount of free space in bytes. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1608,7 +1608,7 @@ SELECT formatReadableSize(filesystemUnreserved()) AS "Free space"; Introduced in: v1.1.0 -Given an aggregation state, this function returns the result of aggregation (or the finalized state when using a [-State](/reference/functions/aggregate-functions/combinators#-state) combinator). +Given an aggregation state, this function returns the result of aggregation (or the finalized state when using a [-State](/core/reference/functions/aggregate-functions/combinators#-state) combinator). **Syntax** @@ -1618,11 +1618,11 @@ finalizeAggregation(state) **Arguments** -- `state` — State of aggregation. [`AggregateFunction`](/reference/data-types/aggregatefunction) +- `state` — State of aggregation. [`AggregateFunction`](/core/reference/data-types/aggregatefunction) **Returned value** -Returns the finalized result of aggregation. [`Any`](/reference/data-types) +Returns the finalized result of aggregation. [`Any`](/core/reference/data-types) **Examples** @@ -1681,7 +1681,7 @@ flipCoordinates(geometry) **Returned value** -The geometry with flipped coordinates. The return type matches the input type. [`Point`](/reference/data-types/geo#point) or [`Ring`](/reference/data-types/geo#ring) or [`Polygon`](/reference/data-types/geo#polygon) or [`MultiPolygon`](/reference/data-types/geo#multipolygon) or [`LineString`](/reference/data-types/geo#linestring) or [`MultiLineString`](/reference/data-types/geo#multilinestring) or [`Geometry`](/reference/data-types/geo) +The geometry with flipped coordinates. The return type matches the input type. [`Point`](/core/reference/data-types/geo#point) or [`Ring`](/core/reference/data-types/geo#ring) or [`Polygon`](/core/reference/data-types/geo#polygon) or [`MultiPolygon`](/core/reference/data-types/geo#multipolygon) or [`LineString`](/core/reference/data-types/geo#linestring) or [`MultiLineString`](/core/reference/data-types/geo#multilinestring) or [`Geometry`](/core/reference/data-types/geo) **Examples** @@ -1750,11 +1750,11 @@ formatQuery(query) **Arguments** -- `query` — The SQL query to be formatted. [String](/reference/data-types/string) +- `query` — The SQL query to be formatted. [String](/core/reference/data-types/string) **Returned value** -The formatted query [`String`](/reference/data-types/string) +The formatted query [`String`](/core/reference/data-types/string) **Examples** @@ -1787,11 +1787,11 @@ formatQueryOrNull(query) **Arguments** -- `query` — The SQL query to be formatted. [String](/reference/data-types/string) +- `query` — The SQL query to be formatted. [String](/core/reference/data-types/string) **Returned value** -The formatted query [`String`](/reference/data-types/string) +The formatted query [`String`](/core/reference/data-types/string) **Examples** @@ -1824,11 +1824,11 @@ formatQuerySingleLine(query) **Arguments** -- `query` — The SQL query to be formatted. [String](/reference/data-types/string) +- `query` — The SQL query to be formatted. [String](/core/reference/data-types/string) **Returned value** -The formatted query [`String`](/reference/data-types/string) +The formatted query [`String`](/core/reference/data-types/string) **Examples** @@ -1857,11 +1857,11 @@ formatQuerySingleLineOrNull(query) **Arguments** -- `query` — The SQL query to be formatted. [`String`](/reference/data-types/string) +- `query` — The SQL query to be formatted. [`String`](/core/reference/data-types/string) **Returned value** -The formatted query [`String`](/reference/data-types/string) +The formatted query [`String`](/core/reference/data-types/string) **Examples** @@ -1892,11 +1892,11 @@ formatReadableDecimalSize(x) **Arguments** -- `x` — Size in bytes. [`UInt64`](/reference/data-types/int-uint) +- `x` — Size in bytes. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns a readable, rounded size with suffix as a string. [`String`](/reference/data-types/string) +Returns a readable, rounded size with suffix as a string. [`String`](/core/reference/data-types/string) **Examples** @@ -1935,11 +1935,11 @@ formatReadableQuantity(x) **Arguments** -- `x` — A number to format. [`UInt64`](/reference/data-types/int-uint) +- `x` — A number to format. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns a rounded number with suffix as a string. [`String`](/reference/data-types/string) +Returns a rounded number with suffix as a string. [`String`](/core/reference/data-types/string) **Examples** @@ -1980,11 +1980,11 @@ formatReadableSize(x) **Arguments** -- `x` — Size in bytes. [`UInt64`](/reference/data-types/int-uint) +- `x` — Size in bytes. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns a readable, rounded size with suffix as a string. [`String`](/reference/data-types/string) +Returns a readable, rounded size with suffix as a string. [`String`](/core/reference/data-types/string) **Examples** @@ -2022,13 +2022,13 @@ formatReadableTimeDelta(column[, maximum_unit, minimum_unit]) **Arguments** -- `column` — A column with a numeric time delta. [`Float64`](/reference/data-types/float) -- `maximum_unit` — Optional. Maximum unit to show. Acceptable values: `nanoseconds`, `microseconds`, `milliseconds`, `seconds`, `minutes`, `hours`, `days`, `months`, `years`. Default value: `years`. [`const String`](/reference/data-types/string) -- `minimum_unit` — Optional. Minimum unit to show. All smaller units are truncated. Acceptable values: `nanoseconds`, `microseconds`, `milliseconds`, `seconds`, `minutes`, `hours`, `days`, `months`, `years`. If explicitly specified value is bigger than `maximum_unit`, an exception will be thrown. Default value: `seconds` if `maximum_unit` is `seconds` or bigger, `nanoseconds` otherwise. [`const String`](/reference/data-types/string) +- `column` — A column with a numeric time delta. [`Float64`](/core/reference/data-types/float) +- `maximum_unit` — Optional. Maximum unit to show. Acceptable values: `nanoseconds`, `microseconds`, `milliseconds`, `seconds`, `minutes`, `hours`, `days`, `months`, `years`. Default value: `years`. [`const String`](/core/reference/data-types/string) +- `minimum_unit` — Optional. Minimum unit to show. All smaller units are truncated. Acceptable values: `nanoseconds`, `microseconds`, `milliseconds`, `seconds`, `minutes`, `hours`, `days`, `months`, `years`. If explicitly specified value is bigger than `maximum_unit`, an exception will be thrown. Default value: `seconds` if `maximum_unit` is `seconds` or bigger, `nanoseconds` otherwise. [`const String`](/core/reference/data-types/string) **Returned value** -Returns a time delta as a string. [`String`](/reference/data-types/string) +Returns a time delta as a string. [`String`](/core/reference/data-types/string) **Examples** @@ -2078,11 +2078,11 @@ fuzzQuery(query) **Arguments** -- `query` — The SQL query to be fuzzed. [String](/reference/data-types/string) +- `query` — The SQL query to be fuzzed. [String](/core/reference/data-types/string) **Returned value** -The fuzzed query string [`String`](/reference/data-types/string) +The fuzzed query string [`String`](/core/reference/data-types/string) **Examples** @@ -2110,12 +2110,12 @@ generateRandomStructure([number_of_columns, seed]) **Arguments** -- `number_of_columns` — The desired number of columns in the resultant table structure. If set to 0 or `Null`, the number of columns will be random from 1 to 128. Default value: `Null`. [`UInt64`](/reference/data-types/int-uint) -- `seed` — Random seed to produce stable results. If seed is not specified or set to `Null`, it is randomly generated. [`UInt64`](/reference/data-types/int-uint) +- `number_of_columns` — The desired number of columns in the resultant table structure. If set to 0 or `Null`, the number of columns will be random from 1 to 128. Default value: `Null`. [`UInt64`](/core/reference/data-types/int-uint) +- `seed` — Random seed to produce stable results. If seed is not specified or set to `Null`, it is randomly generated. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Randomly generated table structure. [`String`](/reference/data-types/string) +Randomly generated table structure. [`String`](/core/reference/data-types/string) **Examples** @@ -2156,7 +2156,7 @@ Introduced in: v25.1.0 Generates and returns sequential numbers starting from the previous counter value. This function takes a string argument - a series identifier, and an optional starting value. The server should be configured with Keeper. -The series are stored in Keeper nodes under the path, which can be configured in [`series_keeper_path`](/reference/settings/server-settings/settings#series_keeper_path) in the server configuration. +The series are stored in Keeper nodes under the path, which can be configured in [`series_keeper_path`](/core/reference/settings/server-settings/settings#series_keeper_path) in the server configuration. **Syntax** @@ -2167,12 +2167,12 @@ generateSerialID(series_identifier[, start_value]) **Arguments** -- `series_identifier` — Series identifier [`const String`](/reference/data-types/string) -- `start_value` — Optional. Starting value for the counter. Defaults to 0. Note: this value is only used when creating a new series and is ignored if the series already exists [`UInt*`](/reference/data-types/int-uint) +- `series_identifier` — Series identifier [`const String`](/core/reference/data-types/string) +- `start_value` — Optional. Starting value for the counter. Defaults to 0. Note: this value is only used when creating a new series and is ignored if the series already exists [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns sequential numbers starting from the previous counter value. [`UInt64`](/reference/data-types/int-uint) +Returns sequential numbers starting from the previous counter value. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2266,11 +2266,11 @@ getClientHTTPHeader(name) **Arguments** -- `name` — The HTTP header name. [`String`](/reference/data-types/string) +- `name` — The HTTP header name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the value of the header. [`String`](/reference/data-types/string) +Returns the value of the header. [`String`](/core/reference/data-types/string) **Examples** @@ -2291,7 +2291,7 @@ SELECT getClientHTTPHeader('Content-Type'); Introduced in: v20.1.0 Returns the value of a macro from the server configuration file. -Macros are defined in the [``](/reference/settings/server-settings/settings#macros) section of the configuration file and can be used to distinguish servers by convenient names even if they have complicated hostnames. +Macros are defined in the [``](/core/reference/settings/server-settings/settings#macros) section of the configuration file and can be used to distinguish servers by convenient names even if they have complicated hostnames. If the function is executed in the context of a distributed table, it generates a normal column with values relevant to each shard. **Syntax** @@ -2302,11 +2302,11 @@ getMacro(name) **Arguments** -- `name` — The name of the macro to retrieve. [`const String`](/reference/data-types/string) +- `name` — The name of the macro to retrieve. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the value of the specified macro. [`String`](/reference/data-types/string) +Returns the value of the specified macro. [`String`](/core/reference/data-types/string) **Examples** @@ -2336,7 +2336,7 @@ getMaxTableNameLengthForDatabase(database_name) **Arguments** -- `database_name` — The name of the specified database. [`String`](/reference/data-types/string) +- `database_name` — The name of the specified database. [`String`](/core/reference/data-types/string) **Returned value** @@ -2370,7 +2370,7 @@ getMergeTreeSetting(setting_name) **Arguments** -- `setting_name` — The setting name. [`String`](/reference/data-types/string) +- `setting_name` — The setting name. [`String`](/core/reference/data-types/string) **Returned value** @@ -2408,7 +2408,7 @@ getOSKernelVersion() **Returned value** -Returns the current OS kernel version. [`String`](/reference/data-types/string) +Returns the current OS kernel version. [`String`](/core/reference/data-types/string) **Examples** @@ -2439,11 +2439,11 @@ getServerPort(port_name) **Arguments** -- `port_name` — The name of the port. [`String`](/reference/data-types/string) +- `port_name` — The name of the port. [`String`](/core/reference/data-types/string) **Returned value** -Returns the server port number. [`UInt16`](/reference/data-types/int-uint) +Returns the server port number. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -2474,11 +2474,11 @@ getServerSetting(setting_name') **Arguments** -- `setting_name` — The server setting name. [`String`](/reference/data-types/string) +- `setting_name` — The server setting name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the server setting's current value. [`Any`](/reference/data-types) +Returns the server setting's current value. [`Any`](/core/reference/data-types) **Examples** @@ -2508,11 +2508,11 @@ getSetting(setting_name) **Arguments** -- `setting_Name` — The setting name. [`const String`](/reference/data-types/string) +- `setting_Name` — The setting name. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the setting's current value. [`Any`](/reference/data-types) +Returns the setting's current value. [`Any`](/core/reference/data-types) **Examples** @@ -2547,7 +2547,7 @@ getSettingOrDefault(setting_name, default_value) **Arguments** -- `setting_name` — The setting name. [`String`](/reference/data-types/string) +- `setting_name` — The setting name. [`String`](/core/reference/data-types/string) - `default_value` — Value to return if custom_setting is not set. Value may be of any data type or Null. **Returned value** @@ -2574,7 +2574,7 @@ NULL Introduced in: v1.1.0 -Returns the number of fields in the given [`Enum`](/reference/data-types/enum). +Returns the number of fields in the given [`Enum`](/core/reference/data-types/enum). **Syntax** @@ -2584,11 +2584,11 @@ getSizeOfEnumType(x) **Arguments** -- `x` — Value of type `Enum`. [`Enum`](/reference/data-types/enum) +- `x` — Value of type `Enum`. [`Enum`](/core/reference/data-types/enum) **Returned value** -Returns the number of fields with `Enum` input values. [`UInt8/16`](/reference/data-types/int-uint) +Returns the number of fields with `Enum` input values. [`UInt8/16`](/core/reference/data-types/int-uint) **Examples** @@ -2652,11 +2652,11 @@ getTypeSerializationStreams(col) **Arguments** -- `col` — Column or string representation of a data-type from which the data type will be detected. [`Any`](/reference/data-types) +- `col` — Column or string representation of a data-type from which the data type will be detected. [`Any`](/core/reference/data-types) **Returned value** -Returns an array with all the serialization sub-stream paths. [`Array(String)`](/reference/data-types/array) +Returns an array with all the serialization sub-stream paths. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -2695,11 +2695,11 @@ globalVariable(name) **Arguments** -- `name` — Global variable name. [`String`](/reference/data-types/string) +- `name` — Global variable name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the value of variable `name`. [`Any`](/reference/data-types) +Returns the value of variable `name`. [`Any`](/core/reference/data-types) **Examples** @@ -2730,16 +2730,16 @@ hasColumnInTable([hostname[, username[, password]],]database, table, column) **Arguments** -- `database` — Name of the database. [`const String`](/reference/data-types/string) -- `table` — Name of the table. [`const String`](/reference/data-types/string) -- `column` — Name of the column. [`const String`](/reference/data-types/string) -- `hostname` — Optional. Remote server name to perform the check on. [`const String`](/reference/data-types/string) -- `username` — Optional. Username for remote server. [`const String`](/reference/data-types/string) -- `password` — Optional. Password for remote server. [`const String`](/reference/data-types/string) +- `database` — Name of the database. [`const String`](/core/reference/data-types/string) +- `table` — Name of the table. [`const String`](/core/reference/data-types/string) +- `column` — Name of the column. [`const String`](/core/reference/data-types/string) +- `hostname` — Optional. Remote server name to perform the check on. [`const String`](/core/reference/data-types/string) +- `username` — Optional. Username for remote server. [`const String`](/core/reference/data-types/string) +- `password` — Optional. Password for remote server. [`const String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the given column exists, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the given column exists, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2783,7 +2783,7 @@ hasThreadFuzzer() **Returned value** -Returns whether Thread Fuzzer is effective. [`UInt8`](/reference/data-types/int-uint) +Returns whether Thread Fuzzer is effective. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2821,7 +2821,7 @@ highlightQuery(query) **Returned value** -An array of named tuples `(begin UInt64, end UInt64, type Enum8(...))` representing highlighted ranges. [`Array(Tuple(begin UInt64, end UInt64, type Enum8(...)))`](/reference/data-types/array) +An array of named tuples `(begin UInt64, end UInt64, type Enum8(...))` representing highlighted ranges. [`Array(Tuple(begin UInt64, end UInt64, type Enum8(...)))`](/core/reference/data-types/array) **Examples** @@ -2859,7 +2859,7 @@ hostName() **Returned value** -Returns the host name. [`String`](/reference/data-types/string) +Returns the host name. [`String`](/core/reference/data-types/string) **Examples** @@ -2889,12 +2889,12 @@ icebergBucket(N, value) **Arguments** -- `N` — The number of buckets, modulo. [`const (U)Int*`](/reference/data-types/int-uint) -- `value` — The source value to transform. [`(U)Int*`](/reference/data-types/int-uint) or [`Bool`](/reference/data-types/boolean) or [`Decimal`](/reference/data-types/decimal) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`UUID`](/reference/data-types/uuid) or [`Date`](/reference/data-types/date) or [`Time`](/reference/data-types/time) or [`DateTime`](/reference/data-types/datetime) +- `N` — The number of buckets, modulo. [`const (U)Int*`](/core/reference/data-types/int-uint) +- `value` — The source value to transform. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Bool`](/core/reference/data-types/boolean) or [`Decimal`](/core/reference/data-types/decimal) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`UUID`](/core/reference/data-types/uuid) or [`Date`](/core/reference/data-types/date) or [`Time`](/core/reference/data-types/time) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns a 32-bit hash of the source value. [`Int32`](/reference/data-types/int-uint) +Returns a 32-bit hash of the source value. [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -2922,7 +2922,7 @@ icebergTruncate(N, value) **Arguments** -- `value` — The value to transform. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Decimal`](/reference/data-types/decimal) +- `value` — The value to transform. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** @@ -2954,11 +2954,11 @@ identity(x) **Arguments** -- `x` — Input value. [`Any`](/reference/data-types) +- `x` — Input value. [`Any`](/core/reference/data-types) **Returned value** -Returns the input value unchanged. [`Any`](/reference/data-types) +Returns the input value unchanged. [`Any`](/core/reference/data-types) **Examples** @@ -2987,11 +2987,11 @@ ignore(x) **Arguments** -- `x` — An input value which is unused and passed only so as to avoid a syntax error. [`Any`](/reference/data-types) +- `x` — An input value which is unused and passed only so as to avoid a syntax error. [`Any`](/core/reference/data-types) **Returned value** -Always returns `0`. [`UInt8`](/reference/data-types/int-uint) +Always returns `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3061,11 +3061,11 @@ indexHint(expression) **Arguments** -- `expression` — Any expression for index range selection. [`Expression`](/reference/data-types/special-data-types/expression) +- `expression` — Any expression for index range selection. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns `1` in all cases. [`UInt8`](/reference/data-types/int-uint) +Returns `1` in all cases. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3089,9 +3089,9 @@ SELECT FlightDate AS k, count() FROM ontime WHERE indexHint(k = '2025-09-15') GR Introduced in: v1.1.0 Returns the ID of the initial current query. -Other parameters of a query can be extracted from field `initial_query_id` in [`system.query_log`](/reference/system-tables/query_log). +Other parameters of a query can be extracted from field `initial_query_id` in [`system.query_log`](/core/reference/system-tables/query_log). -In contrast to [`queryID`](/reference/functions/regular-functions/other-functions#queryID) function, `initialQueryID` returns the same results on different shards. +In contrast to [`queryID`](/core/reference/functions/regular-functions/other-functions#queryID) function, `initialQueryID` returns the same results on different shards. **Syntax** @@ -3107,7 +3107,7 @@ initialQueryID() **Returned value** -Returns the ID of the initial current query. [`String`](/reference/data-types/string) +Returns the ID of the initial current query. [`String`](/core/reference/data-types/string) **Examples** @@ -3146,7 +3146,7 @@ initialQueryStartTime() **Returned value** -Returns the start time of the initial current query. [`DateTime`](/reference/data-types/datetime) +Returns the start time of the initial current query. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -3169,8 +3169,8 @@ SELECT count(DISTINCT t) FROM (SELECT initialQueryStartTime() AS t FROM remote(' Introduced in: v20.6.0 Calculates the result of an aggregate function based on a single value. -This function can be used to initialize aggregate functions with combinator [-State](/reference/functions/aggregate-functions/combinators#-state). -You can create states of aggregate functions and insert them to columns of type [`AggregateFunction`](/reference/data-types/aggregatefunction) or use initialized aggregates as default values. +This function can be used to initialize aggregate functions with combinator [-State](/core/reference/functions/aggregate-functions/combinators#-state). +You can create states of aggregate functions and insert them to columns of type [`AggregateFunction`](/core/reference/data-types/aggregatefunction) or use initialized aggregates as default values. **Syntax** @@ -3181,12 +3181,12 @@ initializeAggregation(aggregate_function, arg1[, arg2, ...]) **Arguments** -- `aggregate_function` — Name of the aggregation function to initialize. [`String`](/reference/data-types/string) -- `arg1[, arg2, ...]` — Arguments of the aggregate function. [`Any`](/reference/data-types) +- `aggregate_function` — Name of the aggregation function to initialize. [`String`](/core/reference/data-types/string) +- `arg1[, arg2, ...]` — Arguments of the aggregate function. [`Any`](/core/reference/data-types) **Returned value** -Returns the result of aggregation for every row passed to the function. The return type is the same as the return type of the function that `initializeAggregation` takes as a first argument. [`Any`](/reference/data-types) +Returns the result of aggregation for every row passed to the function. The return type is the same as the return type of the function that `initializeAggregation` takes as a first argument. [`Any`](/core/reference/data-types) **Examples** @@ -3224,7 +3224,7 @@ Introduced in: v20.3.0 Returns whether the argument is a constant expression. A constant expression is an expression whose result is known during query analysis, i.e. before execution. -For example, expressions over [literals](/reference/syntax#literals) are constant expressions. +For example, expressions over [literals](/core/reference/syntax#literals) are constant expressions. This function is mostly intended for development, debugging and demonstration. @@ -3236,11 +3236,11 @@ isConstant(x) **Arguments** -- `x` — An expression to check. [`Any`](/reference/data-types) +- `x` — An expression to check. [`Any`](/core/reference/data-types) **Returned value** -Returns `1` if `x` is constant, `0` if `x` is non-constant. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `x` is constant, `0` if `x` is non-constant. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3310,12 +3310,12 @@ isDecimalOverflow(value[, precision]) **Arguments** -- `value` — Decimal value to check. [`Decimal`](/reference/data-types/decimal) -- `precision` — Optional. The precision of the Decimal type. If omitted, the initial precision of the first argument is used. [`UInt8`](/reference/data-types/int-uint) +- `value` — Decimal value to check. [`Decimal`](/core/reference/data-types/decimal) +- `precision` — Optional. The precision of the Decimal type. If omitted, the initial precision of the first argument is used. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns `1` if the decimal value has more digits than allowed by its precision, `0` if the decimal value satisfies the specified precision. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the decimal value has more digits than allowed by its precision, `0` if the decimal value satisfies the specified precision. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3342,7 +3342,7 @@ Allows you to extract data from a table the same way as from a dictionary. Gets data from Join tables using the specified join key. -Only supports tables created with the `ENGINE = Join(ANY, LEFT, )` [statement](/reference/engines/table-engines/special/join). +Only supports tables created with the `ENGINE = Join(ANY, LEFT, )` [statement](/core/reference/engines/table-engines/special/join). **Syntax** @@ -3353,13 +3353,13 @@ joinGet(join_storage_table_name, value_column, join_keys) **Arguments** -- `join_storage_table_name` — An identifier which indicates where to perform the search. The identifier is searched in the default database (see parameter `default_database` in the config file). To override the default database, use the `USE database_name` query or specify the database and the table through a dot, like `database_name.table_name`. [`String`](/reference/data-types/string) -- `value_column` — The name of the column of the table that contains required data. [`const String`](/reference/data-types/string) -- `join_keys` — A list of join keys. [`Any`](/reference/data-types) +- `join_storage_table_name` — An identifier which indicates where to perform the search. The identifier is searched in the default database (see parameter `default_database` in the config file). To override the default database, use the `USE database_name` query or specify the database and the table through a dot, like `database_name.table_name`. [`String`](/core/reference/data-types/string) +- `value_column` — The name of the column of the table that contains required data. [`const String`](/core/reference/data-types/string) +- `join_keys` — A list of join keys. [`Any`](/core/reference/data-types) **Returned value** -Returns list of values corresponded to list of keys. [`Any`](/reference/data-types) +Returns list of values corresponded to list of keys. [`Any`](/core/reference/data-types) **Examples** @@ -3415,7 +3415,7 @@ Gets data from Join tables using the specified join key. Unlike [`joinGet`](#joinGet) it returns `NULL` when the key is missing. -Only supports tables created with the `ENGINE = Join(ANY, LEFT, )` [statement](/reference/engines/table-engines/special/join). +Only supports tables created with the `ENGINE = Join(ANY, LEFT, )` [statement](/core/reference/engines/table-engines/special/join). **Syntax** @@ -3426,13 +3426,13 @@ joinGetOrNull(join_storage_table_name, value_column, join_keys) **Arguments** -- `join_storage_table_name` — An identifier which indicates where to perform the search. The identifier is searched in the default database (see parameter default_database in the config file). To override the default database, use the `USE database_name` query or specify the database and the table through a dot, like `database_name.table_name`. [`String`](/reference/data-types/string) -- `value_column` — The name of the column of the table that contains required data. [`const String`](/reference/data-types/string) -- `join_keys` — A list of join keys. [`Any`](/reference/data-types) +- `join_storage_table_name` — An identifier which indicates where to perform the search. The identifier is searched in the default database (see parameter default_database in the config file). To override the default database, use the `USE database_name` query or specify the database and the table through a dot, like `database_name.table_name`. [`String`](/core/reference/data-types/string) +- `value_column` — The name of the column of the table that contains required data. [`const String`](/core/reference/data-types/string) +- `join_keys` — A list of join keys. [`Any`](/core/reference/data-types) **Returned value** -Returns a list of values corresponding to the list of keys, or `NULL` if a key is not found. [`Any`](/reference/data-types) +Returns a list of values corresponding to the list of keys, or `NULL` if a key is not found. [`Any`](/core/reference/data-types) **Examples** @@ -3455,7 +3455,7 @@ SELECT joinGetOrNull(db_test.id_val, 'val', toUInt32(1)), joinGetOrNull(db_test. Introduced in: v18.12.0 -Returns the position of a value in the dictionary of a [LowCardinality](/reference/data-types/lowcardinality) column. Positions start at 1. Since LowCardinality have per-part dictionaries, this function may return different positions for the same value in different parts. +Returns the position of a value in the dictionary of a [LowCardinality](/core/reference/data-types/lowcardinality) column. Positions start at 1. Since LowCardinality have per-part dictionaries, this function may return different positions for the same value in different parts. **Syntax** @@ -3466,11 +3466,11 @@ lowCardinalityIndices(col) **Arguments** -- `col` — A low cardinality column. [`LowCardinality`](/reference/data-types/lowcardinality) +- `col` — A low cardinality column. [`LowCardinality`](/core/reference/data-types/lowcardinality) **Returned value** -The position of the value in the dictionary of the current part. [`UInt64`](/reference/data-types/int-uint) +The position of the value in the dictionary of the current part. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -3509,7 +3509,7 @@ SELECT s, lowCardinalityIndices(s) FROM test; Introduced in: v18.12.0 -Returns the dictionary values of a [LowCardinality](/reference/data-types/lowcardinality) column. +Returns the dictionary values of a [LowCardinality](/core/reference/data-types/lowcardinality) column. If the block is smaller or larger than the dictionary size, the result will be truncated or extended with default values. Since LowCardinality have per-part dictionaries, this function may return different dictionary values in different parts. @@ -3522,11 +3522,11 @@ lowCardinalityKeys(col) **Arguments** -- `col` — A low cardinality column. [`LowCardinality`](/reference/data-types/lowcardinality) +- `col` — A low cardinality column. [`LowCardinality`](/core/reference/data-types/lowcardinality) **Returned value** -Returns the dictionary keys. [`UInt64`](/reference/data-types/int-uint) +Returns the dictionary keys. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -3578,11 +3578,11 @@ materialize(x) **Arguments** -- `x` — A constant. [`Any`](/reference/data-types) +- `x` — A constant. [`Any`](/core/reference/data-types) **Returned value** -Returns a full column containing the constant value. [`Any`](/reference/data-types) +Returns a full column containing the constant value. [`Any`](/core/reference/data-types) **Examples** @@ -3623,15 +3623,15 @@ minSampleSizeContinuous(baseline, sigma, mde, power, alpha) **Arguments** -- `baseline` — Baseline value of a metric. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `sigma` — Baseline standard deviation of a metric. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `mde` — Minimum detectable effect (MDE) as percentage of the baseline value (e.g. for a baseline value 112.25 the MDE 0.03 means an expected change to 112.25 ± 112.25*0.03). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `power` — Required statistical power of a test (1 - probability of Type II error). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `alpha` — Required significance level of a test (probability of Type I error). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `baseline` — Baseline value of a metric. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `sigma` — Baseline standard deviation of a metric. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `mde` — Minimum detectable effect (MDE) as percentage of the baseline value (e.g. for a baseline value 112.25 the MDE 0.03 means an expected change to 112.25 ± 112.25*0.03). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `power` — Required statistical power of a test (1 - probability of Type II error). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `alpha` — Required significance level of a test (probability of Type I error). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns a named Tuple with 3 elements: `minimum_sample_size`, `detect_range_lower` and `detect_range_upper`. These are respectively: the required sample size, the lower bound of the range of values not detectable with the returned required sample size, calculated as `baseline * (1 - mde)`, and the upper bound of the range of values not detectable with the returned required sample size, calculated as `baseline * (1 + mde)` (Float64). [`Tuple(Float64, Float64, Float64)`](/reference/data-types/tuple) +Returns a named Tuple with 3 elements: `minimum_sample_size`, `detect_range_lower` and `detect_range_upper`. These are respectively: the required sample size, the lower bound of the range of values not detectable with the returned required sample size, calculated as `baseline * (1 - mde)`, and the upper bound of the range of values not detectable with the returned required sample size, calculated as `baseline * (1 + mde)` (Float64). [`Tuple(Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** @@ -3661,14 +3661,14 @@ minSampleSizeConversion(baseline, mde, power, alpha) **Arguments** -- `baseline` — Baseline conversion. [`Float*`](/reference/data-types/float) -- `mde` — Minimum detectable effect (MDE) as percentage points (e.g. for a baseline conversion 0.25 the MDE 0.03 means an expected change to 0.25 ± 0.03). [`Float*`](/reference/data-types/float) -- `power` — Required statistical power of a test (1 - probability of Type II error). [`Float*`](/reference/data-types/float) -- `alpha` — Required significance level of a test (probability of Type I error). [`Float*`](/reference/data-types/float) +- `baseline` — Baseline conversion. [`Float*`](/core/reference/data-types/float) +- `mde` — Minimum detectable effect (MDE) as percentage points (e.g. for a baseline conversion 0.25 the MDE 0.03 means an expected change to 0.25 ± 0.03). [`Float*`](/core/reference/data-types/float) +- `power` — Required statistical power of a test (1 - probability of Type II error). [`Float*`](/core/reference/data-types/float) +- `alpha` — Required significance level of a test (probability of Type I error). [`Float*`](/core/reference/data-types/float) **Returned value** -Returns a named Tuple with 3 elements: `minimum_sample_size`, `detect_range_lower`, `detect_range_upper`. These are, respectively: the required sample size, the lower bound of the range of values not detectable with the returned required sample size, calculated as `baseline - mde`, the upper bound of the range of values not detectable with the returned required sample size, calculated as `baseline + mde`. [`Tuple(Float64, Float64, Float64)`](/reference/data-types/tuple) +Returns a named Tuple with 3 elements: `minimum_sample_size`, `detect_range_lower`, `detect_range_upper`. These are, respectively: the required sample size, the lower bound of the range of values not detectable with the returned required sample size, calculated as `baseline - mde`, the upper bound of the range of values not detectable with the returned required sample size, calculated as `baseline + mde`. [`Tuple(Float64, Float64, Float64)`](/core/reference/data-types/tuple) **Examples** @@ -3700,13 +3700,13 @@ neighbor(column, offset[, default_value]) **Arguments** -- `column` — The source column. [`Any`](/reference/data-types) -- `offset` — The offset from the current row. Positive values look forward, negative values look backward. [`Integer`](/reference/data-types/int-uint) -- `default_value` — Optional. The value to return if the offset goes beyond the data bounds. If not specified, uses the default value for the column type. [`Any`](/reference/data-types) +- `column` — The source column. [`Any`](/core/reference/data-types) +- `offset` — The offset from the current row. Positive values look forward, negative values look backward. [`Integer`](/core/reference/data-types/int-uint) +- `default_value` — Optional. The value to return if the offset goes beyond the data bounds. If not specified, uses the default value for the column type. [`Any`](/core/reference/data-types) **Returned value** -Returns a value from the specified offset, or default if out of bounds. [`Any`](/reference/data-types) +Returns a value from the specified offset, or default if out of bounds. [`Any`](/core/reference/data-types) **Examples** @@ -3767,11 +3767,11 @@ normalizeQuery(x) **Arguments** -- `x` — Sequence of characters. [`String`](/reference/data-types/string) +- `x` — Sequence of characters. [`String`](/core/reference/data-types/string) **Returned value** -Returns the given sequence of characters with placeholders. [`String`](/reference/data-types/string) +Returns the given sequence of characters with placeholders. [`String`](/core/reference/data-types/string) **Examples** @@ -3803,11 +3803,11 @@ normalizeQueryKeepNames(x) **Arguments** -- `x` — Sequence of characters. [`String`](/reference/data-types/string) +- `x` — Sequence of characters. [`String`](/core/reference/data-types/string) **Returned value** -Returns the given sequence of characters with placeholders. [`String`](/reference/data-types/string) +Returns the given sequence of characters with placeholders. [`String`](/core/reference/data-types/string) **Examples** @@ -3839,11 +3839,11 @@ normalizedQueryHash(x) **Arguments** -- `x` — Sequence of characters. [`String`](/reference/data-types/string) +- `x` — Sequence of characters. [`String`](/core/reference/data-types/string) **Returned value** -Returns a 64 bit hash value. [`UInt64`](/reference/data-types/int-uint) +Returns a 64 bit hash value. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -3875,11 +3875,11 @@ normalizedQueryHashKeepNames(x) **Arguments** -- `x` — Sequence of characters. [`String`](/reference/data-types/string) +- `x` — Sequence of characters. [`String`](/core/reference/data-types/string) **Returned value** -Returns a 64 bit hash value. [`UInt64`](/reference/data-types/int-uint) +Returns a 64 bit hash value. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -3926,12 +3926,12 @@ obfuscateQuery(query[, tag]) **Arguments** -- `query` — The SQL query to obfuscate. [`String`](/reference/data-types/string) +- `query` — The SQL query to obfuscate. [`String`](/core/reference/data-types/string) - `tag` — Optional. A value to prevent common subexpression elimination when the same function call is used multiple times. **Returned value** -The obfuscated query with identifiers and literals replaced while preserving the original query structure. [`String`](/reference/data-types/string) +The obfuscated query with identifiers and literals replaced while preserving the original query structure. [`String`](/core/reference/data-types/string) **Examples** @@ -3994,12 +3994,12 @@ obfuscateQueryWithSeed(query, seed) **Arguments** -- `query` — The SQL query to obfuscate. [`String`](/reference/data-types/string) -- `seed` — The seed for obfuscation. The same seed produces deterministic results. [`Integer`](/reference/data-types/int-uint) or [`String`](/reference/data-types/string) +- `query` — The SQL query to obfuscate. [`String`](/core/reference/data-types/string) +- `seed` — The seed for obfuscation. The same seed produces deterministic results. [`Integer`](/core/reference/data-types/int-uint) or [`String`](/core/reference/data-types/string) **Returned value** -The obfuscated query, deterministically generated based on the provided seed. [`String`](/reference/data-types/string) +The obfuscated query, deterministically generated based on the provided seed. [`String`](/core/reference/data-types/string) **Examples** @@ -4050,11 +4050,11 @@ parseReadableSize(x) **Arguments** -- `x` — Readable size with ISO/IEC 80000-13 or decimal byte unit. [`String`](/reference/data-types/string) +- `x` — Readable size with ISO/IEC 80000-13 or decimal byte unit. [`String`](/core/reference/data-types/string) **Returned value** -Returns the number of bytes, rounded up to the nearest integer. [`UInt64`](/reference/data-types/int-uint) +Returns the number of bytes, rounded up to the nearest integer. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -4090,11 +4090,11 @@ parseReadableSizeOrNull(x) **Arguments** -- `x` — Readable size with ISO/IEC 80000-13 or decimal byte unit. [`String`](/reference/data-types/string) +- `x` — Readable size with ISO/IEC 80000-13 or decimal byte unit. [`String`](/core/reference/data-types/string) **Returned value** -Returns the number of bytes, rounded up to the nearest integer, or `NULL` if unable to parse the input [`Nullable(UInt64)`](/reference/data-types/nullable) +Returns the number of bytes, rounded up to the nearest integer, or `NULL` if unable to parse the input [`Nullable(UInt64)`](/core/reference/data-types/nullable) **Examples** @@ -4131,11 +4131,11 @@ parseReadableSizeOrZero(x) **Arguments** -- `x` — Readable size with ISO/IEC 80000-13 or decimal byte unit. [`String`](/reference/data-types/string) +- `x` — Readable size with ISO/IEC 80000-13 or decimal byte unit. [`String`](/core/reference/data-types/string) **Returned value** -Returns the number of bytes, rounded up to the nearest integer, or `0` if unable to parse the input. [`UInt64`](/reference/data-types/int-uint) +Returns the number of bytes, rounded up to the nearest integer, or `0` if unable to parse the input. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -4186,11 +4186,11 @@ parseTimeDelta(timestr) **Arguments** -- `timestr` — A sequence of numbers followed by something resembling a time unit. [`String`](/reference/data-types/string) +- `timestr` — A sequence of numbers followed by something resembling a time unit. [`String`](/core/reference/data-types/string) **Returned value** -The number of seconds. [`Float64`](/reference/data-types/float) +The number of seconds. [`Float64`](/core/reference/data-types/float) **Examples** @@ -4222,7 +4222,7 @@ SELECT parseTimeDelta('1yr2mo') Introduced in: v21.4.0 -Computes the [partition ID](/reference/engines/table-engines/mergetree-family/custom-partitioning-key). +Computes the [partition ID](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key). This function is slow and should not be called for large numbers of rows. @@ -4242,7 +4242,7 @@ partitionId(column1[, column2, ...]) **Returned value** -Returns the partition ID that the row belongs to. [`String`](/reference/data-types/string) +Returns the partition ID that the row belongs to. [`String`](/core/reference/data-types/string) **Examples** @@ -4281,7 +4281,7 @@ SELECT i, j, partitionId(i), _partition_id FROM tab ORDER BY i, j; Introduced in: v21.9.0 Returns the ID of the current query. -Other parameters of a query can be extracted from field `query_id` in the [`system.query_log`](/reference/system-tables/query_log) table. +Other parameters of a query can be extracted from field `query_id` in the [`system.query_log`](/core/reference/system-tables/query_log) table. In contrast to [`initialQueryID`](#initialQueryID) function, `queryID` can return different results on different shards. @@ -4299,7 +4299,7 @@ queryID() **Returned value** -Returns the ID of the current query. [`String`](/reference/data-types/string) +Returns the ID of the current query. [`String`](/core/reference/data-types/string) **Examples** @@ -4336,7 +4336,7 @@ revision() **Returned value** -Returns the current ClickHouse server revision. [`UInt32`](/reference/data-types/int-uint) +Returns the current ClickHouse server revision. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -4371,7 +4371,7 @@ rowNumberInAllBlocks() **Returned value** -Returns the ordinal number of the row in the data block starting from `0`. [`UInt64`](/reference/data-types/int-uint) +Returns the ordinal number of the row in the data block starting from `0`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -4415,7 +4415,7 @@ SETTINGS max_block_size = 2 Introduced in: v1.1.0 -For each [block](/resources/contribute/architecture#block) processed by `rowNumberInBlock`, returns the number of the current row. +For each [block](/resources/develop-contribute/introduction/architecture#block) processed by `rowNumberInBlock`, returns the number of the current row. The returned number starts from 0 for each block. @@ -4432,7 +4432,7 @@ rowNumberInBlock() **Returned value** -Returns the ordinal number of the row in the data block starting from `0`. [`UInt64`](/reference/data-types/int-uint) +Returns the ordinal number of the row in the data block starting from `0`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -4481,8 +4481,8 @@ Accumulates the states of an aggregate function for each row of a data block. **Deprecated** The state is reset for each new block of data. -Due to this error-prone behavior the function has been deprecated, and you are advised to use [window functions](/reference/functions/window-functions) instead. -You can use setting [`allow_deprecated_error_prone_window_functions`](/reference/settings/session-settings#allow_deprecated_error_prone_window_functions) to allow usage of this function. +Due to this error-prone behavior the function has been deprecated, and you are advised to use [window functions](/core/reference/functions/window-functions) instead. +You can use setting [`allow_deprecated_error_prone_window_functions`](/core/reference/settings/session-settings#allow_deprecated_error_prone_window_functions) to allow usage of this function. **Syntax** @@ -4493,12 +4493,12 @@ runningAccumulate(agg_state[, grouping]) **Arguments** -- `agg_state` — State of the aggregate function. [`AggregateFunction`](/reference/data-types/aggregatefunction) -- `grouping` — Optional. Grouping key. The state of the function is reset if the `grouping` value is changed. It can be any of the supported data types for which the equality operator is defined. [`Any`](/reference/data-types) +- `agg_state` — State of the aggregate function. [`AggregateFunction`](/core/reference/data-types/aggregatefunction) +- `grouping` — Optional. Grouping key. The state of the function is reset if the `grouping` value is changed. It can be any of the supported data types for which the equality operator is defined. [`Any`](/core/reference/data-types) **Returned value** -Returns the accumulated result for each row. [`Any`](/reference/data-types) +Returns the accumulated result for each row. [`Any`](/core/reference/data-types) **Examples** @@ -4545,7 +4545,7 @@ If events from different data blocks overlap then they can not be processed corr **Deprecated** -It is advised to use [window functions](/reference/functions/window-functions) instead. +It is advised to use [window functions](/core/reference/functions/window-functions) instead. **Syntax** @@ -4556,12 +4556,12 @@ runningConcurrency(start, end) **Arguments** -- `start` — A column with the start time of events. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `end` — A column with the end time of events. [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) +- `start` — A column with the start time of events. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `end` — A column with the end time of events. [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the number of concurrent events at each event start time. [`UInt32`](/reference/data-types/int-uint) +Returns the number of concurrent events at each event start time. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -4592,14 +4592,14 @@ Returns `0` for the first row, and for subsequent rows the difference to the pre Only returns differences inside the currently processed data block. Because of this error-prone behavior, the function is deprecated. -It is advised to use [window functions](/reference/functions/window-functions) instead. +It is advised to use [window functions](/core/reference/functions/window-functions) instead. -You can use setting [`allow_deprecated_error_prone_window_functions`](/reference/settings/session-settings#allow_deprecated_error_prone_window_functions) to allow usage of this function. +You can use setting [`allow_deprecated_error_prone_window_functions`](/core/reference/settings/session-settings#allow_deprecated_error_prone_window_functions) to allow usage of this function.
    The result of the function depends on the affected data blocks and the order of data in the block. The order of rows during calculation of `runningDifference()` can differ from the order of rows returned to the user. -To prevent that you can create a subquery with [`ORDER BY`](/reference/statements/select/order-by) and call the function from outside the subquery. +To prevent that you can create a subquery with [`ORDER BY`](/core/reference/statements/select/order-by) and call the function from outside the subquery. Please note that the block size affects the result. The internal state of `runningDifference` state is reset for each new block. @@ -4611,7 +4611,7 @@ runningDifference(x) **Arguments** -- `x` — Column for which to calculate the running difference. [`Any`](/reference/data-types) +- `x` — Column for which to calculate the running difference. [`Any`](/core/reference/data-types) **Returned value** @@ -4678,7 +4678,7 @@ Calculates the difference between consecutive row values in a data block, but un Only returns differences inside the currently processed data block. Because of this error-prone behavior, the function is deprecated. -It is advised to use [window functions](/reference/functions/window-functions) instead. +It is advised to use [window functions](/core/reference/functions/window-functions) instead. You can use setting `allow_deprecated_error_prone_window_functions` to allow usage of this function. @@ -4691,11 +4691,11 @@ runningDifferenceStartingWithFirstValue(x) **Arguments** -- `x` — Column for which to calculate the running difference. [`Any`](/reference/data-types) +- `x` — Column for which to calculate the running difference. [`Any`](/core/reference/data-types) **Returned value** -Returns the difference between consecutive values, with the first row's value for the first row. [`Any`](/reference/data-types) +Returns the difference between consecutive values, with the first row's value for the first row. [`Any`](/core/reference/data-types) **Examples** @@ -4738,7 +4738,7 @@ serverUUID() **Returned value** -Returns the random UUID of the server. [`UUID`](/reference/data-types/uuid) +Returns the random UUID of the server. [`UUID`](/core/reference/data-types/uuid) **Examples** @@ -4773,7 +4773,7 @@ shardCount() **Returned value** -Returns the total number of shards or `0`. [`UInt32`](/reference/data-types/int-uint) +Returns the total number of shards or `0`. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -4813,7 +4813,7 @@ shardNum() **Returned value** -Returns the shard index or a constant `0`. [`UInt32`](/reference/data-types/int-uint) +Returns the shard index or a constant `0`. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -4837,7 +4837,7 @@ SELECT dummy, shardNum(), shardCount() FROM shard_num_example; Introduced in: v22.6.0 Shows information about the current server's Secure Sockets Layer (SSL) certificate if it has been configured. -See [Configuring TLS](/concepts/features/security/tls/configuring-tls) for more information on how to configure ClickHouse to use OpenSSL certificates to validate connections. +See [Configuring TLS](/core/concepts/features/security/tls/configuring-tls) for more information on how to configure ClickHouse to use OpenSSL certificates to validate connections. **Syntax** @@ -4852,7 +4852,7 @@ showCertificate() **Returned value** -Returns map of key-value pairs relating to the configured SSL certificate. [`Map(String, String)`](/reference/data-types/map) +Returns map of key-value pairs relating to the configured SSL certificate. [`Map(String, String)`](/core/reference/data-types/map) **Examples** @@ -4894,11 +4894,11 @@ sleep(seconds) **Arguments** -- `seconds` — The number of seconds to pause the query execution to a maximum of 3 seconds. It can be a floating-point value to specify fractional seconds. [`const UInt*`](/reference/data-types/int-uint) or [`const Float*`](/reference/data-types/float) +- `seconds` — The number of seconds to pause the query execution to a maximum of 3 seconds. It can be a floating-point value to specify fractional seconds. [`const UInt*`](/core/reference/data-types/int-uint) or [`const Float*`](/core/reference/data-types/float) **Returned value** -Returns `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -4942,11 +4942,11 @@ sleepEachRow(seconds) **Arguments** -- `seconds` — The number of seconds to pause the query execution for each row in the result set to a maximum of 3 seconds. It can be a floating-point value to specify fractional seconds. [`const UInt*`](/reference/data-types/int-uint) or [`const Float*`](/reference/data-types/float) +- `seconds` — The number of seconds to pause the query execution for each row in the result set to a maximum of 3 seconds. It can be a floating-point value to specify fractional seconds. [`const UInt*`](/core/reference/data-types/int-uint) or [`const Float*`](/core/reference/data-types/float) **Returned value** -Returns `0` for each row. [`UInt8`](/reference/data-types/int-uint) +Returns `0` for each row. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -5020,12 +5020,12 @@ structureToProtobufSchema(structure, message_name) **Arguments** -- `structure` — ClickHouse table structure definition as a string (e.g., 'column1 Type1, column2 Type2'). [`String`](/reference/data-types/string) -- `message_name` — Name for the Protobuf message type in the generated schema. [`String`](/reference/data-types/string) +- `structure` — ClickHouse table structure definition as a string (e.g., 'column1 Type1, column2 Type2'). [`String`](/core/reference/data-types/string) +- `message_name` — Name for the Protobuf message type in the generated schema. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Protobuf schema definition in proto3 syntax that corresponds to the input ClickHouse structure. [`String`](/reference/data-types/string) +Returns a Protobuf schema definition in proto3 syntax that corresponds to the input ClickHouse structure. [`String`](/core/reference/data-types/string) **Examples** @@ -5049,7 +5049,7 @@ message MessageName Introduced in: v20.12.0 -Returns the [native interface](/integrations/connectors/data-integrations/drivers-and-interfaces/tcp) TCP port number listened to by the server. +Returns the [native interface](/core/concepts/features/interfaces/tcp) TCP port number listened to by the server. If executed in the context of a distributed table, this function generates a normal column with values relevant to each shard. Otherwise it produces a constant value. @@ -5066,7 +5066,7 @@ tcpPort() **Returned value** -Returns the TCP port number. [`UInt16`](/reference/data-types/int-uint) +Returns the TCP port number. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -5097,13 +5097,13 @@ throwIf(x[, message[, error_code]]) **Arguments** -- `x` — The condition to check. [`Any`](/reference/data-types) -- `message` — Optional. Custom error message. [`const String`](/reference/data-types/string) -- `error_code` — Optional. Custom error code. [`const Int8/16/32`](/reference/data-types/int-uint) +- `x` — The condition to check. [`Any`](/core/reference/data-types) +- `message` — Optional. Custom error message. [`const String`](/core/reference/data-types/string) +- `error_code` — Optional. Custom error code. [`const Int8/16/32`](/core/reference/data-types/int-uint) **Returned value** -Returns `0` if the condition is false, throws an exception if the condition is true. [`UInt8`](/reference/data-types/int-uint) +Returns `0` if the condition is false, throws an exception if the condition is true. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -5133,11 +5133,11 @@ toColumnTypeName(value) **Arguments** -- `value` — Value for which to return the internal data type. [`Any`](/reference/data-types) +- `value` — Value for which to return the internal data type. [`Any`](/core/reference/data-types) **Returned value** -Returns the internal data type used to represent the value. [`String`](/reference/data-types/string) +Returns the internal data type used to represent the value. [`String`](/core/reference/data-types/string) **Examples** @@ -5169,11 +5169,11 @@ toTypeName(x) **Arguments** -- `x` — A value of arbitrary type. [`Any`](/reference/data-types) +- `x` — A value of arbitrary type. [`Any`](/core/reference/data-types) **Returned value** -Returns the data type name of the input value. [`String`](/reference/data-types/string) +Returns the data type name of the input value. [`String`](/core/reference/data-types/string) **Examples** @@ -5208,7 +5208,7 @@ tokenizeQuery(query) **Returned value** -An array of named tuples `(begin UInt64, end UInt64, type Enum8(...))` representing the tokens of the query. [`Array(Tuple(begin UInt64, end UInt64, type Enum8(...)))`](/reference/data-types/array) +An array of named tuples `(begin UInt64, end UInt64, type Enum8(...))` representing the tokens of the query. [`Array(Tuple(begin UInt64, end UInt64, type Enum8(...)))`](/core/reference/data-types/array) **Examples** @@ -5233,7 +5233,7 @@ Returns the ID of a transaction. This function is part of an experimental feature set. -Enable experimental transaction support by adding this setting to your [configuration](/concepts/features/configuration/server-config/configuration-files): +Enable experimental transaction support by adding this setting to your [configuration](/core/concepts/features/configuration/server-config/configuration-files): ```xml @@ -5241,7 +5241,7 @@ Enable experimental transaction support by adding this setting to your [configur ``` -For more information see the page [Transactional (ACID) support](/concepts/operations/insert/transactions#transactions-commit-and-rollback). +For more information see the page [Transactional (ACID) support](/core/concepts/features/operations/insert/transactions#transactions-commit-and-rollback). @@ -5261,7 +5261,7 @@ Returns a tuple consisting of `start_csn`, `local_tid` and `host_id`. - `start_csn`: Global sequential number, the newest commit timestamp that was seen when this transaction began. - `local_tid`: Local sequential number that is unique for each transaction started by this host within a specific start_csn. - `host_id`: UUID of the host that has started this transaction. - [`Tuple(UInt64, UInt64, UUID)`](/reference/data-types/tuple) + [`Tuple(UInt64, UInt64, UUID)`](/core/reference/data-types/tuple) **Examples** @@ -5286,7 +5286,7 @@ Introduced in: v22.6.0 -Returns the newest snapshot (Commit Sequence Number) of a [transaction](/concepts/operations/insert/transactions#transactions-commit-and-rollback) that is available for reading. +Returns the newest snapshot (Commit Sequence Number) of a [transaction](/core/concepts/features/operations/insert/transactions#transactions-commit-and-rollback) that is available for reading. This function is part of an experimental feature set. Enable experimental transaction support by adding this setting to your configuration: @@ -5297,7 +5297,7 @@ This function is part of an experimental feature set. Enable experimental transa ``` -For more information see the page [Transactional (ACID) support](/concepts/operations/insert/transactions#transactions-commit-and-rollback). +For more information see the page [Transactional (ACID) support](/core/concepts/features/operations/insert/transactions#transactions-commit-and-rollback). @@ -5313,7 +5313,7 @@ transactionLatestSnapshot() **Returned value** -Returns the latest snapshot (CSN) of a transaction. [`UInt64`](/reference/data-types/int-uint) +Returns the latest snapshot (CSN) of a transaction. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -5338,7 +5338,7 @@ Introduced in: v22.6.0 -Returns the oldest snapshot (Commit Sequence Number) that is visible for some running [transaction](/concepts/operations/insert/transactions#transactions-commit-and-rollback). +Returns the oldest snapshot (Commit Sequence Number) that is visible for some running [transaction](/core/concepts/features/operations/insert/transactions#transactions-commit-and-rollback). This function is part of an experimental feature set. Enable experimental transaction support by adding this setting to your configuration: @@ -5349,7 +5349,7 @@ This function is part of an experimental feature set. Enable experimental transa ``` -For more information see the page [Transactional (ACID) support](/concepts/operations/insert/transactions#transactions-commit-and-rollback). +For more information see the page [Transactional (ACID) support](/core/concepts/features/operations/insert/transactions#transactions-commit-and-rollback). **Syntax** @@ -5364,7 +5364,7 @@ transactionOldestSnapshot() **Returned value** -Returns the oldest snapshot (CSN) of a transaction. [`UInt64`](/reference/data-types/int-uint) +Returns the oldest snapshot (CSN) of a transaction. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -5409,14 +5409,14 @@ transform(x, array_from, array_to[, default]) **Arguments** -- `x` — Value to transform. [`(U)Int*`](/reference/data-types/int-uint) or [`Decimal`](/reference/data-types/decimal) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) -- `array_from` — Constant array of values to search for matches. [`Array((U)Int*)`](/reference/data-types/array) or [`Array(Decimal)`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) or [`Array(String)`](/reference/data-types/array) or [`Array(Date)`](/reference/data-types/array) or [`Array(DateTime)`](/reference/data-types/array) -- `array_to` — Constant array of values to return for corresponding matches in `array_from`. [`Array((U)Int*)`](/reference/data-types/array) or [`Array(Decimal)`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) or [`Array(String)`](/reference/data-types/array) or [`Array(Date)`](/reference/data-types/array) or [`Array(DateTime)`](/reference/data-types/array) -- `default` — Optional. Value to return if `x` is not found in `array_from`. If omitted, returns x unchanged. [`(U)Int*`](/reference/data-types/int-uint) or [`Decimal`](/reference/data-types/decimal) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `x` — Value to transform. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Decimal`](/core/reference/data-types/decimal) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) +- `array_from` — Constant array of values to search for matches. [`Array((U)Int*)`](/core/reference/data-types/array) or [`Array(Decimal)`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) or [`Array(String)`](/core/reference/data-types/array) or [`Array(Date)`](/core/reference/data-types/array) or [`Array(DateTime)`](/core/reference/data-types/array) +- `array_to` — Constant array of values to return for corresponding matches in `array_from`. [`Array((U)Int*)`](/core/reference/data-types/array) or [`Array(Decimal)`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) or [`Array(String)`](/core/reference/data-types/array) or [`Array(Date)`](/core/reference/data-types/array) or [`Array(DateTime)`](/core/reference/data-types/array) +- `default` — Optional. Value to return if `x` is not found in `array_from`. If omitted, returns x unchanged. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Decimal`](/core/reference/data-types/decimal) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns the corresponding value from `array_to` if x matches an element in `array_from`, otherwise returns default (if provided) or x (if default not provided). [`Any`](/reference/data-types) +Returns the corresponding value from `array_to` if x matches an element in `array_from`, otherwise returns default (if provided) or x (if default not provided). [`Any`](/core/reference/data-types) **Examples** @@ -5480,11 +5480,11 @@ uniqThetaIntersect(uniqThetaSketch,uniqThetaSketch) **Arguments** -- `uniqThetaSketch` — uniqThetaSketch object. [`Tuple`](/reference/data-types/tuple) or [`Array`](/reference/data-types/array) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `uniqThetaSketch` — uniqThetaSketch object. [`Tuple`](/core/reference/data-types/tuple) or [`Array`](/core/reference/data-types/array) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -A new uniqThetaSketch containing the intersect result. [`UInt64`](/reference/data-types/int-uint) +A new uniqThetaSketch containing the intersect result. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -5517,11 +5517,11 @@ uniqThetaNot(uniqThetaSketch,uniqThetaSketch) **Arguments** -- `uniqThetaSketch` — uniqThetaSketch object. [`Tuple`](/reference/data-types/tuple) or [`Array`](/reference/data-types/array) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `uniqThetaSketch` — uniqThetaSketch object. [`Tuple`](/core/reference/data-types/tuple) or [`Array`](/core/reference/data-types/array) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a new uniqThetaSketch containing the a_not_b result. [`UInt64`](/reference/data-types/int-uint) +Returns a new uniqThetaSketch containing the a_not_b result. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -5554,11 +5554,11 @@ uniqThetaUnion(uniqThetaSketch,uniqThetaSketch) **Arguments** -- `uniqThetaSketch` — uniqThetaSketch object. [`Tuple`](/reference/data-types/tuple) or [`Array`](/reference/data-types/array) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `uniqThetaSketch` — uniqThetaSketch object. [`Tuple`](/core/reference/data-types/tuple) or [`Array`](/core/reference/data-types/array) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a new uniqThetaSketch containing the union result. [`UInt64`](/reference/data-types/int-uint) +Returns a new uniqThetaSketch containing the union result. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -5597,7 +5597,7 @@ uptime() **Returned value** -Returns the server uptime in seconds. [`UInt32`](/reference/data-types/int-uint) +Returns the server uptime in seconds. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -5627,13 +5627,13 @@ variantElement(variant, type_name[, default_value]) **Arguments** -- `variant` — Variant column. [`Variant`](/reference/data-types/variant) -- `type_name` — The name of the variant type to extract. [`String`](/reference/data-types/string) -- `default_value` — The default value that will be used if variant doesn't have variant with specified type. Can be any type. Optional. [`Any`](/reference/data-types) +- `variant` — Variant column. [`Variant`](/core/reference/data-types/variant) +- `type_name` — The name of the variant type to extract. [`String`](/core/reference/data-types/string) +- `default_value` — The default value that will be used if variant doesn't have variant with specified type. Can be any type. Optional. [`Any`](/core/reference/data-types) **Returned value** -Returns a column with the specified variant type extracted from the Variant column. [`Any`](/reference/data-types) +Returns a column with the specified variant type extracted from the Variant column. [`Any`](/core/reference/data-types) **Examples** @@ -5668,11 +5668,11 @@ variantType(variant) **Arguments** -- `variant` — Variant column. [`Variant`](/reference/data-types/variant) +- `variant` — Variant column. [`Variant`](/core/reference/data-types/variant) **Returned value** -Returns an Enum column with variant type name for each row. [`Enum`](/reference/data-types/enum) +Returns an Enum column with variant type name for each row. [`Enum`](/core/reference/data-types/enum) **Examples** @@ -5714,7 +5714,7 @@ version() **Returned value** -Returns the current version of ClickHouse. [`String`](/reference/data-types/string) +Returns the current version of ClickHouse. [`String`](/core/reference/data-types/string) **Examples** @@ -5747,11 +5747,11 @@ visibleWidth(x) **Arguments** -- `x` — A value of any data type. [`Any`](/reference/data-types) +- `x` — A value of any data type. [`Any`](/core/reference/data-types) **Returned value** -Returns the approximate width of the value when displayed in text format. [`UInt64`](/reference/data-types/int-uint) +Returns the approximate width of the value when displayed in text format. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -5785,7 +5785,7 @@ zookeeperSessionUptime() **Returned value** -Returns the uptime of the current ZooKeeper session in seconds. [`UInt32`](/reference/data-types/int-uint) +Returns the uptime of the current ZooKeeper session in seconds. [`UInt32`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/regular-functions/overview.mdx b/core/reference/functions/regular-functions/overview.mdx similarity index 95% rename from reference/functions/regular-functions/overview.mdx rename to core/reference/functions/regular-functions/overview.mdx index c9ebfa88..199385b2 100644 --- a/reference/functions/regular-functions/overview.mdx +++ b/core/reference/functions/regular-functions/overview.mdx @@ -11,7 +11,7 @@ There are at least\* two types of functions - regular functions (they are just c In this section we discuss regular functions. For aggregate functions, see the section "Aggregate functions". -There is a third type of function that the ['arrayJoin' function](/reference/functions/regular-functions/array-join) belongs to. And [table functions](/reference/functions/table-functions) can also be mentioned separately. +There is a third type of function that the ['arrayJoin' function](/core/reference/functions/regular-functions/array-join) belongs to. And [table functions](/core/reference/functions/table-functions) can also be mentioned separately. ## Strong Typing {#strong-typing} @@ -93,4 +93,4 @@ Variadic inner functions also do not auto-unpack tuple inputs. For example, `arr ## User Defined Functions (UDFs) {#user-defined-functions-udfs} -ClickHouse supports user-defined functions. See [UDFs](/reference/functions/regular-functions/udf). +ClickHouse supports user-defined functions. See [UDFs](/core/reference/functions/regular-functions/udf). diff --git a/reference/functions/regular-functions/random-functions.mdx b/core/reference/functions/regular-functions/random-functions.mdx similarity index 71% rename from reference/functions/regular-functions/random-functions.mdx rename to core/reference/functions/regular-functions/random-functions.mdx index f89854f1..805c057a 100644 --- a/reference/functions/regular-functions/random-functions.mdx +++ b/core/reference/functions/regular-functions/random-functions.mdx @@ -7,12 +7,12 @@ doc_type: 'reference' --- All functions in this section accept zero or one arguments. The only use of the argument (if provided) is to prevent [common subexpression -elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) such that two different executions within a row of the same random +elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) such that two different executions within a row of the same random function return different random values. Related content -- Guide: [Generating random data in ClickHouse](/get-started/oss/starter-guides/generating-test-data) +- Guide: [Generating random data in ClickHouse](/core/guides/clickhouse/data-modelling/generating-test-data) - Blog: [Generating random data in ClickHouse](https://clickhouse.com/blog/generating-random-test-distribution-data-for-clickhouse) @@ -45,12 +45,12 @@ fuzzBits(s, p) **Arguments** -- `s` — String or FixedString to perform bit fuzzing on [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `p` — Probability of flipping each bit as a number between `0.0` and `1.0` [`Float*`](/reference/data-types/float) +- `s` — String or FixedString to perform bit fuzzing on [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `p` — Probability of flipping each bit as a number between `0.0` and `1.0` [`Float*`](/core/reference/data-types/float) **Returned value** -Returns a Fuzzed string with same type as `s`. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +Returns a Fuzzed string with same type as `s`. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Examples** @@ -89,11 +89,11 @@ rand([x]) **Arguments** -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random number of type `UInt32`. [`UInt32`](/reference/data-types/int-uint) +Returns a random number of type `UInt32`. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -125,11 +125,11 @@ rand64([x]) **Arguments** -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random UInt64 number with uniform distribution. [`UInt64`](/reference/data-types/int-uint) +Returns a random UInt64 number with uniform distribution. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -158,12 +158,12 @@ randBernoulli(probability[, x]) **Arguments** -- `probability` — The probability of success as a value between `0` and `1`. [`Float64`](/reference/data-types/float) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `probability` — The probability of success as a value between `0` and `1`. [`Float64`](/core/reference/data-types/float) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random Float64 number drawn from the specified Bernoulli distribution. [`UInt64`](/reference/data-types/int-uint) +Returns a random Float64 number drawn from the specified Bernoulli distribution. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -198,13 +198,13 @@ randBinomial(experiments, probability[, x]) **Arguments** -- `experiments` — The number of experiments [`UInt64`](/reference/data-types/int-uint) -- `probability` — The probability of success in each experiment as a value between `0` and `1` [`Float64`](/reference/data-types/float) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `experiments` — The number of experiments [`UInt64`](/core/reference/data-types/int-uint) +- `probability` — The probability of success in each experiment as a value between `0` and `1` [`Float64`](/core/reference/data-types/float) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random Float64 number drawn from the specified binomial distribution. [`UInt64`](/reference/data-types/int-uint) +Returns a random Float64 number drawn from the specified binomial distribution. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -239,11 +239,11 @@ randCanonical([x]) **Arguments** -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random Float64 number. [`Float64`](/reference/data-types/float) +Returns a random Float64 number. [`Float64`](/core/reference/data-types/float) **Examples** @@ -272,12 +272,12 @@ randChiSquared(degree_of_freedom[, x]) **Arguments** -- `degree_of_freedom` — Degrees of freedom. [`Float64`](/reference/data-types/float) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `degree_of_freedom` — Degrees of freedom. [`Float64`](/core/reference/data-types/float) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random Float64 number drawn from the specified chi-square distribution. [`Float64`](/reference/data-types/float) +Returns a random Float64 number drawn from the specified chi-square distribution. [`Float64`](/core/reference/data-types/float) **Examples** @@ -318,11 +318,11 @@ randConstant([x]) **Arguments** -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a column of type `UInt32` containing the same random value in each row. [`UInt32`](/reference/data-types/int-uint) +Returns a column of type `UInt32` containing the same random value in each row. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -365,12 +365,12 @@ randExponential(lambda[, x]) **Arguments** -- `lambda` — Rate parameter or lambda value of the distribution [`Float64`](/reference/data-types/float) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `lambda` — Rate parameter or lambda value of the distribution [`Float64`](/core/reference/data-types/float) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random Float64 number drawn from the specified exponential distribution. [`Float64`](/reference/data-types/float) +Returns a random Float64 number drawn from the specified exponential distribution. [`Float64`](/core/reference/data-types/float) **Examples** @@ -405,13 +405,13 @@ randFisherF(d1, d2[, x]) **Arguments** -- `d1` — d1 degree of freedom in `X = (S1 / d1) / (S2 / d2)`. [`Float64`](/reference/data-types/float) -- `d2` — d2 degree of freedom in `X = (S1 / d1) / (S2 / d2)`. [`Float64`](/reference/data-types/float) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `d1` — d1 degree of freedom in `X = (S1 / d1) / (S2 / d2)`. [`Float64`](/core/reference/data-types/float) +- `d2` — d2 degree of freedom in `X = (S1 / d1) / (S2 / d2)`. [`Float64`](/core/reference/data-types/float) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random Float64 number drawn from the specified F-distribution [`Float64`](/reference/data-types/float) +Returns a random Float64 number drawn from the specified F-distribution [`Float64`](/core/reference/data-types/float) **Examples** @@ -446,13 +446,13 @@ randLogNormal(mean, stddev[, x]) **Arguments** -- `mean` — The mean value of distribution. [`Float64`](/reference/data-types/float) -- `stddev` — The standard deviation of the distribution. [`Float64`](/reference/data-types/float) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `mean` — The mean value of distribution. [`Float64`](/core/reference/data-types/float) +- `stddev` — The standard deviation of the distribution. [`Float64`](/core/reference/data-types/float) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random Float64 number drawn from the specified log-normal distribution. [`Float64`](/reference/data-types/float) +Returns a random Float64 number drawn from the specified log-normal distribution. [`Float64`](/core/reference/data-types/float) **Examples** @@ -487,13 +487,13 @@ randNegativeBinomial(experiments, probability[, x]) **Arguments** -- `experiments` — The number of experiments. [`UInt64`](/reference/data-types/int-uint) -- `probability` — `The probability of failure in each experiment as a value between `0` and `1`. [`Float64`](/reference/data-types/float) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `experiments` — The number of experiments. [`UInt64`](/core/reference/data-types/int-uint) +- `probability` — `The probability of failure in each experiment as a value between `0` and `1`. [`Float64`](/core/reference/data-types/float) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random Float64 number drawn from the specified negative binomial distribution [`UInt64`](/reference/data-types/int-uint) +Returns a random Float64 number drawn from the specified negative binomial distribution [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -528,13 +528,13 @@ randNormal(mean, stddev[, x]) **Arguments** -- `mean` — The mean value of distribution [`Float64`](/reference/data-types/float) -- `stddev` — The standard deviation of the distribution [`Float64`](/reference/data-types/float) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `mean` — The mean value of distribution [`Float64`](/core/reference/data-types/float) +- `stddev` — The standard deviation of the distribution [`Float64`](/core/reference/data-types/float) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random Float64 number drawn from the specified normal distribution. [`Float64`](/reference/data-types/float) +Returns a random Float64 number drawn from the specified normal distribution. [`Float64`](/core/reference/data-types/float) **Examples** @@ -569,12 +569,12 @@ randPoisson(n[, x]) **Arguments** -- `n` — The mean number of occurrences. [`UInt64`](/reference/data-types/int-uint) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `n` — The mean number of occurrences. [`UInt64`](/core/reference/data-types/int-uint) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random Float64 number drawn from the specified Poisson distribution. [`UInt64`](/reference/data-types/int-uint) +Returns a random Float64 number drawn from the specified Poisson distribution. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -609,12 +609,12 @@ randStudentT(degree_of_freedom[, x]) **Arguments** -- `degree_of_freedom` — Degrees of freedom. [`Float64`](/reference/data-types/float) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `degree_of_freedom` — Degrees of freedom. [`Float64`](/core/reference/data-types/float) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random Float64 number drawn from the specified Student's t-distribution. [`Float64`](/reference/data-types/float) +Returns a random Float64 number drawn from the specified Student's t-distribution. [`Float64`](/core/reference/data-types/float) **Examples** @@ -649,13 +649,13 @@ randUniform(min, max[, x]) **Arguments** -- `min` — Left boundary of the range (inclusive). [`Float64`](/reference/data-types/float) -- `max` — Right boundary of the range (inclusive). [`Float64`](/reference/data-types/float) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `min` — Left boundary of the range (inclusive). [`Float64`](/core/reference/data-types/float) +- `max` — Right boundary of the range (inclusive). [`Float64`](/core/reference/data-types/float) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a random number drawn uniformly from the interval formed by `min` and `max`. [`Float64`](/reference/data-types/float) +Returns a random number drawn uniformly from the interval formed by `min` and `max`. [`Float64`](/core/reference/data-types/float) **Examples** @@ -691,11 +691,11 @@ randomFixedString(length) **Arguments** -- `length` — Length of the string in bytes. [`UInt*`](/reference/data-types/int-uint) +- `length` — Length of the string in bytes. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns a string filled with random bytes. [`FixedString`](/reference/data-types/fixedstring) +Returns a string filled with random bytes. [`FixedString`](/core/reference/data-types/fixedstring) **Examples** @@ -728,12 +728,12 @@ randomPrintableASCII(length[, x]) **Arguments** -- `length` — String length in bytes. [`(U)Int*`](/reference/data-types/int-uint) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `length` — String length in bytes. [`(U)Int*`](/core/reference/data-types/int-uint) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a string with a random set of ASCII printable characters. [`String`](/reference/data-types/string) +Returns a string with a random set of ASCII printable characters. [`String`](/core/reference/data-types/string) **Examples** @@ -767,12 +767,12 @@ randomString(length[, x]) **Arguments** -- `length` — Length of the string in bytes. [`(U)Int*`](/reference/data-types/int-uint) -- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/reference/data-types) +- `length` — Length of the string in bytes. [`(U)Int*`](/core/reference/data-types/int-uint) +- `x` — Optional and ignored. The only purpose of the argument is to prevent [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) when the same function call is used multiple times in a query. [`Any`](/core/reference/data-types) **Returned value** -Returns a string filled with random bytes. [`String`](/reference/data-types/string) +Returns a string filled with random bytes. [`String`](/core/reference/data-types/string) **Examples** @@ -804,11 +804,11 @@ randomStringUTF8(length) **Arguments** -- `length` — Length of the string in code points. [`(U)Int*`](/reference/data-types/int-uint) +- `length` — Length of the string in code points. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a string filled with random UTF-8 codepoints. [`String`](/reference/data-types/string) +Returns a string filled with random UTF-8 codepoints. [`String`](/core/reference/data-types/string) **Examples** diff --git a/core/reference/functions/regular-functions/regular-functions-index.mdx b/core/reference/functions/regular-functions/regular-functions-index.mdx new file mode 100644 index 00000000..79b7e428 --- /dev/null +++ b/core/reference/functions/regular-functions/regular-functions-index.mdx @@ -0,0 +1,52 @@ +--- +description: 'Landing page for Regular Functions' +slug: /sql-reference/functions/regular-functions +title: 'Regular functions' +doc_type: 'landing-page' +--- + +| Page | Description | +|--------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------| +| [Overview](/core/reference/functions/regular-functions/overview) | Overview of all functions. | +| [Machine Learning](/core/reference/functions/regular-functions/machine-learning-functions) | Functions for machine learning. | +| [Introspection](/core/reference/functions/regular-functions/introspection) | Functions for introspection of ClickHouse. | +| [arrayJoin](/core/reference/functions/regular-functions/array-join) | The arrayJoin function which takes each row and generates a set of rows (unfold) | +| [Searching in Strings](/core/reference/functions/regular-functions/string-search-functions) | Functions for searching within strings. | +| [Hash](/core/reference/functions/regular-functions/hash-functions) | Hashing functions. | +| [UUIDs](/core/reference/functions/regular-functions/uuid-functions) | Functions for Working with UUIDs. | +| [Time-Series](/core/reference/functions/regular-functions/time-series-functions) | Functions for working with time series | +| [Random Numbers](/core/reference/functions/regular-functions/random-functions) | Functions for random number generation. | +| [NLP](/core/reference/functions/regular-functions/nlp-functions) | Functions for Natural Language Processing. | +| [Conditional](/core/reference/functions/regular-functions/conditional-functions) | Conditional functions. | +| [Nullable](/core/reference/functions/regular-functions/functions-for-nulls) | Functions for working with NULL. | +| [Bit](/core/reference/functions/regular-functions/bit-functions) | Bitwise functions. | +| [Time Window](/core/reference/functions/regular-functions/time-window-functions) | Functions which return the inclusive lower and exclusive upper bound of the corresponding window. | +| [IP Address](/core/reference/functions/regular-functions/ip-address-functions) | Functions for Working with IPv4 and IPv6 Addresses. | +| [Splitting Strings](/core/reference/functions/regular-functions/splitting-merging-functions) | Functions for splitting strings. | +| [Tuples](/core/reference/functions/regular-functions/tuple-functions) | Functions for working with tuples. | +| [String replacement](/core/reference/functions/regular-functions/string-replace-functions) | Functions for string replacement. | +| [User Defined Functions](/core/reference/functions/regular-functions/udf) | User Defined Functions. | +| [Comparison](/core/reference/functions/regular-functions/comparison-functions) | Comparison functions (equals, less, greater etc.) | +| [Other](/core/reference/functions/regular-functions/other-functions) | Functions which don't fit into any other category. | +| [JSON](/core/reference/functions/regular-functions/json-functions) | Functions for working with JSON. | +| [URL](/core/reference/functions/regular-functions/url-functions) | Functions for working with URLs. | +| [Encoding](/core/reference/functions/regular-functions/encoding-functions) | Functions for encoding data. | +| [ULID](/core/reference/functions/regular-functions/ulid-functions) | Functions for Working with ULID. | +| [Maps](/core/reference/functions/regular-functions/tuple-map-functions) | Functions for working with Maps. | +| [Dictionaries](/core/reference/functions/regular-functions/ext-dict-functions) | Functions for working with dictionaries. | +| [IN](/core/reference/functions/regular-functions/in-functions) | IN operators | +| [Files](/core/reference/functions/regular-functions/files) | The file function. | +| [Arrays](/core/reference/functions/regular-functions/array-functions) | Functions for working with arrays. | +| [String](/core/reference/functions/regular-functions/string-functions) | Functions for working with Strings. (Functions for searching in strings and for replacing in strings are described separately.) | +| [DateTime](/core/reference/functions/regular-functions/date-time-functions) | Functions for working with dates and times. | +| [Logical](/core/reference/functions/regular-functions/logical-functions) | Functions which perform logical operations on arguments of arbitrary numeric types. | +| [Rounding](/core/reference/functions/regular-functions/rounding-functions) | Functions for rounding. | +| [uniqTheta](/core/reference/functions/regular-functions/uniqtheta-functions) | uniqTheta functions work on two uniqThetaSketch objects to do set operation calculations such as ∪ / ∩ / ×. | +| [Distance](/core/reference/functions/regular-functions/distance-functions) | Functions for calculating vector norms, distances, normalization, and common operations in linear algebra and machine learning. | +| [Bitmap](/core/reference/functions/regular-functions/bitmap-functions) | Functions for bitmaps. | +| [Math](/core/reference/functions/regular-functions/math-functions) | Mathematical functions. | +| [Financial](/core/reference/functions/regular-functions/financial-functions) | Financial functions. | +| [Encryption](/core/reference/functions/regular-functions/encryption-functions) | Functions for encryption. | +| [Arithmetic](/core/reference/functions/regular-functions/arithmetic-functions) | Functions for performing arithmetic on `UInt`, `Int` or `Float` types. | +| [Embedded Dictionaries](/core/reference/functions/regular-functions/embedded-dict-functions) | Functions for Working with Embedded Dictionaries | +| [Type Conversion](/core/reference/functions/regular-functions/type-conversion-functions) | Functions for converting from one type to another type. | diff --git a/reference/functions/regular-functions/rounding-functions.mdx b/core/reference/functions/regular-functions/rounding-functions.mdx similarity index 78% rename from reference/functions/regular-functions/rounding-functions.mdx rename to core/reference/functions/regular-functions/rounding-functions.mdx index e979b34e..f1ed6ed2 100644 --- a/reference/functions/regular-functions/rounding-functions.mdx +++ b/core/reference/functions/regular-functions/rounding-functions.mdx @@ -35,12 +35,12 @@ ceiling(x[, N]) **Arguments** -- `x` — The value to round. [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`(U)Int*`](/reference/data-types/int-uint) -- `N` — Optional. The number of decimal places to round to. Defaults to zero, which means rounding to an integer. Can be negative. [`(U)Int*`](/reference/data-types/int-uint) +- `x` — The value to round. [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`(U)Int*`](/core/reference/data-types/int-uint) +- `N` — Optional. The number of decimal places to round to. Defaults to zero, which means rounding to an integer. Can be negative. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a rounded number of the same type as `x`. [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`(U)Int*`](/reference/data-types/int-uint) +Returns a rounded number of the same type as `x`. [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`(U)Int*`](/core/reference/data-types/int-uint) **Examples** @@ -87,12 +87,12 @@ floor(x[, N]) **Arguments** -- `x` — The value to round. [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`(U)Int*`](/reference/data-types/int-uint) -- `N` — Optional. The number of decimal places to round to. Defaults to zero, which means rounding to an integer. Can be negative. [`(U)Int*`](/reference/data-types/int-uint) +- `x` — The value to round. [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`(U)Int*`](/core/reference/data-types/int-uint) +- `N` — Optional. The number of decimal places to round to. Defaults to zero, which means rounding to an integer. Can be negative. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a rounded number of the same type as `x`. [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`(U)Int*`](/reference/data-types/int-uint) +Returns a rounded number of the same type as `x`. [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`(U)Int*`](/core/reference/data-types/int-uint) **Examples** @@ -143,12 +143,12 @@ round(x[, N]) **Arguments** -- `x` — A number to round. [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`(U)Int*`](/reference/data-types/int-uint) -- `N` — Optional. The number of decimal places to round to. Defaults to `0`. [`(U)Int*`](/reference/data-types/int-uint) +- `x` — A number to round. [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`(U)Int*`](/core/reference/data-types/int-uint) +- `N` — Optional. The number of decimal places to round to. Defaults to `0`. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a rounded number of the same type as `x`. [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`(U)Int*`](/reference/data-types/int-uint) +Returns a rounded number of the same type as `x`. [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`(U)Int*`](/core/reference/data-types/int-uint) **Examples** @@ -202,11 +202,11 @@ roundAge(num) **Arguments** -- `age` — A number representing an age in years. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `age` — A number representing an age in years. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns either the highest or lowest age of the range `age` falls within. [`UInt8`](/reference/data-types/int-uint) +Returns either the highest or lowest age of the range `age` falls within. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -268,12 +268,12 @@ roundBankers(x[, N]) **Arguments** -- `x` — A number to round. [`(U)Int*`](/reference/data-types/int-uint) or [`Decimal*`](/reference/data-types/decimal) or [`Float*`](/reference/data-types/float) -- `[, N]` — Optional. The number of decimal places to round to. Defaults to `0`. [`(U)Int*`](/reference/data-types/int-uint) +- `x` — A number to round. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Decimal*`](/core/reference/data-types/decimal) or [`Float*`](/core/reference/data-types/float) +- `[, N]` — Optional. The number of decimal places to round to. Defaults to `0`. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a value rounded by the banker's rounding method. [`(U)Int*`](/reference/data-types/int-uint) or [`Decimal*`](/reference/data-types/decimal) or [`Float*`](/reference/data-types/float) +Returns a value rounded by the banker's rounding method. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Decimal*`](/core/reference/data-types/decimal) or [`Float*`](/core/reference/data-types/float) **Examples** @@ -313,12 +313,12 @@ roundDown(num, arr) **Arguments** -- `num` — A number to round down. [`(U)Int*`](/reference/data-types/int-uint) or [`Decimal*`](/reference/data-types/decimal) or [`Float*`](/reference/data-types/float) -- `arr` — Array of elements to round `num` down to. [`Array((U)Int*)`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) +- `num` — A number to round down. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Decimal*`](/core/reference/data-types/decimal) or [`Float*`](/core/reference/data-types/float) +- `arr` — Array of elements to round `num` down to. [`Array((U)Int*)`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) **Returned value** -Returns a number rounded down to an element in `arr`. If the value is less than the lowest bound, the lowest bound is returned. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +Returns a number rounded down to an element in `arr`. If the value is less than the lowest bound, the lowest bound is returned. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Examples** @@ -354,11 +354,11 @@ roundDuration(num) **Arguments** -- `num` — A number to round to one of the numbers in the set of common durations. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `num` — A number to round to one of the numbers in the set of common durations. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `0`, for `num` < 1. Otherwise, one of: `1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000`. [`UInt16`](/reference/data-types/int-uint) +Returns `0`, for `num` < 1. Otherwise, one of: `1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000`. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -404,11 +404,11 @@ roundToExp2(num) **Arguments** -- `num` — A number to round. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `num` — A number to round. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns `num` rounded down to the nearest (whole non-negative) power of two, otherwise `0` for `num < 1`. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +Returns `num` rounded down to the nearest (whole non-negative) power of two, otherwise `0` for `num < 1`. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Examples** @@ -445,12 +445,12 @@ truncate(x[, N]) **Arguments** -- `x` — The value to round. [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`(U)Int*`](/reference/data-types/int-uint) -- `N` — Optional. The number of decimal places to round to. Defaults to zero, which means rounding to an integer. [`(U)Int*`](/reference/data-types/int-uint) +- `x` — The value to round. [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`(U)Int*`](/core/reference/data-types/int-uint) +- `N` — Optional. The number of decimal places to round to. Defaults to zero, which means rounding to an integer. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a rounded number of the same type as `x`. [`Float*`](/reference/data-types/float) or [`Decimal*`](/reference/data-types/decimal) or [`(U)Int*`](/reference/data-types/int-uint) +Returns a rounded number of the same type as `x`. [`Float*`](/core/reference/data-types/float) or [`Decimal*`](/core/reference/data-types/decimal) or [`(U)Int*`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/regular-functions/splitting-merging-functions.mdx b/core/reference/functions/regular-functions/splitting-merging-functions.mdx similarity index 70% rename from reference/functions/regular-functions/splitting-merging-functions.mdx rename to core/reference/functions/regular-functions/splitting-merging-functions.mdx index e1cacbba..171cdb67 100644 --- a/reference/functions/regular-functions/splitting-merging-functions.mdx +++ b/core/reference/functions/regular-functions/splitting-merging-functions.mdx @@ -35,12 +35,12 @@ alphaTokens(s[, max_substrings]) **Arguments** -- `s` — The string to split. [`String`](/reference/data-types/string) -- `max_substrings` — Optional. When `max_substrings > 0`, the number of returned substrings will be no more than `max_substrings`, otherwise the function will return as many substrings as possible. [`Int64`](/reference/data-types/int-uint) +- `s` — The string to split. [`String`](/core/reference/data-types/string) +- `max_substrings` — Optional. When `max_substrings > 0`, the number of returned substrings will be no more than `max_substrings`, otherwise the function will return as many substrings as possible. [`Int64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of selected substrings of `s`. [`Array(String)`](/reference/data-types/array) +Returns an array of selected substrings of `s`. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -72,12 +72,12 @@ arrayStringConcat(arr[, separator]) **Arguments** -- `arr` — The array to concatenate. [`Array(T)`](/reference/data-types/array) -- `separator` — Optional. Separator string. By default an empty string. [`const String`](/reference/data-types/string) +- `arr` — The array to concatenate. [`Array(T)`](/core/reference/data-types/array) +- `separator` — Optional. Separator string. By default an empty string. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the concatenated string. [`String`](/reference/data-types/string) +Returns the concatenated string. [`String`](/core/reference/data-types/string) **Examples** @@ -109,12 +109,12 @@ extractAllGroupsVertical(s, regexp) **Arguments** -- `s` — Input string to extract from. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `regexp` — Regular expression to match by. [`const String`](/reference/data-types/string) or [`const FixedString`](/reference/data-types/fixedstring) +- `s` — Input string to extract from. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `regexp` — Regular expression to match by. [`const String`](/core/reference/data-types/string) or [`const FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns an array of arrays, where each inner array contains the captured groups from one match. Each match produces an array with elements corresponding to the capturing groups in the regular expression (group 1, group 2, etc.). If no matches are found, returns an empty array. [`Array(Array(String))`](/reference/data-types/array) +Returns an array of arrays, where each inner array contains the captured groups from one match. Each match produces an array with elements corresponding to the capturing groups in the regular expression (group 1, group 2, etc.). If no matches are found, returns an empty array. [`Array(Array(String))`](/core/reference/data-types/array) **Examples** @@ -147,12 +147,12 @@ ngrams(s, N) **Arguments** -- `s` — Input string. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `N` — The n-gram length. [`const UInt8/16/32/64`](/reference/data-types/int-uint) +- `s` — Input string. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `N` — The n-gram length. [`const UInt8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array with n-grams. [`Array(String)`](/reference/data-types/array) +Returns an array with n-grams. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -188,12 +188,12 @@ reverseBySeparator(string[, separator]) **Arguments** -- `string` — The input string to reverse the order of its parts. [`String`](/reference/data-types/string) -- `separator` — The separator string used to identify parts. If not provided, uses '.' (dot). Default: '.' [`String`](/reference/data-types/string) +- `string` — The input string to reverse the order of its parts. [`String`](/core/reference/data-types/string) +- `separator` — The separator string used to identify parts. If not provided, uses '.' (dot). Default: '.' [`String`](/core/reference/data-types/string) **Returned value** -Returns a string with substrings ordered from right to left of the original string, joined by the same separator. [`String`](/reference/data-types/string) +Returns a string with substrings ordered from right to left of the original string, joined by the same separator. [`String`](/core/reference/data-types/string) **Examples** @@ -265,7 +265,7 @@ Splits a string separated by a specified constant string `separator` of exactly Empty substrings may be selected if the separator occurs at the beginning or end of the string, or if there are multiple consecutive separators. -Setting [`splitby_max_substrings_includes_remaining_string`](/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (default: `0`) controls if the remaining string is included in the last element of the result array when argument `max_substrings > 0`. +Setting [`splitby_max_substrings_includes_remaining_string`](/core/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (default: `0`) controls if the remaining string is included in the last element of the result array when argument `max_substrings > 0`. Empty substrings may be selected when: @@ -281,13 +281,13 @@ splitByChar(separator, s[, max_substrings]) **Arguments** -- `separator` — The separator must be a single-byte character. [`String`](/reference/data-types/string) -- `s` — The string to split. [`String`](/reference/data-types/string) -- `max_substrings` — Optional. If `max_substrings > 0`, the returned array will contain at most `max_substrings` substrings, otherwise the function will return as many substrings as possible. The default value is `0`. [`Int64`](/reference/data-types/int-uint) +- `separator` — The separator must be a single-byte character. [`String`](/core/reference/data-types/string) +- `s` — The string to split. [`String`](/core/reference/data-types/string) +- `max_substrings` — Optional. If `max_substrings > 0`, the returned array will contain at most `max_substrings` substrings, otherwise the function will return as many substrings as possible. The default value is `0`. [`Int64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of selected substrings. [`Array(String)`](/reference/data-types/array) +Returns an array of selected substrings. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -310,7 +310,7 @@ Introduced in: v21.9.0 Splits a string separated by whitespace and punctuation characters into an array of substrings. -Setting [`splitby_max_substrings_includes_remaining_string`](/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (default: `0`) controls if the remaining string is included in the last element of the result array when argument `max_substrings > 0`. +Setting [`splitby_max_substrings_includes_remaining_string`](/core/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (default: `0`) controls if the remaining string is included in the last element of the result array when argument `max_substrings > 0`. **Syntax** @@ -321,12 +321,12 @@ splitByNonAlpha(s[, max_substrings]) **Arguments** -- `s` — The string to split. [`String`](/reference/data-types/string) -- `max_substrings` — Optional. When `max_substrings > 0`, the returned substrings will be no more than `max_substrings`, otherwise the function will return as many substrings as possible. Default value: `0`. [`Int64`](/reference/data-types/int-uint) +- `s` — The string to split. [`String`](/core/reference/data-types/string) +- `max_substrings` — Optional. When `max_substrings > 0`, the returned substrings will be no more than `max_substrings`, otherwise the function will return as many substrings as possible. Default value: `0`. [`Int64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of selected substrings of `s`. [`Array(String)`](/reference/data-types/array) +Returns an array of selected substrings of `s`. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -354,7 +354,7 @@ Empty substrings may be selected when: - the original string string is empty while the regular expression is not empty. -Setting [`splitby_max_substrings_includes_remaining_string`](/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (default: `0`) controls if the remaining string is included in the last element of the result array when argument `max_substrings > 0`. +Setting [`splitby_max_substrings_includes_remaining_string`](/core/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (default: `0`) controls if the remaining string is included in the last element of the result array when argument `max_substrings > 0`. **Syntax** @@ -365,13 +365,13 @@ splitByRegexp(regexp, s[, max_substrings]) **Arguments** -- `regexp` — Regular expression. Constant. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `s` — The string to split. [`String`](/reference/data-types/string) -- `max_substrings` — Optional. When `max_substrings > 0`, the returned substrings will be no more than `max_substrings`, otherwise the function will return as many substrings as possible. Default value: `0`. [`Int64`](/reference/data-types/int-uint) +- `regexp` — Regular expression. Constant. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `s` — The string to split. [`String`](/core/reference/data-types/string) +- `max_substrings` — Optional. When `max_substrings > 0`, the returned substrings will be no more than `max_substrings`, otherwise the function will return as many substrings as possible. Default value: `0`. [`Int64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of the selected substrings of `s`. [`Array(String)`](/reference/data-types/array) +Returns an array of the selected substrings of `s`. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -412,7 +412,7 @@ Empty substrings may be selected when: - The original string `s` is empty while the separator is not empty -Setting [`splitby_max_substrings_includes_remaining_string`](/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (default: `0`) controls if the remaining string is included in the last element of the result array when argument `max_substrings > 0`. +Setting [`splitby_max_substrings_includes_remaining_string`](/core/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (default: `0`) controls if the remaining string is included in the last element of the result array when argument `max_substrings > 0`. **Syntax** @@ -423,13 +423,13 @@ splitByString(separator, s[, max_substrings]) **Arguments** -- `separator` — The separator. [`String`](/reference/data-types/string) -- `s` — The string to split. [`String`](/reference/data-types/string) -- `max_substrings` — Optional. When `max_substrings > 0`, the returned substrings will be no more than `max_substrings`, otherwise the function will return as many substrings as possible. Default value: `0`. [`Int64`](/reference/data-types/int-uint) +- `separator` — The separator. [`String`](/core/reference/data-types/string) +- `s` — The string to split. [`String`](/core/reference/data-types/string) +- `max_substrings` — Optional. When `max_substrings > 0`, the returned substrings will be no more than `max_substrings`, otherwise the function will return as many substrings as possible. Default value: `0`. [`Int64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of selected substrings of `s` [`Array(String)`](/reference/data-types/array) +Returns an array of selected substrings of `s` [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -464,7 +464,7 @@ Introduced in: v21.9.0 Splits a string which is separated by whitespace characters into an array of substrings. -Setting [`splitby_max_substrings_includes_remaining_string`](/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (default: `0`) controls if the remaining string is included in the last element of the result array when argument `max_substrings > 0`. +Setting [`splitby_max_substrings_includes_remaining_string`](/core/reference/settings/session-settings#splitby_max_substrings_includes_remaining_string) (default: `0`) controls if the remaining string is included in the last element of the result array when argument `max_substrings > 0`. **Syntax** @@ -475,12 +475,12 @@ splitByWhitespace(s[, max_substrings]) **Arguments** -- `s` — The string to split. [`String`](/reference/data-types/string) -- `max_substrings` — Optional. When `max_substrings > 0`, the returned substrings will be no more than `max_substrings`, otherwise the function will return as many substrings as possible. Default value: `0`. [`Int64`](/reference/data-types/int-uint) +- `s` — The string to split. [`String`](/core/reference/data-types/string) +- `max_substrings` — Optional. When `max_substrings > 0`, the returned substrings will be no more than `max_substrings`, otherwise the function will return as many substrings as possible. Default value: `0`. [`Int64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of the selected substrings of `s`. [`Array(String)`](/reference/data-types/array) +Returns an array of the selected substrings of `s`. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -501,12 +501,12 @@ Introduced in: v21.11.0 Splits a string into tokens using the given tokenizer. Available tokenizers: -- `splitByNonAlpha` splits strings along non-alphanumeric ASCII characters (also see function [splitByNonAlpha](/reference/functions/regular-functions/splitting-merging-functions#splitByNonAlpha)). -- `splitByString(S)` splits strings along certain user-defined separator strings `S` (also see function [splitByString](/reference/functions/regular-functions/splitting-merging-functions#splitByString)). The separators can be specified using an optional parameter, for example, `tokens(value, 'splitByString', [', ', '; ', '\n', '\\'])`. Note that each string can consist of multiple characters (`', '` in the example). The default separator list, if not specified explicitly, is a single whitespace `[' ']`. +- `splitByNonAlpha` splits strings along non-alphanumeric ASCII characters (also see function [splitByNonAlpha](/core/reference/functions/regular-functions/splitting-merging-functions#splitByNonAlpha)). +- `splitByString(S)` splits strings along certain user-defined separator strings `S` (also see function [splitByString](/core/reference/functions/regular-functions/splitting-merging-functions#splitByString)). The separators can be specified using an optional parameter, for example, `tokens(value, 'splitByString', [', ', '; ', '\n', '\\'])`. Note that each string can consist of multiple characters (`', '` in the example). The default separator list, if not specified explicitly, is a single whitespace `[' ']`. - `asciiCJK` splits strings into tokens using Unicode word boundary rules (similar to UAX #29). ASCII alphanumeric characters and underscores form tokens with connectors (`:` for letters, `.` and `'` for same-type characters). Non-ASCII Unicode characters become single-character tokens. -- `ngrams(N)` splits strings into equally large `N`-grams (also see function [ngrams](/reference/functions/regular-functions/splitting-merging-functions#ngrams)). The ngram length can be specified using an optional integer parameter between 1 and 8, for example, `tokens(value, 'ngrams', 3)`. The default ngram size, if not specified explicitly, is 3. -- `sparseGrams(min_length, max_length, min_cutoff_length)` splits strings into variable-length n-grams of at least `min_length` and at most `max_length` (inclusive) characters (also see function [sparseGrams](/reference/functions/regular-functions/string-functions#sparseGrams)). Unless specified explicitly, `min_length` and `max_length` default to 3 and 100. If parameter `min_cutoff_length` is provided, only n-grams with length greater or equal than `min_cutoff_length` are returned. Compared to `ngrams(N)`, the `sparseGrams` tokenizer produces variable-length N-grams, allowing for a more flexible representation of the original text. For example, `tokens(value, 'sparseGrams', 3, 5, 4)` internally generates 3-, 4-, 5-grams from the input string but only the 4- and 5-grams are returned. -- `array` performs no tokenization, i.e. every row value is a token (also see function [array](/reference/functions/regular-functions/array-functions#array)). +- `ngrams(N)` splits strings into equally large `N`-grams (also see function [ngrams](/core/reference/functions/regular-functions/splitting-merging-functions#ngrams)). The ngram length can be specified using an optional integer parameter between 1 and 8, for example, `tokens(value, 'ngrams', 3)`. The default ngram size, if not specified explicitly, is 3. +- `sparseGrams(min_length, max_length, min_cutoff_length)` splits strings into variable-length n-grams of at least `min_length` and at most `max_length` (inclusive) characters (also see function [sparseGrams](/core/reference/functions/regular-functions/string-functions#sparseGrams)). Unless specified explicitly, `min_length` and `max_length` default to 3 and 100. If parameter `min_cutoff_length` is provided, only n-grams with length greater or equal than `min_cutoff_length` are returned. Compared to `ngrams(N)`, the `sparseGrams` tokenizer produces variable-length N-grams, allowing for a more flexible representation of the original text. For example, `tokens(value, 'sparseGrams', 3, 5, 4)` internally generates 3-, 4-, 5-grams from the input string but only the 4- and 5-grams are returned. +- `array` performs no tokenization, i.e. every row value is a token (also see function [array](/core/reference/functions/regular-functions/array-functions#array)). In case of the `splitByString` tokenizer, if the tokens do not form a [prefix code](https://en.wikipedia.org/wiki/Prefix_code), you likely want that the matching prefers longer separators first. To do so, pass the separators in order of descending length. @@ -526,17 +526,17 @@ tokens(value, 'array') **Arguments** -- `value` — The input string. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `tokenizer` — The tokenizer to use. Valid arguments are `splitByNonAlpha`, `splitByString`, `asciiCJK`, `ngrams`, `sparseGrams`, and `array`. Optional, if not set explicitly, defaults to `splitByNonAlpha`. [`const String`](/reference/data-types/string) -- `n` — Only relevant if argument `tokenizer` is `ngrams`: An optional parameter which defines the length of the ngrams. If not set explicitly, defaults to `3`. [`const UInt8`](/reference/data-types/int-uint) -- `separators` — Only relevant if argument `tokenizer` is `split`: An optional parameter which defines the separator strings. If not set explicitly, defaults to `[' ']`. [`const Array(String)`](/reference/data-types/array) -- `min_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the minimum gram length, defaults to 3. [`const UInt8`](/reference/data-types/int-uint) -- `max_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the maximum gram length, defaults to 100. [`const UInt8`](/reference/data-types/int-uint) -- `min_cutoff_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the minimum cutoff length. [`const UInt8`](/reference/data-types/int-uint) +- `value` — The input string. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `tokenizer` — The tokenizer to use. Valid arguments are `splitByNonAlpha`, `splitByString`, `asciiCJK`, `ngrams`, `sparseGrams`, and `array`. Optional, if not set explicitly, defaults to `splitByNonAlpha`. [`const String`](/core/reference/data-types/string) +- `n` — Only relevant if argument `tokenizer` is `ngrams`: An optional parameter which defines the length of the ngrams. If not set explicitly, defaults to `3`. [`const UInt8`](/core/reference/data-types/int-uint) +- `separators` — Only relevant if argument `tokenizer` is `split`: An optional parameter which defines the separator strings. If not set explicitly, defaults to `[' ']`. [`const Array(String)`](/core/reference/data-types/array) +- `min_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the minimum gram length, defaults to 3. [`const UInt8`](/core/reference/data-types/int-uint) +- `max_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the maximum gram length, defaults to 100. [`const UInt8`](/core/reference/data-types/int-uint) +- `min_cutoff_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the minimum cutoff length. [`const UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns the resulting array of tokens from input string. [`Array`](/reference/data-types/array) +Returns the resulting array of tokens from input string. [`Array`](/core/reference/data-types/array) **Examples** @@ -586,17 +586,17 @@ tokensForLikePattern(value[, tokenizer[, tokenizer_specific_arguments...]]) **Arguments** -- `value` — The input string. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `tokenizer` — The tokenizer to use. Valid arguments are `splitByNonAlpha`, `splitByString`, `asciiCJK`, `ngrams`, `sparseGrams`, and `array`. Optional, if not set explicitly, defaults to `splitByNonAlpha`. [`const String`](/reference/data-types/string) -- `n` — Only relevant if argument `tokenizer` is `ngrams`: An optional parameter which defines the length of the ngrams. If not set explicitly, defaults to `3`. [`const UInt8`](/reference/data-types/int-uint) -- `separators` — Only relevant if argument `tokenizer` is `split`: An optional parameter which defines the separator strings. If not set explicitly, defaults to `[' ']`. [`const Array(String)`](/reference/data-types/array) -- `min_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the minimum gram length, defaults to 3. [`const UInt8`](/reference/data-types/int-uint) -- `max_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the maximum gram length, defaults to 100. [`const UInt8`](/reference/data-types/int-uint) -- `min_cutoff_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the minimum cutoff length. [`const UInt8`](/reference/data-types/int-uint) +- `value` — The input string. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `tokenizer` — The tokenizer to use. Valid arguments are `splitByNonAlpha`, `splitByString`, `asciiCJK`, `ngrams`, `sparseGrams`, and `array`. Optional, if not set explicitly, defaults to `splitByNonAlpha`. [`const String`](/core/reference/data-types/string) +- `n` — Only relevant if argument `tokenizer` is `ngrams`: An optional parameter which defines the length of the ngrams. If not set explicitly, defaults to `3`. [`const UInt8`](/core/reference/data-types/int-uint) +- `separators` — Only relevant if argument `tokenizer` is `split`: An optional parameter which defines the separator strings. If not set explicitly, defaults to `[' ']`. [`const Array(String)`](/core/reference/data-types/array) +- `min_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the minimum gram length, defaults to 3. [`const UInt8`](/core/reference/data-types/int-uint) +- `max_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the maximum gram length, defaults to 100. [`const UInt8`](/core/reference/data-types/int-uint) +- `min_cutoff_length` — Only relevant if argument `tokenizer` is `sparseGrams`: An optional parameter which defines the minimum cutoff length. [`const UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns the resulting array of tokens from input string. [`Array`](/reference/data-types/array) +Returns the resulting array of tokens from input string. [`Array`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/regular-functions/string-functions.mdx b/core/reference/functions/regular-functions/string-functions.mdx similarity index 83% rename from reference/functions/regular-functions/string-functions.mdx rename to core/reference/functions/regular-functions/string-functions.mdx index c5f25269..ef874d09 100644 --- a/reference/functions/regular-functions/string-functions.mdx +++ b/core/reference/functions/regular-functions/string-functions.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' import VersionBadge from "/snippets/components/VersionBadge/VersionBadge.jsx"; -Functions for [searching](/reference/functions/regular-functions/string-search-functions) in strings and for [replacing](/reference/functions/regular-functions/string-replace-functions) in strings are described separately. +Functions for [searching](/core/reference/functions/regular-functions/string-search-functions) in strings and for [replacing](/core/reference/functions/regular-functions/string-replace-functions) in strings are described separately. The documentation below is generated from the `system.functions` system table. @@ -35,11 +35,11 @@ CRC32(s) **Arguments** -- `s` — String to calculate CRC32 for. [`String`](/reference/data-types/string) +- `s` — String to calculate CRC32 for. [`String`](/core/reference/data-types/string) **Returned value** -Returns the CRC32 checksum of the string. [`UInt32`](/reference/data-types/int-uint) +Returns the CRC32 checksum of the string. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -69,11 +69,11 @@ CRC32IEEE(s) **Arguments** -- `s` — String to calculate CRC32 for. [`String`](/reference/data-types/string) +- `s` — String to calculate CRC32 for. [`String`](/core/reference/data-types/string) **Returned value** -Returns the CRC32 checksum of the string. [`UInt32`](/reference/data-types/int-uint) +Returns the CRC32 checksum of the string. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -103,11 +103,11 @@ CRC64(s) **Arguments** -- `s` — String to calculate CRC64 for. [`String`](/reference/data-types/string) +- `s` — String to calculate CRC64 for. [`String`](/core/reference/data-types/string) **Returned value** -Returns the CRC64 checksum of the string. [`UInt64`](/reference/data-types/int-uint) +Returns the CRC64 checksum of the string. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -137,12 +137,12 @@ appendTrailingCharIfAbsent(s, c) **Arguments** -- `s` — Input string. [`String`](/reference/data-types/string) -- `c` — Character to append if absent. [`String`](/reference/data-types/string) +- `s` — Input string. [`String`](/core/reference/data-types/string) +- `c` — Character to append if absent. [`String`](/core/reference/data-types/string) **Returned value** -Returns string `s` with character `c` appended if `s` does not end with `c`. [`String`](/reference/data-types/string) +Returns string `s` with character `c` appended if `s` does not end with `c`. [`String`](/core/reference/data-types/string) **Examples** @@ -172,11 +172,11 @@ ascii(s) **Arguments** -- `s` — String input. [`String`](/reference/data-types/string) +- `s` — String input. [`String`](/core/reference/data-types/string) **Returned value** -Returns the ASCII code point of the first character. If `s` is empty, the result is `0`. If the first character is not an ASCII character or not part of the Latin-1 supplement range of UTF-16, the result is undefined. [`Int32`](/reference/data-types/int-uint) +Returns the ASCII code point of the first character. If `s` is empty, the result is `0`. If the first character is not an ASCII character or not part of the Latin-1 supplement range of UTF-16, the result is undefined. [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -207,11 +207,11 @@ base32Decode(encoded) **Arguments** -- `encoded` — String column or constant. [`String`](/reference/data-types/string) +- `encoded` — String column or constant. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string containing the decoded value of the argument. [`String`](/reference/data-types/string) +Returns a string containing the decoded value of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -241,11 +241,11 @@ base32Encode(plaintext) **Arguments** -- `plaintext` — Plaintext to encode. [`String`](/reference/data-types/string) +- `plaintext` — Plaintext to encode. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string containing the encoded value of the argument. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +Returns a string containing the encoded value of the argument. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Examples** @@ -280,12 +280,12 @@ base58Decode(encoded[, expected_size]) **Arguments** -- `encoded` — String column or constant to decode. [`String`](/reference/data-types/string) -- `expected_size` — Optional. Expected decoded size in bytes. When 32 or 64, an optimized decoder is used; for other values, the generic decoder is used. [`UInt8, UInt16, UInt32, or UInt64`](/reference/data-types/int-uint) +- `encoded` — String column or constant to decode. [`String`](/core/reference/data-types/string) +- `expected_size` — Optional. Expected decoded size in bytes. When 32 or 64, an optimized decoder is used; for other values, the generic decoder is used. [`UInt8, UInt16, UInt32, or UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns a string containing the decoded value of the argument. [`String`](/reference/data-types/string) +Returns a string containing the decoded value of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -315,11 +315,11 @@ base58Encode(plaintext) **Arguments** -- `plaintext` — Plaintext to encode. [`String`](/reference/data-types/string) +- `plaintext` — Plaintext to encode. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string containing the encoded value of the argument. [`String`](/reference/data-types/string) +Returns a string containing the encoded value of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -352,11 +352,11 @@ base64Decode(encoded) **Arguments** -- `encoded` — String column or constant to decode. If the string is not valid Base64-encoded, an exception is thrown. [`String`](/reference/data-types/string) +- `encoded` — String column or constant to decode. If the string is not valid Base64-encoded, an exception is thrown. [`String`](/core/reference/data-types/string) **Returned value** -Returns the decoded string. [`String`](/reference/data-types/string) +Returns the decoded string. [`String`](/core/reference/data-types/string) **Examples** @@ -388,11 +388,11 @@ base64Encode(plaintext) **Arguments** -- `plaintext` — Plaintext column or constant to decode. [`String`](/reference/data-types/string) +- `plaintext` — Plaintext column or constant to decode. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string containing the encoded value of the argument. [`String`](/reference/data-types/string) +Returns a string containing the encoded value of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -423,11 +423,11 @@ base64URLDecode(encoded) **Arguments** -- `encoded` — String column or constant to encode. If the string is not valid Base64-encoded, an exception is thrown. [`String`](/reference/data-types/string) +- `encoded` — String column or constant to encode. If the string is not valid Base64-encoded, an exception is thrown. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string containing the decoded value of the argument. [`String`](/reference/data-types/string) +Returns a string containing the decoded value of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -457,11 +457,11 @@ base64URLEncode(plaintext) **Arguments** -- `plaintext` — Plaintext column or constant to encode. [`String`](/reference/data-types/string) +- `plaintext` — Plaintext column or constant to encode. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string containing the encoded value of the argument. [`String`](/reference/data-types/string) +Returns a string containing the encoded value of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -493,11 +493,11 @@ basename(expr) **Arguments** -- `expr` — A string expression. Backslashes must be escaped. [`String`](/reference/data-types/string) +- `expr` — A string expression. Backslashes must be escaped. [`String`](/core/reference/data-types/string) **Returned value** -Returns the tail of the input string after its last slash or backslash. If the input string ends with a slash or backslash, the function returns an empty string. Returns the original string if there are no slashes or backslashes. [`String`](/reference/data-types/string) +Returns the tail of the input string after its last slash or backslash. If the input string ends with a slash or backslash, the function returns an empty string. Returns the original string if there are no slashes or backslashes. [`String`](/core/reference/data-types/string) **Examples** @@ -553,12 +553,12 @@ byteHammingDistance(s1, s2) **Arguments** -- `s1` — First input string. [`String`](/reference/data-types/string) -- `s2` — Second input string. [`String`](/reference/data-types/string) +- `s1` — First input string. [`String`](/core/reference/data-types/string) +- `s2` — Second input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the Hamming distance between the two strings. [`UInt64`](/reference/data-types/int-uint) +Returns the Hamming distance between the two strings. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -591,11 +591,11 @@ caseFoldUTF8(str) **Arguments** -- `str` — UTF-8 encoded input string. [`String`](/reference/data-types/string) +- `str` — UTF-8 encoded input string. [`String`](/core/reference/data-types/string) **Returned value** -Case-folded UTF-8 string. [`String`](/reference/data-types/string) +Case-folded UTF-8 string. [`String`](/core/reference/data-types/string) **Examples** @@ -625,11 +625,11 @@ compareSubstrings(s1, s2, s1_offset, s2_offset, num_bytes) **Arguments** -- `s1` — The first string to compare. [`String`](/reference/data-types/string) -- `s2` — The second string to compare. [`String`](/reference/data-types/string) -- `s1_offset` — The position (zero-based) in `s1` from which the comparison starts. [`UInt*`](/reference/data-types/int-uint) -- `s2_offset` — The position (zero-based index) in `s2` from which the comparison starts. [`UInt*`](/reference/data-types/int-uint) -- `num_bytes` — The maximum number of bytes to compare in both strings. If `s1_offset` (or `s2_offset`) + `num_bytes` exceeds the end of an input string, `num_bytes` will be reduced accordingly. [`UInt*`](/reference/data-types/int-uint) +- `s1` — The first string to compare. [`String`](/core/reference/data-types/string) +- `s2` — The second string to compare. [`String`](/core/reference/data-types/string) +- `s1_offset` — The position (zero-based) in `s1` from which the comparison starts. [`UInt*`](/core/reference/data-types/int-uint) +- `s2_offset` — The position (zero-based index) in `s2` from which the comparison starts. [`UInt*`](/core/reference/data-types/int-uint) +- `num_bytes` — The maximum number of bytes to compare in both strings. If `s1_offset` (or `s2_offset`) + `num_bytes` exceeds the end of an input string, `num_bytes` will be reduced accordingly. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** @@ -637,7 +637,7 @@ Returns: - `-1` if `s1`[`s1_offset` : `s1_offset` + `num_bytes`] < `s2`[`s2_offset` : `s2_offset` + `num_bytes`]. - `0` if `s1`[`s1_offset` : `s1_offset` + `num_bytes`] = `s2`[`s2_offset` : `s2_offset` + `num_bytes`]. - `1` if `s1`[`s1_offset` : `s1_offset` + `num_bytes`] > `s2`[`s2_offset` : `s2_offset` + `num_bytes`]. - [`Int8`](/reference/data-types/int-uint) + [`Int8`](/core/reference/data-types/int-uint) **Examples** @@ -659,7 +659,7 @@ Introduced in: v1.1.0 Concatenates the given arguments. -Arguments which are not of types [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) are converted to strings using their default serialization. +Arguments which are not of types [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) are converted to strings using their default serialization. As this decreases performance, it is not recommended to use non-String/FixedString arguments. **Syntax** @@ -670,11 +670,11 @@ concat([s1, s2, ...]) **Arguments** -- `s1, s2, ...` — Any number of values of arbitrary type. [`Any`](/reference/data-types) +- `s1, s2, ...` — Any number of values of arbitrary type. [`Any`](/core/reference/data-types) **Returned value** -Returns the String created by concatenating the arguments. If any of arguments is `NULL`, the function returns `NULL`. If there are no arguments, it returns an empty string. [`Nullable(String)`](/reference/data-types/nullable) +Returns the String created by concatenating the arguments. If any of arguments is `NULL`, the function returns `NULL`. If there are no arguments, it returns an empty string. [`Nullable(String)`](/core/reference/data-types/nullable) **Examples** @@ -719,11 +719,11 @@ concatAssumeInjective([s1, s2, ...]) **Arguments** -- `s1, s2, ...` — Any number of values of arbitrary type. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `s1, s2, ...` — Any number of values of arbitrary type. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the string created by concatenating the arguments. If any of argument values is `NULL`, the function returns `NULL`. If no arguments are passed, it returns an empty string. [`String`](/reference/data-types/string) +Returns the string created by concatenating the arguments. If any of argument values is `NULL`, the function returns `NULL`. If no arguments are passed, it returns an empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -757,12 +757,12 @@ concatWithSeparator(sep[, exp1, exp2, ...]) **Arguments** -- `sep` — The separator to use. [`const String`](/reference/data-types/string) or [`const FixedString`](/reference/data-types/fixedstring) -- `exp1, exp2, ...` — Expression to be concatenated. Arguments which are not of type `String` or `FixedString` are converted to strings using their default serialization. As this decreases performance, it is not recommended to use non-String/FixedString arguments. [`Any`](/reference/data-types) +- `sep` — The separator to use. [`const String`](/core/reference/data-types/string) or [`const FixedString`](/core/reference/data-types/fixedstring) +- `exp1, exp2, ...` — Expression to be concatenated. Arguments which are not of type `String` or `FixedString` are converted to strings using their default serialization. As this decreases performance, it is not recommended to use non-String/FixedString arguments. [`Any`](/core/reference/data-types) **Returned value** -Returns the String created by concatenating the arguments. If any of the argument values is `NULL`, the function returns `NULL`. [`String`](/reference/data-types/string) +Returns the String created by concatenating the arguments. If any of the argument values is `NULL`, the function returns `NULL`. [`String`](/core/reference/data-types/string) **Examples** @@ -795,12 +795,12 @@ concatWithSeparatorAssumeInjective(sep[, exp1, exp2, ... ]) **Arguments** -- `sep` — The separator to use. [`const String`](/reference/data-types/string) or [`const FixedString`](/reference/data-types/fixedstring) -- `exp1, exp2, ...` — Expression to be concatenated. Arguments which are not of type `String` or `FixedString` are converted to strings using their default serialization. As this decreases performance, it is not recommended to use non-String/FixedString arguments. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `sep` — The separator to use. [`const String`](/core/reference/data-types/string) or [`const FixedString`](/core/reference/data-types/fixedstring) +- `exp1, exp2, ...` — Expression to be concatenated. Arguments which are not of type `String` or `FixedString` are converted to strings using their default serialization. As this decreases performance, it is not recommended to use non-String/FixedString arguments. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the String created by concatenating the arguments. If any of the argument values is `NULL`, the function returns `NULL`. [`String`](/reference/data-types/string) +Returns the String created by concatenating the arguments. If any of the argument values is `NULL`, the function returns `NULL`. [`String`](/core/reference/data-types/string) **Examples** @@ -918,13 +918,13 @@ convertCharset(s, from, to) **Arguments** -- `s` — Input string. [`String`](/reference/data-types/string) -- `from` — Source character encoding. [`String`](/reference/data-types/string) -- `to` — Target character encoding. [`String`](/reference/data-types/string) +- `s` — Input string. [`String`](/core/reference/data-types/string) +- `from` — Source character encoding. [`String`](/core/reference/data-types/string) +- `to` — Target character encoding. [`String`](/core/reference/data-types/string) **Returned value** -Returns string `s` converted from encoding `from` to encoding `to`. [`String`](/reference/data-types/string) +Returns string `s` converted from encoding `from` to encoding `to`. [`String`](/core/reference/data-types/string) **Examples** @@ -954,12 +954,12 @@ damerauLevenshteinDistance(s1, s2) **Arguments** -- `s1` — First input string. [`String`](/reference/data-types/string) -- `s2` — Second input string. [`String`](/reference/data-types/string) +- `s1` — First input string. [`String`](/core/reference/data-types/string) +- `s2` — Second input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the Damerau-Levenshtein distance between the two strings. [`UInt64`](/reference/data-types/int-uint) +Returns the Damerau-Levenshtein distance between the two strings. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -989,11 +989,11 @@ decodeHTMLComponent(s) **Arguments** -- `s` — String containing HTML entities to decode. [`String`](/reference/data-types/string) +- `s` — String containing HTML entities to decode. [`String`](/core/reference/data-types/string) **Returned value** -Returns the string with HTML entities decoded. [`String`](/reference/data-types/string) +Returns the string with HTML entities decoded. [`String`](/core/reference/data-types/string) **Examples** @@ -1023,11 +1023,11 @@ decodeXMLComponent(s) **Arguments** -- `s` — String containing XML entities to decode. [`String`](/reference/data-types/string) +- `s` — String containing XML entities to decode. [`String`](/core/reference/data-types/string) **Returned value** -Returns the provided string with XML entities decoded. [`String`](/reference/data-types/string) +Returns the provided string with XML entities decoded. [`String`](/core/reference/data-types/string) **Examples** @@ -1059,12 +1059,12 @@ editDistance(s1, s2) **Arguments** -- `s1` — First input string. [`String`](/reference/data-types/string) -- `s2` — Second input string. [`String`](/reference/data-types/string) +- `s1` — First input string. [`String`](/core/reference/data-types/string) +- `s2` — Second input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the edit distance between the two strings. [`UInt64`](/reference/data-types/int-uint) +Returns the edit distance between the two strings. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1096,12 +1096,12 @@ editDistanceUTF8(s1, s2) **Arguments** -- `s1` — First input string. [`String`](/reference/data-types/string) -- `s2` — Second input string. [`String`](/reference/data-types/string) +- `s1` — First input string. [`String`](/core/reference/data-types/string) +- `s2` — Second input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the edit distance between the two UTF8 strings. [`UInt64`](/reference/data-types/int-uint) +Returns the edit distance between the two UTF8 strings. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1131,11 +1131,11 @@ encodeXMLComponent(s) **Arguments** -- `s` — String to escape. [`String`](/reference/data-types/string) +- `s` — String to escape. [`String`](/core/reference/data-types/string) **Returned value** -Returns the escaped string. [`String`](/reference/data-types/string) +Returns the escaped string. [`String`](/core/reference/data-types/string) **Examples** @@ -1167,12 +1167,12 @@ endsWith(s, suffix) **Arguments** -- `s` — String to check. [`String`](/reference/data-types/string) -- `suffix` — Suffix to check for. [`String`](/reference/data-types/string) +- `s` — String to check. [`String`](/core/reference/data-types/string) +- `suffix` — Suffix to check for. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `s` ends with `suffix`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `s` ends with `suffix`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1202,12 +1202,12 @@ endsWithCaseInsensitive(s, suffix) **Arguments** -- `s` — String to check. [`String`](/reference/data-types/string) -- `suffix` — Case-insensitive suffix to check for. [`String`](/reference/data-types/string) +- `s` — String to check. [`String`](/core/reference/data-types/string) +- `suffix` — Case-insensitive suffix to check for. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `s` ends with case-insensitive `suffix`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `s` ends with case-insensitive `suffix`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1239,12 +1239,12 @@ endsWithCaseInsensitiveUTF8(s, suffix) **Arguments** -- `s` — String to check. [`String`](/reference/data-types/string) -- `suffix` — Case-insensitive suffix to check for. [`String`](/reference/data-types/string) +- `s` — String to check. [`String`](/core/reference/data-types/string) +- `suffix` — Case-insensitive suffix to check for. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `s` ends with case-insensitive `suffix`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `s` ends with case-insensitive `suffix`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1276,12 +1276,12 @@ endsWithUTF8(s, suffix) **Arguments** -- `s` — String to check. [`String`](/reference/data-types/string) -- `suffix` — Suffix to check for. [`String`](/reference/data-types/string) +- `s` — String to check. [`String`](/core/reference/data-types/string) +- `suffix` — Suffix to check for. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `s` ends with `suffix`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `s` ends with `suffix`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1320,11 +1320,11 @@ extractTextFromHTML(html) **Arguments** -- `html` — String containing HTML content to extract text from. [`String`](/reference/data-types/string) +- `html` — String containing HTML content to extract text from. [`String`](/core/reference/data-types/string) **Returned value** -Returns the extracted text content with normalized whitespace. [`String`](/reference/data-types/string) +Returns the extracted text content with normalized whitespace. [`String`](/core/reference/data-types/string) **Examples** @@ -1363,11 +1363,11 @@ firstLine(s) **Arguments** -- `s` — Input string. [`String`](/reference/data-types/string) +- `s` — Input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the first line of the input string or the whole string if there are no line separators. [`String`](/reference/data-types/string) +Returns the first line of the input string or the whole string if there are no line separators. [`String`](/core/reference/data-types/string) **Examples** @@ -1399,11 +1399,11 @@ idnaDecode(s) **Arguments** -- `s` — Input string. [`String`](/reference/data-types/string) +- `s` — Input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Unicode (UTF-8) representation of the input string according to the IDNA mechanism of the input value. [`String`](/reference/data-types/string) +Returns a Unicode (UTF-8) representation of the input string according to the IDNA mechanism of the input value. [`String`](/core/reference/data-types/string) **Examples** @@ -1438,11 +1438,11 @@ idnaEncode(s) **Arguments** -- `s` — Input string. [`String`](/reference/data-types/string) +- `s` — Input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns an ASCII representation of the input string according to the IDNA mechanism of the input value. [`String`](/reference/data-types/string) +Returns an ASCII representation of the input string according to the IDNA mechanism of the input value. [`String`](/core/reference/data-types/string) **Examples** @@ -1478,11 +1478,11 @@ initcap(s) **Arguments** -- `s` — Input string. [`String`](/reference/data-types/string) +- `s` — Input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns `s` with the first letter of each word converted to upper case. [`String`](/reference/data-types/string) +Returns `s` with the first letter of each word converted to upper case. [`String`](/core/reference/data-types/string) **Examples** @@ -1531,11 +1531,11 @@ initcapUTF8(s) **Arguments** -- `s` — Input string. [`String`](/reference/data-types/string) +- `s` — Input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns `s` with the first letter of each word converted to upper case. [`String`](/reference/data-types/string) +Returns `s` with the first letter of each word converted to upper case. [`String`](/core/reference/data-types/string) **Examples** @@ -1597,11 +1597,11 @@ isValidUTF8(s) **Arguments** -- `s` — The string to check for UTF-8 encoded validity. [`String`](/reference/data-types/string) +- `s` — The string to check for UTF-8 encoded validity. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1`, if the set of bytes constitutes valid UTF-8-encoded text, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1`, if the set of bytes constitutes valid UTF-8-encoded text, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1631,12 +1631,12 @@ jaroSimilarity(s1, s2) **Arguments** -- `s1` — First input string. [`String`](/reference/data-types/string) -- `s2` — Second input string. [`String`](/reference/data-types/string) +- `s1` — First input string. [`String`](/core/reference/data-types/string) +- `s2` — Second input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the Jaro similarity between the two strings. [`Float64`](/reference/data-types/float) +Returns the Jaro similarity between the two strings. [`Float64`](/core/reference/data-types/float) **Examples** @@ -1666,12 +1666,12 @@ jaroWinklerSimilarity(s1, s2) **Arguments** -- `s1` — First input string. [`String`](/reference/data-types/string) -- `s2` — Second input string. [`String`](/reference/data-types/string) +- `s1` — First input string. [`String`](/core/reference/data-types/string) +- `s2` — Second input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the Jaro-Winkler similarity between the two strings. [`Float64`](/reference/data-types/float) +Returns the Jaro-Winkler similarity between the two strings. [`Float64`](/core/reference/data-types/float) **Examples** @@ -1701,8 +1701,8 @@ left(s, offset) **Arguments** -- `s` — The string to calculate a substring from. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `offset` — The number of bytes of the offset. [`(U)Int*`](/reference/data-types/int-uint) +- `s` — The string to calculate a substring from. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `offset` — The number of bytes of the offset. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** @@ -1710,7 +1710,7 @@ Returns: - For positive `offset`, a substring of `s` with `offset` many bytes, starting from the left of the string. - For negative `offset`, a substring of `s` with `length(s) - |offset|` bytes, starting from the left of the string. - An empty string if `length` is `0`. - [`String`](/reference/data-types/string) + [`String`](/core/reference/data-types/string) **Examples** @@ -1750,13 +1750,13 @@ leftPad(string, length[, pad_string]) **Arguments** -- `string` — Input string that should be padded. [`String`](/reference/data-types/string) -- `length` — The length of the resulting string. If the value is smaller than the input string length, then the input string is shortened to `length` characters. [`(U)Int*`](/reference/data-types/int-uint) -- `pad_string` — Optional. The string to pad the input string with. If not specified, then the input string is padded with spaces. [`String`](/reference/data-types/string) +- `string` — Input string that should be padded. [`String`](/core/reference/data-types/string) +- `length` — The length of the resulting string. If the value is smaller than the input string length, then the input string is shortened to `length` characters. [`(U)Int*`](/core/reference/data-types/int-uint) +- `pad_string` — Optional. The string to pad the input string with. If not specified, then the input string is padded with spaces. [`String`](/core/reference/data-types/string) **Returned value** -Returns a left-padded string of the given length. [`String`](/reference/data-types/string) +Returns a left-padded string of the given length. [`String`](/core/reference/data-types/string) **Examples** @@ -1787,13 +1787,13 @@ leftPadUTF8(string, length[, pad_string]) **Arguments** -- `string` — Input string that should be padded. [`String`](/reference/data-types/string) -- `length` — The length of the resulting string. If the value is smaller than the input string length, then the input string is shortened to `length` characters. [`(U)Int*`](/reference/data-types/int-uint) -- `pad_string` — Optional. The string to pad the input string with. If not specified, then the input string is padded with spaces. [`String`](/reference/data-types/string) +- `string` — Input string that should be padded. [`String`](/core/reference/data-types/string) +- `length` — The length of the resulting string. If the value is smaller than the input string length, then the input string is shortened to `length` characters. [`(U)Int*`](/core/reference/data-types/int-uint) +- `pad_string` — Optional. The string to pad the input string with. If not specified, then the input string is padded with spaces. [`String`](/core/reference/data-types/string) **Returned value** -Returns a left-padded string of the given length. [`String`](/reference/data-types/string) +Returns a left-padded string of the given length. [`String`](/core/reference/data-types/string) **Examples** @@ -1823,8 +1823,8 @@ leftUTF8(s, offset) **Arguments** -- `s` — The UTF-8 encoded string to calculate a substring from. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `offset` — The number of bytes of the offset. [`(U)Int*`](/reference/data-types/int-uint) +- `s` — The UTF-8 encoded string to calculate a substring from. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `offset` — The number of bytes of the offset. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** @@ -1832,7 +1832,7 @@ Returns: - For positive `offset`, a substring of `s` with `offset` many bytes, starting from the left of the string.\n" - For negative `offset`, a substring of `s` with `length(s) - |offset|` bytes, starting from the left of the string.\n" - An empty string if `length` is 0. - [`String`](/reference/data-types/string) + [`String`](/core/reference/data-types/string) **Examples** @@ -1874,11 +1874,11 @@ lengthUTF8(s) **Arguments** -- `s` — String containing valid UTF-8 encoded text. [`String`](/reference/data-types/string) +- `s` — String containing valid UTF-8 encoded text. [`String`](/core/reference/data-types/string) **Returned value** -Length of the string `s` in Unicode code points. [`UInt64`](/reference/data-types/int-uint) +Length of the string `s` in Unicode code points. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1910,11 +1910,11 @@ lower(s) **Arguments** -- `s` — A string to convert to lowercase. [`String`](/reference/data-types/string) +- `s` — A string to convert to lowercase. [`String`](/core/reference/data-types/string) **Returned value** -Returns a lowercase string from `s`. [`String`](/reference/data-types/string) +Returns a lowercase string from `s`. [`String`](/core/reference/data-types/string) **Examples** @@ -1944,11 +1944,11 @@ lowerUTF8(input) **Arguments** -- `input` — Input string to convert to lowercase. [`String`](/reference/data-types/string) +- `input` — Input string to convert to lowercase. [`String`](/core/reference/data-types/string) **Returned value** -Returns a lowercase string. [`String`](/reference/data-types/string) +Returns a lowercase string. [`String`](/core/reference/data-types/string) **Examples** @@ -1978,11 +1978,11 @@ naturalSortKey(s) **Arguments** -- `s` — A string to convert to natural sort key. [`String`](/reference/data-types/string) +- `s` — A string to convert to natural sort key. [`String`](/core/reference/data-types/string) **Returned value** -Returns a natural sort key string from `s`. [`String`](/reference/data-types/string) +Returns a natural sort key string from `s`. [`String`](/core/reference/data-types/string) **Examples** @@ -2013,11 +2013,11 @@ normalizeUTF8NFC(str) **Arguments** -- `str` — UTF-8 encoded input string. [`String`](/reference/data-types/string) +- `str` — UTF-8 encoded input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the NFC normalized form of the UTF-8 string. [`String`](/reference/data-types/string) +Returns the NFC normalized form of the UTF-8 string. [`String`](/core/reference/data-types/string) **Examples** @@ -2051,11 +2051,11 @@ normalizeUTF8NFD(str) **Arguments** -- `str` — UTF-8 encoded input string. [`String`](/reference/data-types/string) +- `str` — UTF-8 encoded input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the NFD normalized form of the UTF-8 string. [`String`](/reference/data-types/string) +Returns the NFD normalized form of the UTF-8 string. [`String`](/core/reference/data-types/string) **Examples** @@ -2089,11 +2089,11 @@ normalizeUTF8NFKC(str) **Arguments** -- `str` — UTF-8 encoded input string. [`String`](/reference/data-types/string) +- `str` — UTF-8 encoded input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the NFKC normalized form of the UTF-8 string. [`String`](/reference/data-types/string) +Returns the NFKC normalized form of the UTF-8 string. [`String`](/core/reference/data-types/string) **Examples** @@ -2126,11 +2126,11 @@ normalizeUTF8NFKCCasefold(str) **Arguments** -- `str` — UTF-8 encoded input string. [`String`](/reference/data-types/string) +- `str` — UTF-8 encoded input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the NFKC_Casefold normalized form of the UTF-8 string. [`String`](/reference/data-types/string) +Returns the NFKC_Casefold normalized form of the UTF-8 string. [`String`](/core/reference/data-types/string) **Examples** @@ -2162,11 +2162,11 @@ normalizeUTF8NFKD(str) **Arguments** -- `str` — UTF-8 encoded input string. [`String`](/reference/data-types/string) +- `str` — UTF-8 encoded input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the NFKD normalized form of the UTF-8 string. [`String`](/reference/data-types/string) +Returns the NFKD normalized form of the UTF-8 string. [`String`](/core/reference/data-types/string) **Examples** @@ -2199,11 +2199,11 @@ punycodeDecode(s) **Arguments** -- `s` — Punycode-encoded string. [`String`](/reference/data-types/string) +- `s` — Punycode-encoded string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the plaintext of the input value. [`String`](/reference/data-types/string) +Returns the plaintext of the input value. [`String`](/core/reference/data-types/string) **Examples** @@ -2234,11 +2234,11 @@ punycodeEncode(s) **Arguments** -- `s` — Input value. [`String`](/reference/data-types/string) +- `s` — Input value. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Punycode representation of the input value. [`String`](/reference/data-types/string) +Returns a Punycode representation of the input value. [`String`](/core/reference/data-types/string) **Examples** @@ -2271,13 +2271,13 @@ regexpExtract(haystack, pattern[, index]) **Arguments** -- `haystack` — String, in which regexp pattern will be matched. [`String`](/reference/data-types/string) -- `pattern` — String, regexp expression. `pattern` may contain multiple regexp groups, `index` indicates which regex group to extract. An index of 0 means matching the entire regular expression. [`const String`](/reference/data-types/string) -- `index` — Optional. An integer number greater or equal 0 with default 1. It represents which regex group to extract. [`(U)Int*`](/reference/data-types/int-uint) +- `haystack` — String, in which regexp pattern will be matched. [`String`](/core/reference/data-types/string) +- `pattern` — String, regexp expression. `pattern` may contain multiple regexp groups, `index` indicates which regex group to extract. An index of 0 means matching the entire regular expression. [`const String`](/core/reference/data-types/string) +- `index` — Optional. An integer number greater or equal 0 with default 1. It represents which regex group to extract. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a string match [`String`](/reference/data-types/string) +Returns a string match [`String`](/core/reference/data-types/string) **Examples** @@ -2322,17 +2322,17 @@ regexpPosition(haystack, pattern[, position[, occurrence[, return_option[, flags **Arguments** -- `haystack` — String to search in. [`String`](/reference/data-types/string) -- `pattern` — Regular expression pattern. [`const String`](/reference/data-types/string) -- `position` — Optional. 1-based byte position to start the search. Default: 1. [`(U)Int*`](/reference/data-types/int-uint) -- `occurrence` — Optional. Which match to return. Default: 1. [`(U)Int*`](/reference/data-types/int-uint) -- `return_option` — Optional. 0 returns the position of the match start, 1 returns the position right after the match. Default: 0. [`(U)Int*`](/reference/data-types/int-uint) -- `flags` — Optional. Regex flags. Supported: `i` (case-insensitive), `c` (case-sensitive), `m`/`n` (multiline anchors), `s` (dot matches newline). Default: empty. [`const String`](/reference/data-types/string) -- `subexpression` — Optional. Index of capture group whose position to return. 0 means whole match. Default: 0. [`(U)Int*`](/reference/data-types/int-uint) +- `haystack` — String to search in. [`String`](/core/reference/data-types/string) +- `pattern` — Regular expression pattern. [`const String`](/core/reference/data-types/string) +- `position` — Optional. 1-based byte position to start the search. Default: 1. [`(U)Int*`](/core/reference/data-types/int-uint) +- `occurrence` — Optional. Which match to return. Default: 1. [`(U)Int*`](/core/reference/data-types/int-uint) +- `return_option` — Optional. 0 returns the position of the match start, 1 returns the position right after the match. Default: 0. [`(U)Int*`](/core/reference/data-types/int-uint) +- `flags` — Optional. Regex flags. Supported: `i` (case-insensitive), `c` (case-sensitive), `m`/`n` (multiline anchors), `s` (dot matches newline). Default: empty. [`const String`](/core/reference/data-types/string) +- `subexpression` — Optional. Index of capture group whose position to return. 0 means whole match. Default: 0. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the byte position of the match, or 0 if not found. [`UInt64`](/reference/data-types/int-uint) +Returns the byte position of the match, or 0 if not found. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2370,11 +2370,11 @@ removeDiacriticsUTF8(str) **Arguments** -- `str` — UTF-8 encoded input string. [`String`](/reference/data-types/string) +- `str` — UTF-8 encoded input string. [`String`](/core/reference/data-types/string) **Returned value** -UTF-8 string with diacritics removed. [`String`](/reference/data-types/string) +UTF-8 string with diacritics removed. [`String`](/core/reference/data-types/string) **Examples** @@ -2405,12 +2405,12 @@ repeat(s, n) **Arguments** -- `s` — The string to repeat. [`String`](/reference/data-types/string) -- `n` — The number of times to repeat the string. [`(U)Int*`](/reference/data-types/int-uint) +- `s` — The string to repeat. [`String`](/core/reference/data-types/string) +- `n` — The number of times to repeat the string. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -A string containing string `s` repeated `n` times. If `n` is negative, the function returns the empty string. [`String`](/reference/data-types/string) +A string containing string `s` repeated `n` times. If `n` is negative, the function returns the empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -2442,11 +2442,11 @@ reverseUTF8(s) **Arguments** -- `s` — String containing valid UTF-8 encoded text. [`String`](/reference/data-types/string) +- `s` — String containing valid UTF-8 encoded text. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string with the sequence of Unicode code points reversed. [`String`](/reference/data-types/string) +Returns a string with the sequence of Unicode code points reversed. [`String`](/core/reference/data-types/string) **Examples** @@ -2474,8 +2474,8 @@ right(s, offset) **Arguments** -- `s` — The string to calculate a substring from. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `offset` — The number of bytes of the offset. [`(U)Int*`](/reference/data-types/int-uint) +- `s` — The string to calculate a substring from. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `offset` — The number of bytes of the offset. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** @@ -2483,7 +2483,7 @@ Returns: - For positive `offset`, a substring of `s` with `offset` many bytes, starting from the right of the string. - For negative `offset`, a substring of `s` with `length(s) - |offset|` bytes, starting from the right of the string. - An empty string if `length` is `0`. - [`String`](/reference/data-types/string) + [`String`](/core/reference/data-types/string) **Examples** @@ -2523,13 +2523,13 @@ rightPad(string, length[, pad_string]) **Arguments** -- `string` — Input string that should be padded. [`String`](/reference/data-types/string) -- `length` — The length of the resulting string. If the value is smaller than the input string length, then the input string is shortened to `length` characters. [`(U)Int*`](/reference/data-types/int-uint) -- `pad_string` — Optional. The string to pad the input string with. If not specified, then the input string is padded with spaces. [`String`](/reference/data-types/string) +- `string` — Input string that should be padded. [`String`](/core/reference/data-types/string) +- `length` — The length of the resulting string. If the value is smaller than the input string length, then the input string is shortened to `length` characters. [`(U)Int*`](/core/reference/data-types/int-uint) +- `pad_string` — Optional. The string to pad the input string with. If not specified, then the input string is padded with spaces. [`String`](/core/reference/data-types/string) **Returned value** -Returns a right-padded string of the given length. [`String`](/reference/data-types/string) +Returns a right-padded string of the given length. [`String`](/core/reference/data-types/string) **Examples** @@ -2560,13 +2560,13 @@ rightPadUTF8(string, length[, pad_string]) **Arguments** -- `string` — Input string that should be padded. [`String`](/reference/data-types/string) -- `length` — The length of the resulting string. If the value is smaller than the input string length, then the input string is shortened to `length` characters. [`(U)Int*`](/reference/data-types/int-uint) -- `pad_string` — Optional. The string to pad the input string with. If not specified, then the input string is padded with spaces. [`String`](/reference/data-types/string) +- `string` — Input string that should be padded. [`String`](/core/reference/data-types/string) +- `length` — The length of the resulting string. If the value is smaller than the input string length, then the input string is shortened to `length` characters. [`(U)Int*`](/core/reference/data-types/int-uint) +- `pad_string` — Optional. The string to pad the input string with. If not specified, then the input string is padded with spaces. [`String`](/core/reference/data-types/string) **Returned value** -Returns a right-padded string of the given length. [`String`](/reference/data-types/string) +Returns a right-padded string of the given length. [`String`](/core/reference/data-types/string) **Examples** @@ -2596,8 +2596,8 @@ rightUTF8(s, offset) **Arguments** -- `s` — The UTF-8 encoded string to calculate a substring from. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `offset` — The number of bytes of the offset. [`(U)Int*`](/reference/data-types/int-uint) +- `s` — The UTF-8 encoded string to calculate a substring from. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `offset` — The number of bytes of the offset. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** @@ -2605,7 +2605,7 @@ Returns: - For positive `offset`, a substring of `s` with `offset` many bytes, starting from the right of the string. - For negative `offset`, a substring of `s` with `length(s) - |offset|` bytes, starting from the right of the string. - An empty string if `length` is `0`. - [`String`](/reference/data-types/string) + [`String`](/core/reference/data-types/string) **Examples** @@ -2643,11 +2643,11 @@ soundex(s) **Arguments** -- `s` — Input string. [`String`](/reference/data-types/string) +- `s` — Input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the Soundex code of the input string. [`String`](/reference/data-types/string) +Returns the Soundex code of the input string. [`String`](/core/reference/data-types/string) **Examples** @@ -2677,11 +2677,11 @@ space(n) **Arguments** -- `n` — The number of times to repeat the space. [`(U)Int*`](/reference/data-types/int-uint) +- `n` — The number of times to repeat the space. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns astring containing a space repeated `n` times. If `n <= 0`, the function returns the empty string. [`String`](/reference/data-types/string) +Returns astring containing a space repeated `n` times. If `n <= 0`, the function returns the empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -2714,14 +2714,14 @@ sparseGrams(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]]) **Arguments** -- `s` — An input string. [`String`](/reference/data-types/string) -- `min_ngram_length` — Optional. The minimum length of extracted ngram. The default and minimal value is 3. [`UInt*`](/reference/data-types/int-uint) -- `max_ngram_length` — Optional. The maximum length of extracted ngram. The default value is 100. Should be not less than `min_ngram_length`. [`UInt*`](/reference/data-types/int-uint) -- `min_cutoff_length` — Optional. If specified, only n-grams with length greater or equal than `min_cutoff_length` are returned. The default value is the same as `min_ngram_length`. Should be not less than `min_ngram_length` and not greater than `max_ngram_length`. [`UInt*`](/reference/data-types/int-uint) +- `s` — An input string. [`String`](/core/reference/data-types/string) +- `min_ngram_length` — Optional. The minimum length of extracted ngram. The default and minimal value is 3. [`UInt*`](/core/reference/data-types/int-uint) +- `max_ngram_length` — Optional. The maximum length of extracted ngram. The default value is 100. Should be not less than `min_ngram_length`. [`UInt*`](/core/reference/data-types/int-uint) +- `min_cutoff_length` — Optional. If specified, only n-grams with length greater or equal than `min_cutoff_length` are returned. The default value is the same as `min_ngram_length`. Should be not less than `min_ngram_length` and not greater than `max_ngram_length`. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of selected substrings. [`Array(String)`](/reference/data-types/array) +Returns an array of selected substrings. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -2754,14 +2754,14 @@ sparseGramsHashes(s[, min_ngram_length, max_ngram_length]) **Arguments** -- `s` — An input string. [`String`](/reference/data-types/string) -- `min_ngram_length` — Optional. The minimum length of extracted ngram. The default and minimal value is 3. [`UInt*`](/reference/data-types/int-uint) -- `max_ngram_length` — Optional. The maximum length of extracted ngram. The default value is 100. Should be not less than `min_ngram_length`. [`UInt*`](/reference/data-types/int-uint) -- `min_cutoff_length` — Optional. If specified, only n-grams with length greater or equal than `min_cutoff_length` are returned. The default value is the same as `min_ngram_length`. Should be not less than `min_ngram_length` and not greater than `max_ngram_length`. [`UInt*`](/reference/data-types/int-uint) +- `s` — An input string. [`String`](/core/reference/data-types/string) +- `min_ngram_length` — Optional. The minimum length of extracted ngram. The default and minimal value is 3. [`UInt*`](/core/reference/data-types/int-uint) +- `max_ngram_length` — Optional. The maximum length of extracted ngram. The default value is 100. Should be not less than `min_ngram_length`. [`UInt*`](/core/reference/data-types/int-uint) +- `min_cutoff_length` — Optional. If specified, only n-grams with length greater or equal than `min_cutoff_length` are returned. The default value is the same as `min_ngram_length`. Should be not less than `min_ngram_length` and not greater than `max_ngram_length`. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of selected substrings CRC32 hashes. [`Array(UInt32)`](/reference/data-types/array) +Returns an array of selected substrings CRC32 hashes. [`Array(UInt32)`](/core/reference/data-types/array) **Examples** @@ -2793,14 +2793,14 @@ sparseGramsHashesUTF8(s[, min_ngram_length, max_ngram_length]) **Arguments** -- `s` — An input string. [`String`](/reference/data-types/string) -- `min_ngram_length` — Optional. The minimum length of extracted ngram. The default and minimal value is 3. [`UInt*`](/reference/data-types/int-uint) -- `max_ngram_length` — Optional. The maximum length of extracted ngram. The default value is 100. Should be not less than `min_ngram_length`. [`UInt*`](/reference/data-types/int-uint) -- `min_cutoff_length` — Optional. If specified, only n-grams with length greater or equal than `min_cutoff_length` are returned. The default value is the same as `min_ngram_length`. Should be not less than `min_ngram_length` and not greater than `max_ngram_length`. [`UInt*`](/reference/data-types/int-uint) +- `s` — An input string. [`String`](/core/reference/data-types/string) +- `min_ngram_length` — Optional. The minimum length of extracted ngram. The default and minimal value is 3. [`UInt*`](/core/reference/data-types/int-uint) +- `max_ngram_length` — Optional. The maximum length of extracted ngram. The default value is 100. Should be not less than `min_ngram_length`. [`UInt*`](/core/reference/data-types/int-uint) +- `min_cutoff_length` — Optional. If specified, only n-grams with length greater or equal than `min_cutoff_length` are returned. The default value is the same as `min_ngram_length`. Should be not less than `min_ngram_length` and not greater than `max_ngram_length`. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of selected UTF-8 substrings CRC32 hashes. [`Array(UInt32)`](/reference/data-types/array) +Returns an array of selected UTF-8 substrings CRC32 hashes. [`Array(UInt32)`](/core/reference/data-types/array) **Examples** @@ -2832,14 +2832,14 @@ sparseGramsUTF8(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]]) **Arguments** -- `s` — An input string. [`String`](/reference/data-types/string) -- `min_ngram_length` — Optional. The minimum length of extracted ngram. The default and minimal value is 3. [`UInt*`](/reference/data-types/int-uint) -- `max_ngram_length` — Optional. The maximum length of extracted ngram. The default value is 100. Should be not less than `min_ngram_length`. [`UInt*`](/reference/data-types/int-uint) -- `min_cutoff_length` — Optional. If specified, only n-grams with length greater or equal than `min_cutoff_length` are returned. The default value is the same as `min_ngram_length`. Should be not less than `min_ngram_length` and not greater than `max_ngram_length`. [`UInt*`](/reference/data-types/int-uint) +- `s` — An input string. [`String`](/core/reference/data-types/string) +- `min_ngram_length` — Optional. The minimum length of extracted ngram. The default and minimal value is 3. [`UInt*`](/core/reference/data-types/int-uint) +- `max_ngram_length` — Optional. The maximum length of extracted ngram. The default value is 100. Should be not less than `min_ngram_length`. [`UInt*`](/core/reference/data-types/int-uint) +- `min_cutoff_length` — Optional. If specified, only n-grams with length greater or equal than `min_cutoff_length` are returned. The default value is the same as `min_ngram_length`. Should be not less than `min_ngram_length` and not greater than `max_ngram_length`. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of selected UTF-8 substrings. [`Array(String)`](/reference/data-types/array) +Returns an array of selected UTF-8 substrings. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -2869,12 +2869,12 @@ startsWith(s, prefix) **Arguments** -- `s` — String to check. [`String`](/reference/data-types/string) -- `prefix` — Prefix to check for. [`String`](/reference/data-types/string) +- `s` — String to check. [`String`](/core/reference/data-types/string) +- `prefix` — Prefix to check for. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `s` starts with `prefix`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `s` starts with `prefix`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2904,12 +2904,12 @@ startsWithCaseInsensitive(s, prefix) **Arguments** -- `s` — String to check. [`String`](/reference/data-types/string) -- `prefix` — Case-insensitive prefix to check for. [`String`](/reference/data-types/string) +- `s` — String to check. [`String`](/core/reference/data-types/string) +- `prefix` — Case-insensitive prefix to check for. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `s` starts with case-insensitive `prefix`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `s` starts with case-insensitive `prefix`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2941,12 +2941,12 @@ startsWithCaseInsensitiveUTF8(s, prefix) **Arguments** -- `s` — String to check. [`String`](/reference/data-types/string) -- `prefix` — Case-insensitive prefix to check for. [`String`](/reference/data-types/string) +- `s` — String to check. [`String`](/core/reference/data-types/string) +- `prefix` — Case-insensitive prefix to check for. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `s` starts with case-insensitive `prefix`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `s` starts with case-insensitive `prefix`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2978,12 +2978,12 @@ startsWithUTF8(s, prefix) **Arguments** -- `s` — String to check. [`String`](/reference/data-types/string) -- `prefix` — Prefix to check for. [`String`](/reference/data-types/string) +- `s` — String to check. [`String`](/core/reference/data-types/string) +- `prefix` — Prefix to check for. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `s` starts with `prefix`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `s` starts with `prefix`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -3013,11 +3013,11 @@ stringBytesEntropy(s) **Arguments** -- `s` — The string to analyze. [`String`](/reference/data-types/string) +- `s` — The string to analyze. [`String`](/core/reference/data-types/string) **Returned value** -Returns Shannon's entropy of byte distribution in the string. [`Float64`](/reference/data-types/float) +Returns Shannon's entropy of byte distribution in the string. [`Float64`](/core/reference/data-types/float) **Examples** @@ -3047,11 +3047,11 @@ stringBytesUniq(s) **Arguments** -- `s` — The string to analyze. [`String`](/reference/data-types/string) +- `s` — The string to analyze. [`String`](/core/reference/data-types/string) **Returned value** -Returns the number of distinct bytes in the string. [`UInt16`](/reference/data-types/int-uint) +Returns the number of distinct bytes in the string. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -3081,12 +3081,12 @@ stringJaccardIndex(s1, s2) **Arguments** -- `s1` — First input string. [`String`](/reference/data-types/string) -- `s2` — Second input string. [`String`](/reference/data-types/string) +- `s1` — First input string. [`String`](/core/reference/data-types/string) +- `s2` — Second input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the Jaccard similarity index between the two strings. [`Float64`](/reference/data-types/float) +Returns the Jaccard similarity index between the two strings. [`Float64`](/core/reference/data-types/float) **Examples** @@ -3116,12 +3116,12 @@ stringJaccardIndexUTF8(s1, s2) **Arguments** -- `s1` — First input UTF8 string. [`String`](/reference/data-types/string) -- `s2` — Second input UTF8 string. [`String`](/reference/data-types/string) +- `s1` — First input UTF8 string. [`String`](/core/reference/data-types/string) +- `s2` — Second input UTF8 string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the Jaccard similarity index between the two UTF8 strings. [`Float64`](/reference/data-types/float) +Returns the Jaccard similarity index between the two UTF8 strings. [`Float64`](/core/reference/data-types/float) **Examples** @@ -3158,13 +3158,13 @@ substring(s, offset[, length]) **Arguments** -- `s` — The string to calculate a substring from. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Enum`](/reference/data-types/enum) -- `offset` — The starting position of the substring in `s`. [`(U)Int*`](/reference/data-types/int-uint) -- `length` — Optional. The maximum length of the substring. [`(U)Int*`](/reference/data-types/int-uint) +- `s` — The string to calculate a substring from. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Enum`](/core/reference/data-types/enum) +- `offset` — The starting position of the substring in `s`. [`(U)Int*`](/core/reference/data-types/int-uint) +- `length` — Optional. The maximum length of the substring. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a substring of `s` with `length` many bytes, starting at index `offset`. [`String`](/reference/data-types/string) +Returns a substring of `s` with `length` many bytes, starting at index `offset`. [`String`](/core/reference/data-types/string) **Examples** @@ -3196,13 +3196,13 @@ substringIndex(s, delim, count) **Arguments** -- `s` — The string to extract substring from. [`String`](/reference/data-types/string) -- `delim` — The character to split. [`String`](/reference/data-types/string) -- `count` — The number of occurrences of the delimiter to count before extracting the substring. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. [`UInt`](/reference/data-types/int-uint) or [`Int`](/reference/data-types/int-uint) +- `s` — The string to extract substring from. [`String`](/core/reference/data-types/string) +- `delim` — The character to split. [`String`](/core/reference/data-types/string) +- `count` — The number of occurrences of the delimiter to count before extracting the substring. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. [`UInt`](/core/reference/data-types/int-uint) or [`Int`](/core/reference/data-types/int-uint) **Returned value** -Returns a substring of `s` before `count` occurrences of `delim`. [`String`](/reference/data-types/string) +Returns a substring of `s` before `count` occurrences of `delim`. [`String`](/core/reference/data-types/string) **Examples** @@ -3234,13 +3234,13 @@ substringIndexUTF8(s, delim, count) **Arguments** -- `s` — The string to extract substring from. [`String`](/reference/data-types/string) -- `delim` — The character to split. [`String`](/reference/data-types/string) -- `count` — The number of occurrences of the delimiter to count before extracting the substring. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. [`UInt`](/reference/data-types/int-uint) or [`Int`](/reference/data-types/int-uint) +- `s` — The string to extract substring from. [`String`](/core/reference/data-types/string) +- `delim` — The character to split. [`String`](/core/reference/data-types/string) +- `count` — The number of occurrences of the delimiter to count before extracting the substring. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. [`UInt`](/core/reference/data-types/int-uint) or [`Int`](/core/reference/data-types/int-uint) **Returned value** -Returns a substring of `s` before `count` occurrences of `delim`. [`String`](/reference/data-types/string) +Returns a substring of `s` before `count` occurrences of `delim`. [`String`](/core/reference/data-types/string) **Examples** @@ -3278,13 +3278,13 @@ substringUTF8(s, offset[, length]) **Arguments** -- `s` — The string to calculate a substring from. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Enum`](/reference/data-types/enum) -- `offset` — The starting position of the substring in `s`. [`Int`](/reference/data-types/int-uint) or [`UInt`](/reference/data-types/int-uint) -- `length` — The maximum length of the substring. Optional. [`Int`](/reference/data-types/int-uint) or [`UInt`](/reference/data-types/int-uint) +- `s` — The string to calculate a substring from. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Enum`](/core/reference/data-types/enum) +- `offset` — The starting position of the substring in `s`. [`Int`](/core/reference/data-types/int-uint) or [`UInt`](/core/reference/data-types/int-uint) +- `length` — The maximum length of the substring. Optional. [`Int`](/core/reference/data-types/int-uint) or [`UInt`](/core/reference/data-types/int-uint) **Returned value** -Returns a substring of `s` with `length` many code points, starting at code point index `offset`. [`String`](/reference/data-types/string) +Returns a substring of `s` with `length` many code points, starting at code point index `offset`. [`String`](/core/reference/data-types/string) **Examples** @@ -3313,11 +3313,11 @@ toValidUTF8(s) **Arguments** -- `s` — Any set of bytes represented as the String data type object. [`String`](/reference/data-types/string) +- `s` — Any set of bytes represented as the String data type object. [`String`](/core/reference/data-types/string) **Returned value** -Returns a valid UTF-8 string. [`String`](/reference/data-types/string) +Returns a valid UTF-8 string. [`String`](/core/reference/data-types/string) **Examples** @@ -3351,12 +3351,12 @@ trimBoth(s[, trim_characters]) **Arguments** -- `s` — String to trim. [`String`](/reference/data-types/string) -- `trim_characters` — Optional. Characters to trim. If not specified, common whitespace characters are removed. [`String`](/reference/data-types/string) +- `s` — String to trim. [`String`](/core/reference/data-types/string) +- `trim_characters` — Optional. Characters to trim. If not specified, common whitespace characters are removed. [`String`](/core/reference/data-types/string) **Returned value** -Returns the string with specified characters trimmed from both ends. [`String`](/reference/data-types/string) +Returns the string with specified characters trimmed from both ends. [`String`](/core/reference/data-types/string) **Examples** @@ -3389,12 +3389,12 @@ trimLeft(input[, trim_characters]) **Arguments** -- `input` — String to trim. [`String`](/reference/data-types/string) -- `trim_characters` — Optional. Characters to trim. If not specified, common whitespace characters are removed. [`String`](/reference/data-types/string) +- `input` — String to trim. [`String`](/core/reference/data-types/string) +- `trim_characters` — Optional. Characters to trim. If not specified, common whitespace characters are removed. [`String`](/core/reference/data-types/string) **Returned value** -Returns the string with specified characters trimmed from the left. [`String`](/reference/data-types/string) +Returns the string with specified characters trimmed from the left. [`String`](/core/reference/data-types/string) **Examples** @@ -3427,12 +3427,12 @@ trimRight(s[, trim_characters]) **Arguments** -- `s` — String to trim. [`String`](/reference/data-types/string) -- `trim_characters` — Optional characters to trim. If not specified, common whitespace characters are removed. [`String`](/reference/data-types/string) +- `s` — String to trim. [`String`](/core/reference/data-types/string) +- `trim_characters` — Optional characters to trim. If not specified, common whitespace characters are removed. [`String`](/core/reference/data-types/string) **Returned value** -Returns the string with specified characters trimmed from the right. [`String`](/reference/data-types/string) +Returns the string with specified characters trimmed from the right. [`String`](/core/reference/data-types/string) **Examples** @@ -3462,11 +3462,11 @@ tryBase32Decode(encoded) **Arguments** -- `encoded` — String column or constant to decode. If the string is not valid Base32-encoded, returns an empty string in case of error. [`String`](/reference/data-types/string) +- `encoded` — String column or constant to decode. If the string is not valid Base32-encoded, returns an empty string in case of error. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string containing the decoded value of the argument. [`String`](/reference/data-types/string) +Returns a string containing the decoded value of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -3496,12 +3496,12 @@ tryBase58Decode(encoded[, expected_size]) **Arguments** -- `encoded` — String column or constant. If the string is not valid Base58-encoded, returns an empty string in case of error. [`String`](/reference/data-types/string) -- `expected_size` — Optional. Expected decoded size in bytes. When 32 or 64, an optimized decoder is used; for other values, the generic decoder is used. [`UInt8, UInt16, UInt32, or UInt64`](/reference/data-types/int-uint) +- `encoded` — String column or constant. If the string is not valid Base58-encoded, returns an empty string in case of error. [`String`](/core/reference/data-types/string) +- `expected_size` — Optional. Expected decoded size in bytes. When 32 or 64, an optimized decoder is used; for other values, the generic decoder is used. [`UInt8, UInt16, UInt32, or UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns a string containing the decoded value of the argument. [`String`](/reference/data-types/string) +Returns a string containing the decoded value of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -3531,11 +3531,11 @@ tryBase64Decode(encoded) **Arguments** -- `encoded` — String column or constant to decode. If the string is not valid Base64-encoded, returns an empty string in case of error. [`String`](/reference/data-types/string) +- `encoded` — String column or constant to decode. If the string is not valid Base64-encoded, returns an empty string in case of error. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string containing the decoded value of the argument. [`String`](/reference/data-types/string) +Returns a string containing the decoded value of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -3565,11 +3565,11 @@ tryBase64URLDecode(encoded) **Arguments** -- `encoded` — String column or constant to decode. If the string is not valid Base64-encoded, returns an empty string in case of error. [`String`](/reference/data-types/string) +- `encoded` — String column or constant to decode. If the string is not valid Base64-encoded, returns an empty string in case of error. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string containing the decoded value of the argument. [`String`](/reference/data-types/string) +Returns a string containing the decoded value of the argument. [`String`](/core/reference/data-types/string) **Examples** @@ -3600,11 +3600,11 @@ tryIdnaEncode(s) **Arguments** -- `s` — Input string. [`String`](/reference/data-types/string) +- `s` — Input string. [`String`](/core/reference/data-types/string) **Returned value** -Returns an ASCII representation of the input string according to the IDNA mechanism of the input value, or empty string if input is invalid. [`String`](/reference/data-types/string) +Returns an ASCII representation of the input string according to the IDNA mechanism of the input value, or empty string if input is invalid. [`String`](/core/reference/data-types/string) **Examples** @@ -3634,11 +3634,11 @@ tryPunycodeDecode(s) **Arguments** -- `s` — Punycode-encoded string. [`String`](/reference/data-types/string) +- `s` — Punycode-encoded string. [`String`](/core/reference/data-types/string) **Returned value** -Returns the plaintext of the input value, or empty string if input is invalid. [`String`](/reference/data-types/string) +Returns the plaintext of the input value, or empty string if input is invalid. [`String`](/core/reference/data-types/string) **Examples** @@ -3670,11 +3670,11 @@ upper(s) **Arguments** -- `s` — The string to convert to uppercase. [`String`](/reference/data-types/string) +- `s` — The string to convert to uppercase. [`String`](/core/reference/data-types/string) **Returned value** -Returns an uppercase string from `s`. [`String`](/reference/data-types/string) +Returns an uppercase string from `s`. [`String`](/core/reference/data-types/string) **Examples** @@ -3710,11 +3710,11 @@ upperUTF8(s) **Arguments** -- `s` — A string type. [`String`](/reference/data-types/string) +- `s` — A string type. [`String`](/core/reference/data-types/string) **Returned value** -A String data type value. [`String`](/reference/data-types/string) +A String data type value. [`String`](/core/reference/data-types/string) **Examples** diff --git a/reference/functions/regular-functions/string-replace-functions.mdx b/core/reference/functions/regular-functions/string-replace-functions.mdx similarity index 83% rename from reference/functions/regular-functions/string-replace-functions.mdx rename to core/reference/functions/regular-functions/string-replace-functions.mdx index df68834d..ba0985bd 100644 --- a/reference/functions/regular-functions/string-replace-functions.mdx +++ b/core/reference/functions/regular-functions/string-replace-functions.mdx @@ -7,7 +7,7 @@ doc_type: 'reference' keywords: ['string replacement'] --- -[General strings functions](/reference/functions/regular-functions/string-functions) and [functions for searching in strings](/reference/functions/regular-functions/string-search-functions) are described separately. +[General strings functions](/core/reference/functions/regular-functions/string-functions) and [functions for searching in strings](/core/reference/functions/regular-functions/string-search-functions) are described separately. The documentation below is generated from the `system.functions` system table. @@ -38,12 +38,12 @@ format(pattern, s0[, s1, ...]) **Arguments** -- `pattern` — The format string containing placeholders. [`String`](/reference/data-types/string) -- `s0[, s1, ...]` — One or more values to substitute into the pattern. [`Any`](/reference/data-types) +- `pattern` — The format string containing placeholders. [`String`](/core/reference/data-types/string) +- `s0[, s1, ...]` — One or more values to substitute into the pattern. [`Any`](/core/reference/data-types) **Returned value** -Returns a formatted string. [`String`](/reference/data-types/string) +Returns a formatted string. [`String`](/core/reference/data-types/string) **Examples** @@ -85,14 +85,14 @@ overlay(s, replace, offset[, length]) **Arguments** -- `s` — The input string. [`String`](/reference/data-types/string) -- `replace` — The replacement string [`const String`](/reference/data-types/string) -- `offset` — An integer type `Int` (1-based). If `offset` is negative, it is counted from the end of the string `s`. [`Int`](/reference/data-types/int-uint) -- `length` — Optional. An integer type `Int`. `length` specifies the length of the snippet within the input string `s` to be replaced. If `length` is not specified, the number of bytes removed from `s` equals the length of `replace`; otherwise `length` bytes are removed. [`Int`](/reference/data-types/int-uint) +- `s` — The input string. [`String`](/core/reference/data-types/string) +- `replace` — The replacement string [`const String`](/core/reference/data-types/string) +- `offset` — An integer type `Int` (1-based). If `offset` is negative, it is counted from the end of the string `s`. [`Int`](/core/reference/data-types/int-uint) +- `length` — Optional. An integer type `Int`. `length` specifies the length of the snippet within the input string `s` to be replaced. If `length` is not specified, the number of bytes removed from `s` equals the length of `replace`; otherwise `length` bytes are removed. [`Int`](/core/reference/data-types/int-uint) **Returned value** -Returns a string with replacement. [`String`](/reference/data-types/string) +Returns a string with replacement. [`String`](/core/reference/data-types/string) **Examples** @@ -136,14 +136,14 @@ overlayUTF8(s, replace, offset[, length]) **Arguments** -- `s` — The input string. [`String`](/reference/data-types/string) -- `replace` — The replacement string. [`const String`](/reference/data-types/string) -- `offset` — An integer type `Int` (1-based). If `offset` is negative, it is counted from the end of the input string `s`. [`(U)Int*`](/reference/data-types/int-uint) -- `length` — Optional. Specifies the length of the snippet within the input string `s` to be replaced. If `length` is not specified, the number of characters removed from `s` equals the length of `replace`, otherwise `length` characters are removed. [`(U)Int*`](/reference/data-types/int-uint) +- `s` — The input string. [`String`](/core/reference/data-types/string) +- `replace` — The replacement string. [`const String`](/core/reference/data-types/string) +- `offset` — An integer type `Int` (1-based). If `offset` is negative, it is counted from the end of the input string `s`. [`(U)Int*`](/core/reference/data-types/int-uint) +- `length` — Optional. Specifies the length of the snippet within the input string `s` to be replaced. If `length` is not specified, the number of characters removed from `s` equals the length of `replace`, otherwise `length` characters are removed. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a string with replacement. [`String`](/reference/data-types/string) +Returns a string with replacement. [`String`](/core/reference/data-types/string) **Examples** @@ -177,12 +177,12 @@ printf(format[, sub1, sub2, ...]) **Arguments** -- `format` — The format string with `%` specifiers. [`String`](/reference/data-types/string) -- `sub1, sub2, ...` — Optional. Zero or more values to substitute into the format string. [`Any`](/reference/data-types) +- `format` — The format string with `%` specifiers. [`String`](/core/reference/data-types/string) +- `sub1, sub2, ...` — Optional. Zero or more values to substitute into the format string. [`Any`](/core/reference/data-types) **Returned value** -Returns a formatted string. [`String`](/reference/data-types/string) +Returns a formatted string. [`String`](/core/reference/data-types/string) **Examples** @@ -215,11 +215,11 @@ regexpQuoteMeta(s) **Arguments** -- `s` — The input string containing characters to be escaped for regex. [`String`](/reference/data-types/string) +- `s` — The input string containing characters to be escaped for regex. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string with regex special characters escaped. [`String`](/reference/data-types/string) +Returns a string with regex special characters escaped. [`String`](/core/reference/data-types/string) **Examples** @@ -251,13 +251,13 @@ replaceAll(haystack, pattern, replacement) **Arguments** -- `haystack` — The input string to search in. [`String`](/reference/data-types/string) -- `pattern` — The substring to find and replace. [`const String`](/reference/data-types/string) -- `replacement` — The string to replace the pattern with. [`const String`](/reference/data-types/string) +- `haystack` — The input string to search in. [`String`](/core/reference/data-types/string) +- `pattern` — The substring to find and replace. [`const String`](/core/reference/data-types/string) +- `replacement` — The string to replace the pattern with. [`const String`](/core/reference/data-types/string) **Returned value** -Returns a string with all occurrences of pattern replaced. [`String`](/reference/data-types/string) +Returns a string with all occurrences of pattern replaced. [`String`](/core/reference/data-types/string) **Examples** @@ -288,13 +288,13 @@ replaceOne(haystack, pattern, replacement) **Arguments** -- `haystack` — The input string to search in. [`String`](/reference/data-types/string) -- `pattern` — The substring to find and replace. [`const String`](/reference/data-types/string) -- `replacement` — The string to replace the pattern with. [`const String`](/reference/data-types/string) +- `haystack` — The input string to search in. [`String`](/core/reference/data-types/string) +- `pattern` — The substring to find and replace. [`const String`](/core/reference/data-types/string) +- `replacement` — The string to replace the pattern with. [`const String`](/core/reference/data-types/string) **Returned value** -Returns a string with the first occurrence of pattern replaced. [`String`](/reference/data-types/string) +Returns a string with the first occurrence of pattern replaced. [`String`](/core/reference/data-types/string) **Examples** @@ -327,13 +327,13 @@ replaceRegexpAll(haystack, pattern, replacement) **Arguments** -- `haystack` — The input string to search in. [`String`](/reference/data-types/string) -- `pattern` — The regular expression pattern to find. [`const String`](/reference/data-types/string) -- `replacement` — The string to replace the pattern with, may contain substitutions. [`const String`](/reference/data-types/string) +- `haystack` — The input string to search in. [`String`](/core/reference/data-types/string) +- `pattern` — The regular expression pattern to find. [`const String`](/core/reference/data-types/string) +- `replacement` — The string to replace the pattern with, may contain substitutions. [`const String`](/core/reference/data-types/string) **Returned value** -Returns a string with all regex matches replaced. [`String`](/reference/data-types/string) +Returns a string with all regex matches replaced. [`String`](/core/reference/data-types/string) **Examples** @@ -379,13 +379,13 @@ replaceRegexpOne(haystack, pattern, replacement) **Arguments** -- `haystack` — The input string to search in. [`String`](/reference/data-types/string) -- `pattern` — The regular expression pattern to find. [`const String`](/reference/data-types/string) -- `replacement` — The string to replace the pattern with, may contain substitutions. [`const String`](/reference/data-types/string) +- `haystack` — The input string to search in. [`String`](/core/reference/data-types/string) +- `pattern` — The regular expression pattern to find. [`const String`](/core/reference/data-types/string) +- `replacement` — The string to replace the pattern with, may contain substitutions. [`const String`](/core/reference/data-types/string) **Returned value** -Returns a string with the first regex match replaced. [`String`](/reference/data-types/string) +Returns a string with the first regex match replaced. [`String`](/core/reference/data-types/string) **Examples** @@ -440,13 +440,13 @@ translate(s, from, to) **Arguments** -- `s` — The input string to translate. [`String`](/reference/data-types/string) -- `from` — A constant ASCII string containing characters to replace. [`const String`](/reference/data-types/string) -- `to` — A constant ASCII string containing replacement characters. [`const String`](/reference/data-types/string) +- `s` — The input string to translate. [`String`](/core/reference/data-types/string) +- `from` — A constant ASCII string containing characters to replace. [`const String`](/core/reference/data-types/string) +- `to` — A constant ASCII string containing replacement characters. [`const String`](/core/reference/data-types/string) **Returned value** -Returns a string with character translations applied. [`String`](/reference/data-types/string) +Returns a string with character translations applied. [`String`](/core/reference/data-types/string) **Examples** @@ -488,13 +488,13 @@ translateUTF8(s, from, to) **Arguments** -- `s` — UTF-8 input string to translate. [`String`](/reference/data-types/string) -- `from` — A constant UTF-8 string containing characters to replace. [`const String`](/reference/data-types/string) -- `to` — A constant UTF-8 string containing replacement characters. [`const String`](/reference/data-types/string) +- `s` — UTF-8 input string to translate. [`String`](/core/reference/data-types/string) +- `from` — A constant UTF-8 string containing characters to replace. [`const String`](/core/reference/data-types/string) +- `to` — A constant UTF-8 string containing replacement characters. [`const String`](/core/reference/data-types/string) **Returned value** -Returns a `String` data type value. [`String`](/reference/data-types/string) +Returns a `String` data type value. [`String`](/core/reference/data-types/string) **Examples** diff --git a/reference/functions/regular-functions/string-search-functions.mdx b/core/reference/functions/regular-functions/string-search-functions.mdx similarity index 82% rename from reference/functions/regular-functions/string-search-functions.mdx rename to core/reference/functions/regular-functions/string-search-functions.mdx index aa7346c6..3bf7fcc3 100644 --- a/reference/functions/regular-functions/string-search-functions.mdx +++ b/core/reference/functions/regular-functions/string-search-functions.mdx @@ -17,9 +17,9 @@ Functions in this section also assume that the searched string (referred to in t violated, no exception is thrown and results are undefined. Search with UTF-8 encoded strings is usually provided by separate function variants. Likewise, if a UTF-8 function variant is used and the input strings are not UTF-8 encoded text, no exception is thrown and the results are undefined. Note that no automatic Unicode normalization is performed, however you can use the -[normalizeUTF8*()](/reference/functions/regular-functions/string-functions#normalizeUTF8NFC) functions for that. +[normalizeUTF8*()](/core/reference/functions/regular-functions/string-functions#normalizeUTF8NFC) functions for that. -[General strings functions](/reference/functions/regular-functions/string-functions) and [functions for replacing in strings](/reference/functions/regular-functions/string-replace-functions) are described separately. +[General strings functions](/core/reference/functions/regular-functions/string-functions) and [functions for replacing in strings](/core/reference/functions/regular-functions/string-replace-functions) are described separately. The documentation below is generated from the `system.functions` system table. @@ -57,12 +57,12 @@ countMatches(haystack, pattern) **Arguments** -- `haystack` — The string to search in. [`String`](/reference/data-types/string) -- `pattern` — Regular expression pattern. [`String`](/reference/data-types/string) +- `haystack` — The string to search in. [`String`](/core/reference/data-types/string) +- `pattern` — Regular expression pattern. [`String`](/core/reference/data-types/string) **Returned value** -Returns the number of matches found. [`UInt64`](/reference/data-types/int-uint) +Returns the number of matches found. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -93,12 +93,12 @@ countMatchesCaseInsensitive(haystack, pattern) **Arguments** -- `haystack` — The string to search in. [`String`](/reference/data-types/string) -- `pattern` — Regular expression pattern. [`const String`](/reference/data-types/string) +- `haystack` — The string to search in. [`String`](/core/reference/data-types/string) +- `pattern` — Regular expression pattern. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the number of matches found. [`UInt64`](/reference/data-types/int-uint) +Returns the number of matches found. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -128,11 +128,11 @@ countSubstrings(haystack, needle[, start_pos]) **Arguments** -- `haystack` — String in which the search is performed. [String](/reference/data-types/string) or [Enum](/reference/data-types/enum). - `needle` — Substring to be searched. [String](/reference/data-types/string). - `start_pos` — Position (1-based) in `haystack` at which the search starts. [UInt](/reference/data-types/int-uint). Optional. +- `haystack` — String in which the search is performed. [String](/core/reference/data-types/string) or [Enum](/core/reference/data-types/enum). - `needle` — Substring to be searched. [String](/core/reference/data-types/string). - `start_pos` — Position (1-based) in `haystack` at which the search starts. [UInt](/core/reference/data-types/int-uint). Optional. **Returned value** -The number of occurrences. [`UInt64`](/reference/data-types/int-uint) +The number of occurrences. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -174,13 +174,13 @@ countSubstringsCaseInsensitive(haystack, needle[, start_pos]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) or [`Enum`](/reference/data-types/enum) -- `needle` — Substring to be searched. [`String`](/reference/data-types/string) -- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt*`](/reference/data-types/int-uint) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) or [`Enum`](/core/reference/data-types/enum) +- `needle` — Substring to be searched. [`String`](/core/reference/data-types/string) +- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns the number of occurrences of the neddle in the haystack. [`UInt64`](/reference/data-types/int-uint) +Returns the number of occurrences of the neddle in the haystack. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -223,13 +223,13 @@ countSubstringsCaseInsensitiveUTF8(haystack, needle[, start_pos]) **Arguments** -- `haystack` — UTF-8 string in which the search is performed. [`String`](/reference/data-types/string) or [`Enum`](/reference/data-types/enum) -- `needle` — Substring to be searched. [`String`](/reference/data-types/string) -- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt*`](/reference/data-types/int-uint) +- `haystack` — UTF-8 string in which the search is performed. [`String`](/core/reference/data-types/string) or [`Enum`](/core/reference/data-types/enum) +- `needle` — Substring to be searched. [`String`](/core/reference/data-types/string) +- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns the number of occurrences of the needle in the haystack. [`UInt64`](/reference/data-types/int-uint) +Returns the number of occurrences of the needle in the haystack. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -277,12 +277,12 @@ extract(haystack, pattern) **Arguments** -- `haystack` — String from which to extract. [`String`](/reference/data-types/string) -- `pattern` — Regular expression, typically containing a capturing group. [`const String`](/reference/data-types/string) +- `haystack` — String from which to extract. [`String`](/core/reference/data-types/string) +- `pattern` — Regular expression, typically containing a capturing group. [`const String`](/core/reference/data-types/string) **Returned value** -Returns extracted fragment as a string. [`String`](/reference/data-types/string) +Returns extracted fragment as a string. [`String`](/core/reference/data-types/string) **Examples** @@ -328,12 +328,12 @@ extractAll(haystack, pattern) **Arguments** -- `haystack` — String from which to extract fragments. [`String`](/reference/data-types/string) -- `pattern` — Regular expression, optionally containing capturing groups. [`const String`](/reference/data-types/string) +- `haystack` — String from which to extract fragments. [`String`](/core/reference/data-types/string) +- `pattern` — Regular expression, optionally containing capturing groups. [`const String`](/core/reference/data-types/string) **Returned value** -Returns array of extracted fragments. [`Array(String)`](/reference/data-types/array) +Returns array of extracted fragments. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -375,12 +375,12 @@ extractAllGroupsHorizontal(s, regexp) **Arguments** -- `s` — Input string to extract from. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `regexp` — Regular expression to match by. [`const String`](/reference/data-types/string) or [`const FixedString`](/reference/data-types/fixedstring) +- `s` — Input string to extract from. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `regexp` — Regular expression to match by. [`const String`](/core/reference/data-types/string) or [`const FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns an array of arrays, where each inner array contains all captures from one capturing group across all matches. The first inner array contains all captures from group 1, the second from group 2, etc. If no matches are found, returns an empty array. [`Array(Array(String))`](/reference/data-types/array) +Returns an array of arrays, where each inner array contains all captures from one capturing group across all matches. The first inner array contains all captures from group 1, the second from group 2, etc. If no matches are found, returns an empty array. [`Array(Array(String))`](/core/reference/data-types/array) **Examples** @@ -403,7 +403,7 @@ SELECT extractAllGroupsHorizontal(s, '< ([\\w\\-]+): ([^\\r\\n]+)'); Introduced in: v20.5.0 -Extracts the capturing groups from the first substring matched by a regular expression. To extract groups from all matches, use [`extractAllGroupsHorizontal`](#extractAllGroupsHorizontal) or [`extractAllGroupsVertical`](/reference/functions/regular-functions/splitting-merging-functions#extractAllGroupsVertical). +Extracts the capturing groups from the first substring matched by a regular expression. To extract groups from all matches, use [`extractAllGroupsHorizontal`](#extractAllGroupsHorizontal) or [`extractAllGroupsVertical`](/core/reference/functions/regular-functions/splitting-merging-functions#extractAllGroupsVertical). **Syntax** @@ -414,12 +414,12 @@ extractGroups(s, regexp) **Arguments** -- `s` — Input string to extract from. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `regexp` — Regular expression. Must contain at least one capturing group. Constant. [`const String`](/reference/data-types/string) or [`const FixedString`](/reference/data-types/fixedstring) +- `s` — Input string to extract from. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `regexp` — Regular expression. Must contain at least one capturing group. Constant. [`const String`](/core/reference/data-types/string) or [`const FixedString`](/core/reference/data-types/fixedstring) **Returned value** -If the regular expression matches, returns an array containing the captured groups (`1` to `N`, where `N` is the number of capturing groups in `regexp`) of the first match. If there is no match, returns an empty array. [`Array(String)`](/reference/data-types/array) +If the regular expression matches, returns an array containing the captured groups (`1` to `N`, where `N` is the number of capturing groups in `regexp`) of the first match. If there is no match, returns an empty array. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -445,16 +445,16 @@ Introduced in: v25.10.0 Like [`hasAnyTokens`](#hasAnyTokens), but returns 1, if all tokens in the `needle` string or array match the `input` string, and 0 otherwise. If `input` is a column, returns all rows that satisfy this condition. -Column `input` should have a [text index](/reference/engines/table-engines/mergetree-family/textindexes) defined for optimal performance. +Column `input` should have a [text index](/core/reference/engines/table-engines/mergetree-family/textindexes) defined for optimal performance. If no text index is defined, the function performs a brute-force column scan which is orders of magnitude slower than an index lookup. Prior to searching, the function tokenizes - the `input` argument (always), and -- the `needle` argument (if given as a [String](/reference/data-types/string)) +- the `needle` argument (if given as a [String](/core/reference/data-types/string)) using the tokenizer specified for the text index. If the column has no text index defined, the `splitByNonAlpha` tokenizer is used instead. -If the `needle` argument is of type [Array(String)](/reference/data-types/array), each array element is treated as a token — no additional tokenization takes place. +If the `needle` argument is of type [Array(String)](/core/reference/data-types/array), each array element is treated as a token — no additional tokenization takes place. Duplicate tokens are ignored. For example, needles = ['ClickHouse', 'ClickHouse'] is treated the same as ['ClickHouse']. @@ -470,13 +470,13 @@ hasAllTokens(input, needles) **Arguments** -- `input` — The input column. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Array(String)`](/reference/data-types/array) or [`Array(FixedString)`](/reference/data-types/array) -- `needles` — Tokens to be searched. [`String`](/reference/data-types/string) or [`Array(String)`](/reference/data-types/array) -- `tokenizer` — The tokenizer to use. Valid arguments are `splitByNonAlpha`, `splitByString`, `asciiCJK`, `ngrams`, `sparseGrams`, and `array`. Optional, if not set explicitly, defaults to `splitByNonAlpha`. [`const String`](/reference/data-types/string) +- `input` — The input column. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Array(String)`](/core/reference/data-types/array) or [`Array(FixedString)`](/core/reference/data-types/array) +- `needles` — Tokens to be searched. [`String`](/core/reference/data-types/string) or [`Array(String)`](/core/reference/data-types/array) +- `tokenizer` — The tokenizer to use. Valid arguments are `splitByNonAlpha`, `splitByString`, `asciiCJK`, `ngrams`, `sparseGrams`, and `array`. Optional, if not set explicitly, defaults to `splitByNonAlpha`. [`const String`](/core/reference/data-types/string) **Returned value** -Returns 1, if all needles match. 0, otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1, if all needles match. 0, otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -604,16 +604,16 @@ Introduced in: v25.10.0 Returns 1, if at least one token in the `needle` string or array matches the `input` string, and 0 otherwise. If `input` is a column, returns all rows that satisfy this condition. -Column `input` should have a [text index](/reference/engines/table-engines/mergetree-family/textindexes) defined for optimal performance. +Column `input` should have a [text index](/core/reference/engines/table-engines/mergetree-family/textindexes) defined for optimal performance. If no text index is defined, the function performs a brute-force column scan which is orders of magnitude slower than an index lookup. Prior to searching, the function tokenizes - the `input` argument (always), and -- the `needle` argument (if given as a [String](/reference/data-types/string)) +- the `needle` argument (if given as a [String](/core/reference/data-types/string)) using the tokenizer specified for the text index. If the column has no text index defined, the `splitByNonAlpha` tokenizer is used instead. -If the `needle` argument is of type [Array(String)](/reference/data-types/array), each array element is treated as a token — no additional tokenization takes place. +If the `needle` argument is of type [Array(String)](/core/reference/data-types/array), each array element is treated as a token — no additional tokenization takes place. Duplicate tokens are ignored. For example, ['ClickHouse', 'ClickHouse'] is treated the same as ['ClickHouse']. @@ -629,13 +629,13 @@ hasAnyTokens(input, needles) **Arguments** -- `input` — The input column. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Nullable(String)`](/reference/data-types/nullable) or [`Nullable(FixedString)`](/reference/data-types/nullable) or [`Array(String)`](/reference/data-types/array) or [`Array(FixedString)`](/reference/data-types/array) or [`Array(Nullable(String))`](/reference/data-types/array) or [`Array(Nullable(FixedString))`](/reference/data-types/array) -- `needles` — Tokens to be searched. [`String`](/reference/data-types/string) or [`Array(String)`](/reference/data-types/array) -- `tokenizer` — The tokenizer to use. Valid arguments are `splitByNonAlpha`, `splitByString`, `asciiCJK`, `ngrams`, `sparseGrams`, and `array`. Optional, if not set explicitly, defaults to `splitByNonAlpha`. [`const String`](/reference/data-types/string) +- `input` — The input column. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Nullable(String)`](/core/reference/data-types/nullable) or [`Nullable(FixedString)`](/core/reference/data-types/nullable) or [`Array(String)`](/core/reference/data-types/array) or [`Array(FixedString)`](/core/reference/data-types/array) or [`Array(Nullable(String))`](/core/reference/data-types/array) or [`Array(Nullable(FixedString))`](/core/reference/data-types/array) +- `needles` — Tokens to be searched. [`String`](/core/reference/data-types/string) or [`Array(String)`](/core/reference/data-types/array) +- `tokenizer` — The tokenizer to use. Valid arguments are `splitByNonAlpha`, `splitByString`, `asciiCJK`, `ngrams`, `sparseGrams`, and `array`. Optional, if not set explicitly, defaults to `splitByNonAlpha`. [`const String`](/core/reference/data-types/string) **Returned value** -Returns `1`, if there was at least one match. `0`, otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1`, if there was at least one match. `0`, otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -769,13 +769,13 @@ hasPhrase(input, phrase[, tokenizer]) **Arguments** -- `input` — The input column. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `phrase` — Phrase to search for. [`const String`](/reference/data-types/string) -- `tokenizer` — The tokenizer to use. Optional, defaults to `splitByNonAlpha`. [`const String`](/reference/data-types/string) +- `input` — The input column. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `phrase` — Phrase to search for. [`const String`](/core/reference/data-types/string) +- `tokenizer` — The tokenizer to use. Optional, defaults to `splitByNonAlpha`. [`const String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the phrase is found as a consecutive token sequence, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the phrase is found as a consecutive token sequence, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -819,12 +819,12 @@ hasSubsequence(haystack, needle) **Arguments** -- `haystack` — String in which to search for the subsequence. [`String`](/reference/data-types/string) -- `needle` — Subsequence to be searched. [`String`](/reference/data-types/string) +- `haystack` — String in which to search for the subsequence. [`String`](/core/reference/data-types/string) +- `needle` — Subsequence to be searched. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if needle is a subsequence of haystack, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if needle is a subsequence of haystack, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -866,12 +866,12 @@ hasSubsequenceCaseInsensitive(haystack, needle) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `needle` — Subsequence to be searched. [`String`](/reference/data-types/string) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle` — Subsequence to be searched. [`String`](/core/reference/data-types/string) **Returned value** -Returns 1, if needle is a subsequence of haystack, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1, if needle is a subsequence of haystack, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -901,12 +901,12 @@ hasSubsequenceCaseInsensitiveUTF8(haystack, needle) **Arguments** -- `haystack` — UTF8-encoded string in which the search is performed. [`String`](/reference/data-types/string) -- `needle` — UTF8-encoded subsequence string to be searched. [`String`](/reference/data-types/string) +- `haystack` — UTF8-encoded string in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle` — UTF8-encoded subsequence string to be searched. [`String`](/core/reference/data-types/string) **Returned value** -Returns 1, if needle is a subsequence of haystack, 0 otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns 1, if needle is a subsequence of haystack, 0 otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -926,7 +926,7 @@ SELECT hasSubsequenceCaseInsensitiveUTF8('ClickHouse - столбцовая си Introduced in: v23.7.0 -Like [`hasSubsequence`](/reference/functions/regular-functions/string-search-functions#hasSubsequence) but assumes haystack and needle are UTF-8 encoded strings. +Like [`hasSubsequence`](/core/reference/functions/regular-functions/string-search-functions#hasSubsequence) but assumes haystack and needle are UTF-8 encoded strings. **Syntax** @@ -937,12 +937,12 @@ hasSubsequenceUTF8(haystack, needle) **Arguments** -- `haystack` — The string in which to search. [`String`](/reference/data-types/string) -- `needle` — The subsequence to search for. [`String`](/reference/data-types/string) +- `haystack` — The string in which to search. [`String`](/core/reference/data-types/string) +- `needle` — The subsequence to search for. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `needle` is a subsequence of `haystack`, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `needle` is a subsequence of `haystack`, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -976,7 +976,7 @@ Introduced in: v20.1.0 Checks if the given token is present in the haystack. -Uses [splitByNonAlpha](/reference/functions/regular-functions/splitting-merging-functions#splitByNonAlpha) as tokenizer, i.e. a token is defined as the longest possible sub-sequence of consecutive characters `[0-9A-Za-z_]` (numbers, ASCII characters and underscore). +Uses [splitByNonAlpha](/core/reference/functions/regular-functions/splitting-merging-functions#splitByNonAlpha) as tokenizer, i.e. a token is defined as the longest possible sub-sequence of consecutive characters `[0-9A-Za-z_]` (numbers, ASCII characters and underscore). **Syntax** @@ -987,12 +987,12 @@ hasToken(haystack, token) **Arguments** -- `haystack` — String to be searched. [`String`](/reference/data-types/string) -- `token` — Token to search for. [`const String`](/reference/data-types/string) +- `haystack` — String to be searched. [`String`](/core/reference/data-types/string) +- `token` — Token to search for. [`const String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the token is found, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the token is found, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1063,12 +1063,12 @@ hasTokenOrNull(haystack, token) **Arguments** -- `haystack` — String to be searched. Must be constant. [`String`](/reference/data-types/string) -- `token` — Token to search for. [`const String`](/reference/data-types/string) +- `haystack` — String to be searched. Must be constant. [`String`](/core/reference/data-types/string) +- `token` — Token to search for. [`const String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the token is found, `0` otherwise, null if token is ill-formed. [`Nullable(UInt8)`](/reference/data-types/nullable) +Returns `1` if the token is found, `0` otherwise, null if token is ill-formed. [`Nullable(UInt8)`](/core/reference/data-types/nullable) **Examples** @@ -1101,14 +1101,14 @@ highlight(haystack, needles[, open_tag, close_tag]) **Arguments** -- `haystack` — The text to search in. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `needles` — An array of search terms to highlight. [`const Array(String)`](/reference/data-types/array) -- `open_tag` — The opening tag to insert before each match. Default: ``. [`const String`](/reference/data-types/string) -- `close_tag` — The closing tag to insert after each match. Default: ``. [`const String`](/reference/data-types/string) +- `haystack` — The text to search in. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `needles` — An array of search terms to highlight. [`const Array(String)`](/core/reference/data-types/array) +- `open_tag` — The opening tag to insert before each match. Default: ``. [`const String`](/core/reference/data-types/string) +- `close_tag` — The closing tag to insert after each match. Default: ``. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the input text with matched terms wrapped in the specified tags. [`String`](/reference/data-types/string) +Returns the input text with matched terms wrapped in the specified tags. [`String`](/core/reference/data-types/string) **Examples** @@ -1151,12 +1151,12 @@ ilike(haystack, pattern) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `pattern` — LIKE pattern to match against. [`String`](/reference/data-types/string) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `pattern` — LIKE pattern to match against. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the string matches the LIKE pattern (case-insensitive), otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the string matches the LIKE pattern (case-insensitive), otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1194,7 +1194,7 @@ To match against literal `%`, `_` and `\` (which are `LIKE` metacharacters), pre The backslash loses its special meaning (i.e. is interpreted literally) if it prepends a character different than `%`, `_` or `\`. -ClickHouse requires backslashes in strings [to be quoted as well](/reference/syntax#string), so you would actually need to write `\\%`, `\\_` and `\\\\`. +ClickHouse requires backslashes in strings [to be quoted as well](/core/reference/syntax#string), so you would actually need to write `\\%`, `\\_` and `\\\\`. For `LIKE` expressions of the form `%needle%`, the function is as fast as the `position` function. @@ -1210,12 +1210,12 @@ like(haystack, pattern) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `pattern` — `LIKE` pattern to match against. Can contain `%` (matches any number of characters), `_` (matches single character), and `\` for escaping. [`String`](/reference/data-types/string) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `pattern` — `LIKE` pattern to match against. Can contain `%` (matches any number of characters), `_` (matches single character), and `\` for escaping. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the string matches the `LIKE` pattern, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the string matches the `LIKE` pattern, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1279,13 +1279,13 @@ locate(needle, haystack[, start_pos]) **Arguments** -- `needle` — Substring to be searched. [`String`](/reference/data-types/string) -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) or [`Enum`](/reference/data-types/enum) -- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt`](/reference/data-types/int-uint) +- `needle` — Substring to be searched. [`String`](/core/reference/data-types/string) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) or [`Enum`](/core/reference/data-types/enum) +- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt`](/core/reference/data-types/int-uint) **Returned value** -Returns starting position in bytes and counting from 1, if the substring was found, `0`, if the substring was not found. [`UInt64`](/reference/data-types/int-uint) +Returns starting position in bytes and counting from 1, if the substring was found, `0`, if the substring was not found. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1332,12 +1332,12 @@ match(haystack, pattern) **Arguments** -- `haystack` — String in which the pattern is searched. [`String`](/reference/data-types/string) -- `pattern` — Regular expression pattern. [`const String`](/reference/data-types/string) +- `haystack` — String in which the pattern is searched. [`String`](/core/reference/data-types/string) +- `pattern` — Regular expression pattern. [`const String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the pattern matches, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the pattern matches, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1391,13 +1391,13 @@ multiFuzzyMatchAllIndices(haystack, distance, [pattern1, pattern2, ..., patternN **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `distance` — The maximum edit distance for fuzzy matching. [`UInt8`](/reference/data-types/int-uint) -- `pattern` — Array of patterns to match against. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `distance` — The maximum edit distance for fuzzy matching. [`UInt8`](/core/reference/data-types/int-uint) +- `pattern` — Array of patterns to match against. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns an array of all indices (starting from 1) that match the haystack within the specified edit distance in any order. Returns an empty array if no matches are found. [`Array(UInt64)`](/reference/data-types/array) +Returns an array of all indices (starting from 1) that match the haystack within the specified edit distance in any order. Returns an empty array if no matches are found. [`Array(UInt64)`](/core/reference/data-types/array) **Examples** @@ -1434,13 +1434,13 @@ multiFuzzyMatchAny(haystack, distance, [pattern1, pattern2, ..., patternN]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `distance` — The maximum edit distance for fuzzy matching. [`UInt8`](/reference/data-types/int-uint) -- `pattern` — Optional. An array of patterns to match against. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `distance` — The maximum edit distance for fuzzy matching. [`UInt8`](/core/reference/data-types/int-uint) +- `pattern` — Optional. An array of patterns to match against. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns `1` if any pattern matches the haystack within the specified edit distance, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if any pattern matches the haystack within the specified edit distance, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1470,13 +1470,13 @@ multiFuzzyMatchAnyIndex(haystack, distance, [pattern1, pattern2, ..., patternn]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `distance` — The maximum edit distance for fuzzy matching. [`UInt8`](/reference/data-types/int-uint) -- `pattern` — Array of patterns to match against. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `distance` — The maximum edit distance for fuzzy matching. [`UInt8`](/core/reference/data-types/int-uint) +- `pattern` — Array of patterns to match against. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns the index (starting from 1) of any pattern that matches the haystack within the specified edit distance, otherwise `0`. [`UInt64`](/reference/data-types/int-uint) +Returns the index (starting from 1) of any pattern that matches the haystack within the specified edit distance, otherwise `0`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1506,12 +1506,12 @@ multiMatchAllIndices(haystack, [pattern1, pattern2, ..., patternn]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `pattern` — Regular expressions to match against. [`String`](/reference/data-types/string) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `pattern` — Regular expressions to match against. [`String`](/core/reference/data-types/string) **Returned value** -Array of all indices (starting from 1) that match the haystack in any order. Returns an empty array if no matches are found. [`Array(UInt64)`](/reference/data-types/array) +Array of all indices (starting from 1) that match the haystack in any order. Returns an empty array if no matches are found. [`Array(UInt64)`](/core/reference/data-types/array) **Examples** @@ -1544,12 +1544,12 @@ multiMatchAny(haystack, pattern1[, pattern2, ...]) **Arguments** -- `haystack` — String in which patterns are searched. [`String`](/reference/data-types/string) -- `pattern1[, pattern2, ...]` — An array of one or more regular expression patterns. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which patterns are searched. [`String`](/core/reference/data-types/string) +- `pattern1[, pattern2, ...]` — An array of one or more regular expression patterns. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns `1` if any pattern matches, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if any pattern matches, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1591,12 +1591,12 @@ multiMatchAnyIndex(haystack, [pattern1, pattern2, ..., patternn]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `pattern` — Regular expressions to match against. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `pattern` — Regular expressions to match against. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns the index (starting from 1) of the first pattern that matches, or 0 if no match is found. [`UInt64`](/reference/data-types/int-uint) +Returns the index (starting from 1) of the first pattern that matches, or 0 if no match is found. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1629,12 +1629,12 @@ multiSearchAllPositions(haystack, needle1[, needle2, ...]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `needle1[, needle2, ...]` — An array of one or more substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle1[, needle2, ...]` — An array of one or more substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns array of the starting position in bytes and counting from 1, if the substring was found, `0`, if the substring was not found. [`Array(UInt64)`](/reference/data-types/array) +Returns array of the starting position in bytes and counting from 1, if the substring was found, `0`, if the substring was not found. [`Array(UInt64)`](/core/reference/data-types/array) **Examples** @@ -1665,12 +1665,12 @@ multiSearchAllPositionsCaseInsensitive(haystack, needle1[, needle2, ...]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `needle1[, needle2, ...]` — An array of one or more substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle1[, needle2, ...]` — An array of one or more substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns array of the starting position in bytes and counting from 1 (if the substring was found), `0` if the substring was not found. [`Array(UInt64)`](/reference/data-types/array) +Returns array of the starting position in bytes and counting from 1 (if the substring was found), `0` if the substring was not found. [`Array(UInt64)`](/core/reference/data-types/array) **Examples** @@ -1700,12 +1700,12 @@ multiSearchAllPositionsCaseInsensitiveUTF8(haystack, [needle1, needle2, ..., nee **Arguments** -- `haystack` — UTF-8 encoded string in which the search is performed. [`String`](/reference/data-types/string) -- `needle` — UTF-8 encoded substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — UTF-8 encoded string in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle` — UTF-8 encoded substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Array of the starting position in bytes and counting from 1 (if the substring was found). Returns 0 if the substring was not found. [`Array`](/reference/data-types/array) +Array of the starting position in bytes and counting from 1 (if the substring was found). Returns 0 if the substring was not found. [`Array`](/core/reference/data-types/array) **Examples** @@ -1736,12 +1736,12 @@ multiSearchAllPositionsUTF8(haystack, needle1[, needle2, ...]) **Arguments** -- `haystack` — UTF-8 encoded string in which the search is performed. [`String`](/reference/data-types/string) -- `needle1[, needle2, ...]` — An array of UTF-8 encoded substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — UTF-8 encoded string in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle1[, needle2, ...]` — An array of UTF-8 encoded substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns array of the starting position in bytes and counting from 1 (if the substring was found), `0` if the substring was not found. [`Array`](/reference/data-types/array) +Returns array of the starting position in bytes and counting from 1 (if the substring was found), `0` if the substring was not found. [`Array`](/core/reference/data-types/array) **Examples** @@ -1774,12 +1774,12 @@ multiSearchAny(haystack, needle1[, needle2, ...]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `needle1[, needle2, ...]` — An array of substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle1[, needle2, ...]` — An array of substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns `1`, if there was at least one match, otherwise `0`, if there was not at least one match. [`UInt8`](/reference/data-types/int-uint) +Returns `1`, if there was at least one match, otherwise `0`, if there was not at least one match. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1810,12 +1810,12 @@ multiSearchAnyCaseInsensitive(haystack, [needle1, needle2, ..., needleN]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `needle` — Substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle` — Substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns `1`, if there was at least one case-insensitive match, otherwise `0`, if there was not at least one case-insensitive match. [`UInt8`](/reference/data-types/int-uint) +Returns `1`, if there was at least one case-insensitive match, otherwise `0`, if there was not at least one case-insensitive match. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1846,12 +1846,12 @@ multiSearchAnyCaseInsensitiveUTF8(haystack, [needle1, needle2, ..., needleN]) **Arguments** -- `haystack` — UTF-8 string in which the search is performed. [`String`](/reference/data-types/string) -- `needle` — UTF-8 substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — UTF-8 string in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle` — UTF-8 substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns `1`, if there was at least one case-insensitive match, otherwise `0`, if there was not at least one case-insensitive match. [`UInt8`](/reference/data-types/int-uint) +Returns `1`, if there was at least one case-insensitive match, otherwise `0`, if there was not at least one case-insensitive match. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1882,12 +1882,12 @@ multiSearchAnyUTF8(haystack, [needle1, needle2, ..., needleN]) **Arguments** -- `haystack` — UTF-8 string in which the search is performed. [`String`](/reference/data-types/string) -- `needle` — UTF-8 substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — UTF-8 string in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle` — UTF-8 substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns `1`, if there was at least one match, otherwise `0`, if there was not at least one match. [`UInt8`](/reference/data-types/int-uint) +Returns `1`, if there was at least one match, otherwise `0`, if there was not at least one match. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -1917,12 +1917,12 @@ multiSearchFirstIndex(haystack, [needle1, needle2, ..., needleN]) **Arguments** -- `haystack` — The string to search in. [`String`](/reference/data-types/string) -- `needles` — Array of strings to search for. [`Array(String)`](/reference/data-types/array) +- `haystack` — The string to search in. [`String`](/core/reference/data-types/string) +- `needles` — Array of strings to search for. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns the 1-based index (position in the needles array) of the first needle found in the haystack. Returns 0 if no needles are found. The search is case-sensitive. [`UInt64`](/reference/data-types/int-uint) +Returns the 1-based index (position in the needles array) of the first needle found in the haystack. Returns 0 if no needles are found. The search is case-sensitive. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -1978,12 +1978,12 @@ multiSearchFirstIndexCaseInsensitive(haystack, [needle1, needle2, ..., needleN] **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `needle` — Substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle` — Substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns the index (starting from 1) of the leftmost found needle. Otherwise `0`, if there was no match. [`UInt8`](/reference/data-types/int-uint) +Returns the index (starting from 1) of the leftmost found needle. Otherwise `0`, if there was no match. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2013,12 +2013,12 @@ multiSearchFirstIndexCaseInsensitiveUTF8(haystack, [needle1, needle2, ..., needl **Arguments** -- `haystack` — The string to search in. [`String`](/reference/data-types/string) -- `needles` — Array of strings to search for. [`Array(String)`](/reference/data-types/array) +- `haystack` — The string to search in. [`String`](/core/reference/data-types/string) +- `needles` — Array of strings to search for. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns the 1-based index (position in the needles array) of the first needle found in the haystack. Returns 0 if no needles are found. The search is case-insensitive and respects UTF-8 character encoding. [`UInt64`](/reference/data-types/int-uint) +Returns the 1-based index (position in the needles array) of the first needle found in the haystack. Returns 0 if no needles are found. The search is case-insensitive and respects UTF-8 character encoding. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2074,12 +2074,12 @@ multiSearchFirstIndexUTF8(haystack, [needle1, needle2, ..., needleN]) **Arguments** -- `haystack` — UTF-8 string in which the search is performed. [`String`](/reference/data-types/string) -- `needle` — Array of UTF-8 substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — UTF-8 string in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle` — Array of UTF-8 substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns the index (starting from 1) of the leftmost found needle. Otherwise 0, if there was no match. [`UInt8`](/reference/data-types/int-uint) +Returns the index (starting from 1) of the leftmost found needle. Otherwise 0, if there was no match. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2112,12 +2112,12 @@ multiSearchFirstPosition(haystack, needle1[, needle2, ...]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `needle1[, needle2, ...]` — An array of one or more substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle1[, needle2, ...]` — An array of one or more substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns the leftmost offset in a `haystack` string which matches any of multiple `needle` strings, otherwise `0`, if there was no match. [`UInt64`](/reference/data-types/int-uint) +Returns the leftmost offset in a `haystack` string which matches any of multiple `needle` strings, otherwise `0`, if there was no match. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2148,12 +2148,12 @@ multiSearchFirstPositionCaseInsensitive(haystack, [needle1, needle2, ..., needle **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) -- `needle` — Array of substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle` — Array of substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns the leftmost offset in a `haystack` string which matches any of multiple `needle` strings. Returns `0`, if there was no match. [`UInt64`](/reference/data-types/int-uint) +Returns the leftmost offset in a `haystack` string which matches any of multiple `needle` strings. Returns `0`, if there was no match. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2184,12 +2184,12 @@ multiSearchFirstPositionCaseInsensitiveUTF8(haystack, [needle1, needle2, ..., ne **Arguments** -- `haystack` — UTF-8 string in which the search is performed. [`String`](/reference/data-types/string) -- `needle` — Array of UTF-8 substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — UTF-8 string in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle` — Array of UTF-8 substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns the leftmost offset in a `haystack` string which matches any of multiple `needle` strings, ignoring case. Returns `0`, if there was no match. [`UInt64`](/reference/data-types/int-uint) +Returns the leftmost offset in a `haystack` string which matches any of multiple `needle` strings, ignoring case. Returns `0`, if there was no match. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2220,12 +2220,12 @@ multiSearchFirstPositionUTF8(haystack, [needle1, needle2, ..., needleN]) **Arguments** -- `haystack` — UTF-8 string in which the search is performed. [`String`](/reference/data-types/string) -- `needle` — Array of UTF-8 substrings to be searched. [`Array(String)`](/reference/data-types/array) +- `haystack` — UTF-8 string in which the search is performed. [`String`](/core/reference/data-types/string) +- `needle` — Array of UTF-8 substrings to be searched. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Leftmost offset in a `haystack` string which matches any of multiple `needle` strings. Returns `0`, if there was no match. [`UInt64`](/reference/data-types/int-uint) +Leftmost offset in a `haystack` string which matches any of multiple `needle` strings. Returns `0`, if there was no match. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2260,12 +2260,12 @@ ngramDistance(haystack, needle) **Arguments** -- `haystack` — String for comparison. [`String`](/reference/data-types/string) -- `needle` — String for comparison. [`String`](/reference/data-types/string) +- `haystack` — String for comparison. [`String`](/core/reference/data-types/string) +- `needle` — String for comparison. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Float32 number between `0` and `1`. The smaller the returned value, the more similar the strings are. [`Float32`](/reference/data-types/float) +Returns a Float32 number between `0` and `1`. The smaller the returned value, the more similar the strings are. [`Float32`](/core/reference/data-types/float) **Examples** @@ -2298,12 +2298,12 @@ ngramDistanceCaseInsensitive(haystack, needle) **Arguments** -- `haystack` — First comparison string. [`String`](/reference/data-types/string) -- `needle` — Second comparison string. [`String`](/reference/data-types/string) +- `haystack` — First comparison string. [`String`](/core/reference/data-types/string) +- `needle` — Second comparison string. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Float32 number between `0` and `1`. [`Float32`](/reference/data-types/float) +Returns a Float32 number between `0` and `1`. [`Float32`](/core/reference/data-types/float) **Examples** @@ -2337,12 +2337,12 @@ ngramDistanceCaseInsensitiveUTF8(haystack, needle) **Arguments** -- `haystack` — First UTF-8 encoded comparison string. [`String`](/reference/data-types/string) -- `needle` — Second UTF-8 encoded comparison string. [`String`](/reference/data-types/string) +- `haystack` — First UTF-8 encoded comparison string. [`String`](/core/reference/data-types/string) +- `needle` — Second UTF-8 encoded comparison string. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Float32 number between `0` and `1`. [`Float32`](/reference/data-types/float) +Returns a Float32 number between `0` and `1`. [`Float32`](/core/reference/data-types/float) **Examples** @@ -2376,12 +2376,12 @@ ngramDistanceUTF8(haystack, needle) **Arguments** -- `haystack` — First UTF-8 encoded comparison string. [`String`](/reference/data-types/string) -- `needle` — Second UTF-8 encoded comparison string. [`String`](/reference/data-types/string) +- `haystack` — First UTF-8 encoded comparison string. [`String`](/core/reference/data-types/string) +- `needle` — Second UTF-8 encoded comparison string. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Float32 number between `0` and `1`. [`Float32`](/reference/data-types/float) +Returns a Float32 number between `0` and `1`. [`Float32`](/core/reference/data-types/float) **Examples** @@ -2414,12 +2414,12 @@ ngramSearch(haystack, needle) **Arguments** -- `haystack` — String for comparison. [`String`](/reference/data-types/string) -- `needle` — String for comparison. [`String`](/reference/data-types/string) +- `haystack` — String for comparison. [`String`](/core/reference/data-types/string) +- `needle` — String for comparison. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the 4-gram distance between the strings is less than or equal to a threshold (`1.0` by default), `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the 4-gram distance between the strings is less than or equal to a threshold (`1.0` by default), `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2452,12 +2452,12 @@ ngramSearchCaseInsensitive(haystack, needle) **Arguments** -- `haystack` — String for comparison. [`String`](/reference/data-types/string) -- `needle` — String for comparison. [`String`](/reference/data-types/string) +- `haystack` — String for comparison. [`String`](/core/reference/data-types/string) +- `needle` — String for comparison. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the 4-gram distance between the strings is less than or equal to a threshold (`1.0` by default), `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the 4-gram distance between the strings is less than or equal to a threshold (`1.0` by default), `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2490,12 +2490,12 @@ ngramSearchCaseInsensitiveUTF8(haystack, needle) **Arguments** -- `haystack` — UTF-8 string for comparison. [`String`](/reference/data-types/string) -- `needle` — UTF-8 string for comparison. [`String`](/reference/data-types/string) +- `haystack` — UTF-8 string for comparison. [`String`](/core/reference/data-types/string) +- `needle` — UTF-8 string for comparison. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the 3-gram distance between the strings is less than or equal to a threshold (`1.0` by default), `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the 3-gram distance between the strings is less than or equal to a threshold (`1.0` by default), `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2528,12 +2528,12 @@ ngramSearchUTF8(haystack, needle) **Arguments** -- `haystack` — UTF-8 string for comparison. [`String`](/reference/data-types/string) -- `needle` — UTF-8 string for comparison. [`String`](/reference/data-types/string) +- `haystack` — UTF-8 string for comparison. [`String`](/core/reference/data-types/string) +- `needle` — UTF-8 string for comparison. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the 3-gram distance between the strings is less than or equal to a threshold (`1.0` by default), `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the 3-gram distance between the strings is less than or equal to a threshold (`1.0` by default), `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2563,12 +2563,12 @@ notILike(haystack, pattern) **Arguments** -- `haystack` — The input string to search in. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `pattern` — The SQL LIKE pattern to match against. `%` matches any number of characters (including zero), `_` matches exactly one character. [`String`](/reference/data-types/string) +- `haystack` — The input string to search in. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `pattern` — The SQL LIKE pattern to match against. `%` matches any number of characters (including zero), `_` matches exactly one character. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the string does not match the pattern (case-insensitive), otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the string does not match the pattern (case-insensitive), otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2599,12 +2599,12 @@ notLike(haystack, pattern) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `pattern` — LIKE pattern to match against. [`String`](/reference/data-types/string) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `pattern` — LIKE pattern to match against. [`String`](/core/reference/data-types/string) **Returned value** -Returns `1` if the string does not match the `LIKE` pattern, otherwise `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the string does not match the `LIKE` pattern, otherwise `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2655,13 +2655,13 @@ position(haystack, needle[, start_pos]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) or [`Enum`](/reference/data-types/enum) -- `needle` — Substring to be searched. [`String`](/reference/data-types/string) -- `start_pos` — Position (1-based) in `haystack` at which the search starts. Optional. [`UInt`](/reference/data-types/int-uint) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) or [`Enum`](/core/reference/data-types/enum) +- `needle` — Substring to be searched. [`String`](/core/reference/data-types/string) +- `start_pos` — Position (1-based) in `haystack` at which the search starts. Optional. [`UInt`](/core/reference/data-types/int-uint) **Returned value** -Returns starting position in bytes and counting from 1, if the substring was found, otherwise `0`, if the substring was not found. [`UInt64`](/reference/data-types/int-uint) +Returns starting position in bytes and counting from 1, if the substring was found, otherwise `0`, if the substring was not found. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2730,13 +2730,13 @@ positionCaseInsensitive(haystack, needle[, start_pos]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) or [`Enum`](/reference/data-types/enum) -- `needle` — Substring to be searched. [`String`](/reference/data-types/string) -- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt*`](/reference/data-types/int-uint) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) or [`Enum`](/core/reference/data-types/enum) +- `needle` — Substring to be searched. [`String`](/core/reference/data-types/string) +- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns starting position in bytes and counting from 1, if the substring was found, otherwise `0`, if the substring was not found. [`UInt64`](/reference/data-types/int-uint) +Returns starting position in bytes and counting from 1, if the substring was found, otherwise `0`, if the substring was not found. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2767,13 +2767,13 @@ positionCaseInsensitiveUTF8(haystack, needle[, start_pos]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) or [`Enum`](/reference/data-types/enum) -- `needle` — Substring to be searched. [`String`](/reference/data-types/string) -- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt*`](/reference/data-types/int-uint) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) or [`Enum`](/core/reference/data-types/enum) +- `needle` — Substring to be searched. [`String`](/core/reference/data-types/string) +- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns starting position in bytes and counting from 1, if the substring was found, otherwise `0`, if the substring was not found. [`UInt64`](/reference/data-types/int-uint) +Returns starting position in bytes and counting from 1, if the substring was found, otherwise `0`, if the substring was not found. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2804,13 +2804,13 @@ positionUTF8(haystack, needle[, start_pos]) **Arguments** -- `haystack` — String in which the search is performed. [`String`](/reference/data-types/string) or [`Enum`](/reference/data-types/enum) -- `needle` — Substring to be searched. [`String`](/reference/data-types/string) -- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt*`](/reference/data-types/int-uint) +- `haystack` — String in which the search is performed. [`String`](/core/reference/data-types/string) or [`Enum`](/core/reference/data-types/enum) +- `needle` — Substring to be searched. [`String`](/core/reference/data-types/string) +- `start_pos` — Optional. Position (1-based) in `haystack` at which the search starts. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns starting position in bytes and counting from 1, if the substring was found, otherwise `0`, if the substring was not found. [`UInt64`](/reference/data-types/int-uint) +Returns starting position in bytes and counting from 1, if the substring was found, otherwise `0`, if the substring was not found. [`UInt64`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/regular-functions/time-series-functions.mdx b/core/reference/functions/regular-functions/time-series-functions.mdx similarity index 78% rename from reference/functions/regular-functions/time-series-functions.mdx rename to core/reference/functions/regular-functions/time-series-functions.mdx index f6f3cb4d..c40bd7dc 100644 --- a/reference/functions/regular-functions/time-series-functions.mdx +++ b/core/reference/functions/regular-functions/time-series-functions.mdx @@ -7,8 +7,8 @@ doc_type: 'reference' --- The functions below are designed to be used with `timeSeries*()` aggregate functions like -[`timeSeriesInstantRateToGrid`](/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid), -[`timeSeriesLastToGrid`](/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness), +[`timeSeriesInstantRateToGrid`](/core/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid), +[`timeSeriesLastToGrid`](/core/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness), and so on. {/* @@ -33,12 +33,12 @@ seriesDecomposeSTL(series, period) **Arguments** -- `series` — An array of numeric values [`Array((U)Int8/16/32/64)`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) -- `period` — A positive integer [`UInt8/16/32/64`](/reference/data-types/int-uint) +- `series` — An array of numeric values [`Array((U)Int8/16/32/64)`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) +- `period` — A positive integer [`UInt8/16/32/64`](/core/reference/data-types/int-uint) **Returned value** -Returns an array of four arrays where the first array includes seasonal components, the second array - trend, the third array - residue component, and the fourth array - baseline(seasonal + trend) component. [`Array(Array(Float32), Array(Float32), Array(Float32), Array(Float32))`](/reference/data-types/array) +Returns an array of four arrays where the first array includes seasonal components, the second array - trend, the third array - residue component, and the fourth array - baseline(seasonal + trend) component. [`Array(Array(Float32), Array(Float32), Array(Float32), Array(Float32))`](/core/reference/data-types/array) **Examples** @@ -86,14 +86,14 @@ seriesOutliersDetectTukey(series[, min_percentile, max_percentile, K]) **Arguments** -- `series` — An array of numeric values. [`Array((UInt8/16/32/64))`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) -- `min_percentile` — Optional. The minimum percentile to be used to calculate inter-quantile range [(IQR)](https://en.wikipedia.org/wiki/Interquartile_range). The value must be in range [0.02,0.98]. The default is 0.25. [`Float*`](/reference/data-types/float) -- `max_percentile` — Optional. The maximum percentile to be used to calculate inter-quantile range (IQR). The value must be in range [0.02,0.98]. The default is 0.75. [`Float*`](/reference/data-types/float) -- `K` — Optional. Non-negative constant value to detect mild or stronger outliers. The default value is 1.5. [`Float*`](/reference/data-types/float) +- `series` — An array of numeric values. [`Array((UInt8/16/32/64))`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) +- `min_percentile` — Optional. The minimum percentile to be used to calculate inter-quantile range [(IQR)](https://en.wikipedia.org/wiki/Interquartile_range). The value must be in range [0.02,0.98]. The default is 0.25. [`Float*`](/core/reference/data-types/float) +- `max_percentile` — Optional. The maximum percentile to be used to calculate inter-quantile range (IQR). The value must be in range [0.02,0.98]. The default is 0.75. [`Float*`](/core/reference/data-types/float) +- `K` — Optional. Non-negative constant value to detect mild or stronger outliers. The default value is 1.5. [`Float*`](/core/reference/data-types/float) **Returned value** -Returns an array of the same length as the input array where each value represents score of possible anomaly of corresponding element in the series. A non-zero score indicates a possible anomaly. [`Array(Float32)`](/reference/data-types/array) +Returns an array of the same length as the input array where each value represents score of possible anomaly of corresponding element in the series. A non-zero score indicates a possible anomaly. [`Array(Float32)`](/core/reference/data-types/array) **Examples** @@ -136,11 +136,11 @@ seriesPeriodDetectFFT(series) **Arguments** -- `series` — An array of numeric values. [`Array((U)Int8/16/32/64)`](/reference/data-types/array) or [`Array(Float*)`](/reference/data-types/array) +- `series` — An array of numeric values. [`Array((U)Int8/16/32/64)`](/core/reference/data-types/array) or [`Array(Float*)`](/core/reference/data-types/array) **Returned value** -Returns a real value equal to the period of series data. NaN when number of data points are less than four. [`Float64`](/reference/data-types/float) +Returns a real value equal to the period of series data. NaN when number of data points are less than four. [`Float64`](/core/reference/data-types/float) **Examples** @@ -187,13 +187,13 @@ timeSeriesCopyTag(dest_group, src_group, tag_to_copy) **Arguments** -- `dest_group` — The destination group of tags. [`UInt64`](/reference/data-types/int-uint) -- `src_group` — The source group of tags. [`UInt64`](/reference/data-types/int-uint) -- `tag_to_copy` — The name of a tag to copy. [`String`](/reference/data-types/string) +- `dest_group` — The destination group of tags. [`UInt64`](/core/reference/data-types/int-uint) +- `src_group` — The source group of tags. [`UInt64`](/core/reference/data-types/int-uint) +- `tag_to_copy` — The name of a tag to copy. [`String`](/core/reference/data-types/string) **Returned value** -Returns a group of tags containing the tags from `dest_group` along with the copied tags from `src_group`. [`UInt64`](/reference/data-types/int-uint) +Returns a group of tags containing the tags from `dest_group` along with the copied tags from `src_group`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -231,13 +231,13 @@ timeSeriesCopyTags(dest_group, src_group, tags_to_copy) **Arguments** -- `dest_group` — The destination group of tags. [`UInt64`](/reference/data-types/int-uint) -- `src_group` — The source group of tags. [`UInt64`](/reference/data-types/int-uint) -- `tags_to_copy` — The names of tags to copy. [`Array(String)`](/reference/data-types/array) +- `dest_group` — The destination group of tags. [`UInt64`](/core/reference/data-types/int-uint) +- `src_group` — The source group of tags. [`UInt64`](/core/reference/data-types/int-uint) +- `tags_to_copy` — The names of tags to copy. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns a group of tags containing the tags from `dest_group` along with the copied tags from `src_group`. [`UInt64`](/reference/data-types/int-uint) +Returns a group of tags containing the tags from `dest_group` along with the copied tags from `src_group`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -261,7 +261,7 @@ SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'ht Introduced in: v26.1.0 Extracts the value of a specified tag from the group. Returns NULL if not found. -See also function [timeSeriesGroupToTags()](/reference/functions/regular-functions/time-series-functions#timeSeriesGroupToTags). +See also function [timeSeriesGroupToTags()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesGroupToTags). **Syntax** @@ -272,12 +272,12 @@ timeSeriesExtractTag(group) **Arguments** -- `group` — A group of tags. [`UInt64`](/reference/data-types/int-uint) -- `tag_to_extract` — The name of a tag to extract from the group [`String`](/reference/data-types/string) +- `group` — A group of tags. [`UInt64`](/core/reference/data-types/int-uint) +- `tag_to_extract` — The name of a tag to extract from the group [`String`](/core/reference/data-types/string) **Returned value** -Returns the value of a specified tag. [`Nullable(String)`](/reference/data-types/nullable) +Returns the value of a specified tag. [`Nullable(String)`](/core/reference/data-types/nullable) **Examples** @@ -318,14 +318,14 @@ timeSeriesFromGrid(start_timestamp, end_timestamp, step, values) **Arguments** -- `start_timestamp` — Start of the grid. [`DateTime64`](/reference/data-types/datetime64) or [`DateTime`](/reference/data-types/datetime) or [`UInt32`](/reference/data-types/int-uint) -- `end_timestamp` — End of the grid. [`DateTime64`](/reference/data-types/datetime64) or [`DateTime`](/reference/data-types/datetime) or [`UInt32`](/reference/data-types/int-uint) -- `step` — Step of the grid in seconds [`Decimal64`](/reference/data-types/decimal) or [`Decimal32`](/reference/data-types/decimal) or [`UInt32/64`](/reference/data-types/int-uint) -- `values` — Array of values [`Array(Float*)`](/reference/data-types/array) or [`Array(Nullable(Float*))`](/reference/data-types/array) +- `start_timestamp` — Start of the grid. [`DateTime64`](/core/reference/data-types/datetime64) or [`DateTime`](/core/reference/data-types/datetime) or [`UInt32`](/core/reference/data-types/int-uint) +- `end_timestamp` — End of the grid. [`DateTime64`](/core/reference/data-types/datetime64) or [`DateTime`](/core/reference/data-types/datetime) or [`UInt32`](/core/reference/data-types/int-uint) +- `step` — Step of the grid in seconds [`Decimal64`](/core/reference/data-types/decimal) or [`Decimal32`](/core/reference/data-types/decimal) or [`UInt32/64`](/core/reference/data-types/int-uint) +- `values` — Array of values [`Array(Float*)`](/core/reference/data-types/array) or [`Array(Nullable(Float*))`](/core/reference/data-types/array) **Returned value** -Returns values from the source array of values combined with timestamps on a regular time grid described by `start_timestamp` and `step`. [`Array(Tuple(DateTime64, Float64))`](/reference/data-types/array) +Returns values from the source array of values combined with timestamps on a regular time grid described by `start_timestamp` and `step`. [`Array(Tuple(DateTime64, Float64))`](/core/reference/data-types/array) **Examples** @@ -359,11 +359,11 @@ timeSeriesGroupToSamplingKey(group) **Arguments** -- `group` — A group of tags. [`UInt64`](/reference/data-types/int-uint) +- `group` — A group of tags. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -A stable `UInt64` hash derived from the tags associated with the group. [`UInt64`](/reference/data-types/int-uint) +A stable `UInt64` hash derived from the tags associated with the group. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -385,7 +385,7 @@ SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'ht Introduced in: v26.1.0 Returns the names and values of the tags associated with a specified group. -See also function [timeSeriesTagsToGroup()](/reference/functions/regular-functions/time-series-functions#timeSeriesTagsToGroup). +See also function [timeSeriesTagsToGroup()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesTagsToGroup). **Syntax** @@ -398,13 +398,13 @@ timeSeriesGroupToTags(group) **Arguments** -- `group` — A group of tags. [`UInt64`](/reference/data-types/int-uint) +- `group` — A group of tags. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** Returns an array of pairs `(tag_name, tag_value)`. The returned array is always sorted by `tag_name` and never contains the same `tag_name` more than once. - [`Array(Tuple(String, String))`](/reference/data-types/array) + [`Array(Tuple(String, String))`](/core/reference/data-types/array) **Examples** @@ -428,7 +428,7 @@ SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'ht Introduced in: v26.1.0 Returns the names and values of the tags associated with a specified identifier of a time series. -See also function [timeSeriesStoreTags()](/reference/functions/regular-functions/time-series-functions#timeSeriesStoreTags). +See also function [timeSeriesStoreTags()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesStoreTags). **Syntax** @@ -441,11 +441,11 @@ timeSeriesIdToGroup(id) **Arguments** -- `id` — Identifier of a time series. [`UInt64`](/reference/data-types/int-uint) or [`UInt128`](/reference/data-types/int-uint) or [`UUID`](/reference/data-types/uuid) or [`FixedString(16)`](/reference/data-types/fixedstring) +- `id` — Identifier of a time series. [`UInt64`](/core/reference/data-types/int-uint) or [`UInt128`](/core/reference/data-types/int-uint) or [`UUID`](/core/reference/data-types/uuid) or [`FixedString(16)`](/core/reference/data-types/fixedstring) **Returned value** -Returns a group of tags associated with the identifier `id` of a time series. [`UInt64`](/reference/data-types/int-uint) +Returns a group of tags associated with the identifier `id` of a time series. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -470,7 +470,7 @@ SELECT 8374283493092 AS id, Introduced in: v25.8.0 Returns tags associated with a specified identifier of a time series. -See also function [timeSeriesStoreTags()](/reference/functions/regular-functions/time-series-functions#timeSeriesStoreTags). +See also function [timeSeriesStoreTags()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesStoreTags). **Syntax** @@ -481,13 +481,13 @@ timeSeriesIdToTags(id) **Arguments** -- `id` — Identifier of a time series. [`UInt64`](/reference/data-types/int-uint) or [`UInt128`](/reference/data-types/int-uint) or [`UUID`](/reference/data-types/uuid) or [`FixedString(16)`](/reference/data-types/fixedstring) +- `id` — Identifier of a time series. [`UInt64`](/core/reference/data-types/int-uint) or [`UInt128`](/core/reference/data-types/int-uint) or [`UUID`](/core/reference/data-types/uuid) or [`FixedString(16)`](/core/reference/data-types/fixedstring) **Returned value** Returns an array of pairs `(tag_name, tag_value)`. The returned array is always sorted by `tag_name` and never contains the same `tag_name` more than once. - [`Array(Tuple(String, String))`](/reference/data-types/array) + [`Array(Tuple(String, String))`](/core/reference/data-types/array) **Examples** @@ -524,14 +524,14 @@ timeSeriesJoinTags(group, dest_tag, separator, src_tags) **Arguments** -- `group` — A group of tags. [`UInt64`](/reference/data-types/int-uint) -- `dest_tag` — The name of a tag with the joined result which will be added to the `group`. [`String`](/reference/data-types/string) -- `separator` — A separator to insert between joined values. [`String`](/reference/data-types/string) -- `src_tags` — The names of source tags with values which will be joined. [`Array(String)`](/reference/data-types/array) +- `group` — A group of tags. [`UInt64`](/core/reference/data-types/int-uint) +- `dest_tag` — The name of a tag with the joined result which will be added to the `group`. [`String`](/core/reference/data-types/string) +- `separator` — A separator to insert between joined values. [`String`](/core/reference/data-types/string) +- `src_tags` — The names of source tags with values which will be joined. [`Array(String)`](/core/reference/data-types/array) **Returned value** -Returns a new group of tags with the `dest_tag` tag set to the joined result. [`UInt64`](/reference/data-types/int-uint) +Returns a new group of tags with the `dest_tag` tag set to the joined result. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -557,7 +557,7 @@ Generates a range of timestamps [start_timestamp, start_timestamp + step, start_ If `start_timestamp` is equal to `end_timestamp`, the function returns a 1-element array containing `[start_timestamp]`. -Function `timeSeriesRange()` is similar to function [range](/reference/functions/regular-functions/array-functions#range). +Function `timeSeriesRange()` is similar to function [range](/core/reference/functions/regular-functions/array-functions#range). **Syntax** @@ -567,13 +567,13 @@ timeSeriesRange(start_timestamp, end_timestamp, step) **Arguments** -- `start_timestamp` — Start of the range. [`DateTime64`](/reference/data-types/datetime64) or [`DateTime`](/reference/data-types/datetime) or [`UInt32`](/reference/data-types/int-uint) -- `end_timestamp` — End of the range. [`DateTime64`](/reference/data-types/datetime64) or [`DateTime`](/reference/data-types/datetime) or [`UInt32`](/reference/data-types/int-uint) -- `step` — Step of the range in seconds [`UInt32/64`](/reference/data-types/int-uint) or [`Decimal32/64`](/reference/data-types/decimal) +- `start_timestamp` — Start of the range. [`DateTime64`](/core/reference/data-types/datetime64) or [`DateTime`](/core/reference/data-types/datetime) or [`UInt32`](/core/reference/data-types/int-uint) +- `end_timestamp` — End of the range. [`DateTime64`](/core/reference/data-types/datetime64) or [`DateTime`](/core/reference/data-types/datetime) or [`UInt32`](/core/reference/data-types/int-uint) +- `step` — Step of the range in seconds [`UInt32/64`](/core/reference/data-types/int-uint) or [`Decimal32/64`](/core/reference/data-types/decimal) **Returned value** -Returns a range of timestamps. [`Array(DateTime64)`](/reference/data-types/array) +Returns a range of timestamps. [`Array(DateTime64)`](/core/reference/data-types/array) **Examples** @@ -594,8 +594,8 @@ SELECT timeSeriesRange('2025-06-01 00:00:00'::DateTime64(3), '2025-06-01 00:01:0 Introduced in: v26.1.0 Removes all tags except specified ones from a group of tags. -See also function [timeSeriesRemoveTag()](/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveTag), -[timeSeriesRemoveTags()](/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveTags). +See also function [timeSeriesRemoveTag()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveTag), +[timeSeriesRemoveTags()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveTags). **Syntax** @@ -605,12 +605,12 @@ timeSeriesRemoveAllTagsExcept(group, tags_to_keep) **Arguments** -- `group` — A group of tags. [`UInt64`](/reference/data-types/int-uint) -- `tags_to_keep` — The names of tags to keep in the group. [`Array(String)`](/reference/data-types/array) +- `group` — A group of tags. [`UInt64`](/core/reference/data-types/int-uint) +- `tags_to_keep` — The names of tags to keep in the group. [`Array(String)`](/core/reference/data-types/array) **Returned value** -A new group of tags with only the specified tags kept. [`UInt64`](/reference/data-types/int-uint) +A new group of tags with only the specified tags kept. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -634,8 +634,8 @@ Introduced in: v26.1.0 Removes a specified tag from a group of tags. If there is no such tag in the group then the group is returned unchanged. -See also function [timeSeriesRemoveTags()](/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveTags), -[timeSeriesRemoveAllTagsExcept()](/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveAllTagsExcept). +See also function [timeSeriesRemoveTags()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveTags), +[timeSeriesRemoveAllTagsExcept()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveAllTagsExcept). **Syntax** @@ -645,12 +645,12 @@ timeSeriesRemoveTag(group, tag_to_remove) **Arguments** -- `group` — A group of tags. [`UInt64`](/reference/data-types/int-uint) -- `tag_to_remove` — The name of a tag to remove from the group. [`String`](/reference/data-types/string) +- `group` — A group of tags. [`UInt64`](/core/reference/data-types/int-uint) +- `tag_to_remove` — The name of a tag to remove from the group. [`String`](/core/reference/data-types/string) **Returned value** -A new group of tags without the specified tag. [`UInt64`](/reference/data-types/int-uint) +A new group of tags without the specified tag. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -678,8 +678,8 @@ Introduced in: v26.1.0 Removes specified tags from a group of tags. If some of the specified tags are not in the group of tags the function ignores them. -See also function [timeSeriesRemoveTag()](/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveTag), -[timeSeriesRemoveAllTagsExcept()](/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveAllTagsExcept). +See also function [timeSeriesRemoveTag()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveTag), +[timeSeriesRemoveAllTagsExcept()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesRemoveAllTagsExcept). **Syntax** @@ -690,12 +690,12 @@ timeSeriesRemoveTags(group, tags_to_remove) **Arguments** -- `group` — A group of tags. [`UInt64`](/reference/data-types/int-uint) -- `tags_to_remove` — The names of tags to remove from the group. [`Array(String)`](/reference/data-types/array) +- `group` — A group of tags. [`UInt64`](/core/reference/data-types/int-uint) +- `tags_to_remove` — The names of tags to remove from the group. [`Array(String)`](/core/reference/data-types/array) **Returned value** -A new group of tags without the specified tags. [`UInt64`](/reference/data-types/int-uint) +A new group of tags without the specified tags. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -734,15 +734,15 @@ timeSeriesReplaceTag(group, dest_tag, replacement, src_tag, regex) **Arguments** -- `group` — A group of tags. [`UInt64`](/reference/data-types/int-uint) -- `dest_tag` — The name of a destination tag to get the result group. [`String`](/reference/data-types/string) -- `replacement` — A replacement pattern, can contain $1, $2 or $name to refer capturing groups in the regular expression 'regex'. [`String`](/reference/data-types/string) -- `src_tag` — The name of a tag which value is used to match the regular expression 'regex'. [`String`](/reference/data-types/string) -- `regex` — A regular expression. [`String`](/reference/data-types/string) +- `group` — A group of tags. [`UInt64`](/core/reference/data-types/int-uint) +- `dest_tag` — The name of a destination tag to get the result group. [`String`](/core/reference/data-types/string) +- `replacement` — A replacement pattern, can contain $1, $2 or $name to refer capturing groups in the regular expression 'regex'. [`String`](/core/reference/data-types/string) +- `src_tag` — The name of a tag which value is used to match the regular expression 'regex'. [`String`](/core/reference/data-types/string) +- `regex` — A regular expression. [`String`](/core/reference/data-types/string) **Returned value** -A new group of tags with maybe `dest_tag` added. [`UInt64`](/reference/data-types/int-uint) +A new group of tags with maybe `dest_tag` added. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -765,8 +765,8 @@ SELECT timeSeriesTagsToGroup([('__name__', 'up'), ('job', 'api-server'), ('servi Introduced in: v25.8.0 Stores in the query context a mapping between a specified identifier of a time series and a set of tags. -Functions [timeSeriesIdToTags()](/reference/functions/regular-functions/time-series-functions#timeSeriesIdToTags) -and [timeSeriesIdToGroup()](/reference/functions/regular-functions/time-series-functions#timeSeriesIdToGroup) +Functions [timeSeriesIdToTags()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesIdToTags) +and [timeSeriesIdToGroup()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesIdToGroup) can be used to access this mapping later during the query execution. @@ -778,10 +778,10 @@ timeSeriesStoreTags(id, tags_array, separate_tag_name_1, separate_tag_value_1, . **Arguments** -- `id` — Identifier of a time series. [`UInt64`](/reference/data-types/int-uint) or [`UInt128`](/reference/data-types/int-uint) or [`UUID`](/reference/data-types/uuid) or [`FixedString(16)`](/reference/data-types/fixedstring) -- `tags_array` — Array of pairs (tag_name, tag_value). [`Array(Tuple(String, String))`](/reference/data-types/array) or [`NULL`](/reference/syntax#null) -- `separate_tag_name_i` — The name of a tag. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `separate_tag_value_i` — The value of a tag. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Nullable(String)`](/reference/data-types/nullable) +- `id` — Identifier of a time series. [`UInt64`](/core/reference/data-types/int-uint) or [`UInt128`](/core/reference/data-types/int-uint) or [`UUID`](/core/reference/data-types/uuid) or [`FixedString(16)`](/core/reference/data-types/fixedstring) +- `tags_array` — Array of pairs (tag_name, tag_value). [`Array(Tuple(String, String))`](/core/reference/data-types/array) or [`NULL`](/core/reference/syntax#null) +- `separate_tag_name_i` — The name of a tag. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `separate_tag_value_i` — The value of a tag. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Nullable(String)`](/core/reference/data-types/nullable) **Returned value** @@ -812,7 +812,7 @@ Introduced in: v26.1.0 Returns a group of tags associated with specified tags. If the same group of tags is found multiple times during the query execution, the function returns the same group. For an empty set of tags the function always returns 0. -See also function [timeSeriesGroupToTags()](/reference/functions/regular-functions/time-series-functions#timeSeriesGroupToTags). +See also function [timeSeriesGroupToTags()](/core/reference/functions/regular-functions/time-series-functions#timeSeriesGroupToTags). **Syntax** @@ -823,13 +823,13 @@ timeSeriesTagsToGroup(tags_array, tag_name_1, tag_value_1, tag_name2, tag_value2 **Arguments** -- `tags_array` — Array of pairs (tag_name, tag_value). [`Array(Tuple(String, String))`](/reference/data-types/array) or [`NULL`](/reference/syntax#null) -- `tag_name_i` — The name of a tag. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `tag_value_i` — The value of a tag. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Nullable(String)`](/reference/data-types/nullable) +- `tags_array` — Array of pairs (tag_name, tag_value). [`Array(Tuple(String, String))`](/core/reference/data-types/array) or [`NULL`](/core/reference/syntax#null) +- `tag_name_i` — The name of a tag. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `tag_value_i` — The value of a tag. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Nullable(String)`](/core/reference/data-types/nullable) **Returned value** -Returns a group of tags associated with the specified tags. [`UInt64`](/reference/data-types/int-uint) +Returns a group of tags associated with the specified tags. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -857,7 +857,7 @@ Introduced in: v26.2.0 Checks the `condition` and if it's true throws an exception with the following message `Multiple series have the same tags , duplicate series in the same result set are not allowed`. If the `condition` is false the function returns `0`. -This function is similar to [throwIf()](/reference/functions/regular-functions/other-functions#throwIf), +This function is similar to [throwIf()](/core/reference/functions/regular-functions/other-functions#throwIf), but uses a different error code and formats the error message differently. @@ -869,12 +869,12 @@ timeSeriesThrowDuplicateSeriesIf(condition, group) **Arguments** -- `condition` — Condition to check, usually contains function [count()](/reference/functions/aggregate-functions/reference/count#count) [`UInt8`](/reference/data-types/int-uint) -- `group` — Group of tags. [`UInt64`](/reference/data-types/int-uint) +- `condition` — Condition to check, usually contains function [count()](/core/reference/functions/aggregate-functions/reference/count#count) [`UInt8`](/core/reference/data-types/int-uint) +- `group` — Group of tags. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns `0`. [`UInt8`](/reference/data-types/int-uint) +Returns `0`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/regular-functions/time-window-functions.mdx b/core/reference/functions/regular-functions/time-window-functions.mdx similarity index 66% rename from reference/functions/regular-functions/time-window-functions.mdx rename to core/reference/functions/regular-functions/time-window-functions.mdx index 8389d545..510b14cb 100644 --- a/reference/functions/regular-functions/time-window-functions.mdx +++ b/core/reference/functions/regular-functions/time-window-functions.mdx @@ -14,7 +14,7 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ Time window functions return the inclusive lower and exclusive upper bound of the corresponding window. -The functions for working with [WindowView](/reference/statements/create/view#window-view) are listed below: +The functions for working with [WindowView](/core/reference/statements/create/view#window-view) are listed below: {/* The inner content of the tags below are replaced at doc framework build time with @@ -40,14 +40,14 @@ hop(time_attr, hop_interval, window_interval[, timezone]) **Arguments** -- `time_attr` — Date and time. [`DateTime`](/reference/data-types/datetime) -- `hop_interval` — Positive Hop interval. [`Interval`](/reference/data-types/int-uint) -- `window_interval` — Positive Window interval. [`Interval`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone name. [`String`](/reference/data-types/string) +- `time_attr` — Date and time. [`DateTime`](/core/reference/data-types/datetime) +- `hop_interval` — Positive Hop interval. [`Interval`](/core/reference/data-types/int-uint) +- `window_interval` — Positive Window interval. [`Interval`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the inclusive lower and exclusive upper bound of the corresponding hopping window. [`Tuple(DateTime, DateTime)`](/reference/data-types/tuple) +Returns the inclusive lower and exclusive upper bound of the corresponding hopping window. [`Tuple(DateTime, DateTime)`](/core/reference/data-types/tuple) **Examples** @@ -78,14 +78,14 @@ hopEnd(time_attr, hop_interval, window_interval[, timezone]) **Arguments** -- `time_attr` — Date and time. [`DateTime`](/reference/data-types/datetime) -- `hop_interval` — Positive Hop interval. [`Interval`](/reference/data-types/int-uint) -- `window_interval` — Positive Window interval. [`Interval`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone name. [`String`](/reference/data-types/string) +- `time_attr` — Date and time. [`DateTime`](/core/reference/data-types/datetime) +- `hop_interval` — Positive Hop interval. [`Interval`](/core/reference/data-types/int-uint) +- `window_interval` — Positive Window interval. [`Interval`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the exclusive upper bound of the corresponding hopping window. [`DateTime`](/reference/data-types/datetime) +Returns the exclusive upper bound of the corresponding hopping window. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -116,14 +116,14 @@ hopStart(time_attr, hop_interval, window_interval[, timezone]) **Arguments** -- `time_attr` — Date and time. [`DateTime`](/reference/data-types/datetime) -- `hop_interval` — Positive Hop interval. [`Interval`](/reference/data-types/int-uint) -- `window_interval` — Positive Window interval. [`Interval`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone name. [`String`](/reference/data-types/string) +- `time_attr` — Date and time. [`DateTime`](/core/reference/data-types/datetime) +- `hop_interval` — Positive Hop interval. [`Interval`](/core/reference/data-types/int-uint) +- `window_interval` — Positive Window interval. [`Interval`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the inclusive lower bound of the corresponding hopping window. [`DateTime`](/reference/data-types/datetime) +Returns the inclusive lower bound of the corresponding hopping window. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -152,13 +152,13 @@ tumble(time_attr, interval[, timezone]) **Arguments** -- `time_attr` — Date and time. [`DateTime`](/reference/data-types/datetime) -- `interval` — Window interval in Interval. [`Interval`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone name. [`String`](/reference/data-types/string) +- `time_attr` — Date and time. [`DateTime`](/core/reference/data-types/datetime) +- `interval` — Window interval in Interval. [`Interval`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the inclusive lower and exclusive upper bound of the corresponding tumbling window. [`Tuple(DateTime, DateTime)`](/reference/data-types/tuple) +Returns the inclusive lower and exclusive upper bound of the corresponding tumbling window. [`Tuple(DateTime, DateTime)`](/core/reference/data-types/tuple) **Examples** @@ -187,13 +187,13 @@ tumbleEnd(time_attr, interval[, timezone]) **Arguments** -- `time_attr` — Date and time. [`DateTime`](/reference/data-types/datetime) -- `interval` — Window interval in Interval. [`Interval`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone name. [`String`](/reference/data-types/string) +- `time_attr` — Date and time. [`DateTime`](/core/reference/data-types/datetime) +- `interval` — Window interval in Interval. [`Interval`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the exclusive upper bound of the corresponding tumbling window. [`DateTime`](/reference/data-types/datetime) +Returns the exclusive upper bound of the corresponding tumbling window. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -222,13 +222,13 @@ tumbleStart(time_attr, interval[, timezone]) **Arguments** -- `time_attr` — Date and time. [`DateTime`](/reference/data-types/datetime) -- `interval` — Window interval in Interval. [`Interval`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone name. [`String`](/reference/data-types/string) +- `time_attr` — Date and time. [`DateTime`](/core/reference/data-types/datetime) +- `interval` — Window interval in Interval. [`Interval`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the inclusive lower bound of the corresponding tumbling window. [`DateTime`](/reference/data-types/datetime) +Returns the inclusive lower bound of the corresponding tumbling window. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -258,13 +258,13 @@ windowID(time_attr, interval[, timezone]) **Arguments** -- `time_attr` — Date and time. [`DateTime`](/reference/data-types/datetime) -- `interval` — Window interval in Interval. [`Interval`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone name. [`String`](/reference/data-types/string) +- `time_attr` — Date and time. [`DateTime`](/core/reference/data-types/datetime) +- `interval` — Window interval in Interval. [`Interval`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the window identifier of the corresponding window. [`UInt32`](/reference/data-types/int-uint) +Returns the window identifier of the corresponding window. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -282,4 +282,4 @@ SELECT windowID(now(), toIntervalDay('1')) ## Related content {#related-content} -- [Time-series use-case guides](/guides/real-time-analytics/time-series) +- [Time-series use-case guides](/core/guides/use-cases/real-time-analytics/time-series) diff --git a/reference/functions/regular-functions/tuple-functions.mdx b/core/reference/functions/regular-functions/tuple-functions.mdx similarity index 66% rename from reference/functions/regular-functions/tuple-functions.mdx rename to core/reference/functions/regular-functions/tuple-functions.mdx index 7768ddf1..9251f4e0 100644 --- a/reference/functions/regular-functions/tuple-functions.mdx +++ b/core/reference/functions/regular-functions/tuple-functions.mdx @@ -35,12 +35,12 @@ dotProduct(vector1, vector2) **Arguments** -- `vector1` — First vector. [`Array(T)`](/reference/data-types/array) or [`Tuple(T)`](/reference/data-types/tuple) -- `vector2` — Second vector. Must be the same size as the first vector. [`Array(T)`](/reference/data-types/array) or [`Tuple(T)`](/reference/data-types/tuple) +- `vector1` — First vector. [`Array(T)`](/core/reference/data-types/array) or [`Tuple(T)`](/core/reference/data-types/tuple) +- `vector2` — Second vector. Must be the same size as the first vector. [`Array(T)`](/core/reference/data-types/array) or [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** -Returns the dot product of the two vectors. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +Returns the dot product of the two vectors. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Examples** @@ -69,11 +69,11 @@ flattenTuple(input) **Arguments** -- `input` — Named and nested tuple to flatten. [`Tuple(n1 T1[, n2 T2, ... ])`](/reference/data-types/tuple) +- `input` — Named and nested tuple to flatten. [`Tuple(n1 T1[, n2 T2, ... ])`](/core/reference/data-types/tuple) **Returned value** -Returns an output tuple whose elements are paths from the original input. [`Tuple(T)`](/reference/data-types/tuple) +Returns an output tuple whose elements are paths from the original input. [`Tuple(T)`](/core/reference/data-types/tuple) **Examples** @@ -141,11 +141,11 @@ tupleConcat(tuple1[, tuple2, [...]]) **Arguments** -- `tupleN` — Arbitrary number of arguments of Tuple type. [`Tuple(T)`](/reference/data-types/tuple) +- `tupleN` — Arbitrary number of arguments of Tuple type. [`Tuple(T)`](/core/reference/data-types/tuple) **Returned value** -Returns a tuple containing all elements from the input tuples. [`Tuple(T)`](/reference/data-types/tuple) +Returns a tuple containing all elements from the input tuples. [`Tuple(T)`](/core/reference/data-types/tuple) **Examples** @@ -177,12 +177,12 @@ tupleDivide(t1, t2) **Arguments** -- `t1` — First tuple. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `t2` — Second tuple. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +- `t1` — First tuple. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `t2` — Second tuple. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Returned value** -Returns tuple with the result of division. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns tuple with the result of division. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -214,12 +214,12 @@ tupleDivideByNumber(tuple, number) **Arguments** -- `tuple` — Tuple to divide. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `number` — Divider. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `tuple` — Tuple to divide. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `number` — Divider. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a tuple with divided elements. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns a tuple with divided elements. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -257,14 +257,14 @@ tupleElement(tuple, index|name[, default_value]) **Arguments** -- `tuple` — A tuple or array of tuples. [`Tuple(T)`](/reference/data-types/tuple) or [`Array(Tuple(T))`](/reference/data-types/array) -- `index` — Column index, starting from 1. [`const UInt8/16/32/64`](/reference/data-types/int-uint) -- `name` — Name of the element. [`const String`](/reference/data-types/string) -- `default_value` — Default value returned when index is out of bounds or element doesn't exist. [`Any`](/reference/data-types) +- `tuple` — A tuple or array of tuples. [`Tuple(T)`](/core/reference/data-types/tuple) or [`Array(Tuple(T))`](/core/reference/data-types/array) +- `index` — Column index, starting from 1. [`const UInt8/16/32/64`](/core/reference/data-types/int-uint) +- `name` — Name of the element. [`const String`](/core/reference/data-types/string) +- `default_value` — Default value returned when index is out of bounds or element doesn't exist. [`Any`](/core/reference/data-types) **Returned value** -Returns the element at the specified index or name. [`Any`](/reference/data-types) +Returns the element at the specified index or name. [`Any`](/core/reference/data-types) **Examples** @@ -327,7 +327,7 @@ Introduced in: v21.1.0 Returns the [Hamming Distance](https://en.wikipedia.org/wiki/Hamming_distance) between two tuples of the same size. -The result type is determined the same way it is for [Arithmetic functions](/reference/functions/regular-functions/arithmetic-functions), based on the number of elements in the input tuples. +The result type is determined the same way it is for [Arithmetic functions](/core/reference/functions/regular-functions/arithmetic-functions), based on the number of elements in the input tuples. ```sql SELECT @@ -353,12 +353,12 @@ tupleHammingDistance(t1, t2) **Arguments** -- `t1` — First tuple. [`Tuple(*)`](/reference/data-types/tuple) -- `t2` — Second tuple. [`Tuple(*)`](/reference/data-types/tuple) +- `t1` — First tuple. [`Tuple(*)`](/core/reference/data-types/tuple) +- `t2` — Second tuple. [`Tuple(*)`](/core/reference/data-types/tuple) **Returned value** -Returns the Hamming distance. [`UInt8/16/32/64`](/reference/data-types/int-uint) +Returns the Hamming distance. [`UInt8/16/32/64`](/core/reference/data-types/int-uint) **Examples** @@ -398,12 +398,12 @@ tupleIntDiv(tuple_num, tuple_div) **Arguments** -- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `tuple_div` — Tuple of divisor values. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `tuple_div` — Tuple of divisor values. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Returned value** -Returns a tuple of the quotients. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns a tuple of the quotients. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -443,12 +443,12 @@ tupleIntDivByNumber(tuple_num, div) **Arguments** -- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `div` — The divisor value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `div` — The divisor value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a tuple of the quotients. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns a tuple of the quotients. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -488,12 +488,12 @@ tupleIntDivOrZero(tuple_num, tuple_div) **Arguments** -- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `tuple_div` — Tuple of divisor values. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `tuple_div` — Tuple of divisor values. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Returned value** -Returns tuple of the quotients. Returns 0 for quotients where the divisor is 0. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns tuple of the quotients. Returns 0 for quotients where the divisor is 0. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -523,12 +523,12 @@ tupleIntDivOrZeroByNumber(tuple_num, div) **Arguments** -- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `div` — The divisor value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `div` — The divisor value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a tuple of the quotients with `0` for quotients where the divisor is `0`. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns a tuple of the quotients with `0` for quotients where the divisor is `0`. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -568,12 +568,12 @@ tupleMinus(t1, t2) **Arguments** -- `t1` — First tuple. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `t2` — Second tuple. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +- `t1` — First tuple. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `t2` — Second tuple. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Returned value** -Returns a tuple containing the results of the subtractions. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns a tuple containing the results of the subtractions. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -601,12 +601,12 @@ tupleModulo(tuple_num, tuple_mod) **Arguments** -- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `tuple_mod` — Tuple of modulus values. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `tuple_mod` — Tuple of modulus values. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Returned value** -Returns tuple of the remainders of division. An error is thrown for division by zero. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns tuple of the remainders of division. An error is thrown for division by zero. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -634,12 +634,12 @@ tupleModuloByNumber(tuple_num, div) **Arguments** -- `tuple_num` — Tuple of numerator elements. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `div` — The divisor value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `tuple_num` — Tuple of numerator elements. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `div` — The divisor value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns tuple of the remainders of division. An error is thrown for division by zero. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns tuple of the remainders of division. An error is thrown for division by zero. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -667,12 +667,12 @@ tupleMultiply(t1, t2) **Arguments** -- `t1` — First tuple. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `t2` — Second tuple. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +- `t1` — First tuple. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `t2` — Second tuple. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Returned value** -Returns a tuple with the results of the multiplications. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns a tuple with the results of the multiplications. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -700,12 +700,12 @@ tupleMultiplyByNumber(tuple, number) **Arguments** -- `tuple` — Tuple to multiply. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `number` — Multiplier. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `tuple` — Tuple to multiply. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `number` — Multiplier. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a tuple with multiplied elements. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns a tuple with multiplied elements. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -763,11 +763,11 @@ tupleNegate(t) **Arguments** -- `t` — Tuple to negate. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +- `t` — Tuple to negate. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Returned value** -Returns a tuple with the result of negation. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns a tuple with the result of negation. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -797,12 +797,12 @@ tuplePlus(t1, t2) **Arguments** -- `t1` — First tuple. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `t2` — Second tuple. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +- `t1` — First tuple. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `t2` — Second tuple. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Returned value** -Returns a tuple containing the sums of corresponding input tuple arguments. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns a tuple containing the sums of corresponding input tuple arguments. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -831,12 +831,12 @@ tuplePositiveModuloByNumber(tuple_num, div) **Arguments** -- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) -- `div` — The divisor value. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) +- `tuple_num` — Tuple of numerator values. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) +- `div` — The divisor value. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) **Returned value** -Returns a tuple of the non-negative remainders. [`Tuple((U)Int*)`](/reference/data-types/tuple) or [`Tuple(Float*)`](/reference/data-types/tuple) or [`Tuple(Decimal)`](/reference/data-types/tuple) +Returns a tuple of the non-negative remainders. [`Tuple((U)Int*)`](/core/reference/data-types/tuple) or [`Tuple(Float*)`](/core/reference/data-types/tuple) or [`Tuple(Decimal)`](/core/reference/data-types/tuple) **Examples** @@ -866,11 +866,11 @@ tupleToNameValuePairs(tuple) **Arguments** -- `tuple` — Named tuple with any types of values. [`Tuple(n1 T1[, n2 T2, ...])`](/reference/data-types/tuple) +- `tuple` — Named tuple with any types of values. [`Tuple(n1 T1[, n2 T2, ...])`](/core/reference/data-types/tuple) **Returned value** -Returns an array with `(name, value)` pairs. [`Array(Tuple(String, T))`](/reference/data-types/array) +Returns an array with `(name, value)` pairs. [`Array(Tuple(String, T))`](/core/reference/data-types/array) **Examples** @@ -898,7 +898,7 @@ SELECT tupleToNameValuePairs(tuple(3, 2, 1)) ## untuple {#untuple} -Performs syntactic substitution of [tuple](/reference/data-types/tuple) elements in the call location. +Performs syntactic substitution of [tuple](/core/reference/data-types/tuple) elements in the call location. The names of the result columns are implementation-specific and subject to change. Do not assume specific column names after `untuple`. @@ -912,7 +912,7 @@ You can use the `EXCEPT` expression to skip columns as a result of the query. **Arguments** -- `x` — A `tuple` function, column, or tuple of elements. [Tuple](/reference/data-types/tuple). +- `x` — A `tuple` function, column, or tuple of elements. [Tuple](/core/reference/data-types/tuple). **Returned value** @@ -966,4 +966,4 @@ SELECT untuple((* EXCEPT (v2, v3),)) FROM kv; ## Distance functions {#distance-functions} -All supported functions are described in [distance functions documentation](/reference/functions/regular-functions/distance-functions). +All supported functions are described in [distance functions documentation](/core/reference/functions/regular-functions/distance-functions). diff --git a/reference/functions/regular-functions/tuple-map-functions.mdx b/core/reference/functions/regular-functions/tuple-map-functions.mdx similarity index 79% rename from reference/functions/regular-functions/tuple-map-functions.mdx rename to core/reference/functions/regular-functions/tuple-map-functions.mdx index eb20e287..447ec2ec 100644 --- a/reference/functions/regular-functions/tuple-map-functions.mdx +++ b/core/reference/functions/regular-functions/tuple-map-functions.mdx @@ -29,10 +29,10 @@ Extracts key-value pairs from any string. The string does not need to be 100% st ``` **Arguments** - - `data` - String to extract key-value pairs from. [String](/reference/data-types/string) or [FixedString](/reference/data-types/fixedstring). - - `key_value_delimiter` - Character to be used as delimiter between the key and the value. Defaults to `:`. [String](/reference/data-types/string) or [FixedString](/reference/data-types/fixedstring). - - `pair_delimiters` - Set of character to be used as delimiters between pairs. Defaults to `\space`, `,` and `;`. [String](/reference/data-types/string) or [FixedString](/reference/data-types/fixedstring). - - `quoting_character` - Character to be used as quoting character. Defaults to `"`. [String](/reference/data-types/string) or [FixedString](/reference/data-types/fixedstring). + - `data` - String to extract key-value pairs from. [String](/core/reference/data-types/string) or [FixedString](/core/reference/data-types/fixedstring). + - `key_value_delimiter` - Character to be used as delimiter between the key and the value. Defaults to `:`. [String](/core/reference/data-types/string) or [FixedString](/core/reference/data-types/fixedstring). + - `pair_delimiters` - Set of character to be used as delimiters between pairs. Defaults to `\space`, `,` and `;`. [String](/core/reference/data-types/string) or [FixedString](/core/reference/data-types/fixedstring). + - `quoting_character` - Character to be used as quoting character. Defaults to `"`. [String](/core/reference/data-types/string) or [FixedString](/core/reference/data-types/fixedstring). - `unexpected_quoting_character_strategy` - Strategy to handle quoting characters in unexpected places during `read_key` and `read_value` phase. Possible values: `invalid`, `accept` and `promote`. Invalid will discard key/value and transition back to `WAITING_KEY` state. Accept will treat it as a normal character. Promote will transition to `READ_QUOTED_{KEY/VALUE}` state and start from next character. The default value is `INVALID` **Returned values** @@ -223,12 +223,12 @@ map(key1, value1[, key2, value2, ...]) **Arguments** -- `key_n` — The keys of the map entries. [`Any`](/reference/data-types) -- `value_n` — The values of the map entries. [`Any`](/reference/data-types) +- `key_n` — The keys of the map entries. [`Any`](/core/reference/data-types) +- `value_n` — The values of the map entries. [`Any`](/core/reference/data-types) **Returned value** -Returns a map containing key:value pairs. [`Map(Any, Any)`](/reference/data-types/map) +Returns a map containing key:value pairs. [`Map(Any, Any)`](/core/reference/data-types/map) **Examples** @@ -258,11 +258,11 @@ mapAdd(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — Maps or tuples of two arrays in which items in the first array represent keys, and the second array contains values for each key. [`Map(K, V)`](/reference/data-types/map) or [`Tuple(Array(T), Array(T))`](/reference/data-types/tuple) +- `arg1[, arg2, ...]` — Maps or tuples of two arrays in which items in the first array represent keys, and the second array contains values for each key. [`Map(K, V)`](/core/reference/data-types/map) or [`Tuple(Array(T), Array(T))`](/core/reference/data-types/tuple) **Returned value** -Returns a map or returns a tuple, where the first array contains the sorted keys and the second array contains values. [`Map(K, V)`](/reference/data-types/map) or [`Tuple(Array(T), Array(T))`](/reference/data-types/tuple) +Returns a map or returns a tuple, where the first array contains the sorted keys and the second array contains values. [`Map(K, V)`](/core/reference/data-types/map) or [`Tuple(Array(T), Array(T))`](/core/reference/data-types/tuple) **Examples** @@ -302,12 +302,12 @@ mapAll([func,] map) **Arguments** -- `func` — Lambda function. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `map` — Map to check. [`Map(K, V)`](/reference/data-types/map) +- `func` — Lambda function. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `map` — Map to check. [`Map(K, V)`](/core/reference/data-types/map) **Returned value** -Returns `1` if all key-value pairs satisfy the condition, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if all key-value pairs satisfy the condition, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -335,12 +335,12 @@ mapApply(func, map) **Arguments** -- `func` — Lambda function. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `map` — Map to apply function to. [`Map(K, V)`](/reference/data-types/map) +- `func` — Lambda function. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `map` — Map to apply function to. [`Map(K, V)`](/core/reference/data-types/map) **Returned value** -Returns a new map obtained from the original map by application of `func` for each element. [`Map(K, V)`](/reference/data-types/map) +Returns a new map obtained from the original map by application of `func` for each element. [`Map(K, V)`](/core/reference/data-types/map) **Examples** @@ -369,11 +369,11 @@ mapConcat(maps) **Arguments** -- `maps` — Arbitrarily many maps. [`Map`](/reference/data-types/map) +- `maps` — Arbitrarily many maps. [`Map`](/core/reference/data-types/map) **Returned value** -Returns a map with concatenated maps passed as arguments. [`Map`](/reference/data-types/map) +Returns a map with concatenated maps passed as arguments. [`Map`](/core/reference/data-types/map) **Examples** @@ -403,12 +403,12 @@ mapContainsKey(map, key) **Arguments** -- `map` — Map to search in. [`Map(K, V)`](/reference/data-types/map) -- `key` — Key to search for. Type must match the key type of the map. [`Any`](/reference/data-types) +- `map` — Map to search in. [`Map(K, V)`](/core/reference/data-types/map) +- `key` — Key to search for. Type must match the key type of the map. [`Any`](/core/reference/data-types) **Returned value** -Returns 1 if map contains key, 0 if not. [`UInt8`](/reference/data-types/int-uint) +Returns 1 if map contains key, 0 if not. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -436,12 +436,12 @@ mapContainsKeyLike(map, pattern) **Arguments** -- `map` — Map to search in. [`Map(K, V)`](/reference/data-types/map) -- `pattern` — Pattern to match keys against. [`const String`](/reference/data-types/string) +- `map` — Map to search in. [`Map(K, V)`](/core/reference/data-types/map) +- `pattern` — Pattern to match keys against. [`const String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `map` contains a key matching `pattern`, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `map` contains a key matching `pattern`, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -478,12 +478,12 @@ mapContainsValue(map, value) **Arguments** -- `map` — Map to search in. [`Map(K, V)`](/reference/data-types/map) -- `value` — Value to search for. Type must match the value type of map. [`Any`](/reference/data-types) +- `map` — Map to search in. [`Map(K, V)`](/core/reference/data-types/map) +- `value` — Value to search for. Type must match the value type of map. [`Any`](/core/reference/data-types) **Returned value** -Returns `1` if the map contains the value, `0` if not. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if the map contains the value, `0` if not. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -511,12 +511,12 @@ mapContainsValueLike(map, pattern) **Arguments** -- `map` — Map to search in. [`Map(K, V)`](/reference/data-types/map) -- `pattern` — Pattern to match values against. [`const String`](/reference/data-types/string) +- `map` — Map to search in. [`Map(K, V)`](/core/reference/data-types/map) +- `pattern` — Pattern to match values against. [`const String`](/core/reference/data-types/string) **Returned value** -Returns `1` if `map` contains a value matching `pattern`, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if `map` contains a value matching `pattern`, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -555,12 +555,12 @@ mapExists([func,] map) **Arguments** -- `func` — Optional. Lambda function. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `map` — Map to check. [`Map(K, V)`](/reference/data-types/map) +- `func` — Optional. Lambda function. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `map` — Map to check. [`Map(K, V)`](/core/reference/data-types/map) **Returned value** -Returns `1` if at least one key-value pair satisfies the condition, `0` otherwise. [`UInt8`](/reference/data-types/int-uint) +Returns `1` if at least one key-value pair satisfies the condition, `0` otherwise. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -588,12 +588,12 @@ mapExtractKeyLike(map, pattern) **Arguments** -- `map` — Map to extract from. [`Map(K, V)`](/reference/data-types/map) -- `pattern` — Pattern to match keys against. [`const String`](/reference/data-types/string) +- `map` — Map to extract from. [`Map(K, V)`](/core/reference/data-types/map) +- `pattern` — Pattern to match keys against. [`const String`](/core/reference/data-types/string) **Returned value** -Returns a map containing elements the key matching the specified pattern. If no elements match the pattern, an empty map is returned. [`Map(K, V)`](/reference/data-types/map) +Returns a map containing elements the key matching the specified pattern. If no elements match the pattern, an empty map is returned. [`Map(K, V)`](/core/reference/data-types/map) **Examples** @@ -630,12 +630,12 @@ mapExtractValueLike(map, pattern) **Arguments** -- `map` — Map to extract from. [`Map(K, V)`](/reference/data-types/map) -- `pattern` — Pattern to match values against. [`const String`](/reference/data-types/string) +- `map` — Map to extract from. [`Map(K, V)`](/core/reference/data-types/map) +- `pattern` — Pattern to match values against. [`const String`](/core/reference/data-types/string) **Returned value** -Returns a map containing elements the value matching the specified pattern. If no elements match the pattern, an empty map is returned. [`Map(K, V)`](/reference/data-types/map) +Returns a map containing elements the value matching the specified pattern. If no elements match the pattern, an empty map is returned. [`Map(K, V)`](/core/reference/data-types/map) **Examples** @@ -672,12 +672,12 @@ mapFilter(func, map) **Arguments** -- `func` — Lambda function. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `map` — Map to filter. [`Map(K, V)`](/reference/data-types/map) +- `func` — Lambda function. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `map` — Map to filter. [`Map(K, V)`](/core/reference/data-types/map) **Returned value** -Returns a map containing only the elements in the map for which `func` returns something other than `0`. [`Map(K, V)`](/reference/data-types/map) +Returns a map containing only the elements in the map for which `func` returns something other than `0`. [`Map(K, V)`](/core/reference/data-types/map) **Examples** @@ -708,12 +708,12 @@ mapFromArrays(keys, values) **Arguments** -- `keys` — Array or map of keys to create the map from. [`Array`](/reference/data-types/array) or [`Map`](/reference/data-types/map) -- `values` — Array or map of values to create the map from. [`Array`](/reference/data-types/array) or [`Map`](/reference/data-types/map) +- `keys` — Array or map of keys to create the map from. [`Array`](/core/reference/data-types/array) or [`Map`](/core/reference/data-types/map) +- `values` — Array or map of values to create the map from. [`Array`](/core/reference/data-types/array) or [`Map`](/core/reference/data-types/map) **Returned value** -Returns a map with keys and values constructed from the key array and value array/map. [`Map`](/reference/data-types/map) +Returns a map with keys and values constructed from the key array and value array/map. [`Map`](/core/reference/data-types/map) **Examples** @@ -742,7 +742,7 @@ SELECT mapFromArrays([1, 2, 3], map('a', 1, 'b', 2, 'c', 3)) Introduced in: v21.2.0 Returns the keys of a given map. -This function can be optimized by enabling setting [`optimize_functions_to_subcolumns`](/reference/settings/session-settings#optimize_functions_to_subcolumns). +This function can be optimized by enabling setting [`optimize_functions_to_subcolumns`](/core/reference/settings/session-settings#optimize_functions_to_subcolumns). With the setting enabled, the function only reads the `keys` subcolumn instead of the entire map. The query `SELECT mapKeys(m) FROM table` is transformed to `SELECT m.keys FROM table`. @@ -754,11 +754,11 @@ mapKeys(map) **Arguments** -- `map` — Map to extract keys from. [`Map(K, V)`](/reference/data-types/map) +- `map` — Map to extract keys from. [`Map(K, V)`](/core/reference/data-types/map) **Returned value** -Returns array containing all keys from the map. [`Array(T)`](/reference/data-types/array) +Returns array containing all keys from the map. [`Array(T)`](/core/reference/data-types/array) **Examples** @@ -787,13 +787,13 @@ mapPartialReverseSort([func,] limit, map) **Arguments** -- `func` — Optional. Lambda function. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `limit` — Elements in the range `[1..limit]` are sorted. [`(U)Int*`](/reference/data-types/int-uint) -- `map` — Map to sort. [`Map(K, V)`](/reference/data-types/map) +- `func` — Optional. Lambda function. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `limit` — Elements in the range `[1..limit]` are sorted. [`(U)Int*`](/core/reference/data-types/int-uint) +- `map` — Map to sort. [`Map(K, V)`](/core/reference/data-types/map) **Returned value** -Returns a partially sorted map in descending order. [`Map(K, V)`](/reference/data-types/map) +Returns a partially sorted map in descending order. [`Map(K, V)`](/core/reference/data-types/map) **Examples** @@ -822,13 +822,13 @@ mapPartialSort([func,] limit, map) **Arguments** -- `func` — Optional. Lambda function. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `limit` — Elements in the range `[1..limit]` are sorted. [`(U)Int*`](/reference/data-types/int-uint) -- `map` — Map to sort. [`Map(K, V)`](/reference/data-types/map) +- `func` — Optional. Lambda function. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `limit` — Elements in the range `[1..limit]` are sorted. [`(U)Int*`](/core/reference/data-types/int-uint) +- `map` — Map to sort. [`Map(K, V)`](/core/reference/data-types/map) **Returned value** -Returns a partially sorted map. [`Map(K, V)`](/reference/data-types/map) +Returns a partially sorted map. [`Map(K, V)`](/core/reference/data-types/map) **Examples** @@ -860,14 +860,14 @@ mapPopulateSeries(map[, max]) | mapPopulateSeries(keys, values[, max]) **Arguments** -- `map` — Map with integer keys. [`Map((U)Int*, V)`](/reference/data-types/map) -- `keys` — Array of keys. [`Array(T)`](/reference/data-types/array) -- `values` — Array of values. [`Array(T)`](/reference/data-types/array) -- `max` — Optional. Maximum key value. [`Int8`](/reference/data-types/int-uint) or [`Int16`](/reference/data-types/int-uint) or [`Int32`](/reference/data-types/int-uint) or [`Int64`](/reference/data-types/int-uint) or [`Int128`](/reference/data-types/int-uint) or [`Int256`](/reference/data-types/int-uint) +- `map` — Map with integer keys. [`Map((U)Int*, V)`](/core/reference/data-types/map) +- `keys` — Array of keys. [`Array(T)`](/core/reference/data-types/array) +- `values` — Array of values. [`Array(T)`](/core/reference/data-types/array) +- `max` — Optional. Maximum key value. [`Int8`](/core/reference/data-types/int-uint) or [`Int16`](/core/reference/data-types/int-uint) or [`Int32`](/core/reference/data-types/int-uint) or [`Int64`](/core/reference/data-types/int-uint) or [`Int128`](/core/reference/data-types/int-uint) or [`Int256`](/core/reference/data-types/int-uint) **Returned value** -Returns a map or a tuple of two arrays where the first has keys in sorted order, and the second values for the corresponding keys. [`Map(K, V)`](/reference/data-types/map) or [`Tuple(Array(UInt*), Array(Any))`](/reference/data-types/tuple) +Returns a map or a tuple of two arrays where the first has keys in sorted order, and the second values for the corresponding keys. [`Map(K, V)`](/core/reference/data-types/map) or [`Tuple(Array(UInt*), Array(Any))`](/core/reference/data-types/tuple) **Examples** @@ -906,12 +906,12 @@ mapReverseSort([func,] map) **Arguments** -- `func` — Optional. Lambda function. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `map` — Map to sort. [`Map(K, V)`](/reference/data-types/map) +- `func` — Optional. Lambda function. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `map` — Map to sort. [`Map(K, V)`](/core/reference/data-types/map) **Returned value** -Returns a map sorted in descending order. [`Map(K, V)`](/reference/data-types/map) +Returns a map sorted in descending order. [`Map(K, V)`](/core/reference/data-types/map) **Examples** @@ -940,12 +940,12 @@ mapSort([func,] map) **Arguments** -- `func` — Optional. Lambda function. [`Lambda function`](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) -- `map` — Map to sort. [`Map(K, V)`](/reference/data-types/map) +- `func` — Optional. Lambda function. [`Lambda function`](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) +- `map` — Map to sort. [`Map(K, V)`](/core/reference/data-types/map) **Returned value** -Returns a map sorted in ascending order. [`Map(K, V)`](/reference/data-types/map) +Returns a map sorted in ascending order. [`Map(K, V)`](/core/reference/data-types/map) **Examples** @@ -973,11 +973,11 @@ mapSubtract(arg1[, arg2, ...]) **Arguments** -- `arg1[, arg2, ...]` — Maps or tuples of two arrays in which items in the first array represent keys, and the second array contains values for each key. [`Map(K, V)`](/reference/data-types/map) or [`Tuple(Array(T), Array(T))`](/reference/data-types/tuple) +- `arg1[, arg2, ...]` — Maps or tuples of two arrays in which items in the first array represent keys, and the second array contains values for each key. [`Map(K, V)`](/core/reference/data-types/map) or [`Tuple(Array(T), Array(T))`](/core/reference/data-types/tuple) **Returned value** -Returns one map or tuple, where the first array contains the sorted keys and the second array contains values. [`Map(K, V)`](/reference/data-types/map) or [`Tuple(Array(T), Array(T))`](/reference/data-types/tuple) +Returns one map or tuple, where the first array contains the sorted keys and the second array contains values. [`Map(K, V)`](/core/reference/data-types/map) or [`Tuple(Array(T), Array(T))`](/core/reference/data-types/tuple) **Examples** @@ -1015,12 +1015,12 @@ mapUpdate(map1, map2) **Arguments** -- `map1` — The map to update. [`Map(K, V)`](/reference/data-types/map) -- `map2` — The map to use for updating. [`Map(K, V)`](/reference/data-types/map) +- `map1` — The map to update. [`Map(K, V)`](/core/reference/data-types/map) +- `map2` — The map to use for updating. [`Map(K, V)`](/core/reference/data-types/map) **Returned value** -Returns `map1` with values updated from values for the corresponding keys in `map2`. [`Map(K, V)`](/reference/data-types/map) +Returns `map1` with values updated from values for the corresponding keys in `map2`. [`Map(K, V)`](/core/reference/data-types/map) **Examples** @@ -1039,7 +1039,7 @@ SELECT mapUpdate(map('key1', 0, 'key3', 0), map('key1', 10, 'key2', 10)) Introduced in: v21.2.0 Returns the values of a given map. -This function can be optimized by enabling setting [`optimize_functions_to_subcolumns`](/reference/settings/session-settings#optimize_functions_to_subcolumns). +This function can be optimized by enabling setting [`optimize_functions_to_subcolumns`](/core/reference/settings/session-settings#optimize_functions_to_subcolumns). With the setting enabled, the function only reads the `values` subcolumn instead of the entire map. The query `SELECT mapValues(m) FROM table` is transformed to `SELECT m.values FROM table`. @@ -1051,11 +1051,11 @@ mapValues(map) **Arguments** -- `map` — Map to extract values from. [`Map(K, V)`](/reference/data-types/map) +- `map` — Map to extract values from. [`Map(K, V)`](/core/reference/data-types/map) **Returned value** -Returns an array containing all the values from the map. [`Array(T)`](/reference/data-types/array) +Returns an array containing all the values from the map. [`Array(T)`](/core/reference/data-types/array) **Examples** diff --git a/reference/functions/regular-functions/type-conversion-functions.mdx b/core/reference/functions/regular-functions/type-conversion-functions.mdx similarity index 75% rename from reference/functions/regular-functions/type-conversion-functions.mdx rename to core/reference/functions/regular-functions/type-conversion-functions.mdx index 088c2c4f..bde9481d 100644 --- a/reference/functions/regular-functions/type-conversion-functions.mdx +++ b/core/reference/functions/regular-functions/type-conversion-functions.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' ClickHouse generally uses the [same behavior as C++ programs](https://en.cppreference.com/w/cpp/language/implicit_conversion). -`to` functions and [cast](#CAST) behave differently in some cases, for example in case of [LowCardinality](/reference/data-types/lowcardinality): [cast](#CAST) removes [LowCardinality](/reference/data-types/lowcardinality) trait `to` functions don't. The same with [Nullable](/reference/data-types/nullable), this behaviour is not compatible with SQL standard, and it can be changed using [cast_keep_nullable](/reference/settings/session-settings#cast_keep_nullable) setting. +`to` functions and [cast](#CAST) behave differently in some cases, for example in case of [LowCardinality](/core/reference/data-types/lowcardinality): [cast](#CAST) removes [LowCardinality](/core/reference/data-types/lowcardinality) trait `to` functions don't. The same with [Nullable](/core/reference/data-types/nullable), this behaviour is not compatible with SQL standard, and it can be changed using [cast_keep_nullable](/core/reference/settings/session-settings#cast_keep_nullable) setting. Be aware of potential data loss if values of a datatype are converted to a smaller datatype (for example from `Int64` to `Int32`) or between @@ -102,7 +102,7 @@ LIMIT 10 └─────────────────────┴───────────────────┴─────────────────────┘ ``` -Also see the [`toUnixTimestamp`](/reference/functions/regular-functions/date-time-functions#toUnixTimestamp) function. +Also see the [`toUnixTimestamp`](/core/reference/functions/regular-functions/date-time-functions#toUnixTimestamp) function. {/* The inner content of the tags below are replaced at doc framework build time with @@ -130,12 +130,12 @@ or x::T **Arguments** -- `x` — A value of any type. [`Any`](/reference/data-types) -- `T` — The target data type. [`String`](/reference/data-types/string) +- `x` — A value of any type. [`Any`](/core/reference/data-types) +- `T` — The target data type. [`String`](/core/reference/data-types/string) **Returned value** -Returns the converted value with the target data type. [`Any`](/reference/data-types) +Returns the converted value with the target data type. [`Any`](/core/reference/data-types) **Examples** @@ -190,11 +190,11 @@ DATE(expr) **Arguments** -- `expr` — The value to convert. [`String`](/reference/data-types/string) or [`UInt32`](/reference/data-types/int-uint) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `expr` — The value to convert. [`String`](/core/reference/data-types/string) or [`UInt32`](/core/reference/data-types/int-uint) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns a Date value. [`Date`](/reference/data-types/date) +Returns a Date value. [`Date`](/core/reference/data-types/date) **Examples** @@ -225,12 +225,12 @@ accurateCast(x, T) **Arguments** -- `x` — A value to convert. [`Any`](/reference/data-types) -- `T` — The target data type name. [`String`](/reference/data-types/string) +- `x` — A value to convert. [`Any`](/core/reference/data-types) +- `T` — The target data type name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the converted value with the target data type. [`Any`](/reference/data-types) +Returns the converted value with the target data type. [`Any`](/core/reference/data-types) **Examples** @@ -277,13 +277,13 @@ accurateCastOrDefault(x, T[, default_value]) **Arguments** -- `x` — A value to convert. [`Any`](/reference/data-types) -- `T` — The target data type name. [`const String`](/reference/data-types/string) -- `default_value` — Optional. Default value to return if conversion fails. [`Any`](/reference/data-types) +- `x` — A value to convert. [`Any`](/core/reference/data-types) +- `T` — The target data type name. [`const String`](/core/reference/data-types/string) +- `default_value` — Optional. Default value to return if conversion fails. [`Any`](/core/reference/data-types) **Returned value** -Returns the converted value with the target data type, or the default value if conversion is not possible. [`Any`](/reference/data-types) +Returns the converted value with the target data type, or the default value if conversion is not possible. [`Any`](/core/reference/data-types) **Examples** @@ -341,12 +341,12 @@ accurateCastOrNull(x, T) **Arguments** -- `x` — A value to convert. [`Any`](/reference/data-types) -- `T` — The target data type name. [`String`](/reference/data-types/string) +- `x` — A value to convert. [`Any`](/core/reference/data-types) +- `T` — The target data type name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the converted value with the target data type, or `NULL` if conversion is not possible. [`Any`](/reference/data-types) +Returns the converted value with the target data type, or `NULL` if conversion is not possible. [`Any`](/core/reference/data-types) **Examples** @@ -394,12 +394,12 @@ formatRow(format, x, y, ...) **Arguments** -- `format` — Text format. For example, CSV, TSV. [`String`](/reference/data-types/string) -- `x, y, ...` — Expressions. [`Any`](/reference/data-types) +- `format` — Text format. For example, CSV, TSV. [`String`](/core/reference/data-types/string) +- `x, y, ...` — Expressions. [`Any`](/core/reference/data-types) **Returned value** -A formatted string. (for text formats it's usually terminated with the new line character). [`String`](/reference/data-types/string) +A formatted string. (for text formats it's usually terminated with the new line character). [`String`](/core/reference/data-types/string) **Examples** @@ -460,12 +460,12 @@ formatRowNoNewline(format, x, y, ...) **Arguments** -- `format` — Text format. For example, CSV, TSV. [`String`](/reference/data-types/string) -- `x, y, ...` — Expressions. [`Any`](/reference/data-types) +- `format` — Text format. For example, CSV, TSV. [`String`](/core/reference/data-types/string) +- `x, y, ...` — Expressions. [`Any`](/core/reference/data-types) **Returned value** -Returns a formatted string with newlines removed. [`String`](/reference/data-types/string) +Returns a formatted string with newlines removed. [`String`](/core/reference/data-types/string) **Examples** @@ -501,12 +501,12 @@ fromUnixTimestamp64Micro(value[, timezone]) **Arguments** -- `value` — Unix timestamp in microseconds. [`Int64`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone for the returned value. [`String`](/reference/data-types/string) +- `value` — Unix timestamp in microseconds. [`Int64`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone for the returned value. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `DateTime64` value with microsecond precision. [`DateTime64(6)`](/reference/data-types/datetime64) +Returns a `DateTime64` value with microsecond precision. [`DateTime64(6)`](/core/reference/data-types/datetime64) **Examples** @@ -539,12 +539,12 @@ fromUnixTimestamp64Milli(value[, timezone]) **Arguments** -- `value` — Unix timestamp in milliseconds. [`Int64`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone for the returned value. [`String`](/reference/data-types/string) +- `value` — Unix timestamp in milliseconds. [`Int64`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone for the returned value. [`String`](/core/reference/data-types/string) **Returned value** -A `DateTime64` value with millisecond precision. [`DateTime64(3)`](/reference/data-types/datetime64) +A `DateTime64` value with millisecond precision. [`DateTime64(3)`](/core/reference/data-types/datetime64) **Examples** @@ -564,7 +564,7 @@ SELECT fromUnixTimestamp64Milli(1640995200123) Introduced in: v20.5.0 -Converts a Unix timestamp in nanoseconds to a [`DateTime64`](/reference/data-types/datetime64) value with nanosecond precision. +Converts a Unix timestamp in nanoseconds to a [`DateTime64`](/core/reference/data-types/datetime64) value with nanosecond precision. The input value is treated as a Unix timestamp with nanosecond precision (number of nanoseconds since 1970-01-01 00:00:00 UTC). @@ -581,12 +581,12 @@ fromUnixTimestamp64Nano(value[, timezone]) **Arguments** -- `value` — Unix timestamp in nanoseconds. [`Int64`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone for the returned value. [`String`](/reference/data-types/string) +- `value` — Unix timestamp in nanoseconds. [`Int64`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone for the returned value. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `DateTime64` value with nanosecond precision. [`DateTime64(9)`](/reference/data-types/datetime64) +Returns a `DateTime64` value with nanosecond precision. [`DateTime64(9)`](/core/reference/data-types/datetime64) **Examples** @@ -619,12 +619,12 @@ fromUnixTimestamp64Second(value[, timezone]) **Arguments** -- `value` — Unix timestamp in seconds. [`Int64`](/reference/data-types/int-uint) -- `timezone` — Optional. Timezone for the returned value. [`String`](/reference/data-types/string) +- `value` — Unix timestamp in seconds. [`Int64`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Timezone for the returned value. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `DateTime64` value with second precision. [`DateTime64(0)`](/reference/data-types/datetime64) +Returns a `DateTime64` value with second precision. [`DateTime64(0)`](/core/reference/data-types/datetime64) **Examples** @@ -646,7 +646,7 @@ Introduced in: v23.3.0 Parses a date and time string according to a MySQL date format string. -This function is the inverse of [`formatDateTime`](/reference/functions/regular-functions/date-time-functions). +This function is the inverse of [`formatDateTime`](/core/reference/functions/regular-functions/date-time-functions). It parses a String argument using a format String. Returns a DateTime type. @@ -660,13 +660,13 @@ parseDateTime(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime. [`String`](/reference/data-types/string) -- `format` — Format string specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime. [`String`](/core/reference/data-types/string) +- `format` — Format string specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns a DateTime parsed from the input string according to the MySQL style format string. [`DateTime`](/reference/data-types/datetime) +Returns a DateTime parsed from the input string according to the MySQL style format string. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -686,7 +686,7 @@ SELECT parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s') Introduced in: v20.9.0 -Converts a string representation of a date and time to the [`DateTime`](/reference/data-types/datetime) data type. +Converts a string representation of a date and time to the [`DateTime`](/core/reference/data-types/datetime) data type. The function parses [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), [RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55), ClickHouse's and some other date and time formats. @@ -699,12 +699,12 @@ parseDateTime32BestEffort(time_string[, time_zone]) **Arguments** -- `time_string` — String containing a date and time to convert. [`String`](/reference/data-types/string) -- `time_zone` — Optional. Time zone according to which `time_string` is parsed [`String`](/reference/data-types/string) +- `time_string` — String containing a date and time to convert. [`String`](/core/reference/data-types/string) +- `time_zone` — Optional. Time zone according to which `time_string` is parsed [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` as a `DateTime`. [`DateTime`](/reference/data-types/datetime) +Returns `time_string` as a `DateTime`. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -762,12 +762,12 @@ parseDateTime32BestEffortOrNull(time_string[, time_zone]) **Arguments** -- `time_string` — String containing a date and time to convert. [`String`](/reference/data-types/string) -- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/reference/data-types/string) +- `time_string` — String containing a date and time to convert. [`String`](/core/reference/data-types/string) +- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `DateTime` object parsed from the string, or `NULL` if the parsing fails. [`DateTime`](/reference/data-types/datetime) +Returns a `DateTime` object parsed from the string, or `NULL` if the parsing fails. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -800,12 +800,12 @@ parseDateTime32BestEffortOrZero(time_string[, time_zone]) **Arguments** -- `time_string` — String containing a date and time to convert. [`String`](/reference/data-types/string) -- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/reference/data-types/string) +- `time_string` — String containing a date and time to convert. [`String`](/core/reference/data-types/string) +- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `DateTime` object parsed from the string, or zero date (`1970-01-01 00:00:00`) if the parsing fails. [`DateTime`](/reference/data-types/datetime) +Returns a `DateTime` object parsed from the string, or zero date (`1970-01-01 00:00:00`) if the parsing fails. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -829,7 +829,7 @@ Introduced in: v24.11.0 Parses a date and time string with sub-second precision according to a MySQL date format string. -This function is the inverse of [`formatDateTime`](/reference/functions/regular-functions/date-time-functions) for DateTime64. +This function is the inverse of [`formatDateTime`](/core/reference/functions/regular-functions/date-time-functions) for DateTime64. It parses a String argument using a format String. Returns a DateTime64 type which can represent dates from 1900 to 2299 with sub-second precision. @@ -841,13 +841,13 @@ parseDateTime64(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime64. [`String`](/reference/data-types/string) -- `format` — Format string specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime64. [`String`](/core/reference/data-types/string) +- `format` — Format string specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns a DateTime64 parsed from the input string according to the MySQL style format string. [`DateTime64`](/reference/data-types/datetime64) +Returns a DateTime64 parsed from the input string according to the MySQL style format string. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -867,7 +867,7 @@ SELECT parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f') Introduced in: v20.1.0 -Same as [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) function but also parse milliseconds and microseconds and returns [`DateTime64`](/reference/data-types/datetime64) data type. +Same as [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) function but also parse milliseconds and microseconds and returns [`DateTime64`](/core/reference/data-types/datetime64) data type. **Syntax** @@ -878,13 +878,13 @@ parseDateTime64BestEffort(time_string[, precision[, time_zone]]) **Arguments** -- `time_string` — String containing a date or date with time to convert. [`String`](/reference/data-types/string) -- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/reference/data-types/int-uint) -- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/reference/data-types/string) +- `time_string` — String containing a date or date with time to convert. [`String`](/core/reference/data-types/string) +- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` converted to the [`DateTime64`](/reference/data-types/datetime64) data type. [`DateTime64`](/reference/data-types/datetime64) +Returns `time_string` converted to the [`DateTime64`](/core/reference/data-types/datetime64) data type. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -925,13 +925,13 @@ parseDateTime64BestEffortOrNull(time_string[, precision[, time_zone]]) **Arguments** -- `time_string` — String containing a date or date with time to convert. [`String`](/reference/data-types/string) -- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/reference/data-types/int-uint) -- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/reference/data-types/string) +- `time_string` — String containing a date or date with time to convert. [`String`](/core/reference/data-types/string) +- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` converted to [`DateTime64`](/reference/data-types/datetime64), or `NULL` if the input cannot be parsed. [`DateTime64`](/reference/data-types/datetime64) or [`NULL`](/reference/syntax#null) +Returns `time_string` converted to [`DateTime64`](/core/reference/data-types/datetime64), or `NULL` if the input cannot be parsed. [`DateTime64`](/core/reference/data-types/datetime64) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -963,13 +963,13 @@ parseDateTime64BestEffortOrZero(time_string[, precision[, time_zone]]) **Arguments** -- `time_string` — String containing a date or date with time to convert. [`String`](/reference/data-types/string) -- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/reference/data-types/int-uint) -- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/reference/data-types/string) +- `time_string` — String containing a date or date with time to convert. [`String`](/core/reference/data-types/string) +- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` converted to [`DateTime64`](/reference/data-types/datetime64), or zero date/datetime (`1970-01-01 00:00:00.000`) if the input cannot be parsed. [`DateTime64`](/reference/data-types/datetime64) +Returns `time_string` converted to [`DateTime64`](/core/reference/data-types/datetime64), or zero date/datetime (`1970-01-01 00:00:00.000`) if the input cannot be parsed. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1001,13 +1001,13 @@ parseDateTime64BestEffortUS(time_string [, precision [, time_zone]]) **Arguments** -- `time_string` — String containing a date or date with time to convert. [`String`](/reference/data-types/string) -- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/reference/data-types/int-uint) -- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/reference/data-types/string) +- `time_string` — String containing a date or date with time to convert. [`String`](/core/reference/data-types/string) +- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` converted to [`DateTime64`](/reference/data-types/datetime64) using US date format preference for ambiguous cases. [`DateTime64`](/reference/data-types/datetime64) +Returns `time_string` converted to [`DateTime64`](/core/reference/data-types/datetime64) using US date format preference for ambiguous cases. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1039,13 +1039,13 @@ parseDateTime64BestEffortUSOrNull(time_string[, precision[, time_zone]]) **Arguments** -- `time_string` — String containing a date or date with time to convert. [`String`](/reference/data-types/string) -- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/reference/data-types/int-uint) -- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/reference/data-types/string) +- `time_string` — String containing a date or date with time to convert. [`String`](/core/reference/data-types/string) +- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` converted to [`DateTime64`](/reference/data-types/datetime64) using US format preference, or `NULL` if the input cannot be parsed. [`DateTime64`](/reference/data-types/datetime64) or [`NULL`](/reference/syntax#null) +Returns `time_string` converted to [`DateTime64`](/core/reference/data-types/datetime64) using US format preference, or `NULL` if the input cannot be parsed. [`DateTime64`](/core/reference/data-types/datetime64) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -1077,13 +1077,13 @@ parseDateTime64BestEffortUSOrZero(time_string [, precision [, time_zone]]) **Arguments** -- `time_string` — String containing a date or date with time to convert. [`String`](/reference/data-types/string) -- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/reference/data-types/int-uint) -- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/reference/data-types/string) +- `time_string` — String containing a date or date with time to convert. [`String`](/core/reference/data-types/string) +- `precision` — Optional. Required precision. `3` for milliseconds, `6` for microseconds. Default: `3`. [`UInt8`](/core/reference/data-types/int-uint) +- `time_zone` — Optional. Timezone. The function parses `time_string` according to the timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` converted to [`DateTime64`](/reference/data-types/datetime64) using US format preference, or zero date/datetime (`1970-01-01 00:00:00.000`) if the input cannot be parsed. [`DateTime64`](/reference/data-types/datetime64) +Returns `time_string` converted to [`DateTime64`](/core/reference/data-types/datetime64) using US format preference, or zero date/datetime (`1970-01-01 00:00:00.000`) if the input cannot be parsed. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1106,7 +1106,7 @@ Introduced in: v24.10.0 Parses a date and time string with sub-second precision according to a Joda date format string. -This function is the inverse of [`formatDateTimeInJodaSyntax`](/reference/functions/regular-functions/date-time-functions#formatDateTimeInJodaSyntax) for DateTime64. +This function is the inverse of [`formatDateTimeInJodaSyntax`](/core/reference/functions/regular-functions/date-time-functions#formatDateTimeInJodaSyntax) for DateTime64. It parses a String argument using a Joda-style format String. Returns a DateTime64 type which can represent dates from 1900 to 2299 with sub-second precision. Refer to [Joda Time documentation](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) for the format patterns. @@ -1120,13 +1120,13 @@ parseDateTime64InJodaSyntax(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime64. [`String`](/reference/data-types/string) -- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime64. [`String`](/core/reference/data-types/string) +- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns a DateTime64 parsed from the input string according to the Joda style format string. [`DateTime64`](/reference/data-types/datetime64) +Returns a DateTime64 parsed from the input string according to the Joda style format string. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1157,13 +1157,13 @@ parseDateTime64InJodaSyntaxOrNull(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime64. [`String`](/reference/data-types/string) -- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime64. [`String`](/core/reference/data-types/string) +- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns DateTime64 parsed from input string, or NULL if parsing fails. [`Nullable(DateTime64)`](/reference/data-types/nullable) +Returns DateTime64 parsed from input string, or NULL if parsing fails. [`Nullable(DateTime64)`](/core/reference/data-types/nullable) **Examples** @@ -1194,13 +1194,13 @@ parseDateTime64InJodaSyntaxOrZero(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime64. [`String`](/reference/data-types/string) -- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime64. [`String`](/core/reference/data-types/string) +- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns DateTime64 parsed from input string, or zero DateTime64 if parsing fails. [`DateTime64`](/reference/data-types/datetime64) +Returns DateTime64 parsed from input string, or zero DateTime64 if parsing fails. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1231,13 +1231,13 @@ parseDateTime64OrNull(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime64. [`String`](/reference/data-types/string) -- `format` — Format string specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime64. [`String`](/core/reference/data-types/string) +- `format` — Format string specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns DateTime64 parsed from input string, or NULL if parsing fails. [`Nullable(DateTime64)`](/reference/data-types/nullable) +Returns DateTime64 parsed from input string, or NULL if parsing fails. [`Nullable(DateTime64)`](/core/reference/data-types/nullable) **Examples** @@ -1268,13 +1268,13 @@ parseDateTime64OrZero(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime64. [`String`](/reference/data-types/string) -- `format` — Format string specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime64. [`String`](/core/reference/data-types/string) +- `format` — Format string specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns DateTime64 parsed from input string, or zero DateTime64 if parsing fails. [`DateTime64`](/reference/data-types/datetime64) +Returns DateTime64 parsed from input string, or zero DateTime64 if parsing fails. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -1317,12 +1317,12 @@ parseDateTimeBestEffort(time_string[, time_zone]) **Arguments** -- `time_string` — String containing a date and time to convert. [`String`](/reference/data-types/string) -- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/reference/data-types/string) +- `time_string` — String containing a date and time to convert. [`String`](/core/reference/data-types/string) +- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` as a `DateTime`. [`DateTime`](/reference/data-types/datetime) +Returns `time_string` as a `DateTime`. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -1389,12 +1389,12 @@ parseDateTimeBestEffortOrNull(time_string[, time_zone]) **Arguments** -- `time_string` — String containing a date and time to convert. [`String`](/reference/data-types/string) -- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/reference/data-types/string) +- `time_string` — String containing a date and time to convert. [`String`](/core/reference/data-types/string) +- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` as a DateTime, or `NULL` if the input cannot be parsed. [`DateTime`](/reference/data-types/datetime) or [`NULL`](/reference/syntax#null) +Returns `time_string` as a DateTime, or `NULL` if the input cannot be parsed. [`DateTime`](/core/reference/data-types/datetime) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -1438,12 +1438,12 @@ parseDateTimeBestEffortOrZero(time_string[, time_zone]) **Arguments** -- `time_string` — String containing a date and time to convert. [`String`](/reference/data-types/string) -- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/reference/data-types/string) +- `time_string` — String containing a date and time to convert. [`String`](/core/reference/data-types/string) +- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` as a `DateTime`, or zero date/datetime (`1970-01-01` or `1970-01-01 00:00:00`) if the input cannot be parsed. [`DateTime`](/reference/data-types/datetime) +Returns `time_string` as a `DateTime`, or zero date/datetime (`1970-01-01` or `1970-01-01 00:00:00`) if the input cannot be parsed. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -1477,12 +1477,12 @@ parseDateTimeBestEffortUS(time_string[, time_zone]) **Arguments** -- `time_string` — String containing a date and time to convert. [`String`](/reference/data-types/string) -- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/reference/data-types/string) +- `time_string` — String containing a date and time to convert. [`String`](/core/reference/data-types/string) +- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` as a `DateTime` using US date format preference for ambiguous cases. [`DateTime`](/reference/data-types/datetime) +Returns `time_string` as a `DateTime` using US date format preference for ambiguous cases. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -1516,12 +1516,12 @@ parseDateTimeBestEffortUSOrNull(time_string[, time_zone]) **Arguments** -- `time_string` — String containing a date and time to convert. [`String`](/reference/data-types/string) -- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/reference/data-types/string) +- `time_string` — String containing a date and time to convert. [`String`](/core/reference/data-types/string) +- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` as a DateTime using US format preference, or `NULL` if the input cannot be parsed. [`DateTime`](/reference/data-types/datetime) or [`NULL`](/reference/syntax#null) +Returns `time_string` as a DateTime using US format preference, or `NULL` if the input cannot be parsed. [`DateTime`](/core/reference/data-types/datetime) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -1555,12 +1555,12 @@ parseDateTimeBestEffortUSOrZero(time_string[, time_zone]) **Arguments** -- `time_string` — String containing a date and time to convert. [`String`](/reference/data-types/string) -- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/reference/data-types/string) +- `time_string` — String containing a date and time to convert. [`String`](/core/reference/data-types/string) +- `time_zone` — Optional. Time zone according to which `time_string` is parsed. [`String`](/core/reference/data-types/string) **Returned value** -Returns `time_string` as a `DateTime` using US format preference, or zero date/datetime (`1970-01-01` or `1970-01-01 00:00:00`) if the input cannot be parsed. [`DateTime`](/reference/data-types/datetime) +Returns `time_string` as a `DateTime` using US format preference, or zero date/datetime (`1970-01-01` or `1970-01-01 00:00:00`) if the input cannot be parsed. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -1583,7 +1583,7 @@ Introduced in: v23.3.0 Parses a date and time string according to a Joda date format string. -This function is the inverse of [`formatDateTimeInJodaSyntax`](/reference/functions/regular-functions/date-time-functions#formatDateTimeInJodaSyntax). +This function is the inverse of [`formatDateTimeInJodaSyntax`](/core/reference/functions/regular-functions/date-time-functions#formatDateTimeInJodaSyntax). It parses a String argument using a Joda-style format String. Returns a DateTime type. Refer to [Joda Time documentation](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) for the format patterns. @@ -1597,13 +1597,13 @@ parseDateTimeInJodaSyntax(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime. [`String`](/reference/data-types/string) -- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime. [`String`](/core/reference/data-types/string) +- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns a DateTime parsed from the input string according to the Joda style format string. [`DateTime`](/reference/data-types/datetime) +Returns a DateTime parsed from the input string according to the Joda style format string. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -1634,13 +1634,13 @@ parseDateTimeInJodaSyntaxOrNull(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime. [`String`](/reference/data-types/string) -- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime. [`String`](/core/reference/data-types/string) +- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns DateTime parsed from input string, or NULL if parsing fails. [`Nullable(DateTime)`](/reference/data-types/nullable) +Returns DateTime parsed from input string, or NULL if parsing fails. [`Nullable(DateTime)`](/core/reference/data-types/nullable) **Examples** @@ -1671,13 +1671,13 @@ parseDateTimeInJodaSyntaxOrZero(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime. [`String`](/reference/data-types/string) -- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime. [`String`](/core/reference/data-types/string) +- `format` — Format string in Joda syntax specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns DateTime parsed from input string, or zero DateTime if parsing fails. [`DateTime`](/reference/data-types/datetime) +Returns DateTime parsed from input string, or zero DateTime if parsing fails. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -1710,13 +1710,13 @@ parseDateTimeOrNull(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime. [`String`](/reference/data-types/string) -- `format` — Format string specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime. [`String`](/core/reference/data-types/string) +- `format` — Format string specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns DateTime parsed from input string, or NULL if parsing fails. [`Nullable(DateTime)`](/reference/data-types/nullable) +Returns DateTime parsed from input string, or NULL if parsing fails. [`Nullable(DateTime)`](/core/reference/data-types/nullable) **Examples** @@ -1747,13 +1747,13 @@ parseDateTimeOrZero(time_string, format[, timezone]) **Arguments** -- `time_string` — String to be parsed into DateTime. [`String`](/reference/data-types/string) -- `format` — Format string specifying how to parse time_string. [`String`](/reference/data-types/string) -- `timezone` — Optional. Timezone. [`String`](/reference/data-types/string) +- `time_string` — String to be parsed into DateTime. [`String`](/core/reference/data-types/string) +- `format` — Format string specifying how to parse time_string. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. Timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns DateTime parsed from input string, or zero DateTime if parsing fails. [`DateTime`](/reference/data-types/datetime) +Returns DateTime parsed from input string, or zero DateTime if parsing fails. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -1784,12 +1784,12 @@ reinterpret(x, type) **Arguments** -- `x` — Any type. [`Any`](/reference/data-types) -- `type` — Destination type. If it is an array, then the array element type must be a fixed length type. [`String`](/reference/data-types/string) +- `x` — Any type. [`Any`](/core/reference/data-types) +- `type` — Destination type. If it is an array, then the array element type must be a fixed length type. [`String`](/core/reference/data-types/string) **Returned value** -Destination type value. [`Any`](/reference/data-types) +Destination type value. [`Any`](/core/reference/data-types) **Examples** @@ -1834,11 +1834,11 @@ reinterpretAsDate(x) **Arguments** -- `x` — Number of days since the beginning of the Unix Epoch. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Number of days since the beginning of the Unix Epoch. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Date. [`Date`](/reference/data-types/date) +Date. [`Date`](/core/reference/data-types/date) **Examples** @@ -1869,11 +1869,11 @@ reinterpretAsDateTime(x) **Arguments** -- `x` — Number of seconds since the beginning of the Unix Epoch. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Number of seconds since the beginning of the Unix Epoch. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Date and Time. [`DateTime`](/reference/data-types/datetime) +Date and Time. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -1905,11 +1905,11 @@ reinterpretAsFixedString(x) **Arguments** -- `x` — Value to reinterpret to string. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `x` — Value to reinterpret to string. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Fixed string containing bytes representing `x`. [`FixedString`](/reference/data-types/fixedstring) +Fixed string containing bytes representing `x`. [`FixedString`](/core/reference/data-types/fixedstring) **Examples** @@ -1943,11 +1943,11 @@ reinterpretAsFloat32(x) **Arguments** -- `x` — Value to reinterpret as Float32. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as Float32. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`Float32`](/reference/data-types/float) +Returns the reinterpreted value `x`. [`Float32`](/core/reference/data-types/float) **Examples** @@ -1979,11 +1979,11 @@ reinterpretAsFloat64(x) **Arguments** -- `x` — Value to reinterpret as Float64. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as Float64. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`Float64`](/reference/data-types/float) +Returns the reinterpreted value `x`. [`Float64`](/core/reference/data-types/float) **Examples** @@ -2015,11 +2015,11 @@ reinterpretAsInt128(x) **Arguments** -- `x` — Value to reinterpret as Int128. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as Int128. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`Int128`](/reference/data-types/int-uint) +Returns the reinterpreted value `x`. [`Int128`](/core/reference/data-types/int-uint) **Examples** @@ -2055,11 +2055,11 @@ reinterpretAsInt16(x) **Arguments** -- `x` — Value to reinterpret as Int16. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as Int16. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`Int16`](/reference/data-types/int-uint) +Returns the reinterpreted value `x`. [`Int16`](/core/reference/data-types/int-uint) **Examples** @@ -2095,11 +2095,11 @@ reinterpretAsInt256(x) **Arguments** -- `x` — Value to reinterpret as Int256. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as Int256. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`Int256`](/reference/data-types/int-uint) +Returns the reinterpreted value `x`. [`Int256`](/core/reference/data-types/int-uint) **Examples** @@ -2135,11 +2135,11 @@ reinterpretAsInt32(x) **Arguments** -- `x` — Value to reinterpret as Int32. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as Int32. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`Int32`](/reference/data-types/int-uint) +Returns the reinterpreted value `x`. [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -2175,11 +2175,11 @@ reinterpretAsInt64(x) **Arguments** -- `x` — Value to reinterpret as Int64. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as Int64. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`Int64`](/reference/data-types/int-uint) +Returns the reinterpreted value `x`. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -2215,11 +2215,11 @@ reinterpretAsInt8(x) **Arguments** -- `x` — Value to reinterpret as Int8. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as Int8. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`Int8`](/reference/data-types/int-uint) +Returns the reinterpreted value `x`. [`Int8`](/core/reference/data-types/int-uint) **Examples** @@ -2255,11 +2255,11 @@ reinterpretAsString(x) **Arguments** -- `x` — Value to reinterpret to string. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `x` — Value to reinterpret to string. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -String containing bytes representing `x`. [`String`](/reference/data-types/string) +String containing bytes representing `x`. [`String`](/core/reference/data-types/string) **Examples** @@ -2293,11 +2293,11 @@ reinterpretAsUInt128(x) **Arguments** -- `x` — Value to reinterpret as UInt128. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as UInt128. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`UInt128`](/reference/data-types/int-uint) +Returns the reinterpreted value `x`. [`UInt128`](/core/reference/data-types/int-uint) **Examples** @@ -2333,11 +2333,11 @@ reinterpretAsUInt16(x) **Arguments** -- `x` — Value to reinterpret as UInt16. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as UInt16. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`UInt16`](/reference/data-types/int-uint) +Returns the reinterpreted value `x`. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -2373,11 +2373,11 @@ reinterpretAsUInt256(x) **Arguments** -- `x` — Value to reinterpret as UInt256. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as UInt256. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`UInt256`](/reference/data-types/int-uint) +Returns the reinterpreted value `x`. [`UInt256`](/core/reference/data-types/int-uint) **Examples** @@ -2413,11 +2413,11 @@ reinterpretAsUInt32(x) **Arguments** -- `x` — Value to reinterpret as UInt32. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as UInt32. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`UInt32`](/reference/data-types/int-uint) +Returns the reinterpreted value `x`. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -2453,11 +2453,11 @@ reinterpretAsUInt64(x) **Arguments** -- `x` — Value to reinterpret as UInt64. [`Int*`](/reference/data-types/int-uint) or [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as UInt64. [`Int*`](/core/reference/data-types/int-uint) or [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value of `x`. [`UInt64`](/reference/data-types/int-uint) +Returns the reinterpreted value of `x`. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -2492,11 +2492,11 @@ reinterpretAsUInt8(x) **Arguments** -- `x` — Value to reinterpret as UInt8. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`UUID`](/reference/data-types/uuid) or [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `x` — Value to reinterpret as UInt8. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`UUID`](/core/reference/data-types/uuid) or [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns the reinterpreted value `x`. [`UInt8`](/reference/data-types/int-uint) +Returns the reinterpreted value `x`. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -2531,11 +2531,11 @@ reinterpretAsUUID(fixed_string) **Arguments** -- `fixed_string` — Big-endian byte string. [`FixedString`](/reference/data-types/fixedstring) +- `fixed_string` — Big-endian byte string. [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -The UUID type value. [`UUID`](/reference/data-types/uuid) +The UUID type value. [`UUID`](/core/reference/data-types/uuid) **Examples** @@ -2571,11 +2571,11 @@ toBFloat16(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 16-bit brain-float value. [`BFloat16`](/reference/data-types/float) +Returns a 16-bit brain-float value. [`BFloat16`](/core/reference/data-types/float) **Examples** @@ -2626,11 +2626,11 @@ toBFloat16OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Reurns a 16-bit brain-float value, otherwise `NULL`. [`BFloat16`](/reference/data-types/float) or [`NULL`](/reference/syntax#null) +Reurns a 16-bit brain-float value, otherwise `NULL`. [`BFloat16`](/core/reference/data-types/float) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -2679,11 +2679,11 @@ toBFloat16OrZero(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a 16-bit brain-float value, otherwise `0`. [`BFloat16`](/reference/data-types/float) +Returns a 16-bit brain-float value, otherwise `0`. [`BFloat16`](/core/reference/data-types/float) **Examples** @@ -2716,11 +2716,11 @@ toBool(expr) **Arguments** -- `expr` — Expression returning a number or a string. For strings, accepts 'true' or 'false' (case-insensitive). [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) or [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string. For strings, accepts 'true' or 'false' (case-insensitive). [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) or [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns `true` or `false` based on evaluation of the argument. [`Bool`](/reference/data-types/boolean) +Returns `true` or `false` based on evaluation of the argument. [`Bool`](/core/reference/data-types/boolean) **Examples** @@ -2750,7 +2750,7 @@ toBool('FALSE'): false Introduced in: v1.1.0 -Converts an input value to type [`Date`](/reference/data-types/date). +Converts an input value to type [`Date`](/core/reference/data-types/date). Supports conversion from String, FixedString, DateTime, or numeric types. @@ -2762,11 +2762,11 @@ toDate(x) **Arguments** -- `x` — Input value to convert. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`DateTime`](/reference/data-types/datetime) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x` — Input value to convert. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`DateTime`](/core/reference/data-types/datetime) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the converted input value. [`Date`](/reference/data-types/date) +Returns the converted input value. [`Date`](/core/reference/data-types/date) **Examples** @@ -2804,9 +2804,9 @@ SELECT toDate(20297) Introduced in: v21.9.0 -Converts the argument to the [Date32](/reference/data-types/date32) data type. -If the value is outside the range, `toDate32` returns the border values supported by [Date32](/reference/data-types/date32). -If the argument is of type [`Date`](/reference/data-types/date), it's bounds are taken into account. +Converts the argument to the [Date32](/core/reference/data-types/date32) data type. +If the value is outside the range, `toDate32` returns the border values supported by [Date32](/core/reference/data-types/date32). +If the argument is of type [`Date`](/core/reference/data-types/date), it's bounds are taken into account. **Syntax** @@ -2817,11 +2817,11 @@ toDate32(expr) **Arguments** -- `expr` — The value to convert. [`String`](/reference/data-types/string) or [`UInt32`](/reference/data-types/int-uint) or [`Date`](/reference/data-types/date) +- `expr` — The value to convert. [`String`](/core/reference/data-types/string) or [`UInt32`](/core/reference/data-types/int-uint) or [`Date`](/core/reference/data-types/date) **Returned value** -Returns a calendar date. [`Date32`](/reference/data-types/date32) +Returns a calendar date. [`Date32`](/core/reference/data-types/date32) **Examples** @@ -2857,7 +2857,7 @@ toTypeName(value): Date32 Introduced in: v21.11.0 -Converts the argument to the [Date32](/reference/data-types/date32) data type. If the value is outside the range, `toDate32OrDefault` returns the lower border value supported by [Date32](/reference/data-types/date32). If the argument has [Date](/reference/data-types/date) type, it's borders are taken into account. Returns default value if an invalid argument is received. +Converts the argument to the [Date32](/core/reference/data-types/date32) data type. If the value is outside the range, `toDate32OrDefault` returns the lower border value supported by [Date32](/core/reference/data-types/date32). If the argument has [Date](/core/reference/data-types/date) type, it's borders are taken into account. Returns default value if an invalid argument is received. **Syntax** @@ -2868,12 +2868,12 @@ toDate32OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`Date32`](/reference/data-types/date32) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`Date32`](/core/reference/data-types/date32) **Returned value** -Value of type Date32 if successful, otherwise returns the default value if passed or 1900-01-01 if not. [`Date32`](/reference/data-types/date32) +Value of type Date32 if successful, otherwise returns the default value if passed or 1900-01-01 if not. [`Date32`](/core/reference/data-types/date32) **Examples** @@ -2913,11 +2913,11 @@ toDate32OrNull(x) **Arguments** -- `x` — A string representation of a date. [`String`](/reference/data-types/string) +- `x` — A string representation of a date. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Date32 value if successful, otherwise `NULL`. [`Date32`](/reference/data-types/date32) or [`NULL`](/reference/syntax#null) +Returns a Date32 value if successful, otherwise `NULL`. [`Date32`](/core/reference/data-types/date32) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -2937,8 +2937,8 @@ SELECT toDate32OrNull('2025-01-01'), toDate32OrNull('invalid') Introduced in: v21.9.0 -Converts an input value to a value of type [Date32](/reference/data-types/date32) but returns the lower boundary of [Date32](/reference/data-types/date32) if an invalid argument is received. -The same as [toDate32](#toDate32) but returns lower boundary of [Date32](/reference/data-types/date32) if an invalid argument is received. +Converts an input value to a value of type [Date32](/core/reference/data-types/date32) but returns the lower boundary of [Date32](/core/reference/data-types/date32) if an invalid argument is received. +The same as [toDate32](#toDate32) but returns lower boundary of [Date32](/core/reference/data-types/date32) if an invalid argument is received. See also: - [`toDate32`](#toDate32) @@ -2954,11 +2954,11 @@ toDate32OrZero(x) **Arguments** -- `x` — A string representation of a date. [`String`](/reference/data-types/string) +- `x` — A string representation of a date. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Date32 value if successful, otherwise the lower boundary of Date32 (`1900-01-01`). [`Date32`](/reference/data-types/date32) +Returns a Date32 value if successful, otherwise the lower boundary of Date32 (`1900-01-01`). [`Date32`](/core/reference/data-types/date32) **Examples** @@ -2978,7 +2978,7 @@ SELECT toDate32OrZero('2025-01-01'), toDate32OrZero('') Introduced in: v21.11.0 -Like [toDate](#toDate) but if unsuccessful, returns a default value which is either the second argument (if specified), or otherwise the lower boundary of [Date](/reference/data-types/date). +Like [toDate](#toDate) but if unsuccessful, returns a default value which is either the second argument (if specified), or otherwise the lower boundary of [Date](/core/reference/data-types/date). **Syntax** @@ -2989,12 +2989,12 @@ toDateOrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`Date`](/reference/data-types/date) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`Date`](/core/reference/data-types/date) **Returned value** -Value of type Date if successful, otherwise returns the default value if passed or 1970-01-01 if not. [`Date`](/reference/data-types/date) +Value of type Date if successful, otherwise returns the default value if passed or 1970-01-01 if not. [`Date`](/core/reference/data-types/date) **Examples** @@ -3034,11 +3034,11 @@ toDateOrNull(x) **Arguments** -- `x` — A string representation of a date. [`String`](/reference/data-types/string) +- `x` — A string representation of a date. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Date value if successful, otherwise `NULL`. [`Date`](/reference/data-types/date) or [`NULL`](/reference/syntax#null) +Returns a Date value if successful, otherwise `NULL`. [`Date`](/core/reference/data-types/date) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -3058,8 +3058,8 @@ SELECT toDateOrNull('2025-12-30'), toDateOrNull('invalid') Introduced in: v1.1.0 -Converts an input value to a value of type [`Date`](/reference/data-types/date) but returns the lower boundary of [`Date`](/reference/data-types/date) if an invalid argument is received. -The same as [toDate](#toDate) but returns lower boundary of [`Date`](/reference/data-types/date) if an invalid argument is received. +Converts an input value to a value of type [`Date`](/core/reference/data-types/date) but returns the lower boundary of [`Date`](/core/reference/data-types/date) if an invalid argument is received. +The same as [toDate](#toDate) but returns lower boundary of [`Date`](/core/reference/data-types/date) if an invalid argument is received. See also: - [`toDate`](#toDate) @@ -3075,11 +3075,11 @@ toDateOrZero(x) **Arguments** -- `x` — A string representation of a date. [`String`](/reference/data-types/string) +- `x` — A string representation of a date. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Date value if successful, otherwise the lower boundary of Date (`1970-01-01`). [`Date`](/reference/data-types/date) +Returns a Date value if successful, otherwise the lower boundary of Date (`1970-01-01`). [`Date`](/core/reference/data-types/date) **Examples** @@ -3099,11 +3099,11 @@ SELECT toDateOrZero('2025-12-30'), toDateOrZero('') Introduced in: v1.1.0 -Converts an input value to type [DateTime](/reference/data-types/datetime). +Converts an input value to type [DateTime](/core/reference/data-types/datetime). If `expr` is a number, it is interpreted as the number of seconds since the beginning of the Unix Epoch (as Unix timestamp). -If `expr` is a [String](/reference/data-types/string), it may be interpreted as a Unix timestamp or as a string representation of date / date with time. +If `expr` is a [String](/core/reference/data-types/string), it may be interpreted as a Unix timestamp or as a string representation of date / date with time. Thus, parsing of short numbers' string representations (up to 4 digits) is explicitly disabled due to ambiguity, e.g. a string `'1999'` may be both a year (an incomplete string representation of Date / DateTime) or a unix timestamp. Longer numeric strings are allowed. @@ -3116,12 +3116,12 @@ toDateTime(expr[, time_zone]) **Arguments** -- `expr` — The value. [`String`](/reference/data-types/string) or [`Int`](/reference/data-types/int-uint) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) -- `time_zone` — Time zone. [`String`](/reference/data-types/string) +- `expr` — The value. [`String`](/core/reference/data-types/string) or [`Int`](/core/reference/data-types/int-uint) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) +- `time_zone` — Time zone. [`String`](/core/reference/data-types/string) **Returned value** -Returns a date time. [`DateTime`](/reference/data-types/datetime) +Returns a date time. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -3156,12 +3156,12 @@ toDateTime32(x[, timezone]) **Arguments** -- `x` — Input value to convert. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`DateTime64`](/reference/data-types/datetime64) -- `timezone` — Optional. Timezone for the returned `DateTime` value. [`String`](/reference/data-types/string) +- `x` — Input value to convert. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`DateTime64`](/core/reference/data-types/datetime64) +- `timezone` — Optional. Timezone for the returned `DateTime` value. [`String`](/core/reference/data-types/string) **Returned value** -Returns the converted input value. [`DateTime`](/reference/data-types/datetime) +Returns the converted input value. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -3210,7 +3210,7 @@ SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeN Introduced in: v20.1.0 -Converts an input value to a value of type [`DateTime64`](/reference/data-types/datetime64). +Converts an input value to a value of type [`DateTime64`](/core/reference/data-types/datetime64). **Syntax** @@ -3221,13 +3221,13 @@ toDateTime64(expr, scale[, timezone]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `scale` — Tick size (precision): 10^(-scale) seconds. [`UInt8`](/reference/data-types/int-uint) -- `timezone` — Optional. Time zone for the specified `DateTime64` object. [`String`](/reference/data-types/string) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `scale` — Tick size (precision): 10^(-scale) seconds. [`UInt8`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Time zone for the specified `DateTime64` object. [`String`](/core/reference/data-types/string) **Returned value** -Returns a calendar date and time of day, with sub-second precision. [`DateTime64`](/reference/data-types/datetime64) +Returns a calendar date and time of day, with sub-second precision. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -3273,8 +3273,8 @@ SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeN Introduced in: v21.11.0 -Like [toDateTime64](#toDateTime64), this function converts an input value to a value of type [DateTime64](/reference/data-types/datetime64), -but returns either the default value of [DateTime64](/reference/data-types/datetime64) +Like [toDateTime64](#toDateTime64), this function converts an input value to a value of type [DateTime64](/core/reference/data-types/datetime64), +but returns either the default value of [DateTime64](/core/reference/data-types/datetime64) or the provided default if an invalid argument is received. @@ -3286,14 +3286,14 @@ toDateTime64OrDefault(expr, scale[, timezone, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `scale` — Tick size (precision): 10^-precision seconds. [`UInt8`](/reference/data-types/int-uint) -- `timezone` — Optional. Time zone. [`String`](/reference/data-types/string) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`DateTime64`](/reference/data-types/datetime64) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `scale` — Tick size (precision): 10^-precision seconds. [`UInt8`](/core/reference/data-types/int-uint) +- `timezone` — Optional. Time zone. [`String`](/core/reference/data-types/string) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Value of type DateTime64 if successful, otherwise returns the default value if passed or 1970-01-01 00:00:00.000 if not. [`DateTime64`](/reference/data-types/datetime64) +Value of type DateTime64 if successful, otherwise returns the default value if passed or 1970-01-01 00:00:00.000 if not. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -3333,11 +3333,11 @@ toDateTime64OrNull(x) **Arguments** -- `x` — A string representation of a date with time and subsecond precision. [`String`](/reference/data-types/string) +- `x` — A string representation of a date with time and subsecond precision. [`String`](/core/reference/data-types/string) **Returned value** -Returns a DateTime64 value if successful, otherwise `NULL`. [`DateTime64`](/reference/data-types/datetime64) or [`NULL`](/reference/syntax#null) +Returns a DateTime64 value if successful, otherwise `NULL`. [`DateTime64`](/core/reference/data-types/datetime64) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -3357,8 +3357,8 @@ SELECT toDateTime64OrNull('2025-12-30 13:44:17.123'), toDateTime64OrNull('invali Introduced in: v20.1.0 -Converts an input value to a value of type [DateTime64](/reference/data-types/datetime64) but returns the lower boundary of [DateTime64](/reference/data-types/datetime64) if an invalid argument is received. -The same as [toDateTime64](#toDateTime64) but returns lower boundary of [DateTime64](/reference/data-types/datetime64) if an invalid argument is received. +Converts an input value to a value of type [DateTime64](/core/reference/data-types/datetime64) but returns the lower boundary of [DateTime64](/core/reference/data-types/datetime64) if an invalid argument is received. +The same as [toDateTime64](#toDateTime64) but returns lower boundary of [DateTime64](/core/reference/data-types/datetime64) if an invalid argument is received. See also: - [toDateTime64](#toDateTime64). @@ -3374,11 +3374,11 @@ toDateTime64OrZero(x) **Arguments** -- `x` — A string representation of a date with time and subsecond precision. [`String`](/reference/data-types/string) +- `x` — A string representation of a date with time and subsecond precision. [`String`](/core/reference/data-types/string) **Returned value** -Returns a DateTime64 value if successful, otherwise the lower boundary of DateTime64 (`1970-01-01 00:00:00.000`). [`DateTime64`](/reference/data-types/datetime64) +Returns a DateTime64 value if successful, otherwise the lower boundary of DateTime64 (`1970-01-01 00:00:00.000`). [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -3398,7 +3398,7 @@ SELECT toDateTime64OrZero('2025-12-30 13:44:17.123'), toDateTime64OrZero('invali Introduced in: v21.11.0 -Like [toDateTime](#toDateTime) but if unsuccessful, returns a default value which is either the third argument (if specified), or otherwise the lower boundary of [DateTime](/reference/data-types/datetime). +Like [toDateTime](#toDateTime) but if unsuccessful, returns a default value which is either the third argument (if specified), or otherwise the lower boundary of [DateTime](/core/reference/data-types/datetime). **Syntax** @@ -3409,13 +3409,13 @@ toDateTimeOrDefault(expr[, timezone, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `timezone` — Optional. Time zone. [`String`](/reference/data-types/string) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`DateTime`](/reference/data-types/datetime) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `timezone` — Optional. Time zone. [`String`](/core/reference/data-types/string) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Value of type DateTime if successful, otherwise returns the default value if passed or 1970-01-01 00:00:00 if not. [`DateTime`](/reference/data-types/datetime) +Value of type DateTime if successful, otherwise returns the default value if passed or 1970-01-01 00:00:00 if not. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -3455,11 +3455,11 @@ toDateTimeOrNull(x) **Arguments** -- `x` — A string representation of a date with time. [`String`](/reference/data-types/string) +- `x` — A string representation of a date with time. [`String`](/core/reference/data-types/string) **Returned value** -Returns a `DateTime` value if successful, otherwise `NULL`. [`DateTime`](/reference/data-types/datetime) or [`NULL`](/reference/syntax#null) +Returns a `DateTime` value if successful, otherwise `NULL`. [`DateTime`](/core/reference/data-types/datetime) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -3479,8 +3479,8 @@ SELECT toDateTimeOrNull('2025-12-30 13:44:17'), toDateTimeOrNull('invalid') Introduced in: v1.1.0 -Converts an input value to a value of type [DateTime](/reference/data-types/datetime) but returns the lower boundary of [DateTime](/reference/data-types/datetime) if an invalid argument is received. -The same as [toDateTime](#toDateTime) but returns lower boundary of [DateTime](/reference/data-types/datetime) if an invalid argument is received. +Converts an input value to a value of type [DateTime](/core/reference/data-types/datetime) but returns the lower boundary of [DateTime](/core/reference/data-types/datetime) if an invalid argument is received. +The same as [toDateTime](#toDateTime) but returns lower boundary of [DateTime](/core/reference/data-types/datetime) if an invalid argument is received. **Syntax** @@ -3491,11 +3491,11 @@ toDateTimeOrZero(x) **Arguments** -- `x` — A string representation of a date with time. [`String`](/reference/data-types/string) +- `x` — A string representation of a date with time. [`String`](/core/reference/data-types/string) **Returned value** -Returns a DateTime value if successful, otherwise the lower boundary of DateTime (`1970-01-01 00:00:00`). [`DateTime`](/reference/data-types/datetime) +Returns a DateTime value if successful, otherwise the lower boundary of DateTime (`1970-01-01 00:00:00`). [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -3515,7 +3515,7 @@ SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid') Introduced in: v18.12.0 -Converts an input value to a value of type [`Decimal(38, S)`](/reference/data-types/decimal) with scale of `S`. +Converts an input value to a value of type [`Decimal(38, S)`](/core/reference/data-types/decimal) with scale of `S`. Throws an exception in case of an error. Supported arguments: @@ -3547,12 +3547,12 @@ toDecimal128(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type `Decimal(38, S)` [`Decimal128(S)`](/reference/data-types/decimal) +Returns a value of type `Decimal(38, S)` [`Decimal128(S)`](/core/reference/data-types/decimal) **Examples** @@ -3581,7 +3581,7 @@ type_c: Decimal(38, 3) Introduced in: v21.11.0 -Like [`toDecimal128`](#toDecimal128), this function converts an input value to a value of type [Decimal(38, S)](/reference/data-types/decimal) but returns the default value in case of an error. +Like [`toDecimal128`](#toDecimal128), this function converts an input value to a value of type [Decimal(38, S)](/core/reference/data-types/decimal) but returns the default value in case of an error. **Syntax** @@ -3592,13 +3592,13 @@ toDecimal128OrDefault(expr, S[, default]) **Arguments** -- `expr` — A String representation of a number. [`String`](/reference/data-types/string) -- `S` — Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) -- `default` — Optional. The default value to return if parsing to type Decimal128(S) is unsuccessful. [`Decimal128(S)`](/reference/data-types/decimal) +- `expr` — A String representation of a number. [`String`](/core/reference/data-types/string) +- `S` — Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) +- `default` — Optional. The default value to return if parsing to type Decimal128(S) is unsuccessful. [`Decimal128(S)`](/core/reference/data-types/decimal) **Returned value** -Value of type Decimal(38, S) if successful, otherwise returns the default value if passed or 0 if not. [`Decimal128(S)`](/reference/data-types/decimal) +Value of type Decimal(38, S) if successful, otherwise returns the default value if passed or 0 if not. [`Decimal128(S)`](/core/reference/data-types/decimal) **Examples** @@ -3626,7 +3626,7 @@ SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)')) Introduced in: v20.1.0 -Converts an input value to a value of type [`Decimal(38, S)`](/reference/data-types/decimal) but returns `NULL` in case of an error. +Converts an input value to a value of type [`Decimal(38, S)`](/core/reference/data-types/decimal) but returns `NULL` in case of an error. Like [`toDecimal128`](#toDecimal128) but returns `NULL` instead of throwing an exception on conversion errors. Supported arguments: @@ -3652,12 +3652,12 @@ toDecimal128OrNull(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a Decimal(38, S) value if successful, otherwise `NULL`. [`Decimal128(S)`](/reference/data-types/decimal) or [`NULL`](/reference/syntax#null) +Returns a Decimal(38, S) value if successful, otherwise `NULL`. [`Decimal128(S)`](/core/reference/data-types/decimal) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -3677,7 +3677,7 @@ SELECT toDecimal128OrNull('42.7', 2), toDecimal128OrNull('invalid', 2) Introduced in: v20.1.0 -Converts an input value to a value of type [Decimal(38, S)](/reference/data-types/decimal) but returns `0` in case of an error. +Converts an input value to a value of type [Decimal(38, S)](/core/reference/data-types/decimal) but returns `0` in case of an error. Like [`toDecimal128`](#toDecimal128) but returns `0` instead of throwing an exception on conversion errors. Supported arguments: @@ -3701,12 +3701,12 @@ toDecimal128OrZero(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a Decimal(38, S) value if successful, otherwise `0`. [`Decimal128(S)`](/reference/data-types/decimal) +Returns a Decimal(38, S) value if successful, otherwise `0`. [`Decimal128(S)`](/core/reference/data-types/decimal) **Examples** @@ -3726,7 +3726,7 @@ SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2) Introduced in: v20.8.0 -Converts an input value to a value of type [`Decimal(76, S)`](/reference/data-types/decimal) with scale of `S`. Throws an exception in case of an error. +Converts an input value to a value of type [`Decimal(76, S)`](/core/reference/data-types/decimal) with scale of `S`. Throws an exception in case of an error. Supported arguments: - Values or string representations of type (U)Int*. @@ -3757,12 +3757,12 @@ toDecimal256(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type `Decimal(76, S)`. [`Decimal256(S)`](/reference/data-types/decimal) +Returns a value of type `Decimal(76, S)`. [`Decimal256(S)`](/core/reference/data-types/decimal) **Examples** @@ -3791,7 +3791,7 @@ type_c: Decimal(76, 3) Introduced in: v21.11.0 -Like [`toDecimal256`](#toDecimal256), this function converts an input value to a value of type [Decimal(76, S)](/reference/data-types/decimal) but returns the default value in case of an error. +Like [`toDecimal256`](#toDecimal256), this function converts an input value to a value of type [Decimal(76, S)](/core/reference/data-types/decimal) but returns the default value in case of an error. **Syntax** @@ -3802,13 +3802,13 @@ toDecimal256OrDefault(expr, S[, default]) **Arguments** -- `expr` — A String representation of a number. [`String`](/reference/data-types/string) -- `S` — Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) -- `default` — Optional. The default value to return if parsing to type Decimal256(S) is unsuccessful. [`Decimal256(S)`](/reference/data-types/decimal) +- `expr` — A String representation of a number. [`String`](/core/reference/data-types/string) +- `S` — Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) +- `default` — Optional. The default value to return if parsing to type Decimal256(S) is unsuccessful. [`Decimal256(S)`](/core/reference/data-types/decimal) **Returned value** -Value of type Decimal(76, S) if successful, otherwise returns the default value if passed or 0 if not. [`Decimal256(S)`](/reference/data-types/decimal) +Value of type Decimal(76, S) if successful, otherwise returns the default value if passed or 0 if not. [`Decimal256(S)`](/core/reference/data-types/decimal) **Examples** @@ -3836,7 +3836,7 @@ SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)')) Introduced in: v20.8.0 -Converts an input value to a value of type [`Decimal(76, S)`](/reference/data-types/decimal) but returns `NULL` in case of an error. +Converts an input value to a value of type [`Decimal(76, S)`](/core/reference/data-types/decimal) but returns `NULL` in case of an error. Like [`toDecimal256`](#toDecimal256) but returns `NULL` instead of throwing an exception on conversion errors. Supported arguments: @@ -3862,12 +3862,12 @@ toDecimal256OrNull(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a Decimal(76, S) value if successful, otherwise `NULL`. [`Decimal256(S)`](/reference/data-types/decimal) or [`NULL`](/reference/syntax#null) +Returns a Decimal(76, S) value if successful, otherwise `NULL`. [`Decimal256(S)`](/core/reference/data-types/decimal) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -3887,7 +3887,7 @@ SELECT toDecimal256OrNull('42.7', 2), toDecimal256OrNull('invalid', 2) Introduced in: v20.8.0 -Converts an input value to a value of type [Decimal(76, S)](/reference/data-types/decimal) but returns `0` in case of an error. +Converts an input value to a value of type [Decimal(76, S)](/core/reference/data-types/decimal) but returns `0` in case of an error. Like [`toDecimal256`](#toDecimal256) but returns `0` instead of throwing an exception on conversion errors. Supported arguments: @@ -3916,12 +3916,12 @@ toDecimal256OrZero(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a Decimal(76, S) value if successful, otherwise `0`. [`Decimal256(S)`](/reference/data-types/decimal) +Returns a Decimal(76, S) value if successful, otherwise `0`. [`Decimal256(S)`](/core/reference/data-types/decimal) **Examples** @@ -3941,7 +3941,7 @@ SELECT toDecimal256OrZero('42.7', 2), toDecimal256OrZero('invalid', 2) Introduced in: v18.12.0 -Converts an input value to a value of type [`Decimal(9, S)`](/reference/data-types/decimal) with scale of `S`. Throws an exception in case of an error. +Converts an input value to a value of type [`Decimal(9, S)`](/core/reference/data-types/decimal) with scale of `S`. Throws an exception in case of an error. Supported arguments: - Values or string representations of type (U)Int*. @@ -3972,12 +3972,12 @@ toDecimal32(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type `Decimal(9, S)` [`Decimal32(S)`](/reference/data-types/decimal) +Returns a value of type `Decimal(9, S)` [`Decimal32(S)`](/core/reference/data-types/decimal) **Examples** @@ -4006,7 +4006,7 @@ type_c: Decimal(9, 3) Introduced in: v21.11.0 -Like [`toDecimal32`](#toDecimal32), this function converts an input value to a value of type [Decimal(9, S)](/reference/data-types/decimal) but returns the default value in case of an error. +Like [`toDecimal32`](#toDecimal32), this function converts an input value to a value of type [Decimal(9, S)](/core/reference/data-types/decimal) but returns the default value in case of an error. **Syntax** @@ -4017,13 +4017,13 @@ toDecimal32OrDefault(expr, S[, default]) **Arguments** -- `expr` — A String representation of a number. [`String`](/reference/data-types/string) -- `S` — Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) -- `default` — Optional. The default value to return if parsing to type Decimal32(S) is unsuccessful. [`Decimal32(S)`](/reference/data-types/decimal) +- `expr` — A String representation of a number. [`String`](/core/reference/data-types/string) +- `S` — Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) +- `default` — Optional. The default value to return if parsing to type Decimal32(S) is unsuccessful. [`Decimal32(S)`](/core/reference/data-types/decimal) **Returned value** -Value of type Decimal(9, S) if successful, otherwise returns the default value if passed or 0 if not. [`Decimal32(S)`](/reference/data-types/decimal) +Value of type Decimal(9, S) if successful, otherwise returns the default value if passed or 0 if not. [`Decimal32(S)`](/core/reference/data-types/decimal) **Examples** @@ -4051,7 +4051,7 @@ SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)')) Introduced in: v20.1.0 -Converts an input value to a value of type [`Decimal(9, S)`](/reference/data-types/decimal) but returns `NULL` in case of an error. +Converts an input value to a value of type [`Decimal(9, S)`](/core/reference/data-types/decimal) but returns `NULL` in case of an error. Like [`toDecimal32`](#toDecimal32) but returns `NULL` instead of throwing an exception on conversion errors. Supported arguments: @@ -4077,12 +4077,12 @@ toDecimal32OrNull(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a Decimal(9, S) value if successful, otherwise `NULL`. [`Decimal32(S)`](/reference/data-types/decimal) or [`NULL`](/reference/syntax#null) +Returns a Decimal(9, S) value if successful, otherwise `NULL`. [`Decimal32(S)`](/core/reference/data-types/decimal) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -4102,7 +4102,7 @@ SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2) Introduced in: v20.1.0 -Converts an input value to a value of type [Decimal(9, S)](/reference/data-types/decimal) but returns `0` in case of an error. +Converts an input value to a value of type [Decimal(9, S)](/core/reference/data-types/decimal) but returns `0` in case of an error. Like [`toDecimal32`](#toDecimal32) but returns `0` instead of throwing an exception on conversion errors. Supported arguments: @@ -4126,12 +4126,12 @@ toDecimal32OrZero(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a Decimal(9, S) value if successful, otherwise `0`. [`Decimal32(S)`](/reference/data-types/decimal) +Returns a Decimal(9, S) value if successful, otherwise `0`. [`Decimal32(S)`](/core/reference/data-types/decimal) **Examples** @@ -4151,7 +4151,7 @@ SELECT toDecimal32OrZero('42.7', 2), toDecimal32OrZero('invalid', 2) Introduced in: v18.12.0 -Converts an input value to a value of type [`Decimal(18, S)`](/reference/data-types/decimal) with scale of `S`. +Converts an input value to a value of type [`Decimal(18, S)`](/core/reference/data-types/decimal) with scale of `S`. Throws an exception in case of an error. Supported arguments: @@ -4183,12 +4183,12 @@ toDecimal64(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a decimal value. [`Decimal(18, S)`](/reference/data-types/decimal) +Returns a decimal value. [`Decimal(18, S)`](/core/reference/data-types/decimal) **Examples** @@ -4217,7 +4217,7 @@ type_c: Decimal(18, 3) Introduced in: v21.11.0 -Like [`toDecimal64`](#toDecimal64), this function converts an input value to a value of type [Decimal(18, S)](/reference/data-types/decimal) but returns the default value in case of an error. +Like [`toDecimal64`](#toDecimal64), this function converts an input value to a value of type [Decimal(18, S)](/core/reference/data-types/decimal) but returns the default value in case of an error. **Syntax** @@ -4228,13 +4228,13 @@ toDecimal64OrDefault(expr, S[, default]) **Arguments** -- `expr` — A String representation of a number. [`String`](/reference/data-types/string) -- `S` — Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) -- `default` — Optional. The default value to return if parsing to type Decimal64(S) is unsuccessful. [`Decimal64(S)`](/reference/data-types/decimal) +- `expr` — A String representation of a number. [`String`](/core/reference/data-types/string) +- `S` — Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) +- `default` — Optional. The default value to return if parsing to type Decimal64(S) is unsuccessful. [`Decimal64(S)`](/core/reference/data-types/decimal) **Returned value** -Value of type Decimal(18, S) if successful, otherwise returns the default value if passed or 0 if not. [`Decimal64(S)`](/reference/data-types/decimal) +Value of type Decimal(18, S) if successful, otherwise returns the default value if passed or 0 if not. [`Decimal64(S)`](/core/reference/data-types/decimal) **Examples** @@ -4262,7 +4262,7 @@ SELECT toDecimal64OrDefault('Inf', 0, CAST('-1', 'Decimal64(0)')) Introduced in: v20.1.0 -Converts an input value to a value of type [Decimal(18, S)](/reference/data-types/decimal) but returns `NULL` in case of an error. +Converts an input value to a value of type [Decimal(18, S)](/core/reference/data-types/decimal) but returns `NULL` in case of an error. Like [`toDecimal64`](#toDecimal64) but returns `NULL` instead of throwing an exception on conversion errors. Supported arguments: @@ -4288,12 +4288,12 @@ toDecimal64OrNull(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a Decimal(18, S) value if successful, otherwise `NULL`. [`Decimal64(S)`](/reference/data-types/decimal) or [`NULL`](/reference/syntax#null) +Returns a Decimal(18, S) value if successful, otherwise `NULL`. [`Decimal64(S)`](/core/reference/data-types/decimal) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -4313,7 +4313,7 @@ SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2) Introduced in: v20.1.0 -Converts an input value to a value of type [Decimal(18, S)](/reference/data-types/decimal) but returns `0` in case of an error. +Converts an input value to a value of type [Decimal(18, S)](/core/reference/data-types/decimal) but returns `0` in case of an error. Like [`toDecimal64`](#toDecimal64) but returns `0` instead of throwing an exception on conversion errors. Supported arguments: @@ -4342,12 +4342,12 @@ toDecimal64OrZero(expr, S) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) -- `S` — Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) +- `S` — Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a Decimal(18, S) value if successful, otherwise `0`. [`Decimal64(S)`](/reference/data-types/decimal) +Returns a Decimal(18, S) value if successful, otherwise `0`. [`Decimal64(S)`](/core/reference/data-types/decimal) **Examples** @@ -4381,12 +4381,12 @@ toDecimalString(number, scale) **Arguments** -- `number` — The numeric value to convert to a string. Can be any numeric type (Int, UInt, Float, Decimal). [`Int8`](/reference/data-types/int-uint) or [`Int16`](/reference/data-types/int-uint) or [`Int32`](/reference/data-types/int-uint) or [`Int64`](/reference/data-types/int-uint) or [`UInt8`](/reference/data-types/int-uint) or [`UInt16`](/reference/data-types/int-uint) or [`UInt32`](/reference/data-types/int-uint) or [`UInt64`](/reference/data-types/int-uint) or [`Float32`](/reference/data-types/float) or [`Float64`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) -- `scale` — The number of digits to display in the fractional part. The result will be rounded if necessary. [`UInt8`](/reference/data-types/int-uint) +- `number` — The numeric value to convert to a string. Can be any numeric type (Int, UInt, Float, Decimal). [`Int8`](/core/reference/data-types/int-uint) or [`Int16`](/core/reference/data-types/int-uint) or [`Int32`](/core/reference/data-types/int-uint) or [`Int64`](/core/reference/data-types/int-uint) or [`UInt8`](/core/reference/data-types/int-uint) or [`UInt16`](/core/reference/data-types/int-uint) or [`UInt32`](/core/reference/data-types/int-uint) or [`UInt64`](/core/reference/data-types/int-uint) or [`Float32`](/core/reference/data-types/float) or [`Float64`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) +- `scale` — The number of digits to display in the fractional part. The result will be rounded if necessary. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a String representation of the number with exactly the specified number of fractional digits. [`String`](/reference/data-types/string) +Returns a String representation of the number with exactly the specified number of fractional digits. [`String`](/core/reference/data-types/string) **Examples** @@ -4431,7 +4431,7 @@ SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val, Introduced in: v1.1.0 -Converts a [`String`](/reference/data-types/string) argument to a [`FixedString(N)`](/reference/data-types/fixedstring) type (a string of fixed length N). +Converts a [`String`](/core/reference/data-types/string) argument to a [`FixedString(N)`](/core/reference/data-types/fixedstring) type (a string of fixed length N). If the string has fewer bytes than N, it is padded with null bytes to the right. If the string has more bytes than N, an exception is thrown. @@ -4445,12 +4445,12 @@ toFixedString(s, N) **Arguments** -- `s` — String to convert. [`String`](/reference/data-types/string) -- `N` — Length of the resulting FixedString. [`const UInt*`](/reference/data-types/int-uint) +- `s` — String to convert. [`String`](/core/reference/data-types/string) +- `N` — Length of the resulting FixedString. [`const UInt*`](/core/reference/data-types/int-uint) **Returned value** -Returns a FixedString of length N. [`FixedString(N)`](/reference/data-types/fixedstring) +Returns a FixedString of length N. [`FixedString(N)`](/core/reference/data-types/fixedstring) **Examples** @@ -4470,7 +4470,7 @@ SELECT toFixedString('foo', 8) AS s; Introduced in: v1.1.0 -Converts an input value to a value of type [Float32](/reference/data-types/float). +Converts an input value to a value of type [Float32](/core/reference/data-types/float). Throws an exception in case of an error. Supported arguments: @@ -4496,11 +4496,11 @@ toFloat32(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 32-bit floating point value. [`Float32`](/reference/data-types/float) +Returns a 32-bit floating point value. [`Float32`](/core/reference/data-types/float) **Examples** @@ -4526,7 +4526,7 @@ toFloat32('NaN'): nan Introduced in: v21.11.0 -Like [`toFloat32`](#toFloat32), this function converts an input value to a value of type [Float32](/reference/data-types/float) but returns the default value in case of an error. +Like [`toFloat32`](#toFloat32), this function converts an input value to a value of type [Float32](/core/reference/data-types/float) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -4538,12 +4538,12 @@ toFloat32OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`Float32`](/reference/data-types/float) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`Float32`](/core/reference/data-types/float) **Returned value** -Returns a value of type Float32 if successful, otherwise returns the default value if passed or 0 if not. [`Float32`](/reference/data-types/float) +Returns a value of type Float32 if successful, otherwise returns the default value if passed or 0 if not. [`Float32`](/core/reference/data-types/float) **Examples** @@ -4571,7 +4571,7 @@ SELECT toFloat32OrDefault('abc', CAST('0', 'Float32')) Introduced in: v1.1.0 -Converts an input value to a value of type [Float32](/reference/data-types/float) but returns `NULL` in case of an error. +Converts an input value to a value of type [Float32](/core/reference/data-types/float) but returns `NULL` in case of an error. Like [`toFloat32`](#toFloat32) but returns `NULL` instead of throwing an exception on conversion errors. Supported arguments: @@ -4598,11 +4598,11 @@ toFloat32OrNull(x) **Arguments** -- `x` — A string representation of a number. [`String`](/reference/data-types/string) +- `x` — A string representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a 32-bit Float value if successful, otherwise `NULL`. [`Float32`](/reference/data-types/float) or [`NULL`](/reference/syntax#null) +Returns a 32-bit Float value if successful, otherwise `NULL`. [`Float32`](/core/reference/data-types/float) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -4628,7 +4628,7 @@ toFloat32OrNull('abc'): \N Introduced in: v1.1.0 -Converts an input value to a value of type [Float32](/reference/data-types/float) but returns `0` in case of an error. +Converts an input value to a value of type [Float32](/core/reference/data-types/float) but returns `0` in case of an error. Like [`toFloat32`](#toFloat32) but returns `0` instead of throwing an exception on conversion errors. See also: @@ -4645,11 +4645,11 @@ toFloat32OrZero(x) **Arguments** -- `x` — A string representation of a number. [`String`](/reference/data-types/string) +- `x` — A string representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a 32-bit Float value if successful, otherwise `0`. [`Float32`](/reference/data-types/float) +Returns a 32-bit Float value if successful, otherwise `0`. [`Float32`](/core/reference/data-types/float) **Examples** @@ -4673,7 +4673,7 @@ toFloat32OrZero('abc'): 0 Introduced in: v1.1.0 -Converts an input value to a value of type [`Float64`](/reference/data-types/float). +Converts an input value to a value of type [`Float64`](/core/reference/data-types/float). Throws an exception in case of an error. Supported arguments: @@ -4699,11 +4699,11 @@ toFloat64(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 64-bit floating point value. [`Float64`](/reference/data-types/float) +Returns a 64-bit floating point value. [`Float64`](/core/reference/data-types/float) **Examples** @@ -4729,7 +4729,7 @@ toFloat64('NaN'): nan Introduced in: v21.11.0 -Like [`toFloat64`](#toFloat64), this function converts an input value to a value of type [Float64](/reference/data-types/float) but returns the default value in case of an error. +Like [`toFloat64`](#toFloat64), this function converts an input value to a value of type [Float64](/core/reference/data-types/float) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -4741,12 +4741,12 @@ toFloat64OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`Float64`](/reference/data-types/float) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`Float64`](/core/reference/data-types/float) **Returned value** -Returns a value of type Float64 if successful, otherwise returns the default value if passed or 0 if not. [`Float64`](/reference/data-types/float) +Returns a value of type Float64 if successful, otherwise returns the default value if passed or 0 if not. [`Float64`](/core/reference/data-types/float) **Examples** @@ -4774,7 +4774,7 @@ SELECT toFloat64OrDefault('abc', CAST('0', 'Float64')) Introduced in: v1.1.0 -Converts an input value to a value of type [Float64](/reference/data-types/float) but returns `NULL` in case of an error. +Converts an input value to a value of type [Float64](/core/reference/data-types/float) but returns `NULL` in case of an error. Like [`toFloat64`](#toFloat64) but returns `NULL` instead of throwing an exception on conversion errors. Supported arguments: @@ -4801,11 +4801,11 @@ toFloat64OrNull(x) **Arguments** -- `x` — A string representation of a number. [`String`](/reference/data-types/string) +- `x` — A string representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a 64-bit Float value if successful, otherwise `NULL`. [`Float64`](/reference/data-types/float) or [`NULL`](/reference/syntax#null) +Returns a 64-bit Float value if successful, otherwise `NULL`. [`Float64`](/core/reference/data-types/float) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -4831,7 +4831,7 @@ toFloat64OrNull('abc'): \N Introduced in: v1.1.0 -Converts an input value to a value of type [Float64](/reference/data-types/float) but returns `0` in case of an error. +Converts an input value to a value of type [Float64](/core/reference/data-types/float) but returns `0` in case of an error. Like [`toFloat64`](#toFloat64) but returns `0` instead of throwing an exception on conversion errors. See also: @@ -4848,11 +4848,11 @@ toFloat64OrZero(x) **Arguments** -- `x` — A string representation of a number. [`String`](/reference/data-types/string) +- `x` — A string representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a 64-bit Float value if successful, otherwise `0`. [`Float64`](/reference/data-types/float) +Returns a 64-bit Float value if successful, otherwise `0`. [`Float64`](/core/reference/data-types/float) **Examples** @@ -4876,7 +4876,7 @@ toFloat64OrZero('abc'): 0 Introduced in: v1.1.0 -Converts an input value to a value of type [Int128](/reference/data-types/int-uint). +Converts an input value to a value of type [Int128](/core/reference/data-types/int-uint). Throws an exception in case of an error. The function uses rounding towards zero, meaning it truncates fractional digits of numbers. @@ -4907,11 +4907,11 @@ toInt128(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 128-bit integer value. [`Int128`](/reference/data-types/int-uint) +Returns a 128-bit integer value. [`Int128`](/core/reference/data-types/int-uint) **Examples** @@ -4937,7 +4937,7 @@ toInt128('-128'): -128 Introduced in: v21.11.0 -Like [`toInt128`](#toInt128), this function converts an input value to a value of type [Int128](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toInt128`](#toInt128), this function converts an input value to a value of type [Int128](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -4949,12 +4949,12 @@ toInt128OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int128`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int128`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type Int128 if successful, otherwise returns the default value if passed, or 0 if not. [`Int128`](/reference/data-types/int-uint) +Returns a value of type Int128 if successful, otherwise returns the default value if passed, or 0 if not. [`Int128`](/core/reference/data-types/int-uint) **Examples** @@ -4982,7 +4982,7 @@ SELECT toInt128OrDefault('abc', CAST('-1', 'Int128')) Introduced in: v20.8.0 -Like [`toInt128`](#toInt128), this function converts an input value to a value of type [Int128](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toInt128`](#toInt128), this function converts an input value to a value of type [Int128](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -4992,7 +4992,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toInt128OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int128](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [Int128](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -5010,11 +5010,11 @@ toInt128OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type Int128, otherwise `NULL` if the conversion is unsuccessful. [`Int128`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type Int128, otherwise `NULL` if the conversion is unsuccessful. [`Int128`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -5038,7 +5038,7 @@ toInt128OrNull('abc'): \N Introduced in: v20.8.0 -Converts an input value to type [Int128](/reference/data-types/int-uint) but returns `0` in case of an error. +Converts an input value to type [Int128](/core/reference/data-types/int-uint) but returns `0` in case of an error. Like [`toInt128`](#toInt128) but returns `0` instead of throwing an exception. See also: @@ -5055,11 +5055,11 @@ toInt128OrZero(x) **Arguments** -- `x` — Input value to convert. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) or [`(U)Int*`](/reference/data-types/int-uint) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `x` — Input value to convert. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns the converted input value, otherwise `0` if conversion fails. [`Int128`](/reference/data-types/int-uint) +Returns the converted input value, otherwise `0` if conversion fails. [`Int128`](/core/reference/data-types/int-uint) **Examples** @@ -5087,7 +5087,7 @@ SELECT toInt128OrZero('abc') Introduced in: v1.1.0 -Converts an input value to a value of type [`Int16`](/reference/data-types/int-uint). +Converts an input value to a value of type [`Int16`](/core/reference/data-types/int-uint). Throws an exception in case of an error. Supported arguments: @@ -5099,7 +5099,7 @@ Unsupported arguments: - String representations of binary and hexadecimal values, e.g. `SELECT toInt16('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int16](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [Int16](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. For example: `SELECT toInt16(32768) == -32768;`. @@ -5122,11 +5122,11 @@ toInt16(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 16-bit integer value. [`Int16`](/reference/data-types/int-uint) +Returns a 16-bit integer value. [`Int16`](/core/reference/data-types/int-uint) **Examples** @@ -5152,7 +5152,7 @@ toInt16('-16'): -16 Introduced in: v21.11.0 -Like [`toInt16`](#toInt16), this function converts an input value to a value of type [Int16](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toInt16`](#toInt16), this function converts an input value to a value of type [Int16](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -5164,12 +5164,12 @@ toInt16OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int16`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int16`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type Int16 if successful, otherwise returns the default value if passed, or 0 if not. [`Int16`](/reference/data-types/int-uint) +Returns a value of type Int16 if successful, otherwise returns the default value if passed, or 0 if not. [`Int16`](/core/reference/data-types/int-uint) **Examples** @@ -5197,7 +5197,7 @@ SELECT toInt16OrDefault('abc', CAST('-1', 'Int16')) Introduced in: v1.1.0 -Like [`toInt16`](#toInt16), this function converts an input value to a value of type [Int16](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toInt16`](#toInt16), this function converts an input value to a value of type [Int16](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -5207,7 +5207,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toInt16OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int16](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [Int16](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -5225,11 +5225,11 @@ toInt16OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type `Int16`, otherwise `NULL` if the conversion is unsuccessful. [`Int16`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type `Int16`, otherwise `NULL` if the conversion is unsuccessful. [`Int16`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -5253,7 +5253,7 @@ toInt16OrNull('abc'): \N Introduced in: v1.1.0 -Like [`toInt16`](#toInt16), this function converts an input value to a value of type [Int16](/reference/data-types/int-uint) but returns `0` in case of an error. +Like [`toInt16`](#toInt16), this function converts an input value to a value of type [Int16](/core/reference/data-types/int-uint) but returns `0` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -5263,7 +5263,7 @@ Unsupported arguments (return `0`): - String representations of binary and hexadecimal values, e.g. `SELECT toInt16OrZero('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int16](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [Int16](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -5281,11 +5281,11 @@ toInt16OrZero(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type Int16, otherwise `0` if the conversion is unsuccessful. [`Int16`](/reference/data-types/int-uint) +Returns a value of type Int16, otherwise `0` if the conversion is unsuccessful. [`Int16`](/core/reference/data-types/int-uint) **Examples** @@ -5309,7 +5309,7 @@ toInt16OrZero('abc'): 0 Introduced in: v1.1.0 -Converts an input value to a value of type [Int256](/reference/data-types/int-uint). +Converts an input value to a value of type [Int256](/core/reference/data-types/int-uint). Throws an exception in case of an error. The function uses rounding towards zero, meaning it truncates fractional digits of numbers. @@ -5340,11 +5340,11 @@ toInt256(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 256-bit integer value. [`Int256`](/reference/data-types/int-uint) +Returns a 256-bit integer value. [`Int256`](/core/reference/data-types/int-uint) **Examples** @@ -5370,7 +5370,7 @@ toInt256('-256'): -256 Introduced in: v21.11.0 -Like [`toInt256`](#toInt256), this function converts an input value to a value of type [Int256](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toInt256`](#toInt256), this function converts an input value to a value of type [Int256](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -5382,12 +5382,12 @@ toInt256OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int256`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int256`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type Int256 if successful, otherwise returns the default value if passed, or 0 if not. [`Int256`](/reference/data-types/int-uint) +Returns a value of type Int256 if successful, otherwise returns the default value if passed, or 0 if not. [`Int256`](/core/reference/data-types/int-uint) **Examples** @@ -5415,7 +5415,7 @@ SELECT toInt256OrDefault('abc', CAST('-1', 'Int256')) Introduced in: v20.8.0 -Like [`toInt256`](#toInt256), this function converts an input value to a value of type [Int256](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toInt256`](#toInt256), this function converts an input value to a value of type [Int256](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -5425,7 +5425,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toInt256OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int256](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [Int256](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -5443,11 +5443,11 @@ toInt256OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type Int256, otherwise `NULL` if the conversion is unsuccessful. [`Int256`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type Int256, otherwise `NULL` if the conversion is unsuccessful. [`Int256`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -5471,7 +5471,7 @@ toInt256OrNull('abc'): \N Introduced in: v20.8.0 -Converts an input value to type [Int256](/reference/data-types/int-uint) but returns `0` in case of an error. +Converts an input value to type [Int256](/core/reference/data-types/int-uint) but returns `0` in case of an error. Like [`toInt256`](#toInt256) but returns `0` instead of throwing an exception. See also: @@ -5488,11 +5488,11 @@ toInt256OrZero(x) **Arguments** -- `x` — Input value to convert. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) or [`(U)Int*`](/reference/data-types/int-uint) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `x` — Input value to convert. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns the converted input value, otherwise `0` if conversion fails. [`Int256`](/reference/data-types/int-uint) +Returns the converted input value, otherwise `0` if conversion fails. [`Int256`](/core/reference/data-types/int-uint) **Examples** @@ -5520,7 +5520,7 @@ SELECT toInt256OrZero('abc') Introduced in: v1.1.0 -Converts an input value to a value of type [`Int32`](/reference/data-types/int-uint). +Converts an input value to a value of type [`Int32`](/core/reference/data-types/int-uint). Throws an exception in case of an error. Supported arguments: @@ -5532,7 +5532,7 @@ Unsupported arguments: - String representations of binary and hexadecimal values, e.g. `SELECT toInt32('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int32](/reference/data-types/int-uint), the result over or under flows. +If the input value cannot be represented within the bounds of [Int32](/core/reference/data-types/int-uint), the result over or under flows. This is not considered an error. For example: `SELECT toInt32(2147483648) == -2147483648;` @@ -5555,11 +5555,11 @@ toInt32(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 32-bit integer value. [`Int32`](/reference/data-types/int-uint) +Returns a 32-bit integer value. [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -5585,7 +5585,7 @@ toInt32('-32'): -32 Introduced in: v21.11.0 -Like [`toInt32`](#toInt32), this function converts an input value to a value of type [Int32](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toInt32`](#toInt32), this function converts an input value to a value of type [Int32](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -5597,12 +5597,12 @@ toInt32OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int32`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int32`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type Int32 if successful, otherwise returns the default value if passed or 0 if not. [`Int32`](/reference/data-types/int-uint) +Returns a value of type Int32 if successful, otherwise returns the default value if passed or 0 if not. [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -5630,7 +5630,7 @@ SELECT toInt32OrDefault('abc', CAST('-1', 'Int32')) Introduced in: v1.1.0 -Like [`toInt32`](#toInt32), this function converts an input value to a value of type [Int32](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toInt32`](#toInt32), this function converts an input value to a value of type [Int32](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -5640,7 +5640,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toInt32OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int32](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [Int32](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -5658,11 +5658,11 @@ toInt32OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type Int32, otherwise `NULL` if the conversion is unsuccessful. [`Int32`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type Int32, otherwise `NULL` if the conversion is unsuccessful. [`Int32`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -5686,7 +5686,7 @@ toInt32OrNull('abc'): \N Introduced in: v1.1.0 -Like [`toInt32`](#toInt32), this function converts an input value to a value of type [Int32](/reference/data-types/int-uint) but returns `0` in case of an error. +Like [`toInt32`](#toInt32), this function converts an input value to a value of type [Int32](/core/reference/data-types/int-uint) but returns `0` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -5696,7 +5696,7 @@ Unsupported arguments (return `0`): - String representations of binary and hexadecimal values, e.g. `SELECT toInt32OrZero('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int32](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [Int32](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -5714,11 +5714,11 @@ toInt32OrZero(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type Int32, otherwise `0` if the conversion is unsuccessful. [`Int32`](/reference/data-types/int-uint) +Returns a value of type Int32, otherwise `0` if the conversion is unsuccessful. [`Int32`](/core/reference/data-types/int-uint) **Examples** @@ -5742,7 +5742,7 @@ toInt32OrZero('abc'): 0 Introduced in: v1.1.0 -Converts an input value to a value of type [`Int64`](/reference/data-types/int-uint). +Converts an input value to a value of type [`Int64`](/core/reference/data-types/int-uint). Throws an exception in case of an error. Supported arguments: @@ -5754,7 +5754,7 @@ Unsupported arguments: - String representations of binary and hexadecimal values, e.g. `SELECT toInt64('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int64](/reference/data-types/int-uint), the result over or under flows. +If the input value cannot be represented within the bounds of [Int64](/core/reference/data-types/int-uint), the result over or under flows. This is not considered an error. For example: `SELECT toInt64(9223372036854775808) == -9223372036854775808;` @@ -5777,11 +5777,11 @@ toInt64(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. Supported: values or string representations of type (U)Int*, values of type Float*. Unsupported: string representations of Float* values including NaN and Inf, string representations of binary and hexadecimal values. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. Supported: values or string representations of type (U)Int*, values of type Float*. Unsupported: string representations of Float* values including NaN and Inf, string representations of binary and hexadecimal values. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 64-bit integer value. [`Int64`](/reference/data-types/int-uint) +Returns a 64-bit integer value. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -5807,7 +5807,7 @@ toInt64('-64'): -64 Introduced in: v21.11.0 -Like [`toInt64`](#toInt64), this function converts an input value to a value of type [Int64](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toInt64`](#toInt64), this function converts an input value to a value of type [Int64](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -5819,12 +5819,12 @@ toInt64OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int64`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int64`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type Int64 if successful, otherwise returns the default value if passed, or 0 if not. [`Int64`](/reference/data-types/int-uint) +Returns a value of type Int64 if successful, otherwise returns the default value if passed, or 0 if not. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -5852,7 +5852,7 @@ SELECT toInt64OrDefault('abc', CAST('-1', 'Int64')) Introduced in: v1.1.0 -Like [`toInt64`](#toInt64), this function converts an input value to a value of type [Int64](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toInt64`](#toInt64), this function converts an input value to a value of type [Int64](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -5862,7 +5862,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toInt64OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int64](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [Int64](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -5880,11 +5880,11 @@ toInt64OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type Int64, otherwise `NULL` if the conversion is unsuccessful. [`Int64`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type Int64, otherwise `NULL` if the conversion is unsuccessful. [`Int64`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -5908,7 +5908,7 @@ toInt64OrNull('abc'): \N Introduced in: v1.1.0 -Converts an input value to type [Int64](/reference/data-types/int-uint) but returns `0` in case of an error. +Converts an input value to type [Int64](/core/reference/data-types/int-uint) but returns `0` in case of an error. Like [`toInt64`](#toInt64) but returns `0` instead of throwing an exception. See also: @@ -5925,11 +5925,11 @@ toInt64OrZero(x) **Arguments** -- `x` — Input value to convert. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Float*`](/reference/data-types/float) or [`Decimal`](/reference/data-types/decimal) or [`(U)Int*`](/reference/data-types/int-uint) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) +- `x` — Input value to convert. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Float*`](/core/reference/data-types/float) or [`Decimal`](/core/reference/data-types/decimal) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns the converted input value, otherwise `0` if conversion fails. [`Int64`](/reference/data-types/int-uint) +Returns the converted input value, otherwise `0` if conversion fails. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -5957,7 +5957,7 @@ SELECT toInt64OrZero('abc') Introduced in: v1.1.0 -Converts an input value to a value of type [`Int8`](/reference/data-types/int-uint). +Converts an input value to a value of type [`Int8`](/core/reference/data-types/int-uint). Throws an exception in case of an error. Supported arguments: @@ -5969,7 +5969,7 @@ Unsupported arguments: - String representations of binary and hexadecimal values, e.g. `SELECT toInt8('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int8](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [Int8](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. For example: `SELECT toInt8(128) == -128;`. @@ -5992,11 +5992,11 @@ toInt8(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns an 8-bit integer value. [`Int8`](/reference/data-types/int-uint) +Returns an 8-bit integer value. [`Int8`](/core/reference/data-types/int-uint) **Examples** @@ -6022,7 +6022,7 @@ toInt8('-8'): -8 Introduced in: v21.11.0 -Like [`toInt8`](#toInt8), this function converts an input value to a value of type [Int8](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toInt8`](#toInt8), this function converts an input value to a value of type [Int8](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -6034,12 +6034,12 @@ toInt8OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`Int8`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type Int8 if successful, otherwise returns the default value if passed, or 0 if not. [`Int8`](/reference/data-types/int-uint) +Returns a value of type Int8 if successful, otherwise returns the default value if passed, or 0 if not. [`Int8`](/core/reference/data-types/int-uint) **Examples** @@ -6067,7 +6067,7 @@ SELECT toInt8OrDefault('abc', CAST('-1', 'Int8')) Introduced in: v1.1.0 -Like [`toInt8`](#toInt8), this function converts an input value to a value of type [Int8](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toInt8`](#toInt8), this function converts an input value to a value of type [Int8](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -6077,7 +6077,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toInt8OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int8](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [Int8](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -6095,11 +6095,11 @@ toInt8OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type Int8, otherwise `NULL` if the conversion is unsuccessful. [`Int8`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type Int8, otherwise `NULL` if the conversion is unsuccessful. [`Int8`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -6123,7 +6123,7 @@ toInt8OrNull('abc'): \N Introduced in: v1.1.0 -Like [`toInt8`](#toInt8), this function converts an input value to a value of type [Int8](/reference/data-types/int-uint) but returns `0` in case of an error. +Like [`toInt8`](#toInt8), this function converts an input value to a value of type [Int8](/core/reference/data-types/int-uint) but returns `0` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -6133,7 +6133,7 @@ Unsupported arguments (return `0`): - String representations of binary and hexadecimal values, e.g. `SELECT toInt8OrZero('0xc0fe');`. -If the input value cannot be represented within the bounds of [Int8](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [Int8](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -6151,11 +6151,11 @@ toInt8OrZero(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type Int8, otherwise `0` if the conversion is unsuccessful. [`Int8`](/reference/data-types/int-uint) +Returns a value of type Int8, otherwise `0` if the conversion is unsuccessful. [`Int8`](/core/reference/data-types/int-uint) **Examples** @@ -6196,12 +6196,12 @@ toInterval(value, unit) **Arguments** -- `value` — The numeric value representing the number of units. Can be any numeric type. [`Int8`](/reference/data-types/int-uint) or [`Int16`](/reference/data-types/int-uint) or [`Int32`](/reference/data-types/int-uint) or [`Int64`](/reference/data-types/int-uint) or [`UInt8`](/reference/data-types/int-uint) or [`UInt16`](/reference/data-types/int-uint) or [`UInt32`](/reference/data-types/int-uint) or [`UInt64`](/reference/data-types/int-uint) or [`Float32`](/reference/data-types/float) or [`Float64`](/reference/data-types/float) -- `unit` — The unit of time. Must be a constant string. Valid values: 'nanosecond', 'microsecond', 'millisecond', 'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter', 'year'. [`String`](/reference/data-types/string) +- `value` — The numeric value representing the number of units. Can be any numeric type. [`Int8`](/core/reference/data-types/int-uint) or [`Int16`](/core/reference/data-types/int-uint) or [`Int32`](/core/reference/data-types/int-uint) or [`Int64`](/core/reference/data-types/int-uint) or [`UInt8`](/core/reference/data-types/int-uint) or [`UInt16`](/core/reference/data-types/int-uint) or [`UInt32`](/core/reference/data-types/int-uint) or [`UInt64`](/core/reference/data-types/int-uint) or [`Float32`](/core/reference/data-types/float) or [`Float64`](/core/reference/data-types/float) +- `unit` — The unit of time. Must be a constant string. Valid values: 'nanosecond', 'microsecond', 'millisecond', 'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter', 'year'. [`String`](/core/reference/data-types/string) **Returned value** -Returns an Interval value of the specified type. The result type depends on the unit: IntervalNanosecond, IntervalMicrosecond, IntervalMillisecond, IntervalSecond, IntervalMinute, IntervalHour, IntervalDay, IntervalWeek, IntervalMonth, IntervalQuarter, or IntervalYear. [`Interval`](/reference/data-types/int-uint) +Returns an Interval value of the specified type. The result type depends on the unit: IntervalNanosecond, IntervalMicrosecond, IntervalMillisecond, IntervalSecond, IntervalMinute, IntervalHour, IntervalDay, IntervalWeek, IntervalMonth, IntervalQuarter, or IntervalYear. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6256,7 +6256,7 @@ FROM numbers(5) Introduced in: v1.1.0 -Returns an interval of `n` days of data type [`IntervalDay`](/reference/data-types/special-data-types/interval). +Returns an interval of `n` days of data type [`IntervalDay`](/core/reference/data-types/special-data-types/interval). **Syntax** @@ -6267,11 +6267,11 @@ toIntervalDay(n) **Arguments** -- `n` — Number of days. Integer numbers or string representations thereof, and float numbers. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `n` — Number of days. Integer numbers or string representations thereof, and float numbers. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** -Returns an interval of `n` days. [`Interval`](/reference/data-types/int-uint) +Returns an interval of `n` days. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6294,7 +6294,7 @@ SELECT date + interval_to_days AS result Introduced in: v1.1.0 -Returns an interval of `n` hours of data type [`IntervalHour`](/reference/data-types/special-data-types/interval). +Returns an interval of `n` hours of data type [`IntervalHour`](/core/reference/data-types/special-data-types/interval). **Syntax** @@ -6305,11 +6305,11 @@ toIntervalHour(n) **Arguments** -- `n` — Number of hours. Integer numbers or string representations thereof, and float numbers. [`Int*`](/reference/data-types/int-uint) or [`UInt*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `n` — Number of hours. Integer numbers or string representations thereof, and float numbers. [`Int*`](/core/reference/data-types/int-uint) or [`UInt*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** -Returns an interval of `n` hours. [`Interval`](/reference/data-types/int-uint) +Returns an interval of `n` hours. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6332,7 +6332,7 @@ SELECT date + interval_to_hours AS result Introduced in: v22.6.0 -Returns an interval of `n` microseconds of data type [`IntervalMicrosecond`](/reference/data-types/special-data-types/interval). +Returns an interval of `n` microseconds of data type [`IntervalMicrosecond`](/core/reference/data-types/special-data-types/interval). **Syntax** @@ -6343,11 +6343,11 @@ toIntervalMicrosecond(n) **Arguments** -- `n` — Number of microseconds. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `n` — Number of microseconds. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** -Returns an interval of `n` microseconds. [`Interval`](/reference/data-types/int-uint) +Returns an interval of `n` microseconds. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6370,7 +6370,7 @@ SELECT date + interval_to_microseconds AS result Introduced in: v22.6.0 -Returns an interval of `n` milliseconds of data type [IntervalMillisecond](/reference/data-types/special-data-types/interval). +Returns an interval of `n` milliseconds of data type [IntervalMillisecond](/core/reference/data-types/special-data-types/interval). **Syntax** @@ -6381,11 +6381,11 @@ toIntervalMillisecond(n) **Arguments** -- `n` — Number of milliseconds. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `n` — Number of milliseconds. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** -Returns an interval of `n` milliseconds. [`Interval`](/reference/data-types/int-uint) +Returns an interval of `n` milliseconds. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6408,7 +6408,7 @@ SELECT date + interval_to_milliseconds AS result Introduced in: v1.1.0 -Returns an interval of `n` minutes of data type [`IntervalMinute`](/reference/data-types/special-data-types/interval). +Returns an interval of `n` minutes of data type [`IntervalMinute`](/core/reference/data-types/special-data-types/interval). **Syntax** @@ -6419,11 +6419,11 @@ toIntervalMinute(n) **Arguments** -- `n` — Number of minutes. Integer numbers or string representations thereof, and float numbers. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `n` — Number of minutes. Integer numbers or string representations thereof, and float numbers. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** -Returns an interval of `n` minutes. [`Interval`](/reference/data-types/int-uint) +Returns an interval of `n` minutes. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6446,7 +6446,7 @@ SELECT date + interval_to_minutes AS result Introduced in: v1.1.0 -Returns an interval of `n` months of data type [`IntervalMonth`](/reference/data-types/special-data-types/interval). +Returns an interval of `n` months of data type [`IntervalMonth`](/core/reference/data-types/special-data-types/interval). **Syntax** @@ -6457,11 +6457,11 @@ toIntervalMonth(n) **Arguments** -- `n` — Number of months. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `n` — Number of months. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** -Returns an interval of `n` months. [`Interval`](/reference/data-types/int-uint) +Returns an interval of `n` months. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6484,7 +6484,7 @@ SELECT date + interval_to_month AS result Introduced in: v22.6.0 -Returns an interval of `n` nanoseconds of data type [`IntervalNanosecond`](/reference/data-types/special-data-types/interval). +Returns an interval of `n` nanoseconds of data type [`IntervalNanosecond`](/core/reference/data-types/special-data-types/interval). **Syntax** @@ -6495,11 +6495,11 @@ toIntervalNanosecond(n) **Arguments** -- `n` — Number of nanoseconds. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `n` — Number of nanoseconds. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** -Returns an interval of `n` nanoseconds. [`Interval`](/reference/data-types/int-uint) +Returns an interval of `n` nanoseconds. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6522,7 +6522,7 @@ SELECT date + interval_to_nanoseconds AS result Introduced in: v1.1.0 -Returns an interval of `n` quarters of data type [`IntervalQuarter`](/reference/data-types/special-data-types/interval). +Returns an interval of `n` quarters of data type [`IntervalQuarter`](/core/reference/data-types/special-data-types/interval). **Syntax** @@ -6533,11 +6533,11 @@ toIntervalQuarter(n) **Arguments** -- `n` — Number of quarters. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `n` — Number of quarters. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** -Returns an interval of `n` quarters. [`Interval`](/reference/data-types/int-uint) +Returns an interval of `n` quarters. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6560,7 +6560,7 @@ SELECT date + interval_to_quarter AS result Introduced in: v1.1.0 -Returns an interval of `n` seconds of data type [`IntervalSecond`](/reference/data-types/special-data-types/interval). +Returns an interval of `n` seconds of data type [`IntervalSecond`](/core/reference/data-types/special-data-types/interval). **Syntax** @@ -6571,11 +6571,11 @@ toIntervalSecond(n) **Arguments** -- `n` — Number of seconds. Integer numbers or string representations thereof, and float numbers. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `n` — Number of seconds. Integer numbers or string representations thereof, and float numbers. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** -Returns an interval of `n` seconds. [`Interval`](/reference/data-types/int-uint) +Returns an interval of `n` seconds. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6598,7 +6598,7 @@ SELECT date + interval_to_seconds AS result Introduced in: v1.1.0 -Returns an interval of `n` weeks of data type [`IntervalWeek`](/reference/data-types/special-data-types/interval). +Returns an interval of `n` weeks of data type [`IntervalWeek`](/core/reference/data-types/special-data-types/interval). **Syntax** @@ -6609,11 +6609,11 @@ toIntervalWeek(n) **Arguments** -- `n` — Number of weeks. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `n` — Number of weeks. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** -Returns an interval of `n` weeks. [`Interval`](/reference/data-types/int-uint) +Returns an interval of `n` weeks. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6636,7 +6636,7 @@ SELECT date + interval_to_week AS result Introduced in: v1.1.0 -Returns an interval of `n` years of data type [`IntervalYear`](/reference/data-types/special-data-types/interval). +Returns an interval of `n` years of data type [`IntervalYear`](/core/reference/data-types/special-data-types/interval). **Syntax** @@ -6647,11 +6647,11 @@ toIntervalYear(n) **Arguments** -- `n` — Number of years. [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) or [`String`](/reference/data-types/string) +- `n` — Number of years. [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) or [`String`](/core/reference/data-types/string) **Returned value** -Returns an interval of `n` years. [`Interval`](/reference/data-types/int-uint) +Returns an interval of `n` years. [`Interval`](/core/reference/data-types/int-uint) **Examples** @@ -6674,7 +6674,7 @@ SELECT date + interval_to_year AS result Introduced in: v18.12.0 -Converts the input argument to the [LowCardinality](/reference/data-types/lowcardinality) version of same data type. +Converts the input argument to the [LowCardinality](/core/reference/data-types/lowcardinality) version of same data type. To convert from the `LowCardinality` data type to a regular data type, use the [CAST](#CAST) function. @@ -6690,11 +6690,11 @@ toLowCardinality(expr) **Arguments** -- `expr` — Expression resulting in one of the supported data types. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`Date`](/reference/data-types/date) or [`DateTime`](/reference/data-types/datetime) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `expr` — Expression resulting in one of the supported data types. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`Date`](/core/reference/data-types/date) or [`DateTime`](/core/reference/data-types/datetime) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the input value converted to the `LowCardinality` data type. [`LowCardinality`](/reference/data-types/lowcardinality) +Returns the input value converted to the `LowCardinality` data type. [`LowCardinality`](/core/reference/data-types/lowcardinality) **Examples** @@ -6725,12 +6725,12 @@ toString(value[, timezone]) **Arguments** -- `value` — Value to convert to string. [`Any`](/reference/data-types) -- `timezone` — Optional. Timezone name for DateTime conversion. [`String`](/reference/data-types/string) +- `value` — Value to convert to string. [`Any`](/core/reference/data-types) +- `timezone` — Optional. Timezone name for DateTime conversion. [`String`](/core/reference/data-types/string) **Returned value** -Returns a string representation of the input value. [`String`](/reference/data-types/string) +Returns a string representation of the input value. [`String`](/core/reference/data-types/string) **Examples** @@ -6760,7 +6760,7 @@ LIMIT 10 Introduced in: v1.1.0 -Accepts a [String](/reference/data-types/string) or [FixedString](/reference/data-types/fixedstring) argument and returns a String that contains a copy of the original string truncated at the first null byte. +Accepts a [String](/core/reference/data-types/string) or [FixedString](/core/reference/data-types/fixedstring) argument and returns a String that contains a copy of the original string truncated at the first null byte. Null bytes (\\0) are considered as string terminators. This function is useful for processing C-style strings or binary data where null bytes mark the end of meaningful content. @@ -6774,11 +6774,11 @@ toStringCutToZero(s) **Arguments** -- `s` — String or FixedString to process. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `s` — String or FixedString to process. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns a String containing the characters before the first null byte. [`String`](/reference/data-types/string) +Returns a String containing the characters before the first null byte. [`String`](/core/reference/data-types/string) **Examples** @@ -6800,7 +6800,7 @@ SELECT Introduced in: v1.1.0 -Converts an input value to type [Time](/reference/data-types/time). +Converts an input value to type [Time](/core/reference/data-types/time). Supports conversion from String, FixedString, DateTime, or numeric types representing seconds since midnight. @@ -6812,11 +6812,11 @@ toTime(x) **Arguments** -- `x` — Input value to convert. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`DateTime`](/reference/data-types/datetime) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x` — Input value to convert. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`DateTime`](/core/reference/data-types/datetime) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the converted value. [`Time`](/reference/data-types/time) +Returns the converted value. [`Time`](/core/reference/data-types/time) **Examples** @@ -6854,7 +6854,7 @@ SELECT toTime(52225) Introduced in: v25.6.0 -Converts an input value to type [Time64](/reference/data-types/time64). +Converts an input value to type [Time64](/core/reference/data-types/time64). Supports conversion from String, FixedString, DateTime64, or numeric types representing microseconds since midnight. Provides microsecond precision for time values. @@ -6867,11 +6867,11 @@ toTime64(x) **Arguments** -- `x` — Input value to convert. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) or [`DateTime64`](/reference/data-types/datetime64) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) +- `x` — Input value to convert. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) or [`DateTime64`](/core/reference/data-types/datetime64) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) **Returned value** -Returns the converted input value with microsecond precision. [`Time64(6)`](/reference/data-types/time64) +Returns the converted input value with microsecond precision. [`Time64(6)`](/core/reference/data-types/time64) **Examples** @@ -6925,11 +6925,11 @@ toTime64OrNull(x) **Arguments** -- `x` — A string representation of a time with subsecond precision. [`String`](/reference/data-types/string) +- `x` — A string representation of a time with subsecond precision. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Time64 value if successful, otherwise `NULL`. [`Time64`](/reference/data-types/time64) or [`NULL`](/reference/syntax#null) +Returns a Time64 value if successful, otherwise `NULL`. [`Time64`](/core/reference/data-types/time64) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -6960,11 +6960,11 @@ toTime64OrZero(x) **Arguments** -- `x` — A string representation of a time with subsecond precision. [`String`](/reference/data-types/string) +- `x` — A string representation of a time with subsecond precision. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Time64 value if successful, otherwise `00:00:00.000`. [`Time64`](/reference/data-types/time64) +Returns a Time64 value if successful, otherwise `00:00:00.000`. [`Time64`](/core/reference/data-types/time64) **Examples** @@ -7000,11 +7000,11 @@ toTimeOrNull(x) **Arguments** -- `x` — A string representation of a time. [`String`](/reference/data-types/string) +- `x` — A string representation of a time. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Time value if successful, otherwise `NULL`. [`Time`](/reference/data-types/time) or [`NULL`](/reference/syntax#null) +Returns a Time value if successful, otherwise `NULL`. [`Time`](/core/reference/data-types/time) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -7036,11 +7036,11 @@ toTimeOrZero(x) **Arguments** -- `x` — A string representation of a time. [`String`](/reference/data-types/string) +- `x` — A string representation of a time. [`String`](/core/reference/data-types/string) **Returned value** -Returns a Time value if successful, otherwise `00:00:00`. [`Time`](/reference/data-types/time) +Returns a Time value if successful, otherwise `00:00:00`. [`Time`](/core/reference/data-types/time) **Examples** @@ -7060,7 +7060,7 @@ SELECT toTimeOrZero('12:30:45'), toTimeOrZero('invalid') Introduced in: v1.1.0 -Converts an input value to a value of type [`UInt128`](/reference/functions/regular-functions/type-conversion-functions#toUInt128). +Converts an input value to a value of type [`UInt128`](/core/reference/functions/regular-functions/type-conversion-functions#toUInt128). Throws an exception in case of an error. The function uses rounding towards zero, meaning it truncates fractional digits of numbers. @@ -7091,11 +7091,11 @@ toUInt128(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 128-bit unsigned integer value. [`UInt128`](/reference/data-types/int-uint) +Returns a 128-bit unsigned integer value. [`UInt128`](/core/reference/data-types/int-uint) **Examples** @@ -7121,7 +7121,7 @@ toUInt128('128'): 128 Introduced in: v21.11.0 -Like [`toUInt128`](#toUInt128), this function converts an input value to a value of type [`UInt128`](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toUInt128`](#toUInt128), this function converts an input value to a value of type [`UInt128`](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -7133,12 +7133,12 @@ toUInt128OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt128`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt128`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type UInt128 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt128`](/reference/data-types/int-uint) +Returns a value of type UInt128 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt128`](/core/reference/data-types/int-uint) **Examples** @@ -7166,7 +7166,7 @@ SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128')) Introduced in: v21.6.0 -Like [`toUInt128`](#toUInt128), this function converts an input value to a value of type [`UInt128`](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toUInt128`](#toUInt128), this function converts an input value to a value of type [`UInt128`](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -7176,7 +7176,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt128OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt128`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt128`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -7194,11 +7194,11 @@ toUInt128OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type UInt128, otherwise `NULL` if the conversion is unsuccessful. [`UInt128`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type UInt128, otherwise `NULL` if the conversion is unsuccessful. [`UInt128`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -7222,7 +7222,7 @@ toUInt128OrNull('abc'): \N Introduced in: v1.1.0 -Like [`toUInt128`](#toUInt128), this function converts an input value to a value of type [`UInt128`](/reference/data-types/int-uint) but returns `0` in case of an error. +Like [`toUInt128`](#toUInt128), this function converts an input value to a value of type [`UInt128`](/core/reference/data-types/int-uint) but returns `0` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -7232,7 +7232,7 @@ Unsupported arguments (return `0`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt128OrZero('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt128`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt128`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -7250,11 +7250,11 @@ toUInt128OrZero(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type UInt128, otherwise `0` if the conversion is unsuccessful. [`UInt128`](/reference/data-types/int-uint) +Returns a value of type UInt128, otherwise `0` if the conversion is unsuccessful. [`UInt128`](/core/reference/data-types/int-uint) **Examples** @@ -7278,7 +7278,7 @@ toUInt128OrZero('abc'): 0 Introduced in: v1.1.0 -Converts an input value to a value of type [`UInt16`](/reference/data-types/int-uint). +Converts an input value to a value of type [`UInt16`](/core/reference/data-types/int-uint). Throws an exception in case of an error. Supported arguments: @@ -7290,7 +7290,7 @@ Unsupported arguments: - String representations of binary and hexadecimal values, e.g. `SELECT toUInt16('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt16`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt16`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. For example: `SELECT toUInt16(65536) == 0;`. @@ -7313,11 +7313,11 @@ toUInt16(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 16-bit unsigned integer value. [`UInt16`](/reference/data-types/int-uint) +Returns a 16-bit unsigned integer value. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -7343,7 +7343,7 @@ toUInt16('16'): 16 Introduced in: v21.11.0 -Like [`toUInt16`](#toUInt16), this function converts an input value to a value of type [UInt16](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toUInt16`](#toUInt16), this function converts an input value to a value of type [UInt16](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -7355,12 +7355,12 @@ toUInt16OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt16`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt16`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type UInt16 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt16`](/reference/data-types/int-uint) +Returns a value of type UInt16 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -7388,7 +7388,7 @@ SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16')) Introduced in: v1.1.0 -Like [`toUInt16`](#toUInt16), this function converts an input value to a value of type [`UInt16`](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toUInt16`](#toUInt16), this function converts an input value to a value of type [`UInt16`](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int8/16/32/128/256. @@ -7398,7 +7398,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt16OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt16`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt16`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -7416,11 +7416,11 @@ toUInt16OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type `UInt16`, otherwise `NULL` if the conversion is unsuccessful. [`UInt16`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type `UInt16`, otherwise `NULL` if the conversion is unsuccessful. [`UInt16`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -7444,7 +7444,7 @@ toUInt16OrNull('abc'): \N Introduced in: v1.1.0 -Like [`toUInt16`](#toUInt16), this function converts an input value to a value of type [`UInt16`](/reference/data-types/int-uint) but returns `0` in case of an error. +Like [`toUInt16`](#toUInt16), this function converts an input value to a value of type [`UInt16`](/core/reference/data-types/int-uint) but returns `0` in case of an error. Supported arguments: - String representations of (U)Int8/16/32/128/256. @@ -7454,7 +7454,7 @@ Unsupported arguments (return `0`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt16OrZero('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt16`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt16`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -7472,11 +7472,11 @@ toUInt16OrZero(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type UInt16, otherwise `0` if the conversion is unsuccessful. [`UInt16`](/reference/data-types/int-uint) +Returns a value of type UInt16, otherwise `0` if the conversion is unsuccessful. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -7531,11 +7531,11 @@ toUInt256(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 256-bit unsigned integer value. [`UInt256`](/reference/data-types/int-uint) +Returns a 256-bit unsigned integer value. [`UInt256`](/core/reference/data-types/int-uint) **Examples** @@ -7561,7 +7561,7 @@ toUInt256('256'): 256 Introduced in: v21.11.0 -Like [`toUInt256`](#toUInt256), this function converts an input value to a value of type [UInt256](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toUInt256`](#toUInt256), this function converts an input value to a value of type [UInt256](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -7573,12 +7573,12 @@ toUInt256OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt256`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt256`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type UInt256 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt256`](/reference/data-types/int-uint) +Returns a value of type UInt256 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt256`](/core/reference/data-types/int-uint) **Examples** @@ -7606,7 +7606,7 @@ SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256')) Introduced in: v20.8.0 -Like [`toUInt256`](#toUInt256), this function converts an input value to a value of type [`UInt256`](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toUInt256`](#toUInt256), this function converts an input value to a value of type [`UInt256`](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -7616,7 +7616,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt256OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt256`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt256`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -7634,11 +7634,11 @@ toUInt256OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type UInt256, otherwise `NULL` if the conversion is unsuccessful. [`UInt256`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type UInt256, otherwise `NULL` if the conversion is unsuccessful. [`UInt256`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -7662,7 +7662,7 @@ toUInt256OrNull('abc'): \N Introduced in: v20.8.0 -Like [`toUInt256`](#toUInt256), this function converts an input value to a value of type [`UInt256`](/reference/data-types/int-uint) but returns `0` in case of an error. +Like [`toUInt256`](#toUInt256), this function converts an input value to a value of type [`UInt256`](/core/reference/data-types/int-uint) but returns `0` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -7672,7 +7672,7 @@ Unsupported arguments (return `0`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt256OrZero('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt256`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt256`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -7690,11 +7690,11 @@ toUInt256OrZero(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type UInt256, otherwise `0` if the conversion is unsuccessful. [`UInt256`](/reference/data-types/int-uint) +Returns a value of type UInt256, otherwise `0` if the conversion is unsuccessful. [`UInt256`](/core/reference/data-types/int-uint) **Examples** @@ -7718,7 +7718,7 @@ toUInt256OrZero('abc'): 0 Introduced in: v1.1.0 -Converts an input value to a value of type [`UInt32`](/reference/data-types/int-uint). +Converts an input value to a value of type [`UInt32`](/core/reference/data-types/int-uint). Throws an exception in case of an error. Supported arguments: @@ -7730,7 +7730,7 @@ Unsupported arguments: - String representations of binary and hexadecimal values, e.g. `SELECT toUInt32('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt32`](/reference/data-types/int-uint), the result over or under flows. +If the input value cannot be represented within the bounds of [`UInt32`](/core/reference/data-types/int-uint), the result over or under flows. This is not considered an error. For example: `SELECT toUInt32(4294967296) == 0;` @@ -7753,11 +7753,11 @@ toUInt32(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 32-bit unsigned integer value. [`UInt32`](/reference/data-types/int-uint) +Returns a 32-bit unsigned integer value. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -7783,7 +7783,7 @@ toUInt32('32'): 32 Introduced in: v21.11.0 -Like [`toUInt32`](#toUInt32), this function converts an input value to a value of type [UInt32](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toUInt32`](#toUInt32), this function converts an input value to a value of type [UInt32](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -7795,12 +7795,12 @@ toUInt32OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt32`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt32`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type UInt32 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt32`](/reference/data-types/int-uint) +Returns a value of type UInt32 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -7828,7 +7828,7 @@ SELECT toUInt32OrDefault('abc', CAST('0', 'UInt32')) Introduced in: v1.1.0 -Like [`toUInt32`](#toUInt32), this function converts an input value to a value of type [`UInt32`](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toUInt32`](#toUInt32), this function converts an input value to a value of type [`UInt32`](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int8/16/32/128/256. @@ -7838,7 +7838,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt32OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt32`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt32`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -7856,11 +7856,11 @@ toUInt32OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type `UInt32`, otherwise `NULL` if the conversion is unsuccessful. [`UInt32`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type `UInt32`, otherwise `NULL` if the conversion is unsuccessful. [`UInt32`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -7884,7 +7884,7 @@ toUInt32OrNull('abc'): \N Introduced in: v1.1.0 -Like [`toUInt32`](#toUInt32), this function converts an input value to a value of type [`UInt32`](/reference/data-types/int-uint) but returns `0` in case of an error. +Like [`toUInt32`](#toUInt32), this function converts an input value to a value of type [`UInt32`](/core/reference/data-types/int-uint) but returns `0` in case of an error. Supported arguments: - String representations of (U)Int8/16/32/128/256. @@ -7894,7 +7894,7 @@ Unsupported arguments (return `0`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt32OrZero('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt32`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt32`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -7912,11 +7912,11 @@ toUInt32OrZero(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type UInt32, otherwise `0` if the conversion is unsuccessful. [`UInt32`](/reference/data-types/int-uint) +Returns a value of type UInt32, otherwise `0` if the conversion is unsuccessful. [`UInt32`](/core/reference/data-types/int-uint) **Examples** @@ -7940,7 +7940,7 @@ toUInt32OrZero('abc'): 0 Introduced in: v1.1.0 -Converts an input value to a value of type [`UInt64`](/reference/data-types/int-uint). +Converts an input value to a value of type [`UInt64`](/core/reference/data-types/int-uint). Throws an exception in case of an error. Supported arguments: @@ -7952,7 +7952,7 @@ Unsupported types: - String representations of binary and hexadecimal values, e.g. `SELECT toUInt64('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt64`](/reference/data-types/int-uint), the result over or under flows. +If the input value cannot be represented within the bounds of [`UInt64`](/core/reference/data-types/int-uint), the result over or under flows. This is not considered an error. For example: `SELECT toUInt64(18446744073709551616) == 0;` @@ -7975,11 +7975,11 @@ toUInt64(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns a 64-bit unsigned integer value. [`UInt64`](/reference/data-types/int-uint) +Returns a 64-bit unsigned integer value. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -8005,7 +8005,7 @@ toUInt64('64'): 64 Introduced in: v21.11.0 -Like [`toUInt64`](#toUInt64), this function converts an input value to a value of type [UInt64](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toUInt64`](#toUInt64), this function converts an input value to a value of type [UInt64](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -8017,12 +8017,12 @@ toUInt64OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt64`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt64`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type UInt64 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt64`](/reference/data-types/int-uint) +Returns a value of type UInt64 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -8050,7 +8050,7 @@ SELECT toUInt64OrDefault('abc', CAST('0', 'UInt64')) Introduced in: v1.1.0 -Like [`toUInt64`](#toUInt64), this function converts an input value to a value of type [`UInt64`](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toUInt64`](#toUInt64), this function converts an input value to a value of type [`UInt64`](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -8060,7 +8060,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt64OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt64`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt64`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -8078,11 +8078,11 @@ toUInt64OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type UInt64, otherwise `NULL` if the conversion is unsuccessful. [`UInt64`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type UInt64, otherwise `NULL` if the conversion is unsuccessful. [`UInt64`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -8106,7 +8106,7 @@ toUInt64OrNull('abc'): \N Introduced in: v1.1.0 -Like [`toUInt64`](#toUInt64), this function converts an input value to a value of type [`UInt64`](/reference/data-types/int-uint) but returns `0` in case of an error. +Like [`toUInt64`](#toUInt64), this function converts an input value to a value of type [`UInt64`](/core/reference/data-types/int-uint) but returns `0` in case of an error. Supported arguments: - String representations of (U)Int*. @@ -8116,7 +8116,7 @@ Unsupported arguments (return `0`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt64OrZero('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt64`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt64`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -8134,11 +8134,11 @@ toUInt64OrZero(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type UInt64, otherwise `0` if the conversion is unsuccessful. [`UInt64`](/reference/data-types/int-uint) +Returns a value of type UInt64, otherwise `0` if the conversion is unsuccessful. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -8162,7 +8162,7 @@ toUInt64OrZero('abc'): 0 Introduced in: v1.1.0 -Converts an input value to a value of type [`UInt8`](/reference/data-types/int-uint). +Converts an input value to a value of type [`UInt8`](/core/reference/data-types/int-uint). Throws an exception in case of an error. Supported arguments: @@ -8174,7 +8174,7 @@ Unsupported arguments: - String representations of binary and hexadecimal values, e.g. `SELECT toUInt8('0xc0fe');`. -If the input value cannot be represented within the bounds of [UInt8](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [UInt8](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. For example: `SELECT toUInt8(256) == 0;`. @@ -8197,11 +8197,11 @@ toUInt8(expr) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/reference/data-types/special-data-types/expression) +- `expr` — Expression returning a number or a string representation of a number. [`Expression`](/core/reference/data-types/special-data-types/expression) **Returned value** -Returns an 8-bit unsigned integer value. [`UInt8`](/reference/data-types/int-uint) +Returns an 8-bit unsigned integer value. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -8227,7 +8227,7 @@ toUInt8('8'): 8 Introduced in: v21.11.0 -Like [`toUInt8`](#toUInt8), this function converts an input value to a value of type [UInt8](/reference/data-types/int-uint) but returns the default value in case of an error. +Like [`toUInt8`](#toUInt8), this function converts an input value to a value of type [UInt8](/core/reference/data-types/int-uint) but returns the default value in case of an error. If no `default` value is passed then `0` is returned in case of an error. @@ -8239,12 +8239,12 @@ toUInt8OrDefault(expr[, default]) **Arguments** -- `expr` — Expression returning a number or a string representation of a number. [`String`](/reference/data-types/string) or [`(U)Int*`](/reference/data-types/int-uint) or [`Float*`](/reference/data-types/float) -- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt8`](/reference/data-types/int-uint) +- `expr` — Expression returning a number or a string representation of a number. [`String`](/core/reference/data-types/string) or [`(U)Int*`](/core/reference/data-types/int-uint) or [`Float*`](/core/reference/data-types/float) +- `default` — Optional. The default value to return if parsing is unsuccessful. [`UInt8`](/core/reference/data-types/int-uint) **Returned value** -Returns a value of type UInt8 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt8`](/reference/data-types/int-uint) +Returns a value of type UInt8 if successful, otherwise returns the default value if passed, or 0 if not. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -8272,7 +8272,7 @@ SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8')) Introduced in: v1.1.0 -Like [`toUInt8`](#toUInt8), this function converts an input value to a value of type [`UInt8`](/reference/data-types/int-uint) but returns `NULL` in case of an error. +Like [`toUInt8`](#toUInt8), this function converts an input value to a value of type [`UInt8`](/core/reference/data-types/int-uint) but returns `NULL` in case of an error. Supported arguments: - String representations of (U)Int8/16/32/128/256. @@ -8282,7 +8282,7 @@ Unsupported arguments (return `NULL`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt8OrNull('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt8`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt8`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -8300,11 +8300,11 @@ toUInt8OrNull(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type UInt8, otherwise `NULL` if the conversion is unsuccessful. [`UInt8`](/reference/data-types/int-uint) or [`NULL`](/reference/syntax#null) +Returns a value of type UInt8, otherwise `NULL` if the conversion is unsuccessful. [`UInt8`](/core/reference/data-types/int-uint) or [`NULL`](/core/reference/syntax#null) **Examples** @@ -8328,7 +8328,7 @@ toUInt8OrNull('abc'): \N Introduced in: v1.1.0 -Like [`toUInt8`](#toUInt8), this function converts an input value to a value of type [`UInt8`](/reference/data-types/int-uint) but returns `0` in case of an error. +Like [`toUInt8`](#toUInt8), this function converts an input value to a value of type [`UInt8`](/core/reference/data-types/int-uint) but returns `0` in case of an error. Supported arguments: - String representations of (U)Int8/16/32/128/256. @@ -8338,7 +8338,7 @@ Unsupported arguments (return `0`): - String representations of binary and hexadecimal values, e.g. `SELECT toUInt8OrZero('0xc0fe');`. -If the input value cannot be represented within the bounds of [`UInt8`](/reference/data-types/int-uint), overflow or underflow of the result occurs. +If the input value cannot be represented within the bounds of [`UInt8`](/core/reference/data-types/int-uint), overflow or underflow of the result occurs. This is not considered an error. @@ -8356,11 +8356,11 @@ toUInt8OrZero(x) **Arguments** -- `x` — A String representation of a number. [`String`](/reference/data-types/string) +- `x` — A String representation of a number. [`String`](/core/reference/data-types/string) **Returned value** -Returns a value of type UInt8, otherwise `0` if the conversion is unsuccessful. [`UInt8`](/reference/data-types/int-uint) +Returns a value of type UInt8, otherwise `0` if the conversion is unsuccessful. [`UInt8`](/core/reference/data-types/int-uint) **Examples** @@ -8395,11 +8395,11 @@ toUUID(string) **Arguments** -- `string` — UUID as a string. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) +- `string` — UUID as a string. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) **Returned value** -Returns a UUID from the string representation of the UUID. [`UUID`](/reference/data-types/uuid) +Returns a UUID from the string representation of the UUID. [`UUID`](/core/reference/data-types/uuid) **Examples** @@ -8419,8 +8419,8 @@ SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid Introduced in: v20.12.0 -Converts an input value to a value of type [UUID](/reference/data-types/uuid) but returns zero UUID in case of an error. -Like [`toUUID`](/reference/functions/regular-functions/type-conversion-functions#toUUID) but returns zero UUID (`00000000-0000-0000-0000-000000000000`) instead of throwing an exception on conversion errors. +Converts an input value to a value of type [UUID](/core/reference/data-types/uuid) but returns zero UUID in case of an error. +Like [`toUUID`](/core/reference/functions/regular-functions/type-conversion-functions#toUUID) but returns zero UUID (`00000000-0000-0000-0000-000000000000`) instead of throwing an exception on conversion errors. Supported arguments: - String representations of UUID in standard format (8-4-4-4-12 hexadecimal digits). @@ -8439,11 +8439,11 @@ toUUIDOrZero(x) **Arguments** -- `x` — A string representation of a UUID. [`String`](/reference/data-types/string) +- `x` — A string representation of a UUID. [`String`](/core/reference/data-types/string) **Returned value** -Returns a UUID value if successful, otherwise zero UUID (`00000000-0000-0000-0000-000000000000`). [`UUID`](/reference/data-types/uuid) +Returns a UUID value if successful, otherwise zero UUID (`00000000-0000-0000-0000-000000000000`). [`UUID`](/core/reference/data-types/uuid) **Examples** @@ -8465,7 +8465,7 @@ SELECT Introduced in: v20.5.0 -Converts a [`DateTime64`](/reference/data-types/datetime64) to a [`Int64`](/reference/data-types/int-uint) value with fixed microsecond precision. +Converts a [`DateTime64`](/core/reference/data-types/datetime64) to a [`Int64`](/core/reference/data-types/int-uint) value with fixed microsecond precision. The input value is scaled up or down appropriately depending on its precision. @@ -8481,11 +8481,11 @@ toUnixTimestamp64Micro(value) **Arguments** -- `value` — DateTime64 value with any precision. [`DateTime64`](/reference/data-types/datetime64) +- `value` — DateTime64 value with any precision. [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns a Unix timestamp in microseconds. [`Int64`](/reference/data-types/int-uint) +Returns a Unix timestamp in microseconds. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -8506,7 +8506,7 @@ SELECT toUnixTimestamp64Micro(dt64); Introduced in: v20.5.0 -Converts a [`DateTime64`](/reference/data-types/datetime64) to a [`Int64`](/reference/data-types/int-uint) value with fixed millisecond precision. +Converts a [`DateTime64`](/core/reference/data-types/datetime64) to a [`Int64`](/core/reference/data-types/int-uint) value with fixed millisecond precision. The input value is scaled up or down appropriately depending on its precision. @@ -8522,11 +8522,11 @@ toUnixTimestamp64Milli(value) **Arguments** -- `value` — DateTime64 value with any precision. [`DateTime64`](/reference/data-types/datetime64) +- `value` — DateTime64 value with any precision. [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns a Unix timestamp in milliseconds. [`Int64`](/reference/data-types/int-uint) +Returns a Unix timestamp in milliseconds. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -8547,7 +8547,7 @@ SELECT toUnixTimestamp64Milli(dt64); Introduced in: v20.5.0 -Converts a [`DateTime64`](/reference/data-types/datetime64) to a [`Int64`](/reference/functions/regular-functions/type-conversion-functions#toInt64) value with fixed nanosecond precision. +Converts a [`DateTime64`](/core/reference/data-types/datetime64) to a [`Int64`](/core/reference/functions/regular-functions/type-conversion-functions#toInt64) value with fixed nanosecond precision. The input value is scaled up or down appropriately depending on its precision. @@ -8563,11 +8563,11 @@ toUnixTimestamp64Nano(value) **Arguments** -- `value` — DateTime64 value with any precision. [`DateTime64`](/reference/data-types/datetime64) +- `value` — DateTime64 value with any precision. [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns a Unix timestamp in nanoseconds. [`Int64`](/reference/data-types/int-uint) +Returns a Unix timestamp in nanoseconds. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -8588,7 +8588,7 @@ SELECT toUnixTimestamp64Nano(dt64); Introduced in: v24.12.0 -Converts a [`DateTime64`](/reference/data-types/datetime64) to a [`Int64`](/reference/data-types/int-uint) value with fixed second precision. +Converts a [`DateTime64`](/core/reference/data-types/datetime64) to a [`Int64`](/core/reference/data-types/int-uint) value with fixed second precision. The input value is scaled up or down appropriately depending on its precision. @@ -8604,11 +8604,11 @@ toUnixTimestamp64Second(value) **Arguments** -- `value` — DateTime64 value with any precision. [`DateTime64`](/reference/data-types/datetime64) +- `value` — DateTime64 value with any precision. [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns a Unix timestamp in seconds. [`Int64`](/reference/data-types/int-uint) +Returns a Unix timestamp in seconds. [`Int64`](/core/reference/data-types/int-uint) **Examples** diff --git a/reference/functions/regular-functions/udf.mdx b/core/reference/functions/regular-functions/udf.mdx similarity index 93% rename from reference/functions/regular-functions/udf.mdx rename to core/reference/functions/regular-functions/udf.mdx index cc663fe7..d6b4bb96 100644 --- a/reference/functions/regular-functions/udf.mdx +++ b/core/reference/functions/regular-functions/udf.mdx @@ -31,7 +31,7 @@ Please contact ClickHouse Support at https://clickhouse.cloud/support to access. ClickHouse can call any external executable program or script to process data. The configuration of executable user defined functions can be located in one or more xml-files. -The path to the configuration is specified in the [`user_defined_executable_functions_config`](/reference/settings/server-settings/settings#user_defined_executable_functions_config) parameter. +The path to the configuration is specified in the [`user_defined_executable_functions_config`](/core/reference/settings/server-settings/settings#user_defined_executable_functions_config) parameter. A function configuration contains the following settings: @@ -39,10 +39,10 @@ A function configuration contains the following settings: |-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|-----------------------| | `name` | A function name | Yes | - | | `command` | Script name to execute or command if `execute_direct` is false | Yes | - | -| `argument` | Argument description with the `type`, and optional `name` of an argument. Each argument is described in a separate setting. Specifying name is necessary if argument names are part of serialization for user defined function format like [Native](/reference/formats/Native) or [JSONEachRow](/reference/formats/JSON/JSONEachRow) | Yes | `c` + argument_number | -| `format` | A [format](/reference/formats) in which arguments are passed to the command. The command output is expected to use the same format too | Yes | - | +| `argument` | Argument description with the `type`, and optional `name` of an argument. Each argument is described in a separate setting. Specifying name is necessary if argument names are part of serialization for user defined function format like [Native](/core/reference/formats/Native) or [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) | Yes | `c` + argument_number | +| `format` | A [format](/core/reference/formats) in which arguments are passed to the command. The command output is expected to use the same format too | Yes | - | | `return_type` | The type of a returned value | Yes | - | -| `return_name` | Name of returned value. Specifying return name is necessary if return name is part of serialization for user defined function format like [Native](/reference/formats/Native) or [JSONEachRow](/reference/formats/JSON/JSONEachRow) | Optional | `result` | +| `return_name` | Name of returned value. Specifying return name is necessary if return name is part of serialization for user defined function format like [Native](/core/reference/formats/Native) or [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) | Optional | `result` | | `type` | An executable type. If `type` is set to `executable` then single command is started. If it is set to `executable_pool` then a pool of commands is created | Yes | - | | `max_command_execution_time` | Maximum execution time in seconds for processing block of data. This setting is valid for `executable_pool` commands only | Optional | `10` | | `command_termination_timeout` | Time in seconds during which a command should finish after its pipe is closed. After that time `SIGTERM` is sent to the process executing the command | Optional | `10` | @@ -50,7 +50,7 @@ A function configuration contains the following settings: | `command_write_timeout` | Timeout for writing data to command stdin in milliseconds | Optional | `10000` | | `pool_size` | The size of a command pool | Optional | `16` | | `send_chunk_header` | Controls whether to send row count before sending a chunk of data to process | Optional | `false` | -| `execute_direct` | If `execute_direct` = `1`, then `command` will be searched inside user_scripts folder specified by [user_scripts_path](/reference/settings/server-settings/settings#user_scripts_path). Additional script arguments can be specified using whitespace separator. Example: `script_name arg1 arg2`. If `execute_direct` = `0`, `command` is passed as argument for `bin/sh -c` | Optional | `1` | +| `execute_direct` | If `execute_direct` = `1`, then `command` will be searched inside user_scripts folder specified by [user_scripts_path](/core/reference/settings/server-settings/settings#user_scripts_path). Additional script arguments can be specified using whitespace separator. Example: `script_name arg1 arg2`. If `execute_direct` = `0`, `command` is passed as argument for `bin/sh -c` | Optional | `1` | | `lifetime` | The reload interval of a function in seconds. If it is set to `0` then the function is not reloaded | Optional | `0` | | `deterministic` | If the function is deterministic (returns the same result for the same input) | Optional | `false` | | `stderr_reaction` | How to handle the command's stderr output. Values: `none` (ignore), `log` (log all stderr immediately), `log_first` (log first 4 KiB after exit), `log_last` (log last 4 KiB after exit), `throw` (throw exception immediately on any stderr output). When using `log_first` or `log_last` with a non-zero exit code, the stderr content is included in the exception message | Optional | `log_last` | @@ -194,7 +194,7 @@ SELECT test_function_python(toUInt64(2)); ### Read two values from `STDIN` and return their sum as a JSON object {#udf-stdin} -Create `test_function_sum_json` with named arguments and format [JSONEachRow](/reference/formats/JSON/JSONEachRow) using either XML or YAML configuration. +Create `test_function_sum_json` with named arguments and format [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) using either XML or YAML configuration. @@ -435,7 +435,7 @@ If a function in a query is performed on the requestor server, but you need to p ## SQL User Defined Functions {#sql-user-defined-functions} -Custom functions from lambda expressions can be created using the [CREATE FUNCTION](/reference/statements/create/function) statement. To delete these functions use the [DROP FUNCTION](/reference/statements/drop#drop-function) statement. +Custom functions from lambda expressions can be created using the [CREATE FUNCTION](/core/reference/statements/create/function) statement. To delete these functions use the [DROP FUNCTION](/core/reference/statements/drop#drop-function) statement. ## WebAssembly User Defined Functions {#webassembly-user-defined-functions} @@ -480,7 +480,7 @@ SELECT my_function(10, 20); ### More Information -Refer to the documentation on [WebAssembly User Defined Functions](/reference/functions/regular-functions/wasm_udf) for more details. +Refer to the documentation on [WebAssembly User Defined Functions](/core/reference/functions/regular-functions/wasm_udf) for more details. ## Related Content {#related-content} - [User-defined functions in ClickHouse Cloud](https://clickhouse.com/blog/user-defined-functions-clickhouse-udfs) diff --git a/reference/functions/regular-functions/ulid-functions.mdx b/core/reference/functions/regular-functions/ulid-functions.mdx similarity index 81% rename from reference/functions/regular-functions/ulid-functions.mdx rename to core/reference/functions/regular-functions/ulid-functions.mdx index c7313bdd..90f015df 100644 --- a/reference/functions/regular-functions/ulid-functions.mdx +++ b/core/reference/functions/regular-functions/ulid-functions.mdx @@ -32,12 +32,12 @@ ULIDStringToDateTime(ulid[, timezone]) **Arguments** -- `ulid` — Input ULID. [`String`](/reference/data-types/string) or [`FixedString(26)`](/reference/data-types/fixedstring) -- `timezone` — Optional. Timezone name for the returned value. [`String`](/reference/data-types/string) +- `ulid` — Input ULID. [`String`](/core/reference/data-types/string) or [`FixedString(26)`](/core/reference/data-types/fixedstring) +- `timezone` — Optional. Timezone name for the returned value. [`String`](/core/reference/data-types/string) **Returned value** -Timestamp with milliseconds precision. [`DateTime64(3)`](/reference/data-types/datetime64) +Timestamp with milliseconds precision. [`DateTime64(3)`](/core/reference/data-types/datetime64) **Examples** @@ -68,11 +68,11 @@ generateULID([x]) **Arguments** -- `x` — Optional. An expression resulting in any of the supported data types. The resulting value is discarded, but the expression itself if used for bypassing [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) if the function is called multiple times in one query. [`Any`](/reference/data-types) +- `x` — Optional. An expression resulting in any of the supported data types. The resulting value is discarded, but the expression itself if used for bypassing [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) if the function is called multiple times in one query. [`Any`](/core/reference/data-types) **Returned value** -Returns a ULID. [`FixedString(26)`](/reference/data-types/fixedstring) +Returns a ULID. [`FixedString(26)`](/core/reference/data-types/fixedstring) **Examples** @@ -104,5 +104,5 @@ SELECT generateULID(1), generateULID(2) ## See also {#see-also} -- [UUID](/reference/functions/regular-functions/uuid-functions) +- [UUID](/core/reference/functions/regular-functions/uuid-functions) diff --git a/reference/functions/regular-functions/uniqtheta-functions.mdx b/core/reference/functions/regular-functions/uniqtheta-functions.mdx similarity index 97% rename from reference/functions/regular-functions/uniqtheta-functions.mdx rename to core/reference/functions/regular-functions/uniqtheta-functions.mdx index ce76d3e9..0aba3c5a 100644 --- a/reference/functions/regular-functions/uniqtheta-functions.mdx +++ b/core/reference/functions/regular-functions/uniqtheta-functions.mdx @@ -93,7 +93,7 @@ FROM **See Also** -- [uniqThetaSketch](/reference/functions/aggregate-functions/reference/uniqthetasketch) +- [uniqThetaSketch](/core/reference/functions/aggregate-functions/reference/uniqthetasketch) {/* The inner content of the tags below are replaced at doc framework build time with diff --git a/reference/functions/regular-functions/url-functions.mdx b/core/reference/functions/regular-functions/url-functions.mdx similarity index 87% rename from reference/functions/regular-functions/url-functions.mdx rename to core/reference/functions/regular-functions/url-functions.mdx index ea3b2d85..325b8cfd 100644 --- a/reference/functions/regular-functions/url-functions.mdx +++ b/core/reference/functions/regular-functions/url-functions.mdx @@ -67,11 +67,11 @@ URLHierarchy(url) **Arguments** -- `url` — The URL to process. [`String`](/reference/data-types/string) +- `url` — The URL to process. [`String`](/core/reference/data-types/string) **Returned value** -Returns an array of progressively longer URLs forming a hierarchy. [`Array(String)`](/reference/data-types/array) +Returns an array of progressively longer URLs forming a hierarchy. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -100,11 +100,11 @@ URLPathHierarchy(url) **Arguments** -- `url` — The URL to process. [`String`](/reference/data-types/string) +- `url` — The URL to process. [`String`](/core/reference/data-types/string) **Returned value** -Returns an array of progressively longer URL path components forming a hierarchy. [`Array(String)`](/reference/data-types/array) +Returns an array of progressively longer URL path components forming a hierarchy. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -133,11 +133,11 @@ cutFragment(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the URL with fragment identifier removed. [`String`](/reference/data-types/string) +Returns the URL with fragment identifier removed. [`String`](/core/reference/data-types/string) **Examples** @@ -168,11 +168,11 @@ cutQueryString(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the URL with query string removed. [`String`](/reference/data-types/string) +Returns the URL with query string removed. [`String`](/core/reference/data-types/string) **Examples** @@ -203,11 +203,11 @@ cutQueryStringAndFragment(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the URL with query string and fragment identifier removed. [`String`](/reference/data-types/string) +Returns the URL with query string and fragment identifier removed. [`String`](/core/reference/data-types/string) **Examples** @@ -227,7 +227,7 @@ SELECT cutQueryStringAndFragment('http://example.com/path?query=value¶m=123# Introduced in: v1.1.0 -Returns the part of the domain that includes top-level subdomains up to the [first significant subdomain](/reference/functions/regular-functions/url-functions#firstSignificantSubdomain). +Returns the part of the domain that includes top-level subdomains up to the [first significant subdomain](/core/reference/functions/regular-functions/url-functions#firstSignificantSubdomain). @@ -239,11 +239,11 @@ cutToFirstSignificantSubdomain(url) **Arguments** -- `url` — URL or domain string to process. [`String`](/reference/data-types/string) +- `url` — URL or domain string to process. [`String`](/core/reference/data-types/string) **Returned value** -Returns the part of the domain that includes top-level subdomains up to the first significant subdomain if possible, otherwise returns an empty string. [`String`](/reference/data-types/string) +Returns the part of the domain that includes top-level subdomains up to the first significant subdomain if possible, otherwise returns an empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -288,12 +288,12 @@ cutToFirstSignificantSubdomainCustom(url, tld_list_name) **Arguments** -- `url` — URL or domain string to process. [`String`](/reference/data-types/string) -- `tld_list_name` — Name of the custom TLD list configured in ClickHouse. [`const String`](/reference/data-types/string) +- `url` — URL or domain string to process. [`String`](/core/reference/data-types/string) +- `tld_list_name` — Name of the custom TLD list configured in ClickHouse. [`const String`](/core/reference/data-types/string) **Returned value** -Returns the part of the domain that includes top-level subdomains up to the first significant subdomain. [`String`](/reference/data-types/string) +Returns the part of the domain that includes top-level subdomains up to the first significant subdomain. [`String`](/core/reference/data-types/string) **Examples** @@ -340,7 +340,7 @@ cutToFirstSignificantSubdomainCustomRFC(url, tld_list_name) **Returned value** -Returns the part of the domain that includes top-level subdomains up to the first significant subdomain. [`String`](/reference/data-types/string) +Returns the part of the domain that includes top-level subdomains up to the first significant subdomain. [`String`](/core/reference/data-types/string) **Examples** @@ -385,7 +385,7 @@ cutToFirstSignificantSubdomainCustomWithWWW(url, tld_list_name) **Returned value** -Part of the domain that includes top-level subdomains up to the first significant subdomain without stripping 'www'. [`String`](/reference/data-types/string) +Part of the domain that includes top-level subdomains up to the first significant subdomain without stripping 'www'. [`String`](/core/reference/data-types/string) **Examples** @@ -433,7 +433,7 @@ cutToFirstSignificantSubdomainCustomWithWWWRFC(url, tld_list_name) **Returned value** -Returns the part of the domain that includes top-level subdomains up to the first significant subdomain without stripping `www`. [`String`](/reference/data-types/string) +Returns the part of the domain that includes top-level subdomains up to the first significant subdomain without stripping `www`. [`String`](/core/reference/data-types/string) **Examples** @@ -451,7 +451,7 @@ www.example.custom Introduced in: v22.10.0 -Returns the part of the domain that includes top-level subdomains up to the ["first significant subdomain"](/reference/functions/regular-functions/url-functions#firstSignificantSubdomain). Similar to [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain) but conforms to [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). +Returns the part of the domain that includes top-level subdomains up to the ["first significant subdomain"](/core/reference/functions/regular-functions/url-functions#firstSignificantSubdomain). Similar to [`cutToFirstSignificantSubdomain`](#cutToFirstSignificantSubdomain) but conforms to [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). **Syntax** @@ -462,11 +462,11 @@ cutToFirstSignificantSubdomainRFC(url) **Arguments** -- `url` — URL or domain string to process according to RFC 3986. [`String`](/reference/data-types/string) +- `url` — URL or domain string to process according to RFC 3986. [`String`](/core/reference/data-types/string) **Returned value** -Returns the part of the domain that includes top-level subdomains up to the first significant subdomain if possible, otherwise returns an empty string. [`String`](/reference/data-types/string) +Returns the part of the domain that includes top-level subdomains up to the first significant subdomain if possible, otherwise returns an empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -501,11 +501,11 @@ cutToFirstSignificantSubdomainWithWWW(url) **Arguments** -- `url` — URL or domain string to process. [`String`](/reference/data-types/string) +- `url` — URL or domain string to process. [`String`](/core/reference/data-types/string) **Returned value** -Returns the part of the domain that includes top-level subdomains up to the first significant subdomain (with www) if possible, otherwise returns an empty string. [`String`](/reference/data-types/string) +Returns the part of the domain that includes top-level subdomains up to the first significant subdomain (with www) if possible, otherwise returns an empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -543,7 +543,7 @@ cutToFirstSignificantSubdomainWithWWWRFC(url) **Returned value** -Returns the part of the domain that includes top-level subdomains up to the first significant subdomain (with 'www') if possible, otherwise returns an empty string [`String`](/reference/data-types/string) +Returns the part of the domain that includes top-level subdomains up to the first significant subdomain (with 'www') if possible, otherwise returns an empty string [`String`](/core/reference/data-types/string) **Examples** @@ -577,12 +577,12 @@ cutURLParameter(url, name) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) -- `name` — Name of URL parameter. [`String`](/reference/data-types/string) or [`Array(String)`](/reference/data-types/array) +- `url` — URL. [`String`](/core/reference/data-types/string) +- `name` — Name of URL parameter. [`String`](/core/reference/data-types/string) or [`Array(String)`](/core/reference/data-types/array) **Returned value** -URL with `name` URL parameter removed. [`String`](/reference/data-types/string) +URL with `name` URL parameter removed. [`String`](/core/reference/data-types/string) **Examples** @@ -615,11 +615,11 @@ cutWWW(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the URL with leading `www.` removed from the domain. [`String`](/reference/data-types/string) +Returns the URL with leading `www.` removed from the domain. [`String`](/core/reference/data-types/string) **Examples** @@ -650,11 +650,11 @@ decodeURLComponent(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the decoded URL. [`String`](/reference/data-types/string) +Returns the decoded URL. [`String`](/core/reference/data-types/string) **Examples** @@ -685,11 +685,11 @@ decodeURLFormComponent(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the decoded URL. [`String`](/reference/data-types/string) +Returns the decoded URL. [`String`](/core/reference/data-types/string) **Examples** @@ -722,11 +722,11 @@ domain(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the host name if the input string can be parsed as a URL, otherwise an empty string. [`String`](/reference/data-types/string) +Returns the host name if the input string can be parsed as a URL, otherwise an empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -758,11 +758,11 @@ domainRFC(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the host name if the input string can be parsed as a URL, otherwise an empty string. [`String`](/reference/data-types/string) +Returns the host name if the input string can be parsed as a URL, otherwise an empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -795,11 +795,11 @@ domainWithoutWWW(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the domain name if the input string can be parsed as a URL (without leading `www.`), otherwise an empty string. [`String`](/reference/data-types/string) +Returns the domain name if the input string can be parsed as a URL (without leading `www.`), otherwise an empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -830,11 +830,11 @@ domainWithoutWWWRFC(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the domain name if the input string can be parsed as a URL (without leading `www.`), otherwise an empty string. [`String`](/reference/data-types/string) +Returns the domain name if the input string can be parsed as a URL (without leading `www.`), otherwise an empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -867,11 +867,11 @@ encodeURLComponent(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the encoded URL. [`String`](/reference/data-types/string) +Returns the encoded URL. [`String`](/core/reference/data-types/string) **Examples** @@ -902,11 +902,11 @@ encodeURLFormComponent(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the encoded URL. [`String`](/reference/data-types/string) +Returns the encoded URL. [`String`](/core/reference/data-types/string) **Examples** @@ -939,12 +939,12 @@ extractURLParameter(url, name) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) -- `name` — Parameter name. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) +- `name` — Parameter name. [`String`](/core/reference/data-types/string) **Returned value** -Returns the value of the URL parameter with the specified name. [`String`](/reference/data-types/string) +Returns the value of the URL parameter with the specified name. [`String`](/core/reference/data-types/string) **Examples** @@ -976,11 +976,11 @@ extractURLParameterNames(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns an array of name strings corresponding to the names of URL parameters. [`Array(String)`](/reference/data-types/array) +Returns an array of name strings corresponding to the names of URL parameters. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -1012,11 +1012,11 @@ extractURLParameters(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns an array of `name=value` strings corresponding to the URL parameters. [`Array(String)`](/reference/data-types/array) +Returns an array of `name=value` strings corresponding to the URL parameters. [`Array(String)`](/core/reference/data-types/array) **Examples** @@ -1085,12 +1085,12 @@ firstSignificantSubdomainCustom(url, tld_list_name) **Arguments** -- `url` — The URL to extract the subdomain from. [`String`](/reference/data-types/string) -- `tld_list_name` — Name of the custom TLD list from the configuration. [`String`](/reference/data-types/string) +- `url` — The URL to extract the subdomain from. [`String`](/core/reference/data-types/string) +- `tld_list_name` — Name of the custom TLD list from the configuration. [`String`](/core/reference/data-types/string) **Returned value** -Returns the first significant subdomain. [`String`](/reference/data-types/string) +Returns the first significant subdomain. [`String`](/core/reference/data-types/string) **Examples** @@ -1119,12 +1119,12 @@ firstSignificantSubdomainCustomRFC(url, tld_list_name) **Arguments** -- `url` — The URL to extract the subdomain from. [`String`](/reference/data-types/string) -- `tld_list_name` — Name of the custom TLD list from the configuration. [`String`](/reference/data-types/string) +- `url` — The URL to extract the subdomain from. [`String`](/core/reference/data-types/string) +- `tld_list_name` — Name of the custom TLD list from the configuration. [`String`](/core/reference/data-types/string) **Returned value** -Returns the first significant subdomain. [`String`](/reference/data-types/string) +Returns the first significant subdomain. [`String`](/core/reference/data-types/string) **Examples** @@ -1173,11 +1173,11 @@ fragment(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the fragment identifier without the initial hash symbol. [`String`](/reference/data-types/string) +Returns the fragment identifier without the initial hash symbol. [`String`](/core/reference/data-types/string) **Examples** @@ -1208,11 +1208,11 @@ netloc(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns `username:password@host:port` from a given URL. [`String`](/reference/data-types/string) +Returns `username:password@host:port` from a given URL. [`String`](/core/reference/data-types/string) **Examples** @@ -1243,11 +1243,11 @@ path(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the path of the URL without query string. [`String`](/reference/data-types/string) +Returns the path of the URL without query string. [`String`](/core/reference/data-types/string) **Examples** @@ -1278,11 +1278,11 @@ pathFull(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the path of the URL including query string and fragment. [`String`](/reference/data-types/string) +Returns the path of the URL including query string and fragment. [`String`](/core/reference/data-types/string) **Examples** @@ -1313,12 +1313,12 @@ port(url[, default_port]) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) -- `default_port` — Optional. The default port number to be returned. `0` by default. [`UInt16`](/reference/data-types/int-uint) +- `url` — URL. [`String`](/core/reference/data-types/string) +- `default_port` — Optional. The default port number to be returned. `0` by default. [`UInt16`](/core/reference/data-types/int-uint) **Returned value** -Returns the port of the URL, or the default port if there is no port in the URL or in case of a validation error. [`UInt16`](/reference/data-types/int-uint) +Returns the port of the URL, or the default port if there is no port in the URL or in case of a validation error. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -1350,12 +1350,12 @@ portRFC(url[, default_port]) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) -- `default_port` — Optional. The default port number to be returned. `0` by default. [`UInt16`](/reference/data-types/int-uint) +- `url` — URL. [`String`](/core/reference/data-types/string) +- `default_port` — Optional. The default port number to be returned. `0` by default. [`UInt16`](/core/reference/data-types/int-uint) **Returned value** -Returns the port or the default port if there is no port in the URL or in case of a validation error. [`UInt16`](/reference/data-types/int-uint) +Returns the port or the default port if there is no port in the URL or in case of a validation error. [`UInt16`](/core/reference/data-types/int-uint) **Examples** @@ -1388,11 +1388,11 @@ protocol(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the protocol of the URL, or an empty string if it cannot be determined. [`String`](/reference/data-types/string) +Returns the protocol of the URL, or an empty string if it cannot be determined. [`String`](/core/reference/data-types/string) **Examples** @@ -1423,11 +1423,11 @@ queryString(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the query string of the URL without the initial question mark and fragment. [`String`](/reference/data-types/string) +Returns the query string of the URL without the initial question mark and fragment. [`String`](/core/reference/data-types/string) **Examples** @@ -1458,11 +1458,11 @@ queryStringAndFragment(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the query string and fragment identifier of the URL. [`String`](/reference/data-types/string) +Returns the query string and fragment identifier of the URL. [`String`](/core/reference/data-types/string) **Examples** @@ -1504,11 +1504,11 @@ topLevelDomain(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Returns the domain name if the input string can be parsed as a URL. Otherwise, an empty string. [`String`](/reference/data-types/string) +Returns the domain name if the input string can be parsed as a URL. Otherwise, an empty string. [`String`](/core/reference/data-types/string) **Examples** @@ -1540,11 +1540,11 @@ topLevelDomainRFC(url) **Arguments** -- `url` — URL. [`String`](/reference/data-types/string) +- `url` — URL. [`String`](/core/reference/data-types/string) **Returned value** -Domain name if the input string can be parsed as a URL. Otherwise, an empty string. [`String`](/reference/data-types/string) +Domain name if the input string can be parsed as a URL. Otherwise, an empty string. [`String`](/core/reference/data-types/string) **Examples** diff --git a/reference/functions/regular-functions/uuid-functions.mdx b/core/reference/functions/regular-functions/uuid-functions.mdx similarity index 78% rename from reference/functions/regular-functions/uuid-functions.mdx rename to core/reference/functions/regular-functions/uuid-functions.mdx index 5e5f45f5..b8099a90 100644 --- a/reference/functions/regular-functions/uuid-functions.mdx +++ b/core/reference/functions/regular-functions/uuid-functions.mdx @@ -70,12 +70,12 @@ UUIDNumToString(binary[, variant]) **Arguments** -- `binary` — Binary representation of a UUID. [`FixedString(16)`](/reference/data-types/fixedstring) -- `variant` — Variant as specified by [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (default), 2 = `Microsoft`. [`(U)Int*`](/reference/data-types/int-uint) +- `binary` — Binary representation of a UUID. [`FixedString(16)`](/core/reference/data-types/fixedstring) +- `variant` — Variant as specified by [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (default), 2 = `Microsoft`. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the UUID as a string. [`String`](/reference/data-types/string) +Returns the UUID as a string. [`String`](/core/reference/data-types/string) **Examples** @@ -111,7 +111,7 @@ SELECT Introduced in: v1.1.0 -Accepts a string containing 36 characters in the format `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`, and returns a [FixedString(16)](/reference/data-types/fixedstring) as its binary representation, with its format optionally specified by `variant` (`Big-endian` by default). +Accepts a string containing 36 characters in the format `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`, and returns a [FixedString(16)](/core/reference/data-types/fixedstring) as its binary representation, with its format optionally specified by `variant` (`Big-endian` by default). **Syntax** @@ -122,12 +122,12 @@ UUIDStringToNum(string[, variant = 1]) **Arguments** -- `string` — A string or fixed-string of 36 characters) [`String`](/reference/data-types/string) or [`FixedString(36)`](/reference/data-types/fixedstring) -- `variant` — Variant as specified by [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (default), 2 = `Microsoft`. [`(U)Int*`](/reference/data-types/int-uint) +- `string` — A string or fixed-string of 36 characters) [`String`](/core/reference/data-types/string) or [`FixedString(36)`](/core/reference/data-types/fixedstring) +- `variant` — Variant as specified by [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (default), 2 = `Microsoft`. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns the binary representation of `string`. [`FixedString(16)`](/reference/data-types/fixedstring) +Returns the binary representation of `string`. [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -163,7 +163,7 @@ SELECT Introduced in: v24.5.0 -Accepts a [UUID](/reference/data-types/uuid) and returns its binary representation as a [FixedString(16)](/reference/data-types/fixedstring), with its format optionally specified by `variant` (`Big-endian` by default). +Accepts a [UUID](/core/reference/data-types/uuid) and returns its binary representation as a [FixedString(16)](/core/reference/data-types/fixedstring), with its format optionally specified by `variant` (`Big-endian` by default). This function replaces calls to two separate functions `UUIDStringToNum(toString(uuid))` so no intermediate conversion from UUID to string is required to extract bytes from a UUID. @@ -175,12 +175,12 @@ UUIDToNum(uuid[, variant = 1]) **Arguments** -- `uuid` — UUID. [`String`](/reference/data-types/string) or [`FixedString`](/reference/data-types/fixedstring) -- `variant` — Variant as specified by [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (default), 2 = `Microsoft`. [`(U)Int*`](/reference/data-types/int-uint) +- `uuid` — UUID. [`String`](/core/reference/data-types/string) or [`FixedString`](/core/reference/data-types/fixedstring) +- `variant` — Variant as specified by [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (default), 2 = `Microsoft`. [`(U)Int*`](/core/reference/data-types/int-uint) **Returned value** -Returns a binary representation of the UUID. [`FixedString(16)`](/reference/data-types/fixedstring) +Returns a binary representation of the UUID. [`FixedString(16)`](/core/reference/data-types/fixedstring) **Examples** @@ -227,12 +227,12 @@ UUIDv7ToDateTime(uuid[, timezone]) **Arguments** -- `uuid` — A UUID version 7. [`String`](/reference/data-types/string) -- `timezone` — Optional. [Timezone name](/reference/settings/server-settings/settings#timezone) for the returned value. [`String`](/reference/data-types/string) +- `uuid` — A UUID version 7. [`String`](/core/reference/data-types/string) +- `timezone` — Optional. [Timezone name](/core/reference/settings/server-settings/settings#timezone) for the returned value. [`String`](/core/reference/data-types/string) **Returned value** -Returns a timestamp with milliseconds precision. If the UUID is not a valid version 7 UUID, it returns `1970-01-01 00:00:00.000`. [`DateTime64(3)`](/reference/data-types/datetime64) +Returns a timestamp with milliseconds precision. If the UUID is not a valid version 7 UUID, it returns `1970-01-01 00:00:00.000`. [`DateTime64(3)`](/core/reference/data-types/datetime64) **Examples** @@ -267,13 +267,13 @@ Introduced in: v21.10.0 -This function is deprecated and can only be used if setting [`allow_deprecated_snowflake_conversion_functions`](/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) is enabled. +This function is deprecated and can only be used if setting [`allow_deprecated_snowflake_conversion_functions`](/core/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) is enabled. The function will be removed at some point in future. Please use function [dateTime64ToSnowflakeID](#dateTime64ToSnowflakeID) instead. -Converts a [DateTime64](/reference/data-types/datetime64) to the first [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) at the giving time. +Converts a [DateTime64](/core/reference/data-types/datetime64) to the first [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) at the giving time. **Syntax** @@ -284,11 +284,11 @@ dateTime64ToSnowflake(value) **Arguments** -- `value` — Date with time. [`DateTime64`](/reference/data-types/datetime64) +- `value` — Date with time. [`DateTime64`](/core/reference/data-types/datetime64) **Returned value** -Returns the input value converted as the first Snowflake ID at that time. [`Int64`](/reference/data-types/int-uint) +Returns the input value converted as the first Snowflake ID at that time. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -308,7 +308,7 @@ WITH toDateTime64('2021-08-15 18:57:56.492', 3, 'Asia/Shanghai') AS dt64 SELECT Introduced in: v24.6.0 -Converts a [DateTime64](/reference/data-types/datetime64) value to the first [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) at the giving time. +Converts a [DateTime64](/core/reference/data-types/datetime64) value to the first [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) at the giving time. **Syntax** @@ -318,12 +318,12 @@ dateTime64ToSnowflakeID(value[, epoch]) **Arguments** -- `value` — Date with time. [`DateTime64`](/reference/data-types/datetime64) -- `epoch` — Epoch of the Snowflake ID in milliseconds since 1970-01-01. Defaults to 0 (1970-01-01). For the Twitter/X epoch (2015-01-01), provide 1288834974657. [`UInt*`](/reference/data-types/int-uint) +- `value` — Date with time. [`DateTime64`](/core/reference/data-types/datetime64) +- `epoch` — Epoch of the Snowflake ID in milliseconds since 1970-01-01. Defaults to 0 (1970-01-01). For the Twitter/X epoch (2015-01-01), provide 1288834974657. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Input value converted to [`UInt64`](/reference/data-types/int-uint) +Input value converted to [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -344,13 +344,13 @@ Introduced in: v21.10.0 -This function is deprecated and can only be used if setting [`allow_deprecated_snowflake_conversion_functions`](/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) is enabled. +This function is deprecated and can only be used if setting [`allow_deprecated_snowflake_conversion_functions`](/core/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) is enabled. The function will be removed at some point in future. Please use function [dateTimeToSnowflakeID](#dateTimeToSnowflakeID) instead. -Converts a [DateTime](/reference/data-types/datetime) value to the first [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) at the giving time. +Converts a [DateTime](/core/reference/data-types/datetime) value to the first [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) at the giving time. **Syntax** @@ -361,11 +361,11 @@ dateTimeToSnowflake(value) **Arguments** -- `value` — Date with time. [`DateTime`](/reference/data-types/datetime) +- `value` — Date with time. [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns the input value as the first Snowflake ID at that time. [`Int64`](/reference/data-types/int-uint) +Returns the input value as the first Snowflake ID at that time. [`Int64`](/core/reference/data-types/int-uint) **Examples** @@ -385,7 +385,7 @@ WITH toDateTime('2021-08-15 18:57:56', 'Asia/Shanghai') AS dt SELECT dateTimeToS Introduced in: v24.6.0 -Converts a [DateTime](/reference/data-types/datetime) value to the first [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) at the giving time. +Converts a [DateTime](/core/reference/data-types/datetime) value to the first [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) at the giving time. **Syntax** @@ -395,12 +395,12 @@ dateTimeToSnowflakeID(value[, epoch]) **Arguments** -- `value` — Date with time. [`DateTime`](/reference/data-types/datetime) -- `epoch` — Epoch of the Snowflake ID in milliseconds since 1970-01-01. Defaults to 0 (1970-01-01). For the Twitter/X epoch (2015-01-01), provide 1288834974657. [`UInt*`](/reference/data-types/int-uint) +- `value` — Date with time. [`DateTime`](/core/reference/data-types/datetime) +- `epoch` — Epoch of the Snowflake ID in milliseconds since 1970-01-01. Defaults to 0 (1970-01-01). For the Twitter/X epoch (2015-01-01), provide 1288834974657. [`UInt*`](/core/reference/data-types/int-uint) **Returned value** -Input value converted to [`UInt64`](/reference/data-types/int-uint) +Input value converted to [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -418,7 +418,7 @@ SELECT dateTimeToSnowflakeID(toDateTime('2021-08-15 18:57:56', 'Asia/Shanghai')) Introduced in: v25.8.0 -Converts a [DateTime](/reference/data-types/datetime) value to a [UUIDv7](https://en.wikipedia.org/wiki/UUID#Version_7) at the given time. +Converts a [DateTime](/core/reference/data-types/datetime) value to a [UUIDv7](https://en.wikipedia.org/wiki/UUID#Version_7) at the given time. See section ["UUIDv7 generation"](#uuidv7-generation) for details on UUID structure, counter management, and concurrency guarantees. @@ -435,11 +435,11 @@ dateTimeToUUIDv7(value) **Arguments** -- `value` — Date with time. [`DateTime`](/reference/data-types/datetime) +- `value` — Date with time. [`DateTime`](/core/reference/data-types/datetime) **Returned value** -Returns a UUIDv7. [`UUID`](/reference/data-types/uuid) +Returns a UUIDv7. [`UUID`](/core/reference/data-types/uuid) **Examples** @@ -490,11 +490,11 @@ generateSnowflakeID([expr, [machine_id]]) **Arguments** -- `expr` — An arbitrary [expression](/reference/syntax#expressions) used to bypass [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) if the function is called multiple times in a query. The value of the expression has no effect on the returned Snowflake ID. Optional. - `machine_id` — A machine ID, the lowest 10 bits are used. [Int64](/reference/data-types/int-uint). Optional. +- `expr` — An arbitrary [expression](/core/reference/syntax#expressions) used to bypass [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) if the function is called multiple times in a query. The value of the expression has no effect on the returned Snowflake ID. Optional. - `machine_id` — A machine ID, the lowest 10 bits are used. [Int64](/core/reference/data-types/int-uint). Optional. **Returned value** -Returns the Snowflake ID. [`UInt64`](/reference/data-types/int-uint) +Returns the Snowflake ID. [`UInt64`](/core/reference/data-types/int-uint) **Examples** @@ -544,7 +544,7 @@ SELECT generateSnowflakeID('expr', 1); Introduced in: v1.1.0 -Generates a [version 4](https://tools.ietf.org/html/rfc4122#section-4.4) [UUID](/reference/data-types/uuid). +Generates a [version 4](https://tools.ietf.org/html/rfc4122#section-4.4) [UUID](/core/reference/data-types/uuid). **Syntax** @@ -554,11 +554,11 @@ generateUUIDv4([expr]) **Arguments** -- `expr` — Optional. An arbitrary expression used to bypass [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) if the function is called multiple times in a query. The value of the expression has no effect on the returned UUID. +- `expr` — Optional. An arbitrary expression used to bypass [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) if the function is called multiple times in a query. The value of the expression has no effect on the returned UUID. **Returned value** -Returns a UUIDv4. [`UUID`](/reference/data-types/uuid) +Returns a UUIDv4. [`UUID`](/core/reference/data-types/uuid) **Examples** @@ -592,7 +592,7 @@ SELECT generateUUIDv4(1), generateUUIDv4(1); Introduced in: v24.5.0 -Generates a [version 7](https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-04) [UUID](/reference/data-types/uuid). +Generates a [version 7](https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-04) [UUID](/core/reference/data-types/uuid). See section ["UUIDv7 generation"](#uuidv7-generation) for details on UUID structure, counter management, and concurrency guarantees. @@ -609,11 +609,11 @@ generateUUIDv7([expr]) **Arguments** -- `expr` — Optional. An arbitrary expression used to bypass [common subexpression elimination](/reference/functions/regular-functions/overview#common-subexpression-elimination) if the function is called multiple times in a query. The value of the expression has no effect on the returned UUID. [`Any`](/reference/data-types) +- `expr` — Optional. An arbitrary expression used to bypass [common subexpression elimination](/core/reference/functions/regular-functions/overview#common-subexpression-elimination) if the function is called multiple times in a query. The value of the expression has no effect on the returned UUID. [`Any`](/core/reference/data-types) **Returned value** -Returns a UUIDv7. [`UUID`](/reference/data-types/uuid) +Returns a UUIDv7. [`UUID`](/core/reference/data-types/uuid) **Examples** @@ -647,7 +647,7 @@ SELECT generateUUIDv7(1), generateUUIDv7(1); Introduced in: v24.6.0 -Returns the timestamp component of a [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) as a value of type [DateTime](/reference/data-types/datetime). +Returns the timestamp component of a [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) as a value of type [DateTime](/core/reference/data-types/datetime). **Syntax** @@ -658,13 +658,13 @@ snowflakeIDToDateTime(value[, epoch[, time_zone]]) **Arguments** -- `value` — Snowflake ID. [`UInt64`](/reference/data-types/int-uint) -- `epoch` — Optional. Epoch of the Snowflake ID in milliseconds since 1970-01-01. Defaults to 0 (1970-01-01). For the Twitter/X epoch (2015-01-01), provide 1288834974657. [`UInt*`](/reference/data-types/int-uint) -- `time_zone` — Optional. [Timezone](/reference/settings/server-settings/settings#timezone). The function parses `time_string` according to the timezone. [`String`](/reference/data-types/string) +- `value` — Snowflake ID. [`UInt64`](/core/reference/data-types/int-uint) +- `epoch` — Optional. Epoch of the Snowflake ID in milliseconds since 1970-01-01. Defaults to 0 (1970-01-01). For the Twitter/X epoch (2015-01-01), provide 1288834974657. [`UInt*`](/core/reference/data-types/int-uint) +- `time_zone` — Optional. [Timezone](/core/reference/settings/server-settings/settings#timezone). The function parses `time_string` according to the timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns the timestamp component of `value`. [`DateTime`](/reference/data-types/datetime) +Returns the timestamp component of `value`. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -684,7 +684,7 @@ SELECT snowflakeIDToDateTime(7204436857747984384) AS res Introduced in: v24.6.0 -Returns the timestamp component of a [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) as a value of type [DateTime64](/reference/data-types/datetime64). +Returns the timestamp component of a [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) as a value of type [DateTime64](/core/reference/data-types/datetime64). **Syntax** @@ -695,13 +695,13 @@ snowflakeIDToDateTime64(value[, epoch[, time_zone]]) **Arguments** -- `value` — Snowflake ID. [`UInt64`](/reference/data-types/int-uint) -- `epoch` — Optional. Epoch of the Snowflake ID in milliseconds since 1970-01-01. Defaults to 0 (1970-01-01). For the Twitter/X epoch (2015-01-01), provide 1288834974657. [`UInt*`](/reference/data-types/int-uint) -- `time_zone` — Optional. [Timezone](/reference/settings/server-settings/settings#timezone). The function parses `time_string` according to the timezone. [`String`](/reference/data-types/string) +- `value` — Snowflake ID. [`UInt64`](/core/reference/data-types/int-uint) +- `epoch` — Optional. Epoch of the Snowflake ID in milliseconds since 1970-01-01. Defaults to 0 (1970-01-01). For the Twitter/X epoch (2015-01-01), provide 1288834974657. [`UInt*`](/core/reference/data-types/int-uint) +- `time_zone` — Optional. [Timezone](/core/reference/settings/server-settings/settings#timezone). The function parses `time_string` according to the timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns the timestamp component of `value` as a `DateTime64` with scale = 3, i.e. millisecond precision. [`DateTime64`](/reference/data-types/datetime64) +Returns the timestamp component of `value` as a `DateTime64` with scale = 3, i.e. millisecond precision. [`DateTime64`](/core/reference/data-types/datetime64) **Examples** @@ -724,13 +724,13 @@ Introduced in: v21.10.0 -This function is deprecated and can only be used if setting [`allow_deprecated_snowflake_conversion_functions`](/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) is enabled. +This function is deprecated and can only be used if setting [`allow_deprecated_snowflake_conversion_functions`](/core/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) is enabled. The function will be removed at some point in future. Please use function [`snowflakeIDToDateTime`](#snowflakeIDToDateTime) instead. -Extracts the timestamp component of a [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) in [DateTime](/reference/data-types/datetime) format. +Extracts the timestamp component of a [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) in [DateTime](/core/reference/data-types/datetime) format. **Syntax** @@ -741,12 +741,12 @@ snowflakeToDateTime(value[, time_zone]) **Arguments** -- `value` — Snowflake ID. [`Int64`](/reference/data-types/int-uint) -- `time_zone` — Optional. [Timezone](/reference/settings/server-settings/settings#timezone). The function parses `time_string` according to the timezone. [`String`](/reference/data-types/string) +- `value` — Snowflake ID. [`Int64`](/core/reference/data-types/int-uint) +- `time_zone` — Optional. [Timezone](/core/reference/settings/server-settings/settings#timezone). The function parses `time_string` according to the timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns the timestamp component of `value`. [`DateTime`](/reference/data-types/datetime) +Returns the timestamp component of `value`. [`DateTime`](/core/reference/data-types/datetime) **Examples** @@ -769,13 +769,13 @@ Introduced in: v21.10.0 -This function is deprecated and can only be used if setting [`allow_deprecated_snowflake_conversion_functions`](/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) is enabled. +This function is deprecated and can only be used if setting [`allow_deprecated_snowflake_conversion_functions`](/core/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) is enabled. The function will be removed at some point in future. Please use function [`snowflakeIDToDateTime64`](#snowflakeIDToDateTime64) instead. -Extracts the timestamp component of a [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) in [DateTime64](/reference/data-types/datetime64) format. +Extracts the timestamp component of a [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) in [DateTime64](/core/reference/data-types/datetime64) format. @@ -787,12 +787,12 @@ snowflakeToDateTime64(value[, time_zone]) **Arguments** -- `value` — Snowflake ID. [`Int64`](/reference/data-types/int-uint) -- `time_zone` — Optional. [Timezone](/reference/settings/server-settings/settings#timezone). The function parses `time_string` according to the timezone. [`String`](/reference/data-types/string) +- `value` — Snowflake ID. [`Int64`](/core/reference/data-types/int-uint) +- `time_zone` — Optional. [Timezone](/core/reference/settings/server-settings/settings#timezone). The function parses `time_string` according to the timezone. [`String`](/core/reference/data-types/string) **Returned value** -Returns the timestamp component of `value`. [`DateTime64(3)`](/reference/data-types/datetime64) +Returns the timestamp component of `value`. [`DateTime64(3)`](/core/reference/data-types/datetime64) **Examples** @@ -830,7 +830,7 @@ toUUIDOrDefault(string, default) **Returned value** -Returns the converted UUID if successful, or the default UUID if conversion fails. [`UUID`](/reference/data-types/uuid) +Returns the converted UUID if successful, or the default UUID if conversion fails. [`UUID`](/core/reference/data-types/uuid) **Examples** @@ -864,7 +864,7 @@ Introduced in: v20.12.0 Converts an input value to a value of type `UUID` but returns `NULL` in case of an error. -Like [`toUUID`](/reference/functions/regular-functions/type-conversion-functions#toUUID) but returns `NULL` instead of throwing an exception on conversion errors. +Like [`toUUID`](/core/reference/functions/regular-functions/type-conversion-functions#toUUID) but returns `NULL` instead of throwing an exception on conversion errors. Supported arguments: - String representations of UUID in standard format (8-4-4-4-12 hexadecimal digits). @@ -884,11 +884,11 @@ toUUIDOrNull(x) **Arguments** -- `x` — A string representation of a UUID. [`String`](/reference/data-types/string) +- `x` — A string representation of a UUID. [`String`](/core/reference/data-types/string) **Returned value** -Returns a UUID value if successful, otherwise `NULL`. [`UUID`](/reference/data-types/uuid) or [`NULL`](/reference/syntax#null) +Returns a UUID value if successful, otherwise `NULL`. [`UUID`](/core/reference/data-types/uuid) or [`NULL`](/core/reference/syntax#null) **Examples** diff --git a/reference/functions/regular-functions/wasm_udf.mdx b/core/reference/functions/regular-functions/wasm_udf.mdx similarity index 99% rename from reference/functions/regular-functions/wasm_udf.mdx rename to core/reference/functions/regular-functions/wasm_udf.mdx index 3dcc940f..2c9b8ea7 100644 --- a/reference/functions/regular-functions/wasm_udf.mdx +++ b/core/reference/functions/regular-functions/wasm_udf.mdx @@ -315,4 +315,4 @@ SELECT my_wasm_udf(column) FROM table; ## See also -- [ClickHouse UDF overview](/reference/functions/regular-functions/udf) +- [ClickHouse UDF overview](/core/reference/functions/regular-functions/udf) diff --git a/reference/functions/table-functions/arrowflight.mdx b/core/reference/functions/table-functions/arrowflight.mdx similarity index 83% rename from reference/functions/table-functions/arrowflight.mdx rename to core/reference/functions/table-functions/arrowflight.mdx index dbbbce49..04a126b3 100644 --- a/reference/functions/table-functions/arrowflight.mdx +++ b/core/reference/functions/table-functions/arrowflight.mdx @@ -6,7 +6,7 @@ title: 'arrowFlight' doc_type: 'reference' --- -Allows to perform queries on data exposed via an [Apache Arrow Flight](/integrations/connectors/data-integrations/drivers-and-interfaces/arrowflight) server. +Allows to perform queries on data exposed via an [Apache Arrow Flight](/core/concepts/features/interfaces/arrowflight) server. **Syntax** @@ -16,8 +16,8 @@ arrowFlight('host:port', 'dataset_name' [, 'username', 'password']) **Arguments** -* `host:port` — Address of the Arrow Flight server. [String](/reference/data-types/string). -* `dataset_name` — Name of the dataset or descriptor available on the Arrow Flight server. [String](/reference/data-types/string). +* `host:port` — Address of the Arrow Flight server. [String](/core/reference/data-types/string). +* `dataset_name` — Name of the dataset or descriptor available on the Arrow Flight server. [String](/core/reference/data-types/string). * `username` - Username to use with basic HTTP style authentication. * `password` - Password to use with basic HTTP style authentication. If `username` and `password` are not specified, it means that authentication is not used @@ -43,5 +43,5 @@ SELECT * FROM arrowFlight('127.0.0.1:9005', 'sample_dataset') ORDER BY id; **See Also** -* [Arrow Flight](/reference/engines/table-engines/integrations/arrowflight) table engine +* [Arrow Flight](/core/reference/engines/table-engines/integrations/arrowflight) table engine * [Apache Arrow Flight SQL](https://arrow.apache.org/docs/format/FlightSql.html) diff --git a/reference/functions/table-functions/azureBlobStorage.mdx b/core/reference/functions/table-functions/azureBlobStorage.mdx similarity index 96% rename from reference/functions/table-functions/azureBlobStorage.mdx rename to core/reference/functions/table-functions/azureBlobStorage.mdx index 1b7a182f..22868ee6 100644 --- a/reference/functions/table-functions/azureBlobStorage.mdx +++ b/core/reference/functions/table-functions/azureBlobStorage.mdx @@ -13,7 +13,7 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ # azureBlobStorage Table Function -Provides a table-like interface to select/insert files in [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs). This table function is similar to the [s3 function](/reference/functions/table-functions/s3). +Provides a table-like interface to select/insert files in [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs). This table function is similar to the [s3 function](/core/reference/functions/table-functions/s3). ## Syntax {#syntax} @@ -57,7 +57,7 @@ azureBlobStorage(named_collection[, option=value [,..]]) | `blobpath` | File path. Supports the following wildcards in read-only mode: `*`, `**`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` — numbers, `'abc'`, `'def'` — strings. | | `account_name` | Storage account name. **Required** when using `storage_account_url` without SAS; must **not** be passed when using `connection_string`. | | `account_key` | Storage account key. **Required** when using `storage_account_url` without SAS; must **not** be passed when using `connection_string`. | -| `format` | The [format](/reference/formats) of the file. | +| `format` | The [format](/core/reference/formats) of the file. | | `compression` | Supported values: `none`, `gzip/gz`, `brotli/br`, `xz/LZMA`, `zstd/zst`. By default, it will autodetect compression by file extension (same as setting to `auto`). | | `structure` | Structure of the table. Format `'column1_name column1_type, column2_name column2_type, ...'`. | | `partition_strategy` | Optional. Supported values: `WILDCARD` or `HIVE`. `WILDCARD` requires a `{_partition_id}` in the path, which is replaced with the partition key. `HIVE` does not allow wildcards, assumes the path is the table root, and generates Hive-style partitioned directories with Snowflake IDs as filenames and the file format as the extension. Defaults to `WILDCARD`. | @@ -66,7 +66,7 @@ azureBlobStorage(named_collection[, option=value [,..]]) ## Named Collections {#named-collections} -Arguments can also be passed using [named collections](/concepts/features/configuration/server-config/named-collections). In this case the following keys are supported: +Arguments can also be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). In this case the following keys are supported: | Key | Required | Description | |----------------------------------|----------|--------------------------------------------------------------------------------------------------------| @@ -272,4 +272,4 @@ FROM azureBlobStorage('https://clickhousedocstest.blob.core.windows.net/?sp=r&st ``` ## Related {#related} -- [AzureBlobStorage Table Engine](/reference/engines/table-engines/integrations/azureBlobStorage) +- [AzureBlobStorage Table Engine](/core/reference/engines/table-engines/integrations/azureBlobStorage) diff --git a/reference/functions/table-functions/azureBlobStorageCluster.mdx b/core/reference/functions/table-functions/azureBlobStorageCluster.mdx similarity index 88% rename from reference/functions/table-functions/azureBlobStorageCluster.mdx rename to core/reference/functions/table-functions/azureBlobStorageCluster.mdx index d3d000b2..9f4a6fc4 100644 --- a/reference/functions/table-functions/azureBlobStorageCluster.mdx +++ b/core/reference/functions/table-functions/azureBlobStorageCluster.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' --- Allows processing files from [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs) in parallel with many nodes in a specified cluster. On initiator it creates a connection to all nodes in the cluster, discloses asterisks in S3 file path, and dispatches each file dynamically. On the worker node it asks the initiator about the next task to process and processes it. This is repeated until all tasks are finished. -This table function is similar to the [s3Cluster function](/reference/functions/table-functions/s3Cluster). +This table function is similar to the [s3Cluster function](/core/reference/functions/table-functions/s3Cluster). ## Syntax {#syntax} @@ -26,7 +26,7 @@ azureBlobStorageCluster(cluster_name, connection_string|storage_account_url, con | `blobpath` | file path. Supports following wildcards in readonly mode: `*`, `**`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` — numbers, `'abc'`, `'def'` — strings. | | `account_name` | if storage_account_url is used, then account name can be specified here | | `account_key` | if storage_account_url is used, then account key can be specified here | -| `format` | The [format](/reference/formats) of the file. | +| `format` | The [format](/core/reference/formats) of the file. | | `compression` | Supported values: `none`, `gzip/gz`, `brotli/br`, `xz/LZMA`, `zstd/zst`. By default, it will autodetect compression by file extension. (same as setting to `auto`). | | `structure` | Structure of the table. Format `'column1_name column1_type, column2_name column2_type, ...'`. | @@ -36,7 +36,7 @@ A table with the specified structure for reading or writing data in the specifie ## Examples {#examples} -Similar to the [AzureBlobStorage](/reference/engines/table-engines/integrations/azureBlobStorage) table engine, users can use Azurite emulator for local Azure Storage development. Further details [here](https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=docker-hub%2Cblob-storage). Below we assume Azurite is available at the hostname `azurite1`. +Similar to the [AzureBlobStorage](/core/reference/engines/table-engines/integrations/azureBlobStorage) table engine, users can use Azurite emulator for local Azure Storage development. Further details [here](https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=docker-hub%2Cblob-storage). Below we assume Azurite is available at the hostname `azurite1`. Select the count for the file `test_cluster_*.csv`, using all the nodes in the `cluster_simple` cluster: @@ -49,9 +49,9 @@ SELECT count(*) FROM azureBlobStorageCluster( ## Using Shared Access Signatures (SAS) {#using-shared-access-signatures-sas-sas-tokens} -See [azureBlobStorage](/reference/functions/table-functions/azureBlobStorage#using-shared-access-signatures-sas-sas-tokens) for examples. +See [azureBlobStorage](/core/reference/functions/table-functions/azureBlobStorage#using-shared-access-signatures-sas-sas-tokens) for examples. ## Related {#related} -- [AzureBlobStorage engine](/reference/engines/table-engines/integrations/azureBlobStorage) -- [azureBlobStorage table function](/reference/functions/table-functions/azureBlobStorage) +- [AzureBlobStorage engine](/core/reference/engines/table-engines/integrations/azureBlobStorage) +- [azureBlobStorage table function](/core/reference/functions/table-functions/azureBlobStorage) diff --git a/reference/functions/table-functions/cluster.mdx b/core/reference/functions/table-functions/cluster.mdx similarity index 80% rename from reference/functions/table-functions/cluster.mdx rename to core/reference/functions/table-functions/cluster.mdx index 135eff64..2a9deb7b 100644 --- a/reference/functions/table-functions/cluster.mdx +++ b/core/reference/functions/table-functions/cluster.mdx @@ -7,12 +7,12 @@ title: 'clusterAllReplicas' doc_type: 'reference' --- -Allows accessing all shards (configured in the `remote_servers` section) of a cluster without creating a [Distributed](/reference/engines/table-engines/special/distributed) table. Only one replica of each shard is queried. +Allows accessing all shards (configured in the `remote_servers` section) of a cluster without creating a [Distributed](/core/reference/engines/table-engines/special/distributed) table. Only one replica of each shard is queried. `clusterAllReplicas` function — same as `cluster`, but all replicas are queried. Each replica in a cluster is used as a separate shard/connection. -All available clusters are listed in the [system.clusters](/reference/system-tables/clusters) table. +All available clusters are listed in the [system.clusters](/core/reference/system-tables/clusters) table. ## Syntax {#syntax} @@ -37,7 +37,7 @@ The dataset from clusters. ## Using macros {#using_macros} -`cluster_name` can contain macros — substitution in `{}`. The substituted value is taken from the [macros](/reference/settings/server-settings/settings#macros) section of the server configuration file. +`cluster_name` can contain macros — substitution in `{}`. The substituted value is taken from the [macros](/core/reference/settings/server-settings/settings#macros) section of the server configuration file. Example: @@ -55,9 +55,9 @@ The `cluster` and `clusterAllReplicas` table functions can be useful in the foll - Queries to various ClickHouse clusters and replicas for research purposes. - Infrequent distributed requests that are made manually. -Connection settings like `host`, `port`, `user`, `password`, `compression`, `secure` are taken from `` config section. See details in [Distributed engine](/reference/engines/table-engines/special/distributed). +Connection settings like `host`, `port`, `user`, `password`, `compression`, `secure` are taken from `` config section. See details in [Distributed engine](/core/reference/engines/table-engines/special/distributed). ## Related {#related} -- [skip_unavailable_shards](/reference/settings/session-settings#skip_unavailable_shards) -- [load_balancing](/reference/settings/session-settings#load_balancing) +- [skip_unavailable_shards](/core/reference/settings/session-settings#skip_unavailable_shards) +- [load_balancing](/core/reference/settings/session-settings#load_balancing) diff --git a/reference/functions/table-functions/deltalake.mdx b/core/reference/functions/table-functions/deltalake.mdx similarity index 96% rename from reference/functions/table-functions/deltalake.mdx rename to core/reference/functions/table-functions/deltalake.mdx index e31a9e06..e986d6e5 100644 --- a/reference/functions/table-functions/deltalake.mdx +++ b/core/reference/functions/table-functions/deltalake.mdx @@ -106,5 +106,5 @@ Query id: 65032944-bed6-4d45-86b3-a71205a2b659 ## Related {#related} -- [DeltaLake engine](/reference/engines/table-engines/integrations/deltalake) -- [DeltaLake cluster table function](/reference/functions/table-functions/deltalakeCluster) +- [DeltaLake engine](/core/reference/engines/table-engines/integrations/deltalake) +- [DeltaLake cluster table function](/core/reference/functions/table-functions/deltalakeCluster) diff --git a/reference/functions/table-functions/deltalakeCluster.mdx b/core/reference/functions/table-functions/deltalakeCluster.mdx similarity index 86% rename from reference/functions/table-functions/deltalakeCluster.mdx rename to core/reference/functions/table-functions/deltalakeCluster.mdx index 137a522a..27127ba5 100644 --- a/reference/functions/table-functions/deltalakeCluster.mdx +++ b/core/reference/functions/table-functions/deltalakeCluster.mdx @@ -6,7 +6,7 @@ title: 'deltaLakeCluster' doc_type: 'reference' --- -This is an extension to the [deltaLake](/reference/functions/table-functions/deltalake) table function. +This is an extension to the [deltaLake](/core/reference/functions/table-functions/deltalake) table function. Allows processing files from [Delta Lake](https://github.com/delta-io/delta) tables in Amazon S3 in parallel from many nodes in a specified cluster. On initiator it creates a connection to all nodes in the cluster and dispatches each file dynamically. On the worker node it asks the initiator about the next task to process and processes it. This is repeated until all tasks are finished. @@ -27,7 +27,7 @@ deltaLakeAzureCluster(cluster_name, named_collection[, option=value [,..]]) ## Arguments {#arguments} - `cluster_name` — Name of a cluster that is used to build a set of addresses and connection parameters to remote and local servers. -- Description of all other arguments coincides with description of arguments in equivalent [deltaLake](/reference/functions/table-functions/deltalake) table function. +- Description of all other arguments coincides with description of arguments in equivalent [deltaLake](/core/reference/functions/table-functions/deltalake) table function. - An optional `extra_credentials` parameter can be used to pass a `role_arn` for role-based access in ClickHouse Cloud. See [Secure S3](/products/cloud/guides/data-sources/accessing-s3-data-securely) for configuration steps. ## Returned value {#returned_value} @@ -44,5 +44,5 @@ A table with the specified structure for reading data from cluster in the specif ## Related {#related} -- [deltaLake engine](/reference/engines/table-engines/integrations/deltalake) -- [deltaLake table function](/reference/functions/table-functions/deltalake) +- [deltaLake engine](/core/reference/engines/table-engines/integrations/deltalake) +- [deltaLake table function](/core/reference/functions/table-functions/deltalake) diff --git a/reference/functions/table-functions/dictionary.mdx b/core/reference/functions/table-functions/dictionary.mdx similarity index 74% rename from reference/functions/table-functions/dictionary.mdx rename to core/reference/functions/table-functions/dictionary.mdx index c45e0b03..56dbc9c4 100644 --- a/reference/functions/table-functions/dictionary.mdx +++ b/core/reference/functions/table-functions/dictionary.mdx @@ -7,7 +7,7 @@ title: 'dictionary' doc_type: 'reference' --- -Displays the [dictionary](/reference/statements/create/dictionary) data as a ClickHouse table. Works the same way as [Dictionary](/reference/engines/table-engines/special/dictionary) engine. +Displays the [dictionary](/core/reference/statements/create/dictionary) data as a ClickHouse table. Works the same way as [Dictionary](/core/reference/engines/table-engines/special/dictionary) engine. ## Syntax {#syntax} @@ -17,7 +17,7 @@ dictionary('dict') ## Arguments {#arguments} -- `dict` — A dictionary name. [String](/reference/data-types/string). +- `dict` — A dictionary name. [String](/core/reference/data-types/string). ## Returned value {#returned_value} @@ -54,4 +54,4 @@ SELECT * FROM dictionary('new_dictionary'); ## Related {#related} -- [Dictionary engine](/reference/engines/table-engines/special/dictionary) +- [Dictionary engine](/core/reference/engines/table-engines/special/dictionary) diff --git a/reference/functions/table-functions/executable.mdx b/core/reference/functions/table-functions/executable.mdx similarity index 94% rename from reference/functions/table-functions/executable.mdx rename to core/reference/functions/table-functions/executable.mdx index 1422a84b..c6745b46 100644 --- a/reference/functions/table-functions/executable.mdx +++ b/core/reference/functions/table-functions/executable.mdx @@ -31,7 +31,7 @@ executable(script_name, format, structure, [input_query...] [,SETTINGS ...]) - `input_query`: an optional query (or collection or queries) whose results are passed to the script via **stdin** -If you are going to invoke the same script repeatedly with the same input queries, consider using the [`Executable` table engine](/reference/engines/table-engines/special/executable). +If you are going to invoke the same script repeatedly with the same input queries, consider using the [`Executable` table engine](/core/reference/engines/table-engines/special/executable). The following Python script is named `generate_random.py` and is saved in the `user_scripts` folder. It reads in a number `i` and prints `i` random strings, with each string preceded by a number that is separated by a tab: @@ -96,7 +96,7 @@ The response looks like: ## Passing Query Results to a Script {#passing-query-results-to-a-script} -Be sure to check out the example in the `Executable` table engine on [how to pass query results to a script](/reference/engines/table-engines/special/executable#passing-query-results-to-a-script). Here is how you execute the same script in that example using the `executable` table function: +Be sure to check out the example in the `Executable` table engine on [how to pass query results to a script](/core/reference/engines/table-engines/special/executable#passing-query-results-to-a-script). Here is how you execute the same script in that example using the `executable` table function: ```sql SELECT * FROM executable( diff --git a/reference/functions/table-functions/file.mdx b/core/reference/functions/table-functions/file.mdx similarity index 79% rename from reference/functions/table-functions/file.mdx rename to core/reference/functions/table-functions/file.mdx index f1244708..06e9c5cd 100644 --- a/reference/functions/table-functions/file.mdx +++ b/core/reference/functions/table-functions/file.mdx @@ -14,7 +14,7 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ # file Table Function -A table engine which provides a table-like interface to SELECT from and INSERT into files, similar to the [s3](/reference/functions/table-functions/url) table function. Use `file()` when working with local files, and `s3()` when working with buckets in object storage such as S3, GCS, or MinIO. +A table engine which provides a table-like interface to SELECT from and INSERT into files, similar to the [s3](/core/reference/functions/table-functions/url) table function. Use `file()` when working with local files, and `s3()` when working with buckets in object storage such as S3, GCS, or MinIO. The `file` function can be used in `SELECT` and `INSERT` queries to read from or write to files. @@ -34,16 +34,16 @@ file(['file1.csv', 'file2.csv'], 'CSV', 'column1 UInt32, column2 UInt32') | Parameter | Description | |-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `path` | The relative path to the file from [user_files_path](/reference/settings/server-settings/settings#user_files_path), or an `Array(String)` of paths in `SELECT` queries. Supports in read-only mode the following [globs](#globs-in-path): `*`, `?`, `{abc,def}` (with `'abc'` and `'def'` being strings) and `{N..M}` (with `N` and `M` being numbers). | +| `path` | The relative path to the file from [user_files_path](/core/reference/settings/server-settings/settings#user_files_path), or an `Array(String)` of paths in `SELECT` queries. Supports in read-only mode the following [globs](#globs-in-path): `*`, `?`, `{abc,def}` (with `'abc'` and `'def'` being strings) and `{N..M}` (with `N` and `M` being numbers). | | `path_to_archive` | The relative path to a zip/tar/7z archive. Supports the same globs as `path`. | -| `format` | The [format](/reference/formats) of the file. | +| `format` | The [format](/core/reference/formats) of the file. | | `structure` | Structure of the table. Format: `'column1_name column1_type, column2_name column2_type, ...'`. | | `compression` | The existing compression type when used in a `SELECT` query, or the desired compression type when used in an `INSERT` query. Supported compression types are `gz`, `br`, `xz`, `zst`, `lz4`, and `bz2`. | When the `structure` argument is omitted, ClickHouse infers the schema from the format itself. Different formats produce different default column names and types. -To see the schema for a specific format, use [`DESC`](/reference/statements/describe-table) with the [`format`](/reference/functions/table-functions/format) table function. +To see the schema for a specific format, use [`DESC`](/core/reference/statements/describe-table) with the [`format`](/core/reference/functions/table-functions/format) table function. For example: @@ -173,7 +173,7 @@ all the files in the directory are selected. - `{N..M}` — Represents any number `>= N` and `<= M`. - `**` - Represents all files inside a folder recursively. -Constructions with `{}` are similar to the [remote](/reference/functions/table-functions/remote) and [hdfs](/reference/functions/table-functions/hdfs) table functions. +Constructions with `{}` are similar to the [remote](/core/reference/functions/table-functions/remote) and [hdfs](/core/reference/functions/table-functions/hdfs) table functions. ## Examples {#examples} @@ -257,13 +257,13 @@ SELECT * FROM file('data/path/date=*/country=*/code=*/*.parquet') WHERE date > ' | Setting | Description | |--------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [engine_file_empty_if_not_exists](/reference/settings/session-settings#engine_file_empty_if_not_exists) | allows to select empty data from a file that doesn't exist. Disabled by default. | -| [engine_file_truncate_on_insert](/reference/settings/session-settings#engine_file_truncate_on_insert) | allows to truncate file before insert into it. Disabled by default. | -| [engine_file_allow_create_multiple_files](/reference/settings/session-settings#engine_file_allow_create_multiple_files) | allows to create a new file on each insert if format has suffix. Disabled by default. | -| [engine_file_skip_empty_files](/reference/settings/session-settings#engine_file_skip_empty_files) | allows to skip empty files while reading. Disabled by default. | -| [storage_file_read_method](/reference/settings/session-settings#engine_file_empty_if_not_exists) | method of reading data from storage file, one of: read, pread, mmap (only for clickhouse-local). Default value: `pread` for clickhouse-server, `mmap` for clickhouse-local. | +| [engine_file_empty_if_not_exists](/core/reference/settings/session-settings#engine_file_empty_if_not_exists) | allows to select empty data from a file that doesn't exist. Disabled by default. | +| [engine_file_truncate_on_insert](/core/reference/settings/session-settings#engine_file_truncate_on_insert) | allows to truncate file before insert into it. Disabled by default. | +| [engine_file_allow_create_multiple_files](/core/reference/settings/session-settings#engine_file_allow_create_multiple_files) | allows to create a new file on each insert if format has suffix. Disabled by default. | +| [engine_file_skip_empty_files](/core/reference/settings/session-settings#engine_file_skip_empty_files) | allows to skip empty files while reading. Disabled by default. | +| [storage_file_read_method](/core/reference/settings/session-settings#engine_file_empty_if_not_exists) | method of reading data from storage file, one of: read, pread, mmap (only for clickhouse-local). Default value: `pread` for clickhouse-server, `mmap` for clickhouse-local. | ## Related {#related} -- [Virtual columns](/reference/engines/table-engines#table_engines-virtual_columns) -- [Rename files after processing](/reference/settings/session-settings#rename_files_after_processing) +- [Virtual columns](/core/reference/engines/table-engines#table_engines-virtual_columns) +- [Rename files after processing](/core/reference/settings/session-settings#rename_files_after_processing) diff --git a/reference/functions/table-functions/fileCluster.mdx b/core/reference/functions/table-functions/fileCluster.mdx similarity index 86% rename from reference/functions/table-functions/fileCluster.mdx rename to core/reference/functions/table-functions/fileCluster.mdx index cf2c8246..d9a425cf 100644 --- a/reference/functions/table-functions/fileCluster.mdx +++ b/core/reference/functions/table-functions/fileCluster.mdx @@ -30,9 +30,9 @@ fileCluster(cluster_name, path[, format, structure, compression_method]) | Argument | Description | |----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `cluster_name` | Name of a cluster that is used to build a set of addresses and connection parameters to remote and local servers. | -| `path` | The relative path to the file from [user_files_path](/reference/settings/server-settings/settings#user_files_path). Path to file also supports [globs](#globs-in-path). | -| `format` | [Format](/reference/formats) of the files. Type: [String](/reference/data-types/string). | -| `structure` | Table structure in `'UserID UInt64, Name String'` format. Determines column names and types. Type: [String](/reference/data-types/string). | +| `path` | The relative path to the file from [user_files_path](/core/reference/settings/server-settings/settings#user_files_path). Path to file also supports [globs](#globs-in-path). | +| `format` | [Format](/core/reference/formats) of the files. Type: [String](/core/reference/data-types/string). | +| `structure` | Table structure in `'UserID UInt64, Name String'` format. Determines column names and types. Type: [String](/core/reference/data-types/string). | | `compression_method` | Compression method. Supported compression types are `gz`, `br`, `xz`, `zst`, `lz4`, and `bz2`. | ## Returned value {#returned_value} @@ -83,8 +83,8 @@ SELECT * FROM fileCluster('my_cluster', 'file{1,2}.csv', 'CSV', 'i UInt32, s Str ## Globs in Path {#globs-in-path} -All patterns supported by [File](/reference/functions/table-functions/file#globs-in-path) table function are supported by FileCluster. +All patterns supported by [File](/core/reference/functions/table-functions/file#globs-in-path) table function are supported by FileCluster. ## Related {#related} -- [File table function](/reference/functions/table-functions/file) +- [File table function](/core/reference/functions/table-functions/file) diff --git a/reference/functions/table-functions/filesystem.mdx b/core/reference/functions/table-functions/filesystem.mdx similarity index 94% rename from reference/functions/table-functions/filesystem.mdx rename to core/reference/functions/table-functions/filesystem.mdx index 92c3e196..f0df609f 100644 --- a/reference/functions/table-functions/filesystem.mdx +++ b/core/reference/functions/table-functions/filesystem.mdx @@ -14,7 +14,7 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ Recursively iterates a directory and returns a table with file metadata (paths, sizes, types, permissions, modification times) and, optionally, file contents. -In `clickhouse-server` mode, the path must be within the [user_files_path](/reference/settings/server-settings/settings#user_files_path) directory. Symlinks inside `user_files_path` that point outside of it are followed, but only entries whose path (through the symlink) starts with `user_files_path` are returned. +In `clickhouse-server` mode, the path must be within the [user_files_path](/core/reference/settings/server-settings/settings#user_files_path) directory. Symlinks inside `user_files_path` that point outside of it are followed, but only entries whose path (through the symlink) starts with `user_files_path` are returned. In `clickhouse-local` mode, there are no path restrictions. diff --git a/reference/functions/table-functions/format.mdx b/core/reference/functions/table-functions/format.mdx similarity index 96% rename from reference/functions/table-functions/format.mdx rename to core/reference/functions/table-functions/format.mdx index 25720c74..65dc602c 100644 --- a/reference/functions/table-functions/format.mdx +++ b/core/reference/functions/table-functions/format.mdx @@ -16,7 +16,7 @@ format(format_name, [structure], data) ## Arguments {#arguments} -- `format_name` — The [format](/reference/formats) of the data. +- `format_name` — The [format](/core/reference/formats) of the data. - `structure` - Structure of the table. Optional. Format 'column1_name column1_type, column2_name column2_type, ...'. - `data` — String literal or constant expression that returns a string containing data in specified format @@ -87,4 +87,4 @@ $$) ## Related {#related} -- [Formats](/reference/formats) +- [Formats](/core/reference/formats) diff --git a/reference/functions/table-functions/fuzzJSON.mdx b/core/reference/functions/table-functions/fuzzJSON.mdx similarity index 96% rename from reference/functions/table-functions/fuzzJSON.mdx rename to core/reference/functions/table-functions/fuzzJSON.mdx index db5a21ba..8f9dfc17 100644 --- a/reference/functions/table-functions/fuzzJSON.mdx +++ b/core/reference/functions/table-functions/fuzzJSON.mdx @@ -18,7 +18,7 @@ fuzzJSON({ named_collection [, option=value [,..]] | json_str[, random_seed] }) | Argument | Description | |------------------------------------|---------------------------------------------------------------------------------------------| -| `named_collection` | A [NAMED COLLECTION](/reference/statements/create/named-collection). | +| `named_collection` | A [NAMED COLLECTION](/core/reference/statements/create/named-collection). | | `option=value` | Named collection optional parameters and their values. | | `json_str` (String) | The source string representing structured data in JSON format. | | `random_seed` (UInt64) | Manual random seed for producing stable results. | diff --git a/reference/functions/table-functions/fuzzQuery.mdx b/core/reference/functions/table-functions/fuzzQuery.mdx similarity index 100% rename from reference/functions/table-functions/fuzzQuery.mdx rename to core/reference/functions/table-functions/fuzzQuery.mdx diff --git a/reference/functions/table-functions/gcs.mdx b/core/reference/functions/table-functions/gcs.mdx similarity index 92% rename from reference/functions/table-functions/gcs.mdx rename to core/reference/functions/table-functions/gcs.mdx index a6e0c1d4..71a93ab0 100644 --- a/reference/functions/table-functions/gcs.mdx +++ b/core/reference/functions/table-functions/gcs.mdx @@ -10,9 +10,9 @@ doc_type: 'reference' Provides a table-like interface to `SELECT` and `INSERT` data from [Google Cloud Storage](https://cloud.google.com/storage/). Requires the [`Storage Object User` IAM role](https://cloud.google.com/storage/docs/access-control/iam-roles). -This is an alias of the [s3 table function](/reference/functions/table-functions/s3). +This is an alias of the [s3 table function](/core/reference/functions/table-functions/s3). -If you have multiple replicas in your cluster, you can use the [s3Cluster function](/reference/functions/table-functions/s3Cluster) (which works with GCS) instead to parallelize inserts. +If you have multiple replicas in your cluster, you can use the [s3Cluster function](/core/reference/functions/table-functions/s3Cluster) (which works with GCS) instead to parallelize inserts. ## Syntax {#syntax} @@ -35,7 +35,7 @@ See the [Google interoperability docs](https://cloud.google.com/storage/docs/int | `url` | Bucket path to file. Supports following wildcards in readonly mode: `*`, `**`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` — numbers, `'abc'`, `'def'` — strings. | | `NOSIGN` | If this keyword is provided in place of credentials, all the requests will not be signed. | | `hmac_key` and `hmac_secret` | Keys that specify credentials to use with given endpoint. Optional. | -| `format` | The [format](/reference/formats) of the file. | +| `format` | The [format](/core/reference/formats) of the file. | | `structure` | Structure of the table. Format `'column1_name column1_type, column2_name column2_type, ...'`. | | `compression_method` | Parameter is optional. Supported values: `none`, `gzip` or `gz`, `brotli` or `br`, `xz` or `LZMA`, `zstd` or `zst`. By default, it will autodetect compression method by file extension. | @@ -51,7 +51,7 @@ The GCS path is in this format as the endpoint for the Google XML API is differe and not ~~https://storage.cloud.google.com~~. -Arguments can also be passed using [named collections](/concepts/features/configuration/server-config/named-collections). In this case `url`, `format`, `structure`, `compression_method` work in the same way, and some extra parameters are supported: +Arguments can also be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). In this case `url`, `format`, `structure`, `compression_method` work in the same way, and some extra parameters are supported: | Parameter | Description | |-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -180,7 +180,7 @@ The below get data from all `test-data.csv.gz` files from any folder inside `my- SELECT * FROM gcs('https://storage.googleapis.com/my-test-bucket-768/**/test-data.csv.gz', 'CSV', 'name String, value UInt32', 'gzip'); ``` -For production use cases it is recommended to use [named collections](/concepts/features/configuration/server-config/named-collections). Here is the example: +For production use cases it is recommended to use [named collections](/core/concepts/features/configuration/server-config/named-collections). Here is the example: ```sql CREATE NAMED COLLECTION creds AS @@ -215,5 +215,5 @@ INSERT INTO TABLE FUNCTION As a result, the data is written into three files in different buckets: `my_bucket_1/file.csv`, `my_bucket_10/file.csv`, and `my_bucket_20/file.csv`. ## Related {#related} -- [S3 table function](/reference/functions/table-functions/s3) -- [S3 engine](/reference/engines/table-engines/integrations/s3) +- [S3 table function](/core/reference/functions/table-functions/s3) +- [S3 engine](/core/reference/engines/table-engines/integrations/s3) diff --git a/reference/functions/table-functions/generate.mdx b/core/reference/functions/table-functions/generate.mdx similarity index 99% rename from reference/functions/table-functions/generate.mdx rename to core/reference/functions/table-functions/generate.mdx index f9b0bde7..08b8ac54 100644 --- a/reference/functions/table-functions/generate.mdx +++ b/core/reference/functions/table-functions/generate.mdx @@ -58,7 +58,7 @@ SELECT * FROM random; └──────────────────────────────┴──────────────┴────────────────────────────────────────────────────────────────────┘ ``` -In combination with [generateRandomStructure](/reference/functions/regular-functions/other-functions#generateRandomStructure): +In combination with [generateRandomStructure](/core/reference/functions/regular-functions/other-functions#generateRandomStructure): ```sql SELECT * FROM generateRandom(generateRandomStructure(4, 101), 101) LIMIT 3; diff --git a/reference/functions/table-functions/generate_series.mdx b/core/reference/functions/table-functions/generate_series.mdx similarity index 100% rename from reference/functions/table-functions/generate_series.mdx rename to core/reference/functions/table-functions/generate_series.mdx diff --git a/reference/functions/table-functions/hdfs.mdx b/core/reference/functions/table-functions/hdfs.mdx similarity index 81% rename from reference/functions/table-functions/hdfs.mdx rename to core/reference/functions/table-functions/hdfs.mdx index c1b7bc88..89973668 100644 --- a/reference/functions/table-functions/hdfs.mdx +++ b/core/reference/functions/table-functions/hdfs.mdx @@ -12,7 +12,7 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ # hdfs Table Function -Creates a table from files in HDFS. This table function is similar to the [url](/reference/functions/table-functions/url) and [file](/reference/functions/table-functions/file) table functions. +Creates a table from files in HDFS. This table function is similar to the [url](/core/reference/functions/table-functions/url) and [file](/core/reference/functions/table-functions/file) table functions. ## Syntax {#syntax} @@ -25,7 +25,7 @@ hdfs(URI, format, structure) | Argument | Description | |-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `URI` | The relative URI to the file in HDFS. Path to file support following globs in readonly mode: `*`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` — numbers, `'abc', 'def'` — strings. | -| `format` | The [format](/reference/formats) of the file. | +| `format` | The [format](/core/reference/formats) of the file. | | `structure`| Structure of the table. Format `'column1_name column1_type, column2_name column2_type, ...'`. | ## Returned value {#returned_value} @@ -59,7 +59,7 @@ Paths may use globbing. Files must match the whole path pattern, not only the su - `{some_string,another_string,yet_another_one}` — Substitutes any of strings `'some_string', 'another_string', 'yet_another_one'`. The strings can contain the `/` symbol. - `{N..M}` — Represents any number `>= N` and `<= M`. -Constructions with `{}` are similar to the [remote](/reference/functions/table-functions/remote) and [file](/reference/functions/table-functions/file) table functions. +Constructions with `{}` are similar to the [remote](/core/reference/functions/table-functions/remote) and [file](/core/reference/functions/table-functions/file) table functions. **Example** @@ -124,10 +124,10 @@ SELECT * FROM HDFS('hdfs://hdfs1:9000/data/path/date=*/country=*/code=*/*.parque ## Storage Settings {#storage-settings} -- [hdfs_truncate_on_insert](/reference/settings/session-settings#hdfs_truncate_on_insert) - allows to truncate file before insert into it. Disabled by default. -- [hdfs_create_new_file_on_insert](/reference/settings/session-settings#hdfs_create_new_file_on_insert) - allows to create a new file on each insert if format has suffix. Disabled by default. -- [hdfs_skip_empty_files](/reference/settings/session-settings#hdfs_skip_empty_files) - allows to skip empty files while reading. Disabled by default. +- [hdfs_truncate_on_insert](/core/reference/settings/session-settings#hdfs_truncate_on_insert) - allows to truncate file before insert into it. Disabled by default. +- [hdfs_create_new_file_on_insert](/core/reference/settings/session-settings#hdfs_create_new_file_on_insert) - allows to create a new file on each insert if format has suffix. Disabled by default. +- [hdfs_skip_empty_files](/core/reference/settings/session-settings#hdfs_skip_empty_files) - allows to skip empty files while reading. Disabled by default. ## Related {#related} -- [Virtual columns](/reference/engines/table-engines#table_engines-virtual_columns) +- [Virtual columns](/core/reference/engines/table-engines#table_engines-virtual_columns) diff --git a/reference/functions/table-functions/hdfsCluster.mdx b/core/reference/functions/table-functions/hdfsCluster.mdx similarity index 88% rename from reference/functions/table-functions/hdfsCluster.mdx rename to core/reference/functions/table-functions/hdfsCluster.mdx index fb28c2d5..f4719818 100644 --- a/reference/functions/table-functions/hdfsCluster.mdx +++ b/core/reference/functions/table-functions/hdfsCluster.mdx @@ -20,8 +20,8 @@ hdfsCluster(cluster_name, URI, format, structure) | Argument | Description | |----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `cluster_name` | Name of a cluster that is used to build a set of addresses and connection parameters to remote and local servers. | -| `URI` | URI to a file or a bunch of files. Supports following wildcards in readonly mode: `*`, `**`, `?`, `{'abc','def'}` and `{N..M}` where `N`, `M` — numbers, `abc`, `def` — strings. For more information see [Wildcards In Path](/reference/engines/table-engines/integrations/s3#wildcards-in-path). | -| `format` | The [format](/reference/formats) of the file. | +| `URI` | URI to a file or a bunch of files. Supports following wildcards in readonly mode: `*`, `**`, `?`, `{'abc','def'}` and `{N..M}` where `N`, `M` — numbers, `abc`, `def` — strings. For more information see [Wildcards In Path](/core/reference/engines/table-engines/integrations/s3#wildcards-in-path). | +| `format` | The [format](/core/reference/formats) of the file. | | `structure` | Structure of the table. Format `'column1_name column1_type, column2_name column2_type, ...'`. | ## Returned value {#returned_value} @@ -59,5 +59,5 @@ If your listing of files contains number ranges with leading zeros, use the cons ## Related {#related} -- [HDFS engine](/reference/engines/table-engines/integrations/hdfs) -- [HDFS table function](/reference/functions/table-functions/hdfs) +- [HDFS engine](/core/reference/engines/table-engines/integrations/hdfs) +- [HDFS table function](/core/reference/functions/table-functions/hdfs) diff --git a/reference/functions/table-functions/hudi.mdx b/core/reference/functions/table-functions/hudi.mdx similarity index 90% rename from reference/functions/table-functions/hudi.mdx rename to core/reference/functions/table-functions/hudi.mdx index 34aa6071..07321ad6 100644 --- a/reference/functions/table-functions/hudi.mdx +++ b/core/reference/functions/table-functions/hudi.mdx @@ -20,8 +20,8 @@ hudi(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,co | Argument | Description | |----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `url` | Bucket url with the path to an existing Hudi table in S3. | -| `aws_access_key_id`, `aws_secret_access_key` | Long-term credentials for the [AWS](https://aws.amazon.com/) account user. You can use these to authenticate your requests. These parameters are optional. If credentials are not specified, they are used from the ClickHouse configuration. For more information see [Using S3 for Data Storage](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). | -| `format` | The [format](/reference/formats) of the file. | +| `aws_access_key_id`, `aws_secret_access_key` | Long-term credentials for the [AWS](https://aws.amazon.com/) account user. You can use these to authenticate your requests. These parameters are optional. If credentials are not specified, they are used from the ClickHouse configuration. For more information see [Using S3 for Data Storage](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). | +| `format` | The [format](/core/reference/formats) of the file. | | `structure` | Structure of the table. Format `'column1_name column1_type, column2_name column2_type, ...'`. | | `compression` | Parameter is optional. Supported values: `none`, `gzip/gz`, `brotli/br`, `xz/LZMA`, `zstd/zst`. By default, compression will be autodetected by the file extension. | | `extra_credentials` | Parameter is optional. Used to pass a `role_arn` for role-based access in ClickHouse Cloud. See [Secure S3](/products/cloud/guides/data-sources/accessing-s3-data-securely) for configuration steps. | @@ -40,5 +40,5 @@ A table with the specified structure for reading data in the specified Hudi tabl ## Related {#related} -- [Hudi engine](/reference/engines/table-engines/integrations/hudi) -- [Hudi cluster table function](/reference/functions/table-functions/hudiCluster) +- [Hudi engine](/core/reference/engines/table-engines/integrations/hudi) +- [Hudi cluster table function](/core/reference/functions/table-functions/hudiCluster) diff --git a/reference/functions/table-functions/hudiCluster.mdx b/core/reference/functions/table-functions/hudiCluster.mdx similarity index 90% rename from reference/functions/table-functions/hudiCluster.mdx rename to core/reference/functions/table-functions/hudiCluster.mdx index 9339ea6e..c0b33e0c 100644 --- a/reference/functions/table-functions/hudiCluster.mdx +++ b/core/reference/functions/table-functions/hudiCluster.mdx @@ -7,7 +7,7 @@ title: 'hudiCluster Table Function' doc_type: 'reference' --- -This is an extension to the [hudi](/reference/functions/table-functions/hudi) table function. +This is an extension to the [hudi](/core/reference/functions/table-functions/hudi) table function. Allows processing files from Apache [Hudi](https://hudi.apache.org/) tables in Amazon S3 in parallel with many nodes in a specified cluster. On initiator it creates a connection to all nodes in the cluster and dispatches each file dynamically. On the worker node it asks the initiator about the next task to process and processes it. This is repeated until all tasks are finished. @@ -23,8 +23,8 @@ hudiCluster(cluster_name, url [,aws_access_key_id, aws_secret_access_key] [,form |----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `cluster_name` | Name of a cluster that is used to build a set of addresses and connection parameters to remote and local servers. | | `url` | Bucket url with the path to an existing Hudi table in S3. | -| `aws_access_key_id`, `aws_secret_access_key` | Long-term credentials for the [AWS](https://aws.amazon.com/) account user. You can use these to authenticate your requests. These parameters are optional. If credentials are not specified, they are used from the ClickHouse configuration. For more information see [Using S3 for Data Storage](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). | -| `format` | The [format](/reference/formats) of the file. | +| `aws_access_key_id`, `aws_secret_access_key` | Long-term credentials for the [AWS](https://aws.amazon.com/) account user. You can use these to authenticate your requests. These parameters are optional. If credentials are not specified, they are used from the ClickHouse configuration. For more information see [Using S3 for Data Storage](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). | +| `format` | The [format](/core/reference/formats) of the file. | | `structure` | Structure of the table. Format `'column1_name column1_type, column2_name column2_type, ...'`. | | `compression` | Parameter is optional. Supported values: `none`, `gzip/gz`, `brotli/br`, `xz/LZMA`, `zstd/zst`. By default, compression will be autodetected by the file extension. | | `extra_credentials` | Parameter is optional. Used to pass a `role_arn` for role-based access in ClickHouse Cloud. See [Secure S3](/products/cloud/guides/data-sources/accessing-s3-data-securely) for configuration steps. | @@ -43,5 +43,5 @@ A table with the specified structure for reading data from cluster in the specif ## Related {#related} -- [Hudi engine](/reference/engines/table-engines/integrations/hudi) -- [Hudi table function](/reference/functions/table-functions/hudi) +- [Hudi engine](/core/reference/engines/table-engines/integrations/hudi) +- [Hudi table function](/core/reference/functions/table-functions/hudi) diff --git a/reference/functions/table-functions/iceberg.mdx b/core/reference/functions/table-functions/iceberg.mdx similarity index 99% rename from reference/functions/table-functions/iceberg.mdx rename to core/reference/functions/table-functions/iceberg.mdx index 3658f252..c3d30056 100644 --- a/reference/functions/table-functions/iceberg.mdx +++ b/core/reference/functions/table-functions/iceberg.mdx @@ -716,5 +716,5 @@ The command returns a table with `metric_name` and `metric_value` columns showin ## See Also {#see-also} -* [Iceberg engine](/reference/engines/table-engines/integrations/iceberg) -* [Iceberg cluster table function](/reference/functions/table-functions/icebergCluster) +* [Iceberg engine](/core/reference/engines/table-engines/integrations/iceberg) +* [Iceberg cluster table function](/core/reference/functions/table-functions/icebergCluster) diff --git a/reference/functions/table-functions/icebergCluster.mdx b/core/reference/functions/table-functions/icebergCluster.mdx similarity index 87% rename from reference/functions/table-functions/icebergCluster.mdx rename to core/reference/functions/table-functions/icebergCluster.mdx index 98888565..338c92f3 100644 --- a/reference/functions/table-functions/icebergCluster.mdx +++ b/core/reference/functions/table-functions/icebergCluster.mdx @@ -7,7 +7,7 @@ title: 'icebergCluster' doc_type: 'reference' --- -This is an extension to the [iceberg](/reference/functions/table-functions/iceberg) table function. +This is an extension to the [iceberg](/core/reference/functions/table-functions/iceberg) table function. Allows processing files from Apache [Iceberg](https://iceberg.apache.org/) in parallel from many nodes in a specified cluster. On initiator it creates a connection to all nodes in the cluster and dispatches each file dynamically. On the worker node it asks the initiator about the next task to process and processes it. This is repeated until all tasks are finished. @@ -27,7 +27,7 @@ icebergHDFSCluster(cluster_name, named_collection[, option=value [,..]]) ## Arguments {#arguments} - `cluster_name` — Name of a cluster that is used to build a set of addresses and connection parameters to remote and local servers. -- Description of all other arguments coincides with description of arguments in equivalent [iceberg](/reference/functions/table-functions/iceberg) table function. +- Description of all other arguments coincides with description of arguments in equivalent [iceberg](/core/reference/functions/table-functions/iceberg) table function. - An optional `extra_credentials` parameter can be used to pass a `role_arn` for role-based access in ClickHouse Cloud. See [Secure S3](/products/cloud/guides/data-sources/accessing-s3-data-securely) for configuration steps. **Returned value** @@ -50,5 +50,5 @@ SELECT * FROM icebergS3Cluster('cluster_simple', 'http://test.s3.amazonaws.com/c **See Also** -- [Iceberg engine](/reference/engines/table-engines/integrations/iceberg) -- [Iceberg table function](/reference/functions/table-functions/iceberg) +- [Iceberg engine](/core/reference/engines/table-engines/integrations/iceberg) +- [Iceberg table function](/core/reference/functions/table-functions/iceberg) diff --git a/core/reference/functions/table-functions/index.mdx b/core/reference/functions/table-functions/index.mdx new file mode 100644 index 00000000..7b138c1c --- /dev/null +++ b/core/reference/functions/table-functions/index.mdx @@ -0,0 +1,149 @@ +--- +description: 'Documentation for Table Functions' +sidebarTitle: 'Table Functions' +slug: /sql-reference/table-functions/ +title: 'Table Functions' +doc_type: 'reference' +--- + +Table functions are methods for constructing tables. + +{/*AUTOGENERATED_START*/} +| Page | Description | +|-----|-----| +| [azureBlobStorage](/core/reference/functions/table-functions/azureBlobStorage) | Provides a table-like interface to select/insert files in Azure Blob Storage. Similar to the s3 function. | +| [azureBlobStorageCluster](/core/reference/functions/table-functions/azureBlobStorageCluster) | Allows processing files from Azure Blob storage in parallel with many nodes in a specified cluster. | +| [clusterAllReplicas](/core/reference/functions/table-functions/cluster) | Allows accessing all shards (configured in the `remote_servers` section) of a cluster without creating a Distributed table. | +| [deltaLake](/core/reference/functions/table-functions/deltalake) | Provides a read-only table-like interface to the Delta Lake tables in Amazon S3. | +| [deltaLakeCluster](/core/reference/functions/table-functions/deltalakeCluster) | This is an extension to the deltaLake table function. | +| [dictionary](/core/reference/functions/table-functions/dictionary) | Displays the dictionary data as a ClickHouse table. Works the same way as the Dictionary engine. | +| [executable](/core/reference/functions/table-functions/executable) | The `executable` table function creates a table based on the output of a user-defined function (UDF) that you define in a script that outputs rows to **stdout**. | +| [file](/core/reference/functions/table-functions/file) | A table engine which provides a table-like interface to SELECT from and INSERT into files, similar to the s3 table function. Use `file()` when working with local files, and `s3()` when working with buckets in object storage such as S3, GCS, or MinIO. | +| [fileCluster](/core/reference/functions/table-functions/fileCluster) | Enables simultaneous processing of files matching a specified path across multiple nodes within a cluster. The initiator establishes connections to worker nodes, expands globs in the file path, and delegates file-reading tasks to worker nodes. Each worker node is querying the initiator for the next file to process, repeating until all tasks are completed (all files are read). | +| [filesystem](/core/reference/functions/table-functions/filesystem) | Provides access to the file system to list files and return their metadata and contents. | +| [format](/core/reference/functions/table-functions/format) | Parses data from arguments according to specified input format. If structure argument is not specified, it's extracted from the data. | +| [gcs](/core/reference/functions/table-functions/gcs) | Provides a table-like interface to `SELECT` and `INSERT` data from Google Cloud Storage. Requires the `Storage Object User` IAM role. | +| [fuzzQuery](/core/reference/functions/table-functions/fuzzQuery) | Perturbs the given query string with random variations. | +| [fuzzJSON](/core/reference/functions/table-functions/fuzzJSON) | Perturbs a JSON string with random variations. | +| [generateRandom](/core/reference/functions/table-functions/generate) | Generates random data with a given schema. Allows populating test tables with that data. Not all types are supported. | +| [mergeTreeTextIndex](/core/reference/functions/table-functions/mergeTreeTextIndex) | Represents the dictionary of a text index in a MergeTree table. It can be used for introspection. | +| [mergeTreeProjection](/core/reference/functions/table-functions/mergeTreeProjection) | Represents the contents of some projection in MergeTree tables. It can be used for introspection. | +| [mergeTreeIndex](/core/reference/functions/table-functions/mergeTreeIndex) | Represents the contents of index and marks files of MergeTree tables. It can be used for introspection. | +| [hdfs](/core/reference/functions/table-functions/hdfs) | Creates a table from files in HDFS. This table function is similar to the url and file table functions. | +| [hdfsCluster](/core/reference/functions/table-functions/hdfsCluster) | Allows processing files from HDFS in parallel from many nodes in a specified cluster. | +| [hudi](/core/reference/functions/table-functions/hudi) | Provides a read-only table-like interface to Apache Hudi tables in Amazon S3. | +| [ytsaurus](/core/reference/functions/table-functions/ytsaurus) | The table function allows to read data from the YTsaurus cluster. | +| [hudiCluster Table Function](/core/reference/functions/table-functions/hudiCluster) | An extension to the hudi table function. Allows processing files from Apache Hudi tables in Amazon S3 in parallel with many nodes in a specified cluster. | +| [iceberg](/core/reference/functions/table-functions/iceberg) | Provides a read-only table-like interface to Apache Iceberg tables in Amazon S3, Azure, HDFS or locally stored. | +| [paimon](/core/reference/functions/table-functions/paimon) | Provides a read-only table-like interface to Apache Paimon tables in Amazon S3, Azure, HDFS or locally stored. | +| [icebergCluster](/core/reference/functions/table-functions/icebergCluster) | An extension to the iceberg table function which allows processing files from Apache Iceberg in parallel from many nodes in a specified cluster. | +| [paimonCluster](/core/reference/functions/table-functions/paimonCluster) | An extension to the paimon table function which allows processing files from Apache Paimon in parallel from many nodes in a specified cluster. | +| [input](/core/reference/functions/table-functions/input) | Table function that allows effectively converting and inserting data sent to the server with a given structure to a table with another structure. | +| [jdbc](/core/reference/functions/table-functions/jdbc) | Returns a table that is connected via JDBC driver. | +| [merge](/core/reference/functions/table-functions/merge) | Creates a temporary Merge table. The structure will be derived from underlying tables by using a union of their columns and by deriving common types. | +| [mongodb](/core/reference/functions/table-functions/mongodb) | Allows `SELECT` queries to be performed on data that is stored on a remote MongoDB server. | +| [mysql](/core/reference/functions/table-functions/mysql) | Allows `SELECT` and `INSERT` queries to be performed on data that are stored on a remote MySQL server. | +| [null](/core/reference/functions/table-functions/null) | Creates a temporary table of the specified structure with the Null table engine. The function is used for the convenience of test writing and demonstrations. | +| [timeSeriesMetrics](/core/reference/functions/table-functions/timeSeriesMetrics) | timeSeriesMetrics returns the metrics table used by table `db_name.time_series_table` whose table engine is the TimeSeries engine. | +| [timeSeriesSelector](/core/reference/functions/table-functions/timeSeriesSelector) | Reads time series from a TimeSeries table filtered by a selector and with timestamps in a specified interval. | +| [timeSeriesTags](/core/reference/functions/table-functions/timeSeriesTags) | timeSeriesTags table function returns the tags table use by table `db_name.time_series_table` whose table engine is the TimeSeries engine. | +| [prometheusQueryRange](/core/reference/functions/table-functions/prometheusQueryRange) | Evaluates a prometheus query using data from a TimeSeries table. | +| [zeros](/core/reference/functions/table-functions/zeros) | Used for test purposes as the fastest method to generate many rows. Similar to the `system.zeros` and `system.zeros_mt` system tables. | +| [primes](/core/reference/functions/table-functions/primes) | Returns a table with a single `prime` column that contains prime numbers. | +| [timeSeriesData](/core/reference/functions/table-functions/timeSeriesData) | timeSeriesData returns the data table used by table `db_name.time_series_table` whose table engine is TimeSeries. | +| [numbers](/core/reference/functions/table-functions/numbers) | Returns a table with a single `number` column that contains a sequence of integers. | +| [prometheusQuery](/core/reference/functions/table-functions/prometheusQuery) | Evaluates a prometheus query using data from a TimeSeries table. | +| [generate_series (generateSeries)](/core/reference/functions/table-functions/generate_series) | Returns a table with the single `generate_series` column (UInt64) that contains integers from start to stop inclusively. | +| [odbc](/core/reference/functions/table-functions/odbc) | Returns the table that is connected via ODBC. | +| [postgresql](/core/reference/functions/table-functions/postgresql) | Allows `SELECT` and `INSERT` queries to be performed on data that is stored on a remote PostgreSQL server. | +| [redis](/core/reference/functions/table-functions/redis) | This table function allows integrating ClickHouse with Redis. | +| [remote, remoteSecure](/core/reference/functions/table-functions/remote) | Table function `remote` allows to access remote servers on-the-fly, i.e. without creating a distributed table. Table function `remoteSecure` is same as `remote` but over a secure connection. | +| [s3 Table Function](/core/reference/functions/table-functions/s3) | Provides a table-like interface to select/insert files in Amazon S3 and Google Cloud Storage. This table function is similar to the hdfs function, but provides S3-specific features. | +| [s3Cluster](/core/reference/functions/table-functions/s3Cluster) | An extension to the s3 table function, which allows processing files from Amazon S3 and Google Cloud Storage in parallel with many nodes in a specified cluster. | +| [sqlite](/core/reference/functions/table-functions/sqlite) | Allows to perform queries on data stored in a SQLite database. | +| [arrowFlight](/core/reference/functions/table-functions/arrowflight) | Allows to perform queries on data exposed via an Apache Arrow Flight server. | +| [url](/core/reference/functions/table-functions/url) | Creates a table from the `URL` with given `format` and `structure` | +| [urlCluster](/core/reference/functions/table-functions/urlCluster) | Allows processing files from URL in parallel from many nodes in a specified cluster. | +| [view](/core/reference/functions/table-functions/view) | Turns a subquery into a table. The function implements views. | +| [values](/core/reference/functions/table-functions/values) | creates a temporary storage which fills columns with values. | +| [loop](/core/reference/functions/table-functions/loop) | The loop table function in ClickHouse is used to return query results in an infinite loop. | +{/*AUTOGENERATED_END*/} + +## Usage {#usage} + +Table functions can be used in the [`FROM`](/core/reference/statements/select/from) +clause of a `SELECT` query. For example, you can `SELECT` data from a file on your local +machine using the `file` table function. + +```bash title="Query" +echo "1, 2, 3" > example.csv +``` +```text title="Response" +./clickhouse client +:) SELECT * FROM file('example.csv') +┌─c1─┬─c2─┬─c3─┐ +│ 1 │ 2 │ 3 │ +└────┴────┴────┘ +``` + +You can also use table functions for creating a temporary table that is available +only in the current query. For example: + +```sql title="Query" +SELECT * FROM generateSeries(1,5); +``` +```response title="Response" +┌─generate_series─┐ +│ 1 │ +│ 2 │ +│ 3 │ +│ 4 │ +│ 5 │ +└─────────────────┘ +``` + +The table is deleted when the query finishes. + +Table functions can be used as a way to create tables, using the following syntax: + +```sql title="Query" +CREATE TABLE [IF NOT EXISTS] [db.]table_name AS table_function() +``` + +For example: + +```sql title="Query" +CREATE TABLE series AS generateSeries(1, 5); +SELECT * FROM series; +``` + +```response title="Response" +┌─generate_series─┐ +│ 1 │ +│ 2 │ +│ 3 │ +│ 4 │ +│ 5 │ +└─────────────────┘ +``` + +Finally, table functions can be used to `INSERT` data into a table. For example, +we could write out the contents of the table we created in the previous example +to a file on disk using the `file` table function again: + +```sql title="Query" +INSERT INTO FUNCTION file('numbers.csv', 'CSV') SELECT * FROM series; +``` + +```bash title="Query" +cat numbers.csv +1 +2 +3 +4 +5 +``` + + +You can't use table functions if the [allow_ddl](/core/reference/settings/session-settings#allow_ddl) setting is disabled. + \ No newline at end of file diff --git a/reference/functions/table-functions/input.mdx b/core/reference/functions/table-functions/input.mdx similarity index 97% rename from reference/functions/table-functions/input.mdx rename to core/reference/functions/table-functions/input.mdx index 64f6c332..3656af57 100644 --- a/reference/functions/table-functions/input.mdx +++ b/core/reference/functions/table-functions/input.mdx @@ -16,7 +16,7 @@ For example, `'id UInt32, name String'`. This function can be used only in `INSERT SELECT` query and only once but otherwise behaves like ordinary table function (for example, it can be used in subquery, etc.). -Data can be sent in any way like for ordinary `INSERT` query and passed in any available [format](/reference/formats) +Data can be sent in any way like for ordinary `INSERT` query and passed in any available [format](/core/reference/formats) that must be specified in the end of query (unlike ordinary `INSERT SELECT`). The main feature of this function is that when server receives data from client it simultaneously converts it diff --git a/reference/functions/table-functions/jdbc.mdx b/core/reference/functions/table-functions/jdbc.mdx similarity index 100% rename from reference/functions/table-functions/jdbc.mdx rename to core/reference/functions/table-functions/jdbc.mdx diff --git a/reference/functions/table-functions/loop.mdx b/core/reference/functions/table-functions/loop.mdx similarity index 100% rename from reference/functions/table-functions/loop.mdx rename to core/reference/functions/table-functions/loop.mdx diff --git a/reference/functions/table-functions/merge.mdx b/core/reference/functions/table-functions/merge.mdx similarity index 85% rename from reference/functions/table-functions/merge.mdx rename to core/reference/functions/table-functions/merge.mdx index e06cd69c..57182032 100644 --- a/reference/functions/table-functions/merge.mdx +++ b/core/reference/functions/table-functions/merge.mdx @@ -6,9 +6,9 @@ title: 'merge' doc_type: 'reference' --- -Creates a temporary [Merge](/reference/engines/table-engines/special/merge) table. +Creates a temporary [Merge](/core/reference/engines/table-engines/special/merge) table. The table schema is derived from underlying tables by using a union of their columns and by deriving common types. -The same virtual columns are available as for the [Merge](/reference/engines/table-engines/special/merge) table engine. +The same virtual columns are available as for the [Merge](/core/reference/engines/table-engines/special/merge) table engine. ## Syntax {#syntax} @@ -24,4 +24,4 @@ merge(['db_name',] 'tables_regexp') ## Related {#related} -- [Merge](/reference/engines/table-engines/special/merge) table engine +- [Merge](/core/reference/engines/table-engines/special/merge) table engine diff --git a/reference/functions/table-functions/mergeTreeIndex.mdx b/core/reference/functions/table-functions/mergeTreeIndex.mdx similarity index 100% rename from reference/functions/table-functions/mergeTreeIndex.mdx rename to core/reference/functions/table-functions/mergeTreeIndex.mdx diff --git a/reference/functions/table-functions/mergeTreeProjection.mdx b/core/reference/functions/table-functions/mergeTreeProjection.mdx similarity index 100% rename from reference/functions/table-functions/mergeTreeProjection.mdx rename to core/reference/functions/table-functions/mergeTreeProjection.mdx diff --git a/reference/functions/table-functions/mergeTreeTextIndex.mdx b/core/reference/functions/table-functions/mergeTreeTextIndex.mdx similarity index 100% rename from reference/functions/table-functions/mergeTreeTextIndex.mdx rename to core/reference/functions/table-functions/mergeTreeTextIndex.mdx diff --git a/reference/functions/table-functions/mongodb.mdx b/core/reference/functions/table-functions/mongodb.mdx similarity index 95% rename from reference/functions/table-functions/mongodb.mdx rename to core/reference/functions/table-functions/mongodb.mdx index 7ca0549e..679b4937 100644 --- a/reference/functions/table-functions/mongodb.mdx +++ b/core/reference/functions/table-functions/mongodb.mdx @@ -122,5 +122,5 @@ SELECT * FROM mongodb( ## Related {#related} -- [The `MongoDB` table engine](/reference/engines/table-engines/integrations/mongodb) -- [Using MongoDB as a dictionary source](/reference/statements/create/dictionary/sources/mongodb) +- [The `MongoDB` table engine](/core/reference/engines/table-engines/integrations/mongodb) +- [Using MongoDB as a dictionary source](/core/reference/statements/create/dictionary/sources/mongodb) diff --git a/reference/functions/table-functions/mysql.mdx b/core/reference/functions/table-functions/mysql.mdx similarity index 85% rename from reference/functions/table-functions/mysql.mdx rename to core/reference/functions/table-functions/mysql.mdx index e66dd699..0d38f43e 100644 --- a/reference/functions/table-functions/mysql.mdx +++ b/core/reference/functions/table-functions/mysql.mdx @@ -27,7 +27,7 @@ mysql({host:port, database, table, user, password[, replace_query, on_duplicate_ | `replace_query` | Flag that converts `INSERT INTO` queries to `REPLACE INTO`. Possible values:
    - `0` - The query is executed as `INSERT INTO`.
    - `1` - The query is executed as `REPLACE INTO`. | | `on_duplicate_clause` | The `ON DUPLICATE KEY on_duplicate_clause` expression that is added to the `INSERT` query. Can be specified only with `replace_query = 0` (if you simultaneously pass `replace_query = 1` and `on_duplicate_clause`, ClickHouse generates an exception).
    Example: `INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1;`
    `on_duplicate_clause` here is `UPDATE c2 = c2 + 1`. See the MySQL documentation to find which `on_duplicate_clause` you can use with the `ON DUPLICATE KEY` clause. | -Arguments also can be passed using [named collections](/concepts/features/configuration/server-config/named-collections). In this case `host` and `port` should be specified separately. This approach is recommended for production environment. +Arguments also can be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). In this case `host` and `port` should be specified separately. This approach is recommended for production environment. Simple `WHERE` clauses such as `=, !=, >, >=, <, <=` are currently executed on the MySQL server. @@ -50,7 +50,7 @@ SELECT name FROM mysql(`mysql1:3306|mysql2:3306|mysql3:3306`, 'mysql_database', A table object with the same columns as the original MySQL table. -Some data types of MySQL can be mapped to different ClickHouse types - this is addressed by query-level setting [mysql_datatypes_support_level](/reference/settings/session-settings#mysql_datatypes_support_level) +Some data types of MySQL can be mapped to different ClickHouse types - this is addressed by query-level setting [mysql_datatypes_support_level](/core/reference/settings/session-settings#mysql_datatypes_support_level) @@ -83,7 +83,7 @@ Selecting data from ClickHouse: SELECT * FROM mysql('localhost:3306', 'test', 'test', 'bayonet', '123'); ``` -Or using [named collections](/concepts/features/configuration/server-config/named-collections): +Or using [named collections](/core/concepts/features/configuration/server-config/named-collections): ```sql CREATE NAMED COLLECTION creds AS @@ -142,9 +142,9 @@ WHERE id > (SELECT max(id) FROM mysql_copy); ## Related {#related} -- [The 'MySQL' table engine](/reference/engines/table-engines/integrations/mysql) -- [Using MySQL as a dictionary source](/reference/statements/create/dictionary/sources/mysql) -- [mysql_datatypes_support_level](/reference/settings/session-settings#mysql_datatypes_support_level) -- [mysql_map_fixed_string_to_text_in_show_columns](/reference/settings/session-settings#mysql_map_fixed_string_to_text_in_show_columns) -- [mysql_map_string_to_text_in_show_columns](/reference/settings/session-settings#mysql_map_string_to_text_in_show_columns) -- [mysql_max_rows_to_insert](/reference/settings/session-settings#mysql_max_rows_to_insert) +- [The 'MySQL' table engine](/core/reference/engines/table-engines/integrations/mysql) +- [Using MySQL as a dictionary source](/core/reference/statements/create/dictionary/sources/mysql) +- [mysql_datatypes_support_level](/core/reference/settings/session-settings#mysql_datatypes_support_level) +- [mysql_map_fixed_string_to_text_in_show_columns](/core/reference/settings/session-settings#mysql_map_fixed_string_to_text_in_show_columns) +- [mysql_map_string_to_text_in_show_columns](/core/reference/settings/session-settings#mysql_map_string_to_text_in_show_columns) +- [mysql_max_rows_to_insert](/core/reference/settings/session-settings#mysql_max_rows_to_insert) diff --git a/reference/functions/table-functions/null.mdx b/core/reference/functions/table-functions/null.mdx similarity index 69% rename from reference/functions/table-functions/null.mdx rename to core/reference/functions/table-functions/null.mdx index 77448da9..6c261f77 100644 --- a/reference/functions/table-functions/null.mdx +++ b/core/reference/functions/table-functions/null.mdx @@ -7,7 +7,7 @@ title: 'null' doc_type: 'reference' --- -Creates a temporary table of the specified structure with the [Null](/reference/engines/table-engines/special/null) table engine. According to the `Null`-engine properties, the table data is ignored and the table itself is immediately dropped right after the query execution. The function is used for the convenience of test writing and demonstrations. +Creates a temporary table of the specified structure with the [Null](/core/reference/engines/table-engines/special/null) table engine. According to the `Null`-engine properties, the table data is ignored and the table itself is immediately dropped right after the query execution. The function is used for the convenience of test writing and demonstrations. ## Syntax {#syntax} @@ -17,7 +17,7 @@ null('structure') ## Argument {#argument} -- `structure` — A list of columns and column types. [String](/reference/data-types/string). +- `structure` — A list of columns and column types. [String](/core/reference/data-types/string). ## Returned value {#returned_value} @@ -40,4 +40,4 @@ DROP TABLE IF EXISTS t; ## Related {#related} -- [Null table engine](/reference/engines/table-engines/special/null) +- [Null table engine](/core/reference/engines/table-engines/special/null) diff --git a/reference/functions/table-functions/numbers.mdx b/core/reference/functions/table-functions/numbers.mdx similarity index 90% rename from reference/functions/table-functions/numbers.mdx rename to core/reference/functions/table-functions/numbers.mdx index 0af971f2..174ba923 100644 --- a/reference/functions/table-functions/numbers.mdx +++ b/core/reference/functions/table-functions/numbers.mdx @@ -14,7 +14,7 @@ doc_type: 'reference' - `numbers(N, M, S)` – Returns a table with a single `number` column (UInt64) that contains values in `[N, N + M)` with step `S` (about `M / S` rows, rounded up). `S` must be `>= 1`. -This is similar to the [`system.numbers`](/reference/system-tables/numbers) system table. It can be used for testing and generating successive values. +This is similar to the [`system.numbers`](/core/reference/system-tables/numbers) system table. It can be used for testing and generating successive values. The following queries are equivalent: @@ -89,4 +89,4 @@ LIMIT 1; ### Notes {#notes} - For performance reasons, if you know how many rows you need, prefer bounded forms (`numbers(N)`, `numbers(N, M[, S])`) over unbounded `numbers()` / `system.numbers`. -- For parallel generation, use `numbers_mt(...)` or the [`system.numbers_mt`](/reference/system-tables/numbers_mt) table. Note that results may be returned in any order. +- For parallel generation, use `numbers_mt(...)` or the [`system.numbers_mt`](/core/reference/system-tables/numbers_mt) table. Note that results may be returned in any order. diff --git a/reference/functions/table-functions/odbc.mdx b/core/reference/functions/table-functions/odbc.mdx similarity index 94% rename from reference/functions/table-functions/odbc.mdx rename to core/reference/functions/table-functions/odbc.mdx index 4d12db96..0fbc1deb 100644 --- a/reference/functions/table-functions/odbc.mdx +++ b/core/reference/functions/table-functions/odbc.mdx @@ -24,7 +24,7 @@ odbc(named_collection) | `external_database` | Name of a database in an external DBMS. | | `external_table` | Name of a table in the `external_database`. | -These parameters can also be passed using [named collections](/concepts/features/configuration/server-config/named-collections). +These parameters can also be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). To safely implement ODBC connections, ClickHouse uses a separate program `clickhouse-odbc-bridge`. If the ODBC driver is loaded directly from `clickhouse-server`, driver problems can crash the ClickHouse server. ClickHouse automatically starts `clickhouse-odbc-bridge` when it is required. The ODBC bridge program is installed from the same package as the `clickhouse-server`. @@ -109,5 +109,5 @@ SELECT * FROM odbc('DSN=mysqlconn', 'test', 'test') ## Related {#see-also} -- [ODBC dictionaries](/reference/statements/create/dictionary/sources/odbc) -- [ODBC table engine](/reference/engines/table-engines/integrations/odbc). +- [ODBC dictionaries](/core/reference/statements/create/dictionary/sources/odbc) +- [ODBC table engine](/core/reference/engines/table-engines/integrations/odbc). diff --git a/reference/functions/table-functions/paimon.mdx b/core/reference/functions/table-functions/paimon.mdx similarity index 97% rename from reference/functions/table-functions/paimon.mdx rename to core/reference/functions/table-functions/paimon.mdx index 5da150e5..d3372e3b 100644 --- a/reference/functions/table-functions/paimon.mdx +++ b/core/reference/functions/table-functions/paimon.mdx @@ -116,4 +116,4 @@ Data types supported in Paimon partition keys: ## See Also {#see-also} -* [Paimon cluster table function](/reference/functions/table-functions/paimonCluster) +* [Paimon cluster table function](/core/reference/functions/table-functions/paimonCluster) diff --git a/reference/functions/table-functions/paimonCluster.mdx b/core/reference/functions/table-functions/paimonCluster.mdx similarity index 89% rename from reference/functions/table-functions/paimonCluster.mdx rename to core/reference/functions/table-functions/paimonCluster.mdx index df5b32b6..5dabe06d 100644 --- a/reference/functions/table-functions/paimonCluster.mdx +++ b/core/reference/functions/table-functions/paimonCluster.mdx @@ -13,7 +13,7 @@ import ExperimentalBadge from "/snippets/components/ExperimentalBadge/Experiment -This is an extension to the [paimon](/reference/functions/table-functions/paimon) table function. +This is an extension to the [paimon](/core/reference/functions/table-functions/paimon) table function. Allows processing files from Apache [Paimon](https://paimon.apache.org/) in parallel from many nodes in a specified cluster. On initiator it creates a connection to all nodes in the cluster and dispatches each file dynamically. On the worker node it asks the initiator about the next task to process and processes it. This is repeated until all tasks are finished. @@ -30,7 +30,7 @@ paimonHDFSCluster(cluster_name, path_to_table, [,format] [,compression_method]) ## Arguments {#arguments} - `cluster_name` — Name of a cluster that is used to build a set of addresses and connection parameters to remote and local servers. -- Description of all other arguments coincides with description of arguments in equivalent [paimon](/reference/functions/table-functions/paimon) table function. +- Description of all other arguments coincides with description of arguments in equivalent [paimon](/core/reference/functions/table-functions/paimon) table function. - An optional `extra_credentials` parameter can be used to pass a `role_arn` for role-based access in ClickHouse Cloud. See [Secure S3](/products/cloud/guides/data-sources/accessing-s3-data-securely) for configuration steps. **Returned value** @@ -47,4 +47,4 @@ A table with the specified structure for reading data from cluster in the specif **See Also** -- [Paimon table function](/reference/functions/table-functions/paimon) +- [Paimon table function](/core/reference/functions/table-functions/paimon) diff --git a/reference/functions/table-functions/postgresql.mdx b/core/reference/functions/table-functions/postgresql.mdx similarity index 91% rename from reference/functions/table-functions/postgresql.mdx rename to core/reference/functions/table-functions/postgresql.mdx index ff24295a..0f21d797 100644 --- a/reference/functions/table-functions/postgresql.mdx +++ b/core/reference/functions/table-functions/postgresql.mdx @@ -27,7 +27,7 @@ postgresql({host:port, database, table, user, password[, schema, [, on_conflict] | `schema` | Non-default table schema. Optional. | | `on_conflict` | Conflict resolution strategy. Example: `ON CONFLICT DO NOTHING`. Optional. | -Arguments also can be passed using [named collections](/concepts/features/configuration/server-config/named-collections). In this case `host` and `port` should be specified separately. This approach is recommended for production environment. +Arguments also can be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). In this case `host` and `port` should be specified separately. This approach is recommended for production environment. ## Returned value {#returned_value} @@ -98,7 +98,7 @@ Selecting data from ClickHouse using plain arguments: SELECT * FROM postgresql('localhost:5432', 'test', 'test', 'postgresql_user', 'password') WHERE str IN ('test'); ``` -Or using [named collections](/concepts/features/configuration/server-config/named-collections): +Or using [named collections](/core/concepts/features/configuration/server-config/named-collections): ```sql CREATE NAMED COLLECTION mypg AS @@ -147,8 +147,8 @@ CREATE TABLE pg_table_schema_with_dots (a UInt32) ## Related {#related} -- [The PostgreSQL table engine](/reference/engines/table-engines/integrations/postgresql) -- [Using PostgreSQL as a dictionary source](/reference/statements/create/dictionary/sources/postgresql) +- [The PostgreSQL table engine](/core/reference/engines/table-engines/integrations/postgresql) +- [Using PostgreSQL as a dictionary source](/core/reference/statements/create/dictionary/sources/postgresql) ### Replicating or migrating Postgres data with with PeerDB {#replicating-or-migrating-postgres-data-with-with-peerdb} diff --git a/reference/functions/table-functions/primes.mdx b/core/reference/functions/table-functions/primes.mdx similarity index 97% rename from reference/functions/table-functions/primes.mdx rename to core/reference/functions/table-functions/primes.mdx index 4c9e2d69..3ec33986 100644 --- a/reference/functions/table-functions/primes.mdx +++ b/core/reference/functions/table-functions/primes.mdx @@ -14,7 +14,7 @@ doc_type: 'reference' - `primes(N, M, S)` – Returns a table with the single `prime` column (UInt64) that contains `M` prime numbers starting from the `N`-th prime (0-based) with step `S` by prime index. The returned primes correspond to indices `N, N + S, N + 2S, ..., N + (M - 1)S`. `S` must be `>= 1`. -This is similar to the [`system.primes`](/reference/system-tables/primes) system table. +This is similar to the [`system.primes`](/core/reference/system-tables/primes) system table. The following queries are equivalent: diff --git a/reference/functions/table-functions/prometheusQuery.mdx b/core/reference/functions/table-functions/prometheusQuery.mdx similarity index 100% rename from reference/functions/table-functions/prometheusQuery.mdx rename to core/reference/functions/table-functions/prometheusQuery.mdx diff --git a/reference/functions/table-functions/prometheusQueryRange.mdx b/core/reference/functions/table-functions/prometheusQueryRange.mdx similarity index 100% rename from reference/functions/table-functions/prometheusQueryRange.mdx rename to core/reference/functions/table-functions/prometheusQueryRange.mdx diff --git a/reference/functions/table-functions/redis.mdx b/core/reference/functions/table-functions/redis.mdx similarity index 87% rename from reference/functions/table-functions/redis.mdx rename to core/reference/functions/table-functions/redis.mdx index dfc04868..ee95a2f5 100644 --- a/reference/functions/table-functions/redis.mdx +++ b/core/reference/functions/table-functions/redis.mdx @@ -29,7 +29,7 @@ redis(host:port, key, structure[, db_index[, password[, pool_size]]]) - columns other than the primary key will be serialized in binary as Redis value in corresponding order. - queries with key equals or in filtering will be optimized to multi keys lookup from Redis. If queries without filtering key full table scan will happen which is a heavy operation. -[Named collections](/concepts/features/configuration/server-config/named-collections) are not supported for `redis` table function at the moment. +[Named collections](/core/concepts/features/configuration/server-config/named-collections) are not supported for `redis` table function at the moment. ## Returned value {#returned_value} @@ -58,5 +58,5 @@ INSERT INTO TABLE FUNCTION redis( ## Related {#related} -- [The `Redis` table engine](/reference/engines/table-engines/integrations/redis) -- [Using redis as a dictionary source](/reference/statements/create/dictionary/sources/redis) +- [The `Redis` table engine](/core/reference/engines/table-engines/integrations/redis) +- [Using redis as a dictionary source](/core/reference/statements/create/dictionary/sources/redis) diff --git a/reference/functions/table-functions/remote.mdx b/core/reference/functions/table-functions/remote.mdx similarity index 80% rename from reference/functions/table-functions/remote.mdx rename to core/reference/functions/table-functions/remote.mdx index 3fcee753..68c24530 100644 --- a/reference/functions/table-functions/remote.mdx +++ b/core/reference/functions/table-functions/remote.mdx @@ -8,7 +8,7 @@ title: 'remote, remoteSecure' doc_type: 'reference' --- -Table function `remote` allows to access remote servers on-the-fly, i.e. without creating a [Distributed](/reference/engines/table-engines/special/distributed) table. Table function `remoteSecure` is same as `remote` but over a secure connection. +Table function `remote` allows to access remote servers on-the-fly, i.e. without creating a [Distributed](/core/reference/engines/table-engines/special/distributed) table. Table function `remoteSecure` is same as `remote` but over a secure connection. Both functions can be used in `SELECT` and `INSERT` queries. @@ -27,14 +27,14 @@ remoteSecure(named_collection[, option=value [,..]]) | Argument | Description | |----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `addresses_expr` | A remote server address or an expression that generates multiple addresses of remote servers. Format: `host` or `host:port`.

    The `host` can be specified as a server name, or as a IPv4 or IPv6 address. An IPv6 address must be specified in `[]`.

    The `port` is the TCP port on the remote server. If the port is omitted, it uses [tcp_port](/reference/settings/server-settings/settings#tcp_port) from the server config file for table function `remote` (by default, 9000) and [tcp_port_secure](/reference/settings/server-settings/settings#tcp_port_secure) for table function `remoteSecure` (by default, 9440).

    For IPv6 addresses, a port is required.

    If only parameter `addresses_expr` is specified, `db` and `table` will use `system.one` by default.

    Type: [String](/reference/data-types/string). | -| `db` | Database name. Type: [String](/reference/data-types/string). | -| `table` | Table name. Type: [String](/reference/data-types/string). | -| `user` | User name. If not specified, `default` is used. Type: [String](/reference/data-types/string). | -| `password` | User password. If not specified, an empty password is used. Type: [String](/reference/data-types/string). | -| `sharding_key` | Sharding key to support distributing data across nodes. For example: `insert into remote('127.0.0.1:9000,127.0.0.2', db, table, 'default', rand())`. Type: [UInt32](/reference/data-types/int-uint). | +| `addresses_expr` | A remote server address or an expression that generates multiple addresses of remote servers. Format: `host` or `host:port`.

    The `host` can be specified as a server name, or as a IPv4 or IPv6 address. An IPv6 address must be specified in `[]`.

    The `port` is the TCP port on the remote server. If the port is omitted, it uses [tcp_port](/core/reference/settings/server-settings/settings#tcp_port) from the server config file for table function `remote` (by default, 9000) and [tcp_port_secure](/core/reference/settings/server-settings/settings#tcp_port_secure) for table function `remoteSecure` (by default, 9440).

    For IPv6 addresses, a port is required.

    If only parameter `addresses_expr` is specified, `db` and `table` will use `system.one` by default.

    Type: [String](/core/reference/data-types/string). | +| `db` | Database name. Type: [String](/core/reference/data-types/string). | +| `table` | Table name. Type: [String](/core/reference/data-types/string). | +| `user` | User name. If not specified, `default` is used. Type: [String](/core/reference/data-types/string). | +| `password` | User password. If not specified, an empty password is used. Type: [String](/core/reference/data-types/string). | +| `sharding_key` | Sharding key to support distributing data across nodes. For example: `insert into remote('127.0.0.1:9000,127.0.0.2', db, table, 'default', rand())`. Type: [UInt32](/core/reference/data-types/int-uint). | -Arguments also can be passed using [named collections](/concepts/features/configuration/server-config/named-collections). +Arguments also can be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). ## Returned value {#returned-value} @@ -79,7 +79,7 @@ example01-01-1,example01-02-1 SELECT * FROM remote('127.0.0.1', db.remote_engine_table) LIMIT 3; ``` -Or using [named collections](/concepts/features/configuration/server-config/named-collections): +Or using [named collections](/core/concepts/features/configuration/server-config/named-collections): ```sql CREATE NAMED COLLECTION creds AS @@ -171,5 +171,5 @@ The following pattern types are supported. - `{0n..0m}` - A range of numbers with leading zeroes. This pattern preserves leading zeroes in indices. For instance, `example{01..03}-1` generates `example01-1`, `example02-1` and `example03-1`. - `{a|b}` - Any number of variants separated by a `|`. The pattern specifies replicas. For instance, `example01-{1|2}` generates replicas `example01-1` and `example01-2`. -The query will be sent to the first healthy replica. However, for `remote` the replicas are iterated in the order currently set in the [load_balancing](/reference/settings/session-settings#load_balancing) setting. -The number of generated addresses is limited by [table_function_remote_max_addresses](/reference/settings/session-settings#table_function_remote_max_addresses) setting. +The query will be sent to the first healthy replica. However, for `remote` the replicas are iterated in the order currently set in the [load_balancing](/core/reference/settings/session-settings#load_balancing) setting. +The number of generated addresses is limited by [table_function_remote_max_addresses](/core/reference/settings/session-settings#table_function_remote_max_addresses) setting. diff --git a/reference/functions/table-functions/s3.mdx b/core/reference/functions/table-functions/s3.mdx similarity index 92% rename from reference/functions/table-functions/s3.mdx rename to core/reference/functions/table-functions/s3.mdx index be860672..57dedbec 100644 --- a/reference/functions/table-functions/s3.mdx +++ b/core/reference/functions/table-functions/s3.mdx @@ -12,11 +12,11 @@ doc_type: 'reference' import ExperimentalBadge from "/snippets/components/ExperimentalBadge/ExperimentalBadge.jsx"; import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/CloudNotSupportedBadge.jsx"; -Provides a table-like interface to select/insert files in [Amazon S3](https://aws.amazon.com/s3/) and [Google Cloud Storage](https://cloud.google.com/storage/). This table function is similar to the [hdfs function](/reference/functions/table-functions/hdfs), but provides S3-specific features. +Provides a table-like interface to select/insert files in [Amazon S3](https://aws.amazon.com/s3/) and [Google Cloud Storage](https://cloud.google.com/storage/). This table function is similar to the [hdfs function](/core/reference/functions/table-functions/hdfs), but provides S3-specific features. -If you have multiple replicas in your cluster, you can use the [s3Cluster function](/reference/functions/table-functions/s3Cluster) instead to parallelize inserts. +If you have multiple replicas in your cluster, you can use the [s3Cluster function](/core/reference/functions/table-functions/s3Cluster) instead to parallelize inserts. -When using the `s3 table function` with [`INSERT INTO...SELECT`](/reference/statements/insert-into#inserting-the-results-of-select), data is read and inserted in a streaming fashion. Only a few blocks of data reside in memory while the blocks are continuously read from S3 and pushed into the destination table. +When using the `s3 table function` with [`INSERT INTO...SELECT`](/core/reference/statements/insert-into#inserting-the-results-of-select), data is read and inserted in a streaming fashion. Only a few blocks of data reside in memory while the blocks are continuously read from S3 and pushed into the destination table. ## Syntax {#syntax} @@ -39,11 +39,11 @@ For GCS, substitute your HMAC key and HMAC secret where you see `access_key_id` | Parameter | Description | |-----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `url` | Bucket url with path to file. Supports following wildcards in readonly mode: `*`, `**`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` — numbers, `'abc'`, `'def'` — strings. For more information see [here](/reference/engines/table-engines/integrations/s3#wildcards-in-path). | +| `url` | Bucket url with path to file. Supports following wildcards in readonly mode: `*`, `**`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` — numbers, `'abc'`, `'def'` — strings. For more information see [here](/core/reference/engines/table-engines/integrations/s3#wildcards-in-path). | | `NOSIGN` | If this keyword is provided in place of credentials, all the requests will not be signed. | | `access_key_id` and `secret_access_key` | Keys that specify credentials to use with given endpoint. Optional. | | `session_token` | Session token to use with the given keys. Optional when passing keys. | -| `format` | The [format](/reference/formats) of the file. | +| `format` | The [format](/core/reference/formats) of the file. | | `structure` | Structure of the table. Format `'column1_name column1_type, column2_name column2_type, ...'`. | | `compression_method` | Parameter is optional. Supported values: `none`, `gzip` or `gz`, `brotli` or `br`, `xz` or `LZMA`, `zstd` or `zst`. By default, it will autodetect compression method by file extension. | | `headers` | Parameter is optional. Allows headers to be passed in the S3 request. Pass in the format `headers(key=value)` e.g. `headers('x-amz-request-payer' = 'requester')`. | @@ -64,7 +64,7 @@ The GCS url is in this format as the endpoint for the Google XML API is differen and not ~~https://storage.cloud.google.com~~. -Arguments can also be passed using [named collections](/concepts/features/configuration/server-config/named-collections). In this case `url`, `access_key_id`, `secret_access_key`, `format`, `structure`, `compression_method` work in the same way, and some extra parameters are supported: +Arguments can also be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). In this case `url`, `access_key_id`, `secret_access_key`, `format`, `structure`, `compression_method` work in the same way, and some extra parameters are supported: | Argument | Description | |-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -233,7 +233,7 @@ Custom mapper can be added into `config.xml`: ``` -For production use cases it is recommended to use [named collections](/concepts/features/configuration/server-config/named-collections). Here is the example: +For production use cases it is recommended to use [named collections](/core/concepts/features/configuration/server-config/named-collections). Here is the example: ```sql CREATE NAMED COLLECTION creds AS @@ -391,9 +391,9 @@ Peak memory usage: 192.27 KiB. ## Storage Settings {#storage-settings} -- [s3_truncate_on_insert](/reference/settings/session-settings#s3_truncate_on_insert) - allows to truncate file before insert into it. Disabled by default. -- [s3_create_new_file_on_insert](/reference/settings/session-settings#s3_create_new_file_on_insert) - allows to create a new file on each insert if format has suffix. Disabled by default. -- [s3_skip_empty_files](/reference/settings/session-settings#s3_skip_empty_files) - allows to skip empty files while reading. Enabled by default. +- [s3_truncate_on_insert](/core/reference/settings/session-settings#s3_truncate_on_insert) - allows to truncate file before insert into it. Disabled by default. +- [s3_create_new_file_on_insert](/core/reference/settings/session-settings#s3_create_new_file_on_insert) - allows to create a new file on each insert if format has suffix. Disabled by default. +- [s3_skip_empty_files](/core/reference/settings/session-settings#s3_skip_empty_files) - allows to skip empty files while reading. Enabled by default. ## Nested Avro Schemas {#nested-avro-schemas} @@ -425,5 +425,5 @@ SETTINGS schema_inference_mode='union'; ## Related {#related} -- [S3 engine](/reference/engines/table-engines/integrations/s3) +- [S3 engine](/core/reference/engines/table-engines/integrations/s3) - [Integrating S3 with ClickHouse](/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse) diff --git a/reference/functions/table-functions/s3Cluster.mdx b/core/reference/functions/table-functions/s3Cluster.mdx similarity index 86% rename from reference/functions/table-functions/s3Cluster.mdx rename to core/reference/functions/table-functions/s3Cluster.mdx index 3a80d3bc..0fd865d2 100644 --- a/reference/functions/table-functions/s3Cluster.mdx +++ b/core/reference/functions/table-functions/s3Cluster.mdx @@ -8,7 +8,7 @@ title: 's3Cluster' doc_type: 'reference' --- -This is an extension to the [s3](/reference/functions/table-functions/s3) table function. +This is an extension to the [s3](/core/reference/functions/table-functions/s3) table function. Allows processing files from [Amazon S3](https://aws.amazon.com/s3/) and Google Cloud Storage [Google Cloud Storage](https://cloud.google.com/storage/) in parallel with many nodes in a specified cluster. On initiator it creates a connection to all nodes in the cluster, discloses asterisks in S3 file path, and dispatches each file dynamically. On the worker node it asks the initiator about the next task to process and processes it. This is repeated until all tasks are finished. @@ -24,17 +24,17 @@ s3Cluster(cluster_name, named_collection[, option=value [,..]]) | Argument | Description | |---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `cluster_name` | Name of a cluster that is used to build a set of addresses and connection parameters to remote and local servers. | -| `url` | path to a file or a bunch of files. Supports following wildcards in readonly mode: `*`, `**`, `?`, `{'abc','def'}` and `{N..M}` where `N`, `M` — numbers, `abc`, `def` — strings. For more information see [Wildcards In Path](/reference/engines/table-engines/integrations/s3#wildcards-in-path). | +| `url` | path to a file or a bunch of files. Supports following wildcards in readonly mode: `*`, `**`, `?`, `{'abc','def'}` and `{N..M}` where `N`, `M` — numbers, `abc`, `def` — strings. For more information see [Wildcards In Path](/core/reference/engines/table-engines/integrations/s3#wildcards-in-path). | | `NOSIGN` | If this keyword is provided in place of credentials, all the requests will not be signed. | | `access_key_id` and `secret_access_key` | Keys that specify credentials to use with given endpoint. Optional. | | `session_token` | Session token to use with the given keys. Optional when passing keys. | -| `format` | The [format](/reference/formats) of the file. | +| `format` | The [format](/core/reference/formats) of the file. | | `structure` | Structure of the table. Format `'column1_name column1_type, column2_name column2_type, ...'`. | | `compression_method` | Parameter is optional. Supported values: `none`, `gzip` or `gz`, `brotli` or `br`, `xz` or `LZMA`, `zstd` or `zst`. By default, it will autodetect compression method by file extension. | -| `headers` | Parameter is optional. Allows headers to be passed in the S3 request. Pass in the format `headers(key=value)` e.g. `headers('x-amz-request-payer' = 'requester')`. See [here](/reference/functions/table-functions/s3#accessing-requester-pays-buckets) for example of use. | +| `headers` | Parameter is optional. Allows headers to be passed in the S3 request. Pass in the format `headers(key=value)` e.g. `headers('x-amz-request-payer' = 'requester')`. See [here](/core/reference/functions/table-functions/s3#accessing-requester-pays-buckets) for example of use. | | `extra_credentials` | Optional. `roleARN` can be passed via this parameter. See [here](/products/cloud/guides/data-sources/accessing-s3-data-securely#access-your-s3-bucket-with-the-clickhouseaccess-role) for an example. | -Arguments can also be passed using [named collections](/concepts/features/configuration/server-config/named-collections). In this case `url`, `access_key_id`, `secret_access_key`, `format`, `structure`, `compression_method` work in the same way, and some extra parameters are supported: +Arguments can also be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). In this case `url`, `access_key_id`, `secret_access_key`, `format`, `structure`, `compression_method` work in the same way, and some extra parameters are supported: | Argument | Description | |--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -68,7 +68,7 @@ Count the total amount of rows in all files in the cluster `cluster_simple`: If your listing of files contains number ranges with leading zeros, use the construction with braces for each digit separately or use `?`.
    -For production use cases, it is recommended to use [named collections](/concepts/features/configuration/server-config/named-collections). Here is the example: +For production use cases, it is recommended to use [named collections](/core/concepts/features/configuration/server-config/named-collections). Here is the example: ```sql CREATE NAMED COLLECTION creds AS @@ -82,7 +82,7 @@ SELECT count(*) FROM s3Cluster( ## Accessing private and public buckets {#accessing-private-and-public-buckets} -Users can use the same approaches as document for the s3 function [here](/reference/functions/table-functions/s3#accessing-public-buckets). +Users can use the same approaches as document for the s3 function [here](/core/reference/functions/table-functions/s3#accessing-public-buckets). ## Optimizing performance {#optimizing-performance} @@ -90,5 +90,5 @@ For details on optimizing the performance of the s3 function see [our detailed g ## Related {#related} -- [S3 engine](/reference/engines/table-engines/integrations/s3) -- [s3 table function](/reference/functions/table-functions/s3) +- [S3 engine](/core/reference/engines/table-engines/integrations/s3) +- [s3 table function](/core/reference/functions/table-functions/s3) diff --git a/reference/functions/table-functions/sqlite.mdx b/core/reference/functions/table-functions/sqlite.mdx similarity index 68% rename from reference/functions/table-functions/sqlite.mdx rename to core/reference/functions/table-functions/sqlite.mdx index 08997793..4c5c89df 100644 --- a/reference/functions/table-functions/sqlite.mdx +++ b/core/reference/functions/table-functions/sqlite.mdx @@ -6,7 +6,7 @@ title: 'sqlite' doc_type: 'reference' --- -Allows to perform queries on data stored in a [SQLite](/reference/engines/database-engines/sqlite) database. +Allows to perform queries on data stored in a [SQLite](/core/reference/engines/database-engines/sqlite) database. ## Syntax {#syntax} @@ -16,8 +16,8 @@ sqlite('db_path', 'table_name') ## Arguments {#arguments} -- `db_path` — Path to a file with an SQLite database. [String](/reference/data-types/string). -- `table_name` — Name of a table in the SQLite database. [String](/reference/data-types/string). +- `db_path` — Path to a file with an SQLite database. [String](/core/reference/data-types/string). +- `table_name` — Name of a table in the SQLite database. [String](/core/reference/data-types/string). ## Returned value {#returned_value} @@ -39,5 +39,5 @@ SELECT * FROM sqlite('sqlite.db', 'table1') ORDER BY col2; ## Related {#related} -- [SQLite](/reference/engines/table-engines/integrations/sqlite) table engine -- [SQLite database engine](/reference/engines/database-engines/sqlite) — Data types support section +- [SQLite](/core/reference/engines/table-engines/integrations/sqlite) table engine +- [SQLite database engine](/core/reference/engines/database-engines/sqlite) — Data types support section diff --git a/reference/functions/table-functions/timeSeriesData.mdx b/core/reference/functions/table-functions/timeSeriesData.mdx similarity index 84% rename from reference/functions/table-functions/timeSeriesData.mdx rename to core/reference/functions/table-functions/timeSeriesData.mdx index d825056a..7b382a52 100644 --- a/reference/functions/table-functions/timeSeriesData.mdx +++ b/core/reference/functions/table-functions/timeSeriesData.mdx @@ -7,8 +7,8 @@ title: 'timeSeriesData' doc_type: 'reference' --- -`timeSeriesData(db_name.time_series_table)` - Returns the [data](/reference/engines/table-engines/integrations/time-series#data-table) table -used by table `db_name.time_series_table` whose table engine is [TimeSeries](/reference/engines/table-engines/integrations/time-series): +`timeSeriesData(db_name.time_series_table)` - Returns the [data](/core/reference/engines/table-engines/integrations/time-series#data-table) table +used by table `db_name.time_series_table` whose table engine is [TimeSeries](/core/reference/engines/table-engines/integrations/time-series): ```sql CREATE TABLE db_name.time_series_table ENGINE=TimeSeries DATA data_table diff --git a/reference/functions/table-functions/timeSeriesMetrics.mdx b/core/reference/functions/table-functions/timeSeriesMetrics.mdx similarity index 83% rename from reference/functions/table-functions/timeSeriesMetrics.mdx rename to core/reference/functions/table-functions/timeSeriesMetrics.mdx index 53fdbf3e..d43cf131 100644 --- a/reference/functions/table-functions/timeSeriesMetrics.mdx +++ b/core/reference/functions/table-functions/timeSeriesMetrics.mdx @@ -7,8 +7,8 @@ title: 'timeSeriesMetrics' doc_type: 'reference' --- -`timeSeriesMetrics(db_name.time_series_table)` - Returns the [metrics](/reference/engines/table-engines/integrations/time-series#metrics-table) table -used by table `db_name.time_series_table` whose table engine is the [TimeSeries](/reference/engines/table-engines/integrations/time-series) engine: +`timeSeriesMetrics(db_name.time_series_table)` - Returns the [metrics](/core/reference/engines/table-engines/integrations/time-series#metrics-table) table +used by table `db_name.time_series_table` whose table engine is the [TimeSeries](/core/reference/engines/table-engines/integrations/time-series) engine: ```sql CREATE TABLE db_name.time_series_table ENGINE=TimeSeries METRICS metrics_table diff --git a/reference/functions/table-functions/timeSeriesSelector.mdx b/core/reference/functions/table-functions/timeSeriesSelector.mdx similarity index 100% rename from reference/functions/table-functions/timeSeriesSelector.mdx rename to core/reference/functions/table-functions/timeSeriesSelector.mdx diff --git a/reference/functions/table-functions/timeSeriesTags.mdx b/core/reference/functions/table-functions/timeSeriesTags.mdx similarity index 84% rename from reference/functions/table-functions/timeSeriesTags.mdx rename to core/reference/functions/table-functions/timeSeriesTags.mdx index 29df42cd..44b8a953 100644 --- a/reference/functions/table-functions/timeSeriesTags.mdx +++ b/core/reference/functions/table-functions/timeSeriesTags.mdx @@ -7,8 +7,8 @@ title: 'timeSeriesTags' doc_type: 'reference' --- -`timeSeriesTags(db_name.time_series_table)` - Returns the [tags](/reference/engines/table-engines/integrations/time-series#tags-table) table -used by table `db_name.time_series_table` whose table engine is the [TimeSeries](/reference/engines/table-engines/integrations/time-series) engine: +`timeSeriesTags(db_name.time_series_table)` - Returns the [tags](/core/reference/engines/table-engines/integrations/time-series#tags-table) table +used by table `db_name.time_series_table` whose table engine is the [TimeSeries](/core/reference/engines/table-engines/integrations/time-series) engine: ```sql CREATE TABLE db_name.time_series_table ENGINE=TimeSeries TAGS tags_table diff --git a/reference/functions/table-functions/url.mdx b/core/reference/functions/table-functions/url.mdx similarity index 72% rename from reference/functions/table-functions/url.mdx rename to core/reference/functions/table-functions/url.mdx index 9741040e..5a2d5351 100644 --- a/reference/functions/table-functions/url.mdx +++ b/core/reference/functions/table-functions/url.mdx @@ -13,7 +13,7 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ `url` function creates a table from the `URL` with given `format` and `structure`. -`url` function may be used in `SELECT` and `INSERT` queries on data in [URL](/reference/engines/table-engines/special/url) tables. +`url` function may be used in `SELECT` and `INSERT` queries on data in [URL](/core/reference/engines/table-engines/special/url) tables. ## Syntax {#syntax} @@ -25,9 +25,9 @@ url(URL [,format] [,structure] [,headers]) | Parameter | Description | |-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| -| `URL` | Single quoted HTTP or HTTPS server address, which can accept `GET` or `POST` requests (for `SELECT` or `INSERT` queries correspondingly). Type: [String](/reference/data-types/string). | -| `format` | [Format](/reference/formats) of the data. Type: [String](/reference/data-types/string). | -| `structure` | Table structure in `'UserID UInt64, Name String'` format. Determines column names and types. Type: [String](/reference/data-types/string). | +| `URL` | Single quoted HTTP or HTTPS server address, which can accept `GET` or `POST` requests (for `SELECT` or `INSERT` queries correspondingly). Type: [String](/core/reference/data-types/string). | +| `format` | [Format](/core/reference/formats) of the data. Type: [String](/core/reference/data-types/string). | +| `structure` | Table structure in `'UserID UInt64, Name String'` format. Determines column names and types. Type: [String](/core/reference/data-types/string). | | `headers` | Headers in `'headers('key1'='value1', 'key2'='value2')'` format. You can set headers for HTTP call. | ## Returned value {#returned_value} @@ -36,7 +36,7 @@ A table with the specified format and structure and with data from the defined ` ## Examples {#examples} -Getting the first 3 lines of a table that contains columns of `String` and [UInt32](/reference/data-types/int-uint) type from HTTP-server which answers in [CSV](/reference/formats/CSV/CSV) format. +Getting the first 3 lines of a table that contains columns of `String` and [UInt32](/core/reference/data-types/int-uint) type from HTTP-server which answers in [CSV](/core/reference/formats/CSV/CSV) format. ```sql SELECT * FROM url('http://127.0.0.1:12345/', CSV, 'column1 String, column2 UInt32', headers('Accept'='text/csv; charset=utf-8')) LIMIT 3; @@ -52,8 +52,8 @@ SELECT * FROM test_table; ## Globs in URL {#globs-in-url} -Patterns in `{ }` are used to generate a set of shards or to specify failover addresses. Supported pattern types and examples see in the description of the [remote](/reference/functions/table-functions/remote#globs-in-addresses) function. -Character `|` inside patterns is used to specify failover addresses. They are iterated in the same order as listed in the pattern. The number of generated addresses is limited by [glob_expansion_max_elements](/reference/settings/session-settings#glob_expansion_max_elements) setting. +Patterns in `{ }` are used to generate a set of shards or to specify failover addresses. Supported pattern types and examples see in the description of the [remote](/core/reference/functions/table-functions/remote#globs-in-addresses) function. +Character `|` inside patterns is used to specify failover addresses. They are iterated in the same order as listed in the pattern. The number of generated addresses is limited by [glob_expansion_max_elements](/core/reference/settings/session-settings#glob_expansion_max_elements) setting. ## Virtual Columns {#virtual-columns} @@ -77,7 +77,7 @@ SELECT * FROM url('http://data/path/date=*/country=*/code=*/*.parquet') WHERE da ## Resolving relative URLs {#resolving-relative-urls} -The [url_base](/reference/settings/session-settings#url_base) setting allows passing a relative URL to the `url` function. When `url_base` is set and the function argument is a relative reference, it is resolved against the base URL per [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). +The [url_base](/core/reference/settings/session-settings#url_base) setting allows passing a relative URL to the `url` function. When `url_base` is set and the function argument is a relative reference, it is resolved against the base URL per [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986). The resolution rules are: @@ -98,14 +98,14 @@ SELECT * FROM url('tests/queries/0_stateless/data_csv/data.csv', CSV) LIMIT 3; ## Storage Settings {#storage-settings} -- [engine_url_skip_empty_files](/reference/settings/session-settings#engine_url_skip_empty_files) - allows to skip empty files while reading. Disabled by default. -- [enable_url_encoding](/reference/settings/session-settings#enable_url_encoding) - allows to enable/disable decoding/encoding path in uri. Enabled by default. -- [url_base](/reference/settings/session-settings#url_base) - base URL for resolving relative URLs passed to the `url` function. +- [engine_url_skip_empty_files](/core/reference/settings/session-settings#engine_url_skip_empty_files) - allows to skip empty files while reading. Disabled by default. +- [enable_url_encoding](/core/reference/settings/session-settings#enable_url_encoding) - allows to enable/disable decoding/encoding path in uri. Enabled by default. +- [url_base](/core/reference/settings/session-settings#url_base) - base URL for resolving relative URLs passed to the `url` function. ## Permissions {#permissions} -`url` function requires `CREATE TEMPORARY TABLE` permission. As such - it'll not work for users with [readonly](/concepts/features/configuration/settings/permissions-for-queries#readonly) = 1 setting. At least readonly = 2 is required. +`url` function requires `CREATE TEMPORARY TABLE` permission. As such - it'll not work for users with [readonly](/core/concepts/features/configuration/settings/permissions-for-queries#readonly) = 1 setting. At least readonly = 2 is required. ## Related {#related} -- [Virtual columns](/reference/engines/table-engines#table_engines-virtual_columns) +- [Virtual columns](/core/reference/engines/table-engines#table_engines-virtual_columns) diff --git a/reference/functions/table-functions/urlCluster.mdx b/core/reference/functions/table-functions/urlCluster.mdx similarity index 76% rename from reference/functions/table-functions/urlCluster.mdx rename to core/reference/functions/table-functions/urlCluster.mdx index b35c2a28..9b66b8c1 100644 --- a/reference/functions/table-functions/urlCluster.mdx +++ b/core/reference/functions/table-functions/urlCluster.mdx @@ -20,9 +20,9 @@ urlCluster(cluster_name, URL, format, structure) | Argument | Description | |----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| | `cluster_name` | Name of a cluster that is used to build a set of addresses and connection parameters to remote and local servers. | -| `URL` | HTTP or HTTPS server address, which can accept `GET` requests. Type: [String](/reference/data-types/string). | -| `format` | [Format](/reference/formats) of the data. Type: [String](/reference/data-types/string). | -| `structure` | Table structure in `'UserID UInt64, Name String'` format. Determines column names and types. Type: [String](/reference/data-types/string). | +| `URL` | HTTP or HTTPS server address, which can accept `GET` requests. Type: [String](/core/reference/data-types/string). | +| `format` | [Format](/core/reference/formats) of the data. Type: [String](/core/reference/data-types/string). | +| `structure` | Table structure in `'UserID UInt64, Name String'` format. Determines column names and types. Type: [String](/core/reference/data-types/string). | ## Returned value {#returned_value} @@ -30,7 +30,7 @@ A table with the specified format and structure and with data from the defined ` ## Examples {#examples} -Getting the first 3 lines of a table that contains columns of `String` and [UInt32](/reference/data-types/int-uint) type from HTTP-server which answers in [CSV](/reference/formats/CSV/CSV) format. +Getting the first 3 lines of a table that contains columns of `String` and [UInt32](/core/reference/data-types/int-uint) type from HTTP-server which answers in [CSV](/core/reference/formats/CSV/CSV) format. 1. Create a basic HTTP server using the standard Python 3 tools and start it: @@ -56,10 +56,10 @@ SELECT * FROM urlCluster('cluster_simple','http://127.0.0.1:12345', CSV, 'column ## Globs in URL {#globs-in-url} -Patterns in `{ }` are used to generate a set of shards or to specify failover addresses. Supported pattern types and examples see in the description of the [remote](/reference/functions/table-functions/remote#globs-in-addresses) function. -Character `|` inside patterns is used to specify failover addresses. They are iterated in the same order as listed in the pattern. The number of generated addresses is limited by [glob_expansion_max_elements](/reference/settings/session-settings#glob_expansion_max_elements) setting. +Patterns in `{ }` are used to generate a set of shards or to specify failover addresses. Supported pattern types and examples see in the description of the [remote](/core/reference/functions/table-functions/remote#globs-in-addresses) function. +Character `|` inside patterns is used to specify failover addresses. They are iterated in the same order as listed in the pattern. The number of generated addresses is limited by [glob_expansion_max_elements](/core/reference/settings/session-settings#glob_expansion_max_elements) setting. ## Related {#related} -- [HDFS engine](/reference/engines/table-engines/integrations/hdfs) -- [URL table function](/reference/engines/table-engines/special/url) +- [HDFS engine](/core/reference/engines/table-engines/integrations/hdfs) +- [URL table function](/core/reference/engines/table-engines/special/url) diff --git a/reference/functions/table-functions/values.mdx b/core/reference/functions/table-functions/values.mdx similarity index 96% rename from reference/functions/table-functions/values.mdx rename to core/reference/functions/table-functions/values.mdx index 3f37e4ac..96f5becf 100644 --- a/reference/functions/table-functions/values.mdx +++ b/core/reference/functions/table-functions/values.mdx @@ -35,10 +35,10 @@ VALUES( ## Arguments {#arguments} -- `column1_name Type1, ...` (optional). [String](/reference/data-types/string) +- `column1_name Type1, ...` (optional). [String](/core/reference/data-types/string) specifying the column names and types. If this argument is omitted columns will be named as `c1`, `c2`, etc. -- `(value1_row1, value2_row1)`. [Tuples](/reference/data-types/tuple) +- `(value1_row1, value2_row1)`. [Tuples](/core/reference/data-types/tuple) containing values of any type. @@ -228,4 +228,4 @@ naming columns of derived tables. If omitted, columns are named `c1`, `c2`, etc. ## See also {#see-also} -- [Values format](/reference/formats/Values) +- [Values format](/core/reference/formats/Values) diff --git a/reference/functions/table-functions/view.mdx b/core/reference/functions/table-functions/view.mdx similarity index 72% rename from reference/functions/table-functions/view.mdx rename to core/reference/functions/table-functions/view.mdx index 5ec196e6..30031bf4 100644 --- a/reference/functions/table-functions/view.mdx +++ b/core/reference/functions/table-functions/view.mdx @@ -6,7 +6,7 @@ title: 'view' doc_type: 'reference' --- -Turns a subquery into a table. The function implements views (see [CREATE VIEW](/reference/statements/create/view)). The resulting table does not store data, but only stores the specified `SELECT` query. When reading from the table, ClickHouse executes the query and deletes all unnecessary columns from the result. +Turns a subquery into a table. The function implements views (see [CREATE VIEW](/core/reference/statements/create/view)). The resulting table does not store data, but only stores the specified `SELECT` query. When reading from the table, ClickHouse executes the query and deletes all unnecessary columns from the result. ## Syntax {#syntax} @@ -48,7 +48,7 @@ SELECT * FROM view(SELECT name FROM months); └──────────┘ ``` -You can use the `view` function as a parameter of the [remote](/reference/functions/table-functions/remote) and [cluster](/reference/functions/table-functions/cluster) table functions: +You can use the `view` function as a parameter of the [remote](/core/reference/functions/table-functions/remote) and [cluster](/core/reference/functions/table-functions/cluster) table functions: ```sql title="Query" SELECT * FROM remote(`127.0.0.1`, view(SELECT a, b, c FROM table_name)); @@ -60,4 +60,4 @@ SELECT * FROM cluster(`cluster_name`, view(SELECT a, b, c FROM table_name)); ## Related {#related} -- [View Table Engine](/reference/engines/table-engines/special/view) +- [View Table Engine](/core/reference/engines/table-engines/special/view) diff --git a/reference/functions/table-functions/ytsaurus.mdx b/core/reference/functions/table-functions/ytsaurus.mdx similarity index 78% rename from reference/functions/table-functions/ytsaurus.mdx rename to core/reference/functions/table-functions/ytsaurus.mdx index 33f58cbd..8e432268 100644 --- a/reference/functions/table-functions/ytsaurus.mdx +++ b/core/reference/functions/table-functions/ytsaurus.mdx @@ -23,7 +23,7 @@ ytsaurus(http_proxy_url, cypress_path, oauth_token, format) This is an experimental feature that may change in backwards-incompatible ways in the future releases. Enable usage of the YTsaurus table function -with [allow_experimental_ytsaurus_table_function](/reference/settings/session-settings#allow_experimental_ytsaurus_table_engine) setting. +with [allow_experimental_ytsaurus_table_function](/core/reference/settings/session-settings#allow_experimental_ytsaurus_table_engine) setting. Input the command `set allow_experimental_ytsaurus_table_function = 1`. @@ -32,7 +32,7 @@ Input the command `set allow_experimental_ytsaurus_table_function = 1`. - `http_proxy_url` — URL to the YTsaurus http proxy. - `cypress_path` — Cypress path to the data source. - `oauth_token` — OAuth token. -- `format` — The [format](/reference/formats) of the data source. +- `format` — The [format](/core/reference/formats) of the data source. **Returned value** @@ -40,4 +40,4 @@ A table with the specified structure for reading data in the specified ytsaurus **See Also** -- [ytsaurus engine](/reference/engines/table-engines/integrations/ytsaurus) +- [ytsaurus engine](/core/reference/engines/table-engines/integrations/ytsaurus) diff --git a/reference/functions/table-functions/zeros.mdx b/core/reference/functions/table-functions/zeros.mdx similarity index 100% rename from reference/functions/table-functions/zeros.mdx rename to core/reference/functions/table-functions/zeros.mdx diff --git a/reference/functions/window-functions/cume_dist.mdx b/core/reference/functions/window-functions/cume_dist.mdx similarity index 95% rename from reference/functions/window-functions/cume_dist.mdx rename to core/reference/functions/window-functions/cume_dist.mdx index de67130c..dca457b0 100644 --- a/reference/functions/window-functions/cume_dist.mdx +++ b/core/reference/functions/window-functions/cume_dist.mdx @@ -20,11 +20,11 @@ WINDOW window_name as ([PARTITION BY grouping_column] [ORDER BY sorting_column] The default and required window frame definition is `RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING`. -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Returned value** -- The relative rank of the current row. The return type is Float64 in the range [0, 1]. [Float64](/reference/data-types/float). +- The relative rank of the current row. The return type is Float64 in the range [0, 1]. [Float64](/core/reference/data-types/float). **Example** diff --git a/reference/functions/window-functions/dense_rank.mdx b/core/reference/functions/window-functions/dense_rank.mdx similarity index 90% rename from reference/functions/window-functions/dense_rank.mdx rename to core/reference/functions/window-functions/dense_rank.mdx index 938885e1..aab58819 100644 --- a/reference/functions/window-functions/dense_rank.mdx +++ b/core/reference/functions/window-functions/dense_rank.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' Ranks the current row within its partition without gaps. In other words, if the value of any new row encountered is equal to the value of one of the previous rows then it will receive the next successive rank without any gaps in ranking. -The [rank](/reference/functions/window-functions/rank) function provides the same behaviour, but with gaps in ranking. +The [rank](/core/reference/functions/window-functions/rank) function provides the same behaviour, but with gaps in ranking. **Syntax** @@ -22,11 +22,11 @@ FROM table_name WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]) ``` -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Returned value** -- A number for the current row within its partition, without gaps in ranking. [UInt64](/reference/data-types/int-uint). +- A number for the current row within its partition, without gaps in ranking. [UInt64](/core/reference/data-types/int-uint). **Example** diff --git a/reference/functions/window-functions/first_value.mdx b/core/reference/functions/window-functions/first_value.mdx similarity index 94% rename from reference/functions/window-functions/first_value.mdx rename to core/reference/functions/window-functions/first_value.mdx index 47d4b753..057b41b2 100644 --- a/reference/functions/window-functions/first_value.mdx +++ b/core/reference/functions/window-functions/first_value.mdx @@ -22,12 +22,12 @@ Alias: `any`. Using the optional modifier `RESPECT NULLS` after `first_value(column_name)` will ensure that `NULL` arguments are not skipped. -See [NULL processing](/reference/functions/aggregate-functions#null-processing) for more information. +See [NULL processing](/core/reference/functions/aggregate-functions#null-processing) for more information. Alias: `firstValueRespectNulls` -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Returned value** diff --git a/reference/functions/window-functions/index.mdx b/core/reference/functions/window-functions/index.mdx similarity index 96% rename from reference/functions/window-functions/index.mdx rename to core/reference/functions/window-functions/index.mdx index a7d50ac9..5579528e 100644 --- a/reference/functions/window-functions/index.mdx +++ b/core/reference/functions/window-functions/index.mdx @@ -81,14 +81,14 @@ WINDOW window_name as ([ These functions can be used only as a window function. -- [`row_number()`](/reference/functions/window-functions/row_number) - Number the current row within its partition starting from 1. -- [`first_value(x)`](/reference/functions/window-functions/first_value) - Return the first value evaluated within its ordered frame. -- [`last_value(x)`](/reference/functions/window-functions/last_value) - Return the last value evaluated within its ordered frame. -- [`nth_value(x, offset)`](/reference/functions/window-functions/nth_value) - Return the first non-NULL value evaluated against the nth row (offset) in its ordered frame. -- [`rank()`](/reference/functions/window-functions/rank) - Rank the current row within its partition with gaps. -- [`dense_rank()`](/reference/functions/window-functions/dense_rank) - Rank the current row within its partition without gaps. -- [`lagInFrame(x)`](/reference/functions/window-functions/lagInFrame) - Return a value evaluated at the row that is at a specified physical offset row before the current row within the ordered frame. -- [`leadInFrame(x)`](/reference/functions/window-functions/leadInFrame) - Return a value evaluated at the row that is offset rows after the current row within the ordered frame. +- [`row_number()`](/core/reference/functions/window-functions/row_number) - Number the current row within its partition starting from 1. +- [`first_value(x)`](/core/reference/functions/window-functions/first_value) - Return the first value evaluated within its ordered frame. +- [`last_value(x)`](/core/reference/functions/window-functions/last_value) - Return the last value evaluated within its ordered frame. +- [`nth_value(x, offset)`](/core/reference/functions/window-functions/nth_value) - Return the first non-NULL value evaluated against the nth row (offset) in its ordered frame. +- [`rank()`](/core/reference/functions/window-functions/rank) - Rank the current row within its partition with gaps. +- [`dense_rank()`](/core/reference/functions/window-functions/dense_rank) - Rank the current row within its partition without gaps. +- [`lagInFrame(x)`](/core/reference/functions/window-functions/lagInFrame) - Return a value evaluated at the row that is at a specified physical offset row before the current row within the ordered frame. +- [`leadInFrame(x)`](/core/reference/functions/window-functions/leadInFrame) - Return a value evaluated at the row that is offset rows after the current row within the ordered frame. ## Examples {#examples} diff --git a/reference/functions/window-functions/lag.mdx b/core/reference/functions/window-functions/lag.mdx similarity index 88% rename from reference/functions/window-functions/lag.mdx rename to core/reference/functions/window-functions/lag.mdx index 2605a920..1e461f5f 100644 --- a/reference/functions/window-functions/lag.mdx +++ b/core/reference/functions/window-functions/lag.mdx @@ -7,7 +7,7 @@ doc_type: 'reference' --- Returns a value evaluated at the row that is at a specified physical offset before the current row within the ordered frame. -This function is similar to [`lagInFrame`](/reference/functions/window-functions/lagInFrame), but always uses the `ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING` frame. +This function is similar to [`lagInFrame`](/core/reference/functions/window-functions/lagInFrame), but always uses the `ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING` frame. **Syntax** @@ -18,12 +18,12 @@ FROM table_name WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]) ``` -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Parameters** - `x` — Column name. -- `offset` — Offset to apply. [(U)Int*](/reference/data-types/int-uint). (Optional - `1` by default). +- `offset` — Offset to apply. [(U)Int*](/core/reference/data-types/int-uint). (Optional - `1` by default). - `default` — Value to return if calculated row exceeds the boundaries of the window frame. (Optional - default value of column type when omitted). **Returned value** diff --git a/reference/functions/window-functions/lagInFrame.mdx b/core/reference/functions/window-functions/lagInFrame.mdx similarity index 95% rename from reference/functions/window-functions/lagInFrame.mdx rename to core/reference/functions/window-functions/lagInFrame.mdx index 4e274f0e..d1b40607 100644 --- a/reference/functions/window-functions/lagInFrame.mdx +++ b/core/reference/functions/window-functions/lagInFrame.mdx @@ -24,11 +24,11 @@ FROM table_name WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]) ``` -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Parameters** - `x` — Column name. -- `offset` — Offset to apply. [(U)Int*](/reference/data-types/int-uint). (Optional - `1` by default). +- `offset` — Offset to apply. [(U)Int*](/core/reference/data-types/int-uint). (Optional - `1` by default). - `default` — Value to return if calculated row exceeds the boundaries of the window frame. (Optional - default value of column type when omitted). **Returned value** diff --git a/reference/functions/window-functions/last_value.mdx b/core/reference/functions/window-functions/last_value.mdx similarity index 94% rename from reference/functions/window-functions/last_value.mdx rename to core/reference/functions/window-functions/last_value.mdx index a6821bcf..545a5138 100644 --- a/reference/functions/window-functions/last_value.mdx +++ b/core/reference/functions/window-functions/last_value.mdx @@ -22,12 +22,12 @@ Alias: `anyLast`. Using the optional modifier `RESPECT NULLS` after `first_value(column_name)` will ensure that `NULL` arguments are not skipped. -See [NULL processing](/reference/functions/aggregate-functions#null-processing) for more information. +See [NULL processing](/core/reference/functions/aggregate-functions#null-processing) for more information. Alias: `lastValueRespectNulls` -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Returned value** diff --git a/reference/functions/window-functions/lead.mdx b/core/reference/functions/window-functions/lead.mdx similarity index 92% rename from reference/functions/window-functions/lead.mdx rename to core/reference/functions/window-functions/lead.mdx index 446a5189..18865054 100644 --- a/reference/functions/window-functions/lead.mdx +++ b/core/reference/functions/window-functions/lead.mdx @@ -7,7 +7,7 @@ doc_type: 'reference' --- Returns a value evaluated at the row that is offset rows after the current row within the ordered frame. -This function is similar to [`leadInFrame`](/reference/functions/window-functions/leadInFrame), but always uses the `ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING` frame. +This function is similar to [`leadInFrame`](/core/reference/functions/window-functions/leadInFrame), but always uses the `ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING` frame. **Syntax** @@ -18,12 +18,12 @@ FROM table_name WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]) ``` -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Parameters** - `x` — Column name. -- `offset` — Offset to apply. [(U)Int*](/reference/data-types/int-uint). (Optional - `1` by default). +- `offset` — Offset to apply. [(U)Int*](/core/reference/data-types/int-uint). (Optional - `1` by default). - `default` — Value to return if calculated row exceeds the boundaries of the window frame. (Optional - default value of column type when omitted). **Returned value** diff --git a/reference/functions/window-functions/leadInFrame.mdx b/core/reference/functions/window-functions/leadInFrame.mdx similarity index 96% rename from reference/functions/window-functions/leadInFrame.mdx rename to core/reference/functions/window-functions/leadInFrame.mdx index ea1909e5..c58e0f57 100644 --- a/reference/functions/window-functions/leadInFrame.mdx +++ b/core/reference/functions/window-functions/leadInFrame.mdx @@ -24,11 +24,11 @@ FROM table_name WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]) ``` -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Parameters** - `x` — Column name. -- `offset` — Offset to apply. [(U)Int*](/reference/data-types/int-uint). (Optional - `1` by default). +- `offset` — Offset to apply. [(U)Int*](/core/reference/data-types/int-uint). (Optional - `1` by default). - `default` — Value to return if calculated row exceeds the boundaries of the window frame. (Optional - default value of column type when omitted). **Returned value** diff --git a/reference/functions/window-functions/nth_value.mdx b/core/reference/functions/window-functions/nth_value.mdx similarity index 97% rename from reference/functions/window-functions/nth_value.mdx rename to core/reference/functions/window-functions/nth_value.mdx index a6b47cc9..79fc3000 100644 --- a/reference/functions/window-functions/nth_value.mdx +++ b/core/reference/functions/window-functions/nth_value.mdx @@ -18,7 +18,7 @@ FROM table_name WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]) ``` -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Parameters** diff --git a/reference/functions/window-functions/percent_rank.mdx b/core/reference/functions/window-functions/percent_rank.mdx similarity index 97% rename from reference/functions/window-functions/percent_rank.mdx rename to core/reference/functions/window-functions/percent_rank.mdx index ce82fbe2..c59d9fde 100644 --- a/reference/functions/window-functions/percent_rank.mdx +++ b/core/reference/functions/window-functions/percent_rank.mdx @@ -22,7 +22,7 @@ WINDOW window_name as ([PARTITION BY grouping_column] [ORDER BY sorting_column] The default and required window frame definition is `RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING`. -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Example** diff --git a/reference/functions/window-functions/rank.mdx b/core/reference/functions/window-functions/rank.mdx similarity index 90% rename from reference/functions/window-functions/rank.mdx rename to core/reference/functions/window-functions/rank.mdx index 596eba29..2b12caaa 100644 --- a/reference/functions/window-functions/rank.mdx +++ b/core/reference/functions/window-functions/rank.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' Ranks the current row within its partition with gaps. In other words, if the value of any row it encounters is equal to the value of a previous row then it will receive the same rank as that previous row. The rank of the next row is then equal to the rank of the previous row plus a gap equal to the number of times the previous rank was given. -The [dense_rank](/reference/functions/window-functions/dense_rank) function provides the same behaviour but without gaps in ranking. +The [dense_rank](/core/reference/functions/window-functions/dense_rank) function provides the same behaviour but without gaps in ranking. **Syntax** @@ -21,11 +21,11 @@ FROM table_name WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]) ``` -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Returned value** -- A number for the current row within its partition, including gaps. [UInt64](/reference/data-types/int-uint). +- A number for the current row within its partition, including gaps. [UInt64](/core/reference/data-types/int-uint). **Example** diff --git a/reference/functions/window-functions/row_number.mdx b/core/reference/functions/window-functions/row_number.mdx similarity index 92% rename from reference/functions/window-functions/row_number.mdx rename to core/reference/functions/window-functions/row_number.mdx index e226552b..8d70ffc5 100644 --- a/reference/functions/window-functions/row_number.mdx +++ b/core/reference/functions/window-functions/row_number.mdx @@ -18,11 +18,11 @@ FROM table_name WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column]) ``` -For more detail on window function syntax see: [Window Functions - Syntax](/reference/functions/window-functions#syntax). +For more detail on window function syntax see: [Window Functions - Syntax](/core/reference/functions/window-functions#syntax). **Returned value** -- A number for the current row within its partition. [UInt64](/reference/data-types/int-uint). +- A number for the current row within its partition. [UInt64](/core/reference/data-types/int-uint). **Example** diff --git a/core/reference/home.mdx b/core/reference/home.mdx new file mode 100644 index 00000000..986a59e9 --- /dev/null +++ b/core/reference/home.mdx @@ -0,0 +1,35 @@ +--- +slug: /sql-reference +title: 'Reference' +sidebarTitle: 'Home' +description: 'Reference documentation for ClickHouse — SQL statements, data types, engines, functions, formats, settings, and system tables.' +keywords: ['clickhouse', 'reference', 'sql', 'data types', 'engines', 'functions', 'formats', 'settings'] +doc_type: 'landing-page' +--- + + + + SQL statements, clauses, operators, and syntax reference. + + + All supported data types including numeric, string, date/time, arrays, maps, and more. + + + Table and database engine reference — MergeTree family, Log, Integration, and Special engines. + + + Regular, aggregate, table, and window functions. + + + Input and output format reference for all supported data formats. + + + Server, session, and MergeTree settings reference. + + + System tables for monitoring, diagnostics, and introspection. + + + Data lake integration reference — Iceberg, Delta Lake, and Hudi. + + diff --git a/core/reference/navigation.json b/core/reference/navigation.json new file mode 100644 index 00000000..9547afaa --- /dev/null +++ b/core/reference/navigation.json @@ -0,0 +1,1099 @@ +{ + "item": "Reference", + "icon": "/images/icons/icon-reference.svg", + "pages": [ + "core/reference/home", + { + "group": "SQL Reference", + "expandable": true, + "expanded": true, + "pages": [ + "core/reference/syntax", + { + "group": "Statements", + "expandable": true, + "expanded": false, + "root": "core/reference/statements/index", + "pages": [ + { + "group": "ALTER", + "expanded": false, + "pages": [ + "core/reference/statements/alter/index", + "core/reference/statements/alter/apply-deleted-mask", + "core/reference/statements/alter/apply-patches", + "core/reference/statements/alter/column", + "core/reference/statements/alter/comment", + "core/reference/statements/alter/constraint", + "core/reference/statements/alter/database-comment", + "core/reference/statements/alter/delete", + "core/reference/statements/alter/named-collection", + "core/reference/statements/alter/order-by", + "core/reference/statements/alter/partition", + "core/reference/statements/alter/projection", + "core/reference/statements/alter/quota", + "core/reference/statements/alter/role", + "core/reference/statements/alter/row-policy", + "core/reference/statements/alter/sample-by", + "core/reference/statements/alter/setting", + "core/reference/statements/alter/settings-profile", + "core/reference/statements/alter/skipping-index", + "core/reference/statements/alter/statistics", + "core/reference/statements/alter/ttl", + "core/reference/statements/alter/update", + "core/reference/statements/alter/user", + "core/reference/statements/alter/masking-policy", + "core/reference/statements/alter/view" + ] + }, + "core/reference/statements/attach", + "core/reference/statements/check-grant", + "core/reference/statements/check-table", + { + "group": "CREATE", + "expanded": false, + "pages": [ + "core/reference/statements/create/index", + "core/reference/statements/create/database", + { + "group": "DICTIONARY", + "expanded": false, + "root": "core/reference/statements/create/dictionary", + "pages": [ + "core/reference/statements/create/dictionary/attributes", + "core/reference/statements/create/dictionary/embedded", + "core/reference/statements/create/dictionary/lifetime", + { + "group": "Layouts", + "expanded": false, + "root": "core/reference/statements/create/dictionary/layouts/overview", + "pages": [ + "core/reference/statements/create/dictionary/layouts/flat", + "core/reference/statements/create/dictionary/layouts/hashed", + "core/reference/statements/create/dictionary/layouts/hashed-array", + "core/reference/statements/create/dictionary/layouts/cache", + "core/reference/statements/create/dictionary/layouts/ssd-cache", + "core/reference/statements/create/dictionary/layouts/direct", + "core/reference/statements/create/dictionary/layouts/range-hashed", + "core/reference/statements/create/dictionary/layouts/hierarchical", + "core/reference/statements/create/dictionary/layouts/polygon", + "core/reference/statements/create/dictionary/layouts/ip-trie", + "core/reference/statements/create/dictionary/layouts/regexp-tree" + ] + }, + { + "group": "Sources", + "expanded": false, + "root": "core/reference/statements/create/dictionary/sources/overview", + "pages": [ + "core/reference/statements/create/dictionary/sources/local-file", + "core/reference/statements/create/dictionary/sources/executable-file", + "core/reference/statements/create/dictionary/sources/executable-pool", + "core/reference/statements/create/dictionary/sources/http", + "core/reference/statements/create/dictionary/sources/clickhouse", + "core/reference/statements/create/dictionary/sources/mysql", + "core/reference/statements/create/dictionary/sources/postgresql", + "core/reference/statements/create/dictionary/sources/mongodb", + "core/reference/statements/create/dictionary/sources/redis", + "core/reference/statements/create/dictionary/sources/cassandra", + "core/reference/statements/create/dictionary/sources/odbc", + "core/reference/statements/create/dictionary/sources/null", + "core/reference/statements/create/dictionary/sources/yamlregexptree", + "core/reference/statements/create/dictionary/sources/ytsaurus" + ] + } + ] + }, + "core/reference/statements/create/masking-policy", + "core/reference/statements/create/function", + "core/reference/statements/create/named-collection", + "core/reference/statements/create/quota", + "core/reference/statements/create/role", + "core/reference/statements/create/row-policy", + "core/reference/statements/create/settings-profile", + "core/reference/statements/create/table", + "core/reference/statements/create/user", + "core/reference/statements/create/view" + ] + }, + "core/reference/statements/delete", + "core/reference/statements/describe-table", + "core/reference/statements/detach", + "core/reference/statements/distributed-ddl", + "core/reference/statements/drop", + "core/reference/statements/exchange", + "core/reference/statements/execute_as", + "core/reference/statements/exists", + "core/reference/statements/explain", + "core/reference/statements/grant", + "core/reference/statements/in", + "core/reference/statements/insert-into", + "core/reference/statements/kill", + "core/reference/statements/move", + "core/reference/statements/optimize", + "core/reference/statements/parallel_with", + "core/reference/statements/rename", + "core/reference/statements/revoke", + { + "group": "SELECT", + "expanded": false, + "pages": [ + "core/reference/statements/select/index", + "core/reference/statements/select/all", + "core/reference/statements/select/apply_modifier", + "core/reference/statements/select/array-join", + "core/reference/statements/select/distinct", + "core/reference/statements/select/except", + "core/reference/statements/select/except_modifier", + "core/reference/statements/select/format", + "core/reference/statements/select/from", + "core/reference/statements/select/group-by", + "core/reference/statements/select/having", + "core/reference/statements/select/intersect", + "core/reference/statements/select/into-outfile", + "core/reference/statements/select/join", + "core/reference/statements/select/limit-by", + "core/reference/statements/select/limit", + "core/reference/statements/select/offset", + "core/reference/statements/select/order-by", + "core/reference/statements/select/prewhere", + "core/reference/statements/select/qualify", + "core/reference/statements/select/replace_modifier", + "core/reference/statements/select/sample", + "core/reference/statements/select/union", + "core/reference/statements/select/where", + "core/reference/statements/select/with" + ] + }, + "core/reference/statements/set-role", + "core/reference/statements/set", + "core/reference/statements/show", + "core/reference/statements/system", + "core/reference/statements/truncate", + "core/reference/statements/undrop", + "core/reference/statements/update", + "core/reference/statements/use", + "core/reference/statements/watch" + ] + }, + { + "group": "Operators", + "expandable": true, + "expanded": false, + "root": "core/reference/operators/index", + "pages": [ + "core/reference/operators/exists", + "core/reference/operators/distributed-ddl" + ] + } + ] + }, + { + "group": "Data Types", + "expandable": true, + "expanded": false, + "root": "core/reference/data-types/index", + "pages": [ + { + "group": "Numeric types", + "expanded": false, + "pages": [ + "core/reference/data-types/int-uint", + "core/reference/data-types/float", + "core/reference/data-types/decimal", + "core/reference/data-types/boolean" + ] + }, + { + "group": "String types", + "expanded": false, + "pages": [ + "core/reference/data-types/string", + "core/reference/data-types/fixedstring" + ] + }, + { + "group": "Date and time types", + "expanded": false, + "pages": [ + "core/reference/data-types/date", + "core/reference/data-types/date32", + "core/reference/data-types/datetime", + "core/reference/data-types/datetime64", + "core/reference/data-types/time", + "core/reference/data-types/time64" + ] + }, + { + "group": "Network types", + "expanded": false, + "pages": [ + "core/reference/data-types/ipv4", + "core/reference/data-types/ipv6" + ] + }, + { + "group": "Composite types", + "expanded": false, + "pages": [ + "core/reference/data-types/array", + "core/reference/data-types/tuple", + "core/reference/data-types/map", + "core/reference/data-types/nested-data-structures/index" + ] + }, + { + "group": "Semi-structured types", + "expanded": false, + "pages": [ + "core/reference/data-types/newjson", + "core/reference/data-types/dynamic", + "core/reference/data-types/variant" + ] + }, + { + "group": "Nullable and optional types", + "expanded": false, + "pages": [ + "core/reference/data-types/nullable", + "core/reference/data-types/lowcardinality" + ] + }, + { + "group": "Specialized types", + "expanded": false, + "pages": [ + "core/reference/data-types/uuid", + "core/reference/data-types/enum", + "core/reference/data-types/geo", + "core/reference/data-types/qbit", + "core/reference/data-types/domains/index" + ] + }, + { + "group": "Aggregate function types", + "expanded": false, + "pages": [ + "core/reference/data-types/aggregatefunction", + "core/reference/data-types/simpleaggregatefunction" + ] + }, + { + "group": "Special Data Types", + "expanded": false, + "pages": [ + "core/reference/data-types/special-data-types/index", + "core/reference/data-types/special-data-types/expression", + "core/reference/data-types/special-data-types/interval", + "core/reference/data-types/special-data-types/nothing", + "core/reference/data-types/special-data-types/set" + ] + }, + { + "group": "Binary encoding", + "pages": [ + "core/reference/data-types/data-types-binary-encoding" + ] + } + ] + }, + { + "group": "Engines", + "expandable": true, + "expanded": false, + "root": "core/reference/engines/engines", + "pages": [ + { + "group": "Table Engines", + "expanded": false, + "pages": [ + "core/reference/engines/table-engines/index", + { + "group": "Integrations", + "expanded": false, + "pages": [ + "core/reference/engines/table-engines/integrations/index", + "core/reference/engines/table-engines/integrations/ExternalDistributed", + "core/reference/engines/table-engines/integrations/arrowflight", + "core/reference/engines/table-engines/integrations/azure-queue", + "core/reference/engines/table-engines/integrations/azureBlobStorage", + "core/reference/engines/table-engines/integrations/deltalake", + "core/reference/engines/table-engines/integrations/embedded-rocksdb", + "core/reference/engines/table-engines/integrations/hdfs", + "core/reference/engines/table-engines/integrations/hive", + "core/reference/engines/table-engines/integrations/hudi", + "core/reference/engines/table-engines/integrations/iceberg", + "core/reference/engines/table-engines/integrations/jdbc", + "core/reference/engines/table-engines/integrations/kafka", + "core/reference/engines/table-engines/integrations/materialized-postgresql", + "core/reference/engines/table-engines/integrations/mongodb", + "core/reference/engines/table-engines/integrations/mysql", + "core/reference/engines/table-engines/integrations/nats", + "core/reference/engines/table-engines/integrations/odbc", + "core/reference/engines/table-engines/integrations/paimon", + "core/reference/engines/table-engines/integrations/postgresql", + "core/reference/engines/table-engines/integrations/rabbitmq", + "core/reference/engines/table-engines/integrations/redis", + "core/reference/engines/table-engines/integrations/s3", + "core/reference/engines/table-engines/integrations/s3queue", + "core/reference/engines/table-engines/integrations/sqlite", + "core/reference/engines/table-engines/integrations/time-series", + "core/reference/engines/table-engines/integrations/ytsaurus" + ] + }, + { + "group": "Log Family", + "expanded": false, + "pages": [ + "core/reference/engines/table-engines/log-family/index", + "core/reference/engines/table-engines/log-family/log", + "core/reference/engines/table-engines/log-family/stripelog", + "core/reference/engines/table-engines/log-family/tinylog" + ] + }, + { + "group": "MergeTree Family", + "expanded": false, + "pages": [ + "core/reference/engines/table-engines/mergetree-family/index", + "core/reference/engines/table-engines/mergetree-family/mergetree", + "core/reference/engines/table-engines/mergetree-family/aggregatingmergetree", + "core/reference/engines/table-engines/mergetree-family/annindexes", + "core/reference/engines/table-engines/mergetree-family/coalescingmergetree", + "core/reference/engines/table-engines/mergetree-family/collapsingmergetree", + "core/reference/engines/table-engines/mergetree-family/custom-partitioning-key", + "core/reference/engines/table-engines/mergetree-family/graphitemergetree", + "core/reference/engines/table-engines/mergetree-family/invertedindexes", + "core/reference/engines/table-engines/mergetree-family/replacingmergetree", + "core/reference/engines/table-engines/mergetree-family/replication", + "core/reference/engines/table-engines/mergetree-family/summingmergetree", + "core/reference/engines/table-engines/mergetree-family/textindexes", + "core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree" + ] + }, + { + "group": "Special", + "expanded": false, + "pages": [ + "core/reference/engines/table-engines/special/index", + "core/reference/engines/table-engines/special/alias", + "core/reference/engines/table-engines/special/buffer", + "core/reference/engines/table-engines/special/dictionary", + "core/reference/engines/table-engines/special/distributed", + "core/reference/engines/table-engines/special/executable", + "core/reference/engines/table-engines/special/external-data", + "core/reference/engines/table-engines/special/file", + "core/reference/engines/table-engines/special/filelog", + "core/reference/engines/table-engines/special/generate", + "core/reference/engines/table-engines/special/join", + "core/reference/engines/table-engines/special/keepermap", + "core/reference/engines/table-engines/special/memory", + "core/reference/engines/table-engines/special/merge", + "core/reference/engines/table-engines/special/null", + "core/reference/engines/table-engines/special/set", + "core/reference/engines/table-engines/special/url", + "core/reference/engines/table-engines/special/view" + ] + } + ] + }, + { + "group": "Database Engines", + "expanded": false, + "pages": [ + "core/reference/engines/database-engines/index", + "core/reference/engines/database-engines/atomic", + "core/reference/engines/database-engines/backup", + "core/reference/engines/database-engines/datalake", + "core/reference/engines/database-engines/materialized-postgresql", + "core/reference/engines/database-engines/mysql", + "core/reference/engines/database-engines/postgresql", + "core/reference/engines/database-engines/replicated", + "core/reference/engines/database-engines/shared", + "core/reference/engines/database-engines/sqlite" + ] + } + ] + }, + { + "group": "Functions", + "expandable": true, + "expanded": false, + "root": "core/reference/functions/index", + "pages": [ + { + "group": "Regular functions", + "expanded": false, + "pages": [ + "core/reference/functions/regular-functions/overview", + "core/reference/functions/regular-functions/ai-functions", + "core/reference/functions/regular-functions/arithmetic-functions", + "core/reference/functions/regular-functions/array-functions", + "core/reference/functions/regular-functions/array-join", + "core/reference/functions/regular-functions/bit-functions", + "core/reference/functions/regular-functions/bitmap-functions", + "core/reference/functions/regular-functions/comparison-functions", + "core/reference/functions/regular-functions/conditional-functions", + "core/reference/functions/regular-functions/date-time-functions", + "core/reference/functions/regular-functions/distance-functions", + "core/reference/functions/regular-functions/embedded-dict-functions", + "core/reference/functions/regular-functions/encoding-functions", + "core/reference/functions/regular-functions/encryption-functions", + "core/reference/functions/regular-functions/ext-dict-functions", + "core/reference/functions/regular-functions/files", + "core/reference/functions/regular-functions/financial-functions", + "core/reference/functions/regular-functions/functions-for-nulls", + { + "group": "Geo", + "expanded": false, + "pages": [ + "core/reference/functions/regular-functions/geo/index", + "core/reference/functions/regular-functions/geo/coordinates", + "core/reference/functions/regular-functions/geo/flipCoordinates", + "core/reference/functions/regular-functions/geo/geometry", + "core/reference/functions/regular-functions/geo/geohash", + "core/reference/functions/regular-functions/geo/h3", + "core/reference/functions/regular-functions/geo/polygon", + "core/reference/functions/regular-functions/geo/s2", + "core/reference/functions/regular-functions/geo/svg" + ] + }, + "core/reference/functions/regular-functions/hash-functions", + "core/reference/functions/regular-functions/in-functions", + "core/reference/functions/regular-functions/introspection", + "core/reference/functions/regular-functions/ip-address-functions", + "core/reference/functions/regular-functions/json-functions", + "core/reference/functions/regular-functions/logical-functions", + "core/reference/functions/regular-functions/machine-learning-functions", + "core/reference/functions/regular-functions/math-functions", + "core/reference/functions/regular-functions/nlp-functions", + "core/reference/functions/regular-functions/numeric-indexed-vector-functions", + "core/reference/functions/regular-functions/other-functions", + "core/reference/functions/regular-functions/random-functions", + "core/reference/functions/regular-functions/regular-functions-index", + "core/reference/functions/regular-functions/rounding-functions", + "core/reference/functions/regular-functions/splitting-merging-functions", + "core/reference/functions/regular-functions/string-functions", + "core/reference/functions/regular-functions/string-replace-functions", + "core/reference/functions/regular-functions/string-search-functions", + "core/reference/functions/regular-functions/time-series-functions", + "core/reference/functions/regular-functions/time-window-functions", + "core/reference/functions/regular-functions/tuple-functions", + "core/reference/functions/regular-functions/tuple-map-functions", + "core/reference/functions/regular-functions/type-conversion-functions", + "core/reference/functions/regular-functions/ulid-functions", + "core/reference/functions/regular-functions/uniqtheta-functions", + "core/reference/functions/regular-functions/url-functions", + "core/reference/functions/regular-functions/uuid-functions" + ] + }, + { + "group": "Aggregate Functions", + "expanded": false, + "pages": [ + "core/reference/functions/aggregate-functions/index", + "core/reference/functions/aggregate-functions/combinators", + "core/reference/functions/aggregate-functions/grouping_function", + "core/reference/functions/aggregate-functions/parametric-functions", + { + "group": "Reference", + "expanded": false, + "pages": [ + "core/reference/functions/aggregate-functions/reference/index", + "core/reference/functions/aggregate-functions/reference/aggThrow", + "core/reference/functions/aggregate-functions/reference/analysis_of_variance", + "core/reference/functions/aggregate-functions/reference/any", + "core/reference/functions/aggregate-functions/reference/anyHeavy", + "core/reference/functions/aggregate-functions/reference/anyLast", + "core/reference/functions/aggregate-functions/reference/approxtopk", + "core/reference/functions/aggregate-functions/reference/approxtopsum", + "core/reference/functions/aggregate-functions/reference/argMax", + "core/reference/functions/aggregate-functions/reference/argAndMax", + "core/reference/functions/aggregate-functions/reference/argMin", + "core/reference/functions/aggregate-functions/reference/argAndMin", + "core/reference/functions/aggregate-functions/reference/avg", + "core/reference/functions/aggregate-functions/reference/avgWeighted", + "core/reference/functions/aggregate-functions/reference/boundrat", + "core/reference/functions/aggregate-functions/reference/categoricalInformationValue", + "core/reference/functions/aggregate-functions/reference/contingency", + "core/reference/functions/aggregate-functions/reference/corr", + "core/reference/functions/aggregate-functions/reference/corrMatrix", + "core/reference/functions/aggregate-functions/reference/corrStable", + "core/reference/functions/aggregate-functions/reference/count", + "core/reference/functions/aggregate-functions/reference/covarPop", + "core/reference/functions/aggregate-functions/reference/covarPopMatrix", + "core/reference/functions/aggregate-functions/reference/covarPopStable", + "core/reference/functions/aggregate-functions/reference/covarSamp", + "core/reference/functions/aggregate-functions/reference/covarSampMatrix", + "core/reference/functions/aggregate-functions/reference/covarSampStable", + "core/reference/functions/aggregate-functions/reference/cramersV", + "core/reference/functions/aggregate-functions/reference/cramersVBiasCorrected", + "core/reference/functions/aggregate-functions/reference/deltaSum", + "core/reference/functions/aggregate-functions/reference/deltaSumTimestamp", + "core/reference/functions/aggregate-functions/reference/distinctDynamicTypes", + "core/reference/functions/aggregate-functions/reference/distinctJSONPaths", + "core/reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes", + "core/reference/functions/aggregate-functions/reference/entropy", + "core/reference/functions/aggregate-functions/reference/estimateCompressionRatio", + "core/reference/functions/aggregate-functions/reference/exponentialMovingAverage", + "core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg", + "core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount", + "core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax", + "core/reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum", + "core/reference/functions/aggregate-functions/reference/first_value", + "core/reference/functions/aggregate-functions/reference/flame_graph", + "core/reference/functions/aggregate-functions/reference/groupArray", + "core/reference/functions/aggregate-functions/reference/groupArrayArray", + "core/reference/functions/aggregate-functions/reference/groupArrayInsertAt", + "core/reference/functions/aggregate-functions/reference/groupArrayIntersect", + "core/reference/functions/aggregate-functions/reference/groupArrayLast", + "core/reference/functions/aggregate-functions/reference/groupArrayMovingAvg", + "core/reference/functions/aggregate-functions/reference/groupArrayMovingSum", + "core/reference/functions/aggregate-functions/reference/groupArraySample", + "core/reference/functions/aggregate-functions/reference/groupArraySorted", + "core/reference/functions/aggregate-functions/reference/groupBitAnd", + "core/reference/functions/aggregate-functions/reference/groupBitmap", + "core/reference/functions/aggregate-functions/reference/groupBitmapAnd", + "core/reference/functions/aggregate-functions/reference/groupBitmapOr", + "core/reference/functions/aggregate-functions/reference/groupBitmapXor", + "core/reference/functions/aggregate-functions/reference/groupBitOr", + "core/reference/functions/aggregate-functions/reference/groupBitXor", + "core/reference/functions/aggregate-functions/reference/groupConcat", + "core/reference/functions/aggregate-functions/reference/groupUniqArray", + "core/reference/functions/aggregate-functions/reference/intervalLengthSum", + "core/reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest", + "core/reference/functions/aggregate-functions/reference/kurtPop", + "core/reference/functions/aggregate-functions/reference/kurtSamp", + "core/reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets", + "core/reference/functions/aggregate-functions/reference/last_value", + "core/reference/functions/aggregate-functions/reference/mannWhitneyUTest", + "core/reference/functions/aggregate-functions/reference/max", + "core/reference/functions/aggregate-functions/reference/maxIntersections", + "core/reference/functions/aggregate-functions/reference/maxIntersectionsPosition", + "core/reference/functions/aggregate-functions/reference/maxMap", + "core/reference/functions/aggregate-functions/reference/meanZTest", + "core/reference/functions/aggregate-functions/reference/median", + "core/reference/functions/aggregate-functions/reference/min", + "core/reference/functions/aggregate-functions/reference/minMap", + "core/reference/functions/aggregate-functions/reference/quantile", + "core/reference/functions/aggregate-functions/reference/quantileGK", + "core/reference/functions/aggregate-functions/reference/quantileBFloat16", + "core/reference/functions/aggregate-functions/reference/quantileddsketch", + "core/reference/functions/aggregate-functions/reference/quantileDeterministic", + "core/reference/functions/aggregate-functions/reference/quantileExact", + "core/reference/functions/aggregate-functions/reference/quantileExactExclusive", + "core/reference/functions/aggregate-functions/reference/quantileExactHigh", + "core/reference/functions/aggregate-functions/reference/quantileExactInclusive", + "core/reference/functions/aggregate-functions/reference/quantileExactLow", + "core/reference/functions/aggregate-functions/reference/quantileExactWeighted", + "core/reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated", + "core/reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted", + "core/reference/functions/aggregate-functions/reference/quantilePrometheusHistogram", + "core/reference/functions/aggregate-functions/reference/quantiles", + "core/reference/functions/aggregate-functions/reference/quantilesExactExclusive", + "core/reference/functions/aggregate-functions/reference/quantilesExactInclusive", + "core/reference/functions/aggregate-functions/reference/quantilesGK", + "core/reference/functions/aggregate-functions/reference/quantileTDigest", + "core/reference/functions/aggregate-functions/reference/quantileTDigestWeighted", + "core/reference/functions/aggregate-functions/reference/quantileTiming", + "core/reference/functions/aggregate-functions/reference/quantileTimingWeighted", + "core/reference/functions/aggregate-functions/reference/quantilesTimingWeighted", + "core/reference/functions/aggregate-functions/reference/rankCorr", + "core/reference/functions/aggregate-functions/reference/simpleLinearRegression", + "core/reference/functions/aggregate-functions/reference/singleValueOrNull", + "core/reference/functions/aggregate-functions/reference/skewPop", + "core/reference/functions/aggregate-functions/reference/skewSamp", + "core/reference/functions/aggregate-functions/reference/sparkbar", + "core/reference/functions/aggregate-functions/reference/stddevPop", + "core/reference/functions/aggregate-functions/reference/stddevPopStable", + "core/reference/functions/aggregate-functions/reference/stddevSamp", + "core/reference/functions/aggregate-functions/reference/stddevSampStable", + "core/reference/functions/aggregate-functions/reference/stochasticLinearRegression", + "core/reference/functions/aggregate-functions/reference/stochasticLogisticRegression", + "core/reference/functions/aggregate-functions/reference/studentTTest", + "core/reference/functions/aggregate-functions/reference/studentTTestOneSample", + "core/reference/functions/aggregate-functions/reference/sum", + "core/reference/functions/aggregate-functions/reference/sumCount", + "core/reference/functions/aggregate-functions/reference/sumKahan", + "core/reference/functions/aggregate-functions/reference/sumMap", + "core/reference/functions/aggregate-functions/reference/sumMapWithOverflow", + "core/reference/functions/aggregate-functions/reference/sumWithOverflow", + "core/reference/functions/aggregate-functions/reference/theilsU", + "core/reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid", + "core/reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid", + "core/reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid", + "core/reference/functions/aggregate-functions/reference/timeSeriesGroupArray", + "core/reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid", + "core/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid", + "core/reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples", + "core/reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid", + "core/reference/functions/aggregate-functions/reference/timeSeriesRateToGrid", + "core/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness", + "core/reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid", + "core/reference/functions/aggregate-functions/reference/topK", + "core/reference/functions/aggregate-functions/reference/topKWeighted", + "core/reference/functions/aggregate-functions/reference/uniq", + "core/reference/functions/aggregate-functions/reference/uniqCombined", + "core/reference/functions/aggregate-functions/reference/uniqCombined64", + "core/reference/functions/aggregate-functions/reference/uniqExact", + "core/reference/functions/aggregate-functions/reference/uniqHLL12", + "core/reference/functions/aggregate-functions/reference/uniqthetasketch", + "core/reference/functions/aggregate-functions/reference/varPop", + "core/reference/functions/aggregate-functions/reference/varPopStable", + "core/reference/functions/aggregate-functions/reference/varSamp", + "core/reference/functions/aggregate-functions/reference/varSampStable", + "core/reference/functions/aggregate-functions/reference/welchTTest" + ] + } + ] + }, + { + "group": "Table functions", + "expanded": false, + "pages": [ + "core/reference/functions/table-functions/index", + "core/reference/functions/table-functions/arrowflight", + "core/reference/functions/table-functions/azureBlobStorage", + "core/reference/functions/table-functions/azureBlobStorageCluster", + "core/reference/functions/table-functions/cluster", + "core/reference/functions/table-functions/deltalake", + "core/reference/functions/table-functions/deltalakeCluster", + "core/reference/functions/table-functions/dictionary", + "core/reference/functions/table-functions/executable", + "core/reference/functions/table-functions/file", + "core/reference/functions/table-functions/fileCluster", + "core/reference/functions/table-functions/filesystem", + "core/reference/functions/table-functions/format", + "core/reference/functions/table-functions/fuzzJSON", + "core/reference/functions/table-functions/fuzzQuery", + "core/reference/functions/table-functions/gcs", + "core/reference/functions/table-functions/generate", + "core/reference/functions/table-functions/generate_series", + "core/reference/functions/table-functions/hdfs", + "core/reference/functions/table-functions/hdfsCluster", + "core/reference/functions/table-functions/hudi", + "core/reference/functions/table-functions/hudiCluster", + "core/reference/functions/table-functions/iceberg", + "core/reference/functions/table-functions/icebergCluster", + "core/reference/functions/table-functions/input", + "core/reference/functions/table-functions/jdbc", + "core/reference/functions/table-functions/loop", + "core/reference/functions/table-functions/merge", + "core/reference/functions/table-functions/mergeTreeIndex", + "core/reference/functions/table-functions/mergeTreeProjection", + "core/reference/functions/table-functions/mergeTreeTextIndex", + "core/reference/functions/table-functions/mongodb", + "core/reference/functions/table-functions/mysql", + "core/reference/functions/table-functions/null", + "core/reference/functions/table-functions/numbers", + "core/reference/functions/table-functions/odbc", + "core/reference/functions/table-functions/paimon", + "core/reference/functions/table-functions/paimonCluster", + "core/reference/functions/table-functions/postgresql", + "core/reference/functions/table-functions/primes", + "core/reference/functions/table-functions/prometheusQuery", + "core/reference/functions/table-functions/prometheusQueryRange", + "core/reference/functions/table-functions/redis", + "core/reference/functions/table-functions/remote", + "core/reference/functions/table-functions/s3", + "core/reference/functions/table-functions/s3Cluster", + "core/reference/functions/table-functions/sqlite", + "core/reference/functions/table-functions/timeSeriesData", + "core/reference/functions/table-functions/timeSeriesMetrics", + "core/reference/functions/table-functions/timeSeriesSelector", + "core/reference/functions/table-functions/timeSeriesTags", + "core/reference/functions/table-functions/url", + "core/reference/functions/table-functions/urlCluster", + "core/reference/functions/table-functions/values", + "core/reference/functions/table-functions/view", + "core/reference/functions/table-functions/ytsaurus", + "core/reference/functions/table-functions/zeros" + ] + }, + { + "group": "Window functions", + "expanded": false, + "pages": [ + "core/reference/functions/window-functions/index", + "core/reference/functions/window-functions/cume_dist", + "core/reference/functions/window-functions/dense_rank", + "core/reference/functions/window-functions/first_value", + "core/reference/functions/window-functions/lag", + "core/reference/functions/window-functions/lagInFrame", + "core/reference/functions/window-functions/last_value", + "core/reference/functions/window-functions/lead", + "core/reference/functions/window-functions/leadInFrame", + "core/reference/functions/window-functions/nth_value", + "core/reference/functions/window-functions/percent_rank", + "core/reference/functions/window-functions/rank", + "core/reference/functions/window-functions/row_number" + ] + }, + { + "group": "User Defined Functions", + "pages": [ + "core/reference/functions/regular-functions/udf", + "core/reference/functions/regular-functions/wasm_udf" + ] + } + ] + }, + { + "group": "Formats", + "expandable": true, + "root": "core/reference/formats/index", + "expanded": false, + "pages": [ + { + "group": "Arrow", + "expanded": false, + "pages": [ + "core/reference/formats/Arrow/Arrow", + "core/reference/formats/Arrow/ArrowStream" + ] + }, + { + "group": "Avro", + "expanded": false, + "pages": [ + "core/reference/formats/Avro/Avro", + "core/reference/formats/Avro/AvroConfluent" + ] + }, + "core/reference/formats/BSONEachRow", + "core/reference/formats/Buffers", + { + "group": "CSV", + "expanded": false, + "pages": [ + "core/reference/formats/CSV/CSV", + "core/reference/formats/CSV/CSVWithNames", + "core/reference/formats/CSV/CSVWithNamesAndTypes" + ] + }, + "core/reference/formats/CapnProto", + { + "group": "CustomSeparated", + "expanded": false, + "pages": [ + "core/reference/formats/CustomSeparated/CustomSeparated", + "core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces", + "core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames", + "core/reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes", + "core/reference/formats/CustomSeparated/CustomSeparatedWithNames", + "core/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes" + ] + }, + "core/reference/formats/DWARF", + "core/reference/formats/Form", + "core/reference/formats/Hash", + "core/reference/formats/HiveText", + { + "group": "JSON", + "expanded": false, + "pages": [ + "core/reference/formats/JSON/JSON", + "core/reference/formats/JSON/JSONAsObject", + "core/reference/formats/JSON/JSONAsString", + "core/reference/formats/JSON/JSONColumns", + "core/reference/formats/JSON/JSONColumnsWithMetadata", + "core/reference/formats/JSON/JSONCompact", + "core/reference/formats/JSON/JSONCompactColumns", + "core/reference/formats/JSON/JSONCompactEachRow", + "core/reference/formats/JSON/JSONCompactEachRowWithNames", + "core/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes", + "core/reference/formats/JSON/JSONCompactEachRowWithProgress", + "core/reference/formats/JSON/JSONCompactStrings", + "core/reference/formats/JSON/JSONCompactStringsEachRow", + "core/reference/formats/JSON/JSONCompactStringsEachRowWithNames", + "core/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes", + "core/reference/formats/JSON/JSONCompactStringsEachRowWithProgress", + "core/reference/formats/JSON/JSONEachRow", + "core/reference/formats/JSON/JSONEachRowWithProgress", + "core/reference/formats/JSON/JSONLines", + "core/reference/formats/JSON/JSONObjectEachRow", + "core/reference/formats/JSON/JSONStrings", + "core/reference/formats/JSON/JSONStringsEachRow", + "core/reference/formats/JSON/JSONStringsEachRowWithProgress", + "core/reference/formats/JSON/PrettyJSONEachRow", + "core/reference/formats/JSON/format-settings" + ] + }, + { + "group": "LineAsString", + "expanded": false, + "pages": [ + "core/reference/formats/LineAsString/LineAsString", + "core/reference/formats/LineAsString/LineAsStringWithNames", + "core/reference/formats/LineAsString/LineAsStringWithNamesAndTypes" + ] + }, + "core/reference/formats/Markdown", + "core/reference/formats/MsgPack", + "core/reference/formats/MySQLDump", + "core/reference/formats/MySQLWire", + "core/reference/formats/Native", + "core/reference/formats/Npy", + "core/reference/formats/Null", + "core/reference/formats/ODBCDriver2", + "core/reference/formats/ORC", + "core/reference/formats/One", + { + "group": "Parquet", + "expanded": false, + "pages": [ + "core/reference/formats/Parquet/Parquet", + "core/reference/formats/Parquet/ParquetMetadata" + ] + }, + "core/reference/formats/PostgreSQLWire", + { + "group": "Pretty", + "expanded": false, + "pages": [ + "core/reference/formats/Pretty/Pretty", + "core/reference/formats/Pretty/PrettyCompact", + "core/reference/formats/Pretty/PrettyCompactMonoBlock", + "core/reference/formats/Pretty/PrettyCompactNoEscapes", + "core/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock", + "core/reference/formats/Pretty/PrettyMonoBlock", + "core/reference/formats/Pretty/PrettyNoEscapes", + "core/reference/formats/Pretty/PrettyNoEscapesMonoBlock", + "core/reference/formats/Pretty/PrettySpace", + "core/reference/formats/Pretty/PrettySpaceMonoBlock", + "core/reference/formats/Pretty/PrettySpaceNoEscapes", + "core/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock" + ] + }, + "core/reference/formats/Prometheus", + { + "group": "Protobuf", + "expanded": false, + "pages": [ + "core/reference/formats/Protobuf/Protobuf", + "core/reference/formats/Protobuf/ProtobufList", + "core/reference/formats/Protobuf/ProtobufSingle" + ] + }, + "core/reference/formats/RawBLOB", + "core/reference/formats/Regexp", + { + "group": "RowBinary", + "expanded": false, + "pages": [ + "core/reference/formats/RowBinary/RowBinary", + "core/reference/formats/RowBinary/RowBinaryWithDefaults", + "core/reference/formats/RowBinary/RowBinaryWithNames", + "core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes" + ] + }, + "core/reference/formats/SQLInsert", + { + "group": "TabSeparated", + "expanded": false, + "pages": [ + "core/reference/formats/TabSeparated/TSKV", + "core/reference/formats/TabSeparated/TabSeparated", + "core/reference/formats/TabSeparated/TabSeparatedRaw", + "core/reference/formats/TabSeparated/TabSeparatedRawWithNames", + "core/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes", + "core/reference/formats/TabSeparated/TabSeparatedWithNames", + "core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes" + ] + }, + { + "group": "Template", + "expanded": false, + "pages": [ + "core/reference/formats/Template/Template", + "core/reference/formats/Template/TemplateIgnoreSpaces" + ] + }, + "core/reference/formats/Values", + "core/reference/formats/Vertical", + "core/reference/formats/XML" + ] + }, + { + "group": "Settings", + "expandable": true, + "expanded": false, + "root": "core/reference/settings/index", + "pages": [ + "core/reference/settings/server-settings/settings", + "core/reference/settings/session-settings", + "core/reference/settings/merge-tree-settings", + "core/reference/settings/formats", + "core/reference/settings/beta-and-experimental-features" + ] + }, + { + "group": "System Tables", + "expandable": true, + "expanded": false, + "root": "core/reference/system-tables/index", + "pages": [ + "core/reference/system-tables/overview", + "core/reference/system-tables/aggregate_function_combinators", + "core/reference/system-tables/aggregated_zookeeper_log", + "core/reference/system-tables/asynchronous_insert_log", + "core/reference/system-tables/asynchronous_inserts", + "core/reference/system-tables/asynchronous_loader", + "core/reference/system-tables/asynchronous_metric_log", + "core/reference/system-tables/asynchronous_metrics", + "core/reference/system-tables/azure_queue_log", + "core/reference/system-tables/azure_queue_metadata_cache", + "core/reference/system-tables/azure_queue_settings", + "core/reference/system-tables/backup_log", + "core/reference/system-tables/backups", + "core/reference/system-tables/background_schedule_pool", + "core/reference/system-tables/background_schedule_pool_log", + "core/reference/system-tables/blob_storage_log", + "core/reference/system-tables/build_options", + "core/reference/system-tables/certificates", + "core/reference/system-tables/clusters", + "core/reference/system-tables/codecs", + "core/reference/system-tables/collations", + "core/reference/system-tables/columns", + "core/reference/system-tables/completions", + "core/reference/system-tables/contributors", + "core/reference/system-tables/crash_log", + "core/reference/system-tables/current_roles", + "core/reference/system-tables/dashboards", + "core/reference/system-tables/data_skipping_indices", + "core/reference/system-tables/data_type_families", + "core/reference/system-tables/database_engines", + "core/reference/system-tables/database_replicas", + "core/reference/system-tables/databases", + "core/reference/system-tables/dead_letter_queue", + "core/reference/system-tables/delta_metadata_log", + "core/reference/system-tables/detached_parts", + "core/reference/system-tables/detached_tables", + "core/reference/system-tables/dictionaries", + "core/reference/system-tables/dimensional_metrics", + "core/reference/system-tables/disks", + "core/reference/system-tables/distributed_ddl_queue", + "core/reference/system-tables/distribution_queue", + "core/reference/system-tables/dns_cache", + "core/reference/system-tables/dropped_tables", + "core/reference/system-tables/dropped_tables_parts", + "core/reference/system-tables/enabled_roles", + "core/reference/system-tables/error_log", + "core/reference/system-tables/errors", + "core/reference/system-tables/events", + "core/reference/system-tables/fail_points", + "core/reference/system-tables/formats", + "core/reference/system-tables/filesystem_cache_log", + "core/reference/system-tables/filesystem_cache_settings", + "core/reference/system-tables/filesystem_cache", + "core/reference/system-tables/filesystem_read_prefetches_log", + "core/reference/system-tables/functions", + "core/reference/system-tables/grants", + "core/reference/system-tables/graphite_retentions", + "core/reference/system-tables/histogram_metric_log", + "core/reference/system-tables/histogram_metrics", + "core/reference/system-tables/iceberg_history", + "core/reference/system-tables/iceberg_metadata_log", + "core/reference/system-tables/information_schema", + "core/reference/system-tables/instrumentation", + "core/reference/system-tables/jemalloc_bins", + "core/reference/system-tables/jemalloc_stats", + "core/reference/system-tables/jemalloc_profile_text", + "core/reference/system-tables/kafka_consumers", + "core/reference/system-tables/keywords", + "core/reference/system-tables/licenses", + "core/reference/system-tables/macros", + "core/reference/system-tables/masking_policies", + "core/reference/system-tables/merge_tree_settings", + "core/reference/system-tables/merges", + "core/reference/system-tables/metric_log", + "core/reference/system-tables/metrics", + "core/reference/system-tables/models", + "core/reference/system-tables/moves", + "core/reference/system-tables/mutations", + "core/reference/system-tables/named_collections", + "core/reference/system-tables/numbers", + "core/reference/system-tables/numbers_mt", + "core/reference/system-tables/one", + "core/reference/system-tables/opentelemetry_span_log", + "core/reference/system-tables/part_log", + "core/reference/system-tables/part_moves_between_shards", + "core/reference/system-tables/parts", + "core/reference/system-tables/parts_columns", + "core/reference/system-tables/predicate_statistics_log", + "core/reference/system-tables/primes", + "core/reference/system-tables/privileges", + "core/reference/system-tables/processes", + "core/reference/system-tables/processors_profile_log", + "core/reference/system-tables/projection_parts", + "core/reference/system-tables/projection_parts_columns", + "core/reference/system-tables/projections", + "core/reference/system-tables/query_cache", + "core/reference/system-tables/query_condition_cache", + "core/reference/system-tables/query_log", + "core/reference/system-tables/query_metric_log", + "core/reference/system-tables/query_thread_log", + "core/reference/system-tables/query_views_log", + "core/reference/system-tables/quota_limits", + "core/reference/system-tables/quota_usage", + "core/reference/system-tables/quotas", + "core/reference/system-tables/quotas_usage", + "core/reference/system-tables/remote_data_paths", + "core/reference/system-tables/replicas", + "core/reference/system-tables/replicated_fetches", + "core/reference/system-tables/replicated_merge_tree_settings", + "core/reference/system-tables/replication_queue", + "core/reference/system-tables/resources", + "core/reference/system-tables/rocksdb", + "core/reference/system-tables/role_grants", + "core/reference/system-tables/roles", + "core/reference/system-tables/row_policies", + "core/reference/system-tables/s3_queue_settings", + "core/reference/system-tables/s3queue_log", + "core/reference/system-tables/s3queue_metadata_cache", + "core/reference/system-tables/scheduler", + "core/reference/system-tables/schema_inference_cache", + "core/reference/system-tables/server_settings", + "core/reference/system-tables/session_log", + "core/reference/system-tables/settings", + "core/reference/system-tables/settings_changes", + "core/reference/system-tables/settings_profile_elements", + "core/reference/system-tables/settings_profiles", + "core/reference/system-tables/stack_trace", + "core/reference/system-tables/storage_policies", + "core/reference/system-tables/symbols", + "core/reference/system-tables/system_warnings", + "core/reference/system-tables/table_engines", + "core/reference/system-tables/table_functions", + "core/reference/system-tables/tables", + "core/reference/system-tables/text_log", + "core/reference/system-tables/time_zones", + "core/reference/system-tables/tokenizers", + "core/reference/system-tables/trace_log", + "core/reference/system-tables/transactions", + "core/reference/system-tables/transactions_info_log", + "core/reference/system-tables/unicode", + "core/reference/system-tables/user_defined_functions", + "core/reference/system-tables/user_directories", + "core/reference/system-tables/user_processes", + "core/reference/system-tables/users", + "core/reference/system-tables/view_refreshes", + "core/reference/system-tables/warnings", + "core/reference/system-tables/workloads", + "core/reference/system-tables/zeros", + "core/reference/system-tables/zeros_mt", + "core/reference/system-tables/zookeeper", + "core/reference/system-tables/zookeeper_info", + "core/reference/system-tables/zookeeper_connection", + "core/reference/system-tables/zookeeper_connection_log", + "core/reference/system-tables/zookeeper_log", + "core/reference/system-tables/zookeeper_watches" + ] + }, + { + "group": "Data Lakes", + "root": "core/reference/datalakes", + "pages": [] + } + ] +} diff --git a/reference/operators/distributed-ddl.mdx b/core/reference/operators/distributed-ddl.mdx similarity index 100% rename from reference/operators/distributed-ddl.mdx rename to core/reference/operators/distributed-ddl.mdx diff --git a/reference/operators/exists.mdx b/core/reference/operators/exists.mdx similarity index 94% rename from reference/operators/exists.mdx rename to core/reference/operators/exists.mdx index fba68aad..518c0ce8 100644 --- a/reference/operators/exists.mdx +++ b/core/reference/operators/exists.mdx @@ -7,7 +7,7 @@ doc_type: 'reference' The `EXISTS` operator checks how many records are in the result of a subquery. If it is empty, then the operator returns `0`. Otherwise, it returns `1`. -`EXISTS` can also be used in a [WHERE](/reference/statements/select/where) clause. +`EXISTS` can also be used in a [WHERE](/core/reference/statements/select/where) clause. **** diff --git a/reference/operators/index.mdx b/core/reference/operators/index.mdx similarity index 81% rename from reference/operators/index.mdx rename to core/reference/operators/index.mdx index 4d58aeff..88781ee5 100644 --- a/reference/operators/index.mdx +++ b/core/reference/operators/index.mdx @@ -18,17 +18,17 @@ ClickHouse transforms operators to their corresponding functions at the query pa `-a` – The `negate (a)` function. -For tuple negation: [tupleNegate](/reference/functions/regular-functions/tuple-functions#tupleNegate). +For tuple negation: [tupleNegate](/core/reference/functions/regular-functions/tuple-functions#tupleNegate). ## Multiplication and Division Operators {#multiplication-and-division-operators} `a * b` – The `multiply (a, b)` function. -For multiplying tuple by number: [tupleMultiplyByNumber](/reference/functions/regular-functions/tuple-functions#tupleMultiplyByNumber), for scalar product: [dotProduct](/reference/functions/regular-functions/array-functions#arrayDotProduct). +For multiplying tuple by number: [tupleMultiplyByNumber](/core/reference/functions/regular-functions/tuple-functions#tupleMultiplyByNumber), for scalar product: [dotProduct](/core/reference/functions/regular-functions/array-functions#arrayDotProduct). `a / b` – The `divide(a, b)` function. -For dividing tuple by number: [tupleDivideByNumber](/reference/functions/regular-functions/tuple-functions#tupleDivideByNumber). +For dividing tuple by number: [tupleDivideByNumber](/core/reference/functions/regular-functions/tuple-functions#tupleDivideByNumber). `a % b` – The `modulo(a, b)` function. @@ -36,11 +36,11 @@ For dividing tuple by number: [tupleDivideByNumber](/reference/functions/regular `a + b` – The `plus(a, b)` function. -For tuple addiction: [tuplePlus](/reference/functions/regular-functions/tuple-functions#tuplePlus). +For tuple addiction: [tuplePlus](/core/reference/functions/regular-functions/tuple-functions#tuplePlus). `a - b` – The `minus(a, b)` function. -For tuple subtraction: [tupleMinus](/reference/functions/regular-functions/tuple-functions#tupleMinus). +For tuple subtraction: [tupleMinus](/core/reference/functions/regular-functions/tuple-functions#tupleMinus). ## Comparison Operators {#comparison-operators} @@ -125,7 +125,7 @@ SELECT ## Operators for Working with Data Sets {#operators-for-working-with-data-sets} -See [IN operators](/reference/statements/in) and [EXISTS](/reference/operators/exists) operator. +See [IN operators](/core/reference/statements/in) and [EXISTS](/core/reference/operators/exists) operator. ### in function {#in-function} `a IN ...` – The `in(a, b)` function. @@ -216,7 +216,7 @@ The `part` parameter specifies which part of the date to retrieve. The following The `part` parameter is case-insensitive. -The `date` parameter specifies the date or the time to process. The [Date](/reference/data-types/date), [Date32](/reference/data-types/date32), [DateTime](/reference/data-types/datetime), and [DateTime64](/reference/data-types/datetime64) types are supported. +The `date` parameter specifies the date or the time to process. The [Date](/core/reference/data-types/date), [Date32](/core/reference/data-types/date32), [DateTime](/core/reference/data-types/datetime), and [DateTime64](/core/reference/data-types/datetime64) types are supported. Examples: @@ -266,7 +266,7 @@ You can see more examples in [tests](https://github.com/ClickHouse/ClickHouse/bl ### INTERVAL {#interval} -Creates an [Interval](/reference/data-types/special-data-types/interval)-type value that should be used in arithmetical operations with [Date](/reference/data-types/date) and [DateTime](/reference/data-types/datetime)-type values. +Creates an [Interval](/core/reference/data-types/special-data-types/interval)-type value that should be used in arithmetical operations with [Date](/core/reference/data-types/date) and [DateTime](/core/reference/data-types/datetime)-type values. Types of intervals: - `SECOND` @@ -334,12 +334,12 @@ SELECT toDateTime('2014-10-26 00:00:00', 'Asia/Istanbul') AS time, time + 60 * 6 **See Also** -- [Interval](/reference/data-types/special-data-types/interval) data type -- [toInterval](/reference/functions/regular-functions/type-conversion-functions#toIntervalYear) type conversion functions +- [Interval](/core/reference/data-types/special-data-types/interval) data type +- [toInterval](/core/reference/functions/regular-functions/type-conversion-functions#toIntervalYear) type conversion functions ### Date and Time Addition {#date-time-addition} -A [Date](/reference/data-types/date) or [Date32](/reference/data-types/date32) value can be added to a [Time](/reference/data-types/time) or [Time64](/reference/data-types/time64) value using the `+` operator. The result is a [DateTime](/reference/data-types/datetime) or [DateTime64](/reference/data-types/datetime64) representing the date at the given time of day. The operation is commutative. +A [Date](/core/reference/data-types/date) or [Date32](/core/reference/data-types/date32) value can be added to a [Time](/core/reference/data-types/time) or [Time64](/core/reference/data-types/time64) value using the `+` operator. The result is a [DateTime](/core/reference/data-types/datetime) or [DateTime64](/core/reference/data-types/datetime64) representing the date at the given time of day. The operation is commutative. The result type depends on the operand types: @@ -351,7 +351,7 @@ The result type depends on the operand types: | `Date32` | `Time64(s)` | `DateTime64(s)` | -The result uses the [session timezone](/reference/settings/session-settings#session_timezone) (or server default timezone if no session timezone is set). The [`date_time_overflow_behavior`](/reference/settings/formats#date_time_overflow_behavior) setting controls what happens when the result is outside the representable range. +The result uses the [session timezone](/core/reference/settings/session-settings#session_timezone) (or server default timezone if no session timezone is set). The [`date_time_overflow_behavior`](/core/reference/settings/formats#date_time_overflow_behavior) setting controls what happens when the result is outside the representable range. Examples: @@ -389,15 +389,15 @@ SELECT toTime64('23:59:59.999', 3) + toDate32('2024-07-15') AS dt, toTypeName(dt ## Logical AND Operator {#logical-and-operator} -Syntax `SELECT a AND b` — calculates logical conjunction of `a` and `b` with the function [and](/reference/functions/regular-functions/logical-functions#and). +Syntax `SELECT a AND b` — calculates logical conjunction of `a` and `b` with the function [and](/core/reference/functions/regular-functions/logical-functions#and). ## Logical OR Operator {#logical-or-operator} -Syntax `SELECT a OR b` — calculates logical disjunction of `a` and `b` with the function [or](/reference/functions/regular-functions/logical-functions#or). +Syntax `SELECT a OR b` — calculates logical disjunction of `a` and `b` with the function [or](/core/reference/functions/regular-functions/logical-functions#or). ## Logical Negation Operator {#logical-negation-operator} -Syntax `SELECT NOT a` — calculates logical negation of `a` with the function [not](/reference/functions/regular-functions/logical-functions#not). +Syntax `SELECT NOT a` — calculates logical negation of `a` with the function [not](/core/reference/functions/regular-functions/logical-functions#not). ## Conditional Operator {#conditional-operator} @@ -405,7 +405,7 @@ Syntax `SELECT NOT a` — calculates logical negation of `a` with the function [ Note: -The conditional operator calculates the values of b and c, then checks whether condition a is met, and then returns the corresponding value. If `b` or `C` is an [arrayJoin()](/reference/functions/regular-functions/array-join) function, each row will be replicated regardless of the "a" condition. +The conditional operator calculates the values of b and c, then checks whether condition a is met, and then returns the corresponding value. If `b` or `C` is an [arrayJoin()](/core/reference/functions/regular-functions/array-join) function, each row will be replicated regardless of the "a" condition. ## Conditional Expression {#conditional-expression} @@ -454,12 +454,12 @@ ClickHouse supports the `IS NULL` and `IS NOT NULL` operators. ### IS NULL {#is_null} -- For [Nullable](/reference/data-types/nullable) type values, the `IS NULL` operator returns: +- For [Nullable](/core/reference/data-types/nullable) type values, the `IS NULL` operator returns: - `1`, if the value is `NULL`. - `0` otherwise. - For other values, the `IS NULL` operator always returns `0`. -Can be optimized by enabling the [optimize_functions_to_subcolumns](/reference/settings/session-settings#optimize_functions_to_subcolumns) setting. With `optimize_functions_to_subcolumns = 1` the function reads only [null](/reference/data-types/nullable#finding-null) subcolumn instead of reading and processing the whole column data. The query `SELECT n IS NULL FROM table` transforms to `SELECT n.null FROM TABLE`. +Can be optimized by enabling the [optimize_functions_to_subcolumns](/core/reference/settings/session-settings#optimize_functions_to_subcolumns) setting. With `optimize_functions_to_subcolumns = 1` the function reads only [null](/core/reference/data-types/nullable#finding-null) subcolumn instead of reading and processing the whole column data. The query `SELECT n IS NULL FROM table` transforms to `SELECT n.null FROM TABLE`. {/* */} @@ -475,7 +475,7 @@ SELECT x+100 FROM t_null WHERE y IS NULL ### IS NOT NULL {#is_not_null} -- For [Nullable](/reference/data-types/nullable) type values, the `IS NOT NULL` operator returns: +- For [Nullable](/core/reference/data-types/nullable) type values, the `IS NOT NULL` operator returns: - `0`, if the value is `NULL`. - `1` otherwise. - For other values, the `IS NOT NULL` operator always returns `1`. @@ -492,4 +492,4 @@ SELECT * FROM t_null WHERE y IS NOT NULL └───┴───┘ ``` -Can be optimized by enabling the [optimize_functions_to_subcolumns](/reference/settings/session-settings#optimize_functions_to_subcolumns) setting. With `optimize_functions_to_subcolumns = 1` the function reads only [null](/reference/data-types/nullable#finding-null) subcolumn instead of reading and processing the whole column data. The query `SELECT n IS NOT NULL FROM table` transforms to `SELECT NOT n.null FROM TABLE`. +Can be optimized by enabling the [optimize_functions_to_subcolumns](/core/reference/settings/session-settings#optimize_functions_to_subcolumns) setting. With `optimize_functions_to_subcolumns = 1` the function reads only [null](/core/reference/data-types/nullable#finding-null) subcolumn instead of reading and processing the whole column data. The query `SELECT n IS NOT NULL FROM table` transforms to `SELECT NOT n.null FROM TABLE`. diff --git a/core/reference/settings/beta-and-experimental-features.mdx b/core/reference/settings/beta-and-experimental-features.mdx new file mode 100644 index 00000000..a112b0c6 --- /dev/null +++ b/core/reference/settings/beta-and-experimental-features.mdx @@ -0,0 +1,184 @@ +--- +sidebarTitle: 'Beta and experimental features' +title: 'Beta and experimental features' +description: 'ClickHouse has beta and experimental features. This documentation page discusses definition.' +slug: /beta-and-experimental-features +doc_type: 'reference' +--- + +Because ClickHouse is open-source, it receives many contributions not only from ClickHouse employees but also from the community. These contributions are often developed at different speeds; certain features may require a lengthy prototyping phase or more time for sufficient community feedback and iteration to be considered generally available (GA). + +Due to the uncertainty of when features are classified as generally available, we delineate features into two categories: **Beta** and **Experimental**. + +**Beta** features are officially supported by the ClickHouse team. **Experimental** features are early prototypes driven by either the ClickHouse team or the community and aren't officially supported. + +The sections below explicitly describe the properties of **Beta** and **Experimental** features: + +## Beta features {#beta-features} + +- Under active development to make them generally available (GA) +- Main known issues can be tracked on GitHub +- Functionality may change in the future +- Possibly enabled in ClickHouse Cloud +- The ClickHouse team supports beta features + +You can find below the features considered Beta in ClickHouse Cloud and are available for use in your ClickHouse Cloud Services. + +Note: please be sure to be using a current version of the ClickHouse [compatibility](/core/reference/settings/session-settings#compatibility) setting to be using a recently introduced feature. + +## Experimental features {#experimental-features} + +- May never become GA +- May be removed +- Can introduce breaking changes +- Functionality may change in the feature +- Need to be deliberately enabled +- The ClickHouse team **doesn't support** experimental features +- May lack important functionality and documentation +- Can't be enabled in the cloud + +Please note: no additional experimental features are allowed to be enabled in ClickHouse Cloud other than those listed above as Beta. + +{/* The inner content of the tags below are replaced at build time with a table generated from source + Please don't modify or remove the tags +*/} + +{/*AUTOGENERATED_START*/} +## Beta settings {#beta-settings} + +| Name | Default | +|------|--------| +| [geotoh3_argument_order](/core/reference/settings/session-settings#geotoh3_argument_order) | `lat_lon` | +| [enable_lightweight_update](/core/reference/settings/session-settings#enable_lightweight_update) | `1` | +| [allow_experimental_correlated_subqueries](/core/reference/settings/session-settings#allow_experimental_correlated_subqueries) | `1` | +| [parallel_replicas_count](/core/reference/settings/session-settings#parallel_replicas_count) | `0` | +| [parallel_replica_offset](/core/reference/settings/session-settings#parallel_replica_offset) | `0` | +| [parallel_replicas_custom_key](/core/reference/settings/session-settings#parallel_replicas_custom_key) | `` | +| [parallel_replicas_custom_key_range_lower](/core/reference/settings/session-settings#parallel_replicas_custom_key_range_lower) | `0` | +| [parallel_replicas_custom_key_range_upper](/core/reference/settings/session-settings#parallel_replicas_custom_key_range_upper) | `0` | +| [parallel_replicas_filter_pushdown](/core/reference/settings/session-settings#parallel_replicas_filter_pushdown) | `0` | +| [parallel_replicas_allow_view_over_mergetree](/core/reference/settings/session-settings#parallel_replicas_allow_view_over_mergetree) | `0` | +| [allow_experimental_database_iceberg](/core/reference/settings/session-settings#allow_experimental_database_iceberg) | `0` | +| [allow_experimental_database_unity_catalog](/core/reference/settings/session-settings#allow_experimental_database_unity_catalog) | `0` | +| [allow_experimental_database_glue_catalog](/core/reference/settings/session-settings#allow_experimental_database_glue_catalog) | `0` | +| [session_timezone](/core/reference/settings/session-settings#session_timezone) | `` | +| [low_priority_query_wait_time_ms](/core/reference/settings/session-settings#low_priority_query_wait_time_ms) | `1000` | +| [allow_experimental_delta_kernel_rs](/core/reference/settings/session-settings#allow_experimental_delta_kernel_rs) | `1` | +| [allow_insert_into_iceberg](/core/reference/settings/session-settings#allow_insert_into_iceberg) | `0` | +| [enable_join_runtime_filters](/core/reference/settings/session-settings#enable_join_runtime_filters) | `1` | + +## Experimental settings {#experimental-settings} + +| Name | Default | +|------|--------| +| [allow_commit_order_projection](/core/reference/settings/merge-tree-settings#allow_commit_order_projection) | `0` | +| [allow_experimental_replacing_merge_with_cleanup](/core/reference/settings/merge-tree-settings#allow_experimental_replacing_merge_with_cleanup) | `0` | +| [allow_experimental_reverse_key](/core/reference/settings/merge-tree-settings#allow_experimental_reverse_key) | `0` | +| [allow_remote_fs_zero_copy_replication](/core/reference/settings/merge-tree-settings#allow_remote_fs_zero_copy_replication) | `0` | +| [distributed_index_analysis_min_indexes_bytes_to_activate](/core/reference/settings/merge-tree-settings#distributed_index_analysis_min_indexes_bytes_to_activate) | `1073741824` | +| [distributed_index_analysis_min_parts_to_activate](/core/reference/settings/merge-tree-settings#distributed_index_analysis_min_parts_to_activate) | `10` | +| [enable_replacing_merge_with_cleanup_for_min_age_to_force_merge](/core/reference/settings/merge-tree-settings#enable_replacing_merge_with_cleanup_for_min_age_to_force_merge) | `0` | +| [force_read_through_cache_for_merges](/core/reference/settings/merge-tree-settings#force_read_through_cache_for_merges) | `0` | +| [merge_selector_algorithm](/core/reference/settings/merge-tree-settings#merge_selector_algorithm) | `Simple` | +| [merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once](/core/reference/settings/merge-tree-settings#merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once) | `0` | +| [merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent](/core/reference/settings/merge-tree-settings#merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent) | `5` | +| [notify_newest_block_number](/core/reference/settings/merge-tree-settings#notify_newest_block_number) | `0` | +| [part_moves_between_shards_delay_seconds](/core/reference/settings/merge-tree-settings#part_moves_between_shards_delay_seconds) | `30` | +| [part_moves_between_shards_enable](/core/reference/settings/merge-tree-settings#part_moves_between_shards_enable) | `0` | +| [remote_fs_zero_copy_path_compatible_mode](/core/reference/settings/merge-tree-settings#remote_fs_zero_copy_path_compatible_mode) | `0` | +| [remote_fs_zero_copy_zookeeper_path](/core/reference/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | +| [remove_rolled_back_parts_immediately](/core/reference/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | +| [shared_merge_tree_virtual_parts_discovery_batch](/core/reference/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | +| [query_plan_optimize_join_order_randomize](/core/reference/settings/session-settings#query_plan_optimize_join_order_randomize) | `0` | +| [enable_join_transitive_predicates](/core/reference/settings/session-settings#enable_join_transitive_predicates) | `0` | +| [ast_fuzzer_runs](/core/reference/settings/session-settings#ast_fuzzer_runs) | `0` | +| [ast_fuzzer_any_query](/core/reference/settings/session-settings#ast_fuzzer_any_query) | `0` | +| [allow_fuzz_query_functions](/core/reference/settings/session-settings#allow_fuzz_query_functions) | `0` | +| [enable_materialized_cte](/core/reference/settings/session-settings#enable_materialized_cte) | `0` | +| [analyzer_inline_views](/core/reference/settings/session-settings#analyzer_inline_views) | `0` | +| [allow_experimental_kafka_offsets_storage_in_keeper](/core/reference/settings/session-settings#allow_experimental_kafka_offsets_storage_in_keeper) | `0` | +| [allow_experimental_delta_lake_writes](/core/reference/settings/session-settings#allow_experimental_delta_lake_writes) | `0` | +| [automatic_parallel_replicas_mode](/core/reference/settings/session-settings#automatic_parallel_replicas_mode) | `0` | +| [automatic_parallel_replicas_min_bytes_per_replica](/core/reference/settings/session-settings#automatic_parallel_replicas_min_bytes_per_replica) | `1048576` | +| [distributed_index_analysis](/core/reference/settings/session-settings#distributed_index_analysis) | `0` | +| [allow_experimental_materialized_postgresql_table](/core/reference/settings/session-settings#allow_experimental_materialized_postgresql_table) | `0` | +| [allow_experimental_funnel_functions](/core/reference/settings/session-settings#allow_experimental_funnel_functions) | `0` | +| [allow_experimental_nlp_functions](/core/reference/settings/session-settings#allow_experimental_nlp_functions) | `0` | +| [allow_experimental_hash_functions](/core/reference/settings/session-settings#allow_experimental_hash_functions) | `0` | +| [allow_experimental_time_series_table](/core/reference/settings/session-settings#allow_experimental_time_series_table) | `0` | +| [allow_experimental_unique_key](/core/reference/settings/session-settings#allow_experimental_unique_key) | `0` | +| [allow_experimental_codecs](/core/reference/settings/session-settings#allow_experimental_codecs) | `0` | +| [throw_on_unsupported_query_inside_transaction](/core/reference/settings/session-settings#throw_on_unsupported_query_inside_transaction) | `1` | +| [wait_changes_become_visible_after_commit_mode](/core/reference/settings/session-settings#wait_changes_become_visible_after_commit_mode) | `wait_unknown` | +| [implicit_transaction](/core/reference/settings/session-settings#implicit_transaction) | `0` | +| [grace_hash_join_initial_buckets](/core/reference/settings/session-settings#grace_hash_join_initial_buckets) | `1` | +| [grace_hash_join_max_buckets](/core/reference/settings/session-settings#grace_hash_join_max_buckets) | `1024` | +| [join_to_sort_minimum_perkey_rows](/core/reference/settings/session-settings#join_to_sort_minimum_perkey_rows) | `40` | +| [join_to_sort_maximum_table_rows](/core/reference/settings/session-settings#join_to_sort_maximum_table_rows) | `10000` | +| [allow_experimental_join_right_table_sorting](/core/reference/settings/session-settings#allow_experimental_join_right_table_sorting) | `0` | +| [allow_experimental_json_lazy_type_hints](/core/reference/settings/session-settings#allow_experimental_json_lazy_type_hints) | `0` | +| [allow_experimental_window_view](/core/reference/settings/session-settings#allow_experimental_window_view) | `0` | +| [window_view_clean_interval](/core/reference/settings/session-settings#window_view_clean_interval) | `60` | +| [window_view_heartbeat_interval](/core/reference/settings/session-settings#window_view_heartbeat_interval) | `15` | +| [wait_for_window_view_fire_signal_timeout](/core/reference/settings/session-settings#wait_for_window_view_fire_signal_timeout) | `10` | +| [stop_refreshable_materialized_views_on_startup](/core/reference/settings/session-settings#stop_refreshable_materialized_views_on_startup) | `0` | +| [allow_experimental_database_materialized_postgresql](/core/reference/settings/session-settings#allow_experimental_database_materialized_postgresql) | `0` | +| [allow_experimental_nullable_tuple_type](/core/reference/settings/session-settings#allow_experimental_nullable_tuple_type) | `0` | +| [allow_experimental_query_deduplication](/core/reference/settings/session-settings#allow_experimental_query_deduplication) | `0` | +| [allow_experimental_database_hms_catalog](/core/reference/settings/session-settings#allow_experimental_database_hms_catalog) | `0` | +| [allow_experimental_kusto_dialect](/core/reference/settings/session-settings#allow_experimental_kusto_dialect) | `0` | +| [allow_experimental_prql_dialect](/core/reference/settings/session-settings#allow_experimental_prql_dialect) | `0` | +| [allow_experimental_polyglot_dialect](/core/reference/settings/session-settings#allow_experimental_polyglot_dialect) | `0` | +| [polyglot_dialect](/core/reference/settings/session-settings#polyglot_dialect) | `` | +| [enable_adaptive_memory_spill_scheduler](/core/reference/settings/session-settings#enable_adaptive_memory_spill_scheduler) | `0` | +| [allow_experimental_cleanup_old_data_files_compaction](/core/reference/settings/session-settings#allow_experimental_cleanup_old_data_files_compaction) | `0` | +| [allow_experimental_iceberg_compaction](/core/reference/settings/session-settings#allow_experimental_iceberg_compaction) | `0` | +| [allow_iceberg_remove_orphan_files](/core/reference/settings/session-settings#allow_iceberg_remove_orphan_files) | `0` | +| [iceberg_orphan_files_older_than_seconds](/core/reference/settings/session-settings#iceberg_orphan_files_older_than_seconds) | `259200` | +| [allow_experimental_expire_snapshots](/core/reference/settings/session-settings#allow_experimental_expire_snapshots) | `0` | +| [write_full_path_in_iceberg_metadata](/core/reference/settings/session-settings#write_full_path_in_iceberg_metadata) | `0` | +| [iceberg_metadata_compression_method](/core/reference/settings/session-settings#iceberg_metadata_compression_method) | `` | +| [make_distributed_plan](/core/reference/settings/session-settings#make_distributed_plan) | `0` | +| [distributed_plan_execute_locally](/core/reference/settings/session-settings#distributed_plan_execute_locally) | `0` | +| [distributed_plan_default_shuffle_join_bucket_count](/core/reference/settings/session-settings#distributed_plan_default_shuffle_join_bucket_count) | `8` | +| [distributed_plan_default_reader_bucket_count](/core/reference/settings/session-settings#distributed_plan_default_reader_bucket_count) | `8` | +| [distributed_plan_force_exchange_kind](/core/reference/settings/session-settings#distributed_plan_force_exchange_kind) | `` | +| [distributed_plan_max_rows_to_broadcast](/core/reference/settings/session-settings#distributed_plan_max_rows_to_broadcast) | `20000` | +| [distributed_plan_prefer_replicas_over_workers](/core/reference/settings/session-settings#distributed_plan_prefer_replicas_over_workers) | `0` | +| [allow_experimental_ytsaurus_table_engine](/core/reference/settings/session-settings#allow_experimental_ytsaurus_table_engine) | `0` | +| [allow_experimental_ytsaurus_table_function](/core/reference/settings/session-settings#allow_experimental_ytsaurus_table_function) | `0` | +| [allow_experimental_ytsaurus_dictionary_source](/core/reference/settings/session-settings#allow_experimental_ytsaurus_dictionary_source) | `0` | +| [distributed_plan_force_shuffle_aggregation](/core/reference/settings/session-settings#distributed_plan_force_shuffle_aggregation) | `0` | +| [join_runtime_filter_exact_values_limit](/core/reference/settings/session-settings#join_runtime_filter_exact_values_limit) | `10000` | +| [join_runtime_bloom_filter_bytes](/core/reference/settings/session-settings#join_runtime_bloom_filter_bytes) | `524288` | +| [join_runtime_bloom_filter_hash_functions](/core/reference/settings/session-settings#join_runtime_bloom_filter_hash_functions) | `3` | +| [join_runtime_filter_pass_ratio_threshold_for_disabling](/core/reference/settings/session-settings#join_runtime_filter_pass_ratio_threshold_for_disabling) | `0.7` | +| [join_runtime_filter_blocks_to_skip_before_reenabling](/core/reference/settings/session-settings#join_runtime_filter_blocks_to_skip_before_reenabling) | `30` | +| [join_runtime_bloom_filter_max_ratio_of_set_bits](/core/reference/settings/session-settings#join_runtime_bloom_filter_max_ratio_of_set_bits) | `0.7` | +| [rewrite_in_to_join](/core/reference/settings/session-settings#rewrite_in_to_join) | `0` | +| [allow_experimental_time_series_aggregate_functions](/core/reference/settings/session-settings#allow_experimental_time_series_aggregate_functions) | `0` | +| [promql_database](/core/reference/settings/session-settings#promql_database) | `` | +| [promql_table](/core/reference/settings/session-settings#promql_table) | `` | +| [promql_evaluation_time](/core/reference/settings/session-settings#promql_evaluation_time) | `auto` | +| [allow_experimental_alias_table_engine](/core/reference/settings/session-settings#allow_experimental_alias_table_engine) | `0` | +| [allow_experimental_paimon_storage_engine](/core/reference/settings/session-settings) | `0` | +| [paimon_target_snapshot_id](/core/reference/settings/session-settings) | `-1` | +| [max_consume_snapshots](/core/reference/settings/session-settings) | `0` | +| [use_paimon_partition_pruning](/core/reference/settings/session-settings#use_paimon_partition_pruning) | `0` | +| [allow_experimental_object_storage_queue_hive_partitioning](/core/reference/settings/session-settings#allow_experimental_object_storage_queue_hive_partitioning) | `0` | +| [query_plan_optimize_join_order_algorithm](/core/reference/settings/session-settings#query_plan_optimize_join_order_algorithm) | `greedy` | +| [allow_experimental_database_paimon_rest_catalog](/core/reference/settings/session-settings#allow_experimental_database_paimon_rest_catalog) | `0` | +| [webassembly_udf_max_fuel](/core/reference/settings/session-settings#webassembly_udf_max_fuel) | `100000` | +| [webassembly_udf_max_memory](/core/reference/settings/session-settings#webassembly_udf_max_memory) | `134217728` | +| [webassembly_udf_max_input_block_size](/core/reference/settings/session-settings#webassembly_udf_max_input_block_size) | `0` | +| [webassembly_udf_max_instances](/core/reference/settings/session-settings#webassembly_udf_max_instances) | `32` | +| [allow_experimental_ai_functions](/core/reference/settings/session-settings#allow_experimental_ai_functions) | `0` | +| [ai_function_request_timeout_sec](/core/reference/settings/session-settings#ai_function_request_timeout_sec) | `60` | +| [ai_function_max_retries](/core/reference/settings/session-settings#ai_function_max_retries) | `0` | +| [ai_function_retry_initial_delay_ms](/core/reference/settings/session-settings#ai_function_retry_initial_delay_ms) | `1000` | +| [ai_function_throw_on_error](/core/reference/settings/session-settings#ai_function_throw_on_error) | `1` | +| [ai_function_max_input_tokens_per_query](/core/reference/settings/session-settings#ai_function_max_input_tokens_per_query) | `1000000` | +| [ai_function_max_output_tokens_per_query](/core/reference/settings/session-settings#ai_function_max_output_tokens_per_query) | `500000` | +| [ai_function_max_api_calls_per_query](/core/reference/settings/session-settings#ai_function_max_api_calls_per_query) | `0` | +| [ai_function_throw_on_quota_exceeded](/core/reference/settings/session-settings#ai_function_throw_on_quota_exceeded) | `1` | +{/*AUTOGENERATED_END*/} diff --git a/reference/settings/formats.mdx b/core/reference/settings/formats.mdx similarity index 94% rename from reference/settings/formats.mdx rename to core/reference/settings/formats.mdx index 3c95725e..a1fced71 100644 --- a/reference/settings/formats.mdx +++ b/core/reference/settings/formats.mdx @@ -73,7 +73,7 @@ corresponding to 'seconds', 'milliseconds', and 'microseconds' Allows choosing a parser of the text representation of date and time. -The setting does not apply to [date and time functions](/reference/functions/regular-functions/date-time-functions). +The setting does not apply to [date and time functions](/core/reference/functions/regular-functions/date-time-functions). Possible values: @@ -81,7 +81,7 @@ Possible values: ClickHouse can parse the basic `YYYY-MM-DD HH:MM:SS` format and all [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time formats. For example, `'2018-06-08T01:02:03.000Z'`. -- `'best_effort_us'` — Similar to `best_effort` (see the difference in [parseDateTimeBestEffortUS](/reference/functions/regular-functions/type-conversion-functions#parseDateTimeBestEffortUS) +- `'best_effort_us'` — Similar to `best_effort` (see the difference in [parseDateTimeBestEffortUS](/core/reference/functions/regular-functions/type-conversion-functions#parseDateTimeBestEffortUS) - `'basic'` — Use basic parser. @@ -89,8 +89,8 @@ Possible values: See also: -- [DateTime data type.](/reference/data-types/datetime) -- [Functions for working with dates and times.](/reference/functions/regular-functions/date-time-functions) +- [DateTime data type.](/core/reference/data-types/datetime) +- [Functions for working with dates and times.](/core/reference/functions/regular-functions/date-time-functions) ## date_time_output_format {#date_time_output_format} @@ -114,14 +114,14 @@ Possible values: See also: -- [DateTime data type.](/reference/data-types/datetime) -- [Functions for working with dates and times.](/reference/functions/regular-functions/date-time-functions) +- [DateTime data type.](/core/reference/data-types/datetime) +- [Functions for working with dates and times.](/core/reference/functions/regular-functions/date-time-functions) ## date_time_overflow_behavior {#date_time_overflow_behavior} -Defines the behavior when [Date](/reference/data-types/date), [Date32](/reference/data-types/date32), [DateTime](/reference/data-types/datetime), [DateTime64](/reference/data-types/datetime64) or integers are converted into Date, Date32, DateTime or DateTime64 but the value cannot be represented in the result type. +Defines the behavior when [Date](/core/reference/data-types/date), [Date32](/core/reference/data-types/date32), [DateTime](/core/reference/data-types/datetime), [DateTime64](/core/reference/data-types/datetime64) or integers are converted into Date, Date32, DateTime or DateTime64 but the value cannot be represented in the result type. Possible values: @@ -276,9 +276,9 @@ Enables or disables showing secrets in `SHOW` and `SELECT` queries for tables, d table functions, and dictionaries. User wishing to see secrets must also have -[`display_secrets_in_show_and_select` server setting](/reference/settings/server-settings/settings#display_secrets_in_show_and_select) +[`display_secrets_in_show_and_select` server setting](/core/reference/settings/server-settings/settings#display_secrets_in_show_and_select) turned on and a -[`displaySecretsInShowAndSelect`](/reference/statements/grant#displaysecretsinshowandselect) privilege. +[`displaySecretsInShowAndSelect`](/core/reference/statements/grant#displaysecretsinshowandselect) privilege. Possible values: @@ -287,7 +287,7 @@ Possible values: ## format_json_object_each_row_column_for_object_name {#format_json_object_each_row_column_for_object_name} -The name of column that will be used for storing/writing object names in [JSONObjectEachRow](/reference/formats/JSON/JSONObjectEachRow) format. +The name of column that will be used for storing/writing object names in [JSONObjectEachRow](/core/reference/formats/JSON/JSONObjectEachRow) format. Column type should be String. If value is empty, default names `row_{i}`will be used for object names. ## format_protobuf_use_autogenerated_schema {#format_protobuf_use_autogenerated_schema} @@ -474,7 +474,7 @@ Max type nodes when decoding binary types (not depth, but total count). `Map(Str -Read values of [JSON](/reference/data-types/newjson) data type as JSON [String](/reference/data-types/string) values in RowBinary input format. +Read values of [JSON](/core/reference/data-types/newjson) data type as JSON [String](/core/reference/data-types/string) values in RowBinary input format. ## input_format_bson_skip_fields_with_unsupported_types_in_schema_inference {#input_format_bson_skip_fields_with_unsupported_types_in_schema_inference} @@ -637,7 +637,7 @@ Skip trailing empty lines in CustomSeparated format -When performing `INSERT` queries, replace omitted input column values with default values of the respective columns. This option applies to [JSONEachRow](/reference/formats/JSON/JSONEachRow) (and other JSON formats), [CSV](/reference/formats/CSV/CSV), [TabSeparated](/reference/formats/TabSeparated/TabSeparated), [TSKV](/reference/formats/TabSeparated/TSKV), [Parquet](/reference/formats/Parquet/Parquet), [Arrow](/reference/formats/Arrow/Arrow), [Avro](/reference/formats/Avro/Avro), [ORC](/reference/formats/ORC), [Native](/reference/formats/Native) formats and formats with `WithNames`/`WithNamesAndTypes` suffixes. +When performing `INSERT` queries, replace omitted input column values with default values of the respective columns. This option applies to [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) (and other JSON formats), [CSV](/core/reference/formats/CSV/CSV), [TabSeparated](/core/reference/formats/TabSeparated/TabSeparated), [TSKV](/core/reference/formats/TabSeparated/TSKV), [Parquet](/core/reference/formats/Parquet/Parquet), [Arrow](/core/reference/formats/Arrow/Arrow), [Avro](/core/reference/formats/Avro/Avro), [ORC](/core/reference/formats/ORC), [Native](/core/reference/formats/Native) formats and formats with `WithNames`/`WithNamesAndTypes` suffixes. When this option is enabled, extended table metadata are sent from server to client. It consumes additional computing resources on the server and can reduce performance. @@ -690,7 +690,7 @@ Enables or disables the insertion of JSON data with nested objects. Supported formats: -- [JSONEachRow](/reference/formats/JSON/JSONEachRow) +- [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) Possible values: @@ -699,7 +699,7 @@ Possible values: See also: -- [Usage of Nested Structures](/integrations/connectors/data-ingestion/data-formats/json/formats#accessing-nested-json-objects) with the `JSONEachRow` format. +- [Usage of Nested Structures](/core/guides/clickhouse/data-formats/json/formats#accessing-nested-json-objects) with the `JSONEachRow` format. ## input_format_ipv4_default_on_conversion_error {#input_format_ipv4_default_on_conversion_error} @@ -1092,7 +1092,7 @@ Read data types in binary format instead of type names in Native input format -Enables or disables the initialization of [NULL](/reference/syntax#literals) fields with [default values](/reference/statements/create/table#default_values), if data type of these fields is not [nullable](/reference/data-types/nullable). +Enables or disables the initialization of [NULL](/core/reference/syntax#literals) fields with [default values](/core/reference/statements/create/table#default_values), if data type of these fields is not [nullable](/core/reference/data-types/nullable). If column type is not nullable and this setting is disabled, then inserting `NULL` causes an exception. If column type is nullable, then `NULL` values are inserted as is, regardless of this setting. This setting is applicable for most input formats. @@ -1162,7 +1162,7 @@ Use a faster ORC decoder implementation. -Enables or disables order-preserving parallel parsing of data formats. Supported only for [TabSeparated (TSV)](/reference/formats/TabSeparated/TabSeparated), [TSKV](/reference/formats/TabSeparated/TSKV), [CSV](/reference/formats/CSV/CSV) and [JSONEachRow](/reference/formats/JSON/JSONEachRow) formats. +Enables or disables order-preserving parallel parsing of data formats. Supported only for [TabSeparated (TSV)](/core/reference/formats/TabSeparated/TabSeparated), [TSKV](/core/reference/formats/TabSeparated/TSKV), [CSV](/core/reference/formats/CSV/CSV) and [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) formats. Possible values: @@ -1341,12 +1341,12 @@ When writing data, ClickHouse throws an exception if input data contain columns Supported formats: -- [JSONEachRow](/reference/formats/JSON/JSONEachRow) (and other JSON formats) -- [BSONEachRow](/reference/formats/BSONEachRow) (and other JSON formats) -- [TSKV](/reference/formats/TabSeparated/TSKV) +- [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) (and other JSON formats) +- [BSONEachRow](/core/reference/formats/BSONEachRow) (and other JSON formats) +- [TSKV](/core/reference/formats/TabSeparated/TSKV) - All formats with suffixes WithNames/WithNamesAndTypes -- [MySQLDump](/reference/formats/MySQLDump) -- [Native](/reference/formats/Native) +- [MySQLDump](/core/reference/formats/MySQLDump) +- [Native](/core/reference/formats/Native) Possible values: @@ -1399,7 +1399,7 @@ Enabled by default. -If enabled, ClickHouse will try to infer type [`Variant`](/reference/data-types/variant) in schema inference for text formats when there is more than one possible type for column/array elements. +If enabled, ClickHouse will try to infer type [`Variant`](/core/reference/data-types/variant) in schema inference for text formats when there is more than one possible type for column/array elements. Possible values: @@ -1488,18 +1488,18 @@ To improve insert performance, we recommend disabling this check if you are sure Supported formats: -- [CSVWithNames](/reference/formats/CSV/CSVWithNames) -- [CSVWithNamesAndTypes](/reference/formats/CSV/CSVWithNamesAndTypes) -- [TabSeparatedWithNames](/reference/formats/TabSeparated/TabSeparatedWithNames) -- [TabSeparatedWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) -- [JSONCompactEachRowWithNames](/reference/formats/JSON/JSONCompactEachRowWithNames) -- [JSONCompactEachRowWithNamesAndTypes](/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes) -- [JSONCompactStringsEachRowWithNames](/reference/formats/JSON/JSONCompactStringsEachRowWithNames) -- [JSONCompactStringsEachRowWithNamesAndTypes](/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes) -- [RowBinaryWithNames](/reference/formats/RowBinary/RowBinaryWithNames) -- [RowBinaryWithNamesAndTypes](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) -- [CustomSeparatedWithNames](/reference/formats/CustomSeparated/CustomSeparatedWithNames) -- [CustomSeparatedWithNamesAndTypes](/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes) +- [CSVWithNames](/core/reference/formats/CSV/CSVWithNames) +- [CSVWithNamesAndTypes](/core/reference/formats/CSV/CSVWithNamesAndTypes) +- [TabSeparatedWithNames](/core/reference/formats/TabSeparated/TabSeparatedWithNames) +- [TabSeparatedWithNamesAndTypes](/core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) +- [JSONCompactEachRowWithNames](/core/reference/formats/JSON/JSONCompactEachRowWithNames) +- [JSONCompactEachRowWithNamesAndTypes](/core/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes) +- [JSONCompactStringsEachRowWithNames](/core/reference/formats/JSON/JSONCompactStringsEachRowWithNames) +- [JSONCompactStringsEachRowWithNamesAndTypes](/core/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes) +- [RowBinaryWithNames](/core/reference/formats/RowBinary/RowBinaryWithNames) +- [RowBinaryWithNamesAndTypes](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) +- [CustomSeparatedWithNames](/core/reference/formats/CustomSeparated/CustomSeparatedWithNames) +- [CustomSeparatedWithNamesAndTypes](/core/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes) Possible values: @@ -1514,12 +1514,12 @@ Controls whether format parser should check if data types from the input data ma Supported formats: -- [CSVWithNamesAndTypes](/reference/formats/CSV/CSVWithNamesAndTypes) -- [TabSeparatedWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) -- [JSONCompactEachRowWithNamesAndTypes](/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes) -- [JSONCompactStringsEachRowWithNamesAndTypes](/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes) -- [RowBinaryWithNamesAndTypes](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) -- [CustomSeparatedWithNamesAndTypes](/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes) +- [CSVWithNamesAndTypes](/core/reference/formats/CSV/CSVWithNamesAndTypes) +- [TabSeparatedWithNamesAndTypes](/core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) +- [JSONCompactEachRowWithNamesAndTypes](/core/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes) +- [JSONCompactStringsEachRowWithNamesAndTypes](/core/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes) +- [RowBinaryWithNamesAndTypes](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) +- [CustomSeparatedWithNamesAndTypes](/core/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes) Possible values: @@ -1530,7 +1530,7 @@ Possible values: -Enables or disables random shard insertion into a [Distributed](/reference/engines/table-engines/special/distributed) table when there is no distributed key. +Enables or disables random shard insertion into a [Distributed](/core/reference/engines/table-engines/special/distributed) table when there is no distributed key. By default, when inserting data into a `Distributed` table with more than one shard, the ClickHouse server will reject any insertion request if there is no distributed key. When `insert_distributed_one_random_shard = 1`, insertions are allowed and data is forwarded randomly among all shards. @@ -1557,7 +1557,7 @@ Possible values: See also: -- [Interval](/reference/data-types/special-data-types/interval) +- [Interval](/core/reference/data-types/special-data-types/interval) ## into_outfile_create_parent_directories {#into_outfile_create_parent_directories} @@ -1680,7 +1680,7 @@ Write data types in binary format instead of type names in RowBinaryWithNamesAnd -Write values of [JSON](/reference/data-types/newjson) data type as JSON [String](/reference/data-types/string) values in RowBinary output format. +Write values of [JSON](/core/reference/data-types/newjson) data type as JSON [String](/core/reference/data-types/string) values in RowBinary output format. ## output_format_bson_string_as_string {#output_format_bson_string_as_string} @@ -1736,7 +1736,7 @@ Disabled by default. -Enables the ability to output all rows as a JSON array in the [JSONEachRow](/reference/formats/JSON/JSONEachRow) format. +Enables the ability to output all rows as a JSON array in the [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) format. Possible values: @@ -1859,7 +1859,7 @@ Enabled by default. -Controls quoting of 64-bit [floats](/reference/data-types/float) when they are output in JSON* formats. +Controls quoting of 64-bit [floats](/core/reference/data-types/float) when they are output in JSON* formats. Disabled by default. @@ -1869,7 +1869,7 @@ Disabled by default. -Controls quoting of 64-bit or bigger [integers](/reference/data-types/int-uint) (like `UInt64` or `Int128`) when they are output in a [JSON](/reference/formats/JSON/JSON) format. +Controls quoting of 64-bit or bigger [integers](/core/reference/data-types/int-uint) (like `UInt64` or `Int128`) when they are output in a [JSON](/core/reference/formats/JSON/JSON) format. Such integers are enclosed in quotes by default. This behavior is compatible with most JavaScript implementations. Possible values: @@ -1889,7 +1889,7 @@ Disabled by default. -Enables `+nan`, `-nan`, `+inf`, `-inf` outputs in [JSON](/reference/formats/JSON/JSON) output format. +Enables `+nan`, `-nan`, `+inf`, `-inf` outputs in [JSON](/core/reference/formats/JSON/JSON) output format. Possible values: @@ -2035,7 +2035,7 @@ Write data types in binary format instead of type names in Native output format -Write data of [JSON](/reference/data-types/newjson) and [Dynamic](/reference/data-types/dynamic) columns in a flattened format (all types/paths as separate subcolumns). +Write data of [JSON](/core/reference/data-types/newjson) and [Dynamic](/core/reference/data-types/dynamic) columns in a flattened format (all types/paths as separate subcolumns). ## output_format_native_write_json_as_string {#output_format_native_write_json_as_string} @@ -2043,7 +2043,7 @@ Write data of [JSON](/reference/data-types/newjson) and [Dynamic](/reference/dat -Write data of [JSON](/reference/data-types/newjson) column as [String](/reference/data-types/string) column containing JSON strings instead of default native JSON serialization. +Write data of [JSON](/core/reference/data-types/newjson) column as [String](/core/reference/data-types/string) column containing JSON strings instead of default native JSON serialization. ## output_format_orc_compression_block_size {#output_format_orc_compression_block_size} @@ -2095,7 +2095,7 @@ The time zone name for ORC writer, the default ORC writer's time zone is GMT. -Enables or disables parallel formatting of data formats. Supported only for [TSV](/reference/formats/TabSeparated/TabSeparated), [TSKV](/reference/formats/TabSeparated/TSKV), [CSV](/reference/formats/CSV/CSV) and [JSONEachRow](/reference/formats/JSON/JSONEachRow) formats. +Enables or disables parallel formatting of data formats. Supported only for [TSV](/core/reference/formats/TabSeparated/TabSeparated), [TSKV](/core/reference/formats/TabSeparated/TSKV), [CSV](/core/reference/formats/CSV/CSV) and [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) formats. Possible values: @@ -2464,7 +2464,7 @@ When serializing Nullable columns with Google wrappers, serialize default values ## output_format_schema {#output_format_schema} -The path to the file where the automatically generated schema will be saved in [Cap'n Proto](/reference/formats/CapnProto) or [Protobuf](/reference/formats/Protobuf/Protobuf) formats. +The path to the file where the automatically generated schema will be saved in [Cap'n Proto](/core/reference/formats/CapnProto) or [Protobuf](/core/reference/formats/Protobuf/Protobuf) formats. ## output_format_sql_insert_include_column_names {#output_format_sql_insert_include_column_names} diff --git a/core/reference/settings/index.mdx b/core/reference/settings/index.mdx new file mode 100644 index 00000000..c446d4be --- /dev/null +++ b/core/reference/settings/index.mdx @@ -0,0 +1,32 @@ +--- +description: 'Table of Contents page for Settings' +slug: /operations/settings/ +title: 'Settings' +doc_type: 'landing-page' +--- + +{/* The table of contents table for this page is automatically generated by +https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh +from the YAML front matter fields: slug, description, title. + +If you've spotted an error, please edit the YML frontmatter of the pages themselves. +*/} + +{/*AUTOGENERATED_START*/} +| Page | Description | +|-----|-----| +| [Settings Overview](/core/concepts/features/configuration/settings/overview) | Overview page for settings. | +| [Permissions for queries](/core/concepts/features/configuration/settings/permissions-for-queries) | Settings for query permissions. | +| [Restrictions on query complexity](/core/concepts/features/configuration/settings/query-complexity) | Settings which restrict query complexity. | +| [Settings profiles](/core/concepts/features/configuration/settings/settings-profiles) | A collection of settings grouped under the same name. | +| [Constraints on settings](/core/concepts/features/configuration/settings/constraints-on-settings) | Constraints on settings can be defined in the `profiles` section of the `user.xml` configuration file and prohibit users from changing some of the settings with the `SET` query. | +| [Users and roles settings](/core/concepts/features/configuration/settings/settings-users) | Settings for configuring users and roles. | +| [Composable protocols](/core/concepts/features/configuration/server-config/composable-protocols) | Composable protocols allows more flexible configuration of TCP access to the ClickHouse server. | +| [Format Settings](/core/reference/settings/formats) | Settings which control input and output formats. | +| [Memory overcommit](/core/concepts/features/configuration/settings/memory-overcommit) | An experimental technique intended to allow to set more flexible memory limits for queries. | +| [MergeTree tables settings](/core/reference/settings/merge-tree-settings) | Settings for MergeTree which are in `system.merge_tree_settings` | +| [Query-level Session Settings](/core/concepts/features/configuration/settings/settings-query-level) | Settings at the query-level | +| [Server overload](/core/concepts/features/configuration/settings/server-overload) | Controlling behavior on server CPU overload. | +| [Session Settings](/core/reference/settings/session-settings) | Settings which are found in the ``system.settings`` table. | +| [TCP connection limits](/core/concepts/features/configuration/settings/tcp-connection-limits) | TCP connection limits. | +{/*AUTOGENERATED_END*/} diff --git a/reference/settings/merge-tree-settings.mdx b/core/reference/settings/merge-tree-settings.mdx similarity index 97% rename from reference/settings/merge-tree-settings.mdx rename to core/reference/settings/merge-tree-settings.mdx index ba7ada80..1b520238 100644 --- a/reference/settings/merge-tree-settings.mdx +++ b/core/reference/settings/merge-tree-settings.mdx @@ -296,9 +296,9 @@ to trigger such an action. **See Also** -- [ignore_cold_parts_seconds](/reference/settings/session-settings#ignore_cold_parts_seconds) -- [prefer_warmed_unmerged_parts_seconds](/reference/settings/session-settings#prefer_warmed_unmerged_parts_seconds) -- [cache_warmer_threads](/reference/settings/session-settings#cache_warmer_threads) +- [ignore_cold_parts_seconds](/core/reference/settings/session-settings#ignore_cold_parts_seconds) +- [prefer_warmed_unmerged_parts_seconds](/core/reference/settings/session-settings#prefer_warmed_unmerged_parts_seconds) +- [cache_warmer_threads](/core/reference/settings/session-settings#cache_warmer_threads) ## cache_populated_by_fetch_filename_regexp {#cache_populated_by_fetch_filename_regexp} @@ -318,7 +318,7 @@ Obsolete setting, does nothing. Enables the check at table creation, that the data type of a column for s ampling or sampling expression is correct. The data type must be one of unsigned -[integer types](/reference/data-types/int-uint): `UInt8`, `UInt16`, +[integer types](/core/reference/data-types/int-uint): `UInt8`, `UInt16`, `UInt32`, `UInt64`. Possible values: @@ -475,7 +475,7 @@ disabled, the data part is removed. Activate this setting if you want to analyze such parts later. The setting is applicable to `MergeTree` tables with enabled -[data replication](/reference/engines/table-engines/mergetree-family/replacingmergetree). +[data replication](/core/reference/engines/table-engines/mergetree-family/replacingmergetree). Possible values: @@ -648,8 +648,8 @@ Excludes provided comma delimited list of skip indexes from being built and stor [materialize_skip_indexes_on_merge](#materialize_skip_indexes_on_merge) is false. The excluded skip indexes will still be built and stored by an explicit -[MATERIALIZE INDEX](/reference/statements/alter/skipping-index#materialize-index) query or during INSERTs depending on -the [materialize_skip_indexes_on_insert](/reference/settings/session-settings#materialize_skip_indexes_on_insert) +[MATERIALIZE INDEX](/core/reference/statements/alter/skipping-index#materialize-index) query or during INSERTs depending on +the [materialize_skip_indexes_on_insert](/core/reference/settings/session-settings#materialize_skip_indexes_on_insert) session setting. Example: @@ -890,8 +890,8 @@ the default compression is ZSTD(3). When enabled, merges build and store skip indices for new parts. -Otherwise they can be created/stored by explicit [MATERIALIZE INDEX](/reference/statements/alter/skipping-index#materialize-index) -or [during INSERTs](/reference/settings/session-settings#materialize_skip_indexes_on_insert). +Otherwise they can be created/stored by explicit [MATERIALIZE INDEX](/core/reference/statements/alter/skipping-index#materialize-index) +or [during INSERTs](/core/reference/settings/session-settings#materialize_skip_indexes_on_insert). See also [exclude_materialize_skip_indexes_on_merge](#exclude_materialize_skip_indexes_on_merge) for more fine-grained control. @@ -900,8 +900,8 @@ See also [exclude_materialize_skip_indexes_on_merge](#exclude_materialize_skip_i When enabled, merges will build and store statistics for new parts. -Otherwise they can be created/stored by explicit [MATERIALIZE STATISTICS](/reference/statements/alter/statistics) -or [during INSERTs](/reference/settings/session-settings#materialize_statistics_on_insert) +Otherwise they can be created/stored by explicit [MATERIALIZE STATISTICS](/core/reference/statements/alter/statistics) +or [during INSERTs](/core/reference/settings/session-settings#materialize_statistics_on_insert) ## materialize_ttl_recalculate_only {#materialize_ttl_recalculate_only} @@ -942,7 +942,7 @@ partitions, and if there are enough free resources in the pool, it starts background merges. Merges occur until the total size of the source parts is larger than `max_bytes_to_merge_at_max_space_in_pool`. -Merges initiated by [OPTIMIZE FINAL](/reference/statements/optimize) +Merges initiated by [OPTIMIZE FINAL](/core/reference/statements/optimize) ignore `max_bytes_to_merge_at_max_space_in_pool` (only the free disk space is taken into account). @@ -975,7 +975,7 @@ Maximum period to clean old queue logs, blocks hashes and parts. The maximum size of blocks of uncompressed data before compressing for writing to a table. You can also specify this setting in the global settings -(see [max_compress_block_size](/reference/settings/merge-tree-settings#max_compress_block_size) +(see [max_compress_block_size](/core/reference/settings/merge-tree-settings#max_compress_block_size) setting). The value specified when the table is created overrides the global value for this setting. @@ -1121,7 +1121,7 @@ query-level setting. Possible values: - Any positive integer. -You can also specify a query complexity setting [max_partitions_to_read](/reference/settings/session-settings#max_partitions_to_read) +You can also specify a query complexity setting [max_partitions_to_read](/core/reference/settings/session-settings#max_partitions_to_read) at a query / session / profile level. ## max_parts_in_total {#max_parts_in_total} @@ -1177,9 +1177,9 @@ The maximum number of merge tree projections. Limits the maximum speed of data exchange over the network in bytes per -second for [replicated](/reference/engines/table-engines/mergetree-family/replication) +second for [replicated](/core/reference/engines/table-engines/mergetree-family/replication) fetches. This setting is applied to a particular table, unlike the -[`max_replicated_fetches_network_bandwidth_for_server`](/reference/settings/merge-tree-settings#max_replicated_fetches_network_bandwidth) +[`max_replicated_fetches_network_bandwidth_for_server`](/core/reference/settings/merge-tree-settings#max_replicated_fetches_network_bandwidth) setting, which is applied to the server. You can limit both server network and network for a particular table, but for @@ -1232,9 +1232,9 @@ ReplicatedMergeTree queue. Limits the maximum speed of data exchange over the network in bytes per -second for [replicated](/reference/engines/table-engines/mergetree-family/replacingmergetree) +second for [replicated](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) sends. This setting is applied to a particular table, unlike the -[`max_replicated_sends_network_bandwidth_for_server`](/reference/settings/merge-tree-settings#max_replicated_sends_network_bandwidth) +[`max_replicated_sends_network_bandwidth_for_server`](/core/reference/settings/merge-tree-settings#max_replicated_sends_network_bandwidth) setting, which is applied to the server. You can limit both server network and network for a particular table, but @@ -1441,7 +1441,7 @@ background merges of this table. If not specified (empty string), then server setting `merge_workload` is used instead. **See Also** -- [Workload Scheduling](/concepts/features/configuration/server-config/workload-scheduling) +- [Workload Scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) ## min_absolute_delay_to_close {#min_absolute_delay_to_close} @@ -1510,7 +1510,7 @@ Possible values: The value of the `min_bytes_to_rebalance_partition_over_jbod` setting should not be less than the value of the -[max_bytes_to_merge_at_max_space_in_pool](/reference/settings/merge-tree-settings#max_bytes_to_merge_at_max_space_in_pool) +[max_bytes_to_merge_at_max_space_in_pool](/core/reference/settings/merge-tree-settings#max_bytes_to_merge_at_max_space_in_pool) / 1024. Otherwise, ClickHouse throws an exception. ## min_columns_to_activate_adaptive_write_buffer {#min_columns_to_activate_adaptive_write_buffer} @@ -1528,7 +1528,7 @@ Possible values: Minimum size of blocks of uncompressed data required for compression when writing the next mark. You can also specify this setting in the global settings -(see [min_compress_block_size](/reference/settings/merge-tree-settings#min_compress_block_size) +(see [min_compress_block_size](/core/reference/settings/merge-tree-settings#min_compress_block_size) setting). The value specified when the table is created overrides the global value for this setting. @@ -1703,13 +1703,13 @@ background mutations of this table. If not specified (empty string), then server setting `mutation_workload` is used instead. **See Also** -- [Workload Scheduling](/concepts/features/configuration/server-config/workload-scheduling) +- [Workload Scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) ## non_replicated_deduplication_window {#non_replicated_deduplication_window} The number of the most recently inserted blocks in the non-replicated -[MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) table +[MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) table for which hash sums are stored to check for duplicates. Possible values: @@ -1753,8 +1753,8 @@ Possible values: **Usage** The value of the `number_of_free_entries_in_pool_to_execute_mutation` setting -should be less than the value of the [background_pool_size](/reference/settings/server-settings/settings#background_pool_size) -* [background_merges_mutations_concurrency_ratio](/reference/settings/server-settings/settings#background_merges_mutations_concurrency_ratio). +should be less than the value of the [background_pool_size](/core/reference/settings/server-settings/settings#background_pool_size) +* [background_merges_mutations_concurrency_ratio](/core/reference/settings/server-settings/settings#background_merges_mutations_concurrency_ratio). Otherwise, ClickHouse will throw an exception. ## number_of_free_entries_in_pool_to_execute_optimize_entire_partition {#number_of_free_entries_in_pool_to_execute_optimize_entire_partition} @@ -1771,8 +1771,8 @@ Possible values: The value of the `number_of_free_entries_in_pool_to_execute_optimize_entire_partition` setting should be less than the value of the -[background_pool_size](/reference/settings/server-settings/settings#background_pool_size) -* [background_merges_mutations_concurrency_ratio](/reference/settings/server-settings/settings#background_merges_mutations_concurrency_ratio). +[background_pool_size](/core/reference/settings/server-settings/settings#background_pool_size) +* [background_merges_mutations_concurrency_ratio](/core/reference/settings/server-settings/settings#background_merges_mutations_concurrency_ratio). Otherwise, ClickHouse throws an exception. ## number_of_free_entries_in_pool_to_lower_max_size_of_merge {#number_of_free_entries_in_pool_to_lower_max_size_of_merge} @@ -1899,7 +1899,7 @@ compressability of the newly inserted table part. Only has an effect for ordinary MergeTree-engine tables. Does nothing for specialized MergeTree engine tables (e.g. CollapsingMergeTree). -MergeTree tables are (optionally) compressed using [compression codecs](/reference/statements/create/table#column_compression_codec). +MergeTree tables are (optionally) compressed using [compression codecs](/core/reference/statements/create/table#column_compression_codec). Generic compression codecs such as LZ4 and ZSTD achieve maximum compression rates if the data exposes patterns. Long runs of the same value typically compress very well. @@ -2010,7 +2010,7 @@ Possible values: - Any positive integer. To achieve maximum performance of `SELECT` queries, it is necessary to -minimize the number of parts processed, see [Merge Tree](/resources/contribute/architecture#merge-tree). +minimize the number of parts processed, see [Merge Tree](/resources/develop-contribute/introduction/architecture#merge-tree). Prior to version 23.6 this setting was set to 300. You can set a higher different value, it will reduce the probability of the `Too many parts` @@ -2298,7 +2298,7 @@ Possible values: - 0 (disable deduplication) The `Insert` command creates one or more blocks (parts). For -[insert deduplication](/reference/engines/table-engines/mergetree-family/replication), +[insert deduplication](/core/reference/engines/table-engines/mergetree-family/replication), when writing into replicated tables, ClickHouse writes the hash sums of the created parts into ClickHouse Keeper. Hash sums are stored only for the most recent `replicated_deduplication_window` blocks. The oldest hash sums are @@ -2319,8 +2319,8 @@ Possible values: - Any positive integer. - 0 (disable deduplication for async_inserts) -The [Async Insert](/reference/settings/session-settings#async_insert) command will -be cached in one or more blocks (parts). For [insert deduplication](/reference/engines/table-engines/mergetree-family/replication), +The [Async Insert](/core/reference/settings/session-settings#async_insert) command will +be cached in one or more blocks (parts). For [insert deduplication](/core/reference/engines/table-engines/mergetree-family/replication), when writing into replicated tables, ClickHouse writes the hash sums of each insert into ClickHouse Keeper. Hash sums are stored only for the most recent `replicated_deduplication_window_for_async_inserts` blocks. The oldest hash @@ -2916,7 +2916,7 @@ new format. Storage method of the data parts headers in ZooKeeper. If enabled, ZooKeeper -stores less data. For details, see [here](/reference/settings/server-settings/settings#use_minimalistic_part_header_in_zookeeper). +stores less data. For details, see [here](/core/reference/settings/server-settings/settings#use_minimalistic_part_header_in_zookeeper). ## use_primary_key_cache {#use_primary_key_cache} diff --git a/reference/settings/server-settings/_server_settings_outside_source.mdx b/core/reference/settings/server-settings/_server_settings_outside_source.mdx similarity index 92% rename from reference/settings/server-settings/_server_settings_outside_source.mdx rename to core/reference/settings/server-settings/_server_settings_outside_source.mdx index aa83268c..275f6a4e 100644 --- a/reference/settings/server-settings/_server_settings_outside_source.mdx +++ b/core/reference/settings/server-settings/_server_settings_outside_source.mdx @@ -6,7 +6,7 @@ If the setting is not enabled by default on your environment, depending on how C **Enabling** -To manually turn on asynchronous metric logs history collection [`system.asynchronous_metric_log`](/reference/system-tables/asynchronous_metric_log), create `/etc/clickhouse-server/config.d/asynchronous_metric_log.xml` with the following content: +To manually turn on asynchronous metric logs history collection [`system.asynchronous_metric_log`](/core/reference/system-tables/asynchronous_metric_log), create `/etc/clickhouse-server/config.d/asynchronous_metric_log.xml` with the following content: ```xml @@ -43,7 +43,7 @@ This setting should be used with extra caution since forwarded addresses can be ## backups {#backups} -Settings for backups, used when executing the [`BACKUP` and `RESTORE`](/concepts/features/backup-restore/overview) statements. +Settings for backups, used when executing the [`BACKUP` and `RESTORE`](/core/concepts/features/backup-restore/overview) statements. The following settings can be configured by sub-tags: @@ -152,7 +152,7 @@ ClickHouse reloads built-in dictionaries every x seconds. This makes it possible ## compression {#compression} -Data compression settings for [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree)-engine tables. +Data compression settings for [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree)-engine tables. We recommend not changing this if you have just started using ClickHouse. @@ -177,7 +177,7 @@ We recommend not changing this if you have just started using ClickHouse. - `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`, `lz4hc`, `zstd`,`deflate_qpl`. -- `level` – Compression level. See [Codecs](/reference/statements/create/table#general-purpose-codecs). +- `level` – Compression level. See [Codecs](/core/reference/statements/create/table#general-purpose-codecs). You can configure multiple `` sections. @@ -207,7 +207,7 @@ If no conditions are met for a data part, ClickHouse uses the `lz4` compression. ## encryption {#encryption} -Configures a command to obtain a key to be used by [encryption codecs](/reference/statements/create/table#encryption-codecs). Key (or keys) should be written in environment variables or set in the configuration file. +Configures a command to obtain a key to be used by [encryption codecs](/core/reference/statements/create/table#encryption-codecs). Key (or keys) should be written in environment variables or set in the configuration file. Keys can be hex or string with a length equal to 16 bytes. @@ -292,7 +292,7 @@ It is disabled by default. **Enabling** -To manually turn on error history collection [`system.error_log`](/reference/system-tables/error_log), create `/etc/clickhouse-server/config.d/error_log.xml` with the following content: +To manually turn on error history collection [`system.error_log`](/core/reference/system-tables/error_log), create `/etc/clickhouse-server/config.d/error_log.xml` with the following content: ```xml @@ -323,7 +323,7 @@ To disable `error_log` setting, you should create the following file `/etc/click ## custom_settings_prefixes {#custom_settings_prefixes} -List of prefixes used for [custom settings](/concepts/features/configuration/settings/settings-query-level#custom_settings). +List of prefixes used for [custom settings](/core/concepts/features/configuration/settings/settings-query-level#custom_settings). Multiple prefixes should be separated by commas. **Example** @@ -334,7 +334,7 @@ Multiple prefixes should be separated by commas. **See Also** -- [Custom settings](/concepts/features/configuration/settings/settings-query-level#custom_settings) +- [Custom settings](/core/concepts/features/configuration/settings/settings-query-level#custom_settings) ## core_dump {#core_dump} @@ -372,7 +372,7 @@ Path: - The path can contain wildcards \* and ?. See also: -- "[Dictionaries](/reference/statements/create/dictionary)". +- "[Dictionaries](/core/reference/statements/create/dictionary)". **Example** @@ -390,7 +390,7 @@ Path: - The path can contain wildcards \* and ?. See also: -- "[Executable User Defined Functions](/reference/functions/regular-functions/udf#executable-user-defined-functions).". +- "[Executable User Defined Functions](/core/reference/functions/regular-functions/udf#executable-user-defined-functions).". **Example** @@ -409,10 +409,10 @@ Settings: - `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 [system.metrics](/reference/system-tables/metrics) table. -- `events` – Sending deltas data accumulated for the time period from the [system.events](/reference/system-tables/events) table. -- `events_cumulative` – Sending cumulative data from the [system.events](/reference/system-tables/events) table. -- `asynchronous_metrics` – Sending data from the [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) table. +- `metrics` – Sending data from the [system.metrics](/core/reference/system-tables/metrics) table. +- `events` – Sending deltas data accumulated for the time period from the [system.events](/core/reference/system-tables/events) table. +- `events_cumulative` – Sending cumulative data from the [system.events](/core/reference/system-tables/events) table. +- `asynchronous_metrics` – Sending data from the [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) table. You can configure multiple `` clauses. For instance, you can use this for sending different data at different intervals. @@ -436,7 +436,7 @@ You can configure multiple `` clauses. For instance, you can use this Settings for thinning data for Graphite. -For more details, see [GraphiteMergeTree](/reference/engines/table-engines/mergetree-family/graphitemergetree). +For more details, see [GraphiteMergeTree](/core/reference/engines/table-engines/mergetree-family/graphitemergetree). **Example** @@ -606,12 +606,12 @@ Default: ## interserver_http_credentials {#interserver_http_credentials} -A username and a password used to connect to other servers during [replication](/reference/engines/table-engines/mergetree-family/replication). Additionally, the server authenticates other replicas using these credentials. +A username and a password used to connect to other servers during [replication](/core/reference/engines/table-engines/mergetree-family/replication). Additionally, the server authenticates other replicas using these credentials. `interserver_http_credentials` must therefore be the same for all replicas in a cluster. - By default, if `interserver_http_credentials` section is omitted, authentication is not used during replication. -- `interserver_http_credentials` settings do not relate to a ClickHouse client credentials [configuration](/integrations/connectors/data-integrations/drivers-and-interfaces/client#configuration_files). +- `interserver_http_credentials` settings do not relate to a ClickHouse client credentials [configuration](/core/concepts/features/interfaces/client#configuration_files). - These credentials are common for replication via `HTTP` and `HTTPS`. @@ -1058,7 +1058,7 @@ Parameter substitutions for replicated tables. Can be omitted if replicated tables are not used. -For more information, see the section [Creating replicated tables](/reference/engines/table-engines/mergetree-family/replication#creating-replicated-tables). +For more information, see the section [Creating replicated tables](/core/reference/engines/table-engines/mergetree-family/replication#creating-replicated-tables). **Example** @@ -1093,7 +1093,7 @@ Example: ## merge_tree {#merge_tree} -Fine-tuning for tables in the [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree). +Fine-tuning for tables in the [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree). For more information, see the MergeTreeSettings.h header file. @@ -1111,7 +1111,7 @@ It is disabled by default. **Enabling** -To manually turn on metrics history collection [`system.metric_log`](/reference/system-tables/metric_log), create `/etc/clickhouse-server/config.d/metric_log.xml` with the following content: +To manually turn on metrics history collection [`system.metric_log`](/core/reference/system-tables/metric_log), create `/etc/clickhouse-server/config.d/metric_log.xml` with the following content: ```xml @@ -1142,7 +1142,7 @@ To disable `metric_log` setting, you should create the following file `/etc/clic ## replicated_merge_tree {#replicated_merge_tree} -Fine-tuning for tables in the [ReplicatedMergeTree](/reference/engines/table-engines/mergetree-family/mergetree). This setting has a higher priority. +Fine-tuning for tables in the [ReplicatedMergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree). This setting has a higher priority. For more information, see the MergeTreeSettings.h header file. @@ -1156,7 +1156,7 @@ For more information, see the MergeTreeSettings.h header file. ## opentelemetry_span_log {#opentelemetry_span_log} -Settings for the [`opentelemetry_span_log`](/reference/system-tables/opentelemetry_span_log) system table. +Settings for the [`opentelemetry_span_log`](/core/reference/system-tables/opentelemetry_span_log) system table. @@ -1242,9 +1242,9 @@ Keys for server/client settings: ## part_log {#part_log} -Logging events that are associated with [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree). For instance, adding or merging data. You can use the log to simulate merge algorithms and compare their characteristics. You can visualize the merge process. +Logging events that are associated with [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree). For instance, adding or merging data. You can use the log to simulate merge algorithms and compare their characteristics. You can visualize the merge process. -Queries are logged in the [system.part_log](/reference/system-tables/part_log) table, not in a separate file. You can configure the name of this table in the `table` parameter (see below). +Queries are logged in the [system.part_log](/core/reference/system-tables/part_log) table, not in a separate file. You can configure the name of this table in the `table` parameter (see below). @@ -1265,7 +1265,7 @@ Queries are logged in the [system.part_log](/reference/system-tables/part_log) t ## processors_profile_log {#processors_profile_log} -Settings for the [`processors_profile_log`](/reference/system-tables/processors_profile_log) system table. +Settings for the [`processors_profile_log`](/core/reference/system-tables/processors_profile_log) system table. @@ -1292,10 +1292,10 @@ Settings: - `endpoint` – HTTP endpoint for scraping metrics by prometheus server. Start from '/'. - `port` – Port for `endpoint`. -- `metrics` – Expose metrics from the [system.metrics](/reference/system-tables/metrics) table. -- `events` – Expose metrics from the [system.events](/reference/system-tables/events) table. -- `asynchronous_metrics` – Expose current metrics values from the [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) table. -- `errors` - Expose the number of errors by error codes occurred since the last server restart. This information could be obtained from the [system.errors](/reference/system-tables/errors) as well. +- `metrics` – Expose metrics from the [system.metrics](/core/reference/system-tables/metrics) table. +- `events` – Expose metrics from the [system.events](/core/reference/system-tables/events) table. +- `asynchronous_metrics` – Expose current metrics values from the [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) table. +- `errors` - Expose the number of errors by error codes occurred since the last server restart. This information could be obtained from the [system.errors](/core/reference/system-tables/errors) as well. **Example** @@ -1322,9 +1322,9 @@ curl 127.0.0.1:9363/metrics ## query_log {#query_log} -Setting for logging queries received with the [log_queries=1](/reference/settings/session-settings) setting. +Setting for logging queries received with the [log_queries=1](/core/reference/settings/session-settings) setting. -Queries are logged in the [system.query_log](/reference/system-tables/query_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). +Queries are logged in the [system.query_log](/core/reference/system-tables/query_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). @@ -1351,7 +1351,7 @@ It is disabled by default. **Enabling** -To manually turn on metrics history collection [`system.query_metric_log`](/reference/system-tables/query_metric_log), create `/etc/clickhouse-server/config.d/query_metric_log.xml` with the following content: +To manually turn on metrics history collection [`system.query_metric_log`](/core/reference/system-tables/query_metric_log), create `/etc/clickhouse-server/config.d/query_metric_log.xml` with the following content: ```xml @@ -1382,7 +1382,7 @@ To disable `query_metric_log` setting, you should create the following file `/et ## query_cache {#query_cache} -[Query cache](/concepts/features/performance/caches/query-cache) configuration. +[Query cache](/core/concepts/features/performance/caches/query-cache) configuration. The following settings are available: @@ -1411,9 +1411,9 @@ The following settings are available: ## query_thread_log {#query_thread_log} -Setting for logging threads of queries received with the [log_query_threads=1](/reference/settings/session-settings#log_query_threads) setting. +Setting for logging threads of queries received with the [log_query_threads=1](/core/reference/settings/session-settings#log_query_threads) setting. -Queries are logged in the [system.query_thread_log](/reference/system-tables/query_thread_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). +Queries are logged in the [system.query_thread_log](/core/reference/system-tables/query_thread_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). @@ -1436,9 +1436,9 @@ If the table does not exist, ClickHouse will create it. If the structure of the ## query_views_log {#query_views_log} -Setting for logging views (live, materialized etc) dependant of queries received with the [log_query_views=1](/reference/settings/session-settings#log_query_views) setting. +Setting for logging views (live, materialized etc) dependant of queries received with the [log_query_views=1](/core/reference/settings/session-settings#log_query_views) setting. -Queries are logged in the [system.query_views_log](/reference/system-tables/query_views_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). +Queries are logged in the [system.query_views_log](/core/reference/system-tables/query_views_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). @@ -1461,7 +1461,7 @@ If the table does not exist, ClickHouse will create it. If the structure of the ## text_log {#text_log} -Settings for the [text_log](/reference/system-tables/text_log) system table for logging text messages. +Settings for the [text_log](/core/reference/system-tables/text_log) system table for logging text messages. @@ -1492,7 +1492,7 @@ Additionally: ## trace_log {#trace_log} -Settings for the [trace_log](/reference/system-tables/trace_log) system table operation. +Settings for the [trace_log](/core/reference/system-tables/trace_log) system table operation. @@ -1514,7 +1514,7 @@ The default server configuration file `config.xml` contains the following settin ## asynchronous_insert_log {#asynchronous_insert_log} -Settings for the [asynchronous_insert_log](/reference/system-tables/asynchronous_insert_log) system table for logging async inserts. +Settings for the [asynchronous_insert_log](/core/reference/system-tables/asynchronous_insert_log) system table for logging async inserts. @@ -1538,7 +1538,7 @@ Settings for the [asynchronous_insert_log](/reference/system-tables/asynchronous ## crash_log {#crash_log} -Settings for the [crash_log](/reference/system-tables/crash_log) system table operation. +Settings for the [crash_log](/core/reference/system-tables/crash_log) system table operation. The following settings can be configured by sub-tags: @@ -1546,17 +1546,17 @@ The following settings can be configured by sub-tags: |------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|--------------------------------------------------------------------------------------------------------------------| | `buffer_size_rows_flush_threshold` | Threshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background. | `max_size_rows / 2` | | | `database` | Name of the database. | | | -| `engine` | [MergeTree Engine Definition](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) for a system table. | | Cannot be used if `partition_by` or `order_by` defined. If not specified `MergeTree` is selected by default | +| `engine` | [MergeTree Engine Definition](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) for a system table. | | Cannot be used if `partition_by` or `order_by` defined. If not specified `MergeTree` is selected by default | | `flush_interval_milliseconds` | Interval for flushing data from the buffer in memory to the table. | `7500` | | | `flush_on_crash` | Sets whether logs should be dumped to the disk in case of a crash. | `false` | | | `max_size_rows` | Maximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk. | `1024` | | -| `order_by` | [Custom sorting key](/reference/engines/table-engines/mergetree-family/mergetree#order_by) for a system table. Can't be used if `engine` defined. | | If `engine` is specified for system table, `order_by` parameter should be specified directly inside 'engine' | -| `partition_by` | [Custom partitioning key](/reference/engines/table-engines/mergetree-family/custom-partitioning-key) for a system table. | | If `engine` is specified for system table, `partition_by` parameter should be specified directly inside 'engine' | +| `order_by` | [Custom sorting key](/core/reference/engines/table-engines/mergetree-family/mergetree#order_by) for a system table. Can't be used if `engine` defined. | | If `engine` is specified for system table, `order_by` parameter should be specified directly inside 'engine' | +| `partition_by` | [Custom partitioning key](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key) for a system table. | | If `engine` is specified for system table, `partition_by` parameter should be specified directly inside 'engine' | | `reserved_size_rows` | Pre-allocated memory size in lines for the logs. | `1024` | | -| `settings` | [Additional parameters](/reference/engines/table-engines/mergetree-family/mergetree#settings) that control the behavior of the MergeTree (optional). | | If `engine` is specified for system table, `settings` parameter should be specified directly inside 'engine' | +| `settings` | [Additional parameters](/core/reference/engines/table-engines/mergetree-family/mergetree#settings) that control the behavior of the MergeTree (optional). | | If `engine` is specified for system table, `settings` parameter should be specified directly inside 'engine' | | `storage_policy` | Name of the storage policy to use for the table (optional). | | If `engine` is specified for system table, `storage_policy` parameter should be specified directly inside 'engine' | | `table` | Name of the system table. | | | -| `ttl` | Specifies the table [TTL](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). | | If `engine` is specified for system table, `ttl` parameter should be specified directly inside 'engine' | +| `ttl` | Specifies the table [TTL](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). | | If `engine` is specified for system table, `ttl` parameter should be specified directly inside 'engine' | The default server configuration file `config.xml` contains the following settings section: @@ -1594,7 +1594,7 @@ Example: ## backup_log {#backup_log} -Settings for the [backup_log](/reference/system-tables/backup_log) system table for logging `BACKUP` and `RESTORE` operations. +Settings for the [backup_log](/core/reference/system-tables/backup_log) system table for logging `BACKUP` and `RESTORE` operations. @@ -1618,7 +1618,7 @@ Settings for the [backup_log](/reference/system-tables/backup_log) system table ## blob_storage_log {#blob_storage_log} -Settings for the [`blob_storage_log`](/reference/system-tables/blob_storage_log) system table. +Settings for the [`blob_storage_log`](/core/reference/system-tables/blob_storage_log) system table. @@ -1637,7 +1637,7 @@ Example: ## query_masking_rules {#query_masking_rules} Regexp-based rules, which will be applied to queries as well as all log messages before storing them in server logs, -[`system.query_log`](/reference/system-tables/query_log), [`system.text_log`](/reference/system-tables/text_log), [`system.processes`](/reference/system-tables/processes) tables, and in logs sent to the client. That allows preventing +[`system.query_log`](/core/reference/system-tables/query_log), [`system.text_log`](/core/reference/system-tables/text_log), [`system.processes`](/core/reference/system-tables/processes) tables, and in logs sent to the client. That allows preventing sensitive data leakage from SQL queries such as names, emails, personal identifiers or credit card numbers to logs. **Example** @@ -1662,14 +1662,14 @@ sensitive data leakage from SQL queries such as names, emails, personal identifi The masking rules are applied to the whole query (to prevent leaks of sensitive data from malformed / non-parseable queries). -The [`system.events`](/reference/system-tables/events) table has counter `QueryMaskingRulesMatch` which has an overall number of query masking rules matches. +The [`system.events`](/core/reference/system-tables/events) table has counter `QueryMaskingRulesMatch` which has an overall number of query masking rules matches. For distributed queries each server has to be configured separately, otherwise, subqueries passed to other nodes will be stored without masking. ## remote_servers {#remote_servers} -Configuration of clusters used by the [Distributed](/reference/engines/table-engines/special/distributed) table engine and by the `cluster` table function. +Configuration of clusters used by the [Distributed](/core/reference/engines/table-engines/special/distributed) table engine and by the `cluster` table function. **Example** @@ -1677,13 +1677,13 @@ Configuration of clusters used by the [Distributed](/reference/engines/table-eng ``` -For the value of the `incl` attribute, see the section "[Configuration files](/concepts/features/configuration/server-config/configuration-files)". +For the value of the `incl` attribute, see the section "[Configuration files](/core/concepts/features/configuration/server-config/configuration-files)". **See Also** -- [skip_unavailable_shards](/reference/settings/session-settings#skip_unavailable_shards) -- [Cluster Discovery](/guides/oss/deployment-and-scaling/cluster-discovery) -- [Replicated database engine](/reference/engines/database-engines/replicated) +- [skip_unavailable_shards](/core/reference/settings/session-settings#skip_unavailable_shards) +- [Cluster Discovery](/core/guides/oss/deployment-and-scaling/cluster-discovery) +- [Replicated database engine](/core/reference/engines/database-engines/replicated) ## remote_url_allow_hosts {#remote_url_allow_hosts} @@ -1720,7 +1720,7 @@ The time zone is necessary for conversions between String and DateTime formats w **See also** -- [session_timezone](/reference/settings/session-settings#session_timezone) +- [session_timezone](/core/reference/settings/session-settings#session_timezone) ## tcp_port {#tcp_port} @@ -1794,7 +1794,7 @@ Example: ## user_defined_path {#user_defined_path} -The directory with user defined files. Used for SQL user defined functions [SQL User Defined Functions](/reference/functions/regular-functions/udf). +The directory with user defined files. Used for SQL user defined functions [SQL User Defined Functions](/core/reference/functions/regular-functions/udf). **Example** @@ -1898,7 +1898,7 @@ The following settings can be configured by sub-tags: | `identity` (optional) | User and password required by ZooKeeper to access requested znodes. | | `use_compression` (optional) | Enables compression in Keeper protocol if set to true. | | `use_xid_64` (optional) | Enables 64-bit transaction IDs. Set to `true` to enable extended transaction ID format. Default: `false`. | -| `pass_opentelemetry_tracing_context` (optional) | Enables propagation of OpenTelemetry tracing context to Keeper requests. When enabled, tracing spans will be created for Keeper operations, allowing distributed tracing across ClickHouse and Keeper. See [Tracing ClickHouse Keeper Requests](/guides/oss/deployment-and-scaling/monitoring/opentelemetry#tracing-clickhouse-keeper-requests) for more details. Default: `false`. | +| `pass_opentelemetry_tracing_context` (optional) | Enables propagation of OpenTelemetry tracing context to Keeper requests. When enabled, tracing spans will be created for Keeper operations, allowing distributed tracing across ClickHouse and Keeper. See [Tracing ClickHouse Keeper Requests](/core/guides/oss/deployment-and-scaling/monitoring/opentelemetry#tracing-clickhouse-keeper-requests) for more details. Default: `false`. | There is also the `zookeeper_load_balancing` setting (optional) which lets you select the algorithm for ZooKeeper node selection: @@ -1940,13 +1940,13 @@ There is also the `zookeeper_load_balancing` setting (optional) which lets you s **See Also** -- [Replication](/reference/engines/table-engines/mergetree-family/replication) +- [Replication](/core/reference/engines/table-engines/mergetree-family/replication) - [ZooKeeper Programmer's Guide](http://zookeeper.apache.org/doc/current/zookeeperProgrammers.html) -- [Optional secured communication between ClickHouse and Zookeeper](/guides/oss/deployment-and-scaling/keeper/ssl-zookeeper) +- [Optional secured communication between ClickHouse and Zookeeper](/core/guides/oss/deployment-and-scaling/keeper/ssl-zookeeper) ## use_minimalistic_part_header_in_zookeeper {#use_minimalistic_part_header_in_zookeeper} -Storage method for data part headers in ZooKeeper. This setting only applies to the [`MergeTree`](/reference/engines/table-engines/mergetree-family) family. It can be specified: +Storage method for data part headers in ZooKeeper. This setting only applies to the [`MergeTree`](/core/reference/engines/table-engines/mergetree-family) family. It can be specified: **Globally in the [merge_tree](#merge_tree) section of the `config.xml` file** @@ -1954,14 +1954,14 @@ ClickHouse uses the setting for all the tables on the server. You can change the **For each table** -When creating a table, specify the corresponding [engine setting](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table). The behaviour of an existing table with this setting does not change, even if the global setting changes. +When creating a table, specify the corresponding [engine setting](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table). The behaviour of an existing table with this setting does not change, even if the global setting changes. **Possible values** - `0` — Functionality is turned off. - `1` — Functionality is turned on. -If [`use_minimalistic_part_header_in_zookeeper = 1`](#use_minimalistic_part_header_in_zookeeper), then [replicated](/reference/engines/table-engines/mergetree-family/replication) tables store the headers of the data parts compactly using a single `znode`. If the table contains many columns, this storage method significantly reduces the volume of the data stored in Zookeeper. +If [`use_minimalistic_part_header_in_zookeeper = 1`](#use_minimalistic_part_header_in_zookeeper), then [replicated](/core/reference/engines/table-engines/mergetree-family/replication) tables store the headers of the data parts compactly using a single `znode`. If the table contains many columns, this storage method significantly reduces the volume of the data stored in Zookeeper. After applying `use_minimalistic_part_header_in_zookeeper = 1`, you can't downgrade the ClickHouse server to a version that does not support this setting. Be careful when upgrading ClickHouse on servers in a cluster. Don't upgrade all the servers at once. It is safer to test new versions of ClickHouse in a test environment, or on just a few servers of a cluster. @@ -1971,8 +1971,8 @@ Data part headers already stored with this setting can't be restored to their pr ## distributed_ddl {#distributed_ddl} -Manage executing [distributed ddl queries](/reference/statements/distributed-ddl) (`CREATE`, `DROP`, `ALTER`, `RENAME`) on cluster. -Works only if [ZooKeeper](/reference/settings/server-settings/settings#zookeeper) is enabled. +Manage executing [distributed ddl queries](/core/reference/statements/distributed-ddl) (`CREATE`, `DROP`, `ALTER`, `RENAME`) on cluster. +Works only if [ZooKeeper](/core/reference/settings/server-settings/settings#zookeeper) is enabled. The configurable settings within `` include: @@ -2019,7 +2019,7 @@ Path to a folder where a ClickHouse server stores user and role configurations c **See also** -- [Access Control and Account Management](/concepts/features/security/access-rights#access-control-usage) +- [Access Control and Account Management](/core/concepts/features/security/access-rights#access-control-usage) ## allow_plaintext_password {#allow_plaintext_password} @@ -2074,7 +2074,7 @@ Section of the configuration file that contains settings: - Path to folder where users created by SQL commands are stored. - ZooKeeper node path where users created by SQL commands are stored and replicated. -If this section is specified, the path from [users_config](/reference/settings/server-settings/settings#users_config) and [access_control_path](/reference/settings/server-settings/settings#access_control_path) won't be used. +If this section is specified, the path from [users_config](/core/reference/settings/server-settings/settings#users_config) and [access_control_path](/core/reference/settings/server-settings/settings#access_control_path) won't be used. The `user_directories` section can contain any number of items, the order of the items means their precedence (the higher the item the higher the precedence). @@ -2138,7 +2138,7 @@ For example: ``` See also: -- function [`cutToFirstSignificantSubdomainCustom`](/reference/functions/regular-functions/url-functions#cutToFirstSignificantSubdomainCustom) and variations thereof, +- function [`cutToFirstSignificantSubdomainCustom`](/core/reference/functions/regular-functions/url-functions#cutToFirstSignificantSubdomainCustom) and variations thereof, which accepts a custom TLD list name, returning the part of the domain that includes top-level subdomains up to the first significant subdomain. ## proxy {#proxy} @@ -2323,7 +2323,7 @@ The directory used as a storage for all `CREATE WORKLOAD` and `CREATE RESOURCE` ``` **See Also** -- [Workload Hierarchy](/concepts/features/configuration/server-config/workload-scheduling#workloads) +- [Workload Hierarchy](/core/concepts/features/configuration/server-config/workload-scheduling#workloads) - [workload_zookeeper_path](#workload_zookeeper_path) ## workload_zookeeper_path {#workload_zookeeper_path} @@ -2337,12 +2337,12 @@ The path to a ZooKeeper node, which is used as a storage for all `CREATE WORKLOA ``` **See Also** -- [Workload Hierarchy](/concepts/features/configuration/server-config/workload-scheduling#workloads) +- [Workload Hierarchy](/core/concepts/features/configuration/server-config/workload-scheduling#workloads) - [workload_path](#workload_path) ## zookeeper_log {#zookeeper_log} -Settings for the [`zookeeper_log`](/reference/system-tables/zookeeper_log) system table. +Settings for the [`zookeeper_log`](/core/reference/system-tables/zookeeper_log) system table. The following settings can be configured by sub-tags: diff --git a/reference/settings/server-settings/_snippets/_system-log-parameters.mdx b/core/reference/settings/server-settings/_snippets/_system-log-parameters.mdx similarity index 75% rename from reference/settings/server-settings/_snippets/_system-log-parameters.mdx rename to core/reference/settings/server-settings/_snippets/_system-log-parameters.mdx index 21ed89ed..8dd281a1 100644 --- a/reference/settings/server-settings/_snippets/_system-log-parameters.mdx +++ b/core/reference/settings/server-settings/_snippets/_system-log-parameters.mdx @@ -4,12 +4,12 @@ The following settings can be configured by sub-tags: |------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|--------------------------------------------------------------------------------------------------------------------| | `database` | Name of the database. | | | | `table` | Name of the system table. | | | -| `engine` | [MergeTree Engine Definition](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) for a system table. | | Cannot be used if `partition_by` or `order_by` defined. If not specified `MergeTree` is selected by default | -| `partition_by` | [Custom partitioning key](/reference/engines/table-engines/mergetree-family/custom-partitioning-key) for a system table. | | If `engine` is specified for system table, `partition_by` parameter should be specified directly inside 'engine' | -| `ttl` | Specifies the table [TTL](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). | | If `engine` is specified for system table, `ttl` parameter should be specified directly inside 'engine' | -| `order_by` | [Custom sorting key](/reference/engines/table-engines/mergetree-family/mergetree#order_by) for a system table. Can't be used if `engine` defined. | | If `engine` is specified for system table, `order_by` parameter should be specified directly inside 'engine' | +| `engine` | [MergeTree Engine Definition](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) for a system table. | | Cannot be used if `partition_by` or `order_by` defined. If not specified `MergeTree` is selected by default | +| `partition_by` | [Custom partitioning key](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key) for a system table. | | If `engine` is specified for system table, `partition_by` parameter should be specified directly inside 'engine' | +| `ttl` | Specifies the table [TTL](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). | | If `engine` is specified for system table, `ttl` parameter should be specified directly inside 'engine' | +| `order_by` | [Custom sorting key](/core/reference/engines/table-engines/mergetree-family/mergetree#order_by) for a system table. Can't be used if `engine` defined. | | If `engine` is specified for system table, `order_by` parameter should be specified directly inside 'engine' | | `storage_policy` | Name of the storage policy to use for the table (optional). | | If `engine` is specified for system table, `storage_policy` parameter should be specified directly inside 'engine' | -| `settings` | [Additional parameters](/reference/engines/table-engines/mergetree-family/mergetree#settings) that control the behavior of the MergeTree (optional). | | If `engine` is specified for system table, `settings` parameter should be specified directly inside 'engine' | +| `settings` | [Additional parameters](/core/reference/engines/table-engines/mergetree-family/mergetree#settings) that control the behavior of the MergeTree (optional). | | If `engine` is specified for system table, `settings` parameter should be specified directly inside 'engine' | | `flush_interval_milliseconds` | Interval for flushing data from the buffer in memory to the table. | `7500` | | | `max_size_rows` | Maximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk. | `1048576` | | | `reserved_size_rows` | Pre-allocated memory size in lines for the logs. | `8192` | | diff --git a/reference/settings/server-settings/settings.mdx b/core/reference/settings/server-settings/settings.mdx similarity index 93% rename from reference/settings/server-settings/settings.mdx rename to core/reference/settings/server-settings/settings.mdx index 92e00836..d55742e9 100644 --- a/reference/settings/server-settings/settings.mdx +++ b/core/reference/settings/server-settings/settings.mdx @@ -14,10 +14,10 @@ import SettingsInfoBlock from "/snippets/components/SettingsInfoBlock/SettingsIn This section contains descriptions of server settings. These are settings which cannot be changed at the session or query level. -For more information on configuration files in ClickHouse see [""Configuration Files""](/concepts/features/configuration/server-config/configuration-files). +For more information on configuration files in ClickHouse see [""Configuration Files""](/core/concepts/features/configuration/server-config/configuration-files). -Other settings are described in the ""[Settings](/concepts/features/configuration/settings/overview)"" section. -Before studying the settings, we recommend reading the [Configuration files](/concepts/features/configuration/server-config/configuration-files) +Other settings are described in the ""[Settings](/core/concepts/features/configuration/settings/overview)"" section. +Before studying the settings, we recommend reading the [Configuration files](/core/concepts/features/configuration/server-config/configuration-files) section and note the use of substitutions (the `incl` and `optional` attributes). ## abort_on_logical_error {#abort_on_logical_error} @@ -60,7 +60,7 @@ Path to a folder where a ClickHouse server stores user and role configurations c **See also** -- [Access Control and Account Management](/concepts/features/security/access-rights#access-control-usage) +- [Access Control and Account Management](/core/concepts/features/security/access-rights#access-control-usage) ## aggregate_function_group_array_action_when_limit_is_reached {#aggregate_function_group_array_action_when_limit_is_reached} @@ -171,7 +171,7 @@ Asynchronous loading of system tables. Helpful if there is a high amount of log ## asynchronous_insert_log {#asynchronous_insert_log} -Settings for the [asynchronous_insert_log](/reference/system-tables/asynchronous_insert_log) system table for logging async inserts. +Settings for the [asynchronous_insert_log](/core/reference/system-tables/asynchronous_insert_log) system table for logging async inserts. @@ -201,7 +201,7 @@ If the setting is not enabled by default on your environment, depending on how C **Enabling** -To manually turn on asynchronous metric logs history collection [`system.asynchronous_metric_log`](/reference/system-tables/asynchronous_metric_log), create `/etc/clickhouse-server/config.d/asynchronous_metric_log.xml` with the following content: +To manually turn on asynchronous metric logs history collection [`system.asynchronous_metric_log`](/core/reference/system-tables/asynchronous_metric_log), create `/etc/clickhouse-server/config.d/asynchronous_metric_log.xml` with the following content: ```xml @@ -250,11 +250,11 @@ This setting should be used with extra caution since forwarded addresses can be ## background_buffer_flush_schedule_pool_size {#background_buffer_flush_schedule_pool_size} -The maximum number of threads that will be used for performing flush operations for [Buffer-engine tables](/reference/engines/table-engines/special/buffer) in the background. +The maximum number of threads that will be used for performing flush operations for [Buffer-engine tables](/core/reference/engines/table-engines/special/buffer) in the background. ## background_common_pool_size {#background_common_pool_size} -The maximum number of threads that will be used for performing a variety of operations (mostly garbage collection) for [*MergeTree-engine](/reference/engines/table-engines/mergetree-family) tables in the background. +The maximum number of threads that will be used for performing a variety of operations (mostly garbage collection) for [*MergeTree-engine](/core/reference/engines/table-engines/mergetree-family) tables in the background. ## background_distributed_schedule_pool_size {#background_distributed_schedule_pool_size} @@ -262,19 +262,19 @@ This setting should be used with extra caution since forwarded addresses can be ## background_fetches_pool_size {#background_fetches_pool_size} -The maximum number of threads that will be used for fetching data parts from another replica for [*MergeTree-engine](/reference/engines/table-engines/mergetree-family) tables in the background. +The maximum number of threads that will be used for fetching data parts from another replica for [*MergeTree-engine](/core/reference/engines/table-engines/mergetree-family) tables in the background. ## background_merges_mutations_concurrency_ratio {#background_merges_mutations_concurrency_ratio} Sets a ratio between the number of threads and the number of background merges and mutations that can be executed concurrently. -For example, if the ratio equals to 2 and [`background_pool_size`](/reference/settings/server-settings/settings#background_pool_size) is set to 16 then ClickHouse can execute 32 background merges concurrently. This is possible, because background operations could be suspended and postponed. This is needed to give small merges more execution priority. +For example, if the ratio equals to 2 and [`background_pool_size`](/core/reference/settings/server-settings/settings#background_pool_size) is set to 16 then ClickHouse can execute 32 background merges concurrently. This is possible, because background operations could be suspended and postponed. This is needed to give small merges more execution priority. You can only increase this ratio at runtime. To lower it you have to restart the server. -As with the [`background_pool_size`](/reference/settings/server-settings/settings#background_pool_size) setting [`background_merges_mutations_concurrency_ratio`](/reference/settings/server-settings/settings#background_merges_mutations_concurrency_ratio) could be applied from the `default` profile for backward compatibility. +As with the [`background_pool_size`](/core/reference/settings/server-settings/settings#background_pool_size) setting [`background_merges_mutations_concurrency_ratio`](/core/reference/settings/server-settings/settings#background_merges_mutations_concurrency_ratio) could be applied from the `default` profile for backward compatibility. ## background_merges_mutations_scheduling_policy {#background_merges_mutations_scheduling_policy} @@ -315,9 +315,9 @@ Smaller pool size utilizes less CPU and disk resources, but background processes Before changing it, please also take a look at related MergeTree settings, such as: -- [`number_of_free_entries_in_pool_to_lower_max_size_of_merge`](/reference/settings/merge-tree-settings#number_of_free_entries_in_pool_to_lower_max_size_of_merge). -- [`number_of_free_entries_in_pool_to_execute_mutation`](/reference/settings/merge-tree-settings#number_of_free_entries_in_pool_to_execute_mutation). -- [`number_of_free_entries_in_pool_to_execute_optimize_entire_partition`](/reference/settings/merge-tree-settings#number_of_free_entries_in_pool_to_execute_optimize_entire_partition) +- [`number_of_free_entries_in_pool_to_lower_max_size_of_merge`](/core/reference/settings/merge-tree-settings#number_of_free_entries_in_pool_to_lower_max_size_of_merge). +- [`number_of_free_entries_in_pool_to_execute_mutation`](/core/reference/settings/merge-tree-settings#number_of_free_entries_in_pool_to_execute_mutation). +- [`number_of_free_entries_in_pool_to_execute_optimize_entire_partition`](/core/reference/settings/merge-tree-settings#number_of_free_entries_in_pool_to_execute_optimize_entire_partition) **Example** @@ -354,7 +354,7 @@ Contains information about all background tasks that are executed via various ba ## backup_log {#backup_log} -Settings for the [backup_log](/reference/system-tables/backup_log) system table for logging `BACKUP` and `RESTORE` operations. +Settings for the [backup_log](/core/reference/system-tables/backup_log) system table for logging `BACKUP` and `RESTORE` operations. @@ -382,7 +382,7 @@ Settings for the [backup_log](/reference/system-tables/backup_log) system table ## backups {#backups} -Settings for backups, used when executing the [`BACKUP` and `RESTORE`](/concepts/features/backup-restore/overview) statements. +Settings for backups, used when executing the [`BACKUP` and `RESTORE`](/core/concepts/features/backup-restore/overview) statements. The following settings can be configured by sub-tags: @@ -461,7 +461,7 @@ bcrypt's computational overhead at higher work factors. ## blob_storage_log {#blob_storage_log} -Settings for the [`blob_storage_log`](/reference/system-tables/blob_storage_log) system table. +Settings for the [`blob_storage_log`](/core/reference/system-tables/blob_storage_log) system table. @@ -506,15 +506,15 @@ To disable the cgroup observer, set this value to `0`. ## compiled_expression_cache_elements_size {#compiled_expression_cache_elements_size} -Sets the cache size (in elements) for [compiled expressions](/concepts/features/performance/caches/caches). +Sets the cache size (in elements) for [compiled expressions](/core/concepts/features/performance/caches/caches). ## compiled_expression_cache_size {#compiled_expression_cache_size} -Sets the cache size (in bytes) for [compiled expressions](/concepts/features/performance/caches/caches). +Sets the cache size (in bytes) for [compiled expressions](/core/concepts/features/performance/caches/caches). ## compression {#compression} -Data compression settings for [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree)-engine tables. +Data compression settings for [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree)-engine tables. We recommend not changing this if you have just started using ClickHouse. @@ -539,7 +539,7 @@ We recommend not changing this if you have just started using ClickHouse. - `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`, `lz4hc`, `zstd`,`deflate_qpl`. -- `level` – Compression level. See [Codecs](/reference/statements/create/table#general-purpose-codecs). +- `level` – Compression level. See [Codecs](/core/reference/statements/create/table#general-purpose-codecs). You can configure multiple `` sections. @@ -631,7 +631,7 @@ Defines how workload scheduling for CPU resources (MASTER THREAD and WORKER THRE ``` **See Also** -- [Workload Scheduling](/concepts/features/configuration/server-config/workload-scheduling) +- [Workload Scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) ## cpu_slot_preemption_timeout_ms {#cpu_slot_preemption_timeout_ms} @@ -645,7 +645,7 @@ It defines how many milliseconds could a worker thread wait during preemption, i ``` **See Also** -- [Workload Scheduling](/concepts/features/configuration/server-config/workload-scheduling) +- [Workload Scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) ## cpu_slot_quantum_ns {#cpu_slot_quantum_ns} @@ -659,11 +659,11 @@ It defines how many CPU nanoseconds a thread is allowed to consume after acquire ``` **See Also** -- [Workload Scheduling](/concepts/features/configuration/server-config/workload-scheduling) +- [Workload Scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) ## crash_log {#crash_log} -Settings for the [crash_log](/reference/system-tables/crash_log) system table operation. +Settings for the [crash_log](/core/reference/system-tables/crash_log) system table operation. The following settings can be configured by sub-tags: @@ -671,17 +671,17 @@ The following settings can be configured by sub-tags: |------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|--------------------------------------------------------------------------------------------------------------------| | `buffer_size_rows_flush_threshold` | Threshold for amount of lines. If the threshold is reached, flushing logs to the disk is launched in background. | `max_size_rows / 2` | | | `database` | Name of the database. | | | -| `engine` | [MergeTree Engine Definition](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) for a system table. | | Cannot be used if `partition_by` or `order_by` defined. If not specified `MergeTree` is selected by default | +| `engine` | [MergeTree Engine Definition](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) for a system table. | | Cannot be used if `partition_by` or `order_by` defined. If not specified `MergeTree` is selected by default | | `flush_interval_milliseconds` | Interval for flushing data from the buffer in memory to the table. | `7500` | | | `flush_on_crash` | Sets whether logs should be dumped to the disk in case of a crash. | `false` | | | `max_size_rows` | Maximal size in lines for the logs. When the amount of non-flushed logs reaches the max_size, logs are dumped to the disk. | `1024` | | -| `order_by` | [Custom sorting key](/reference/engines/table-engines/mergetree-family/mergetree#order_by) for a system table. Can't be used if `engine` defined. | | If `engine` is specified for system table, `order_by` parameter should be specified directly inside 'engine' | -| `partition_by` | [Custom partitioning key](/reference/engines/table-engines/mergetree-family/custom-partitioning-key) for a system table. | | If `engine` is specified for system table, `partition_by` parameter should be specified directly inside 'engine' | +| `order_by` | [Custom sorting key](/core/reference/engines/table-engines/mergetree-family/mergetree#order_by) for a system table. Can't be used if `engine` defined. | | If `engine` is specified for system table, `order_by` parameter should be specified directly inside 'engine' | +| `partition_by` | [Custom partitioning key](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key) for a system table. | | If `engine` is specified for system table, `partition_by` parameter should be specified directly inside 'engine' | | `reserved_size_rows` | Pre-allocated memory size in lines for the logs. | `1024` | | -| `settings` | [Additional parameters](/reference/engines/table-engines/mergetree-family/mergetree#settings) that control the behavior of the MergeTree (optional). | | If `engine` is specified for system table, `settings` parameter should be specified directly inside 'engine' | +| `settings` | [Additional parameters](/core/reference/engines/table-engines/mergetree-family/mergetree#settings) that control the behavior of the MergeTree (optional). | | If `engine` is specified for system table, `settings` parameter should be specified directly inside 'engine' | | `storage_policy` | Name of the storage policy to use for the table (optional). | | If `engine` is specified for system table, `storage_policy` parameter should be specified directly inside 'engine' | | `table` | Name of the system table. | | | -| `ttl` | Specifies the table [TTL](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). | | If `engine` is specified for system table, `ttl` parameter should be specified directly inside 'engine' | +| `ttl` | Specifies the table [TTL](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). | | If `engine` is specified for system table, `ttl` parameter should be specified directly inside 'engine' | The default server configuration file `config.xml` contains the following settings section: @@ -719,7 +719,7 @@ Example: ## custom_settings_prefixes {#custom_settings_prefixes} -List of prefixes used for [custom settings](/concepts/features/configuration/settings/settings-query-level#custom_settings). +List of prefixes used for [custom settings](/core/concepts/features/configuration/settings/settings-query-level#custom_settings). Multiple prefixes should be separated by commas. **Example** @@ -730,12 +730,12 @@ Multiple prefixes should be separated by commas. **See Also** -- [Custom settings](/concepts/features/configuration/settings/settings-query-level#custom_settings) +- [Custom settings](/core/concepts/features/configuration/settings/settings-query-level#custom_settings) ## database_atomic_delay_before_drop_table_sec {#database_atomic_delay_before_drop_table_sec} -The delay during which a dropped table can be restored using the [`UNDROP`](/reference/statements/undrop) statement. If `DROP TABLE` ran with a `SYNC` modifier, the setting is ignored. +The delay during which a dropped table can be restored using the [`UNDROP`](/core/reference/statements/undrop) statement. If `DROP TABLE` ran with a `SYNC` modifier, the setting is ignored. The default for this setting is `480` (8 minutes). ## database_catalog_drop_error_cooldown_sec {#database_catalog_drop_error_cooldown_sec} @@ -761,7 +761,7 @@ A value of `0` means "never". The default value corresponds to 1 day. Parameter of a task that cleans up garbage from `store/` directory. If some subdirectory is not used by clickhouse-server and this directory was not modified for last -[`database_catalog_unused_dir_hide_timeout_sec`](/reference/settings/server-settings/settings#database_catalog_unused_dir_hide_timeout_sec) seconds, the task will "hide" this directory by +[`database_catalog_unused_dir_hide_timeout_sec`](/core/reference/settings/server-settings/settings#database_catalog_unused_dir_hide_timeout_sec) seconds, the task will "hide" this directory by removing all access rights. It also works for directories that clickhouse-server does not expect to see inside `store/`. @@ -774,7 +774,7 @@ A value of `0` means "immediately". Parameter of a task that cleans up garbage from `store/` directory. If some subdirectory is not used by clickhouse-server and it was previously "hidden" -(see [database_catalog_unused_dir_hide_timeout_sec](/reference/settings/server-settings/settings#database_catalog_unused_dir_hide_timeout_sec)) +(see [database_catalog_unused_dir_hide_timeout_sec](/core/reference/settings/server-settings/settings#database_catalog_unused_dir_hide_timeout_sec)) and this directory was not modified for last [`database_catalog_unused_dir_rm_timeout_sec`]/operations/server-configuration-parameters/settings#database_catalog_unused_dir_rm_timeout_sec) seconds, the task will remove this directory. It also works for directories that clickhouse-server does not @@ -877,7 +877,7 @@ Path: - The path can contain wildcards \* and ?. See also: -- "[Dictionaries](/reference/statements/create/dictionary)". +- "[Dictionaries](/core/reference/statements/create/dictionary)". **Example** @@ -895,7 +895,7 @@ Lazy loading of dictionaries. The server will wait at startup until all the dictionaries finish their loading before receiving any connections -(exception: if [`wait_dictionaries_load_at_startup`](/reference/settings/server-settings/settings#wait_dictionaries_load_at_startup) is set to `false`). +(exception: if [`wait_dictionaries_load_at_startup`](/core/reference/settings/server-settings/settings#wait_dictionaries_load_at_startup) is set to `false`). **Example** @@ -992,9 +992,9 @@ When enabled, the server waits for background blob removal to complete before ac Enables or disables showing secrets in `SHOW` and `SELECT` queries for tables, databases, table functions, and dictionaries. User wishing to see secrets must also have -[`format_display_secrets_in_show_and_select` format setting](/reference/settings/formats#format_display_secrets_in_show_and_select) +[`format_display_secrets_in_show_and_select` format setting](/core/reference/settings/formats#format_display_secrets_in_show_and_select) turned on and a -[`displaySecretsInShowAndSelect`](/reference/statements/grant#displaysecretsinshowandselect) privilege. +[`displaySecretsInShowAndSelect`](/core/reference/statements/grant#displaysecretsinshowandselect) privilege. Possible values: @@ -1011,8 +1011,8 @@ Possible values: ## distributed_ddl {#distributed_ddl} -Manage executing [distributed ddl queries](/reference/statements/distributed-ddl) (`CREATE`, `DROP`, `ALTER`, `RENAME`) on cluster. -Works only if [ZooKeeper](/reference/settings/server-settings/settings#zookeeper) is enabled. +Manage executing [distributed ddl queries](/core/reference/statements/distributed-ddl) (`CREATE`, `DROP`, `ALTER`, `RENAME`) on cluster. +Works only if [ZooKeeper](/core/reference/settings/server-settings/settings#zookeeper) is enabled. The configurable settings within `` include: @@ -1108,7 +1108,7 @@ Stop further attempts to update a hostname's DNS cache after this number of cons **See also** -- [`SYSTEM DROP DNS CACHE`](/reference/statements/system#drop-dns-cache) +- [`SYSTEM DROP DNS CACHE`](/core/reference/statements/system#drop-dns-cache) ## drop_distributed_cache_pool_size {#drop_distributed_cache_pool_size} @@ -1124,7 +1124,7 @@ Stop further attempts to update a hostname's DNS cache after this number of cons ## encryption {#encryption} -Configures a command to obtain a key to be used by [encryption codecs](/reference/statements/create/table#encryption-codecs). Key (or keys) should be written in environment variables or set in the configuration file. +Configures a command to obtain a key to be used by [encryption codecs](/core/reference/statements/create/table#encryption-codecs). Key (or keys) should be written in environment variables or set in the configuration file. Keys can be hex or string with a length equal to 16 bytes. @@ -1214,7 +1214,7 @@ It is disabled by default. **Enabling** -To manually turn on error history collection [`system.error_log`](/reference/system-tables/error_log), create `/etc/clickhouse-server/config.d/error_log.xml` with the following content: +To manually turn on error history collection [`system.error_log`](/core/reference/system-tables/error_log), create `/etc/clickhouse-server/config.d/error_log.xml` with the following content: ```xml @@ -1265,7 +1265,7 @@ A value of `0` means unlimited. ## format_schema_path {#format_schema_path} -The path to the directory with the schemes for the input data, such as schemas for the [CapnProto](/reference/formats/CapnProto) format. +The path to the directory with the schemes for the input data, such as schemas for the [CapnProto](/core/reference/formats/CapnProto) format. **Example** @@ -1304,10 +1304,10 @@ Settings: - `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 [system.metrics](/reference/system-tables/metrics) table. -- `events` – Sending deltas data accumulated for the time period from the [system.events](/reference/system-tables/events) table. -- `events_cumulative` – Sending cumulative data from the [system.events](/reference/system-tables/events) table. -- `asynchronous_metrics` – Sending data from the [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) table. +- `metrics` – Sending data from the [system.metrics](/core/reference/system-tables/metrics) table. +- `events` – Sending deltas data accumulated for the time period from the [system.events](/core/reference/system-tables/events) table. +- `events_cumulative` – Sending cumulative data from the [system.events](/core/reference/system-tables/events) table. +- `asynchronous_metrics` – Sending data from the [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) table. You can configure multiple `` clauses. For instance, you can use this for sending different data at different intervals. @@ -1331,7 +1331,7 @@ You can configure multiple `` clauses. For instance, you can use this Settings for thinning data for Graphite. -For more details, see [GraphiteMergeTree](/reference/engines/table-engines/mergetree-family/graphitemergetree). +For more details, see [GraphiteMergeTree](/core/reference/engines/table-engines/mergetree-family/graphitemergetree). **Example** @@ -1569,7 +1569,7 @@ This setting is only necessary for the migration period and will become obsolete The path to the file with substitutions. Both XML and YAML formats are supported. -For more information, see the section [Configuration files](/concepts/features/configuration/server-config/configuration-files). +For more information, see the section [Configuration files](/core/concepts/features/configuration/server-config/configuration-files). **Example** @@ -1633,12 +1633,12 @@ The default would be set to `compatible_double_hashes` and then later to `new_un ## interserver_http_credentials {#interserver_http_credentials} -A username and a password used to connect to other servers during [replication](/reference/engines/table-engines/mergetree-family/replication). Additionally, the server authenticates other replicas using these credentials. +A username and a password used to connect to other servers during [replication](/core/reference/engines/table-engines/mergetree-family/replication). Additionally, the server authenticates other replicas using these credentials. `interserver_http_credentials` must therefore be the same for all replicas in a cluster. - By default, if `interserver_http_credentials` section is omitted, authentication is not used during replication. -- `interserver_http_credentials` settings do not relate to a ClickHouse client credentials [configuration](/integrations/connectors/data-integrations/drivers-and-interfaces/client#configuration_files). +- `interserver_http_credentials` settings do not relate to a ClickHouse client credentials [configuration](/core/concepts/features/interfaces/client#configuration_files). - These credentials are common for replication via `HTTP` and `HTTPS`. @@ -1772,7 +1772,7 @@ A value of `0` means unlimited. Enable jemalloc's allocation profiler for all threads. Jemalloc will sample allocations and all deallocations for sampled allocations. Profiles can be flushed using SYSTEM JEMALLOC FLUSH PROFILE which can be used for allocation analysis. Samples can also be stored in system.trace_log using config jemalloc_collect_global_profile_samples_in_trace_log or with query setting jemalloc_collect_profile_samples_in_trace_log. -See [Allocation Profiling](/concepts/features/performance/allocation-profiling) +See [Allocation Profiling](/core/concepts/features/performance/allocation-profiling) ## jemalloc_flush_profile_interval_bytes {#jemalloc_flush_profile_interval_bytes} @@ -2222,7 +2222,7 @@ Parameter substitutions for replicated tables. Can be omitted if replicated tables are not used. -For more information, see the section [Creating replicated tables](/reference/engines/table-engines/mergetree-family/replication#creating-replicated-tables). +For more information, see the section [Creating replicated tables](/core/reference/engines/table-engines/mergetree-family/replication#creating-replicated-tables). **Example** @@ -2241,7 +2241,7 @@ For more information, see the section [Creating replicated tables](/reference/en ## mark_cache_size {#mark_cache_size} -Maximum size of cache for marks (index of [`MergeTree`](/reference/engines/table-engines/mergetree-family) family of tables). +Maximum size of cache for marks (index of [`MergeTree`](/core/reference/engines/table-engines/mergetree-family) family of tables). This setting can be modified at runtime and will take effect immediately. @@ -2305,9 +2305,9 @@ This setting can be modified at runtime and will take effect immediately. Querie Limit on total number of concurrently executed queries. Note that limits on `INSERT` and `SELECT` queries, and on the maximum number of queries for users must also be considered. See also: -- [`max_concurrent_insert_queries`](/reference/settings/server-settings/settings#max_concurrent_insert_queries) -- [`max_concurrent_select_queries`](/reference/settings/server-settings/settings#max_concurrent_select_queries) -- [`max_concurrent_queries_for_all_users`](/reference/settings/session-settings#max_concurrent_queries_for_all_users) +- [`max_concurrent_insert_queries`](/core/reference/settings/server-settings/settings#max_concurrent_insert_queries) +- [`max_concurrent_select_queries`](/core/reference/settings/server-settings/settings#max_concurrent_select_queries) +- [`max_concurrent_queries_for_all_users`](/core/reference/settings/session-settings#max_concurrent_queries_for_all_users) @@ -2506,7 +2506,7 @@ We recommend using this option in macOS since the getrlimit() function returns a Max ratio between OS CPU wait (OSCPUWaitMicroseconds metric) and busy (OSCPUVirtualTimeMicroseconds metric) times to consider dropping connections. Linear interpolation between min and max ratio is used to calculate the probability, the probability is 1 at this point. -See [Controlling behavior on server CPU overload](/concepts/features/configuration/settings/server-overload) for more details. +See [Controlling behavior on server CPU overload](/core/concepts/features/configuration/settings/server-overload) for more details. ## max_outdated_parts_loading_thread_pool_size {#max_outdated_parts_loading_thread_pool_size} @@ -2528,13 +2528,13 @@ If the number of active parts exceeds the specified value, clickhouse server wil Restriction on dropping partitions. -If the size of a [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) table exceeds [`max_partition_size_to_drop`](#max_partition_size_to_drop) (in bytes), you can't drop a partition using a [DROP PARTITION](/reference/statements/alter/partition#drop-partitionpart) query. +If the size of a [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) table exceeds [`max_partition_size_to_drop`](#max_partition_size_to_drop) (in bytes), you can't drop a partition using a [DROP PARTITION](/core/reference/statements/alter/partition#drop-partitionpart) query. This setting does not require a restart of the ClickHouse server to apply. Another way to disable the restriction is to create the `/flags/force_drop_table` file. The value `0` means that you can drop partitions without any restrictions. -This limitation does not restrict drop table and truncate table, see [max_table_size_to_drop](/reference/settings/session-settings#max_table_size_to_drop) +This limitation does not restrict drop table and truncate table, see [max_table_size_to_drop](/core/reference/settings/session-settings#max_table_size_to_drop) **Example** @@ -2710,7 +2710,7 @@ If the number of attached tables exceeds the specified value, clickhouse server Restriction on deleting tables. -If the size of a [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) table exceeds `max_table_size_to_drop` (in bytes), you can't delete it using a [`DROP`](/reference/statements/drop) query or [`TRUNCATE`](/reference/statements/truncate) query. +If the size of a [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) table exceeds `max_table_size_to_drop` (in bytes), you can't delete it using a [`DROP`](/core/reference/statements/drop) query or [`TRUNCATE`](/core/reference/statements/truncate) query. A value of `0` means that you can delete all tables without any restrictions. @@ -2735,13 +2735,13 @@ A value of `0` means unlimited. See also: -- [`max_temporary_data_on_disk_size_for_user`](/reference/settings/session-settings#max_temporary_data_on_disk_size_for_user) -- [`max_temporary_data_on_disk_size_for_query`](/reference/settings/session-settings#max_temporary_data_on_disk_size_for_query) +- [`max_temporary_data_on_disk_size_for_user`](/core/reference/settings/session-settings#max_temporary_data_on_disk_size_for_user) +- [`max_temporary_data_on_disk_size_for_query`](/core/reference/settings/session-settings#max_temporary_data_on_disk_size_for_query) ## max_thread_pool_free_size {#max_thread_pool_free_size} -If the number of **idle** threads in the Global Thread pool is greater than [`max_thread_pool_free_size`](/reference/settings/server-settings/settings#max_thread_pool_free_size), then ClickHouse releases resources occupied by some threads and the pool size is decreased. Threads can be created again if necessary. +If the number of **idle** threads in the Global Thread pool is greater than [`max_thread_pool_free_size`](/core/reference/settings/server-settings/settings#max_thread_pool_free_size), then ClickHouse releases resources occupied by some threads and the pool size is decreased. Threads can be created again if necessary. **Example** @@ -2799,16 +2799,16 @@ If the number of attached views exceeds the specified value, clickhouse server w Limit on total number of concurrently waiting queries. -Execution of a waiting query is blocked while required tables are loading asynchronously (see [`async_load_databases`](/reference/settings/server-settings/settings#async_load_databases). +Execution of a waiting query is blocked while required tables are loading asynchronously (see [`async_load_databases`](/core/reference/settings/server-settings/settings#async_load_databases). Waiting queries are not counted when limits controlled by the following settings are checked: -- [`max_concurrent_queries`](/reference/settings/server-settings/settings#max_concurrent_queries) -- [`max_concurrent_insert_queries`](/reference/settings/server-settings/settings#max_concurrent_insert_queries) -- [`max_concurrent_select_queries`](/reference/settings/server-settings/settings#max_concurrent_select_queries) -- [`max_concurrent_queries_for_user`](/reference/settings/session-settings#max_concurrent_queries_for_user) -- [`max_concurrent_queries_for_all_users`](/reference/settings/session-settings#max_concurrent_queries_for_all_users) +- [`max_concurrent_queries`](/core/reference/settings/server-settings/settings#max_concurrent_queries) +- [`max_concurrent_insert_queries`](/core/reference/settings/server-settings/settings#max_concurrent_insert_queries) +- [`max_concurrent_select_queries`](/core/reference/settings/server-settings/settings#max_concurrent_select_queries) +- [`max_concurrent_queries_for_user`](/core/reference/settings/session-settings#max_concurrent_queries_for_user) +- [`max_concurrent_queries_for_all_users`](/core/reference/settings/session-settings#max_concurrent_queries_for_all_users) This correction is done to avoid hitting these limits just after server startup. @@ -2858,7 +2858,7 @@ The threshold ratio for purging jemalloc relative to the memory available to Cli ## merge_tree {#merge_tree} -Fine-tuning for tables in the [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree). +Fine-tuning for tables in the [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree). For more information, see the MergeTreeSettings.h header file. @@ -2876,7 +2876,7 @@ For more information, see the MergeTreeSettings.h header file. Used to regulate how resources are utilized and shared between merges and other workloads. Specified value is used as `workload` setting value for all background merges. Can be overridden by a merge tree setting. **See Also** -- [Workload Scheduling](/concepts/features/configuration/server-config/workload-scheduling) +- [Workload Scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) ## merges_mutations_memory_usage_soft_limit {#merges_mutations_memory_usage_soft_limit} @@ -2901,8 +2901,8 @@ The default `merges_mutations_memory_usage_soft_limit` value is calculated as `m **See also:** -- [max_memory_usage](/reference/settings/session-settings#max_memory_usage) -- [merges_mutations_memory_usage_soft_limit](/reference/settings/server-settings/settings#merges_mutations_memory_usage_soft_limit) +- [max_memory_usage](/core/reference/settings/session-settings#max_memory_usage) +- [merges_mutations_memory_usage_soft_limit](/core/reference/settings/server-settings/settings#merges_mutations_memory_usage_soft_limit) ## metric_log {#metric_log} @@ -2910,7 +2910,7 @@ It is disabled by default. **Enabling** -To manually turn on metrics history collection [`system.metric_log`](/reference/system-tables/metric_log), create `/etc/clickhouse-server/config.d/metric_log.xml` with the following content: +To manually turn on metrics history collection [`system.metric_log`](/core/reference/system-tables/metric_log), create `/etc/clickhouse-server/config.d/metric_log.xml` with the following content: ```xml @@ -2943,7 +2943,7 @@ To disable `metric_log` setting, you should create the following file `/etc/clic Min ratio between OS CPU wait (OSCPUWaitMicroseconds metric) and busy (OSCPUVirtualTimeMicroseconds metric) times to consider dropping connections. Linear interpolation between min and max ratio is used to calculate the probability, the probability is 0 at this point. -See [Controlling behavior on server CPU overload](/concepts/features/configuration/settings/server-overload) for more details. +See [Controlling behavior on server CPU overload](/core/concepts/features/configuration/settings/server-overload) for more details. ## mlock_executable {#mlock_executable} @@ -2971,8 +2971,8 @@ This setting allows avoiding frequent open/close calls (which are very expensive The amount of data in mapped files can be monitored in the following system tables with the following metrics: -- `MMappedFiles`/`MMappedFileBytes`/`MMapCacheCells` in [`system.metrics`](/reference/system-tables/metrics), [`system.metric_log`](/reference/system-tables/metric_log) -- `CreatedReadBufferMMap`/`CreatedReadBufferMMapFailed`/`MMappedFileCacheHits`/`MMappedFileCacheMisses` in [`system.events`](/reference/system-tables/events), [`system.processes`](/reference/system-tables/processes), [`system.query_log`](/reference/system-tables/query_log), [`system.query_thread_log`](/reference/system-tables/query_thread_log), [`system.query_views_log`](/reference/system-tables/query_views_log) +- `MMappedFiles`/`MMappedFileBytes`/`MMapCacheCells` in [`system.metrics`](/core/reference/system-tables/metrics), [`system.metric_log`](/core/reference/system-tables/metric_log) +- `CreatedReadBufferMMap`/`CreatedReadBufferMMapFailed`/`MMappedFileCacheHits`/`MMappedFileCacheMisses` in [`system.events`](/core/reference/system-tables/events), [`system.processes`](/core/reference/system-tables/processes), [`system.query_log`](/core/reference/system-tables/query_log), [`system.query_thread_log`](/core/reference/system-tables/query_thread_log), [`system.query_views_log`](/core/reference/system-tables/query_views_log) The amount of data in mapped files does not consume memory directly and is not accounted for in query or server memory usage — because this memory can be discarded similar to the OS page cache. The cache is dropped (the files are closed) automatically on the removal of old parts in tables of the MergeTree family, also it can be dropped manually by the `SYSTEM DROP MMAP CACHE` query. @@ -2986,7 +2986,7 @@ This setting can be modified at runtime and will take effect immediately. Used to regulate how resources are utilized and shared between mutations and other workloads. Specified value is used as `workload` setting value for all background mutations. Can be overridden by a merge tree setting. **See Also** -- [Workload Scheduling](/concepts/features/configuration/server-config/workload-scheduling) +- [Workload Scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) ## mysql_port {#mysql_port} @@ -3005,7 +3005,7 @@ Port for communicating with clients over MySQL protocol. ## mysql_require_secure_transport {#mysql_require_secure_transport} -If set to true, secure communication is required with clients over [mysql_port](/reference/settings/server-settings/settings#mysql_port). Connection with option `<--ssl-mode=none>` will be refused. Use it with [OpenSSL](/reference/settings/server-settings/settings#openssl) settings. +If set to true, secure communication is required with clients over [mysql_port](/core/reference/settings/server-settings/settings#mysql_port). Connection with option `<--ssl-mode=none>` will be refused. Use it with [OpenSSL](/core/reference/settings/server-settings/settings#openssl) settings. ## oom_score {#oom_score} @@ -3222,7 +3222,7 @@ Path to the file with the secret key of the PEM certificate. The file may contai ## opentelemetry_span_log {#opentelemetry_span_log} -Settings for the [`opentelemetry_span_log`](/reference/system-tables/opentelemetry_span_log) system table. +Settings for the [`opentelemetry_span_log`](/core/reference/system-tables/opentelemetry_span_log) system table. @@ -3326,9 +3326,9 @@ Possible values: -20 to 19. ## part_log {#part_log} -Logging events that are associated with [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree). For instance, adding or merging data. You can use the log to simulate merge algorithms and compare their characteristics. You can visualize the merge process. +Logging events that are associated with [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree). For instance, adding or merging data. You can use the log to simulate merge algorithms and compare their characteristics. You can visualize the merge process. -Queries are logged in the [system.part_log](/reference/system-tables/part_log) table, not in a separate file. You can configure the name of this table in the `table` parameter (see below). +Queries are logged in the [system.part_log](/core/reference/system-tables/part_log) table, not in a separate file. You can configure the name of this table in the `table` parameter (see below). @@ -3394,7 +3394,7 @@ Port for communicating with clients over PostgreSQL protocol. ## postgresql_require_secure_transport {#postgresql_require_secure_transport} -If set to true, secure communication is required with clients over [postgresql_port](/reference/settings/server-settings/settings#postgresql_port). Connection with option `` will be refused. Use it with [OpenSSL](/reference/settings/server-settings/settings#openssl) settings. +If set to true, secure communication is required with clients over [postgresql_port](/core/reference/settings/server-settings/settings#postgresql_port). Connection with option `` will be refused. Use it with [OpenSSL](/core/reference/settings/server-settings/settings#openssl) settings. ## prefetch_threadpool_pool_size {#prefetch_threadpool_pool_size} @@ -3448,7 +3448,7 @@ Disabled by default to avoid possible security issues which can be caused by bug ## processors_profile_log {#processors_profile_log} -Settings for the [`processors_profile_log`](/reference/system-tables/processors_profile_log) system table. +Settings for the [`processors_profile_log`](/core/reference/system-tables/processors_profile_log) system table. @@ -3475,10 +3475,10 @@ Settings: - `endpoint` – HTTP endpoint for scraping metrics by prometheus server. Start from '/'. - `port` – Port for `endpoint`. -- `metrics` – Expose metrics from the [system.metrics](/reference/system-tables/metrics) table. -- `events` – Expose metrics from the [system.events](/reference/system-tables/events) table. -- `asynchronous_metrics` – Expose current metrics values from the [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) table. -- `errors` - Expose the number of errors by error codes occurred since the last server restart. This information could be obtained from the [system.errors](/reference/system-tables/errors) as well. +- `metrics` – Expose metrics from the [system.metrics](/core/reference/system-tables/metrics) table. +- `events` – Expose metrics from the [system.events](/core/reference/system-tables/events) table. +- `asynchronous_metrics` – Expose current metrics values from the [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) table. +- `errors` - Expose the number of errors by error codes occurred since the last server restart. This information could be obtained from the [system.errors](/core/reference/system-tables/errors) as well. **Example** @@ -3652,7 +3652,7 @@ This also allows a mix of resolver types can be used. ## query_cache {#query_cache} -[Query cache](/concepts/features/performance/caches/query-cache) configuration. +[Query cache](/core/concepts/features/performance/caches/query-cache) configuration. The following settings are available: @@ -3713,9 +3713,9 @@ This setting can be modified at runtime and will take effect immediately. ## query_log {#query_log} -Setting for logging queries received with the [log_queries=1](/reference/settings/session-settings) setting. +Setting for logging queries received with the [log_queries=1](/core/reference/settings/session-settings) setting. -Queries are logged in the [system.query_log](/reference/system-tables/query_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). +Queries are logged in the [system.query_log](/core/reference/system-tables/query_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). @@ -3739,7 +3739,7 @@ If the table does not exist, ClickHouse will create it. If the structure of the ## query_masking_rules {#query_masking_rules} Regexp-based rules, which will be applied to queries as well as all log messages before storing them in server logs, -[`system.query_log`](/reference/system-tables/query_log), [`system.text_log`](/reference/system-tables/text_log), [`system.processes`](/reference/system-tables/processes) tables, and in logs sent to the client. That allows preventing +[`system.query_log`](/core/reference/system-tables/query_log), [`system.text_log`](/core/reference/system-tables/text_log), [`system.processes`](/core/reference/system-tables/processes) tables, and in logs sent to the client. That allows preventing sensitive data leakage from SQL queries such as names, emails, personal identifiers or credit card numbers to logs. **Example** @@ -3764,7 +3764,7 @@ sensitive data leakage from SQL queries such as names, emails, personal identifi The masking rules are applied to the whole query (to prevent leaks of sensitive data from malformed / non-parseable queries). -The [`system.events`](/reference/system-tables/events) table has counter `QueryMaskingRulesMatch` which has an overall number of query masking rules matches. +The [`system.events`](/core/reference/system-tables/events) table has counter `QueryMaskingRulesMatch` which has an overall number of query masking rules matches. For distributed queries each server has to be configured separately, otherwise, subqueries passed to other nodes will be stored without masking. @@ -3775,7 +3775,7 @@ It is disabled by default. **Enabling** -To manually turn on metrics history collection [`system.query_metric_log`](/reference/system-tables/query_metric_log), create `/etc/clickhouse-server/config.d/query_metric_log.xml` with the following content: +To manually turn on metrics history collection [`system.query_metric_log`](/core/reference/system-tables/query_metric_log), create `/etc/clickhouse-server/config.d/query_metric_log.xml` with the following content: ```xml @@ -3806,9 +3806,9 @@ To disable `query_metric_log` setting, you should create the following file `/et ## query_thread_log {#query_thread_log} -Setting for logging threads of queries received with the [log_query_threads=1](/reference/settings/session-settings#log_query_threads) setting. +Setting for logging threads of queries received with the [log_query_threads=1](/core/reference/settings/session-settings#log_query_threads) setting. -Queries are logged in the [system.query_thread_log](/reference/system-tables/query_thread_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). +Queries are logged in the [system.query_thread_log](/core/reference/system-tables/query_thread_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). @@ -3831,9 +3831,9 @@ If the table does not exist, ClickHouse will create it. If the structure of the ## query_views_log {#query_views_log} -Setting for logging views (live, materialized etc) dependant of queries received with the [log_query_views=1](/reference/settings/session-settings#log_query_views) setting. +Setting for logging views (live, materialized etc) dependant of queries received with the [log_query_views=1](/core/reference/settings/session-settings#log_query_views) setting. -Queries are logged in the [system.query_views_log](/reference/system-tables/query_views_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). +Queries are logged in the [system.query_views_log](/core/reference/system-tables/query_views_log) table, not in a separate file. You can change the name of the table in the `table` parameter (see below). @@ -3871,7 +3871,7 @@ This feature is highly experimental. ## remote_servers {#remote_servers} -Configuration of clusters used by the [Distributed](/reference/engines/table-engines/special/distributed) table engine and by the `cluster` table function. +Configuration of clusters used by the [Distributed](/core/reference/engines/table-engines/special/distributed) table engine and by the `cluster` table function. **Example** @@ -3879,13 +3879,13 @@ Configuration of clusters used by the [Distributed](/reference/engines/table-eng ``` -For the value of the `incl` attribute, see the section "[Configuration files](/concepts/features/configuration/server-config/configuration-files)". +For the value of the `incl` attribute, see the section "[Configuration files](/core/concepts/features/configuration/server-config/configuration-files)". **See Also** -- [skip_unavailable_shards](/reference/settings/session-settings#skip_unavailable_shards) -- [Cluster Discovery](/guides/oss/deployment-and-scaling/cluster-discovery) -- [Replicated database engine](/reference/engines/database-engines/replicated) +- [skip_unavailable_shards](/core/reference/settings/session-settings#skip_unavailable_shards) +- [Cluster Discovery](/core/guides/oss/deployment-and-scaling/cluster-discovery) +- [Replicated database engine](/core/reference/engines/database-engines/replicated) ## remote_url_allow_hosts {#remote_url_allow_hosts} @@ -3935,7 +3935,7 @@ Empty by default. ## replicated_merge_tree {#replicated_merge_tree} -Fine-tuning for tables in the [ReplicatedMergeTree](/reference/engines/table-engines/mergetree-family/mergetree). This setting has a higher priority. +Fine-tuning for tables in the [ReplicatedMergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree). This setting has a higher priority. For more information, see the MergeTreeSettings.h header file. @@ -4353,7 +4353,7 @@ This setting can be modified at runtime and will take effect immediately. ## text_log {#text_log} -Settings for the [text_log](/reference/system-tables/text_log) system table for logging text messages. +Settings for the [text_log](/core/reference/system-tables/text_log) system table for logging text messages. @@ -4385,7 +4385,7 @@ Additionally: ## thread_pool_queue_size {#thread_pool_queue_size} -The maximum number of jobs that can be scheduled on the Global Thread pool. Increasing queue size leads to larger memory usage. It is recommended to keep this value equal to [`max_thread_pool_size`](/reference/settings/server-settings/settings#max_thread_pool_size). +The maximum number of jobs that can be scheduled on the Global Thread pool. Increasing queue size leads to larger memory usage. It is recommended to keep this value equal to [`max_thread_pool_size`](/core/reference/settings/server-settings/settings#max_thread_pool_size). A value of `0` means unlimited. @@ -4436,7 +4436,7 @@ Defines behaviour on access to unknown WORKLOAD with query setting 'workload'. ``` **See Also** -- [Workload Scheduling](/concepts/features/configuration/server-config/workload-scheduling) +- [Workload Scheduling](/core/concepts/features/configuration/server-config/workload-scheduling) ## timezone {#timezone} @@ -4454,7 +4454,7 @@ The time zone is necessary for conversions between String and DateTime formats w **See also** -- [session_timezone](/reference/settings/session-settings#session_timezone) +- [session_timezone](/core/reference/settings/session-settings#session_timezone) ## tmp_path {#tmp_path} @@ -4488,7 +4488,7 @@ Recommendations for using object storage as `tmp_policy`: - `move_factor`, `keep_free_space_bytes`,`max_data_part_size_bytes` and are ignored. - Policy should have exactly *one volume* -For more information see the [MergeTree Table Engine](/reference/engines/table-engines/mergetree-family/mergetree) documentation. +For more information see the [MergeTree Table Engine](/core/reference/engines/table-engines/mergetree-family/mergetree) documentation. **Example** @@ -4536,7 +4536,7 @@ For example: ``` See also: -- function [`cutToFirstSignificantSubdomainCustom`](/reference/functions/regular-functions/url-functions#cutToFirstSignificantSubdomainCustom) and variations thereof, +- function [`cutToFirstSignificantSubdomainCustom`](/core/reference/functions/regular-functions/url-functions#cutToFirstSignificantSubdomainCustom) and variations thereof, which accepts a custom TLD list name, returning the part of the domain that includes top-level subdomains up to the first significant subdomain. ## top_level_domains_path {#top_level_domains_path} @@ -4565,7 +4565,7 @@ The directory with top level domains. ## total_memory_tracker_sample_probability {#total_memory_tracker_sample_probability} -Allows to collect random allocations and de-allocations and writes them in the [system.trace_log](/reference/system-tables/trace_log) system table with `trace_type` equal to a `MemorySample` with the specified probability. The probability is for every allocation or deallocations, regardless of the size of the allocation. Note that sampling happens only when the amount of untracked memory exceeds the untracked memory limit (default value is `4` MiB). It can be lowered if [total_memory_profiler_step](/reference/settings/server-settings/settings#total_memory_profiler_step) is lowered. You can set `total_memory_profiler_step` equal to `1` for extra fine-grained sampling. +Allows to collect random allocations and de-allocations and writes them in the [system.trace_log](/core/reference/system-tables/trace_log) system table with `trace_type` equal to a `MemorySample` with the specified probability. The probability is for every allocation or deallocations, regardless of the size of the allocation. Note that sampling happens only when the amount of untracked memory exceeds the untracked memory limit (default value is `4` MiB). It can be lowered if [total_memory_profiler_step](/core/reference/settings/server-settings/settings#total_memory_profiler_step) is lowered. You can set `total_memory_profiler_step` equal to `1` for extra fine-grained sampling. Possible values: @@ -4574,7 +4574,7 @@ Possible values: ## trace_log {#trace_log} -Settings for the [trace_log](/reference/system-tables/trace_log) system table operation. +Settings for the [trace_log](/core/reference/system-tables/trace_log) system table operation. @@ -4639,7 +4639,7 @@ Example: ## use_minimalistic_part_header_in_zookeeper {#use_minimalistic_part_header_in_zookeeper} -Storage method for data part headers in ZooKeeper. This setting only applies to the [`MergeTree`](/reference/engines/table-engines/mergetree-family) family. It can be specified: +Storage method for data part headers in ZooKeeper. This setting only applies to the [`MergeTree`](/core/reference/engines/table-engines/mergetree-family) family. It can be specified: **Globally in the [merge_tree](#merge_tree) section of the `config.xml` file** @@ -4647,14 +4647,14 @@ ClickHouse uses the setting for all the tables on the server. You can change the **For each table** -When creating a table, specify the corresponding [engine setting](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table). The behaviour of an existing table with this setting does not change, even if the global setting changes. +When creating a table, specify the corresponding [engine setting](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table). The behaviour of an existing table with this setting does not change, even if the global setting changes. **Possible values** - `0` — Functionality is turned off. - `1` — Functionality is turned on. -If [`use_minimalistic_part_header_in_zookeeper = 1`](#use_minimalistic_part_header_in_zookeeper), then [replicated](/reference/engines/table-engines/mergetree-family/replication) tables store the headers of the data parts compactly using a single `znode`. If the table contains many columns, this storage method significantly reduces the volume of the data stored in Zookeeper. +If [`use_minimalistic_part_header_in_zookeeper = 1`](#use_minimalistic_part_header_in_zookeeper), then [replicated](/core/reference/engines/table-engines/mergetree-family/replication) tables store the headers of the data parts compactly using a single `znode`. If the table contains many columns, this storage method significantly reduces the volume of the data stored in Zookeeper. After applying `use_minimalistic_part_header_in_zookeeper = 1`, you can't downgrade the ClickHouse server to a version that does not support this setting. Be careful when upgrading ClickHouse on servers in a cluster. Don't upgrade all the servers at once. It is safer to test new versions of ClickHouse in a test environment, or on just a few servers of a cluster. @@ -4699,7 +4699,7 @@ Path: - The path can contain wildcards \* and ?. See also: -- "[Executable User Defined Functions](/reference/functions/regular-functions/udf#executable-user-defined-functions).". +- "[Executable User Defined Functions](/core/reference/functions/regular-functions/udf#executable-user-defined-functions).". **Example** @@ -4709,7 +4709,7 @@ See also: ## user_defined_path {#user_defined_path} -The directory with user defined files. Used for SQL user defined functions [SQL User Defined Functions](/reference/functions/regular-functions/udf). +The directory with user defined files. Used for SQL user defined functions [SQL User Defined Functions](/core/reference/functions/regular-functions/udf). **Example** @@ -4724,7 +4724,7 @@ Section of the configuration file that contains settings: - Path to folder where users created by SQL commands are stored. - ZooKeeper node path where users created by SQL commands are stored and replicated. -If this section is specified, the path from [users_config](/reference/settings/server-settings/settings#users_config) and [access_control_path](/reference/settings/server-settings/settings#access_control_path) won't be used. +If this section is specified, the path from [users_config](/core/reference/settings/server-settings/settings#users_config) and [access_control_path](/core/reference/settings/server-settings/settings#access_control_path) won't be used. The `user_directories` section can contain any number of items, the order of the items means their precedence (the higher the item the higher the precedence). @@ -4778,7 +4778,7 @@ To add an LDAP server as a remote user directory of users that are not defined l ## user_files_path {#user_files_path} -The directory with user files. Used in the table function [file()](/reference/functions/table-functions/file), [fileCluster()](/reference/functions/table-functions/fileCluster). +The directory with user files. Used in the table function [file()](/core/reference/functions/table-functions/file), [fileCluster()](/core/reference/functions/table-functions/fileCluster). **Example** @@ -4789,7 +4789,7 @@ The directory with user files. Used in the table function [file()](/reference/fu ## user_scripts_path {#user_scripts_path} -The directory with user scripts files. Used for Executable user defined functions [Executable User Defined Functions](/reference/functions/regular-functions/udf#executable-user-defined-functions). +The directory with user scripts files. Used for Executable user defined functions [Executable User Defined Functions](/core/reference/functions/regular-functions/udf#executable-user-defined-functions). **Example** @@ -4886,7 +4886,7 @@ The directory used as a storage for all `CREATE WORKLOAD` and `CREATE RESOURCE` ``` **See Also** -- [Workload Hierarchy](/concepts/features/configuration/server-config/workload-scheduling#workloads) +- [Workload Hierarchy](/core/concepts/features/configuration/server-config/workload-scheduling#workloads) - [workload_zookeeper_path](#workload_zookeeper_path) ## workload_zookeeper_path {#workload_zookeeper_path} @@ -4900,7 +4900,7 @@ The path to a ZooKeeper node, which is used as a storage for all `CREATE WORKLOA ``` **See Also** -- [Workload Hierarchy](/concepts/features/configuration/server-config/workload-scheduling#workloads) +- [Workload Hierarchy](/core/concepts/features/configuration/server-config/workload-scheduling#workloads) - [workload_path](#workload_path) ## zookeeper {#zookeeper} @@ -4920,7 +4920,7 @@ The following settings can be configured by sub-tags: | `identity` (optional) | User and password required by ZooKeeper to access requested znodes. | | `use_compression` (optional) | Enables compression in Keeper protocol if set to true. | | `use_xid_64` (optional) | Enables 64-bit transaction IDs. Set to `true` to enable extended transaction ID format. Default: `false`. | -| `pass_opentelemetry_tracing_context` (optional) | Enables propagation of OpenTelemetry tracing context to Keeper requests. When enabled, tracing spans will be created for Keeper operations, allowing distributed tracing across ClickHouse and Keeper. See [Tracing ClickHouse Keeper Requests](/guides/oss/deployment-and-scaling/monitoring/opentelemetry#tracing-clickhouse-keeper-requests) for more details. Default: `false`. | +| `pass_opentelemetry_tracing_context` (optional) | Enables propagation of OpenTelemetry tracing context to Keeper requests. When enabled, tracing spans will be created for Keeper operations, allowing distributed tracing across ClickHouse and Keeper. See [Tracing ClickHouse Keeper Requests](/core/guides/oss/deployment-and-scaling/monitoring/opentelemetry#tracing-clickhouse-keeper-requests) for more details. Default: `false`. | There is also the `zookeeper_load_balancing` setting (optional) which lets you select the algorithm for ZooKeeper node selection: @@ -4962,13 +4962,13 @@ There is also the `zookeeper_load_balancing` setting (optional) which lets you s **See Also** -- [Replication](/reference/engines/table-engines/mergetree-family/replication) +- [Replication](/core/reference/engines/table-engines/mergetree-family/replication) - [ZooKeeper Programmer's Guide](http://zookeeper.apache.org/doc/current/zookeeperProgrammers.html) -- [Optional secured communication between ClickHouse and Zookeeper](/guides/oss/deployment-and-scaling/keeper/ssl-zookeeper) +- [Optional secured communication between ClickHouse and Zookeeper](/core/guides/oss/deployment-and-scaling/keeper/ssl-zookeeper) ## zookeeper_log {#zookeeper_log} -Settings for the [`zookeeper_log`](/reference/system-tables/zookeeper_log) system table. +Settings for the [`zookeeper_log`](/core/reference/system-tables/zookeeper_log) system table. The following settings can be configured by sub-tags: diff --git a/reference/settings/session-settings.mdx b/core/reference/settings/session-settings.mdx similarity index 93% rename from reference/settings/session-settings.mdx rename to core/reference/settings/session-settings.mdx index 932a3a66..d124e94f 100644 --- a/reference/settings/session-settings.mdx +++ b/core/reference/settings/session-settings.mdx @@ -14,7 +14,7 @@ import SettingsInfoBlock from "/snippets/components/SettingsInfoBlock/SettingsIn import VersionHistory from "/snippets/components/VersionHistory/VersionHistory.jsx"; {/* Autogenerated */} -All below settings are also available in table [system.settings](/reference/system-tables/settings). These settings are autogenerated from [source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp). +All below settings are also available in table [system.settings](/core/reference/system-tables/settings). These settings are autogenerated from [source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp). ## add_http_cors_header {#add_http_cors_header} @@ -130,7 +130,7 @@ Note: The `value` and `array` formats are slower than the default `state` format -Enables or disables rewriting all aggregate functions in a query, adding [-OrNull](/reference/functions/aggregate-functions/combinators#-ornull) suffix to them. Enable it for SQL standard compatibility. +Enables or disables rewriting all aggregate functions in a query, adding [-OrNull](/core/reference/functions/aggregate-functions/combinators#-ornull) suffix to them. Enable it for SQL standard compatibility. It is implemented via query rewrite (similar to [count_distinct_implementation](#count_distinct_implementation) setting) to get consistent results for distributed queries. Possible values: @@ -371,16 +371,6 @@ Allow execute multiIf function columnar Enable experimental AI functions (e.g. `aiGenerateContent`). These functions make external HTTP calls to AI providers. -## allow_experimental_alias_table_engine {#allow_experimental_alias_table_engine} - - - - - - - -Allow to create table with the Alias engine. - ## allow_experimental_analyzer {#allow_experimental_analyzer} **Aliases**: `enable_analyzer` @@ -617,7 +607,7 @@ Enable experimental functions for natural language processing. -Allows creation of [Nullable](/reference/data-types/nullable) [Tuple](/reference/data-types/tuple) columns in tables. +Allows creation of [Nullable](/core/reference/data-types/nullable) [Tuple](/core/reference/data-types/tuple) columns in tables. This setting does not control whether extracted tuple subcolumns can be `Nullable` (for example, from Dynamic, Variant, JSON, or Tuple columns). Use `allow_nullable_tuple_in_extracted_subcolumns` to control whether extracted tuple subcolumns can be `Nullable`. @@ -699,9 +689,9 @@ Experimental timeSeries* aggregate functions for Prometheus-like timeseries resa -Allows creation of tables with the [TimeSeries](/reference/engines/table-engines/integrations/time-series) table engine. Possible values: -- 0 — the [TimeSeries](/reference/engines/table-engines/integrations/time-series) table engine is disabled. -- 1 — the [TimeSeries](/reference/engines/table-engines/integrations/time-series) table engine is enabled. +Allows creation of tables with the [TimeSeries](/core/reference/engines/table-engines/integrations/time-series) table engine. Possible values: +- 0 — the [TimeSeries](/core/reference/engines/table-engines/integrations/time-series) table engine is disabled. +- 1 — the [TimeSeries](/core/reference/engines/table-engines/integrations/time-series) table engine is enabled. ## allow_experimental_unique_key {#allow_experimental_unique_key} @@ -810,7 +800,7 @@ Allow to execute `insert` queries into iceberg. -Enables or disables [introspection functions](/reference/functions/regular-functions/introspection) for query profiling. +Enables or disables [introspection functions](/core/reference/functions/regular-functions/introspection) for query profiling. Possible values: @@ -819,8 +809,8 @@ Possible values: **See Also** -- [Sampling Query Profiler](/concepts/features/performance/troubleshoot/sampling-query-profiler) -- System table [trace_log](/reference/system-tables/trace_log) +- [Sampling Query Profiler](/core/concepts/features/performance/troubleshoot/sampling-query-profiler) +- System table [trace_log](/core/reference/system-tables/trace_log) ## allow_key_condition_coalesce_rewrite {#allow_key_condition_coalesce_rewrite} @@ -939,6 +929,23 @@ Allows push predicate on AST level for distributed subqueries with enabled anlyz Allows push predicate when subquery contains WITH clause +## allow_rank_dense_rank_arguments {#allow_rank_dense_rank_arguments} + + + + + +Allow passing arguments to the `RANK` and `DENSE_RANK` window functions for backward compatibility. + +Per SQL standard, `RANK` and `DENSE_RANK` take zero arguments — they rank rows based on the +`OVER (ORDER BY ...)` window only. In ClickHouse versions before 26.5, queries such as +`RANK(x) OVER (...)` silently accepted and ignored the argument, which led to user confusion +(the visible argument suggested it influenced the ranking, but it did not). + +When this setting is `false` (the default), `RANK` and `DENSE_RANK` reject any arguments and +throw `NUMBER_OF_ARGUMENTS_DOESNT_MATCH`. When set to `true`, the legacy lenient behavior is +restored — arguments are silently ignored, matching the pre-26.5 behavior. + ## allow_reorder_prewhere_conditions {#allow_reorder_prewhere_conditions} @@ -1000,7 +1007,7 @@ It helps to avoid unnecessary data copy during formatting. -Allows defining columns with [statistics](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) and [manipulate statistics](/reference/engines/table-engines/mergetree-family/mergetree#column-statistics). +Allows defining columns with [statistics](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) and [manipulate statistics](/core/reference/engines/table-engines/mergetree-family/mergetree#column-statistics). ## allow_statistics_optimize {#allow_statistics_optimize} @@ -1038,7 +1045,7 @@ Reject primary/secondary indexes and sorting keys with identical expressions -Allows or restricts using [LowCardinality](/reference/data-types/lowcardinality) with data types with fixed size of 8 bytes or less: numeric data types and `FixedString(8_bytes_or_less)`. +Allows or restricts using [LowCardinality](/core/reference/data-types/lowcardinality) with data types with fixed size of 8 bytes or less: numeric data types and `FixedString(8_bytes_or_less)`. For small fixed values using of `LowCardinality` is usually inefficient, because ClickHouse stores a numeric index for each row. As a result: @@ -1046,7 +1053,7 @@ For small fixed values using of `LowCardinality` is usually inefficient, because - RAM consumption can be higher, depending on a dictionary size. - Some functions can work slower due to extra coding/encoding operations. -Merge times in [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree)-engine tables can grow due to all the reasons described above. +Merge times in [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree)-engine tables can grow due to all the reasons described above. Possible values: @@ -1075,7 +1082,7 @@ Reject TTL expressions that don't depend on any of table's columns. It indicates -Allows or restricts using [Variant](/reference/data-types/variant) and [Dynamic](/reference/data-types/dynamic) types in GROUP BY keys. +Allows or restricts using [Variant](/core/reference/data-types/variant) and [Dynamic](/core/reference/data-types/dynamic) types in GROUP BY keys. ## allow_suspicious_types_in_order_by {#allow_suspicious_types_in_order_by} @@ -1083,7 +1090,7 @@ Allows or restricts using [Variant](/reference/data-types/variant) and [Dynamic] -Allows or restricts using [Variant](/reference/data-types/variant) and [Dynamic](/reference/data-types/dynamic) types in ORDER BY keys. +Allows or restricts using [Variant](/core/reference/data-types/variant) and [Dynamic](/core/reference/data-types/dynamic) types in ORDER BY keys. ## allow_suspicious_variant_types {#allow_suspicious_variant_types} @@ -1110,7 +1117,7 @@ Execute ALTER TABLE MOVE ... TO [DISK|VOLUME] asynchronously Enables or disables the display of information about the parts to which the manipulation operations with partitions and parts have been successfully applied. -Applicable to [ATTACH PARTITION|PART](/reference/statements/alter/partition#attach-partitionpart) and to [FREEZE PARTITION](/reference/statements/alter/partition#freeze-partition). +Applicable to [ATTACH PARTITION|PART](/core/reference/statements/alter/partition#attach-partitionpart) and to [FREEZE PARTITION](/core/reference/statements/alter/partition#freeze-partition). Possible values: @@ -1146,7 +1153,7 @@ ALTER TABLE test FREEZE SETTINGS alter_partition_verbose_result = 1; -Allows you to specify the wait behavior for actions that are to be executed on replicas by [`ALTER`](/reference/statements/alter), [`OPTIMIZE`](/reference/statements/optimize) or [`TRUNCATE`](/reference/statements/truncate) queries. +Allows you to specify the wait behavior for actions that are to be executed on replicas by [`ALTER`](/core/reference/statements/alter), [`OPTIMIZE`](/core/reference/statements/optimize) or [`TRUNCATE`](/core/reference/statements/truncate) queries. Possible values: @@ -1236,7 +1243,7 @@ Possible values: See also: -- [JOIN strictness](/reference/statements/select/join#settings) +- [JOIN strictness](/core/reference/statements/select/join#settings) ## apply_deleted_mask {#apply_deleted_mask} @@ -1359,7 +1366,7 @@ The fuzzer accumulates AST fragments from all queries across all sessions, produ -Include [ALIAS](/reference/statements/create/table#alias) columns for wildcard query (`SELECT *`). +Include [ALIAS](/core/reference/statements/create/table#alias) columns for wildcard query (`SELECT *`). Possible values: @@ -1370,7 +1377,7 @@ Possible values: -Include [MATERIALIZED](/reference/statements/create/view#materialized-view) columns for wildcard query (`SELECT *`). +Include [MATERIALIZED](/core/reference/statements/create/view#materialized-view) columns for wildcard query (`SELECT *`). Possible values: @@ -1895,7 +1902,7 @@ When set to `false`, each thread handles s3 request backoff independently of the -Only has an effect in ClickHouse Cloud. Number of background threads for speculatively downloading new data parts into the filesystem cache, when [cache_populated_by_fetch](/reference/settings/merge-tree-settings#cache_populated_by_fetch) is enabled. Zero to disable. +Only has an effect in ClickHouse Cloud. Number of background threads for speculatively downloading new data parts into the filesystem cache, when [cache_populated_by_fetch](/core/reference/settings/merge-tree-settings#cache_populated_by_fetch) is enabled. Zero to disable. ## calculate_text_stack_trace {#calculate_text_stack_trace} @@ -1923,7 +1930,7 @@ CAST operator into IPv4, CAST operator into IPV6 type, toIPv4, toIPv6 functions -Enables or disables keeping of the `Nullable` data type in [CAST](/reference/functions/regular-functions/type-conversion-functions#CAST) operations. +Enables or disables keeping of the `Nullable` data type in [CAST](/core/reference/functions/regular-functions/type-conversion-functions#CAST) operations. When the setting is enabled and the argument of `CAST` function is `Nullable`, the result is also transformed to `Nullable` type. When the setting is disabled, the result always has the destination type exactly. @@ -1966,7 +1973,7 @@ Result: **See Also** -- [CAST](/reference/functions/regular-functions/type-conversion-functions#CAST) functio +- [CAST](/core/reference/functions/regular-functions/type-conversion-functions#CAST) functio ## cast_string_to_date_time_mode {#cast_string_to_date_time_mode} @@ -1982,7 +1989,7 @@ Possible values: ClickHouse can parse the basic `YYYY-MM-DD HH:MM:SS` format and all [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time formats. For example, `'2018-06-08T01:02:03.000Z'`. -- `'best_effort_us'` — Similar to `best_effort` (see the difference in [parseDateTimeBestEffortUS](/reference/functions/regular-functions/type-conversion-functions#parseDateTimeBestEffortUS) +- `'best_effort_us'` — Similar to `best_effort` (see the difference in [parseDateTimeBestEffortUS](/core/reference/functions/regular-functions/type-conversion-functions#parseDateTimeBestEffortUS) - `'basic'` — Use basic parser. @@ -1990,8 +1997,8 @@ Possible values: See also: -- [DateTime data type.](/reference/data-types/datetime) -- [Functions for working with dates and times.](/reference/functions/regular-functions/date-time-functions) +- [DateTime data type.](/core/reference/data-types/datetime) +- [Functions for working with dates and times.](/core/reference/functions/regular-functions/date-time-functions) ## cast_string_to_dynamic_use_inference {#cast_string_to_dynamic_use_inference} @@ -2023,7 +2030,7 @@ Check that DROP NAMED COLLECTION will not break tables that depend on it -Defines the level of detail for the [CHECK TABLE](/reference/statements/check-table) query result for `MergeTree` family engines . +Defines the level of detail for the [CHECK TABLE](/core/reference/statements/check-table) query result for `MergeTree` family engines . Possible values: @@ -2340,15 +2347,15 @@ Use in-memory buffer for correlated subquery input to avoid its repeated evaluat -Specifies which of the `uniq*` functions should be used to perform the [COUNT(DISTINCT ...)](/reference/functions/aggregate-functions/reference/count) construction. +Specifies which of the `uniq*` functions should be used to perform the [COUNT(DISTINCT ...)](/core/reference/functions/aggregate-functions/reference/count) construction. Possible values: -- [uniq](/reference/functions/aggregate-functions/reference/uniq) -- [uniqCombined](/reference/functions/aggregate-functions/reference/uniqCombined) -- [uniqCombined64](/reference/functions/aggregate-functions/reference/uniqCombined64) -- [uniqHLL12](/reference/functions/aggregate-functions/reference/uniqHLL12) -- [uniqExact](/reference/functions/aggregate-functions/reference/uniqExact) +- [uniq](/core/reference/functions/aggregate-functions/reference/uniq) +- [uniqCombined](/core/reference/functions/aggregate-functions/reference/uniqCombined) +- [uniqCombined64](/core/reference/functions/aggregate-functions/reference/uniqCombined64) +- [uniqHLL12](/core/reference/functions/aggregate-functions/reference/uniqHLL12) +- [uniqExact](/core/reference/functions/aggregate-functions/reference/uniqExact) ## count_distinct_optimization {#count_distinct_optimization} @@ -2420,7 +2427,7 @@ Use inner join instead of comma/cross join if there are joining expressions in t -Allows data types without explicit modifiers [NULL or NOT NULL](/reference/statements/create/table#null-or-not-null-modifiers) in column definition will be [Nullable](/reference/data-types/nullable). +Allows data types without explicit modifiers [NULL or NOT NULL](/core/reference/statements/create/table#null-or-not-null-modifiers) in column definition will be [Nullable](/core/reference/data-types/nullable). Possible values: @@ -2533,7 +2540,7 @@ This setting is useful for ensuring that materialized views do not contain dupli **See Also** -- [NULL Processing in IN Operators](/concepts/operations/insert/deduplicating-inserts-on-retries#insert-deduplication-with-materialized-views) +- [NULL Processing in IN Operators](/core/concepts/features/operations/insert/deduplicating-inserts-on-retries#insert-deduplication-with-materialized-views) ## deduplicate_insert {#deduplicate_insert} @@ -2570,7 +2577,7 @@ That setting has four possible values: -Allows to set a default value for SQL SECURITY option when creating a materialized view. [More about SQL security](/reference/statements/create/view#sql_security). +Allows to set a default value for SQL SECURITY option when creating a materialized view. [More about SQL security](/core/reference/statements/create/view#sql_security). The default value is `DEFINER`. @@ -2586,7 +2593,7 @@ Maximum size of right-side table if limit is required but `max_bytes_in_join` is -Allows to set default `SQL SECURITY` option while creating a normal view. [More about SQL security](/reference/statements/create/view#sql_security). +Allows to set default `SQL SECURITY` option while creating a normal view. [More about SQL security](/core/reference/statements/create/view#sql_security). The default value is `INVOKER`. @@ -2688,7 +2695,7 @@ ENGINE = Log -Allows to set default `DEFINER` option while creating a view. [More about SQL security](/reference/statements/create/view#sql_security). +Allows to set default `DEFINER` option while creating a view. [More about SQL security](/core/reference/statements/create/view#sql_security). The default value is `CURRENT_USER`. @@ -2809,7 +2816,7 @@ If true, include only column names and types into result of DESCRIBE query -Enables describing subcolumns for a [DESCRIBE](/reference/statements/describe-table) query. For example, members of a [Tuple](/reference/data-types/tuple) or subcolumns of a [Map](/reference/data-types/map#reading-subcolumns-of-map), [Nullable](/reference/data-types/nullable#finding-null) or an [Array](/reference/data-types/array#array-size) data type. +Enables describing subcolumns for a [DESCRIBE](/core/reference/statements/describe-table) query. For example, members of a [Tuple](/core/reference/data-types/tuple) or subcolumns of a [Map](/core/reference/data-types/map#reading-subcolumns-of-map), [Nullable](/core/reference/data-types/nullable#finding-null) or an [Array](/core/reference/data-types/array#array-size) data type. Possible values: @@ -2818,7 +2825,7 @@ Possible values: **Example** -See an example for the [DESCRIBE](/reference/statements/describe-table) statement. +See an example for the [DESCRIBE](/core/reference/statements/describe-table) statement. ## describe_include_virtual_columns {#describe_include_virtual_columns} @@ -2871,7 +2878,7 @@ Is the memory-saving mode of distributed aggregation enabled. Enables/disables inserted data sending in batches. -When batch sending is enabled, the [Distributed](/reference/engines/table-engines/special/distributed) table engine tries to send multiple files of inserted data in one operation instead of sending them separately. Batch sending improves cluster performance by better-utilizing server and network resources. +When batch sending is enabled, the [Distributed](/core/reference/engines/table-engines/special/distributed) table engine tries to send multiple files of inserted data in one operation instead of sending them separately. Batch sending improves cluster performance by better-utilizing server and network resources. Possible values: @@ -2884,7 +2891,7 @@ Possible values: -Maximum interval for the [Distributed](/reference/engines/table-engines/special/distributed) table engine to send data. Limits exponential growth of the interval set in the [distributed_background_insert_sleep_time_ms](#distributed_background_insert_sleep_time_ms) setting. +Maximum interval for the [Distributed](/core/reference/engines/table-engines/special/distributed) table engine to send data. Limits exponential growth of the interval set in the [distributed_background_insert_sleep_time_ms](#distributed_background_insert_sleep_time_ms) setting. Possible values: @@ -2896,7 +2903,7 @@ Possible values: -Base interval for the [Distributed](/reference/engines/table-engines/special/distributed) table engine to send data. The actual interval grows exponentially in the event of errors. +Base interval for the [Distributed](/core/reference/engines/table-engines/special/distributed) table engine to send data. The actual interval grows exponentially in the event of errors. Possible values: @@ -2920,7 +2927,7 @@ Possible values: - 0 — Disabled. -This setting also affects broken batches (that may appears because of abnormal server (machine) termination and no `fsync_after_insert`/`fsync_directories` for [Distributed](/reference/engines/table-engines/special/distributed) table engine). +This setting also affects broken batches (that may appears because of abnormal server (machine) termination and no `fsync_after_insert`/`fsync_directories` for [Distributed](/core/reference/engines/table-engines/special/distributed) table engine). @@ -3265,7 +3272,7 @@ Possible values: -Enables or disables synchronous data insertion into a [Distributed](/reference/engines/table-engines/special/distributed) table. +Enables or disables synchronous data insertion into a [Distributed](/core/reference/engines/table-engines/special/distributed) table. By default, when inserting data into a `Distributed` table, the ClickHouse server sends data to cluster nodes in background mode. When `distributed_foreground_insert=1`, the data is processed synchronously, and the `INSERT` operation succeeds only after all the data is saved on all shards (at least one replica for each shard if `internal_replication` is true). @@ -3278,8 +3285,8 @@ Cloud default value: `1`. **See Also** -- [Distributed Table Engine](/reference/engines/table-engines/special/distributed) -- [Managing Distributed Tables](/reference/statements/system#managing-distributed-tables) +- [Distributed Table Engine](/core/reference/engines/table-engines/special/distributed) +- [Managing Distributed Tables](/core/reference/statements/system#managing-distributed-tables) ## distributed_group_by_no_merge {#distributed_group_by_no_merge} @@ -3337,8 +3344,8 @@ Uses replicas from cluster_for_parallel_replicas. **See also** - [distributed_index_analysis_for_non_shared_merge_tree](#distributed_index_analysis_for_non_shared_merge_tree) -- [distributed_index_analysis_min_parts_to_activate](/reference/settings/merge-tree-settings#distributed_index_analysis_min_parts_to_activate) -- [distributed_index_analysis_min_indexes_bytes_to_activate](/reference/settings/merge-tree-settings#distributed_index_analysis_min_indexes_bytes_to_activate) +- [distributed_index_analysis_min_parts_to_activate](/core/reference/settings/merge-tree-settings#distributed_index_analysis_min_parts_to_activate) +- [distributed_index_analysis_min_indexes_bytes_to_activate](/core/reference/settings/merge-tree-settings#distributed_index_analysis_min_indexes_bytes_to_activate) ## distributed_index_analysis_for_non_shared_merge_tree {#distributed_index_analysis_for_non_shared_merge_tree} @@ -3458,7 +3465,7 @@ Serialize the distributed query plan for execution at replicas. -Changes the behaviour of [distributed subqueries](/reference/statements/in). +Changes the behaviour of [distributed subqueries](/core/reference/statements/in). ClickHouse applies this setting when the query contains the product of distributed tables, i.e. when the query for a distributed table contains a non-GLOBAL subquery for the distributed table. @@ -3467,7 +3474,7 @@ Restrictions: - Only applied for IN and JOIN subqueries. - Only if the FROM section uses a distributed table containing more than one shard. - If the subquery concerns a distributed table containing more than one shard. -- Not used for a table-valued [remote](/reference/functions/table-functions/remote) function. +- Not used for a table-valued [remote](/core/reference/functions/table-functions/remote) function. Possible values: @@ -3516,7 +3523,7 @@ The error count of each replica is capped at this value, preventing a single rep See also: - [load_balancing](#load_balancing-round_robin) -- [Table engine Distributed](/reference/engines/table-engines/special/distributed) +- [Table engine Distributed](/core/reference/engines/table-engines/special/distributed) - [distributed_replica_error_half_life](#distributed_replica_error_half_life) - [distributed_replica_max_ignored_errors](#distributed_replica_max_ignored_errors) @@ -3532,7 +3539,7 @@ Controls how fast errors in distributed tables are zeroed. If a replica is unava See also: - [load_balancing](#load_balancing-round_robin) -- [Table engine Distributed](/reference/engines/table-engines/special/distributed) +- [Table engine Distributed](/core/reference/engines/table-engines/special/distributed) - [distributed_replica_error_cap](#distributed_replica_error_cap) - [distributed_replica_max_ignored_errors](#distributed_replica_max_ignored_errors) @@ -3548,7 +3555,7 @@ The number of errors that will be ignored while choosing replicas (according to See also: - [load_balancing](#load_balancing-round_robin) -- [Table engine Distributed](/reference/engines/table-engines/special/distributed) +- [Table engine Distributed](/core/reference/engines/table-engines/special/distributed) - [distributed_replica_error_cap](#distributed_replica_error_cap) - [distributed_replica_error_half_life](#distributed_replica_error_half_life) @@ -3593,7 +3600,7 @@ Disabled by default. -When applying a function to a [Dynamic](/reference/data-types/dynamic) column using the default implementation, +When applying a function to a [Dynamic](/core/reference/data-types/dynamic) column using the default implementation, controls what happens for rows whose actual type is incompatible with the function: - `true` (default) — throw an exception. - `false` — return `NULL` for those rows instead. @@ -3710,7 +3717,7 @@ Allows to record the filesystem caching log for each query Enables or disables `write-through` cache. If set to `false`, the `write-through` cache is disabled for write operations. If set to `true`, `write-through` cache is enabled as long as `cache_on_write_operations` is turned on in the server config's cache disk configuration section. -See ["Using local cache"](/concepts/features/configuration/server-config/storing-data#using-local-cache) for more details. +See ["Using local cache"](/core/concepts/features/configuration/server-config/storing-data#using-local-cache) for more details. Cloud default value: `1`. @@ -3754,7 +3761,7 @@ Enable or disables pread for HDFS files. By default, `hdfsPread` is used. If dis Enables or disables data compression in the response to an HTTP request. -For more information, read the [HTTP interface description](/integrations/connectors/data-integrations/drivers-and-interfaces/http). +For more information, read the [HTTP interface description](/core/concepts/features/interfaces/http). Possible values: @@ -3893,7 +3900,7 @@ Allow push predicate to final subquery. -Enables or disables sorting with `ORDER BY ALL` syntax, see [ORDER BY](/reference/statements/select/order-by). +Enables or disables sorting with `ORDER BY ALL` syntax, see [ORDER BY](/core/reference/statements/select/order-by). Possible values: @@ -3946,7 +3953,7 @@ If true then data can be parsed directly to columns with custom serialization (e -Enables or disables supporting positional arguments for [GROUP BY](/reference/statements/select/group-by), [LIMIT BY](/reference/statements/select/limit-by), [ORDER BY](/reference/statements/select/order-by) statements. +Enables or disables supporting positional arguments for [GROUP BY](/core/reference/statements/select/group-by), [LIMIT BY](/core/reference/statements/select/limit-by), [ORDER BY](/core/reference/statements/select/order-by) statements. Possible values: @@ -4006,7 +4013,7 @@ The downside is potentially higher memory usage. -If turned on, results of `SELECT` queries are retrieved from the [query cache](/concepts/features/performance/caches/query-cache). +If turned on, results of `SELECT` queries are retrieved from the [query cache](/core/concepts/features/performance/caches/query-cache). Possible values: @@ -4101,7 +4108,7 @@ Enable use of software prefetch in hash join probe phase to hide memory access l -Allows creation of [Time](/reference/data-types/time) and [Time64](/reference/data-types/time64) data types. +Allows creation of [Time](/core/reference/data-types/time) and [Time64](/core/reference/data-types/time64) data types. ## enable_unaligned_array_join {#enable_unaligned_array_join} @@ -4115,7 +4122,7 @@ Allow ARRAY JOIN with multiple arrays that have different sizes. When this setti -Allows to enable/disable decoding/encoding path in uri in [URL](/reference/engines/table-engines/special/url) engine tables. +Allows to enable/disable decoding/encoding path in uri in [URL](/core/reference/engines/table-engines/special/url) engine tables. Disabled by default. @@ -4131,7 +4138,7 @@ If enable, remove duplicated rows during FINAL by marking rows as deleted and fi -If turned on, results of `SELECT` queries are stored in the [query cache](/concepts/features/performance/caches/query-cache). +If turned on, results of `SELECT` queries are stored in the [query cache](/core/concepts/features/performance/caches/query-cache). Possible values: @@ -4172,7 +4179,7 @@ Possible values: -Enables or disables skipping empty files in [File](/reference/engines/table-engines/special/file) engine tables. +Enables or disables skipping empty files in [File](/core/reference/engines/table-engines/special/file) engine tables. Possible values: - 0 — `SELECT` throws an exception if empty file is not compatible with requested format. @@ -4182,7 +4189,7 @@ Possible values: -Enables or disables truncate before insert in [File](/reference/engines/table-engines/special/file) engine tables. +Enables or disables truncate before insert in [File](/core/reference/engines/table-engines/special/file) engine tables. Possible values: - 0 — `INSERT` query appends new data to the end of the file. @@ -4192,7 +4199,7 @@ Possible values: -Enables or disables skipping empty files in [URL](/reference/engines/table-engines/special/url) engine tables. +Enables or disables skipping empty files in [URL](/core/reference/engines/table-engines/special/url) engine tables. Possible values: - 0 — `SELECT` throws an exception if empty file is not compatible with requested format. @@ -4214,8 +4221,8 @@ Set default mode in EXCEPT query. Possible values: empty string, 'ALL', 'DISTINC -Excludes specified skip indexes from being built and stored during INSERTs. The excluded skip indexes will still be built and stored [during merges](/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge) or by an explicit -[MATERIALIZE INDEX](/reference/statements/alter/skipping-index#materialize-index) query. +Excludes specified skip indexes from being built and stored during INSERTs. The excluded skip indexes will still be built and stored [during merges](/core/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge) or by an explicit +[MATERIALIZE INDEX](/core/reference/statements/alter/skipping-index#materialize-index) query. Has no effect if [materialize_skip_indexes_on_insert](#materialize_skip_indexes_on_insert) is false. @@ -4283,7 +4290,7 @@ Read/write timeout in seconds. Now supported only for MySQL -Defines how [mysql](/reference/functions/table-functions/mysql), [postgresql](/reference/functions/table-functions/postgresql) and [odbc](/reference/functions/table-functions/odbc) table functions use Nullable columns. +Defines how [mysql](/core/reference/functions/table-functions/mysql), [postgresql](/core/reference/functions/table-functions/postgresql) and [odbc](/core/reference/functions/table-functions/odbc) table functions use Nullable columns. Possible values: @@ -4321,7 +4328,7 @@ For more information, see the section "Extreme values". -Forces a query to an out-of-date replica if updated data is not available. See [Replication](/reference/engines/table-engines/mergetree-family/replication). +Forces a query to an out-of-date replica if updated data is not available. See [Replication](/core/reference/engines/table-engines/mergetree-family/replication). ClickHouse selects the most relevant from the outdated replicas of the table. @@ -4439,7 +4446,7 @@ Maximum number of prefetches. Zero means unlimited. A setting `filesystem_prefet -Automatically applies [FINAL](/reference/statements/select/from#final-modifier) modifier to all tables in a query, to tables where [FINAL](/reference/statements/select/from#final-modifier) is applicable, including joined tables and tables in sub-queries, and +Automatically applies [FINAL](/core/reference/statements/select/from#final-modifier) modifier to all tables in a query, to tables where [FINAL](/core/reference/statements/select/from#final-modifier) is applicable, including joined tables and tables in sub-queries, and distributed tables. Possible values: @@ -4493,7 +4500,7 @@ When enabled, projection parts are finalized synchronously during INSERT, reduci -Sets the data format of a [nested](/reference/data-types/nested-data-structures) columns. +Sets the data format of a [nested](/core/reference/data-types/nested-data-structures) columns. Possible values: @@ -4609,13 +4616,13 @@ Disables query execution if the index can't be used by date. Works with tables in the MergeTree family. -If `force_index_by_date=1`, ClickHouse checks whether the query has a date key condition that can be used for restricting data ranges. If there is no suitable condition, it throws an exception. However, it does not check whether the condition reduces the amount of data to read. For example, the condition `Date != ' 2000-01-01 '` is acceptable even when it matches all the data in the table (i.e., running the query requires a full scan). For more information about ranges of data in MergeTree tables, see [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree). +If `force_index_by_date=1`, ClickHouse checks whether the query has a date key condition that can be used for restricting data ranges. If there is no suitable condition, it throws an exception. However, it does not check whether the condition reduces the amount of data to read. For example, the condition `Date != ' 2000-01-01 '` is acceptable even when it matches all the data in the table (i.e., running the query requires a full scan). For more information about ranges of data in MergeTree tables, see [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree). ## force_optimize_projection {#force_optimize_projection} -Enables or disables the obligatory use of [projections](/reference/engines/table-engines/mergetree-family/mergetree#projections) in `SELECT` queries, when projection optimization is enabled (see [optimize_use_projections](#optimize_use_projections) setting). +Enables or disables the obligatory use of [projections](/core/reference/engines/table-engines/mergetree-family/mergetree#projections) in `SELECT` queries, when projection optimization is enabled (see [optimize_use_projections](#optimize_use_projections) setting). Possible values: @@ -4662,7 +4669,7 @@ Disables query execution if indexing by the primary key is not possible. Works with tables in the MergeTree family. -If `force_primary_key=1`, ClickHouse checks to see if the query has a primary key condition that can be used for restricting data ranges. If there is no suitable condition, it throws an exception. However, it does not check whether the condition reduces the amount of data to read. For more information about data ranges in MergeTree tables, see [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree). +If `force_primary_key=1`, ClickHouse checks to see if the query has a primary key condition that can be used for restricting data ranges. If there is no suitable condition, it throws an exception. However, it does not check whether the condition reduces the amount of data to read. For more information about data ranges in MergeTree tables, see [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree). ## force_remove_data_recursively_on_drop {#force_remove_data_recursively_on_drop} @@ -4782,7 +4789,7 @@ Possible values: -Controls the order of arguments in function [locate](/reference/functions/regular-functions/string-search-functions#locate). +Controls the order of arguments in function [locate](/core/reference/functions/regular-functions/string-search-functions#locate). Possible values: @@ -4793,7 +4800,7 @@ Possible values: -Sets the safety threshold for data volume generated by function [range](/reference/functions/regular-functions/array-functions#range). Defines the maximum number of values generated by function per block of data (sum of array sizes for every row in a block). +Sets the safety threshold for data volume generated by function [range](/core/reference/functions/regular-functions/array-functions#range). Defines the maximum number of values generated by function per block of data (sum of array sizes for every row in a block). Possible values: @@ -4896,18 +4903,18 @@ From what size of the aggregation state in bytes, a two-level aggregation begins -Changes the way the [GROUP BY clause](/reference/statements/select/group-by) treats the types of aggregation keys. +Changes the way the [GROUP BY clause](/core/reference/statements/select/group-by) treats the types of aggregation keys. When the `ROLLUP`, `CUBE`, or `GROUPING SETS` specifiers are used, some aggregation keys may not be used to produce some result rows. Columns for these keys are filled with either default value or `NULL` in corresponding rows depending on this setting. Possible values: - 0 — The default value for the aggregation key type is used to produce missing values. -- 1 — ClickHouse executes `GROUP BY` the same way as the SQL standard says. The types of aggregation keys are converted to [Nullable](/reference/data-types/nullable). Columns for corresponding aggregation keys are filled with [NULL](/reference/syntax#null) for rows that didn't use it. +- 1 — ClickHouse executes `GROUP BY` the same way as the SQL standard says. The types of aggregation keys are converted to [Nullable](/core/reference/data-types/nullable). Columns for corresponding aggregation keys are filled with [NULL](/core/reference/syntax#null) for rows that didn't use it. See also: -- [GROUP BY clause](/reference/statements/select/group-by) +- [GROUP BY clause](/core/reference/statements/select/group-by) ## h3togeo_lon_lat_result_order {#h3togeo_lon_lat_result_order} @@ -4957,7 +4964,7 @@ The actual number of replications can be specified when the hdfs file is created -Enables or disables skipping empty files in [HDFS](/reference/engines/table-engines/integrations/hdfs) engine tables. +Enables or disables skipping empty files in [HDFS](/core/reference/engines/table-engines/integrations/hdfs) engine tables. Possible values: - 0 — `SELECT` throws an exception if empty file is not compatible with requested format. @@ -4999,7 +5006,7 @@ Connection timeout for establishing connection with replica for Hedged requests -Sets the maximum number of highlight matches per row in the [highlight](/reference/functions/regular-functions/string-search-functions#highlight) function. Use it to protect against excessive memory usage when highlighting highly repetitive patterns in large texts. +Sets the maximum number of highlight matches per row in the [highlight](/core/reference/functions/regular-functions/string-search-functions#highlight) function. Use it to protect against excessive memory usage when highlighting highly repetitive patterns in large texts. Possible values: @@ -5114,7 +5121,7 @@ Possible values: Enables or disables checksum verification when decompressing the HTTP POST data from the client. Used only for ClickHouse native compression format (not used with `gzip` or `deflate`). -For more information, read the [HTTP interface description](/integrations/connectors/data-integrations/drivers-and-interfaces/http). +For more information, read the [HTTP interface description](/core/concepts/features/interfaces/http). Possible values: @@ -5389,7 +5396,7 @@ Possible values: -Only has an effect in ClickHouse Cloud. Exclude new data parts from SELECT queries until they're either pre-warmed (see [cache_populated_by_fetch](/reference/settings/merge-tree-settings#cache_populated_by_fetch)) or this many seconds old. Only for Replicated-/SharedMergeTree. +Only has an effect in ClickHouse Cloud. Exclude new data parts from SELECT queries until they're either pre-warmed (see [cache_populated_by_fetch](/core/reference/settings/merge-tree-settings#cache_populated_by_fetch)) or this many seconds old. Only for Replicated-/SharedMergeTree. ## ignore_data_skipping_indices {#ignore_data_skipping_indices} @@ -5592,9 +5599,9 @@ Possible values: - 0 — Disabled. - 1 — Enabled. -By default, blocks inserted into replicated tables by the `INSERT` statement are deduplicated (see [Data Replication](/reference/engines/table-engines/mergetree-family/replication)). -For the replicated tables by default the only 100 of the most recent blocks for each partition are deduplicated (see [replicated_deduplication_window](/reference/settings/merge-tree-settings#replicated_deduplication_window), [replicated_deduplication_window_seconds](/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds)). -For not replicated tables see [non_replicated_deduplication_window](/reference/settings/merge-tree-settings#non_replicated_deduplication_window). +By default, blocks inserted into replicated tables by the `INSERT` statement are deduplicated (see [Data Replication](/core/reference/engines/table-engines/mergetree-family/replication)). +For the replicated tables by default the only 100 of the most recent blocks for each partition are deduplicated (see [replicated_deduplication_window](/core/reference/settings/merge-tree-settings#replicated_deduplication_window), [replicated_deduplication_window_seconds](/core/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds)). +For not replicated tables see [non_replicated_deduplication_window](/core/reference/settings/merge-tree-settings#non_replicated_deduplication_window). ## insert_deduplication_token {#insert_deduplication_token} @@ -5608,8 +5615,8 @@ Possible values: `insert_deduplication_token` is used for deduplication _only_ when not empty. -For the replicated tables by default the only 100 of the most recent inserts for each partition are deduplicated (see [replicated_deduplication_window](/reference/settings/merge-tree-settings#replicated_deduplication_window), [replicated_deduplication_window_seconds](/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds)). -For not replicated tables see [non_replicated_deduplication_window](/reference/settings/merge-tree-settings#non_replicated_deduplication_window). +For the replicated tables by default the only 100 of the most recent inserts for each partition are deduplicated (see [replicated_deduplication_window](/core/reference/settings/merge-tree-settings#replicated_deduplication_window), [replicated_deduplication_window_seconds](/core/reference/settings/merge-tree-settings#replicated_deduplication_window_seconds)). +For not replicated tables see [non_replicated_deduplication_window](/core/reference/settings/merge-tree-settings#non_replicated_deduplication_window). `insert_deduplication_token` works on a partition level (the same as `insert_deduplication` checksum). Multiple partitions can have the same `insert_deduplication_token`. @@ -5706,10 +5713,10 @@ Possible values: -Enables or disables the insertion of [default values](/reference/statements/create/table#default_values) instead of [NULL](/reference/syntax#null) into columns with not [nullable](/reference/data-types/nullable) data type. +Enables or disables the insertion of [default values](/core/reference/statements/create/table#default_values) instead of [NULL](/core/reference/syntax#null) into columns with not [nullable](/core/reference/data-types/nullable) data type. If column type is not nullable and this setting is disabled, then inserting `NULL` causes an exception. If column type is nullable, then `NULL` values are inserted as is, regardless of this setting. -This setting is applicable to [INSERT ... SELECT](/reference/statements/insert-into#inserting-the-results-of-select) queries. Note that `SELECT` subqueries may be concatenated with `UNION ALL` clause. +This setting is applicable to [INSERT ... SELECT](/core/reference/statements/insert-into#inserting-the-results-of-select) queries. Note that `SELECT` subqueries may be concatenated with `UNION ALL` clause. Possible values: @@ -5786,7 +5793,7 @@ See also: -If not `0`, specifies the shard of [Distributed](/reference/engines/table-engines/special/distributed) table into which the data will be inserted synchronously. +If not `0`, specifies the shard of [Distributed](/core/reference/engines/table-engines/special/distributed) table into which the data will be inserted synchronously. If `insert_shard_id` value is incorrect, the server will throw an exception. @@ -5799,7 +5806,7 @@ SELECT uniq(shard_num) FROM system.clusters WHERE cluster = 'requested_cluster'; Possible values: - 0 — Disabled. -- Any number from `1` to `shards_num` of corresponding [Distributed](/reference/engines/table-engines/special/distributed) table. +- Any number from `1` to `shards_num` of corresponding [Distributed](/core/reference/engines/table-engines/special/distributed) table. **Example** @@ -5859,7 +5866,7 @@ Collect jemalloc allocation and deallocation samples in trace log. Enable jemalloc profiler for the query. Jemalloc will sample allocations and all deallocations for sampled allocations. Profiles can be flushed using SYSTEM JEMALLOC FLUSH PROFILE which can be used for allocation analysis. Samples can also be stored in system.trace_log using config jemalloc_collect_global_profile_samples_in_trace_log or with query setting jemalloc_collect_profile_samples_in_trace_log. -See [Allocation Profiling](/concepts/features/performance/allocation-profiling) +See [Allocation Profiling](/core/concepts/features/performance/allocation-profiling) ## jemalloc_profile_text_collapsed_use_count {#jemalloc_profile_text_collapsed_use_count} @@ -5894,7 +5901,7 @@ Whether to include inline frames when symbolizing jemalloc heap profile. When en -Specifies which [JOIN](/reference/statements/select/join) algorithm is used. +Specifies which [JOIN](/core/reference/statements/select/join) algorithm is used. Several algorithms can be specified, and an available one would be chosen for a particular query based on kind/strictness and table engine. @@ -5904,7 +5911,7 @@ Possible values: [Grace hash join](https://en.wikipedia.org/wiki/Hash_join#Grace_hash_join) is used. Grace hash provides an algorithm option that provides performant complex joins while limiting memory use. - The first phase of a grace join reads the right table and splits it into N buckets depending on the hash value of key columns (initially, N is `grace_hash_join_initial_buckets`). This is done in a way to ensure that each bucket can be processed independently. Rows from the first bucket are added to an in-memory hash table while the others are saved to disk. If the hash table grows beyond the memory limit (e.g., as set by [`max_bytes_in_join`](/reference/settings/session-settings#max_bytes_in_join), the number of buckets is increased and the assigned bucket for each row. Any rows which don't belong to the current bucket are flushed and reassigned. + The first phase of a grace join reads the right table and splits it into N buckets depending on the hash value of key columns (initially, N is `grace_hash_join_initial_buckets`). This is done in a way to ensure that each bucket can be processed independently. Rows from the first bucket are added to an in-memory hash table while the others are saved to disk. If the hash table grows beyond the memory limit (e.g., as set by [`max_bytes_in_join`](/core/reference/settings/session-settings#max_bytes_in_join), the number of buckets is increased and the assigned bucket for each row. Any rows which don't belong to the current bucket are flushed and reassigned. Supports `INNER/LEFT/RIGHT/FULL ALL/ANY JOIN`. @@ -5931,7 +5938,7 @@ Possible values: - direct The `direct` (also known as nested loop) algorithm performs a lookup in the right table using rows from the left table as keys. - It's supported by special storages such as [Dictionary](/reference/engines/table-engines/special/dictionary), [EmbeddedRocksDB](/reference/engines/table-engines/integrations/embedded-rocksdb), and [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables. + It's supported by special storages such as [Dictionary](/core/reference/engines/table-engines/special/dictionary), [EmbeddedRocksDB](/core/reference/engines/table-engines/integrations/embedded-rocksdb), and [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables. For MergeTree tables, the algorithm pushes join key filters directly to the storage layer. This can be more efficient when the key can use the table's primary key index for lookups, otherwise it performs full scans of the right table for each left table block. @@ -5961,7 +5968,7 @@ Possible values: Changes the behaviour of join operations with `ANY` strictness. -This setting applies only for `JOIN` operations with [Join](/reference/engines/table-engines/special/join) engine tables. +This setting applies only for `JOIN` operations with [Join](/core/reference/engines/table-engines/special/join) engine tables. Possible values: @@ -5971,15 +5978,15 @@ Possible values: See also: -- [JOIN clause](/reference/statements/select/join) -- [Join table engine](/reference/engines/table-engines/special/join) +- [JOIN clause](/core/reference/statements/select/join) +- [Join table engine](/core/reference/engines/table-engines/special/join) - [join_default_strictness](#join_default_strictness) ## join_default_strictness {#join_default_strictness} -Sets default strictness for [JOIN clauses](/reference/statements/select/join). +Sets default strictness for [JOIN clauses](/core/reference/statements/select/join). Possible values: @@ -6014,8 +6021,8 @@ The lower limit of per-key average rows in the right table to determine whether Defines what action ClickHouse performs when any of the following join limits is reached: -- [max_bytes_in_join](/reference/settings/session-settings#max_bytes_in_join) -- [max_rows_in_join](/reference/settings/session-settings#max_rows_in_join) +- [max_bytes_in_join](/core/reference/settings/session-settings#max_bytes_in_join) +- [max_rows_in_join](/core/reference/settings/session-settings#max_rows_in_join) Possible values: @@ -6026,8 +6033,8 @@ Default value: `THROW`. **See Also** -- [JOIN clause](/reference/statements/select/join) -- [Join table engine](/reference/engines/table-engines/special/join) +- [JOIN clause](/core/reference/statements/select/join) +- [Join table engine](/core/reference/engines/table-engines/special/join) ## join_runtime_bloom_filter_bytes {#join_runtime_bloom_filter_bytes} @@ -6113,12 +6120,12 @@ The lower limit of per-key average rows in the right table to determine whether -Sets the type of [JOIN](/reference/statements/select/join) behaviour. When merging tables, empty cells may appear. ClickHouse fills them differently based on this setting. +Sets the type of [JOIN](/core/reference/statements/select/join) behaviour. When merging tables, empty cells may appear. ClickHouse fills them differently based on this setting. Possible values: - 0 — The empty cells are filled with the default value of the corresponding field type. -- 1 — `JOIN` behaves the same way as in standard SQL. The type of the corresponding field is converted to [Nullable](/reference/data-types/nullable), and empty cells are filled with [NULL](/reference/syntax). +- 1 — `JOIN` behaves the same way as in standard SQL. The type of the corresponding field is converted to [Nullable](/core/reference/data-types/nullable), and empty cells are filled with [NULL](/core/reference/syntax). ## joined_block_split_single_row {#joined_block_split_single_row} @@ -6147,7 +6154,7 @@ Disable limit on kafka_num_consumers that depends on the number of available CPU -The wait time in milliseconds for reading messages from [Kafka](/reference/engines/table-engines/integrations/kafka) before retry. +The wait time in milliseconds for reading messages from [Kafka](/core/reference/engines/table-engines/integrations/kafka) before retry. Possible values: @@ -6236,8 +6243,8 @@ Possible values: **See Also** -- [Synchronicity of ALTER Queries](/reference/statements/alter#synchronicity-of-alter-queries) -- [Mutations](/reference/statements/alter#mutations) +- [Synchronicity of ALTER Queries](/core/reference/statements/alter#synchronicity-of-alter-queries) +- [Mutations](/core/reference/statements/alter#mutations) Cloud default value: `1`. @@ -6245,7 +6252,7 @@ Cloud default value: `1`. -Sets the maximum number of rows to get from the query result. It adjusts the value set by the [LIMIT](/reference/statements/select/limit) clause, so that the limit, specified in the query, cannot exceed the limit, set by this setting. +Sets the maximum number of rows to get from the query result. It adjusts the value set by the [LIMIT](/core/reference/statements/select/limit) clause, so that the limit, specified in the query, cannot exceed the limit, set by this setting. Possible values: @@ -6386,9 +6393,9 @@ Possible values: ## log_comment {#log_comment} -Specifies the value for the `log_comment` field of the [system.query_log](/reference/system-tables/query_log) table and comment text for the server log. +Specifies the value for the `log_comment` field of the [system.query_log](/core/reference/system-tables/query_log) table and comment text for the server log. -It can be used to improve the readability of server logs. Additionally, it helps to select queries related to the test from the `system.query_log` after running [clickhouse-test](/resources/contribute/tests). +It can be used to improve the readability of server logs. Additionally, it helps to select queries related to the test from the `system.query_log` after running [clickhouse-test](/resources/develop-contribute/contribute/tests). Possible values: @@ -6418,7 +6425,7 @@ Result: -Allows to log formatted queries to the [system.query_log](/reference/system-tables/query_log) system table (populates `formatted_query` column in the [system.query_log](/reference/system-tables/query_log)). +Allows to log formatted queries to the [system.query_log](/core/reference/system-tables/query_log) system table (populates `formatted_query` column in the [system.query_log](/core/reference/system-tables/query_log)). Possible values: @@ -6435,8 +6442,8 @@ Write time that processor spent during execution/waiting for data to `system.pro See also: -- [`system.processors_profile_log`](/reference/system-tables/processors_profile_log) -- [`EXPLAIN PIPELINE`](/reference/statements/explain#explain-pipeline) +- [`system.processors_profile_log`](/core/reference/system-tables/processors_profile_log) +- [`EXPLAIN PIPELINE`](/core/reference/statements/explain#explain-pipeline) ## log_profile_events {#log_profile_events} @@ -6450,7 +6457,7 @@ Log query performance statistics into the query_log, query_thread_log and query_ Setting up query logging. -Queries sent to ClickHouse with this setup are logged according to the rules in the [query_log](/reference/settings/server-settings/settings#query_log) server configuration parameter. +Queries sent to ClickHouse with this setup are logged according to the rules in the [query_log](/core/reference/settings/server-settings/settings#query_log) server configuration parameter. Example: @@ -6503,7 +6510,7 @@ log_queries_min_type='EXCEPTION_WHILE_PROCESSING' -Allows a user to write to [query_log](/reference/system-tables/query_log), [query_thread_log](/reference/system-tables/query_thread_log), and [query_views_log](/reference/system-tables/query_views_log) system tables only a sample of queries selected randomly with the specified probability. It helps to reduce the load with a large volume of queries in a second. +Allows a user to write to [query_log](/core/reference/system-tables/query_log), [query_thread_log](/core/reference/system-tables/query_thread_log), and [query_views_log](/core/reference/system-tables/query_views_log) system tables only a sample of queries selected randomly with the specified probability. It helps to reduce the load with a large volume of queries in a second. Possible values: @@ -6523,7 +6530,7 @@ Log query settings into the query_log and OpenTelemetry span log. Setting up query threads logging. -Query threads log into the [system.query_thread_log](/reference/system-tables/query_thread_log) table. This setting has effect only when [log_queries](#log_queries) is true. Queries' threads run by ClickHouse with this setup are logged according to the rules in the [query_thread_log](/reference/settings/server-settings/settings#query_thread_log) server configuration parameter. +Query threads log into the [system.query_thread_log](/core/reference/system-tables/query_thread_log) table. This setting has effect only when [log_queries](#log_queries) is true. Queries' threads run by ClickHouse with this setup are logged according to the rules in the [query_thread_log](/core/reference/settings/server-settings/settings#query_thread_log) server configuration parameter. Possible values: @@ -6542,7 +6549,7 @@ log_query_threads=1 Setting up query views logging. -When a query run by ClickHouse with this setting enabled has associated views (materialized or live views), they are logged in the [query_views_log](/reference/settings/server-settings/settings#query_views_log) server configuration parameter. +When a query run by ClickHouse with this setting enabled has associated views (materialized or live views), they are logged in the [query_views_log](/core/reference/settings/server-settings/settings#query_views_log) server configuration parameter. Example: @@ -6554,7 +6561,7 @@ log_query_views=1 -Allows or restricts using the [LowCardinality](/reference/data-types/lowcardinality) data type with the [Native](/reference/formats/Native) format. +Allows or restricts using the [LowCardinality](/core/reference/data-types/lowcardinality) data type with the [Native](/core/reference/formats/Native) format. If usage of `LowCardinality` is restricted, ClickHouse server converts `LowCardinality`-columns to ordinary ones for `SELECT` queries, and convert ordinary columns to `LowCardinality`-columns for `INSERT` queries. @@ -6569,7 +6576,7 @@ Possible values: -Sets a maximum size in rows of a shared global dictionary for the [LowCardinality](/reference/data-types/lowcardinality) data type that can be written to a storage file system. This setting prevents issues with RAM in case of unlimited dictionary growth. All the data that can't be encoded due to maximum dictionary size limitation ClickHouse writes in an ordinary method. +Sets a maximum size in rows of a shared global dictionary for the [LowCardinality](/core/reference/data-types/lowcardinality) data type that can be written to a storage file system. This setting prevents issues with RAM in case of unlimited dictionary growth. All the data that can't be encoded due to maximum dictionary size limitation ClickHouse writes in an ordinary method. Possible values: @@ -6614,7 +6621,7 @@ Make distributed query plan. -If INSERTs build and store skip indexes. If disabled, skip indexes will only be built and stored [during merges](/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge) or by explicit [MATERIALIZE INDEX](/reference/statements/alter/skipping-index#materialize-index). +If INSERTs build and store skip indexes. If disabled, skip indexes will only be built and stored [during merges](/core/reference/settings/merge-tree-settings#materialize_skip_indexes_on_merge) or by explicit [MATERIALIZE INDEX](/core/reference/statements/alter/skipping-index#materialize-index). See also [exclude_materialize_skip_indexes_on_insert](#exclude_materialize_skip_indexes_on_insert). @@ -6710,11 +6717,11 @@ The block size should not be too small to avoid noticeable costs when processing Cloud default value: half the memory amount per replica. Enables or disables execution of `GROUP BY` clauses in external memory. -(See [GROUP BY in external memory](/reference/statements/select/group-by#group-by-in-external-memory)) +(See [GROUP BY in external memory](/core/reference/statements/select/group-by#group-by-in-external-memory)) Possible values: -- Maximum volume of RAM (in bytes) that can be used by the single [GROUP BY](/reference/statements/select/group-by) operation. +- Maximum volume of RAM (in bytes) that can be used by the single [GROUP BY](/core/reference/statements/select/group-by) operation. - `0` — `GROUP BY` in external memory disabled. @@ -6738,12 +6745,12 @@ If set to a non-zero value and `join_algorithm` is `hash`, `parallel_hash`, `def Cloud default value: half the memory amount per replica. -Enables or disables execution of `ORDER BY` clauses in external memory. See [ORDER BY Implementation Details](/reference/statements/select/order-by#implementation-details) +Enables or disables execution of `ORDER BY` clauses in external memory. See [ORDER BY Implementation Details](/core/reference/statements/select/order-by#implementation-details) If memory usage during ORDER BY operation exceeds this threshold in bytes, the 'external sorting' mode (spill data to disk) is activated. Possible values: -- Maximum volume of RAM (in bytes) that can be used by the single [ORDER BY](/reference/statements/select/order-by) operation. +- Maximum volume of RAM (in bytes) that can be used by the single [ORDER BY](/core/reference/statements/select/order-by) operation. The recommended value is half of available system memory - `0` — `ORDER BY` in external memory disabled. @@ -6774,13 +6781,13 @@ is used by a hash table when using DISTINCT. The maximum size in number of bytes of the hash table used when joining tables. -This setting applies to [SELECT ... JOIN](/reference/statements/select/join) -operations and the [Join table engine](/reference/engines/table-engines/special/join). +This setting applies to [SELECT ... JOIN](/core/reference/statements/select/join) +operations and the [Join table engine](/core/reference/engines/table-engines/special/join). If the query contains joins, ClickHouse checks this setting for every intermediate result. ClickHouse can proceed with different actions when the limit is reached. Use -the [join_overflow_mode](/reference/settings/session-settings#join_overflow_mode) settings to choose the action. +the [join_overflow_mode](/core/reference/settings/session-settings#join_overflow_mode) settings to choose the action. Possible values: @@ -6928,7 +6935,7 @@ Possible values: **See Also** -- [max_concurrent_queries](/reference/settings/server-settings/settings#max_concurrent_queries) +- [max_concurrent_queries](/core/reference/settings/server-settings/settings#max_concurrent_queries) Cloud default value: `1000`. @@ -6971,7 +6978,7 @@ The following parameters are only used when creating Distributed tables (and whe -Limits the maximum depth of recursive queries for [Distributed](/reference/engines/table-engines/special/distributed) tables. +Limits the maximum depth of recursive queries for [Distributed](/core/reference/engines/table-engines/special/distributed) tables. If the value is exceeded, the server throws an exception. @@ -6999,7 +7006,7 @@ The maximum number of threads to download data (e.g. for URL engine). Maximum query estimate execution time in seconds. Checked on every data block -when [`timeout_before_checking_execution_speed`](/reference/settings/session-settings#timeout_before_checking_execution_speed) +when [`timeout_before_checking_execution_speed`](/core/reference/settings/session-settings#timeout_before_checking_execution_speed) expires. ## max_execution_speed {#max_execution_speed} @@ -7007,7 +7014,7 @@ expires. The maximum number of execution rows per second. Checked on every data block when -[`timeout_before_checking_execution_speed`](/reference/settings/session-settings#timeout_before_checking_execution_speed) +[`timeout_before_checking_execution_speed`](/core/reference/settings/session-settings#timeout_before_checking_execution_speed) expires. If the execution speed is high, the execution speed will be reduced. ## max_execution_speed_bytes {#max_execution_speed_bytes} @@ -7015,7 +7022,7 @@ expires. If the execution speed is high, the execution speed will be reduced. The maximum number of execution bytes per second. Checked on every data block when -[`timeout_before_checking_execution_speed`](/reference/settings/session-settings#timeout_before_checking_execution_speed) +[`timeout_before_checking_execution_speed`](/core/reference/settings/session-settings#timeout_before_checking_execution_speed) expires. If the execution speed is high, the execution speed will be reduced. ## max_execution_time {#max_execution_time} @@ -7026,7 +7033,7 @@ The maximum query execution time in seconds. The `max_execution_time` parameter can be a bit tricky to understand. It operates based on interpolation relative to the current query execution speed -(this behaviour is controlled by [`timeout_before_checking_execution_speed`](/reference/settings/session-settings#timeout_before_checking_execution_speed)). +(this behaviour is controlled by [`timeout_before_checking_execution_speed`](/core/reference/settings/session-settings#timeout_before_checking_execution_speed)). ClickHouse will interrupt a query if the projected execution time exceeds the specified `max_execution_time`. By default, the `timeout_before_checking_execution_speed` @@ -7084,7 +7091,7 @@ Amount of retries while fetching partition from another host. -Sets the maximum number of parallel threads for the `SELECT` query data read phase with the [FINAL](/reference/statements/select/from#final-modifier) modifier. +Sets the maximum number of parallel threads for the `SELECT` query data read phase with the [FINAL](/core/reference/statements/select/from#final-modifier) modifier. Possible values: @@ -7103,7 +7110,7 @@ Cloud default value: `10`. -Defines the maximum length for each regular expression in the [hyperscan multi-match functions](/reference/functions/regular-functions/string-search-functions#multiMatchAny). +Defines the maximum length for each regular expression in the [hyperscan multi-match functions](/core/reference/functions/regular-functions/string-search-functions#multiMatchAny). Possible values: @@ -7146,7 +7153,7 @@ Exception: Regexp length too large. -Sets the maximum length total of all regular expressions in each [hyperscan multi-match function](/reference/functions/regular-functions/string-search-functions#multiMatchAny). +Sets the maximum length total of all regular expressions in each [hyperscan multi-match function](/core/reference/functions/regular-functions/string-search-functions#multiMatchAny). Possible values: @@ -7324,8 +7331,8 @@ from `String` and `Array` arguments: - `argMin` - `argMax` -Memory consumption is also restricted by the parameters [`max_memory_usage_for_user`](/reference/settings/session-settings#max_memory_usage_for_user) -and [`max_server_memory_usage`](/reference/settings/server-settings/settings#max_server_memory_usage). +Memory consumption is also restricted by the parameters [`max_memory_usage_for_user`](/core/reference/settings/session-settings#max_memory_usage_for_user) +and [`max_server_memory_usage`](/core/reference/settings/server-settings/settings#max_server_memory_usage). ## max_memory_usage_for_user {#max_memory_usage_for_user} @@ -7335,7 +7342,7 @@ The maximum amount of RAM to use for running a user's queries on a single server By default, the amount is not restricted (`max_memory_usage_for_user = 0`). -Also see the description of [`max_memory_usage`](/reference/settings/session-settings#max_memory_usage). +Also see the description of [`max_memory_usage`](/core/reference/settings/session-settings#max_memory_usage). For example if you want to set `max_memory_usage_for_user` to 1000 bytes for a user named `clickhouse_read`, you can use the statement @@ -7472,7 +7479,7 @@ Restriction on dropping partitions in query time. The value `0` means that you c Cloud default value: 1 TB. -This query setting overwrites its server setting equivalent, see [max_partition_size_to_drop](/reference/settings/server-settings/settings#max_partition_size_to_drop) +This query setting overwrites its server setting equivalent, see [max_partition_size_to_drop](/core/reference/settings/server-settings/settings#max_partition_size_to_drop) ## max_partitions_per_insert_block {#max_partitions_per_insert_block} @@ -7522,7 +7529,7 @@ Possible values: - `-1` - unlimited (default) -You can also specify the MergeTree setting [`max_partitions_to_read`](/reference/settings/session-settings#max_partitions_to_read) in tables' setting. +You can also specify the MergeTree setting [`max_partitions_to_read`](/core/reference/settings/session-settings#max_partitions_to_read) in tables' setting. ## max_parts_to_move {#max_parts_to_move} @@ -7610,7 +7617,7 @@ The maximum speed of data exchange over the network in bytes per second for writ -Disables lagging replicas for distributed queries. See [Replication](/reference/engines/table-engines/mergetree-family/replication). +Disables lagging replicas for distributed queries. See [Replication](/core/reference/engines/table-engines/mergetree-family/replication). Sets the time in seconds. If a replica's lag is greater than or equal to the set value, this replica is not used. @@ -7682,13 +7689,13 @@ The maximum number of different rows when using DISTINCT. Limits the number of rows in the hash table that is used when joining tables. -This settings applies to [SELECT ... JOIN](/reference/statements/select/join) -operations and the [Join](/reference/engines/table-engines/special/join) table engine. +This settings applies to [SELECT ... JOIN](/core/reference/statements/select/join) +operations and the [Join](/core/reference/engines/table-engines/special/join) table engine. If a query contains multiple joins, ClickHouse checks this setting for every intermediate result. ClickHouse can proceed with different actions when the limit is reached. Use the -[`join_overflow_mode`](/reference/settings/session-settings#join_overflow_mode) setting to choose the action. +[`join_overflow_mode`](/core/reference/settings/session-settings#join_overflow_mode) setting to choose the action. Possible values: @@ -7912,7 +7919,7 @@ Restriction on deleting tables in query time. The value `0` means that you can d Cloud default value: 1 TB. -This query setting overwrites its server setting equivalent, see [max_table_size_to_drop](/reference/settings/server-settings/settings#max_table_size_to_drop) +This query setting overwrites its server setting equivalent, see [max_table_size_to_drop](/core/reference/settings/server-settings/settings#max_table_size_to_drop) ## max_temporary_columns {#max_temporary_columns} @@ -7971,7 +7978,7 @@ approximately zero computing resources. -The maximum number of query processing threads, excluding threads for retrieving data from remote servers (see the ['max_distributed_connections'](/reference/settings/session-settings#max_distributed_connections) parameter). +The maximum number of query processing threads, excluding threads for retrieving data from remote servers (see the ['max_distributed_connections'](/core/reference/settings/session-settings#max_distributed_connections) parameter). This parameter applies to threads that perform the same stages of the query processing pipeline in parallel. For example, when reading from a table, if it is possible to evaluate expressions with functions, filter with `WHERE` and pre-aggregate for `GROUP BY` in parallel using at least 'max_threads' number of threads, then 'max_threads' are used. @@ -8033,7 +8040,7 @@ Maximum number of points, rings, or polygons allowed in a single WKB geometry el It represents the soft memory limit when the hard limit is reached on the global level. This value is used to compute the overcommit ratio for the query. Zero means skip the query. -Read more about [memory overcommit](/concepts/features/configuration/settings/memory-overcommit). +Read more about [memory overcommit](/core/concepts/features/configuration/settings/memory-overcommit). ## memory_overcommit_ratio_denominator_for_user {#memory_overcommit_ratio_denominator_for_user} @@ -8044,7 +8051,7 @@ Read more about [memory overcommit](/concepts/features/configuration/settings/me It represents the soft memory limit when the hard limit is reached on the user level. This value is used to compute the overcommit ratio for the query. Zero means skip the query. -Read more about [memory overcommit](/concepts/features/configuration/settings/memory-overcommit). +Read more about [memory overcommit](/core/concepts/features/configuration/settings/memory-overcommit). ## memory_profiler_sample_max_allocation_size {#memory_profiler_sample_max_allocation_size} @@ -8068,7 +8075,7 @@ Collect random allocations and deallocations and write them into system.trace_lo -Sets the step of memory profiler. Whenever query memory usage becomes larger than every next step in number of bytes the memory profiler will collect the allocating stacktrace and will write it into [trace_log](/reference/system-tables/trace_log). +Sets the step of memory profiler. Whenever query memory usage becomes larger than every next step in number of bytes the memory profiler will collect the allocating stacktrace and will write it into [trace_log](/core/reference/system-tables/trace_log). Possible values: @@ -8088,7 +8095,7 @@ For testing of `exception safety` - throw an exception every time you allocate m Maximum time thread will wait for memory to be freed in the case of memory overcommit on a user level. If the timeout is reached and memory is not freed, an exception is thrown. -Read more about [memory overcommit](/concepts/features/configuration/settings/memory-overcommit). +Read more about [memory overcommit](/core/concepts/features/configuration/settings/memory-overcommit). ## merge_table_max_tables_to_look_for_schema_inference {#merge_table_max_tables_to_look_for_schema_inference} @@ -8129,7 +8136,7 @@ Whether to use only prewhere columns size to determine reading task size. If ClickHouse should read more than `merge_tree_max_bytes_to_use_cache` bytes in one query, it does not use the cache of uncompressed blocks. -The cache of uncompressed blocks stores data extracted for queries. ClickHouse uses this cache to speed up responses to repeated small queries. This setting protects the cache from trashing by queries that read a large amount of data. The [uncompressed_cache_size](/reference/settings/server-settings/settings#uncompressed_cache_size) server setting defines the size of the cache of uncompressed blocks. +The cache of uncompressed blocks stores data extracted for queries. ClickHouse uses this cache to speed up responses to repeated small queries. This setting protects the cache from trashing by queries that read a large amount of data. The [uncompressed_cache_size](/core/reference/settings/server-settings/settings#uncompressed_cache_size) server setting defines the size of the cache of uncompressed blocks. Possible values: @@ -8141,7 +8148,7 @@ Possible values: If ClickHouse should read more than `merge_tree_max_rows_to_use_cache` rows in one query, it does not use the cache of uncompressed blocks. -The cache of uncompressed blocks stores data extracted for queries. ClickHouse uses this cache to speed up responses to repeated small queries. This setting protects the cache from trashing by queries that read a large amount of data. The [uncompressed_cache_size](/reference/settings/server-settings/settings#uncompressed_cache_size) server setting defines the size of the cache of uncompressed blocks. +The cache of uncompressed blocks stores data extracted for queries. ClickHouse uses this cache to speed up responses to repeated small queries. This setting protects the cache from trashing by queries that read a large amount of data. The [uncompressed_cache_size](/core/reference/settings/server-settings/settings#uncompressed_cache_size) server setting defines the size of the cache of uncompressed blocks. Possible values: @@ -8151,7 +8158,7 @@ Possible values: -If the number of bytes to read from one file of a [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree)-engine table exceeds `merge_tree_min_bytes_for_concurrent_read`, then ClickHouse tries to concurrently read from this file in several threads. +If the number of bytes to read from one file of a [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree)-engine table exceeds `merge_tree_min_bytes_for_concurrent_read`, then ClickHouse tries to concurrently read from this file in several threads. Possible value: @@ -8163,7 +8170,7 @@ Possible value: -The minimum number of bytes to read from one file before [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) engine can parallelize reading, when reading from remote filesystem. We do not recommend using this setting. +The minimum number of bytes to read from one file before [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) engine can parallelize reading, when reading from remote filesystem. We do not recommend using this setting. Possible values: @@ -8201,7 +8208,7 @@ Hard lower limit on the task size (even when the number of granules is low and t -If the number of rows to be read from a file of a [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) table exceeds `merge_tree_min_rows_for_concurrent_read` then ClickHouse tries to perform a concurrent reading from this file on several threads. +If the number of rows to be read from a file of a [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) table exceeds `merge_tree_min_rows_for_concurrent_read` then ClickHouse tries to perform a concurrent reading from this file on several threads. Possible values: @@ -8213,7 +8220,7 @@ Possible values: -The minimum number of lines to read from one file before the [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) engine can parallelize reading, when reading from remote filesystem. We do not recommend using this setting. +The minimum number of lines to read from one file before the [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) engine can parallelize reading, when reading from remote filesystem. We do not recommend using this setting. Possible values: @@ -8327,7 +8334,7 @@ The minimum chunk size in bytes, which each thread will parse in parallel. -For [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables. In order to reduce latency when processing queries, a block is compressed when writing the next mark if its size is at least `min_compress_block_size`. By default, 65,536. +For [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables. In order to reduce latency when processing queries, a block is compressed when writing the next mark if its size is at least `min_compress_block_size`. By default, 65,536. The actual size of the block, if the uncompressed data is less than `max_compress_block_size`, is no less than this value and no less than the volume of data for one mark. @@ -8369,7 +8376,7 @@ The number of identical sort descriptions before they are JIT-compiled Minimal execution speed in rows per second. Checked on every data block when -[`timeout_before_checking_execution_speed`](/reference/settings/session-settings#timeout_before_checking_execution_speed) +[`timeout_before_checking_execution_speed`](/core/reference/settings/session-settings#timeout_before_checking_execution_speed) expires. If the execution speed is lower, an exception is thrown. ## min_execution_speed_bytes {#min_execution_speed_bytes} @@ -8377,7 +8384,7 @@ expires. If the execution speed is lower, an exception is thrown. The minimum number of execution bytes per second. Checked on every data block when -[`timeout_before_checking_execution_speed`](/reference/settings/session-settings#timeout_before_checking_execution_speed) +[`timeout_before_checking_execution_speed`](/core/reference/settings/session-settings#timeout_before_checking_execution_speed) expires. If the execution speed is lower, an exception is thrown. ## min_external_table_block_size_bytes {#min_external_table_block_size_bytes} @@ -8449,7 +8456,7 @@ Possible values: -Sets the minimum number of bytes in the block which can be inserted into a table by an `INSERT` query. Smaller-sized blocks are squashed into bigger ones. This setting is applied only for blocks inserted into [materialized view](/reference/statements/create/view). By adjusting this setting, you control blocks squashing while pushing to materialized view and avoid excessive memory usage. +Sets the minimum number of bytes in the block which can be inserted into a table by an `INSERT` query. Smaller-sized blocks are squashed into bigger ones. This setting is applied only for blocks inserted into [materialized view](/core/reference/statements/create/view). By adjusting this setting, you control blocks squashing while pushing to materialized view and avoid excessive memory usage. Possible values: @@ -8490,7 +8497,7 @@ Possible values: -Sets the minimum number of rows in the block which can be inserted into a table by an `INSERT` query. Smaller-sized blocks are squashed into bigger ones. This setting is applied only for blocks inserted into [materialized view](/reference/statements/create/view). By adjusting this setting, you control blocks squashing while pushing to materialized view and avoid excessive memory usage. +Sets the minimum number of rows in the block which can be inserted into a table by an `INSERT` query. Smaller-sized blocks are squashed into bigger ones. This setting is applied only for blocks inserted into [materialized view](/core/reference/statements/create/view). By adjusting this setting, you control blocks squashing while pushing to materialized view and avoid excessive memory usage. Possible values: @@ -8614,7 +8621,7 @@ The maximum size of serialized literal in bytes to replace in `UPDATE` and `DELE -Allows to execute `ALTER TABLE ... UPDATE|DELETE|MATERIALIZE INDEX|MATERIALIZE PROJECTION|MATERIALIZE COLUMN|MATERIALIZE STATISTICS` queries ([mutations](/reference/statements/alter#mutations)) synchronously. +Allows to execute `ALTER TABLE ... UPDATE|DELETE|MATERIALIZE INDEX|MATERIALIZE PROJECTION|MATERIALIZE COLUMN|MATERIALIZE STATISTICS` queries ([mutations](/core/reference/statements/alter#mutations)) synchronously. Possible values: @@ -8643,7 +8650,7 @@ Defines how MySQL types are converted to corresponding ClickHouse types. A comma -When enabled, [FixedString](/reference/data-types/fixedstring) ClickHouse data type will be displayed as `TEXT` in [SHOW COLUMNS](/reference/statements/show#show_columns). +When enabled, [FixedString](/core/reference/data-types/fixedstring) ClickHouse data type will be displayed as `TEXT` in [SHOW COLUMNS](/core/reference/statements/show#show_columns). Has an effect only when the connection is made through the MySQL wire protocol. @@ -8656,7 +8663,7 @@ Has an effect only when the connection is made through the MySQL wire protocol. -When enabled, [String](/reference/data-types/string) ClickHouse data type will be displayed as `TEXT` in [SHOW COLUMNS](/reference/statements/show#show_columns). +When enabled, [String](/core/reference/data-types/string) ClickHouse data type will be displayed as `TEXT` in [SHOW COLUMNS](/core/reference/statements/show#show_columns). Has an effect only when the connection is made through the MySQL wire protocol. @@ -8732,7 +8739,7 @@ Use connection pooling in ODBC bridge. If set to false, a new connection is crea -Sets the number of rows to skip before starting to return rows from the query. It adjusts the offset set by the [OFFSET](/reference/statements/select/offset) clause, so that these two values are summarized. +Sets the number of rows to skip before starting to return rows from the query. It adjusts the offset set by the [OFFSET](/core/reference/statements/select/offset) clause, so that these two values are summarized. Possible values: @@ -8808,7 +8815,7 @@ Collect OpenTelemetry spans for processors. -Enables [GROUP BY](/reference/statements/select/group-by) optimization in [SELECT](/reference/statements/select) queries for aggregating data in corresponding order in [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables. +Enables [GROUP BY](/core/reference/statements/select/group-by) optimization in [SELECT](/core/reference/statements/select) queries for aggregating data in corresponding order in [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables. Possible values: @@ -8817,7 +8824,7 @@ Possible values: **See Also** -- [GROUP BY optimization](/reference/statements/select/group-by#group-by-optimization-depending-on-table-sorting-key) +- [GROUP BY optimization](/core/reference/statements/select/group-by#group-by-optimization-depending-on-table-sorting-key) ## optimize_aggregators_of_group_by_keys {#optimize_aggregators_of_group_by_keys} @@ -8837,7 +8844,7 @@ Populate constant comparison in AND chains to enhance filtering ability. Support -Use [constraints](/reference/statements/create/table#constraints) in order to append index condition. The default is `false`. +Use [constraints](/core/reference/statements/create/table#constraints) in order to append index condition. The default is `false`. Possible values: @@ -8961,14 +8968,14 @@ Enables or disables optimization by transforming some functions to reading subco These functions can be transformed: -- [length](/reference/functions/regular-functions/array-functions#length) to read the [size0](/reference/data-types/array#array-size) subcolumn. -- [empty](/reference/functions/regular-functions/array-functions#empty) to read the [size0](/reference/data-types/array#array-size) subcolumn. -- [notEmpty](/reference/functions/regular-functions/array-functions#notEmpty) to read the [size0](/reference/data-types/array#array-size) subcolumn. -- [isNull](/reference/functions/regular-functions/functions-for-nulls#isNull) to read the [null](/reference/data-types/nullable#finding-null) subcolumn. -- [isNotNull](/reference/functions/regular-functions/functions-for-nulls#isNotNull) to read the [null](/reference/data-types/nullable#finding-null) subcolumn. -- [count](/reference/functions/aggregate-functions/reference/count) to read the [null](/reference/data-types/nullable#finding-null) subcolumn. -- [mapKeys](/reference/functions/regular-functions/tuple-map-functions#mapKeys) to read the [keys](/reference/data-types/map#reading-subcolumns-of-map) subcolumn. -- [mapValues](/reference/functions/regular-functions/tuple-map-functions#mapValues) to read the [values](/reference/data-types/map#reading-subcolumns-of-map) subcolumn. +- [length](/core/reference/functions/regular-functions/array-functions#length) to read the [size0](/core/reference/data-types/array#array-size) subcolumn. +- [empty](/core/reference/functions/regular-functions/array-functions#empty) to read the [size0](/core/reference/data-types/array#array-size) subcolumn. +- [notEmpty](/core/reference/functions/regular-functions/array-functions#notEmpty) to read the [size0](/core/reference/data-types/array#array-size) subcolumn. +- [isNull](/core/reference/functions/regular-functions/functions-for-nulls#isNull) to read the [null](/core/reference/data-types/nullable#finding-null) subcolumn. +- [isNotNull](/core/reference/functions/regular-functions/functions-for-nulls#isNotNull) to read the [null](/core/reference/data-types/nullable#finding-null) subcolumn. +- [count](/core/reference/functions/aggregate-functions/reference/count) to read the [null](/core/reference/data-types/nullable#finding-null) subcolumn. +- [mapKeys](/core/reference/functions/regular-functions/tuple-map-functions#mapKeys) to read the [keys](/core/reference/data-types/map#reading-subcolumns-of-map) subcolumn. +- [mapValues](/core/reference/functions/regular-functions/tuple-map-functions#mapValues) to read the [values](/core/reference/data-types/map#reading-subcolumns-of-map) subcolumn. Possible values: @@ -9039,9 +9046,9 @@ The minimum length of the expression `expr <> x1 AND ... expr <> xN` for optimiz -Enables or disables automatic [PREWHERE](/reference/statements/select/prewhere) optimization in [SELECT](/reference/statements/select) queries. +Enables or disables automatic [PREWHERE](/core/reference/statements/select/prewhere) optimization in [SELECT](/core/reference/statements/select) queries. -Works only for [*MergeTree](/reference/engines/table-engines/mergetree-family) tables. +Works only for [*MergeTree](/core/reference/engines/table-engines/mergetree-family) tables. Possible values: @@ -9052,9 +9059,9 @@ Possible values: -Enables or disables automatic [PREWHERE](/reference/statements/select/prewhere) optimization in [SELECT](/reference/statements/select) queries with [FINAL](/reference/statements/select/from#final-modifier) modifier. +Enables or disables automatic [PREWHERE](/core/reference/statements/select/prewhere) optimization in [SELECT](/core/reference/statements/select) queries with [FINAL](/core/reference/statements/select/from#final-modifier) modifier. -Works only for [*MergeTree](/reference/engines/table-engines/mergetree-family) tables. +Works only for [*MergeTree](/core/reference/engines/table-engines/mergetree-family) tables. Possible values: @@ -9133,7 +9140,7 @@ Result: └─────────────┘ ``` -Note that this setting influences [Materialized view](/reference/statements/create/view#materialized-view) behaviour. +Note that this setting influences [Materialized view](/core/reference/statements/create/view#materialized-view) behaviour. ## optimize_or_like_chain {#optimize_or_like_chain} @@ -9153,7 +9160,7 @@ Replace distance functions on `QBit` data type with equivalent ones that only re -Enables [ORDER BY](/reference/statements/select/order-by#optimization-of-data-reading) optimization in [SELECT](/reference/statements/select) queries for reading data from [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables. +Enables [ORDER BY](/core/reference/statements/select/order-by#optimization-of-data-reading) optimization in [SELECT](/core/reference/statements/select) queries for reading data from [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables. Possible values: @@ -9162,7 +9169,7 @@ Possible values: **See Also** -- [ORDER BY Clause](/reference/statements/select/order-by#optimization-of-data-reading) +- [ORDER BY Clause](/core/reference/statements/select/order-by#optimization-of-data-reading) ## optimize_redundant_functions_in_order_by {#optimize_redundant_functions_in_order_by} @@ -9223,7 +9230,7 @@ Rewrite sumIf() and sum(if()) function countIf() function when logically equival -Enables or disables optimization for [OPTIMIZE TABLE ... FINAL](/reference/statements/optimize) query if there is only one part with level > 0 and it doesn't have expired TTL. +Enables or disables optimization for [OPTIMIZE TABLE ... FINAL](/core/reference/statements/optimize) query if there is only one part with level > 0 and it doesn't have expired TTL. - `OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1` @@ -9238,7 +9245,7 @@ Possible values: -Enables or disables skipping of unused shards for [SELECT](/reference/statements/select) queries that have sharding key condition in `WHERE/PREWHERE`, and activates related optimizations for distributed queries (e.g. aggregation by sharding key). +Enables or disables skipping of unused shards for [SELECT](/core/reference/statements/select) queries that have sharding key condition in `WHERE/PREWHERE`, and activates related optimizations for distributed queries (e.g. aggregation by sharding key). Assumes that the data is distributed by sharding key, otherwise a query yields incorrect result. @@ -9290,7 +9297,7 @@ Optimize sorting by sorting properties of input stream -Use [constraints](/reference/statements/create/table#constraints) for column substitution. The default is `false`. +Use [constraints](/core/reference/statements/create/table#constraints) for column substitution. The default is `false`. Possible values: @@ -9302,7 +9309,7 @@ Possible values: -Enables to fuse aggregate functions with identical argument. It rewrites query contains at least two aggregate functions from [sum](/reference/functions/aggregate-functions/reference/sum), [count](/reference/functions/aggregate-functions/reference/count) or [avg](/reference/functions/aggregate-functions/reference/avg) with identical argument to [sumCount](/reference/functions/aggregate-functions/reference/sumCount). +Enables to fuse aggregate functions with identical argument. It rewrites query contains at least two aggregate functions from [sum](/core/reference/functions/aggregate-functions/reference/sum), [count](/core/reference/functions/aggregate-functions/reference/count) or [avg](/core/reference/functions/aggregate-functions/reference/avg) with identical argument to [sumCount](/core/reference/functions/aggregate-functions/reference/sumCount). Possible values: @@ -9334,7 +9341,7 @@ FROM default.fuse_tbl AS __table1 -Enables or disables throwing an exception if an [OPTIMIZE](/reference/statements/optimize) query didn't perform a merge. +Enables or disables throwing an exception if an [OPTIMIZE](/core/reference/statements/optimize) query didn't perform a merge. By default, `OPTIMIZE` returns successfully even if it didn't do anything. This setting lets you differentiate these situations and get the reason in an exception message. @@ -9434,7 +9441,7 @@ Enables using projections to filter part ranges even when projections are not se -Enables or disables [projection](/reference/engines/table-engines/mergetree-family/mergetree#projections) optimization when processing `SELECT` queries. +Enables or disables [projection](/core/reference/engines/table-engines/mergetree-family/mergetree#projections) optimization when processing `SELECT` queries. Possible values: @@ -9445,7 +9452,7 @@ Possible values: -Use [constraints](/reference/statements/create/table#constraints) for query optimization. The default is `false`. +Use [constraints](/core/reference/statements/create/table#constraints) for query optimization. The default is `false`. Possible values: @@ -9539,7 +9546,7 @@ Default: -1 (disabled) Enables parallel distributed `INSERT ... SELECT` query. -If we execute `INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b` queries and both tables use the same cluster, and both tables are either [replicated](/reference/engines/table-engines/mergetree-family/replication) or non-replicated, then this query is processed locally on every shard. +If we execute `INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b` queries and both tables use the same cluster, and both tables are either [replicated](/core/reference/engines/table-engines/mergetree-family/replication) or non-replicated, then this query is processed locally on every shard. Possible values: @@ -9805,7 +9812,7 @@ If not 0 group left table blocks in bigger ones for left-side table in partial m -Limits sizes of right-hand join data blocks in partial merge join algorithm for [JOIN](/reference/statements/select/join) queries. +Limits sizes of right-hand join data blocks in partial merge join algorithm for [JOIN](/core/reference/statements/select/join) queries. ClickHouse server: @@ -9912,7 +9919,7 @@ Collect predicate selectivity statistics into `system.predicate_statistics_log`. -Enables or disables using the original column names instead of aliases in query expressions and clauses. It especially matters when alias is the same as the column name, see [Expression Aliases](/reference/syntax#notes-on-usage). Enable this setting to make aliases syntax rules in ClickHouse more compatible with most other database engines. +Enables or disables using the original column names instead of aliases in query expressions and clauses. It especially matters when alias is the same as the column name, see [Expression Aliases](/core/reference/syntax#notes-on-usage). Enable this setting to make aliases syntax rules in ClickHouse more compatible with most other database engines. Possible values: @@ -9981,7 +9988,7 @@ Another use case of `prefer_global_in_and_join` is accessing tables created by **See also:** -- [Distributed subqueries](/reference/statements/in#distributed-subqueries) for more information on how to use `GLOBAL IN`/`GLOBAL JOIN` +- [Distributed subqueries](/core/reference/statements/in#distributed-subqueries) for more information on how to use `GLOBAL IN`/`GLOBAL JOIN` ## prefer_localhost_replica {#prefer_localhost_replica} @@ -10006,7 +10013,7 @@ If it's used on a cluster with a single shard and multiple replicas, disabling t -Only has an effect in ClickHouse Cloud. If a merged part is less than this many seconds old and is not pre-warmed (see [cache_populated_by_fetch](/reference/settings/merge-tree-settings#cache_populated_by_fetch)), but all its source parts are available and pre-warmed, SELECT queries will read from those parts instead. Only for Replicated-/SharedMergeTree. Note that this only checks whether CacheWarmer processed the part; if the part was fetched into cache by something else, it'll still be considered cold until CacheWarmer gets to it; if it was warmed, then evicted from cache, it'll still be considered warm. +Only has an effect in ClickHouse Cloud. If a merged part is less than this many seconds old and is not pre-warmed (see [cache_populated_by_fetch](/core/reference/settings/merge-tree-settings#cache_populated_by_fetch)), but all its source parts are available and pre-warmed, SELECT queries will read from those parts instead. Only for Replicated-/SharedMergeTree. Note that this only checks whether CacheWarmer processed the part; if the part was fetched into cache by something else, it'll still be considered cold until CacheWarmer gets to it; if it was warmed, then evicted from cache, it'll still be considered warm. ## preferred_block_size_bytes {#preferred_block_size_bytes} @@ -10117,7 +10124,20 @@ Enable pushing user roles from originator to other nodes while performing a quer -Compress entries in the [query cache](/concepts/features/performance/caches/query-cache). Lessens the memory consumption of the query cache at the cost of slower inserts into / reads from it. +Compress entries in the [query cache](/core/concepts/features/performance/caches/query-cache). Lessens the memory consumption of the query cache at the cost of slower inserts into / reads from it. + +Possible values: + +- 0 - Disabled +- 1 - Enabled + +## query_cache_for_subqueries {#query_cache_for_subqueries} + + + + + +If turned on, subquery results may be written to and read from the [query cache](/core/concepts/features/performance/caches/query-cache). This enables propagation of `use_query_cache` into all subqueries. Possible values: @@ -10128,7 +10148,7 @@ Possible values: -The maximum number of query results the current user may store in the [query cache](/concepts/features/performance/caches/query-cache). 0 means unlimited. +The maximum number of query results the current user may store in the [query cache](/core/concepts/features/performance/caches/query-cache). 0 means unlimited. Possible values: @@ -10138,7 +10158,7 @@ Possible values: -The maximum amount of memory (in bytes) the current user may allocate in the [query cache](/concepts/features/performance/caches/query-cache). 0 means unlimited. +The maximum amount of memory (in bytes) the current user may allocate in the [query cache](/core/concepts/features/performance/caches/query-cache). 0 means unlimited. Possible values: @@ -10148,7 +10168,7 @@ Possible values: -Minimum duration in milliseconds a query needs to run for its result to be stored in the [query cache](/concepts/features/performance/caches/query-cache). +Minimum duration in milliseconds a query needs to run for its result to be stored in the [query cache](/core/concepts/features/performance/caches/query-cache). Possible values: @@ -10158,7 +10178,7 @@ Possible values: -Minimum number of times a `SELECT` query must run before its result is stored in the [query cache](/concepts/features/performance/caches/query-cache). +Minimum number of times a `SELECT` query must run before its result is stored in the [query cache](/core/concepts/features/performance/caches/query-cache). Possible values: @@ -10168,7 +10188,7 @@ Possible values: -Controls how the [query cache](/concepts/features/performance/caches/query-cache) handles `SELECT` queries with non-deterministic functions like `rand()` or `now()`. +Controls how the [query cache](/core/concepts/features/performance/caches/query-cache) handles `SELECT` queries with non-deterministic functions like `rand()` or `now()`. Possible values: @@ -10180,7 +10200,7 @@ Possible values: -If turned on, the result of `SELECT` queries cached in the [query cache](/concepts/features/performance/caches/query-cache) can be read by other users. +If turned on, the result of `SELECT` queries cached in the [query cache](/core/concepts/features/performance/caches/query-cache) can be read by other users. It is not recommended to enable this setting due to security reasons. Possible values: @@ -10192,7 +10212,7 @@ Possible values: -Squash partial result blocks to blocks of size [max_block_size](#max_block_size). Reduces performance of inserts into the [query cache](/concepts/features/performance/caches/query-cache) but improves the compressability of cache entries (see [query_cache_compress-entries](#query_cache_compress_entries)). +Squash partial result blocks to blocks of size [max_block_size](#max_block_size). Reduces performance of inserts into the [query cache](/core/concepts/features/performance/caches/query-cache) but improves the compressability of cache entries (see [query_cache_compress-entries](#query_cache_compress_entries)). Possible values: @@ -10205,7 +10225,7 @@ Possible values: -Controls how the [query cache](/concepts/features/performance/caches/query-cache) handles `SELECT` queries against system tables, i.e. tables in databases `system.*` and `information_schema.*`. +Controls how the [query cache](/core/concepts/features/performance/caches/query-cache) handles `SELECT` queries against system tables, i.e. tables in databases `system.*` and `information_schema.*`. Possible values: @@ -10217,7 +10237,7 @@ Possible values: -A string which acts as a label for [query cache](/concepts/features/performance/caches/query-cache) entries. +A string which acts as a label for [query cache](/core/concepts/features/performance/caches/query-cache) entries. The same queries with different tags are considered different by the query cache. Possible values: @@ -10228,7 +10248,7 @@ Possible values: -After this time in seconds entries in the [query cache](/concepts/features/performance/caches/query-cache) become stale. +After this time in seconds entries in the [query cache](/core/concepts/features/performance/caches/query-cache) become stale. Possible values: @@ -10240,9 +10260,9 @@ Possible values: -The interval in milliseconds at which the [query_metric_log](/reference/system-tables/query_metric_log) for individual queries is collected. +The interval in milliseconds at which the [query_metric_log](/core/reference/system-tables/query_metric_log) for individual queries is collected. -If set to any negative value, it will take the value `collect_interval_milliseconds` from the [query_metric_log setting](/reference/settings/server-settings/settings#query_metric_log) or default to 1000 if not present. +If set to any negative value, it will take the value `collect_interval_milliseconds` from the [query_metric_log setting](/core/reference/settings/server-settings/settings#query_metric_log) or default to 1000 if not present. To disable the collection of a single query, set `query_metric_log_interval` to 0. @@ -10714,7 +10734,7 @@ Possible values: -Sets the period for a CPU clock timer of the [query profiler](/concepts/features/performance/troubleshoot/sampling-query-profiler). This timer counts only CPU time. +Sets the period for a CPU clock timer of the [query profiler](/core/concepts/features/performance/troubleshoot/sampling-query-profiler). This timer counts only CPU time. Possible values: @@ -10729,13 +10749,13 @@ Possible values: See also: -- System table [trace_log](/reference/system-tables/trace_log) +- System table [trace_log](/core/reference/system-tables/trace_log) ## query_profiler_real_time_period_ns {#query_profiler_real_time_period_ns} -Sets the period for a real clock timer of the [query profiler](/concepts/features/performance/troubleshoot/sampling-query-profiler). Real clock timer counts wall-clock time. +Sets the period for a real clock timer of the [query profiler](/core/concepts/features/performance/troubleshoot/sampling-query-profiler). Real clock timer counts wall-clock time. Possible values: @@ -10750,7 +10770,7 @@ Possible values: See also: -- System table [trace_log](/reference/system-tables/trace_log) +- System table [trace_log](/core/reference/system-tables/trace_log) Cloud default value: `3000000000`. @@ -10932,7 +10952,7 @@ Allow '.' to match newline characters for a regexp_tree dictionary. -Sets the maximum number of matches for a single regular expression per row. Use it to protect against memory overload when using greedy regular expression in the [extractAllGroupsHorizontal](/reference/functions/regular-functions/string-search-functions#extractAllGroupsHorizontal) function. +Sets the maximum number of matches for a single regular expression per row. Use it to protect against memory overload when using greedy regular expression in the [extractAllGroupsHorizontal](/core/reference/functions/regular-functions/string-search-functions#extractAllGroupsHorizontal) function. Possible values: @@ -11031,7 +11051,7 @@ Possible values: -Specifies how long (in seconds) to wait for inactive replicas to execute [`ALTER`](/reference/statements/alter), [`OPTIMIZE`](/reference/statements/optimize) or [`TRUNCATE`](/reference/statements/truncate) queries. +Specifies how long (in seconds) to wait for inactive replicas to execute [`ALTER`](/core/reference/statements/alter), [`OPTIMIZE`](/core/reference/statements/optimize) or [`TRUNCATE`](/core/reference/statements/truncate) queries. Possible values: @@ -11088,8 +11108,8 @@ Possible values: Using 'break' is similar to using LIMIT. `Break` interrupts execution only at the block level. This means that amount of returned rows is greater than -[`max_result_rows`](/reference/settings/session-settings#max_result_rows), multiple of [`max_block_size`](/reference/settings/session-settings#max_block_size) -and depends on [`max_threads`](/reference/settings/session-settings#max_threads). +[`max_result_rows`](/core/reference/settings/session-settings#max_result_rows), multiple of [`max_block_size`](/core/reference/settings/session-settings#max_block_size) +and depends on [`max_threads`](/core/reference/settings/session-settings#max_threads). **Example** @@ -11306,7 +11326,7 @@ Idleness timeout for sending and receiving data to/from S3. Fail if a single TCP -Enables or disables skipping empty files in [S3](/reference/engines/table-engines/integrations/s3) engine tables. +Enables or disables skipping empty files in [S3](/core/reference/engines/table-engines/integrations/s3) engine tables. Possible values: - 0 — `SELECT` throws an exception if empty file is not compatible with requested format. @@ -11499,7 +11519,7 @@ Send server text logs with specified regexp to match log source name. Empty mean -Enables or disables sending of [ProfileEvents](/resources/contribute/native-protocol/server#profile-events) packets to the client. +Enables or disables sending of [ProfileEvents](/resources/develop-contribute/native-protocol/server#profile-events) packets to the client. This can be disabled to reduce network traffic for clients that do not require profile events. @@ -11514,7 +11534,7 @@ Possible values: Enables or disables `X-ClickHouse-Progress` HTTP response headers in `clickhouse-server` responses. -For more information, read the [HTTP interface description](/integrations/connectors/data-integrations/drivers-and-interfaces/http). +For more information, read the [HTTP interface description](/core/concepts/features/interfaces/http). Possible values: @@ -11558,7 +11578,7 @@ Serialize String values during aggregation with zero byte at the end. Enable to Sets the implicit time zone of the current session or query. The implicit time zone is the time zone applied to values of type DateTime/DateTime64 which have no explicitly specified time zone. The setting takes precedence over the globally configured (server-level) implicit time zone. -A value of '' (empty string) means that the implicit time zone of the current session or query is equal to the [server time zone](/reference/settings/server-settings/settings#timezone). +A value of '' (empty string) means that the implicit time zone of the current session or query is equal to the [server time zone](/core/reference/settings/server-settings/settings#timezone). You can use functions `timeZone()` and `serverTimeZone()` to get the session time zone and server time zone. @@ -11612,7 +11632,7 @@ This happens due to different parsing pipelines: **See also** -- [timezone](/reference/settings/server-settings/settings#timezone) +- [timezone](/core/reference/settings/server-settings/settings#timezone) ## set_overflow_mode {#set_overflow_mode} @@ -11661,7 +11681,7 @@ Automatically synchronize set of data parts after MOVE|REPLACE|ATTACH partition -Allows calculating the [if](/reference/functions/regular-functions/conditional-functions#if), [multiIf](/reference/functions/regular-functions/conditional-functions#multiIf), [and](/reference/functions/regular-functions/logical-functions#and), and [or](/reference/functions/regular-functions/logical-functions#or) functions according to a [short scheme](https://en.wikipedia.org/wiki/Short-circuit_evaluation). This helps optimize the execution of complex expressions in these functions and prevent possible exceptions (such as division by zero when it is not expected). +Allows calculating the [if](/core/reference/functions/regular-functions/conditional-functions#if), [multiIf](/core/reference/functions/regular-functions/conditional-functions#multiIf), [and](/core/reference/functions/regular-functions/logical-functions#and), and [or](/core/reference/functions/regular-functions/logical-functions#or) functions according to a [short scheme](https://en.wikipedia.org/wiki/Short-circuit_evaluation). This helps optimize the execution of complex expressions in these functions and prevent possible exceptions (such as division by zero when it is not expected). Possible values: @@ -11849,7 +11869,7 @@ Split parts ranges into intersecting and non intersecting during FINAL optimizat -Controls whether function [splitBy*()](/reference/functions/regular-functions/splitting-merging-functions) with argument `max_substrings` > 0 will include the remaining string in the last element of the result array. +Controls whether function [splitBy*()](/core/reference/functions/regular-functions/splitting-merging-functions) with argument `max_substrings` > 0 will include the remaining string in the last element of the result array. Possible values: @@ -11909,7 +11929,7 @@ Timeout for polling data from/to streaming storages. -Allows to select zero-valued events from [`system.events`](/reference/system-tables/events). +Allows to select zero-valued events from [`system.events`](/core/reference/system-tables/events). Some monitoring systems require passing all the metrics values to them for each checkpoint, even if the metric value is zero. @@ -11975,7 +11995,7 @@ Only has an effect in ClickHouse Cloud. Allow reading from distributed cache via -Sets the maximum number of addresses generated from patterns for the [remote](/reference/functions/table-functions/remote) function. +Sets the maximum number of addresses generated from patterns for the [remote](/core/reference/functions/table-functions/remote) function. Possible values: @@ -12047,7 +12067,7 @@ Requires `use_text_index_like_evaluation_by_dictionary_scan` to be enabled. -Allows or forbids empty INSERTs, enabled by default (throws an error on an empty insert). Only applies to INSERTs using [`clickhouse-client`](/integrations/connectors/data-integrations/drivers-and-interfaces/cli) or using the [gRPC interface](/integrations/connectors/data-integrations/drivers-and-interfaces/grpc). +Allows or forbids empty INSERTs, enabled by default (throws an error on an empty insert). Only applies to INSERTs using [`clickhouse-client`](/core/concepts/features/interfaces/cli) or using the [gRPC interface](/core/concepts/features/interfaces/grpc). ## throw_on_error_from_cache_on_write_operations {#throw_on_error_from_cache_on_write_operations} @@ -12066,7 +12086,7 @@ Possible values: - `false` - Logs a warning when `max_partitions_per_insert_block` is reached. -This can be useful if you're trying to understand the impact on users when changing [`max_partitions_per_insert_block`](/reference/settings/session-settings#max_partitions_per_insert_block). +This can be useful if you're trying to understand the impact on users when changing [`max_partitions_per_insert_block`](/core/reference/settings/session-settings#max_partitions_per_insert_block). ## throw_on_unsupported_query_inside_transaction {#throw_on_unsupported_query_inside_transaction} @@ -12125,7 +12145,7 @@ See the section "WITH TOTALS modifier". -Enables or disables collecting stacktraces on each update of profile events along with the name of profile event and the value of increment and sending them into [trace_log](/reference/system-tables/trace_log). +Enables or disables collecting stacktraces on each update of profile events along with the name of profile event and the value of increment and sending them into [trace_log](/core/reference/system-tables/trace_log). Possible values: @@ -12158,7 +12178,7 @@ source data ran out. -Enables equality of [NULL](/reference/syntax#null) values for [IN](/reference/statements/in) operator. +Enables equality of [NULL](/core/reference/syntax#null) values for [IN](/core/reference/statements/in) operator. By default, `NULL` values can't be compared because `NULL` means undefined value. Thus, comparison `expr = NULL` must always return `false`. With this setting `NULL = NULL` returns `true` for `IN` operator. @@ -12210,7 +12230,7 @@ Result: **See Also** -- [NULL Processing in IN Operators](/reference/statements/in#null-processing) +- [NULL Processing in IN Operators](/core/reference/statements/in#null-processing) ## traverse_shadow_remote_data_paths {#traverse_shadow_remote_data_paths} @@ -12222,7 +12242,7 @@ Traverse frozen data (shadow directory) in addition to actual table data when qu ## union_default_mode {#union_default_mode} -Sets a mode for combining `SELECT` query results. The setting is only used when shared with [UNION](/reference/statements/select/union) without explicitly specifying the `UNION ALL` or `UNION DISTINCT`. +Sets a mode for combining `SELECT` query results. The setting is only used when shared with [UNION](/core/reference/statements/select/union) without explicitly specifying the `UNION ALL` or `UNION DISTINCT`. Possible values: @@ -12230,7 +12250,7 @@ Possible values: - `'ALL'` — ClickHouse outputs all rows as a result of combining queries including duplicate rows. - `''` — ClickHouse generates an exception when used with `UNION`. -See examples in [UNION](/reference/statements/select/union). +See examples in [UNION](/core/reference/statements/select/union). ## unknown_packet_in_send_data {#unknown_packet_in_send_data} @@ -12263,7 +12283,7 @@ If true set of parts is updated to the latest version before execution of update -The base URL used to resolve relative URLs in the [url](/reference/functions/table-functions/url) table function and the [URL](/reference/engines/table-engines/special/url) table engine. +The base URL used to resolve relative URLs in the [url](/core/reference/functions/table-functions/url) table function and the [URL](/core/reference/engines/table-engines/special/url) table engine. When set, relative URLs are resolved as follows: - Path-relative URL (e.g. `data.csv`): merged with the base URL path per RFC 3986. Everything after the last `/` in the base path is replaced by the relative URL, so a trailing slash matters: `https://example.com/dir/` + `data.csv` = `https://example.com/dir/data.csv`, but `https://example.com/dir` + `data.csv` = `https://example.com/data.csv`. If the base has no path (e.g. `https://example.com`), a `/` is inserted: `https://example.com/data.csv`. Dot segments (`./` and `../`) in the relative URL are normalized: `https://example.com/dir/` + `../a.csv` = `https://example.com/a.csv`. @@ -12357,7 +12377,7 @@ Cloud default value: `0`. -When enabled, ClickHouse will detect Hive-style partitioning in path (`/name=value/`) in file-like table engines [File](/reference/functions/table-functions/file#hive-style-partitioning)/[S3](/reference/functions/table-functions/s3#hive-style-partitioning)/[URL](/reference/functions/table-functions/url#hive-style-partitioning)/[HDFS](/reference/functions/table-functions/hdfs#hive-style-partitioning)/[AzureBlobStorage](/reference/functions/table-functions/azureBlobStorage#hive-style-partitioning) and will allow to use partition columns as virtual columns in the query. These virtual columns will have the same names as in the partitioned path, but starting with `_`. +When enabled, ClickHouse will detect Hive-style partitioning in path (`/name=value/`) in file-like table engines [File](/core/reference/functions/table-functions/file#hive-style-partitioning)/[S3](/core/reference/functions/table-functions/s3#hive-style-partitioning)/[URL](/core/reference/functions/table-functions/url#hive-style-partitioning)/[HDFS](/core/reference/functions/table-functions/hdfs#hive-style-partitioning)/[AzureBlobStorage](/core/reference/functions/table-functions/azureBlobStorage#hive-style-partitioning) and will allow to use partition columns as virtual columns in the query. These virtual columns will have the same names as in the partitioned path, but starting with `_`. ## use_iceberg_metadata_files_cache {#use_iceberg_metadata_files_cache} @@ -12501,7 +12521,7 @@ Possible values: -If turned on, `SELECT` queries may utilize the [query cache](/concepts/features/performance/caches/query-cache). Parameters [enable_reads_from_query_cache](#enable_reads_from_query_cache) +If turned on, `SELECT` queries may utilize the [query cache](/core/concepts/features/performance/caches/query-cache). Parameters [enable_reads_from_query_cache](#enable_reads_from_query_cache) and [enable_writes_to_query_cache](#enable_writes_to_query_cache) control in more detail how the cache is used. Possible values: @@ -12515,7 +12535,7 @@ Possible values: -Enable the [query condition cache](/concepts/features/performance/caches/query-condition-cache). The cache stores ranges of granules in data parts which do not satisfy the condition in the `WHERE` clause, +Enable the [query condition cache](/core/concepts/features/performance/caches/query-condition-cache). The cache stores ranges of granules in data parts which do not satisfy the condition in the `WHERE` clause, and reuse this information as an ephemeral index for subsequent queries. Possible values: @@ -12749,7 +12769,7 @@ Possible values: Whether to use a cache of uncompressed blocks. Accepts 0 or 1. By default, 0 (disabled). -Using the uncompressed cache (only for tables in the MergeTree family) can significantly reduce latency and increase throughput when working with a large number of short queries. Enable this setting for users who send frequent short requests. Also pay attention to the [uncompressed_cache_size](/reference/settings/server-settings/settings#uncompressed_cache_size) configuration parameter (only set in the config file) – the size of uncompressed cache blocks. By default, it is 8 GiB. The uncompressed cache is filled in as needed and the least-used data is automatically deleted. +Using the uncompressed cache (only for tables in the MergeTree family) can significantly reduce latency and increase throughput when working with a large number of short queries. Enable this setting for users who send frequent short requests. Also pay attention to the [uncompressed_cache_size](/core/reference/settings/server-settings/settings#uncompressed_cache_size) configuration parameter (only set in the config file) – the size of uncompressed cache blocks. By default, it is 8 GiB. The uncompressed cache is filled in as needed and the least-used data is automatically deleted. For queries that read at least a somewhat large volume of data (one million rows or more), the uncompressed cache is disabled automatically to save space for truly small queries. This means that you can keep the 'use_uncompressed_cache' setting always set to 1. @@ -12759,7 +12779,7 @@ For queries that read at least a somewhat large volume of data (one million rows -Allows to use `Variant` type as a result type for [if](/reference/functions/regular-functions/conditional-functions#if)/[multiIf](/reference/functions/regular-functions/conditional-functions#multiIf)/[array](/reference/functions/regular-functions/array-functions)/[map](/reference/functions/regular-functions/tuple-map-functions) functions when there is no common type for argument types. +Allows to use `Variant` type as a result type for [if](/core/reference/functions/regular-functions/conditional-functions#if)/[multiIf](/core/reference/functions/regular-functions/conditional-functions#multiIf)/[array](/core/reference/functions/regular-functions/array-functions)/[map](/core/reference/functions/regular-functions/tuple-map-functions) functions when there is no common type for argument types. Example: @@ -12877,7 +12897,7 @@ Only change this setting if you encounter a backward-incompatible bug. -Enables or disables throwing an exception in the [pointInPolygon](/reference/functions/regular-functions/geo/coordinates#pointinpolygon) function, if the polygon is self-intersecting or self-tangent. +Enables or disables throwing an exception in the [pointInPolygon](/core/reference/functions/regular-functions/geo/coordinates#pointinpolygon) function, if the polygon is self-intersecting or self-tangent. Possible values: @@ -12890,7 +12910,7 @@ Possible values: -When applying a function to a [Variant](/reference/data-types/variant) column using the default implementation, +When applying a function to a [Variant](/core/reference/data-types/variant) column using the default implementation, controls what happens for rows whose actual type is incompatible with the function: - `true` (default) — throw an exception. - `false` — return `NULL` for those rows instead. diff --git a/core/reference/statements/alter/apply-deleted-mask.mdx b/core/reference/statements/alter/apply-deleted-mask.mdx new file mode 100644 index 00000000..fc240fa5 --- /dev/null +++ b/core/reference/statements/alter/apply-deleted-mask.mdx @@ -0,0 +1,22 @@ +--- +description: 'Documentation for Apply mask of deleted rows' +sidebarTitle: 'APPLY DELETED MASK' +slug: /sql-reference/statements/alter/apply-deleted-mask +title: 'Apply mask of deleted rows' +doc_type: 'reference' +--- + +```sql +ALTER TABLE [db].name [ON CLUSTER cluster] APPLY DELETED MASK [IN PARTITION partition_id] +``` + +The command applies mask created by [lightweight delete](/core/reference/statements/delete) and forcefully removes rows marked as deleted from disk. This command is a heavyweight mutation, and it semantically equals to query ```ALTER TABLE [db].name DELETE WHERE _row_exists = 0```. + + +It only works for tables in the [`MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) family (including [replicated](/core/reference/engines/table-engines/mergetree-family/replication) tables). + + +**See also** + +- [Lightweight deletes](/core/reference/statements/delete) +- [Heavyweight deletes](/core/reference/statements/alter/delete) diff --git a/reference/statements/alter/apply-patches.mdx b/core/reference/statements/alter/apply-patches.mdx similarity index 63% rename from reference/statements/alter/apply-patches.mdx rename to core/reference/statements/alter/apply-patches.mdx index 1a10bd41..9bc8ecc1 100644 --- a/reference/statements/alter/apply-patches.mdx +++ b/core/reference/statements/alter/apply-patches.mdx @@ -14,10 +14,10 @@ import BetaBadge from "/snippets/components/BetaBadge/BetaBadge.jsx"; ALTER TABLE [db.]table [ON CLUSTER cluster] APPLY PATCHES [IN PARTITION partition_id] ``` -The command manually triggers the physical materialization of patch parts created by [lightweight `UPDATE`](/reference/statements/update) statements. It forcefully applies pending patches to the data parts by rewriting only the affected columns. +The command manually triggers the physical materialization of patch parts created by [lightweight `UPDATE`](/core/reference/statements/update) statements. It forcefully applies pending patches to the data parts by rewriting only the affected columns. -- It only works for tables in the [`MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) family (including [replicated](/reference/engines/table-engines/mergetree-family/replication) tables). +- It only works for tables in the [`MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) family (including [replicated](/core/reference/engines/table-engines/mergetree-family/replication) tables). - This is a mutation operation and executes asynchronously in the background. @@ -27,7 +27,7 @@ The command manually triggers the physical materialization of patch parts create Generally, you should not need to use `APPLY PATCHES` -Patch parts are normally applied automatically during merges when the [`apply_patches_on_merge`](/reference/settings/merge-tree-settings#apply_patches_on_merge) setting is enabled (default). However, you may want to manually trigger patch application in these scenarios: +Patch parts are normally applied automatically during merges when the [`apply_patches_on_merge`](/core/reference/settings/merge-tree-settings#apply_patches_on_merge) setting is enabled (default). However, you may want to manually trigger patch application in these scenarios: - To reduce the overhead of applying patches during `SELECT` queries - To consolidate multiple patch parts before they accumulate @@ -53,7 +53,7 @@ ALTER TABLE my_table APPLY PATCHES, UPDATE column = value WHERE condition; ## Monitoring patch application {#monitor} -You can monitor the progress of patch application using the [`system.mutations`](/reference/system-tables/mutations) table: +You can monitor the progress of patch application using the [`system.mutations`](/core/reference/system-tables/mutations) table: ```sql SELECT * FROM system.mutations @@ -62,5 +62,5 @@ WHERE table = 'my_table' AND command LIKE '%APPLY PATCHES%'; ## See also {#see-also} -- [Lightweight `UPDATE`](/reference/statements/update) - Create patch parts with lightweight updates -- [`apply_patches_on_merge` setting](/reference/settings/merge-tree-settings#apply_patches_on_merge) - Control automatic patch application during merges +- [Lightweight `UPDATE`](/core/reference/statements/update) - Create patch parts with lightweight updates +- [`apply_patches_on_merge` setting](/core/reference/settings/merge-tree-settings#apply_patches_on_merge) - Control automatic patch application during merges diff --git a/reference/statements/alter/column.mdx b/core/reference/statements/alter/column.mdx similarity index 85% rename from reference/statements/alter/column.mdx rename to core/reference/statements/alter/column.mdx index 3283d4dd..dd1ed255 100644 --- a/reference/statements/alter/column.mdx +++ b/core/reference/statements/alter/column.mdx @@ -37,11 +37,11 @@ These actions are described in detail below. ADD COLUMN [IF NOT EXISTS] name [type] [default_expr] [codec] [AFTER name_after | FIRST] ``` -Adds a new column to the table with the specified `name`, `type`, [`codec`](/reference/statements/create/table#column_compression_codec) and `default_expr` (see the section [Default expressions](/reference/statements/create/table#default_values)). +Adds a new column to the table with the specified `name`, `type`, [`codec`](/core/reference/statements/create/table#column_compression_codec) and `default_expr` (see the section [Default expressions](/core/reference/statements/create/table#default_values)). If the `IF NOT EXISTS` clause is included, the query won't return an error if the column already exists. If you specify `AFTER name_after` (the name of another column), the column is added after the specified one in the list of table columns. If you want to add a column to the beginning of the table use the `FIRST` clause. Otherwise, the column is added to the end of the table. For a chain of actions, `name_after` can be the name of a column that is added in one of the previous actions. -Adding a column just changes the table structure, without performing any actions with data. The data does not appear on the disk after `ALTER`. If the data is missing for a column when reading from the table, it is filled in with default values (by performing the default expression if there is one, or using zeros or empty strings). The column appears on the disk after merging data parts (see [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree)). +Adding a column just changes the table structure, without performing any actions with data. The data does not appear on the disk after `ALTER`. If the data is missing for a column when reading from the table, it is filled in with default values (by performing the default expression if there is one, or using zeros or empty strings). The column appears on the disk after merging data parts (see [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree)). This approach allows us to complete the `ALTER` query instantly, without increasing the volume of old data. @@ -78,7 +78,7 @@ Deletes the column with the name `name`. If the `IF EXISTS` clause is specified, Deletes data from the file system. Since this deletes entire files, the query is completed almost instantly. -You can't delete a column if it is referenced by [materialized view](/reference/statements/create/view). Otherwise, it returns an error. +You can't delete a column if it is referenced by [materialized view](/core/reference/statements/create/view). Otherwise, it returns an error. Example: @@ -109,7 +109,7 @@ ALTER TABLE visits RENAME COLUMN webBrowser TO browser CLEAR COLUMN [IF EXISTS] name IN PARTITION partition_name ``` -Resets all data in a column for a specified partition. Read more about setting the partition name in the section [How to set the partition expression](/reference/statements/alter/partition#how-to-set-partition-expression). +Resets all data in a column for a specified partition. Read more about setting the partition name in the section [How to set the partition expression](/core/reference/statements/alter/partition#how-to-set-partition-expression). If the `IF EXISTS` clause is specified, the query won't return an error if the column does not exist. @@ -129,7 +129,7 @@ Adds a comment to the column. If the `IF EXISTS` clause is specified, the query Each column can have one comment. If a comment already exists for the column, a new comment overwrites the previous comment. -Comments are stored in the `comment_expression` column returned by the [DESCRIBE TABLE](/reference/statements/describe-table) query. +Comments are stored in the `comment_expression` column returned by the [DESCRIBE TABLE](/core/reference/statements/describe-table) query. Example: @@ -156,15 +156,15 @@ This query changes the `name` column properties: - Column-level Settings -For examples of columns compression CODECS modifying, see [Column Compression Codecs](/reference/statements/create/table#column_compression_codec). +For examples of columns compression CODECS modifying, see [Column Compression Codecs](/core/reference/statements/create/table#column_compression_codec). -For examples of columns TTL modifying, see [Column TTL](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-column-ttl). +For examples of columns TTL modifying, see [Column TTL](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-column-ttl). -For examples of column-level settings modifying, see [Column-level Settings](/reference/engines/table-engines/mergetree-family/mergetree#column-level-settings). +For examples of column-level settings modifying, see [Column-level Settings](/core/reference/engines/table-engines/mergetree-family/mergetree#column-level-settings). If the `IF EXISTS` clause is specified, the query won't return an error if the column does not exist. -When changing the type, values are converted as if the [toType](/reference/functions/regular-functions/type-conversion-functions) functions were applied to them. If only the default expression is changed, the query does not do anything complex, and is completed almost instantly. +When changing the type, values are converted as if the [toType](/core/reference/functions/regular-functions/type-conversion-functions) functions were applied to them. If only the default expression is changed, the query does not do anything complex, and is completed almost instantly. Example: @@ -236,7 +236,7 @@ ALTER TABLE table_with_ttl MODIFY COLUMN column_ttl REMOVE TTL; **See Also** -- [REMOVE TTL](/reference/statements/alter/ttl). +- [REMOVE TTL](/core/reference/statements/alter/ttl). ## MODIFY COLUMN MODIFY SETTING {#modify-column-modify-setting} @@ -277,7 +277,7 @@ ALTER TABLE table_name MODIFY COLUMN column_name RESET SETTING max_compress_bloc ## MATERIALIZE COLUMN {#materialize-column} Materializes a column with a `DEFAULT` or `MATERIALIZED` value expression. When adding a materialized column using `ALTER TABLE table_name ADD COLUMN column_name MATERIALIZED`, existing rows without materialized values are not automatically filled. `MATERIALIZE COLUMN` statement can be used to rewrite existing column data after a `DEFAULT` or `MATERIALIZED` expression has been added or updated (which only updates the metadata but does not change existing data). Note that materializing a column in the sort key is an invalid operation because it could break the sort order. -Implemented as a [mutation](/reference/statements/alter#mutations). +Implemented as a [mutation](/core/reference/statements/alter#mutations). For columns with a new or updated `MATERIALIZED` value expression, all existing rows are rewritten. @@ -330,18 +330,18 @@ SELECT groupArray(x), groupArray(s) FROM tmp; **See Also** -- [MATERIALIZED](/reference/statements/create/view#materialized-view). +- [MATERIALIZED](/core/reference/statements/create/view#materialized-view). ## Limitations {#limitations} The `ALTER` query lets you create and delete separate elements (columns) in nested data structures, but not whole nested data structures. To add a nested data structure, you can add columns with a name like `name.nested_name` and the type `Array(T)`. A nested data structure is equivalent to multiple array columns with a name that has the same prefix before the dot. -Renaming columns with dots in their names is partially supported. Dots are reserved for [Nested](/reference/data-types/nested-data-structures) sub-column access, so the prefix (parent name) must remain the same. Only the suffix (sub-column name) can be changed. For example, `a.b` can be renamed to `a.c`, but renaming `a.b` to `b.d` is not allowed because it changes the Nested parent prefix. +Renaming columns with dots in their names is partially supported. Dots are reserved for [Nested](/core/reference/data-types/nested-data-structures) sub-column access, so the prefix (parent name) must remain the same. Only the suffix (sub-column name) can be changed. For example, `a.b` can be renamed to `a.c`, but renaming `a.b` to `b.d` is not allowed because it changes the Nested parent prefix. There is no support for deleting columns in the primary key or the sampling key (columns that are used in the `ENGINE` expression). Changing the type for columns that are included in the primary key is only possible if this change does not cause the data to be modified (for example, you are allowed to add values to an Enum or to change a type from `DateTime` to `UInt32`). -If the `ALTER` query is not sufficient to make the table changes you need, you can create a new table, copy the data to it using the [INSERT SELECT](/reference/statements/insert-into#inserting-the-results-of-select) query, then switch the tables using the [RENAME](/reference/statements/rename#rename-table) query and delete the old table. +If the `ALTER` query is not sufficient to make the table changes you need, you can create a new table, copy the data to it using the [INSERT SELECT](/core/reference/statements/insert-into#inserting-the-results-of-select) query, then switch the tables using the [RENAME](/core/reference/statements/rename#rename-table) query and delete the old table. The `ALTER` query blocks all reads and writes for the table. In other words, if a long `SELECT` is running at the time of the `ALTER` query, the `ALTER` query will wait for it to complete. At the same time, all new queries to the same table will wait while this `ALTER` is running. -For tables that do not store data themselves (such as [Merge](/reference/statements/alter) and [Distributed](/reference/statements/alter)), `ALTER` just changes the table structure, and does not change the structure of subordinate tables. For example, when running ALTER for a `Distributed` table, you will also need to run `ALTER` for the tables on all remote servers. +For tables that do not store data themselves (such as [Merge](/core/reference/statements/alter) and [Distributed](/core/reference/statements/alter)), `ALTER` just changes the table structure, and does not change the structure of subordinate tables. For example, when running ALTER for a `Distributed` table, you will also need to run `ALTER` for the tables on all remote servers. diff --git a/reference/statements/alter/comment.mdx b/core/reference/statements/alter/comment.mdx similarity index 90% rename from reference/statements/alter/comment.mdx rename to core/reference/statements/alter/comment.mdx index 2527b4dc..32e5b375 100644 --- a/reference/statements/alter/comment.mdx +++ b/core/reference/statements/alter/comment.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' --- Adds, modifies, or removes a table comment, regardless of whether it was set -before or not. The comment change is reflected in both [`system.tables`](/reference/system-tables/tables) +before or not. The comment change is reflected in both [`system.tables`](/core/reference/system-tables/tables) and in the `SHOW CREATE TABLE` query. ## Syntax {#syntax} @@ -83,5 +83,5 @@ ClickHouse versions. ## Related content {#related-content} -- [`COMMENT`](/reference/statements/create/table#comment-clause) clause -- [`ALTER DATABASE ... MODIFY COMMENT`](/reference/statements/alter/database-comment) +- [`COMMENT`](/core/reference/statements/create/table#comment-clause) clause +- [`ALTER DATABASE ... MODIFY COMMENT`](/core/reference/statements/alter/database-comment) diff --git a/reference/statements/alter/constraint.mdx b/core/reference/statements/alter/constraint.mdx similarity index 90% rename from reference/statements/alter/constraint.mdx rename to core/reference/statements/alter/constraint.mdx index b29b4af7..ea7190c8 100644 --- a/reference/statements/alter/constraint.mdx +++ b/core/reference/statements/alter/constraint.mdx @@ -13,7 +13,7 @@ ALTER TABLE [db].name [ON CLUSTER cluster] ADD CONSTRAINT [IF NOT EXISTS] constr ALTER TABLE [db].name [ON CLUSTER cluster] DROP CONSTRAINT [IF EXISTS] constraint_name; ``` -See more on [constraints](/reference/statements/create/table#constraints). +See more on [constraints](/core/reference/statements/create/table#constraints). Queries will add or remove metadata about constraints from table, so they are processed immediately. diff --git a/reference/statements/alter/database-comment.mdx b/core/reference/statements/alter/database-comment.mdx similarity index 89% rename from reference/statements/alter/database-comment.mdx rename to core/reference/statements/alter/database-comment.mdx index b79791ac..50042d3a 100644 --- a/reference/statements/alter/database-comment.mdx +++ b/core/reference/statements/alter/database-comment.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' --- Adds, modifies, or removes a database comment, regardless of whether it was set -before or not. The comment change is reflected in both [`system.databases`](/reference/system-tables/databases) +before or not. The comment change is reflected in both [`system.databases`](/core/reference/system-tables/databases) and the `SHOW CREATE DATABASE` query. ## Syntax {#syntax} @@ -70,5 +70,5 @@ WHERE name = 'database_with_comment'; ## Related content {#related-content} -- [`COMMENT`](/reference/statements/create/table#comment-clause) clause -- [`ALTER TABLE ... MODIFY COMMENT`](/reference/statements/alter/comment) +- [`COMMENT`](/core/reference/statements/create/table#comment-clause) clause +- [`ALTER TABLE ... MODIFY COMMENT`](/core/reference/statements/alter/comment) diff --git a/reference/statements/alter/delete.mdx b/core/reference/statements/alter/delete.mdx similarity index 68% rename from reference/statements/alter/delete.mdx rename to core/reference/statements/alter/delete.mdx index 15ad808a..05011b58 100644 --- a/reference/statements/alter/delete.mdx +++ b/core/reference/statements/alter/delete.mdx @@ -10,23 +10,23 @@ doc_type: 'reference' ALTER TABLE [db.]table [ON CLUSTER cluster] DELETE WHERE filter_expr ``` -Deletes data matching the specified filtering expression. Implemented as a [mutation](/reference/statements/alter#mutations). +Deletes data matching the specified filtering expression. Implemented as a [mutation](/core/reference/statements/alter#mutations). -The `ALTER TABLE` prefix makes this syntax different from most other systems supporting SQL. It is intended to signify that unlike similar queries in OLTP databases this is a heavy operation not designed for frequent use. `ALTER TABLE` is considered a heavyweight operation that requires the underlying data to be merged before it is deleted. For MergeTree tables, consider using the [`DELETE FROM` query](/reference/statements/delete), which performs a lightweight delete and can be considerably faster. +The `ALTER TABLE` prefix makes this syntax different from most other systems supporting SQL. It is intended to signify that unlike similar queries in OLTP databases this is a heavy operation not designed for frequent use. `ALTER TABLE` is considered a heavyweight operation that requires the underlying data to be merged before it is deleted. For MergeTree tables, consider using the [`DELETE FROM` query](/core/reference/statements/delete), which performs a lightweight delete and can be considerably faster. The `filter_expr` must be of type `UInt8`. The query deletes rows in the table for which this expression takes a non-zero value. One query can contain several commands separated by commas. -The synchronicity of the query processing is defined by the [mutations_sync](/reference/settings/session-settings#mutations_sync) setting. By default, it is asynchronous. +The synchronicity of the query processing is defined by the [mutations_sync](/core/reference/settings/session-settings#mutations_sync) setting. By default, it is asynchronous. **See also** -- [Mutations](/reference/statements/alter#mutations) -- [Synchronicity of ALTER Queries](/reference/statements/alter#synchronicity-of-alter-queries) -- [mutations_sync](/reference/settings/session-settings#mutations_sync) setting +- [Mutations](/core/reference/statements/alter#mutations) +- [Synchronicity of ALTER Queries](/core/reference/statements/alter#synchronicity-of-alter-queries) +- [mutations_sync](/core/reference/settings/session-settings#mutations_sync) setting ## Related content {#related-content} diff --git a/reference/statements/alter/index.mdx b/core/reference/statements/alter/index.mdx similarity index 56% rename from reference/statements/alter/index.mdx rename to core/reference/statements/alter/index.mdx index c3bb777b..5a867213 100644 --- a/reference/statements/alter/index.mdx +++ b/core/reference/statements/alter/index.mdx @@ -10,53 +10,53 @@ Most `ALTER TABLE` queries modify table settings or data: | Modifier | |-------------------------------------------------------------------------------------| -| [COLUMN](/reference/statements/alter/column) | -| [PARTITION](/reference/statements/alter/partition) | -| [DELETE](/reference/statements/alter/delete) | -| [UPDATE](/reference/statements/alter/update) | -| [ORDER BY](/reference/statements/alter/order-by) | -| [INDEX](/reference/statements/alter/skipping-index) | -| [CONSTRAINT](/reference/statements/alter/constraint) | -| [TTL](/reference/statements/alter/ttl) | -| [STATISTICS](/reference/statements/alter/statistics) | -| [APPLY DELETED MASK](/reference/statements/alter/apply-deleted-mask) | -| [APPLY PATCHES](/reference/statements/alter/apply-patches) | +| [COLUMN](/core/reference/statements/alter/column) | +| [PARTITION](/core/reference/statements/alter/partition) | +| [DELETE](/core/reference/statements/alter/delete) | +| [UPDATE](/core/reference/statements/alter/update) | +| [ORDER BY](/core/reference/statements/alter/order-by) | +| [INDEX](/core/reference/statements/alter/skipping-index) | +| [CONSTRAINT](/core/reference/statements/alter/constraint) | +| [TTL](/core/reference/statements/alter/ttl) | +| [STATISTICS](/core/reference/statements/alter/statistics) | +| [APPLY DELETED MASK](/core/reference/statements/alter/apply-deleted-mask) | +| [APPLY PATCHES](/core/reference/statements/alter/apply-patches) | -Most `ALTER TABLE` queries are supported only for [\*MergeTree](/reference/engines/table-engines/mergetree-family), [Merge](/reference/engines/table-engines/special/merge) and [Distributed](/reference/engines/table-engines/special/distributed) tables. +Most `ALTER TABLE` queries are supported only for [\*MergeTree](/core/reference/engines/table-engines/mergetree-family), [Merge](/core/reference/engines/table-engines/special/merge) and [Distributed](/core/reference/engines/table-engines/special/distributed) tables. These `ALTER` statements manipulate views: | Statement | Description | |-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------| -| [ALTER TABLE ... MODIFY QUERY](/reference/statements/alter/view) | Modifies a [Materialized view](/reference/statements/create/view) structure. | +| [ALTER TABLE ... MODIFY QUERY](/core/reference/statements/alter/view) | Modifies a [Materialized view](/core/reference/statements/create/view) structure. | These `ALTER` statements modify entities related to role-based access control: | Statement | |---------------------------------------------------------------------------------| -| [USER](/reference/statements/alter/user) | -| [ROLE](/reference/statements/alter/role) | -| [QUOTA](/reference/statements/alter/quota) | -| [ROW POLICY](/reference/statements/alter/row-policy) | -| [SETTINGS PROFILE](/reference/statements/alter/settings-profile) | +| [USER](/core/reference/statements/alter/user) | +| [ROLE](/core/reference/statements/alter/role) | +| [QUOTA](/core/reference/statements/alter/quota) | +| [ROW POLICY](/core/reference/statements/alter/row-policy) | +| [SETTINGS PROFILE](/core/reference/statements/alter/settings-profile) | | Statement | Description | |---------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------| -| [ALTER TABLE ... MODIFY COMMENT](/reference/statements/alter/comment) | Adds, modifies, or removes comments to the table, regardless if it was set before or not. | -| [ALTER NAMED COLLECTION](/reference/statements/alter/named-collection) | Modifies [Named Collections](/concepts/features/configuration/server-config/named-collections). | +| [ALTER TABLE ... MODIFY COMMENT](/core/reference/statements/alter/comment) | Adds, modifies, or removes comments to the table, regardless if it was set before or not. | +| [ALTER NAMED COLLECTION](/core/reference/statements/alter/named-collection) | Modifies [Named Collections](/core/concepts/features/configuration/server-config/named-collections). | ## Mutations {#mutations} -`ALTER` queries that are intended to manipulate table data are implemented with a mechanism called "mutations", most notably [ALTER TABLE ... DELETE](/reference/statements/alter/delete) and [ALTER TABLE ... UPDATE](/reference/statements/alter/update). They are asynchronous background processes similar to merges in [MergeTree](/reference/engines/table-engines/mergetree-family) tables that to produce new "mutated" versions of parts. +`ALTER` queries that are intended to manipulate table data are implemented with a mechanism called "mutations", most notably [ALTER TABLE ... DELETE](/core/reference/statements/alter/delete) and [ALTER TABLE ... UPDATE](/core/reference/statements/alter/update). They are asynchronous background processes similar to merges in [MergeTree](/core/reference/engines/table-engines/mergetree-family) tables that to produce new "mutated" versions of parts. For `*MergeTree` tables mutations execute by **rewriting whole data parts**. There is no atomicity — parts are substituted for mutated parts as soon as they are ready and a `SELECT` query that started executing during a mutation will see data from parts that have already been mutated along with data from parts that have not been mutated yet. Mutations are totally ordered by their creation order and are applied to each part in that order. Mutations are also partially ordered with `INSERT INTO` queries: data that was inserted into the table before the mutation was submitted will be mutated and data that was inserted after that will not be mutated. Note that mutations do not block inserts in any way. -A mutation query returns immediately after the mutation entry is added (in case of replicated tables to ZooKeeper, for non-replicated tables - to the filesystem). The mutation itself executes asynchronously using the system profile settings. To track the progress of mutations you can use the [`system.mutations`](/reference/system-tables/mutations) table. A mutation that was successfully submitted will continue to execute even if ClickHouse servers are restarted. There is no way to roll back the mutation once it is submitted, but if the mutation is stuck for some reason it can be cancelled with the [`KILL MUTATION`](/reference/statements/kill#kill-mutation) query. +A mutation query returns immediately after the mutation entry is added (in case of replicated tables to ZooKeeper, for non-replicated tables - to the filesystem). The mutation itself executes asynchronously using the system profile settings. To track the progress of mutations you can use the [`system.mutations`](/core/reference/system-tables/mutations) table. A mutation that was successfully submitted will continue to execute even if ClickHouse servers are restarted. There is no way to roll back the mutation once it is submitted, but if the mutation is stuck for some reason it can be cancelled with the [`KILL MUTATION`](/core/reference/statements/kill#kill-mutation) query. Entries for finished mutations are not deleted right away (the number of preserved entries is determined by the `finished_mutations_to_keep` storage engine parameter). Older mutation entries are deleted. @@ -64,11 +64,11 @@ Entries for finished mutations are not deleted right away (the number of preserv For non-replicated tables, all `ALTER` queries are performed synchronously. For replicated tables, the query just adds instructions for the appropriate actions to `ZooKeeper`, and the actions themselves are performed as soon as possible. However, the query can wait for these actions to be completed on all the replicas. -For `ALTER` queries that creates mutations (e.g.: including, but not limited to `UPDATE`, `DELETE`, `MATERIALIZE INDEX`, `MATERIALIZE PROJECTION`, `MATERIALIZE COLUMN`, `APPLY DELETED MASK`, `APPLY PATCHES`, `CLEAR STATISTIC`, `MATERIALIZE STATISTIC`) the synchronicity is defined by the [mutations_sync](/reference/settings/session-settings#mutations_sync) setting. +For `ALTER` queries that creates mutations (e.g.: including, but not limited to `UPDATE`, `DELETE`, `MATERIALIZE INDEX`, `MATERIALIZE PROJECTION`, `MATERIALIZE COLUMN`, `APPLY DELETED MASK`, `APPLY PATCHES`, `CLEAR STATISTIC`, `MATERIALIZE STATISTIC`) the synchronicity is defined by the [mutations_sync](/core/reference/settings/session-settings#mutations_sync) setting. -For other `ALTER` queries which only modify the metadata, you can use the [alter_sync](/reference/settings/session-settings#alter_sync) setting to set up waiting. +For other `ALTER` queries which only modify the metadata, you can use the [alter_sync](/core/reference/settings/session-settings#alter_sync) setting to set up waiting. -You can specify how long (in seconds) to wait for inactive replicas to execute all `ALTER` queries with the [replication_wait_for_inactive_replica_timeout](/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout) setting. +You can specify how long (in seconds) to wait for inactive replicas to execute all `ALTER` queries with the [replication_wait_for_inactive_replica_timeout](/core/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout) setting. For all `ALTER` queries, if `alter_sync = 2` and some replicas are not active for more than the time, specified in the `replication_wait_for_inactive_replica_timeout` setting, then an exception `UNFINISHED` is thrown. diff --git a/reference/statements/alter/masking-policy.mdx b/core/reference/statements/alter/masking-policy.mdx similarity index 100% rename from reference/statements/alter/masking-policy.mdx rename to core/reference/statements/alter/masking-policy.mdx diff --git a/reference/statements/alter/named-collection.mdx b/core/reference/statements/alter/named-collection.mdx similarity index 100% rename from reference/statements/alter/named-collection.mdx rename to core/reference/statements/alter/named-collection.mdx diff --git a/reference/statements/alter/order-by.mdx b/core/reference/statements/alter/order-by.mdx similarity index 59% rename from reference/statements/alter/order-by.mdx rename to core/reference/statements/alter/order-by.mdx index 795e777b..d658c102 100644 --- a/reference/statements/alter/order-by.mdx +++ b/core/reference/statements/alter/order-by.mdx @@ -10,12 +10,12 @@ doc_type: 'reference' ALTER TABLE [db].name [ON CLUSTER cluster] MODIFY ORDER BY new_expression ``` -The command changes the [sorting key](/reference/engines/table-engines/mergetree-family/mergetree) of the table to `new_expression` (an expression or a tuple of expressions). Primary key remains the same. +The command changes the [sorting key](/core/reference/engines/table-engines/mergetree-family/mergetree) of the table to `new_expression` (an expression or a tuple of expressions). Primary key remains the same. The command is lightweight in a sense that it only changes metadata. To keep the property that data part rows are ordered by the sorting key expression you cannot add expressions containing existing columns to the sorting key (only columns added by the `ADD COLUMN` command in the same `ALTER` query, without default column value). **** -It only works for tables in the [`MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) family (including [replicated](/reference/engines/table-engines/mergetree-family/replication) tables). +It only works for tables in the [`MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) family (including [replicated](/core/reference/engines/table-engines/mergetree-family/replication) tables). \ No newline at end of file diff --git a/reference/statements/alter/partition.mdx b/core/reference/statements/alter/partition.mdx similarity index 89% rename from reference/statements/alter/partition.mdx rename to core/reference/statements/alter/partition.mdx index 79436885..adb407c9 100644 --- a/reference/statements/alter/partition.mdx +++ b/core/reference/statements/alter/partition.mdx @@ -6,7 +6,7 @@ title: 'Manipulating Partitions and Parts' doc_type: 'reference' --- -The following operations with [partitions](/reference/engines/table-engines/mergetree-family/custom-partitioning-key) are available: +The following operations with [partitions](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key) are available: - [DETACH PARTITION\|PART](#detach-partitionpart) — Moves a partition or part to the `detached` directory and forget it. - [DROP PARTITION\|PART](#drop-partitionpart) — Deletes a partition or part. @@ -47,7 +47,7 @@ Read about setting the partition expression in a section [How to set the partiti After the query is executed, you can do whatever you want with the data in the `detached` directory — delete it from the file system, or just leave it. -This query is replicated – it moves the data to the `detached` directory on all replicas. Note that you can execute this query only on a leader replica. To find out if a replica is a leader, perform the `SELECT` query to the [system.replicas](/reference/system-tables/replicas) table. Alternatively, it is easier to make a `DETACH` query on all replicas - all the replicas throw an exception, except the leader replicas (as multiple leaders are allowed). +This query is replicated – it moves the data to the `detached` directory on all replicas. Note that you can execute this query only on a leader replica. To find out if a replica is a leader, perform the `SELECT` query to the [system.replicas](/core/reference/system-tables/replicas) table. Alternatively, it is easier to make a `DETACH` query on all replicas - all the replicas throw an exception, except the leader replicas (as multiple leaders are allowed). ## DROP PARTITION\|PART {#drop-partitionpart} @@ -207,7 +207,7 @@ At the time of execution, for a data snapshot, the query creates hardlinks to a - if the `WITH NAME` parameter is specified, then the value of the `'backup_name'` parameter is used instead of the incremental number. -If you use [a set of disks for data storage in a table](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes), the `shadow/N` directory appears on every disk, storing data parts that matched by the `PARTITION` expression. +If you use [a set of disks for data storage in a table](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes), the `shadow/N` directory appears on every disk, storing data parts that matched by the `PARTITION` expression. The same structure of directories is created inside the backup as inside `/var/lib/clickhouse/`. The query performs `chmod` for all files, forbidding writing into them. @@ -228,7 +228,7 @@ Restoring from a backup does not require stopping the server. The query processes parts in parallel, the number of threads is regulated by the `max_threads` setting. -For more information about backups and restoring data, see section ["Backup and Restore in ClickHouse"](/concepts/features/backup-restore/overview) section. +For more information about backups and restoring data, see section ["Backup and Restore in ClickHouse"](/core/concepts/features/backup-restore/overview) section. ## UNFREEZE PARTITION {#unfreeze-partition} @@ -283,7 +283,7 @@ Although the query is called `ALTER TABLE`, it does not change the table structu ## MOVE PARTITION\|PART {#move-partitionpart} -Moves partitions or data parts to another volume or disk for `MergeTree`-engine tables. See [Using Multiple Block Devices for Data Storage](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes). +Moves partitions or data parts to another volume or disk for `MergeTree`-engine tables. See [Using Multiple Block Devices for Data Storage](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes). ```sql ALTER TABLE table_name [ON CLUSTER cluster] MOVE PARTITION|PART partition_expr TO DISK|VOLUME 'disk_name' @@ -304,7 +304,7 @@ ALTER TABLE hits MOVE PARTITION '2019-09-01' TO DISK 'fast_ssd' ## UPDATE IN PARTITION {#update-in-partition} -Manipulates data in the specifies partition matching the specified filtering expression. Implemented as a [mutation](/reference/statements/alter#mutations). +Manipulates data in the specifies partition matching the specified filtering expression. Implemented as a [mutation](/core/reference/statements/alter#mutations). Syntax: @@ -324,11 +324,11 @@ ALTER TABLE mt UPDATE x = x + 1 IN PARTITION ID '2' WHERE p = 2; ### See Also {#see-also} -- [UPDATE](/reference/statements/alter/partition#update-in-partition) +- [UPDATE](/core/reference/statements/alter/partition#update-in-partition) ## DELETE IN PARTITION {#delete-in-partition} -Deletes data in the specifies partition matching the specified filtering expression. Implemented as a [mutation](/reference/statements/alter#mutations). +Deletes data in the specifies partition matching the specified filtering expression. Implemented as a [mutation](/core/reference/statements/alter#mutations). Syntax: @@ -359,7 +359,7 @@ ALTER TABLE mt REWRITE PARTS IN PARTITION 2; ### See Also {#see-also-1} -- [DELETE](/reference/statements/alter/delete) +- [DELETE](/core/reference/statements/alter/delete) ## How to Set Partition Expression {#how-to-set-partition-expression} @@ -369,16 +369,16 @@ You can specify the partition expression in `ALTER ... PARTITION` queries in dif - Using the keyword `ALL`. It can be used only with DROP/DETACH/ATTACH/ATTACH FROM. For example, `ALTER TABLE visits ATTACH PARTITION ALL`. - As a tuple of expressions or constants that matches (in types) the table partitioning keys tuple. In the case of a single element partitioning key, the expression should be wrapped in the `tuple (...)` function. For example, `ALTER TABLE visits DETACH PARTITION tuple(toYYYYMM(toDate('2019-01-25')))`. - Using the partition ID. Partition ID is a string identifier of the partition (human-readable, if possible) that is used as the names of partitions in the file system and in ZooKeeper. The partition ID must be specified in the `PARTITION ID` clause, in a single quotes. For example, `ALTER TABLE visits DETACH PARTITION ID '201901'`. -- In the [ALTER ATTACH PART](#attach-partitionpart) and [DROP DETACHED PART](#drop-detached-partitionpart) query, to specify the name of a part, use string literal with a value from the `name` column of the [system.detached_parts](/reference/system-tables/detached_parts) table. For example, `ALTER TABLE visits ATTACH PART '201901_1_1_0'`. +- In the [ALTER ATTACH PART](#attach-partitionpart) and [DROP DETACHED PART](#drop-detached-partitionpart) query, to specify the name of a part, use string literal with a value from the `name` column of the [system.detached_parts](/core/reference/system-tables/detached_parts) table. For example, `ALTER TABLE visits ATTACH PART '201901_1_1_0'`. Usage of quotes when specifying the partition depends on the type of partition expression. For example, for the `String` type, you have to specify its name in quotes (`'`). For the `Date` and `Int*` types no quotes are needed. -All the rules above are also true for the [OPTIMIZE](/reference/statements/optimize) query. If you need to specify the only partition when optimizing a non-partitioned table, set the expression `PARTITION tuple()`. For example: +All the rules above are also true for the [OPTIMIZE](/core/reference/statements/optimize) query. If you need to specify the only partition when optimizing a non-partitioned table, set the expression `PARTITION tuple()`. For example: ```sql OPTIMIZE TABLE table_not_partitioned PARTITION tuple() FINAL; ``` -`IN PARTITION` specifies the partition to which the [UPDATE](/reference/statements/alter/update) or [DELETE](/reference/statements/alter/delete) expressions are applied as a result of the `ALTER TABLE` query. New parts are created only from the specified partition. In this way, `IN PARTITION` helps to reduce the load when the table is divided into many partitions, and you only need to update the data point-by-point. +`IN PARTITION` specifies the partition to which the [UPDATE](/core/reference/statements/alter/update) or [DELETE](/core/reference/statements/alter/delete) expressions are applied as a result of the `ALTER TABLE` query. New parts are created only from the specified partition. In this way, `IN PARTITION` helps to reduce the load when the table is divided into many partitions, and you only need to update the data point-by-point. The examples of `ALTER ... PARTITION` queries are demonstrated in the tests [`00502_custom_partitioning_local`](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/00502_custom_partitioning_local.sql) and [`00502_custom_partitioning_replicated_zookeeper`](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/00502_custom_partitioning_replicated_zookeeper.sql). diff --git a/reference/statements/alter/projection.mdx b/core/reference/statements/alter/projection.mdx similarity index 89% rename from reference/statements/alter/projection.mdx rename to core/reference/statements/alter/projection.mdx index 056818b6..8de86aa7 100644 --- a/reference/statements/alter/projection.mdx +++ b/core/reference/statements/alter/projection.mdx @@ -23,7 +23,7 @@ Projections will create internally a new hidden table, this means that more IO a For example, if the projection has defined a different primary key, all the data from the original table will be duplicated. -You can see more technical details about how projections work internally on this [page](/guides/cloud-oss/data-modelling/sparse-primary-indexes#option-3-projections). +You can see more technical details about how projections work internally on this [page](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#option-3-projections). ## Using projections {#examples} @@ -164,7 +164,7 @@ SELECT query, projections FROM system.query_log WHERE query_id='' ### Creating and using projection indexes {#projection-indexes} -Creating a [projection index](/reference/engines/table-engines/mergetree-family/mergetree#projection-index): +Creating a [projection index](/core/reference/engines/table-engines/mergetree-family/mergetree#projection-index): ```sql CREATE TABLE events @@ -227,7 +227,7 @@ SETTINGS enable_shared_storage_snapshot_in_query = 1 ## Manipulating projections {#manipulating-projections} -The following operations with [projections](/reference/engines/table-engines/mergetree-family/mergetree#projections) are available: +The following operations with [projections](/core/reference/engines/table-engines/mergetree-family/mergetree#projections) are available: ### ADD PROJECTION {#add-projection} @@ -259,7 +259,7 @@ Projection settings override the effective table settings for the projection, su ### DROP PROJECTION {#drop-projection} Use the statement below to remove a projection description from a tables metadata and delete projection files from disk. -This is implemented as a [mutation](/reference/statements/alter#mutations). +This is implemented as a [mutation](/core/reference/statements/alter#mutations). ```sql ALTER TABLE [db.]name [ON CLUSTER cluster] DROP PROJECTION [IF EXISTS] name @@ -268,7 +268,7 @@ ALTER TABLE [db.]name [ON CLUSTER cluster] DROP PROJECTION [IF EXISTS] name ### MATERIALIZE PROJECTION {#materialize-projection} Use the statement below to rebuild the projection `name` in partition `partition_name`. -This is implemented as a [mutation](/reference/statements/alter#mutations). +This is implemented as a [mutation](/core/reference/statements/alter#mutations). ```sql ALTER TABLE [db.]table [ON CLUSTER cluster] MATERIALIZE PROJECTION [IF EXISTS] name [IN PARTITION partition_name] @@ -277,7 +277,7 @@ ALTER TABLE [db.]table [ON CLUSTER cluster] MATERIALIZE PROJECTION [IF EXISTS] n ### CLEAR PROJECTION {#clear-projection} Use the statement below to delete projection files from disk without removing description. -This is implemented as a [mutation](/reference/statements/alter#mutations). +This is implemented as a [mutation](/core/reference/statements/alter#mutations). ```sql ALTER TABLE [db.]table [ON CLUSTER cluster] CLEAR PROJECTION [IF EXISTS] name [IN PARTITION partition_name] @@ -287,7 +287,7 @@ The commands `ADD`, `DROP` and `CLEAR` are lightweight in the sense that they on Additionally, they are replicated, and sync projection metadata via ClickHouse Keeper or ZooKeeper. -Projection manipulation is supported only for tables with [`*MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) engine (including [replicated](/reference/engines/table-engines/mergetree-family/replication) variants). +Projection manipulation is supported only for tables with [`*MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) engine (including [replicated](/core/reference/engines/table-engines/mergetree-family/replication) variants). ### Controlling projection merge behavior {#control-projections-merges} @@ -308,9 +308,9 @@ Similarly, if the table is stored using the `AggregatingMergeTree` table engine, Before ClickHouse v24.8, projection parts either silently got out of sync with the main data, or certain operations like updates and deletes could not be run at all as the database automatically threw an exception if the table had projections. -Since v24.8, a new table-level setting [`deduplicate_merge_projection_mode`](/reference/settings/merge-tree-settings#deduplicate_merge_projection_mode) controls the behavior if the aforementioned non-trivial background merge operations occur in parts of the original table. +Since v24.8, a new table-level setting [`deduplicate_merge_projection_mode`](/core/reference/settings/merge-tree-settings#deduplicate_merge_projection_mode) controls the behavior if the aforementioned non-trivial background merge operations occur in parts of the original table. -Delete mutations are another example of part merge operations that drop rows in the parts of the original table. Since v24.7, we also have a setting to control the behavior w.r.t. delete mutations triggered by lightweight deletes: [`lightweight_mutation_projection_mode`](/reference/settings/merge-tree-settings#deduplicate_merge_projection_mode). +Delete mutations are another example of part merge operations that drop rows in the parts of the original table. Since v24.7, we also have a setting to control the behavior w.r.t. delete mutations triggered by lightweight deletes: [`lightweight_mutation_projection_mode`](/core/reference/settings/merge-tree-settings#deduplicate_merge_projection_mode). Below are the possible values for both `deduplicate_merge_projection_mode` and `lightweight_mutation_projection_mode`: @@ -361,5 +361,5 @@ ENGINE = MergeTree ORDER BY id; ## See also {#see-also} - ["Control Of Projections During Merges" (blog post)](https://clickhouse.com/blog/clickhouse-release-24-08#control-of-projections-during-merges) -- ["Projections" (guide)](/concepts/features/projections/projections#using-projections-to-speed-up-UK-price-paid) -- ["Materialized Views versus Projections"](/concepts/features/projections/materialized-views-versus-projections) +- ["Projections" (guide)](/core/concepts/features/projections/projections#using-projections-to-speed-up-UK-price-paid) +- ["Materialized Views versus Projections"](/core/concepts/features/projections/materialized-views-versus-projections) diff --git a/reference/statements/alter/quota.mdx b/core/reference/statements/alter/quota.mdx similarity index 88% rename from reference/statements/alter/quota.mdx rename to core/reference/statements/alter/quota.mdx index 3202770a..611668a4 100644 --- a/reference/statements/alter/quota.mdx +++ b/core/reference/statements/alter/quota.mdx @@ -19,11 +19,11 @@ ALTER QUOTA [IF EXISTS] name [ON CLUSTER cluster_name] NO LIMITS | TRACKING ONLY} [,...]] [TO {role [,...] | ALL | ALL EXCEPT role [,...]}] ``` -Keys `user_name`, `ip_address`, `client_key`, `client_key, user_name`, `client_key, ip_address`, and `normalized_query_hash` correspond to the fields in the [system.quotas](/reference/system-tables/quotas) table. +Keys `user_name`, `ip_address`, `client_key`, `client_key, user_name`, `client_key, ip_address`, and `normalized_query_hash` correspond to the fields in the [system.quotas](/core/reference/system-tables/quotas) table. -Parameters `queries`, `query_selects`, `query_inserts`, `errors`, `result_rows`, `result_bytes`, `read_rows`, `read_bytes`, `execution_time`, `queries_per_normalized_hash` correspond to the fields in the [system.quotas_usage](/reference/system-tables/quotas_usage) table. +Parameters `queries`, `query_selects`, `query_inserts`, `errors`, `result_rows`, `result_bytes`, `read_rows`, `read_bytes`, `execution_time`, `queries_per_normalized_hash` correspond to the fields in the [system.quotas_usage](/core/reference/system-tables/quotas_usage) table. -`ON CLUSTER` clause allows creating quotas on a cluster, see [Distributed DDL](/reference/statements/distributed-ddl). +`ON CLUSTER` clause allows creating quotas on a cluster, see [Distributed DDL](/core/reference/statements/distributed-ddl). **Examples** diff --git a/reference/statements/alter/role.mdx b/core/reference/statements/alter/role.mdx similarity index 100% rename from reference/statements/alter/role.mdx rename to core/reference/statements/alter/role.mdx diff --git a/reference/statements/alter/row-policy.mdx b/core/reference/statements/alter/row-policy.mdx similarity index 100% rename from reference/statements/alter/row-policy.mdx rename to core/reference/statements/alter/row-policy.mdx diff --git a/reference/statements/alter/sample-by.mdx b/core/reference/statements/alter/sample-by.mdx similarity index 51% rename from reference/statements/alter/sample-by.mdx rename to core/reference/statements/alter/sample-by.mdx index ecc049c0..2e1f4f73 100644 --- a/reference/statements/alter/sample-by.mdx +++ b/core/reference/statements/alter/sample-by.mdx @@ -14,7 +14,7 @@ The following operations are available: ALTER TABLE [db].name [ON CLUSTER cluster] MODIFY SAMPLE BY new_expression ``` -The command changes the [sampling key](/reference/engines/table-engines/mergetree-family/mergetree) of the table to `new_expression` (an expression or a tuple of expressions). The primary key must contain the new sample key. +The command changes the [sampling key](/core/reference/engines/table-engines/mergetree-family/mergetree) of the table to `new_expression` (an expression or a tuple of expressions). The primary key must contain the new sample key. ## REMOVE {#remove} @@ -22,12 +22,12 @@ The command changes the [sampling key](/reference/engines/table-engines/mergetre ALTER TABLE [db].name [ON CLUSTER cluster] REMOVE SAMPLE BY ``` -The command removes the [sampling key](/reference/engines/table-engines/mergetree-family/mergetree) of the table. +The command removes the [sampling key](/core/reference/engines/table-engines/mergetree-family/mergetree) of the table. The commands `MODIFY` and `REMOVE` are lightweight in the sense that they only change metadata or remove files. **** -It only works for tables in the [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) family (including [replicated](/reference/engines/table-engines/mergetree-family/replication) tables). +It only works for tables in the [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) family (including [replicated](/core/reference/engines/table-engines/mergetree-family/replication) tables). diff --git a/reference/statements/alter/setting.mdx b/core/reference/statements/alter/setting.mdx similarity index 87% rename from reference/statements/alter/setting.mdx rename to core/reference/statements/alter/setting.mdx index cbd53a47..973c1eab 100644 --- a/reference/statements/alter/setting.mdx +++ b/core/reference/statements/alter/setting.mdx @@ -18,7 +18,7 @@ ALTER TABLE [db].name [ON CLUSTER cluster] MODIFY|RESET SETTING ... **** -These queries can be applied to [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables only. +These queries can be applied to [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables only. ## MODIFY SETTING {#modify-setting} @@ -60,4 +60,4 @@ ALTER TABLE example_table RESET SETTING max_part_loading_threads; **See Also** -- [MergeTree settings](/reference/settings/merge-tree-settings) +- [MergeTree settings](/core/reference/settings/merge-tree-settings) diff --git a/reference/statements/alter/settings-profile.mdx b/core/reference/statements/alter/settings-profile.mdx similarity index 100% rename from reference/statements/alter/settings-profile.mdx rename to core/reference/statements/alter/settings-profile.mdx diff --git a/reference/statements/alter/skipping-index.mdx b/core/reference/statements/alter/skipping-index.mdx similarity index 76% rename from reference/statements/alter/skipping-index.mdx rename to core/reference/statements/alter/skipping-index.mdx index ed362ef1..52a899ba 100644 --- a/reference/statements/alter/skipping-index.mdx +++ b/core/reference/statements/alter/skipping-index.mdx @@ -15,15 +15,15 @@ The following operations are available: ## DROP INDEX {#drop-index} -`ALTER TABLE [db.]table_name [ON CLUSTER cluster] DROP INDEX [IF EXISTS] name` - Removes index description from tables metadata and deletes index files from disk. Implemented as a [mutation](/reference/statements/alter#mutations). +`ALTER TABLE [db.]table_name [ON CLUSTER cluster] DROP INDEX [IF EXISTS] name` - Removes index description from tables metadata and deletes index files from disk. Implemented as a [mutation](/core/reference/statements/alter#mutations). ## MATERIALIZE INDEX {#materialize-index} -`ALTER TABLE [db.]table_name [ON CLUSTER cluster] MATERIALIZE INDEX [IF EXISTS] name [IN PARTITION partition_name]` - Rebuilds the secondary index `name` for the specified `partition_name`. Implemented as a [mutation](/reference/statements/alter#mutations). If `IN PARTITION` part is omitted then it rebuilds the index for the whole table data. +`ALTER TABLE [db.]table_name [ON CLUSTER cluster] MATERIALIZE INDEX [IF EXISTS] name [IN PARTITION partition_name]` - Rebuilds the secondary index `name` for the specified `partition_name`. Implemented as a [mutation](/core/reference/statements/alter#mutations). If `IN PARTITION` part is omitted then it rebuilds the index for the whole table data. ## CLEAR INDEX {#clear-index} -`ALTER TABLE [db.]table_name [ON CLUSTER cluster] CLEAR INDEX [IF EXISTS] name [IN PARTITION partition_name]` - Deletes the secondary index files from disk without removing description. Implemented as a [mutation](/reference/statements/alter#mutations). +`ALTER TABLE [db.]table_name [ON CLUSTER cluster] CLEAR INDEX [IF EXISTS] name [IN PARTITION partition_name]` - Deletes the secondary index files from disk without removing description. Implemented as a [mutation](/core/reference/statements/alter#mutations). The commands `ADD`, `DROP`, and `CLEAR` are lightweight in the sense that they only change metadata or remove files. Also, they are replicated, syncing indices metadata via ClickHouse Keeper or ZooKeeper. @@ -31,5 +31,5 @@ Also, they are replicated, syncing indices metadata via ClickHouse Keeper or Zoo **** -Index manipulation is supported only for tables with [`*MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) engine (including [replicated](/reference/engines/table-engines/mergetree-family/replication) variants). +Index manipulation is supported only for tables with [`*MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) engine (including [replicated](/core/reference/engines/table-engines/mergetree-family/replication) variants). diff --git a/reference/statements/alter/statistics.mdx b/core/reference/statements/alter/statistics.mdx similarity index 84% rename from reference/statements/alter/statistics.mdx rename to core/reference/statements/alter/statistics.mdx index edc1dbde..7394b4d5 100644 --- a/reference/statements/alter/statistics.mdx +++ b/core/reference/statements/alter/statistics.mdx @@ -20,7 +20,7 @@ The following operations are available: - `ALTER TABLE [db].table CLEAR STATISTICS [IF EXISTS] (column list)` - Deletes all statistics objects in all parts for the specified columns. Statistics objects can be rebuild using `ALTER TABLE MATERIALIZE STATISTICS`. -- `ALTER TABLE [db.]table MATERIALIZE STATISTICS (ALL | [IF EXISTS] (column list))` - Rebuilds the statistic for columns. Implemented as a [mutation](/reference/statements/alter#mutations). +- `ALTER TABLE [db.]table MATERIALIZE STATISTICS (ALL | [IF EXISTS] (column list))` - Rebuilds the statistic for columns. Implemented as a [mutation](/core/reference/statements/alter#mutations). The first two commands are lightweight in a sense that they only change metadata or remove files. @@ -41,5 +41,5 @@ ALTER TABLE t1 ADD STATISTICS nullable_col TYPE NullCount; ``` -Statistic are supported only for [`*MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) engine tables (including [replicated](/reference/engines/table-engines/mergetree-family/replication) variants). +Statistic are supported only for [`*MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) engine tables (including [replicated](/core/reference/engines/table-engines/mergetree-family/replication) variants). diff --git a/reference/statements/alter/ttl.mdx b/core/reference/statements/alter/ttl.mdx similarity index 82% rename from reference/statements/alter/ttl.mdx rename to core/reference/statements/alter/ttl.mdx index fd11fa87..2fefcab0 100644 --- a/reference/statements/alter/ttl.mdx +++ b/core/reference/statements/alter/ttl.mdx @@ -7,12 +7,12 @@ doc_type: 'reference' --- -If you are looking for details on using TTL for managing old data, check out the [Manage Data with TTL](/concepts/operations/delete/ttl) user guide. The docs below demonstrate how to alter or remove an existing TTL rule. +If you are looking for details on using TTL for managing old data, check out the [Manage Data with TTL](/core/concepts/features/operations/delete/ttl) user guide. The docs below demonstrate how to alter or remove an existing TTL rule. ## MODIFY TTL {#modify-ttl} -You can change [table TTL](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl) with a request of the following form: +You can change [table TTL](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl) with a request of the following form: ```sql ALTER TABLE [db.]table_name [ON CLUSTER cluster] MODIFY TTL ttl_expression; @@ -86,5 +86,5 @@ The `TTL` is no longer there, so the second row is not deleted: **See Also** -- More about the [TTL-expression](/reference/statements/create/table#ttl-expression). -- Modify column [with TTL](/reference/statements/alter/ttl). +- More about the [TTL-expression](/core/reference/statements/create/table#ttl-expression). +- Modify column [with TTL](/core/reference/statements/alter/ttl). diff --git a/reference/statements/alter/update.mdx b/core/reference/statements/alter/update.mdx similarity index 66% rename from reference/statements/alter/update.mdx rename to core/reference/statements/alter/update.mdx index 2f47834e..bb465052 100644 --- a/reference/statements/alter/update.mdx +++ b/core/reference/statements/alter/update.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' ALTER TABLE [db.]table [ON CLUSTER cluster] UPDATE column1 = expr1 [, ...] [IN PARTITION partition_id] WHERE filter_expr ``` -Manipulates data matching the specified filtering expression. Implemented as a [mutation](/reference/statements/alter#mutations). +Manipulates data matching the specified filtering expression. Implemented as a [mutation](/core/reference/statements/alter#mutations). **** @@ -22,15 +22,15 @@ The `filter_expr` must be of type `UInt8`. This query updates values of specifie One query can contain several commands separated by commas. -The synchronicity of the query processing is defined by the [mutations_sync](/reference/settings/session-settings#mutations_sync) setting. By default, it is asynchronous. +The synchronicity of the query processing is defined by the [mutations_sync](/core/reference/settings/session-settings#mutations_sync) setting. By default, it is asynchronous. **See also** -- [Mutations](/reference/statements/alter#mutations) -- [Synchronicity of ALTER Queries](/reference/statements/alter#synchronicity-of-alter-queries) -- [mutations_sync](/reference/settings/session-settings#mutations_sync) setting -- [Lightweight `UPDATE`](/reference/statements/update) - Alternative lightweight update using patch parts -- [`APPLY PATCHES`](/reference/statements/alter/apply-patches) - Manually apply patches from lightweight updates +- [Mutations](/core/reference/statements/alter#mutations) +- [Synchronicity of ALTER Queries](/core/reference/statements/alter#synchronicity-of-alter-queries) +- [mutations_sync](/core/reference/settings/session-settings#mutations_sync) setting +- [Lightweight `UPDATE`](/core/reference/statements/update) - Alternative lightweight update using patch parts +- [`APPLY PATCHES`](/core/reference/statements/alter/apply-patches) - Manually apply patches from lightweight updates ## Related content {#related-content} diff --git a/reference/statements/alter/user.mdx b/core/reference/statements/alter/user.mdx similarity index 93% rename from reference/statements/alter/user.mdx rename to core/reference/statements/alter/user.mdx index e21f167c..41607529 100644 --- a/reference/statements/alter/user.mdx +++ b/core/reference/statements/alter/user.mdx @@ -27,11 +27,11 @@ ALTER USER [IF EXISTS] name1 [RENAME TO new_name |, name2 [,...]] [ADD PROFILES 'profile_name' [,...] ] ``` -To use `ALTER USER` you must have the [ALTER USER](/reference/statements/grant#access-management) privilege. +To use `ALTER USER` you must have the [ALTER USER](/core/reference/statements/grant#access-management) privilege. ## GRANTEES Clause {#grantees-clause} -Specifies users or roles which are allowed to receive [privileges](/reference/statements/grant#privileges) from this user on the condition this user has also all required access granted with [GRANT OPTION](/reference/statements/grant#granting-privilege-syntax). Options of the `GRANTEES` clause: +Specifies users or roles which are allowed to receive [privileges](/core/reference/statements/grant#privileges) from this user on the condition this user has also all required access granted with [GRANT OPTION](/core/reference/statements/grant#granting-privilege-syntax). Options of the `GRANTEES` clause: - `user` — Specifies a user this user can grant privileges to. - `role` — Specifies a role this user can grant privileges to. diff --git a/reference/statements/alter/view.mdx b/core/reference/statements/alter/view.mdx similarity index 93% rename from reference/statements/alter/view.mdx rename to core/reference/statements/alter/view.mdx index 56cfb0f6..0f08b473 100644 --- a/reference/statements/alter/view.mdx +++ b/core/reference/statements/alter/view.mdx @@ -6,7 +6,7 @@ title: 'ALTER TABLE ... MODIFY QUERY Statement' doc_type: 'reference' --- -You can modify `SELECT` query that was specified when a [materialized view](/reference/statements/create/view#materialized-view) was created with the `ALTER TABLE ... MODIFY QUERY` statement without interrupting ingestion process. +You can modify `SELECT` query that was specified when a [materialized view](/core/reference/statements/create/view#materialized-view) was created with the `ALTER TABLE ... MODIFY QUERY` statement without interrupting ingestion process. This command is created to change materialized view created with `TO [db.]name` clause. It does not change the structure of the underlying storage table and it does not change the columns' definition of the materialized view, because of this the application of this command is very limited for materialized views are created without `TO [db.]name` clause. @@ -192,7 +192,7 @@ SELECT * FROM mv; ## ALTER TABLE ... MODIFY REFRESH Statement {#alter-table--modify-refresh-statement} -`ALTER TABLE ... MODIFY REFRESH` changes refresh parameters of a [Refreshable Materialized View](/reference/statements/create/view#refreshable-materialized-view), including the schedule, dependencies, randomization, and [refresh settings](/reference/statements/create/view#refresh-settings). +`ALTER TABLE ... MODIFY REFRESH` changes refresh parameters of a [Refreshable Materialized View](/core/reference/statements/create/view#refreshable-materialized-view), including the schedule, dependencies, randomization, and [refresh settings](/core/reference/statements/create/view#refresh-settings). ```sql ALTER TABLE [db.]name MODIFY REFRESH EVERY|AFTER ... [RANDOMIZE FOR ...] [DEPENDS ON ...] [SETTINGS ...] @@ -223,4 +223,4 @@ Limitations: - Adding or removing `APPEND` is not supported. - The `all_replicas` refresh setting cannot be changed after the view is created. -The full list of refresh settings is documented in [Refresh Settings](/reference/statements/create/view#refresh-settings). Refresh status, including the currently applied settings, is visible in [`system.view_refreshes`](/reference/system-tables/view_refreshes). +The full list of refresh settings is documented in [Refresh Settings](/core/reference/statements/create/view#refresh-settings). Refresh status, including the currently applied settings, is visible in [`system.view_refreshes`](/core/reference/system-tables/view_refreshes). diff --git a/reference/statements/attach.mdx b/core/reference/statements/attach.mdx similarity index 94% rename from reference/statements/attach.mdx rename to core/reference/statements/attach.mdx index 59b3fdfd..bacb87ac 100644 --- a/reference/statements/attach.mdx +++ b/core/reference/statements/attach.mdx @@ -16,7 +16,7 @@ ATTACH TABLE|DICTIONARY|DATABASE [IF NOT EXISTS] [db.]name [ON CLUSTER cluster] The query does not create data on disk, but assumes that data is already in the appropriate places, and just adds information about the specified table, dictionary or database to the server. After executing the `ATTACH` query, the server will know about the existence of the table, dictionary or database. -If a table was previously detached ([DETACH](/reference/statements/detach) query), meaning that its structure is known, you can use shorthand without defining the structure. +If a table was previously detached ([DETACH](/core/reference/statements/detach) query), meaning that its structure is known, you can use shorthand without defining the structure. ## Attach Existing Table {#attach-existing-table} @@ -60,7 +60,7 @@ SELECT * FROM test; ### With Specified Table UUID {#with-specified-table-uuid} This query creates a new table with provided structure and attaches data from the table with the specified UUID. -It is supported by the [Atomic](/reference/engines/database-engines/atomic) database engine. +It is supported by the [Atomic](/core/reference/engines/database-engines/atomic) database engine. **Syntax** diff --git a/reference/statements/check-grant.mdx b/core/reference/statements/check-grant.mdx similarity index 91% rename from reference/statements/check-grant.mdx rename to core/reference/statements/check-grant.mdx index ef2b9398..190796d2 100644 --- a/reference/statements/check-grant.mdx +++ b/core/reference/statements/check-grant.mdx @@ -44,4 +44,4 @@ CHECK GRANT SELECT(col2) ON table_2; ``` ## Wildcard {#wildcard} -Specifying privileges you can use asterisk (`*`) instead of a table or a database name. Please check [WILDCARD GRANTS](/reference/statements/grant#wildcard-grants) for wildcard rules. +Specifying privileges you can use asterisk (`*`) instead of a table or a database name. Please check [WILDCARD GRANTS](/core/reference/statements/grant#wildcard-grants) for wildcard rules. diff --git a/reference/statements/check-table.mdx b/core/reference/statements/check-table.mdx similarity index 94% rename from reference/statements/check-table.mdx rename to core/reference/statements/check-table.mdx index 4c1d220b..83d37a96 100644 --- a/reference/statements/check-table.mdx +++ b/core/reference/statements/check-table.mdx @@ -29,7 +29,7 @@ CHECK TABLE table_name [PARTITION partition_expression | PART part_name] [FORMAT - `part_name`: (Optional) If you want to check a specific part in the table, you can add string literal to specify a part name. - `FORMAT format`: (Optional) Allows you to specify the output format of the result. - `SETTINGS`: (Optional) Allows additional settings. - - (Optional): [check_query_single_value_result](/reference/settings/session-settings#check_query_single_value_result): This setting controls if the output is detailed (`0`) or summarized (`1`). + - (Optional): [check_query_single_value_result](/core/reference/settings/session-settings#check_query_single_value_result): This setting controls if the output is detailed (`0`) or summarized (`1`). - Other settings can be applied as well. If you don't require a deterministic order for the results, you can set max_threads to a value greater than one to speed up the query. The query response depends on the value of the `check_query_single_value_result` setting. @@ -42,10 +42,10 @@ With `check_query_single_value_result = 0` the query returns the following colum The `CHECK TABLE` query supports the following table engines: -- [Log](/reference/engines/table-engines/log-family/log) -- [TinyLog](/reference/engines/table-engines/log-family/tinylog) -- [StripeLog](/reference/engines/table-engines/log-family/stripelog) -- [MergeTree family](/reference/engines/table-engines/mergetree-family/mergetree) +- [Log](/core/reference/engines/table-engines/log-family/log) +- [TinyLog](/core/reference/engines/table-engines/log-family/tinylog) +- [StripeLog](/core/reference/engines/table-engines/log-family/stripelog) +- [MergeTree family](/core/reference/engines/table-engines/mergetree-family/mergetree) Performed over the tables with another table engines causes an `NOT_IMPLEMENTED` exception. diff --git a/reference/statements/create/database.mdx b/core/reference/statements/create/database.mdx similarity index 85% rename from reference/statements/create/database.mdx rename to core/reference/statements/create/database.mdx index 97bdb189..7a56e3b4 100644 --- a/reference/statements/create/database.mdx +++ b/core/reference/statements/create/database.mdx @@ -23,11 +23,11 @@ If the `db_name` database already exists, then ClickHouse does not create a new ### ON CLUSTER {#on-cluster} -ClickHouse creates the `db_name` database on all the servers of a specified cluster. More details in a [Distributed DDL](/reference/statements/distributed-ddl) article. +ClickHouse creates the `db_name` database on all the servers of a specified cluster. More details in a [Distributed DDL](/core/reference/statements/distributed-ddl) article. ### ENGINE {#engine} -By default, ClickHouse uses its own [Atomic](/reference/engines/database-engines/atomic) database engine. There are also [MySQL](/reference/engines/database-engines/mysql), [PostgresSQL](/reference/engines/database-engines/postgresql), [MaterializedPostgreSQL](/reference/engines/database-engines/materialized-postgresql), [Replicated](/reference/engines/database-engines/replicated), [SQLite](/reference/engines/database-engines/sqlite). +By default, ClickHouse uses its own [Atomic](/core/reference/engines/database-engines/atomic) database engine. There are also [MySQL](/core/reference/engines/database-engines/mysql), [PostgresSQL](/core/reference/engines/database-engines/postgresql), [MaterializedPostgreSQL](/core/reference/engines/database-engines/materialized-postgresql), [Replicated](/core/reference/engines/database-engines/replicated), [SQLite](/core/reference/engines/database-engines/sqlite). ### COMMENT {#comment} diff --git a/reference/statements/create/dictionary.mdx b/core/reference/statements/create/dictionary.mdx similarity index 70% rename from reference/statements/create/dictionary.mdx rename to core/reference/statements/create/dictionary.mdx index 6482e132..478bfaec 100644 --- a/reference/statements/create/dictionary.mdx +++ b/core/reference/statements/create/dictionary.mdx @@ -47,12 +47,12 @@ COMMENT 'Comment' | Clause | Description | |---|---| -| [Attributes](/reference/statements/create/dictionary/attributes) | Dictionary attributes are specified similarly to table columns. The only required property is the type, all others may have default values. | +| [Attributes](/core/reference/statements/create/dictionary/attributes) | Dictionary attributes are specified similarly to table columns. The only required property is the type, all others may have default values. | | PRIMARY KEY | Defines the key column(s) for dictionary lookups. Depending on the layout, one or more attributes can be specified as keys. | -| [`SOURCE`](/reference/statements/create/dictionary/sources/overview) | Defines the data source for the dictionary (e.g. ClickHouse table, HTTP, PostgreSQL). | -| [`LAYOUT`](/reference/statements/create/dictionary/layouts/overview) | Controls how the dictionary is stored in memory (e.g. `FLAT`, `HASHED`, `CACHE`). | -| [`LIFETIME`](/reference/statements/create/dictionary/lifetime) | Sets the refresh interval for the dictionary. | -| [`ON CLUSTER`](/reference/statements/distributed-ddl) | Creates the dictionary on a cluster. Optional. | +| [`SOURCE`](/core/reference/statements/create/dictionary/sources/overview) | Defines the data source for the dictionary (e.g. ClickHouse table, HTTP, PostgreSQL). | +| [`LAYOUT`](/core/reference/statements/create/dictionary/layouts/overview) | Controls how the dictionary is stored in memory (e.g. `FLAT`, `HASHED`, `CACHE`). | +| [`LIFETIME`](/core/reference/statements/create/dictionary/lifetime) | Sets the refresh interval for the dictionary. | +| [`ON CLUSTER`](/core/reference/statements/distributed-ddl) | Creates the dictionary on a cluster. Optional. | | `SETTINGS` | Additional dictionary settings. Optional. | | `COMMENT` | Adds a text comment to the dictionary. Optional. | @@ -85,9 +85,9 @@ You can configure any number of dictionaries in the same file. ## Related content {#related-content} -- [Layouts](/reference/statements/create/dictionary/layouts/overview) — How dictionaries are stored in memory -- [Sources](/reference/statements/create/dictionary/sources/overview) — Connecting to data sources -- [Lifetime](/reference/statements/create/dictionary/lifetime) — Automatic refresh configuration -- [Attributes](/reference/statements/create/dictionary/attributes) — Key and attribute configuration -- [Embedded Dictionaries](/reference/statements/create/dictionary/embedded) — Built-in geobase dictionaries -- [system.dictionaries](/reference/system-tables/dictionaries) — System table with dictionary information +- [Layouts](/core/reference/statements/create/dictionary/layouts/overview) — How dictionaries are stored in memory +- [Sources](/core/reference/statements/create/dictionary/sources/overview) — Connecting to data sources +- [Lifetime](/core/reference/statements/create/dictionary/lifetime) — Automatic refresh configuration +- [Attributes](/core/reference/statements/create/dictionary/attributes) — Key and attribute configuration +- [Embedded Dictionaries](/core/reference/statements/create/dictionary/embedded) — Built-in geobase dictionaries +- [system.dictionaries](/core/reference/system-tables/dictionaries) — System table with dictionary information diff --git a/reference/statements/create/dictionary/attributes.mdx b/core/reference/statements/create/dictionary/attributes.mdx similarity index 83% rename from reference/statements/create/dictionary/attributes.mdx rename to core/reference/statements/create/dictionary/attributes.mdx index e94f622a..f1e23282 100644 --- a/reference/statements/create/dictionary/attributes.mdx +++ b/core/reference/statements/create/dictionary/attributes.mdx @@ -96,7 +96,7 @@ PRIMARY KEY Id ### Composite Key {#composite-key} -The key can be a `tuple` from any types of fields. The [layout](/reference/statements/create/dictionary/layouts/overview) in this case must be `complex_key_hashed` or `complex_key_cache`. +The key can be a `tuple` from any types of fields. The [layout](/core/reference/statements/create/dictionary/layouts/overview) in this case must be `complex_key_hashed` or `complex_key_cache`. A composite key can consist of a single element. This makes it possible to use a string as the key, for instance. @@ -166,9 +166,9 @@ Configuration fields: | Tag | Description | Required | |------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------| | `name` | Column name. | Yes | -| `type` | ClickHouse data type: [UInt8](/reference/data-types/int-uint), [UInt16](/reference/data-types/int-uint), [UInt32](/reference/data-types/int-uint), [UInt64](/reference/data-types/int-uint), [Int8](/reference/data-types/int-uint), [Int16](/reference/data-types/int-uint), [Int32](/reference/data-types/int-uint), [Int64](/reference/data-types/int-uint), [Float32](/reference/data-types/float), [Float64](/reference/data-types/float), [UUID](/reference/data-types/uuid), [Decimal32](/reference/data-types/decimal), [Decimal64](/reference/data-types/decimal), [Decimal128](/reference/data-types/decimal), [Decimal256](/reference/data-types/decimal),[Date](/reference/data-types/date), [Date32](/reference/data-types/date32), [DateTime](/reference/data-types/datetime), [DateTime64](/reference/data-types/datetime64), [String](/reference/data-types/string), [Array](/reference/data-types/array).
    ClickHouse tries to cast value from dictionary to the specified data type. For example, for MySQL, the field might be `TEXT`, `VARCHAR`, or `BLOB` in the MySQL source table, but it can be uploaded as `String` in ClickHouse.
    [Nullable](/reference/data-types/nullable) is currently supported for [Flat](/reference/statements/create/dictionary/layouts/flat), [Hashed](/reference/statements/create/dictionary/layouts/hashed), [ComplexKeyHashed](/reference/statements/create/dictionary/layouts/hashed#complex_key_hashed), [Direct](/reference/statements/create/dictionary/layouts/direct), [ComplexKeyDirect](/reference/statements/create/dictionary/layouts/direct#complex_key_direct), [RangeHashed](/reference/statements/create/dictionary/layouts/range-hashed), Polygon, [Cache](/reference/statements/create/dictionary/layouts/cache), [ComplexKeyCache](/reference/statements/create/dictionary/layouts/cache), [SSDCache](/reference/statements/create/dictionary/layouts/ssd-cache), [SSDComplexKeyCache](/reference/statements/create/dictionary/layouts/ssd-cache#complex_key_ssd_cache) dictionaries. In [IPTrie](/reference/statements/create/dictionary/layouts/ip-trie) dictionaries `Nullable` types are not supported. | Yes | -| `null_value` | Default value for a non-existing element.
    In the example, it is an empty string. [NULL](/reference/syntax#null) value can be used only for the `Nullable` types (see the previous line with types description). | Yes | -| `expression` | [Expression](/reference/syntax#expressions) that ClickHouse executes on the value.
    The expression can be a column name in the remote SQL database. Thus, you can use it to create an alias for the remote column.

    Default value: no expression. | No | -| `hierarchical` | If `true`, the attribute contains the value of a parent key for the current key. See [Hierarchical Dictionaries](/reference/statements/create/dictionary/layouts/hierarchical).

    Default value: `false`. | No | +| `type` | ClickHouse data type: [UInt8](/core/reference/data-types/int-uint), [UInt16](/core/reference/data-types/int-uint), [UInt32](/core/reference/data-types/int-uint), [UInt64](/core/reference/data-types/int-uint), [Int8](/core/reference/data-types/int-uint), [Int16](/core/reference/data-types/int-uint), [Int32](/core/reference/data-types/int-uint), [Int64](/core/reference/data-types/int-uint), [Float32](/core/reference/data-types/float), [Float64](/core/reference/data-types/float), [UUID](/core/reference/data-types/uuid), [Decimal32](/core/reference/data-types/decimal), [Decimal64](/core/reference/data-types/decimal), [Decimal128](/core/reference/data-types/decimal), [Decimal256](/core/reference/data-types/decimal),[Date](/core/reference/data-types/date), [Date32](/core/reference/data-types/date32), [DateTime](/core/reference/data-types/datetime), [DateTime64](/core/reference/data-types/datetime64), [String](/core/reference/data-types/string), [Array](/core/reference/data-types/array).
    ClickHouse tries to cast value from dictionary to the specified data type. For example, for MySQL, the field might be `TEXT`, `VARCHAR`, or `BLOB` in the MySQL source table, but it can be uploaded as `String` in ClickHouse.
    [Nullable](/core/reference/data-types/nullable) is currently supported for [Flat](/core/reference/statements/create/dictionary/layouts/flat), [Hashed](/core/reference/statements/create/dictionary/layouts/hashed), [ComplexKeyHashed](/core/reference/statements/create/dictionary/layouts/hashed#complex_key_hashed), [Direct](/core/reference/statements/create/dictionary/layouts/direct), [ComplexKeyDirect](/core/reference/statements/create/dictionary/layouts/direct#complex_key_direct), [RangeHashed](/core/reference/statements/create/dictionary/layouts/range-hashed), Polygon, [Cache](/core/reference/statements/create/dictionary/layouts/cache), [ComplexKeyCache](/core/reference/statements/create/dictionary/layouts/cache), [SSDCache](/core/reference/statements/create/dictionary/layouts/ssd-cache), [SSDComplexKeyCache](/core/reference/statements/create/dictionary/layouts/ssd-cache#complex_key_ssd_cache) dictionaries. In [IPTrie](/core/reference/statements/create/dictionary/layouts/ip-trie) dictionaries `Nullable` types are not supported. | Yes | +| `null_value` | Default value for a non-existing element.
    In the example, it is an empty string. [NULL](/core/reference/syntax#null) value can be used only for the `Nullable` types (see the previous line with types description). | Yes | +| `expression` | [Expression](/core/reference/syntax#expressions) that ClickHouse executes on the value.
    The expression can be a column name in the remote SQL database. Thus, you can use it to create an alias for the remote column.

    Default value: no expression. | No | +| `hierarchical` | If `true`, the attribute contains the value of a parent key for the current key. See [Hierarchical Dictionaries](/core/reference/statements/create/dictionary/layouts/hierarchical).

    Default value: `false`. | No | | `injective` | Flag that shows whether the `id -> attribute` image is [injective](https://en.wikipedia.org/wiki/Injective_function).
    If `true`, ClickHouse can automatically place after the `GROUP BY` clause the requests to dictionaries with injection. Usually it significantly reduces the amount of such requests.

    Default value: `false`. | No | | `is_object_id` | Flag that shows whether the query is executed for a MongoDB document by `ObjectID`.

    Default value: `false`. diff --git a/reference/statements/create/dictionary/embedded.mdx b/core/reference/statements/create/dictionary/embedded.mdx similarity index 100% rename from reference/statements/create/dictionary/embedded.mdx rename to core/reference/statements/create/dictionary/embedded.mdx diff --git a/reference/statements/create/dictionary/layouts/cache.mdx b/core/reference/statements/create/dictionary/layouts/cache.mdx similarity index 85% rename from reference/statements/create/dictionary/layouts/cache.mdx rename to core/reference/statements/create/dictionary/layouts/cache.mdx index 8160e3be..5a6ce1fb 100644 --- a/reference/statements/create/dictionary/layouts/cache.mdx +++ b/core/reference/statements/create/dictionary/layouts/cache.mdx @@ -9,15 +9,15 @@ doc_type: 'reference' The `cached` dictionary layout type is stores the dictionary in a cache that has a fixed number of cells. These cells contain frequently used elements. -The dictionary key has the [UInt64](/reference/data-types/int-uint) type. +The dictionary key has the [UInt64](/core/reference/data-types/int-uint) type. When searching for a dictionary, the cache is searched first. For each block of data, all keys that are not found in the cache or are outdated are requested from the source using `SELECT attrs... FROM db.table WHERE id IN (k1, k2, ...)`. The received data is then written to the cache. If keys are not found in dictionary, then update cache task is created and added into update queue. Update queue properties can be controlled with settings `max_update_queue_size`, `update_queue_push_timeout_milliseconds`, `query_wait_timeout_milliseconds`, `max_threads_for_updates`. -For cache dictionaries, the expiration [lifetime](/reference/statements/create/dictionary/lifetime) of data in the cache can be set. If more time than `lifetime` has passed since loading the data in a cell, the cell's value is not used and key becomes expired. The key is re-requested the next time it needs to be used. This behaviour can be configured with setting `allow_read_expired_keys`. +For cache dictionaries, the expiration [lifetime](/core/reference/statements/create/dictionary/lifetime) of data in the cache can be set. If more time than `lifetime` has passed since loading the data in a cell, the cell's value is not used and key becomes expired. The key is re-requested the next time it needs to be used. This behaviour can be configured with setting `allow_read_expired_keys`. -This is the least effective of all the ways to store dictionaries. The speed of the cache depends strongly on correct settings and the usage scenario. A cache type dictionary performs well only when the hit rates are high enough (recommended 99% and higher). You can view the average hit rate in the [system.dictionaries](/reference/system-tables/dictionaries) table. +This is the least effective of all the ways to store dictionaries. The speed of the cache depends strongly on correct settings and the usage scenario. A cache type dictionary performs well only when the hit rates are high enough (recommended 99% and higher). You can view the average hit rate in the [system.dictionaries](/core/reference/system-tables/dictionaries) table. If setting `allow_read_expired_keys` is set to 1, by default 0. Then dictionary can support asynchronous updates. If a client requests keys and all of them are in cache, but some of them are expired, then dictionary will return expired keys for a client and request them asynchronously from the source. diff --git a/reference/statements/create/dictionary/layouts/direct.mdx b/core/reference/statements/create/dictionary/layouts/direct.mdx similarity index 62% rename from reference/statements/create/dictionary/layouts/direct.mdx rename to core/reference/statements/create/dictionary/layouts/direct.mdx index 53890209..c838bba8 100644 --- a/reference/statements/create/dictionary/layouts/direct.mdx +++ b/core/reference/statements/create/dictionary/layouts/direct.mdx @@ -10,9 +10,9 @@ doc_type: 'reference' The dictionary is not stored in memory and directly goes to the source during the processing of a request. -The dictionary key has the [UInt64](/reference/data-types/int-uint) type. +The dictionary key has the [UInt64](/core/reference/data-types/int-uint) type. -All types of [sources](/reference/statements/create/dictionary/sources/overview#dictionary-sources), except local files, are supported. +All types of [sources](/core/reference/statements/create/dictionary/sources/overview#dictionary-sources), except local files, are supported. Configuration example: @@ -38,4 +38,4 @@ LAYOUT(DIRECT()) ## complex_key_direct {#complex_key_direct} -This type of storage is for use with composite [keys](/reference/statements/create/dictionary/attributes#composite-key). Similar to `direct`. +This type of storage is for use with composite [keys](/core/reference/statements/create/dictionary/attributes#composite-key). Similar to `direct`. diff --git a/reference/statements/create/dictionary/layouts/flat.mdx b/core/reference/statements/create/dictionary/layouts/flat.mdx similarity index 89% rename from reference/statements/create/dictionary/layouts/flat.mdx rename to core/reference/statements/create/dictionary/layouts/flat.mdx index 5793ad71..32d31e20 100644 --- a/reference/statements/create/dictionary/layouts/flat.mdx +++ b/core/reference/statements/create/dictionary/layouts/flat.mdx @@ -13,7 +13,7 @@ The amount of memory used is proportional to the size of the largest key (in spa This layout type provides the best performance among all available methods of storing a dictionary.
    -The dictionary key has the [UInt64](/reference/data-types/int-uint) type and the value is limited to `max_array_size` (by default — 500,000). +The dictionary key has the [UInt64](/core/reference/data-types/int-uint) type and the value is limited to `max_array_size` (by default — 500,000). If a larger key is discovered when creating the dictionary, ClickHouse throws an exception and does not create the dictionary. The initial size of dictionary flat arrays are controlled by the `initial_array_size` setting (by default — 1024). diff --git a/reference/statements/create/dictionary/layouts/hashed-array.mdx b/core/reference/statements/create/dictionary/layouts/hashed-array.mdx similarity index 83% rename from reference/statements/create/dictionary/layouts/hashed-array.mdx rename to core/reference/statements/create/dictionary/layouts/hashed-array.mdx index 29c781c9..90e8cca8 100644 --- a/reference/statements/create/dictionary/layouts/hashed-array.mdx +++ b/core/reference/statements/create/dictionary/layouts/hashed-array.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' The dictionary is completely stored in memory. Each attribute is stored in an array. The key attribute is stored in the form of a hashed table where value is an index in the attributes array. The dictionary can contain any number of elements with any identifiers. In practice, the number of keys can reach tens of millions of items. -The dictionary key has the [UInt64](/reference/data-types/int-uint) type. +The dictionary key has the [UInt64](/core/reference/data-types/int-uint) type. All types of sources are supported. When updating, data (from a file or from a table) is read in its entirety. @@ -39,7 +39,7 @@ LAYOUT(HASHED_ARRAY([SHARDS 1])) ## complex_key_hashed_array {#complex_key_hashed_array} -This type of storage is for use with composite [keys](/reference/statements/create/dictionary/attributes#composite-key). Similar to [hashed_array](#hashed_array). +This type of storage is for use with composite [keys](/core/reference/statements/create/dictionary/attributes#composite-key). Similar to [hashed_array](#hashed_array). Configuration example: diff --git a/reference/statements/create/dictionary/layouts/hashed.mdx b/core/reference/statements/create/dictionary/layouts/hashed.mdx similarity index 88% rename from reference/statements/create/dictionary/layouts/hashed.mdx rename to core/reference/statements/create/dictionary/layouts/hashed.mdx index 1968539d..fe17835a 100644 --- a/reference/statements/create/dictionary/layouts/hashed.mdx +++ b/core/reference/statements/create/dictionary/layouts/hashed.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' The dictionary is completely stored in memory in the form of a hash table. The dictionary can contain any number of elements with any identifiers. In practice, the number of keys can reach tens of millions of items. -The dictionary key has the [UInt64](/reference/data-types/int-uint) type. +The dictionary key has the [UInt64](/core/reference/data-types/int-uint) type. All types of sources are supported. When updating, data (from a file or from a table) is read in its entirety. @@ -85,7 +85,7 @@ LAYOUT(HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_FACTOR 0.5]) Similar to `hashed`, but uses less memory in favor more CPU usage. -The dictionary key has the [UInt64](/reference/data-types/int-uint) type. +The dictionary key has the [UInt64](/core/reference/data-types/int-uint) type. Configuration example: @@ -117,7 +117,7 @@ It is also possible to use `shards` for this type of dictionary, and again it is ## complex_key_hashed {#complex_key_hashed} -This type of storage is for use with composite [keys](/reference/statements/create/dictionary/attributes#composite-key). Similar to `hashed`. +This type of storage is for use with composite [keys](/core/reference/statements/create/dictionary/attributes#composite-key). Similar to `hashed`. Configuration example: @@ -147,7 +147,7 @@ LAYOUT(COMPLEX_KEY_HASHED([SHARDS 1] [SHARD_LOAD_QUEUE_BACKLOG 10000] [MAX_LOAD_ ## complex_key_sparse_hashed {#complex_key_sparse_hashed} -This type of storage is for use with composite [keys](/reference/statements/create/dictionary/attributes#composite-key). Similar to [sparse_hashed](#sparse_hashed). +This type of storage is for use with composite [keys](/core/reference/statements/create/dictionary/attributes#composite-key). Similar to [sparse_hashed](#sparse_hashed). Configuration example: diff --git a/reference/statements/create/dictionary/layouts/hierarchical.mdx b/core/reference/statements/create/dictionary/layouts/hierarchical.mdx similarity index 90% rename from reference/statements/create/dictionary/layouts/hierarchical.mdx rename to core/reference/statements/create/dictionary/layouts/hierarchical.mdx index e9209107..fa5be7cd 100644 --- a/reference/statements/create/dictionary/layouts/hierarchical.mdx +++ b/core/reference/statements/create/dictionary/layouts/hierarchical.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' ## Hierarchical dictionaries {#hierarchical-dictionaries} -ClickHouse supports hierarchical dictionaries with a [numeric key](/reference/statements/create/dictionary/attributes#numeric-key). +ClickHouse supports hierarchical dictionaries with a [numeric key](/core/reference/statements/create/dictionary/attributes#numeric-key). Look at the following hierarchical structure: @@ -40,7 +40,7 @@ This table contains a column `parent_region` that contains the key of the neares ClickHouse supports the hierarchical property for external dictionary attributes. This property allows you to configure the hierarchical dictionary similar to described above. -The [dictGetHierarchy](/reference/functions/regular-functions/ext-dict-functions#dictGetHierarchy) function allows you to get the parent chain of an element. +The [dictGetHierarchy](/core/reference/functions/regular-functions/ext-dict-functions#dictGetHierarchy) function allows you to get the parent chain of an element. For our example, the structure of the dictionary can be the following: diff --git a/reference/statements/create/dictionary/layouts/ip-trie.mdx b/core/reference/statements/create/dictionary/layouts/ip-trie.mdx similarity index 100% rename from reference/statements/create/dictionary/layouts/ip-trie.mdx rename to core/reference/statements/create/dictionary/layouts/ip-trie.mdx diff --git a/core/reference/statements/create/dictionary/layouts/overview.mdx b/core/reference/statements/create/dictionary/layouts/overview.mdx new file mode 100644 index 00000000..aab34a70 --- /dev/null +++ b/core/reference/statements/create/dictionary/layouts/overview.mdx @@ -0,0 +1,157 @@ +--- +description: 'Dictionary layout types for storing dictionaries in memory' +sidebarTitle: 'Overview' +slug: /sql-reference/statements/create/dictionary/layouts +title: 'Dictionary layouts' +doc_type: 'reference' +--- + +import CloudDetails from '/snippets/_snippet_dictionary_in_cloud.mdx'; + +## Dictionary layout types {#storing-dictionaries-in-memory} + +There are a variety of ways to store dictionaries in memory, each with CPU and RAM-usage trade-offs. + +| Layout | Description | +|---|---| +| [flat](/core/reference/statements/create/dictionary/layouts/flat) | Stores data in flat arrays indexed by key. Fastest layout, but keys must be `UInt64` and bounded by `max_array_size`. | +| [hashed](/core/reference/statements/create/dictionary/layouts/hashed) | Stores data in a hash table. No key size limit, supports any number of elements. | +| [sparse_hashed](/core/reference/statements/create/dictionary/layouts/hashed#sparse_hashed) | Like `hashed`, but trades CPU for lower memory usage. | +| [complex_key_hashed](/core/reference/statements/create/dictionary/layouts/hashed#complex_key_hashed) | Like `hashed`, for composite keys. | +| [complex_key_sparse_hashed](/core/reference/statements/create/dictionary/layouts/hashed#complex_key_sparse_hashed) | Like `sparse_hashed`, for composite keys. | +| [hashed_array](/core/reference/statements/create/dictionary/layouts/hashed-array) | Attributes stored in arrays with a hash table mapping keys to array indices. Memory-efficient for many attributes. | +| [complex_key_hashed_array](/core/reference/statements/create/dictionary/layouts/hashed-array#complex_key_hashed_array) | Like `hashed_array`, for composite keys. | +| [range_hashed](/core/reference/statements/create/dictionary/layouts/range-hashed) | Hash table with ordered ranges. Supports lookups by key + date/time range. | +| [complex_key_range_hashed](/core/reference/statements/create/dictionary/layouts/range-hashed#complex_key_range_hashed) | Like `range_hashed`, for composite keys. | +| [cache](/core/reference/statements/create/dictionary/layouts/cache) | Fixed-size in-memory cache. Only frequently accessed keys are stored. | +| [complex_key_cache](/core/reference/statements/create/dictionary/layouts/hashed#complex_key_hashed) | Like `cache`, for composite keys. | +| [ssd_cache](/core/reference/statements/create/dictionary/layouts/ssd-cache) | Like `cache`, but stores data on SSD with an in-memory index. | +| [complex_key_ssd_cache](/core/reference/statements/create/dictionary/layouts/ssd-cache#complex_key_ssd_cache) | Like `ssd_cache`, for composite keys. | +| [direct](/core/reference/statements/create/dictionary/layouts/direct) | No in-memory storage — queries the source directly for each request. | +| [complex_key_direct](/core/reference/statements/create/dictionary/layouts/direct#complex_key_direct) | Like `direct`, for composite keys. | +| [ip_trie](/core/reference/statements/create/dictionary/layouts/ip-trie) | Trie structure for fast IP prefix lookups (CIDR-based). | + + +**Recommended layouts** + +[flat](/core/reference/statements/create/dictionary/layouts/flat), [hashed](/core/reference/statements/create/dictionary/layouts/hashed), and [complex_key_hashed](/core/reference/statements/create/dictionary/layouts/hashed#complex_key_hashed) provide the best query performance. +Caching layouts are not recommended due to potentially poor performance and difficulty tuning parameters — see [cache](/core/reference/statements/create/dictionary/layouts/cache) for details. + + +## Specify dictionary layout {#specify-dictionary-layout} + + + +You can configure a dictionary layout with the `LAYOUT` clause (for DDL) or the `layout` setting for configuration file definitions. + + + + +```sql +CREATE DICTIONARY (...) +... +LAYOUT(LAYOUT_TYPE(param value)) -- layout settings +... +``` + + + + +```xml + + + ... + + + + + + ... + + +``` + + + +
    + +See also [CREATE DICTIONARY](/core/reference/statements/create/dictionary) for the full DDL syntax. + +Dictionaries without word `complex-key*` in a layout have a key with [UInt64](/core/reference/data-types/int-uint) type, `complex-key*` dictionaries have a composite key (complex, with arbitrary types). + +**Numeric key example** (column key_column has [UInt64](/core/reference/data-types/int-uint) type): + + + + +```sql +CREATE DICTIONARY dict_name ( + key_column UInt64, + ... +) +PRIMARY KEY key_column +``` + + + + +```xml + + + key_column + + ... + +``` + + + +
    + +**Composite key example** (key has one element with [String](/core/reference/data-types/string) type): + + + + +```sql +CREATE DICTIONARY dict_name ( + country_code String, + ... +) +PRIMARY KEY country_code +``` + + + + +```xml + + + + country_code + String + + + ... + +``` + + + + +## Improve dictionary performance {#improve-performance} + +There are several ways to improve dictionary performance: + +- Call the function for working with the dictionary after `GROUP BY`. +- Mark attributes to extract as injective. + An attribute is called injective if different keys correspond to different attribute values. + So when `GROUP BY` uses a function that fetches an attribute value by the key, this function is automatically taken out of `GROUP BY`. + +ClickHouse generates an exception for errors with dictionaries. +Examples of errors can be: + +- The dictionary being accessed could not be loaded. +- Error querying a `cached` dictionary. + +You can view the list of dictionaries and their statuses in the [system.dictionaries](/core/reference/system-tables/dictionaries) table. diff --git a/reference/statements/create/dictionary/layouts/polygon.mdx b/core/reference/statements/create/dictionary/layouts/polygon.mdx similarity index 94% rename from reference/statements/create/dictionary/layouts/polygon.mdx rename to core/reference/statements/create/dictionary/layouts/polygon.mdx index 1f9b31ae..f6eb16b0 100644 --- a/reference/statements/create/dictionary/layouts/polygon.mdx +++ b/core/reference/statements/create/dictionary/layouts/polygon.mdx @@ -83,7 +83,7 @@ Points can be specified as an array or a tuple of their coordinates. In the curr The user can upload their own data in all formats supported by ClickHouse. -There are 3 types of [in-memory storage](/reference/statements/create/dictionary/layouts/overview#storing-dictionaries-in-memory) available: +There are 3 types of [in-memory storage](/core/reference/statements/create/dictionary/layouts/overview#storing-dictionaries-in-memory) available: | Layout | Description | |---|---| @@ -92,7 +92,7 @@ There are 3 types of [in-memory storage](/reference/statements/create/dictionary | `POLYGON_INDEX_CELL` | Also creates the grid described above with the same options. For each leaf cell, an index is built on all polygon pieces that fall into it, allowing fast query responses. | | `POLYGON` | Synonym for `POLYGON_INDEX_CELL`. | -Dictionary queries are carried out using standard [functions](/reference/functions/regular-functions/ext-dict-functions) for working with dictionaries. +Dictionary queries are carried out using standard [functions](/core/reference/functions/regular-functions/ext-dict-functions) for working with dictionaries. An important difference is that here the keys will be the points for which you want to find the polygon containing them. **Example** diff --git a/reference/statements/create/dictionary/layouts/range-hashed.mdx b/core/reference/statements/create/dictionary/layouts/range-hashed.mdx similarity index 95% rename from reference/statements/create/dictionary/layouts/range-hashed.mdx rename to core/reference/statements/create/dictionary/layouts/range-hashed.mdx index e34cfa01..ca7787b3 100644 --- a/reference/statements/create/dictionary/layouts/range-hashed.mdx +++ b/core/reference/statements/create/dictionary/layouts/range-hashed.mdx @@ -22,7 +22,7 @@ Example: The table contains discounts for each advertiser in the format: └───────────────┴─────────────────────┴───────────────────┴────────┘ ``` -To use a sample for date ranges, define the `range_min` and `range_max` elements in the [structure](/reference/statements/create/dictionary/attributes#composite-key). These elements must contain elements `name` and `type` (if `type` is not specified, the default type will be used - Date). `type` can be any numeric type (Date / DateTime / UInt64 / Int32 / others). +To use a sample for date ranges, define the `range_min` and `range_max` elements in the [structure](/core/reference/statements/create/dictionary/attributes#composite-key). These elements must contain elements `name` and `type` (if `type` is not specified, the default type will be used - Date). `type` can be any numeric type (Date / DateTime / UInt64 / Int32 / others). Values of `range_min` and `range_max` should fit in `Int64` type. @@ -255,7 +255,7 @@ select dictGet('discounts_dict', 'amount', 3, toDate('2015-01-01')) res; ## complex_key_range_hashed {#complex_key_range_hashed} -The dictionary is stored in memory in the form of a hash table with an ordered array of ranges and their corresponding values (see [range_hashed](#range_hashed)). This type of storage is for use with composite [keys](/reference/statements/create/dictionary/attributes#composite-key). +The dictionary is stored in memory in the form of a hash table with an ordered array of ranges and their corresponding values (see [range_hashed](#range_hashed)). This type of storage is for use with composite [keys](/core/reference/statements/create/dictionary/attributes#composite-key). Configuration example: diff --git a/reference/statements/create/dictionary/layouts/regexp-tree.mdx b/core/reference/statements/create/dictionary/layouts/regexp-tree.mdx similarity index 91% rename from reference/statements/create/dictionary/layouts/regexp-tree.mdx rename to core/reference/statements/create/dictionary/layouts/regexp-tree.mdx index 729c7714..fae6a7b4 100644 --- a/reference/statements/create/dictionary/layouts/regexp-tree.mdx +++ b/core/reference/statements/create/dictionary/layouts/regexp-tree.mdx @@ -20,7 +20,7 @@ It's optimized for pattern-match lookups (e.g. classifying strings like user age -Regular expression tree dictionaries are defined in ClickHouse open-source using the [`YAMLRegExpTree`](/reference/statements/create/dictionary/sources/yamlregexptree) source which is provided the path to a YAML file containing the regular expression tree. +Regular expression tree dictionaries are defined in ClickHouse open-source using the [`YAMLRegExpTree`](/core/reference/statements/create/dictionary/sources/yamlregexptree) source which is provided the path to a YAML file containing the regular expression tree. ```sql title="Query" CREATE DICTIONARY regexp_dict @@ -35,7 +35,7 @@ LAYOUT(regexp_tree) ... ``` -The dictionary source [`YAMLRegExpTree`](/reference/statements/create/dictionary/sources/yamlregexptree) represents the structure of a regexp tree. For example: +The dictionary source [`YAMLRegExpTree`](/core/reference/statements/create/dictionary/sources/yamlregexptree) represents the structure of a regexp tree. For example: ```yaml - regexp: 'Linux/(\d+[\.\d]*).+tlinux' @@ -83,7 +83,7 @@ ClickHouse supports [uap-core](https://github.com/ua-parser/uap-core) and you ca ### Collecting attribute values {#collecting-attribute-values} -Sometimes it is useful to return values from multiple regular expressions that matched, rather than just the value of a leaf node. In these cases, the specialized [`dictGetAll`](/reference/functions/regular-functions/ext-dict-functions#dictGetAll) function can be used. If a node has an attribute value of type `T`, `dictGetAll` will return an `Array(T)` containing zero or more values. +Sometimes it is useful to return values from multiple regular expressions that matched, rather than just the value of a leaf node. In these cases, the specialized [`dictGetAll`](/core/reference/functions/regular-functions/ext-dict-functions#dictGetAll) function can be used. If a node has an attribute value of type `T`, `dictGetAll` will return an `Array(T)` containing zero or more values. By default, the number of matches returned per key is unbounded. A bound can be passed as an optional fourth argument to `dictGetAll`. The array is populated in _topological order_, meaning that child nodes come before parent nodes, and sibling nodes follow the ordering in the source. @@ -148,8 +148,8 @@ Pattern matching behavior can be modified with certain dictionary settings: ## Use regular expression tree dictionary in ClickHouse Cloud {#use-regular-expression-tree-dictionary-in-clickhouse-cloud} -The [`YAMLRegExpTree`](/reference/statements/create/dictionary/sources/yamlregexptree) source works in ClickHouse Open Source but not in ClickHouse Cloud. -To use regexp tree dictionaries in ClickHouse Cloud, first create a regexp tree dictionary from a YAML file locally in ClickHouse Open Source, then dump this dictionary into a CSV file using the `dictionary` table function and the [INTO OUTFILE](/reference/statements/select/into-outfile) clause. +The [`YAMLRegExpTree`](/core/reference/statements/create/dictionary/sources/yamlregexptree) source works in ClickHouse Open Source but not in ClickHouse Cloud. +To use regexp tree dictionaries in ClickHouse Cloud, first create a regexp tree dictionary from a YAML file locally in ClickHouse Open Source, then dump this dictionary into a CSV file using the `dictionary` table function and the [INTO OUTFILE](/core/reference/statements/select/into-outfile) clause. ```sql SELECT * FROM dictionary(regexp_dict) INTO OUTFILE('regexp_dict.csv') diff --git a/reference/statements/create/dictionary/layouts/ssd-cache.mdx b/core/reference/statements/create/dictionary/layouts/ssd-cache.mdx similarity index 86% rename from reference/statements/create/dictionary/layouts/ssd-cache.mdx rename to core/reference/statements/create/dictionary/layouts/ssd-cache.mdx index a31eb9e8..ffd09298 100644 --- a/reference/statements/create/dictionary/layouts/ssd-cache.mdx +++ b/core/reference/statements/create/dictionary/layouts/ssd-cache.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' Similar to `cache`, but stores data on SSD and index in RAM. All cache dictionary settings related to update queue can also be applied to SSD cache dictionaries. -The dictionary key has the [UInt64](/reference/data-types/int-uint) type. +The dictionary key has the [UInt64](/core/reference/data-types/int-uint) type. @@ -46,4 +46,4 @@ LAYOUT(SSD_CACHE(BLOCK_SIZE 4096 FILE_SIZE 16777216 READ_BUFFER_SIZE 1048576 ## complex_key_ssd_cache {#complex_key_ssd_cache} -This type of storage is for use with composite [keys](/reference/statements/create/dictionary/attributes#composite-key). Similar to `ssd_cache`. +This type of storage is for use with composite [keys](/core/reference/statements/create/dictionary/attributes#composite-key). Similar to `ssd_cache`. diff --git a/reference/statements/create/dictionary/lifetime.mdx b/core/reference/statements/create/dictionary/lifetime.mdx similarity index 94% rename from reference/statements/create/dictionary/lifetime.mdx rename to core/reference/statements/create/dictionary/lifetime.mdx index 98227d32..c25267e8 100644 --- a/reference/statements/create/dictionary/lifetime.mdx +++ b/core/reference/statements/create/dictionary/lifetime.mdx @@ -14,7 +14,7 @@ ClickHouse periodically updates dictionaries based on the `LIFETIME` tag (define During updates, the old version of a dictionary can still be queried. Dictionary updates do not block queries, apart from when they load for first use. If an error occurs during an update, the error is written to the server log, and queries can continue using the old version of the dictionary. -If a dictionary update is successful, the old version of the dictionary is replaced [atomically](/concepts/core-concepts/glossary#atomicity). +If a dictionary update is successful, the old version of the dictionary is replaced [atomically](/core/concepts/core-concepts/glossary#atomicity). Example of settings: @@ -63,7 +63,7 @@ LIFETIME(MIN 300 MAX 360) If `0` and `0`, ClickHouse does not reload the dictionary by timeout. In this case, ClickHouse can reload the dictionary earlier if the dictionary configuration file was changed or the `SYSTEM RELOAD DICTIONARY` command was executed. -When updating the dictionaries, the ClickHouse server applies different logic depending on the type of [source](/reference/statements/create/dictionary/sources/overview): +When updating the dictionaries, the ClickHouse server applies different logic depending on the type of [source](/core/reference/statements/create/dictionary/sources/overview): - For a text file, it checks the time of modification. If the time differs from the previously recorded time, the dictionary is updated. - Dictionaries from other sources are updated every time by default. @@ -71,7 +71,7 @@ When updating the dictionaries, the ClickHouse server applies different logic de For other sources (ODBC, PostgreSQL, ClickHouse, etc), you can set up a query that will update the dictionaries only if they really changed, rather than each time. To do this, follow these steps: - The dictionary table must have a field that always changes when the source data is updated. -- The settings of the source must specify a query that retrieves the changing field. The ClickHouse server interprets the query result as a row, and if this row has changed relative to its previous state, the dictionary is updated. Specify the query in the `` field in the settings for the [source](/reference/statements/create/dictionary/sources/overview). +- The settings of the source must specify a query that retrieves the changing field. The ClickHouse server interprets the query result as a row, and if this row has changed relative to its previous state, the dictionary is updated. Specify the query in the `` field in the settings for the [source](/core/reference/statements/create/dictionary/sources/overview). Example of settings: diff --git a/reference/statements/create/dictionary/sources/cassandra.mdx b/core/reference/statements/create/dictionary/sources/cassandra.mdx similarity index 100% rename from reference/statements/create/dictionary/sources/cassandra.mdx rename to core/reference/statements/create/dictionary/sources/cassandra.mdx diff --git a/reference/statements/create/dictionary/sources/clickhouse.mdx b/core/reference/statements/create/dictionary/sources/clickhouse.mdx similarity index 88% rename from reference/statements/create/dictionary/sources/clickhouse.mdx rename to core/reference/statements/create/dictionary/sources/clickhouse.mdx index 268afc6e..eaa08888 100644 --- a/reference/statements/create/dictionary/sources/clickhouse.mdx +++ b/core/reference/statements/create/dictionary/sources/clickhouse.mdx @@ -52,14 +52,14 @@ Setting fields: | Setting | Description | |---------|-------------| -| `host` | The ClickHouse host. If it is a local host, the query is processed without any network activity. To improve fault tolerance, you can create a [Distributed](/reference/engines/table-engines/special/distributed) table and enter it in subsequent configurations. | +| `host` | The ClickHouse host. If it is a local host, the query is processed without any network activity. To improve fault tolerance, you can create a [Distributed](/core/reference/engines/table-engines/special/distributed) table and enter it in subsequent configurations. | | `port` | The port on the ClickHouse server. | | `user` | Name of the ClickHouse user. | | `password` | Password of the ClickHouse user. | | `db` | Name of the database. | | `table` | Name of the table. | | `where` | The selection criteria. Optional. | -| `invalidate_query` | Query for checking the dictionary status. Optional. Read more in the section [Refreshing dictionary data using LIFETIME](/reference/statements/create/dictionary/lifetime). | +| `invalidate_query` | Query for checking the dictionary status. Optional. Read more in the section [Refreshing dictionary data using LIFETIME](/core/reference/statements/create/dictionary/lifetime). | | `secure` | Use SSL for connection. | | `query` | The custom query. Optional. | diff --git a/reference/statements/create/dictionary/sources/executable-file.mdx b/core/reference/statements/create/dictionary/sources/executable-file.mdx similarity index 77% rename from reference/statements/create/dictionary/sources/executable-file.mdx rename to core/reference/statements/create/dictionary/sources/executable-file.mdx index f0c2aed6..ff0dafef 100644 --- a/reference/statements/create/dictionary/sources/executable-file.mdx +++ b/core/reference/statements/create/dictionary/sources/executable-file.mdx @@ -6,7 +6,7 @@ description: 'Configure an executable file as a dictionary source in ClickHouse. doc_type: 'reference' --- -Working with executable files depends on [how the dictionary is stored in memory](/reference/statements/create/dictionary/layouts/overview). If the dictionary is stored using `cache` and `complex_key_cache`, ClickHouse requests the necessary keys by sending a request to the executable file's STDIN. Otherwise, ClickHouse starts the executable file and treats its output as dictionary data. +Working with executable files depends on [how the dictionary is stored in memory](/core/reference/statements/create/dictionary/layouts/overview). If the dictionary is stored using `cache` and `complex_key_cache`, ClickHouse requests the necessary keys by sending a request to the executable file's STDIN. Otherwise, ClickHouse starts the executable file and treats its output as dictionary data. Example of settings: @@ -42,12 +42,12 @@ Setting fields: | Setting | Description | |---------|-------------| | `command` | The absolute path to the executable file, or the file name (if the command's directory is in the `PATH`). | -| `format` | The file format. All the formats described in [Formats](/reference/formats) are supported. | +| `format` | The file format. All the formats described in [Formats](/core/reference/formats) are supported. | | `command_termination_timeout` | The executable script should contain a main read-write loop. After the dictionary is destroyed, the pipe is closed, and the executable file will have `command_termination_timeout` seconds to shutdown before ClickHouse will send a SIGTERM signal to the child process. Specified in seconds. Default value is `10`. Optional. | | `command_read_timeout` | Timeout for reading data from command stdout in milliseconds. Default value `10000`. Optional. | | `command_write_timeout` | Timeout for writing data to command stdin in milliseconds. Default value `10000`. Optional. | | `implicit_key` | The executable source file can return only values, and the correspondence to the requested keys is determined implicitly by the order of rows in the result. Default value is `false`. | -| `execute_direct` | If `execute_direct` = `1`, then `command` will be searched inside user_scripts folder specified by [user_scripts_path](/reference/settings/server-settings/settings#user_scripts_path). Additional script arguments can be specified using a whitespace separator. Example: `script_name arg1 arg2`. If `execute_direct` = `0`, `command` is passed as argument for `bin/sh -c`. Default value is `0`. Optional. | +| `execute_direct` | If `execute_direct` = `1`, then `command` will be searched inside user_scripts folder specified by [user_scripts_path](/core/reference/settings/server-settings/settings#user_scripts_path). Additional script arguments can be specified using a whitespace separator. Example: `script_name arg1 arg2`. If `execute_direct` = `0`, `command` is passed as argument for `bin/sh -c`. Default value is `0`. Optional. | | `send_chunk_header` | Controls whether to send row count before sending a chunk of data to process. Default value is `false`. Optional. | That dictionary source can be configured only via XML configuration. Creating dictionaries with executable source via DDL is disabled; otherwise, the DB user would be able to execute arbitrary binaries on the ClickHouse node. diff --git a/reference/statements/create/dictionary/sources/executable-pool.mdx b/core/reference/statements/create/dictionary/sources/executable-pool.mdx similarity index 87% rename from reference/statements/create/dictionary/sources/executable-pool.mdx rename to core/reference/statements/create/dictionary/sources/executable-pool.mdx index b52c4b2a..2d097889 100644 --- a/reference/statements/create/dictionary/sources/executable-pool.mdx +++ b/core/reference/statements/create/dictionary/sources/executable-pool.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' Executable pool allows loading data from a pool of processes. This source does not work with dictionary layouts that need to load all data from source. -Executable pool works if the dictionary [is stored](/reference/statements/create/dictionary/layouts/overview#storing-dictionaries-in-memory) using one of the following layouts: +Executable pool works if the dictionary [is stored](/core/reference/statements/create/dictionary/layouts/overview#storing-dictionaries-in-memory) using one of the following layouts: - `cache` - `complex_key_cache` - `ssd_cache` @@ -57,14 +57,14 @@ Setting fields: | Setting | Description | |---------|-------------| | `command` | The absolute path to the executable file, or the file name (if the program directory is written to `PATH`). | -| `format` | The file format. All the formats described in [Formats](/reference/formats) are supported. | +| `format` | The file format. All the formats described in [Formats](/core/reference/formats) are supported. | | `pool_size` | Size of pool. If 0 is specified as `pool_size` then there is no pool size restrictions. Default value is `16`. | | `command_termination_timeout` | Executable script should contain main read-write loop. After dictionary is destroyed, pipe is closed, and executable file will have `command_termination_timeout` seconds to shutdown before ClickHouse will send SIGTERM signal to child process. Specified in seconds. Default value is `10`. Optional. | | `max_command_execution_time` | Maximum executable script command execution time for processing block of data. Specified in seconds. Default value is `10`. Optional. | | `command_read_timeout` | Timeout for reading data from command stdout in milliseconds. Default value `10000`. Optional. | | `command_write_timeout` | Timeout for writing data to command stdin in milliseconds. Default value `10000`. Optional. | | `implicit_key` | The executable source file can return only values, and the correspondence to the requested keys is determined implicitly by the order of rows in the result. Default value is `false`. Optional. | -| `execute_direct` | If `execute_direct` = `1`, then `command` will be searched inside user_scripts folder specified by [user_scripts_path](/reference/settings/server-settings/settings#user_scripts_path). Additional script arguments can be specified using whitespace separator. Example: `script_name arg1 arg2`. If `execute_direct` = `0`, `command` is passed as argument for `bin/sh -c`. Default value is `1`. Optional. | +| `execute_direct` | If `execute_direct` = `1`, then `command` will be searched inside user_scripts folder specified by [user_scripts_path](/core/reference/settings/server-settings/settings#user_scripts_path). Additional script arguments can be specified using whitespace separator. Example: `script_name arg1 arg2`. If `execute_direct` = `0`, `command` is passed as argument for `bin/sh -c`. Default value is `1`. Optional. | | `send_chunk_header` | Controls whether to send row count before sending a chunk of data to process. Default value is `false`. Optional. | That dictionary source can be configured only via XML configuration. Creating dictionaries with executable source via DDL is disabled, otherwise, the DB user would be able to execute arbitrary binary on ClickHouse node. diff --git a/reference/statements/create/dictionary/sources/http.mdx b/core/reference/statements/create/dictionary/sources/http.mdx similarity index 83% rename from reference/statements/create/dictionary/sources/http.mdx rename to core/reference/statements/create/dictionary/sources/http.mdx index add2be16..7ed9474f 100644 --- a/reference/statements/create/dictionary/sources/http.mdx +++ b/core/reference/statements/create/dictionary/sources/http.mdx @@ -6,7 +6,7 @@ description: 'Configure an HTTP or HTTPS endpoint as a dictionary source in Clic doc_type: 'reference' --- -Working with an HTTP(S) server depends on [how the dictionary is stored in memory](/reference/statements/create/dictionary/layouts/overview). If the dictionary is stored using `cache` and `complex_key_cache`, ClickHouse requests the necessary keys by sending a request via the `POST` method. +Working with an HTTP(S) server depends on [how the dictionary is stored in memory](/core/reference/statements/create/dictionary/layouts/overview). If the dictionary is stored using `cache` and `complex_key_cache`, ClickHouse requests the necessary keys by sending a request via the `POST` method. Example of settings: @@ -48,14 +48,14 @@ SOURCE(HTTP(
    -In order for ClickHouse to access an HTTPS resource, you must [configure openSSL](/reference/settings/server-settings/settings#openssl) in the server configuration. +In order for ClickHouse to access an HTTPS resource, you must [configure openSSL](/core/reference/settings/server-settings/settings#openssl) in the server configuration. Setting fields: | Setting | Description | |---------|-------------| | `url` | The source URL. | -| `format` | The file format. All the formats described in [Formats](/reference/formats) are supported. | +| `format` | The file format. All the formats described in [Formats](/core/reference/formats) are supported. | | `credentials` | Basic HTTP authentication. Optional. | | `user` | Username required for the authentication. | | `password` | Password required for the authentication. | diff --git a/reference/statements/create/dictionary/sources/local-file.mdx b/core/reference/statements/create/dictionary/sources/local-file.mdx similarity index 86% rename from reference/statements/create/dictionary/sources/local-file.mdx rename to core/reference/statements/create/dictionary/sources/local-file.mdx index 2ec942e3..8d419439 100644 --- a/reference/statements/create/dictionary/sources/local-file.mdx +++ b/core/reference/statements/create/dictionary/sources/local-file.mdx @@ -6,7 +6,7 @@ description: 'Configure a local file as a dictionary source in ClickHouse.' doc_type: 'reference' --- -The local file source loads dictionary data from a file on the local filesystem. This is useful for small, static lookup tables that can be stored as flat files in formats such as TSV, CSV, or any other [supported format](/reference/formats). +The local file source loads dictionary data from a file on the local filesystem. This is useful for small, static lookup tables that can be stored as flat files in formats such as TSV, CSV, or any other [supported format](/core/reference/formats). Example of settings: @@ -39,10 +39,10 @@ Setting fields: | Setting | Description | |---------|-------------| | `path` | The absolute path to the file. | -| `format` | The file format. All the formats described in [Formats](/reference/formats) are supported. | +| `format` | The file format. All the formats described in [Formats](/core/reference/formats) are supported. | When a dictionary with source `FILE` is created via DDL command (`CREATE DICTIONARY ...`), the source file needs to be located in the `user_files` directory to prevent DB users from accessing arbitrary files on the ClickHouse node. **See Also** -- [Dictionary function](/reference/functions/table-functions/dictionary) +- [Dictionary function](/core/reference/functions/table-functions/dictionary) diff --git a/reference/statements/create/dictionary/sources/mongodb.mdx b/core/reference/statements/create/dictionary/sources/mongodb.mdx similarity index 94% rename from reference/statements/create/dictionary/sources/mongodb.mdx rename to core/reference/statements/create/dictionary/sources/mongodb.mdx index 48871d27..24a04151 100644 --- a/reference/statements/create/dictionary/sources/mongodb.mdx +++ b/core/reference/statements/create/dictionary/sources/mongodb.mdx @@ -77,4 +77,4 @@ Setting fields: | `options` | MongoDB connection string options. Optional. | | `uri` | URI for establishing the connection (alternative to individual host/port/db fields). | -[More information about the engine](/reference/engines/table-engines/integrations/mongodb) +[More information about the engine](/core/reference/engines/table-engines/integrations/mongodb) diff --git a/reference/statements/create/dictionary/sources/mysql.mdx b/core/reference/statements/create/dictionary/sources/mysql.mdx similarity index 98% rename from reference/statements/create/dictionary/sources/mysql.mdx rename to core/reference/statements/create/dictionary/sources/mysql.mdx index 4a1883ac..0d392a9d 100644 --- a/reference/statements/create/dictionary/sources/mysql.mdx +++ b/core/reference/statements/create/dictionary/sources/mysql.mdx @@ -71,7 +71,7 @@ Setting fields: | `db` | Name of the database. | | `table` | Name of the table. | | `where` | The selection criteria. The syntax for conditions is the same as for `WHERE` clause in MySQL, for example, `id > 10 AND id < 20`. Optional. | -| `invalidate_query` | Query for checking the dictionary status. Optional. Read more in the section [Refreshing dictionary data using LIFETIME](/reference/statements/create/dictionary/lifetime). | +| `invalidate_query` | Query for checking the dictionary status. Optional. Read more in the section [Refreshing dictionary data using LIFETIME](/core/reference/statements/create/dictionary/lifetime). | | `fail_on_connection_loss` | Controls behavior of the server on connection loss. If `true`, an exception is thrown immediately if the connection between client and server was lost. If `false`, the ClickHouse server retries to execute the query three times before throwing an exception. Note that retrying leads to increased response times. Default value: `false`. | | `query` | The custom query. Optional. | diff --git a/reference/statements/create/dictionary/sources/null.mdx b/core/reference/statements/create/dictionary/sources/null.mdx similarity index 100% rename from reference/statements/create/dictionary/sources/null.mdx rename to core/reference/statements/create/dictionary/sources/null.mdx diff --git a/reference/statements/create/dictionary/sources/odbc.mdx b/core/reference/statements/create/dictionary/sources/odbc.mdx similarity index 99% rename from reference/statements/create/dictionary/sources/odbc.mdx rename to core/reference/statements/create/dictionary/sources/odbc.mdx index d6864c03..fe85f984 100644 --- a/reference/statements/create/dictionary/sources/odbc.mdx +++ b/core/reference/statements/create/dictionary/sources/odbc.mdx @@ -49,7 +49,7 @@ Setting fields: | `db` | Name of the database. Omit it if the database name is set in the `` parameters. | | `table` | Name of the table and schema if exists. | | `connection_string` | Connection string. | -| `invalidate_query` | Query for checking the dictionary status. Optional. Read more in the section [Refreshing dictionary data using LIFETIME](/reference/statements/create/dictionary/lifetime). | +| `invalidate_query` | Query for checking the dictionary status. Optional. Read more in the section [Refreshing dictionary data using LIFETIME](/core/reference/statements/create/dictionary/lifetime). | | `background_reconnect` | Reconnect to replica in background if connection fails. Optional. | | `query` | The custom query. Optional. | diff --git a/reference/statements/create/dictionary/sources/overview.mdx b/core/reference/statements/create/dictionary/sources/overview.mdx similarity index 55% rename from reference/statements/create/dictionary/sources/overview.mdx rename to core/reference/statements/create/dictionary/sources/overview.mdx index 9530cad9..55203b72 100644 --- a/reference/statements/create/dictionary/sources/overview.mdx +++ b/core/reference/statements/create/dictionary/sources/overview.mdx @@ -54,23 +54,23 @@ SOURCE(SOURCE_TYPE(param1 val1 ... paramN valN)) -- Source configuration The following source types (`SOURCE_TYPE`/`source_type`) are available: -- [Local file](/reference/statements/create/dictionary/sources/local-file) -- [Executable File](/reference/statements/create/dictionary/sources/executable-file) -- [Executable Pool](/reference/statements/create/dictionary/sources/executable-pool) -- [HTTP(S)](/reference/statements/create/dictionary/sources/http) +- [Local file](/core/reference/statements/create/dictionary/sources/local-file) +- [Executable File](/core/reference/statements/create/dictionary/sources/executable-file) +- [Executable Pool](/core/reference/statements/create/dictionary/sources/executable-pool) +- [HTTP(S)](/core/reference/statements/create/dictionary/sources/http) - DBMS - - [ODBC](/reference/statements/create/dictionary/sources/odbc) - - [MySQL](/reference/statements/create/dictionary/sources/mysql) - - [ClickHouse](/reference/statements/create/dictionary/sources/clickhouse) - - [MongoDB](/reference/statements/create/dictionary/sources/mongodb) - - [Redis](/reference/statements/create/dictionary/sources/redis) - - [Cassandra](/reference/statements/create/dictionary/sources/cassandra) - - [PostgreSQL](/reference/statements/create/dictionary/sources/postgresql) - - [YTsaurus](/reference/statements/create/dictionary/sources/ytsaurus) -- [YAMLRegExpTree](/reference/statements/create/dictionary/sources/yamlregexptree) -- [Null](/reference/statements/create/dictionary/sources/null) - -For source types [Local file](/reference/statements/create/dictionary/sources/local-file), [Executable file](/reference/statements/create/dictionary/sources/executable-file), [HTTP(s)](/reference/statements/create/dictionary/sources/http), [ClickHouse](/reference/statements/create/dictionary/sources/clickhouse) + - [ODBC](/core/reference/statements/create/dictionary/sources/odbc) + - [MySQL](/core/reference/statements/create/dictionary/sources/mysql) + - [ClickHouse](/core/reference/statements/create/dictionary/sources/clickhouse) + - [MongoDB](/core/reference/statements/create/dictionary/sources/mongodb) + - [Redis](/core/reference/statements/create/dictionary/sources/redis) + - [Cassandra](/core/reference/statements/create/dictionary/sources/cassandra) + - [PostgreSQL](/core/reference/statements/create/dictionary/sources/postgresql) + - [YTsaurus](/core/reference/statements/create/dictionary/sources/ytsaurus) +- [YAMLRegExpTree](/core/reference/statements/create/dictionary/sources/yamlregexptree) +- [Null](/core/reference/statements/create/dictionary/sources/null) + +For source types [Local file](/core/reference/statements/create/dictionary/sources/local-file), [Executable file](/core/reference/statements/create/dictionary/sources/executable-file), [HTTP(s)](/core/reference/statements/create/dictionary/sources/http), [ClickHouse](/core/reference/statements/create/dictionary/sources/clickhouse) optional settings are available: diff --git a/reference/statements/create/dictionary/sources/postgresql.mdx b/core/reference/statements/create/dictionary/sources/postgresql.mdx similarity index 97% rename from reference/statements/create/dictionary/sources/postgresql.mdx rename to core/reference/statements/create/dictionary/sources/postgresql.mdx index 8266a077..5445182c 100644 --- a/reference/statements/create/dictionary/sources/postgresql.mdx +++ b/core/reference/statements/create/dictionary/sources/postgresql.mdx @@ -65,7 +65,7 @@ Setting fields: | `db` | Name of the database. | | `table` | Name of the table. | | `where` | The selection criteria. The syntax for conditions is the same as for `WHERE` clause in PostgreSQL. For example, `id > 10 AND id < 20`. Optional. | -| `invalidate_query` | Query for checking the dictionary status. Optional. Read more in the section [Refreshing dictionary data using LIFETIME](/reference/statements/create/dictionary/lifetime). | +| `invalidate_query` | Query for checking the dictionary status. Optional. Read more in the section [Refreshing dictionary data using LIFETIME](/core/reference/statements/create/dictionary/lifetime). | | `background_reconnect` | Reconnect to replica in background if connection fails. Optional. | | `query` | The custom query. Optional. | diff --git a/reference/statements/create/dictionary/sources/redis.mdx b/core/reference/statements/create/dictionary/sources/redis.mdx similarity index 100% rename from reference/statements/create/dictionary/sources/redis.mdx rename to core/reference/statements/create/dictionary/sources/redis.mdx diff --git a/reference/statements/create/dictionary/sources/yamlregexptree.mdx b/core/reference/statements/create/dictionary/sources/yamlregexptree.mdx similarity index 75% rename from reference/statements/create/dictionary/sources/yamlregexptree.mdx rename to core/reference/statements/create/dictionary/sources/yamlregexptree.mdx index 9b1b9f5c..0d3f4dfb 100644 --- a/reference/statements/create/dictionary/sources/yamlregexptree.mdx +++ b/core/reference/statements/create/dictionary/sources/yamlregexptree.mdx @@ -11,13 +11,13 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ The `YAMLRegExpTree` source loads a regular expression tree from a YAML file on the local filesystem. -It is designed exclusively for use with the [`regexp_tree`](/reference/statements/create/dictionary/layouts/regexp-tree) dictionary layout +It is designed exclusively for use with the [`regexp_tree`](/core/reference/statements/create/dictionary/layouts/regexp-tree) dictionary layout and provides hierarchical regex-to-attribute mappings for pattern-based lookups such as user agent parsing. The `YAMLRegExpTree` source is only available in ClickHouse Open Source. -For ClickHouse Cloud, export the dictionary to CSV and load it via a [ClickHouse table source](/reference/statements/create/dictionary/sources/clickhouse) instead. -See [Using regexp_tree dictionaries in ClickHouse Cloud](/reference/statements/create/dictionary/layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-cloud) for details. +For ClickHouse Cloud, export the dictionary to CSV and load it via a [ClickHouse table source](/core/reference/statements/create/dictionary/sources/clickhouse) instead. +See [Using regexp_tree dictionaries in ClickHouse Cloud](/core/reference/statements/create/dictionary/layouts/regexp-tree#use-regular-expression-tree-dictionary-in-clickhouse-cloud) for details. ## Configuration {#configuration} @@ -71,5 +71,5 @@ Each node has the following structure: ## Related pages {#related-pages} -- [regexp_tree dictionary layout](/reference/statements/create/dictionary/layouts/regexp-tree) — layout configuration, query examples, and matching modes -- [dictGet](/reference/functions/regular-functions/ext-dict-functions#dictGet), [dictGetAll](/reference/functions/regular-functions/ext-dict-functions#dictGetAll) — functions for querying regexp tree dictionaries +- [regexp_tree dictionary layout](/core/reference/statements/create/dictionary/layouts/regexp-tree) — layout configuration, query examples, and matching modes +- [dictGet](/core/reference/functions/regular-functions/ext-dict-functions#dictGet), [dictGetAll](/core/reference/functions/regular-functions/ext-dict-functions#dictGetAll) — functions for querying regexp tree dictionaries diff --git a/reference/statements/create/dictionary/sources/ytsaurus.mdx b/core/reference/statements/create/dictionary/sources/ytsaurus.mdx similarity index 94% rename from reference/statements/create/dictionary/sources/ytsaurus.mdx rename to core/reference/statements/create/dictionary/sources/ytsaurus.mdx index f82e824b..3ae2f3e8 100644 --- a/reference/statements/create/dictionary/sources/ytsaurus.mdx +++ b/core/reference/statements/create/dictionary/sources/ytsaurus.mdx @@ -15,7 +15,7 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ This is an experimental feature that may change in backwards-incompatible ways in future releases. Enable usage of the YTsaurus dictionary source -using setting [`allow_experimental_ytsaurus_dictionary_source`](/reference/settings/session-settings#allow_experimental_ytsaurus_dictionary_source). +using setting [`allow_experimental_ytsaurus_dictionary_source`](/core/reference/settings/session-settings#allow_experimental_ytsaurus_dictionary_source). Example of settings: diff --git a/reference/statements/create/function.mdx b/core/reference/statements/create/function.mdx similarity index 93% rename from reference/statements/create/function.mdx rename to core/reference/statements/create/function.mdx index 23f90e44..c8298c9b 100644 --- a/reference/statements/create/function.mdx +++ b/core/reference/statements/create/function.mdx @@ -38,7 +38,7 @@ SELECT number, linear_equation(number, 2, 1) FROM numbers(3); └────────┴──────────────────────────────┘ ``` -A [conditional function](/reference/functions/regular-functions/conditional-functions) is called in a user defined function in the following query: +A [conditional function](/core/reference/functions/regular-functions/conditional-functions) is called in a user defined function in the following query: ```sql title="Query" CREATE FUNCTION parity_str AS (n) -> if(n % 2, 'odd', 'even'); @@ -74,6 +74,6 @@ SELECT create_query FROM system.functions WHERE name = 'exampleReplaceFunction'; ## Related Content {#related-content} -### [Executable UDFs](/reference/functions/regular-functions/udf). {#executable-udfs} +### [Executable UDFs](/core/reference/functions/regular-functions/udf). {#executable-udfs} ### [User-defined functions in ClickHouse Cloud](https://clickhouse.com/blog/user-defined-functions-clickhouse-udfs) {#user-defined-functions-in-clickhouse-cloud} diff --git a/core/reference/statements/create/index.mdx b/core/reference/statements/create/index.mdx new file mode 100644 index 00000000..2284a4b4 --- /dev/null +++ b/core/reference/statements/create/index.mdx @@ -0,0 +1,9 @@ +--- +description: 'Documentation for CREATE Queries' +sidebarTitle: 'CREATE' +slug: /sql-reference/statements/create/ +title: 'CREATE Queries' +doc_type: 'reference' +--- + +CREATE queries create (for example) new [databases](/core/reference/statements/create/database), [tables](/core/reference/statements/create/table) and [views](/core/reference/statements/create/view). diff --git a/reference/statements/create/masking-policy.mdx b/core/reference/statements/create/masking-policy.mdx similarity index 100% rename from reference/statements/create/masking-policy.mdx rename to core/reference/statements/create/masking-policy.mdx diff --git a/reference/statements/create/named-collection.mdx b/core/reference/statements/create/named-collection.mdx similarity index 74% rename from reference/statements/create/named-collection.mdx rename to core/reference/statements/create/named-collection.mdx index 6f7ba49c..47b57489 100644 --- a/reference/statements/create/named-collection.mdx +++ b/core/reference/statements/create/named-collection.mdx @@ -30,9 +30,9 @@ CREATE NAMED COLLECTION foobar AS a = '1', b = '2' OVERRIDABLE; **Related statements** -- [CREATE NAMED COLLECTION](/reference/statements/alter/named-collection) -- [DROP NAMED COLLECTION](/reference/statements/drop#drop-function) +- [CREATE NAMED COLLECTION](/core/reference/statements/alter/named-collection) +- [DROP NAMED COLLECTION](/core/reference/statements/drop#drop-function) **See Also** -- [Named collections guide](/concepts/features/configuration/server-config/named-collections) +- [Named collections guide](/core/concepts/features/configuration/server-config/named-collections) diff --git a/reference/statements/create/quota.mdx b/core/reference/statements/create/quota.mdx similarity index 84% rename from reference/statements/create/quota.mdx rename to core/reference/statements/create/quota.mdx index 4c72e34d..8feb6836 100644 --- a/reference/statements/create/quota.mdx +++ b/core/reference/statements/create/quota.mdx @@ -6,7 +6,7 @@ title: 'CREATE QUOTA' doc_type: 'reference' --- -Creates a [quota](/concepts/features/security/access-rights#quotas-management) that can be assigned to a user or a role. +Creates a [quota](/core/concepts/features/security/access-rights#quotas-management) that can be assigned to a user or a role. Syntax: @@ -20,11 +20,11 @@ CREATE QUOTA [IF NOT EXISTS | OR REPLACE] name [ON CLUSTER cluster_name] [TO {role [,...] | ALL | ALL EXCEPT role [,...]}] ``` -Keys `user_name`, `ip_address`, `client_key`, `client_key, user_name`, `client_key, ip_address`, and `normalized_query_hash` correspond to the fields in the [system.quotas](/reference/system-tables/quotas) table. +Keys `user_name`, `ip_address`, `client_key`, `client_key, user_name`, `client_key, ip_address`, and `normalized_query_hash` correspond to the fields in the [system.quotas](/core/reference/system-tables/quotas) table. -Parameters `queries`, `query_selects`, `query_inserts`, `errors`, `result_rows`, `result_bytes`, `read_rows`, `read_bytes`, `written_bytes`, `execution_time`, `failed_sequential_authentications`, `queries_per_normalized_hash` correspond to the fields in the [system.quotas_usage](/reference/system-tables/quotas_usage) table. +Parameters `queries`, `query_selects`, `query_inserts`, `errors`, `result_rows`, `result_bytes`, `read_rows`, `read_bytes`, `written_bytes`, `execution_time`, `failed_sequential_authentications`, `queries_per_normalized_hash` correspond to the fields in the [system.quotas_usage](/core/reference/system-tables/quotas_usage) table. -`ON CLUSTER` clause allows creating quotas on a cluster, see [Distributed DDL](/reference/statements/distributed-ddl). +`ON CLUSTER` clause allows creating quotas on a cluster, see [Distributed DDL](/core/reference/statements/distributed-ddl). **Examples** @@ -52,7 +52,7 @@ Limit any single normalized query pattern to at most 50 executions per hour (reg CREATE QUOTA qD FOR INTERVAL 1 hour MAX queries_per_normalized_hash = 50 TO default; ``` -Further examples, using the xml configuration (not supported in ClickHouse Cloud), can be found in the [Quotas guide](/concepts/features/configuration/server-config/quotas). +Further examples, using the xml configuration (not supported in ClickHouse Cloud), can be found in the [Quotas guide](/core/concepts/features/configuration/server-config/quotas). ## Related Content {#related-content} diff --git a/reference/statements/create/role.mdx b/core/reference/statements/create/role.mdx similarity index 50% rename from reference/statements/create/role.mdx rename to core/reference/statements/create/role.mdx index edb2531c..6742003b 100644 --- a/reference/statements/create/role.mdx +++ b/core/reference/statements/create/role.mdx @@ -6,7 +6,7 @@ title: 'CREATE ROLE' doc_type: 'reference' --- -Creates new [roles](/concepts/features/security/access-rights#role-management). Role is a set of [privileges](/reference/statements/grant#granting-privilege-syntax). A [user](/reference/statements/create/user) assigned a role gets all the privileges of this role. +Creates new [roles](/core/concepts/features/security/access-rights#role-management). Role is a set of [privileges](/core/reference/statements/grant#granting-privilege-syntax). A [user](/core/reference/statements/create/user) assigned a role gets all the privileges of this role. Syntax: @@ -18,13 +18,13 @@ CREATE ROLE [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER clus ## Managing Roles {#managing-roles} -A user can be assigned multiple roles. Users can apply their assigned roles in arbitrary combinations by the [SET ROLE](/reference/statements/set-role) statement. The final scope of privileges is a combined set of all the privileges of all the applied roles. If a user has privileges granted directly to it's user account, they are also combined with the privileges granted by roles. +A user can be assigned multiple roles. Users can apply their assigned roles in arbitrary combinations by the [SET ROLE](/core/reference/statements/set-role) statement. The final scope of privileges is a combined set of all the privileges of all the applied roles. If a user has privileges granted directly to it's user account, they are also combined with the privileges granted by roles. -User can have default roles which apply at user login. To set default roles, use the [SET DEFAULT ROLE](/reference/statements/set-role#set-default-role) statement or the [ALTER USER](/reference/statements/alter/user) statement. +User can have default roles which apply at user login. To set default roles, use the [SET DEFAULT ROLE](/core/reference/statements/set-role#set-default-role) statement or the [ALTER USER](/core/reference/statements/alter/user) statement. -To revoke a role, use the [REVOKE](/reference/statements/revoke) statement. +To revoke a role, use the [REVOKE](/core/reference/statements/revoke) statement. -To delete role, use the [DROP ROLE](/reference/statements/drop#drop-role) statement. The deleted role is being automatically revoked from all the users and roles to which it was assigned. +To delete role, use the [DROP ROLE](/core/reference/statements/drop#drop-role) statement. The deleted role is being automatically revoked from all the users and roles to which it was assigned. ## Examples {#examples} diff --git a/reference/statements/create/row-policy.mdx b/core/reference/statements/create/row-policy.mdx similarity index 94% rename from reference/statements/create/row-policy.mdx rename to core/reference/statements/create/row-policy.mdx index ac873145..36091658 100644 --- a/reference/statements/create/row-policy.mdx +++ b/core/reference/statements/create/row-policy.mdx @@ -6,7 +6,7 @@ title: 'CREATE ROW POLICY' doc_type: 'reference' --- -Creates a [row policy](/concepts/features/security/access-rights#row-policy-management), i.e. a filter used to determine which rows a user can read from a table. +Creates a [row policy](/core/concepts/features/security/access-rights#row-policy-management), i.e. a filter used to determine which rows a user can read from a table. Row policies make sense only for users with readonly access. If a user can modify a table or copy partitions between tables, it defeats the restrictions of row policies. @@ -80,7 +80,7 @@ any other table in mydb would have only `b=1` policy applied for the user. ## ON CLUSTER Clause {#on-cluster-clause} -Allows creating row policies on a cluster, see [Distributed DDL](/reference/statements/distributed-ddl). +Allows creating row policies on a cluster, see [Distributed DDL](/core/reference/statements/distributed-ddl). ## Examples {#examples} diff --git a/reference/statements/create/settings-profile.mdx b/core/reference/statements/create/settings-profile.mdx similarity index 83% rename from reference/statements/create/settings-profile.mdx rename to core/reference/statements/create/settings-profile.mdx index 641ddac3..7422ad51 100644 --- a/reference/statements/create/settings-profile.mdx +++ b/core/reference/statements/create/settings-profile.mdx @@ -6,7 +6,7 @@ title: 'CREATE SETTINGS PROFILE' doc_type: 'reference' --- -Creates [settings profiles](/concepts/features/security/access-rights#settings-profiles-management) that can be assigned to a user or a role. +Creates [settings profiles](/core/concepts/features/security/access-rights#settings-profiles-management) that can be assigned to a user or a role. Syntax: @@ -18,7 +18,7 @@ CREATE SETTINGS PROFILE [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [TO {{role1 | user1 [, role2 | user2 ...]} | NONE | ALL | ALL EXCEPT {role1 | user1 [, role2 | user2 ...]}}] ``` -`ON CLUSTER` clause allows creating settings profiles on a cluster, see [Distributed DDL](/reference/statements/distributed-ddl). +`ON CLUSTER` clause allows creating settings profiles on a cluster, see [Distributed DDL](/core/reference/statements/distributed-ddl). ## Example {#example} diff --git a/reference/statements/create/table.mdx b/core/reference/statements/create/table.mdx similarity index 91% rename from reference/statements/create/table.mdx rename to core/reference/statements/create/table.mdx index 6d33ddd2..49b0142c 100644 --- a/reference/statements/create/table.mdx +++ b/core/reference/statements/create/table.mdx @@ -12,7 +12,7 @@ import ExperimentalBadge from "/snippets/components/ExperimentalBadge/Experiment Creates a new table. This query can have various syntax forms depending on a use case. -By default, tables are created only on the current server. Distributed DDL queries are implemented as `ON CLUSTER` clause, which is [described separately](/reference/statements/distributed-ddl). +By default, tables are created only on the current server. Distributed DDL queries are implemented as `ON CLUSTER` clause, which is [described separately](/core/reference/statements/distributed-ddl). ## Syntax Forms {#syntax-forms} @@ -73,7 +73,7 @@ For both features, you can specify a different engine for the table. If the engi CREATE TABLE [IF NOT EXISTS] [db.]table_name AS table_function() ``` -Creates a table with the same result as that of the [table function](/reference/functions/table-functions) specified. The created table will also work in the same way as the corresponding table function that was specified. +Creates a table with the same result as that of the [table function](/core/reference/functions/table-functions) specified. The created table will also work in the same way as the corresponding table function that was specified. ### From SELECT query {#from-select-query} @@ -85,7 +85,7 @@ Creates a table with a structure like the result of the `SELECT` query, with the If the table already exists and `IF NOT EXISTS` is specified, the query won't do anything. -There can be other clauses after the `ENGINE` clause in the query. See detailed documentation on how to create tables in the descriptions of [table engines](/reference/engines/table-engines). +There can be other clauses after the `ENGINE` clause in the query. See detailed documentation on how to create tables in the descriptions of [table engines](/core/reference/engines/table-engines). **Example** @@ -102,11 +102,11 @@ SELECT x, toTypeName(x) FROM t1; ## NULL Or NOT NULL Modifiers {#null-or-not-null-modifiers} -`NULL` and `NOT NULL` modifiers after data type in column definition allow or do not allow it to be [Nullable](/reference/data-types/nullable). +`NULL` and `NOT NULL` modifiers after data type in column definition allow or do not allow it to be [Nullable](/core/reference/data-types/nullable). If the type is not `Nullable` and if `NULL` is specified, it will be treated as `Nullable`; if `NOT NULL` is specified, then no. For example, `INT NULL` is the same as `Nullable(INT)`. If the type is `Nullable` and `NULL` or `NOT NULL` modifiers are specified, the exception will be thrown. -See also [data_type_default_nullable](/reference/settings/session-settings#data_type_default_nullable) setting. +See also [data_type_default_nullable](/core/reference/settings/session-settings#data_type_default_nullable) setting. ## Default Values {#default_values} @@ -259,7 +259,7 @@ SELECT * FROM test SETTINGS asterisk_include_alias_columns=1; ## Primary Key {#primary-key} -You can define a [primary key](/reference/engines/table-engines/mergetree-family/mergetree#primary-keys-and-indexes-in-queries) when creating a table. Primary key can be specified in two ways: +You can define a [primary key](/core/reference/engines/table-engines/mergetree-family/mergetree#primary-keys-and-indexes-in-queries) when creating a table. Primary key can be specified in two ways: - Inside the column list @@ -333,13 +333,13 @@ Then, when executing the query `SELECT name FROM users_a WHERE length(name) < 5; ## TTL Expression {#ttl-expression} -Defines storage time for values. Can be specified only for MergeTree-family tables. For the detailed description, see [TTL for columns and tables](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). +Defines storage time for values. Can be specified only for MergeTree-family tables. For the detailed description, see [TTL for columns and tables](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). ## Column Compression Codecs {#column_compression_codec} By default, ClickHouse applies `lz4` compression in the self-managed version, and `zstd` in ClickHouse Cloud. -For `MergeTree`-engine family you can change the default compression method in the [compression](/reference/settings/server-settings/settings#compression) section of a server configuration. +For `MergeTree`-engine family you can change the default compression method in the [compression](/core/reference/settings/server-settings/settings#compression) section of a server configuration. You can also define the compression method for each individual column in the `CREATE TABLE` query. @@ -373,10 +373,10 @@ You can't decompress ClickHouse database files with external utilities like `lz4 Compression is supported for the following table engines: -- [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) family. Supports column compression codecs and selecting the default compression method by [compression](/reference/settings/server-settings/settings#compression) settings. -- [Log](/reference/engines/table-engines/log-family) family. Uses the `lz4` compression method by default and supports column compression codecs. -- [Set](/reference/engines/table-engines/special/set). Only supported the default compression. -- [Join](/reference/engines/table-engines/special/join). Only supported the default compression. +- [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) family. Supports column compression codecs and selecting the default compression method by [compression](/core/reference/settings/server-settings/settings#compression) settings. +- [Log](/core/reference/engines/table-engines/log-family) family. Uses the `lz4` compression method by default and supports column compression codecs. +- [Set](/core/reference/engines/table-engines/special/set). Only supported the default compression. +- [Join](/core/reference/engines/table-engines/special/join). Only supported the default compression. ClickHouse supports general purpose codecs and specialized codecs. @@ -459,7 +459,7 @@ ENGINE = MergeTree() ### Encryption Codecs {#encryption-codecs} -These codecs don't actually compress data, but instead encrypt data on disk. These are only available when an encryption key is specified by [encryption](/reference/settings/server-settings/settings#encryption) settings. Note that encryption only makes sense at the end of codec pipelines, because encrypted data usually can't be compressed in any meaningful way. +These codecs don't actually compress data, but instead encrypt data on disk. These are only available when an encryption key is specified by [encryption](/core/reference/settings/server-settings/settings#encryption) settings. Note that encryption only makes sense at the end of codec pipelines, because encrypted data usually can't be compressed in any meaningful way. Encryption codecs: @@ -471,14 +471,14 @@ Encryption codecs: `CODEC('AES-256-GCM-SIV')` — Encrypts data with AES-256 in GCM-SIV mode. -These codecs use a fixed nonce and encryption is therefore deterministic. This makes it compatible with deduplicating engines such as [ReplicatedMergeTree](/reference/engines/table-engines/mergetree-family/replication) but has a weakness: when the same data block is encrypted twice, the resulting ciphertext will be exactly the same so an adversary who can read the disk can see this equivalence (although only the equivalence, without getting its content). +These codecs use a fixed nonce and encryption is therefore deterministic. This makes it compatible with deduplicating engines such as [ReplicatedMergeTree](/core/reference/engines/table-engines/mergetree-family/replication) but has a weakness: when the same data block is encrypted twice, the resulting ciphertext will be exactly the same so an adversary who can read the disk can see this equivalence (although only the equivalence, without getting its content). Most engines including the "\*MergeTree" family create index files on disk without applying codecs. This means plaintext will appear on disk if an encrypted column is indexed. -If you perform a SELECT query mentioning a specific value in an encrypted column (such as in its WHERE clause), the value may appear in [system.query_log](/reference/system-tables/query_log). You may want to disable the logging. +If you perform a SELECT query mentioning a specific value in an encrypted column (such as in its WHERE clause), the value may appear in [system.query_log](/core/reference/system-tables/query_log). You may want to disable the logging. **Example** @@ -533,14 +533,14 @@ CREATE [OR REPLACE] TEMPORARY TABLE [IF NOT EXISTS] table_name In most cases, temporary tables are not created manually, but when using external data for a query, or for distributed `(GLOBAL) IN`. For more information, see the appropriate sections -It's possible to use tables with [ENGINE = Memory](/reference/engines/table-engines/special/memory) instead of temporary tables. +It's possible to use tables with [ENGINE = Memory](/core/reference/engines/table-engines/special/memory) instead of temporary tables. ## REPLACE TABLE {#replace-table} -The `REPLACE` statement allows you to update a table [atomically](/concepts/core-concepts/glossary#atomicity). +The `REPLACE` statement allows you to update a table [atomically](/core/concepts/core-concepts/glossary#atomicity). -This statement is supported for the [`Atomic`](/reference/engines/database-engines/atomic) and [`Replicated`](/reference/engines/database-engines/replicated) database engines, +This statement is supported for the [`Atomic`](/core/reference/engines/database-engines/atomic) and [`Replicated`](/core/reference/engines/database-engines/replicated) database engines, which are the default database engines for ClickHouse and ClickHouse Cloud respectively. diff --git a/reference/statements/create/user.mdx b/core/reference/statements/create/user.mdx similarity index 92% rename from reference/statements/create/user.mdx rename to core/reference/statements/create/user.mdx index 0cc7d69e..510b6714 100644 --- a/reference/statements/create/user.mdx +++ b/core/reference/statements/create/user.mdx @@ -6,7 +6,7 @@ title: 'CREATE USER' doc_type: 'reference' --- -Creates [user accounts](/concepts/features/security/access-rights#user-account-management). +Creates [user accounts](/core/concepts/features/security/access-rights#user-account-management). Syntax: @@ -24,7 +24,7 @@ CREATE USER [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER clus [SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY | WRITABLE] | PROFILE 'profile_name'] [,...] ``` -`ON CLUSTER` clause allows creating users on a cluster, see [Distributed DDL](/reference/statements/distributed-ddl). +`ON CLUSTER` clause allows creating users on a cluster, see [Distributed DDL](/core/reference/statements/distributed-ddl). ## Identification {#identification} @@ -45,7 +45,7 @@ There are multiple ways of user identification: - `IDENTIFIED WITH http SERVER 'http_server'` or `IDENTIFIED WITH http SERVER 'http_server' SCHEME 'basic'` - `IDENTIFIED BY 'qwerty'` -Password complexity requirements can be edited in [config.xml](/concepts/features/configuration/server-config/configuration-files). Below is an example configuration that requires passwords to be at least 12 characters long and contain 1 number. Each password complexity rule requires a regex to match against passwords and a description of the rule. +Password complexity requirements can be edited in [config.xml](/core/concepts/features/configuration/server-config/configuration-files). Below is an example configuration that requires passwords to be at least 12 characters long and contain 1 number. Each password complexity rule requires a regex to match against passwords and a description of the rule. ```xml @@ -173,7 +173,7 @@ User host is a host from which a connection to ClickHouse server could be establ - `HOST LOCAL` — User can connect only locally. - `HOST NAME 'fqdn'` — User host can be specified as FQDN. For example, `HOST NAME 'mysite.com'`. - `HOST REGEXP 'regexp'` — You can use [pcre](http://www.pcre.org/) regular expressions when specifying user hosts. For example, `HOST REGEXP '.*\.mysite\.com'`. -- `HOST LIKE 'template'` — Allows you to use the [LIKE](/reference/functions/regular-functions/string-search-functions#like) operator to filter the user hosts. For example, `HOST LIKE '%'` is equivalent to `HOST ANY`, `HOST LIKE '%.mysite.com'` filters all the hosts in the `mysite.com` domain. +- `HOST LIKE 'template'` — Allows you to use the [LIKE](/core/reference/functions/regular-functions/string-search-functions#like) operator to filter the user hosts. For example, `HOST LIKE '%'` is equivalent to `HOST ANY`, `HOST LIKE '%.mysite.com'` filters all the hosts in the `mysite.com` domain. Another way of specifying host is to use `@` syntax following the username. Examples: @@ -204,7 +204,7 @@ The datetime string is parsed by `parseDateTimeBestEffort`, which only recognize ## GRANTEES Clause {#grantees-clause} -Specifies users or roles which are allowed to receive [privileges](/reference/statements/grant#privileges) from this user on the condition this user has also all required access granted with [GRANT OPTION](/reference/statements/grant#granting-privilege-syntax). Options of the `GRANTEES` clause: +Specifies users or roles which are allowed to receive [privileges](/core/reference/statements/grant#privileges) from this user on the condition this user has also all required access granted with [GRANT OPTION](/core/reference/statements/grant#granting-privilege-syntax). Options of the `GRANTEES` clause: - `user` — Specifies a user this user can grant privileges to. - `role` — Specifies a role this user can grant privileges to. diff --git a/reference/statements/create/view.mdx b/core/reference/statements/create/view.mdx similarity index 91% rename from reference/statements/create/view.mdx rename to core/reference/statements/create/view.mdx index bf3b706a..f5a1ad7d 100644 --- a/reference/statements/create/view.mdx +++ b/core/reference/statements/create/view.mdx @@ -10,7 +10,7 @@ import ExperimentalBadge from "/snippets/components/ExperimentalBadge/Experiment import DeprecatedBadge from "/snippets/components/DeprecatedBadge/DeprecatedBadge.jsx"; import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/CloudNotSupportedBadge.jsx"; -Creates a new view. Views can be [normal](#normal-view), [materialized](#materialized-view), [refreshable materialized](#refreshable-materialized-view), and [window](/reference/statements/create/view#window-view). +Creates a new view. Views can be [normal](#normal-view), [materialized](#materialized-view), [refreshable materialized](#refreshable-materialized-view), and [window](/core/reference/statements/create/view#window-view). ## Normal View {#normal-view} @@ -23,7 +23,7 @@ AS SELECT ... [COMMENT 'comment'] ``` -Normal views do not store any data. They just perform a read from another table on each access. In other words, a normal view is nothing more than a saved query. When reading from a view, this saved query is used as a subquery in the [FROM](/reference/statements/select/from) clause. +Normal views do not store any data. They just perform a read from another table on each access. In other words, a normal view is nothing more than a saved query. When reading from a view, this saved query is used as a subquery in the [FROM](/core/reference/statements/select/from) clause. As an example, assume you've created a view: @@ -125,10 +125,10 @@ CREATE OR REPLACE MATERIALIZED VIEW mv TO target ``` -Here is a step-by-step guide on using [Materialized views](/concepts/features/materialized-views/cascading-materialized-views). +Here is a step-by-step guide on using [Materialized views](/core/concepts/features/materialized-views/cascading-materialized-views). -Materialized views store data transformed by the corresponding [SELECT](/reference/statements/select) query. +Materialized views store data transformed by the corresponding [SELECT](/core/reference/statements/select) query. When creating a materialized view without `TO [db].[table]`, you must specify `ENGINE` – the table engine for storing data. @@ -137,7 +137,7 @@ When creating a materialized view with `TO [db].[table]`, you can't also use `PO A materialized view is implemented as follows: when inserting data to the table specified in `SELECT`, part of the inserted data is converted by this `SELECT` query, and the result is inserted in the view. -Materialized views in ClickHouse use **column names** instead of column order during insertion into destination table. If some column names are not present in the `SELECT` query result, ClickHouse uses a default value, even if the column is not [Nullable](/reference/data-types/nullable). A safe practice would be to add aliases for every column when using Materialized views. +Materialized views in ClickHouse use **column names** instead of column order during insertion into destination table. If some column names are not present in the `SELECT` query result, ClickHouse uses a default value, even if the column is not [Nullable](/core/reference/data-types/nullable). A safe practice would be to add aliases for every column when using Materialized views. Materialized views in ClickHouse are implemented more like insert triggers. If there's some aggregation in the view query, it's applied only to the batch of freshly inserted data. Any changes to existing data of source table (like update, delete, drop partition, etc.) does not change the materialized view. @@ -162,11 +162,11 @@ A `SELECT` query can contain `DISTINCT`, `GROUP BY`, `ORDER BY`, `LIMIT`. Note t If the materialized view uses the construction `TO [db.]name`, you can `DETACH` the view, run `ALTER` for the target table, and then `ATTACH` the previously detached (`DETACH`) view. -Note that materialized view is influenced by [optimize_on_insert](/reference/settings/session-settings#optimize_on_insert) setting. The data is merged before the insertion into a view. +Note that materialized view is influenced by [optimize_on_insert](/core/reference/settings/session-settings#optimize_on_insert) setting. The data is merged before the insertion into a view. Views look the same as normal tables. For example, they are listed in the result of the `SHOW TABLES` query. -To delete a view, use [DROP VIEW](/reference/statements/drop#drop-view). Although `DROP TABLE` works for VIEWs as well. +To delete a view, use [DROP VIEW](/core/reference/statements/drop#drop-view). Although `DROP TABLE` works for VIEWs as well. ## SQL security {#sql_security} @@ -188,8 +188,8 @@ Thus, it is required to have `GRANT ALLOW SQL SECURITY NONE TO ` in order If `DEFINER`/`SQL SECURITY` aren't specified, the default values are used: -- `SQL SECURITY`: `INVOKER` for normal views and `DEFINER` for materialized views ([configurable by settings](/reference/settings/session-settings#default_normal_view_sql_security)) -- `DEFINER`: `CURRENT_USER` ([configurable by settings](/reference/settings/session-settings#default_view_definer)) +- `SQL SECURITY`: `INVOKER` for normal views and `DEFINER` for materialized views ([configurable by settings](/core/reference/settings/session-settings#default_normal_view_sql_security)) +- `DEFINER`: `CURRENT_USER` ([configurable by settings](/core/reference/settings/session-settings#default_view_definer)) If a view is attached without `DEFINER`/`SQL SECURITY` specified, the default value is `SQL SECURITY NONE` for the materialized view and `SQL SECURITY INVOKER` for the normal view. @@ -279,13 +279,13 @@ Additionally, a refresh is started immediately after the materialized view is cr ### In Replicated DB {#in-replicated-db} -If the refreshable materialized view is in a [Replicated database](/reference/engines/database-engines/replicated), the replicas coordinate with each other such that only one replica performs the refresh at each scheduled time. [ReplicatedMergeTree](/reference/engines/table-engines/mergetree-family/replication) table engine is required, so that all replicas see the data produced by the refresh. +If the refreshable materialized view is in a [Replicated database](/core/reference/engines/database-engines/replicated), the replicas coordinate with each other such that only one replica performs the refresh at each scheduled time. [ReplicatedMergeTree](/core/reference/engines/table-engines/mergetree-family/replication) table engine is required, so that all replicas see the data produced by the refresh. In `APPEND` mode, coordination can be disabled using `SETTINGS all_replicas = 1`. This makes replicas do refreshes independently of each other. In this case ReplicatedMergeTree is not required. In non-`APPEND` mode, only coordinated refreshing is supported. For uncoordinated, use `Atomic` database and `CREATE ... ON CLUSTER` query to create refreshable materialized views on all replicas. -The coordination is done through Keeper. The znode path is determined by [default_replica_path](/reference/settings/server-settings/settings#default_replica_path) server setting. +The coordination is done through Keeper. The znode path is determined by [default_replica_path](/core/reference/settings/server-settings/settings#default_replica_path) server setting. ### Refresh Dependencies {#refresh-dependencies} @@ -330,13 +330,13 @@ Available refresh settings: * `refresh_retries` - How many times to retry if refresh query fails with an exception. If all retries fail, skip to the next scheduled refresh time. 0 means no retries, -1 means infinite retries. Default: 2. * `refresh_retry_initial_backoff_ms` - Delay before the first retry, if `refresh_retries` is not zero. Each subsequent retry doubles the delay, up to `refresh_retry_max_backoff_ms`. Default: 100 ms. * `refresh_retry_max_backoff_ms` - Limit on the exponential growth of delay between refresh attempts. Default: 60000 ms (1 minute). -* `all_replicas` - In a [Replicated database](/reference/engines/database-engines/replicated) with `APPEND`, controls whether all replicas refresh independently or only one replica refreshes at each scheduled time. Cannot be changed after the view is created. Default: `false`. +* `all_replicas` - In a [Replicated database](/core/reference/engines/database-engines/replicated) with `APPEND`, controls whether all replicas refresh independently or only one replica refreshes at each scheduled time. Cannot be changed after the view is created. Default: `false`. * `prefer_dependency_replica` - When the view has `DEPENDS ON`, the replica that ran the parent refresh gets priority for running the dependent refresh; other replicas delay their attempt by `prefer_dependency_replica_delay_ms`. Useful with `SharedMergeTree` to avoid replication lag causing missing data in dependent refresh chains. Default: `false`. * `prefer_dependency_replica_delay_ms` - How long non-preferred replicas wait before attempting to run a dependent refresh when `prefer_dependency_replica` is enabled. Default: 2000 ms. ### Changing Refresh Parameters {#changing-refresh-parameters} -Refresh parameters of an existing refreshable materialized view are changed with [`ALTER TABLE ... MODIFY REFRESH`](/reference/statements/alter/view#alter-table--modify-refresh-statement): +Refresh parameters of an existing refreshable materialized view are changed with [`ALTER TABLE ... MODIFY REFRESH`](/core/reference/statements/alter/view#alter-table--modify-refresh-statement): ```sql ALTER TABLE [db.]name MODIFY REFRESH EVERY|AFTER ... [RANDOMIZE FOR ...] [DEPENDS ON ...] [SETTINGS ...] @@ -379,11 +379,11 @@ ALTER TABLE rmv MODIFY REFRESH EVERY 6 HOUR; ### Other operations {#other-operations} -The status of all refreshable materialized views is available in table [`system.view_refreshes`](/reference/system-tables/view_refreshes). In particular, it contains refresh progress (if running), last and next refresh time, exception message if a refresh failed. +The status of all refreshable materialized views is available in table [`system.view_refreshes`](/core/reference/system-tables/view_refreshes). In particular, it contains refresh progress (if running), last and next refresh time, exception message if a refresh failed. -To manually stop, start, trigger, or cancel refreshes, use [`SYSTEM STOP|START|REFRESH|WAIT|CANCEL VIEW`](/reference/statements/system#managing-refreshable-materialized-views). +To manually stop, start, trigger, or cancel refreshes, use [`SYSTEM STOP|START|REFRESH|WAIT|CANCEL VIEW`](/core/reference/statements/system#managing-refreshable-materialized-views). -To wait for a refresh to complete, use [`SYSTEM WAIT VIEW`](/reference/statements/system#wait-view). In particular, useful for waiting for initial refresh after creating a view. +To wait for a refresh to complete, use [`SYSTEM WAIT VIEW`](/core/reference/statements/system#wait-view). In particular, useful for waiting for initial refresh after creating a view. Fun fact: the refresh query is allowed to read from the view that's being refreshed, seeing pre-refresh version of the data. This means you can implement Conway's game of life: https://pastila.nl/?00021a4b/d6156ff819c83d490ad2dcec05676865#O0LGWTO7maUQIA4AcGUtlA== @@ -395,7 +395,7 @@ Fun fact: the refresh query is allowed to read from the view that's being refres -This is an experimental feature that may change in backwards-incompatible ways in the future releases. Enable usage of window views and `WATCH` query using [allow_experimental_window_view](/reference/settings/session-settings#allow_experimental_window_view) setting. Input the command `set allow_experimental_window_view = 1`. +This is an experimental feature that may change in backwards-incompatible ways in the future releases. Enable usage of window views and `WATCH` query using [allow_experimental_window_view](/core/reference/settings/session-settings#allow_experimental_window_view) setting. Input the command `set allow_experimental_window_view = 1`. ```sql @@ -413,7 +413,7 @@ When creating a window view without `TO [db].[table]`, you must specify `ENGINE` ### Time Window Functions {#time-window-functions} -[Time window functions](/reference/functions/regular-functions/time-window-functions) are used to get the lower and upper window bound of records. The window view needs to be used with a time window function. +[Time window functions](/core/reference/functions/regular-functions/time-window-functions) are used to get the lower and upper window bound of records. The window view needs to be used with a time window function. ### TIME ATTRIBUTES {#time-attributes} @@ -453,7 +453,7 @@ You can modify `SELECT` query that was specified in the window view by using `AL ### Monitoring New Windows {#monitoring-new-windows} -Window view supports the [WATCH](/reference/statements/watch) query to monitoring changes, or use `TO` syntax to output the results to a table. +Window view supports the [WATCH](/core/reference/statements/watch) query to monitoring changes, or use `TO` syntax to output the results to a table. ```sql WATCH [db.]window_view diff --git a/reference/statements/delete.mdx b/core/reference/statements/delete.mdx similarity index 80% rename from reference/statements/delete.mdx rename to core/reference/statements/delete.mdx index a44e64e3..c84a0005 100644 --- a/reference/statements/delete.mdx +++ b/core/reference/statements/delete.mdx @@ -13,7 +13,7 @@ The lightweight `DELETE` statement removes rows from the table `[db.]table` that DELETE FROM [db.]table [ON CLUSTER cluster] [IN PARTITION partition_expr] WHERE expr; ``` -It is called "lightweight `DELETE`" to contrast it to the [ALTER TABLE ... DELETE](/reference/statements/alter/delete) command, which is a heavyweight process. +It is called "lightweight `DELETE`" to contrast it to the [ALTER TABLE ... DELETE](/core/reference/statements/alter/delete) command, which is a heavyweight process. ## Examples {#examples} @@ -24,25 +24,25 @@ DELETE FROM hits WHERE Title LIKE '%hello%'; ## Lightweight `DELETE` does not delete data immediately {#lightweight-delete-does-not-delete-data-immediately} -Lightweight `DELETE` is implemented as a [mutation](/reference/statements/alter#mutations) that marks rows as deleted but does not immediately physically delete them. +Lightweight `DELETE` is implemented as a [mutation](/core/reference/statements/alter#mutations) that marks rows as deleted but does not immediately physically delete them. -By default, `DELETE` statements wait until marking the rows as deleted is completed before returning. This can take a long time if the amount of data is large. Alternatively, you can run it asynchronously in the background using the setting [`lightweight_deletes_sync`](/reference/settings/session-settings#lightweight_deletes_sync). If disabled, the `DELETE` statement is going to return immediately, but the data can still be visible to queries until the background mutation is finished. +By default, `DELETE` statements wait until marking the rows as deleted is completed before returning. This can take a long time if the amount of data is large. Alternatively, you can run it asynchronously in the background using the setting [`lightweight_deletes_sync`](/core/reference/settings/session-settings#lightweight_deletes_sync). If disabled, the `DELETE` statement is going to return immediately, but the data can still be visible to queries until the background mutation is finished. The mutation does not physically delete the rows that have been marked as deleted, this will only happen during the next merge. As a result, it is possible that for an unspecified period, data is not actually deleted from storage and is only marked as deleted. -If you need to guarantee that your data is deleted from storage in a predictable time, consider using the table setting [`min_age_to_force_merge_seconds`](/reference/settings/merge-tree-settings#min_age_to_force_merge_seconds). Or you can use the [ALTER TABLE ... DELETE](/reference/statements/alter/delete) command. Note that deleting data using `ALTER TABLE ... DELETE` may consume significant resources as it recreates all affected parts. +If you need to guarantee that your data is deleted from storage in a predictable time, consider using the table setting [`min_age_to_force_merge_seconds`](/core/reference/settings/merge-tree-settings#min_age_to_force_merge_seconds). Or you can use the [ALTER TABLE ... DELETE](/core/reference/statements/alter/delete) command. Note that deleting data using `ALTER TABLE ... DELETE` may consume significant resources as it recreates all affected parts. ## Deleting large amounts of data {#deleting-large-amounts-of-data} -Large deletes can negatively affect ClickHouse performance. If you are attempting to delete all rows from a table, consider using the [`TRUNCATE TABLE`](/reference/statements/truncate) command. +Large deletes can negatively affect ClickHouse performance. If you are attempting to delete all rows from a table, consider using the [`TRUNCATE TABLE`](/core/reference/statements/truncate) command. -If you anticipate frequent deletes, consider using a [custom partitioning key](/reference/engines/table-engines/mergetree-family/custom-partitioning-key). You can then use the [`ALTER TABLE ... DROP PARTITION`](/reference/statements/alter/partition#drop-partitionpart) command to quickly drop all rows associated with that partition. +If you anticipate frequent deletes, consider using a [custom partitioning key](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key). You can then use the [`ALTER TABLE ... DROP PARTITION`](/core/reference/statements/alter/partition#drop-partitionpart) command to quickly drop all rows associated with that partition. ## Limitations of lightweight `DELETE` {#limitations-of-lightweight-delete} ### Lightweight `DELETE`s with projections {#lightweight-deletes-with-projections} -By default, `DELETE` does not work for tables with projections. This is because rows in a projection may be affected by a `DELETE` operation. But there is a [MergeTree setting](/reference/settings/merge-tree-settings) `lightweight_mutation_projection_mode` to change the behavior. +By default, `DELETE` does not work for tables with projections. This is because rows in a projection may be affected by a `DELETE` operation. But there is a [MergeTree setting](/core/reference/settings/merge-tree-settings) `lightweight_mutation_projection_mode` to change the behavior. ## Performance considerations when using lightweight `DELETE` {#performance-considerations-when-using-lightweight-delete} diff --git a/reference/statements/describe-table.mdx b/core/reference/statements/describe-table.mdx similarity index 78% rename from reference/statements/describe-table.mdx rename to core/reference/statements/describe-table.mdx index 2f48513f..cf1d01fd 100644 --- a/reference/statements/describe-table.mdx +++ b/core/reference/statements/describe-table.mdx @@ -14,20 +14,20 @@ Returns information about table columns. DESC|DESCRIBE TABLE [db.]table [INTO OUTFILE filename] [FORMAT format] ``` -The `DESCRIBE` statement returns a row for each table column with the following [String](/reference/data-types/string) values: +The `DESCRIBE` statement returns a row for each table column with the following [String](/core/reference/data-types/string) values: - `name` — A column name. - `type` — A column type. -- `default_type` — A clause that is used in the column [default expression](/reference/statements/create/table): `DEFAULT`, `MATERIALIZED` or `ALIAS`. If there is no default expression, then empty string is returned. +- `default_type` — A clause that is used in the column [default expression](/core/reference/statements/create/table): `DEFAULT`, `MATERIALIZED` or `ALIAS`. If there is no default expression, then empty string is returned. - `default_expression` — An expression specified after the `DEFAULT` clause. -- `comment` — A [column comment](/reference/statements/alter/column#comment-column). -- `codec_expression` — A [codec](/reference/statements/create/table#column_compression_codec) that is applied to the column. -- `ttl_expression` — A [TTL](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) expression. -- `is_subcolumn` — A flag that equals `1` for internal subcolumns. It is included into the result only if subcolumn description is enabled by the [describe_include_subcolumns](/reference/settings/session-settings#describe_include_subcolumns) setting. +- `comment` — A [column comment](/core/reference/statements/alter/column#comment-column). +- `codec_expression` — A [codec](/core/reference/statements/create/table#column_compression_codec) that is applied to the column. +- `ttl_expression` — A [TTL](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) expression. +- `is_subcolumn` — A flag that equals `1` for internal subcolumns. It is included into the result only if subcolumn description is enabled by the [describe_include_subcolumns](/core/reference/settings/session-settings#describe_include_subcolumns) setting. -All columns in [Nested](/reference/data-types/nested-data-structures) data structures are described separately. The name of each column is prefixed with a parent column name and a dot. +All columns in [Nested](/core/reference/data-types/nested-data-structures) data structures are described separately. The name of each column is prefixed with a parent column name and a dot. -To show internal subcolumns of other data types, use the [describe_include_subcolumns](/reference/settings/session-settings#describe_include_subcolumns) setting. +To show internal subcolumns of other data types, use the [describe_include_subcolumns](/core/reference/settings/session-settings#describe_include_subcolumns) setting. **Example** @@ -81,4 +81,4 @@ This usage returns metadata about the result columns of the specified query or s **See Also** -- [describe_include_subcolumns](/reference/settings/session-settings#describe_include_subcolumns) setting. +- [describe_include_subcolumns](/core/reference/settings/session-settings#describe_include_subcolumns) setting. diff --git a/reference/statements/detach.mdx b/core/reference/statements/detach.mdx similarity index 82% rename from reference/statements/detach.mdx rename to core/reference/statements/detach.mdx index 433c4334..75ba3ed8 100644 --- a/reference/statements/detach.mdx +++ b/core/reference/statements/detach.mdx @@ -16,14 +16,14 @@ DETACH TABLE|VIEW|DICTIONARY|DATABASE [IF EXISTS] [db.]name [ON CLUSTER cluster] Detaching does not delete the data or metadata of a table, a materialized view, a dictionary or a database. If an entity was not detached `PERMANENTLY`, on the next server launch the server will read the metadata and recall the table/view/dictionary/database again. If an entity was detached `PERMANENTLY`, there will be no automatic recall. -Whether a table, a dictionary or a database was detached permanently or not, in both cases you can reattach them using the [ATTACH](/reference/statements/attach) query. +Whether a table, a dictionary or a database was detached permanently or not, in both cases you can reattach them using the [ATTACH](/core/reference/statements/attach) query. System log tables can be also attached back (e.g. `query_log`, `text_log`, etc.). Other system tables can't be reattached. On the next server launch the server will recall those tables again. `ATTACH MATERIALIZED VIEW` does not work with short syntax (without `SELECT`), but you can attach it using the `ATTACH TABLE` query. Note that you can not detach permanently the table which is already detached (temporary). But you can attach it back and then detach permanently again. -Also, you can not [DROP](/reference/statements/drop#drop-table) the detached table, or [CREATE TABLE](/reference/statements/create/table) with the same name as detached permanently, or replace it with the other table with [RENAME TABLE](/reference/statements/rename) query. +Also, you can not [DROP](/core/reference/statements/drop#drop-table) the detached table, or [CREATE TABLE](/core/reference/statements/create/table) with the same name as detached permanently, or replace it with the other table with [RENAME TABLE](/core/reference/statements/rename) query. The `SYNC` modifier executes the action without delay. @@ -69,5 +69,5 @@ In ClickHouse Cloud users should use the `PERMANENTLY` clause e.g. `DETACH TABLE **See Also** -- [Materialized View](/reference/statements/create/view#materialized-view) -- [Dictionaries](/reference/statements/create/dictionary) +- [Materialized View](/core/reference/statements/create/view#materialized-view) +- [Dictionaries](/core/reference/statements/create/dictionary) diff --git a/reference/statements/distributed-ddl.mdx b/core/reference/statements/distributed-ddl.mdx similarity index 100% rename from reference/statements/distributed-ddl.mdx rename to core/reference/statements/distributed-ddl.mdx diff --git a/reference/statements/drop.mdx b/core/reference/statements/drop.mdx similarity index 94% rename from reference/statements/drop.mdx rename to core/reference/statements/drop.mdx index acc9619f..3b0a0f7c 100644 --- a/reference/statements/drop.mdx +++ b/core/reference/statements/drop.mdx @@ -23,7 +23,7 @@ DROP DATABASE [IF EXISTS] db [ON CLUSTER cluster] [SYNC] Deletes one or more tables. -To undo the deletion of a table, please see [UNDROP TABLE](/reference/statements/undrop) +To undo the deletion of a table, please see [UNDROP TABLE](/core/reference/statements/undrop) Syntax: @@ -118,7 +118,7 @@ DROP VIEW [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC] ## DROP FUNCTION {#drop-function} -Deletes a user defined function created by [CREATE FUNCTION](/reference/statements/create/function). +Deletes a user defined function created by [CREATE FUNCTION](/core/reference/statements/create/function). System functions can not be dropped. **Syntax** diff --git a/reference/statements/exchange.mdx b/core/reference/statements/exchange.mdx similarity index 86% rename from reference/statements/exchange.mdx rename to core/reference/statements/exchange.mdx index 3eb82aa5..be48c182 100644 --- a/reference/statements/exchange.mdx +++ b/core/reference/statements/exchange.mdx @@ -7,12 +7,12 @@ doc_type: 'reference' --- Exchanges the names of two tables or dictionaries atomically. -This task can also be accomplished with a [`RENAME`](/reference/statements/rename) query using a temporary name, but the operation is not atomic in that case. +This task can also be accomplished with a [`RENAME`](/core/reference/statements/rename) query using a temporary name, but the operation is not atomic in that case. **** -The `EXCHANGE` query is supported by the [`Atomic`](/reference/engines/database-engines/atomic) and [`Shared`](/products/cloud/features/infrastructure/shared-catalog#shared-database-engine) database engines only. +The `EXCHANGE` query is supported by the [`Atomic`](/core/reference/engines/database-engines/atomic) and [`Shared`](/products/cloud/features/infrastructure/shared-catalog#shared-database-engine) database engines only. **Syntax** @@ -103,4 +103,4 @@ EXCHANGE DICTIONARIES [db0.]dict_A AND [db1.]dict_B [ON CLUSTER cluster] **See Also** -- [Dictionaries](/reference/statements/create/dictionary) +- [Dictionaries](/core/reference/statements/create/dictionary) diff --git a/reference/statements/execute_as.mdx b/core/reference/statements/execute_as.mdx similarity index 79% rename from reference/statements/execute_as.mdx rename to core/reference/statements/execute_as.mdx index 28d74663..4b9d6617 100644 --- a/reference/statements/execute_as.mdx +++ b/core/reference/statements/execute_as.mdx @@ -31,8 +31,8 @@ GRANT IMPERSONATE ON * TO user3; ``` allow user `user2` to execute commands `EXECUTE AS user1 ...` and also allow user `user3` to execute commands as any user. -While impersonating another user function [currentUser()](/reference/functions/regular-functions/other-functions#currentUser) returns the name of that other user, -and function [authenticatedUser()](/reference/functions/regular-functions/other-functions#authenticatedUser) returns the name of the user who has been actually authenticated. +While impersonating another user function [currentUser()](/core/reference/functions/regular-functions/other-functions#currentUser) returns the name of that other user, +and function [authenticatedUser()](/core/reference/functions/regular-functions/other-functions#authenticatedUser) returns the name of the user who has been actually authenticated. ## Examples {#examples} diff --git a/reference/statements/exists.mdx b/core/reference/statements/exists.mdx similarity index 100% rename from reference/statements/exists.mdx rename to core/reference/statements/exists.mdx diff --git a/reference/statements/explain.mdx b/core/reference/statements/explain.mdx similarity index 96% rename from reference/statements/explain.mdx rename to core/reference/statements/explain.mdx index 5755bb18..f34c6224 100644 --- a/reference/statements/explain.mdx +++ b/core/reference/statements/explain.mdx @@ -179,12 +179,12 @@ Settings: - `optimize` — Controls whether query plan optimizations are applied before displaying the plan. Default: 1. - `header` — Prints output header for step. Default: 0. - `description` — Prints step description. Default: 1. -- `indexes` — Shows used indexes, the number of filtered parts and the number of filtered granules for every index applied. Default: 0. Supported for [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables. Starting from ClickHouse >= v25.9, this statement only shows reasonable output when used with `SETTINGS use_query_condition_cache = 0, use_skip_indexes_on_data_read = 0`. -- `projections` — Shows all analyzed projections and their effect on part-level filtering based on projection primary key conditions. For each projection, this section includes statistics such as the number of parts, rows, marks, and ranges that were evaluated using the projection's primary key. It also shows how many data parts were skipped due to this filtering, without reading from the projection itself. Whether a projection was actually used for reading or only analyzed for filtering can be determined by the `description` field. Default: 0. Supported for [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables. +- `indexes` — Shows used indexes, the number of filtered parts and the number of filtered granules for every index applied. Default: 0. Supported for [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables. Starting from ClickHouse >= v25.9, this statement only shows reasonable output when used with `SETTINGS use_query_condition_cache = 0, use_skip_indexes_on_data_read = 0`. +- `projections` — Shows all analyzed projections and their effect on part-level filtering based on projection primary key conditions. For each projection, this section includes statistics such as the number of parts, rows, marks, and ranges that were evaluated using the projection's primary key. It also shows how many data parts were skipped due to this filtering, without reading from the projection itself. Whether a projection was actually used for reading or only analyzed for filtering can be determined by the `description` field. Default: 0. Supported for [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables. - `actions` — Prints detailed information about step actions. Default: 0. - `sorting` — Prints the sort description for each plan step that produces sorted output. Default: 0. - `keep_logical_steps` — Keeps logical plan steps for joins instead of converting them to physical join implementations. Default: 0. -- `json` — Prints query plan steps as a row in [JSON](/reference/formats/JSON/JSON) format. Default: 0. It is recommended to use [TabSeparatedRaw (TSVRaw)](/reference/formats/TabSeparated/TabSeparatedRaw) format to avoid unnecessary escaping. +- `json` — Prints query plan steps as a row in [JSON](/core/reference/formats/JSON/JSON) format. Default: 0. It is recommended to use [TabSeparatedRaw (TSVRaw)](/core/reference/formats/TabSeparated/TabSeparatedRaw) format to avoid unnecessary escaping. - `input_headers` — Prints input headers for step. Default: 0. Mostly useful only for developers to debug issues related to input-output header mismatch. - `column_structure` — Prints also the structure of columns in headers on top of their name and type. Default: 0. Mostly useful only for developers to debug issues related to input-output header mismatch. - `distributed` — Shows query plans executed on remote nodes for distributed tables or parallel replicas. Default: 0. @@ -626,7 +626,7 @@ ExpressionTransform ``` ### EXPLAIN ESTIMATE {#explain-estimate} -Shows the estimated number of rows, marks and parts to be read from the tables while processing the query. Works with tables in the [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) family. +Shows the estimated number of rows, marks and parts to be read from the tables while processing the query. Works with tables in the [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) family. **Example** diff --git a/reference/statements/grant.mdx b/core/reference/statements/grant.mdx similarity index 90% rename from reference/statements/grant.mdx rename to core/reference/statements/grant.mdx index b0711cc2..6a319f78 100644 --- a/reference/statements/grant.mdx +++ b/core/reference/statements/grant.mdx @@ -11,7 +11,7 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ - Grants [privileges](#privileges) to ClickHouse user accounts or roles. - Assigns roles to user accounts or to the other roles. -To revoke privileges, use the [REVOKE](/reference/statements/revoke) statement. Also you can list granted privileges with the [SHOW GRANTS](/reference/statements/show#show-grants) statement. +To revoke privileges, use the [REVOKE](/core/reference/statements/revoke) statement. Also you can list granted privileges with the [SHOW GRANTS](/core/reference/statements/show#show-grants) statement. ## Granting Privilege Syntax {#granting-privilege-syntax} @@ -242,7 +242,7 @@ The hierarchy of privileges in ClickHouse is shown below: - `SHOW NAMED COLLECTIONS SECRETS` - [`OPTIMIZE`](#optimize) - [`SELECT`](#select) - - [`SET DEFINER`](/reference/statements/create/view#sql_security) + - [`SET DEFINER`](/core/reference/statements/create/view#sql_security) - [`SHOW`](#show) - `SHOW COLUMNS` - `SHOW DATABASES` @@ -367,11 +367,11 @@ By default, a user account or a role has no privileges. If a user or a role has no privileges, it is displayed as [NONE](#none) privilege. -Some queries by their implementation require a set of privileges. For example, to execute the [RENAME](/reference/statements/optimize) query you need the following privileges: `SELECT`, `CREATE TABLE`, `INSERT` and `DROP TABLE`. +Some queries by their implementation require a set of privileges. For example, to execute the [RENAME](/core/reference/statements/optimize) query you need the following privileges: `SELECT`, `CREATE TABLE`, `INSERT` and `DROP TABLE`. ### SELECT {#select} -Allows executing [SELECT](/reference/statements/select) queries. +Allows executing [SELECT](/core/reference/statements/select) queries. Privilege level: `COLUMN`. @@ -389,7 +389,7 @@ This privilege allows `john` to execute any `SELECT` query that involves data fr ### INSERT {#insert} -Allows executing [INSERT](/reference/statements/insert-into) queries. +Allows executing [INSERT](/core/reference/statements/insert-into) queries. Privilege level: `COLUMN`. @@ -407,7 +407,7 @@ The granted privilege allows `john` to insert data to the `x` and/or `y` columns ### ALTER {#alter} -Allows executing [ALTER](/reference/statements/alter) queries according to the following hierarchy of privileges: +Allows executing [ALTER](/core/reference/statements/alter) queries according to the following hierarchy of privileges: - `ALTER`. Level: `COLUMN`. - `ALTER TABLE`. Level: `GROUP` @@ -452,15 +452,15 @@ Examples of how this hierarchy is treated: - The `MODIFY SETTING` privilege allows modifying table engine settings. It does not affect settings or server configuration parameters. - The `ATTACH` operation needs the [CREATE](#create) privilege. - The `DETACH` operation needs the [DROP](#drop) privilege. -- To stop mutation by the [KILL MUTATION](/reference/statements/kill#kill-mutation) query, you need to have a privilege to start this mutation. For example, if you want to stop the `ALTER UPDATE` query, you need the `ALTER UPDATE`, `ALTER TABLE`, or `ALTER` privilege. +- To stop mutation by the [KILL MUTATION](/core/reference/statements/kill#kill-mutation) query, you need to have a privilege to start this mutation. For example, if you want to stop the `ALTER UPDATE` query, you need the `ALTER UPDATE`, `ALTER TABLE`, or `ALTER` privilege. ### BACKUP {#backup} -Allows execution of [`BACKUP`] in queries. For more information on backups see ["Backup and Restore"](/concepts/features/backup-restore/overview). +Allows execution of [`BACKUP`] in queries. For more information on backups see ["Backup and Restore"](/core/concepts/features/backup-restore/overview). ### CREATE {#create} -Allows executing [CREATE](/reference/statements/create) and [ATTACH](/reference/statements/attach) DDL-queries according to the following hierarchy of privileges: +Allows executing [CREATE](/core/reference/statements/create) and [ATTACH](/core/reference/statements/attach) DDL-queries according to the following hierarchy of privileges: - `CREATE`. Level: `GROUP` - `CREATE DATABASE`. Level: `DATABASE` @@ -500,7 +500,7 @@ located in the `access_control_improvements` section of `config.xml` (see below) ### DROP {#drop} -Allows executing [DROP](/reference/statements/drop) and [DETACH](/reference/statements/detach) queries according to the following hierarchy of privileges: +Allows executing [DROP](/core/reference/statements/drop) and [DETACH](/core/reference/statements/detach) queries according to the following hierarchy of privileges: - `DROP`. Level: `GROUP` - `DROP DATABASE`. Level: `DATABASE` @@ -510,13 +510,13 @@ Allows executing [DROP](/reference/statements/drop) and [DETACH](/reference/stat ### TRUNCATE {#truncate} -Allows executing [TRUNCATE](/reference/statements/truncate) queries. +Allows executing [TRUNCATE](/core/reference/statements/truncate) queries. Privilege level: `TABLE`. ### OPTIMIZE {#optimize} -Allows executing [OPTIMIZE TABLE](/reference/statements/optimize) queries. +Allows executing [OPTIMIZE TABLE](/core/reference/statements/optimize) queries. Privilege level: `TABLE`. @@ -536,7 +536,7 @@ A user has the `SHOW` privilege if it has any other privilege concerning the spe ### KILL QUERY {#kill-query} -Allows executing [KILL](/reference/statements/kill#kill-query) queries according to the following hierarchy of privileges: +Allows executing [KILL](/core/reference/statements/kill#kill-query) queries according to the following hierarchy of privileges: Privilege level: `GLOBAL`. @@ -577,7 +577,7 @@ The `ROLE ADMIN` privilege allows a user to assign and revoke any roles includin ### SYSTEM {#system} -Allows a user to execute [SYSTEM](/reference/statements/system) queries according to the following hierarchy of privileges. +Allows a user to execute [SYSTEM](/core/reference/statements/system) queries according to the following hierarchy of privileges. - `SYSTEM`. Level: `GROUP` - `SYSTEM SHUTDOWN`. Level: `GLOBAL`. Aliases: `SYSTEM KILL`, `SHUTDOWN` @@ -607,7 +607,7 @@ The `SYSTEM RELOAD EMBEDDED DICTIONARIES` privilege implicitly granted by the `S ### INTROSPECTION {#introspection} -Allows using [introspection](/concepts/features/performance/troubleshoot/sampling-query-profiler) functions. +Allows using [introspection](/core/concepts/features/performance/troubleshoot/sampling-query-profiler) functions. - `INTROSPECTION`. Level: `GROUP`. Aliases: `INTROSPECTION FUNCTIONS` - `addressToLine`. Level: `GLOBAL` @@ -617,7 +617,7 @@ Allows using [introspection](/concepts/features/performance/troubleshoot/samplin ### SOURCES {#sources} -Allows using external data sources. Applies to [table engines](/reference/engines/table-engines) and [table functions](/reference/functions/table-functions). +Allows using external data sources. Applies to [table engines](/core/reference/engines/table-engines) and [table functions](/core/reference/functions/table-functions). - `READ`. Level: `GLOBAL_WITH_PARAMETER` - `WRITE`. Level: `GLOBAL_WITH_PARAMETER` @@ -650,8 +650,8 @@ Otherwise, you should use the syntax `GRANT AZURE ON *.* TO user` which is equiv Examples: -- To create a table with the [MySQL table engine](/reference/engines/table-engines/integrations/mysql), you need `CREATE TABLE (ON db.table_name)` and `MYSQL` privileges. -- To use the [mysql table function](/reference/functions/table-functions/mysql), you need `CREATE TEMPORARY TABLE` and `MYSQL` privileges. +- To create a table with the [MySQL table engine](/core/reference/engines/table-engines/integrations/mysql), you need `CREATE TABLE (ON db.table_name)` and `MYSQL` privileges. +- To use the [mysql table function](/core/reference/functions/table-functions/mysql), you need `CREATE TEMPORARY TABLE` and `MYSQL` privileges. ### Source Filter Grants {#source-filter-grants} @@ -722,7 +722,7 @@ GRANT CURRENT GRANTS(READ ON S3) TO alice - `dictGet`. Aliases: `dictHas`, `dictGetHierarchy`, `dictIsIn` -Allows a user to execute [dictGet](/reference/functions/regular-functions/ext-dict-functions#dictGet), [dictHas](/reference/functions/regular-functions/ext-dict-functions#dictHas), [dictGetHierarchy](/reference/functions/regular-functions/ext-dict-functions#dictGetHierarchy), [dictIsIn](/reference/functions/regular-functions/ext-dict-functions#dictIsIn) functions. +Allows a user to execute [dictGet](/core/reference/functions/regular-functions/ext-dict-functions#dictGet), [dictHas](/core/reference/functions/regular-functions/ext-dict-functions#dictHas), [dictGetHierarchy](/core/reference/functions/regular-functions/ext-dict-functions#dictGetHierarchy), [dictIsIn](/core/reference/functions/regular-functions/ext-dict-functions#dictIsIn) functions. Privilege level: `DICTIONARY`. @@ -734,9 +734,9 @@ Privilege level: `DICTIONARY`. ### displaySecretsInShowAndSelect {#displaysecretsinshowandselect} Allows a user to view secrets in `SHOW` and `SELECT` queries if both -[`display_secrets_in_show_and_select` server setting](/reference/settings/server-settings/settings#display_secrets_in_show_and_select) +[`display_secrets_in_show_and_select` server setting](/core/reference/settings/server-settings/settings#display_secrets_in_show_and_select) and -[`format_display_secrets_in_show_and_select` format setting](/reference/settings/formats#format_display_secrets_in_show_and_select) +[`format_display_secrets_in_show_and_select` format setting](/core/reference/settings/formats#format_display_secrets_in_show_and_select) are turned on. ### NAMED COLLECTION ADMIN {#named-collection-admin} @@ -760,7 +760,7 @@ Assuming a named collection is called abc, we grant privilege CREATE NAMED COLLE ### TABLE ENGINE {#table-engine} -Allows using a specified table engine when creating a table. Applies to [table engines](/reference/engines/table-engines). +Allows using a specified table engine when creating a table. Applies to [table engines](/core/reference/engines/table-engines). **Examples** diff --git a/reference/statements/in.mdx b/core/reference/statements/in.mdx similarity index 88% rename from reference/statements/in.mdx rename to core/reference/statements/in.mdx index 8aa09d11..525bb12e 100644 --- a/reference/statements/in.mdx +++ b/core/reference/statements/in.mdx @@ -19,16 +19,16 @@ SELECT (CounterID, UserID) IN ((34, 123), (101500, 456)) FROM ... If the left side is a single column that is in the index, and the right side is a set of constants, the system uses the index for processing the query. -Don't list too many values explicitly (i.e. millions). If a data set is large, put it in a temporary table (for example, see the section [External data for query processing](/reference/engines/table-engines/special/external-data)), then use a subquery. +Don't list too many values explicitly (i.e. millions). If a data set is large, put it in a temporary table (for example, see the section [External data for query processing](/core/reference/engines/table-engines/special/external-data)), then use a subquery. The right side of the operator can be a set of constant expressions, a set of tuples with constant expressions (shown in the examples above), or the name of a database table or `SELECT` subquery in brackets. ClickHouse allows types to differ in the left and the right parts of the `IN` subquery. In this case, it converts the right side value to the type of the left side, as -if the [accurateCastOrNull](/reference/functions/regular-functions/type-conversion-functions#accurateCastOrNull) function were applied to the right side. +if the [accurateCastOrNull](/core/reference/functions/regular-functions/type-conversion-functions#accurateCastOrNull) function were applied to the right side. -This means that the data type becomes [Nullable](/reference/data-types/nullable), and if the conversion -cannot be performed, it returns [NULL](/reference/settings/formats#input_format_null_as_default). +This means that the data type becomes [Nullable](/core/reference/data-types/nullable), and if the conversion +cannot be performed, it returns [NULL](/core/reference/settings/formats#input_format_null_as_default). **Example** @@ -90,7 +90,7 @@ A subquery in the `IN` clause is always run just one time on a single server. Th ## NULL Processing {#null-processing} -During request processing, the `IN` operator assumes that the result of an operation with [NULL](/reference/settings/formats#input_format_null_as_default) always equals `0`, regardless of whether `NULL` is on the right or left side of the operator. `NULL` values are not included in any dataset, do not correspond to each other and cannot be compared if [transform_null_in = 0](/reference/settings/session-settings#transform_null_in). +During request processing, the `IN` operator assumes that the result of an operation with [NULL](/core/reference/settings/formats#input_format_null_as_default) always equals `0`, regardless of whether `NULL` is on the right or left side of the operator. `NULL` values are not included in any dataset, do not correspond to each other and cannot be compared if [transform_null_in = 0](/core/reference/settings/session-settings#transform_null_in). Here is an example with the `t_null` table: @@ -130,7 +130,7 @@ There are two options for `IN` operators with subqueries (similar to `JOIN` oper **** -Remember that the algorithms described below may work differently depending on the [settings](/reference/settings/session-settings) `distributed_product_mode` setting. +Remember that the algorithms described below may work differently depending on the [settings](/core/reference/settings/session-settings) `distributed_product_mode` setting. When using the regular `IN`, the query is sent to remote servers, and each of them runs the subqueries in the `IN` or `JOIN` clause. @@ -231,7 +231,7 @@ It also makes sense to specify a local table in the `GLOBAL IN` clause, in case ### Distributed Subqueries and max_rows_in_set {#distributed-subqueries-and-max_rows_in_set} -You can use [`max_rows_in_set`](/reference/settings/session-settings#max_rows_in_set) and [`max_bytes_in_set`](/reference/settings/session-settings#max_bytes_in_set) to control how much data is transferred during distributed queries. +You can use [`max_rows_in_set`](/core/reference/settings/session-settings#max_rows_in_set) and [`max_bytes_in_set`](/core/reference/settings/session-settings#max_bytes_in_set) to control how much data is transferred during distributed queries. This is specially important if the `GLOBAL IN` query returns a large amount of data. Consider the following SQL: @@ -239,7 +239,7 @@ This is specially important if the `GLOBAL IN` query returns a large amount of d SELECT * FROM table1 WHERE col1 GLOBAL IN (SELECT col1 FROM table2 WHERE ) ``` -If `some_predicate` is not selective enough, it will return a large amount of data and cause performance issues. In such cases, it is wise to limit the data transfer over the network. Also, note that [`set_overflow_mode`](/reference/settings/session-settings#set_overflow_mode) is set to `throw` (by default) meaning that an exception is raised when these thresholds are met. +If `some_predicate` is not selective enough, it will return a large amount of data and cause performance issues. In such cases, it is wise to limit the data transfer over the network. Also, note that [`set_overflow_mode`](/core/reference/settings/session-settings#set_overflow_mode) is set to `throw` (by default) meaning that an exception is raised when these thresholds are met. ### Distributed Subqueries and max_parallel_replicas {#distributed-subqueries-and-max_parallel_replicas} @@ -267,4 +267,4 @@ Therefore adding the [max_parallel_replicas](#distributed-subqueries-and-max_par One workaround if `local_table_2` does not meet the requirements, is to use `GLOBAL IN` or `GLOBAL JOIN`. -If a table doesn't have a sampling key, more flexible options for [parallel_replicas_custom_key](/reference/settings/session-settings#parallel_replicas_custom_key) can be used that can produce different and more optimal behaviour. +If a table doesn't have a sampling key, more flexible options for [parallel_replicas_custom_key](/core/reference/settings/session-settings#parallel_replicas_custom_key) can be used that can produce different and more optimal behaviour. diff --git a/core/reference/statements/index.mdx b/core/reference/statements/index.mdx new file mode 100644 index 00000000..4bbf9314 --- /dev/null +++ b/core/reference/statements/index.mdx @@ -0,0 +1,9 @@ +--- +description: 'Documentation for ClickHouse SQL Statements' +sidebarTitle: 'List of statements' +slug: /sql-reference/statements/ +title: 'ClickHouse SQL Statements' +doc_type: 'reference' +--- + +Users interact with ClickHouse using SQL statements. ClickHouse supports common SQL statements like [SELECT](/core/reference/statements/select) and [CREATE](/core/reference/statements/create), but it also provides specialized statements like [KILL](/core/reference/statements/kill) and [OPTIMIZE](/core/reference/statements/optimize). diff --git a/reference/statements/insert-into.mdx b/core/reference/statements/insert-into.mdx similarity index 79% rename from reference/statements/insert-into.mdx rename to core/reference/statements/insert-into.mdx index 5987432e..0479b751 100644 --- a/reference/statements/insert-into.mdx +++ b/core/reference/statements/insert-into.mdx @@ -14,7 +14,7 @@ Inserts data into a table. INSERT INTO [TABLE] [db.]table [(c1, c2, c3)] [SETTINGS ...] VALUES (v11, v12, v13), (v21, v22, v23), ... ``` -You can specify a list of columns to insert using the `(c1, c2, c3)`. You can also use an expression with column [matcher](/reference/statements/select#asterisk) such as `*` and/or [modifiers](/reference/statements/select#select-modifiers) such as [APPLY](/reference/statements/select/apply_modifier), [EXCEPT](/reference/statements/select/except_modifier), [REPLACE](/reference/statements/select/replace_modifier). +You can specify a list of columns to insert using the `(c1, c2, c3)`. You can also use an expression with column [matcher](/core/reference/statements/select#asterisk) such as `*` and/or [modifiers](/core/reference/statements/select#select-modifiers) such as [APPLY](/core/reference/statements/select/apply_modifier), [EXCEPT](/core/reference/statements/select/except_modifier), [REPLACE](/core/reference/statements/select/replace_modifier). For example, consider the table: @@ -67,7 +67,7 @@ If a list of columns does not include all existing columns, the rest of the colu - The values calculated from the `DEFAULT` expressions specified in the table definition. - Zeros and empty strings, if `DEFAULT` expressions are not defined. -Data can be passed to the INSERT in any [format](/reference/formats) supported by ClickHouse. The format must be specified explicitly in the query: +Data can be passed to the INSERT in any [format](/core/reference/formats) supported by ClickHouse. The format must be specified explicitly in the query: ```sql INSERT INTO [db.]table [(c1, c2, c3)] FORMAT format_name data_set @@ -89,7 +89,7 @@ INSERT INTO t FORMAT TabSeparated 22 Qwerty ``` -You can insert data separately from the query by using the [command-line client](/concepts/features/tools-and-utilities/clickhouse-local) or the [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http). +You can insert data separately from the query by using the [command-line client](/core/concepts/features/tools-and-utilities/clickhouse-local) or the [HTTP interface](/core/concepts/features/interfaces/http). If you want to specify `SETTINGS` for `INSERT` query then you have to do it _before_ the `FORMAT` clause since everything after `FORMAT format_name` is treated as data. For example: @@ -101,7 +101,7 @@ INSERT INTO table SETTINGS ... FORMAT format_name data_set ## Constraints {#constraints} -If a table has [constraints](/reference/statements/create/table#constraints), their expressions will be checked for each row of inserted data. If any of those constraints is not satisfied — the server will raise an exception containing the constraint name and expression, and the query will be stopped. +If a table has [constraints](/core/reference/statements/create/table#constraints), their expressions will be checked for each row of inserted data. If any of those constraints is not satisfied — the server will raise an exception containing the constraint name and expression, and the query will be stopped. ## Data Type Validation {#data-type-validation} @@ -157,9 +157,9 @@ None of the data formats except the Values format allow setting values to expres Other queries for modifying data parts are not supported: `UPDATE`, `DELETE`, `REPLACE`, `MERGE`, `UPSERT`, `INSERT UPDATE`. However, you can delete old data using `ALTER TABLE ... DROP PARTITION`. -The `FORMAT` clause must be specified at the end of the query if the `SELECT` clause contains the table function [input()](/reference/functions/table-functions/input). +The `FORMAT` clause must be specified at the end of the query if the `SELECT` clause contains the table function [input()](/core/reference/functions/table-functions/input). -To insert a default value instead of `NULL` into a column with a non-nullable data type, enable the [insert_null_as_default](/reference/settings/session-settings#insert_null_as_default) setting. +To insert a default value instead of `NULL` into a column with a non-nullable data type, enable the [insert_null_as_default](/core/reference/settings/session-settings#insert_null_as_default) setting. `INSERT` also supports CTE (common table expression). For example, the following two statements are equivalent: @@ -176,17 +176,17 @@ WITH y AS (SELECT * FROM numbers(10)) INSERT INTO x SELECT * FROM y; INSERT INTO [TABLE] [db.]table [(c1, c2, c3)] FROM INFILE file_name [COMPRESSION type] [SETTINGS ...] [FORMAT format_name] ``` -Use the syntax above to insert data from a file, or files, stored on the **client** side. `file_name` and `type` are string literals. Input file [format](/reference/formats) must be set in the `FORMAT` clause. +Use the syntax above to insert data from a file, or files, stored on the **client** side. `file_name` and `type` are string literals. Input file [format](/core/reference/formats) must be set in the `FORMAT` clause. Compressed files are supported. The compression type is detected by the extension of the file name. Or it can be explicitly specified in a `COMPRESSION` clause. Supported types are: `'none'`, `'gzip'`, `'deflate'`, `'br'`, `'xz'`, `'zstd'`, `'lz4'`, `'bz2'`. -This functionality is available in the [command-line client](/integrations/connectors/data-integrations/drivers-and-interfaces/client) and [clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local). +This functionality is available in the [command-line client](/core/concepts/features/interfaces/client) and [clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local). **Examples** ### Single file with FROM INFILE {#single-file-with-from-infile} -Execute the following queries using [command-line client](/integrations/connectors/data-integrations/drivers-and-interfaces/client): +Execute the following queries using [command-line client](/core/concepts/features/interfaces/client): ```bash title="Query" echo 1,A > input.csv ; echo 2,B >> input.csv @@ -214,7 +214,7 @@ clickhouse-client --query="SELECT * FROM infile_globs FORMAT PrettyCompact;" ``` -In addition to selecting multiple files with `*`, you can use ranges (`{1,2}` or `{1..9}`) and other [glob substitutions](/reference/functions/table-functions/file#globs-in-path). These three all would work with the example above: +In addition to selecting multiple files with `*`, you can use ranges (`{1,2}` or `{1..9}`) and other [glob substitutions](/core/reference/functions/table-functions/file#globs-in-path). These three all would work with the example above: ```sql INSERT INTO infile_globs FROM INFILE 'input_*.csv' FORMAT CSV; @@ -225,7 +225,7 @@ INSERT INTO infile_globs FROM INFILE 'input_?.csv' FORMAT CSV; ## Inserting using a Table Function {#inserting-using-a-table-function} -Data can be inserted into tables referenced by [table functions](/reference/functions/table-functions). +Data can be inserted into tables referenced by [table functions](/core/reference/functions/table-functions). **Syntax** @@ -235,7 +235,7 @@ INSERT INTO [TABLE] FUNCTION table_func ... **Example** -The [remote](/reference/functions/table-functions/remote) table function is used in the following queries: +The [remote](/core/reference/functions/table-functions/remote) table function is used in the following queries: ```sql title="Query" CREATE TABLE simple_table (id UInt32, text String) ENGINE=MergeTree() ORDER BY id; @@ -284,19 +284,19 @@ Performance will not decrease if: ### Asynchronous inserts {#asynchronous-inserts} -It is possible to asynchronously insert data in small but frequent inserts. The data from such insertions is combined into batches and then safely inserted into a table. To use asynchronous inserts, enable the [`async_insert`](/reference/settings/session-settings#async_insert) setting. +It is possible to asynchronously insert data in small but frequent inserts. The data from such insertions is combined into batches and then safely inserted into a table. To use asynchronous inserts, enable the [`async_insert`](/core/reference/settings/session-settings#async_insert) setting. -Using `async_insert` or the [`Buffer` table engine](/reference/engines/table-engines/special/buffer) results in additional buffering. +Using `async_insert` or the [`Buffer` table engine](/core/reference/engines/table-engines/special/buffer) results in additional buffering. ### Large or long-running inserts {#large-or-long-running-inserts} -When you are inserting large amounts of data, ClickHouse will optimize write performance through a process called "squashing". Small blocks of inserted data in memory are merged and squashed into larger blocks before being written to disk. Squashing reduces the overhead associated with each write operation. In this process, inserted data will be available to query after ClickHouse completes writing each [`max_insert_block_size`](/reference/settings/session-settings#max_insert_block_size) rows. +When you are inserting large amounts of data, ClickHouse will optimize write performance through a process called "squashing". Small blocks of inserted data in memory are merged and squashed into larger blocks before being written to disk. Squashing reduces the overhead associated with each write operation. In this process, inserted data will be available to query after ClickHouse completes writing each [`max_insert_block_size`](/core/reference/settings/session-settings#max_insert_block_size) rows. **See Also** -- [async_insert](/reference/settings/session-settings#async_insert) -- [wait_for_async_insert](/reference/settings/session-settings#wait_for_async_insert) -- [wait_for_async_insert_timeout](/reference/settings/session-settings#wait_for_async_insert_timeout) -- [async_insert_max_data_size](/reference/settings/session-settings#async_insert_max_data_size) -- [async_insert_busy_timeout_ms](/reference/settings/session-settings#async_insert_busy_timeout_max_ms) -- [async_insert_stale_timeout_ms](/reference/settings/session-settings#async_insert_max_data_size) +- [async_insert](/core/reference/settings/session-settings#async_insert) +- [wait_for_async_insert](/core/reference/settings/session-settings#wait_for_async_insert) +- [wait_for_async_insert_timeout](/core/reference/settings/session-settings#wait_for_async_insert_timeout) +- [async_insert_max_data_size](/core/reference/settings/session-settings#async_insert_max_data_size) +- [async_insert_busy_timeout_ms](/core/reference/settings/session-settings#async_insert_busy_timeout_max_ms) +- [async_insert_stale_timeout_ms](/core/reference/settings/session-settings#async_insert_max_data_size) diff --git a/reference/statements/kill.mdx b/core/reference/statements/kill.mdx similarity index 87% rename from reference/statements/kill.mdx rename to core/reference/statements/kill.mdx index 59b9a238..2beaf34b 100644 --- a/reference/statements/kill.mdx +++ b/core/reference/statements/kill.mdx @@ -90,7 +90,7 @@ KILL MUTATION [FORMAT format] ``` -Tries to cancel and remove [mutations](/reference/statements/alter#mutations) that are currently executing. Mutations to cancel are selected from the [`system.mutations`](/reference/system-tables/mutations) table using the filter specified by the `WHERE` clause of the `KILL` query. +Tries to cancel and remove [mutations](/core/reference/statements/alter#mutations) that are currently executing. Mutations to cancel are selected from the [`system.mutations`](/core/reference/system-tables/mutations) table using the filter specified by the `WHERE` clause of the `KILL` query. A test query (`TEST`) only checks the user's rights and displays a list of mutations to stop. @@ -142,5 +142,5 @@ The query is useful when a mutation is stuck and cannot finish (e.g. if some fu Changes already made by the mutation are not rolled back. -`is_killed=1` column (ClickHouse Cloud only) in the [system.mutations](/reference/system-tables/mutations) table does not necessarily mean the mutation is completely finalized. It is possible for a mutation to remain in a state where `is_killed=1` and `is_done=0` for an extended period. This can happen if another long-running mutation is blocking the killed mutation. This is a normal situation. +`is_killed=1` column (ClickHouse Cloud only) in the [system.mutations](/core/reference/system-tables/mutations) table does not necessarily mean the mutation is completely finalized. It is possible for a mutation to remain in a state where `is_killed=1` and `is_done=0` for an extended period. This can happen if another long-running mutation is blocking the killed mutation. This is a normal situation. diff --git a/reference/statements/move.mdx b/core/reference/statements/move.mdx similarity index 100% rename from reference/statements/move.mdx rename to core/reference/statements/move.mdx diff --git a/reference/statements/optimize.mdx b/core/reference/statements/optimize.mdx similarity index 82% rename from reference/statements/optimize.mdx rename to core/reference/statements/optimize.mdx index ab3a7972..e57cada0 100644 --- a/reference/statements/optimize.mdx +++ b/core/reference/statements/optimize.mdx @@ -6,7 +6,7 @@ title: 'OPTIMIZE Statement' doc_type: 'reference' --- -This query tries to initialize an unscheduled merge of data parts for tables. Note that we generally recommend against using `OPTIMIZE TABLE ... FINAL` (see these [docs](/concepts/best-practices/avoid-optimize-final)) as its use case is meant for administration, not for daily operations. +This query tries to initialize an unscheduled merge of data parts for tables. Note that we generally recommend against using `OPTIMIZE TABLE ... FINAL` (see these [docs](/core/concepts/best-practices/avoid-optimize-final)) as its use case is meant for administration, not for daily operations. `OPTIMIZE` can't fix the `Too many parts` error. @@ -22,16 +22,16 @@ OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION I OPTIMIZE TABLE [db.]name DRY RUN PARTS 'part_name1', 'part_name2' [, ...] [DEDUPLICATE [BY expression]] [CLEANUP] ``` -The `OPTIMIZE` query is supported for [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) family (including [materialized views](/reference/statements/create/view#materialized-view)) and the [Buffer](/reference/engines/table-engines/special/buffer) engines. Other table engines aren't supported. +The `OPTIMIZE` query is supported for [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) family (including [materialized views](/core/reference/statements/create/view#materialized-view)) and the [Buffer](/core/reference/engines/table-engines/special/buffer) engines. Other table engines aren't supported. -When `OPTIMIZE` is used with the [ReplicatedMergeTree](/reference/engines/table-engines/mergetree-family/replication) family of table engines, ClickHouse creates a task for merging and waits for execution on all replicas (if the [alter_sync](/reference/settings/session-settings#alter_sync) setting is set to `2`) or on current replica (if the [alter_sync](/reference/settings/session-settings#alter_sync) setting is set to `1`). +When `OPTIMIZE` is used with the [ReplicatedMergeTree](/core/reference/engines/table-engines/mergetree-family/replication) family of table engines, ClickHouse creates a task for merging and waits for execution on all replicas (if the [alter_sync](/core/reference/settings/session-settings#alter_sync) setting is set to `2`) or on current replica (if the [alter_sync](/core/reference/settings/session-settings#alter_sync) setting is set to `1`). -- If `OPTIMIZE` does not perform a merge for any reason, it does not notify the client. To enable notifications, use the [optimize_throw_if_noop](/reference/settings/session-settings#optimize_throw_if_noop) setting. -- If you specify a `PARTITION`, only the specified partition is optimized. [How to set partition expression](/reference/statements/alter/partition#how-to-set-partition-expression). -- If you specify `FINAL` or `FORCE`, optimization is performed even when all the data is already in one part. You can control this behaviour with [optimize_skip_merged_partitions](/reference/settings/session-settings#optimize_skip_merged_partitions). Also, the merge is forced even if concurrent merges are performed. +- If `OPTIMIZE` does not perform a merge for any reason, it does not notify the client. To enable notifications, use the [optimize_throw_if_noop](/core/reference/settings/session-settings#optimize_throw_if_noop) setting. +- If you specify a `PARTITION`, only the specified partition is optimized. [How to set partition expression](/core/reference/statements/alter/partition#how-to-set-partition-expression). +- If you specify `FINAL` or `FORCE`, optimization is performed even when all the data is already in one part. You can control this behaviour with [optimize_skip_merged_partitions](/core/reference/settings/session-settings#optimize_skip_merged_partitions). Also, the merge is forced even if concurrent merges are performed. - If you specify `DEDUPLICATE`, then completely identical rows (unless by-clause is specified) will be deduplicated (all columns are compared), it makes sense only for the MergeTree engine. -You can specify how long (in seconds) to wait for inactive replicas to execute `OPTIMIZE` queries by the [replication_wait_for_inactive_replica_timeout](/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout) setting. +You can specify how long (in seconds) to wait for inactive replicas to execute `OPTIMIZE` queries by the [replication_wait_for_inactive_replica_timeout](/core/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout) setting. If the `alter_sync` is set to `2` and some replicas are not active for more than the time, specified by the `replication_wait_for_inactive_replica_timeout` setting, then an exception `UNFINISHED` is thrown. @@ -46,7 +46,7 @@ This is useful for: - Reproducing merge-related bugs deterministically. - Benchmarking merge performance. -`DRY RUN` is only supported for [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) family tables. The `PARTS` keyword with a list of part names is required. All specified parts must exist, be active, and belong to the same partition. +`DRY RUN` is only supported for [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) family tables. The `PARTS` keyword with a list of part names is required. All specified parts must exist, be active, and belong to the same partition. `DRY RUN` is incompatible with `FINAL` and `PARTITION`. It can be combined with `DEDUPLICATE` (with optional column specification) and `CLEANUP` (for `ReplacingMergeTree` tables). @@ -56,7 +56,7 @@ This is useful for: OPTIMIZE TABLE [db.]name DRY RUN PARTS 'part_name1', 'part_name2' [, ...] [DEDUPLICATE [BY expression]] [CLEANUP] ``` -By default, the resulting merged part is validated in a way similar to [`CHECK TABLE`](/reference/statements/check-table) query. This behavior is controlled by the [optimize_dry_run_check_part](/reference/settings/session-settings#optimize_dry_run_check_part) setting (enabled by default). Disabling it skips validation, which can be useful for benchmarking the merge itself. +By default, the resulting merged part is validated in a way similar to [`CHECK TABLE`](/core/reference/statements/check-table) query. This behavior is controlled by the [optimize_dry_run_check_part](/core/reference/settings/session-settings#optimize_dry_run_check_part) setting (enabled by default). Disabling it skips validation, which can be useful for benchmarking the merge itself. **Example** @@ -87,10 +87,10 @@ ORDER BY name; ## BY expression {#by-expression} -If you want to perform deduplication on custom set of columns rather than on all, you can specify list of columns explicitly or use any combination of [`*`](/reference/statements/select#asterisk), [`COLUMNS`](/reference/statements/select#select-clause) or [`EXCEPT`](/reference/statements/select/except_modifier) expressions. The explicitly written or implicitly expanded list of columns must include all columns specified in row ordering expression (both primary and sorting keys) and partitioning expression (partitioning key). +If you want to perform deduplication on custom set of columns rather than on all, you can specify list of columns explicitly or use any combination of [`*`](/core/reference/statements/select#asterisk), [`COLUMNS`](/core/reference/statements/select#select-clause) or [`EXCEPT`](/core/reference/statements/select/except_modifier) expressions. The explicitly written or implicitly expanded list of columns must include all columns specified in row ordering expression (both primary and sorting keys) and partitioning expression (partitioning key). -Notice that `*` behaves just like in `SELECT`: [MATERIALIZED](/reference/statements/create/view#materialized-view) and [ALIAS](/reference/statements/create/table#alias) columns are not used for expansion. +Notice that `*` behaves just like in `SELECT`: [MATERIALIZED](/core/reference/statements/create/view#materialized-view) and [ALIAS](/core/reference/statements/create/table#alias) columns are not used for expansion. Also, it is an error to specify empty list of columns, or write an expression that results in an empty list of columns, or deduplicate by an `ALIAS` column. diff --git a/reference/statements/parallel_with.mdx b/core/reference/statements/parallel_with.mdx similarity index 82% rename from reference/statements/parallel_with.mdx rename to core/reference/statements/parallel_with.mdx index b51c93b5..b6945d5e 100644 --- a/reference/statements/parallel_with.mdx +++ b/core/reference/statements/parallel_with.mdx @@ -38,11 +38,11 @@ DROP TABLE table2; ## Settings {#settings} -Setting [max_threads](/reference/settings/session-settings#max_threads) controls how many threads are spawned. +Setting [max_threads](/core/reference/settings/session-settings#max_threads) controls how many threads are spawned. ## Comparison with UNION {#comparison-with-union} -The `PARALLEL WITH` clause is a bit similar to [UNION](/reference/statements/select/union), which also executes its operands in parallel. However there are some differences: +The `PARALLEL WITH` clause is a bit similar to [UNION](/core/reference/statements/select/union), which also executes its operands in parallel. However there are some differences: - `PARALLEL WITH` doesn't return any results from executing its operands, it can only rethrow an exception from them if any; - `PARALLEL WITH` doesn't require its operands to have the same set of result columns; - `PARALLEL WITH` can execute any statements (not just `SELECT`). diff --git a/reference/statements/rename.mdx b/core/reference/statements/rename.mdx similarity index 93% rename from reference/statements/rename.mdx rename to core/reference/statements/rename.mdx index c6aa71b2..601dc1e9 100644 --- a/reference/statements/rename.mdx +++ b/core/reference/statements/rename.mdx @@ -7,7 +7,7 @@ doc_type: 'reference' --- Renames databases, tables, or dictionaries. Several entities can be renamed in a single query. -Note that the `RENAME` query with several entities is non-atomic operation. To swap entities names atomically, use the [EXCHANGE](/reference/statements/exchange) statement. +Note that the `RENAME` query with several entities is non-atomic operation. To swap entities names atomically, use the [EXCHANGE](/core/reference/statements/exchange) statement. **Syntax** @@ -61,4 +61,4 @@ RENAME DICTIONARY [db0.]dict_A TO [db1.]dict_B [,...] [ON CLUSTER cluster] **See Also** -- [Dictionaries](/reference/statements/create/dictionary) +- [Dictionaries](/core/reference/statements/create/dictionary) diff --git a/reference/statements/revoke.mdx b/core/reference/statements/revoke.mdx similarity index 96% rename from reference/statements/revoke.mdx rename to core/reference/statements/revoke.mdx index d868e7a5..0a3ddc7b 100644 --- a/reference/statements/revoke.mdx +++ b/core/reference/statements/revoke.mdx @@ -46,4 +46,4 @@ GRANT SELECT ON accounts.staff TO mira; REVOKE SELECT(wage) ON accounts.staff FROM mira; ``` -[Original article](/reference/settings/session-settings) +[Original article](/core/reference/settings/session-settings) diff --git a/reference/statements/select/all.mdx b/core/reference/statements/select/all.mdx similarity index 100% rename from reference/statements/select/all.mdx rename to core/reference/statements/select/all.mdx diff --git a/reference/statements/select/apply_modifier.mdx b/core/reference/statements/select/apply_modifier.mdx similarity index 100% rename from reference/statements/select/apply_modifier.mdx rename to core/reference/statements/select/apply_modifier.mdx diff --git a/reference/statements/select/array-join.mdx b/core/reference/statements/select/array-join.mdx similarity index 91% rename from reference/statements/select/array-join.mdx rename to core/reference/statements/select/array-join.mdx index e0b083a9..c53cd830 100644 --- a/reference/statements/select/array-join.mdx +++ b/core/reference/statements/select/array-join.mdx @@ -8,7 +8,7 @@ doc_type: 'reference' It is a common operation for tables that contain an array column to produce a new table that has a row with each individual array element of that initial column, while values of other columns are duplicated. This is the basic case of what `ARRAY JOIN` clause does. -Its name comes from the fact that it can be looked at as executing `JOIN` with an array or nested data structure. The intent is similar to the [arrayJoin](/reference/functions/regular-functions/array-join) function, but the clause functionality is broader. +Its name comes from the fact that it can be looked at as executing `JOIN` with an array or nested data structure. The intent is similar to the [arrayJoin](/core/reference/functions/regular-functions/array-join) function, but the clause functionality is broader. Syntax: @@ -29,7 +29,7 @@ Supported types of `ARRAY JOIN` are listed below: ### ARRAY JOIN and LEFT ARRAY JOIN {#array-join-left-array-join-examples} -The examples below demonstrate the usage of the `ARRAY JOIN` and `LEFT ARRAY JOIN` clauses. Let's create a table with an [Array](/reference/data-types/array) type column and insert values into it: +The examples below demonstrate the usage of the `ARRAY JOIN` and `LEFT ARRAY JOIN` clauses. Let's create a table with an [Array](/core/reference/data-types/array) type column and insert values into it: ```sql CREATE TABLE arrays_test @@ -221,7 +221,7 @@ ARRAY JOIN arr AS a, arrayEnumerate(arr) AS num, arrayMap(x -> x + 1, arr) AS ma └───────┴─────────┴───┴─────┴────────┘ ``` -The example below uses the [arrayEnumerate](/reference/functions/regular-functions/array-functions#arrayEnumerate) function: +The example below uses the [arrayEnumerate](/core/reference/functions/regular-functions/array-functions#arrayEnumerate) function: ```sql SELECT s, arr, a, num, arrayEnumerate(arr) @@ -261,7 +261,7 @@ SETTINGS enable_unaligned_array_join = 1; ## ARRAY JOIN with Nested Data Structure {#array-join-with-nested-data-structure} -`ARRAY JOIN` also works with [nested data structures](/reference/data-types/nested-data-structures): +`ARRAY JOIN` also works with [nested data structures](/core/reference/data-types/nested-data-structures): ```sql CREATE TABLE nested_test @@ -354,7 +354,7 @@ ARRAY JOIN nest AS n; └───────┴─────┴─────┴─────────┴────────────┘ ``` -Example of using the [arrayEnumerate](/reference/functions/regular-functions/array-functions#arrayEnumerate) function: +Example of using the [arrayEnumerate](/core/reference/functions/regular-functions/array-functions#arrayEnumerate) function: ```sql SELECT s, `n.x`, `n.y`, `nest.x`, `nest.y`, num @@ -374,11 +374,11 @@ ARRAY JOIN nest AS n, arrayEnumerate(`nest.x`) AS num; ## Implementation Details {#implementation-details} -The query execution order is optimized when running `ARRAY JOIN`. Although `ARRAY JOIN` must always be specified before the [WHERE](/reference/statements/select/where)/[PREWHERE](/reference/statements/select/prewhere) clause in a query, technically they can be performed in any order, unless result of `ARRAY JOIN` is used for filtering. The processing order is controlled by the query optimizer. +The query execution order is optimized when running `ARRAY JOIN`. Although `ARRAY JOIN` must always be specified before the [WHERE](/core/reference/statements/select/where)/[PREWHERE](/core/reference/statements/select/prewhere) clause in a query, technically they can be performed in any order, unless result of `ARRAY JOIN` is used for filtering. The processing order is controlled by the query optimizer. ### Incompatibility with short-circuit function evaluation {#incompatibility-with-short-circuit-function-evaluation} -[Short-circuit function evaluation](/reference/settings/session-settings#short_circuit_function_evaluation) is a feature that optimizes the execution of complex expressions in specific functions such as `if`, `multiIf`, `and`, and `or`. It prevents potential exceptions, such as division by zero, from occurring during the execution of these functions. +[Short-circuit function evaluation](/core/reference/settings/session-settings#short_circuit_function_evaluation) is a feature that optimizes the execution of complex expressions in specific functions such as `if`, `multiIf`, `and`, and `or`. It prevents potential exceptions, such as division by zero, from occurring during the execution of these functions. `arrayJoin` is always executed and not supported for short circuit function evaluation. That's because it's a unique function processed separately from all other functions during query analysis and execution and requires additional logic that doesn't work with short circuit function execution. The reason is that the number of rows in the result depends on the arrayJoin result, and it's too complex and expensive to implement lazy execution of `arrayJoin`. diff --git a/reference/statements/select/distinct.mdx b/core/reference/statements/select/distinct.mdx similarity index 77% rename from reference/statements/select/distinct.mdx rename to core/reference/statements/select/distinct.mdx index e07c06d4..f9e1941b 100644 --- a/reference/statements/select/distinct.mdx +++ b/core/reference/statements/select/distinct.mdx @@ -100,12 +100,12 @@ Take this implementation specificity into account when programming queries. ## Null Processing {#null-processing} -`DISTINCT` works with [NULL](/reference/syntax#null) as if `NULL` were a specific value, and `NULL==NULL`. In other words, in the `DISTINCT` results, different combinations with `NULL` occur only once. It differs from `NULL` processing in most other contexts. +`DISTINCT` works with [NULL](/core/reference/syntax#null) as if `NULL` were a specific value, and `NULL==NULL`. In other words, in the `DISTINCT` results, different combinations with `NULL` occur only once. It differs from `NULL` processing in most other contexts. ## Alternatives {#alternatives} -It is possible to obtain the same result by applying [GROUP BY](/reference/statements/select/group-by) across the same set of values as specified as `SELECT` clause, without using any aggregate functions. But there are few differences from `GROUP BY` approach: +It is possible to obtain the same result by applying [GROUP BY](/core/reference/statements/select/group-by) across the same set of values as specified as `SELECT` clause, without using any aggregate functions. But there are few differences from `GROUP BY` approach: - `DISTINCT` can be applied together with `GROUP BY`. -- When [ORDER BY](/reference/statements/select/order-by) is omitted and [LIMIT](/reference/statements/select/limit) is defined, the query stops running immediately after the required number of different rows has been read. +- When [ORDER BY](/core/reference/statements/select/order-by) is omitted and [LIMIT](/core/reference/statements/select/limit) is defined, the query stops running immediately after the required number of different rows has been read. - Data blocks are output as they are processed, without waiting for the entire query to finish running. diff --git a/reference/statements/select/except.mdx b/core/reference/statements/select/except.mdx similarity index 98% rename from reference/statements/select/except.mdx rename to core/reference/statements/select/except.mdx index 700c5f99..61165838 100644 --- a/reference/statements/select/except.mdx +++ b/core/reference/statements/select/except.mdx @@ -202,5 +202,5 @@ WHERE price < 10; **See Also** -- [UNION](/reference/statements/select/union) -- [INTERSECT](/reference/statements/select/intersect) +- [UNION](/core/reference/statements/select/union) +- [INTERSECT](/core/reference/statements/select/intersect) diff --git a/reference/statements/select/except_modifier.mdx b/core/reference/statements/select/except_modifier.mdx similarity index 100% rename from reference/statements/select/except_modifier.mdx rename to core/reference/statements/select/except_modifier.mdx diff --git a/reference/statements/select/format.mdx b/core/reference/statements/select/format.mdx similarity index 51% rename from reference/statements/select/format.mdx rename to core/reference/statements/select/format.mdx index dc93e863..0795504c 100644 --- a/reference/statements/select/format.mdx +++ b/core/reference/statements/select/format.mdx @@ -6,13 +6,13 @@ title: 'FORMAT Clause' doc_type: 'reference' --- -ClickHouse supports a wide range of [serialization formats](/reference/formats) that can be used on query results among other things. There are multiple ways to choose a format for `SELECT` output, one of them is to specify `FORMAT format` at the end of query to get resulting data in any specific format. +ClickHouse supports a wide range of [serialization formats](/core/reference/formats) that can be used on query results among other things. There are multiple ways to choose a format for `SELECT` output, one of them is to specify `FORMAT format` at the end of query to get resulting data in any specific format. Specific format might be used either for convenience, integration with other systems or performance gain. ## Default Format {#default-format} -If the `FORMAT` clause is omitted, the default format is used, which depends on both the settings and the interface used for accessing the ClickHouse server. For the [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http) and the [command-line client](/integrations/connectors/data-integrations/drivers-and-interfaces/client) in batch mode, the default format is `TabSeparated`. For the command-line client in interactive mode, the default format is `PrettyCompact` (it produces compact human-readable tables). +If the `FORMAT` clause is omitted, the default format is used, which depends on both the settings and the interface used for accessing the ClickHouse server. For the [HTTP interface](/core/concepts/features/interfaces/http) and the [command-line client](/core/concepts/features/interfaces/client) in batch mode, the default format is `TabSeparated`. For the command-line client in interactive mode, the default format is `PrettyCompact` (it produces compact human-readable tables). ## Implementation Details {#implementation-details} diff --git a/reference/statements/select/from.mdx b/core/reference/statements/select/from.mdx similarity index 79% rename from reference/statements/select/from.mdx rename to core/reference/statements/select/from.mdx index f3a54e51..6a3dea05 100644 --- a/reference/statements/select/from.mdx +++ b/core/reference/statements/select/from.mdx @@ -8,11 +8,11 @@ doc_type: 'reference' The `FROM` clause specifies the source to read data from: -- [Table](/reference/engines/table-engines) -- [Subquery](/reference/statements/select) -- [Table function](/reference/functions/table-functions) +- [Table](/core/reference/engines/table-engines) +- [Subquery](/core/reference/statements/select) +- [Table function](/core/reference/functions/table-functions) -[JOIN](/reference/statements/select/join) and [ARRAY JOIN](/reference/statements/select/array-join) clauses may also be used to extend the functionality of the `FROM` clause. +[JOIN](/core/reference/statements/select/join) and [ARRAY JOIN](/core/reference/statements/select/array-join) clauses may also be used to extend the functionality of the `FROM` clause. Subquery is another `SELECT` query that may be specified in parenthesis inside `FROM` clause. @@ -22,9 +22,9 @@ A SQL standard `VALUES` clause can also be used as a table expression: SELECT * FROM (VALUES (1, 'a'), (2, 'b'), (3, 'c')) AS t(id, val); ``` -See [Values table function](/reference/functions/table-functions/values#sql-standard-values-clause) for more details. +See [Values table function](/core/reference/functions/table-functions/values#sql-standard-values-clause) for more details. -The `FROM` can contain multiple data sources, separated by commas, which is equivalent of performing [CROSS JOIN](/reference/statements/select/join) on them. +The `FROM` can contain multiple data sources, separated by commas, which is equivalent of performing [CROSS JOIN](/core/reference/statements/select/join) on them. `FROM` can optionally appear before a `SELECT` clause. This is a ClickHouse-specific extension of standard SQL which makes `SELECT` statements easier to read. Example: @@ -44,7 +44,7 @@ It is applicable when selecting data from tables using the following table engin - `CollapsingMergeTree` - `VersionedCollapsingMergeTree` -`SELECT` queries with `FINAL` are executed in parallel. The [max_final_threads](/reference/settings/session-settings#max_final_threads) setting limits the number of threads used. +`SELECT` queries with `FINAL` are executed in parallel. The [max_final_threads](/core/reference/settings/session-settings#max_final_threads) setting limits the number of threads used. ### Drawbacks {#drawbacks} @@ -57,7 +57,7 @@ Queries that use `FINAL` execute slightly slower than similar queries that do no As an alternative to using `FINAL`, it is sometimes possible to use different queries that assume the background processes of the `MergeTree` engine have not yet occurred and deal with it by applying an aggregation (for example, to discard duplicates). If you need to use `FINAL` in your queries in order to get the required results, it is okay to do so but be aware of the additional processing required. -`FINAL` can be applied automatically using [FINAL](/reference/settings/session-settings#final) setting to all tables in a query using a session or a user profile. +`FINAL` can be applied automatically using [FINAL](/core/reference/settings/session-settings#final) setting to all tables in a query using a session or a user profile. ### Example Usage {#example-usage} diff --git a/reference/statements/select/group-by.mdx b/core/reference/statements/select/group-by.mdx similarity index 83% rename from reference/statements/select/group-by.mdx rename to core/reference/statements/select/group-by.mdx index 82b71a48..b82b27ad 100644 --- a/reference/statements/select/group-by.mdx +++ b/core/reference/statements/select/group-by.mdx @@ -9,10 +9,10 @@ doc_type: 'reference' `GROUP BY` clause switches the `SELECT` query into an aggregation mode, which works as follows: - `GROUP BY` clause contains a list of expressions (or a single expression, which is considered to be the list of length one). This list acts as a "grouping key", while each individual expression will be referred to as a "key expression". -- All the expressions in the [SELECT](/reference/statements/select), [HAVING](/reference/statements/select/having), and [ORDER BY](/reference/statements/select/order-by) clauses **must** be calculated based on key expressions **or** on [aggregate functions](/reference/functions/aggregate-functions) over non-key expressions (including plain columns). In other words, each column selected from the table must be used either in a key expression or inside an aggregate function, but not both. +- All the expressions in the [SELECT](/core/reference/statements/select), [HAVING](/core/reference/statements/select/having), and [ORDER BY](/core/reference/statements/select/order-by) clauses **must** be calculated based on key expressions **or** on [aggregate functions](/core/reference/functions/aggregate-functions) over non-key expressions (including plain columns). In other words, each column selected from the table must be used either in a key expression or inside an aggregate function, but not both. - Result of aggregating `SELECT` query will contain as many rows as there were unique values of "grouping key" in source table. Usually, this significantly reduces the row count, often by orders of magnitude, but not necessarily: row count stays the same if all "grouping key" values were distinct. -When you want to group data in the table by column numbers instead of column names, enable the setting [enable_positional_arguments](/reference/settings/session-settings#enable_positional_arguments). +When you want to group data in the table by column numbers instead of column names, enable the setting [enable_positional_arguments](/core/reference/settings/session-settings#enable_positional_arguments). There's an additional way to run aggregation over a table. If a query contains table columns only inside aggregate functions, the `GROUP BY clause` can be omitted, and aggregation by an empty set of keys is assumed. Such queries always return exactly one row. @@ -20,7 +20,7 @@ There's an additional way to run aggregation over a table. If a query contains t ## NULL Processing {#null-processing} -For grouping, ClickHouse interprets [NULL](/reference/syntax#null) as a value, and `NULL==NULL`. It differs from `NULL` processing in most other contexts. +For grouping, ClickHouse interprets [NULL](/core/reference/syntax#null) as a value, and `NULL==NULL`. It differs from `NULL` processing in most other contexts. Here's an example to show what this means. @@ -59,7 +59,7 @@ The subtotals are calculated in the reverse order: at first subtotals are calcul In the subtotals rows the values of already "grouped" key expressions are set to `0` or empty line. -Mind that [HAVING](/reference/statements/select/having) clause can affect the subtotals results. +Mind that [HAVING](/core/reference/statements/select/having) clause can affect the subtotals results. **Example** @@ -116,7 +116,7 @@ SELECT year, month, day, count(*) FROM t GROUP BY year, month, day WITH ROLLUP; **See also** -- [group_by_use_nulls](/reference/settings/session-settings#group_by_use_nulls) setting for SQL standard compatibility. +- [group_by_use_nulls](/core/reference/settings/session-settings#group_by_use_nulls) setting for SQL standard compatibility. ## CUBE Modifier {#cube-modifier} @@ -125,7 +125,7 @@ SELECT year, month, day, count(*) FROM t GROUP BY year, month, day WITH ROLLUP; In the subtotals rows the values of all "grouped" key expressions are set to `0` or empty line. -Mind that [HAVING](/reference/statements/select/having) clause can affect the subtotals results. +Mind that [HAVING](/core/reference/statements/select/having) clause can affect the subtotals results. **Example** @@ -209,7 +209,7 @@ SELECT year, month, day, count(*) FROM t GROUP BY year, month, day WITH CUBE; **See also** -- [group_by_use_nulls](/reference/settings/session-settings#group_by_use_nulls) setting for SQL standard compatibility. +- [group_by_use_nulls](/core/reference/settings/session-settings#group_by_use_nulls) setting for SQL standard compatibility. ## WITH TOTALS Modifier {#with-totals-modifier} @@ -227,7 +227,7 @@ This extra row is only produced in `JSON*`, `TabSeparated*`, and `Pretty*` forma totals is output in the results of `SELECT` queries, and is not output in `INSERT INTO ... SELECT`. -`WITH TOTALS` can be run in different ways when [HAVING](/reference/statements/select/having) is present. The behavior depends on the `totals_mode` setting. +`WITH TOTALS` can be run in different ways when [HAVING](/core/reference/statements/select/having) is present. The behavior depends on the `totals_mode` setting. ### Configuring Totals Processing {#configuring-totals-processing} @@ -245,7 +245,7 @@ The other alternatives include only the rows that pass through HAVING in 'totals If `max_rows_to_group_by` and `group_by_overflow_mode = 'any'` are not used, all variations of `after_having` are the same, and you can use any of them (for example, `after_having_auto`). -You can use `WITH TOTALS` in subqueries, including subqueries in the [JOIN](/reference/statements/select/join) clause (in this case, the respective total values are combined). +You can use `WITH TOTALS` in subqueries, including subqueries in the [JOIN](/core/reference/statements/select/join) clause (in this case, the respective total values are combined). ## GROUP BY ALL {#group-by-all} @@ -357,7 +357,7 @@ GROUPING SETS **See also** -- [group_by_use_nulls](/reference/settings/session-settings#group_by_use_nulls) setting for SQL standard compatibility. +- [group_by_use_nulls](/core/reference/settings/session-settings#group_by_use_nulls) setting for SQL standard compatibility. ## Implementation Details {#implementation-details} @@ -365,17 +365,17 @@ Aggregation is one of the most important features of a column-oriented DBMS, and ### GROUP BY Optimization Depending on Table Sorting Key {#group-by-optimization-depending-on-table-sorting-key} -The aggregation can be performed more effectively, if a table is sorted by some key, and `GROUP BY` expression contains at least prefix of sorting key or injective functions. In this case when a new key is read from table, the in-between result of aggregation can be finalized and sent to client. This behaviour is switched on by the [optimize_aggregation_in_order](/reference/settings/session-settings#optimize_aggregation_in_order) setting. Such optimization reduces memory usage during aggregation, but in some cases may slow down the query execution. +The aggregation can be performed more effectively, if a table is sorted by some key, and `GROUP BY` expression contains at least prefix of sorting key or injective functions. In this case when a new key is read from table, the in-between result of aggregation can be finalized and sent to client. This behaviour is switched on by the [optimize_aggregation_in_order](/core/reference/settings/session-settings#optimize_aggregation_in_order) setting. Such optimization reduces memory usage during aggregation, but in some cases may slow down the query execution. ### GROUP BY in External Memory {#group-by-in-external-memory} You can enable dumping temporary data to the disk to restrict memory usage during `GROUP BY`. -The [max_bytes_before_external_group_by](/reference/settings/session-settings#max_bytes_before_external_group_by) setting determines the threshold RAM consumption for dumping `GROUP BY` temporary data to the file system. If set to 0 (the default), it is disabled. -Alternatively, you can set [max_bytes_ratio_before_external_group_by](/reference/settings/session-settings#max_bytes_ratio_before_external_group_by), which allows to use `GROUP BY` in external memory only once the query reaches certain threshold of used memory. +The [max_bytes_before_external_group_by](/core/reference/settings/session-settings#max_bytes_before_external_group_by) setting determines the threshold RAM consumption for dumping `GROUP BY` temporary data to the file system. If set to 0 (the default), it is disabled. +Alternatively, you can set [max_bytes_ratio_before_external_group_by](/core/reference/settings/session-settings#max_bytes_ratio_before_external_group_by), which allows to use `GROUP BY` in external memory only once the query reaches certain threshold of used memory. When using `max_bytes_before_external_group_by`, we recommend that you set `max_memory_usage` about twice as high (or `max_bytes_ratio_before_external_group_by=0.5`). This is necessary because there are two stages to aggregation: reading the data and forming intermediate data (1) and merging the intermediate data (2). Dumping data to the file system can only occur during stage 1. If the temporary data wasn't dumped, then stage 2 might require up to the same amount of memory as in stage 1. -For example, if [max_memory_usage](/reference/settings/session-settings#max_memory_usage) was set to 10000000000 and you want to use external aggregation, it makes sense to set `max_bytes_before_external_group_by` to 10000000000, and `max_memory_usage` to 20000000000. When external aggregation is triggered (if there was at least one dump of temporary data), maximum consumption of RAM is only slightly more than `max_bytes_before_external_group_by`. +For example, if [max_memory_usage](/core/reference/settings/session-settings#max_memory_usage) was set to 10000000000 and you want to use external aggregation, it makes sense to set `max_bytes_before_external_group_by` to 10000000000, and `max_memory_usage` to 20000000000. When external aggregation is triggered (if there was at least one dump of temporary data), maximum consumption of RAM is only slightly more than `max_bytes_before_external_group_by`. With distributed query processing, external aggregation is performed on remote servers. In order for the requester server to use only a small amount of RAM, set `distributed_aggregation_memory_efficient` to 1. @@ -383,4 +383,4 @@ When merging data flushed to the disk, as well as when merging results from remo When external aggregation is enabled, if there was less than `max_bytes_before_external_group_by` of data (i.e. data was not flushed), the query runs just as fast as without external aggregation. If any temporary data was flushed, the run time will be several times longer (approximately three times). -If you have an [ORDER BY](/reference/statements/select/order-by) with a [LIMIT](/reference/statements/select/limit) after `GROUP BY`, then the amount of used RAM depends on the amount of data in `LIMIT`, not in the whole table. But if the `ORDER BY` does not have `LIMIT`, do not forget to enable external sorting (`max_bytes_before_external_sort`). +If you have an [ORDER BY](/core/reference/statements/select/order-by) with a [LIMIT](/core/reference/statements/select/limit) after `GROUP BY`, then the amount of used RAM depends on the amount of data in `LIMIT`, not in the whole table. But if the `ORDER BY` does not have `LIMIT`, do not forget to enable external sorting (`max_bytes_before_external_sort`). diff --git a/reference/statements/select/having.mdx b/core/reference/statements/select/having.mdx similarity index 82% rename from reference/statements/select/having.mdx rename to core/reference/statements/select/having.mdx index 98b26b1b..881962b4 100644 --- a/reference/statements/select/having.mdx +++ b/core/reference/statements/select/having.mdx @@ -6,7 +6,7 @@ title: 'HAVING Clause' doc_type: 'reference' --- -Allows filtering the aggregation results produced by [GROUP BY](/reference/statements/select/group-by). It is similar to the [WHERE](/reference/statements/select/where) clause, but the difference is that `WHERE` is performed before aggregation, while `HAVING` is performed after it. +Allows filtering the aggregation results produced by [GROUP BY](/core/reference/statements/select/group-by). It is similar to the [WHERE](/core/reference/statements/select/where) clause, but the difference is that `WHERE` is performed before aggregation, while `HAVING` is performed after it. It is possible to reference aggregation results from `SELECT` clause in `HAVING` clause by their alias. Alternatively, `HAVING` clause can filter on results of additional aggregates that are not returned in query results. diff --git a/reference/statements/select/index.mdx b/core/reference/statements/select/index.mdx similarity index 75% rename from reference/statements/select/index.mdx rename to core/reference/statements/select/index.mdx index bc346a2e..2751ea15 100644 --- a/reference/statements/select/index.mdx +++ b/core/reference/statements/select/index.mdx @@ -6,7 +6,7 @@ title: 'SELECT Query' doc_type: 'reference' --- -`SELECT` queries perform data retrieval. By default, the requested data is returned to the client, while in conjunction with [INSERT INTO](/reference/statements/insert-into) it can be forwarded to a different table. +`SELECT` queries perform data retrieval. By default, the requested data is returned to the client, while in conjunction with [INSERT INTO](/core/reference/statements/insert-into) it can be forwarded to a different table. ## Syntax {#syntax} @@ -36,30 +36,30 @@ All clauses are optional, except for the required list of expressions immediatel Specifics of each optional clause are covered in separate sections, which are listed in the same order as they are executed: -- [WITH clause](/reference/statements/select/with) +- [WITH clause](/core/reference/statements/select/with) - [SELECT clause](#select-clause) -- [DISTINCT clause](/reference/statements/select/distinct) -- [FROM clause](/reference/statements/select/from) -- [SAMPLE clause](/reference/statements/select/sample) -- [JOIN clause](/reference/statements/select/join) -- [PREWHERE clause](/reference/statements/select/prewhere) -- [WHERE clause](/reference/statements/select/where) -- [WINDOW clause](/reference/functions/window-functions) -- [GROUP BY clause](/reference/statements/select/group-by) -- [LIMIT BY clause](/reference/statements/select/limit-by) -- [HAVING clause](/reference/statements/select/having) -- [QUALIFY clause](/reference/statements/select/qualify) -- [LIMIT clause](/reference/statements/select/limit) -- [OFFSET clause](/reference/statements/select/offset) -- [UNION clause](/reference/statements/select/union) -- [INTERSECT clause](/reference/statements/select/intersect) -- [EXCEPT clause](/reference/statements/select/except) -- [INTO OUTFILE clause](/reference/statements/select/into-outfile) -- [FORMAT clause](/reference/statements/select/format) +- [DISTINCT clause](/core/reference/statements/select/distinct) +- [FROM clause](/core/reference/statements/select/from) +- [SAMPLE clause](/core/reference/statements/select/sample) +- [JOIN clause](/core/reference/statements/select/join) +- [PREWHERE clause](/core/reference/statements/select/prewhere) +- [WHERE clause](/core/reference/statements/select/where) +- [WINDOW clause](/core/reference/functions/window-functions) +- [GROUP BY clause](/core/reference/statements/select/group-by) +- [LIMIT BY clause](/core/reference/statements/select/limit-by) +- [HAVING clause](/core/reference/statements/select/having) +- [QUALIFY clause](/core/reference/statements/select/qualify) +- [LIMIT clause](/core/reference/statements/select/limit) +- [OFFSET clause](/core/reference/statements/select/offset) +- [UNION clause](/core/reference/statements/select/union) +- [INTERSECT clause](/core/reference/statements/select/intersect) +- [EXCEPT clause](/core/reference/statements/select/except) +- [INTO OUTFILE clause](/core/reference/statements/select/into-outfile) +- [FORMAT clause](/core/reference/statements/select/format) ## SELECT Clause {#select-clause} -[Expressions](/reference/syntax#expressions) specified in the `SELECT` clause are calculated after all the operations in the clauses described above are finished. These expressions work as if they apply to separate rows in the result. If expressions in the `SELECT` clause contain aggregate functions, then ClickHouse processes aggregate functions and expressions used as their arguments during the [GROUP BY](/reference/statements/select/group-by) aggregation. +[Expressions](/core/reference/syntax#expressions) specified in the `SELECT` clause are calculated after all the operations in the clauses described above are finished. These expressions work as if they apply to separate rows in the result. If expressions in the `SELECT` clause contain aggregate functions, then ClickHouse processes aggregate functions and expressions used as their arguments during the [GROUP BY](/core/reference/statements/select/group-by) aggregation. If you want to include all columns in the result, use the asterisk (`*`) symbol. For example, `SELECT * FROM ...`. @@ -138,7 +138,7 @@ In all other cases, we do not recommend using the asterisk, since it only gives In addition to results, you can also get minimum and maximum values for the results columns. To do this, set the **extremes** setting to 1. Minimums and maximums are calculated for numeric types, dates, and dates with times. For other columns, the default values are output. -An extra two rows are calculated – the minimums and maximums, respectively. These extra two rows are output in `XML`, `JSON*`, `TabSeparated*`, `CSV*`, `Vertical`, `Template` and `Pretty*` [formats](/reference/formats), separate from the other rows. They are not output for other formats. +An extra two rows are calculated – the minimums and maximums, respectively. These extra two rows are output in `XML`, `JSON*`, `TabSeparated*`, `CSV*`, `Vertical`, `Template` and `Pretty*` [formats](/core/reference/formats), separate from the other rows. They are not output for other formats. In `JSON*` and `XML` formats, the extreme values are output in a separate 'extremes' field. In `TabSeparated*`, `CSV*` and `Vertical` formats, the row comes after the main result, and after 'totals' if present. It is preceded by an empty row (after the other data). In `Pretty*` formats, the row is output as a separate table after the main result, and after `totals` if present. In `Template` format the extreme values are output according to specified template. @@ -148,7 +148,7 @@ Extreme values are calculated for rows before `LIMIT`, but after `LIMIT BY`. How You can use synonyms (`AS` aliases) in any part of a query. -The `GROUP BY`, `ORDER BY`, and `LIMIT BY` clauses can support positional arguments. To enable this, switch on the [enable_positional_arguments](/reference/settings/session-settings#enable_positional_arguments) setting. Then, for example, `ORDER BY 1,2` will be sorting rows in the table on the first and then the second column. +The `GROUP BY`, `ORDER BY`, and `LIMIT BY` clauses can support positional arguments. To enable this, switch on the [enable_positional_arguments](/core/reference/settings/session-settings#enable_positional_arguments) setting. Then, for example, `ORDER BY 1,2` will be sorting rows in the table on the first and then the second column. ## Implementation Details {#implementation-details} @@ -176,9 +176,9 @@ You can use the following modifiers in `SELECT` queries. | Modifier | Description | |-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [`APPLY`](/reference/statements/select/apply_modifier) | Allows you to invoke some function for each row returned by an outer table expression of a query. | -| [`EXCEPT`](/reference/statements/select/except_modifier) | Specifies the names of one or more columns to exclude from the result. All matching column names are omitted from the output. | -| [`REPLACE`](/reference/statements/select/replace_modifier) | Specifies one or more [expression aliases](/reference/syntax#expression-aliases). Each alias must match a column name from the `SELECT *` statement. In the output column list, the column that matches the alias is replaced by the expression in that `REPLACE`. This modifier does not change the names or order of columns. However, it can change the value and the value type. | +| [`APPLY`](/core/reference/statements/select/apply_modifier) | Allows you to invoke some function for each row returned by an outer table expression of a query. | +| [`EXCEPT`](/core/reference/statements/select/except_modifier) | Specifies the names of one or more columns to exclude from the result. All matching column names are omitted from the output. | +| [`REPLACE`](/core/reference/statements/select/replace_modifier) | Specifies one or more [expression aliases](/core/reference/syntax#expression-aliases). Each alias must match a column name from the `SELECT *` statement. In the output column list, the column that matches the alias is replaced by the expression in that `REPLACE`. This modifier does not change the names or order of columns. However, it can change the value and the value type. | ### Modifier Combinations {#modifier-combinations} @@ -214,7 +214,7 @@ SELECT * REPLACE(i + 1 AS i) EXCEPT (j) APPLY(sum) from columns_transformers; You can specify the necessary settings right in the `SELECT` query. The setting value is applied only to this query and is reset to default or previous value after the query is executed. -Other ways to make settings see [here](/concepts/features/configuration/settings/overview). +Other ways to make settings see [here](/core/concepts/features/configuration/settings/overview). For boolean settings set to true, you can use a shorthand syntax by omitting the value assignment. When only the setting name is specified, it is automatically set to `1` (true). diff --git a/reference/statements/select/intersect.mdx b/core/reference/statements/select/intersect.mdx similarity index 97% rename from reference/statements/select/intersect.mdx rename to core/reference/statements/select/intersect.mdx index e1c0c374..52aa4bc3 100644 --- a/reference/statements/select/intersect.mdx +++ b/core/reference/statements/select/intersect.mdx @@ -146,5 +146,5 @@ WHERE price > 100; **See Also** -- [UNION](/reference/statements/select/union) -- [EXCEPT](/reference/statements/select/except) +- [UNION](/core/reference/statements/select/union) +- [EXCEPT](/core/reference/statements/select/except) diff --git a/reference/statements/select/into-outfile.mdx b/core/reference/statements/select/into-outfile.mdx similarity index 75% rename from reference/statements/select/into-outfile.mdx rename to core/reference/statements/select/into-outfile.mdx index 5b6259fb..b7757258 100644 --- a/reference/statements/select/into-outfile.mdx +++ b/core/reference/statements/select/into-outfile.mdx @@ -22,16 +22,16 @@ SELECT INTO OUTFILE file_name [AND STDOUT] [APPEND | TRUNCATE] [COMP ## Implementation Details {#implementation-details} -- This functionality is available in the [command-line client](/integrations/connectors/data-integrations/drivers-and-interfaces/client) and [clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local). Thus a query sent via [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http) will fail. +- This functionality is available in the [command-line client](/core/concepts/features/interfaces/client) and [clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local). Thus a query sent via [HTTP interface](/core/concepts/features/interfaces/http) will fail. - The query will fail if a file with the same file name already exists. -- The default [output format](/reference/formats) is `TabSeparated` (like in the command-line client batch mode). Use [FORMAT](/reference/statements/select/format) clause to change it. +- The default [output format](/core/reference/formats) is `TabSeparated` (like in the command-line client batch mode). Use [FORMAT](/core/reference/statements/select/format) clause to change it. - If `AND STDOUT` is mentioned in the query then the output that is written to the file is also displayed on standard output. If used with compression, the plaintext is displayed on standard output. - If `APPEND` is mentioned in the query then the output is appended to an existing file. If compression is used, append cannot be used. - When writing to a file that already exists, `APPEND` or `TRUNCATE` must be used. **Example** -Execute the following query using [command-line client](/integrations/connectors/data-integrations/drivers-and-interfaces/client): +Execute the following query using [command-line client](/core/concepts/features/interfaces/client): ```bash title="Query" clickhouse-client --query="SELECT 1,'ABC' INTO OUTFILE 'select.gz' FORMAT CSV;" diff --git a/reference/statements/select/join.mdx b/core/reference/statements/select/join.mdx similarity index 89% rename from reference/statements/select/join.mdx rename to core/reference/statements/select/join.mdx index 9654cd55..b6de66a7 100644 --- a/reference/statements/select/join.mdx +++ b/core/reference/statements/select/join.mdx @@ -35,7 +35,7 @@ All standard [SQL JOIN](https://en.wikipedia.org/wiki/Join_(SQL)) types are supp - `JOIN` without a type specified implies `INNER`. - The keyword `OUTER` can be safely omitted. -- An alternative syntax for `CROSS JOIN` is specifying multiple tables in the [`FROM` clause](/reference/statements/select/from) separated by commas. +- An alternative syntax for `CROSS JOIN` is specifying multiple tables in the [`FROM` clause](/core/reference/statements/select/from) separated by commas. - If there are no matching columns for a `NATURAL JOIN`, it functions like a `CROSS JOIN`. Additional join types available in ClickHouse are: @@ -49,23 +49,23 @@ Additional join types available in ClickHouse are: | `PASTE JOIN` | Performs a horizontal concatenation of two tables. | -When [join_algorithm](/reference/settings/session-settings#join_algorithm) is set to `partial_merge`, `RIGHT JOIN` and `FULL JOIN` are supported only with `ALL` strictness (`SEMI`, `ANTI`, `ANY`, and `ASOF` are not supported). +When [join_algorithm](/core/reference/settings/session-settings#join_algorithm) is set to `partial_merge`, `RIGHT JOIN` and `FULL JOIN` are supported only with `ALL` strictness (`SEMI`, `ANTI`, `ANY`, and `ASOF` are not supported). ## Settings {#settings} -The default join type can be overridden using [`join_default_strictness`](/reference/settings/session-settings#join_default_strictness) setting. +The default join type can be overridden using [`join_default_strictness`](/core/reference/settings/session-settings#join_default_strictness) setting. -The behavior of the ClickHouse server for `ANY JOIN` operations depends on the [`any_join_distinct_right_table_keys`](/reference/settings/session-settings#any_join_distinct_right_table_keys) setting. +The behavior of the ClickHouse server for `ANY JOIN` operations depends on the [`any_join_distinct_right_table_keys`](/core/reference/settings/session-settings#any_join_distinct_right_table_keys) setting. **See also** -- [`join_algorithm`](/reference/settings/session-settings#join_algorithm) -- [`join_any_take_last_row`](/reference/settings/session-settings#join_any_take_last_row) -- [`join_use_nulls`](/reference/settings/session-settings#join_use_nulls) -- [`partial_merge_join_rows_in_right_blocks`](/reference/settings/session-settings#partial_merge_join_rows_in_right_blocks) -- [`join_on_disk_max_files_to_merge`](/reference/settings/session-settings#join_on_disk_max_files_to_merge) -- [`any_join_distinct_right_table_keys`](/reference/settings/session-settings#any_join_distinct_right_table_keys) +- [`join_algorithm`](/core/reference/settings/session-settings#join_algorithm) +- [`join_any_take_last_row`](/core/reference/settings/session-settings#join_any_take_last_row) +- [`join_use_nulls`](/core/reference/settings/session-settings#join_use_nulls) +- [`partial_merge_join_rows_in_right_blocks`](/core/reference/settings/session-settings#partial_merge_join_rows_in_right_blocks) +- [`join_on_disk_max_files_to_merge`](/core/reference/settings/session-settings#join_on_disk_max_files_to_merge) +- [`any_join_distinct_right_table_keys`](/core/reference/settings/session-settings#any_join_distinct_right_table_keys) Use the `cross_to_inner_join_rewrite` setting to define the behavior when ClickHouse fails to rewrite a `CROSS JOIN` as an `INNER JOIN`. The default value is `1`, which allows the join to continue but it will be slower. Set `cross_to_inner_join_rewrite` to `0` if you want an error to be thrown, and set it to `2` to not run the cross joins but instead force a rewrite of all comma/cross joins. If the rewriting fails when the value is `2`, you will receive an error message stating "Please, try to simplify `WHERE` section". @@ -282,7 +282,7 @@ SELECT A.name, B.score FROM A LEFT JOIN B ON isNotDistinctFrom(A.id, B.id) This JOIN algorithm requires a special column in tables. This column: - Must contain an ordered sequence. -- Can be one of the following types: [Int, UInt](/reference/data-types/int-uint), [Float](/reference/data-types/float), [Date](/reference/data-types/date), [DateTime](/reference/data-types/datetime), [Decimal](/reference/data-types/decimal). +- Can be one of the following types: [Int, UInt](/core/reference/data-types/int-uint), [Float](/core/reference/data-types/float), [Date](/core/reference/data-types/date), [DateTime](/core/reference/data-types/datetime), [Decimal](/core/reference/data-types/decimal). - For the `hash` join algorithm it can't be the only column in the `JOIN` clause. Syntax `ASOF JOIN ... ON`: @@ -326,7 +326,7 @@ For example, consider the following tables: `ASOF JOIN` is supported only by `hash` and `full_sorting_merge` join algorithms. -It's **not** supported in the [Join](/reference/engines/table-engines/special/join) table engine. +It's **not** supported in the [Join](/core/reference/engines/table-engines/special/join) table engine. ## PASTE JOIN usage {#paste-join-usage} @@ -393,7 +393,7 @@ There are two ways to execute a JOIN involving distributed tables: - When using a normal `JOIN`, the query is sent to remote servers. Subqueries are run on each of them in order to make the right table, and the join is performed with this table. In other words, the right table is formed on each server separately. - When using `GLOBAL ... JOIN`, first the requestor server runs a subquery to calculate one side of the join and collects the result into a temporary table. This temporary table is then passed to each remote server, and queries are run on them using the temporary data that was transmitted. For `LEFT` and `INNER` joins, the right table is calculated as the subquery. For `RIGHT` joins, the left table is calculated instead, since the right table is the one being preserved and should be read from shards. -Be careful when using `GLOBAL`. For more information, see the [Distributed subqueries](/reference/statements/in#distributed-subqueries) section. +Be careful when using `GLOBAL`. For more information, see the [Distributed subqueries](/core/reference/statements/in#distributed-subqueries) section. ## Implicit type conversion {#implicit-type-conversion} @@ -435,9 +435,9 @@ returns the set: ### Processing of empty or NULL cells {#processing-of-empty-or-null-cells} -While joining tables, the empty cells may appear. The setting [join_use_nulls](/reference/settings/session-settings#join_use_nulls) define how ClickHouse fills these cells. +While joining tables, the empty cells may appear. The setting [join_use_nulls](/core/reference/settings/session-settings#join_use_nulls) define how ClickHouse fills these cells. -If the `JOIN` keys are [Nullable](/reference/data-types/nullable) fields, the rows where at least one of the keys has the value [NULL](/reference/syntax#null) are not joined. +If the `JOIN` keys are [Nullable](/core/reference/data-types/nullable) fields, the rows where at least one of the keys has the value [NULL](/core/reference/syntax#null) are not joined. ### Syntax {#syntax} @@ -461,22 +461,22 @@ For `ON`, `WHERE`, and `GROUP BY` clauses: When running a `JOIN`, there is no optimization of the order of execution in relation to other stages of the query. The join (a search in the right table) is run before filtering in `WHERE` and before aggregation. -Each time a query is run with the same `JOIN`, the subquery is run again because the result is not cached. To avoid this, use the special [Join](/reference/engines/table-engines/special/join) table engine, which is a prepared array for joining that is always in RAM. +Each time a query is run with the same `JOIN`, the subquery is run again because the result is not cached. To avoid this, use the special [Join](/core/reference/engines/table-engines/special/join) table engine, which is a prepared array for joining that is always in RAM. -In some cases, it is more efficient to use [IN](/reference/statements/in) instead of `JOIN`. +In some cases, it is more efficient to use [IN](/core/reference/statements/in) instead of `JOIN`. -If you need a `JOIN` for joining with dimension tables (these are relatively small tables that contain dimension properties, such as names for advertising campaigns), a `JOIN` might not be very convenient due to the fact that the right table is re-accessed for every query. For such cases, there is a "dictionaries" feature that you should use instead of `JOIN`. For more information, see the [Dictionaries](/reference/statements/create/dictionary) section. +If you need a `JOIN` for joining with dimension tables (these are relatively small tables that contain dimension properties, such as names for advertising campaigns), a `JOIN` might not be very convenient due to the fact that the right table is re-accessed for every query. For such cases, there is a "dictionaries" feature that you should use instead of `JOIN`. For more information, see the [Dictionaries](/core/reference/statements/create/dictionary) section. ### Memory limitations {#memory-limitations} -By default, ClickHouse uses the [hash join](https://en.wikipedia.org/wiki/Hash_join) algorithm. ClickHouse takes the right_table and creates a hash table for it in RAM. If `join_algorithm = 'auto'` is enabled, then after some threshold of memory consumption, ClickHouse falls back to [merge](https://en.wikipedia.org/wiki/Sort-merge_join) join algorithm. For `JOIN` algorithms description see the [join_algorithm](/reference/settings/session-settings#join_algorithm) setting. +By default, ClickHouse uses the [hash join](https://en.wikipedia.org/wiki/Hash_join) algorithm. ClickHouse takes the right_table and creates a hash table for it in RAM. If `join_algorithm = 'auto'` is enabled, then after some threshold of memory consumption, ClickHouse falls back to [merge](https://en.wikipedia.org/wiki/Sort-merge_join) join algorithm. For `JOIN` algorithms description see the [join_algorithm](/core/reference/settings/session-settings#join_algorithm) setting. If you need to restrict `JOIN` operation memory consumption use the following settings: -- [max_rows_in_join](/reference/settings/session-settings#max_rows_in_join) — Limits number of rows in the hash table. -- [max_bytes_in_join](/reference/settings/session-settings#max_bytes_in_join) — Limits size of the hash table. +- [max_rows_in_join](/core/reference/settings/session-settings#max_rows_in_join) — Limits number of rows in the hash table. +- [max_bytes_in_join](/core/reference/settings/session-settings#max_bytes_in_join) — Limits size of the hash table. -When any of these limits is reached, ClickHouse acts as the [join_overflow_mode](/reference/settings/session-settings#join_overflow_mode) +When any of these limits is reached, ClickHouse acts as the [join_overflow_mode](/core/reference/settings/session-settings#join_overflow_mode) setting instructs. ## Examples {#examples} diff --git a/reference/statements/select/limit-by.mdx b/core/reference/statements/select/limit-by.mdx similarity index 80% rename from reference/statements/select/limit-by.mdx rename to core/reference/statements/select/limit-by.mdx index 77feec77..cd1fb059 100644 --- a/reference/statements/select/limit-by.mdx +++ b/core/reference/statements/select/limit-by.mdx @@ -6,22 +6,22 @@ title: 'LIMIT BY Clause' doc_type: 'reference' --- -A query with the `LIMIT n BY expressions` clause selects the first `n` rows for each distinct value of `expressions`. The key for `LIMIT BY` can contain any number of [expressions](/reference/syntax#expressions). +A query with the `LIMIT n BY expressions` clause selects the first `n` rows for each distinct value of `expressions`. The key for `LIMIT BY` can contain any number of [expressions](/core/reference/syntax#expressions). ClickHouse supports the following syntax variants: - `LIMIT [offset_value, ]n BY expressions` - `LIMIT n OFFSET offset_value BY expressions` -During query processing, ClickHouse selects data ordered by sorting key. The sorting key is set explicitly using an [ORDER BY](/reference/statements/select/order-by) clause or implicitly as a property of the table engine (row order is only guaranteed when using [ORDER BY](/reference/statements/select/order-by), otherwise the row blocks will not be ordered due to multi-threading). Then ClickHouse applies `LIMIT n BY expressions` and returns the first `n` rows for each distinct combination of `expressions`. If `OFFSET` is specified, then for each data block that belongs to a distinct combination of `expressions`, ClickHouse skips `offset_value` number of rows from the beginning of the block and returns a maximum of `n` rows as a result. If `offset_value` is bigger than the number of rows in the data block, ClickHouse returns zero rows from the block. +During query processing, ClickHouse selects data ordered by sorting key. The sorting key is set explicitly using an [ORDER BY](/core/reference/statements/select/order-by) clause or implicitly as a property of the table engine (row order is only guaranteed when using [ORDER BY](/core/reference/statements/select/order-by), otherwise the row blocks will not be ordered due to multi-threading). Then ClickHouse applies `LIMIT n BY expressions` and returns the first `n` rows for each distinct combination of `expressions`. If `OFFSET` is specified, then for each data block that belongs to a distinct combination of `expressions`, ClickHouse skips `offset_value` number of rows from the beginning of the block and returns a maximum of `n` rows as a result. If `offset_value` is bigger than the number of rows in the data block, ClickHouse returns zero rows from the block. **** -`LIMIT BY` is not related to [LIMIT](/reference/statements/select/limit). They can both be used in the same query. +`LIMIT BY` is not related to [LIMIT](/core/reference/statements/select/limit). They can both be used in the same query. -If you want to use column numbers instead of column names in the `LIMIT BY` clause, enable the setting [enable_positional_arguments](/reference/settings/session-settings#enable_positional_arguments). +If you want to use column numbers instead of column names in the `LIMIT BY` clause, enable the setting [enable_positional_arguments](/core/reference/settings/session-settings#enable_positional_arguments). ## Examples {#examples} @@ -76,7 +76,7 @@ LIMIT 5 BY domain, device_type LIMIT 100; ``` -`LIMIT BY` also works with negative limits and offsets. Similar to the [negative LIMIT clause](/reference/statements/select/limit#negative-limits), you can use negative values with `LIMIT BY` to select rows from the *end* of each group. +`LIMIT BY` also works with negative limits and offsets. Similar to the [negative LIMIT clause](/core/reference/statements/select/limit#negative-limits), you can use negative values with `LIMIT BY` to select rows from the *end* of each group. ```sql SELECT * FROM limit_by ORDER BY id, val LIMIT -2 BY id; diff --git a/reference/statements/select/limit.mdx b/core/reference/statements/select/limit.mdx similarity index 85% rename from reference/statements/select/limit.mdx rename to core/reference/statements/select/limit.mdx index 05de6560..4fd707b2 100644 --- a/reference/statements/select/limit.mdx +++ b/core/reference/statements/select/limit.mdx @@ -64,7 +64,7 @@ Use decimal values between 0 and 1 to select a percentage of rows: | `LIMIT 0.25 OFFSET 0.5` | Third quartile (25% of rows after skipping the first 50%) | -- Fractions must be [Float64](/reference/data-types/float) values greater than 0 and less than 1. +- Fractions must be [Float64](/core/reference/data-types/float) values greater than 0 and less than 1. - Fractional row counts are rounded to the next whole number. @@ -141,14 +141,14 @@ Skipping the first 2 rows and taking 3 would normally return `1, 1, 2`, but the `WITH TIES` is not supported with negative limits. -This modifier can be combined with the [`ORDER BY ... WITH FILL`](/reference/statements/select/order-by#order-by-expr-with-fill-modifier) modifier. +This modifier can be combined with the [`ORDER BY ... WITH FILL`](/core/reference/statements/select/order-by#order-by-expr-with-fill-modifier) modifier. ## Considerations {#considerations} -**Non-deterministic results:** Without an [`ORDER BY`](/reference/statements/select/order-by) clause, the rows returned may be arbitrary and vary between query executions. +**Non-deterministic results:** Without an [`ORDER BY`](/core/reference/statements/select/order-by) clause, the rows returned may be arbitrary and vary between query executions. -**Server-side limit:** The number of rows returned can also be affected by the [limit](/reference/settings/session-settings#limit) setting. +**Server-side limit:** The number of rows returned can also be affected by the [limit](/core/reference/settings/session-settings#limit) setting. ## See also {#see-also} -- [LIMIT BY](/reference/statements/select/limit-by) — Limits rows per group of values, useful for getting top N results within each category. +- [LIMIT BY](/core/reference/statements/select/limit-by) — Limits rows per group of values, useful for getting top N results within each category. diff --git a/reference/statements/select/offset.mdx b/core/reference/statements/select/offset.mdx similarity index 89% rename from reference/statements/select/offset.mdx rename to core/reference/statements/select/offset.mdx index 7ec89bbb..d68f3656 100644 --- a/reference/statements/select/offset.mdx +++ b/core/reference/statements/select/offset.mdx @@ -28,12 +28,12 @@ Example: • `OFFSET 0.1` - skips the first 10% of the result. > **Note** -> • The fraction must be a [Float64](/reference/data-types/float) number less than 1 and greater than zero. +> • The fraction must be a [Float64](/core/reference/data-types/float) number less than 1 and greater than zero. > • If a fractional number of rows results from the calculation, it is rounded up to the next whole number. The `FETCH` specifies the maximum number of rows that can be in the result of a query. -The `ONLY` option is used to return rows that immediately follow the rows omitted by the `OFFSET`. In this case the `FETCH` is an alternative to the [LIMIT](/reference/statements/select/limit) clause. For example, the following query +The `ONLY` option is used to return rows that immediately follow the rows omitted by the `OFFSET`. In this case the `FETCH` is an alternative to the [LIMIT](/core/reference/statements/select/limit) clause. For example, the following query ```sql SELECT * FROM test_fetch ORDER BY a OFFSET 1 ROW FETCH FIRST 3 ROWS ONLY; @@ -56,7 +56,7 @@ According to the standard, the `OFFSET` clause must come before the `FETCH` clau **** -The real offset can also depend on the [offset](/reference/settings/session-settings#offset) setting. +The real offset can also depend on the [offset](/core/reference/settings/session-settings#offset) setting. ## Examples {#examples} diff --git a/reference/statements/select/order-by.mdx b/core/reference/statements/select/order-by.mdx similarity index 89% rename from reference/statements/select/order-by.mdx rename to core/reference/statements/select/order-by.mdx index 248e57c1..d843ba40 100644 --- a/reference/statements/select/order-by.mdx +++ b/core/reference/statements/select/order-by.mdx @@ -12,8 +12,8 @@ The `ORDER BY` clause contains - a list of numbers referring to columns in the `SELECT` clause, e.g. `ORDER BY 2, 1`, or - `ALL` which means all columns of the `SELECT` clause, e.g. `ORDER BY ALL`. -To disable sorting by column numbers, set setting [enable_positional_arguments](/reference/settings/session-settings#enable_positional_arguments) = 0. -To disable sorting by `ALL`, set setting [enable_order_by_all](/reference/settings/session-settings#enable_order_by_all) = 0. +To disable sorting by column numbers, set setting [enable_positional_arguments](/core/reference/settings/session-settings#enable_positional_arguments) = 0. +To disable sorting by `ALL`, set setting [enable_order_by_all](/core/reference/settings/session-settings#enable_order_by_all) = 0. The `ORDER BY` clause can be attributed by a `DESC` (descending) or `ASC` (ascending) modifier which determines the sorting direction. Unless an explicit sort order is specified, `ASC` is used by default. @@ -70,15 +70,15 @@ When floating point numbers are sorted, NaNs are separate from the other values. ## Collation Support {#collation-support} -For sorting by [String](/reference/data-types/string) values, you can specify collation (comparison). Example: `ORDER BY SearchPhrase COLLATE 'tr'` - for sorting by keyword in ascending order, using the Turkish alphabet, case insensitive, assuming that strings are UTF-8 encoded. `COLLATE` can be specified or not for each expression in ORDER BY independently. If `ASC` or `DESC` is specified, `COLLATE` is specified after it. When using `COLLATE`, sorting is always case-insensitive. +For sorting by [String](/core/reference/data-types/string) values, you can specify collation (comparison). Example: `ORDER BY SearchPhrase COLLATE 'tr'` - for sorting by keyword in ascending order, using the Turkish alphabet, case insensitive, assuming that strings are UTF-8 encoded. `COLLATE` can be specified or not for each expression in ORDER BY independently. If `ASC` or `DESC` is specified, `COLLATE` is specified after it. When using `COLLATE`, sorting is always case-insensitive. -Collate is supported in [LowCardinality](/reference/data-types/lowcardinality), [Nullable](/reference/data-types/nullable), [Array](/reference/data-types/array) and [Tuple](/reference/data-types/tuple). +Collate is supported in [LowCardinality](/core/reference/data-types/lowcardinality), [Nullable](/core/reference/data-types/nullable), [Array](/core/reference/data-types/array) and [Tuple](/core/reference/data-types/tuple). We only recommend using `COLLATE` for final sorting of a small number of rows, since sorting with `COLLATE` is less efficient than normal sorting by bytes. ## Collation Examples {#collation-examples} -Example only with [String](/reference/data-types/string) values: +Example only with [String](/core/reference/data-types/string) values: Input table: @@ -106,7 +106,7 @@ SELECT * FROM collate_test ORDER BY s ASC COLLATE 'en'; └───┴──────┘ ``` -Example with [Nullable](/reference/data-types/nullable): +Example with [Nullable](/core/reference/data-types/nullable): Input table: @@ -138,7 +138,7 @@ SELECT * FROM collate_test ORDER BY s ASC COLLATE 'en'; └───┴──────┘ ``` -Example with [Array](/reference/data-types/array): +Example with [Array](/core/reference/data-types/array): Input table: @@ -170,7 +170,7 @@ SELECT * FROM collate_test ORDER BY s ASC COLLATE 'en'; └───┴───────────────┘ ``` -Example with [LowCardinality](/reference/data-types/lowcardinality) string: +Example with [LowCardinality](/core/reference/data-types/lowcardinality) string: Input table: @@ -202,7 +202,7 @@ SELECT * FROM collate_test ORDER BY s ASC COLLATE 'en'; └───┴─────┘ ``` -Example with [Tuple](/reference/data-types/tuple): +Example with [Tuple](/core/reference/data-types/tuple): ```response title="Response" ┌─x─┬─s───────┐ @@ -234,7 +234,7 @@ SELECT * FROM collate_test ORDER BY s ASC COLLATE 'en'; ## Implementation Details {#implementation-details} -Less RAM is used if a small enough [LIMIT](/reference/statements/select/limit) is specified in addition to `ORDER BY`. Otherwise, the amount of memory spent is proportional to the volume of data for sorting. For distributed query processing, if [GROUP BY](/reference/statements/select/group-by) is omitted, sorting is partially done on remote servers, and the results are merged on the requestor server. This means that for distributed sorting, the volume of data to sort can be greater than the amount of memory on a single server. +Less RAM is used if a small enough [LIMIT](/core/reference/statements/select/limit) is specified in addition to `ORDER BY`. Otherwise, the amount of memory spent is proportional to the volume of data for sorting. For distributed query processing, if [GROUP BY](/core/reference/statements/select/group-by) is omitted, sorting is partially done on remote servers, and the results are merged on the requestor server. This means that for distributed sorting, the volume of data to sort can be greater than the amount of memory on a single server. If there is not enough RAM, it is possible to perform sorting in external memory (creating temporary files on a disk). Use the setting `max_bytes_before_external_sort` for this purpose. If it is set to 0 (the default), external sorting is disabled. If it is enabled, when the volume of data to sort reaches the specified number of bytes, the collected data is sorted and dumped into a temporary file. After all data is read, all the sorted files are merged and the results are output. Files are written to the `/var/lib/clickhouse/tmp/` directory in the config (by default, but you can use the `tmp_path` parameter to change this setting). You can also use spilling to disk only if query exceeds memory limits, i.e. `max_bytes_ratio_before_external_sort=0.6` will enable spilling to disk only once the query hits `60%` memory limit (user/sever). @@ -244,27 +244,27 @@ External sorting works much less effectively than sorting in RAM. ## Optimization of Data Reading {#optimization-of-data-reading} - If `ORDER BY` expression has a prefix that coincides with the table sorting key, you can optimize the query by using the [optimize_read_in_order](/reference/settings/session-settings#optimize_read_in_order) setting. + If `ORDER BY` expression has a prefix that coincides with the table sorting key, you can optimize the query by using the [optimize_read_in_order](/core/reference/settings/session-settings#optimize_read_in_order) setting. - When the `optimize_read_in_order` setting is enabled, the ClickHouse server uses the table index and reads the data in order of the `ORDER BY` key. This allows to avoid reading all data in case of specified [LIMIT](/reference/statements/select/limit). So queries on big data with small limit are processed faster. + When the `optimize_read_in_order` setting is enabled, the ClickHouse server uses the table index and reads the data in order of the `ORDER BY` key. This allows to avoid reading all data in case of specified [LIMIT](/core/reference/statements/select/limit). So queries on big data with small limit are processed faster. -Optimization works with both `ASC` and `DESC` and does not work together with [GROUP BY](/reference/statements/select/group-by) clause and [FINAL](/reference/statements/select/from#final-modifier) modifier. +Optimization works with both `ASC` and `DESC` and does not work together with [GROUP BY](/core/reference/statements/select/group-by) clause and [FINAL](/core/reference/statements/select/from#final-modifier) modifier. When the `optimize_read_in_order` setting is disabled, the ClickHouse server does not use the table index while processing `SELECT` queries. -Consider disabling `optimize_read_in_order` manually, when running queries that have `ORDER BY` clause, large `LIMIT` and [WHERE](/reference/statements/select/where) condition that requires to read huge amount of records before queried data is found. +Consider disabling `optimize_read_in_order` manually, when running queries that have `ORDER BY` clause, large `LIMIT` and [WHERE](/core/reference/statements/select/where) condition that requires to read huge amount of records before queried data is found. Optimization is supported in the following table engines: -- [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) (including [materialized views](/reference/statements/create/view#materialized-view)), -- [Merge](/reference/engines/table-engines/special/merge), -- [Buffer](/reference/engines/table-engines/special/buffer) +- [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) (including [materialized views](/core/reference/statements/create/view#materialized-view)), +- [Merge](/core/reference/engines/table-engines/special/merge), +- [Buffer](/core/reference/engines/table-engines/special/buffer) In `MaterializedView`-engine tables the optimization works with views like `SELECT ... FROM merge_tree_table ORDER BY pk`. But it is not supported in the queries like `SELECT ... FROM view ORDER BY pk` if the view query does not have the `ORDER BY` clause. ## ORDER BY Expr WITH FILL Modifier {#order-by-expr-with-fill-modifier} -This modifier also can be combined with [LIMIT ... WITH TIES modifier](/reference/statements/select/limit#limit--with-ties-modifier). +This modifier also can be combined with [LIMIT ... WITH TIES modifier](/core/reference/statements/select/limit#limit--with-ties-modifier). `WITH FILL` modifier can be set after `ORDER BY expr` with optional `FROM expr`, `TO expr` and `STEP expr` parameters. All missed values of `expr` column will be filled sequentially and other columns will be filled as defaults. @@ -279,7 +279,7 @@ ORDER BY expr [WITH FILL] [FROM const_expr] [TO const_expr] [STEP const_numeric_ `WITH FILL` can be applied for fields with Numeric (all kinds of float, decimal, int) or Date/DateTime types. When applied for `String` fields, missed values are filled with empty strings. When `FROM const_expr` not defined sequence of filling use minimal `expr` field value from `ORDER BY`. When `TO const_expr` not defined sequence of filling use maximum `expr` field value from `ORDER BY`. -When `STEP const_numeric_expr` defined then `const_numeric_expr` interprets `as is` for numeric types, as `days` for Date type, as `seconds` for DateTime type. It also supports [INTERVAL](/reference/data-types/special-data-types/interval) data type representing time and date intervals. +When `STEP const_numeric_expr` defined then `const_numeric_expr` interprets `as is` for numeric types, as `days` for Date type, as `seconds` for DateTime type. It also supports [INTERVAL](/core/reference/data-types/special-data-types/interval) data type representing time and date intervals. When `STEP const_numeric_expr` omitted then sequence of filling use `1.0` for numeric type, `1 day` for Date type and `1 second` for DateTime type. When `STALENESS const_numeric_expr` is defined, the query will generate rows until the difference from the previous row in the original data exceeds `const_numeric_expr`. `INTERPOLATE` can be applied to columns not participating in `ORDER BY WITH FILL`. Such columns are filled based on previous fields values by applying `expr`. If `expr` is not present will repeat previous value. Omitted list will result in including all allowed columns. diff --git a/reference/statements/select/prewhere.mdx b/core/reference/statements/select/prewhere.mdx similarity index 72% rename from reference/statements/select/prewhere.mdx rename to core/reference/statements/select/prewhere.mdx index 41a25375..83ef8f6a 100644 --- a/reference/statements/select/prewhere.mdx +++ b/core/reference/statements/select/prewhere.mdx @@ -6,7 +6,7 @@ title: 'PREWHERE Clause' doc_type: 'reference' --- -Prewhere is an optimization to apply filtering more efficiently. It is enabled by default even if `PREWHERE` clause is not specified explicitly. It works by automatically moving part of [WHERE](/reference/statements/select/where) condition to prewhere stage. The role of `PREWHERE` clause is only to control this optimization if you think that you know how to do it better than it happens by default. +Prewhere is an optimization to apply filtering more efficiently. It is enabled by default even if `PREWHERE` clause is not specified explicitly. It works by automatically moving part of [WHERE](/core/reference/statements/select/where) condition to prewhere stage. The role of `PREWHERE` clause is only to control this optimization if you think that you know how to do it better than it happens by default. With prewhere optimization, at first only the columns necessary for executing prewhere expression are read. Then the other columns are read that are needed for running the rest of the query, but only those blocks where the prewhere expression is `true` at least for some rows. If there are a lot of blocks where prewhere expression is `false` for all rows and prewhere needs less columns than other parts of query, this often allows to read a lot less data from disk for query execution. @@ -16,9 +16,9 @@ The clause has the same meaning as the `WHERE` clause. The difference is in whic A query may simultaneously specify `PREWHERE` and `WHERE`. In this case, `PREWHERE` precedes `WHERE`. -If the [optimize_move_to_prewhere](/reference/settings/session-settings#optimize_move_to_prewhere) setting is set to 0, heuristics to automatically move parts of expressions from `WHERE` to `PREWHERE` are disabled. +If the [optimize_move_to_prewhere](/core/reference/settings/session-settings#optimize_move_to_prewhere) setting is set to 0, heuristics to automatically move parts of expressions from `WHERE` to `PREWHERE` are disabled. -If query has [FINAL](/reference/statements/select/from#final-modifier) modifier, the `PREWHERE` optimization is not always correct. It is enabled only if both settings [optimize_move_to_prewhere](/reference/settings/session-settings#optimize_move_to_prewhere) and [optimize_move_to_prewhere_if_final](/reference/settings/session-settings#optimize_move_to_prewhere_if_final) are turned on. +If query has [FINAL](/core/reference/statements/select/from#final-modifier) modifier, the `PREWHERE` optimization is not always correct. It is enabled only if both settings [optimize_move_to_prewhere](/core/reference/settings/session-settings#optimize_move_to_prewhere) and [optimize_move_to_prewhere_if_final](/core/reference/settings/session-settings#optimize_move_to_prewhere_if_final) are turned on. **** @@ -28,7 +28,7 @@ The `PREWHERE` section is executed before `FINAL`, so the results of `FROM ... F ## Limitations {#limitations} -`PREWHERE` is only supported by tables from the [*MergeTree](/reference/engines/table-engines/mergetree-family) family. +`PREWHERE` is only supported by tables from the [*MergeTree](/core/reference/engines/table-engines/mergetree-family) family. ## Example {#example} diff --git a/reference/statements/select/qualify.mdx b/core/reference/statements/select/qualify.mdx similarity index 85% rename from reference/statements/select/qualify.mdx rename to core/reference/statements/select/qualify.mdx index 15628d96..9311f7e8 100644 --- a/reference/statements/select/qualify.mdx +++ b/core/reference/statements/select/qualify.mdx @@ -6,7 +6,7 @@ title: 'QUALIFY Clause' doc_type: 'reference' --- -Allows filtering window functions results. It is similar to the [WHERE](/reference/statements/select/where) clause, but the difference is that `WHERE` is performed before window functions evaluation, while `QUALIFY` is performed after it. +Allows filtering window functions results. It is similar to the [WHERE](/core/reference/statements/select/where) clause, but the difference is that `WHERE` is performed before window functions evaluation, while `QUALIFY` is performed after it. It is possible to reference window functions results from `SELECT` clause in `QUALIFY` clause by their alias. Alternatively, `QUALIFY` clause can filter on results of additional window functions that are not returned in query results. diff --git a/reference/statements/select/replace_modifier.mdx b/core/reference/statements/select/replace_modifier.mdx similarity index 90% rename from reference/statements/select/replace_modifier.mdx rename to core/reference/statements/select/replace_modifier.mdx index 94913695..6a3d1157 100644 --- a/reference/statements/select/replace_modifier.mdx +++ b/core/reference/statements/select/replace_modifier.mdx @@ -7,7 +7,7 @@ keywords: ['REPLACE', 'modifier'] doc_type: 'reference' --- -> Allows you to specify one or more [expression aliases](/reference/syntax#expression-aliases). +> Allows you to specify one or more [expression aliases](/core/reference/syntax#expression-aliases). Each alias must match a column name from the `SELECT *` statement. In the output column list, the column that matches the alias is replaced by the expression in that `REPLACE`. diff --git a/reference/statements/select/sample.mdx b/core/reference/statements/select/sample.mdx similarity index 86% rename from reference/statements/select/sample.mdx rename to core/reference/statements/select/sample.mdx index 9ec3abc8..3b8a1f4c 100644 --- a/reference/statements/select/sample.mdx +++ b/core/reference/statements/select/sample.mdx @@ -19,14 +19,14 @@ Approximated query processing can be useful in the following cases: **** -You can only use sampling with the tables in the [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) family, and only if the sampling expression was specified during table creation (see [MergeTree engine](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table)). +You can only use sampling with the tables in the [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) family, and only if the sampling expression was specified during table creation (see [MergeTree engine](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table)). The features of data sampling are listed below: - Data sampling is a deterministic mechanism. The result of the same `SELECT .. SAMPLE` query is always the same. -- Sampling works consistently for different tables. For tables with a single sampling key, a sample with the same coefficient always selects the same subset of possible data. For example, a sample of user IDs takes rows with the same subset of all the possible user IDs from different tables. This means that you can use the sample in subqueries in the [IN](/reference/statements/in) clause. Also, you can join samples using the [JOIN](/reference/statements/select/join) clause. -- Sampling allows reading less data from a disk. Note that you must specify the sampling key correctly. For more information, see [Creating a MergeTree Table](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table). +- Sampling works consistently for different tables. For tables with a single sampling key, a sample with the same coefficient always selects the same subset of possible data. For example, a sample of user IDs takes rows with the same subset of all the possible user IDs from different tables. This means that you can use the sample in subqueries in the [IN](/core/reference/statements/in) clause. Also, you can join samples using the [JOIN](/core/reference/statements/select/join) clause. +- Sampling allows reading less data from a disk. Note that you must specify the sampling key correctly. For more information, see [Creating a MergeTree Table](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table). For the `SAMPLE` clause the following syntax is supported: @@ -66,7 +66,7 @@ Since the minimum unit for data reading is one granule (its size is set by the ` When using the `SAMPLE n` clause, you do not know which relative percent of data was processed. So you do not know the coefficient the aggregate functions should be multiplied by. Use the `_sample_factor` virtual column to get the approximate result. -The `_sample_factor` column contains relative coefficients that are calculated dynamically. This column is created automatically when you [create](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) a table with the specified sampling key. The usage examples of the `_sample_factor` column are shown below. +The `_sample_factor` column contains relative coefficients that are calculated dynamically. This column is created automatically when you [create](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-creating-a-table) a table with the specified sampling key. The usage examples of the `_sample_factor` column are shown below. Let's consider the table `visits`, which contains the statistics about site visits. The first example shows how to calculate the number of page views: diff --git a/reference/statements/select/union.mdx b/core/reference/statements/select/union.mdx similarity index 71% rename from reference/statements/select/union.mdx rename to core/reference/statements/select/union.mdx index c9e489b2..72623d5a 100644 --- a/reference/statements/select/union.mdx +++ b/core/reference/statements/select/union.mdx @@ -29,9 +29,9 @@ Result columns are matched by their index (order inside `SELECT`). If column nam Type casting is performed for unions. For example, if two queries being combined have the same field with non-`Nullable` and `Nullable` types from a compatible type, the resulting `UNION` has a `Nullable` type field. -Queries that are parts of `UNION` can be enclosed in `()`. [ORDER BY](/reference/statements/select/order-by) and [LIMIT](/reference/statements/select/limit) are applied to separate queries, not to the final result. If you need to apply a conversion to the final result, you can put all the queries with `UNION` in a subquery in the [FROM](/reference/statements/select/from) clause. +Queries that are parts of `UNION` can be enclosed in `()`. [ORDER BY](/core/reference/statements/select/order-by) and [LIMIT](/core/reference/statements/select/limit) are applied to separate queries, not to the final result. If you need to apply a conversion to the final result, you can put all the queries with `UNION` in a subquery in the [FROM](/core/reference/statements/select/from) clause. -If you use `UNION` without explicitly specifying `UNION ALL` or `UNION DISTINCT`, you can specify the union mode using the [union_default_mode](/reference/settings/session-settings#union_default_mode) setting. The setting values can be `ALL`, `DISTINCT` or an empty string. However, if you use `UNION` with `union_default_mode` setting to empty string, it will throw an exception. The following examples demonstrate the results of queries with different values setting. +If you use `UNION` without explicitly specifying `UNION ALL` or `UNION DISTINCT`, you can specify the union mode using the [union_default_mode](/core/reference/settings/session-settings#union_default_mode) setting. The setting values can be `ALL`, `DISTINCT` or an empty string. However, if you use `UNION` with `union_default_mode` setting to empty string, it will throw an exception. The following examples demonstrate the results of queries with different values setting. ```sql title="Query" SET union_default_mode = 'DISTINCT'; @@ -74,5 +74,5 @@ Queries that are parts of `UNION/UNION ALL/UNION DISTINCT` can be run simultaneo **See Also** -- [insert_null_as_default](/reference/settings/session-settings#insert_null_as_default) setting. -- [union_default_mode](/reference/settings/session-settings#union_default_mode) setting. +- [insert_null_as_default](/core/reference/settings/session-settings#insert_null_as_default) setting. +- [union_default_mode](/core/reference/settings/session-settings#union_default_mode) setting. diff --git a/reference/statements/select/where.mdx b/core/reference/statements/select/where.mdx similarity index 88% rename from reference/statements/select/where.mdx rename to core/reference/statements/select/where.mdx index a6a1aa8a..c40c0e71 100644 --- a/reference/statements/select/where.mdx +++ b/core/reference/statements/select/where.mdx @@ -7,39 +7,39 @@ doc_type: 'reference' keywords: ['WHERE'] --- -The `WHERE` clause allows you to filter the data that comes from the[`FROM`](/reference/statements/select/from) clause of `SELECT`. +The `WHERE` clause allows you to filter the data that comes from the[`FROM`](/core/reference/statements/select/from) clause of `SELECT`. If there is a `WHERE` clause, it must be followed by an expression of type `UInt8`. Rows where this expression evaluates to `0` are excluded from further transformations or the result. -The expression following the `WHERE` clause is often used with [comparison](/reference/operators#comparison-operators) and [logical operators](/reference/operators#operators-for-working-with-data-sets), or one of the many [regular functions](/reference/functions/regular-functions/regular-functions-index). +The expression following the `WHERE` clause is often used with [comparison](/core/reference/operators#comparison-operators) and [logical operators](/core/reference/operators#operators-for-working-with-data-sets), or one of the many [regular functions](/core/reference/functions/regular-functions/regular-functions-index). The `WHERE` expression is evaluated on the ability to use indexes and partition pruning, if the underlying table engine supports that. **PREWHERE** -There is also a filtering optimization called [`PREWHERE`](/reference/statements/select/prewhere). +There is also a filtering optimization called [`PREWHERE`](/core/reference/statements/select/prewhere). Prewhere is an optimization to apply filtering more efficiently. It is enabled by default even if `PREWHERE` clause is not specified explicitly. ## Testing for `NULL` {#testing-for-null} -If you need to test a value for [`NULL`](/reference/syntax#null), use: -- [`IS NULL`](/reference/operators#is_null) or [`isNull`](/reference/functions/regular-functions/functions-for-nulls#isNull) -- [`IS NOT NULL`](/reference/operators#is_not_null) or [`isNotNull`](/reference/functions/regular-functions/functions-for-nulls#isNotNull) +If you need to test a value for [`NULL`](/core/reference/syntax#null), use: +- [`IS NULL`](/core/reference/operators#is_null) or [`isNull`](/core/reference/functions/regular-functions/functions-for-nulls#isNull) +- [`IS NOT NULL`](/core/reference/operators#is_not_null) or [`isNotNull`](/core/reference/functions/regular-functions/functions-for-nulls#isNotNull) An expression with `NULL` will otherwise never pass. ## Filtering data with logical operators {#filtering-data-with-logical-operators} -You can use the following [logical functions](/reference/functions/regular-functions/logical-functions#and) together with the `WHERE` clause for combining multiple conditions: +You can use the following [logical functions](/core/reference/functions/regular-functions/logical-functions#and) together with the `WHERE` clause for combining multiple conditions: -- [`and()`](/reference/functions/regular-functions/logical-functions#and) or `AND` -- [`not()`](/reference/functions/regular-functions/logical-functions#not) or `NOT` -- [`or()`](/reference/functions/regular-functions/logical-functions#or) or `NOT` -- [`xor()`](/reference/functions/regular-functions/logical-functions#xor) +- [`and()`](/core/reference/functions/regular-functions/logical-functions#and) or `AND` +- [`not()`](/core/reference/functions/regular-functions/logical-functions#not) or `NOT` +- [`or()`](/core/reference/functions/regular-functions/logical-functions#or) or `NOT` +- [`xor()`](/core/reference/functions/regular-functions/logical-functions#xor) ## Using UInt8 columns as a condition {#using-uint8-columns-as-a-condition} @@ -48,7 +48,7 @@ An example of this is given in the section [below](#example-uint8-column-as-cond ## Using comparison operators {#using-comparison-operators} -The following [comparison operators](/reference/operators#comparison-operators) can be used: +The following [comparison operators](/core/reference/operators#comparison-operators) can be used: | Operator | Function | Description | Example | |----------|----------|-------------|---------| @@ -82,7 +82,7 @@ See ["Pattern matching and conditional expressions"](#examples-pattern-matching- ## Expression with literals, columns or subqueries {#expressions-with-literals-columns-subqueries} -The expression following the `WHERE` clause can also include [literals](/reference/syntax#literals), columns or subqueries, which are nested `SELECT` statements that return values used in conditions. +The expression following the `WHERE` clause can also include [literals](/core/reference/syntax#literals), columns or subqueries, which are nested `SELECT` statements that return values used in conditions. | Type | Definition | Evaluation | Performance | Example | |------|------------|------------|-------------|---------| @@ -321,14 +321,14 @@ WHERE in_stock AND price < 400; **7. Using the `IN` operator:** -In the example below `(1, true)` is a [tuple](/reference/data-types/tuple). +In the example below `(1, true)` is a [tuple](/core/reference/data-types/tuple). ```sql SELECT * FROM products WHERE in_stock IN (1, true); ``` -You can also use an [array](/reference/data-types/array) to do this: +You can also use an [array](/core/reference/data-types/array) to do this: ```sql SELECT * FROM products diff --git a/reference/statements/select/with.mdx b/core/reference/statements/select/with.mdx similarity index 93% rename from reference/statements/select/with.mdx rename to core/reference/statements/select/with.mdx index 5deef9f8..e0be13cd 100644 --- a/reference/statements/select/with.mdx +++ b/core/reference/statements/select/with.mdx @@ -53,7 +53,7 @@ This is especially useful when the same CTE is referenced multiple times in a qu Materialized CTEs are an **experimental** feature. -They require the [analyzer](/guides/cloud-oss/performance-and-monitoring/analyzer) and the setting `enable_materialized_cte` to be enabled. +They require the [analyzer](/core/guides/clickhouse/performance-and-monitoring/analyzer) and the setting `enable_materialized_cte` to be enabled. ### Syntax {#materialized-common-table-expressions-syntax} @@ -162,7 +162,7 @@ SELECT count() FROM b AS l LEFT SEMI JOIN b AS r ON l.uid = r.uid; ### Restrictions {#materialized-cte-restrictions} - **Experimental setting required**: The setting `enable_materialized_cte` must be enabled. -- **Analyzer required**: Materialized CTEs only work with the [analyzer](/guides/cloud-oss/performance-and-monitoring/analyzer) enabled (`enable_analyzer = 1`). +- **Analyzer required**: Materialized CTEs only work with the [analyzer](/core/guides/clickhouse/performance-and-monitoring/analyzer) enabled (`enable_analyzer = 1`). - **Not supported with `RECURSIVE`**: Combining `MATERIALIZED` and `RECURSIVE` keywords is not allowed and results in an `UNSUPPORTED_METHOD` exception. - **Correlated CTEs are forbidden**: A materialized CTE cannot reference columns from outer query scopes. @@ -174,7 +174,7 @@ Common scalar expressions can be referenced in any place in the query. If a common scalar expression references something other than a constant literal, the expression may lead to the presence of [free variables](https://en.wikipedia.org/wiki/Free_variables_and_bound_variables). ClickHouse resolves any identifier in the closest scope possible, meaning that free variables can reference unexpected entities in case of name clashes or may lead to a correlated subquery. -It is recommended to define CSE as a [lambda function](/reference/functions/regular-functions/overview#arrow-operator-and-lambda) (possible only with the [analyzer](/guides/cloud-oss/performance-and-monitoring/analyzer) enabled) binding all the used identifiers to achieve a more predictable behavior of expression identifiers resolution. +It is recommended to define CSE as a [lambda function](/core/reference/functions/regular-functions/overview#arrow-operator-and-lambda) (possible only with the [analyzer](/core/guides/clickhouse/performance-and-monitoring/analyzer) enabled) binding all the used identifiers to achieve a more predictable behavior of expression identifiers resolution. ### Syntax {#common-scalar-expressions-syntax} @@ -301,7 +301,7 @@ SELECT sum(number) FROM test_table; ``` -Recursive CTEs rely on the [query analyzer](/guides/cloud-oss/performance-and-monitoring/analyzer) introduced in version **`24.3`**. If you're using version **`24.3+`** and encounter a **`(UNKNOWN_TABLE)`** or **`(UNSUPPORTED_METHOD)`** exception, it suggests that the analyzer is disabled on your instance, role, or profile. To activate the analyzer, enable the setting **`allow_experimental_analyzer`** or update the **`compatibility`** setting to a more recent version. +Recursive CTEs rely on the [query analyzer](/core/guides/clickhouse/performance-and-monitoring/analyzer) introduced in version **`24.3`**. If you're using version **`24.3+`** and encounter a **`(UNKNOWN_TABLE)`** or **`(UNSUPPORTED_METHOD)`** exception, it suggests that the analyzer is disabled on your instance, role, or profile. To activate the analyzer, enable the setting **`allow_experimental_analyzer`** or update the **`compatibility`** setting to a more recent version. Starting from version `24.8` the analyzer has been fully promoted to production, and the setting `allow_experimental_analyzer` has been renamed to `enable_analyzer`. diff --git a/reference/statements/set-role.mdx b/core/reference/statements/set-role.mdx similarity index 100% rename from reference/statements/set-role.mdx rename to core/reference/statements/set-role.mdx diff --git a/reference/statements/set.mdx b/core/reference/statements/set.mdx similarity index 83% rename from reference/statements/set.mdx rename to core/reference/statements/set.mdx index 7665a299..89b7ec03 100644 --- a/reference/statements/set.mdx +++ b/core/reference/statements/set.mdx @@ -10,7 +10,7 @@ doc_type: 'reference' SET param = value ``` -Assigns `value` to the `param` [setting](/concepts/features/configuration/settings/overview) for the current session. You cannot change [server settings](/reference/settings/server-settings/settings) this way. +Assigns `value` to the `param` [setting](/core/concepts/features/configuration/settings/overview) for the current session. You cannot change [server settings](/core/reference/settings/server-settings/settings) this way. You can also set all the values from the specified settings profile in a single query. @@ -47,7 +47,7 @@ SELECT getSetting('session_timezone'); The timezone value must be a valid name from the [IANA Time Zone Database](https://www.iana.org/time-zones). An invalid timezone name will result in an error. -For more information about the `session_timezone` setting, see [session_timezone](/reference/settings/session-settings#session_timezone). +For more information about the `session_timezone` setting, see [session_timezone](/core/reference/settings/session-settings#session_timezone). ## Setting query parameters {#setting-query-parameters} @@ -71,6 +71,6 @@ AND name = {name: String}; Query parameters are particularly useful when the same query needs to be executed multiple times with different values. -For more detailed information about query parameters, including usage with the `Identifier` type, see [Defining and Using Query Parameters](/reference/syntax#defining-and-using-query-parameters). +For more detailed information about query parameters, including usage with the `Identifier` type, see [Defining and Using Query Parameters](/core/reference/syntax#defining-and-using-query-parameters). -For more information, see [Settings](/reference/settings/session-settings). +For more information, see [Settings](/core/reference/settings/session-settings). diff --git a/reference/statements/show.mdx b/core/reference/statements/show.mdx similarity index 87% rename from reference/statements/show.mdx rename to core/reference/statements/show.mdx index 89770171..beb12372 100644 --- a/reference/statements/show.mdx +++ b/core/reference/statements/show.mdx @@ -10,10 +10,10 @@ doc_type: 'reference' `SHOW CREATE (TABLE|DATABASE|USER)` hides secrets unless the following settings are turned on: -- [`display_secrets_in_show_and_select`](/reference/settings/server-settings/settings#display_secrets_in_show_and_select) (server setting) -- [`format_display_secrets_in_show_and_select` ](/reference/settings/formats#format_display_secrets_in_show_and_select) (format setting) +- [`display_secrets_in_show_and_select`](/core/reference/settings/server-settings/settings#display_secrets_in_show_and_select) (server setting) +- [`format_display_secrets_in_show_and_select` ](/core/reference/settings/formats#format_display_secrets_in_show_and_select) (format setting) -Additionally, the user should have the [`displaySecretsInShowAndSelect`](/reference/statements/grant#displaysecretsinshowandselect) privilege. +Additionally, the user should have the [`displaySecretsInShowAndSelect`](/core/reference/statements/grant#displaysecretsinshowandselect) privilege. ## SHOW CREATE TABLE | DICTIONARY | VIEW | DATABASE {#show-create-table--dictionary--view--database} @@ -105,7 +105,7 @@ SHOW DATABASES LIMIT 2 ### See also {#see-also} -- [`CREATE DATABASE`](/reference/statements/create/database) +- [`CREATE DATABASE`](/core/reference/statements/create/database) ## SHOW TABLES {#show-tables} @@ -182,7 +182,7 @@ SHOW TABLES FROM system LIMIT 2 ### See also {#see-also-1} -- [`Create Tables`](/reference/statements/create/table) +- [`Create Tables`](/core/reference/statements/create/table) - [`SHOW CREATE TABLE`](#show-create-table--dictionary--view--database) ## SHOW COLUMNS {#show_columns} @@ -235,11 +235,11 @@ SHOW COLUMNS FROM 'orders' LIKE 'delivery_%' ### See also {#see-also-2} -- [`system.columns`](/reference/system-tables/columns) +- [`system.columns`](/core/reference/system-tables/columns) ## SHOW DICTIONARIES {#show-dictionaries} -The `SHOW DICTIONARIES` statement displays a list of [Dictionaries](/reference/statements/create/dictionary). +The `SHOW DICTIONARIES` statement displays a list of [Dictionaries](/core/reference/statements/create/dictionary). ### Syntax {#syntax-4} @@ -274,8 +274,8 @@ SHOW DICTIONARIES FROM db LIKE '%reg%' LIMIT 2 Displays a list of primary and data skipping indexes of a table. -This statement mostly exists for compatibility with MySQL. System tables [`system.tables`](/reference/system-tables/tables) (for -primary keys) and [`system.data_skipping_indices`](/reference/system-tables/data_skipping_indices) (for data skipping indices) +This statement mostly exists for compatibility with MySQL. System tables [`system.tables`](/core/reference/system-tables/tables) (for +primary keys) and [`system.data_skipping_indices`](/core/reference/system-tables/data_skipping_indices) (for data skipping indices) provide equivalent information but in a fashion more native to ClickHouse. ### Syntax {#syntax-5} @@ -330,12 +330,12 @@ SHOW INDEX FROM 'tbl' ### See also {#see-also-3} -- [`system.tables`](/reference/system-tables/tables) -- [`system.data_skipping_indices`](/reference/system-tables/data_skipping_indices) +- [`system.tables`](/core/reference/system-tables/tables) +- [`system.data_skipping_indices`](/core/reference/system-tables/data_skipping_indices) ## SHOW PROCESSLIST {#show-processlist} -Outputs the content of the [`system.processes`](/reference/system-tables/processes) table, that contains a list of queries that are being processed at the moment, excluding `SHOW PROCESSLIST` queries. +Outputs the content of the [`system.processes`](/core/reference/system-tables/processes) table, that contains a list of queries that are being processed at the moment, excluding `SHOW PROCESSLIST` queries. ### Syntax {#syntax-6} @@ -371,7 +371,7 @@ The `FINAL` modifier merges all grants from the user and its granted roles (with ## SHOW CREATE USER {#show-create-user} -The `SHOW CREATE USER` statement shows parameters which were used at [user creation](/reference/statements/create/user). +The `SHOW CREATE USER` statement shows parameters which were used at [user creation](/core/reference/statements/create/user). ### Syntax {#syntax-8} @@ -381,7 +381,7 @@ SHOW CREATE USER [name1 [, name2 ...] | CURRENT_USER] ## SHOW CREATE ROLE {#show-create-role} -The `SHOW CREATE ROLE` statement shows parameters which were used at [role creation](/reference/statements/create/role). +The `SHOW CREATE ROLE` statement shows parameters which were used at [role creation](/core/reference/statements/create/role). ### Syntax {#syntax-9} @@ -391,7 +391,7 @@ SHOW CREATE ROLE name1 [, name2 ...] ## SHOW CREATE ROW POLICY {#show-create-row-policy} -The `SHOW CREATE ROW POLICY` statement shows parameters which were used at [row policy creation](/reference/statements/create/row-policy). +The `SHOW CREATE ROW POLICY` statement shows parameters which were used at [row policy creation](/core/reference/statements/create/row-policy). ### Syntax {#syntax-10} @@ -401,7 +401,7 @@ SHOW CREATE [ROW] POLICY name ON [database1.]table1 [, [database2.]table2 ...] ## SHOW CREATE QUOTA {#show-create-quota} -The `SHOW CREATE QUOTA` statement shows parameters which were used at [quota creation](/reference/statements/create/quota). +The `SHOW CREATE QUOTA` statement shows parameters which were used at [quota creation](/core/reference/statements/create/quota). ### Syntax {#syntax-11} @@ -411,7 +411,7 @@ SHOW CREATE QUOTA [name1 [, name2 ...] | CURRENT] ## SHOW CREATE SETTINGS PROFILE {#show-create-settings-profile} -The `SHOW CREATE SETTINGS PROFILE` statement shows parameters which were used at [settings profile creation](/reference/statements/create/settings-profile). +The `SHOW CREATE SETTINGS PROFILE` statement shows parameters which were used at [settings profile creation](/core/reference/statements/create/settings-profile). ### Syntax {#syntax-12} @@ -421,8 +421,8 @@ SHOW CREATE [SETTINGS] PROFILE name1 [, name2 ...] ## SHOW USERS {#show-users} -The `SHOW USERS` statement returns a list of [user account](/concepts/features/security/access-rights#user-account-management) names. -To view user accounts parameters, see the system table [`system.users`](/reference/system-tables/users). +The `SHOW USERS` statement returns a list of [user account](/core/concepts/features/security/access-rights#user-account-management) names. +To view user accounts parameters, see the system table [`system.users`](/core/reference/system-tables/users). ### Syntax {#syntax-13} @@ -432,9 +432,9 @@ SHOW USERS ## SHOW ROLES {#show-roles} -The `SHOW ROLES` statement returns a list of [roles](/concepts/features/security/access-rights#role-management). +The `SHOW ROLES` statement returns a list of [roles](/core/concepts/features/security/access-rights#role-management). To view other parameters, -see system tables [`system.roles`](/reference/system-tables/roles) and [`system.role_grants`](/reference/system-tables/role_grants). +see system tables [`system.roles`](/core/reference/system-tables/roles) and [`system.role_grants`](/core/reference/system-tables/role_grants). ### Syntax {#syntax-14} @@ -443,8 +443,8 @@ SHOW [CURRENT|ENABLED] ROLES ``` ## SHOW PROFILES {#show-profiles} -The `SHOW PROFILES` statement returns a list of [setting profiles](/concepts/features/security/access-rights#settings-profiles-management). -To view user accounts parameters, see system table [`settings_profiles`](/reference/system-tables/settings_profiles). +The `SHOW PROFILES` statement returns a list of [setting profiles](/core/concepts/features/security/access-rights#settings-profiles-management). +To view user accounts parameters, see system table [`settings_profiles`](/core/reference/system-tables/settings_profiles). ### Syntax {#syntax-15} @@ -454,8 +454,8 @@ SHOW [SETTINGS] PROFILES ## SHOW POLICIES {#show-policies} -The `SHOW POLICIES` statement returns a list of [row policies](/concepts/features/security/access-rights#row-policy-management) for the specified table. -To view user accounts parameters, see system table [`system.row_policies`](/reference/system-tables/row_policies). +The `SHOW POLICIES` statement returns a list of [row policies](/core/concepts/features/security/access-rights#row-policy-management) for the specified table. +To view user accounts parameters, see system table [`system.row_policies`](/core/reference/system-tables/row_policies). ### Syntax {#syntax-16} @@ -465,8 +465,8 @@ SHOW [ROW] POLICIES [ON [db.]table] ## SHOW QUOTAS {#show-quotas} -The `SHOW QUOTAS` statement returns a list of [quotas](/concepts/features/security/access-rights#quotas-management). -To view quotas parameters, see the system table [`system.quotas`](/reference/system-tables/quotas). +The `SHOW QUOTAS` statement returns a list of [quotas](/core/concepts/features/security/access-rights#quotas-management). +To view quotas parameters, see the system table [`system.quotas`](/core/reference/system-tables/quotas). ### Syntax {#syntax-17} @@ -476,8 +476,8 @@ SHOW QUOTAS ## SHOW QUOTA {#show-quota} -The `SHOW QUOTA` statement returns a [quota](/concepts/features/configuration/server-config/quotas) consumption for all users or for current user. -To view other parameters, see system tables [`system.quotas_usage`](/reference/system-tables/quotas_usage) and [`system.quota_usage`](/reference/system-tables/quota_usage). +The `SHOW QUOTA` statement returns a [quota](/core/concepts/features/configuration/server-config/quotas) consumption for all users or for current user. +To view other parameters, see system tables [`system.quotas_usage`](/core/reference/system-tables/quotas_usage) and [`system.quota_usage`](/core/reference/system-tables/quota_usage). ### Syntax {#syntax-18} @@ -486,7 +486,7 @@ SHOW [CURRENT] QUOTA ``` ## SHOW ACCESS {#show-access} -The `SHOW ACCESS` statement shows all [users](/concepts/features/security/access-rights#user-account-management), [roles](/concepts/features/security/access-rights#role-management), [profiles](/concepts/features/security/access-rights#settings-profiles-management), etc. and all their [grants](/reference/statements/grant#privileges). +The `SHOW ACCESS` statement shows all [users](/core/concepts/features/security/access-rights#user-account-management), [roles](/core/concepts/features/security/access-rights#role-management), [profiles](/core/concepts/features/security/access-rights#settings-profiles-management), etc. and all their [grants](/core/reference/statements/grant#privileges). ### Syntax {#syntax-19} @@ -497,7 +497,7 @@ SHOW ACCESS ## SHOW CLUSTER(S) {#show-clusters} The `SHOW CLUSTER(S)` statement returns a list of clusters. -All available clusters are listed in the [`system.clusters`](/reference/system-tables/clusters) table. +All available clusters are listed in the [`system.clusters`](/core/reference/system-tables/clusters) table. The `SHOW CLUSTER name` query displays `cluster`, `shard_num`, `replica_num`, `host_name`, `host_address`, and `port` of the `system.clusters` table for the specified cluster name. @@ -555,7 +555,7 @@ port: 9000 ## SHOW SETTINGS {#show-settings} The `SHOW SETTINGS` statement returns a list of system settings and their values. -It selects data from the [`system.settings`](/reference/system-tables/settings) table. +It selects data from the [`system.settings`](/core/reference/system-tables/settings) table. ### Syntax {#syntax-21} @@ -621,7 +621,7 @@ SHOW SETTING ### See also {#see-also-4} -- [`system.settings`](/reference/system-tables/settings) table +- [`system.settings`](/core/reference/system-tables/settings) table ## SHOW FILESYSTEM CACHES {#show-filesystem-caches} @@ -639,11 +639,11 @@ SHOW FILESYSTEM CACHES ### See also {#see-also-5} -- [`system.settings`](/reference/system-tables/settings) table +- [`system.settings`](/core/reference/system-tables/settings) table ## SHOW ENGINES {#show-engines} -The `SHOW ENGINES` statement outputs the content of the [`system.table_engines`](/reference/system-tables/table_engines) table, +The `SHOW ENGINES` statement outputs the content of the [`system.table_engines`](/core/reference/system-tables/table_engines) table, that contains description of table engines supported by server and their feature support information. ### Syntax {#syntax-23} @@ -654,11 +654,11 @@ SHOW ENGINES [INTO OUTFILE filename] [FORMAT format] ### See also {#see-also-6} -- [system.table_engines](/reference/system-tables/table_engines) table +- [system.table_engines](/core/reference/system-tables/table_engines) table ## SHOW FUNCTIONS {#show-functions} -The `SHOW FUNCTIONS` statement outputs the content of the [`system.functions`](/reference/system-tables/functions) table. +The `SHOW FUNCTIONS` statement outputs the content of the [`system.functions`](/core/reference/system-tables/functions) table. ### Syntax {#syntax-24} @@ -670,12 +670,12 @@ If either `LIKE` or `ILIKE` clause is specified, the query returns a list of sys ### See Also {#see-also-7} -- [`system.functions`](/reference/system-tables/functions) table +- [`system.functions`](/core/reference/system-tables/functions) table ## SHOW MERGES {#show-merges} The `SHOW MERGES` statement returns a list of merges. -All merges are listed in the [`system.merges`](/reference/system-tables/merges) table: +All merges are listed in the [`system.merges`](/core/reference/system-tables/merges) table: | Column | Description | |---------------------|------------------------------------------------------------| @@ -718,7 +718,7 @@ SHOW MERGES LIKE 'your_t%' LIMIT 1; ## SHOW CREATE MASKING POLICY {#show-create-masking-policy} -The `SHOW CREATE MASKING POLICY` statement shows parameters which were used at [masking policy creation](/reference/statements/create/masking-policy). +The `SHOW CREATE MASKING POLICY` statement shows parameters which were used at [masking policy creation](/core/reference/statements/create/masking-policy). ### Syntax {#syntax-26} diff --git a/reference/statements/system.mdx b/core/reference/statements/system.mdx similarity index 85% rename from reference/statements/system.mdx rename to core/reference/statements/system.mdx index 81aa69e9..dd8540b7 100644 --- a/reference/statements/system.mdx +++ b/core/reference/statements/system.mdx @@ -10,14 +10,14 @@ import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/ ## SYSTEM RELOAD EMBEDDED DICTIONARIES {#reload-embedded-dictionaries} -Reload all [Internal dictionaries](/reference/statements/create/dictionary). +Reload all [Internal dictionaries](/core/reference/statements/create/dictionary). By default, internal dictionaries are disabled. Always returns `Ok.` regardless of the result of the internal dictionary update. ## SYSTEM RELOAD DICTIONARIES {#reload-dictionaries} -The `SYSTEM RELOAD DICTIONARIES` query reloads dictionaries with a status of `LOADED` (see the `status` column of [`system.dictionaries`](/reference/system-tables/dictionaries)), i.e dictionaries that have been successfully loaded before. -By default, dictionaries are loaded lazily (see [dictionaries_lazy_load](/reference/settings/server-settings/settings#dictionaries_lazy_load)), so instead of being loaded automatically at startup, they are initialized on first access through use of the [`dictGet`](/reference/functions/regular-functions/ext-dict-functions#dictGet) function or use of `SELECT` from tables with `ENGINE = Dictionary`. +The `SYSTEM RELOAD DICTIONARIES` query reloads dictionaries with a status of `LOADED` (see the `status` column of [`system.dictionaries`](/core/reference/system-tables/dictionaries)), i.e dictionaries that have been successfully loaded before. +By default, dictionaries are loaded lazily (see [dictionaries_lazy_load](/core/reference/settings/server-settings/settings#dictionaries_lazy_load)), so instead of being loaded automatically at startup, they are initialized on first access through use of the [`dictGet`](/core/reference/functions/regular-functions/ext-dict-functions#dictGet) function or use of `SELECT` from tables with `ENGINE = Dictionary`. **Syntax** @@ -67,7 +67,7 @@ SYSTEM RELOAD MODEL [ON CLUSTER cluster_name] ## SYSTEM RELOAD FUNCTIONS {#reload-functions} -Reloads all registered [executable user defined functions](/reference/functions/regular-functions/udf#executable-user-defined-functions) or one of them from a configuration file. +Reloads all registered [executable user defined functions](/core/reference/functions/regular-functions/udf#executable-user-defined-functions) or one of them from a configuration file. **Syntax** @@ -78,7 +78,7 @@ SYSTEM RELOAD FUNCTION [ON CLUSTER cluster_name] function_name ## SYSTEM RELOAD ASYNCHRONOUS METRICS {#reload-asynchronous-metrics} -Re-calculates all [asynchronous metrics](/reference/system-tables/asynchronous_metrics). Since asynchronous metrics are periodically updated based on setting [asynchronous_metrics_update_period_s](/reference/settings/server-settings/settings), updating them manually using this statement is typically not necessary. +Re-calculates all [asynchronous metrics](/core/reference/system-tables/asynchronous_metrics). Since asynchronous metrics are periodically updated based on setting [asynchronous_metrics_update_period_s](/core/reference/settings/server-settings/settings), updating them manually using this statement is typically not necessary. ```sql SYSTEM RELOAD ASYNCHRONOUS METRICS [ON CLUSTER cluster_name] @@ -149,13 +149,13 @@ Similar to `SYSTEM DROP REPLICA`, but removes the `Replicated` database replica ## SYSTEM CLEAR|DROP UNCOMPRESSED CACHE {#drop-uncompressed-cache} Clears the uncompressed data cache. -The uncompressed data cache is enabled/disabled with the query/user/profile-level setting [`use_uncompressed_cache`](/reference/settings/session-settings#use_uncompressed_cache). -Its size can be configured using the server-level setting [`uncompressed_cache_size`](/reference/settings/server-settings/settings#uncompressed_cache_size). +The uncompressed data cache is enabled/disabled with the query/user/profile-level setting [`use_uncompressed_cache`](/core/reference/settings/session-settings#use_uncompressed_cache). +Its size can be configured using the server-level setting [`uncompressed_cache_size`](/core/reference/settings/server-settings/settings#uncompressed_cache_size). ## SYSTEM CLEAR|DROP COMPILED EXPRESSION CACHE {#drop-compiled-expression-cache} Clears the compiled expression cache. -The compiled expression cache is enabled/disabled with the query/user/profile-level setting [`compile_expressions`](/reference/settings/session-settings#compile_expressions). +The compiled expression cache is enabled/disabled with the query/user/profile-level setting [`compile_expressions`](/core/reference/settings/session-settings#compile_expressions). ## SYSTEM CLEAR|DROP QUERY CONDITION CACHE {#drop-query-condition-cache} @@ -168,16 +168,16 @@ SYSTEM CLEAR QUERY CACHE; SYSTEM CLEAR QUERY CACHE TAG '' ```` -Clears the [query cache](/concepts/features/performance/caches/query-cache). +Clears the [query cache](/core/concepts/features/performance/caches/query-cache). If a tag is specified, only query cache entries with the specified tag are deleted. ## SYSTEM CLEAR|DROP FORMAT SCHEMA CACHE {#system-drop-schema-format} -Clears cache for schemas loaded from [`format_schema_path`](/reference/settings/server-settings/settings#format_schema_path). +Clears cache for schemas loaded from [`format_schema_path`](/core/reference/settings/server-settings/settings#format_schema_path). Supported targets: - Protobuf: Removes imported Protobuf message definitions from memory. -- Files: Deletes cached schema files stored locally in the [`format_schema_path`](/reference/settings/server-settings/settings#format_schema_path), generated when `format_schema_source` is set to `query`. +- Files: Deletes cached schema files stored locally in the [`format_schema_path`](/core/reference/settings/server-settings/settings#format_schema_path), generated when `format_schema_source` is set to `query`. Note: If no target is specified, both caches are cleared. ```sql @@ -234,8 +234,8 @@ address at the prolog and epilog of those functions that are longer than 200 ins ### SYSTEM INSTRUMENT ADD {#instrument-add} -Adds a new instrumentation point. Functions instrumented can be inspected in the [`system.instrumentation`](/reference/system-tables/instrumentation) system table. More than one handler can be added for the same function, and they will be executed in the same order the instrumentation is added. -The functions to be instrumented can be collected from [`system.symbols`](/reference/system-tables/symbols) system table. +Adds a new instrumentation point. Functions instrumented can be inspected in the [`system.instrumentation`](/core/reference/system-tables/instrumentation) system table. More than one handler can be added for the same function, and they will be executed in the same order the instrumentation is added. +The functions to be instrumented can be collected from [`system.symbols`](/core/reference/system-tables/symbols) system table. There are three different kind of handlers to add to functions: @@ -272,8 +272,8 @@ SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' SLEEP ENTRY 0 1 #### PROFILE {#instrument-add-profile} Measures the time spent between `ENTRY` and `EXIT` of a function. -The result of the profiling is stored in [`system.trace_log`](/reference/system-tables/trace_log) and can be converted -to [Chrome Event Trace Format](/reference/system-tables/trace_log#chrome-event-trace-format). +The result of the profiling is stored in [`system.trace_log`](/core/reference/system-tables/trace_log) and can be converted +to [Chrome Event Trace Format](/core/reference/system-tables/trace_log#chrome-event-trace-format). ```sql SYSTEM INSTRUMENT ADD 'QueryMetricLog::startQuery' PROFILE @@ -305,11 +305,11 @@ or all instrumentation points that match a given function_name: SYSTEM INSTRUMENT REMOVE 'QueryMetricLog::startQuery' ``` -The instrumentation point information can be collected from [`system.instrumentation`](/reference/system-tables/instrumentation) system table. +The instrumentation point information can be collected from [`system.instrumentation`](/core/reference/system-tables/instrumentation) system table. ## Managing Distributed Tables {#managing-distributed-tables} -ClickHouse can manage [distributed](/reference/engines/table-engines/special/distributed) tables. When a user inserts data into these tables, ClickHouse first creates a queue of the data that should be sent to cluster nodes, then asynchronously sends it. You can manage queue processing with the [`STOP DISTRIBUTED SENDS`](#stop-distributed-sends), [FLUSH DISTRIBUTED](#flush-distributed), and [`START DISTRIBUTED SENDS`](#start-distributed-sends) queries. You can also synchronously insert distributed data with the [`distributed_foreground_insert`](/reference/settings/session-settings#distributed_foreground_insert) setting. +ClickHouse can manage [distributed](/core/reference/engines/table-engines/special/distributed) tables. When a user inserts data into these tables, ClickHouse first creates a queue of the data that should be sent to cluster nodes, then asynchronously sends it. You can manage queue processing with the [`STOP DISTRIBUTED SENDS`](#stop-distributed-sends), [FLUSH DISTRIBUTED](#flush-distributed), and [`START DISTRIBUTED SENDS`](#start-distributed-sends) queries. You can also synchronously insert distributed data with the [`distributed_foreground_insert`](/core/reference/settings/session-settings#distributed_foreground_insert) setting. ### SYSTEM STOP DISTRIBUTED SENDS {#stop-distributed-sends} @@ -320,7 +320,7 @@ SYSTEM STOP DISTRIBUTED SENDS [db.] [ON CLUSTER cluster_ ``` -In case of [`prefer_localhost_replica`](/reference/settings/session-settings#prefer_localhost_replica) is enabled (the default), the data to local shard will be inserted anyway. +In case of [`prefer_localhost_replica`](/core/reference/settings/session-settings#prefer_localhost_replica) is enabled (the default), the data to local shard will be inserted anyway. ### SYSTEM FLUSH DISTRIBUTED {#flush-distributed} @@ -372,7 +372,7 @@ SYSTEM START LISTEN [ON CLUSTER cluster_name] [QUERIES ALL | QUERIES DEFAULT | Q ## Managing MergeTree Tables {#managing-mergetree-tables} -ClickHouse can manage background processes in [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables. +ClickHouse can manage background processes in [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables. ### SYSTEM STOP MERGES {#stop-merges} @@ -402,7 +402,7 @@ SYSTEM START MERGES [ON CLUSTER cluster_name] [ON VOLUME | [db.]me -Provides possibility to stop background delete old data according to [TTL expression](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) for tables in the MergeTree family: +Provides possibility to stop background delete old data according to [TTL expression](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) for tables in the MergeTree family: Returns `Ok.` even if table does not exist or table has not MergeTree engine. Returns error when database does not exist: ```sql @@ -413,7 +413,7 @@ SYSTEM STOP TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_n -Provides possibility to start background delete old data according to [TTL expression](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) for tables in the MergeTree family: +Provides possibility to start background delete old data according to [TTL expression](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) for tables in the MergeTree family: Returns `Ok.` even if table does not exist. Returns error when database does not exist: ```sql @@ -422,7 +422,7 @@ SYSTEM START TTL MERGES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_ ### SYSTEM STOP MOVES {#stop-moves} -Provides possibility to stop background move data according to [TTL table expression with TO VOLUME or TO DISK clause](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl) for tables in the MergeTree family: +Provides possibility to stop background move data according to [TTL table expression with TO VOLUME or TO DISK clause](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl) for tables in the MergeTree family: Returns `Ok.` even if table does not exist. Returns error when database does not exist: ```sql @@ -431,7 +431,7 @@ SYSTEM STOP MOVES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ### SYSTEM START MOVES {#start-moves} -Provides possibility to start background move data according to [TTL table expression with TO VOLUME and TO DISK clause](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl) for tables in the MergeTree family: +Provides possibility to start background move data according to [TTL table expression with TO VOLUME and TO DISK clause](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl) for tables in the MergeTree family: Returns `Ok.` even if table does not exist. Returns error when database does not exist: ```sql @@ -440,7 +440,7 @@ SYSTEM START MOVES [ON CLUSTER cluster_name] [[db.]merge_tree_family_table_name] ### SYSTEM SYSTEM UNFREEZE {#query_language-system-unfreeze} -Clears a frozen backup with the specified name from all the disks. See more about unfreezing separate parts in [ALTER TABLE table_name UNFREEZE WITH NAME ](/reference/statements/alter/partition#unfreeze-partition) +Clears a frozen backup with the specified name from all the disks. See more about unfreezing separate parts in [ALTER TABLE table_name UNFREEZE WITH NAME ](/core/reference/statements/alter/partition#unfreeze-partition) ```sql SYSTEM UNFREEZE WITH NAME @@ -456,7 +456,7 @@ SYSTEM WAIT LOADING PARTS [ON CLUSTER cluster_name] [db.]merge_tree_family_table ## Managing ReplicatedMergeTree Tables {#managing-replicatedmergetree-tables} -ClickHouse can manage background replication related processes in [ReplicatedMergeTree](/reference/engines/table-engines/mergetree-family/replication) tables. +ClickHouse can manage background replication related processes in [ReplicatedMergeTree](/core/reference/engines/table-engines/mergetree-family/replication) tables. ### SYSTEM STOP FETCHES {#stop-fetches} @@ -546,7 +546,7 @@ After running this statement the `[db.]replicated_merge_tree_family_table_name` ### SYNC DATABASE REPLICA {#sync-database-replica} -Waits until the specified [replicated database](/reference/engines/database-engines/replicated) applies all schema changes from the DDL queue of that database. +Waits until the specified [replicated database](/core/reference/engines/database-engines/replicated) applies all schema changes from the DDL queue of that database. **Syntax** ```sql @@ -691,9 +691,9 @@ SYSTEM UNLOAD PRIMARY KEY ## Managing Refreshable Materialized Views {#managing-refreshable-materialized-views} -Commands to control background tasks performed by [Refreshable Materialized Views](/reference/statements/create/view#refreshable-materialized-view) +Commands to control background tasks performed by [Refreshable Materialized Views](/core/reference/statements/create/view#refreshable-materialized-view) -Keep an eye on [`system.view_refreshes`](/reference/system-tables/view_refreshes) while using them. +Keep an eye on [`system.view_refreshes`](/core/reference/system-tables/view_refreshes) while using them. ### SYSTEM STOP [REPLICATED] VIEW, STOP VIEWS {#stop-view-stop-views} @@ -775,7 +775,7 @@ SYSTEM CANCEL VIEW [db.]name ## SYSTEM FLUSH OBJECT STORAGE QUEUE {#flush-object-storage-queue} -Blocks until the given file has been processed or permanently failed by the given [S3Queue](/reference/engines/table-engines/integrations/s3queue) or [AzureQueue](/reference/engines/table-engines/integrations/azure-queue) table. Returns immediately if the file was already processed. Raises an error if the file has permanently failed (all retries exhausted). +Blocks until the given file has been processed or permanently failed by the given [S3Queue](/core/reference/engines/table-engines/integrations/s3queue) or [AzureQueue](/core/reference/engines/table-engines/integrations/azure-queue) table. Returns immediately if the file was already processed. Raises an error if the file has permanently failed (all retries exhausted). ```sql SYSTEM FLUSH OBJECT STORAGE QUEUE [db.]table_name PATH 'path' diff --git a/reference/statements/truncate.mdx b/core/reference/statements/truncate.mdx similarity index 84% rename from reference/statements/truncate.mdx rename to core/reference/statements/truncate.mdx index cc15a902..8ff543ee 100644 --- a/reference/statements/truncate.mdx +++ b/core/reference/statements/truncate.mdx @@ -20,9 +20,9 @@ TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC] | `ON CLUSTER cluster`| Runs the command across a specified cluster. | | `SYNC` | Makes the truncation synchronous across replicas when using replicated tables. If omitted, truncation happens asynchronously by default. | -You can use the [alter_sync](/reference/settings/session-settings#alter_sync) setting to set up waiting for actions to be executed on replicas. +You can use the [alter_sync](/core/reference/settings/session-settings#alter_sync) setting to set up waiting for actions to be executed on replicas. -You can specify how long (in seconds) to wait for inactive replicas to execute `TRUNCATE` queries with the [replication_wait_for_inactive_replica_timeout](/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout) setting. +You can specify how long (in seconds) to wait for inactive replicas to execute `TRUNCATE` queries with the [replication_wait_for_inactive_replica_timeout](/core/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout) setting. **** @@ -32,11 +32,11 @@ If the `alter_sync` is set to `2` and some replicas are not active for more than The `TRUNCATE TABLE` query is **not supported** for the following table engines: -- [`View`](/reference/engines/table-engines/special/view) -- [`File`](/reference/engines/table-engines/special/file) -- [`URL`](/reference/engines/table-engines/special/url) -- [`Buffer`](/reference/engines/table-engines/special/buffer) -- [`Null`](/reference/engines/table-engines/special/null) +- [`View`](/core/reference/engines/table-engines/special/view) +- [`File`](/core/reference/engines/table-engines/special/file) +- [`URL`](/core/reference/engines/table-engines/special/url) +- [`Buffer`](/core/reference/engines/table-engines/special/buffer) +- [`Null`](/core/reference/engines/table-engines/special/null) ## TRUNCATE ALL TABLES {#truncate-all-tables} ```sql diff --git a/reference/statements/undrop.mdx b/core/reference/statements/undrop.mdx similarity index 96% rename from reference/statements/undrop.mdx rename to core/reference/statements/undrop.mdx index 4498166f..fac6b178 100644 --- a/reference/statements/undrop.mdx +++ b/core/reference/statements/undrop.mdx @@ -15,7 +15,7 @@ a system table called `system.dropped_tables`. If you have a materialized view without a `TO` clause associated with the dropped table, then you will also have to UNDROP the inner table of that view. -Also see [DROP TABLE](/reference/statements/drop) +Also see [DROP TABLE](/core/reference/statements/drop) Syntax: diff --git a/reference/statements/update.mdx b/core/reference/statements/update.mdx similarity index 68% rename from reference/statements/update.mdx rename to core/reference/statements/update.mdx index cdf5d066..58ec987e 100644 --- a/reference/statements/update.mdx +++ b/core/reference/statements/update.mdx @@ -17,8 +17,8 @@ If you run into problems, kindly open an issue in the [ClickHouse repository](ht The lightweight `UPDATE` statement updates rows in a table `[db.]table` that match the expression `filter_expr`. -It is called "lightweight update" to contrast it to the [`ALTER TABLE ... UPDATE`](/reference/statements/alter/update) query, which is a heavyweight process that rewrites entire columns in data parts. -It is only available for the [`MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) table engine family. +It is called "lightweight update" to contrast it to the [`ALTER TABLE ... UPDATE`](/core/reference/statements/alter/update) query, which is a heavyweight process that rewrites entire columns in data parts. +It is only available for the [`MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree) table engine family. ```sql UPDATE [db.]table [ON CLUSTER cluster] SET column1 = expr1 [, ...] [IN PARTITION partition_expr] WHERE filter_expr; @@ -48,13 +48,13 @@ The updated values are: ## Lightweight updates requirements {#lightweight-update-requirements} -Lightweight updates are supported for [`MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree), [`ReplacingMergeTree`](/reference/engines/table-engines/mergetree-family/replacingmergetree), [`CollapsingMergeTree`](/reference/engines/table-engines/mergetree-family/collapsingmergetree), [`VersionedCollapsingMergeTree`](/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree) engines and their [`Replicated`](/reference/engines/table-engines/mergetree-family/replication) and [`Shared`](/products/cloud/features/infrastructure/shared-merge-tree) versions. +Lightweight updates are supported for [`MergeTree`](/core/reference/engines/table-engines/mergetree-family/mergetree), [`ReplacingMergeTree`](/core/reference/engines/table-engines/mergetree-family/replacingmergetree), [`CollapsingMergeTree`](/core/reference/engines/table-engines/mergetree-family/collapsingmergetree), [`VersionedCollapsingMergeTree`](/core/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree) engines and their [`Replicated`](/core/reference/engines/table-engines/mergetree-family/replication) and [`Shared`](/products/cloud/features/infrastructure/shared-merge-tree) versions. -To use lightweight updates, materialization of `_block_number` and `_block_offset` columns must be enabled using table settings [`enable_block_number_column`](/reference/settings/merge-tree-settings#enable_block_number_column) and [`enable_block_offset_column`](/reference/settings/merge-tree-settings#enable_block_offset_column). +To use lightweight updates, materialization of `_block_number` and `_block_offset` columns must be enabled using table settings [`enable_block_number_column`](/core/reference/settings/merge-tree-settings#enable_block_number_column) and [`enable_block_offset_column`](/core/reference/settings/merge-tree-settings#enable_block_offset_column). ## Lightweight deletes {#lightweight-delete} -A [lightweight `DELETE`](/reference/statements/delete) query can be run as a lightweight `UPDATE` instead of a `ALTER UPDATE` mutation. The implementation of lightweight `DELETE` is controlled by setting [`lightweight_delete_mode`](/reference/settings/session-settings#lightweight_delete_mode). +A [lightweight `DELETE`](/core/reference/statements/delete) query can be run as a lightweight `UPDATE` instead of a `ALTER UPDATE` mutation. The implementation of lightweight `DELETE` is controlled by setting [`lightweight_delete_mode`](/core/reference/settings/session-settings#lightweight_delete_mode). ## Performance considerations {#performance-considerations} @@ -66,14 +66,14 @@ A [lightweight `DELETE`](/reference/statements/delete) query can be run as a lig **Potential performance impacts:** - Adds an overhead to `SELECT` queries that need to apply patches -- [Skipping indexes](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) will not be used for columns in data parts that have patches to be applied. [Projections](/reference/engines/table-engines/mergetree-family/mergetree#projections) will not be used if there are patch parts for table, including for data parts that don't have patches to be applied. +- [Skipping indexes](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-data_skipping-indexes) will not be used for columns in data parts that have patches to be applied. [Projections](/core/reference/engines/table-engines/mergetree-family/mergetree#projections) will not be used if there are patch parts for table, including for data parts that don't have patches to be applied. - Small updates which are too frequent may lead to a "too many parts" error. It is recommended to batch several updates into a single query, for example by putting ids for updates in a single `IN` clause in the `WHERE` clause -- Lightweight updates are designed to update small amounts of rows (up to about 10% of the table). If you need to update a larger amount, it is recommended to use the [`ALTER TABLE ... UPDATE`](/reference/statements/alter/update) mutation +- Lightweight updates are designed to update small amounts of rows (up to about 10% of the table). If you need to update a larger amount, it is recommended to use the [`ALTER TABLE ... UPDATE`](/core/reference/statements/alter/update) mutation ## Concurrent operations {#concurrent-operations} Lightweight updates don't wait for currently running merges/mutations to complete unlike heavy mutations. -The consistency of concurrent lightweight updates is controlled by settings [`update_sequential_consistency`](/reference/settings/session-settings#update_sequential_consistency) and [`update_parallel_mode`](/reference/settings/session-settings#update_parallel_mode). +The consistency of concurrent lightweight updates is controlled by settings [`update_sequential_consistency`](/core/reference/settings/session-settings#update_sequential_consistency) and [`update_parallel_mode`](/core/reference/settings/session-settings#update_parallel_mode). ## Update permissions {#update-permissions} @@ -94,7 +94,7 @@ Patch parts are the same as the regular parts, but contain only updated columns On average it gives about 40 bytes (uncompressed data) of overhead per updated row in the patch parts. System columns help to find rows in the original part which should be updated. -System columns are related to the [virtual columns](/reference/engines/table-engines/mergetree-family/mergetree#virtual-columns) in the original part, which are added for reading if patch parts should be applied. +System columns are related to the [virtual columns](/core/reference/engines/table-engines/mergetree-family/mergetree#virtual-columns) in the original part, which are added for reading if patch parts should be applied. Patch parts are sorted by `_part` and `_part_offset`. Patch parts belong to different partitions than the original part. @@ -102,7 +102,7 @@ The partition id of the patch part is `patch-`, `SET y = 1 WHERE ` and `SET x = 1, y = 1 WHERE ` will create three patch parts in three different partitions. -Patch parts can be merged among themselves to reduce the amount of applied patches on `SELECT` queries and reduce the overhead. Merging of patch parts uses the [replacing](/reference/engines/table-engines/mergetree-family/replacingmergetree) merge algorithm with `_data_version` as a version column. +Patch parts can be merged among themselves to reduce the amount of applied patches on `SELECT` queries and reduce the overhead. Merging of patch parts uses the [replacing](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) merge algorithm with `_data_version` as a version column. Therefore patch parts always store the latest version for each updated row in the part. Lightweight updates don't wait for currently running merges and mutations to finish and always use a current snapshot of data parts to execute an update and produce a patch part. @@ -120,6 +120,6 @@ The join mode is slower and requires more memory than the merge mode, but it is ## Related Content {#related-content} -- [`ALTER UPDATE`](/reference/statements/alter/update) - Heavy `UPDATE` operations -- [Lightweight `DELETE`](/reference/statements/delete) - Lightweight `DELETE` operations -- [`APPLY PATCHES`](/reference/statements/alter/apply-patches) - Force physical materialization of patches to data parts (mutation operation) +- [`ALTER UPDATE`](/core/reference/statements/alter/update) - Heavy `UPDATE` operations +- [Lightweight `DELETE`](/core/reference/statements/delete) - Lightweight `DELETE` operations +- [`APPLY PATCHES`](/core/reference/statements/alter/apply-patches) - Force physical materialization of patches to data parts (mutation operation) diff --git a/reference/statements/use.mdx b/core/reference/statements/use.mdx similarity index 100% rename from reference/statements/use.mdx rename to core/reference/statements/use.mdx diff --git a/reference/statements/watch.mdx b/core/reference/statements/watch.mdx similarity index 100% rename from reference/statements/watch.mdx rename to core/reference/statements/watch.mdx diff --git a/reference/syntax.mdx b/core/reference/syntax.mdx similarity index 92% rename from reference/syntax.mdx rename to core/reference/syntax.mdx index e439eae4..7532913f 100644 --- a/reference/syntax.mdx +++ b/core/reference/syntax.mdx @@ -29,7 +29,7 @@ and the data `(1, 'Hello, world'), (2, 'abc'), (3, 'def')` is parsed by the data You can also turn on the full parser for the data -by using the [`input_format_values_interpret_expressions`](/reference/settings/formats#input_format_values_interpret_expressions) setting. +by using the [`input_format_values_interpret_expressions`](/core/reference/settings/formats#input_format_values_interpret_expressions) setting. When the aforementioned setting is set to `1`, ClickHouse first tries to parse values with the fast stream parser. @@ -37,18 +37,18 @@ If it fails, ClickHouse tries to use the full parser for the data, treating it l The data can have any format. -When a query is received, the server calculates no more than [max_query_size](/reference/settings/session-settings#max_query_size) bytes of the request in RAM +When a query is received, the server calculates no more than [max_query_size](/core/reference/settings/session-settings#max_query_size) bytes of the request in RAM (by default, 1 MB), and the rest is stream parsed. This is to allow for avoiding issues with large `INSERT` queries, which is the recommended way to insert your data in ClickHouse. -When using the [`Values`](/reference/formats/Values) format in an `INSERT` query, +When using the [`Values`](/core/reference/formats/Values) format in an `INSERT` query, it may appear that data is parsed the same as for expressions in a `SELECT` query however this is not the case. The `Values` format is much more limited. The rest of this section covers the full parser. -For more information about format parsers, see the [Formats](/reference/formats) section. +For more information about format parsers, see the [Formats](/core/reference/formats) section. ## Spaces {#spaces} @@ -90,7 +90,7 @@ Keywords are **case-insensitive** when they correspond to: - Implementation in some popular DBMS (MySQL or Postgres). For example, `DateTime` is the same as `datetime`. -You can check whether a data type name is case-sensitive in the [system.data_type_families](/reference/system-tables/data_type_families) table. +You can check whether a data type name is case-sensitive in the [system.data_type_families](/core/reference/system-tables/data_type_families) table. In contrast to standard SQL, all other keywords (including functions names) are **case-sensitive**. @@ -111,7 +111,7 @@ Identifiers are: - Cluster, database, table, partition, and column names. - [Functions](#functions). -- [Data types](/reference/data-types). +- [Data types](/core/reference/data-types). - [Expression aliases](#expression-aliases). Identifiers can be quoted or non-quoted, although the latter is preferred. @@ -223,7 +223,7 @@ This bypasses the above algorithm and parses the integer with a routine that sup Otherwise, the literal will be parsed as a floating-point number and thus subject to loss of precision due to truncation.
    -For more information, see [Data types](/reference/data-types). +For more information, see [Data types](/core/reference/data-types). Underscores `_` inside numeric literals are ignored and can be used for better readability. @@ -252,20 +252,20 @@ An array must consist of at least one item, and a tuple must have at least two i There is a separate case when tuples appear in the `IN` clause of a `SELECT` query. -Query results can include tuples, but tuples cannot be saved to a database (except for tables using the [Memory](/reference/engines/table-engines/special/memory) engine). +Query results can include tuples, but tuples cannot be saved to a database (except for tables using the [Memory](/core/reference/engines/table-engines/special/memory) engine). ### NULL {#null} `NULL` is used to indicate that a value is missing. -To store `NULL` in a table field, it must be of the [Nullable](/reference/data-types/nullable) type. +To store `NULL` in a table field, it must be of the [Nullable](/core/reference/data-types/nullable) type. The following should be noted for `NULL`: -- Depending on the data format (input or output), `NULL` may have a different representation. For more information, see [data formats](/reference/formats). +- Depending on the data format (input or output), `NULL` may have a different representation. For more information, see [data formats](/core/reference/formats). - `NULL` processing is nuanced. For example, if at least one of the arguments of a comparison operation is `NULL`, the result of this operation is also `NULL`. The same is true for multiplication, addition, and other operations. We recommend to read the documentation for each operation. -- In queries, you can check `NULL` using the [`IS NULL`](/reference/functions/regular-functions/functions-for-nulls#isNull) and [`IS NOT NULL`](/reference/functions/regular-functions/functions-for-nulls#isNotNull) operators and the related functions `isNull` and `isNotNull`. +- In queries, you can check `NULL` using the [`IS NULL`](/core/reference/functions/regular-functions/functions-for-nulls#isNull) and [`IS NOT NULL`](/core/reference/functions/regular-functions/functions-for-nulls#isNotNull) operators and the related functions `isNull` and `isNotNull`. ### Heredoc {#heredoc} @@ -371,8 +371,8 @@ now() ``` There are also: -- [Regular functions](/reference/functions/regular-functions/overview). -- [Aggregate functions](/reference/functions/aggregate-functions). +- [Regular functions](/core/reference/functions/regular-functions/overview). +- [Aggregate functions](/core/reference/functions/aggregate-functions). Some aggregate functions can contain two lists of arguments in brackets. For example: @@ -409,9 +409,9 @@ Data types and table engines in the `CREATE` query are written the same way as i In other words, they may or may not contain an argument list in brackets. For more information, see the sections: -- [Data types](/reference/data-types) -- [Table engines](/reference/engines/table-engines) -- [CREATE](/reference/statements/create). +- [Data types](/core/reference/data-types) +- [Table engines](/core/reference/engines/table-engines) +- [CREATE](/core/reference/statements/create). ## Expressions {#expressions} @@ -444,7 +444,7 @@ The parts of the syntax above are explained below. | Part of syntax | Description | Example | Notes | |----------------|--------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------| -| `AS` | The keyword for defining aliases. You can define the alias for a table name or a column name in a `SELECT` clause without using the `AS` keyword.| `SELECT table_name_alias.column_name FROM table_name table_name_alias`. | In the [CAST](/reference/functions/regular-functions/type-conversion-functions#CAST) function, the `AS` keyword has another meaning. See the description of the function. | +| `AS` | The keyword for defining aliases. You can define the alias for a table name or a column name in a `SELECT` clause without using the `AS` keyword.| `SELECT table_name_alias.column_name FROM table_name table_name_alias`. | In the [CAST](/core/reference/functions/regular-functions/type-conversion-functions#CAST) function, the `AS` keyword has another meaning. See the description of the function. | | `expr` | Any expression supported by ClickHouse. | `SELECT column_name * 2 AS double FROM some_table` | | | `alias` | Name for `expr`. Aliases should comply with the [identifiers](#identifiers) syntax. | `SELECT "table t".column_name FROM table_name AS "table t"`. | | @@ -494,10 +494,10 @@ ClickHouse substituted the literal `b` in the expression `argMax(a, b)` with the This substitution caused the exception. -You can change this default behavior by setting [prefer_column_name_to_alias](/reference/settings/session-settings#prefer_column_name_to_alias) to `1`. +You can change this default behavior by setting [prefer_column_name_to_alias](/core/reference/settings/session-settings#prefer_column_name_to_alias) to `1`. ## Asterisk {#asterisk} In a `SELECT` query, an asterisk can replace the expression. -For more information, see the section [SELECT](/reference/statements/select#asterisk). +For more information, see the section [SELECT](/core/reference/statements/select#asterisk). diff --git a/reference/system-tables/aggregate_function_combinators.mdx b/core/reference/system-tables/aggregate_function_combinators.mdx similarity index 76% rename from reference/system-tables/aggregate_function_combinators.mdx rename to core/reference/system-tables/aggregate_function_combinators.mdx index abb411e1..a00c62f1 100644 --- a/reference/system-tables/aggregate_function_combinators.mdx +++ b/core/reference/system-tables/aggregate_function_combinators.mdx @@ -13,6 +13,6 @@ Contains a list of all available aggregate function combinators, which could be ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — The name of the combinator. -- `is_internal` ([UInt8](/reference/data-types)) — Whether this combinator is for internal usage only. +- `name` ([String](/core/reference/data-types)) — The name of the combinator. +- `is_internal` ([UInt8](/core/reference/data-types)) — Whether this combinator is for internal usage only. {/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/aggregated_zookeeper_log.mdx b/core/reference/system-tables/aggregated_zookeeper_log.mdx similarity index 53% rename from reference/system-tables/aggregated_zookeeper_log.mdx rename to core/reference/system-tables/aggregated_zookeeper_log.mdx index 074c03ad..bfa15bf1 100644 --- a/reference/system-tables/aggregated_zookeeper_log.mdx +++ b/core/reference/system-tables/aggregated_zookeeper_log.mdx @@ -11,27 +11,27 @@ doc_type: 'reference' This table contains aggregated statistics of ZooKeeper operations (e.g. number of operations, average latency, errors) grouped by `(session_id, parent_path, operation, component, is_subrequest)` and periodically flushed to disk. -Unlike [system.zookeeper_log](/reference/system-tables/zookeeper_log) which logs every individual request and response, this table aggregates operations into groups, making it much more lightweight and therefore more suitable for production workloads. +Unlike [system.zookeeper_log](/core/reference/system-tables/zookeeper_log) which logs every individual request and response, this table aggregates operations into groups, making it much more lightweight and therefore more suitable for production workloads. Operations that are part of a `Multi` or `MultiRead` batch are tracked separately via the `is_subrequest` column. Subrequests have zero latency because the total latency is attributed to the enclosing `Multi`/`MultiRead` operation. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server. -- `event_date` ([Date](/reference/data-types/date)) — Date the group was flushed. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Time the group was flushed. -- `session_id` ([Int64](/reference/data-types/int-uint)) — Session id. -- `parent_path` ([String](/reference/data-types/string)) — Prefix of the path. -- `operation` ([Enum16('Close' = -11, 'Error' = -1, 'Watch' = 0, 'Create' = 1, 'Remove' = 2, 'Exists' = 3, 'Get' = 4, 'Set' = 5, 'GetACL' = 6, 'SetACL' = 7, 'SimpleList' = 8, 'Sync' = 9, 'Heartbeat' = 11, 'List' = 12, 'Check' = 13, 'Multi' = 14, 'Create2' = 15, 'Reconfig' = 16, 'CheckWatch' = 17, 'RemoveWatch' = 18, 'MultiRead' = 22, 'Auth' = 100, 'SetWatch' = 101, 'SetWatch2' = 105, 'AddWatch' = 106, 'FilteredList' = 500, 'CheckNotExists' = 501, 'CreateIfNotExists' = 502, 'RemoveRecursive' = 503, 'CheckStat' = 504, 'TryRemove' = 505, 'FilteredListWithStatsAndData' = 506, 'ListRecursive' = 507, 'SessionID' = 997)](/reference/data-types/enum)) — Type of ZooKeeper operation. -- `is_subrequest` ([UInt8](/reference/data-types/int-uint)) — Whether this operation was a subrequest inside a Multi or MultiRead operation. -- `count` ([UInt32](/reference/data-types/int-uint)) — Number of operations in the (session_id, parent_path, operation, component, is_subrequest) group. -- `errors` ([Map(Enum8('ZNOWATCHER' = -121, 'ZNOTREADONLY' = -119, 'ZSESSIONMOVED' = -118, 'ZNOTHING' = -117, 'ZCLOSING' = -116, 'ZAUTHFAILED' = -115, 'ZINVALIDACL' = -114, 'ZINVALIDCALLBACK' = -113, 'ZSESSIONEXPIRED' = -112, 'ZNOTEMPTY' = -111, 'ZNODEEXISTS' = -110, 'ZNOCHILDRENFOREPHEMERALS' = -108, 'ZBADVERSION' = -103, 'ZNOAUTH' = -102, 'ZNONODE' = -101, 'ZAPIERROR' = -100, 'ZOUTOFMEMORY' = -10, 'ZINVALIDSTATE' = -9, 'ZBADARGUMENTS' = -8, 'ZOPERATIONTIMEOUT' = -7, 'ZUNIMPLEMENTED' = -6, 'ZMARSHALLINGERROR' = -5, 'ZCONNECTIONLOSS' = -4, 'ZDATAINCONSISTENCY' = -3, 'ZRUNTIMEINCONSISTENCY' = -2, 'ZSYSTEMERROR' = -1, 'ZOK' = 0), UInt32)](/reference/data-types/map)) — Errors in the (session_id, parent_path, operation, component, is_subrequest) group. -- `average_latency` ([Float64](/reference/data-types/float)) — Average latency across all operations in (session_id, parent_path, operation, component, is_subrequest) group, in microseconds. Subrequests have zero latency because the latency is attributed to the enclosing Multi or MultiRead operation. -- `component` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Component that caused the event. +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server. +- `event_date` ([Date](/core/reference/data-types/date)) — Date the group was flushed. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Time the group was flushed. +- `session_id` ([Int64](/core/reference/data-types/int-uint)) — Session id. +- `parent_path` ([String](/core/reference/data-types/string)) — Prefix of the path. +- `operation` ([Enum16('Close' = -11, 'Error' = -1, 'Watch' = 0, 'Create' = 1, 'Remove' = 2, 'Exists' = 3, 'Get' = 4, 'Set' = 5, 'GetACL' = 6, 'SetACL' = 7, 'SimpleList' = 8, 'Sync' = 9, 'Heartbeat' = 11, 'List' = 12, 'Check' = 13, 'Multi' = 14, 'Create2' = 15, 'Reconfig' = 16, 'CheckWatch' = 17, 'RemoveWatch' = 18, 'MultiRead' = 22, 'Auth' = 100, 'SetWatch' = 101, 'SetWatch2' = 105, 'AddWatch' = 106, 'FilteredList' = 500, 'CheckNotExists' = 501, 'CreateIfNotExists' = 502, 'RemoveRecursive' = 503, 'CheckStat' = 504, 'TryRemove' = 505, 'FilteredListWithStatsAndData' = 506, 'ListRecursive' = 507, 'SessionID' = 997)](/core/reference/data-types/enum)) — Type of ZooKeeper operation. +- `is_subrequest` ([UInt8](/core/reference/data-types/int-uint)) — Whether this operation was a subrequest inside a Multi or MultiRead operation. +- `count` ([UInt32](/core/reference/data-types/int-uint)) — Number of operations in the (session_id, parent_path, operation, component, is_subrequest) group. +- `errors` ([Map(Enum8('ZNOWATCHER' = -121, 'ZNOTREADONLY' = -119, 'ZSESSIONMOVED' = -118, 'ZNOTHING' = -117, 'ZCLOSING' = -116, 'ZAUTHFAILED' = -115, 'ZINVALIDACL' = -114, 'ZINVALIDCALLBACK' = -113, 'ZSESSIONEXPIRED' = -112, 'ZNOTEMPTY' = -111, 'ZNODEEXISTS' = -110, 'ZNOCHILDRENFOREPHEMERALS' = -108, 'ZBADVERSION' = -103, 'ZNOAUTH' = -102, 'ZNONODE' = -101, 'ZAPIERROR' = -100, 'ZOUTOFMEMORY' = -10, 'ZINVALIDSTATE' = -9, 'ZBADARGUMENTS' = -8, 'ZOPERATIONTIMEOUT' = -7, 'ZUNIMPLEMENTED' = -6, 'ZMARSHALLINGERROR' = -5, 'ZCONNECTIONLOSS' = -4, 'ZDATAINCONSISTENCY' = -3, 'ZRUNTIMEINCONSISTENCY' = -2, 'ZSYSTEMERROR' = -1, 'ZOK' = 0), UInt32)](/core/reference/data-types/map)) — Errors in the (session_id, parent_path, operation, component, is_subrequest) group. +- `average_latency` ([Float64](/core/reference/data-types/float)) — Average latency across all operations in (session_id, parent_path, operation, component, is_subrequest) group, in microseconds. Subrequests have zero latency because the latency is attributed to the enclosing Multi or MultiRead operation. +- `component` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Component that caused the event. {/*AUTOGENERATED_END*/} ## See also {#see-also} -- [system.zookeeper_log](/reference/system-tables/zookeeper_log) — Detailed per-request ZooKeeper log. -- [ZooKeeper](/guides/oss/best-practices/tips#zookeeper) +- [system.zookeeper_log](/core/reference/system-tables/zookeeper_log) — Detailed per-request ZooKeeper log. +- [ZooKeeper](/core/guides/oss/best-practices/tips#zookeeper) diff --git a/core/reference/system-tables/asynchronous_insert_log.mdx b/core/reference/system-tables/asynchronous_insert_log.mdx new file mode 100644 index 00000000..bcbf5750 --- /dev/null +++ b/core/reference/system-tables/asynchronous_insert_log.mdx @@ -0,0 +1,74 @@ +--- +description: 'System table containing information about async inserts. Each entry + represents an insert query buffered into an async insert query.' +keywords: ['system table', 'asynchronous_insert_log'] +slug: /operations/system-tables/asynchronous_insert_log +title: 'system.asynchronous_insert_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about async inserts. Each entry represents an insert query buffered into an async insert query. + +To start logging configure parameters in the [asynchronous_insert_log](/core/reference/settings/server-settings/settings#asynchronous_insert_log) section. + +The flushing period of data is set in `flush_interval_milliseconds` parameter of the [asynchronous_insert_log](/core/reference/settings/server-settings/settings#asynchronous_insert_log) server settings section. To force flushing, use the [SYSTEM FLUSH LOGS](/core/reference/statements/system#flush-logs) query. + +ClickHouse does not delete data from the table automatically. See [Introduction](/core/reference/system-tables/overview#system-tables-introduction) for more details. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — The date when the async insert happened. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — The date and time when the async insert finished execution. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — The date and time when the async insert finished execution with microseconds precision. +- `query` ([String](/core/reference/data-types/string)) — Query string. +- `database` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — The name of the database the table is in. +- `table` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Table name. +- `format` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Format name. +- `query_id` ([String](/core/reference/data-types/string)) — ID of the initial query. +- `bytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of inserted bytes. +- `rows` ([UInt64](/core/reference/data-types/int-uint)) — Number of inserted rows. +- `exception` ([String](/core/reference/data-types/string)) — Exception message. +- `status` ([Enum8('Ok' = 0, 'ParsingError' = 1, 'FlushError' = 2)](/core/reference/data-types/enum)) — Status of the insert. Values: 'Ok' = 0 — Successful insert, 'ParsingError' = 1 — Exception when parsing the data, 'FlushError' = 2 — Exception when flushing the data. +- `data_kind` ([Enum8('Parsed' = 0, 'Preprocessed' = 1)](/core/reference/data-types/enum)) — The status of the data. Value: 'Parsed' and 'Preprocessed'. +- `flush_time` ([DateTime](/core/reference/data-types/datetime)) — The date and time when the flush happened. +- `flush_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — The date and time when the flush happened with microseconds precision. +- `flush_query_id` ([String](/core/reference/data-types/string)) — ID of the flush query. +- `timeout_milliseconds` ([UInt64](/core/reference/data-types/int-uint)) — The adaptive timeout calculated for this entry. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql title="Query" +SELECT * FROM system.asynchronous_insert_log LIMIT 1 \G; +``` + +```text title="Response" +hostname: clickhouse.eu-central1.internal +event_date: 2023-06-08 +event_time: 2023-06-08 10:08:53 +event_time_microseconds: 2023-06-08 10:08:53.199516 +query: INSERT INTO public.data_guess (user_id, datasource_id, timestamp, path, type, num, str) FORMAT CSV +database: public +table: data_guess +format: CSV +query_id: b46cd4c4-0269-4d0b-99f5-d27668c6102e +bytes: 133223 +exception: +status: Ok +flush_time: 2023-06-08 10:08:55 +flush_time_microseconds: 2023-06-08 10:08:55.139676 +flush_query_id: cd2c1e43-83f5-49dc-92e4-2fbc7f8d3716 +``` + +## See Also {#see-also} + +- [system.query_log](/core/reference/system-tables/query_log) — Description of the `query_log` system table which contains common information about queries execution. +- [system.asynchronous_inserts](/core/reference/system-tables/asynchronous_inserts) — This table contains information about pending asynchronous inserts in queue. diff --git a/core/reference/system-tables/asynchronous_inserts.mdx b/core/reference/system-tables/asynchronous_inserts.mdx new file mode 100644 index 00000000..dcffb31c --- /dev/null +++ b/core/reference/system-tables/asynchronous_inserts.mdx @@ -0,0 +1,53 @@ +--- +description: 'System table containing information about pending asynchronous inserts + in queue.' +keywords: ['system table', 'asynchronous_inserts'] +slug: /operations/system-tables/asynchronous_inserts +title: 'system.asynchronous_inserts' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about pending asynchronous inserts in queue. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `query` ([String](/core/reference/data-types)) — Query text. +- `database` ([String](/core/reference/data-types)) — Database name. +- `table` ([String](/core/reference/data-types)) — Table name. +- `format` ([String](/core/reference/data-types)) — Format name. +- `first_update` ([DateTime64(6)](/core/reference/data-types)) — First insert time with microseconds resolution. +- `total_bytes` ([UInt64](/core/reference/data-types)) — Total number of bytes waiting in the queue. +- `entries.query_id` ([Array(String)](/core/reference/data-types)) — Array of query ids of the inserts waiting in the queue. +- `entries.bytes` ([Array(UInt64)](/core/reference/data-types)) — Array of bytes of each insert query waiting in the queue. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql title="Query" +SELECT * FROM system.asynchronous_inserts LIMIT 1 \G; +``` + +```text title="Response" +Row 1: +────── +query: INSERT INTO public.data_guess (user_id, datasource_id, timestamp, path, type, num, str) FORMAT CSV +database: public +table: data_guess +format: CSV +first_update: 2023-06-08 10:08:54.199606 +total_bytes: 133223 +entries.query_id: ['b46cd4c4-0269-4d0b-99f5-d27668c6102e'] +entries.bytes: [133223] +``` + +## See also {#see-also} + +- [system.query_log](/core/reference/system-tables/query_log) — Description of the `query_log` system table which contains common information about queries execution. +- [system.asynchronous_insert_log](/core/reference/system-tables/asynchronous_insert_log) — This table contains information about async inserts performed. diff --git a/reference/system-tables/asynchronous_loader.mdx b/core/reference/system-tables/asynchronous_loader.mdx similarity index 54% rename from reference/system-tables/asynchronous_loader.mdx rename to core/reference/system-tables/asynchronous_loader.mdx index 1461cb4a..2e91fca0 100644 --- a/reference/system-tables/asynchronous_loader.mdx +++ b/core/reference/system-tables/asynchronous_loader.mdx @@ -18,28 +18,28 @@ Contains information and status for recent asynchronous jobs (e.g. for tables lo ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `job` ([String](/reference/data-types)) — Job name (may be not unique). -- `job_id` ([UInt64](/reference/data-types)) — Unique ID of the job. -- `dependencies` ([Array(UInt64)](/reference/data-types)) — List of IDs of jobs that should be done before this job. -- `dependencies_left` ([UInt64](/reference/data-types)) — Current number of dependencies left to be done. -- `status` ([Enum8('PENDING' = 0, 'OK' = 1, 'FAILED' = 2, 'CANCELED' = 3)](/reference/data-types)) — Current load status of a job: PENDING: Load job is not started yet. OK: Load job executed and was successful. FAILED: Load job executed and failed. CANCELED: Load job is not going to be executed due to removal or dependency failure. -- `is_executing` ([UInt8](/reference/data-types)) — The job is currently being executed by a worker. -- `is_blocked` ([UInt8](/reference/data-types)) — The job waits for its dependencies to be done. -- `is_ready` ([UInt8](/reference/data-types)) — The job is ready to be executed and waits for a worker. -- `elapsed` ([Float64](/reference/data-types)) — Seconds elapsed since start of execution. Zero if job is not started. Total execution time if job finished. -- `pool_id` ([UInt64](/reference/data-types)) — ID of a pool currently assigned to the job. -- `pool` ([String](/reference/data-types)) — Name of `pool_id` pool. -- `priority` ([Int64](/reference/data-types)) — Priority of `pool_id` pool. -- `execution_pool_id` ([UInt64](/reference/data-types)) — ID of a pool the job is executed in. Equals initially assigned pool before execution starts. -- `execution_pool` ([String](/reference/data-types)) — Name of `execution_pool_id` pool. -- `execution_priority` ([Int64](/reference/data-types)) — Priority of execution_pool_id pool. -- `ready_seqno` ([Nullable(UInt64)](/reference/data-types)) — Not null for ready jobs. Worker pulls the next job to be executed from a ready queue of its pool. If there are multiple ready jobs, then job with the lowest value of `ready_seqno` is picked. -- `waiters` ([UInt64](/reference/data-types)) — The number of threads waiting on this job. -- `exception` ([Nullable(String)](/reference/data-types)) — Not null for failed and canceled jobs. Holds error message raised during query execution or error leading to cancelling of this job along with dependency failure chain of job names. -- `schedule_time` ([DateTime64(6)](/reference/data-types)) — Time when job was created and scheduled to be executed (usually with all its dependencies). -- `enqueue_time` ([Nullable(DateTime64(6))](/reference/data-types)) — Time when job became ready and was enqueued into a ready queue of it's pool. Null if the job is not ready yet. -- `start_time` ([Nullable(DateTime64(6))](/reference/data-types)) — Time when worker dequeues the job from ready queue and start its execution. Null if the job is not started yet. -- `finish_time` ([Nullable(DateTime64(6))](/reference/data-types)) — Time when job execution is finished. Null if the job is not finished yet. +- `job` ([String](/core/reference/data-types)) — Job name (may be not unique). +- `job_id` ([UInt64](/core/reference/data-types)) — Unique ID of the job. +- `dependencies` ([Array(UInt64)](/core/reference/data-types)) — List of IDs of jobs that should be done before this job. +- `dependencies_left` ([UInt64](/core/reference/data-types)) — Current number of dependencies left to be done. +- `status` ([Enum8('PENDING' = 0, 'OK' = 1, 'FAILED' = 2, 'CANCELED' = 3)](/core/reference/data-types)) — Current load status of a job: PENDING: Load job is not started yet. OK: Load job executed and was successful. FAILED: Load job executed and failed. CANCELED: Load job is not going to be executed due to removal or dependency failure. +- `is_executing` ([UInt8](/core/reference/data-types)) — The job is currently being executed by a worker. +- `is_blocked` ([UInt8](/core/reference/data-types)) — The job waits for its dependencies to be done. +- `is_ready` ([UInt8](/core/reference/data-types)) — The job is ready to be executed and waits for a worker. +- `elapsed` ([Float64](/core/reference/data-types)) — Seconds elapsed since start of execution. Zero if job is not started. Total execution time if job finished. +- `pool_id` ([UInt64](/core/reference/data-types)) — ID of a pool currently assigned to the job. +- `pool` ([String](/core/reference/data-types)) — Name of `pool_id` pool. +- `priority` ([Int64](/core/reference/data-types)) — Priority of `pool_id` pool. +- `execution_pool_id` ([UInt64](/core/reference/data-types)) — ID of a pool the job is executed in. Equals initially assigned pool before execution starts. +- `execution_pool` ([String](/core/reference/data-types)) — Name of `execution_pool_id` pool. +- `execution_priority` ([Int64](/core/reference/data-types)) — Priority of execution_pool_id pool. +- `ready_seqno` ([Nullable(UInt64)](/core/reference/data-types)) — Not null for ready jobs. Worker pulls the next job to be executed from a ready queue of its pool. If there are multiple ready jobs, then job with the lowest value of `ready_seqno` is picked. +- `waiters` ([UInt64](/core/reference/data-types)) — The number of threads waiting on this job. +- `exception` ([Nullable(String)](/core/reference/data-types)) — Not null for failed and canceled jobs. Holds error message raised during query execution or error leading to cancelling of this job along with dependency failure chain of job names. +- `schedule_time` ([DateTime64(6)](/core/reference/data-types)) — Time when job was created and scheduled to be executed (usually with all its dependencies). +- `enqueue_time` ([Nullable(DateTime64(6))](/core/reference/data-types)) — Time when job became ready and was enqueued into a ready queue of it's pool. Null if the job is not ready yet. +- `start_time` ([Nullable(DateTime64(6))](/core/reference/data-types)) — Time when worker dequeues the job from ready queue and start its execution. Null if the job is not started yet. +- `finish_time` ([Nullable(DateTime64(6))](/core/reference/data-types)) — Time when job execution is finished. Null if the job is not finished yet. {/*AUTOGENERATED_END*/} A pending job might be in one of the following states: diff --git a/reference/system-tables/asynchronous_metric_log.mdx b/core/reference/system-tables/asynchronous_metric_log.mdx similarity index 59% rename from reference/system-tables/asynchronous_metric_log.mdx rename to core/reference/system-tables/asynchronous_metric_log.mdx index 8176bbb7..377575f9 100644 --- a/reference/system-tables/asynchronous_metric_log.mdx +++ b/core/reference/system-tables/asynchronous_metric_log.mdx @@ -18,11 +18,11 @@ Contains the historical values for `system.asynchronous_metrics`, which are save ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Event date. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time. -- `metric` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Metric name. -- `value` ([Float64](/reference/data-types/float)) — Metric value. +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Event date. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time. +- `metric` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Metric name. +- `value` ([Float64](/core/reference/data-types/float)) — Metric value. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -59,6 +59,6 @@ value: 0 **See Also** -- [asynchronous_metric_log setting](/reference/settings/server-settings/settings#asynchronous_metric_log) — Enabling and disabling the setting. -- [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) — Contains metrics, calculated periodically in the background. -- [system.metric_log](/reference/system-tables/metric_log) — Contains history of metrics values from tables `system.metrics` and `system.events`, periodically flushed to disk. +- [asynchronous_metric_log setting](/core/reference/settings/server-settings/settings#asynchronous_metric_log) — Enabling and disabling the setting. +- [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) — Contains metrics, calculated periodically in the background. +- [system.metric_log](/core/reference/system-tables/metric_log) — Contains history of metrics values from tables `system.metrics` and `system.events`, periodically flushed to disk. diff --git a/reference/system-tables/asynchronous_metrics.mdx b/core/reference/system-tables/asynchronous_metrics.mdx similarity index 98% rename from reference/system-tables/asynchronous_metrics.mdx rename to core/reference/system-tables/asynchronous_metrics.mdx index ae80e79c..897c01bd 100644 --- a/reference/system-tables/asynchronous_metrics.mdx +++ b/core/reference/system-tables/asynchronous_metrics.mdx @@ -18,9 +18,9 @@ Contains metrics that are calculated periodically in the background. For example ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `metric` ([String](/reference/data-types/string)) — Metric name. -- `value` ([Float64](/reference/data-types/float)) — Metric value. -- `description` ([String](/reference/data-types/string) - Metric description) +- `metric` ([String](/core/reference/data-types/string)) — Metric name. +- `value` ([Float64](/core/reference/data-types/float)) — Metric value. +- `description` ([String](/core/reference/data-types/string) - Metric description) {/*AUTOGENERATED_END*/} ## Example {#example} @@ -672,7 +672,7 @@ An internal metric of the low-level memory allocator (jemalloc). See https://jem **See Also** -- [Monitoring](/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. -- [system.metrics](/reference/system-tables/metrics) — Contains instantly calculated metrics. -- [system.events](/reference/system-tables/events) — Contains a number of events that have occurred. -- [system.metric_log](/reference/system-tables/metric_log) — Contains a history of metrics values from tables `system.metrics` and `system.events`. +- [Monitoring](/core/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. +- [system.metrics](/core/reference/system-tables/metrics) — Contains instantly calculated metrics. +- [system.events](/core/reference/system-tables/events) — Contains a number of events that have occurred. +- [system.metric_log](/core/reference/system-tables/metric_log) — Contains a history of metrics values from tables `system.metrics` and `system.events`. diff --git a/core/reference/system-tables/azure_queue_log.mdx b/core/reference/system-tables/azure_queue_log.mdx new file mode 100644 index 00000000..00796bf7 --- /dev/null +++ b/core/reference/system-tables/azure_queue_log.mdx @@ -0,0 +1,34 @@ +--- +description: 'Contains log entries with information about files processed by the AzureQueue engine. + +It is safe to truncate or drop this table at any time.' +keywords: ['system table', 'azure_queue_log'] +slug: /operations/system-tables/azure_queue_log +title: 'system.azure_queue_log' +doc_type: 'reference' +--- + +Contains log entries with information about files processed by the AzureQueue engine. + +It is safe to truncate or drop this table at any time. + +Columns: + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname +- `event_date` ([Date](/core/reference/data-types/date)) — Event date of writing this log row +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time of writing this log row +- `database` ([String](/core/reference/data-types/string)) — The name of the database where the queue table (`S3Queue` or `AzureQueue`) lives. +- `table` ([String](/core/reference/data-types/string)) — The name of the queue table (`S3Queue` or `AzureQueue`). +- `uuid` ([String](/core/reference/data-types/string)) — The UUID of the queue table (`S3Queue` or `AzureQueue`). +- `file_name` ([String](/core/reference/data-types/string)) — File name of the processing file. +- `rows_processed` ([UInt64](/core/reference/data-types/int-uint)) — Number of processed rows. +- `status` ([Enum8('Processed' = 0, 'Failed' = 1)](/core/reference/data-types/enum)) — Status of the processing file. +- `processing_start_time` ([Nullable(DateTime)](/core/reference/data-types/nullable)) — Time of the start of processing the file. +- `processing_end_time` ([Nullable(DateTime)](/core/reference/data-types/nullable)) — Time of the end of processing the file. +- `exception` ([String](/core/reference/data-types/string)) — Exception message if happened. +- `commit_id` ([UInt64](/core/reference/data-types/int-uint)) — Id of the transaction in which this file was committed. +- `commit_time` ([DateTime](/core/reference/data-types/datetime)) — Time of committing file in keeper (as either failed or processed). +- `transaction_start_time` ([DateTime](/core/reference/data-types/datetime)) — Time when the whole processing transaction started. +- `get_object_time_ms` ([UInt64](/core/reference/data-types/int-uint)) — Time which took us to find the object in object storage. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/azure_queue_metadata_cache.mdx b/core/reference/system-tables/azure_queue_metadata_cache.mdx new file mode 100644 index 00000000..98fddcf8 --- /dev/null +++ b/core/reference/system-tables/azure_queue_metadata_cache.mdx @@ -0,0 +1,24 @@ +--- +description: 'Contains in-memory state of AzureQueue metadata and currently processed rows per file.' +keywords: ['system table', 'azure_queue_metadata_cache'] +slug: /operations/system-tables/azure_queue_metadata_cache +title: 'system.azure_queue_metadata_cache' +doc_type: 'reference' +--- + +## Description {#description} + +Contains in-memory state of AzureQueue metadata and currently processed rows per file. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `zookeeper_path` ([String](/core/reference/data-types)) — Path in zookeeper to metadata +- `file_path` ([String](/core/reference/data-types)) — File path of a file which is being processed +- `file_name` ([String](/core/reference/data-types)) — File name of a file which is being processed +- `rows_processed` ([UInt64](/core/reference/data-types)) — Currently processed number of rows +- `status` ([String](/core/reference/data-types)) — Status of processing: Processed, Processing, Failed +- `processing_start_time` ([Nullable(DateTime)](/core/reference/data-types)) — Time at which processing of the file started +- `processing_end_time` ([Nullable(DateTime)](/core/reference/data-types)) — Time at which processing of the file ended +- `exception` ([String](/core/reference/data-types)) — Exception which happened during processing +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/azure_queue_settings.mdx b/core/reference/system-tables/azure_queue_settings.mdx new file mode 100644 index 00000000..4f331da3 --- /dev/null +++ b/core/reference/system-tables/azure_queue_settings.mdx @@ -0,0 +1,26 @@ +--- +description: 'System table containing information about settings of AzureQueue tables. + Available from server version `24.10`.' +keywords: ['system table', 'azure_queue_settings'] +slug: /operations/system-tables/azure_queue_settings +title: 'system.azure_queue_settings' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about settings of [AzureQueue](/core/reference/engines/table-engines/integrations/azure-queue) tables. +Available from `24.10` server version. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — Database of the table with AzureQueue engine. +- `table` ([String](/core/reference/data-types)) — Name of the table with AzureQueue engine. +- `name` ([String](/core/reference/data-types)) — Setting name. +- `value` ([String](/core/reference/data-types)) — Setting value. +- `type` ([String](/core/reference/data-types)) — Setting type (implementation specific string value). +- `changed` ([UInt8](/core/reference/data-types)) — 1 if the setting was explicitly defined in the config or explicitly changed. +- `description` ([String](/core/reference/data-types)) — Setting description. +- `alterable` ([UInt8](/core/reference/data-types)) — Shows whether the current user can change the setting via ALTER TABLE MODIFY SETTING: 0 — Current user can't change the setting, 1 — Current user can change the setting. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/background_schedule_pool.mdx b/core/reference/system-tables/background_schedule_pool.mdx new file mode 100644 index 00000000..cbf81f12 --- /dev/null +++ b/core/reference/system-tables/background_schedule_pool.mdx @@ -0,0 +1,57 @@ +--- +description: 'System table containing information about tasks in background schedule pools.' +keywords: ['system table', 'background_schedule_pool'] +slug: /operations/system-tables/background_schedule_pool +title: 'system.background_schedule_pool' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about tasks in background schedule pools. Background schedule pools are used for executing periodic tasks such as distributed sends, buffer flushes, and message broker operations. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `pool` ([String](/core/reference/data-types)) — Pool name. Possible values: `schedule` — general purpose schedule pool, `buffer_flush` — pool for flushing Buffer table data, `distributed` — pool for distributed table operations, `message_broker` — pool for message broker operations. +- `database` ([String](/core/reference/data-types)) — Database name. +- `table` ([String](/core/reference/data-types)) — Table name. +- `table_uuid` ([UUID](/core/reference/data-types)) — Table UUID. +- `query_id` ([String](/core/reference/data-types)) — Query ID (if executing now). Note: this is not a real query, but a randomly generated ID for matching logs in `system.text_log`. +- `elapsed_ms` ([UInt64](/core/reference/data-types)) — Task execution time (if executing now). +- `log_name` ([String](/core/reference/data-types)) — Log name for the task. +- `deactivated` ([UInt8](/core/reference/data-types)) — Whether the task is deactivated (always false, since deactivated tasks are removed from the pool). +- `scheduled` ([UInt8](/core/reference/data-types)) — Whether the task is scheduled for execution. +- `delayed` ([UInt8](/core/reference/data-types)) — Whether the task is scheduled with delay. +- `executing` ([UInt8](/core/reference/data-types)) — Whether the task is currently executing. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql title="Query" +SELECT * FROM system.background_schedule_pool LIMIT 5 FORMAT Vertical; +``` + +```text title="Response" +Row 1: +────── +pool: distributed +database: default +table: data +table_uuid: 00000000-0000-0000-0000-000000000000 +query_id: +elapsed_ms: 0 +log_name: BackgroundJobsAssignee:DataProcessing +deactivated: 0 +scheduled: 1 +delayed: 0 +executing: 0 +``` + +## See also {#see-also} + +- [system.background_schedule_pool_log](/core/reference/system-tables/background_schedule_pool_log) — Contains history of background schedule pool task executions. diff --git a/core/reference/system-tables/background_schedule_pool_log.mdx b/core/reference/system-tables/background_schedule_pool_log.mdx new file mode 100644 index 00000000..cd5cb71e --- /dev/null +++ b/core/reference/system-tables/background_schedule_pool_log.mdx @@ -0,0 +1,63 @@ +--- +description: 'System table containing history of background schedule pool task executions.' +keywords: ['system table', 'background_schedule_pool_log'] +slug: /operations/system-tables/background_schedule_pool_log +title: 'system.background_schedule_pool_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +The `system.background_schedule_pool_log` table is created only if the [background_schedule_pool_log](/core/reference/settings/server-settings/settings#background_schedule_pool_log) server setting is specified. + +This table contains the history of background schedule pool task executions. Background schedule pools are used for executing periodic tasks such as distributed sends, buffer flushes, and message broker operations. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Event date. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Event time with microseconds precision. +- `query_id` ([String](/core/reference/data-types/string)) — Identifier of the query associated with the background task. +- `database` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the database. +- `table` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the table. +- `table_uuid` ([UUID](/core/reference/data-types/uuid)) — UUID of the table the background task belongs to. +- `log_name` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the background task. +- `duration_ms` ([UInt64](/core/reference/data-types/int-uint)) — Duration of the task execution in milliseconds. +- `error` ([UInt16](/core/reference/data-types/int-uint)) — The error code of the occurred exception. +- `exception` ([String](/core/reference/data-types/string)) — Text message of the occurred error. +{/*AUTOGENERATED_END*/} + +The `system.background_schedule_pool_log` table is created after the first background task execution. + +## Example {#example} + +```sql +SELECT * FROM system.background_schedule_pool_log LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +hostname: clickhouse.eu-central1.internal +event_date: 2025-12-18 +event_time: 2025-12-18 10:30:15 +event_time_microseconds: 2025-12-18 10:30:15.123456 +query_id: +database: default +table: data +table_uuid: 00000000-0000-0000-0000-000000000000 +log_name: default.data +duration_ms: 42 +error: 0 +exception: +``` + +## See also {#see-also} + +- [system.background_schedule_pool](/core/reference/system-tables/background_schedule_pool) — Contains information about currently scheduled tasks in background schedule pools. diff --git a/reference/system-tables/backup_log.mdx b/core/reference/system-tables/backup_log.mdx similarity index 71% rename from reference/system-tables/backup_log.mdx rename to core/reference/system-tables/backup_log.mdx index c5a42add..35e0fa5b 100644 --- a/reference/system-tables/backup_log.mdx +++ b/core/reference/system-tables/backup_log.mdx @@ -18,25 +18,25 @@ Contains logging entries with information about `BACKUP` and `RESTORE` operation ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Date of the entry. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Time of the entry. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Time of the entry with microseconds precision. -- `id` ([String](/reference/data-types/string)) — Identifier of the backup or restore operation. -- `name` ([String](/reference/data-types/string)) — Name of the backup storage (the contents of the FROM or TO clause). -- `base_backup_name` ([String](/reference/data-types/string)) — The name of base backup in case incremental one. -- `query_id` ([String](/reference/data-types/string)) — The ID of a query associated with a backup operation. -- `status` ([Enum8('CREATING_BACKUP' = 0, 'BACKUP_CREATED' = 1, 'BACKUP_FAILED' = 2, 'RESTORING' = 3, 'RESTORED' = 4, 'RESTORE_FAILED' = 5, 'BACKUP_CANCELLED' = 6, 'RESTORE_CANCELLED' = 7)](/reference/data-types/enum)) — Operation status. -- `error` ([String](/reference/data-types/string)) — Error message of the failed operation (empty string for successful operations). -- `start_time` ([DateTime64(6)](/reference/data-types/datetime64)) — Start time of the operation. -- `end_time` ([DateTime64(6)](/reference/data-types/datetime64)) — End time of the operation. -- `num_files` ([UInt64](/reference/data-types/int-uint)) — Number of files stored in the backup. -- `total_size` ([UInt64](/reference/data-types/int-uint)) — Total size of files stored in the backup. -- `num_entries` ([UInt64](/reference/data-types/int-uint)) — Number of entries in the backup, i.e. the number of files inside the folder if the backup is stored as a folder, or the number of files inside the archive if the backup is stored as an archive. It is not the same as `num_files` if it's an incremental backup or if it contains empty files or duplicates. The following is always true: `num_entries ≤ num_files`. -- `uncompressed_size` ([UInt64](/reference/data-types/int-uint)) — Uncompressed size of the backup. -- `compressed_size` ([UInt64](/reference/data-types/int-uint)) — Compressed size of the backup. If the backup is not stored as an archive it equals to uncompressed_size. -- `files_read` ([UInt64](/reference/data-types/int-uint)) — Number of files read during the restore operation. -- `bytes_read` ([UInt64](/reference/data-types/int-uint)) — Total size of files read during the restore operation. +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Date of the entry. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Time of the entry. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Time of the entry with microseconds precision. +- `id` ([String](/core/reference/data-types/string)) — Identifier of the backup or restore operation. +- `name` ([String](/core/reference/data-types/string)) — Name of the backup storage (the contents of the FROM or TO clause). +- `base_backup_name` ([String](/core/reference/data-types/string)) — The name of base backup in case incremental one. +- `query_id` ([String](/core/reference/data-types/string)) — The ID of a query associated with a backup operation. +- `status` ([Enum8('CREATING_BACKUP' = 0, 'BACKUP_CREATED' = 1, 'BACKUP_FAILED' = 2, 'RESTORING' = 3, 'RESTORED' = 4, 'RESTORE_FAILED' = 5, 'BACKUP_CANCELLED' = 6, 'RESTORE_CANCELLED' = 7)](/core/reference/data-types/enum)) — Operation status. +- `error` ([String](/core/reference/data-types/string)) — Error message of the failed operation (empty string for successful operations). +- `start_time` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Start time of the operation. +- `end_time` ([DateTime64(6)](/core/reference/data-types/datetime64)) — End time of the operation. +- `num_files` ([UInt64](/core/reference/data-types/int-uint)) — Number of files stored in the backup. +- `total_size` ([UInt64](/core/reference/data-types/int-uint)) — Total size of files stored in the backup. +- `num_entries` ([UInt64](/core/reference/data-types/int-uint)) — Number of entries in the backup, i.e. the number of files inside the folder if the backup is stored as a folder, or the number of files inside the archive if the backup is stored as an archive. It is not the same as `num_files` if it's an incremental backup or if it contains empty files or duplicates. The following is always true: `num_entries ≤ num_files`. +- `uncompressed_size` ([UInt64](/core/reference/data-types/int-uint)) — Uncompressed size of the backup. +- `compressed_size` ([UInt64](/core/reference/data-types/int-uint)) — Compressed size of the backup. If the backup is not stored as an archive it equals to uncompressed_size. +- `files_read` ([UInt64](/core/reference/data-types/int-uint)) — Number of files read during the restore operation. +- `bytes_read` ([UInt64](/core/reference/data-types/int-uint)) — Total size of files read during the restore operation. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -164,4 +164,4 @@ SELECT * FROM system.backups ORDER BY start_time ## See Also {#see-also} -- [Backup and Restore](/concepts/features/backup-restore/overview) +- [Backup and Restore](/core/concepts/features/backup-restore/overview) diff --git a/core/reference/system-tables/backups.mdx b/core/reference/system-tables/backups.mdx new file mode 100644 index 00000000..4f5e866c --- /dev/null +++ b/core/reference/system-tables/backups.mdx @@ -0,0 +1,33 @@ +--- +description: 'System table containing logging entries with information about `BACKUP` + and `RESTORE` operations.' +keywords: ['system table', 'backups'] +slug: /operations/system-tables/backups +title: 'system.backups' +doc_type: 'reference' +--- + +## Description {#description} + +Contains a list of all `BACKUP` or `RESTORE` operations with their current states and other properties. Note, that table is not persistent and it shows only operations executed after the last server restart. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `id` ([String](/core/reference/data-types)) — Operation ID, can be either passed via SETTINGS id=... or be randomly generated UUID. +- `name` ([String](/core/reference/data-types)) — Operation name, a string like `Disk('backups', 'my_backup')` +- `base_backup_name` ([String](/core/reference/data-types)) — Base Backup Operation name, a string like `Disk('backups', 'my_base_backup')` +- `query_id` ([String](/core/reference/data-types)) — Query ID of a query that started backup. +- `status` ([Enum8('CREATING_BACKUP' = 0, 'BACKUP_CREATED' = 1, 'BACKUP_FAILED' = 2, 'RESTORING' = 3, 'RESTORED' = 4, 'RESTORE_FAILED' = 5, 'BACKUP_CANCELLED' = 6, 'RESTORE_CANCELLED' = 7)](/core/reference/data-types)) — Status of backup or restore operation. +- `error` ([String](/core/reference/data-types)) — The error message if any. +- `start_time` ([DateTime64(6)](/core/reference/data-types)) — The time when operation started. +- `end_time` ([DateTime64(6)](/core/reference/data-types)) — The time when operation finished. +- `num_files` ([UInt64](/core/reference/data-types)) — The number of files stored in the backup. +- `total_size` ([UInt64](/core/reference/data-types)) — The total size of files stored in the backup. +- `num_entries` ([UInt64](/core/reference/data-types)) — The number of entries in the backup, i.e. the number of files inside the folder if the backup is stored as a folder. +- `uncompressed_size` ([UInt64](/core/reference/data-types)) — The uncompressed size of the backup. +- `compressed_size` ([UInt64](/core/reference/data-types)) — The compressed size of the backup. +- `files_read` ([UInt64](/core/reference/data-types)) — Returns the number of files read during RESTORE from this backup. +- `bytes_read` ([UInt64](/core/reference/data-types)) — Returns the total size of files read during RESTORE from this backup. +- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/core/reference/data-types)) — All the profile events captured during this operation. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/blob_storage_log.mdx b/core/reference/system-tables/blob_storage_log.mdx new file mode 100644 index 00000000..3c8f9a3c --- /dev/null +++ b/core/reference/system-tables/blob_storage_log.mdx @@ -0,0 +1,69 @@ +--- +description: 'System table containing logging entries with information about various + blob storage operations such as uploads and deletes.' +keywords: ['system table', 'blob_storage_log'] +slug: /operations/system-tables/blob_storage_log +title: 'system.blob_storage_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains logging entries with information about various blob storage operations such as uploads and deletes. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Date of the event. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Time of the event. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Time of the event with microseconds precision. +- `event_type` ([Enum8('Upload' = 1, 'Delete' = 2, 'MultiPartUploadCreate' = 3, 'MultiPartUploadWrite' = 4, 'MultiPartUploadComplete' = 5, 'MultiPartUploadAbort' = 6, 'Read' = 7)](/core/reference/data-types/enum)) — Type of the event. Possible values: 'Upload', 'Delete', 'MultiPartUploadCreate', 'MultiPartUploadWrite', 'MultiPartUploadComplete', 'MultiPartUploadAbort', 'Read' +- `query_id` ([String](/core/reference/data-types/string)) — Identifier of the query associated with the event, if any. +- `thread_id` ([UInt64](/core/reference/data-types/int-uint)) — Identifier of the thread performing the operation. +- `thread_name` ([String](/core/reference/data-types/string)) — Name of the thread performing the operation. +- `disk_name` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the associated disk. +- `bucket` ([String](/core/reference/data-types/string)) — Name of the bucket. +- `remote_path` ([String](/core/reference/data-types/string)) — Path to the remote resource. +- `local_path` ([String](/core/reference/data-types/string)) — Path to the metadata file on the local system, which references the remote resource. +- `data_size` ([UInt64](/core/reference/data-types/int-uint)) — Size of the data involved in the upload event. +- `elapsed_microseconds` ([UInt64](/core/reference/data-types/int-uint)) — Elapsed time for the operation, in microseconds. +- `error_code` ([Int32](/core/reference/data-types/int-uint)) — Error code of the operation. 0 if there was no error. +- `error` ([String](/core/reference/data-types/string)) — Error message associated with the event, if any. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +Suppose a blob storage operation uploads a file, and an event is logged: + +```sql +SELECT * FROM system.blob_storage_log WHERE query_id = '7afe0450-504d-4e4b-9a80-cd9826047972' ORDER BY event_date, event_time_microseconds \G +``` + +```text +Row 1: +────── +hostname: clickhouse.eu-central1.internal +event_date: 2023-10-31 +event_time: 2023-10-31 16:03:40 +event_time_microseconds: 2023-10-31 16:03:40.481437 +event_type: Upload +query_id: 7afe0450-504d-4e4b-9a80-cd9826047972 +thread_id: 2381740 +disk_name: disk_s3 +bucket: bucket1 +remote_path: rrr/kxo/tbnqtrghgtnxkzgtcrlutwuslgawe +local_path: store/654/6549e8b3-d753-4447-8047-d462df6e6dbe/tmp_insert_all_1_1_0/checksums.txt +data_size: 259 +error: +``` + +In this example, upload operation was associated with the `INSERT` query with ID `7afe0450-504d-4e4b-9a80-cd9826047972`. The local metadata file `store/654/6549e8b3-d753-4447-8047-d462df6e6dbe/tmp_insert_all_1_1_0/checksums.txt` refers to remote path `rrr/kxo/tbnqtrghgtnxkzgtcrlutwuslgawe` in bucket `bucket1` on disk `disk_s3`, with a size of 259 bytes. + +## See also {#see-also} + +- [External Disks for Storing Data](/core/concepts/features/configuration/server-config/storing-data) diff --git a/reference/system-tables/build_options.mdx b/core/reference/system-tables/build_options.mdx similarity index 84% rename from reference/system-tables/build_options.mdx rename to core/reference/system-tables/build_options.mdx index c1a5d9de..5c315f3e 100644 --- a/reference/system-tables/build_options.mdx +++ b/core/reference/system-tables/build_options.mdx @@ -13,8 +13,8 @@ Contains information about the ClickHouse server's build options. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Name of the build option. -- `value` ([String](/reference/data-types)) — Value of the build option. +- `name` ([String](/core/reference/data-types)) — Name of the build option. +- `value` ([String](/core/reference/data-types)) — Value of the build option. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/certificates.mdx b/core/reference/system-tables/certificates.mdx new file mode 100644 index 00000000..bd46ae20 --- /dev/null +++ b/core/reference/system-tables/certificates.mdx @@ -0,0 +1,27 @@ +--- +description: 'Contains information about available certificates and their sources.' +keywords: ['system table', 'certificates'] +slug: /operations/system-tables/certificates +title: 'system.certificates' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about available certificates and their sources. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `version` ([Int32](/core/reference/data-types)) — Version of the certificate. Values are 0 for v1, 1 for v2, 2 for v3. +- `serial_number` ([Nullable(String)](/core/reference/data-types)) — Serial Number of the certificate assigned by the issuer. +- `signature_algo` ([Nullable(String)](/core/reference/data-types)) — Signature Algorithm - an algorithm used by the issuer to sign this certificate. +- `issuer` ([Nullable(String)](/core/reference/data-types)) — Issuer - a unique identifier for the Certificate Authority issuing this certificate. +- `not_before` ([Nullable(String)](/core/reference/data-types)) — The beginning of the time window when this certificate is valid. +- `not_after` ([Nullable(String)](/core/reference/data-types)) — The end of the time window when this certificate is valid. +- `subject` ([Nullable(String)](/core/reference/data-types)) — Subject - identifies the owner of the public key. +- `pkey_algo` ([Nullable(String)](/core/reference/data-types)) — Public Key Algorithm defines the algorithm the public key can be used with. +- `path` ([String](/core/reference/data-types)) — Path to the file or directory containing this certificate. +- `default` ([UInt8](/core/reference/data-types)) — Certificate is in the default certificate location. +- `protocol` ([String](/core/reference/data-types)) — Protocol name if certificate is from per-protocol TLS config, otherwise empty. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/clusters.mdx b/core/reference/system-tables/clusters.mdx new file mode 100644 index 00000000..8c64ecc1 --- /dev/null +++ b/core/reference/system-tables/clusters.mdx @@ -0,0 +1,93 @@ +--- +description: 'System table containing information about clusters available in the + config file and the servers defined in them.' +keywords: ['system table', 'clusters'] +slug: /operations/system-tables/clusters +title: 'system.clusters' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about clusters available in the config file and the servers in them. + +## Columns {#Columns} + +{/*AUTOGENERATED_START*/} +- `cluster` ([String](/core/reference/data-types)) — The cluster name. +- `shard_num` ([UInt32](/core/reference/data-types)) — The shard number in the cluster, starting from 1. +- `shard_name` ([String](/core/reference/data-types)) — The name of the shard in the cluster. +- `shard_weight` ([UInt32](/core/reference/data-types)) — The relative weight of the shard when writing data. +- `internal_replication` ([UInt8](/core/reference/data-types)) — Flag that indicates whether this host is a part on ensemble which can replicate the data on its own. +- `replica_num` ([UInt32](/core/reference/data-types)) — The replica number in the shard, starting from 1. +- `host_name` ([String](/core/reference/data-types)) — The host name, as specified in the config. +- `host_address` ([String](/core/reference/data-types)) — The host IP address obtained from DNS. +- `port` ([UInt16](/core/reference/data-types)) — The port to use for connecting to the server. +- `is_local` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the host is local. +- `user` ([String](/core/reference/data-types)) — The name of the user for connecting to the server. +- `default_database` ([String](/core/reference/data-types)) — The default database name. +- `errors_count` ([UInt32](/core/reference/data-types)) — The number of times this host failed to reach replica. +- `slowdowns_count` ([UInt32](/core/reference/data-types)) — The number of slowdowns that led to changing replica when establishing a connection with hedged requests. +- `estimated_recovery_time` ([UInt32](/core/reference/data-types)) — Seconds remaining until the replica error count is zeroed and it is considered to be back to normal. +- `database_shard_name` ([String](/core/reference/data-types)) — The name of the `Replicated` database shard (for clusters that belong to a `Replicated` database). +- `database_replica_name` ([String](/core/reference/data-types)) — The name of the `Replicated` database replica (for clusters that belong to a `Replicated` database). +- `is_shared_catalog_cluster` ([UInt8](/core/reference/data-types)) — Bool indicating if the cluster belongs to shared catalog. +- `is_active` ([Nullable(UInt8)](/core/reference/data-types)) — The status of the Replicated database replica (for clusters that belong to a Replicated database): 1 means 'replica is online', 0 means 'replica is offline', NULL means 'unknown'. +- `unsynced_after_recovery` ([Nullable(UInt8)](/core/reference/data-types)) — Indicates if a Replicated database replica has replication lag more than max_replication_lag_to_enqueue after creating or recovering the replica. +- `replication_lag` ([Nullable(UInt32)](/core/reference/data-types)) — The replication lag of the `Replicated` database replica (for clusters that belong to a Replicated database). +- `recovery_time` ([Nullable(UInt64)](/core/reference/data-types)) — The recovery time of the `Replicated` database replica (for clusters that belong to a Replicated database), in milliseconds. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql title="Query" +SELECT * FROM system.clusters LIMIT 2 FORMAT Vertical; +``` + +```text title="Response" +Row 1: +────── +cluster: test_cluster_two_shards +shard_num: 1 +shard_name: shard_01 +shard_weight: 1 +replica_num: 1 +host_name: 127.0.0.1 +host_address: 127.0.0.1 +port: 9000 +is_local: 1 +user: default +default_database: +errors_count: 0 +slowdowns_count: 0 +estimated_recovery_time: 0 +database_shard_name: +database_replica_name: +is_active: NULL + +Row 2: +────── +cluster: test_cluster_two_shards +shard_num: 2 +shard_name: shard_02 +shard_weight: 1 +replica_num: 1 +host_name: 127.0.0.2 +host_address: 127.0.0.2 +port: 9000 +is_local: 0 +user: default +default_database: +errors_count: 0 +slowdowns_count: 0 +estimated_recovery_time: 0 +database_shard_name: +database_replica_name: +is_active: NULL +``` + +## See also {#see-also} + +- [Table engine Distributed](/core/reference/engines/table-engines/special/distributed) +- [distributed_replica_error_cap setting](/core/reference/settings/session-settings#distributed_replica_error_cap) +- [distributed_replica_error_half_life setting](/core/reference/settings/session-settings#distributed_replica_error_half_life) diff --git a/reference/system-tables/codecs.mdx b/core/reference/system-tables/codecs.mdx similarity index 51% rename from reference/system-tables/codecs.mdx rename to core/reference/system-tables/codecs.mdx index 62b4d76a..44f0375b 100644 --- a/reference/system-tables/codecs.mdx +++ b/core/reference/system-tables/codecs.mdx @@ -16,14 +16,14 @@ You can use this table to get information about the available compression and en ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Codec name. -- `method_byte` ([UInt8](/reference/data-types)) — Byte which indicates codec in compressed file. -- `is_compression` ([UInt8](/reference/data-types)) — True if this codec compresses something. Otherwise it can be just a transformation that helps compression. -- `is_generic_compression` ([UInt8](/reference/data-types)) — The codec is a generic compression algorithm like lz4, zstd. -- `is_encryption` ([UInt8](/reference/data-types)) — The codec encrypts. -- `is_timeseries_codec` ([UInt8](/reference/data-types)) — The codec is for floating point timeseries codec. -- `is_experimental` ([UInt8](/reference/data-types)) — The codec is experimental. -- `description` ([String](/reference/data-types)) — A high-level description of the codec. +- `name` ([String](/core/reference/data-types)) — Codec name. +- `method_byte` ([UInt8](/core/reference/data-types)) — Byte which indicates codec in compressed file. +- `is_compression` ([UInt8](/core/reference/data-types)) — True if this codec compresses something. Otherwise it can be just a transformation that helps compression. +- `is_generic_compression` ([UInt8](/core/reference/data-types)) — The codec is a generic compression algorithm like lz4, zstd. +- `is_encryption` ([UInt8](/core/reference/data-types)) — The codec encrypts. +- `is_timeseries_codec` ([UInt8](/core/reference/data-types)) — The codec is for floating point timeseries codec. +- `is_experimental` ([UInt8](/core/reference/data-types)) — The codec is experimental. +- `description` ([String](/core/reference/data-types)) — A high-level description of the codec. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/reference/system-tables/collations.mdx b/core/reference/system-tables/collations.mdx similarity index 73% rename from reference/system-tables/collations.mdx rename to core/reference/system-tables/collations.mdx index aeb3589e..62c2b162 100644 --- a/reference/system-tables/collations.mdx +++ b/core/reference/system-tables/collations.mdx @@ -13,6 +13,6 @@ Contains a list of all available collations for alphabetical comparison of strin ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Name of the collation. -- `language` ([Nullable(String)](/reference/data-types)) — The language. +- `name` ([String](/core/reference/data-types)) — Name of the collation. +- `language` ([Nullable(String)](/core/reference/data-types)) — The language. {/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/columns.mdx b/core/reference/system-tables/columns.mdx new file mode 100644 index 00000000..c058f633 --- /dev/null +++ b/core/reference/system-tables/columns.mdx @@ -0,0 +1,99 @@ +--- +description: 'System table containing information about columns in all tables' +keywords: ['system table', 'columns'] +slug: /operations/system-tables/columns +title: 'system.columns' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about columns in all tables. + +You can use this table to get information similar to the [DESCRIBE TABLE](/core/reference/statements/describe-table) query, but for multiple tables at once. + +Columns from [temporary tables](/core/reference/statements/create/table#temporary-tables) are visible in the `system.columns` only in those session where they have been created. They are shown with the empty `database` field. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — Database name. +- `table` ([String](/core/reference/data-types)) — Table name. +- `name` ([String](/core/reference/data-types)) — Column name. +- `type` ([String](/core/reference/data-types)) — Column type. +- `position` ([UInt64](/core/reference/data-types)) — Ordinal position of a column in a table starting with 1. +- `default_kind` ([String](/core/reference/data-types)) — Expression type (DEFAULT, MATERIALIZED, ALIAS) for the default value, or an empty string if it is not defined. +- `default_expression` ([String](/core/reference/data-types)) — Expression for the default value, or an empty string if it is not defined. +- `data_compressed_bytes` ([UInt64](/core/reference/data-types)) — The size of compressed data, in bytes. +- `data_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — The size of decompressed data, in bytes. +- `marks_bytes` ([UInt64](/core/reference/data-types)) — The size of marks, in bytes. +- `comment` ([String](/core/reference/data-types)) — Comment on the column, or an empty string if it is not defined. +- `is_in_partition_key` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the column is in the partition expression. +- `is_in_sorting_key` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the column is in the sorting key expression. +- `is_in_primary_key` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the column is in the primary key expression. +- `is_in_sampling_key` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the column is in the sampling key expression. +- `compression_codec` ([String](/core/reference/data-types)) — Compression codec name. +- `character_octet_length` ([Nullable(UInt64)](/core/reference/data-types)) — Maximum length in bytes for binary data, character data, or text data and images. In ClickHouse makes sense only for FixedString data type. Otherwise, the NULL value is returned. +- `numeric_precision` ([Nullable(UInt64)](/core/reference/data-types)) — Accuracy of approximate numeric data, exact numeric data, integer data, or monetary data. In ClickHouse it is bit width for integer types and decimal precision for Decimal types. Otherwise, the NULL value is returned. +- `numeric_precision_radix` ([Nullable(UInt64)](/core/reference/data-types)) — The base of the number system is the accuracy of approximate numeric data, exact numeric data, integer data or monetary data. In ClickHouse it's 2 for integer types and 10 for Decimal types. Otherwise, the NULL value is returned. +- `numeric_scale` ([Nullable(UInt64)](/core/reference/data-types)) — The scale of approximate numeric data, exact numeric data, integer data, or monetary data. In ClickHouse makes sense only for Decimal types. Otherwise, the NULL value is returned. +- `datetime_precision` ([Nullable(UInt64)](/core/reference/data-types)) — Decimal precision of DateTime64 data type. For other data types, the NULL value is returned. +- `serialization_hint` ([Nullable(String)](/core/reference/data-types)) — A hint for column to choose serialization on inserts according to statistics. +- `statistics` ([String](/core/reference/data-types)) — The types of statistics created in this columns. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.columns LIMIT 2 FORMAT Vertical; +``` + +```text +Row 1: +────── +database: INFORMATION_SCHEMA +table: COLUMNS +name: table_catalog +type: String +position: 1 +default_kind: +default_expression: +data_compressed_bytes: 0 +data_uncompressed_bytes: 0 +marks_bytes: 0 +comment: +is_in_partition_key: 0 +is_in_sorting_key: 0 +is_in_primary_key: 0 +is_in_sampling_key: 0 +compression_codec: +character_octet_length: ᴺᵁᴸᴸ +numeric_precision: ᴺᵁᴸᴸ +numeric_precision_radix: ᴺᵁᴸᴸ +numeric_scale: ᴺᵁᴸᴸ +datetime_precision: ᴺᵁᴸᴸ + +Row 2: +────── +database: INFORMATION_SCHEMA +table: COLUMNS +name: table_schema +type: String +position: 2 +default_kind: +default_expression: +data_compressed_bytes: 0 +data_uncompressed_bytes: 0 +marks_bytes: 0 +comment: +is_in_partition_key: 0 +is_in_sorting_key: 0 +is_in_primary_key: 0 +is_in_sampling_key: 0 +compression_codec: +character_octet_length: ᴺᵁᴸᴸ +numeric_precision: ᴺᵁᴸᴸ +numeric_precision_radix: ᴺᵁᴸᴸ +numeric_scale: ᴺᵁᴸᴸ +datetime_precision: ᴺᵁᴸᴸ +``` diff --git a/reference/system-tables/completions.mdx b/core/reference/system-tables/completions.mdx similarity index 53% rename from reference/system-tables/completions.mdx rename to core/reference/system-tables/completions.mdx index f6e1d1a3..25b51762 100644 --- a/reference/system-tables/completions.mdx +++ b/core/reference/system-tables/completions.mdx @@ -13,7 +13,7 @@ Contains a list of completion tokens. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `word` ([String](/reference/data-types)) — Completion token. -- `context` ([String](/reference/data-types)) — Token entity kind (e.g. table). -- `belongs` ([Nullable(String)](/reference/data-types)) — Token for entity, this token belongs to (e.g. name of owning database). +- `word` ([String](/core/reference/data-types)) — Completion token. +- `context` ([String](/core/reference/data-types)) — Token entity kind (e.g. table). +- `belongs` ([Nullable(String)](/core/reference/data-types)) — Token for entity, this token belongs to (e.g. name of owning database). {/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/contributors.mdx b/core/reference/system-tables/contributors.mdx similarity index 92% rename from reference/system-tables/contributors.mdx rename to core/reference/system-tables/contributors.mdx index 4f0b0440..2536ed92 100644 --- a/reference/system-tables/contributors.mdx +++ b/core/reference/system-tables/contributors.mdx @@ -13,7 +13,7 @@ Contains information about contributors. The order is random at query execution ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Contributor (author) name from git log. +- `name` ([String](/core/reference/data-types)) — Contributor (author) name from git log. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/crash_log.mdx b/core/reference/system-tables/crash_log.mdx new file mode 100644 index 00000000..e675c44d --- /dev/null +++ b/core/reference/system-tables/crash_log.mdx @@ -0,0 +1,67 @@ +--- +description: 'System table containing information about stack traces for fatal errors.' +keywords: ['system table', 'crash_log'] +slug: /operations/system-tables/crash_log +title: 'system.crash_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about stack traces for fatal errors. The table does not exist in the database by default, it is created only when fatal errors occur. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — The hostname where the crash occurred. +- `event_date` ([Date](/core/reference/data-types/date)) — The date of the crash. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — The time of the crash. +- `timestamp_ns` ([UInt64](/core/reference/data-types/int-uint)) — Timestamp of the event with nanoseconds. +- `signal` ([Int32](/core/reference/data-types/int-uint)) — Signal number. +- `signal_code` ([Int32](/core/reference/data-types/int-uint)) — Signal code. Provides additional context about the signal cause. +- `thread_id` ([UInt64](/core/reference/data-types/int-uint)) — Thread ID. +- `query_id` ([String](/core/reference/data-types/string)) — Query ID. +- `query` ([String](/core/reference/data-types/string)) — Query text that was being executed when the crash occurred. +- `trace` ([Array(UInt64)](/core/reference/data-types/array)) — Stack trace at the moment of crash. Each element is a virtual memory address inside ClickHouse server process. +- `trace_full` ([Array(String)](/core/reference/data-types/array)) — Stack trace at the moment of crash. Each element contains a called method inside ClickHouse server process. +- `fault_address` ([Nullable(UInt64)](/core/reference/data-types/nullable)) — Memory address that caused the fault. +- `fault_access_type` ([String](/core/reference/data-types/string)) — Type of memory access that caused the fault (e.g., 'read', 'write'). +- `signal_description` ([String](/core/reference/data-types/string)) — Human-readable description based on signal_code (e.g., 'Address not mapped to object'). +- `current_exception_trace_full` ([Array(String)](/core/reference/data-types/array)) — Current exception stack trace with symbolized frames (std::terminate crashes only). +- `version` ([String](/core/reference/data-types/string)) — ClickHouse server version. +- `revision` ([UInt32](/core/reference/data-types/int-uint)) — ClickHouse server revision. +- `build_id` ([String](/core/reference/data-types/string)) — BuildID that is generated by compiler. +- `git_hash` ([String](/core/reference/data-types/string)) — Git commit hash of the ClickHouse source code. +- `architecture` ([String](/core/reference/data-types/string)) — CPU architecture (e.g., x86_64, aarch64). +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql title="Query" +SELECT * FROM system.crash_log ORDER BY event_time DESC LIMIT 1; +``` + +```text title="Response" +Row 1: +────── +hostname: clickhouse.eu-central1.internal +event_date: 2020-10-14 +event_time: 2020-10-14 15:47:40 +timestamp_ns: 1602679660271312710 +signal: 11 +thread_id: 23624 +query_id: 428aab7c-8f5c-44e9-9607-d16b44467e69 +trace: [188531193,...] +trace_full: ['3. DB::(anonymous namespace)::FunctionFormatReadableTimeDelta::executeImpl(std::__1::vector >&, std::__1::vector > const&, unsigned long, unsigned long) const @ 0xb3cc1f9 in /home/username/work/ClickHouse/build/programs/clickhouse',...] +version: ClickHouse 20.11.1.1 +revision: 54442 +build_id: +``` + +## See also {#see-also} + +- [trace_log](/core/reference/system-tables/trace_log) system table diff --git a/reference/system-tables/current_roles.mdx b/core/reference/system-tables/current_roles.mdx similarity index 61% rename from reference/system-tables/current_roles.mdx rename to core/reference/system-tables/current_roles.mdx index 520367dc..56ce8ed8 100644 --- a/reference/system-tables/current_roles.mdx +++ b/core/reference/system-tables/current_roles.mdx @@ -13,7 +13,7 @@ Contains active roles of a current user. `SET ROLE` changes the contents of this ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `role_name` ([String](/reference/data-types)) — Role name. -- `with_admin_option` ([UInt8](/reference/data-types)) — 1 if the role has ADMIN OPTION privilege. -- `is_default` ([UInt8](/reference/data-types)) — 1 if role is set to be a default. +- `role_name` ([String](/core/reference/data-types)) — Role name. +- `with_admin_option` ([UInt8](/core/reference/data-types)) — 1 if the role has ADMIN OPTION privilege. +- `is_default` ([UInt8](/core/reference/data-types)) — 1 if role is set to be a default. {/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/dashboards.mdx b/core/reference/system-tables/dashboards.mdx similarity index 88% rename from reference/system-tables/dashboards.mdx rename to core/reference/system-tables/dashboards.mdx index ac30a78c..d8f1acb3 100644 --- a/reference/system-tables/dashboards.mdx +++ b/core/reference/system-tables/dashboards.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -Contains queries used by `/dashboard` page accessible though [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http). +Contains queries used by `/dashboard` page accessible though [HTTP interface](/core/concepts/features/interfaces/http). This table can be useful for monitoring and troubleshooting. The table contains a row for every chart in a dashboard. @@ -20,9 +20,9 @@ This can be useful to create custom dashboards. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `dashboard` ([String](/reference/data-types)) — The dashboard name. -- `title` ([String](/reference/data-types)) — The title of a chart. -- `query` ([String](/reference/data-types)) — The query to obtain data to be displayed. +- `dashboard` ([String](/core/reference/data-types)) — The dashboard name. +- `title` ([String](/core/reference/data-types)) — The title of a chart. +- `query` ([String](/core/reference/data-types)) — The query to obtain data to be displayed. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/reference/system-tables/data_skipping_indices.mdx b/core/reference/system-tables/data_skipping_indices.mdx similarity index 56% rename from reference/system-tables/data_skipping_indices.mdx rename to core/reference/system-tables/data_skipping_indices.mdx index a9aba8d8..ecf1fa03 100644 --- a/reference/system-tables/data_skipping_indices.mdx +++ b/core/reference/system-tables/data_skipping_indices.mdx @@ -14,17 +14,17 @@ Contains information about existing data skipping indices in all the tables. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Database name. -- `table` ([String](/reference/data-types)) — Table name. -- `name` ([String](/reference/data-types)) — Index name. -- `type` ([String](/reference/data-types)) — Index type. -- `type_full` ([String](/reference/data-types)) — Index type expression from create statement. -- `expr` ([String](/reference/data-types)) — Expression for the index calculation. -- `creation` ([Enum8('Explicit' = 0, 'Implicit' = 1)](/reference/data-types)) — Whether the index was created implicitly (via add_minmax_index_for_numeric_columns or similar) -- `granularity` ([UInt64](/reference/data-types)) — The number of granules in the block. -- `data_compressed_bytes` ([UInt64](/reference/data-types)) — The size of compressed data, in bytes. -- `data_uncompressed_bytes` ([UInt64](/reference/data-types)) — The size of decompressed data, in bytes. -- `marks_bytes` ([UInt64](/reference/data-types)) — The size of marks, in bytes. +- `database` ([String](/core/reference/data-types)) — Database name. +- `table` ([String](/core/reference/data-types)) — Table name. +- `name` ([String](/core/reference/data-types)) — Index name. +- `type` ([String](/core/reference/data-types)) — Index type. +- `type_full` ([String](/core/reference/data-types)) — Index type expression from create statement. +- `expr` ([String](/core/reference/data-types)) — Expression for the index calculation. +- `creation` ([Enum8('Explicit' = 0, 'Implicit' = 1)](/core/reference/data-types)) — Whether the index was created implicitly (via add_minmax_index_for_numeric_columns or similar) +- `granularity` ([UInt64](/core/reference/data-types)) — The number of granules in the block. +- `data_compressed_bytes` ([UInt64](/core/reference/data-types)) — The size of compressed data, in bytes. +- `data_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — The size of decompressed data, in bytes. +- `marks_bytes` ([UInt64](/core/reference/data-types)) — The size of marks, in bytes. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/reference/system-tables/data_type_families.mdx b/core/reference/system-tables/data_type_families.mdx similarity index 69% rename from reference/system-tables/data_type_families.mdx rename to core/reference/system-tables/data_type_families.mdx index ba7b6dec..9a525f17 100644 --- a/reference/system-tables/data_type_families.mdx +++ b/core/reference/system-tables/data_type_families.mdx @@ -8,14 +8,14 @@ doc_type: 'reference' ## Description {#description} -Contains information about supported [data types](/reference/data-types). +Contains information about supported [data types](/core/reference/data-types). ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Data type name. -- `case_insensitive` ([UInt8](/reference/data-types)) — Property that shows whether you can use a data type name in a query in case insensitive manner or not. For example, `Date` and `date` are both valid. -- `alias_to` ([String](/reference/data-types)) — Data type name for which `name` is an alias. +- `name` ([String](/core/reference/data-types)) — Data type name. +- `case_insensitive` ([UInt8](/core/reference/data-types)) — Property that shows whether you can use a data type name in a query in case insensitive manner or not. For example, `Date` and `date` are both valid. +- `alias_to` ([String](/core/reference/data-types)) — Data type name for which `name` is an alias. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -41,4 +41,4 @@ SELECT * FROM system.data_type_families WHERE alias_to = 'String' ## See also {#see-also} -- [Syntax](/reference/syntax) — Information about supported syntax. +- [Syntax](/core/reference/syntax) — Information about supported syntax. diff --git a/reference/system-tables/database_engines.mdx b/core/reference/system-tables/database_engines.mdx similarity index 89% rename from reference/system-tables/database_engines.mdx rename to core/reference/system-tables/database_engines.mdx index 832f2b04..3312afa6 100644 --- a/reference/system-tables/database_engines.mdx +++ b/core/reference/system-tables/database_engines.mdx @@ -14,7 +14,7 @@ Contains the list of database engines supported by the server. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — The name of database engine. +- `name` ([String](/core/reference/data-types)) — The name of database engine. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/database_replicas.mdx b/core/reference/system-tables/database_replicas.mdx new file mode 100644 index 00000000..558f2f98 --- /dev/null +++ b/core/reference/system-tables/database_replicas.mdx @@ -0,0 +1,49 @@ +--- +description: 'System table containing information about and status of replicated database.' +keywords: ['system table', 'database_replicas'] +slug: /operations/system-tables/database_replicas +title: 'system.database_replicas' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information of each Replicated database replicas. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — The name of the Replicated database is in. +- `is_readonly` ([UInt8](/core/reference/data-types)) — Whether the database replica is in read-only mode. +- `max_log_ptr` ([Int32](/core/reference/data-types)) — Maximum entry number in the log of general activity. +- `replica_name` ([String](/core/reference/data-types)) — Replica name in ClickHouse Keeper. +- `replica_path` ([String](/core/reference/data-types)) — Path to replica data in ClickHouse Keeper. +- `zookeeper_path` ([String](/core/reference/data-types)) — Path to database data in ClickHouse Keeper. +- `shard_name` ([String](/core/reference/data-types)) — The name of the shard in the cluster. +- `log_ptr` ([Int32](/core/reference/data-types)) — Maximum entry number in the log of general activity that the replica copied to its execution queue, plus one. +- `total_replicas` ([UInt32](/core/reference/data-types)) — The total number of known replicas of this database. +- `zookeeper_exception` ([String](/core/reference/data-types)) — The last exception message, got if the error happened when fetching the info from ClickHouse Keeper. +- `is_session_expired` ([UInt8](/core/reference/data-types)) — The session with ClickHouse Keeper has expired. Basically the same as `is_readonly`. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.database_replicas FORMAT Vertical; +``` + +```text +Row 1: +────── +database: db_2 +is_readonly: 0 +max_log_ptr: 2 +replica_name: replica1 +replica_path: /test/db_2/replicas/shard1|replica1 +zookeeper_path: /test/db_2 +shard_name: shard1 +log_ptr: 2 +total_replicas: 1 +zookeeper_exception: +is_session_expired: 0 +``` diff --git a/reference/system-tables/databases.mdx b/core/reference/system-tables/databases.mdx similarity index 85% rename from reference/system-tables/databases.mdx rename to core/reference/system-tables/databases.mdx index f46b418a..92ca04e5 100644 --- a/reference/system-tables/databases.mdx +++ b/core/reference/system-tables/databases.mdx @@ -14,14 +14,14 @@ Contains information about the databases that are available to the current user. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Database name. -- `engine` ([String](/reference/data-types)) — Database engine. -- `data_path` ([String](/reference/data-types)) — Data path. -- `metadata_path` ([String](/reference/data-types)) — Metadata path. -- `uuid` ([UUID](/reference/data-types)) — Database UUID. -- `engine_full` ([String](/reference/data-types)) — Parameters of the database engine. -- `comment` ([String](/reference/data-types)) — Database comment. -- `is_external` ([UInt8](/reference/data-types)) — Database is external (i.e. PostgreSQL/DataLakeCatalog). +- `name` ([String](/core/reference/data-types)) — Database name. +- `engine` ([String](/core/reference/data-types)) — Database engine. +- `data_path` ([String](/core/reference/data-types)) — Data path. +- `metadata_path` ([String](/core/reference/data-types)) — Metadata path. +- `uuid` ([UUID](/core/reference/data-types)) — Database UUID. +- `engine_full` ([String](/core/reference/data-types)) — Parameters of the database engine. +- `comment` ([String](/core/reference/data-types)) — Database comment. +- `is_external` ([UInt8](/core/reference/data-types)) — Database is external (i.e. PostgreSQL/DataLakeCatalog). {/*AUTOGENERATED_END*/} The `name` column from this system table is used for implementing the `SHOW DATABASES` query. diff --git a/reference/system-tables/dead_letter_queue.mdx b/core/reference/system-tables/dead_letter_queue.mdx similarity index 58% rename from reference/system-tables/dead_letter_queue.mdx rename to core/reference/system-tables/dead_letter_queue.mdx index 7403e8b2..1130d74c 100644 --- a/reference/system-tables/dead_letter_queue.mdx +++ b/core/reference/system-tables/dead_letter_queue.mdx @@ -13,31 +13,31 @@ Contains information about messages received via a streaming engine and parsed w Logging is enabled by specifying `dead_letter_queue` for the engine specific `handle_error_mode` setting. -The flushing period of data is set in `flush_interval_milliseconds` parameter of the [dead_letter_queue](/reference/settings/server-settings/settings#dead_letter_queue) server settings section. To force flushing, use the [SYSTEM FLUSH LOGS](/reference/statements/system#flush-logs) query. +The flushing period of data is set in `flush_interval_milliseconds` parameter of the [dead_letter_queue](/core/reference/settings/server-settings/settings#dead_letter_queue) server settings section. To force flushing, use the [SYSTEM FLUSH LOGS](/core/reference/statements/system#flush-logs) query. -ClickHouse does not delete data from the table automatically. See [Introduction](/reference/system-tables/overview#system-tables-introduction) for more details. +ClickHouse does not delete data from the table automatically. See [Introduction](/core/reference/system-tables/overview#system-tables-introduction) for more details. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `table_engine` ([Enum8('Kafka' = 1, 'RabbitMQ' = 2)](/reference/data-types/enum)) — Stream type. Possible values: 'Kafka', 'RabbitMQ'. -- `event_date` ([Date](/reference/data-types/date)) — Message consuming date. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Message consuming date and time. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Query starting time with microseconds precision. -- `database` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — ClickHouse database Kafka table belongs to. -- `table` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — ClickHouse table name. -- `error` ([String](/reference/data-types/string)) — Error text. -- `raw_message` ([String](/reference/data-types/string)) — Message body. -- `kafka_topic_name` ([String](/reference/data-types/string)) — Kafka topic name. -- `kafka_partition` ([UInt64](/reference/data-types/int-uint)) — Kafka partition of the topic. -- `kafka_offset` ([UInt64](/reference/data-types/int-uint)) — Kafka offset of the message. -- `kafka_key` ([String](/reference/data-types/string)) — Kafka key of the message. -- `rabbitmq_exchange_name` ([String](/reference/data-types/string)) — RabbitMQ exchange name. -- `rabbitmq_message_id` ([String](/reference/data-types/string)) — RabbitMQ message id. -- `rabbitmq_message_timestamp` ([DateTime](/reference/data-types/datetime)) — RabbitMQ message timestamp. -- `rabbitmq_message_redelivered` ([UInt8](/reference/data-types/int-uint)) — RabbitMQ redelivered flag. -- `rabbitmq_message_delivery_tag` ([UInt64](/reference/data-types/int-uint)) — RabbitMQ delivery tag. -- `rabbitmq_channel_id` ([String](/reference/data-types/string)) — RabbitMQ channel id. +- `table_engine` ([Enum8('Kafka' = 1, 'RabbitMQ' = 2)](/core/reference/data-types/enum)) — Stream type. Possible values: 'Kafka', 'RabbitMQ'. +- `event_date` ([Date](/core/reference/data-types/date)) — Message consuming date. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Message consuming date and time. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Query starting time with microseconds precision. +- `database` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — ClickHouse database Kafka table belongs to. +- `table` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — ClickHouse table name. +- `error` ([String](/core/reference/data-types/string)) — Error text. +- `raw_message` ([String](/core/reference/data-types/string)) — Message body. +- `kafka_topic_name` ([String](/core/reference/data-types/string)) — Kafka topic name. +- `kafka_partition` ([UInt64](/core/reference/data-types/int-uint)) — Kafka partition of the topic. +- `kafka_offset` ([UInt64](/core/reference/data-types/int-uint)) — Kafka offset of the message. +- `kafka_key` ([String](/core/reference/data-types/string)) — Kafka key of the message. +- `rabbitmq_exchange_name` ([String](/core/reference/data-types/string)) — RabbitMQ exchange name. +- `rabbitmq_message_id` ([String](/core/reference/data-types/string)) — RabbitMQ message id. +- `rabbitmq_message_timestamp` ([DateTime](/core/reference/data-types/datetime)) — RabbitMQ message timestamp. +- `rabbitmq_message_redelivered` ([UInt8](/core/reference/data-types/int-uint)) — RabbitMQ redelivered flag. +- `rabbitmq_message_delivery_tag` ([UInt64](/core/reference/data-types/int-uint)) — RabbitMQ delivery tag. +- `rabbitmq_channel_id` ([String](/core/reference/data-types/string)) — RabbitMQ channel id. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -124,5 +124,5 @@ rabbitmq_channel_id: ## See also {#see-also} -- [Kafka](/reference/engines/table-engines/integrations/kafka) - Kafka Engine -- [system.kafka_consumers](/reference/system-tables/kafka_consumers) — Description of the `kafka_consumers` system table which contains information like statistics and errors about Kafka consumers. +- [Kafka](/core/reference/engines/table-engines/integrations/kafka) - Kafka Engine +- [system.kafka_consumers](/core/reference/system-tables/kafka_consumers) — Description of the `kafka_consumers` system table which contains information like statistics and errors about Kafka consumers. diff --git a/reference/system-tables/delta_metadata_log.mdx b/core/reference/system-tables/delta_metadata_log.mdx similarity index 67% rename from reference/system-tables/delta_metadata_log.mdx rename to core/reference/system-tables/delta_metadata_log.mdx index 50e8e170..4c38ed09 100644 --- a/reference/system-tables/delta_metadata_log.mdx +++ b/core/reference/system-tables/delta_metadata_log.mdx @@ -23,7 +23,7 @@ This table is primarily intended for debugging purposes. ### Controlling log verbosity {#controlling-log-verbosity} -You can control which metadata events are logged using the [`delta_lake_log_metadata`](/reference/settings/session-settings#delta_lake_log_metadata) setting. +You can control which metadata events are logged using the [`delta_lake_log_metadata`](/core/reference/settings/session-settings#delta_lake_log_metadata) setting. To log all metadata used in the current query: @@ -40,11 +40,11 @@ WHERE query_id = '{previous_query_id}'; ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Date of the entry. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time. -- `query_id` ([String](/reference/data-types/string)) — Query id. -- `table_path` ([String](/reference/data-types/string)) — Table path. -- `file_path` ([String](/reference/data-types/string)) — File path. -- `content` ([String](/reference/data-types/string)) — Content in a JSON format. +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Date of the entry. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time. +- `query_id` ([String](/core/reference/data-types/string)) — Query id. +- `table_path` ([String](/core/reference/data-types/string)) — Table path. +- `file_path` ([String](/core/reference/data-types/string)) — File path. +- `content` ([String](/core/reference/data-types/string)) — Content in a JSON format. {/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/detached_parts.mdx b/core/reference/system-tables/detached_parts.mdx new file mode 100644 index 00000000..dbe877f7 --- /dev/null +++ b/core/reference/system-tables/detached_parts.mdx @@ -0,0 +1,35 @@ +--- +description: 'System table containing information about detached parts of MergeTree + tables' +keywords: ['system table', 'detached_parts'] +slug: /operations/system-tables/detached_parts +title: 'system.detached_parts' +doc_type: 'reference' +--- + +## Description {#purpose} + +Contains information about detached parts of [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables. The `reason` column specifies why the part was detached. + +For user-detached parts, the reason is empty. Such parts can be attached with [ALTER TABLE ATTACH PARTITION\|PART](/core/reference/statements/alter/partition#attach-partitionpart) command. + +For the description of other columns, see [system.parts](/core/reference/system-tables/parts). + +If part name is invalid, values of some columns may be `NULL`. Such parts can be deleted with [ALTER TABLE DROP DETACHED PART](/core/reference/statements/alter/partition#drop-detached-partitionpart). + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — The name of the database this part belongs to. +- `table` ([String](/core/reference/data-types)) — The name of the table this part belongs to. +- `partition_id` ([Nullable(String)](/core/reference/data-types)) — The identifier of the partition this part belongs to. +- `name` ([String](/core/reference/data-types)) — The name of the part. +- `bytes_on_disk` ([UInt64](/core/reference/data-types)) — Total size of all the data part files in bytes. +- `modification_time` ([DateTime](/core/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time when detach happened. +- `disk` ([String](/core/reference/data-types)) — The name of the disk that stores this data part. +- `path` ([String](/core/reference/data-types)) — The path of the disk to the file of this data part. +- `reason` ([Nullable(String)](/core/reference/data-types)) — The explanation why this part was detached. +- `min_block_number` ([Nullable(Int64)](/core/reference/data-types)) — The minimum number of data parts that make up the current part after merging. +- `max_block_number` ([Nullable(Int64)](/core/reference/data-types)) — The maximum number of data parts that make up the current part after merging. +- `level` ([Nullable(UInt32)](/core/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. +{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/detached_tables.mdx b/core/reference/system-tables/detached_tables.mdx similarity index 63% rename from reference/system-tables/detached_tables.mdx rename to core/reference/system-tables/detached_tables.mdx index ea4b66d8..bc5fea3f 100644 --- a/reference/system-tables/detached_tables.mdx +++ b/core/reference/system-tables/detached_tables.mdx @@ -13,11 +13,11 @@ Contains information about each detached table. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — The name of the database the table is in. -- `table` ([String](/reference/data-types)) — Table name. -- `uuid` ([UUID](/reference/data-types)) — Table uuid (Atomic database). -- `metadata_path` ([String](/reference/data-types)) — Path to the table metadata in the file system. -- `is_permanently` ([UInt8](/reference/data-types)) — Table was detached permanently. +- `database` ([String](/core/reference/data-types)) — The name of the database the table is in. +- `table` ([String](/core/reference/data-types)) — Table name. +- `uuid` ([UUID](/core/reference/data-types)) — Table uuid (Atomic database). +- `metadata_path` ([String](/core/reference/data-types)) — Path to the table metadata in the file system. +- `is_permanently` ([UInt8](/core/reference/data-types)) — Table was detached permanently. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/dictionaries.mdx b/core/reference/system-tables/dictionaries.mdx new file mode 100644 index 00000000..ee9eca9e --- /dev/null +++ b/core/reference/system-tables/dictionaries.mdx @@ -0,0 +1,107 @@ +--- +description: 'System table containing information about dictionaries' +keywords: ['system table', 'dictionaries'] +slug: /operations/system-tables/dictionaries +title: 'system.dictionaries' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about [dictionaries](/core/reference/statements/create/dictionary). + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — Name of the database containing the dictionary created by DDL query. Empty string for other dictionaries. +- `name` ([String](/core/reference/data-types)) — Dictionary name. +- `uuid` ([UUID](/core/reference/data-types)) — Dictionary UUID. +- `status` ([Enum8('NOT_LOADED' = 0, 'LOADED' = 1, 'FAILED' = 2, 'LOADING' = 3, 'FAILED_AND_RELOADING' = 4, 'LOADED_AND_RELOADING' = 5, 'NOT_EXIST' = 6)](/core/reference/data-types)) — Dictionary status.Possible values: + - **NOT_LOADED** — Dictionary was not loaded because it was not used + - **LOADED** — Dictionary loaded successfully + - **FAILED** — Unable to load the dictionary as a result of an error + - **LOADING** — Dictionary is loading now + - **LOADED_AND_RELOADING** — Dictionary is loaded successfully + - **and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query** — + - **timeout** — + - **dictionary config has changed)** — + - **FAILED_AND_RELOADING** — Could not load the dictionary as a result of an error and is loading now. +- `origin` ([String](/core/reference/data-types)) — Path to the configuration file that describes the dictionary. +- `type` ([String](/core/reference/data-types)) — Type of a dictionary allocation. Storing Dictionaries in Memory. +- `key.names` ([Array(String)](/core/reference/data-types)) — Array of key names provided by the dictionary. +- `key.types` ([Array(String)](/core/reference/data-types)) — Corresponding array of key types provided by the dictionary. +- `attribute.names` ([Array(String)](/core/reference/data-types)) — Array of attribute names provided by the dictionary. +- `attribute.types` ([Array(String)](/core/reference/data-types)) — Corresponding array of attribute types provided by the dictionary. +- `bytes_allocated` ([UInt64](/core/reference/data-types)) — Amount of RAM allocated for the dictionary. +- `hierarchical_index_bytes_allocated` ([UInt64](/core/reference/data-types)) — Amount of RAM allocated for hierarchical index. +- `query_count` ([UInt64](/core/reference/data-types)) — Number of queries since the dictionary was loaded or since the last successful reboot. +- `hit_rate` ([Float64](/core/reference/data-types)) — For cache dictionaries, the percentage of uses for which the value was in the cache. +- `found_rate` ([Float64](/core/reference/data-types)) — The percentage of uses for which the value was found. +- `element_count` ([UInt64](/core/reference/data-types)) — Number of items stored in the dictionary. +- `load_factor` ([Float64](/core/reference/data-types)) — Percentage filled in the dictionary (for a hashed dictionary, the percentage filled in the hash table). +- `source` ([String](/core/reference/data-types)) — Text describing the data source for the dictionary. +- `lifetime_min` ([UInt64](/core/reference/data-types)) — Minimum lifetime of the dictionary in memory, after which ClickHouse tries to reload the dictionary (if invalidate_query is set, then only if it has changed). Set in seconds. +- `lifetime_max` ([UInt64](/core/reference/data-types)) — Maximum lifetime of the dictionary in memory, after which ClickHouse tries to reload the dictionary (if invalidate_query is set, then only if it has changed). Set in seconds. +- `loading_start_time` ([DateTime](/core/reference/data-types)) — Start time for loading the dictionary. +- `last_successful_update_time` ([DateTime](/core/reference/data-types)) — End time for loading or updating the dictionary. Helps to monitor some troubles with dictionary sources and investigate the causes. +- `error_count` ([UInt64](/core/reference/data-types)) — Number of errors since last successful loading. Helps to monitor some troubles with dictionary sources and investigate the causes. +- `loading_duration` ([Float32](/core/reference/data-types)) — Duration of a dictionary loading. +- `last_exception` ([String](/core/reference/data-types)) — Text of the error that occurs when creating or reloading the dictionary if the dictionary couldn't be created. +- `comment` ([String](/core/reference/data-types)) — Text of the comment to dictionary. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +Configure the dictionary: + +```sql +CREATE DICTIONARY dictionary_with_comment +( + id UInt64, + value String +) +PRIMARY KEY id +SOURCE(CLICKHOUSE(HOST 'localhost' PORT tcpPort() TABLE 'source_table')) +LAYOUT(FLAT()) +LIFETIME(MIN 0 MAX 1000) +COMMENT 'The temporary dictionary'; +``` + +Make sure that the dictionary is loaded. + +```sql +SELECT * FROM system.dictionaries LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +database: default +name: dictionary_with_comment +uuid: 4654d460-0d03-433a-8654-d4600d03d33a +status: NOT_LOADED +origin: 4654d460-0d03-433a-8654-d4600d03d33a +type: +key.names: ['id'] +key.types: ['UInt64'] +attribute.names: ['value'] +attribute.types: ['String'] +bytes_allocated: 0 +query_count: 0 +hit_rate: 0 +found_rate: 0 +element_count: 0 +load_factor: 0 +source: +lifetime_min: 0 +lifetime_max: 0 +loading_start_time: 1970-01-01 00:00:00 +last_successful_update_time: 1970-01-01 00:00:00 +loading_duration: 0 +last_exception: +comment: The temporary dictionary +``` diff --git a/reference/system-tables/dimensional_metrics.mdx b/core/reference/system-tables/dimensional_metrics.mdx similarity index 63% rename from reference/system-tables/dimensional_metrics.mdx rename to core/reference/system-tables/dimensional_metrics.mdx index 24bda929..0073adab 100644 --- a/reference/system-tables/dimensional_metrics.mdx +++ b/core/reference/system-tables/dimensional_metrics.mdx @@ -18,10 +18,10 @@ This table contains dimensional metrics that can be calculated instantly and exp ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `metric` ([String](/reference/data-types)) — Metric name. -- `value` ([Float64](/reference/data-types)) — Metric value. -- `description` ([String](/reference/data-types)) — Metric description. -- `labels` ([Map(String, String)](/reference/data-types)) — Metric labels. +- `metric` ([String](/core/reference/data-types)) — Metric name. +- `value` ([Float64](/core/reference/data-types)) — Metric value. +- `description` ([String](/core/reference/data-types)) — Metric description. +- `labels` ([Map(String, String)](/core/reference/data-types)) — Metric labels. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -51,7 +51,7 @@ Number of merge tree data parts, labelled by part state, part type, and whether ## See also {#see-also} -- [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) — Contains periodically calculated metrics. -- [system.events](/reference/system-tables/events) — Contains a number of events that occurred. -- [system.metric_log](/reference/system-tables/metric_log) — Contains a history of metrics values from tables `system.metrics` and `system.events`. -- [Monitoring](/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. +- [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) — Contains periodically calculated metrics. +- [system.events](/core/reference/system-tables/events) — Contains a number of events that occurred. +- [system.metric_log](/core/reference/system-tables/metric_log) — Contains a history of metrics values from tables `system.metrics` and `system.events`. +- [Monitoring](/core/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. diff --git a/core/reference/system-tables/disks.mdx b/core/reference/system-tables/disks.mdx new file mode 100644 index 00000000..380de8ca --- /dev/null +++ b/core/reference/system-tables/disks.mdx @@ -0,0 +1,50 @@ +--- +description: 'System table containing information about disks defined in the server + configuration' +keywords: ['system table', 'disks'] +slug: /operations/system-tables/disks +title: 'system.disks' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about disks defined in the [server configuration](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes_configure). + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `name` ([String](/core/reference/data-types)) — Name of a disk in the server configuration. +- `path` ([String](/core/reference/data-types)) — Path to the mount point in the file system. +- `free_space` ([UInt64](/core/reference/data-types)) — Free space on disk in bytes. +- `total_space` ([UInt64](/core/reference/data-types)) — Disk volume in bytes. +- `unreserved_space` ([UInt64](/core/reference/data-types)) — Free space which is not taken by reservations (free_space minus the size of reservations taken by merges, inserts, and other disk write operations currently running). +- `keep_free_space` ([UInt64](/core/reference/data-types)) — Amount of disk space that should stay free on disk in bytes. Defined in the keep_free_space_bytes parameter of disk configuration. +- `type` ([String](/core/reference/data-types)) — The disk type which tells where this disk stores the data - RAM, local drive or remote storage. +- `object_storage_type` ([String](/core/reference/data-types)) — Type of object storage if disk type is object_storage +- `metadata_type` ([String](/core/reference/data-types)) — Type of metadata storage if disk type is object_storage +- `is_encrypted` ([UInt8](/core/reference/data-types)) — Flag which shows whether this disk encrypts the underlying data. +- `is_read_only` ([UInt8](/core/reference/data-types)) — Flag which indicates that you can only perform read operations with this disk. +- `is_write_once` ([UInt8](/core/reference/data-types)) — Flag which indicates if disk is write-once. Which means that it does support BACKUP to this disk, but does not support INSERT into MergeTree table on this disk. +- `is_remote` ([UInt8](/core/reference/data-types)) — Flag which indicated what operations with this disk involve network interaction. +- `is_broken` ([UInt8](/core/reference/data-types)) — Flag which indicates if disk is broken. Broken disks will have 0 space and cannot be used. +- `cache_path` ([String](/core/reference/data-types)) — The path to the cache directory on local drive in case when the disk supports caching. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.disks; +``` + +```response +┌─name────┬─path─────────────────┬───free_space─┬──total_space─┬─keep_free_space─┐ +│ default │ /var/lib/clickhouse/ │ 276392587264 │ 490652508160 │ 0 │ +└─────────┴──────────────────────┴──────────────┴──────────────┴─────────────────┘ + +1 rows in set. Elapsed: 0.001 sec. +``` diff --git a/reference/system-tables/distributed_ddl_queue.mdx b/core/reference/system-tables/distributed_ddl_queue.mdx similarity index 58% rename from reference/system-tables/distributed_ddl_queue.mdx rename to core/reference/system-tables/distributed_ddl_queue.mdx index 352e614a..aee04a73 100644 --- a/reference/system-tables/distributed_ddl_queue.mdx +++ b/core/reference/system-tables/distributed_ddl_queue.mdx @@ -9,26 +9,26 @@ doc_type: 'reference' ## Description {#description} -Contains information about [distributed ddl queries (ON CLUSTER clause)](/reference/statements/distributed-ddl) that were executed on a cluster. +Contains information about [distributed ddl queries (ON CLUSTER clause)](/core/reference/statements/distributed-ddl) that were executed on a cluster. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `entry` ([String](/reference/data-types)) — Query id. -- `entry_version` ([Nullable(UInt8)](/reference/data-types)) — Version of the entry. -- `initiator_host` ([Nullable(String)](/reference/data-types)) — Host that initiated the DDL operation. -- `initiator_port` ([Nullable(UInt16)](/reference/data-types)) — Port used by the initiator. -- `cluster` ([String](/reference/data-types)) — Cluster name, empty if not determined. -- `query` ([String](/reference/data-types)) — Query executed. -- `settings` ([Map(String, String)](/reference/data-types)) — Settings used in the DDL operation. -- `query_create_time` ([DateTime](/reference/data-types)) — Query created time. -- `host` ([Nullable(String)](/reference/data-types)) — Hostname. -- `port` ([Nullable(UInt16)](/reference/data-types)) — Host Port. -- `status` ([Nullable(Enum8('Inactive' = 0, 'Active' = 1, 'Finished' = 2, 'Removing' = 3, 'Unknown' = 4))](/reference/data-types)) — Status of the query. -- `exception_code` ([Nullable(UInt16)](/reference/data-types)) — Exception code. -- `exception_text` ([Nullable(String)](/reference/data-types)) — Exception message. -- `query_finish_time` ([Nullable(DateTime)](/reference/data-types)) — Query finish time. -- `query_duration_ms` ([Nullable(UInt64)](/reference/data-types)) — Duration of query execution (in milliseconds). +- `entry` ([String](/core/reference/data-types)) — Query id. +- `entry_version` ([Nullable(UInt8)](/core/reference/data-types)) — Version of the entry. +- `initiator_host` ([Nullable(String)](/core/reference/data-types)) — Host that initiated the DDL operation. +- `initiator_port` ([Nullable(UInt16)](/core/reference/data-types)) — Port used by the initiator. +- `cluster` ([String](/core/reference/data-types)) — Cluster name, empty if not determined. +- `query` ([String](/core/reference/data-types)) — Query executed. +- `settings` ([Map(String, String)](/core/reference/data-types)) — Settings used in the DDL operation. +- `query_create_time` ([DateTime](/core/reference/data-types)) — Query created time. +- `host` ([Nullable(String)](/core/reference/data-types)) — Hostname. +- `port` ([Nullable(UInt16)](/core/reference/data-types)) — Host Port. +- `status` ([Nullable(Enum8('Inactive' = 0, 'Active' = 1, 'Finished' = 2, 'Removing' = 3, 'Unknown' = 4))](/core/reference/data-types)) — Status of the query. +- `exception_code` ([Nullable(UInt16)](/core/reference/data-types)) — Exception code. +- `exception_text` ([Nullable(String)](/core/reference/data-types)) — Exception message. +- `query_finish_time` ([Nullable(DateTime)](/core/reference/data-types)) — Query finish time. +- `query_duration_ms` ([Nullable(UInt64)](/core/reference/data-types)) — Duration of query execution (in milliseconds). {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/distribution_queue.mdx b/core/reference/system-tables/distribution_queue.mdx new file mode 100644 index 00000000..fd236e33 --- /dev/null +++ b/core/reference/system-tables/distribution_queue.mdx @@ -0,0 +1,51 @@ +--- +description: 'System table containing information about local files that are in the + queue to be sent to the shards.' +keywords: ['system table', 'distribution_queue'] +slug: /operations/system-tables/distribution_queue +title: 'system.distribution_queue' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about local files that are in the queue to be sent to the shards. These local files contain new parts that are created by inserting new data into the Distributed table in asynchronous mode. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — Name of the database. +- `table` ([String](/core/reference/data-types)) — Name of the table. +- `data_path` ([String](/core/reference/data-types)) — Path to the folder with local files. +- `is_blocked` ([UInt8](/core/reference/data-types)) — Flag indicates whether sending local files to the server is blocked. +- `error_count` ([UInt64](/core/reference/data-types)) — Number of errors. +- `data_files` ([UInt64](/core/reference/data-types)) — Number of local files in a folder. +- `data_compressed_bytes` ([UInt64](/core/reference/data-types)) — Size of compressed data in local files, in bytes. +- `broken_data_files` ([UInt64](/core/reference/data-types)) — Number of files that has been marked as broken (due to an error). +- `broken_data_compressed_bytes` ([UInt64](/core/reference/data-types)) — Size of compressed data in broken files, in bytes. +- `last_exception` ([String](/core/reference/data-types)) — Text message about the last error that occurred (if any). +- `last_exception_time` ([DateTime](/core/reference/data-types)) — Time when last exception occurred. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.distribution_queue LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +database: default +table: dist +data_path: ./store/268/268bc070-3aad-4b1a-9cf2-4987580161af/default@127%2E0%2E0%2E2:9000/ +is_blocked: 1 +error_count: 0 +data_files: 1 +data_compressed_bytes: 499 +last_exception: +``` + +## See also {#see-also} + +- [Distributed table engine](/core/reference/engines/table-engines/special/distributed) diff --git a/reference/system-tables/dns_cache.mdx b/core/reference/system-tables/dns_cache.mdx similarity index 52% rename from reference/system-tables/dns_cache.mdx rename to core/reference/system-tables/dns_cache.mdx index 7ae5aff0..90943373 100644 --- a/reference/system-tables/dns_cache.mdx +++ b/core/reference/system-tables/dns_cache.mdx @@ -17,10 +17,10 @@ Contains information about cached DNS records. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `hostname` ([String](/reference/data-types)) — Hostname. -- `ip_address` ([String](/reference/data-types)) — IP address. -- `ip_family` ([Enum8('IPv4' = 0, 'IPv6' = 1, 'UNIX_LOCAL' = 2)](/reference/data-types)) — IP address family. -- `cached_at` ([DateTime](/reference/data-types)) — Record cached timestamp. +- `hostname` ([String](/core/reference/data-types)) — Hostname. +- `ip_address` ([String](/core/reference/data-types)) — IP address. +- `ip_family` ([Enum8('IPv4' = 0, 'IPv6' = 1, 'UNIX_LOCAL' = 2)](/core/reference/data-types)) — IP address family. +- `cached_at` ([DateTime](/core/reference/data-types)) — Record cached timestamp. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -36,7 +36,7 @@ SELECT * FROM system.dns_cache; ## See also {#see-also} -- [disable_internal_dns_cache setting](/reference/settings/server-settings/settings#disable_internal_dns_cache) -- [dns_cache_max_entries setting](/reference/settings/server-settings/settings#dns_cache_max_entries) -- [dns_cache_update_period setting](/reference/settings/server-settings/settings#dns_cache_update_period) -- [dns_max_consecutive_failures setting](/reference/settings/server-settings/settings#dns_max_consecutive_failures) +- [disable_internal_dns_cache setting](/core/reference/settings/server-settings/settings#disable_internal_dns_cache) +- [dns_cache_max_entries setting](/core/reference/settings/server-settings/settings#dns_cache_max_entries) +- [dns_cache_update_period setting](/core/reference/settings/server-settings/settings#dns_cache_update_period) +- [dns_max_consecutive_failures setting](/core/reference/settings/server-settings/settings#dns_max_consecutive_failures) diff --git a/reference/system-tables/dropped_tables.mdx b/core/reference/system-tables/dropped_tables.mdx similarity index 59% rename from reference/system-tables/dropped_tables.mdx rename to core/reference/system-tables/dropped_tables.mdx index 3dbba0b4..21d0be23 100644 --- a/reference/system-tables/dropped_tables.mdx +++ b/core/reference/system-tables/dropped_tables.mdx @@ -14,13 +14,13 @@ Contains information about tables that drop table has been executed on but for w ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `index` ([UInt32](/reference/data-types)) — Index in marked_dropped_tables queue. -- `database` ([String](/reference/data-types)) — Database name. -- `table` ([String](/reference/data-types)) — Table name. -- `uuid` ([UUID](/reference/data-types)) — Table UUID. -- `engine` ([String](/reference/data-types)) — Table engine name. -- `metadata_dropped_path` ([String](/reference/data-types)) — Path of table's metadata file in metadata_dropped directory. -- `table_dropped_time` ([DateTime](/reference/data-types)) — The time when the next attempt to remove table's data is scheduled on. Usually it's the table when the table was dropped plus `database_atomic_delay_before_drop_table_sec`. +- `index` ([UInt32](/core/reference/data-types)) — Index in marked_dropped_tables queue. +- `database` ([String](/core/reference/data-types)) — Database name. +- `table` ([String](/core/reference/data-types)) — Table name. +- `uuid` ([UUID](/core/reference/data-types)) — Table UUID. +- `engine` ([String](/core/reference/data-types)) — Table engine name. +- `metadata_dropped_path` ([String](/core/reference/data-types)) — Path of table's metadata file in metadata_dropped directory. +- `table_dropped_time` ([DateTime](/core/reference/data-types)) — The time when the next attempt to remove table's data is scheduled on. Usually it's the table when the table was dropped plus `database_atomic_delay_before_drop_table_sec`. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/dropped_tables_parts.mdx b/core/reference/system-tables/dropped_tables_parts.mdx new file mode 100644 index 00000000..06a688b5 --- /dev/null +++ b/core/reference/system-tables/dropped_tables_parts.mdx @@ -0,0 +1,104 @@ +--- +description: 'System table containing information about parts of MergeTree dropped + tables from `system.dropped_tables`' +keywords: ['system table', 'dropped_tables_parts'] +slug: /operations/system-tables/dropped_tables_parts +title: 'system.dropped_tables_parts' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about parts of [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) dropped tables from [system.dropped_tables](/core/reference/system-tables/dropped_tables) + +The schema of this table is the same as [system.parts](/core/reference/system-tables/parts) + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `partition` ([String](/core/reference/data-types)) — Partition identifier (string representation derived from the table partition key expression). +- `name` ([String](/core/reference/data-types)) — +Name of the data part. The part naming structure can be used to determine many aspects of the data, ingest, and merge patterns. The part naming format is the following: + +```text +____ +``` + +* Definitions: + - `partition_id` - identifies the partition key + - `minimum_block_number` - identifies the minimum block number in the part. ClickHouse always merges continuous blocks + - `maximum_block_number` - identifies the maximum block number in the part + - `level` - incremented by one with each additional merge on the part. A level of 0 indicates this is a new part that has not been merged. It is important to remember that all parts in ClickHouse are always immutable + - `data_version` - optional value, incremented when a part is mutated (again, mutated data is always only written to a new part, since parts are immutable) + +- `uuid` ([UUID](/core/reference/data-types)) — The UUID of data part. +- `part_type` ([String](/core/reference/data-types)) — The data part storing format. Possible values: `Wide` — each column is stored in a separate file, `Compact` — all columns are stored in one file. Data storing format is controlled by the `min_bytes_for_wide_part` and `min_rows_for_wide_part` settings of the MergeTree table. +- `active` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the data part is active. If a data part is active, it's used in a table. Otherwise, it's about to be deleted. Inactive data parts appear after merging and mutating operations. +- `marks` ([UInt64](/core/reference/data-types)) — The number of marks. To get the approximate number of rows in a data part, multiply marks by the index granularity (usually 8192) (this hint does not work for adaptive granularity). +- `rows` ([UInt64](/core/reference/data-types)) — The number of rows. +- `files` ([UInt64](/core/reference/data-types)) — The number of files in the data part. +- `bytes_on_disk` ([UInt64](/core/reference/data-types)) — Total size of all the data part files in bytes. +- `data_compressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included. +- `data_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included. +- `primary_key_size` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) used by primary key values in the primary.idx/cidx file on disk. +- `marks_bytes` ([UInt64](/core/reference/data-types)) — The size of the file with marks. +- `secondary_indices_compressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of compressed data for secondary indices in the data part. All the auxiliary files (for example, files with marks) are not included. +- `secondary_indices_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of uncompressed data for secondary indices in the data part. All the auxiliary files (for example, files with marks) are not included. +- `secondary_indices_marks_bytes` ([UInt64](/core/reference/data-types)) — The size of the file with marks for secondary indices. +- `modification_time` ([DateTime](/core/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation. +- `remove_time` ([DateTime](/core/reference/data-types)) — The time when the data part became inactive. +- `refcount` ([UInt32](/core/reference/data-types)) — The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges. +- `min_date` ([Date](/core/reference/data-types)) — The minimum value of the date key in the data part. +- `max_date` ([Date](/core/reference/data-types)) — The maximum value of the date key in the data part. +- `min_time` ([DateTime](/core/reference/data-types)) — The minimum value of the date and time key in the data part. +- `max_time` ([DateTime](/core/reference/data-types)) — The maximum value of the date and time key in the data part. +- `partition_id` ([String](/core/reference/data-types)) — ID of the partition. +- `min_block_number` ([Int64](/core/reference/data-types)) — The minimum number of data parts that make up the current part after merging. +- `max_block_number` ([Int64](/core/reference/data-types)) — The maximum number of data parts that make up the current part after merging. +- `level` ([UInt32](/core/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. +- `data_version` ([UInt64](/core/reference/data-types)) — Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than data_version). +- `primary_key_bytes_in_memory` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) used by primary key values. Will be 0 when `primary_key_lazy_load` is enabled and the key is not loaded. When non-zero the bytes live in the part itself and are accounted within `jemalloc.mergetree_arena.active_bytes`. They are NEVER counted in `PrimaryIndexCacheBytes` — those are mutually exclusive per part: an index lives either in the part (this metric) or in the shared `PrimaryIndexCache` (the other), depending on `primary_key_lazy_load` and `use_primary_key_cache`. +- `primary_key_bytes_in_memory_allocated` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) reserved for primary key values. Will be 0 when `primary_key_lazy_load` is enabled and the key is not loaded. When non-zero, included in `jemalloc.mergetree_arena.active_bytes`. See the note on `primary_key_bytes_in_memory` for the relationship with `PrimaryIndexCacheBytes`. +- `index_granularity_bytes_in_memory` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) used by index granularity values (will be 0 in case of primary_key_lazy_load=1 and use_primary_key_cache=1). When non-zero the bytes are part-owned and accounted within `jemalloc.mergetree_arena.active_bytes`. +- `index_granularity_bytes_in_memory_allocated` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) reserved for index granularity values (will be 0 in case of primary_key_lazy_load=1 and use_primary_key_cache=1). When non-zero, included in `jemalloc.mergetree_arena.active_bytes`. +- `is_frozen` ([UInt8](/core/reference/data-types)) — Flag that shows that a partition data backup exists. 1, the backup exists. 0, the backup does not exist. For more details, see FREEZE PARTITION. +- `database` ([String](/core/reference/data-types)) — Name of the database. +- `table` ([String](/core/reference/data-types)) — Name of the table. +- `engine` ([String](/core/reference/data-types)) — Name of the table engine without parameters. +- `disk_name` ([String](/core/reference/data-types)) — Name of a disk that stores the data part. +- `path` ([String](/core/reference/data-types)) — Absolute path to the folder with data part files. +- `hash_of_all_files` ([String](/core/reference/data-types)) — sipHash128 of compressed files. +- `hash_of_uncompressed_files` ([String](/core/reference/data-types)) — sipHash128 of uncompressed files (files with marks, index file etc.). +- `uncompressed_hash_of_compressed_files` ([String](/core/reference/data-types)) — sipHash128 of data in the compressed files as if they were uncompressed. +- `delete_ttl_info_min` ([DateTime](/core/reference/data-types)) — The minimum value of the date and time key for TTL DELETE rule. +- `delete_ttl_info_max` ([DateTime](/core/reference/data-types)) — The maximum value of the date and time key for TTL DELETE rule. +- `move_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — Array of expressions. Each expression defines a TTL MOVE rule. +- `move_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — Array of date and time values. Each element describes the minimum key value for a TTL MOVE rule. +- `move_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — Array of date and time values. Each element describes the maximum key value for a TTL MOVE rule. +- `default_compression_codec` ([String](/core/reference/data-types)) — The name of the codec used to compress this data part (in case when there is no explicit codec for columns). +- `recompression_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — The TTL expression. +- `recompression_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. +- `recompression_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. +- `group_by_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — The TTL expression. +- `group_by_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. +- `group_by_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. +- `rows_where_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — The TTL expression. +- `rows_where_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. +- `rows_where_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. +- `projections` ([Array(String)](/core/reference/data-types)) — The list of projection names calculated for this part. +- `visible` ([UInt8](/core/reference/data-types)) — Flag which indicated whether this part is visible for SELECT queries. +- `creation_tid` ([Tuple(UInt64, UInt64, UUID)](/core/reference/data-types)) — ID of transaction that has created/is trying to create this object. +- `removal_tid_lock` ([UInt64](/core/reference/data-types)) — Hash of removal_tid, used to lock an object for removal. +- `removal_tid` ([Tuple(UInt64, UInt64, UUID)](/core/reference/data-types)) — ID of transaction that has removed/is trying to remove this object +- `creation_csn` ([UInt64](/core/reference/data-types)) — CSN of transaction that has created this object +- `removal_csn` ([UInt64](/core/reference/data-types)) — CSN of transaction that has removed this object +- `has_lightweight_delete` ([UInt8](/core/reference/data-types)) — The flag which indicated whether the part has lightweight delete mask. +- `last_removal_attempt_time` ([DateTime](/core/reference/data-types)) — The last time the server tried to delete this part. +- `removal_state` ([String](/core/reference/data-types)) — The current state of part removal process. +{/*AUTOGENERATED_END*/} + +## See Also {#see-also} + +- [MergeTree family](/core/reference/engines/table-engines/mergetree-family/mergetree) +- [system.parts](/core/reference/system-tables/parts) +- [system.dropped_tables](/core/reference/system-tables/dropped_tables) diff --git a/reference/system-tables/enabled_roles.mdx b/core/reference/system-tables/enabled_roles.mdx similarity index 56% rename from reference/system-tables/enabled_roles.mdx rename to core/reference/system-tables/enabled_roles.mdx index 76f64a84..422b992c 100644 --- a/reference/system-tables/enabled_roles.mdx +++ b/core/reference/system-tables/enabled_roles.mdx @@ -14,8 +14,8 @@ Contains all active roles at the moment, including the current role of the curre ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `role_name` ([String](/reference/data-types)) — Role name. -- `with_admin_option` ([UInt8](/reference/data-types)) — 1 if the role has ADMIN OPTION privilege. -- `is_current` ([UInt8](/reference/data-types)) — Flag that shows whether `enabled_role` is a current role of a current user. -- `is_default` ([UInt8](/reference/data-types)) — Flag that shows whether `enabled_role` is a default role. +- `role_name` ([String](/core/reference/data-types)) — Role name. +- `with_admin_option` ([UInt8](/core/reference/data-types)) — 1 if the role has ADMIN OPTION privilege. +- `is_current` ([UInt8](/core/reference/data-types)) — Flag that shows whether `enabled_role` is a current role of a current user. +- `is_default` ([UInt8](/core/reference/data-types)) — Flag that shows whether `enabled_role` is a default role. {/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/error_log.mdx b/core/reference/system-tables/error_log.mdx new file mode 100644 index 00000000..4625dee4 --- /dev/null +++ b/core/reference/system-tables/error_log.mdx @@ -0,0 +1,60 @@ +--- +description: 'System table containing the history of error values from table `system.errors`, + periodically flushed to disk.' +keywords: ['system table', 'error_log'] +slug: /operations/system-tables/system-error-log +title: 'system.error_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains history of error values from table `system.errors`, periodically flushed to disk. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Event date. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time. +- `code` ([Int32](/core/reference/data-types/int-uint)) — Error code. +- `error` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Error name. +- `value` ([UInt64](/core/reference/data-types/int-uint)) — Number of errors happened in time interval. +- `remote` ([UInt8](/core/reference/data-types/int-uint)) — Remote exception (i.e. received during one of the distributed queries). +- `last_error_time` ([DateTime](/core/reference/data-types/datetime)) — The time when the last error happened. +- `last_error_message` ([String](/core/reference/data-types/string)) — Message for the last error. +- `last_error_query_id` ([String](/core/reference/data-types/string)) — Id of a query that caused the last error (if available). +- `last_error_trace` ([Array(UInt64)](/core/reference/data-types/array)) — A stack trace that represents a list of physical addresses where the called methods are stored. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.error_log LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +hostname: clickhouse.testing.internal +event_date: 2025-11-11 +event_time: 2025-11-11 11:35:28 +code: 60 +error: UNKNOWN_TABLE +value: 1 +remote: 0 +last_error_time: 2025-11-11 11:35:28 +last_error_message: Unknown table expression identifier 'system.table_not_exist' in scope SELECT * FROM system.table_not_exist +last_error_query_id: 77ad9ece-3db7-4236-9b5a-f789bce4aa2e +last_error_trace: [100506790044914,100506534488542,100506409937998,100506409936517,100506425182891,100506618154123,100506617994473,100506617990486,100506617988112,100506618341386,100506630272160,100506630266232,100506630276900,100506629795243,100506633519500,100506633495783,100506692143858,100506692248921,100506790779783,100506790781278,100506790390399,100506790380047,123814948752036,123814949330028] +``` + +## See Also {#see-also} + +- [error_log setting](/core/reference/settings/server-settings/settings#error_log) — Enabling and disabling the setting. +- [system.errors](/core/reference/system-tables/errors) — Contains error codes with the number of times they have been triggered. +- [Monitoring](/core/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. diff --git a/reference/system-tables/errors.mdx b/core/reference/system-tables/errors.mdx similarity index 55% rename from reference/system-tables/errors.mdx rename to core/reference/system-tables/errors.mdx index 954b3a6b..a7cfc6d3 100644 --- a/reference/system-tables/errors.mdx +++ b/core/reference/system-tables/errors.mdx @@ -15,20 +15,20 @@ import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; Contains error codes with the number of times they have been triggered. -To show all possible error codes, including ones which were not triggered, set setting [system_events_show_zero_values](/reference/settings/session-settings#system_events_show_zero_values) to 1. +To show all possible error codes, including ones which were not triggered, set setting [system_events_show_zero_values](/core/reference/settings/session-settings#system_events_show_zero_values) to 1. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Name of the error (errorCodeToName). -- `code` ([Int32](/reference/data-types)) — Code number of the error. -- `value` ([UInt64](/reference/data-types)) — The number of times this error happened. -- `last_error_time` ([DateTime](/reference/data-types)) — The time when the last error happened. -- `last_error_message` ([String](/reference/data-types)) — Message for the last error. -- `last_error_format_string` ([String](/reference/data-types)) — Format string for the last error. -- `last_error_trace` ([Array(UInt64)](/reference/data-types)) — A stack trace that represents a list of physical addresses where the called methods are stored. -- `remote` ([UInt8](/reference/data-types)) — Remote exception (i.e. received during one of the distributed queries). -- `query_id` ([String](/reference/data-types)) — Id of a query that caused an error (if available). +- `name` ([String](/core/reference/data-types)) — Name of the error (errorCodeToName). +- `code` ([Int32](/core/reference/data-types)) — Code number of the error. +- `value` ([UInt64](/core/reference/data-types)) — The number of times this error happened. +- `last_error_time` ([DateTime](/core/reference/data-types)) — The time when the last error happened. +- `last_error_message` ([String](/core/reference/data-types)) — Message for the last error. +- `last_error_format_string` ([String](/core/reference/data-types)) — Format string for the last error. +- `last_error_trace` ([Array(UInt64)](/core/reference/data-types)) — A stack trace that represents a list of physical addresses where the called methods are stored. +- `remote` ([UInt8](/core/reference/data-types)) — Remote exception (i.e. received during one of the distributed queries). +- `query_id` ([String](/core/reference/data-types)) — Id of a query that caused an error (if available). {/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/events.mdx b/core/reference/system-tables/events.mdx similarity index 99% rename from reference/system-tables/events.mdx rename to core/reference/system-tables/events.mdx index c7ff281f..89104f2e 100644 --- a/reference/system-tables/events.mdx +++ b/core/reference/system-tables/events.mdx @@ -18,9 +18,9 @@ Contains information about the number of events that have occurred in the system ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `event` ([String](/reference/data-types)) — Event name. -- `value` ([UInt64](/reference/data-types)) — Number of events occurred. -- `description` ([String](/reference/data-types)) — Event description. +- `event` ([String](/core/reference/data-types)) — Event name. +- `value` ([UInt64](/core/reference/data-types)) — Number of events occurred. +- `description` ([String](/core/reference/data-types)) — Event description. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -41,10 +41,10 @@ SELECT * FROM system.events LIMIT 5 ## See Also {#see-also} -- [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) — Contains periodically calculated metrics. -- [system.metrics](/reference/system-tables/metrics) — Contains instantly calculated metrics. -- [system.metric_log](/reference/system-tables/metric_log) — Contains a history of metrics values from tables `system.metrics` and `system.events`. -- [Monitoring](/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. +- [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) — Contains periodically calculated metrics. +- [system.metrics](/core/reference/system-tables/metrics) — Contains instantly calculated metrics. +- [system.metric_log](/core/reference/system-tables/metric_log) — Contains a history of metrics values from tables `system.metrics` and `system.events`. +- [Monitoring](/core/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. ## Event descriptions {#event-descriptions} diff --git a/reference/system-tables/fail_points.mdx b/core/reference/system-tables/fail_points.mdx similarity index 76% rename from reference/system-tables/fail_points.mdx rename to core/reference/system-tables/fail_points.mdx index 4b8154f5..6a53b2ed 100644 --- a/reference/system-tables/fail_points.mdx +++ b/core/reference/system-tables/fail_points.mdx @@ -15,9 +15,9 @@ Failpoints can be enabled and disabled at runtime using the `SYSTEM ENABLE FAILP ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Name of the failpoint. -- `type` ([Enum8('once' = 0, 'regular' = 1, 'pauseable_once' = 2, 'pauseable' = 3)](/reference/data-types)) — Type of failpoint: 'once' fires a single time then auto-disables, 'regular' fires every time, 'pauseable_once' blocks execution once, 'pauseable' blocks execution every time until resumed. -- `enabled` ([UInt8](/reference/data-types)) — Whether the failpoint is currently enabled (1) or disabled (0). +- `name` ([String](/core/reference/data-types)) — Name of the failpoint. +- `type` ([Enum8('once' = 0, 'regular' = 1, 'pauseable_once' = 2, 'pauseable' = 3)](/core/reference/data-types)) — Type of failpoint: 'once' fires a single time then auto-disables, 'regular' fires every time, 'pauseable_once' blocks execution once, 'pauseable' blocks execution every time until resumed. +- `enabled` ([UInt8](/core/reference/data-types)) — Whether the failpoint is currently enabled (1) or disabled (0). {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/filesystem_cache.mdx b/core/reference/system-tables/filesystem_cache.mdx new file mode 100644 index 00000000..f8719c67 --- /dev/null +++ b/core/reference/system-tables/filesystem_cache.mdx @@ -0,0 +1,33 @@ +--- +description: 'Contains information about all entries inside filesystem cache for remote objects.' +keywords: ['system table', 'filesystem_cache'] +slug: /operations/system-tables/filesystem_cache +title: 'system.filesystem_cache' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about all entries inside filesystem cache for remote objects. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `cache_name` ([String](/core/reference/data-types)) — Name of the cache object. Can be used in `SYSTEM DESCRIBE FILESYSTEM CACHE `, `SYSTEM DROP FILESYSTEM CACHE ` commands +- `cache_base_path` ([String](/core/reference/data-types)) — Path to the base directory where all cache files (of a cache identified by `cache_name`) are stored. +- `cache_path` ([String](/core/reference/data-types)) — Path to a particular cache file, corresponding to a file segment in a source file +- `key` ([String](/core/reference/data-types)) — Cache key of the file segment +- `file_segment_range_begin` ([UInt64](/core/reference/data-types)) — Offset corresponding to the beginning of the file segment range +- `file_segment_range_end` ([UInt64](/core/reference/data-types)) — Offset corresponding to the (including) end of the file segment range +- `size` ([UInt64](/core/reference/data-types)) — Size of the file segment +- `state` ([String](/core/reference/data-types)) — File segment state (DOWNLOADED, DOWNLOADING, PARTIALLY_DOWNLOADED, ...) +- `finished_download_time` ([DateTime](/core/reference/data-types)) — Time when file segment finished downloading. +- `cache_hits` ([UInt64](/core/reference/data-types)) — Number of cache hits of corresponding file segment +- `references` ([UInt64](/core/reference/data-types)) — Number of references to corresponding file segment. Value 1 means that nobody uses it at the moment (the only existing reference is in cache storage itself) +- `downloaded_size` ([UInt64](/core/reference/data-types)) — Downloaded size of the file segment +- `kind` ([String](/core/reference/data-types)) — File segment kind (used to distinguish between file segments added as a part of 'Temporary data in cache') +- `unbound` ([UInt8](/core/reference/data-types)) — Internal implementation flag +- `user_id` ([String](/core/reference/data-types)) — User id of the user which created the file segment +- `segment_type` ([String](/core/reference/data-types)) — Type of the segment. Used to separate data files(`.json`, `.txt` and etc) from data file(`.bin`, mark files). +- `file_size` ([Nullable(UInt64)](/core/reference/data-types)) — File size of the file to which current file segment belongs +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/filesystem_cache_log.mdx b/core/reference/system-tables/filesystem_cache_log.mdx new file mode 100644 index 00000000..eaf6f3d4 --- /dev/null +++ b/core/reference/system-tables/filesystem_cache_log.mdx @@ -0,0 +1,32 @@ +--- +description: 'Contains a history of all events occurred with filesystem cache for objects on a remote filesystem. + +It is safe to truncate or drop this table at any time.' +keywords: ['system table', 'filesystem_cache_log'] +slug: /operations/system-tables/filesystem_cache_log +title: 'system.filesystem_cache_log' +doc_type: 'reference' +--- + +Contains a history of all events occurred with filesystem cache for objects on a remote filesystem. + +It is safe to truncate or drop this table at any time. + +Columns: + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname +- `event_date` ([Date](/core/reference/data-types/date)) — Event date +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time +- `query_id` ([String](/core/reference/data-types/string)) — Id of the query +- `source_file_path` ([String](/core/reference/data-types/string)) — File segment path on filesystem +- `file_segment_range` ([Tuple(UInt64, UInt64)](/core/reference/data-types/tuple)) — File segment range +- `total_requested_range` ([Tuple(UInt64, UInt64)](/core/reference/data-types/tuple)) — Full read range +- `key` ([String](/core/reference/data-types/string)) — File segment key +- `offset` ([UInt64](/core/reference/data-types/int-uint)) — File segment offset +- `size` ([UInt64](/core/reference/data-types/int-uint)) — Read size +- `read_type` ([String](/core/reference/data-types/string)) — Read type: READ_FROM_CACHE, READ_FROM_FS_AND_DOWNLOADED_TO_CACHE, READ_FROM_FS_BYPASSING_CACHE +- `read_from_cache_attempted` ([UInt8](/core/reference/data-types/int-uint)) — Whether reading from cache was attempted +- `read_buffer_id` ([String](/core/reference/data-types/string)) — Internal implementation read buffer id +- `user_id` ([String](/core/reference/data-types/string)) — User id of the user which created the file segment +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/filesystem_cache_settings.mdx b/core/reference/system-tables/filesystem_cache_settings.mdx new file mode 100644 index 00000000..49b0ff17 --- /dev/null +++ b/core/reference/system-tables/filesystem_cache_settings.mdx @@ -0,0 +1,49 @@ +--- +description: 'Contains information about all filesystem cache settings' +keywords: ['system table', 'filesystem_cache_settings'] +slug: /operations/system-tables/filesystem_cache_settings +title: 'system.filesystem_cache_settings' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about all filesystem cache settings + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `cache_name` ([String](/core/reference/data-types)) — Cache name +- `path` ([String](/core/reference/data-types)) — Cache directory path +- `max_size` ([UInt64](/core/reference/data-types)) — Maximum cache size +- `max_elements` ([UInt64](/core/reference/data-types)) — Maximum number of cache elements, e.g. file segments (limits number of files on filesystem) +- `max_file_segment_size` ([UInt64](/core/reference/data-types)) — Maximum size of a single file segment +- `boundary_alignment` ([UInt64](/core/reference/data-types)) — File segment alignment +- `cache_on_write_operations` ([UInt8](/core/reference/data-types)) — Enables write-through cache (cache on INSERT and MERGE) +- `cache_policy` ([String](/core/reference/data-types)) — Cache eviction policy +- `slru_size_ratio` ([Float64](/core/reference/data-types)) — SLRU cache policy size ratio of protected to probationary elements +- `background_download_threads` ([UInt64](/core/reference/data-types)) — Number of background download threads. Value 0 disables background download +- `background_download_queue_size_limit` ([UInt64](/core/reference/data-types)) — Size of background download queue. Value 0 disables background download +- `background_download_max_file_segment_size` ([UInt64](/core/reference/data-types)) — Maximum size which can be downloaded in background download +- `load_metadata_threads` ([UInt64](/core/reference/data-types)) — Maximum number of threads used to load cache metadata at server startup +- `load_metadata_asynchronously` ([UInt8](/core/reference/data-types)) — Enables asynchronous loading of metadata on server startup +- `keep_free_space_size_ratio` ([Float64](/core/reference/data-types)) — A ratio of free space which cache would try to uphold in the background +- `keep_free_space_elements_ratio` ([Float64](/core/reference/data-types)) — A ratio of free elements which cache would try to uphold in the background +- `keep_free_space_remove_batch` ([UInt64](/core/reference/data-types)) — A remove batch size of cache elements made by background thread which upholds free space/elements ratio +- `enable_filesystem_query_cache_limit` ([UInt8](/core/reference/data-types)) — Enable limiting maximum size of cache which can be written within a query +- `cache_hits_threshold` ([UInt64](/core/reference/data-types)) — Deprecated setting +- `enable_bypass_cache_with_threshold` ([UInt8](/core/reference/data-types)) — Undocumented. Not recommended for use +- `bypass_cache_threshold` ([UInt64](/core/reference/data-types)) — Undocumented. Not recommended for use +- `write_cache_per_user_id_directory` ([UInt8](/core/reference/data-types)) — Internal ClickHouse Cloud setting +- `allow_dynamic_cache_resize` ([UInt8](/core/reference/data-types)) — Allow dynamic resize of filesystem cache +- `dynamic_resize_lock_wait_ms` ([UInt64](/core/reference/data-types)) — Timeout in milliseconds to acquire the dynamic resize exclusive lock before skipping the resize attempt +- `max_size_ratio_to_total_space` ([Float64](/core/reference/data-types)) — Ratio of `max_size` to total disk space +- `skip_cache_on_disk_failure` ([UInt8](/core/reference/data-types)) — If true, bypass filesystem cache operations silently on disk IO errors. If false (default), disk IO errors are propagated as startup failures. +- `use_split_cache` ([UInt8](/core/reference/data-types)) — Use separation of files to system/data. +- `split_cache_ratio` ([Float64](/core/reference/data-types)) — Ratio of system segment to total size of cache for split_cache. +- `overcommit_eviction_evict_step` ([UInt64](/core/reference/data-types)) — Eviction step in bytes for overcommit eviction policy. Used for keep_free_space_*_ratio settings +- `check_cache_probability` ([Float64](/core/reference/data-types)) — Works only for debug or sanitizer build. Checks cache correctness by going through all cache and checking state of each cache element +- `is_initialized` ([UInt8](/core/reference/data-types)) — Indicates whether cache was successfully initialized +- `current_size` ([UInt64](/core/reference/data-types)) — Current cache size +- `current_elements_num` ([UInt64](/core/reference/data-types)) — Current cache elements (file segments) number +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/filesystem_read_prefetches_log.mdx b/core/reference/system-tables/filesystem_read_prefetches_log.mdx new file mode 100644 index 00000000..665dd9da --- /dev/null +++ b/core/reference/system-tables/filesystem_read_prefetches_log.mdx @@ -0,0 +1,33 @@ +--- +description: 'Contains a history of all prefetches done during reading from MergeTree tables backed by a remote filesystem. + +It is safe to truncate or drop this table at any time.' +keywords: ['system table', 'filesystem_read_prefetches_log'] +slug: /operations/system-tables/filesystem_read_prefetches_log +title: 'system.filesystem_read_prefetches_log' +doc_type: 'reference' +--- + +Contains a history of all prefetches done during reading from MergeTree tables backed by a remote filesystem. + +It is safe to truncate or drop this table at any time. + +Columns: + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) +- `event_date` ([Date](/core/reference/data-types/date)) +- `event_time` ([DateTime](/core/reference/data-types/datetime)) +- `query_id` ([String](/core/reference/data-types/string)) +- `path` ([String](/core/reference/data-types/string)) +- `offset` ([UInt64](/core/reference/data-types/int-uint)) +- `size` ([Int64](/core/reference/data-types/int-uint)) +- `prefetch_submit_time` ([DateTime64(6)](/core/reference/data-types/datetime64)) +- `priority` ([Int64](/core/reference/data-types/int-uint)) +- `prefetch_execution_start_time` ([DateTime64(6)](/core/reference/data-types/datetime64)) +- `prefetch_execution_end_time` ([DateTime64(6)](/core/reference/data-types/datetime64)) +- `prefetch_execution_time_us` ([UInt64](/core/reference/data-types/int-uint)) +- `state` ([String](/core/reference/data-types/string)) +- `thread_id` ([UInt64](/core/reference/data-types/int-uint)) +- `reader_id` ([String](/core/reference/data-types/string)) +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/formats.mdx b/core/reference/system-tables/formats.mdx new file mode 100644 index 00000000..ee40d792 --- /dev/null +++ b/core/reference/system-tables/formats.mdx @@ -0,0 +1,29 @@ +--- +description: 'Contains a list of all the formats along with flags whether a format is suitable for input/output or whether it supports parallelization.' +keywords: ['system table', 'formats'] +slug: /operations/system-tables/formats +title: 'system.formats' +doc_type: 'reference' +--- + +## Description {#description} + +Contains a list of all the formats along with flags whether a format is suitable for input/output or whether it supports parallelization. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `name` ([String](/core/reference/data-types)) — Format name. +- `is_input` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the format is suitable for data input. +- `is_output` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the format is suitable for data output. +- `supports_parallel_parsing` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the format supports parallel parsing. +- `supports_parallel_formatting` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the format supports parallel formatting. +- `is_tty_friendly` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the format usually displays fine in the terminal. For other formats, CLI will ask before output. +- `content_type` ([String](/core/reference/data-types)) — HTTP Content-Type corresponding to the output format. May depend on the current format settings. +- `supports_random_access` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the format supports random access in the input. +- `has_schema_inference` ([UInt8](/core/reference/data-types)) — The format can dynamically determine the schema from the data (either from embedded header/metadata or from the piece of data). +- `has_external_schema` ([UInt8](/core/reference/data-types)) — The format either has a fixed schema or accepts a predefined schema in its own format. +- `prefers_large_blocks` ([UInt8](/core/reference/data-types)) — The format will write larger blocks into output and generate larger blocks on input. +- `supports_append` ([UInt8](/core/reference/data-types)) — It's possible to append into a single file with this format. +- `supports_subsets_of_columns` ([UInt8](/core/reference/data-types)) — The input format can recognize when certain columns are omitted. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/functions.mdx b/core/reference/system-tables/functions.mdx new file mode 100644 index 00000000..b3f7cb05 --- /dev/null +++ b/core/reference/system-tables/functions.mdx @@ -0,0 +1,50 @@ +--- +description: 'System table containing information about normal and aggregate functions.' +keywords: ['system table', 'functions'] +slug: /operations/system-tables/functions +title: 'system.functions' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about normal and aggregate functions. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `name` ([String](/core/reference/data-types)) — The name of the function. +- `is_aggregate` ([UInt8](/core/reference/data-types)) — Whether the function is an aggregate function. +- `case_insensitive` ([UInt8](/core/reference/data-types)) — Whether the function name can be used case-insensitively. +- `alias_to` ([String](/core/reference/data-types)) — The original function name, if the function name is an alias. +- `create_query` ([String](/core/reference/data-types)) — Obsolete. +- `origin` ([Enum8('System' = 0, 'SQLUserDefined' = 1, 'ExecutableUserDefined' = 2, 'WasmUserDefined' = 3)](/core/reference/data-types)) — Obsolete. +- `description` ([String](/core/reference/data-types)) — A high-level description what the function does. +- `syntax` ([String](/core/reference/data-types)) — Signature of the function. +- `arguments` ([String](/core/reference/data-types)) — The function arguments. +- `parameters` ([String](/core/reference/data-types)) — The function parameters (only for aggregate function). +- `returned_value` ([String](/core/reference/data-types)) — What does the function return. +- `examples` ([String](/core/reference/data-types)) — Usage example. +- `introduced_in` ([String](/core/reference/data-types)) — ClickHouse version in which the function was first introduced. +- `categories` ([String](/core/reference/data-types)) — The category of the function. +- `deterministic` ([Nullable(UInt8)](/core/reference/data-types)) — Whether the function returns the same result for the same arguments. NULL when unknown (e.g. aggregate or user-defined functions). +- `higher_order` ([Nullable(UInt8)](/core/reference/data-types)) — Whether the function is higher-order — i.e. accepts at least one lambda expression as an argument (e.g. arrayMap, arrayFilter, mapApply). NULL when unknown. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql title="Query" + SELECT name, is_aggregate, deterministic, case_insensitive, alias_to FROM system.functions LIMIT 5; +``` + +```text title="Response" +┌─name─────────────────────┬─is_aggregate─┬─deterministic─┬─case_insensitive─┬─alias_to─┐ +│ BLAKE3 │ 0 │ 1 │ 0 │ │ +│ sipHash128Reference │ 0 │ 1 │ 0 │ │ +│ mapExtractKeyLike │ 0 │ 1 │ 0 │ │ +│ sipHash128ReferenceKeyed │ 0 │ 1 │ 0 │ │ +│ mapPartialSort │ 0 │ 1 │ 0 │ │ +└──────────────────────────┴──────────────┴──────────────────┴──────────────────┴──────────┘ + +5 rows in set. Elapsed: 0.002 sec. +``` diff --git a/reference/system-tables/grants.mdx b/core/reference/system-tables/grants.mdx similarity index 85% rename from reference/system-tables/grants.mdx rename to core/reference/system-tables/grants.mdx index 0397188d..235a0359 100644 --- a/reference/system-tables/grants.mdx +++ b/core/reference/system-tables/grants.mdx @@ -14,13 +14,13 @@ Privileges granted to ClickHouse user accounts. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `user_name` ([Nullable(String)](/reference/data-types)) — User name. -- `role_name` ([Nullable(String)](/reference/data-types)) — Role assigned to user account. -- `access_type` ([Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'CHECK' = 2, 'SHOW COLUMNS' = 3, 'SHOW DICTIONARIES' = 4, 'SHOW' = 5, 'SHOW FILESYSTEM CACHES' = 6, 'SELECT' = 7, 'INSERT' = 8, 'ALTER UPDATE' = 9, 'ALTER DELETE' = 10, 'ALTER ADD COLUMN' = 11, 'ALTER MODIFY COLUMN' = 12, 'ALTER DROP COLUMN' = 13, 'ALTER COMMENT COLUMN' = 14, 'ALTER CLEAR COLUMN' = 15, 'ALTER RENAME COLUMN' = 16, 'ALTER MATERIALIZE COLUMN' = 17, 'ALTER COLUMN' = 18, 'ALTER MODIFY COMMENT' = 19, 'ALTER MODIFY DATABASE COMMENT' = 20, 'ALTER ORDER BY' = 21, 'ALTER SAMPLE BY' = 22, 'ALTER ADD INDEX' = 23, 'ALTER DROP INDEX' = 24, 'ALTER MATERIALIZE INDEX' = 25, 'ALTER CLEAR INDEX' = 26, 'ALTER INDEX' = 27, 'ALTER ADD STATISTICS' = 28, 'ALTER DROP STATISTICS' = 29, 'ALTER MODIFY STATISTICS' = 30, 'ALTER MATERIALIZE STATISTICS' = 31, 'ALTER STATISTICS' = 32, 'ALTER ADD PROJECTION' = 33, 'ALTER DROP PROJECTION' = 34, 'ALTER MATERIALIZE PROJECTION' = 35, 'ALTER CLEAR PROJECTION' = 36, 'ALTER PROJECTION' = 37, 'ALTER ADD CONSTRAINT' = 38, 'ALTER DROP CONSTRAINT' = 39, 'ALTER CONSTRAINT' = 40, 'ALTER TTL' = 41, 'ALTER MATERIALIZE TTL' = 42, 'ALTER REWRITE PARTS' = 43, 'ALTER SETTINGS' = 44, 'ALTER MOVE PARTITION' = 45, 'ALTER FETCH PARTITION' = 46, 'ALTER FREEZE PARTITION' = 47, 'ALTER UNLOCK SNAPSHOT' = 48, 'ALTER EXECUTE' = 49, 'ALTER DATABASE SETTINGS' = 50, 'ALTER NAMED COLLECTION' = 51, 'ALTER TABLE' = 52, 'ALTER DATABASE' = 53, 'ALTER VIEW MODIFY QUERY' = 54, 'ALTER VIEW MODIFY REFRESH' = 55, 'ALTER VIEW MODIFY SQL SECURITY' = 56, 'ALTER VIEW' = 57, 'ALTER' = 58, 'CREATE DATABASE' = 59, 'CREATE TABLE' = 60, 'CREATE VIEW' = 61, 'CREATE DICTIONARY' = 62, 'CREATE TEMPORARY TABLE' = 63, 'CREATE ARBITRARY TEMPORARY TABLE' = 64, 'CREATE TEMPORARY VIEW' = 65, 'CREATE FUNCTION' = 66, 'CREATE WORKLOAD' = 67, 'CREATE RESOURCE' = 68, 'CREATE NAMED COLLECTION' = 69, 'CREATE' = 70, 'DROP DATABASE' = 71, 'DROP TABLE' = 72, 'DROP VIEW' = 73, 'DROP DICTIONARY' = 74, 'DROP FUNCTION' = 75, 'DROP WORKLOAD' = 76, 'DROP RESOURCE' = 77, 'DROP NAMED COLLECTION' = 78, 'DROP' = 79, 'UNDROP TABLE' = 80, 'TRUNCATE' = 81, 'OPTIMIZE' = 82, 'BACKUP' = 83, 'KILL QUERY' = 84, 'KILL TRANSACTION' = 85, 'MOVE PARTITION BETWEEN SHARDS' = 86, 'CREATE USER' = 87, 'ALTER USER' = 88, 'DROP USER' = 89, 'CREATE ROLE' = 90, 'ALTER ROLE' = 91, 'DROP ROLE' = 92, 'ROLE ADMIN' = 93, 'CREATE ROW POLICY' = 94, 'ALTER ROW POLICY' = 95, 'DROP ROW POLICY' = 96, 'CREATE MASKING POLICY' = 97, 'ALTER MASKING POLICY' = 98, 'DROP MASKING POLICY' = 99, 'CREATE QUOTA' = 100, 'ALTER QUOTA' = 101, 'DROP QUOTA' = 102, 'CREATE SETTINGS PROFILE' = 103, 'ALTER SETTINGS PROFILE' = 104, 'DROP SETTINGS PROFILE' = 105, 'ALLOW SQL SECURITY NONE' = 106, 'SHOW USERS' = 107, 'SHOW ROLES' = 108, 'SHOW ROW POLICIES' = 109, 'SHOW QUOTAS' = 110, 'SHOW SETTINGS PROFILES' = 111, 'SHOW MASKING POLICIES' = 112, 'SHOW ACCESS' = 113, 'IMPERSONATE' = 114, 'ACCESS MANAGEMENT' = 115, 'SHOW NAMED COLLECTIONS' = 116, 'SHOW NAMED COLLECTIONS SECRETS' = 117, 'NAMED COLLECTION' = 118, 'NAMED COLLECTION ADMIN' = 119, 'SET DEFINER' = 120, 'TABLE ENGINE' = 121, 'SYSTEM SHUTDOWN' = 122, 'SYSTEM DROP DNS CACHE' = 123, 'SYSTEM DROP CONNECTIONS CACHE' = 124, 'SYSTEM PREWARM MARK CACHE' = 125, 'SYSTEM DROP MARK CACHE' = 126, 'SYSTEM DROP ICEBERG METADATA CACHE' = 127, 'SYSTEM DROP AVRO SCHEMA CACHE' = 128, 'SYSTEM DROP PARQUET METADATA CACHE' = 129, 'SYSTEM PREWARM PRIMARY INDEX CACHE' = 130, 'SYSTEM DROP PRIMARY INDEX CACHE' = 131, 'SYSTEM DROP UNCOMPRESSED CACHE' = 132, 'SYSTEM DROP VECTOR SIMILARITY INDEX CACHE' = 133, 'SYSTEM DROP TEXT INDEX TOKENS CACHE' = 134, 'SYSTEM DROP TEXT INDEX HEADER CACHE' = 135, 'SYSTEM DROP TEXT INDEX POSTINGS CACHE' = 136, 'SYSTEM DROP TEXT INDEX CACHES' = 137, 'SYSTEM DROP MMAP CACHE' = 138, 'SYSTEM DROP QUERY CONDITION CACHE' = 139, 'SYSTEM DROP QUERY CACHE' = 140, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 141, 'SYSTEM DROP FILESYSTEM CACHE' = 142, 'SYSTEM DROP DISTRIBUTED CACHE' = 143, 'SYSTEM SYNC FILESYSTEM CACHE' = 144, 'SYSTEM DROP PAGE CACHE' = 145, 'SYSTEM DROP SCHEMA CACHE' = 146, 'SYSTEM DROP FORMAT SCHEMA CACHE' = 147, 'SYSTEM DROP S3 CLIENT CACHE' = 148, 'SYSTEM DROP CACHE' = 149, 'SYSTEM RELOAD CONFIG' = 150, 'SYSTEM RELOAD USERS' = 151, 'SYSTEM RELOAD DICTIONARY' = 152, 'SYSTEM RELOAD MODEL' = 153, 'SYSTEM RELOAD FUNCTION' = 154, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 155, 'SYSTEM RELOAD ASYNCHRONOUS METRICS' = 156, 'SYSTEM RECONNECT ZOOKEEPER' = 157, 'SYSTEM RELOAD' = 158, 'SYSTEM RESTART DISK' = 159, 'SYSTEM WAIT BLOBS CLEANUP' = 160, 'SYSTEM MERGES' = 161, 'SYSTEM TTL MERGES' = 162, 'SYSTEM FETCHES' = 163, 'SYSTEM MOVES' = 164, 'SYSTEM PULLING REPLICATION LOG' = 165, 'SYSTEM CLEANUP' = 166, 'SYSTEM VIEWS' = 167, 'SYSTEM DISTRIBUTED SENDS' = 168, 'SYSTEM REPLICATED SENDS' = 169, 'SYSTEM SENDS' = 170, 'SYSTEM REPLICATION QUEUES' = 171, 'SYSTEM VIRTUAL PARTS UPDATE' = 172, 'SYSTEM REDUCE BLOCKING PARTS' = 173, 'SYSTEM DROP REPLICA' = 174, 'SYSTEM SYNC REPLICA' = 175, 'SYSTEM REPLICA READINESS' = 176, 'SYSTEM RESTART REPLICA' = 177, 'SYSTEM RESTORE REPLICA' = 178, 'SYSTEM RESTORE DATABASE REPLICA' = 179, 'SYSTEM WAIT LOADING PARTS' = 180, 'SYSTEM SYNC DATABASE REPLICA' = 181, 'SYSTEM SYNC TRANSACTION LOG' = 182, 'SYSTEM SYNC FILE CACHE' = 183, 'SYSTEM FLUSH DISTRIBUTED' = 184, 'SYSTEM FLUSH LOGS' = 185, 'SYSTEM FLUSH ASYNC INSERT QUEUE' = 186, 'SYSTEM FLUSH OBJECT STORAGE QUEUE' = 187, 'SYSTEM FLUSH' = 188, 'SYSTEM THREAD FUZZER' = 189, 'SYSTEM UNFREEZE' = 190, 'SYSTEM UNLOCK SNAPSHOT' = 191, 'SYSTEM FAILPOINT' = 192, 'SYSTEM MEMORY' = 193, 'SYSTEM LISTEN' = 194, 'SYSTEM JEMALLOC' = 195, 'SYSTEM LOAD PRIMARY KEY' = 196, 'SYSTEM UNLOAD PRIMARY KEY' = 197, 'SYSTEM INSTRUMENT ADD' = 198, 'SYSTEM INSTRUMENT REMOVE' = 199, 'SYSTEM' = 200, 'dictGet' = 201, 'displaySecretsInShowAndSelect' = 202, 'addressToLine' = 203, 'addressToLineWithInlines' = 204, 'addressToSymbol' = 205, 'demangle' = 206, 'INTROSPECTION' = 207, 'READ' = 208, 'WRITE' = 209, 'CLUSTER' = 210, 'FILE' = 211, 'URL' = 212, 'REMOTE' = 213, 'MONGO' = 214, 'REDIS' = 215, 'MYSQL' = 216, 'POSTGRES' = 217, 'SQLITE' = 218, 'ODBC' = 219, 'JDBC' = 220, 'HDFS' = 221, 'S3' = 222, 'HIVE' = 223, 'AZURE' = 224, 'KAFKA' = 225, 'NATS' = 226, 'RABBITMQ' = 227, 'YTSAURUS' = 228, 'ARROW FLIGHT' = 229, 'SOURCES' = 230, 'ALL' = 231, 'NONE' = 232)](/reference/data-types)) — Access parameters for ClickHouse user account. -- `access_object` ([String](/reference/data-types)) — Parameter for access_type. Contains: 1 - Name of the source type for READ/WRITE grants.2 - Name of the table engine for TABLE ENGINE grants.3 - Name of the user for grants like `SET DEFINER`. -- `database` ([Nullable(String)](/reference/data-types)) — Name of a database. -- `table` ([Nullable(String)](/reference/data-types)) — Name of a table. -- `column` ([Nullable(String)](/reference/data-types)) — Name of a column to which access is granted. -- `is_partial_revoke` ([UInt8](/reference/data-types)) — Logical value. It shows whether some privileges have been revoked. Possible values: 0 — The row describes a grant, 1 — The row describes a partial revoke. -- `grant_option` ([UInt8](/reference/data-types)) — Permission is granted WITH GRANT OPTION. +- `user_name` ([Nullable(String)](/core/reference/data-types)) — User name. +- `role_name` ([Nullable(String)](/core/reference/data-types)) — Role assigned to user account. +- `access_type` ([Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'CHECK' = 2, 'SHOW COLUMNS' = 3, 'SHOW DICTIONARIES' = 4, 'SHOW' = 5, 'SHOW FILESYSTEM CACHES' = 6, 'SELECT' = 7, 'INSERT' = 8, 'ALTER UPDATE' = 9, 'ALTER DELETE' = 10, 'ALTER ADD COLUMN' = 11, 'ALTER MODIFY COLUMN' = 12, 'ALTER DROP COLUMN' = 13, 'ALTER COMMENT COLUMN' = 14, 'ALTER CLEAR COLUMN' = 15, 'ALTER RENAME COLUMN' = 16, 'ALTER MATERIALIZE COLUMN' = 17, 'ALTER COLUMN' = 18, 'ALTER MODIFY COMMENT' = 19, 'ALTER MODIFY DATABASE COMMENT' = 20, 'ALTER ORDER BY' = 21, 'ALTER SAMPLE BY' = 22, 'ALTER ADD INDEX' = 23, 'ALTER DROP INDEX' = 24, 'ALTER MATERIALIZE INDEX' = 25, 'ALTER CLEAR INDEX' = 26, 'ALTER INDEX' = 27, 'ALTER ADD STATISTICS' = 28, 'ALTER DROP STATISTICS' = 29, 'ALTER MODIFY STATISTICS' = 30, 'ALTER MATERIALIZE STATISTICS' = 31, 'ALTER STATISTICS' = 32, 'ALTER ADD PROJECTION' = 33, 'ALTER DROP PROJECTION' = 34, 'ALTER MATERIALIZE PROJECTION' = 35, 'ALTER CLEAR PROJECTION' = 36, 'ALTER PROJECTION' = 37, 'ALTER ADD CONSTRAINT' = 38, 'ALTER DROP CONSTRAINT' = 39, 'ALTER CONSTRAINT' = 40, 'ALTER TTL' = 41, 'ALTER MATERIALIZE TTL' = 42, 'ALTER REWRITE PARTS' = 43, 'ALTER SETTINGS' = 44, 'ALTER MOVE PARTITION' = 45, 'ALTER FETCH PARTITION' = 46, 'ALTER FREEZE PARTITION' = 47, 'ALTER UNLOCK SNAPSHOT' = 48, 'ALTER EXECUTE' = 49, 'ALTER DATABASE SETTINGS' = 50, 'ALTER NAMED COLLECTION' = 51, 'ALTER TABLE' = 52, 'ALTER DATABASE' = 53, 'ALTER VIEW MODIFY QUERY' = 54, 'ALTER VIEW MODIFY REFRESH' = 55, 'ALTER VIEW MODIFY SQL SECURITY' = 56, 'ALTER VIEW' = 57, 'ALTER' = 58, 'CREATE DATABASE' = 59, 'CREATE TABLE' = 60, 'CREATE VIEW' = 61, 'CREATE DICTIONARY' = 62, 'CREATE TEMPORARY TABLE' = 63, 'CREATE ARBITRARY TEMPORARY TABLE' = 64, 'CREATE TEMPORARY VIEW' = 65, 'CREATE FUNCTION' = 66, 'CREATE WORKLOAD' = 67, 'CREATE RESOURCE' = 68, 'CREATE NAMED COLLECTION' = 69, 'CREATE' = 70, 'DROP DATABASE' = 71, 'DROP TABLE' = 72, 'DROP VIEW' = 73, 'DROP DICTIONARY' = 74, 'DROP FUNCTION' = 75, 'DROP WORKLOAD' = 76, 'DROP RESOURCE' = 77, 'DROP NAMED COLLECTION' = 78, 'DROP' = 79, 'UNDROP TABLE' = 80, 'TRUNCATE' = 81, 'OPTIMIZE' = 82, 'BACKUP' = 83, 'KILL QUERY' = 84, 'KILL TRANSACTION' = 85, 'MOVE PARTITION BETWEEN SHARDS' = 86, 'CREATE USER' = 87, 'ALTER USER' = 88, 'DROP USER' = 89, 'CREATE ROLE' = 90, 'ALTER ROLE' = 91, 'DROP ROLE' = 92, 'ROLE ADMIN' = 93, 'CREATE ROW POLICY' = 94, 'ALTER ROW POLICY' = 95, 'DROP ROW POLICY' = 96, 'CREATE MASKING POLICY' = 97, 'ALTER MASKING POLICY' = 98, 'DROP MASKING POLICY' = 99, 'CREATE QUOTA' = 100, 'ALTER QUOTA' = 101, 'DROP QUOTA' = 102, 'CREATE SETTINGS PROFILE' = 103, 'ALTER SETTINGS PROFILE' = 104, 'DROP SETTINGS PROFILE' = 105, 'ALLOW SQL SECURITY NONE' = 106, 'SHOW USERS' = 107, 'SHOW ROLES' = 108, 'SHOW ROW POLICIES' = 109, 'SHOW QUOTAS' = 110, 'SHOW SETTINGS PROFILES' = 111, 'SHOW MASKING POLICIES' = 112, 'SHOW ACCESS' = 113, 'IMPERSONATE' = 114, 'ACCESS MANAGEMENT' = 115, 'SHOW NAMED COLLECTIONS' = 116, 'SHOW NAMED COLLECTIONS SECRETS' = 117, 'NAMED COLLECTION' = 118, 'NAMED COLLECTION ADMIN' = 119, 'SET DEFINER' = 120, 'TABLE ENGINE' = 121, 'SYSTEM SHUTDOWN' = 122, 'SYSTEM DROP DNS CACHE' = 123, 'SYSTEM DROP CONNECTIONS CACHE' = 124, 'SYSTEM PREWARM MARK CACHE' = 125, 'SYSTEM DROP MARK CACHE' = 126, 'SYSTEM DROP ICEBERG METADATA CACHE' = 127, 'SYSTEM DROP AVRO SCHEMA CACHE' = 128, 'SYSTEM DROP PARQUET METADATA CACHE' = 129, 'SYSTEM PREWARM PRIMARY INDEX CACHE' = 130, 'SYSTEM DROP PRIMARY INDEX CACHE' = 131, 'SYSTEM DROP UNCOMPRESSED CACHE' = 132, 'SYSTEM DROP VECTOR SIMILARITY INDEX CACHE' = 133, 'SYSTEM DROP TEXT INDEX TOKENS CACHE' = 134, 'SYSTEM DROP TEXT INDEX HEADER CACHE' = 135, 'SYSTEM DROP TEXT INDEX POSTINGS CACHE' = 136, 'SYSTEM DROP TEXT INDEX CACHES' = 137, 'SYSTEM DROP MMAP CACHE' = 138, 'SYSTEM DROP QUERY CONDITION CACHE' = 139, 'SYSTEM DROP QUERY CACHE' = 140, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 141, 'SYSTEM DROP FILESYSTEM CACHE' = 142, 'SYSTEM DROP DISTRIBUTED CACHE' = 143, 'SYSTEM SYNC FILESYSTEM CACHE' = 144, 'SYSTEM DROP PAGE CACHE' = 145, 'SYSTEM DROP SCHEMA CACHE' = 146, 'SYSTEM DROP FORMAT SCHEMA CACHE' = 147, 'SYSTEM DROP S3 CLIENT CACHE' = 148, 'SYSTEM DROP CACHE' = 149, 'SYSTEM RELOAD CONFIG' = 150, 'SYSTEM RELOAD USERS' = 151, 'SYSTEM RELOAD DICTIONARY' = 152, 'SYSTEM RELOAD MODEL' = 153, 'SYSTEM RELOAD FUNCTION' = 154, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 155, 'SYSTEM RELOAD ASYNCHRONOUS METRICS' = 156, 'SYSTEM RECONNECT ZOOKEEPER' = 157, 'SYSTEM RELOAD' = 158, 'SYSTEM RESTART DISK' = 159, 'SYSTEM WAIT BLOBS CLEANUP' = 160, 'SYSTEM MERGES' = 161, 'SYSTEM TTL MERGES' = 162, 'SYSTEM FETCHES' = 163, 'SYSTEM MOVES' = 164, 'SYSTEM PULLING REPLICATION LOG' = 165, 'SYSTEM CLEANUP' = 166, 'SYSTEM VIEWS' = 167, 'SYSTEM DISTRIBUTED SENDS' = 168, 'SYSTEM REPLICATED SENDS' = 169, 'SYSTEM SENDS' = 170, 'SYSTEM REPLICATION QUEUES' = 171, 'SYSTEM VIRTUAL PARTS UPDATE' = 172, 'SYSTEM REDUCE BLOCKING PARTS' = 173, 'SYSTEM DROP REPLICA' = 174, 'SYSTEM SYNC REPLICA' = 175, 'SYSTEM REPLICA READINESS' = 176, 'SYSTEM RESTART REPLICA' = 177, 'SYSTEM RESTORE REPLICA' = 178, 'SYSTEM RESTORE DATABASE REPLICA' = 179, 'SYSTEM WAIT LOADING PARTS' = 180, 'SYSTEM SYNC DATABASE REPLICA' = 181, 'SYSTEM SYNC TRANSACTION LOG' = 182, 'SYSTEM SYNC FILE CACHE' = 183, 'SYSTEM FLUSH DISTRIBUTED' = 184, 'SYSTEM FLUSH LOGS' = 185, 'SYSTEM FLUSH ASYNC INSERT QUEUE' = 186, 'SYSTEM FLUSH OBJECT STORAGE QUEUE' = 187, 'SYSTEM FLUSH' = 188, 'SYSTEM THREAD FUZZER' = 189, 'SYSTEM UNFREEZE' = 190, 'SYSTEM UNLOCK SNAPSHOT' = 191, 'SYSTEM FAILPOINT' = 192, 'SYSTEM MEMORY' = 193, 'SYSTEM LISTEN' = 194, 'SYSTEM JEMALLOC' = 195, 'SYSTEM LOAD PRIMARY KEY' = 196, 'SYSTEM UNLOAD PRIMARY KEY' = 197, 'SYSTEM INSTRUMENT ADD' = 198, 'SYSTEM INSTRUMENT REMOVE' = 199, 'SYSTEM' = 200, 'dictGet' = 201, 'displaySecretsInShowAndSelect' = 202, 'addressToLine' = 203, 'addressToLineWithInlines' = 204, 'addressToSymbol' = 205, 'demangle' = 206, 'INTROSPECTION' = 207, 'READ' = 208, 'WRITE' = 209, 'CLUSTER' = 210, 'FILE' = 211, 'URL' = 212, 'REMOTE' = 213, 'MONGO' = 214, 'REDIS' = 215, 'MYSQL' = 216, 'POSTGRES' = 217, 'SQLITE' = 218, 'ODBC' = 219, 'JDBC' = 220, 'HDFS' = 221, 'S3' = 222, 'HIVE' = 223, 'AZURE' = 224, 'KAFKA' = 225, 'NATS' = 226, 'RABBITMQ' = 227, 'YTSAURUS' = 228, 'ARROW FLIGHT' = 229, 'SOURCES' = 230, 'ALL' = 231, 'NONE' = 232)](/core/reference/data-types)) — Access parameters for ClickHouse user account. +- `access_object` ([String](/core/reference/data-types)) — Parameter for access_type. Contains: 1 - Name of the source type for READ/WRITE grants.2 - Name of the table engine for TABLE ENGINE grants.3 - Name of the user for grants like `SET DEFINER`. +- `database` ([Nullable(String)](/core/reference/data-types)) — Name of a database. +- `table` ([Nullable(String)](/core/reference/data-types)) — Name of a table. +- `column` ([Nullable(String)](/core/reference/data-types)) — Name of a column to which access is granted. +- `is_partial_revoke` ([UInt8](/core/reference/data-types)) — Logical value. It shows whether some privileges have been revoked. Possible values: 0 — The row describes a grant, 1 — The row describes a partial revoke. +- `grant_option` ([UInt8](/core/reference/data-types)) — Permission is granted WITH GRANT OPTION. {/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/graphite_retentions.mdx b/core/reference/system-tables/graphite_retentions.mdx new file mode 100644 index 00000000..f3171c07 --- /dev/null +++ b/core/reference/system-tables/graphite_retentions.mdx @@ -0,0 +1,27 @@ +--- +description: 'System table containing information about parameters `graphite_rollup` + which are used in tables with `GraphiteMergeTree` type engines.' +keywords: ['system table', 'graphite_retentions'] +slug: /operations/system-tables/graphite_retentions +title: 'system.graphite_retentions' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about parameters [graphite_rollup](/core/reference/settings/server-settings/settings#graphite) which are used in tables with [\*GraphiteMergeTree](/core/reference/engines/table-engines/mergetree-family/graphitemergetree) engines. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `config_name` ([String](/core/reference/data-types)) — graphite_rollup parameter name. +- `rule_type` ([String](/core/reference/data-types)) — The rule type. Possible values: RuleTypeAll = 0 - default, with regex, compatible with old scheme; RuleTypePlain = 1 - plain metrics, with regex, compatible with old scheme; RuleTypeTagged = 2 - tagged metrics, with regex, compatible with old scheme; RuleTypeTagList = 3 - tagged metrics, with regex (converted to RuleTypeTagged from string like 'retention=10min ; env=(staging|prod)') +- `regexp` ([String](/core/reference/data-types)) — A pattern for the metric name. +- `function` ([String](/core/reference/data-types)) — The name of the aggregating function. +- `age` ([UInt64](/core/reference/data-types)) — The minimum age of the data in seconds. +- `precision` ([UInt64](/core/reference/data-types)) — How precisely to define the age of the data in seconds. +- `priority` ([UInt16](/core/reference/data-types)) — Pattern priority. +- `is_default` ([UInt8](/core/reference/data-types)) — Whether the pattern is the default. +- `Tables.database` ([Array(String)](/core/reference/data-types)) — Array of names of database tables that use the `config_name` parameter. +- `Tables.table` ([Array(String)](/core/reference/data-types)) — Array of table names that use the `config_name` parameter. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/histogram_metric_log.mdx b/core/reference/system-tables/histogram_metric_log.mdx new file mode 100644 index 00000000..743305dd --- /dev/null +++ b/core/reference/system-tables/histogram_metric_log.mdx @@ -0,0 +1,46 @@ +--- +description: 'System table containing periodic snapshots of histogram metrics, flushed to disk.' +keywords: ['system table', 'histogram_metric_log'] +sidebarTitle: 'histogram_metric_log' +slug: /operations/system-tables/histogram_metric_log +title: 'system.histogram_metric_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +History of `system.histogram_metrics`. Snapshot taken every `collect_interval_milliseconds`, flushed to disk. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Event date. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Event time with microseconds resolution. +- `metric` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Metric name. +- `labels` ([Map(LowCardinality(String), LowCardinality(String))](/core/reference/data-types/map)) — Metric labels. +- `histogram` ([Map(Float64, UInt64)](/core/reference/data-types/map)) — Cumulative histogram: maps bucket upper bound to number of observations ≤ that bound; includes +inf as the final bucket. +- `count` ([UInt64](/core/reference/data-types/int-uint)) — Total number of observations, equals histogram[+inf]. +- `sum` ([Float64](/core/reference/data-types/float)) — Sum of all observed values. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT event_time, metric, labels, histogram +FROM system.histogram_metric_log +WHERE metric = 'keeper_response_time_ms' +ORDER BY event_time DESC +LIMIT 1 +FORMAT Vertical; +``` + +## See Also {#see-also} + +- [system.histogram_metrics](/core/reference/system-tables/histogram_metrics) — Live histogram metrics. +- [system.metric_log](/core/reference/system-tables/metric_log) — History of `system.metrics` and `system.events`. diff --git a/reference/system-tables/histogram_metrics.mdx b/core/reference/system-tables/histogram_metrics.mdx similarity index 99% rename from reference/system-tables/histogram_metrics.mdx rename to core/reference/system-tables/histogram_metrics.mdx index a479118d..dc55d2f3 100644 --- a/reference/system-tables/histogram_metrics.mdx +++ b/core/reference/system-tables/histogram_metrics.mdx @@ -18,10 +18,10 @@ This table contains histogram metrics that can be calculated instantly and expor ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `metric` ([String](/reference/data-types)) — Metric name. -- `value` ([Float64](/reference/data-types)) — Metric value. -- `description` ([String](/reference/data-types)) — Metric description. -- `labels` ([Map(String, String)](/reference/data-types)) — Metric labels. +- `metric` ([String](/core/reference/data-types)) — Metric name. +- `value` ([Float64](/core/reference/data-types)) — Metric value. +- `description` ([String](/core/reference/data-types)) — Metric description. +- `labels` ([Map(String, String)](/core/reference/data-types)) — Metric labels. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/iceberg_history.mdx b/core/reference/system-tables/iceberg_history.mdx new file mode 100644 index 00000000..06636ede --- /dev/null +++ b/core/reference/system-tables/iceberg_history.mdx @@ -0,0 +1,22 @@ +--- +description: 'System iceberg snapshot history' +keywords: ['system iceberg_history'] +slug: /operations/system-tables/iceberg_history +title: 'system.iceberg_history' +doc_type: 'reference' +--- + +## Description {#description} + +This system table contain the snapshot history of Iceberg tables existing in ClickHouse. It will be empty if you don't have any Iceberg table in ClickHouse. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — Database name. +- `table` ([String](/core/reference/data-types)) — Table name. +- `made_current_at` ([Nullable(DateTime64(3))](/core/reference/data-types)) — Date & time when this snapshot was made current snapshot +- `snapshot_id` ([UInt64](/core/reference/data-types)) — Snapshot id which is used to identify a snapshot. +- `parent_id` ([UInt64](/core/reference/data-types)) — Parent id of this snapshot. +- `is_current_ancestor` ([UInt8](/core/reference/data-types)) — Flag that indicates if this snapshot is an ancestor of the current snapshot. +{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/iceberg_metadata_log.mdx b/core/reference/system-tables/iceberg_metadata_log.mdx similarity index 72% rename from reference/system-tables/iceberg_metadata_log.mdx rename to core/reference/system-tables/iceberg_metadata_log.mdx index d279bc0d..64c17040 100644 --- a/reference/system-tables/iceberg_metadata_log.mdx +++ b/core/reference/system-tables/iceberg_metadata_log.mdx @@ -23,7 +23,7 @@ This table is primarily intended for debugging purposes. ### Controlling log verbosity {#controlling-log-verbosity} -You can control which metadata events are logged using the [`iceberg_metadata_log_level`](/reference/settings/session-settings#iceberg_metadata_log_level) setting. +You can control which metadata events are logged using the [`iceberg_metadata_log_level`](/core/reference/settings/session-settings#iceberg_metadata_log_level) setting. To log all metadata used in the current query: @@ -49,7 +49,7 @@ FROM system.iceberg_metadata_log WHERE query_id = '{previous_query_id}'; ``` -See more information in the description of the [`iceberg_metadata_log_level`](/reference/settings/session-settings#iceberg_metadata_log_level) setting. +See more information in the description of the [`iceberg_metadata_log_level`](/core/reference/settings/session-settings#iceberg_metadata_log_level) setting. ### Good To Know {#good-to-know} @@ -62,16 +62,16 @@ See more information in the description of the [`iceberg_metadata_log_level`](/r ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Date of the entry. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time. -- `query_id` ([String](/reference/data-types/string)) — Query id. -- `content_type` ([Enum8('None' = 0, 'Metadata' = 1, 'ManifestListMetadata' = 2, 'ManifestListEntry' = 3, 'ManifestFileMetadata' = 4, 'ManifestFileEntry' = 5)](/reference/data-types/enum)) — Content type. -- `table_path` ([String](/reference/data-types/string)) — Table path. -- `file_path` ([String](/reference/data-types/string)) — File path. -- `content` ([String](/reference/data-types/string)) — Content in a JSON format (json file content, avro metadata or avro entry). -- `row_in_file` ([Nullable(UInt64)](/reference/data-types/nullable)) — Row in file. -- `pruning_status` ([Nullable(Enum8('NotPruned' = 0, 'PartitionPruned' = 1, 'MinMaxIndexPruned' = 2))](/reference/data-types/nullable)) — Status of partition pruning or min-max index pruning for the file. +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Date of the entry. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time. +- `query_id` ([String](/core/reference/data-types/string)) — Query id. +- `content_type` ([Enum8('None' = 0, 'Metadata' = 1, 'ManifestListMetadata' = 2, 'ManifestListEntry' = 3, 'ManifestFileMetadata' = 4, 'ManifestFileEntry' = 5)](/core/reference/data-types/enum)) — Content type. +- `table_path` ([String](/core/reference/data-types/string)) — Table path. +- `file_path` ([String](/core/reference/data-types/string)) — File path. +- `content` ([String](/core/reference/data-types/string)) — Content in a JSON format (json file content, avro metadata or avro entry). +- `row_in_file` ([Nullable(UInt64)](/core/reference/data-types/nullable)) — Row in file. +- `pruning_status` ([Nullable(Enum8('NotPruned' = 0, 'PartitionPruned' = 1, 'MinMaxIndexPruned' = 2))](/core/reference/data-types/nullable)) — Status of partition pruning or min-max index pruning for the file. {/*AUTOGENERATED_END*/} ### `content_type` values {#content-type-values} @@ -84,6 +84,6 @@ See more information in the description of the [`iceberg_metadata_log_level`](/r - `ManifestFileEntry`: Entry in a manifest file. ## See also {#see-also} -- [Iceberg Table Engine](/reference/engines/table-engines/integrations/iceberg) -- [Iceberg Table Function](/reference/functions/table-functions/iceberg) -- [system.iceberg_history](/reference/system-tables/iceberg_history) +- [Iceberg Table Engine](/core/reference/engines/table-engines/integrations/iceberg) +- [Iceberg Table Function](/core/reference/functions/table-functions/iceberg) +- [system.iceberg_history](/core/reference/system-tables/iceberg_history) diff --git a/core/reference/system-tables/index.mdx b/core/reference/system-tables/index.mdx new file mode 100644 index 00000000..7454b2da --- /dev/null +++ b/core/reference/system-tables/index.mdx @@ -0,0 +1,180 @@ +--- +description: 'Overview of what system tables are and why they are useful.' +keywords: ['system tables', 'overview'] +sidebarTitle: 'Overview' +slug: /operations/system-tables/ +title: 'System Tables' +doc_type: 'reference' +--- + +{/* The table of contents table for this page is automatically generated by +https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh +from the YAML front matter fields: slug, description, title. + +If you've spotted an error, please edit the YML frontmatter of the pages themselves. +*/} + +{/*AUTOGENERATED_START*/} +| Page | Description | +|-----|-----| +| [System Tables Overview](/core/reference/system-tables/overview) | Overview of what system tables are and why they are useful. | +| [system.histogram_metric_log](/core/reference/system-tables/histogram_metric_log) | System table containing periodic snapshots of histogram metrics, flushed to disk. | +| [INFORMATION_SCHEMA](/core/reference/system-tables/information_schema) | System database providing an almost standardized DBMS-agnostic view on metadata of database objects. | +| [system.aggregate_function_combinators](/core/reference/system-tables/aggregate_function_combinators) | Contains a list of all available aggregate function combinators, which could be applied to aggregate functions and change the way they work. | +| [system.aggregated_zookeeper_log](/core/reference/system-tables/aggregated_zookeeper_log) | System table containing aggregated statistics of ZooKeeper operations grouped by session, path, operation type, component, and subrequest flag. | +| [system.asynchronous_insert_log](/core/reference/system-tables/asynchronous_insert_log) | System table containing information about async inserts. Each entry represents an insert query buffered into an async insert query. | +| [system.asynchronous_loader](/core/reference/system-tables/asynchronous_loader) | System table containing information about and status of recent asynchronous jobs (e.g. for tables which are loading). The table contains a row for every job. | +| [system.asynchronous_metric_log](/core/reference/system-tables/asynchronous_metric_log) | System table containing historical values for `system.asynchronous_metrics`, which are saved once per time interval (one second by default) | +| [system.asynchronous_inserts](/core/reference/system-tables/asynchronous_inserts) | System table containing information about pending asynchronous inserts in queue. | +| [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) | System table containing metrics that are calculated periodically in the background. For example, the amount of RAM in use. | +| [system.azure_queue_settings](/core/reference/system-tables/azure_queue_settings) | System table containing information about settings of AzureQueue tables. Available from server version `24.10`. | +| [system.azure_queue_metadata_cache](/core/reference/system-tables/azure_queue_metadata_cache) | Contains in-memory state of AzureQueue metadata and currently processed rows per file. | +| [system.azure_queue_log](/core/reference/system-tables/azure_queue_log) | Contains log entries with information about files processed by the AzureQueue engine. +It is safe to truncate or drop this table at any time. | +| [system.background_schedule_pool_log](/core/reference/system-tables/background_schedule_pool_log) | System table containing history of background schedule pool task executions. | +| [system.background_schedule_pool](/core/reference/system-tables/background_schedule_pool) | System table containing information about tasks in background schedule pools. | +| [system.backup_log](/core/reference/system-tables/backup_log) | System table containing logging entries with information about `BACKUP` and `RESTORE` operations. | +| [system.backups](/core/reference/system-tables/backups) | System table containing logging entries with information about `BACKUP` and `RESTORE` operations. | +| [system.blob_storage_log](/core/reference/system-tables/blob_storage_log) | System table containing logging entries with information about various blob storage operations such as uploads and deletes. | +| [system.build_options](/core/reference/system-tables/build_options) | System table containing information about ClickHouse server's build options. | +| [system.certificates](/core/reference/system-tables/certificates) | Contains information about available certificates and their sources. | +| [system.clusters](/core/reference/system-tables/clusters) | System table containing information about clusters available in the config file and the servers defined in them. | +| [system.codecs](/core/reference/system-tables/codecs) | System table containing information about codecs in queue. | +| [system.collations](/core/reference/system-tables/collations) | Contains a list of all available collations for alphabetical comparison of strings. | +| [system.columns](/core/reference/system-tables/columns) | System table containing information about columns in all tables | +| [system.completions](/core/reference/system-tables/completions) | Contains a list of completion tokens. | +| [system.contributors](/core/reference/system-tables/contributors) | System table containing information about contributors. | +| [system.crash_log](/core/reference/system-tables/crash_log) | System table containing information about stack traces for fatal errors. | +| [system.current_roles](/core/reference/system-tables/current_roles) | System table containing active roles for the current user. | +| [system.dashboards](/core/reference/system-tables/dashboards) | Contains queries used by `/dashboard` page accessible though the HTTP interface. useful for monitoring and troubleshooting. | +| [system.data_skipping_indices](/core/reference/system-tables/data_skipping_indices) | System table containing information about existing data skipping indices in all the tables. | +| [system.data_type_families](/core/reference/system-tables/data_type_families) | System table containing information about supported data types | +| [system.database_engines](/core/reference/system-tables/database_engines) | System table containing a list of database engines supported by the server. | +| [system.database_replicas](/core/reference/system-tables/database_replicas) | System table containing information about and status of replicated database. | +| [system.databases](/core/reference/system-tables/databases) | System table containing information about the databases that are available to the current user. | +| [system.dead_letter_queue](/core/reference/system-tables/dead_letter_queue) | System table containing information about messages received via a streaming engine and parsed with errors. | +| [system.delta_lake_metadata_log](/core/reference/system-tables/delta_metadata_log) | System table containing information about metadata files read from Delta Lake tables. Each entry represents a root metadata JSON file. | +| [system.detached_parts](/core/reference/system-tables/detached_parts) | System table containing information about detached parts of MergeTree tables | +| [system.detached_tables](/core/reference/system-tables/detached_tables) | System table containing information about each detached table. | +| [system.dictionaries](/core/reference/system-tables/dictionaries) | System table containing information about dictionaries | +| [system.dimensional_metrics](/core/reference/system-tables/dimensional_metrics) | This table contains dimensional metrics that can be calculated instantly and exported in the Prometheus format. It is always up to date. | +| [system.disks](/core/reference/system-tables/disks) | System table containing information about disks defined in the server configuration | +| [system.distributed_ddl_queue](/core/reference/system-tables/distributed_ddl_queue) | System table containing information about distributed ddl queries (queries using the ON CLUSTER clause) that were executed on a cluster. | +| [system.distribution_queue](/core/reference/system-tables/distribution_queue) | System table containing information about local files that are in the queue to be sent to the shards. | +| [system.dns_cache](/core/reference/system-tables/dns_cache) | System table containing information about cached DNS records. | +| [system.dropped_tables](/core/reference/system-tables/dropped_tables) | System table containing information about tables that drop table has been executed on but for which data cleanup has not yet been performed | +| [system.dropped_tables_parts](/core/reference/system-tables/dropped_tables_parts) | System table containing information about parts of MergeTree dropped tables from `system.dropped_tables` | +| [system.enabled_roles](/core/reference/system-tables/enabled_roles) | System table containing all active roles at the moment, including the current role of the current user and the granted roles for the current role | +| [system.error_log](/core/reference/system-tables/error_log) | System table containing the history of error values from table `system.errors`, periodically flushed to disk. | +| [system.errors](/core/reference/system-tables/errors) | System table containing error codes with the number of times they have been triggered. | +| [system.events](/core/reference/system-tables/events) | System table containing information about the number of events that have occurred in the system. | +| [system.fail_points](/core/reference/system-tables/fail_points) | Contains a list of all available failpoints with their type and current status. | +| [system.filesystem_cache_settings](/core/reference/system-tables/filesystem_cache_settings) | Contains information about all filesystem cache settings | +| [system.filesystem_read_prefetches_log](/core/reference/system-tables/filesystem_read_prefetches_log) | Contains a history of all prefetches done during reading from MergeTree tables backed by a remote filesystem. +It is safe to truncate or drop this table at any time. | +| [system.filesystem_cache_log](/core/reference/system-tables/filesystem_cache_log) | Contains a history of all events occurred with filesystem cache for objects on a remote filesystem. +It is safe to truncate or drop this table at any time. | +| [system.filesystem_cache](/core/reference/system-tables/filesystem_cache) | Contains information about all entries inside filesystem cache for remote objects. | +| [system.formats](/core/reference/system-tables/formats) | Contains a list of all the formats along with flags whether a format is suitable for input/output or whether it supports parallelization. | +| [system.functions](/core/reference/system-tables/functions) | System table containing information about normal and aggregate functions. | +| [system.grants](/core/reference/system-tables/grants) | System table showing which privileges are granted to ClickHouse user accounts. | +| [system.graphite_retentions](/core/reference/system-tables/graphite_retentions) | System table containing information about parameters `graphite_rollup` which are used in tables with `GraphiteMergeTree` type engines. | +| [system.histogram_metrics](/core/reference/system-tables/histogram_metrics) | This table contains histogram metrics that can be calculated instantly and exported in the Prometheus format. It is always up to date. | +| [system.iceberg_history](/core/reference/system-tables/iceberg_history) | System iceberg snapshot history | +| [system.iceberg_metadata_log](/core/reference/system-tables/iceberg_metadata_log) | System table containing information about metadata files read from Iceberg tables. Each entry represents either a root metadata file, metadata extracted from an Avro file, or an entry of some Avro file. | +| [system.instrumentation](/core/reference/system-tables/instrumentation) | System table containing the instrumentation points | +| [system.jemalloc_stats](/core/reference/system-tables/jemalloc_stats) | Returns jemalloc statistics in a single row with a single column. Equivalent to SYSTEM JEMALLOC STATS command. | +| [system.jemalloc_bins](/core/reference/system-tables/jemalloc_bins) | System table containing information about memory allocations done via jemalloc allocator in different size classes (bins) aggregated from all arenas. | +| [system.jemalloc_profile_text](/core/reference/system-tables/jemalloc_profile_text) | Displays the symbolized jemalloc heap profile. Run 'SYSTEM JEMALLOC FLUSH PROFILE' to generate a profile first. | +| [system.kafka_consumers](/core/reference/system-tables/kafka_consumers) | System table containing information about Kafka consumers. | +| [system.keywords](/core/reference/system-tables/keywords) | Contains a list of all keywords used in ClickHouse parser. | +| [system.licenses](/core/reference/system-tables/licenses) | System table containing licenses of third-party libraries that are located in the contrib directory of ClickHouse sources. | +| [system.macros](/core/reference/system-tables/macros) | Contains a list of all macros defined in server configuration. | +| [system.masking_policies](/core/reference/system-tables/masking_policies) | System table containing information about all masking policies in the system. | +| [system.merge_tree_settings](/core/reference/system-tables/merge_tree_settings) | System table containing information about settings for MergeTree tables. | +| [system.merges](/core/reference/system-tables/merges) | System table containing information about merges and part mutations currently in process for tables in the MergeTree family. | +| [system.metric_log](/core/reference/system-tables/metric_log) | System table containing history of metrics values from tables `system.metrics` and `system.events`, periodically flushed to disk. | +| [system.metrics](/core/reference/system-tables/metrics) | System table containing metrics which can be calculated instantly, or have a current value. | +| [system.models](/core/reference/system-tables/models) | Contains a list of CatBoost models loaded into a LibraryBridge's memory along with time when it was loaded. | +| [system.moves](/core/reference/system-tables/moves) | System table containing information about in-progress data part moves of MergeTree tables. Each data part movement is represented by a single row. | +| [system.mutations](/core/reference/system-tables/mutations) | System table containing information about mutations of MergeTree tables and their progress. Each mutation command is represented by a single row. | +| [system.named_collections](/core/reference/system-tables/named_collections) | Contains a list of all named collections which were created via SQL query or parsed from configuration file. | +| [system.numbers_mt](/core/reference/system-tables/numbers_mt) | System table similar to `system.numbers` but reads are parallelized and numbers can be returned in any order. | +| [system.numbers](/core/reference/system-tables/numbers) | System table containing a single UInt64 column named `number` that contains almost all the natural numbers starting from zero. | +| [system.one](/core/reference/system-tables/one) | System table containing a single row with a single `dummy` UInt8 column containing the value 0. Similar to the `DUAL` table found in other DBMSs. | +| [system.opentelemetry_span_log](/core/reference/system-tables/opentelemetry_span_log) | System table containing information about trace spans for executed queries. | +| [system.part_moves_between_shards](/core/reference/system-tables/part_moves_between_shards) | Contains information about parts which are currently in a process of moving between shards and their progress. | +| [system.part_log](/core/reference/system-tables/part_log) | System table containing information about events that occurred with data parts in the MergeTree family tables, such as adding or merging of data. | +| [system.parts](/core/reference/system-tables/parts) | System table containing information about parts of MergeTree | +| [system.parts_columns](/core/reference/system-tables/parts_columns) | System table containing information about parts and columns of MergeTree tables. | +| [system.predicate_statistics_log](/core/reference/system-tables/predicate_statistics_log) | System table containing sampled filter and index selectivity statistics collected from `MergeTree` read pipelines during query execution. | +| [system.primes](/core/reference/system-tables/primes) | System table containing a single UInt64 column named `prime` that contains prime numbers in ascending order, starting from 2. | +| [system.privileges](/core/reference/system-tables/privileges) | Contains a list of all available privileges that could be granted to a user or role. | +| [system.processes](/core/reference/system-tables/processes) | System table used for implementing the `SHOW PROCESSLIST` query. | +| [system.processors_profile_log](/core/reference/system-tables/processors_profile_log) | System table containing profiling information on the processors level (which can be found in `EXPLAIN PIPELINE`) | +| [system.projection_parts_columns](/core/reference/system-tables/projection_parts_columns) | System table containing information about columns in projection parts for tables of the MergeTree family | +| [system.projection_parts](/core/reference/system-tables/projection_parts) | System table containing information about projection parts for tables of the MergeTree family. | +| [system.projections](/core/reference/system-tables/projections) | System table containing information about existing projections in all tables. | +| [system.query_views_log](/core/reference/system-tables/query_views_log) | System table containing information about the dependent views executed when running a query, for example, the view type or the execution time. | +| [system.query_condition_cache](/core/reference/system-tables/query_condition_cache) | System table which shows the content of the query condition cache. | +| [system.query_thread_log](/core/reference/system-tables/query_thread_log) | System table containing information about threads that execute queries, for example, thread name, thread start time, duration of query processing. | +| [system.query_metric_log](/core/reference/system-tables/query_metric_log) | System table containing a history of memory and metric values from table `system.events` for individual queries, periodically flushed to disk. | +| [system.query_log](/core/reference/system-tables/query_log) | System table containing information about executed queries, for example, start time, duration of processing, error messages. | +| [system.query_cache](/core/reference/system-tables/query_cache) | System table which shows the content of the query cache. | +| [system.quota_usage](/core/reference/system-tables/quota_usage) | System table containing formation about quota usage by the current user such as how much of the quota is used and how much is left. | +| [system.quota_limits](/core/reference/system-tables/quota_limits) | System table containing information about maximums for all intervals of all quotas. Any number of rows or zero can correspond to one quota. | +| [system.quotas_usage](/core/reference/system-tables/quotas_usage) | System table containing formation about quota usage by all users. | +| [system.quotas](/core/reference/system-tables/quotas) | System table containing information about quotas. | +| [system.remote_data_paths](/core/reference/system-tables/remote_data_paths) | System table containing information about data files stored on remote disks such as S3 or Azure Blob Storage. | +| [system.replicas](/core/reference/system-tables/replicas) | System table containing information about and status of replicated tables residing on the local server. Useful for monitoring. | +| [system.replicated_merge_tree_settings](/core/reference/system-tables/replicated_merge_tree_settings) | Contains a list of all ReplicatedMergeTree engine specific settings, their current and default values along with descriptions. You may change any of them in SETTINGS section in CREATE query. | +| [system.replicated_fetches](/core/reference/system-tables/replicated_fetches) | System table containing information about currently running background fetches. | +| [system.replication_queue](/core/reference/system-tables/replication_queue) | System table containing information about tasks from replication queues stored in ClickHouse Keeper, or ZooKeeper, for tables in the `ReplicatedMergeTree` family. | +| [system.resources](/core/reference/system-tables/resources) | System table containing information about resources residing on the local server with one row for every resource. | +| [system.rocksdb](/core/reference/system-tables/rocksdb) | Contains a list of metrics exposed from embedded RocksDB. | +| [system.role_grants](/core/reference/system-tables/role_grants) | System table containing the role grants for users and roles. | +| [system.roles](/core/reference/system-tables/roles) | System table containing information about configured roles. | +| [system.row_policies](/core/reference/system-tables/row_policies) | System table containing filters for one particular table, as well as a list of roles and/or users which should use this row policy. | +| [system.s3_queue_settings](/core/reference/system-tables/s3_queue_settings) | System table containing information about the settings of S3Queue tables. Available from server version `24.10`. | +| [system.s3queue_metadata_cache](/core/reference/system-tables/s3queue_metadata_cache) | Contains in-memory state of S3Queue metadata and currently processed rows per file. | +| [system.s3queue_log](/core/reference/system-tables/s3queue_log) | Contains log entries with information about files processed by the S3Queue engine. +It is safe to truncate or drop this table at any time. | +| [system.scheduler](/core/reference/system-tables/scheduler) | System table containing information about and status of scheduling nodes residing on the local server. | +| [system.schema_inference_cache](/core/reference/system-tables/schema_inference_cache) | System table containing information about all cached file schemas. | +| [system.server_settings](/core/reference/system-tables/server_settings) | System table containing formation about global settings for the server, which are specified in `config.xml`. | +| [system.session_log](/core/reference/system-tables/session_log) | System table containing information about all successful and failed login and logout events. | +| [system.settings](/core/reference/system-tables/settings) | System table containing information about session settings for current user. | +| [system.settings_profile_elements](/core/reference/system-tables/settings_profile_elements) | System table which describes the content of the settings profile: constraints, roles and users that the setting applies to, parent settings profiles. | +| [system.settings_changes](/core/reference/system-tables/settings_changes) | System table containing information about setting changes in previous ClickHouse versions. | +| [system.settings_profiles](/core/reference/system-tables/settings_profiles) | System table which contains properties of configured setting profiles. | +| [system.stack_trace](/core/reference/system-tables/stack_trace) | System table which contains stack traces of all server threads. Allows developers to introspect the server state. | +| [system.storage_policies](/core/reference/system-tables/storage_policies) | System table containing information about storage policies and volumes which are defined in server configuration. | +| [system.symbols](/core/reference/system-tables/symbols) | System table useful for C++ experts and ClickHouse engineers containing information for introspection of the `clickhouse` binary. | +| [system.table_engines](/core/reference/system-tables/table_engines) | System table containing descriptions of table engines supported by the server and the features they support. | +| [system.table_functions](/core/reference/system-tables/table_functions) | Contains a list of all available table functions with their descriptions. | +| [system.tables](/core/reference/system-tables/tables) | System table containing metadata of each table that the server knows about. | +| [system.text_log](/core/reference/system-tables/text_log) | System table containing logging entries. | +| [system.time_zones](/core/reference/system-tables/time_zones) | System table containing a list of time zones that are supported by the ClickHouse server. | +| [system.tokenizers](/core/reference/system-tables/tokenizers) | System table which shows all available tokenizers. | +| [system.trace_log](/core/reference/system-tables/trace_log) | System table containing stack traces collected by the sampling query profiler. | +| [system.transactions](/core/reference/system-tables/transactions) | Contains a list of transactions and their state. | +| [system.transactions_info_log](/core/reference/system-tables/transactions_info_log) | Contains information about all transactions executed on a current server. +It is safe to truncate or drop this table at any time. | +| [system.unicode](/core/reference/system-tables/unicode) | System table containing a list of Unicode characters and their properties. | +| [system.user_processes](/core/reference/system-tables/user_processes) | System table containing information useful for an overview of memory usage and ProfileEvents of users. | +| [system.user_directories](/core/reference/system-tables/user_directories) | Contains the information about configured user directories - directories on the file system from which ClickHouse server is allowed to read user provided data. | +| [system.user_defined_functions](/core/reference/system-tables/user_defined_functions) | System table containing loading status and configuration metadata for User-Defined Functions (UDFs). | +| [system.users](/core/reference/system-tables/users) | System table containing a list of user accounts configured on the server. | +| [system.view_refreshes](/core/reference/system-tables/view_refreshes) | System table containing information about Refreshable Materialized Views. | +| [system.warnings](/core/reference/system-tables/system_warnings) | This table contains warning messages about clickhouse server. | +| [system.warnings](/core/reference/system-tables/warnings) | Contains warnings about server configuration to be displayed by clickhouse-client right after it connects to the server. | +| [system.workloads](/core/reference/system-tables/workloads) | System table containing information for workloads residing on the local server. | +| [system.zeros](/core/reference/system-tables/zeros) | Produces unlimited number of non-materialized zeros. | +| [system.zeros_mt](/core/reference/system-tables/zeros_mt) | Multithreaded version of system.zeros. | +| [system.zookeeper_watches](/core/reference/system-tables/zookeeper_watches) | System table showing currently active ZooKeeper watches registered by this ClickHouse server. | +| [system.zookeeper_info](/core/reference/system-tables/zookeeper_info) | System table which outputs introspection of all available keeper nodes. | +| [system.zookeeper_log](/core/reference/system-tables/zookeeper_log) | System table containing information about the parameters of the request to the ZooKeeper server and the response from it. | +| [system.zookeeper_connection](/core/reference/system-tables/zookeeper_connection) | System table which exists only if ZooKeeper is configured. Shows current connections to ZooKeeper (including auxiliary ZooKeepers). | +| [system.zookeeper_connection_log](/core/reference/system-tables/zookeeper_connection_log) | Shows the history of ZooKeeper connections (including auxiliary ZooKeepers). | +| [system.zookeeper](/core/reference/system-tables/zookeeper) | System table which exists only if ClickHouse Keeper or ZooKeeper are configured. It exposes data from the Keeper cluster defined in the config. | +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/information_schema.mdx b/core/reference/system-tables/information_schema.mdx new file mode 100644 index 00000000..3268a7a1 --- /dev/null +++ b/core/reference/system-tables/information_schema.mdx @@ -0,0 +1,364 @@ +--- +description: 'System database providing an almost standardized DBMS-agnostic view + on metadata of database objects.' +keywords: ['system database', 'information_schema'] +slug: /operations/system-tables/information_schema +title: 'INFORMATION_SCHEMA' +doc_type: 'reference' +--- + +`INFORMATION_SCHEMA` (or: `information_schema`) is a system database which provides a (somewhat) standardized, [DBMS-agnostic view](https://en.wikipedia.org/wiki/Information_schema) on metadata of database objects. The views in `INFORMATION_SCHEMA` are generally inferior to normal system tables but tools can use them to obtain basic information in a cross-DBMS manner. The structure and content of views in `INFORMATION_SCHEMA` is supposed to evolves in a backwards-compatible way, i.e. only new functionality is added but existing functionality is not changed or removed. In terms of internal implementation, views in `INFORMATION_SCHEMA` usually map to to normal system tables like [system.columns](/core/reference/system-tables/columns), [system.databases](/core/reference/system-tables/databases) and [system.tables](/core/reference/system-tables/tables). + +```sql +SHOW TABLES FROM INFORMATION_SCHEMA; + +-- or: +SHOW TABLES FROM information_schema; +``` + +```text +┌─name────────────────────┐ +│ COLUMNS │ +│ KEY_COLUMN_USAGE │ +│ REFERENTIAL_CONSTRAINTS │ +│ SCHEMATA │ +| STATISTICS | +│ TABLES │ +│ VIEWS │ +│ columns │ +│ key_column_usage │ +│ referential_constraints │ +│ schemata │ +| statistics | +│ tables │ +│ views │ +└─────────────────────────┘ +``` + +`INFORMATION_SCHEMA` contains the following views: + +- [COLUMNS](#columns) +- [KEY_COLUMN_USAGE](#key_column_usage) +- [REFERENTIAL_CONSTRAINTS](#referential_constraints) +- [SCHEMATA](#schemata) +- [STATISTICS](#statistics) +- [TABLES](#tables) +- [VIEWS](#views) + +Case-insensitive equivalent views, e.g. `INFORMATION_SCHEMA.columns` are provided for reasons of compatibility with other databases. The same applies to all the columns in these views - both lowercase (for example, `table_name`) and uppercase (`TABLE_NAME`) variants are provided. + +## COLUMNS {#columns} + +Contains columns read from the [system.columns](/core/reference/system-tables/columns) system table and columns that are not supported in ClickHouse or do not make sense (always `NULL`), but must be by the standard. + +Columns: + +{/*AUTOGENERATED_START*/} +- `table_catalog` ([String](/core/reference/data-types/string)) — Currently unused. +- `table_schema` ([String](/core/reference/data-types/string)) — Currently unused. +- `table_name` ([String](/core/reference/data-types/string)) — Currently unused. +- `non_unique` ([Int32](/core/reference/data-types/int-uint)) — Currently unused. +- `index_schema` ([String](/core/reference/data-types/string)) — Currently unused. +- `index_name` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — Currently unused. +- `seq_in_index` ([UInt32](/core/reference/data-types/int-uint)) — Currently unused. +- `column_name` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — Currently unused. +- `collation` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — Currently unused. +- `cardinality` ([Nullable](/core/reference/data-types/nullable)([Int64](/core/reference/data-types/int-uint))) — Currently unused. +- `sub_part` ([Nullable](/core/reference/data-types/nullable)([Int64](/core/reference/data-types/int-uint))) — Currently unused. +- `packed` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — Currently unused. +- `nullable` ([String](/core/reference/data-types/string)) — Currently unused. +- `index_type` ([String](/core/reference/data-types/string)) — Currently unused. +- `comment` ([String](/core/reference/data-types/string)) — Currently unused. +- `index_comment` ([String](/core/reference/data-types/string)) — Currently unused. +- `is_visible` ([String](/core/reference/data-types/string)) — Currently unused. +- `expression` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — Currently unused. +{/*AUTOGENERATED_END*/} + +**Example** + +```sql title="Query" +SELECT table_catalog, + table_schema, + table_name, + column_name, + ordinal_position, + column_default, + is_nullable, + data_type, + character_maximum_length, + character_octet_length, + numeric_precision, + numeric_precision_radix, + numeric_scale, + datetime_precision, + character_set_catalog, + character_set_schema, + character_set_name, + collation_catalog, + collation_schema, + collation_name, + domain_catalog, + domain_schema, + domain_name, + column_comment, + column_type +FROM INFORMATION_SCHEMA.COLUMNS +WHERE (table_schema = currentDatabase() OR table_schema = '') + AND table_name NOT LIKE '%inner%' +LIMIT 1 +FORMAT Vertical; +``` + +```text title="Response" +Row 1: +────── +table_catalog: default +table_schema: default +table_name: describe_example +column_name: id +ordinal_position: 1 +column_default: +is_nullable: 0 +data_type: UInt64 +character_maximum_length: ᴺᵁᴸᴸ +character_octet_length: ᴺᵁᴸᴸ +numeric_precision: 64 +numeric_precision_radix: 2 +numeric_scale: 0 +datetime_precision: ᴺᵁᴸᴸ +character_set_catalog: ᴺᵁᴸᴸ +character_set_schema: ᴺᵁᴸᴸ +character_set_name: ᴺᵁᴸᴸ +collation_catalog: ᴺᵁᴸᴸ +collation_schema: ᴺᵁᴸᴸ +collation_name: ᴺᵁᴸᴸ +domain_catalog: ᴺᵁᴸᴸ +domain_schema: ᴺᵁᴸᴸ +domain_name: ᴺᵁᴸᴸ +``` + +## SCHEMATA {#schemata} + +Contains columns read from the [system.databases](/core/reference/system-tables/databases) system table and columns that are not supported in ClickHouse or do not make sense (always `NULL`), but must be by the standard. + +Columns: + +- `catalog_name` ([String](/core/reference/data-types/string)) — The name of the database. +- `schema_name` ([String](/core/reference/data-types/string)) — The name of the database. +- `schema_owner` ([String](/core/reference/data-types/string)) — Schema owner name, always `'default'`. +- `default_character_set_catalog` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — `NULL`, not supported. +- `default_character_set_schema` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — `NULL`, not supported. +- `default_character_set_name` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — `NULL`, not supported. +- `sql_path` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — `NULL`, not supported. + +**Example** + +```sql title="Query" +SELECT catalog_name, + schema_name, + schema_owner, + default_character_set_catalog, + default_character_set_schema, + default_character_set_name, + sql_path +FROM information_schema.schemata +WHERE schema_name ILIKE 'information_schema' +LIMIT 1 +FORMAT Vertical; +``` + +```text title="Response" +Row 1: +────── +catalog_name: INFORMATION_SCHEMA +schema_name: INFORMATION_SCHEMA +schema_owner: default +default_character_set_catalog: ᴺᵁᴸᴸ +default_character_set_schema: ᴺᵁᴸᴸ +default_character_set_name: ᴺᵁᴸᴸ +sql_path: ᴺᵁᴸᴸ +``` + +## TABLES {#tables} + +Contains columns read from the [system.tables](/core/reference/system-tables/tables) system table. + +Columns: + +- `table_catalog` ([String](/core/reference/data-types/string)) — The name of the database in which the table is located. +- `table_schema` ([String](/core/reference/data-types/string)) — The name of the database in which the table is located. +- `table_name` ([String](/core/reference/data-types/string)) — Table name. +- `table_type` ([String](/core/reference/data-types/string)) — Table type. Possible values: + - `BASE TABLE` + - `VIEW` + - `FOREIGN TABLE` + - `LOCAL TEMPORARY` + - `SYSTEM VIEW` +- `table_rows` ([Nullable](/core/reference/data-types/nullable)([UInt64](/core/reference/data-types/int-uint))) — The total number of rows. NULL if it could not be determined. +- `data_length` ([Nullable](/core/reference/data-types/nullable)([UInt64](/core/reference/data-types/int-uint))) — The size of the data on-disk. NULL if it could not be determined. +- `index_length` ([Nullable](/core/reference/data-types/nullable)([UInt64](/core/reference/data-types/int-uint))) — The total size of the primary key, secondary indexes, and all marks. +- `table_collation` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — The table default collation. Always `utf8mb4_0900_ai_ci`. +- `table_comment` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — The comment used when creating the table. + +**Example** + +```sql title="Query" +SELECT table_catalog, + table_schema, + table_name, + table_type, + table_collation, + table_comment +FROM INFORMATION_SCHEMA.TABLES +WHERE (table_schema = currentDatabase() OR table_schema = '') + AND table_name NOT LIKE '%inner%' +LIMIT 1 +FORMAT Vertical; +``` + +```text title="Response" +Row 1: +────── +table_catalog: default +table_schema: default +table_name: describe_example +table_type: BASE TABLE +table_collation: utf8mb4_0900_ai_ci +table_comment: +``` + +## VIEWS {#views} + +Contains columns read from the [system.tables](/core/reference/system-tables/tables) system table, when the table engine [View](/core/reference/engines/table-engines/special/view) is used. + +Columns: + +{/*AUTOGENERATED_START*/} +- `table_catalog` ([String](/core/reference/data-types/string)) — The name of the database in which the table is located. +- `table_schema` ([String](/core/reference/data-types/string)) — The name of the database in which the table is located. +- `table_name` ([String](/core/reference/data-types/string)) — Table name. +- `view_definition` ([String](/core/reference/data-types/string)) — `SELECT` query for view. +- `check_option` ([String](/core/reference/data-types/string)) — `NONE`, no checking. +- `is_updatable` ([Enum8](/core/reference/data-types/enum)) — `NO`, the view is not updated. +- `is_insertable_into` ([Enum8](/core/reference/data-types/enum)) — Shows whether the created view is [materialized](/core/reference/statements/create/view#materialized-view). Possible values: + - `NO` — The created view is not materialized. + - `YES` — The created view is materialized. +- `is_trigger_updatable` ([Enum8](/core/reference/data-types/enum)) — `NO`, the trigger is not updated. +- `is_trigger_deletable` ([Enum8](/core/reference/data-types/enum)) — `NO`, the trigger is not deleted. +- `is_trigger_insertable_into` ([Enum8](/core/reference/data-types/enum)) — `NO`, no data is inserted into the trigger. +{/*AUTOGENERATED_END*/} + +**Example** + +```sql title="Query" +CREATE VIEW v (n Nullable(Int32), f Float64) AS SELECT n, f FROM t; +CREATE MATERIALIZED VIEW mv ENGINE = Null AS SELECT * FROM system.one; +SELECT table_catalog, + table_schema, + table_name, + view_definition, + check_option, + is_updatable, + is_insertable_into, + is_trigger_updatable, + is_trigger_deletable, + is_trigger_insertable_into +FROM information_schema.views +WHERE table_schema = currentDatabase() +LIMIT 1 +FORMAT Vertical; +``` + +```text title="Response" +Row 1: +────── +table_catalog: default +table_schema: default +table_name: mv +view_definition: SELECT * FROM system.one +check_option: NONE +is_updatable: NO +is_insertable_into: YES +is_trigger_updatable: NO +is_trigger_deletable: NO +is_trigger_insertable_into: NO +``` + +## KEY_COLUMN_USAGE {#key_column_usage} + +Contains columns from the [system.tables](/core/reference/system-tables/tables) system table which are restricted by constraints. + +Columns: + +- `constraint_catalog` ([String](/core/reference/data-types/string)) — Currently unused. Always `def`. +- `constraint_schema` ([String](/core/reference/data-types/string)) — The name of the schema (database) to which the constraint belongs. +- `constraint_name` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — The name of the constraint. +- `table_catalog` ([String](/core/reference/data-types/string)) — Currently unused. Always `def`. +- `table_schema` ([String](/core/reference/data-types/string)) — The name of the schema (database) to which the table belongs. +- `table_name` ([String](/core/reference/data-types/string)) — The name of the table that has the constraint. +- `column_name` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — The name of the column that has the constraint. +- `ordinal_position` ([UInt32](/core/reference/data-types/int-uint)) — Currently unused. Always `1`. +- `position_in_unique_constraint` ([Nullable](/core/reference/data-types/nullable)([UInt32](/core/reference/data-types/int-uint))) — Currently unused. Always `NULL`. +- `referenced_table_schema` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — Currently unused. Always NULL. +- `referenced_table_name` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — Currently unused. Always NULL. +- `referenced_column_name` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — Currently unused. Always NULL. + +**Example** + +```sql title="Query" +CREATE TABLE test (i UInt32, s String) ENGINE MergeTree ORDER BY i; +SELECT constraint_catalog, + constraint_schema, + constraint_name, + table_catalog, + table_schema, + table_name, + column_name, + ordinal_position, + position_in_unique_constraint, + referenced_table_schema, + referenced_table_name, + referenced_column_name +FROM information_schema.key_column_usage +WHERE table_name = 'test' +FORMAT Vertical; +``` + +```response title="Response" +Row 1: +────── +constraint_catalog: def +constraint_schema: default +constraint_name: PRIMARY +table_catalog: def +table_schema: default +table_name: test +column_name: i +ordinal_position: 1 +position_in_unique_constraint: ᴺᵁᴸᴸ +referenced_table_schema: ᴺᵁᴸᴸ +referenced_table_name: ᴺᵁᴸᴸ +referenced_column_name: ᴺᵁᴸᴸ +``` + +## REFERENTIAL_CONSTRAINTS {#referential_constraints} + +Contains information about foreign keys. Currently returns an empty result (no rows) which is just enough to provide compatibility with 3rd party tools like Tableau Online. + +Columns: + +- `constraint_catalog` ([String](/core/reference/data-types/string)) — Currently unused. +- `constraint_schema` ([String](/core/reference/data-types/string)) — Currently unused. +- `constraint_name` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — Currently unused. +- `unique_constraint_catalog` ([String](/core/reference/data-types/string)) — Currently unused. +- `unique_constraint_schema` ([String](/core/reference/data-types/string)) — Currently unused. +- `unique_constraint_name` ([Nullable](/core/reference/data-types/nullable)([String](/core/reference/data-types/string))) — Currently unused. +- `match_option` ([String](/core/reference/data-types/string)) — Currently unused. +- `update_rule` ([String](/core/reference/data-types/string)) — Currently unused. +- `delete_rule` ([String](/core/reference/data-types/string)) — Currently unused. +- `table_name` ([String](/core/reference/data-types/string)) — Currently unused. +- `referenced_table_name` ([String](/core/reference/data-types/string)) — Currently unused. + +## STATISTICS {#statistics} + +Provides information about table indexes. Currently returns an empty result (no rows) which is just enough to provide compatibility with 3rd party tools like Tableau Online. diff --git a/reference/system-tables/instrumentation.mdx b/core/reference/system-tables/instrumentation.mdx similarity index 65% rename from reference/system-tables/instrumentation.mdx rename to core/reference/system-tables/instrumentation.mdx index 93512f15..d231676f 100644 --- a/reference/system-tables/instrumentation.mdx +++ b/core/reference/system-tables/instrumentation.mdx @@ -17,13 +17,13 @@ Contains the instrumentation points using LLVM's XRay feature. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `id` ([UInt32](/reference/data-types/int-uint)) — ID of the instrumentation point -- `function_id` ([Int32](/reference/data-types/int-uint)) — ID assigned to the function in xray_instr_map section of elf-binary. -- `function_name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name used to instrument the function. -- `handler` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Handler that was patched into instrumentation points of the function. -- `entry_type` ([Enum8('Entry' = 0, 'Exit' = 1, 'EntryAndExit' = 2)](/reference/data-types/enum)) — Entry type for the patch. -- `symbol` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Complete and demangled symbol name. -- `parameters` ([Array(Dynamic)](/reference/data-types/array)) — Parameters for the handler call. +- `id` ([UInt32](/core/reference/data-types/int-uint)) — ID of the instrumentation point +- `function_id` ([Int32](/core/reference/data-types/int-uint)) — ID assigned to the function in xray_instr_map section of elf-binary. +- `function_name` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name used to instrument the function. +- `handler` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Handler that was patched into instrumentation points of the function. +- `entry_type` ([Enum8('Entry' = 0, 'Exit' = 1, 'EntryAndExit' = 2)](/core/reference/data-types/enum)) — Entry type for the patch. +- `symbol` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Complete and demangled symbol name. +- `parameters` ([Array(Dynamic)](/core/reference/data-types/array)) — Parameters for the handler call. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -68,6 +68,6 @@ parameters: [0.3] ## See Also {#see-also} -- [SYSTEM INSTRUMENT](/reference/statements/system#instrument) — Add or remove instrumentation points. -- [system.trace_log](/reference/system-tables/trace_log) — Inspect profiling log. -- [system.symbols](/reference/system-tables/symbols) — Inspect symbols to add instrumentation points. +- [SYSTEM INSTRUMENT](/core/reference/statements/system#instrument) — Add or remove instrumentation points. +- [system.trace_log](/core/reference/system-tables/trace_log) — Inspect profiling log. +- [system.symbols](/core/reference/system-tables/symbols) — Inspect symbols to add instrumentation points. diff --git a/reference/system-tables/jemalloc_bins.mdx b/core/reference/system-tables/jemalloc_bins.mdx similarity index 79% rename from reference/system-tables/jemalloc_bins.mdx rename to core/reference/system-tables/jemalloc_bins.mdx index 7dbeb7f7..80114d7e 100644 --- a/reference/system-tables/jemalloc_bins.mdx +++ b/core/reference/system-tables/jemalloc_bins.mdx @@ -19,14 +19,14 @@ These statistics might not be absolutely accurate because of thread local cachin ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `index` ([UInt16](/reference/data-types)) — Index of the bin ordered by size. -- `large` ([UInt8](/reference/data-types)) — True for large allocations and False for small. -- `size` ([UInt64](/reference/data-types)) — Size of allocations in this bin. -- `allocations` ([Int64](/reference/data-types)) — Number of allocations. -- `deallocations` ([Int64](/reference/data-types)) — Number of deallocations. -- `nregs` ([Int64](/reference/data-types)) — Number of regions per slab. -- `curslabs` ([Int64](/reference/data-types)) — Current number of slabs. -- `curregs` ([Int64](/reference/data-types)) — Current number of regions for this size class. +- `index` ([UInt16](/core/reference/data-types)) — Index of the bin ordered by size. +- `large` ([UInt8](/core/reference/data-types)) — True for large allocations and False for small. +- `size` ([UInt64](/core/reference/data-types)) — Size of allocations in this bin. +- `allocations` ([Int64](/core/reference/data-types)) — Number of allocations. +- `deallocations` ([Int64](/core/reference/data-types)) — Number of deallocations. +- `nregs` ([Int64](/core/reference/data-types)) — Number of regions per slab. +- `curslabs` ([Int64](/core/reference/data-types)) — Current number of slabs. +- `curregs` ([Int64](/core/reference/data-types)) — Current number of regions for this size class. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/reference/system-tables/jemalloc_profile_text.mdx b/core/reference/system-tables/jemalloc_profile_text.mdx similarity index 83% rename from reference/system-tables/jemalloc_profile_text.mdx rename to core/reference/system-tables/jemalloc_profile_text.mdx index b2a54959..29b3ad37 100644 --- a/reference/system-tables/jemalloc_profile_text.mdx +++ b/core/reference/system-tables/jemalloc_profile_text.mdx @@ -13,5 +13,5 @@ Displays the symbolized jemalloc heap profile. Run 'SYSTEM JEMALLOC FLUSH PROFIL ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `line` ([String](/reference/data-types)) — Line from the symbolized jemalloc heap profile. +- `line` ([String](/core/reference/data-types)) — Line from the symbolized jemalloc heap profile. {/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/jemalloc_stats.mdx b/core/reference/system-tables/jemalloc_stats.mdx similarity index 82% rename from reference/system-tables/jemalloc_stats.mdx rename to core/reference/system-tables/jemalloc_stats.mdx index 33f5c26a..7013227a 100644 --- a/reference/system-tables/jemalloc_stats.mdx +++ b/core/reference/system-tables/jemalloc_stats.mdx @@ -13,5 +13,5 @@ Returns jemalloc statistics in a single row with a single column. Equivalent to ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `stats` ([String](/reference/data-types)) — JEMalloc statistics output from malloc_stats_print. +- `stats` ([String](/core/reference/data-types)) — JEMalloc statistics output from malloc_stats_print. {/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/kafka_consumers.mdx b/core/reference/system-tables/kafka_consumers.mdx new file mode 100644 index 00000000..94732480 --- /dev/null +++ b/core/reference/system-tables/kafka_consumers.mdx @@ -0,0 +1,74 @@ +--- +description: 'System table containing information about Kafka consumers.' +keywords: ['system table', 'kafka_consumers'] +slug: /operations/system-tables/kafka_consumers +title: 'system.kafka_consumers' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about Kafka consumers. +Applicable for [Kafka table engine](/core/reference/engines/table-engines/integrations/kafka) (native ClickHouse integration) + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — Database of the table with Kafka Engine. +- `table` ([String](/core/reference/data-types)) — Name of the table with Kafka Engine. +- `consumer_id` ([String](/core/reference/data-types)) — Kafka consumer identifier. Note, that a table can have many consumers. Specified by `kafka_num_consumers` parameter. +- `assignments.topic` ([Array(String)](/core/reference/data-types)) — Kafka topic. +- `assignments.partition_id` ([Array(Int32)](/core/reference/data-types)) — Kafka partition id. Note, that only one consumer can be assigned to a partition. +- `assignments.current_offset` ([Array(Int64)](/core/reference/data-types)) — Current offset. +- `assignments.intent_size` ([Array(Nullable(Int64))](/core/reference/data-types)) — The number of pushed, but not yet committed messages in new StorageKafka. +- `exceptions.time` ([Array(DateTime)](/core/reference/data-types)) — Timestamp when the 10 most recent exceptions were generated. +- `exceptions.text` ([Array(String)](/core/reference/data-types)) — Text of 10 most recent exceptions. +- `last_poll_time` ([DateTime](/core/reference/data-types)) — Timestamp of the most recent poll. +- `num_messages_read` ([UInt64](/core/reference/data-types)) — Number of messages read by the consumer. +- `last_commit_time` ([DateTime](/core/reference/data-types)) — Timestamp of the most recent poll. +- `num_commits` ([UInt64](/core/reference/data-types)) — Total number of commits for the consumer. +- `last_rebalance_time` ([DateTime](/core/reference/data-types)) — Timestamp of the most recent Kafka rebalance. +- `num_rebalance_revocations` ([UInt64](/core/reference/data-types)) — Number of times the consumer was revoked its partitions. +- `num_rebalance_assignments` ([UInt64](/core/reference/data-types)) — Number of times the consumer was assigned to Kafka cluster. +- `is_currently_used` ([UInt8](/core/reference/data-types)) — The flag which shows whether the consumer is in use. +- `last_used` ([DateTime64(6)](/core/reference/data-types)) — The last time this consumer was in use. +- `rdkafka_stat` ([String](/core/reference/data-types)) — Library internal statistic. Set statistics_interval_ms to 0 disable, default is 3000 (once in three seconds). +- `dependencies` ([Array(Array(String))](/core/reference/data-types)) — Transitive database dependencies. +- `missing_dependencies` ([Array(Array(String))](/core/reference/data-types)) — Missing transitive database dependencies. +{/*AUTOGENERATED_END*/} + +Example: + +```sql +SELECT * +FROM system.kafka_consumers +FORMAT Vertical +``` + +```text +Row 1: +────── +database: test +table: kafka +consumer_id: ClickHouse-instance-test-kafka-1caddc7f-f917-4bb1-ac55-e28bd103a4a0 +assignments.topic: ['system_kafka_cons'] +assignments.partition_id: [0] +assignments.current_offset: [18446744073709550615] +exceptions.time: [] +exceptions.text: [] +last_poll_time: 2006-11-09 18:47:47 +num_messages_read: 4 +last_commit_time: 2006-11-10 04:39:40 +num_commits: 1 +last_rebalance_time: 1970-01-01 00:00:00 +num_rebalance_revocations: 0 +num_rebalance_assignments: 1 +is_currently_used: 1 +rdkafka_stat: {...} +dependencies: [['test.mv2','test.target2'],['test.mv1','test.target1']] +missing_dependencies: [] +``` diff --git a/reference/system-tables/keywords.mdx b/core/reference/system-tables/keywords.mdx similarity index 79% rename from reference/system-tables/keywords.mdx rename to core/reference/system-tables/keywords.mdx index b5f35540..923ae013 100644 --- a/reference/system-tables/keywords.mdx +++ b/core/reference/system-tables/keywords.mdx @@ -13,5 +13,5 @@ Contains a list of all keywords used in ClickHouse parser. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `keyword` ([String](/reference/data-types)) — The keyword used in ClickHouse parser. +- `keyword` ([String](/core/reference/data-types)) — The keyword used in ClickHouse parser. {/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/licenses.mdx b/core/reference/system-tables/licenses.mdx similarity index 79% rename from reference/system-tables/licenses.mdx rename to core/reference/system-tables/licenses.mdx index 2fc50545..902af0b1 100644 --- a/reference/system-tables/licenses.mdx +++ b/core/reference/system-tables/licenses.mdx @@ -14,10 +14,10 @@ Contains licenses of third-party libraries that are located in the [contrib](htt ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `library_name` ([String](/reference/data-types)) — Name of the library. -- `license_type` ([String](/reference/data-types)) — License type — e.g. Apache, MIT. -- `license_path` ([String](/reference/data-types)) — Path to the file with the license text. -- `license_text` ([String](/reference/data-types)) — License text. +- `library_name` ([String](/core/reference/data-types)) — Name of the library. +- `license_type` ([String](/core/reference/data-types)) — License type — e.g. Apache, MIT. +- `license_path` ([String](/core/reference/data-types)) — Path to the file with the license text. +- `license_text` ([String](/core/reference/data-types)) — License text. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/reference/system-tables/macros.mdx b/core/reference/system-tables/macros.mdx similarity index 70% rename from reference/system-tables/macros.mdx rename to core/reference/system-tables/macros.mdx index 971d0562..55fcf36f 100644 --- a/reference/system-tables/macros.mdx +++ b/core/reference/system-tables/macros.mdx @@ -13,6 +13,6 @@ Contains a list of all macros defined in server configuration. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `macro` ([String](/reference/data-types)) — The macro name. -- `substitution` ([String](/reference/data-types)) — The substitution string. +- `macro` ([String](/core/reference/data-types)) — The macro name. +- `substitution` ([String](/core/reference/data-types)) — The substitution string. {/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/masking_policies.mdx b/core/reference/system-tables/masking_policies.mdx new file mode 100644 index 00000000..b8dc85a5 --- /dev/null +++ b/core/reference/system-tables/masking_policies.mdx @@ -0,0 +1,32 @@ +--- +description: 'System table containing information about all masking policies in the system.' +keywords: ['system table', 'masking_policies'] +slug: /operations/system-tables/masking_policies +title: 'system.masking_policies' +doc_type: 'reference' +--- + +import CloudOnlyBadge from "/snippets/components/CloudOnlyBadge/CloudOnlyBadge.jsx"; + + + +## Description {#description} + +Contains information about all masking policies defined in the system. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `name` ([String](/core/reference/data-types/string)) — Name of a masking policy. The full name format is `short_name ON database.table`. +- `short_name` ([String](/core/reference/data-types/string)) — Short name of a masking policy. For example, if the full name is `mask_email ON mydb.mytable`, the short name is `mask_email`. +- `database` ([String](/core/reference/data-types/string)) — Database name. +- `table` ([String](/core/reference/data-types/string)) — Table name. +- `id` ([UUID](/core/reference/data-types/uuid)) — Masking policy ID. +- `storage` ([String](/core/reference/data-types/string)) — Name of the directory where the masking policy is stored. +- `update_assignments` ([Nullable(String)](/core/reference/data-types/nullable)) — UPDATE assignments that define how data should be masked. For example: `email = '***masked***', phone = '***-***-****'`. +- `where_condition` ([Nullable(String)](/core/reference/data-types/nullable)) — Optional WHERE condition that specifies when the masking should be applied. +- `priority` ([Int64](/core/reference/data-types/int-uint)) — Priority for applying multiple masking policies. Higher priority policies are applied first. Default is 0. +- `apply_to_all` ([UInt8](/core/reference/data-types/int-uint)) — Shows whether the masking policy applies to all roles and/or users. 1 if true, 0 otherwise. +- `apply_to_list` ([Array(String)](/core/reference/data-types/array)) — List of the roles and/or users to which the masking policy is applied. +- `apply_to_except` ([Array(String)](/core/reference/data-types/array)) — The masking policy is applied to all roles and/or users except the listed ones. Only populated when `apply_to_all` is 1. +{/*AUTOGENERATED_END*/} \ No newline at end of file diff --git a/reference/system-tables/merge_tree_settings.mdx b/core/reference/system-tables/merge_tree_settings.mdx similarity index 67% rename from reference/system-tables/merge_tree_settings.mdx rename to core/reference/system-tables/merge_tree_settings.mdx index a76f75dd..9ec79160 100644 --- a/reference/system-tables/merge_tree_settings.mdx +++ b/core/reference/system-tables/merge_tree_settings.mdx @@ -13,18 +13,18 @@ Contains information about settings for `MergeTree` tables. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Setting name. -- `value` ([String](/reference/data-types)) — Setting value. -- `default` ([String](/reference/data-types)) — Setting default value. -- `changed` ([UInt8](/reference/data-types)) — 1 if the setting was explicitly defined in the config or explicitly changed. -- `description` ([String](/reference/data-types)) — Setting description. -- `min` ([Nullable(String)](/reference/data-types)) — Minimum value of the setting, if any is set via constraints. If the setting has no minimum value, contains NULL. -- `max` ([Nullable(String)](/reference/data-types)) — Maximum value of the setting, if any is set via constraints. If the setting has no maximum value, contains NULL. -- `disallowed_values` ([Array(String)](/reference/data-types)) — List of disallowed values -- `readonly` ([UInt8](/reference/data-types)) — Shows whether the current user can change the setting: 0 — Current user can change the setting, 1 — Current user can't change the setting. -- `type` ([String](/reference/data-types)) — Setting type (implementation specific string value). -- `is_obsolete` ([UInt8](/reference/data-types)) — Shows whether a setting is obsolete. -- `tier` ([Enum8('Production' = 0, 'Obsolete' = 4, 'Experimental' = 8, 'Beta' = 12)](/reference/data-types)) — +- `name` ([String](/core/reference/data-types)) — Setting name. +- `value` ([String](/core/reference/data-types)) — Setting value. +- `default` ([String](/core/reference/data-types)) — Setting default value. +- `changed` ([UInt8](/core/reference/data-types)) — 1 if the setting was explicitly defined in the config or explicitly changed. +- `description` ([String](/core/reference/data-types)) — Setting description. +- `min` ([Nullable(String)](/core/reference/data-types)) — Minimum value of the setting, if any is set via constraints. If the setting has no minimum value, contains NULL. +- `max` ([Nullable(String)](/core/reference/data-types)) — Maximum value of the setting, if any is set via constraints. If the setting has no maximum value, contains NULL. +- `disallowed_values` ([Array(String)](/core/reference/data-types)) — List of disallowed values +- `readonly` ([UInt8](/core/reference/data-types)) — Shows whether the current user can change the setting: 0 — Current user can change the setting, 1 — Current user can't change the setting. +- `type` ([String](/core/reference/data-types)) — Setting type (implementation specific string value). +- `is_obsolete` ([UInt8](/core/reference/data-types)) — Shows whether a setting is obsolete. +- `tier` ([Enum8('Production' = 0, 'Obsolete' = 4, 'Experimental' = 8, 'Beta' = 12)](/core/reference/data-types)) — Support level for this feature. ClickHouse features are organized in tiers, varying depending on the current status of their development and the expectations one might have when using them: * PRODUCTION: The feature is stable, safe to use and does not have issues interacting with other PRODUCTION features. diff --git a/core/reference/system-tables/merges.mdx b/core/reference/system-tables/merges.mdx new file mode 100644 index 00000000..61ce9957 --- /dev/null +++ b/core/reference/system-tables/merges.mdx @@ -0,0 +1,45 @@ +--- +description: 'System table containing information about merges and part mutations + currently in process for tables in the MergeTree family.' +keywords: ['system table', 'merges'] +slug: /operations/system-tables/merges +title: 'system.merges' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about merges and part mutations currently in process for tables in the MergeTree family. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — The name of the database the table is in. +- `table` ([String](/core/reference/data-types)) — Table name. +- `elapsed` ([Float64](/core/reference/data-types)) — The time elapsed (in seconds) since the merge started. +- `progress` ([Float64](/core/reference/data-types)) — The percentage of completed work from 0 to 1. +- `num_parts` ([UInt64](/core/reference/data-types)) — The number of parts to be merged. +- `source_part_names` ([Array(String)](/core/reference/data-types)) — The list of source parts names. +- `result_part_name` ([String](/core/reference/data-types)) — The name of the part that will be formed as the result of merging. +- `source_part_paths` ([Array(String)](/core/reference/data-types)) — The list of paths for each source part. +- `result_part_path` ([String](/core/reference/data-types)) — The path of the part that will be formed as the result of merging. +- `partition_id` ([String](/core/reference/data-types)) — The identifier of the partition where the merge is happening. +- `partition` ([String](/core/reference/data-types)) — The name of the partition +- `is_mutation` ([UInt8](/core/reference/data-types)) — 1 if this process is a part mutation. +- `total_size_bytes_compressed` ([UInt64](/core/reference/data-types)) — The total size of the compressed data in the merged chunks. +- `total_size_bytes_uncompressed` ([UInt64](/core/reference/data-types)) — The total size of compressed data in the merged chunks. +- `total_size_marks` ([UInt64](/core/reference/data-types)) — The total number of marks in the merged parts. +- `bytes_read_uncompressed` ([UInt64](/core/reference/data-types)) — Number of bytes read, uncompressed. +- `rows_read` ([UInt64](/core/reference/data-types)) — Number of rows read. +- `bytes_written_uncompressed` ([UInt64](/core/reference/data-types)) — Number of bytes written, uncompressed. +- `rows_written` ([UInt64](/core/reference/data-types)) — Number of rows written. +- `columns_written` ([UInt64](/core/reference/data-types)) — Number of columns written (for Vertical merge algorithm). +- `memory_usage` ([UInt64](/core/reference/data-types)) — Memory consumption of the merge process. +- `thread_id` ([UInt64](/core/reference/data-types)) — Thread ID of the merge process. +- `merge_type` ([String](/core/reference/data-types)) — The type of current merge. Empty if it's an mutation. +- `merge_algorithm` ([String](/core/reference/data-types)) — The algorithm used in current merge. Empty if it's an mutation. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/metric_log.mdx b/core/reference/system-tables/metric_log.mdx new file mode 100644 index 00000000..aedf4afd --- /dev/null +++ b/core/reference/system-tables/metric_log.mdx @@ -0,0 +1,1814 @@ +--- +description: 'System table containing history of metrics values from tables `system.metrics` + and `system.events`, periodically flushed to disk.' +keywords: ['system table', 'metric_log'] +slug: /operations/system-tables/metric_log +title: 'system.metric_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains history of metrics values from tables `system.metrics` and `system.events`, periodically flushed to disk. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Event date. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Event time with microseconds resolution. +- `ProfileEvent_Query` ([UInt64](/core/reference/data-types/int-uint)) — Number of queries to be interpreted and potentially executed. Does not include queries that failed to parse or were rejected due to AST size limits, quota limits or limits on the number of simultaneously running queries. May include internal queries initiated by ClickHouse itself. Does not count subqueries. +- `ProfileEvent_SelectQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as Query, but only for SELECT queries. +- `ProfileEvent_InsertQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as Query, but only for INSERT queries. +- `ProfileEvent_InitialQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as Query, but only counts initial queries (see is_initial_query). +- `ProfileEvent_InitialSelectQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as InitialQuery, but only for SELECT queries. +- `ProfileEvent_QueriesWithSubqueries` ([UInt64](/core/reference/data-types/int-uint)) — Count queries with all subqueries +- `ProfileEvent_SelectQueriesWithSubqueries` ([UInt64](/core/reference/data-types/int-uint)) — Count SELECT queries with all subqueries +- `ProfileEvent_InsertQueriesWithSubqueries` ([UInt64](/core/reference/data-types/int-uint)) — Count INSERT queries with all subqueries +- `ProfileEvent_SelectQueriesWithPrimaryKeyUsage` ([UInt64](/core/reference/data-types/int-uint)) — Count SELECT queries which use the primary key to evaluate the WHERE condition +- `ProfileEvent_AsyncInsertQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as InsertQuery, but only for asynchronous INSERT queries. +- `ProfileEvent_AsyncInsertBytes` ([UInt64](/core/reference/data-types/int-uint)) — Data size in bytes of asynchronous INSERT queries. +- `ProfileEvent_AsyncInsertRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows inserted by asynchronous INSERT queries. +- `ProfileEvent_AsyncInsertCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a duplicate hash id has been found in asynchronous INSERT hash id cache. +- `ProfileEvent_FailedInternalQuery` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed internal queries. +- `ProfileEvent_FailedInternalSelectQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as FailedInternalQuery, but only for SELECT queries. +- `ProfileEvent_FailedInternalInsertQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as FailedInternalQuery, but only for INSERT queries. +- `ProfileEvent_FailedInitialQuery` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed initial queries. +- `ProfileEvent_FailedInitialSelectQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as FailedInitialQuery, but only for SELECT queries. +- `ProfileEvent_FailedQuery` ([UInt64](/core/reference/data-types/int-uint)) — Number of total failed queries, both internal and user queries. +- `ProfileEvent_FailedSelectQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as FailedQuery, but only for SELECT queries. +- `ProfileEvent_FailedInsertQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as FailedQuery, but only for INSERT queries. +- `ProfileEvent_FailedAsyncInsertQuery` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed ASYNC INSERT queries. +- `ProfileEvent_ASTFuzzerQueries` ([UInt64](/core/reference/data-types/int-uint)) — Number of fuzzed queries attempted by the server-side AST fuzzer. +- `ProfileEvent_QueryTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time of all queries. +- `ProfileEvent_SelectQueryTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time of SELECT queries. +- `ProfileEvent_InsertQueryTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time of INSERT queries. +- `ProfileEvent_OtherQueryTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time of queries that are not SELECT or INSERT. +- `ProfileEvent_FileOpen` ([UInt64](/core/reference/data-types/int-uint)) — Number of files opened. +- `ProfileEvent_Seek` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the 'lseek' function was called. +- `ProfileEvent_ReadBufferFromFileDescriptorRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of reads (read/pread) from a file descriptor. Does not include sockets. +- `ProfileEvent_ReadBufferFromFileDescriptorReadFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the read (read/pread) from a file descriptor have failed. +- `ProfileEvent_ReadBufferFromFileDescriptorReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read from file descriptors. If the file is compressed, this will show the compressed data size. +- `ProfileEvent_WriteBufferFromFileDescriptorWrite` ([UInt64](/core/reference/data-types/int-uint)) — Number of writes (write/pwrite) to a file descriptor. Does not include sockets. +- `ProfileEvent_WriteBufferFromFileDescriptorWriteFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the write (write/pwrite) to a file descriptor have failed. +- `ProfileEvent_WriteBufferFromFileDescriptorWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to file descriptors. If the file is compressed, this will show compressed data size. +- `ProfileEvent_FileSync` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the F_FULLFSYNC/fsync/fdatasync function was called for files. +- `ProfileEvent_DirectorySync` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the F_FULLFSYNC/fsync/fdatasync function was called for directories. +- `ProfileEvent_FileSyncElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for F_FULLFSYNC/fsync/fdatasync syscall for files. +- `ProfileEvent_DirectorySyncElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for F_FULLFSYNC/fsync/fdatasync syscall for directories. +- `ProfileEvent_ReadCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes (the number of bytes before decompression) read from compressed sources (files, network). +- `ProfileEvent_CompressedReadBufferBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of compressed blocks (the blocks of data that are compressed independent of each other) read from compressed sources (files, network). +- `ProfileEvent_CompressedReadBufferBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of uncompressed bytes (the number of bytes after decompression) read from compressed sources (files, network). +- `ProfileEvent_CompressedReadBufferChecksumDoesntMatch` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the compressed block checksum did not match. +- `ProfileEvent_CompressedReadBufferChecksumDoesntMatchSingleBitMismatch` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a compressed block checksum mismatch was caused by a single-bit difference. +- `ProfileEvent_CompressedReadBufferChecksumDoesntMatchMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent detecting bit-flips due to compressed block checksum mismatches. +- `ProfileEvent_UncompressedCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a block of data has been found in the uncompressed cache (and decompression was avoided). +- `ProfileEvent_UncompressedCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a block of data has not been found in the uncompressed cache (and required decompression). +- `ProfileEvent_UncompressedCacheWeightLost` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes evicted from the uncompressed cache. +- `ProfileEvent_PageCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a block of data has been found in the userspace page cache. +- `ProfileEvent_PageCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a block of data has not been found in the userspace page cache. +- `ProfileEvent_PageCacheWeightLost` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes evicted from the userspace page cache +- `ProfileEvent_PageCacheResized` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the userspace page cache was auto-resized (typically happens a few times per second, controlled by memory_worker_period_ms). +- `ProfileEvent_PageCacheOvercommitResize` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the userspace page cache was auto-resized to free memory during a memory allocation. +- `ProfileEvent_PageCacheReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read from userspace page cache. +- `ProfileEvent_MMappedFileCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a file has been found in the MMap cache (for the 'mmap' read_method), so we didn't have to mmap it again. +- `ProfileEvent_MMappedFileCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a file has not been found in the MMap cache (for the 'mmap' read_method), so we had to mmap it again. +- `ProfileEvent_OpenedFileCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a file has been found in the opened file cache, so we didn't have to open it again. +- `ProfileEvent_OpenedFileCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a file has been found in the opened file cache, so we had to open it again. +- `ProfileEvent_OpenedFileCacheMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Amount of time spent executing OpenedFileCache methods. +- `ProfileEvent_AIOWrite` ([UInt64](/core/reference/data-types/int-uint)) — Number of writes with Linux or FreeBSD AIO interface +- `ProfileEvent_AIOWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written with Linux or FreeBSD AIO interface +- `ProfileEvent_AIORead` ([UInt64](/core/reference/data-types/int-uint)) — Number of reads with Linux or FreeBSD AIO interface +- `ProfileEvent_AIOReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read with Linux or FreeBSD AIO interface +- `ProfileEvent_IOBufferAllocs` ([UInt64](/core/reference/data-types/int-uint)) — Number of allocations of IO buffers (for ReadBuffer/WriteBuffer). +- `ProfileEvent_IOBufferAllocBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes allocated for IO buffers (for ReadBuffer/WriteBuffer). +- `ProfileEvent_ArenaAllocChunks` ([UInt64](/core/reference/data-types/int-uint)) — Number of chunks allocated for memory Arena (used for GROUP BY and similar operations) +- `ProfileEvent_ArenaAllocBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes allocated for memory Arena (used for GROUP BY and similar operations) +- `ProfileEvent_FunctionExecute` ([UInt64](/core/reference/data-types/int-uint)) — Number of SQL ordinary function calls (SQL functions are called on per-block basis, so this number represents the number of blocks). +- `ProfileEvent_TableFunctionExecute` ([UInt64](/core/reference/data-types/int-uint)) — Number of table function calls. +- `ProfileEvent_DefaultImplementationForNullsRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows processed by default implementation for nulls in function execution +- `ProfileEvent_DefaultImplementationForNullsRowsWithNulls` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows which contain null values processed by default implementation for nulls in function execution +- `ProfileEvent_MarkCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has been found in the mark cache, so we didn't have to load a mark file. +- `ProfileEvent_MarkCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has not been found in the mark cache, so we had to load a mark file in memory, which is a costly operation, adding to query latency. +- `ProfileEvent_PrimaryIndexCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has been found in the primary index cache, so we didn't have to load a index file. +- `ProfileEvent_PrimaryIndexCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has not been found in the primary index cache, so we had to load a index file in memory, which is a costly operation, adding to query latency. +- `ProfileEvent_IcebergMetadataFilesCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times iceberg metadata files have been found in the cache. +- `ProfileEvent_IcebergMetadataFilesCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times iceberg metadata files have not been found in the iceberg metadata cache and had to be read from (remote) disk. +- `ProfileEvent_IcebergMetadataFilesCacheStaleMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times iceberg metadata files have been found in the cache, but were considered stale and had to be read from (remote) disk. +- `ProfileEvent_IcebergMetadataFilesCacheWeightLost` ([UInt64](/core/reference/data-types/int-uint)) — Approximate number of bytes evicted from the iceberg metadata cache. +- `ProfileEvent_IcebergMetadataReadWaitTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time data readers spend waiting for iceberg metadata files to be read and parsed, summed across all reader threads. +- `ProfileEvent_ParquetMetadataCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times parquet metadata has been found in the cache. +- `ProfileEvent_ParquetMetadataCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times parquet metadata has not been found in the cache and had to be read from disk. +- `ProfileEvent_ParquetMetadataCacheWeightLost` ([UInt64](/core/reference/data-types/int-uint)) — Approximate number of bytes evicted from the parquet metadata cache. +- `ProfileEvent_IcebergIteratorInitializationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent on synchronous initialization of iceberg data iterators. +- `ProfileEvent_IcebergMetadataUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent on synchronous initialization of iceberg data iterators. +- `ProfileEvent_IcebergMetadataReturnedObjectInfos` ([UInt64](/core/reference/data-types/int-uint)) — Total number of returned object infos from iceberg iterator. +- `ProfileEvent_IcebergMinMaxNonPrunedDeleteFiles` ([UInt64](/core/reference/data-types/int-uint)) — Total number of accepted data files-position delete file pairs by minmax analysis from pairs suitable by partitioning and sequence number. +- `ProfileEvent_IcebergMinMaxPrunedDeleteFiles` ([UInt64](/core/reference/data-types/int-uint)) — Total number of accepted data files-position delete file pairs by minmax analysis from pairs suitable by partitioning and sequence number. +- `ProfileEvent_VectorSimilarityIndexCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an index granule has been found in the vector index cache. +- `ProfileEvent_VectorSimilarityIndexCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an index granule has not been found in the vector index cache and had to be read from disk. +- `ProfileEvent_VectorSimilarityIndexCacheWeightLost` ([UInt64](/core/reference/data-types/int-uint)) — Approximate number of bytes evicted from the vector index cache. +- `ProfileEvent_TextIndexReadDictionaryBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a text index dictionary block has been read from disk. +- `ProfileEvent_TextIndexTokensCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a text index token info has been found in the cache. +- `ProfileEvent_TextIndexTokensCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a text index token info has not been found in the cache. +- `ProfileEvent_TextIndexHeaderCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a header has been found in the cache. +- `ProfileEvent_TextIndexHeaderCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a header has not been found in the cache. +- `ProfileEvent_TextIndexPostingsCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a text index posting list has been found in the cache. +- `ProfileEvent_TextIndexPostingsCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a a text index posting list has not been found in the cache. +- `ProfileEvent_TextIndexReadSparseIndexBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a sparse index block has been read from the text index. +- `ProfileEvent_TextIndexReaderTotalMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent reading the text index. +- `ProfileEvent_TextIndexReadGranulesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent reading and analyzing granules of the text index. +- `ProfileEvent_TextIndexReadPostings` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a posting list has been read from the text index. +- `ProfileEvent_TextIndexUsedEmbeddedPostings` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a posting list embedded in the dictionary has been used. +- `ProfileEvent_TextIndexUseHint` ([UInt64](/core/reference/data-types/int-uint)) — Number of index granules where a direct reading from the text index was added as hint and was used. +- `ProfileEvent_TextIndexDiscardHint` ([UInt64](/core/reference/data-types/int-uint)) — Number of index granules where a direct reading from the text index was added as hint and was discarded due to low selectivity. +- `ProfileEvent_TextIndexDiscardPatternScan` ([UInt64](/core/reference/data-types/int-uint)) — Number of times pattern-based dictionary scan in a text index was discarded because the number of posting lists to read exceeded the threshold. +- `ProfileEvent_QueryConditionCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has been found in the query condition cache (and reading of marks can be skipped). Only updated for SELECT queries with SETTING use_query_condition_cache = 1. +- `ProfileEvent_QueryConditionCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has not been found in the query condition cache (and reading of mark cannot be skipped). Only updated for SELECT queries with SETTING use_query_condition_cache = 1. +- `ProfileEvent_QueryCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a query result has been found in the query cache (and query computation was avoided). Only updated for SELECT queries with SETTING use_query_cache = 1. +- `ProfileEvent_QueryCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a query result has not been found in the query cache (and required query computation). Only updated for SELECT queries with SETTING use_query_cache = 1. +- `ProfileEvent_QueryCacheAgeSeconds` ([UInt64](/core/reference/data-types/int-uint)) — The sum of ages of found query cache entries in seconds. The value is set both for hits and misses. +- `ProfileEvent_QueryCacheReadRows` ([UInt64](/core/reference/data-types/int-uint)) — The number of rows read from the query cache. +- `ProfileEvent_QueryCacheReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — The number of (uncompressed) bytes read from the query cache. +- `ProfileEvent_QueryCacheWrittenRows` ([UInt64](/core/reference/data-types/int-uint)) — The number of rows saved into the query cache. +- `ProfileEvent_QueryCacheWrittenBytes` ([UInt64](/core/reference/data-types/int-uint)) — The number of (uncompressed) bytes saved into the query cache +- `ProfileEvent_CreatedReadBufferOrdinary` ([UInt64](/core/reference/data-types/int-uint)) — Number of times ordinary read buffer was created for reading data (while choosing among other read methods). +- `ProfileEvent_CreatedReadBufferDirectIO` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read buffer with O_DIRECT was created for reading data (while choosing among other read methods). +- `ProfileEvent_CreatedReadBufferDirectIOFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read buffer with O_DIRECT was attempted to be created for reading data (while choosing among other read methods), but the OS did not allow it (due to lack of filesystem support or other reasons) and we fallen back to the ordinary reading method. +- `ProfileEvent_CreatedReadBufferMMap` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read buffer using 'mmap' was created for reading data (while choosing among other read methods). +- `ProfileEvent_CreatedReadBufferMMapFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read buffer with 'mmap' was attempted to be created for reading data (while choosing among other read methods), but the OS did not allow it (due to lack of filesystem support or other reasons) and we fallen back to the ordinary reading method. +- `ProfileEvent_DiskReadElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for read syscall. This include reads from page cache. +- `ProfileEvent_DiskWriteElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for write syscall. This include writes to page cache. +- `ProfileEvent_NetworkReceiveElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for data to receive or receiving data from network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. +- `ProfileEvent_NetworkSendElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for data to send to network or sending data to network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. +- `ProfileEvent_NetworkReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total number of bytes received from network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. +- `ProfileEvent_NetworkSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total number of bytes send to network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. +- `ProfileEvent_FilterPartsByVirtualColumnsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent in filterPartsByVirtualColumns function. +- `ProfileEvent_GlobalThreadPoolExpansions` ([UInt64](/core/reference/data-types/int-uint)) — Counts the total number of times new threads have been added to the global thread pool. This metric indicates the frequency of expansions in the global thread pool to accommodate increased processing demands. +- `ProfileEvent_GlobalThreadPoolShrinks` ([UInt64](/core/reference/data-types/int-uint)) — Counts the total number of times the global thread pool has shrunk by removing threads. This occurs when the number of idle threads exceeds max_thread_pool_free_size, indicating adjustments in the global thread pool size in response to decreased thread utilization. +- `ProfileEvent_GlobalThreadPoolThreadCreationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for new threads to start. +- `ProfileEvent_GlobalThreadPoolLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time threads have spent waiting for locks in the global thread pool. +- `ProfileEvent_GlobalThreadPoolJobs` ([UInt64](/core/reference/data-types/int-uint)) — Counts the number of jobs that have been pushed to the global thread pool. +- `ProfileEvent_GlobalThreadPoolJobWaitTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Measures the elapsed time from when a job is scheduled in the thread pool to when it is picked up for execution by a worker thread. This metric helps identify delays in job processing, indicating the responsiveness of the thread pool to new tasks. +- `ProfileEvent_LocalThreadPoolExpansions` ([UInt64](/core/reference/data-types/int-uint)) — Counts the total number of times threads have been borrowed from the global thread pool to expand local thread pools. +- `ProfileEvent_LocalThreadPoolShrinks` ([UInt64](/core/reference/data-types/int-uint)) — Counts the total number of times threads have been returned to the global thread pool from local thread pools. +- `ProfileEvent_LocalThreadPoolThreadCreationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time local thread pools have spent waiting to borrow a thread from the global pool. +- `ProfileEvent_LocalThreadPoolLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time threads have spent waiting for locks in the local thread pools. +- `ProfileEvent_LocalThreadPoolJobs` ([UInt64](/core/reference/data-types/int-uint)) — Counts the number of jobs that have been pushed to the local thread pools. +- `ProfileEvent_LocalThreadPoolBusyMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time threads have spent executing the actual work. +- `ProfileEvent_LocalThreadPoolJobWaitTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Measures the elapsed time from when a job is scheduled in the thread pool to when it is picked up for execution by a worker thread. This metric helps identify delays in job processing, indicating the responsiveness of the thread pool to new tasks. +- `ProfileEvent_DiskS3GetRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 GET and SELECT requests passed through throttler: blocked and not blocked. +- `ProfileEvent_DiskS3GetRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 GET and SELECT requests blocked by throttler. +- `ProfileEvent_DiskS3GetRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform DiskS3 GET and SELECT request throttling. +- `ProfileEvent_DiskS3PutRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 PUT, COPY, POST and LIST requests passed through throttler: blocked and not blocked. +- `ProfileEvent_DiskS3PutRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 PUT, COPY, POST and LIST requests blocked by throttler. +- `ProfileEvent_DiskS3PutRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform DiskS3 PUT, COPY, POST and LIST request throttling. +- `ProfileEvent_S3GetRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 GET and SELECT requests passed through throttler: blocked and not blocked. +- `ProfileEvent_S3GetRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 GET and SELECT requests blocked by throttler. +- `ProfileEvent_S3GetRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform S3 GET and SELECT request throttling. +- `ProfileEvent_S3PutRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 PUT, COPY, POST and LIST requests passed through throttler: blocked and not blocked. +- `ProfileEvent_S3PutRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 PUT, COPY, POST and LIST requests blocked by throttler. +- `ProfileEvent_S3PutRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform S3 PUT, COPY, POST and LIST request throttling. +- `ProfileEvent_ACMEAPIRequests` ([UInt64](/core/reference/data-types/int-uint)) — Number of ACME API requests issued. +- `ProfileEvent_ACMECertificateOrders` ([UInt64](/core/reference/data-types/int-uint)) — Number of ACME certificate orders issued. +- `ProfileEvent_DiskAzureReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for Azure disk read requests. +- `ProfileEvent_DiskAzureReadRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk read requests. +- `ProfileEvent_DiskAzureReadRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk read request errors. +- `ProfileEvent_DiskAzureReadRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk read requests throttled. +- `ProfileEvent_DiskAzureReadRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk read request redirects. +- `ProfileEvent_DiskAzureWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for Azure disk write requests. +- `ProfileEvent_DiskAzureWriteRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk write requests. +- `ProfileEvent_DiskAzureWriteRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk write request errors. +- `ProfileEvent_DiskAzureWriteRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk write requests throttled. +- `ProfileEvent_DiskAzureWriteRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk write request redirects. +- `ProfileEvent_AzureReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for Azure read requests. +- `ProfileEvent_AzureReadRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure read requests. +- `ProfileEvent_AzureReadRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure read request errors. +- `ProfileEvent_AzureReadRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure read requests throttled. +- `ProfileEvent_AzureReadRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure read request redirects. +- `ProfileEvent_AzureWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for Azure write requests. +- `ProfileEvent_AzureWriteRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure write requests. +- `ProfileEvent_AzureWriteRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure write request errors. +- `ProfileEvent_AzureWriteRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure write requests throttled. +- `ProfileEvent_AzureWriteRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure write request redirects. +- `ProfileEvent_AzureGetRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure GET requests passed through throttler: blocked and not blocked. +- `ProfileEvent_AzureGetRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure GET requests blocked by throttler. +- `ProfileEvent_AzureGetRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure GET request throttling. +- `ProfileEvent_DiskAzureGetRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk GET requests passed through throttler: blocked and not blocked. +- `ProfileEvent_DiskAzureGetRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk GET requests blocked by throttler. +- `ProfileEvent_DiskAzureGetRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure disk GET request throttling. +- `ProfileEvent_AzurePutRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure PUT requests passed through throttler: blocked and not blocked. +- `ProfileEvent_AzurePutRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure PUT requests blocked by throttler. +- `ProfileEvent_AzurePutRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure PUT request throttling. +- `ProfileEvent_DiskAzurePutRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk PUT requests passed through throttler: blocked and not blocked. +- `ProfileEvent_DiskAzurePutRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk PUT requests blocked by throttler. +- `ProfileEvent_DiskAzurePutRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure disk PUT request throttling. +- `ProfileEvent_RemoteReadThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_remote_read_network_bandwidth_for_server'/'max_remote_read_network_bandwidth' throttler. +- `ProfileEvent_RemoteReadThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_read_network_bandwidth_for_server'/'max_remote_read_network_bandwidth' throttling. +- `ProfileEvent_RemoteWriteThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_remote_write_network_bandwidth_for_server'/'max_remote_write_network_bandwidth' throttler. +- `ProfileEvent_RemoteWriteThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_write_network_bandwidth_for_server'/'max_remote_write_network_bandwidth' throttling. +- `ProfileEvent_LocalReadThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_local_read_bandwidth_for_server'/'max_local_read_bandwidth' throttler. +- `ProfileEvent_LocalReadThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_read_bandwidth_for_server'/'max_local_read_bandwidth' throttling. +- `ProfileEvent_LocalWriteThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_local_write_bandwidth_for_server'/'max_local_write_bandwidth' throttler. +- `ProfileEvent_LocalWriteThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_write_bandwidth_for_server'/'max_local_write_bandwidth' throttling. +- `ProfileEvent_BackupThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_backup_bandwidth_for_server' throttler. +- `ProfileEvent_BackupThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_backup_bandwidth_for_server' throttling. +- `ProfileEvent_MergesThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_merges_bandwidth_for_server' throttler. +- `ProfileEvent_MergesThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_merges_bandwidth_for_server' throttling. +- `ProfileEvent_MutationsThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_mutations_bandwidth_for_server' throttler. +- `ProfileEvent_MutationsThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_mutations_bandwidth_for_server' throttling. +- `ProfileEvent_UserThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_network_bandwidth_for_user' throttler. +- `ProfileEvent_UserThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_network_bandwidth_for_user' throttling. +- `ProfileEvent_AllUsersThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_network_bandwidth_for_all_users' throttler. +- `ProfileEvent_AllUsersThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_network_bandwidth_for_all_users' throttling. +- `ProfileEvent_QueryRemoteReadThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_remote_read_network_bandwidth' throttler. +- `ProfileEvent_QueryRemoteReadThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_read_network_bandwidth' throttling. +- `ProfileEvent_QueryRemoteWriteThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_remote_write_network_bandwidth' throttler. +- `ProfileEvent_QueryRemoteWriteThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_write_network_bandwidth' throttling. +- `ProfileEvent_QueryLocalReadThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_local_read_bandwidth' throttler. +- `ProfileEvent_QueryLocalReadThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_read_bandwidth' throttling. +- `ProfileEvent_QueryLocalWriteThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_local_write_bandwidth' throttler. +- `ProfileEvent_QueryLocalWriteThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_write_bandwidth' throttling. +- `ProfileEvent_QueryBackupThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_backup_bandwidth' throttler. +- `ProfileEvent_QueryBackupThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_backup_bandwidth' throttling. +- `ProfileEvent_DistrCacheReadThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_distributed_cache_read_bandwidth_for_server' throttler. +- `ProfileEvent_DistrCacheReadThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_distributed_cache_read_bandwidth_for_server' throttling. +- `ProfileEvent_DistrCacheWriteThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_distributed_cache_write_bandwidth_for_server' throttler. +- `ProfileEvent_DistrCacheWriteThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_distributed_cache_write_bandwidth_for_server' throttling. +- `ProfileEvent_ThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform all throttling settings. +- `ProfileEvent_ReadTasksWithAppliedPatches` ([UInt64](/core/reference/data-types/int-uint)) — Total number of read tasks for which there was any patch part applied +- `ProfileEvent_PatchesAppliedInAllReadTasks` ([UInt64](/core/reference/data-types/int-uint)) — Total number of applied patch parts among all read tasks +- `ProfileEvent_PatchesMergeAppliedInAllReadTasks` ([UInt64](/core/reference/data-types/int-uint)) — Total number of applied patch parts with Merge mode among all read tasks +- `ProfileEvent_PatchesJoinAppliedInAllReadTasks` ([UInt64](/core/reference/data-types/int-uint)) — Total number of applied patch parts with Join mode among all read tasks +- `ProfileEvent_PatchesReadRows` ([UInt64](/core/reference/data-types/int-uint)) — Total number of rows read from patch parts +- `ProfileEvent_PatchesReadUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total number of uncompressed bytes read from patch parts +- `ProfileEvent_PatchesJoinRowsAddedToHashTable` ([UInt64](/core/reference/data-types/int-uint)) — Total number of rows added to hash tables when applying patch parts with Join mode +- `ProfileEvent_ApplyPatchesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent applying patch parts to blocks +- `ProfileEvent_ReadPatchesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent reading patch parts +- `ProfileEvent_BuildPatchesMergeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent building indexes for applying patch parts with Merge mode +- `ProfileEvent_BuildPatchesJoinMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent building indexes and hash tables for applying patch parts with Join mode +- `ProfileEvent_AnalyzePatchRangesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent analyzing index of patch parts +- `ProfileEvent_ReadTasksWithAppliedMutationsOnFly` ([UInt64](/core/reference/data-types/int-uint)) — Total number of read tasks for which there was any mutation applied on fly +- `ProfileEvent_MutationsAppliedOnFlyInAllReadTasks` ([UInt64](/core/reference/data-types/int-uint)) — Total number of applied mutations on-fly among all read tasks +- `ProfileEvent_PatchesAcquireLockTries` ([UInt64](/core/reference/data-types/int-uint)) — Total number of tries to acquire lock for executing lightweight updates +- `ProfileEvent_PatchesAcquireLockMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total number of microseconds spent to acquire lock for executing lightweight updates +- `ProfileEvent_DiskObjectStorageWaitBlobRemovalMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for pending blob removal after committing metadata transaction +- `ProfileEvent_SchedulerIOReadRequests` ([UInt64](/core/reference/data-types/int-uint)) — Resource requests passed through scheduler for IO reads. +- `ProfileEvent_SchedulerIOReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through scheduler for IO reads. +- `ProfileEvent_SchedulerIOReadWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for IO reads. +- `ProfileEvent_SchedulerIOWriteRequests` ([UInt64](/core/reference/data-types/int-uint)) — Resource requests passed through scheduler for IO writes. +- `ProfileEvent_SchedulerIOWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through scheduler for IO writes. +- `ProfileEvent_SchedulerIOWriteWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for IO writes. +- `ProfileEvent_QueryMaskingRulesMatch` ([UInt64](/core/reference/data-types/int-uint)) — Number of times query masking rules was successfully matched. +- `ProfileEvent_ReplicatedPartFetches` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a data part was downloaded from replica of a ReplicatedMergeTree table. +- `ProfileEvent_ReplicatedPartFailedFetches` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a data part was failed to download from replica of a ReplicatedMergeTree table. +- `ProfileEvent_ObsoleteReplicatedParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a data part was covered by another data part that has been fetched from a replica (so, we have marked a covered data part as obsolete and no longer needed). +- `ProfileEvent_ReplicatedPartMerges` ([UInt64](/core/reference/data-types/int-uint)) — Number of times data parts of ReplicatedMergeTree tables were successfully merged. +- `ProfileEvent_ReplicatedPartFetchesOfMerged` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we prefer to download already merged part from replica of ReplicatedMergeTree table instead of performing a merge ourself (usually we prefer doing a merge ourself to save network traffic). This happens when we have not all source parts to perform a merge or when the data part is old enough. +- `ProfileEvent_ReplicatedPartMutations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times data parts of ReplicatedMergeTree tables were successfully mutated. +- `ProfileEvent_ReplicatedPartChecks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we had to perform advanced search for a data part on replicas or to clarify the need of an existing data part. +- `ProfileEvent_ReplicatedPartChecksFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the advanced search for a data part on replicas did not give result or when unexpected part has been found and moved away. +- `ProfileEvent_ReplicatedDataLoss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a data part that we wanted doesn't exist on any replica (even on replicas that are offline right now). That data parts are definitely lost. This is normal due to asynchronous replication (if quorum inserts were not enabled), when the replica on which the data part was written was failed and when it became online after fail it doesn't contain that data part. +- `ProfileEvent_ReplicatedCoveredPartsInZooKeeperOnStart` ([UInt64](/core/reference/data-types/int-uint)) — For debugging purposes. Number of parts in ZooKeeper that have a covering part, but doesn't exist on disk. Checked on server start. +- `ProfileEvent_QuorumParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of data parts written with quorum. It counts as one part for sync insert and maybe up to async inserts count for insert which flushes async inserts. +- `ProfileEvent_QuorumWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for quorum during inserts. +- `ProfileEvent_QuorumFailedInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of inserts failed due to quorum not reaching. +- `ProfileEvent_InsertedRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows INSERTed to all tables. +- `ProfileEvent_InsertedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes (uncompressed; for columns as they stored in memory) INSERTed to all tables. +- `ProfileEvent_DelayedInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition. +- `ProfileEvent_RejectedInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the INSERT of a block to a MergeTree table was rejected with 'Too many parts' exception due to high number of active data parts for partition. +- `ProfileEvent_DelayedInsertsMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total number of milliseconds spent while the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition. +- `ProfileEvent_DelayedMutations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the mutation of a MergeTree table was throttled due to high number of unfinished mutations for table. +- `ProfileEvent_RejectedMutations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the mutation of a MergeTree table was rejected with 'Too many mutations' exception due to high number of unfinished mutations for table. +- `ProfileEvent_DelayedMutationsMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total number of milliseconds spent while the mutation of a MergeTree table was throttled due to high number of unfinished mutations for table. +- `ProfileEvent_RejectedLightweightUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Number of time the lightweight update was rejected due to too many uncompressed bytes in patches. +- `ProfileEvent_DistributedDelayedInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the INSERT of a block to a Distributed table was throttled due to high number of pending bytes. +- `ProfileEvent_DistributedRejectedInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the INSERT of a block to a Distributed table was rejected with 'Too many bytes' exception due to high number of pending bytes. +- `ProfileEvent_DistributedDelayedInsertsMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total number of milliseconds spent while the INSERT of a block to a Distributed table was throttled due to high number of pending bytes. +- `ProfileEvent_DuplicatedInsertedBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of the synchronous inserts to a *MergeTree table was deduplicated. +- `ProfileEvent_SelfDuplicatedAsyncInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of async inserts in the INSERTed block to a ReplicatedMergeTree table was self deduplicated. +- `ProfileEvent_DuplicatedAsyncInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of async inserts in the INSERTed block to a ReplicatedMergeTree table was deduplicated. +- `ProfileEvent_DuplicationElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent checking for duplication of INSERTed blocks to *MergeTree tables. +- `ProfileEvent_ZooKeeperInit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times connection with ZooKeeper has been established. +- `ProfileEvent_ZooKeeperTransactions` ([UInt64](/core/reference/data-types/int-uint)) — Number of ZooKeeper operations, which include both read and write operations as well as multi-transactions. +- `ProfileEvent_ZooKeeperList` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'list' (getChildren) requests to ZooKeeper. +- `ProfileEvent_ZooKeeperListRecursive` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'listRecursive' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperCreate` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'create' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperRemove` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'remove' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperExists` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'exists' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperGet` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'get' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperSet` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'set' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperMulti` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'multi' requests to ZooKeeper (compound transactions). +- `ProfileEvent_ZooKeeperMultiRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of read 'multi' requests to ZooKeeper (compound transactions). +- `ProfileEvent_ZooKeeperMultiWrite` ([UInt64](/core/reference/data-types/int-uint)) — Number of write 'multi' requests to ZooKeeper (compound transactions). +- `ProfileEvent_ZooKeeperCheck` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'check' requests to ZooKeeper. Usually they don't make sense in isolation, only as part of a complex transaction. +- `ProfileEvent_ZooKeeperSync` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'sync' requests to ZooKeeper. These requests are rarely needed or usable. +- `ProfileEvent_ZooKeeperReconfig` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'reconfig' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperClose` ([UInt64](/core/reference/data-types/int-uint)) — Number of times connection with ZooKeeper has been closed voluntary. +- `ProfileEvent_ZooKeeperGetACL` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'getACL' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperWatchResponse` ([UInt64](/core/reference/data-types/int-uint)) — Number of times watch notification has been received from ZooKeeper. +- `ProfileEvent_ZooKeeperUserExceptions` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper related to the data (no node, bad version or similar). +- `ProfileEvent_ZooKeeperHardwareExceptions` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper related to network (connection loss or similar). +- `ProfileEvent_ZooKeeperOtherExceptions` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper other than ZooKeeperUserExceptions and ZooKeeperHardwareExceptions. +- `ProfileEvent_ZooKeeperWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Number of microseconds spent waiting for responses from ZooKeeper after creating a request, summed across all the requesting threads. +- `ProfileEvent_ZooKeeperBytesSent` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes send over network while communicating with ZooKeeper. +- `ProfileEvent_ZooKeeperBytesReceived` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received over network while communicating with ZooKeeper. +- `ProfileEvent_DistributedConnectionTries` ([UInt64](/core/reference/data-types/int-uint)) — Total count of distributed connection attempts. +- `ProfileEvent_DistributedConnectionUsable` ([UInt64](/core/reference/data-types/int-uint)) — Total count of successful distributed connections to a usable server (with required table, but maybe stale). +- `ProfileEvent_DistributedConnectionFailTry` ([UInt64](/core/reference/data-types/int-uint)) — Total count when distributed connection fails with retry. +- `ProfileEvent_DistributedConnectionMissingTable` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we rejected a replica from a distributed query, because it did not contain a table needed for the query. +- `ProfileEvent_DistributedConnectionStaleReplica` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we rejected a replica from a distributed query, because some table needed for a query had replication lag higher than the configured threshold. +- `ProfileEvent_DistributedConnectionSkipReadOnlyReplica` ([UInt64](/core/reference/data-types/int-uint)) — Number of replicas skipped during INSERT into Distributed table due to replicas being read-only +- `ProfileEvent_DistributedConnectionFailAtAll` ([UInt64](/core/reference/data-types/int-uint)) — Total count when distributed connection fails after all retries finished. +- `ProfileEvent_Shards` ([UInt64](/core/reference/data-types/int-uint)) — The number of shards involved in a query, summed across all distributed tables and table functions. A single host is counted multiple times if it appears in multiple tables. The number counts the total expected number of shards, which includes skipped shards with the `skip_unavailable_shards` setting. +- `ProfileEvent_HedgedRequestsChangeReplica` ([UInt64](/core/reference/data-types/int-uint)) — Total count when timeout for changing replica expired in hedged requests. +- `ProfileEvent_SuspendSendingQueryToShard` ([UInt64](/core/reference/data-types/int-uint)) — Total count when sending query to shard was suspended when async_query_sending_for_remote is enabled. +- `ProfileEvent_CompileFunction` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a compilation of generated LLVM code (to create fused function for complex expressions) was initiated. +- `ProfileEvent_CompiledFunctionExecute` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a compiled function was executed. +- `ProfileEvent_CompileExpressionsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for compilation of expressions to LLVM code. +- `ProfileEvent_CompileExpressionsBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes used for expressions compilation. +- `ProfileEvent_ExecuteShellCommand` ([UInt64](/core/reference/data-types/int-uint)) — Number of shell command executions. +- `ProfileEvent_ExternalProcessingCompressedBytesTotal` ([UInt64](/core/reference/data-types/int-uint)) — Number of compressed bytes written by external processing (sorting/aggregating/joining) +- `ProfileEvent_ExternalProcessingUncompressedBytesTotal` ([UInt64](/core/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written by external processing (sorting/aggregating/joining) +- `ProfileEvent_ExternalProcessingFilesTotal` ([UInt64](/core/reference/data-types/int-uint)) — Number of files used by external processing (sorting/aggregating/joining) +- `ProfileEvent_ExternalSortWritePart` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for sorting in external memory. +- `ProfileEvent_ExternalSortMerge` ([UInt64](/core/reference/data-types/int-uint)) — Number of times temporary files were merged for sorting in external memory. +- `ProfileEvent_ExternalSortCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of compressed bytes written for sorting in external memory. +- `ProfileEvent_ExternalSortUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written for sorting in external memory. +- `ProfileEvent_ExternalAggregationWritePart` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for aggregation in external memory. +- `ProfileEvent_ExternalAggregationMerge` ([UInt64](/core/reference/data-types/int-uint)) — Number of times temporary files were merged for aggregation in external memory. +- `ProfileEvent_ExternalAggregationCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to disk for aggregation in external memory. +- `ProfileEvent_ExternalAggregationUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written to disk for aggregation in external memory. +- `ProfileEvent_ExternalJoinWritePart` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for JOIN in external memory. +- `ProfileEvent_ExternalJoinMerge` ([UInt64](/core/reference/data-types/int-uint)) — Number of times temporary files were merged for JOIN in external memory. +- `ProfileEvent_ExternalJoinCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of compressed bytes written for JOIN in external memory. +- `ProfileEvent_ExternalJoinUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written for JOIN in external memory. +- `ProfileEvent_IcebergPartitionPrunedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of skipped files during Iceberg partition pruning +- `ProfileEvent_IcebergTrivialCountOptimizationApplied` ([UInt64](/core/reference/data-types/int-uint)) — Trivial count optimization applied while reading from Iceberg +- `ProfileEvent_IcebergVersionHintUsed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times version-hint.text has been used. +- `ProfileEvent_IcebergMinMaxIndexPrunedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of skipped files by using MinMax index in Iceberg +- `ProfileEvent_JoinBuildTableRowCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of rows in the build table for a JOIN operation. +- `ProfileEvent_JoinProbeTableRowCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of rows in the probe table for a JOIN operation. +- `ProfileEvent_JoinResultRowCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of rows in the result of a JOIN operation. +- `ProfileEvent_JoinNonJoinedTransformBlockCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks emitted by NonJoinedBlocksTransform. +- `ProfileEvent_JoinNonJoinedTransformRowCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of non-joined rows emitted by NonJoinedBlocksTransform. +- `ProfileEvent_JoinDelayedJoinedTransformBlockCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks emitted by DelayedJoinedBlocksWorkerTransform. +- `ProfileEvent_JoinDelayedJoinedTransformRowCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows emitted by DelayedJoinedBlocksWorkerTransform. +- `ProfileEvent_JoinSpillingHashJoinSwitchedToGraceJoin` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a (Concurrent)HashJoin was switched to GraceHashJoin due to memory limit in SpillingHashJoin. +- `ProfileEvent_JoinReorderMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent executing JOIN reordering algorithm. +- `ProfileEvent_JoinOptimizeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent executing JOIN plan optimizations. +- `ProfileEvent_QueryPlanOptimizeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent executing query plan optimizations. +- `ProfileEvent_DeltaLakePartitionPrunedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of skipped files during DeltaLake partition pruning +- `ProfileEvent_DeltaLakeSnapshotInitializations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a DeltaLake table snapshot was initialized (loaded from object storage) +- `ProfileEvent_DeltaLakeScannedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of files scanned during DeltaLake scan callbacks +- `ProfileEvent_SlowRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of reads from a file that were slow. This indicate system overload. Thresholds are controlled by read_backoff_* settings. +- `ProfileEvent_ReadBackoff` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the number of query processing threads was lowered due to slow reads. +- `ProfileEvent_ReplicaPartialShutdown` ([UInt64](/core/reference/data-types/int-uint)) — How many times Replicated table has to deinitialize its state due to session expiration in ZooKeeper. The state is reinitialized every time when ZooKeeper is available again. +- `ProfileEvent_IndexAnalysisRounds` ([UInt64](/core/reference/data-types/int-uint)) — Number of times index analysis was performed within the query. +- `ProfileEvent_SelectedParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of data parts selected to read from a MergeTree table. +- `ProfileEvent_SelectedPartsTotal` ([UInt64](/core/reference/data-types/int-uint)) — Number of total data parts before selecting which ones to read from a MergeTree table. +- `ProfileEvent_SelectedRanges` ([UInt64](/core/reference/data-types/int-uint)) — Number of (non-adjacent) ranges in all data parts selected to read from a MergeTree table. +- `ProfileEvent_SelectedMarks` ([UInt64](/core/reference/data-types/int-uint)) — Number of marks (index granules) selected to read from a MergeTree table. +- `ProfileEvent_SelectedMarksTotal` ([UInt64](/core/reference/data-types/int-uint)) — Number of total marks (index granules) before selecting which ones to read from a MergeTree table. +- `ProfileEvent_SelectedRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows SELECTed from all tables. +- `ProfileEvent_SelectedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes (uncompressed; for columns as they stored in memory) SELECTed from all tables. +- `ProfileEvent_RowsReadByMainReader` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows read from MergeTree tables by the main reader (after PREWHERE step). +- `ProfileEvent_RowsReadByPrewhereReaders` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows read from MergeTree tables (in total) by prewhere readers. +- `ProfileEvent_LoadedDataParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of data parts loaded by MergeTree tables during initialization. +- `ProfileEvent_LoadedDataPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Microseconds spent by MergeTree tables for loading data parts during initialization. +- `ProfileEvent_FilteringMarksWithPrimaryKeyProcessedMarks` ([UInt64](/core/reference/data-types/int-uint)) — Total marks processed during PK analysis. +- `ProfileEvent_FilteringMarksWithPrimaryKeyMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent filtering parts by PK. +- `ProfileEvent_FilteringMarksWithSecondaryKeysMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent filtering parts by skip indexes. +- `ProfileEvent_DistributedIndexAnalysisMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent during distributed index analysis +- `ProfileEvent_DistributedIndexAnalysisScheduledReplicas` ([UInt64](/core/reference/data-types/int-uint)) — Number of replicas (local replica will be accounted once) to which distributed index analysis has been scheduled +- `ProfileEvent_DistributedIndexAnalysisReplicaUnavailable` ([UInt64](/core/reference/data-types/int-uint)) — Number of times distributed index analysis failed on one of replicas without fallback (failed during connect) +- `ProfileEvent_DistributedIndexAnalysisReplicaFallback` ([UInt64](/core/reference/data-types/int-uint)) — Number of times distributed index analysis failed on one of replicas with fallback to local replica +- `ProfileEvent_DistributedIndexAnalysisParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts send for distributed index analysis +- `ProfileEvent_DistributedIndexAnalysisMissingParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of missing parts during distributed index analysis that will be resolved locally +- `ProfileEvent_WaitMarksLoadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent loading marks +- `ProfileEvent_BackgroundLoadingMarksTasks` ([UInt64](/core/reference/data-types/int-uint)) — Number of background tasks for loading marks +- `ProfileEvent_MarksTasksFromCache` ([UInt64](/core/reference/data-types/int-uint)) — Number of times marks were loaded synchronously because they were already present in the cache. +- `ProfileEvent_LoadingMarksTasksCanceled` ([UInt64](/core/reference/data-types/int-uint)) — Number of times background tasks for loading marks were canceled +- `ProfileEvent_LoadedMarksFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of mark files loaded. +- `ProfileEvent_LoadedMarksCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of marks loaded (total across columns). +- `ProfileEvent_LoadedMarksMemoryBytes` ([UInt64](/core/reference/data-types/int-uint)) — Size of in-memory representations of loaded marks. +- `ProfileEvent_MarkCacheEvictedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes evicted from the mark cache. +- `ProfileEvent_MarkCacheEvictedMarks` ([UInt64](/core/reference/data-types/int-uint)) — Number of marks evicted from the mark cache. +- `ProfileEvent_MarkCacheEvictedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of mark files evicted from the mark cache. +- `ProfileEvent_LoadedPrimaryIndexFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of primary index files loaded. +- `ProfileEvent_LoadedPrimaryIndexRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows of primary key loaded. +- `ProfileEvent_LoadedPrimaryIndexBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows of primary key loaded. +- `ProfileEvent_Merge` ([UInt64](/core/reference/data-types/int-uint)) — Number of launched background merges. +- `ProfileEvent_MergeSourceParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of source parts scheduled for merges. +- `ProfileEvent_MergedRows` ([UInt64](/core/reference/data-types/int-uint)) — Rows read for background merges. This is the number of rows before merge. +- `ProfileEvent_MergedColumns` ([UInt64](/core/reference/data-types/int-uint)) — Number of columns merged during the horizontal stage of merges. +- `ProfileEvent_GatheredColumns` ([UInt64](/core/reference/data-types/int-uint)) — Number of columns gathered during the vertical stage of merges. +- `ProfileEvent_MergedProjections` ([UInt64](/core/reference/data-types/int-uint)) — Number of projections merged (not rebuilt) during MergeTree merges. +- `ProfileEvent_RebuiltProjections` ([UInt64](/core/reference/data-types/int-uint)) — Number of projections rebuilt from scratch during MergeTree merges. +- `ProfileEvent_MergedUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) that was read for background merges. This is the number before merge. +- `ProfileEvent_MergeWrittenRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows written during the merge. +- `ProfileEvent_MergeTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for background merges +- `ProfileEvent_MergeExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of background merges +- `ProfileEvent_MergeCommitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for committing merge results (part renaming, checksum verification, ZooKeeper updates) +- `ProfileEvent_MergeHorizontalStageTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for horizontal stage of background merges +- `ProfileEvent_MergeHorizontalStageExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of horizontal stage of background merges +- `ProfileEvent_MergeVerticalStageTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for vertical stage of background merges +- `ProfileEvent_MergeVerticalStageExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of vertical stage of background merges +- `ProfileEvent_MergeTextIndexStageTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for text index stage of background merges +- `ProfileEvent_MergeTextIndexStageExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of text index stage of background merges +- `ProfileEvent_MergeProjectionStageTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for projection stage of background merges +- `ProfileEvent_MergeProjectionStageExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of projection stage of background merges +- `ProfileEvent_MergePrewarmStageTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for prewarm stage of background merges +- `ProfileEvent_MergePrewarmStageExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of prewarm stage of background merges +- `ProfileEvent_MergesRejectedByMemoryLimit` ([UInt64](/core/reference/data-types/int-uint)) — Number of background merges rejected due to memory limit +- `ProfileEvent_MergingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while merging sorted columns +- `ProfileEvent_AggregatingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while aggregating sorted columns +- `ProfileEvent_CoalescingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while coalescing sorted columns +- `ProfileEvent_CollapsingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while collapsing sorted columns +- `ProfileEvent_ReplacingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while replacing sorted columns +- `ProfileEvent_SummingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while summing sorted columns +- `ProfileEvent_VersionedCollapsingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while version collapsing sorted columns +- `ProfileEvent_GatheringColumnMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while gathering columns for vertical merge +- `ProfileEvent_MutationTotalParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of total parts for which mutations tried to be applied +- `ProfileEvent_MutationUntouchedParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of total parts for which mutations tried to be applied but which was completely skipped according to predicate +- `ProfileEvent_MutationCreatedEmptyParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of total parts which were replaced to empty parts instead of running mutation +- `ProfileEvent_MutatedRows` ([UInt64](/core/reference/data-types/int-uint)) — Rows read for mutations. This is the number of rows before mutation +- `ProfileEvent_MutatedUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) that was read for mutations. This is the number before mutation. +- `ProfileEvent_MutationAffectedRowsUpperBound` ([UInt64](/core/reference/data-types/int-uint)) — The upper bound of number of rows that were affected by mutation (e.g. number of rows that satisfy the predicate of UPDATE or DELETE mutation). The actual number may be slightly less +- `ProfileEvent_MutationTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for mutations. +- `ProfileEvent_MutationExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of mutations. +- `ProfileEvent_MutationCommitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for committing mutation results (part renaming, checksum verification, ZooKeeper updates) +- `ProfileEvent_MutationAllPartColumns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times when task to mutate all columns in part was created +- `ProfileEvent_MutationSomePartColumns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times when task to mutate some columns in part was created +- `ProfileEvent_MutateTaskProjectionsCalculationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent calculating projections in mutations +- `ProfileEvent_MergeTreeDataWriterRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows INSERTed to MergeTree tables. +- `ProfileEvent_MergeTreeDataWriterUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) INSERTed to MergeTree tables. +- `ProfileEvent_MergeTreeDataWriterCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes written to filesystem for data INSERTed to MergeTree tables. +- `ProfileEvent_MergeTreeDataWriterBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables. Each block forms a data part of level zero. +- `ProfileEvent_MergeTreeDataWriterBlocksAlreadySorted` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables that appeared to be already sorted. +- `ProfileEvent_MergeMutateBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in executeStep() for MergeMutate executor tasks. +- `ProfileEvent_MergeMutateBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in cancel() for MergeMutate executor tasks. +- `ProfileEvent_MergeMutateBackgroundExecutorTaskResetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent resetting task for MergeMutate executor. +- `ProfileEvent_MergeMutateBackgroundExecutorWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for completion in MergeMutate executor. +- `ProfileEvent_MoveBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in executeStep() for Move executor tasks. +- `ProfileEvent_MoveBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in cancel() for Move executor tasks. +- `ProfileEvent_MoveBackgroundExecutorTaskResetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent resetting task for Move executor. +- `ProfileEvent_MoveBackgroundExecutorWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for completion in Move executor. +- `ProfileEvent_FetchBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in executeStep() for Fetch executor tasks. +- `ProfileEvent_FetchBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in cancel() for Fetch executor tasks. +- `ProfileEvent_FetchBackgroundExecutorTaskResetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent resetting task for Fetch executor. +- `ProfileEvent_FetchBackgroundExecutorWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for completion in Fetch executor. +- `ProfileEvent_CommonBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in executeStep() for Common executor tasks. +- `ProfileEvent_CommonBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in cancel() for Common executor tasks. +- `ProfileEvent_CommonBackgroundExecutorTaskResetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent resetting task for Common executor. +- `ProfileEvent_CommonBackgroundExecutorWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for completion in Common executor. +- `ProfileEvent_MergeTreeDataWriterSkipIndicesCalculationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent calculating skip indices +- `ProfileEvent_MergeTreeDataWriterStatisticsCalculationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent calculating statistics +- `ProfileEvent_MergeTreeDataWriterSortingBlocksMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent sorting blocks +- `ProfileEvent_MergeTreeDataWriterMergingBlocksMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent merging input blocks (for special MergeTree engines) +- `ProfileEvent_MergeTreeDataWriterProjectionsCalculationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent calculating projections +- `ProfileEvent_MergeTreeDataProjectionWriterSortingBlocksMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent sorting blocks (for projection it might be a key different from table's sorting key) +- `ProfileEvent_MergeTreeDataProjectionWriterMergingBlocksMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent merging blocks +- `ProfileEvent_InsertedWideParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts inserted in Wide format. +- `ProfileEvent_InsertedCompactParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts inserted in Compact format. +- `ProfileEvent_MergedIntoWideParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts merged into Wide format. +- `ProfileEvent_MergedIntoCompactParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts merged into Compact format. +- `ProfileEvent_MergeTreeDataProjectionWriterRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows INSERTed to MergeTree tables projection. +- `ProfileEvent_MergeTreeDataProjectionWriterUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) INSERTed to MergeTree tables projection. +- `ProfileEvent_MergeTreeDataProjectionWriterCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes written to filesystem for data INSERTed to MergeTree tables projection. +- `ProfileEvent_MergeTreeDataProjectionWriterBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables projection. Each block forms a data part of level zero. +- `ProfileEvent_MergeTreeDataProjectionWriterBlocksAlreadySorted` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables projection that appeared to be already sorted. +- `ProfileEvent_CannotRemoveEphemeralNode` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an error happened while trying to remove ephemeral node. This is not an issue, because our implementation of ZooKeeper library guarantee that the session will expire and the node will be removed. +- `ProfileEvent_RegexpWithMultipleNeedlesCreated` ([UInt64](/core/reference/data-types/int-uint)) — Regular expressions with multiple needles (VectorScan library) compiled. +- `ProfileEvent_RegexpWithMultipleNeedlesGlobalCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we fetched compiled regular expression with multiple needles (VectorScan library) from the global cache. +- `ProfileEvent_RegexpWithMultipleNeedlesGlobalCacheMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we failed to fetch compiled regular expression with multiple needles (VectorScan library) from the global cache. +- `ProfileEvent_RegexpLocalCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we fetched compiled regular expression from a local cache. +- `ProfileEvent_RegexpLocalCacheMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we failed to fetch compiled regular expression from a local cache. +- `ProfileEvent_ContextLock` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the lock of Context was acquired or tried to acquire. This is global lock. +- `ProfileEvent_ContextLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Context lock wait time in microseconds +- `ProfileEvent_StorageBufferFlush` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a buffer in a 'Buffer' table was flushed. +- `ProfileEvent_StorageBufferErrorOnFlush` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a buffer in the 'Buffer' table has not been able to flush due to error writing in the destination table. +- `ProfileEvent_StorageBufferPassedAllMinThresholds` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a criteria on min thresholds has been reached to flush a buffer in a 'Buffer' table. +- `ProfileEvent_StorageBufferPassedTimeMaxThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a criteria on max time threshold has been reached to flush a buffer in a 'Buffer' table. +- `ProfileEvent_StorageBufferPassedRowsMaxThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a criteria on max rows threshold has been reached to flush a buffer in a 'Buffer' table. +- `ProfileEvent_StorageBufferPassedBytesMaxThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a criteria on max bytes threshold has been reached to flush a buffer in a 'Buffer' table. +- `ProfileEvent_StorageBufferPassedTimeFlushThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times background-only flush threshold on time has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. +- `ProfileEvent_StorageBufferPassedRowsFlushThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times background-only flush threshold on rows has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. +- `ProfileEvent_StorageBufferPassedBytesFlushThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times background-only flush threshold on bytes has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. +- `ProfileEvent_StorageBufferLayerLockReadersWaitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time for waiting for Buffer layer during reading. +- `ProfileEvent_StorageBufferLayerLockWritersWaitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time for waiting free Buffer layer to write to (can be used to tune Buffer layers). +- `ProfileEvent_SystemLogErrorOnFlush` ([UInt64](/core/reference/data-types/int-uint)) — Number of times any of the system logs have failed to flush to the corresponding system table. Attempts to flush are repeated. +- `ProfileEvent_DictCacheKeysRequested` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys requested from the data source for the dictionaries of 'cache' types. +- `ProfileEvent_DictCacheKeysRequestedMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys requested from the data source for dictionaries of 'cache' types but not found in the data source. +- `ProfileEvent_DictCacheKeysRequestedFound` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys requested from the data source for dictionaries of 'cache' types and found in the data source. +- `ProfileEvent_DictCacheKeysExpired` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and found in the cache but they were obsolete. +- `ProfileEvent_DictCacheKeysNotFound` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and not found. +- `ProfileEvent_DictCacheKeysHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and found in the cache. +- `ProfileEvent_DictCacheRequestTimeNs` ([UInt64](/core/reference/data-types/int-uint)) — Number of nanoseconds spend in querying the external data sources for the dictionaries of 'cache' types. +- `ProfileEvent_DictCacheRequests` ([UInt64](/core/reference/data-types/int-uint)) — Number of bulk requests to the external data sources for the dictionaries of 'cache' types. +- `ProfileEvent_DictCacheLockWriteNs` ([UInt64](/core/reference/data-types/int-uint)) — Number of nanoseconds spend in waiting for write lock to update the data for the dictionaries of 'cache' types. +- `ProfileEvent_DictCacheLockReadNs` ([UInt64](/core/reference/data-types/int-uint)) — Number of nanoseconds spend in waiting for read lock to lookup the data for the dictionaries of 'cache' types. +- `ProfileEvent_DistributedSyncInsertionTimeoutExceeded` ([UInt64](/core/reference/data-types/int-uint)) — A timeout has exceeded while waiting for shards during synchronous insertion into a Distributed table (with 'distributed_foreground_insert' = 1) +- `ProfileEvent_DistributedAsyncInsertionFailures` ([UInt64](/core/reference/data-types/int-uint)) — Number of failures for asynchronous insertion into a Distributed table (with 'distributed_foreground_insert' = 0) +- `ProfileEvent_DataAfterMergeDiffersFromReplica` ([UInt64](/core/reference/data-types/int-uint)) — Number of times data after merge is not byte-identical to the data on another replicas. There could be several reasons: + 1. Using newer version of compression library after server update. + 2. Using another compression method. + 3. Non-deterministic compression algorithm (highly unlikely). + 4. Non-deterministic merge algorithm due to logical error in code. + 5. Data corruption in memory due to bug in code. + 6. Data corruption in memory due to hardware issue. + 7. Manual modification of source data after server startup. + 8. Manual modification of checksums stored in ZooKeeper. + 9. Part format related settings like 'enable_mixed_granularity_parts' are different on different replicas. + The server successfully detected this situation and will download merged part from the replica to force the byte-identical result. +- `ProfileEvent_DataAfterMutationDiffersFromReplica` ([UInt64](/core/reference/data-types/int-uint)) — Number of times data after mutation is not byte-identical to the data on other replicas. In addition to the reasons described in 'DataAfterMergeDiffersFromReplica', it is also possible due to non-deterministic mutation. +- `ProfileEvent_PolygonsAddedToPool` ([UInt64](/core/reference/data-types/int-uint)) — A polygon has been added to the cache (pool) for the 'pointInPolygon' function. +- `ProfileEvent_PolygonsInPoolAllocatedBytes` ([UInt64](/core/reference/data-types/int-uint)) — The number of bytes for polygons added to the cache (pool) for the 'pointInPolygon' function. +- `ProfileEvent_NaiveBayesClassifierModelsLoaded` ([UInt64](/core/reference/data-types/int-uint)) — Number of Naive Bayes Classifier models loaded. +- `ProfileEvent_NaiveBayesClassifierModelsAllocatedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes allocated for Naive Bayes Classifier models. +- `ProfileEvent_USearchAddCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of vectors added to usearch indexes. +- `ProfileEvent_USearchAddVisitedMembers` ([UInt64](/core/reference/data-types/int-uint)) — Number of nodes visited when adding vectors to usearch indexes. +- `ProfileEvent_USearchAddComputedDistances` ([UInt64](/core/reference/data-types/int-uint)) — Number of times distance was computed when adding vectors to usearch indexes. +- `ProfileEvent_USearchSearchCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of search operations performed in usearch indexes. +- `ProfileEvent_USearchSearchVisitedMembers` ([UInt64](/core/reference/data-types/int-uint)) — Number of nodes visited when searching in usearch indexes. +- `ProfileEvent_USearchSearchComputedDistances` ([UInt64](/core/reference/data-types/int-uint)) — Number of times distance was computed when searching usearch indexes. +- `ProfileEvent_RWLockAcquiredReadLocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read lock was acquired (in a heavy RWLock). +- `ProfileEvent_RWLockAcquiredWriteLocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a write lock was acquired (in a heavy RWLock). +- `ProfileEvent_RWLockReadersWaitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for a read lock to be acquired (in a heavy RWLock). +- `ProfileEvent_RWLockWritersWaitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for a write lock to be acquired (in a heavy RWLock). +- `ProfileEvent_DNSError` ([UInt64](/core/reference/data-types/int-uint)) — Total count of errors in DNS resolution +- `ProfileEvent_PartsLockHoldMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent holding data parts lock in MergeTree tables +- `ProfileEvent_PartsLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for data parts lock in MergeTree tables +- `ProfileEvent_PartsLocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times data parts lock has been acquired for MergeTree tables +- `ProfileEvent_SharedPartsLockHoldMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent holding shared data parts lock in MergeTree tables +- `ProfileEvent_SharedPartsLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for shared data parts lock in MergeTree tables +- `ProfileEvent_SharedPartsLocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times shared data parts lock has been acquired for MergeTree tables +- `ProfileEvent_RealTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total (wall clock) time spent in processing (queries and other tasks) threads (note that this is a sum). +- `ProfileEvent_UserTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent in processing (queries and other tasks) threads executing CPU instructions in user mode. This includes time CPU pipeline was stalled due to main memory access, cache misses, branch mispredictions, hyper-threading, etc. +- `ProfileEvent_SystemTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent in processing (queries and other tasks) threads executing CPU instructions in OS kernel mode. This is time spent in syscalls, excluding waiting time during blocking syscalls. +- `ProfileEvent_MemoryOvercommitWaitTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent in waiting for memory to be freed in OvercommitTracker. +- `ProfileEvent_MemoryAllocatorPurge` ([UInt64](/core/reference/data-types/int-uint)) — Total number of times memory allocator purge was requested +- `ProfileEvent_MemoryAllocatorPurgeTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for memory allocator purge +- `ProfileEvent_SoftPageFaults` ([UInt64](/core/reference/data-types/int-uint)) — The number of soft page faults in query execution threads. Soft page fault usually means a miss in the memory allocator cache, which requires a new memory mapping from the OS and subsequent allocation of a page of physical memory. +- `ProfileEvent_HardPageFaults` ([UInt64](/core/reference/data-types/int-uint)) — The number of hard page faults in query execution threads. High values indicate either that you forgot to turn off swap on your server, or eviction of memory pages of the ClickHouse binary during very high memory pressure, or successful usage of the 'mmap' read method for the tables data. +- `ProfileEvent_OSIOWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a thread spent waiting for a result of IO operation, from the OS point of view. This is real IO that doesn't include page cache. +- `ProfileEvent_OSCPUWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a thread was ready for execution but waiting to be scheduled by OS, from the OS point of view. +- `ProfileEvent_OSCPUVirtualTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — CPU time spent seen by OS. Does not include involuntary waits due to virtualization. +- `ProfileEvent_OSReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read from disks or block devices. Doesn't include bytes read from page cache. May include excessive data due to block size, readahead, etc. +- `ProfileEvent_OSWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to disks or block devices. Doesn't include bytes that are in page cache dirty pages. May not include data that was written by OS asynchronously. +- `ProfileEvent_OSReadChars` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read from filesystem, including page cache, as well as network and other files. +- `ProfileEvent_OSWriteChars` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to filesystem, including page cache, as well as network and other files. +- `ProfileEvent_ParallelReplicasHandleRequestMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent processing requests for marks from replicas +- `ProfileEvent_ParallelReplicasHandleAnnouncementMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent processing replicas announcements +- `ProfileEvent_ParallelReplicasAnnouncementMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to send an announcement +- `ProfileEvent_ParallelReplicasReadRequestMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent for read requests +- `ProfileEvent_ParallelReplicasReadAssignedMarks` ([UInt64](/core/reference/data-types/int-uint)) — Sum across all replicas of how many of scheduled marks were assigned by consistent hash +- `ProfileEvent_ParallelReplicasReadUnassignedMarks` ([UInt64](/core/reference/data-types/int-uint)) — Sum across all replicas of how many unassigned marks were scheduled +- `ProfileEvent_ParallelReplicasReadAssignedForStealingMarks` ([UInt64](/core/reference/data-types/int-uint)) — Sum across all replicas of how many of scheduled marks were assigned for stealing by consistent hash +- `ProfileEvent_ParallelReplicasReadMarks` ([UInt64](/core/reference/data-types/int-uint)) — How many marks were read by the given replica +- `ProfileEvent_ParallelReplicasStealingByHashMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent collecting segments meant for stealing by hash +- `ProfileEvent_ParallelReplicasProcessingPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent processing data parts +- `ProfileEvent_ParallelReplicasStealingLeftoversMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent collecting orphaned segments +- `ProfileEvent_ParallelReplicasCollectingOwnedSegmentsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent collecting segments meant by hash +- `ProfileEvent_ParallelReplicasNumRequests` ([UInt64](/core/reference/data-types/int-uint)) — Number of requests to the initiator. +- `ProfileEvent_ParallelReplicasDeniedRequests` ([UInt64](/core/reference/data-types/int-uint)) — Number of completely denied requests to the initiator +- `ProfileEvent_CacheWarmerBytesDownloaded` ([UInt64](/core/reference/data-types/int-uint)) — Amount of data fetched into filesystem cache by dedicated background threads. +- `ProfileEvent_CacheWarmerDataPartsDownloaded` ([UInt64](/core/reference/data-types/int-uint)) — Number of data parts that were fully fetched by CacheWarmer. +- `ProfileEvent_IgnoredColdParts` ([UInt64](/core/reference/data-types/int-uint)) — See setting ignore_cold_parts_seconds. Number of times read queries ignored very new parts that weren't pulled into cache by CacheWarmer yet. +- `ProfileEvent_PreferredWarmedUnmergedParts` ([UInt64](/core/reference/data-types/int-uint)) — See setting prefer_warmed_unmerged_parts_seconds. Number of times read queries used outdated pre-merge parts that are in cache instead of merged part that wasn't pulled into cache by CacheWarmer yet. +- `ProfileEvent_PerfCPUCycles` ([UInt64](/core/reference/data-types/int-uint)) — Total cycles. Be wary of what happens during CPU frequency scaling. +- `ProfileEvent_PerfInstructions` ([UInt64](/core/reference/data-types/int-uint)) — Retired instructions. Be careful, these can be affected by various issues, most notably hardware interrupt counts. +- `ProfileEvent_PerfCacheReferences` ([UInt64](/core/reference/data-types/int-uint)) — Cache accesses. Usually, this indicates Last Level Cache accesses, but this may vary depending on your CPU. This may include prefetches and coherency messages; again this depends on the design of your CPU. +- `ProfileEvent_PerfCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Cache misses. Usually this indicates Last Level Cache misses; this is intended to be used in conjunction with the PERFCOUNTHWCACHEREFERENCES event to calculate cache miss rates. +- `ProfileEvent_PerfBranchInstructions` ([UInt64](/core/reference/data-types/int-uint)) — Retired branch instructions. Prior to Linux 2.6.35, this used the wrong event on AMD processors. +- `ProfileEvent_PerfBranchMisses` ([UInt64](/core/reference/data-types/int-uint)) — Mispredicted branch instructions. +- `ProfileEvent_PerfBusCycles` ([UInt64](/core/reference/data-types/int-uint)) — Bus cycles, which can be different from total cycles. +- `ProfileEvent_PerfStalledCyclesFrontend` ([UInt64](/core/reference/data-types/int-uint)) — Stalled cycles during issue. +- `ProfileEvent_PerfStalledCyclesBackend` ([UInt64](/core/reference/data-types/int-uint)) — Stalled cycles during retirement. +- `ProfileEvent_PerfRefCPUCycles` ([UInt64](/core/reference/data-types/int-uint)) — Total cycles; not affected by CPU frequency scaling. +- `ProfileEvent_PerfCPUClock` ([UInt64](/core/reference/data-types/int-uint)) — The CPU clock, a high-resolution per-CPU timer +- `ProfileEvent_PerfTaskClock` ([UInt64](/core/reference/data-types/int-uint)) — A clock count specific to the task that is running +- `ProfileEvent_PerfContextSwitches` ([UInt64](/core/reference/data-types/int-uint)) — Number of context switches +- `ProfileEvent_PerfCPUMigrations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the process has migrated to a new CPU +- `ProfileEvent_PerfAlignmentFaults` ([UInt64](/core/reference/data-types/int-uint)) — Number of alignment faults. These happen when unaligned memory accesses happen; the kernel can handle these but it reduces performance. This happens only on some architectures (never on x86). +- `ProfileEvent_PerfEmulationFaults` ([UInt64](/core/reference/data-types/int-uint)) — Number of emulation faults. The kernel sometimes traps on unimplemented instructions and emulates them for user space. This can negatively impact performance. +- `ProfileEvent_PerfMinEnabledTime` ([UInt64](/core/reference/data-types/int-uint)) — For all events, minimum time that an event was enabled. Used to track event multiplexing influence +- `ProfileEvent_PerfMinEnabledRunningTime` ([UInt64](/core/reference/data-types/int-uint)) — Running time for event with minimum enabled time. Used to track the amount of event multiplexing +- `ProfileEvent_PerfDataTLBReferences` ([UInt64](/core/reference/data-types/int-uint)) — Data TLB references +- `ProfileEvent_PerfDataTLBMisses` ([UInt64](/core/reference/data-types/int-uint)) — Data TLB misses +- `ProfileEvent_PerfInstructionTLBReferences` ([UInt64](/core/reference/data-types/int-uint)) — Instruction TLB references +- `ProfileEvent_PerfInstructionTLBMisses` ([UInt64](/core/reference/data-types/int-uint)) — Instruction TLB misses +- `ProfileEvent_PerfLocalMemoryReferences` ([UInt64](/core/reference/data-types/int-uint)) — Local NUMA node memory reads +- `ProfileEvent_PerfLocalMemoryMisses` ([UInt64](/core/reference/data-types/int-uint)) — Local NUMA node memory read misses +- `ProfileEvent_CannotWriteToWriteBufferDiscard` ([UInt64](/core/reference/data-types/int-uint)) — Number of stack traces dropped by query profiler or signal handler because pipe is full or cannot write to pipe. +- `ProfileEvent_QueryProfilerSignalOverruns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we drop processing of a query profiler signal due to overrun plus the number of signals that OS has not delivered due to overrun. +- `ProfileEvent_QueryProfilerConcurrencyOverruns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we drop processing of a query profiler signal due to too many concurrent query profilers in other threads, which may indicate overload. +- `ProfileEvent_QueryProfilerRuns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times QueryProfiler had been run. +- `ProfileEvent_QueryProfilerErrors` ([UInt64](/core/reference/data-types/int-uint)) — Invalid memory accesses during asynchronous stack unwinding. +- `ProfileEvent_CreatedLogEntryForMerge` ([UInt64](/core/reference/data-types/int-uint)) — Successfully created log entry to merge parts in ReplicatedMergeTree. +- `ProfileEvent_NotCreatedLogEntryForMerge` ([UInt64](/core/reference/data-types/int-uint)) — Log entry to merge parts in ReplicatedMergeTree is not created due to concurrent log update by another replica. +- `ProfileEvent_CreatedLogEntryForMutation` ([UInt64](/core/reference/data-types/int-uint)) — Successfully created log entry to mutate parts in ReplicatedMergeTree. +- `ProfileEvent_NotCreatedLogEntryForMutation` ([UInt64](/core/reference/data-types/int-uint)) — Log entry to mutate parts in ReplicatedMergeTree is not created due to concurrent log update by another replica. +- `ProfileEvent_S3ReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of GET and HEAD requests to S3 storage. +- `ProfileEvent_S3ReadRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of GET and HEAD requests to S3 storage. +- `ProfileEvent_S3ReadRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of non-throttling errors in GET and HEAD requests to S3 storage. +- `ProfileEvent_S3ReadRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of 429 and 503 errors in GET and HEAD requests to S3 storage. +- `ProfileEvent_S3ReadRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of redirects in GET and HEAD requests to S3 storage. +- `ProfileEvent_S3ReadRequestAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Number of attempts for GET and HEAD requests, including the initial try and any retries, but excluding retries performed internally by the S3 retry strategy +- `ProfileEvent_S3ReadRequestRetryableErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of retryable errors for GET and HEAD requests, excluding retries performed internally by the S3 retry strategy +- `ProfileEvent_S3WriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of POST, DELETE, PUT and PATCH requests to S3 storage. +- `ProfileEvent_S3WriteRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of POST, DELETE, PUT and PATCH requests to S3 storage. +- `ProfileEvent_S3WriteRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of non-throttling errors in POST, DELETE, PUT and PATCH requests to S3 storage. +- `ProfileEvent_S3WriteRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of 429 and 503 errors in POST, DELETE, PUT and PATCH requests to S3 storage. +- `ProfileEvent_S3WriteRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of redirects in POST, DELETE, PUT and PATCH requests to S3 storage. +- `ProfileEvent_S3WriteRequestAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Number of attempts for POST, DELETE, PUT and PATCH requests, including the initial try and any retries, but excluding retries performed internally by the retry strategy +- `ProfileEvent_S3WriteRequestRetryableErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of retryable errors for POST, DELETE, PUT and PATCH requests, excluding retries performed internally by the retry strategy +- `ProfileEvent_DiskS3ReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of GET and HEAD requests to DiskS3 storage. +- `ProfileEvent_DiskS3ReadRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of GET and HEAD requests to DiskS3 storage. +- `ProfileEvent_DiskS3ReadRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of non-throttling errors in GET and HEAD requests to DiskS3 storage. +- `ProfileEvent_DiskS3ReadRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of 429 and 503 errors in GET and HEAD requests to DiskS3 storage. +- `ProfileEvent_DiskS3ReadRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of redirects in GET and HEAD requests to DiskS3 storage. +- `ProfileEvent_DiskS3ReadRequestAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Number of attempts for GET and HEAD requests to DiskS3 storage, including the initial try and any retries, but excluding retries performed internally by the S3 retry strategy +- `ProfileEvent_DiskS3ReadRequestRetryableErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of retryable errors for GET and HEAD requests to DiskS3 storage, excluding retries performed internally by the S3 retry strategy +- `ProfileEvent_DiskS3WriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of POST, DELETE, PUT and PATCH requests to DiskS3 storage. +- `ProfileEvent_DiskS3WriteRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of POST, DELETE, PUT and PATCH requests to DiskS3 storage. +- `ProfileEvent_DiskS3WriteRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of non-throttling errors in POST, DELETE, PUT and PATCH requests to DiskS3 storage. +- `ProfileEvent_DiskS3WriteRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of 429 and 503 errors in POST, DELETE, PUT and PATCH requests to DiskS3 storage. +- `ProfileEvent_DiskS3WriteRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of redirects in POST, DELETE, PUT and PATCH requests to DiskS3 storage. +- `ProfileEvent_DiskS3WriteRequestAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Number of attempts for POST, DELETE, PUT and PATCH requests to DiskS3 storage, including the initial try and any retries, but excluding retries performed internally by the retry strategy +- `ProfileEvent_DiskS3WriteRequestRetryableErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of retryable errors for POST, DELETE, PUT and PATCH requests to DiskS3 storage, excluding retries performed internally by the retry strategy +- `ProfileEvent_S3DeleteObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API DeleteObject(s) calls. +- `ProfileEvent_S3CopyObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API CopyObject calls. +- `ProfileEvent_S3ListObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API ListObjects calls. +- `ProfileEvent_S3HeadObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API HeadObject calls. +- `ProfileEvent_S3GetObjectTagging` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API GetObjectTagging calls. +- `ProfileEvent_S3CreateMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API CreateMultipartUpload calls. +- `ProfileEvent_S3UploadPartCopy` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API UploadPartCopy calls. +- `ProfileEvent_S3UploadPart` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API UploadPart calls. +- `ProfileEvent_S3AbortMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API AbortMultipartUpload calls. +- `ProfileEvent_S3CompleteMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API CompleteMultipartUpload calls. +- `ProfileEvent_S3PutObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API PutObject calls. +- `ProfileEvent_S3GetObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API GetObject calls. +- `ProfileEvent_DiskS3DeleteObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API DeleteObject(s) calls. +- `ProfileEvent_DiskS3CopyObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API CopyObject calls. +- `ProfileEvent_DiskS3ListObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API ListObjects calls. +- `ProfileEvent_DiskS3HeadObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API HeadObject calls. +- `ProfileEvent_DiskS3GetObjectTagging` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API GetObjectTagging calls. +- `ProfileEvent_DiskS3CreateMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API CreateMultipartUpload calls. +- `ProfileEvent_DiskS3UploadPartCopy` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API UploadPartCopy calls. +- `ProfileEvent_DiskS3UploadPart` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API UploadPart calls. +- `ProfileEvent_DiskS3AbortMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API AbortMultipartUpload calls. +- `ProfileEvent_DiskS3CompleteMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API CompleteMultipartUpload calls. +- `ProfileEvent_DiskS3PutObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API PutObject calls. +- `ProfileEvent_DiskS3GetObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API GetObject calls. +- `ProfileEvent_DiskPlainRewritableAzureDirectoryCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for AzureObjectStorage. +- `ProfileEvent_DiskPlainRewritableAzureDirectoryRemoved` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for AzureObjectStorage. +- `ProfileEvent_DiskPlainRewritableLocalDirectoryCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for LocalObjectStorage. +- `ProfileEvent_DiskPlainRewritableLocalDirectoryRemoved` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for LocalObjectStorage. +- `ProfileEvent_DiskPlainRewritableS3DirectoryCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for S3ObjectStorage. +- `ProfileEvent_DiskPlainRewritableS3DirectoryRemoved` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for S3ObjectStorage. +- `ProfileEvent_DiskPlainRewritableLegacyLayoutDiskCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of the 'plain_rewritable' disks with legacy layout. +- `ProfileEvent_S3Clients` ([UInt64](/core/reference/data-types/int-uint)) — Number of created S3 clients. +- `ProfileEvent_TinyS3Clients` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 clients copies which reuse an existing auth provider from another client. +- `ProfileEvent_EngineFileLikeReadFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of files read in table engines working with files (like File/S3/URL/HDFS). +- `ProfileEvent_ReadBufferFromS3Microseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent on reading from S3. +- `ProfileEvent_ReadBufferFromS3InitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent initializing connection to S3. +- `ProfileEvent_ReadBufferFromS3Bytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from S3. +- `ProfileEvent_ReadBufferFromS3RequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while reading from S3. +- `ProfileEvent_WriteBufferFromS3Microseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent on writing to S3. +- `ProfileEvent_WriteBufferFromS3Bytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes written to S3. +- `ProfileEvent_WriteBufferFromS3RequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while writing to S3. +- `ProfileEvent_WriteBufferFromS3WaitInflightLimitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent on waiting while some of the current requests are done when its number reached the limit defined by s3_max_inflight_parts_for_one_file. +- `ProfileEvent_QueryMemoryLimitExceeded` ([UInt64](/core/reference/data-types/int-uint)) — Number of times when memory limit exceeded for query. +- `ProfileEvent_MemoryAllocatedWithoutCheck` ([UInt64](/core/reference/data-types/int-uint)) — Number of times memory has been allocated without checking for memory constraints. +- `ProfileEvent_MemoryAllocatedWithoutCheckBytes` ([UInt64](/core/reference/data-types/int-uint)) — Amount of bytes that has been allocated without checking for memory constraints. +- `ProfileEvent_AzureGetObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure API GetObject calls. +- `ProfileEvent_AzureUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API Upload calls +- `ProfileEvent_AzureStageBlock` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API StageBlock calls +- `ProfileEvent_AzureCommitBlockList` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API CommitBlockList calls +- `ProfileEvent_AzureCopyObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API CopyObject calls +- `ProfileEvent_AzureDeleteObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API DeleteObject(s) calls. +- `ProfileEvent_AzureListObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API ListObjects calls. +- `ProfileEvent_AzureGetProperties` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API GetProperties calls. +- `ProfileEvent_AzureCreateContainer` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API CreateContainer calls. +- `ProfileEvent_DiskAzureGetObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure API GetObject calls. +- `ProfileEvent_DiskAzureUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API Upload calls +- `ProfileEvent_DiskAzureStageBlock` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API StageBlock calls +- `ProfileEvent_DiskAzureCommitBlockList` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CommitBlockList calls +- `ProfileEvent_DiskAzureCopyObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CopyObject calls +- `ProfileEvent_DiskAzureListObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API ListObjects calls. +- `ProfileEvent_DiskAzureDeleteObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API DeleteObject(s) calls. +- `ProfileEvent_DiskAzureGetProperties` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API GetProperties calls. +- `ProfileEvent_DiskAzureCreateContainer` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CreateContainer calls. +- `ProfileEvent_ReadBufferFromAzureMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent on reading from Azure. +- `ProfileEvent_ReadBufferFromAzureInitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent initializing connection to Azure. +- `ProfileEvent_ReadBufferFromAzureBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from Azure. +- `ProfileEvent_ReadBufferFromAzureRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while reading from Azure +- `ProfileEvent_CachedReadBufferReadFromCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the read from filesystem cache hit the cache. +- `ProfileEvent_CachedReadBufferReadFromCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the read from filesystem cache miss the cache. +- `ProfileEvent_CachedReadBufferReadFromSourceMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time reading from filesystem cache source (from remote filesystem, etc) +- `ProfileEvent_CachedReadBufferWaitReadBufferMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spend waiting for internal read buffer (includes cache waiting) +- `ProfileEvent_CachedReadBufferPredownloadedFromSourceMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time reading from filesystem cache source for predownload (from remote filesystem, etc) +- `ProfileEvent_CachedReadBufferReadFromCacheMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time reading from filesystem cache +- `ProfileEvent_CachedReadBufferReadFromSourceBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from filesystem cache source (from remote fs, etc) +- `ProfileEvent_CachedReadBufferPredownloadedFromSourceBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from filesystem cache source for predownload (from remote fs, etc) +- `ProfileEvent_CachedReadBufferReadFromCacheBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from filesystem cache +- `ProfileEvent_CachedReadBufferPredownloadedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from filesystem cache source. Cache segments are read from left to right as a whole, it might be that we need to predownload some part of the segment irrelevant for the current task just to get to the needed data +- `ProfileEvent_CachedReadBufferCacheWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes written from source (remote fs, etc) to filesystem cache +- `ProfileEvent_CachedReadBufferCacheWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent writing data into filesystem cache +- `ProfileEvent_CachedReadBufferCreateBufferMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Prepare buffer time +- `ProfileEvent_CachedWriteBufferCacheWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes written from source (remote fs, etc) to filesystem cache +- `ProfileEvent_CachedWriteBufferCacheWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent writing data into filesystem cache +- `ProfileEvent_FilesystemCacheLoadMetadataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent loading filesystem cache metadata +- `ProfileEvent_FilesystemCacheEvictedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes evicted from filesystem cache +- `ProfileEvent_FilesystemCacheCreatedKeyDirectories` ([UInt64](/core/reference/data-types/int-uint)) — Number of created key directories +- `ProfileEvent_FilesystemCacheEvictedFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments evicted from filesystem cache +- `ProfileEvent_FilesystemCacheEvictedFileSegmentsDuringPriorityIncrease` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments evicted from filesystem cache when increasing priority of file segments (Applies to SLRU cache policy) +- `ProfileEvent_FilesystemCacheBackgroundDownloadQueuePush` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments sent for background download in filesystem cache +- `ProfileEvent_FilesystemCacheEvictionSkippedFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in unreleasable state +- `ProfileEvent_FilesystemCacheEvictionSkippedEvictingFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in evicting state +- `ProfileEvent_FilesystemCacheEvictionSkippedMovingFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in moving state +- `ProfileEvent_FilesystemCacheEvictionTries` ([UInt64](/core/reference/data-types/int-uint)) — Number of filesystem cache eviction attempts +- `ProfileEvent_FilesystemCacheEvictionReusedIterator` ([UInt64](/core/reference/data-types/int-uint)) — Number of filesystem cache iterator reusing +- `ProfileEvent_FilesystemCacheLockKeyMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock cache key time +- `ProfileEvent_FilesystemCacheLockMetadataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock filesystem cache metadata time +- `ProfileEvent_FilesystemCachePriorityWriteLockMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock filesystem cache time for write to priority queue +- `ProfileEvent_FilesystemCachePriorityReadLockMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock filesystem cache time for read in priority queue +- `ProfileEvent_FilesystemCacheStateLockMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock filesystem cache time for state lock +- `ProfileEvent_FilesystemCacheReserveMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache space reservation time +- `ProfileEvent_FilesystemCacheReserveAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache space reservation attempt +- `ProfileEvent_FilesystemCacheEvictMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache eviction time +- `ProfileEvent_FilesystemCacheGetOrSetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache getOrSet() time +- `ProfileEvent_FilesystemCacheGetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache get() time +- `ProfileEvent_FilesystemCacheBackgroundEvictedFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments evicted by background thread +- `ProfileEvent_FilesystemCacheBackgroundEvictedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes evicted by background thread +- `ProfileEvent_FilesystemCacheCheckCorrectness` ([UInt64](/core/reference/data-types/int-uint)) — Number of times FileCache::assertCacheCorrectness was called +- `ProfileEvent_FilesystemCacheCheckCorrectnessMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How much time does FileCache::assertCacheCorrectness takes +- `ProfileEvent_FileSegmentWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Wait on DOWNLOADING state +- `ProfileEvent_FileSegmentCompleteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Duration of FileSegment::complete() in filesystem cache +- `ProfileEvent_FileSegmentLockMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock file segment time +- `ProfileEvent_FileSegmentWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — File segment write() time +- `ProfileEvent_FileSegmentIncreasePriorityMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — File segment increase priority time +- `ProfileEvent_FileSegmentRemoveMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — File segment remove() time +- `ProfileEvent_FileSegmentHolderCompleteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — File segments holder complete() time +- `ProfileEvent_FileSegmentFailToIncreasePriority` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the priority was not increased due to a high contention on the cache lock +- `ProfileEvent_FilesystemCacheFailToReserveSpaceBecauseOfLockContention` ([UInt64](/core/reference/data-types/int-uint)) — Number of times space reservation was skipped due to a high contention on the cache lock +- `ProfileEvent_FilesystemCacheFailToReserveSpaceBecauseOfCacheResize` ([UInt64](/core/reference/data-types/int-uint)) — Number of times space reservation was skipped due to the cache is being resized +- `ProfileEvent_FilesystemCacheHoldFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache file segments count, which were hold +- `ProfileEvent_FilesystemCacheUnusedHoldFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache file segments count, which were hold, but not used (because of seek or LIMIT n, etc) +- `ProfileEvent_FilesystemCacheFreeSpaceKeepingThreadRun` ([UInt64](/core/reference/data-types/int-uint)) — Number of times background thread executed free space keeping job +- `ProfileEvent_FilesystemCacheFreeSpaceKeepingThreadWorkMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time for which background thread executed free space keeping job +- `ProfileEvent_FilesystemCacheFailedEvictionCandidates` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments which unexpectedly failed to be evicted during dynamic filesystem cache eviction +- `ProfileEvent_RemoteFSSeeks` ([UInt64](/core/reference/data-types/int-uint)) — Total number of seeks for async buffer +- `ProfileEvent_RemoteFSPrefetches` ([UInt64](/core/reference/data-types/int-uint)) — Number of prefetches made with asynchronous reading from remote filesystem +- `ProfileEvent_RemoteFSCancelledPrefetches` ([UInt64](/core/reference/data-types/int-uint)) — Number of cancelled prefecthes (because of seek) +- `ProfileEvent_RemoteFSUnusedPrefetches` ([UInt64](/core/reference/data-types/int-uint)) — Number of prefetches pending at buffer destruction +- `ProfileEvent_RemoteFSPrefetchedReads` ([UInt64](/core/reference/data-types/int-uint)) — Number of reads from prefecthed buffer +- `ProfileEvent_RemoteFSPrefetchedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes from prefecthed buffer +- `ProfileEvent_RemoteFSUnprefetchedReads` ([UInt64](/core/reference/data-types/int-uint)) — Number of reads from unprefetched buffer +- `ProfileEvent_RemoteFSUnprefetchedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes from unprefetched buffer +- `ProfileEvent_RemoteFSLazySeeks` ([UInt64](/core/reference/data-types/int-uint)) — Number of lazy seeks +- `ProfileEvent_RemoteFSSeeksWithReset` ([UInt64](/core/reference/data-types/int-uint)) — Number of seeks which lead to a new connection +- `ProfileEvent_RemoteFSBuffers` ([UInt64](/core/reference/data-types/int-uint)) — Number of buffers created for asynchronous reading from remote filesystem +- `ProfileEvent_MergeTreePrefetchedReadPoolInit` ([UInt64](/core/reference/data-types/int-uint)) — Time spent preparing tasks in MergeTreePrefetchedReadPool +- `ProfileEvent_WaitPrefetchTaskMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spend waiting for prefetched reader +- `ProfileEvent_ThreadpoolReaderTaskMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent getting the data in asynchronous reading +- `ProfileEvent_ThreadpoolReaderPrepareMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent on preparation (e.g. call to reader seek() method) +- `ProfileEvent_ThreadpoolReaderReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from a threadpool task in asynchronous reading +- `ProfileEvent_ThreadpoolReaderSubmit` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from a threadpool task in asynchronous reading +- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronously` ([UInt64](/core/reference/data-types/int-uint)) — How many times we haven't scheduled a task on the thread pool and read synchronously instead +- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronouslyBytes` ([UInt64](/core/reference/data-types/int-uint)) — How many bytes were read synchronously +- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronouslyMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How much time we spent reading synchronously +- `ProfileEvent_ThreadpoolReaderSubmitLookupInCacheMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How much time we spent checking if content is cached +- `ProfileEvent_AsynchronousReaderIgnoredBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes ignored during asynchronous reading +- `ProfileEvent_ReadBufferSeekCancelConnection` ([UInt64](/core/reference/data-types/int-uint)) — Number of seeks which lead to new connection (s3, http) +- `ProfileEvent_SleepFunctionCalls` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a sleep function (sleep, sleepEachRow) has been called. +- `ProfileEvent_SleepFunctionMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time set to sleep in a sleep function (sleep, sleepEachRow). +- `ProfileEvent_SleepFunctionElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent sleeping in a sleep function (sleep, sleepEachRow). +- `ProfileEvent_ThreadPoolReaderPageCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the read inside ThreadPoolReader was done from the page cache. +- `ProfileEvent_ThreadPoolReaderPageCacheHitBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read inside ThreadPoolReader when it was done from the page cache. +- `ProfileEvent_ThreadPoolReaderPageCacheHitElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent reading data from page cache in ThreadPoolReader. +- `ProfileEvent_ThreadPoolReaderPageCacheMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the read inside ThreadPoolReader was not done from page cache and was hand off to thread pool. +- `ProfileEvent_ThreadPoolReaderPageCacheMissBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read inside ThreadPoolReader when read was not done from page cache and was hand off to thread pool. +- `ProfileEvent_ThreadPoolReaderPageCacheMissElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent reading data inside the asynchronous job in ThreadPoolReader - when read was not done from the page cache. +- `ProfileEvent_AsynchronousReadWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in waiting for asynchronous reads in asynchronous local read. +- `ProfileEvent_SynchronousReadWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in waiting for synchronous reads in asynchronous local read. +- `ProfileEvent_AsynchronousRemoteReadWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in waiting for asynchronous remote reads. +- `ProfileEvent_SynchronousRemoteReadWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in waiting for synchronous remote reads. +- `ProfileEvent_ExternalDataSourceLocalCacheReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from local cache buffer in RemoteReadBufferCache +- `ProfileEvent_MainConfigLoads` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the main configuration was reloaded. +- `ProfileEvent_AggregationPreallocatedElementsInHashTables` ([UInt64](/core/reference/data-types/int-uint)) — How many elements were preallocated in hash tables for aggregation. +- `ProfileEvent_AggregationHashTablesInitializedAsTwoLevel` ([UInt64](/core/reference/data-types/int-uint)) — How many hash tables were inited as two-level for aggregation. +- `ProfileEvent_AggregationOptimizedEqualRangesOfKeys` ([UInt64](/core/reference/data-types/int-uint)) — For how many blocks optimization of equal ranges of keys was applied +- `ProfileEvent_HashJoinPreallocatedElementsInHashTables` ([UInt64](/core/reference/data-types/int-uint)) — How many elements were preallocated in hash tables for hash join. +- `ProfileEvent_MetadataFromKeeperCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an object storage metadata request was answered from cache without making request to Keeper +- `ProfileEvent_MetadataFromKeeperCacheMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an object storage metadata request had to be answered from Keeper +- `ProfileEvent_MetadataFromKeeperCacheTooManyInvalidated` ([UInt64](/core/reference/data-types/int-uint)) — Number of times filesystem cache returned too many invalidated entries +- `ProfileEvent_MetadataFromKeeperCacheUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent in updating the cache including waiting for responses from Keeper +- `ProfileEvent_MetadataFromKeeperUpdateCacheOneLevel` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a cache update for one level of directory tree was done +- `ProfileEvent_MetadataFromKeeperTransactionCommit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times metadata transaction commit was attempted +- `ProfileEvent_MetadataFromKeeperTransactionCommitRetry` ([UInt64](/core/reference/data-types/int-uint)) — Number of times metadata transaction commit was retried +- `ProfileEvent_MetadataFromKeeperCleanupTransactionCommit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times metadata transaction commit for deleted objects cleanup was attempted +- `ProfileEvent_MetadataFromKeeperCleanupTransactionCommitRetry` ([UInt64](/core/reference/data-types/int-uint)) — Number of times metadata transaction commit for deleted objects cleanup was retried +- `ProfileEvent_MetadataFromKeeperOperations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a request was made to Keeper +- `ProfileEvent_MetadataFromKeeperIndividualOperations` ([UInt64](/core/reference/data-types/int-uint)) — Number of paths read or written by single or multi requests to Keeper +- `ProfileEvent_MetadataFromKeeperIndividualOperationsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spend during single or multi requests to Keeper +- `ProfileEvent_MetadataFromKeeperReconnects` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a reconnect to Keeper was done +- `ProfileEvent_MetadataFromKeeperBackgroundCleanupObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a old deleted object clean up was performed by background task +- `ProfileEvent_MetadataFromKeeperBackgroundCleanupTransactions` ([UInt64](/core/reference/data-types/int-uint)) — Number of times old transaction idempotency token was cleaned up by background task +- `ProfileEvent_MetadataFromKeeperBackgroundCleanupBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an empty blob layout part was cleaned up by background task +- `ProfileEvent_MetadataFromKeeperBackgroundCleanupErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an error was encountered in background cleanup task +- `ProfileEvent_BlobKillerThreadRuns` ([UInt64](/core/reference/data-types/int-uint)) — Number of BlobKiller thread executes +- `ProfileEvent_BlobKillerThreadLockedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs returned from metadata storage +- `ProfileEvent_BlobKillerThreadRemoveTasks` ([UInt64](/core/reference/data-types/int-uint)) — Number of remove tasks created by BlobKiller +- `ProfileEvent_BlobKillerThreadRemovedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs removed by BlobKiller +- `ProfileEvent_BlobKillerThreadRecordedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs which removal by BlobKiller was recorded in metadata storage +- `ProfileEvent_BlobKillerThreadLockBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs lock errors occurred during BlobKiller execution +- `ProfileEvent_BlobKillerThreadRemoveBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs removal errors occurred during BlobKiller execution +- `ProfileEvent_BlobKillerThreadRecordBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs recording errors occurred during BlobKiller execution +- `ProfileEvent_BlobCopierThreadRuns` ([UInt64](/core/reference/data-types/int-uint)) — Number of BlobCopier thread executes +- `ProfileEvent_BlobCopierThreadLockedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs returned from metadata storage +- `ProfileEvent_BlobCopierThreadReplicatedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs replicated by BlobCopier +- `ProfileEvent_BlobCopierThreadRecordedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs which replication by BlobCopier was recorded in metadata storage +- `ProfileEvent_BlobCopierThreadLockBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs lock errors occurred during BlobCopier execution +- `ProfileEvent_BlobCopierThreadReplicateBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs replication errors occurred during BlobCopier execution +- `ProfileEvent_BlobCopierThreadRecordBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs recording errors occurred during BlobCopier execution +- `ProfileEvent_SharedMergeTreeMetadataCacheHintLoadedFromCache` ([UInt64](/core/reference/data-types/int-uint)) — Number of times metadata cache hint was found without going to Keeper +- `ProfileEvent_KafkaRebalanceRevocations` ([UInt64](/core/reference/data-types/int-uint)) — Number of partition revocations (the first stage of consumer group rebalance) +- `ProfileEvent_KafkaRebalanceAssignments` ([UInt64](/core/reference/data-types/int-uint)) — Number of partition assignments (the final stage of consumer group rebalance) +- `ProfileEvent_KafkaRebalanceErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed consumer group rebalances +- `ProfileEvent_KafkaMessagesPolled` ([UInt64](/core/reference/data-types/int-uint)) — Number of Kafka messages polled from librdkafka to ClickHouse +- `ProfileEvent_KafkaMessagesRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of Kafka messages already processed by ClickHouse +- `ProfileEvent_KafkaMessagesFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of Kafka messages ClickHouse failed to parse +- `ProfileEvent_KafkaRowsRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows parsed from Kafka messages +- `ProfileEvent_KafkaRowsRejected` ([UInt64](/core/reference/data-types/int-uint)) — Number of parsed rows which were later rejected (due to rebalances / errors or similar reasons). Those rows will be consumed again after the rebalance. +- `ProfileEvent_KafkaDirectReads` ([UInt64](/core/reference/data-types/int-uint)) — Number of direct selects from Kafka tables since server start +- `ProfileEvent_KafkaBackgroundReads` ([UInt64](/core/reference/data-types/int-uint)) — Number of background reads populating materialized views from Kafka since server start +- `ProfileEvent_KafkaCommits` ([UInt64](/core/reference/data-types/int-uint)) — Number of successful commits of consumed offsets to Kafka (normally should be the same as KafkaBackgroundReads) +- `ProfileEvent_KafkaCommitFailures` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed commits of consumed offsets to Kafka (usually is a sign of some data duplication) +- `ProfileEvent_KafkaConsumerErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of errors reported by librdkafka during polls +- `ProfileEvent_KafkaMVNotReady` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed attempts to stream data to a materialized view that is not ready +- `ProfileEvent_KafkaWrites` ([UInt64](/core/reference/data-types/int-uint)) — Number of writes (inserts) to Kafka tables +- `ProfileEvent_KafkaRowsWritten` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows inserted into Kafka tables +- `ProfileEvent_KafkaProducerFlushes` ([UInt64](/core/reference/data-types/int-uint)) — Number of explicit flushes to Kafka producer +- `ProfileEvent_KafkaMessagesProduced` ([UInt64](/core/reference/data-types/int-uint)) — Number of messages produced to Kafka +- `ProfileEvent_KafkaProducerErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of errors during producing the messages to Kafka +- `ProfileEvent_ScalarSubqueriesGlobalCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was done using the global cache +- `ProfileEvent_ScalarSubqueriesLocalCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was done using the local cache +- `ProfileEvent_ScalarSubqueriesCacheMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was not cached and had to be calculated completely +- `ProfileEvent_SchemaInferenceCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the requested source is found in schema cache +- `ProfileEvent_SchemaInferenceCacheSchemaHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the schema is found in schema cache during schema inference +- `ProfileEvent_SchemaInferenceCacheNumRowsHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the number of rows is found in schema cache during count from files +- `ProfileEvent_SchemaInferenceCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the requested source is not in schema cache +- `ProfileEvent_SchemaInferenceCacheSchemaMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the requested source is in cache but the schema is not in cache during schema inference +- `ProfileEvent_SchemaInferenceCacheNumRowsMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the requested source is in cache but the number of rows is not in cache while count from files +- `ProfileEvent_SchemaInferenceCacheEvictions` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a schema from cache was evicted due to overflow +- `ProfileEvent_SchemaInferenceCacheInvalidations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a schema in cache became invalid due to changes in data +- `ProfileEvent_KeeperPacketsSent` ([UInt64](/core/reference/data-types/int-uint)) — Packets sent by keeper server +- `ProfileEvent_KeeperPacketsReceived` ([UInt64](/core/reference/data-types/int-uint)) — Packets received by keeper server +- `ProfileEvent_KeeperRequestTotal` ([UInt64](/core/reference/data-types/int-uint)) — Total requests number on keeper server +- `ProfileEvent_KeeperRequestTotalWithSubrequests` ([UInt64](/core/reference/data-types/int-uint)) — Total requests number on keeper server, counting each subrequest within a multi request +- `ProfileEvent_KeeperLatency` ([UInt64](/core/reference/data-types/int-uint)) — Keeper latency +- `ProfileEvent_KeeperTotalElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Keeper total latency for a single request +- `ProfileEvent_KeeperProcessElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Keeper commit latency for a single request +- `ProfileEvent_KeeperPreprocessElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Keeper preprocessing latency for a single request +- `ProfileEvent_KeeperStorageLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper storage lock +- `ProfileEvent_KeeperStorageSharedLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper storage shared lock +- `ProfileEvent_KeeperChangelogLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper changelog lock +- `ProfileEvent_KeeperServerWriteLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper server write lock +- `ProfileEvent_KeeperSessionCallbackLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper session callback lock +- `ProfileEvent_KeeperReadRequestQueueLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper read request queue lock +- `ProfileEvent_KeeperProcessAndResponsesLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper process and responses lock +- `ProfileEvent_KeeperCommitWaitElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for certain log to be committed +- `ProfileEvent_KeeperBatchMaxCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the size of batch was limited by the amount +- `ProfileEvent_KeeperBatchMaxTotalSize` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the size of batch was limited by the total bytes size +- `ProfileEvent_KeeperReadBatchCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of read request batches processed by Keeper +- `ProfileEvent_KeeperReadBatchTotalRequests` ([UInt64](/core/reference/data-types/int-uint)) — Total number of read requests processed in batches by Keeper +- `ProfileEvent_KeeperCommits` ([UInt64](/core/reference/data-types/int-uint)) — Number of successful commits +- `ProfileEvent_KeeperCommitsFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed commits +- `ProfileEvent_KeeperSnapshotCreations` ([UInt64](/core/reference/data-types/int-uint)) — Number of snapshots creations +- `ProfileEvent_KeeperSnapshotCreationsFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed snapshot creations +- `ProfileEvent_KeeperSnapshotApplys` ([UInt64](/core/reference/data-types/int-uint)) — Number of snapshot applying +- `ProfileEvent_KeeperSnapshotApplysFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed snapshot applying +- `ProfileEvent_KeeperReadSnapshot` ([UInt64](/core/reference/data-types/int-uint)) — Number of completed snapshot reads +- `ProfileEvent_KeeperReadSnapshotObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of snapshot objects sent to followers +- `ProfileEvent_KeeperReadSnapshotFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed snapshot reads +- `ProfileEvent_KeeperSnapshotRemoteLoaderErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of remote read errors in RemoteSnapshotLoader while serving a snapshot to a follower +- `ProfileEvent_KeeperSaveSnapshotObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of snapshot objects received from leader +- `ProfileEvent_KeeperSaveSnapshotFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed snapshot saves +- `ProfileEvent_KeeperSaveSnapshot` ([UInt64](/core/reference/data-types/int-uint)) — Number of snapshot save +- `ProfileEvent_KeeperCreateRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of create requests +- `ProfileEvent_KeeperRemoveRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of remove requests +- `ProfileEvent_KeeperSetRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of set requests +- `ProfileEvent_KeeperReconfigRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of reconfig requests +- `ProfileEvent_KeeperCheckRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of check requests +- `ProfileEvent_KeeperMultiRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of multi requests +- `ProfileEvent_KeeperMultiReadRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of multi read requests +- `ProfileEvent_KeeperGetRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of get requests +- `ProfileEvent_KeeperListRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of list requests +- `ProfileEvent_KeeperListRecursiveRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of get children recursive requests +- `ProfileEvent_KeeperExistsRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of exists requests +- `ProfileEvent_KeeperSetWatchesRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of set watches requests +- `ProfileEvent_KeeperAddWatchRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of add watches requests +- `ProfileEvent_KeeperRemoveWatchRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of remove watches requests +- `ProfileEvent_KeeperCheckWatchRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of remove watches requests +- `ProfileEvent_KeeperRequestRejectedDueToSoftMemoryLimitCount` ([UInt64](/core/reference/data-types/int-uint)) — Number requests that have been rejected due to soft memory limit exceeded +- `ProfileEvent_KeeperStaleRequestsSkipped` ([UInt64](/core/reference/data-types/int-uint)) — Number of Keeper requests skipped because the session is no longer live +- `ProfileEvent_KeeperLiveSessionsLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting to acquire Keeper live sessions lock +- `ProfileEvent_OverflowBreak` ([UInt64](/core/reference/data-types/int-uint)) — Number of times, data processing was cancelled by query complexity limitation with setting '*_overflow_mode' = 'break' and the result is incomplete. +- `ProfileEvent_OverflowThrow` ([UInt64](/core/reference/data-types/int-uint)) — Number of times, data processing was cancelled by query complexity limitation with setting '*_overflow_mode' = 'throw' and exception was thrown. +- `ProfileEvent_OverflowAny` ([UInt64](/core/reference/data-types/int-uint)) — Number of times approximate GROUP BY was in effect: when aggregation was performed only on top of first 'max_rows_to_group_by' unique keys and other keys were ignored due to 'group_by_overflow_mode' = 'any'. +- `ProfileEvent_S3QueueSetFileProcessingMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to set file as processing +- `ProfileEvent_S3QueueSetFileProcessedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to set file as processed +- `ProfileEvent_S3QueueSetFileFailedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to set file as failed +- `ProfileEvent_ObjectStorageQueueFailedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of files which failed to be processed +- `ProfileEvent_ObjectStorageQueueProcessedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of files which were processed +- `ProfileEvent_ObjectStorageQueueCleanupMaxSetSizeOrTTLMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to set file as failed +- `ProfileEvent_ObjectStorageQueuePullMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to read file data +- `ProfileEvent_ObjectStorageQueueFailedToBatchSetProcessing` ([UInt64](/core/reference/data-types/int-uint)) — Number of times batched set processing request failed +- `ProfileEvent_ObjectStorageQueueTrySetProcessingRequests` ([UInt64](/core/reference/data-types/int-uint)) — The number of times we tried to make set processing request +- `ProfileEvent_ObjectStorageQueueTrySetProcessingSucceeded` ([UInt64](/core/reference/data-types/int-uint)) — The number of times we successfully set file as processing +- `ProfileEvent_ObjectStorageQueueTrySetProcessingFailed` ([UInt64](/core/reference/data-types/int-uint)) — The number of times we unsuccessfully set file as processing +- `ProfileEvent_ObjectStorageQueueListedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of listed files in StorageS3(Azure)Queue +- `ProfileEvent_ObjectStorageQueueFilteredFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of filtered files in StorageS3(Azure)Queue +- `ProfileEvent_ObjectStorageQueueReadFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of read files (not equal to the number of actually inserted files) +- `ProfileEvent_ObjectStorageQueueReadRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of read rows (not equal to the number of actually inserted rows) +- `ProfileEvent_ObjectStorageQueueReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of read bytes (not equal to the number of actually inserted bytes) +- `ProfileEvent_ObjectStorageQueueExceptionsDuringRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions during read in S3(Azure)Queue +- `ProfileEvent_ObjectStorageQueueExceptionsDuringInsert` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions during insert in S3(Azure)Queue +- `ProfileEvent_ObjectStorageQueueMovedObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of objects moved as part of after_processing = move +- `ProfileEvent_ObjectStorageQueueRemovedObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of objects removed as part of after_processing = delete +- `ProfileEvent_ObjectStorageQueueTaggedObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of objects tagged as part of after_processing = tag +- `ProfileEvent_ObjectStorageQueueInsertIterations` ([UInt64](/core/reference/data-types/int-uint)) — Number of insert iterations +- `ProfileEvent_ObjectStorageQueueCommitRequests` ([UInt64](/core/reference/data-types/int-uint)) — Number of keeper requests to commit files as either failed or processed +- `ProfileEvent_ObjectStorageQueueSuccessfulCommits` ([UInt64](/core/reference/data-types/int-uint)) — Number of successful keeper commits +- `ProfileEvent_ObjectStorageQueueUnsuccessfulCommits` ([UInt64](/core/reference/data-types/int-uint)) — Number of unsuccessful keeper commits +- `ProfileEvent_ObjectStorageQueueCancelledFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number cancelled files in StorageS3(Azure)Queue +- `ProfileEvent_ObjectStorageQueueProcessedRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of processed rows in StorageS3(Azure)Queue +- `ProfileEvent_ObjectStorageListedObjects` ([UInt64](/core/reference/data-types/int-uint)) — Total objects returned by object storage listing API before any filtering. +- `ProfileEvent_ObjectStorageGlobFilteredObjects` ([UInt64](/core/reference/data-types/int-uint)) — Objects that did not match the glob or regex pattern and were skipped during listing. +- `ProfileEvent_ObjectStoragePredicateFilteredObjects` ([UInt64](/core/reference/data-types/int-uint)) — Objects removed by virtual column predicate filtering on _path/_file. +- `ProfileEvent_ObjectStorageReadObjects` ([UInt64](/core/reference/data-types/int-uint)) — Objects actually opened for reading by the object storage source. +- `ProfileEvent_ServerStartupMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time elapsed from starting server to listening to sockets in milliseconds +- `ProfileEvent_IOUringSQEsSubmitted` ([UInt64](/core/reference/data-types/int-uint)) — Total number of io_uring SQEs submitted +- `ProfileEvent_IOUringSQEsResubmitsAsync` ([UInt64](/core/reference/data-types/int-uint)) — Total number of asynchronous io_uring SQE resubmits performed +- `ProfileEvent_IOUringSQEsResubmitsSync` ([UInt64](/core/reference/data-types/int-uint)) — Total number of synchronous io_uring SQE resubmits performed +- `ProfileEvent_IOUringCQEsCompleted` ([UInt64](/core/reference/data-types/int-uint)) — Total number of successfully completed io_uring CQEs +- `ProfileEvent_IOUringCQEsFailed` ([UInt64](/core/reference/data-types/int-uint)) — Total number of completed io_uring CQEs with failures +- `ProfileEvent_BackupsOpenedForRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of backups opened for reading +- `ProfileEvent_BackupsOpenedForWrite` ([UInt64](/core/reference/data-types/int-uint)) — Number of backups opened for writing +- `ProfileEvent_BackupsOpenedForUnlock` ([UInt64](/core/reference/data-types/int-uint)) — Number of backups opened for unlocking +- `ProfileEvent_BackupReadMetadataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent reading backup metadata from .backup file +- `ProfileEvent_BackupWriteMetadataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent writing backup metadata to .backup file +- `ProfileEvent_BackupEntriesCollectorMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent making backup entries +- `ProfileEvent_BackupEntriesCollectorForTablesDataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent making backup entries for tables data +- `ProfileEvent_BackupEntriesCollectorRunPostTasksMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent running post tasks after making backup entries +- `ProfileEvent_BackupPreparingFileInfosMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent preparing file infos for backup entries +- `ProfileEvent_BackupReadLocalFilesToCalculateChecksums` ([UInt64](/core/reference/data-types/int-uint)) — Number of files read locally to calculate checksums for backup entries +- `ProfileEvent_BackupReadLocalBytesToCalculateChecksums` ([UInt64](/core/reference/data-types/int-uint)) — Total size of files read locally to calculate checksums for backup entries +- `ProfileEvent_BackupReadRemoteFilesToCalculateChecksums` ([UInt64](/core/reference/data-types/int-uint)) — Number of files read from remote disks to calculate checksums for backup entries +- `ProfileEvent_BackupReadRemoteBytesToCalculateChecksums` ([UInt64](/core/reference/data-types/int-uint)) — Total size of files read from remote disks to calculate checksums for backup entries +- `ProfileEvent_BackupLockFileReads` ([UInt64](/core/reference/data-types/int-uint)) — How many times the '.lock' file was read while making backup +- `ProfileEvent_RestorePartsSkippedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of files skipped while restoring parts +- `ProfileEvent_RestorePartsSkippedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total size of files skipped while restoring parts +- `ProfileEvent_ReadTaskRequestsReceived` ([UInt64](/core/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the initiator server side. +- `ProfileEvent_MergeTreeReadTaskRequestsReceived` ([UInt64](/core/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the initiator server side. +- `ProfileEvent_ReadTaskRequestsSent` ([UInt64](/core/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the remote server side. +- `ProfileEvent_MergeTreeReadTaskRequestsSent` ([UInt64](/core/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the remote server side. +- `ProfileEvent_MergeTreeAllRangesAnnouncementsSent` ([UInt64](/core/reference/data-types/int-uint)) — The number of announcements sent from the remote server to the initiator server about the set of data parts (for MergeTree tables). Measured on the remote server side. +- `ProfileEvent_ReadTaskRequestsSentElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the remote server side. +- `ProfileEvent_MergeTreeReadTaskRequestsSentElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the remote server side. +- `ProfileEvent_MergeTreeAllRangesAnnouncementsSentElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in sending the announcement from the remote server to the initiator server about the set of data parts (for MergeTree tables). Measured on the remote server side. +- `ProfileEvent_MergerMutatorsGetPartsForMergeElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to take data parts snapshot to build ranges from them. +- `ProfileEvent_MergerMutatorPrepareRangesForMergeElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to prepare parts ranges which can be merged according to merge predicate. +- `ProfileEvent_MergerMutatorSelectPartsForMergeElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to select parts from ranges which can be merged. +- `ProfileEvent_MergerMutatorRangesForMergeCount` ([UInt64](/core/reference/data-types/int-uint)) — Amount of candidate ranges for merge +- `ProfileEvent_MergerMutatorPartsInRangesForMergeCount` ([UInt64](/core/reference/data-types/int-uint)) — Amount of candidate parts for merge +- `ProfileEvent_MergerMutatorSelectRangePartsCount` ([UInt64](/core/reference/data-types/int-uint)) — Amount of parts in selected range for merge +- `ProfileEvent_ConnectionPoolIsFullMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for a slot in connection pool. +- `ProfileEvent_AsyncLoaderWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting for async loader jobs. +- `ProfileEvent_DistrCacheServerSwitches` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of server switches between distributed cache servers in read/write-through cache +- `ProfileEvent_DistrCacheReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent reading from distributed cache +- `ProfileEvent_DistrCacheFallbackReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spend reading from fallback buffer instead of distributed cache +- `ProfileEvent_DistrCachePrecomputeRangesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent to precompute read ranges +- `ProfileEvent_DistrCacheNextImplMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spend in ReadBufferFromDistributedCache::nextImpl +- `ProfileEvent_DistrCacheStartRangeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent to start a new read range with distributed cache +- `ProfileEvent_DistrCacheRangeChange` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we changed read range because of seek/last_position change +- `ProfileEvent_DistrCacheRangeResetBackward` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we reset read range because of seek/last_position change +- `ProfileEvent_DistrCacheRangeResetForward` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we reset read range because of seek/last_position change +- `ProfileEvent_DistrCacheReconnectsAfterTimeout` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. The number of reconnects after timeout +- `ProfileEvent_DistrCacheServerUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache event. The number of server switches during read or write because the hash-chosen server changed (e.g. due to server deregistration) +- `ProfileEvent_DistrCacheReadErrors` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of distributed cache errors during read +- `ProfileEvent_DistrCacheWriteErrors` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of distributed cache errors during write +- `ProfileEvent_DistrCacheWriteReconnectsAfterTimeout` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. The number of reconnects after timeout +- `ProfileEvent_DistrCacheWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. Time spent in WriteBufferFromDistributedCache::writeToFileSegment +- `ProfileEvent_DistrCacheWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of bytes written to distributed cache +- `ProfileEvent_DistrCacheObjectStorageWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. Time spent writing to object storage +- `ProfileEvent_DistrCacheObjectStorageWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of bytes written to object storage +- `ProfileEvent_DistrCacheGetResponseMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Time spend to wait for response from distributed cache +- `ProfileEvent_DistrCacheMakeRequestErrors` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Number of distributed cache errors when making a request +- `ProfileEvent_DistrCacheReceiveResponseErrors` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Number of distributed cache errors when receiving response a request +- `ProfileEvent_DistrCacheReceivedDataPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received data packets received from distributed cache +- `ProfileEvent_DistrCacheReceivedDataPacketsBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets received from distributed cache +- `ProfileEvent_DistrCacheReceivedOkPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Ok packets received from distributed cache +- `ProfileEvent_DistrCacheReceivedErrorPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Error packets received from distributed cache +- `ProfileEvent_DistrCacheReceivedCredentialsRefreshPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received RefreshCredentials packets received from distributed cache +- `ProfileEvent_DistrCacheReceivedStopPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Stop packets received from distributed cache +- `ProfileEvent_DistrCacheSentDataPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of data packets sent to distributed cache +- `ProfileEvent_DistrCacheSentDataPacketsBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets sent to distributed cache +- `ProfileEvent_DistrCacheUnusedPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Number of skipped unused packets from distributed cache +- `ProfileEvent_DistrCacheUnusedDataPacketsBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets which were ignored +- `ProfileEvent_DistrCacheUnusedPacketsBufferAllocations` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. The number of extra buffer allocations in case we could not reuse existing buffer +- `ProfileEvent_DistrCacheLockRegistryMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. Time spent to take DistributedCacheRegistry lock +- `ProfileEvent_DistrCacheRegistryUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. Time spent updating distributed cache registry +- `ProfileEvent_DistrCacheRegistryUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. Number of distributed cache registry updates +- `ProfileEvent_DistrCacheHashRingRebuilds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. Number of distributed cache hash ring rebuilds +- `ProfileEvent_DistrCacheSuccessfulRegistryUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. The number of successful server registry updates +- `ProfileEvent_DistrCacheUnsuccessfulRegistryUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. The number of unsuccessful server registry updates +- `ProfileEvent_DistrCacheReadBytesFromFallbackBuffer` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Bytes read from fallback buffer +- `ProfileEvent_DistrCacheOpenedConnections` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of open connections to distributed cache +- `ProfileEvent_DistrCacheReusedConnections` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of reused connections to distributed cache +- `ProfileEvent_DistrCacheStaleReconnections` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of reconnections due to stale (peer-closed) pooled connections +- `ProfileEvent_DistrCacheRemoveOutdatedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The time spent removing outdated connections from the pool +- `ProfileEvent_DistrCacheOpenedConnectionsBypassingPool` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of open connections to distributed cache bypassing pool +- `ProfileEvent_DistrCacheConnectMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The time spent to connect to distributed cache +- `ProfileEvent_DistrCacheConnectAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of connection attempts to distributed cache +- `ProfileEvent_DistrCacheSuccessfulConnectAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of successful connection attempts to distributed cache +- `ProfileEvent_DistrCacheUnsuccessfulConnectAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of unsuccessful connection attempts to distributed cache +- `ProfileEvent_DistrCacheGetClientMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. Time spent getting client for distributed cache +- `ProfileEvent_DistrCacheTemporaryFilesCreated` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. Number of temporary files created in distributed cache +- `ProfileEvent_DistrCacheTemporaryFilesBytesWritten` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. Number of bytes written to temporary files created in distributed cache +- `ProfileEvent_DistrCacheServerProcessRequestMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Time spent processing request on DistributedCache server side +- `ProfileEvent_DistrCacheServerStartRequestPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Number of StartRequest packets in DistributedCacheServer +- `ProfileEvent_DistrCacheServerContinueRequestPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Number of ContinueRequest packets in DistributedCacheServer +- `ProfileEvent_DistrCacheServerEndRequestPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Number of EndRequest packets in DistributedCacheServer +- `ProfileEvent_DistrCacheServerReceivedCredentialsRefreshPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Number of RefreshCredentials client packets in DistributedCacheServer +- `ProfileEvent_DistrCacheServerAckRequestPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Number of AckRequest packets in DistributedCacheServer +- `ProfileEvent_DistrCacheServerNewS3CachedClients` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of new cached s3 clients +- `ProfileEvent_DistrCacheServerReusedS3CachedClients` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of reused cached s3 clients +- `ProfileEvent_DistrCacheServerCredentialsRefresh` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of expired credentials were refreshed +- `ProfileEvent_DistrCacheServerCachedReadBufferCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache hit the cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerCachedReadBufferCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache missed the cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerCachedReadBufferCacheWrittenBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes written to cache in distributed cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerCachedReadBufferCacheReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from cache in distributed cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerCachedReadBufferObjectStorageReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from object storage in distributed cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerCachedReadBufferCachePredownloadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from object storage for predownload in distributed cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerSkipped` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache server was skipped because of previous failed connection attempts +- `ProfileEvent_LogTest` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Test +- `ProfileEvent_LogTrace` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Trace +- `ProfileEvent_LogDebug` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Debug +- `ProfileEvent_LogInfo` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Info +- `ProfileEvent_LogWarning` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Warning +- `ProfileEvent_LogError` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Error +- `ProfileEvent_LogFatal` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Fatal +- `ProfileEvent_LoggerElapsedNanoseconds` ([UInt64](/core/reference/data-types/int-uint)) — Cumulative time spend in logging +- `ProfileEvent_InterfaceHTTPSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through HTTP interfaces +- `ProfileEvent_InterfaceHTTPReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through HTTP interfaces +- `ProfileEvent_InterfaceNativeSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through native interfaces +- `ProfileEvent_InterfaceNativeReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through native interfaces +- `ProfileEvent_InterfacePrometheusSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through Prometheus interfaces +- `ProfileEvent_InterfacePrometheusReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through Prometheus interfaces +- `ProfileEvent_InterfaceInterserverSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through interserver interfaces +- `ProfileEvent_InterfaceInterserverReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through interserver interfaces +- `ProfileEvent_InterfaceMySQLSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through MySQL interfaces +- `ProfileEvent_InterfaceMySQLReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through MySQL interfaces +- `ProfileEvent_InterfacePostgreSQLSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through PostgreSQL interfaces +- `ProfileEvent_InterfacePostgreSQLReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through PostgreSQL interfaces +- `ProfileEvent_ParallelReplicasUsedCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of replicas used to execute a query with task-based parallel replicas +- `ProfileEvent_ParallelReplicasAvailableCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of replicas available to execute a query with task-based parallel replicas +- `ProfileEvent_ParallelReplicasUnavailableCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of replicas which was chosen, but found to be unavailable during query execution with task-based parallel replicas +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts update count +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesByLeader` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates by leader +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts update microseconds +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromZooKeeper` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates count from ZooKeeper +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromZooKeeperMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates from ZooKeeper microseconds +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesPeerNotFound` ([UInt64](/core/reference/data-types/int-uint)) — Virtual updates from peer failed because no one found +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromPeer` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates count from peer +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromPeerMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates from peer microseconds +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesForMergesOrStatus` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates from non-default background job +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesLeaderFailedElection` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates leader election failed +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesLeaderSuccessfulElection` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates leader election successful +- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentAttempt` ([UInt64](/core/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation +- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentFailedWithNothingToDo` ([UInt64](/core/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation and failed because nothing to merge +- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentFailedWithConflict` ([UInt64](/core/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation and failed because of conflict in Keeper +- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentSuccessful` ([UInt64](/core/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation +- `ProfileEvent_SharedMergeTreeMergePartsMovedToOudated` ([UInt64](/core/reference/data-types/int-uint)) — How many parts moved to outdated directory +- `ProfileEvent_SharedMergeTreeMergePartsMovedToCondemned` ([UInt64](/core/reference/data-types/int-uint)) — How many parts moved to condemned directory +- `ProfileEvent_SharedMergeTreeOutdatedPartsConfirmationRequest` ([UInt64](/core/reference/data-types/int-uint)) — How many ZooKeeper requests were used to config outdated parts +- `ProfileEvent_SharedMergeTreeOutdatedPartsConfirmationInvocations` ([UInt64](/core/reference/data-types/int-uint)) — How many invocations were made to confirm outdated parts +- `ProfileEvent_SharedMergeTreeOutdatedPartsHTTPRequest` ([UInt64](/core/reference/data-types/int-uint)) — How many HTTP requests were send to confirm outdated parts +- `ProfileEvent_SharedMergeTreeOutdatedPartsHTTPResponse` ([UInt64](/core/reference/data-types/int-uint)) — How many HTTP responses were send to confirm outdated parts +- `ProfileEvent_SharedMergeTreeCondemnedPartsKillRequest` ([UInt64](/core/reference/data-types/int-uint)) — How many ZooKeeper requests were used to remove condemned parts +- `ProfileEvent_SharedMergeTreeCondemnedPartsLockConflict` ([UInt64](/core/reference/data-types/int-uint)) — How many times we failed to acquire lock because of conflict +- `ProfileEvent_SharedMergeTreeCondemnedPartsRemoved` ([UInt64](/core/reference/data-types/int-uint)) — How many condemned parts were removed +- `ProfileEvent_SharedMergeTreePartsKillerRuns` ([UInt64](/core/reference/data-types/int-uint)) — How many times parts killer has been running +- `ProfileEvent_SharedMergeTreePartsKillerMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How much time does parts killer main thread takes +- `ProfileEvent_SharedMergeTreePartsKillerParts` ([UInt64](/core/reference/data-types/int-uint)) — How many parts has been scheduled by the killer +- `ProfileEvent_SharedMergeTreePartsKillerPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How many time does it take to remove parts (executed from multiple threads) +- `ProfileEvent_SharedMergeTreeMergeSelectingTaskMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Merge selecting task microseconds for SMT +- `ProfileEvent_SharedMergeTreeReplicaSetUpdateTaskRuns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times updateReplicaSetTask has run +- `ProfileEvent_SharedMergeTreeOptimizeAsync` ([UInt64](/core/reference/data-types/int-uint)) — Asynchronous OPTIMIZE queries executed +- `ProfileEvent_SharedMergeTreeOptimizeSync` ([UInt64](/core/reference/data-types/int-uint)) — Synchronous OPTIMIZE queries executed +- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJob` ([UInt64](/core/reference/data-types/int-uint)) — How many times scheduleDataProcessingJob called/ +- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJobNothingToScheduled` ([UInt64](/core/reference/data-types/int-uint)) — How many times scheduleDataProcessingJob called but nothing to do +- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJobMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — scheduleDataProcessingJob execute time +- `ProfileEvent_SharedMergeTreeHandleBlockingParts` ([UInt64](/core/reference/data-types/int-uint)) — How many blocking parts to handle in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeHandleBlockingPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of handling blocking parts in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeHandleFetchPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of handling fetched parts in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeHandleOutdatedParts` ([UInt64](/core/reference/data-types/int-uint)) — How many outdated parts to handle in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeHandleOutdatedPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of handling outdated parts in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeSelectPartsForRendezvousFetchMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of selectPartsForRendezvousFetch +- `ProfileEvent_SharedMergeTreeSelectPartsForRendezvousFetchParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts selected by selectPartsForRendezvousFetch +- `ProfileEvent_SharedMergeTreeSelectPartsForCoordinatedFetchMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of selectPartsForCoordinatedFetch +- `ProfileEvent_SharedMergeTreeSelectPartsForCoordinatedFetchParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts selected by selectPartsForCoordinatedFetch +- `ProfileEvent_SharedMergeTreeSelectPartsForFullFetchMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of selectPartsForFullFetch +- `ProfileEvent_SharedMergeTreeSelectPartsForFullFetchParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts selected by selectPartsForFullFetch +- `ProfileEvent_SharedMergeTreeTryUpdateDiskMetadataCacheForPartMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of tryUpdateDiskMetadataCacheForPart in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeLoadChecksumAndIndexesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of loadColumnsChecksumsIndexes only for SharedMergeTree +- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanRequest` ([UInt64](/core/reference/data-types/int-uint)) — How many times SnapshotCleanerThread decides to clean a part +- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerParts` ([UInt64](/core/reference/data-types/int-uint)) — How long time SnapshotCleanerThread tries to clean a part +- `ProfileEvent_SharedMergeTreeSnapshotPartsRemoved` ([UInt64](/core/reference/data-types/int-uint)) — How many times SnapshotCleanerThread successfully clean a part +- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerRuns` ([UInt64](/core/reference/data-types/int-uint)) — How many times SnapshotCleanerThread runs +- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How long time SnapshotCleanerThread has run +- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How long time SnapshotCleanerThread takes to clean parts +- `ProfileEvent_SharedMergeTreeDataPartsFetchAttempt` ([UInt64](/core/reference/data-types/int-uint)) — How many times we tried to fetch data parts +- `ProfileEvent_SharedMergeTreeDataPartsFetchFromPeer` ([UInt64](/core/reference/data-types/int-uint)) — How many times we fetch data parts from peer +- `ProfileEvent_SharedMergeTreeDataPartsFetchFromPeerMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Data parts fetch from peer microseconds +- `ProfileEvent_SharedMergeTreeDataPartsFetchFromS3` ([UInt64](/core/reference/data-types/int-uint)) — How many times we fetch data parts from S3 +- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeper` ([UInt64](/core/reference/data-types/int-uint)) — How many times we have update replica set from ZooKeeper +- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeperRequests` ([UInt64](/core/reference/data-types/int-uint)) — How many total ZooKeeper requests we made to update replica set +- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeperMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How much time we spend to update replica set +- `ProfileEvent_KeeperLogsEntryReadFromLatestCache` ([UInt64](/core/reference/data-types/int-uint)) — Number of log entries in Keeper being read from latest logs cache +- `ProfileEvent_KeeperLogsEntryReadFromCommitCache` ([UInt64](/core/reference/data-types/int-uint)) — Number of log entries in Keeper being read from commit logs cache +- `ProfileEvent_KeeperLogsEntryReadFromFile` ([UInt64](/core/reference/data-types/int-uint)) — Number of log entries in Keeper being read directly from the changelog file +- `ProfileEvent_KeeperLogsPrefetchedEntries` ([UInt64](/core/reference/data-types/int-uint)) — Number of log entries in Keeper being prefetched from the changelog file +- `ProfileEvent_KeeperChangelogWrittenBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to the changelog in Keeper +- `ProfileEvent_KeeperChangelogFileSyncMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in fsync for Keeper changelog (uncompressed logs only) +- `ProfileEvent_KeeperSnapshotWrittenBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to snapshot files in Keeper +- `ProfileEvent_KeeperSnapshotFileSyncMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in fsync for Keeper snapshot files +- `ProfileEvent_StorageConnectionsCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of created connections for storages +- `ProfileEvent_StorageConnectionsReused` ([UInt64](/core/reference/data-types/int-uint)) — Number of reused connections for storages +- `ProfileEvent_StorageConnectionsReset` ([UInt64](/core/reference/data-types/int-uint)) — Number of reset connections for storages +- `ProfileEvent_StorageConnectionsPreserved` ([UInt64](/core/reference/data-types/int-uint)) — Number of preserved connections for storages +- `ProfileEvent_StorageConnectionsExpired` ([UInt64](/core/reference/data-types/int-uint)) — Number of expired connections for storages +- `ProfileEvent_StorageConnectionsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of cases when creation of a connection for storage is failed +- `ProfileEvent_StorageConnectionsElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on creating connections for storages +- `ProfileEvent_DiskConnectionsCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of created connections for disk +- `ProfileEvent_DiskConnectionsReused` ([UInt64](/core/reference/data-types/int-uint)) — Number of reused connections for disk +- `ProfileEvent_DiskConnectionsReset` ([UInt64](/core/reference/data-types/int-uint)) — Number of reset connections for disk +- `ProfileEvent_DiskConnectionsPreserved` ([UInt64](/core/reference/data-types/int-uint)) — Number of preserved connections for disk +- `ProfileEvent_DiskConnectionsExpired` ([UInt64](/core/reference/data-types/int-uint)) — Number of expired connections for disk +- `ProfileEvent_DiskConnectionsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of cases when creation of a connection for disk is failed +- `ProfileEvent_DiskConnectionsElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on creating connections for disk +- `ProfileEvent_HTTPConnectionsCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of created client HTTP connections +- `ProfileEvent_HTTPConnectionsReused` ([UInt64](/core/reference/data-types/int-uint)) — Number of reused client HTTP connections +- `ProfileEvent_HTTPConnectionsReset` ([UInt64](/core/reference/data-types/int-uint)) — Number of reset client HTTP connections +- `ProfileEvent_HTTPConnectionsPreserved` ([UInt64](/core/reference/data-types/int-uint)) — Number of preserved client HTTP connections +- `ProfileEvent_HTTPConnectionsExpired` ([UInt64](/core/reference/data-types/int-uint)) — Number of expired client HTTP connections +- `ProfileEvent_HTTPConnectionsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of cases when creation of a client HTTP connection failed +- `ProfileEvent_HTTPConnectionsElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on creating client HTTP connections +- `ProfileEvent_HTTPServerConnectionsCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of created server HTTP connections +- `ProfileEvent_HTTPServerConnectionsReused` ([UInt64](/core/reference/data-types/int-uint)) — Number of reused server HTTP connections +- `ProfileEvent_HTTPServerConnectionsPreserved` ([UInt64](/core/reference/data-types/int-uint)) — Number of preserved server HTTP connections. Connection kept alive successfully +- `ProfileEvent_HTTPServerConnectionsExpired` ([UInt64](/core/reference/data-types/int-uint)) — Number of expired server HTTP connections. +- `ProfileEvent_HTTPServerConnectionsClosed` ([UInt64](/core/reference/data-types/int-uint)) — Number of closed server HTTP connections. Keep alive has not been negotiated +- `ProfileEvent_HTTPServerConnectionsReset` ([UInt64](/core/reference/data-types/int-uint)) — Number of reset server HTTP connections. Server closes connection +- `ProfileEvent_AddressesDiscovered` ([UInt64](/core/reference/data-types/int-uint)) — Total count of new addresses in DNS resolve results for HTTP connections +- `ProfileEvent_AddressesExpired` ([UInt64](/core/reference/data-types/int-uint)) — Total count of expired addresses which is no longer presented in DNS resolve results for HTTP connections +- `ProfileEvent_AddressesMarkedAsFailed` ([UInt64](/core/reference/data-types/int-uint)) — Total count of addresses which have been marked as faulty due to connection errors for HTTP connections +- `ProfileEvent_ReadWriteBufferFromHTTPRequestsSent` ([UInt64](/core/reference/data-types/int-uint)) — Number of HTTP requests sent by ReadWriteBufferFromHTTP +- `ProfileEvent_ReadWriteBufferFromHTTPBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total size of payload bytes received and sent by ReadWriteBufferFromHTTP. Doesn't include HTTP headers. +- `ProfileEvent_WriteBufferFromHTTPRequestsSent` ([UInt64](/core/reference/data-types/int-uint)) — Number of HTTP requests sent by WriteBufferFromHTTP +- `ProfileEvent_WriteBufferFromHTTPBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total size of payload bytes received and sent by WriteBufferFromHTTP. Doesn't include HTTP headers. +- `ProfileEvent_ConcurrencyControlSlotsGranted` ([UInt64](/core/reference/data-types/int-uint)) — Number of CPU slot granted according to guarantee of 1 thread per query and for queries with setting 'use_concurrency_control' = 0 +- `ProfileEvent_ConcurrencyControlSlotsDelayed` ([UInt64](/core/reference/data-types/int-uint)) — Number of CPU slot not granted initially and required to wait for a free CPU slot +- `ProfileEvent_ConcurrencyControlSlotsAcquired` ([UInt64](/core/reference/data-types/int-uint)) — Total number of CPU slots acquired +- `ProfileEvent_ConcurrencyControlSlotsAcquiredNonCompeting` ([UInt64](/core/reference/data-types/int-uint)) — Total number of noncompeting CPU slot acquired +- `ProfileEvent_ConcurrencyControlQueriesDelayed` ([UInt64](/core/reference/data-types/int-uint)) — Total number of CPU slot allocations (queries) that were required to wait for slots to upscale +- `ProfileEvent_ConcurrencyControlWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for CPU slots. +- `ProfileEvent_ConcurrencyControlPreemptedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting due to preemption of CPU slots. +- `ProfileEvent_ConcurrencyControlPreemptions` ([UInt64](/core/reference/data-types/int-uint)) — Total number of CPU preemptions +- `ProfileEvent_ConcurrencyControlUpscales` ([UInt64](/core/reference/data-types/int-uint)) — Total number of CPU upscaling events +- `ProfileEvent_ConcurrencyControlDownscales` ([UInt64](/core/reference/data-types/int-uint)) — Total number of CPU downscaling events +- `ProfileEvent_ConcurrentQuerySlotsAcquired` ([UInt64](/core/reference/data-types/int-uint)) — Total number of query slots acquired +- `ProfileEvent_ConcurrentQueryWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting for a query slots +- `ProfileEvent_CoordinatedMergesMergeCoordinatorUpdateCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of merge coordinator updates +- `ProfileEvent_CoordinatedMergesMergeCoordinatorUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on updating merge coordinator state +- `ProfileEvent_CoordinatedMergesMergeCoordinatorFetchMetadataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on fetching fresh metadata inside merge coordinator +- `ProfileEvent_CoordinatedMergesMergeCoordinatorFilterMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on filtering prepared merges inside merge coordinator +- `ProfileEvent_CoordinatedMergesMergeCoordinatorSelectMergesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on finding merge using merge selectors inside merge coordinator +- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateForShareCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of for share captures of coordinator state lock +- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateExclusivelyCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of exclusive captures of coordinator state lock +- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateForShareMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on locking coordinator state mutex for share +- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateExclusivelyMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on locking coordinator state mutex exclusively +- `ProfileEvent_CoordinatedMergesMergeWorkerUpdateCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number merge worker updates +- `ProfileEvent_CoordinatedMergesMergeWorkerUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on updating local state of assigned merges on worker +- `ProfileEvent_CoordinatedMergesMergeAssignmentRequest` ([UInt64](/core/reference/data-types/int-uint)) — Total number of merge assignment requests +- `ProfileEvent_CoordinatedMergesMergeAssignmentResponse` ([UInt64](/core/reference/data-types/int-uint)) — Total number of merge assignment requests +- `ProfileEvent_CoordinatedMergesMergeAssignmentRequestMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend in merge assignment client +- `ProfileEvent_CoordinatedMergesMergeAssignmentResponseMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend in merge assignment handler +- `ProfileEvent_SharedDatabaseCatalogFailedToApplyState` ([UInt64](/core/reference/data-types/int-uint)) — Number of failures to apply new state in SharedDatabaseCatalog +- `ProfileEvent_SharedDatabaseCatalogStateApplicationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on application of new state in SharedDatabaseCatalog +- `ProfileEvent_MemoryWorkerRun` ([UInt64](/core/reference/data-types/int-uint)) — Number of runs done by MemoryWorker in background +- `ProfileEvent_MemoryWorkerRunElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent by MemoryWorker for background work +- `ProfileEvent_ParquetFetchWaitTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of waiting for parquet file reads from decoding threads (not prefetching threads) +- `ProfileEvent_WasmSerializationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent executing WebAssembly code +- `ProfileEvent_WasmDeserializationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent executing WebAssembly code +- `ProfileEvent_WasmGuestExecuteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent executing WebAssembly code +- `ProfileEvent_WasmTotalExecuteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent executing WebAssembly code +- `ProfileEvent_WasmModuleInstatiate` ([UInt64](/core/reference/data-types/int-uint)) — Number of WebAssembly compartments created +- `ProfileEvent_WasmMemoryAllocated` ([UInt64](/core/reference/data-types/int-uint)) — Total memory allocated for WebAssembly compartments +- `ProfileEvent_ParquetReadRowGroups` ([UInt64](/core/reference/data-types/int-uint)) — The total number of row groups read from parquet data +- `ProfileEvent_ParquetPrunedRowGroups` ([UInt64](/core/reference/data-types/int-uint)) — The total number of row groups pruned from parquet data +- `ProfileEvent_ParquetDecodingTasks` ([UInt64](/core/reference/data-types/int-uint)) — Tasks issued by parquet reader +- `ProfileEvent_ParquetDecodingTaskBatches` ([UInt64](/core/reference/data-types/int-uint)) — Task groups sent to a thread pool by parquet reader +- `ProfileEvent_ParquetPrefetcherReadRandomRead` ([UInt64](/core/reference/data-types/int-uint)) — The total number of reads with ReadMode::RandomRead by DB::Parquet::Prefetcher +- `ProfileEvent_ParquetPrefetcherReadSeekAndRead` ([UInt64](/core/reference/data-types/int-uint)) — The total number of reads with ReadMode::SeekAndRead by DB::Parquet::Prefetcher +- `ProfileEvent_ParquetPrefetcherReadEntireFile` ([UInt64](/core/reference/data-types/int-uint)) — The total number of read with ReadMode::EntireFileIsInMemory by DB::Parquet::Prefetcher +- `ProfileEvent_ParquetRowsFilterExpression` ([UInt64](/core/reference/data-types/int-uint)) — The total number of rows that were passed through filter +- `ProfileEvent_ParquetColumnsFilterExpression` ([UInt64](/core/reference/data-types/int-uint)) — The total number of columns that were passed through filter +- `ProfileEvent_FilterTransformPassedRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows that passed the filter in the query +- `ProfileEvent_FilterTransformPassedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes that passed the filter in the query +- `ProfileEvent_QueryPreempted` ([UInt64](/core/reference/data-types/int-uint)) — How many times tasks are paused and waiting due to 'priority' setting +- `ProfileEvent_IndexBinarySearchAlgorithm` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the binary search algorithm is used over the index marks +- `ProfileEvent_IndexGenericExclusionSearchAlgorithm` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the generic exclusion search algorithm is used over the index marks +- `ProfileEvent_ParallelReplicasQueryCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of (sub)queries executed using parallel replicas during a query execution +- `ProfileEvent_DistributedConnectionReconnectCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of reconnects to other servers done during distributed query execution. It can happen when a stale connection has been acquired from connection pool +- `ProfileEvent_DistributedConnectionConnectCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of connects to other servers done during distributed query execution. Happens when new connection is established instead of using existing from pool. +- `ProfileEvent_RefreshableViewRefreshSuccess` ([UInt64](/core/reference/data-types/int-uint)) — How many times refreshable materialized views refreshed +- `ProfileEvent_RefreshableViewRefreshFailed` ([UInt64](/core/reference/data-types/int-uint)) — How many times refreshable materialized views failed to refresh +- `ProfileEvent_RefreshableViewSyncReplicaSuccess` ([UInt64](/core/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view did an implicit SYNC REPLICA +- `ProfileEvent_RefreshableViewSyncReplicaRetry` ([UInt64](/core/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view failed and retried an implicit SYNC REPLICA +- `ProfileEvent_RefreshableViewLockTableRetry` ([UInt64](/core/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view had to switch to a new table because the old table was dropped +- `ProfileEvent_AsyncLoggingConsoleTotalMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the console log +- `ProfileEvent_AsyncLoggingFileLogTotalMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the file log +- `ProfileEvent_AsyncLoggingErrorFileLogTotalMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the error file log +- `ProfileEvent_AsyncLoggingSyslogTotalMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the syslog +- `ProfileEvent_AsyncLoggingTextLogTotalMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the text_log +- `ProfileEvent_AsyncLoggingConsoleDroppedMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages have been dropped from the console log due to the async log queue being full +- `ProfileEvent_AsyncLoggingFileLogDroppedMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages have been dropped from the file log due to the async log queue being full +- `ProfileEvent_AsyncLoggingErrorFileLogDroppedMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages have been dropped from error file log due to the async log queue being full +- `ProfileEvent_AsyncLoggingSyslogDroppedMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages have been dropped from the syslog due to the async log queue being full +- `ProfileEvent_AsyncLoggingTextLogDroppedMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages have been dropped from text_log due to the async log queue being full +- `ProfileEvent_JemallocFailedAllocationSampleTracking` ([UInt64](/core/reference/data-types/int-uint)) — Total number of times tracking of jemalloc allocation sample failed +- `ProfileEvent_JemallocFailedDeallocationSampleTracking` ([UInt64](/core/reference/data-types/int-uint)) — Total number of times tracking of jemalloc deallocation sample failed +- `ProfileEvent_LoadedStatisticsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Elapsed time of loading statistics from parts +- `ProfileEvent_RuntimeDataflowStatisticsInputBytes` ([UInt64](/core/reference/data-types/int-uint)) — Collected statistics on the number of bytes replicas would read if the query was executed with parallel replicas +- `ProfileEvent_RuntimeDataflowStatisticsOutputBytes` ([UInt64](/core/reference/data-types/int-uint)) — Collected statistics on the number of bytes replicas would send to the initiator if the query was executed with parallel replicas +- `ProfileEvent_S3CachedCredentialsProvidersReused` ([UInt64](/core/reference/data-types/int-uint)) — Total number of reused credentials provider from the cache +- `ProfileEvent_S3CachedCredentialsProvidersAdded` ([UInt64](/core/reference/data-types/int-uint)) — Total number of newly added credentials providers to the cache +- `ProfileEvent_RuntimeFiltersCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of distinct JOIN Runtime Filters created within a query +- `ProfileEvent_RuntimeFilterBlocksProcessed` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks processed by JOIN Runtime Filters +- `ProfileEvent_RuntimeFilterBlocksSkipped` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks skipped by JOIN Runtime Filters without processing due to filter being dynamically disabled because of poor filtering ratio +- `ProfileEvent_RuntimeFilterRowsChecked` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows checked by JOIN Runtime Filters +- `ProfileEvent_RuntimeFilterRowsPassed` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows that passed (not filtered out by) JOIN Runtime Filters +- `ProfileEvent_RuntimeFilterRowsSkipped` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows in blocks that were skipped by JOIN Runtime Filters +- `ProfileEvent_JoinBuildPostProcessingMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Elapsed time of post-processing steps after building the right JOIN side. +- `ProfileEvent_AIInputTokens` ([UInt64](/core/reference/data-types/int-uint)) — Total prompt tokens consumed across all AI function calls in the query. +- `ProfileEvent_AIOutputTokens` ([UInt64](/core/reference/data-types/int-uint)) — Total completion tokens consumed across all AI function calls in the query. +- `ProfileEvent_AIAPICalls` ([UInt64](/core/reference/data-types/int-uint)) — Number of HTTP requests dispatched to AI providers. +- `ProfileEvent_AIRowsProcessed` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows that received an AI result. +- `ProfileEvent_AIRowsSkipped` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows that received a default value due to quota or error. +- `CurrentMetric_Query` ([Int64](/core/reference/data-types/int-uint)) — Number of executing queries +- `CurrentMetric_ASTFuzzerAccumulatedFragments` ([Int64](/core/reference/data-types/int-uint)) — Number of AST fragments accumulated by the server-side AST fuzzer for use in future mutations. +- `CurrentMetric_QueryNonInternal` ([Int64](/core/reference/data-types/int-uint)) — Number of executing non-internal queries (queries initiated by users, excluding internal queries from ClickHouse) +- `CurrentMetric_Merge` ([Int64](/core/reference/data-types/int-uint)) — Number of executing background merges +- `CurrentMetric_MergeParts` ([Int64](/core/reference/data-types/int-uint)) — Number of source parts participating in current background merges +- `CurrentMetric_Move` ([Int64](/core/reference/data-types/int-uint)) — Number of currently executing moves +- `CurrentMetric_PartMutation` ([Int64](/core/reference/data-types/int-uint)) — Number of mutations (ALTER DELETE/UPDATE) +- `CurrentMetric_ReplicatedFetch` ([Int64](/core/reference/data-types/int-uint)) — Number of data parts being fetched from replica +- `CurrentMetric_ReplicatedSend` ([Int64](/core/reference/data-types/int-uint)) — Number of data parts being sent to replicas +- `CurrentMetric_ReplicatedChecks` ([Int64](/core/reference/data-types/int-uint)) — Number of data parts checking for consistency +- `CurrentMetric_BackgroundMergesAndMutationsPoolTask` ([Int64](/core/reference/data-types/int-uint)) — Number of active merges and mutations in an associated background pool +- `CurrentMetric_BackgroundMergesAndMutationsPoolSize` ([Int64](/core/reference/data-types/int-uint)) — Limit on number of active merges and mutations in an associated background pool +- `CurrentMetric_BackgroundFetchesPoolTask` ([Int64](/core/reference/data-types/int-uint)) — Number of active fetches in an associated background pool +- `CurrentMetric_BackgroundFetchesPoolSize` ([Int64](/core/reference/data-types/int-uint)) — Limit on number of simultaneous fetches in an associated background pool +- `CurrentMetric_BackgroundCommonPoolTask` ([Int64](/core/reference/data-types/int-uint)) — Number of active tasks in an associated background pool +- `CurrentMetric_BackgroundCommonPoolSize` ([Int64](/core/reference/data-types/int-uint)) — Limit on number of tasks in an associated background pool +- `CurrentMetric_BackgroundMovePoolTask` ([Int64](/core/reference/data-types/int-uint)) — Number of active tasks in BackgroundProcessingPool for moves +- `CurrentMetric_BackgroundMovePoolSize` ([Int64](/core/reference/data-types/int-uint)) — Limit on number of tasks in BackgroundProcessingPool for moves +- `CurrentMetric_AzureRequests` ([Int64](/core/reference/data-types/int-uint)) — Number of currently executing Azure requests +- `CurrentMetric_BackgroundSchedulePoolTask` ([Int64](/core/reference/data-types/int-uint)) — Number of active tasks in BackgroundSchedulePool. This pool is used for periodic ReplicatedMergeTree tasks, like cleaning old data parts, altering data parts, replica re-initialization, etc. +- `CurrentMetric_BackgroundSchedulePoolSize` ([Int64](/core/reference/data-types/int-uint)) — Limit on number of tasks in BackgroundSchedulePool. This pool is used for periodic ReplicatedMergeTree tasks, like cleaning old data parts, altering data parts, replica re-initialization, etc. +- `CurrentMetric_BackgroundBufferFlushSchedulePoolTask` ([Int64](/core/reference/data-types/int-uint)) — Number of active tasks in BackgroundBufferFlushSchedulePool. This pool is used for periodic Buffer flushes +- `CurrentMetric_BackgroundBufferFlushSchedulePoolSize` ([Int64](/core/reference/data-types/int-uint)) — Limit on number of tasks in BackgroundBufferFlushSchedulePool +- `CurrentMetric_BackgroundDistributedSchedulePoolTask` ([Int64](/core/reference/data-types/int-uint)) — Number of active tasks in BackgroundDistributedSchedulePool. This pool is used for distributed sends that is done in background. +- `CurrentMetric_BackgroundDistributedSchedulePoolSize` ([Int64](/core/reference/data-types/int-uint)) — Limit on number of tasks in BackgroundDistributedSchedulePool +- `CurrentMetric_BackgroundMessageBrokerSchedulePoolTask` ([Int64](/core/reference/data-types/int-uint)) — Number of active tasks in BackgroundMessageBrokerSchedulePool for message streaming +- `CurrentMetric_BackgroundMessageBrokerSchedulePoolSize` ([Int64](/core/reference/data-types/int-uint)) — Limit on number of tasks in BackgroundMessageBrokerSchedulePool for message streaming +- `CurrentMetric_CacheDictionaryUpdateQueueBatches` ([Int64](/core/reference/data-types/int-uint)) — Number of 'batches' (a set of keys) in update queue in CacheDictionaries. +- `CurrentMetric_CacheDictionaryUpdateQueueKeys` ([Int64](/core/reference/data-types/int-uint)) — Exact number of keys in update queue in CacheDictionaries. +- `CurrentMetric_DiskSpaceReservedForMerge` ([Int64](/core/reference/data-types/int-uint)) — Disk space reserved for currently running background merges. It is slightly more than the total size of currently merging parts. +- `CurrentMetric_DistributedSend` ([Int64](/core/reference/data-types/int-uint)) — Number of connections to remote servers sending data that was INSERTed into Distributed tables. Both synchronous and asynchronous mode. +- `CurrentMetric_QueryPreempted` ([Int64](/core/reference/data-types/int-uint)) — Number of running tasks which are paused and waiting due to 'priority' setting. +- `CurrentMetric_TCPConnection` ([Int64](/core/reference/data-types/int-uint)) — Number of connections to TCP server (clients with native interface), also included server-server distributed query connections +- `CurrentMetric_MySQLConnection` ([Int64](/core/reference/data-types/int-uint)) — Number of client connections using MySQL protocol +- `CurrentMetric_HTTPConnection` ([Int64](/core/reference/data-types/int-uint)) — Number of connections to HTTP server +- `CurrentMetric_InterserverConnection` ([Int64](/core/reference/data-types/int-uint)) — Number of connections from other replicas to fetch parts +- `CurrentMetric_PostgreSQLConnection` ([Int64](/core/reference/data-types/int-uint)) — Number of client connections using PostgreSQL protocol +- `CurrentMetric_OpenFileForRead` ([Int64](/core/reference/data-types/int-uint)) — Number of files open for reading +- `CurrentMetric_OpenFileForWrite` ([Int64](/core/reference/data-types/int-uint)) — Number of files open for writing +- `CurrentMetric_Compressing` ([Int64](/core/reference/data-types/int-uint)) — Number of compress operations using internal compression codecs +- `CurrentMetric_Decompressing` ([Int64](/core/reference/data-types/int-uint)) — Number of decompress operations using internal compression codecs +- `CurrentMetric_ParallelCompressedWriteBufferThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in all instances of ParallelCompressedWriteBuffer - these threads are doing parallel compression and writing +- `CurrentMetric_ParallelCompressedWriteBufferWait` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in all instances of ParallelCompressedWriteBuffer that are currently waiting for buffer to become available for writing +- `CurrentMetric_TotalTemporaryFiles` ([Int64](/core/reference/data-types/int-uint)) — Number of temporary files created +- `CurrentMetric_TemporaryFilesForSort` ([Int64](/core/reference/data-types/int-uint)) — Number of temporary files created for external sorting +- `CurrentMetric_TemporaryFilesForAggregation` ([Int64](/core/reference/data-types/int-uint)) — Number of temporary files created for external aggregation +- `CurrentMetric_TemporaryFilesForJoin` ([Int64](/core/reference/data-types/int-uint)) — Number of temporary files created for JOIN +- `CurrentMetric_TemporaryFilesForMerge` ([Int64](/core/reference/data-types/int-uint)) — Number of temporary files for vertical merge +- `CurrentMetric_TemporaryFilesUnknown` ([Int64](/core/reference/data-types/int-uint)) — Number of temporary files created without known purpose +- `CurrentMetric_Read` ([Int64](/core/reference/data-types/int-uint)) — Number of read (read, pread, io_getevents, etc.) syscalls in fly +- `CurrentMetric_RemoteRead` ([Int64](/core/reference/data-types/int-uint)) — Number of read with remote reader in fly +- `CurrentMetric_Write` ([Int64](/core/reference/data-types/int-uint)) — Number of write (write, pwrite, io_getevents, etc.) syscalls in fly +- `CurrentMetric_NetworkReceive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads receiving data from network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. +- `CurrentMetric_NetworkSend` ([Int64](/core/reference/data-types/int-uint)) — Number of threads sending data to network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. +- `CurrentMetric_SendScalars` ([Int64](/core/reference/data-types/int-uint)) — Number of connections that are sending data for scalars to remote servers. +- `CurrentMetric_SendExternalTables` ([Int64](/core/reference/data-types/int-uint)) — Number of connections that are sending data for external tables to remote servers. External tables are used to implement GLOBAL IN and GLOBAL JOIN operators with distributed subqueries. +- `CurrentMetric_QueryThread` ([Int64](/core/reference/data-types/int-uint)) — Number of query processing threads +- `CurrentMetric_ReadonlyReplica` ([Int64](/core/reference/data-types/int-uint)) — Number of Replicated tables that are currently in readonly state due to re-initialization after ZooKeeper session loss or due to startup without ZooKeeper configured. +- `CurrentMetric_ReplicaReady` ([Int64](/core/reference/data-types/int-uint)) — Indicates if the replica is ready for queries: 0 = no, 1 = yes +- `CurrentMetric_MemoryTracking` ([Int64](/core/reference/data-types/int-uint)) — Total amount of memory (bytes) allocated by the server. +- `CurrentMetric_MemoryTrackingUncorrected` ([Int64](/core/reference/data-types/int-uint)) — Total amount of memory (bytes) allocated by the server not corrected by RSS. +- `CurrentMetric_MergesMutationsMemoryTracking` ([Int64](/core/reference/data-types/int-uint)) — Total amount of memory (bytes) allocated by background tasks (merges and mutations). +- `CurrentMetric_EphemeralNode` ([Int64](/core/reference/data-types/int-uint)) — Number of ephemeral nodes hold in ZooKeeper. +- `CurrentMetric_MaxAllocatedEphemeralLockSequentialNumber` ([Int64](/core/reference/data-types/int-uint)) — The maximum sequential number allocated for ephemeral lock znodes in ZooKeeper. Primarily influenced by the block numbers. +- `CurrentMetric_ZooKeeperSession` ([Int64](/core/reference/data-types/int-uint)) — Number of sessions (connections) to ZooKeeper. Should be no more than one, because using more than one connection to ZooKeeper may lead to bugs due to lack of linearizability (stale reads) that ZooKeeper consistency model allows. +- `CurrentMetric_ZooKeeperSessionExpired` ([Int64](/core/reference/data-types/int-uint)) — Number of expired global ZooKeeper sessions. +- `CurrentMetric_ZooKeeperConnectionLossStartedTimestampSeconds` ([Int64](/core/reference/data-types/int-uint)) — Unix timestamp in seconds when ZooKeeper connection was lost, or 0 if connected successfully. +- `CurrentMetric_ZooKeeperWatch` ([Int64](/core/reference/data-types/int-uint)) — Number of watches (event subscriptions) in ZooKeeper. +- `CurrentMetric_ZooKeeperRequest` ([Int64](/core/reference/data-types/int-uint)) — Number of requests to ZooKeeper in fly. +- `CurrentMetric_DelayedInserts` ([Int64](/core/reference/data-types/int-uint)) — Number of INSERT queries that are throttled due to high number of active data parts for partition in a MergeTree table. +- `CurrentMetric_ContextLockWait` ([Int64](/core/reference/data-types/int-uint)) — Number of threads waiting for lock in Context. This is global lock. +- `CurrentMetric_StorageBufferRows` ([Int64](/core/reference/data-types/int-uint)) — Number of rows in buffers of Buffer tables +- `CurrentMetric_StorageBufferBytes` ([Int64](/core/reference/data-types/int-uint)) — Number of bytes in buffers of Buffer tables +- `CurrentMetric_DictCacheRequests` ([Int64](/core/reference/data-types/int-uint)) — Number of requests in fly to data sources of dictionaries of cache type. +- `CurrentMetric_Revision` ([Int64](/core/reference/data-types/int-uint)) — Revision of the server. It is a number incremented for every release or release candidate except patch releases. +- `CurrentMetric_VersionInteger` ([Int64](/core/reference/data-types/int-uint)) — Version of the server in a single integer number in base-1000. For example, version 11.22.33 is translated to 11022033. +- `CurrentMetric_RWLockWaitingReaders` ([Int64](/core/reference/data-types/int-uint)) — Number of threads waiting for read on a table RWLock. +- `CurrentMetric_RWLockWaitingWriters` ([Int64](/core/reference/data-types/int-uint)) — Number of threads waiting for write on a table RWLock. +- `CurrentMetric_RWLockActiveReaders` ([Int64](/core/reference/data-types/int-uint)) — Number of threads holding read lock in a table RWLock. +- `CurrentMetric_RWLockActiveWriters` ([Int64](/core/reference/data-types/int-uint)) — Number of threads holding write lock in a table RWLock. +- `CurrentMetric_GlobalThread` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in global thread pool. +- `CurrentMetric_GlobalThreadActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in global thread pool running a task. +- `CurrentMetric_GlobalThreadScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in global thread pool. +- `CurrentMetric_LocalThread` ([Int64](/core/reference/data-types/int-uint)) — Obsolete. Number of threads in local thread pools. The threads in local thread pools are taken from the global thread pool. +- `CurrentMetric_LocalThreadActive` ([Int64](/core/reference/data-types/int-uint)) — Obsolete. Number of threads in local thread pools running a task. +- `CurrentMetric_LocalThreadScheduled` ([Int64](/core/reference/data-types/int-uint)) — Obsolete. Number of queued or active jobs in local thread pools. +- `CurrentMetric_MergeTreeDataSelectExecutorThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the MergeTreeDataSelectExecutor thread pool. +- `CurrentMetric_MergeTreeDataSelectExecutorThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the MergeTreeDataSelectExecutor thread pool running a task. +- `CurrentMetric_MergeTreeDataSelectExecutorThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the MergeTreeDataSelectExecutor thread pool. +- `CurrentMetric_BackupsThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for BACKUP. +- `CurrentMetric_BackupsThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in thread pool for BACKUP running a task. +- `CurrentMetric_BackupsThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs for BACKUP. +- `CurrentMetric_RestoreThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for RESTORE. +- `CurrentMetric_RestoreThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for RESTORE running a task. +- `CurrentMetric_RestoreThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs for RESTORE. +- `CurrentMetric_MarksLoaderThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in thread pool for loading marks. +- `CurrentMetric_MarksLoaderThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for loading marks running a task. +- `CurrentMetric_MarksLoaderThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool for loading marks. +- `CurrentMetric_IOPrefetchThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the IO prefetch thread pool. +- `CurrentMetric_IOPrefetchThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the IO prefetch thread pool running a task. +- `CurrentMetric_IOPrefetchThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the IO prefetch thread pool. +- `CurrentMetric_IOWriterThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the IO writer thread pool. +- `CurrentMetric_IOWriterThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the IO writer thread pool running a task. +- `CurrentMetric_IOWriterThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the IO writer thread pool. +- `CurrentMetric_IOThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the IO thread pool. +- `CurrentMetric_IOThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the IO thread pool running a task. +- `CurrentMetric_IOThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the IO thread pool. +- `CurrentMetric_CompressionThread` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in compression thread pools. +- `CurrentMetric_CompressionThreadActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in compression thread pools running a task. +- `CurrentMetric_CompressionThreadScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in compression thread pools. +- `CurrentMetric_ThreadPoolRemoteFSReaderThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for remote_filesystem_read_method=threadpool. +- `CurrentMetric_ThreadPoolRemoteFSReaderThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for remote_filesystem_read_method=threadpool running a task. +- `CurrentMetric_ThreadPoolRemoteFSReaderThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool for remote_filesystem_read_method=threadpool. +- `CurrentMetric_ThreadPoolFSReaderThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for local_filesystem_read_method=threadpool. +- `CurrentMetric_ThreadPoolFSReaderThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for local_filesystem_read_method=threadpool running a task. +- `CurrentMetric_ThreadPoolFSReaderThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool for local_filesystem_read_method=threadpool. +- `CurrentMetric_ObjectStorageQueueShutdownThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in object storage queue shutdown pool. +- `CurrentMetric_ObjectStorageQueueShutdownThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in object storage queue shutdown pool running a task. +- `CurrentMetric_ObjectStorageQueueShutdownThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in object storage queue shutdown pool. +- `CurrentMetric_ObjectStorageQueueMetadataCacheSizeBytes` ([Int64](/core/reference/data-types/int-uint)) — Size in bytes of ObjectStorageQueue metadata cache. +- `CurrentMetric_ObjectStorageQueueMetadataCacheSizeElements` ([Int64](/core/reference/data-types/int-uint)) — Size in elements of ObjectStorageQueue metadata cache. +- `CurrentMetric_DeltaLakeSnapshotCacheSizeElements` ([Int64](/core/reference/data-types/int-uint)) — Size in elements of DeltaLake snapshot cache. +- `CurrentMetric_BackupsIOThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the BackupsIO thread pool. +- `CurrentMetric_BackupsIOThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the BackupsIO thread pool running a task. +- `CurrentMetric_BackupsIOThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the BackupsIO thread pool. +- `CurrentMetric_DiskObjectStorageAsyncThreads` ([Int64](/core/reference/data-types/int-uint)) — Obsolete metric, shows nothing. +- `CurrentMetric_DiskObjectStorageAsyncThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Obsolete metric, shows nothing. +- `CurrentMetric_StorageHiveThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the StorageHive thread pool. +- `CurrentMetric_StorageHiveThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the StorageHive thread pool running a task. +- `CurrentMetric_StorageHiveThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the StorageHive thread pool. +- `CurrentMetric_TablesLoaderBackgroundThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the tables loader background thread pool. +- `CurrentMetric_TablesLoaderBackgroundThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the tables loader background thread pool running a task. +- `CurrentMetric_TablesLoaderBackgroundThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the tables loader background thread pool. +- `CurrentMetric_TablesLoaderForegroundThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the tables loader foreground thread pool. +- `CurrentMetric_TablesLoaderForegroundThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the tables loader foreground thread pool running a task. +- `CurrentMetric_TablesLoaderForegroundThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the tables loader foreground thread pool. +- `CurrentMetric_DatabaseOnDiskThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the DatabaseOnDisk thread pool. +- `CurrentMetric_DatabaseOnDiskThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the DatabaseOnDisk thread pool running a task. +- `CurrentMetric_DatabaseOnDiskThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the DatabaseOnDisk thread pool. +- `CurrentMetric_DatabaseBackupThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the DatabaseBackup thread pool. +- `CurrentMetric_DatabaseBackupThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the DatabaseBackup thread pool running a task. +- `CurrentMetric_DatabaseBackupThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the DatabaseBackup thread pool. +- `CurrentMetric_DatabaseCatalogThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the DatabaseCatalog thread pool. +- `CurrentMetric_DatabaseCatalogThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the DatabaseCatalog thread pool running a task. +- `CurrentMetric_DatabaseCatalogThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the DatabaseCatalog thread pool. +- `CurrentMetric_DestroyAggregatesThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for destroy aggregate states. +- `CurrentMetric_DestroyAggregatesThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for destroy aggregate states running a task. +- `CurrentMetric_DestroyAggregatesThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool for destroy aggregate states. +- `CurrentMetric_ConcurrentHashJoinPoolThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for concurrent hash join. +- `CurrentMetric_ConcurrentHashJoinPoolThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for concurrent hash join running a task. +- `CurrentMetric_ConcurrentHashJoinPoolThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool for concurrent hash join. +- `CurrentMetric_HashedDictionaryThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the HashedDictionary thread pool. +- `CurrentMetric_HashedDictionaryThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the HashedDictionary thread pool running a task. +- `CurrentMetric_HashedDictionaryThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the HashedDictionary thread pool. +- `CurrentMetric_CacheDictionaryThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the CacheDictionary thread pool. +- `CurrentMetric_CacheDictionaryThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the CacheDictionary thread pool running a task. +- `CurrentMetric_CacheDictionaryThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the CacheDictionary thread pool. +- `CurrentMetric_ParallelFormattingOutputFormatThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the ParallelFormattingOutputFormatThreads thread pool. +- `CurrentMetric_ParallelFormattingOutputFormatThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the ParallelFormattingOutputFormatThreads thread pool running a task. +- `CurrentMetric_ParallelFormattingOutputFormatThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the ParallelFormattingOutputFormatThreads thread pool. +- `CurrentMetric_MergeTreeBackgroundExecutorThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the MergeTreeBackgroundExecutor thread pool. +- `CurrentMetric_MergeTreeBackgroundExecutorThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the MergeTreeBackgroundExecutor thread pool running a task. +- `CurrentMetric_MergeTreeBackgroundExecutorThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the MergeTreeBackgroundExecutor thread pool. +- `CurrentMetric_AsynchronousInsertThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the AsynchronousInsert thread pool. +- `CurrentMetric_AsynchronousInsertThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the AsynchronousInsert thread pool running a task. +- `CurrentMetric_AsynchronousInsertThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the AsynchronousInsert thread pool. +- `CurrentMetric_AsynchronousInsertQueueSize` ([Int64](/core/reference/data-types/int-uint)) — Number of pending tasks in the AsynchronousInsert queue. +- `CurrentMetric_AsynchronousInsertQueueBytes` ([Int64](/core/reference/data-types/int-uint)) — Number of pending bytes in the AsynchronousInsert queue. +- `CurrentMetric_StartupSystemTablesThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the StartupSystemTables thread pool. +- `CurrentMetric_StartupSystemTablesThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the StartupSystemTables thread pool running a task. +- `CurrentMetric_StartupSystemTablesThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the StartupSystemTables thread pool. +- `CurrentMetric_AggregatorThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the Aggregator thread pool. +- `CurrentMetric_AggregatorThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the Aggregator thread pool running a task. +- `CurrentMetric_AggregatorThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the Aggregator thread pool. +- `CurrentMetric_DDLWorkerThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the DDLWorker thread pool for ON CLUSTER queries. +- `CurrentMetric_DDLWorkerThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the DDLWORKER thread pool for ON CLUSTER queries running a task. +- `CurrentMetric_DDLWorkerThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the DDLWORKER thread pool for ON CLUSTER queries. +- `CurrentMetric_StorageDistributedThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the StorageDistributed thread pool. +- `CurrentMetric_StorageDistributedThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the StorageDistributed thread pool running a task. +- `CurrentMetric_StorageDistributedThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the StorageDistributed thread pool. +- `CurrentMetric_DistributedInsertThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads used for INSERT into Distributed. +- `CurrentMetric_DistributedInsertThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads used for INSERT into Distributed running a task. +- `CurrentMetric_DistributedInsertThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs used for INSERT into Distributed. +- `CurrentMetric_StorageS3Threads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the StorageS3 thread pool. +- `CurrentMetric_StorageS3ThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the StorageS3 thread pool running a task. +- `CurrentMetric_StorageS3ThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the StorageS3 thread pool. +- `CurrentMetric_ObjectStorageS3Threads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the S3ObjectStorage thread pool. +- `CurrentMetric_ObjectStorageS3ThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the S3ObjectStorage thread pool running a task. +- `CurrentMetric_ObjectStorageS3ThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the S3ObjectStorage thread pool. +- `CurrentMetric_StorageObjectStorageThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the remote table engines thread pools. +- `CurrentMetric_StorageObjectStorageThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the remote table engines thread pool running a task. +- `CurrentMetric_StorageObjectStorageThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in remote table engines thread pool. +- `CurrentMetric_ObjectStorageAzureThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the AzureObjectStorage thread pool. +- `CurrentMetric_ObjectStorageAzureThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the AzureObjectStorage thread pool running a task. +- `CurrentMetric_ObjectStorageAzureThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the AzureObjectStorage thread pool. +- `CurrentMetric_BuildVectorSimilarityIndexThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the build vector similarity index thread pool. +- `CurrentMetric_BuildVectorSimilarityIndexThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the build vector similarity index thread pool running a task. +- `CurrentMetric_BuildVectorSimilarityIndexThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the build vector similarity index thread pool. +- `CurrentMetric_DistributedIndexAnalysisThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for distributed index analysis. +- `CurrentMetric_DistributedIndexAnalysisThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool for distributed index analysis running a task. +- `CurrentMetric_DistributedIndexAnalysisThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the distributed index analysis thread pool. +- `CurrentMetric_ObjectStorageQueueRegisteredServers` ([Int64](/core/reference/data-types/int-uint)) — Number of registered servers in StorageS3(Azure)Queue +- `CurrentMetric_IcebergCatalogThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the IcebergCatalog thread pool. +- `CurrentMetric_IcebergCatalogThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the IcebergCatalog thread pool running a task. +- `CurrentMetric_IcebergCatalogThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the IcebergCatalog thread pool. +- `CurrentMetric_IcebergSchedulePoolTask` ([Int64](/core/reference/data-types/int-uint)) — Number of tasks in the background schedule pool for Iceberg tables. +- `CurrentMetric_IcebergSchedulePoolSize` ([Int64](/core/reference/data-types/int-uint)) — Limit on number of tasks in the background schedule pool for Iceberg tables. +- `CurrentMetric_ParallelWithQueryThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for processing PARALLEL WITH queries. +- `CurrentMetric_ParallelWithQueryActiveThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for processing PARALLEL WITH queries. +- `CurrentMetric_ParallelWithQueryScheduledThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for processing PARALLEL WITH queries. +- `CurrentMetric_DiskPlainRewritableAzureDirectoryMapSize` ([Int64](/core/reference/data-types/int-uint)) — Number of local-to-remote path entries in the 'plain_rewritable' in-memory map for AzureObjectStorage. +- `CurrentMetric_DiskPlainRewritableAzureFileCount` ([Int64](/core/reference/data-types/int-uint)) — Number of file entries in the 'plain_rewritable' in-memory map for AzureObjectStorage. +- `CurrentMetric_DiskPlainRewritableLocalDirectoryMapSize` ([Int64](/core/reference/data-types/int-uint)) — Number of local-to-remote path entries in the 'plain_rewritable' in-memory map for LocalObjectStorage. +- `CurrentMetric_DiskPlainRewritableLocalFileCount` ([Int64](/core/reference/data-types/int-uint)) — Number of file entries in the 'plain_rewritable' in-memory map for LocalObjectStorage. +- `CurrentMetric_DiskPlainRewritableS3DirectoryMapSize` ([Int64](/core/reference/data-types/int-uint)) — Number of local-to-remote path entries in the 'plain_rewritable' in-memory map for S3ObjectStorage. +- `CurrentMetric_DiskPlainRewritableS3FileCount` ([Int64](/core/reference/data-types/int-uint)) — Number of file entries in the 'plain_rewritable' in-memory map for S3ObjectStorage. +- `CurrentMetric_MergeTreeFetchPartitionThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads for ALTER TABLE FETCH PARTITION +- `CurrentMetric_MergeTreeFetchPartitionThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads for ALTER TABLE FETCH PARTITION fetching part +- `CurrentMetric_MergeTreeFetchPartitionThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active part fetches in ALTER TABLE FETCH PARTITION +- `CurrentMetric_MergeTreePartsLoaderThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the MergeTree parts loader thread pool. +- `CurrentMetric_MergeTreePartsLoaderThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the MergeTree parts loader thread pool running a task. +- `CurrentMetric_MergeTreePartsLoaderThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the MergeTree parts loader thread pool. +- `CurrentMetric_MergeTreeOutdatedPartsLoaderThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for loading Outdated data parts. +- `CurrentMetric_MergeTreeOutdatedPartsLoaderThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for loading Outdated data parts. +- `CurrentMetric_MergeTreeOutdatedPartsLoaderThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for loading Outdated data parts. +- `CurrentMetric_MergeTreeUnexpectedPartsLoaderThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for loading Unexpected data parts. +- `CurrentMetric_MergeTreeUnexpectedPartsLoaderThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for loading Unexpected data parts. +- `CurrentMetric_MergeTreeUnexpectedPartsLoaderThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for loading Unexpected data parts. +- `CurrentMetric_MergeTreePartsCleanerThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the MergeTree parts cleaner thread pool. +- `CurrentMetric_MergeTreePartsCleanerThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the MergeTree parts cleaner thread pool running a task. +- `CurrentMetric_MergeTreePartsCleanerThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the MergeTree parts cleaner thread pool. +- `CurrentMetric_DatabaseReplicatedCreateTablesThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for table creation in DatabaseReplicated. +- `CurrentMetric_DatabaseReplicatedCreateTablesThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for table creation in DatabaseReplicated. +- `CurrentMetric_DatabaseReplicatedCreateTablesThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for table creation in DatabaseReplicated. +- `CurrentMetric_IDiskCopierThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads for copying data between disks of different types. +- `CurrentMetric_IDiskCopierThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads for copying data between disks of different types running a task. +- `CurrentMetric_IDiskCopierThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs for copying data between disks of different types. +- `CurrentMetric_SystemReplicasThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the system.replicas thread pool. +- `CurrentMetric_SystemDatabaseReplicasThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the system.database_replicas thread pool. +- `CurrentMetric_SystemReplicasThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the system.replicas thread pool running a task. +- `CurrentMetric_SystemDatabaseReplicasThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the system.database_replicas thread pool running a task. +- `CurrentMetric_SystemReplicasThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the system.replicas thread pool. +- `CurrentMetric_SystemDatabaseReplicasThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the system.database_replicas thread pool. +- `CurrentMetric_RestartReplicaThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the RESTART REPLICA thread pool. +- `CurrentMetric_RestartReplicaThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the RESTART REPLICA thread pool running a task. +- `CurrentMetric_RestartReplicaThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the RESTART REPLICA thread pool. +- `CurrentMetric_QueryPipelineExecutorThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the PipelineExecutor thread pool. +- `CurrentMetric_QueryPipelineExecutorThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the PipelineExecutor thread pool running a task. +- `CurrentMetric_QueryPipelineExecutorThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the PipelineExecutor thread pool. +- `CurrentMetric_ParquetEncoderThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in ParquetBlockOutputFormat thread pool. +- `CurrentMetric_ParquetEncoderThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in ParquetBlockOutputFormat thread pool running a task. +- `CurrentMetric_ParquetEncoderThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in ParquetBlockOutputFormat thread pool. +- `CurrentMetric_MergeTreeSubcolumnsReaderThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool used for subcolumns reading in MergeTree. +- `CurrentMetric_MergeTreeSubcolumnsReaderThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool used for subcolumns reading in MergeTree running a task. +- `CurrentMetric_MergeTreeSubcolumnsReaderThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool used for subcolumns reading in MergeTree. +- `CurrentMetric_FormatParsingThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool used for parsing input. +- `CurrentMetric_FormatParsingThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool used for parsing input running a task. +- `CurrentMetric_FormatParsingThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool used for parsing input. +- `CurrentMetric_OutdatedPartsLoadingThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for loading Outdated data parts. +- `CurrentMetric_OutdatedPartsLoadingThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for loading Outdated data parts. +- `CurrentMetric_OutdatedPartsLoadingThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for loading Outdated data parts. +- `CurrentMetric_FreezePartThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for freezing data parts. +- `CurrentMetric_FreezePartThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for freezing data parts. +- `CurrentMetric_FreezePartThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for freezing data parts. +- `CurrentMetric_PolygonDictionaryThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for polygon dictionaries. +- `CurrentMetric_PolygonDictionaryThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for polygon dictionaries. +- `CurrentMetric_PolygonDictionaryThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for polygon dictionaries. +- `CurrentMetric_KeeperReadThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for keeper server reads. +- `CurrentMetric_KeeperReadThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for keeper server reads. +- `CurrentMetric_KeeperReadThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for keeper server reads. Meaningless metric, the actual read tasks on this thread pool are scheduled through a different mechanism. +- `CurrentMetric_DistributedBytesToInsert` ([Int64](/core/reference/data-types/int-uint)) — Number of pending bytes to process for asynchronous insertion into Distributed tables. Number of bytes for every shard is summed. +- `CurrentMetric_BrokenDistributedBytesToInsert` ([Int64](/core/reference/data-types/int-uint)) — Number of bytes for asynchronous insertion into Distributed tables that has been marked as broken. Number of bytes for every shard is summed. +- `CurrentMetric_DistributedFilesToInsert` ([Int64](/core/reference/data-types/int-uint)) — Number of pending files to process for asynchronous insertion into Distributed tables. Number of files for every shard is summed. +- `CurrentMetric_BrokenDistributedFilesToInsert` ([Int64](/core/reference/data-types/int-uint)) — Number of files for asynchronous insertion into Distributed tables that has been marked as broken. Number of files for every shard is summed. +- `CurrentMetric_TablesToDropQueueSize` ([Int64](/core/reference/data-types/int-uint)) — Number of dropped tables, that are waiting for background data removal. +- `CurrentMetric_MaxDDLEntryID` ([Int64](/core/reference/data-types/int-uint)) — Max processed DDL entry of DDLWorker. +- `CurrentMetric_MaxPushedDDLEntryID` ([Int64](/core/reference/data-types/int-uint)) — Max DDL entry of DDLWorker that pushed to zookeeper. +- `CurrentMetric_PartsTemporary` ([Int64](/core/reference/data-types/int-uint)) — The part is generating now, it is not in data_parts list. +- `CurrentMetric_PartsPreCommitted` ([Int64](/core/reference/data-types/int-uint)) — Deprecated. See PartsPreActive. +- `CurrentMetric_PartsCommitted` ([Int64](/core/reference/data-types/int-uint)) — Deprecated. See PartsActive. +- `CurrentMetric_PartsPreActive` ([Int64](/core/reference/data-types/int-uint)) — The part is in data_parts, but not used for SELECTs. +- `CurrentMetric_PartsActive` ([Int64](/core/reference/data-types/int-uint)) — Active data part, used by current and upcoming SELECTs. +- `CurrentMetric_AttachedDatabase` ([Int64](/core/reference/data-types/int-uint)) — Active databases. +- `CurrentMetric_AttachedTable` ([Int64](/core/reference/data-types/int-uint)) — Active tables. +- `CurrentMetric_AttachedReplicatedTable` ([Int64](/core/reference/data-types/int-uint)) — Active replicated tables. +- `CurrentMetric_AttachedView` ([Int64](/core/reference/data-types/int-uint)) — Active views. +- `CurrentMetric_AttachedDictionary` ([Int64](/core/reference/data-types/int-uint)) — Active dictionaries. +- `CurrentMetric_PartsOutdated` ([Int64](/core/reference/data-types/int-uint)) — Not active data part, but could be used by only current SELECTs, could be deleted after SELECTs finishes. +- `CurrentMetric_PartsDeleting` ([Int64](/core/reference/data-types/int-uint)) — Not active data part with identity refcounter, it is deleting right now by a cleaner. +- `CurrentMetric_PartsDeleteOnDestroy` ([Int64](/core/reference/data-types/int-uint)) — Part was moved to another disk and should be deleted in own destructor. +- `CurrentMetric_PartsWide` ([Int64](/core/reference/data-types/int-uint)) — Wide parts. +- `CurrentMetric_PartsCompact` ([Int64](/core/reference/data-types/int-uint)) — Compact parts. +- `CurrentMetric_MMappedFiles` ([Int64](/core/reference/data-types/int-uint)) — Total number of mmapped files. +- `CurrentMetric_MMappedFileBytes` ([Int64](/core/reference/data-types/int-uint)) — Sum size of mmapped file regions. +- `CurrentMetric_AsynchronousReadWait` ([Int64](/core/reference/data-types/int-uint)) — Number of threads waiting for asynchronous read. +- `CurrentMetric_PendingAsyncInsert` ([Int64](/core/reference/data-types/int-uint)) — Number of asynchronous inserts that are waiting for flush. +- `CurrentMetric_KafkaConsumers` ([Int64](/core/reference/data-types/int-uint)) — Number of active Kafka consumers +- `CurrentMetric_KafkaConsumersWithAssignment` ([Int64](/core/reference/data-types/int-uint)) — Number of active Kafka consumers which have some partitions assigned. +- `CurrentMetric_KafkaProducers` ([Int64](/core/reference/data-types/int-uint)) — Number of active Kafka producer created +- `CurrentMetric_KafkaLibrdkafkaThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of active librdkafka threads +- `CurrentMetric_KafkaBackgroundReads` ([Int64](/core/reference/data-types/int-uint)) — Number of background reads currently working (populating materialized views from Kafka) +- `CurrentMetric_KafkaConsumersInUse` ([Int64](/core/reference/data-types/int-uint)) — Number of consumers which are currently used by direct or background reads +- `CurrentMetric_KafkaWrites` ([Int64](/core/reference/data-types/int-uint)) — Number of currently running inserts to Kafka +- `CurrentMetric_KafkaAssignedPartitions` ([Int64](/core/reference/data-types/int-uint)) — Number of partitions Kafka tables currently assigned to +- `CurrentMetric_FilesystemCacheReadBuffers` ([Int64](/core/reference/data-types/int-uint)) — Number of active cache buffers +- `CurrentMetric_CacheFileSegments` ([Int64](/core/reference/data-types/int-uint)) — Number of existing cache file segments +- `CurrentMetric_CacheDetachedFileSegments` ([Int64](/core/reference/data-types/int-uint)) — Number of existing detached cache file segments +- `CurrentMetric_FilesystemCacheSize` ([Int64](/core/reference/data-types/int-uint)) — Filesystem cache size in bytes +- `CurrentMetric_FilesystemCacheSizeLimit` ([Int64](/core/reference/data-types/int-uint)) — Filesystem cache size limit in bytes +- `CurrentMetric_FilesystemCacheElements` ([Int64](/core/reference/data-types/int-uint)) — Filesystem cache elements (file segments) +- `CurrentMetric_FilesystemCacheDownloadQueueElements` ([Int64](/core/reference/data-types/int-uint)) — Filesystem cache elements in download queue +- `CurrentMetric_FilesystemCacheDelayedCleanupElements` ([Int64](/core/reference/data-types/int-uint)) — Filesystem cache elements in background cleanup queue +- `CurrentMetric_FilesystemCacheHoldFileSegments` ([Int64](/core/reference/data-types/int-uint)) — Filesystem cache file segment which are currently hold as unreleasable +- `CurrentMetric_FilesystemCacheKeys` ([Int64](/core/reference/data-types/int-uint)) — Number of keys in filesystem cache +- `CurrentMetric_FilesystemCacheReserveThreads` ([Int64](/core/reference/data-types/int-uint)) — Threads number trying to reserve space in cache +- `CurrentMetric_AsyncInsertCacheSize` ([Int64](/core/reference/data-types/int-uint)) — Number of async insert hash id in cache +- `CurrentMetric_IcebergMetadataFilesCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the Iceberg metadata cache in bytes +- `CurrentMetric_IcebergMetadataFilesCacheFiles` ([Int64](/core/reference/data-types/int-uint)) — Number of cached files in the Iceberg metadata cache +- `CurrentMetric_ParquetMetadataCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the Parquet metadata cache in bytes +- `CurrentMetric_ParquetMetadataCacheFiles` ([Int64](/core/reference/data-types/int-uint)) — Number of cached files in the Parquet metadata cache +- `CurrentMetric_AvroSchemaCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the Avro schema cache in bytes +- `CurrentMetric_AvroSchemaCacheCells` ([Int64](/core/reference/data-types/int-uint)) — Number of cached Avro schemas +- `CurrentMetric_AvroSchemaRegistryCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the Avro schema registry cache in bytes +- `CurrentMetric_AvroSchemaRegistryCacheCells` ([Int64](/core/reference/data-types/int-uint)) — Number of entries in Avro schema registry cache +- `CurrentMetric_HiveFilesCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the hive cache in bytes +- `CurrentMetric_HiveFilesCacheFiles` ([Int64](/core/reference/data-types/int-uint)) — Number of cached files in the hive cache +- `CurrentMetric_HiveMetadataFilesCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the hive metadata cache in bytes +- `CurrentMetric_HiveMetadataFilesCacheFiles` ([Int64](/core/reference/data-types/int-uint)) — Number of cached files in the hive metadata cache +- `CurrentMetric_VectorSimilarityIndexCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the vector similarity index cache in bytes +- `CurrentMetric_VectorSimilarityIndexCacheCells` ([Int64](/core/reference/data-types/int-uint)) — Number of entries in the vector similarity index cache +- `CurrentMetric_TextIndexTokensCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the text index tokens cache in bytes +- `CurrentMetric_TextIndexTokensCacheCells` ([Int64](/core/reference/data-types/int-uint)) — Number of entries in the text index tokens cache +- `CurrentMetric_TextIndexHeaderCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the text index header cache in bytes +- `CurrentMetric_TextIndexHeaderCacheCells` ([Int64](/core/reference/data-types/int-uint)) — Number of entries in text index header cache +- `CurrentMetric_TextIndexPostingsCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the text index posting lists cache in bytes +- `CurrentMetric_TextIndexPostingsCacheCells` ([Int64](/core/reference/data-types/int-uint)) — Number of entries in the text index posting lists cache +- `CurrentMetric_DNSHostsCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the DNS hosts cache in bytes +- `CurrentMetric_DNSHostsCacheSize` ([Int64](/core/reference/data-types/int-uint)) — Number of cached DNS hosts +- `CurrentMetric_DNSAddressesCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Size of the DNS addresses cache in bytes +- `CurrentMetric_DNSAddressesCacheSize` ([Int64](/core/reference/data-types/int-uint)) — Number of cached DNS addresses +- `CurrentMetric_MarkCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Total size of mark cache in bytes +- `CurrentMetric_MarkCacheFiles` ([Int64](/core/reference/data-types/int-uint)) — Total number of mark files cached in the mark cache +- `CurrentMetric_NamedCollection` ([Int64](/core/reference/data-types/int-uint)) — Number of named collections +- `CurrentMetric_PrimaryIndexCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Total size of primary index cache in bytes +- `CurrentMetric_PrimaryIndexCacheFiles` ([Int64](/core/reference/data-types/int-uint)) — Total number of index files cached in the primary index cache +- `CurrentMetric_PageCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Total size of userspace page cache in bytes +- `CurrentMetric_PageCacheCells` ([Int64](/core/reference/data-types/int-uint)) — Total number of entries in the userspace page cache +- `CurrentMetric_UncompressedCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Total size of uncompressed cache in bytes. Uncompressed cache does not usually improve the performance and should be mostly avoided +- `CurrentMetric_UncompressedCacheCells` ([Int64](/core/reference/data-types/int-uint)) — Total number of entries in the uncompressed cache. Each entry represents a decompressed block of data. Uncompressed cache does not usually improve performance and should be mostly avoided +- `CurrentMetric_IndexMarkCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Total size of mark cache for secondary indices in bytes +- `CurrentMetric_IndexMarkCacheFiles` ([Int64](/core/reference/data-types/int-uint)) — Total number of mark files cached in the mark cache for secondary indices +- `CurrentMetric_IndexUncompressedCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Total size of uncompressed cache in bytes for secondary indices. Uncompressed cache does not usually improve the performance and should be mostly avoided +- `CurrentMetric_IndexUncompressedCacheCells` ([Int64](/core/reference/data-types/int-uint)) — Total number of entries in the uncompressed cache for secondary indices. Each entry represents a decompressed block of data. Uncompressed cache does not usually improve performance and should be mostly avoided +- `CurrentMetric_MMapCacheCells` ([Int64](/core/reference/data-types/int-uint)) — The number of files opened with `mmap` (mapped in memory). This is used for queries with the setting `local_filesystem_read_method` set to `mmap`. The files opened with `mmap` are kept in the cache to avoid costly TLB flushes. +- `CurrentMetric_QueryCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Total size of the query cache in bytes +- `CurrentMetric_QueryCacheEntries` ([Int64](/core/reference/data-types/int-uint)) — Total number of entries in the query cache +- `CurrentMetric_QueryConditionCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Total size of the query condition cache in bytes +- `CurrentMetric_QueryConditionCacheEntries` ([Int64](/core/reference/data-types/int-uint)) — Total number of entries in the query condition cache +- `CurrentMetric_CompiledExpressionCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Total bytes used for the cache of JIT-compiled code +- `CurrentMetric_CompiledExpressionCacheCount` ([Int64](/core/reference/data-types/int-uint)) — Total entries in the cache of JIT-compiled code +- `CurrentMetric_SerializationCacheBytesInMemoryAllocated` ([Int64](/core/reference/data-types/int-uint)) — Total size of the serialization cache in bytes including keys and overhead from empty slots +- `CurrentMetric_SerializationCacheBytesInMemory` ([Int64](/core/reference/data-types/int-uint)) — Total size of the serialization cache in bytes including only the values +- `CurrentMetric_SerializationCacheCount` ([Int64](/core/reference/data-types/int-uint)) — Total number of entries in the serialization cache +- `CurrentMetric_MergeJoinBlocksCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Total bytes used for cached blocks in MergeJoin +- `CurrentMetric_MergeJoinBlocksCacheCount` ([Int64](/core/reference/data-types/int-uint)) — Total cached blocks in MergeJoin +- `CurrentMetric_BcryptCacheBytes` ([Int64](/core/reference/data-types/int-uint)) — Total size of the bcrypt authentication cache in bytes +- `CurrentMetric_BcryptCacheSize` ([Int64](/core/reference/data-types/int-uint)) — Total number of entries in the bcrypt authentication cache +- `CurrentMetric_ColumnsDescriptionsCacheSize` ([Int64](/core/reference/data-types/int-uint)) — Size of ColumnsDescriptions cache (per-table cache) +- `CurrentMetric_S3Requests` ([Int64](/core/reference/data-types/int-uint)) — S3 requests count +- `CurrentMetric_KeeperAliveConnections` ([Int64](/core/reference/data-types/int-uint)) — Number of alive connections +- `CurrentMetric_KeeperOutstandingRequests` ([Int64](/core/reference/data-types/int-uint)) — Number of outstanding requests +- `CurrentMetric_ThreadsInOvercommitTracker` ([Int64](/core/reference/data-types/int-uint)) — Number of waiting threads inside of OvercommitTracker +- `CurrentMetric_IOUringPendingEvents` ([Int64](/core/reference/data-types/int-uint)) — Number of io_uring SQEs waiting to be submitted +- `CurrentMetric_IOUringInFlightEvents` ([Int64](/core/reference/data-types/int-uint)) — Number of io_uring SQEs in flight +- `CurrentMetric_ReadTaskRequestsSent` ([Int64](/core/reference/data-types/int-uint)) — The current number of callback requests in flight from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the remote server side. +- `CurrentMetric_MergeTreeReadTaskRequestsSent` ([Int64](/core/reference/data-types/int-uint)) — The current number of callback requests in flight from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the remote server side. +- `CurrentMetric_MergeTreeAllRangesAnnouncementsSent` ([Int64](/core/reference/data-types/int-uint)) — The current number of announcement being sent in flight from the remote server to the initiator server about the set of data parts (for MergeTree tables). Measured on the remote server side. +- `CurrentMetric_CreatedTimersInQueryProfiler` ([Int64](/core/reference/data-types/int-uint)) — Number of Created thread local timers in QueryProfiler +- `CurrentMetric_ActiveTimersInQueryProfiler` ([Int64](/core/reference/data-types/int-uint)) — Number of Active thread local timers in QueryProfiler +- `CurrentMetric_RefreshableViews` ([Int64](/core/reference/data-types/int-uint)) — Number materialized views with periodic refreshing (REFRESH) +- `CurrentMetric_RefreshingViews` ([Int64](/core/reference/data-types/int-uint)) — Number of materialized views currently executing a refresh +- `CurrentMetric_StorageBufferFlushThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads for background flushes in StorageBuffer +- `CurrentMetric_StorageBufferFlushThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads for background flushes in StorageBuffer running a task +- `CurrentMetric_StorageBufferFlushThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active threads for background flushes in StorageBuffer +- `CurrentMetric_SharedMergeTreeThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pools in internals of SharedMergeTree +- `CurrentMetric_SharedMergeTreeThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pools in internals of SharedMergeTree running a task +- `CurrentMetric_SharedMergeTreeThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active threads in the thread pools in internals of SharedMergeTree +- `CurrentMetric_SharedMergeTreeFetch` ([Int64](/core/reference/data-types/int-uint)) — Number of fetches in progress +- `CurrentMetric_SharedMergeTreeAssignedCurrentParts` ([Int64](/core/reference/data-types/int-uint)) — Number of parts locked by merge or mutation +- `CurrentMetric_SharedMergeTreeOutdatedPartsInKeeper` ([Int64](/core/reference/data-types/int-uint)) — How many outdated part records stored in keeper +- `CurrentMetric_SharedMergeTreeCondemnedPartsInKeeper` ([Int64](/core/reference/data-types/int-uint)) — How many condemned part records stored in keeper +- `CurrentMetric_SharedMergeTreeBrokenCondemnedPartsInKeeper` ([Int64](/core/reference/data-types/int-uint)) — How many broken condemned part records stored in keeper +- `CurrentMetric_SharedMergeTreeMaxActiveReplicas` ([Int64](/core/reference/data-types/int-uint)) — The maximum number of active replicas registered in Keeper +- `CurrentMetric_SharedMergeTreeMaxInactiveReplicas` ([Int64](/core/reference/data-types/int-uint)) — The maximum number of inactive replicas registered in Keeper +- `CurrentMetric_SharedMergeTreeMaxReplicas` ([Int64](/core/reference/data-types/int-uint)) — The maximum number of replicas registered in Keeper across all tables. Note it might not be a sum of SharedMergeTreeMaxActiveReplicas and SharedMergeTreeMaxInactiveReplicas +- `CurrentMetric_SharedMergeTreeMinActiveReplicas` ([Int64](/core/reference/data-types/int-uint)) — The minimum number of active replicas registered in Keeper +- `CurrentMetric_SharedMergeTreeMinInactiveReplicas` ([Int64](/core/reference/data-types/int-uint)) — The minimum number of inactive replicas registered in Keeper +- `CurrentMetric_SharedMergeTreeMinReplicas` ([Int64](/core/reference/data-types/int-uint)) — The minimum number of replicas registered in Keeper across all tables. Note it might not be a sum of SharedMergeTreeMinActiveReplicas and SharedMergeTreeMinInactiveReplicas +- `CurrentMetric_SharedMergeTreeMinPartitions` ([Int64](/core/reference/data-types/int-uint)) — The minimum number of partitions registered in Keeper across all SharedMergeTree tables +- `CurrentMetric_SharedMergeTreeMaxPartitions` ([Int64](/core/reference/data-types/int-uint)) — The maximum number of partitions registered in Keeper across all SharedMergeTree tables +- `CurrentMetric_CacheWarmerBytesInProgress` ([Int64](/core/reference/data-types/int-uint)) — Total size of remote file segments waiting to be asynchronously loaded into filesystem cache. +- `CurrentMetric_DistrCacheOpenedConnections` ([Int64](/core/reference/data-types/int-uint)) — Number of open connections to Distributed Cache +- `CurrentMetric_DistrCacheSharedLimitCount` ([Int64](/core/reference/data-types/int-uint)) — Number of opened connections according to DistributedCache::ConnectionPool::SharedLimit +- `CurrentMetric_DistrCacheUsedConnections` ([Int64](/core/reference/data-types/int-uint)) — Number of currently used connections to Distributed Cache +- `CurrentMetric_DistrCacheAllocatedConnections` ([Int64](/core/reference/data-types/int-uint)) — Number of currently allocated connections to Distributed Cache connection pool +- `CurrentMetric_DistrCacheBorrowedConnections` ([Int64](/core/reference/data-types/int-uint)) — Number of currently borrowed connections to Distributed Cache connection pool +- `CurrentMetric_DistrCacheReadRequests` ([Int64](/core/reference/data-types/int-uint)) — Number of executed Read requests to Distributed Cache +- `CurrentMetric_DistrCacheWriteRequests` ([Int64](/core/reference/data-types/int-uint)) — Number of executed Write requests to Distributed Cache +- `CurrentMetric_DistrCacheWriteBuffers` ([Int64](/core/reference/data-types/int-uint)) — Number of distributed cache write buffers +- `CurrentMetric_DistrCacheReadBuffers` ([Int64](/core/reference/data-types/int-uint)) — Number of distributed cache read buffers +- `CurrentMetric_DistrCacheServerConnections` ([Int64](/core/reference/data-types/int-uint)) — Number of open connections to ClickHouse server from Distributed Cache +- `CurrentMetric_DistrCacheRegisteredServers` ([Int64](/core/reference/data-types/int-uint)) — Number of distributed cache registered servers +- `CurrentMetric_DistrCacheRegisteredServersCurrentAZ` ([Int64](/core/reference/data-types/int-uint)) — Number of distributed cache registered servers in current az +- `CurrentMetric_DistrCacheServerS3CachedClients` ([Int64](/core/reference/data-types/int-uint)) — Number of distributed cache S3 cached clients +- `CurrentMetric_DistrCacheServerRegistryConnections` ([Int64](/core/reference/data-types/int-uint)) — Number of active connections to ClickHouse server from Distributed Cache (not marked as cancelled because of limit) +- `CurrentMetric_SchedulerIOReadScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of IO reads are being scheduled currently +- `CurrentMetric_SchedulerIOWriteScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of IO writes are being scheduled currently +- `CurrentMetric_StorageConnectionsStored` ([Int64](/core/reference/data-types/int-uint)) — Total count of sessions stored in the session pool for storages +- `CurrentMetric_StorageConnectionsTotal` ([Int64](/core/reference/data-types/int-uint)) — Total count of all sessions: stored in the pool and actively used right now for storages +- `CurrentMetric_DiskConnectionsStored` ([Int64](/core/reference/data-types/int-uint)) — Total count of sessions stored in the session pool for disks +- `CurrentMetric_DiskConnectionsTotal` ([Int64](/core/reference/data-types/int-uint)) — Total count of all sessions: stored in the pool and actively used right now for disks +- `CurrentMetric_BlobKillerThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool of the object storage disk background removal process +- `CurrentMetric_BlobKillerThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool of the object storage disk background removal process running a task +- `CurrentMetric_BlobKillerThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active tasks in the thread pool of the object storage disk background removal process +- `CurrentMetric_BlobCopierThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool of the object storage disk background replication process +- `CurrentMetric_BlobCopierThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the thread pool of the object storage disk background replication process running a task +- `CurrentMetric_BlobCopierThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active tasks in the thread pool of the object storage disk background replication process +- `CurrentMetric_HTTPConnectionsStored` ([Int64](/core/reference/data-types/int-uint)) — Total count of sessions stored in the session pool for http hosts +- `CurrentMetric_HTTPConnectionsTotal` ([Int64](/core/reference/data-types/int-uint)) — Total count of all sessions: stored in the pool and actively used right now for http hosts +- `CurrentMetric_AddressesActive` ([Int64](/core/reference/data-types/int-uint)) — Total count of addresses which are used for creation connections with connection pools +- `CurrentMetric_AddressesBanned` ([Int64](/core/reference/data-types/int-uint)) — Total count of addresses which are banned as faulty for creation connections with connection pools +- `CurrentMetric_FilteringMarksWithPrimaryKey` ([Int64](/core/reference/data-types/int-uint)) — Number of threads currently doing filtering of mark ranges by the primary key +- `CurrentMetric_FilteringMarksWithSecondaryKeys` ([Int64](/core/reference/data-types/int-uint)) — Number of threads currently doing filtering of mark ranges by secondary keys +- `CurrentMetric_ConcurrencyControlScheduled` ([Int64](/core/reference/data-types/int-uint)) — Total number of CPU slot requests are being scheduled currently +- `CurrentMetric_ConcurrencyControlAcquired` ([Int64](/core/reference/data-types/int-uint)) — Total number of acquired CPU slots +- `CurrentMetric_ConcurrencyControlAcquiredNonCompeting` ([Int64](/core/reference/data-types/int-uint)) — Total number of acquired CPU slots that are not considered competing (the first thread if fair_round_robin scheduler is in use) +- `CurrentMetric_ConcurrencyControlSoftLimit` ([Int64](/core/reference/data-types/int-uint)) — Value of soft limit on number of CPU slots +- `CurrentMetric_ConcurrencyControlPreempted` ([Int64](/core/reference/data-types/int-uint)) — Total number of preempted threads waiting for CPU slot +- `CurrentMetric_ConcurrentQueryScheduled` ([Int64](/core/reference/data-types/int-uint)) — Total number of query slot requests are being scheduled currently +- `CurrentMetric_ConcurrentQueryAcquired` ([Int64](/core/reference/data-types/int-uint)) — Total number of acquired query slots +- `CurrentMetric_DiskS3NoSuchKeyErrors` ([Int64](/core/reference/data-types/int-uint)) — The number of `NoSuchKey` errors that occur when reading data from S3 cloud storage through ClickHouse disks. +- `CurrentMetric_SharedCatalogStateApplicationThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for state application in Shared Catalog. +- `CurrentMetric_SharedCatalogStateApplicationThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for state application in Shared Catalog. +- `CurrentMetric_SharedCatalogStateApplicationThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for state application in Shared Catalog. +- `CurrentMetric_SharedCatalogDropLocalThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for drop of local tables in Shared Catalog. +- `CurrentMetric_SharedCatalogDropLocalThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for drop of local tables in Shared Catalog. +- `CurrentMetric_SharedCatalogDropLocalThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for drop of local tables in Shared Catalog. +- `CurrentMetric_SharedCatalogDropZooKeeperThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for drop of object in ZooKeeper in Shared Catalog. +- `CurrentMetric_SharedCatalogDropZooKeeperThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for drop of object in ZooKeeper in Shared Catalog. +- `CurrentMetric_SharedCatalogDropZooKeeperThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for drop of object in ZooKeeper in Shared Catalog. +- `CurrentMetric_CoordinatedMergesCoordinatorRunningMerges` ([Int64](/core/reference/data-types/int-uint)) — Number of running merges visible for merge coordinator. +- `CurrentMetric_CoordinatedMergesCoordinatorAssignedMerges` ([Int64](/core/reference/data-types/int-uint)) — Number of assigned merges in merge coordinator state. +- `CurrentMetric_CoordinatedMergesWorkerAssignedMerges` ([Int64](/core/reference/data-types/int-uint)) — Number of assigned merges in merge worker state. +- `CurrentMetric_SharedDatabaseCatalogTablesInLocalDropDetachQueue` ([Int64](/core/reference/data-types/int-uint)) — Number of tables in the queue for local drop or detach in Shared Catalog. +- `CurrentMetric_SharedCatalogDropDetachLocalTablesErrors` ([Int64](/core/reference/data-types/int-uint)) — Number of errors that occurred when attempting to drop or detach local tables in Shared Catalog. +- `CurrentMetric_SharedCatalogNumberOfObjectsInState` ([Int64](/core/reference/data-types/int-uint)) — Number of objects in the current state of Shared Catalog. +- `CurrentMetric_MetadataFromKeeperCacheObjects` ([Int64](/core/reference/data-types/int-uint)) — Number of objects in disk metadata cache. +- `CurrentMetric_LicenseRemainingSeconds` ([Int64](/core/reference/data-types/int-uint)) — Remaining seconds of the license validity period. +- `CurrentMetric_StartupScriptsExecutionState` ([Int64](/core/reference/data-types/int-uint)) — State of startup scripts execution: 0 = not finished, 1 = success, 2 = failure. +- `CurrentMetric_IsServerShuttingDown` ([Int64](/core/reference/data-types/int-uint)) — Indicates if the server is shutting down: 0 = no, 1 = yes +- `CurrentMetric_StatelessWorkerThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the stateless worker thread pool. +- `CurrentMetric_StatelessWorkerThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the stateless worker thread pool running a task. +- `CurrentMetric_StatelessWorkerThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the stateless worker thread pool. +- `CurrentMetric_ReadonlyDisks` ([Int64](/core/reference/data-types/int-uint)) — Number of disks that were marked as readonly during disk check. +- `CurrentMetric_BrokenDisks` ([Int64](/core/reference/data-types/int-uint)) — Number of disks disks that were marked as broken during disk check. +- `CurrentMetric_TaskTrackerThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads used by the distributed query remote task tracker. +- `CurrentMetric_TaskTrackerThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the distributed query remote task tracker thread pool running a task. +- `CurrentMetric_TaskTrackerThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the distributed query remote task tracker thread pool. +- `CurrentMetric_DropDistributedCacheThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads in the threadpool for drop distributed cache query. +- `CurrentMetric_DropDistributedCacheThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads in the threadpool for drop distributed cache query. +- `CurrentMetric_DropDistributedCacheThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for drop distributed cache. +- `CurrentMetric_S3CachedCredentialsProviders` ([Int64](/core/reference/data-types/int-uint)) — Total number of cached credentials providers +- `CurrentMetric_MergeTreeSnapshotCommitThreads` ([Int64](/core/reference/data-types/int-uint)) — Number of threads used to commit snapshot +- `CurrentMetric_MergeTreeSnapshotCommitThreadsActive` ([Int64](/core/reference/data-types/int-uint)) — Number of active threads used to commit snapshot +- `CurrentMetric_MergeTreeSnapshotCommitThreadsScheduled` ([Int64](/core/reference/data-types/int-uint)) — Number of scheduled threads used to commit snapshot +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.metric_log LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +hostname: clickhouse.eu-central1.internal +event_date: 2020-09-05 +event_time: 2020-09-05 16:22:33 +event_time_microseconds: 2020-09-05 16:22:33.196807 +milliseconds: 196 +ProfileEvent_Query: 0 +ProfileEvent_SelectQuery: 0 +ProfileEvent_InsertQuery: 0 +ProfileEvent_FailedQuery: 0 +ProfileEvent_FailedSelectQuery: 0 +... +... +CurrentMetric_Revision: 54439 +CurrentMetric_VersionInteger: 20009001 +CurrentMetric_RWLockWaitingReaders: 0 +CurrentMetric_RWLockWaitingWriters: 0 +CurrentMetric_RWLockActiveReaders: 0 +CurrentMetric_RWLockActiveWriters: 0 +CurrentMetric_GlobalThread: 74 +CurrentMetric_GlobalThreadActive: 26 +CurrentMetric_LocalThread: 0 +CurrentMetric_LocalThreadActive: 0 +CurrentMetric_DistributedFilesToInsert: 0 +``` + +**Schema** +This table can be configured with different schema types using the XML tag ``. The default schema type is `wide`, where each metric or profile event is stored as a separate column. This schema is the most performant and efficient for single-column reads. + +The `transposed` schema stores data in a format similar to `system.asynchronous_metric_log`, where metrics and events are stored as rows. This schema is useful for low-resource setups because it reduces resource consumption during merges. + +**Histograms** + +Each row also carries a snapshot of every registered histogram metric in a `histograms` Nested column with fields `metric`, `labels`, `histogram`, `count`, and `sum`. Bucket counts are cumulative since server startup. By default, histograms whose total `count` is zero are not emitted, and zero-counter buckets within an emitted histogram are omitted from the `histogram` map; set `system_metric_log_show_zero_values_in_histograms = 1` (in the default user profile) to keep all histograms and all buckets. + +Example query: + +```sql +SELECT h.metric, h.labels, h.histogram, h.count, h.sum +FROM system.metric_log +ARRAY JOIN histograms AS h +WHERE h.metric = 'keeper_response_time_ms' AND h.labels['operation_type'] = 'readonly' +ORDER BY event_time DESC +LIMIT 1; +``` + +## See Also {#see-also} + +- [metric_log setting](/core/reference/settings/server-settings/settings#metric_log) — Enabling and disabling the setting. +- [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) — Contains periodically calculated metrics. +- [system.events](/core/reference/system-tables/events) — Contains a number of events that occurred. +- [system.metrics](/core/reference/system-tables/metrics) — Contains instantly calculated metrics. +- [Monitoring](/core/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. diff --git a/reference/system-tables/metrics.mdx b/core/reference/system-tables/metrics.mdx similarity index 99% rename from reference/system-tables/metrics.mdx rename to core/reference/system-tables/metrics.mdx index a9187c61..9eecf09f 100644 --- a/reference/system-tables/metrics.mdx +++ b/core/reference/system-tables/metrics.mdx @@ -18,9 +18,9 @@ Contains metrics which can be calculated instantly, or have a current value. For ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `metric` ([String](/reference/data-types)) — Metric name. -- `value` ([Int64](/reference/data-types)) — Metric value. -- `description` ([String](/reference/data-types)) — Metric description. +- `metric` ([String](/core/reference/data-types)) — Metric name. +- `value` ([Int64](/core/reference/data-types)) — Metric value. +- `description` ([String](/core/reference/data-types)) — Metric description. {/*AUTOGENERATED_END*/} You can find all supported metrics in source file [src/Common/CurrentMetrics.cpp](https://github.com/ClickHouse/ClickHouse/blob/master/src/Common/CurrentMetrics.cpp). diff --git a/reference/system-tables/models.mdx b/core/reference/system-tables/models.mdx similarity index 54% rename from reference/system-tables/models.mdx rename to core/reference/system-tables/models.mdx index ffa243da..7dace07c 100644 --- a/reference/system-tables/models.mdx +++ b/core/reference/system-tables/models.mdx @@ -13,8 +13,8 @@ Contains a list of CatBoost models loaded into a LibraryBridge's memory along wi ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `model_path` ([String](/reference/data-types)) — Path to trained model. -- `type` ([String](/reference/data-types)) — Model type. Now catboost only. -- `loading_start_time` ([DateTime](/reference/data-types)) — The time when the loading of the model started. -- `loading_duration` ([Float32](/reference/data-types)) — How much time did it take to load the model. +- `model_path` ([String](/core/reference/data-types)) — Path to trained model. +- `type` ([String](/core/reference/data-types)) — Model type. Now catboost only. +- `loading_start_time` ([DateTime](/core/reference/data-types)) — The time when the loading of the model started. +- `loading_duration` ([Float32](/core/reference/data-types)) — How much time did it take to load the model. {/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/moves.mdx b/core/reference/system-tables/moves.mdx new file mode 100644 index 00000000..3e668c06 --- /dev/null +++ b/core/reference/system-tables/moves.mdx @@ -0,0 +1,43 @@ +--- +description: 'System table containing information about in-progress data part moves + of MergeTree tables. Each data part movement is represented by a single row.' +keywords: ['system table', 'moves'] +slug: /operations/system-tables/moves +title: 'system.moves' +doc_type: 'reference' +--- + +## Description {#description} + +The table contains information about in-progress [data part moves](/core/reference/statements/alter/partition#move-partitionpart) of [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables. Each data part movement is represented by a single row. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — Name of the database. +- `table` ([String](/core/reference/data-types)) — Name of the table containing moving data part. +- `elapsed` ([Float64](/core/reference/data-types)) — Time elapsed (in seconds) since data part movement started. +- `target_disk_name` ([String](/core/reference/data-types)) — Name of disk to which the data part is moving. +- `target_disk_path` ([String](/core/reference/data-types)) — Path to the mount point of the disk in the file system. +- `part_name` ([String](/core/reference/data-types)) — Name of the data part being moved. +- `part_size` ([UInt64](/core/reference/data-types)) — Data part size. +- `thread_id` ([UInt64](/core/reference/data-types)) — Identifier of a thread performing the movement. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.moves +``` + +```response +┌─database─┬─table─┬─────elapsed─┬─target_disk_name─┬─target_disk_path─┬─part_name─┬─part_size─┬─thread_id─┐ +│ default │ test2 │ 1.668056039 │ s3 │ ./disks/s3/ │ all_3_3_0 │ 136 │ 296146 │ +└──────────┴───────┴─────────────┴──────────────────┴──────────────────┴───────────┴───────────┴───────────┘ +``` + +## See Also {#see-also} + +- [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) table engine +- [Using Multiple Block Devices for Data Storage](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes) +- [ALTER TABLE ... MOVE PART](/core/reference/statements/alter/partition#move-partitionpart) command diff --git a/core/reference/system-tables/mutations.mdx b/core/reference/system-tables/mutations.mdx new file mode 100644 index 00000000..a702c30c --- /dev/null +++ b/core/reference/system-tables/mutations.mdx @@ -0,0 +1,87 @@ +--- +description: 'System table containing information about mutations of MergeTree tables + and their progress. Each mutation command is represented by a single row.' +keywords: ['system table', 'mutations'] +slug: /operations/system-tables/mutations +title: 'system.mutations' +doc_type: 'reference' +--- + +## Description {#description} + +The table contains information about [mutations](/core/reference/statements/alter#mutations) of [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables and their progress. Each mutation command is represented by a single row. + +## Columns: {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — The name of the database to which the mutation was applied. +- `table` ([String](/core/reference/data-types)) — The name of the table to which the mutation was applied. +- `mutation_id` ([String](/core/reference/data-types)) — The ID of the mutation. For replicated tables these IDs correspond to znode names in the `/mutations/` directory in ClickHouse Keeper. For non-replicated tables the IDs correspond to file names in the data directory of the table. +- `command` ([String](/core/reference/data-types)) — The mutation command string (the part of the query after ALTER TABLE [db.]table). +- `create_time` ([DateTime](/core/reference/data-types)) — Date and time when the mutation command was submitted for execution. +- `block_numbers.partition_id` ([Array(String)](/core/reference/data-types)) — For mutations of replicated tables, the array contains the partitions' IDs (one record for each partition). For mutations of non-replicated tables the array is empty. +- `block_numbers.number` ([Array(Int64)](/core/reference/data-types)) — For mutations of replicated tables, the array contains one record for each partition, with the block number that was acquired by the mutation. Only parts that contain blocks with numbers less than this number will be mutated in the partition.In non-replicated tables, block numbers in all partitions form a single sequence. This means that for mutations of non-replicated tables, the column will contain one record with a single block number acquired by the mutation. +- `parts_in_progress_names` ([Array(String)](/core/reference/data-types)) — An array of names of data parts that are currently being mutated. +- `parts_to_do_names` ([Array(String)](/core/reference/data-types)) — An array of names of data parts that need to be mutated for the mutation to complete. +- `parts_to_do` ([Int64](/core/reference/data-types)) — The number of data parts that need to be mutated for the mutation to complete. Note: even if `parts_to_do` = 0, a mutation of a replicated table may not be completed yet due to a long-running INSERT that is creating a new data part that will need to be mutated. +- `parts_postpone_reasons` ([Map(String, String)](/core/reference/data-types)) — A map of part names to reasons why they are postponed. +- `is_done` ([UInt8](/core/reference/data-types)) — The flag whether the mutation is done or not. Possible values: 1 if the mutation is completed, 0 if the mutation is still in process. +- `is_killed` ([UInt8](/core/reference/data-types)) — Indicates whether a mutation has been killed. Only available in ClickHouse Cloud.Note: is_killed=1 does not necessarily mean the mutation is completely finalized.It is possible for a mutation to remain in a state where is_killed=1 and is_done=0 for an extended period.This can occur if another long-running mutation is blocking the killed mutation. This is a normal situation. +- `latest_failed_part` ([String](/core/reference/data-types)) — The name of the most recent part that could not be mutated. +- `latest_fail_time` ([DateTime](/core/reference/data-types)) — The date and time of the most recent part mutation failure. +- `latest_fail_reason` ([String](/core/reference/data-types)) — The exception message that caused the most recent part mutation failure. +- `latest_fail_error_code_name` ([String](/core/reference/data-types)) — The error code of the exception that caused the most recent part mutation failure. +{/*AUTOGENERATED_END*/} + + +- If a part name is not in `parts_postpone_reasons` and has not yet been mutated, it means the part is yet not scheduled for mutation. +- The part name `all_parts` represents all parts that have not yet been mutated. + + +- `is_killed` ([UInt8](/core/reference/data-types/int-uint)) — Indicates whether a mutation has been killed. **Only available in ClickHouse Cloud.** + + +`is_killed=1` does not necessarily mean the mutation is completely finalized. It is possible for a mutation to remain in a state where `is_killed=1` and `is_done=0` for an extended period. This can happen if another long-running mutation is blocking the killed mutation. This is a normal situation. + + +- `is_done` ([UInt8](/core/reference/data-types/int-uint)) — The flag whether the mutation is done or not. Possible values: + - `1` if the mutation is completed, + - `0` if the mutation is still in process. + + +Even if `parts_to_do = 0` it is possible that a mutation of a replicated table is not completed yet because of a long-running `INSERT` query, that will create a new data part needed to be mutated. + + +If there were problems with mutating some data parts, the following columns contain additional information: + +- `latest_failed_part` ([String](/core/reference/data-types/string)) — The name of the most recent part that could not be mutated. +- `latest_fail_time` ([DateTime](/core/reference/data-types/datetime)) — The date and time of the most recent part mutation failure. +- `latest_fail_reason` ([String](/core/reference/data-types/string)) — The exception message that caused the most recent part mutation failure. + +## Monitoring Mutations {#monitoring-mutations} + +To track the progress on the `system.mutations` table, use the following query: + +```sql +SELECT * FROM clusterAllReplicas('cluster_name', 'system', 'mutations') +WHERE is_done = 0 AND table = 'tmp'; + +-- or + +SELECT * FROM clusterAllReplicas('cluster_name', 'system.mutations') +WHERE is_done = 0 AND table = 'tmp'; +``` + +Note: this requires read permissions on the `system.*` tables. + + +**Cloud usage** + +In ClickHouse Cloud the `system.mutations` table on each node has all the mutations in the cluster, and there is no need for `clusterAllReplicas`. + + +## See Also {#see-also} + +- [Mutations](/core/reference/statements/alter#mutations) +- [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) table engine +- [ReplicatedMergeTree](/core/reference/engines/table-engines/mergetree-family/replication) family diff --git a/reference/system-tables/named_collections.mdx b/core/reference/system-tables/named_collections.mdx similarity index 59% rename from reference/system-tables/named_collections.mdx rename to core/reference/system-tables/named_collections.mdx index b19919e9..afabcaa0 100644 --- a/reference/system-tables/named_collections.mdx +++ b/core/reference/system-tables/named_collections.mdx @@ -13,8 +13,8 @@ Contains a list of all named collections which were created via SQL query or par ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Name of the collection. -- `collection` ([Map(String, String)](/reference/data-types)) — Collection internals. -- `source` ([String](/reference/data-types)) — Named collection source. -- `create_query` ([String](/reference/data-types)) — Named collection create query. +- `name` ([String](/core/reference/data-types)) — Name of the collection. +- `collection` ([Map(String, String)](/core/reference/data-types)) — Collection internals. +- `source` ([String](/core/reference/data-types)) — Named collection source. +- `create_query` ([String](/core/reference/data-types)) — Named collection create query. {/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/numbers.mdx b/core/reference/system-tables/numbers.mdx similarity index 100% rename from reference/system-tables/numbers.mdx rename to core/reference/system-tables/numbers.mdx diff --git a/reference/system-tables/numbers_mt.mdx b/core/reference/system-tables/numbers_mt.mdx similarity index 83% rename from reference/system-tables/numbers_mt.mdx rename to core/reference/system-tables/numbers_mt.mdx index 5c00388f..3f12227c 100644 --- a/reference/system-tables/numbers_mt.mdx +++ b/core/reference/system-tables/numbers_mt.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Description {#description} -The same as [`system.numbers`](/reference/system-tables/numbers) but reads are parallelized. The numbers can be returned in any order. +The same as [`system.numbers`](/core/reference/system-tables/numbers) but reads are parallelized. The numbers can be returned in any order. Used for tests. diff --git a/reference/system-tables/one.mdx b/core/reference/system-tables/one.mdx similarity index 100% rename from reference/system-tables/one.mdx rename to core/reference/system-tables/one.mdx diff --git a/core/reference/system-tables/opentelemetry_span_log.mdx b/core/reference/system-tables/opentelemetry_span_log.mdx new file mode 100644 index 00000000..68746d47 --- /dev/null +++ b/core/reference/system-tables/opentelemetry_span_log.mdx @@ -0,0 +1,62 @@ +--- +description: 'System table containing information about trace spans for executed queries.' +keywords: ['system table', 'opentelemetry_span_log'] +slug: /operations/system-tables/opentelemetry_span_log +title: 'system.opentelemetry_span_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about [trace spans](https://opentracing.io/docs/overview/spans/) for executed queries. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — The hostname where this span was captured. +- `trace_id` ([UUID](/core/reference/data-types/uuid)) — ID of the trace for executed query. +- `span_id` ([UInt64](/core/reference/data-types/int-uint)) — ID of the trace span. +- `parent_span_id` ([UInt64](/core/reference/data-types/int-uint)) — ID of the parent trace span. +- `operation_name` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — The name of the operation. +- `kind` ([Enum8('INTERNAL' = 0, 'SERVER' = 1, 'CLIENT' = 2, 'PRODUCER' = 3, 'CONSUMER' = 4)](/core/reference/data-types/enum)) — The SpanKind of the span. INTERNAL — Indicates that the span represents an internal operation within an application. SERVER — Indicates that the span covers server-side handling of a synchronous RPC or other remote request. CLIENT — Indicates that the span describes a request to some remote service. PRODUCER — Indicates that the span describes the initiators of an asynchronous request. This parent span will often end before the corresponding child CONSUMER span, possibly even before the child span starts. CONSUMER - Indicates that the span describes a child of an asynchronous PRODUCER request. +- `start_time_us` ([UInt64](/core/reference/data-types/int-uint)) — The start time of the trace span (in microseconds). +- `finish_time_us` ([UInt64](/core/reference/data-types/int-uint)) — The finish time of the trace span (in microseconds). +- `finish_date` ([Date](/core/reference/data-types/date)) — The finish date of the trace span. +- `status_code` ([Enum8('UNSET' = 0, 'OK' = 1, 'ERROR' = 2)](/core/reference/data-types/enum)) — The status code of the span. +- `status_message` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Error message. +- `attribute` ([Map(LowCardinality(String), String)](/core/reference/data-types/map)) — Attribute depending on the trace span. They are filled in according to the recommendations in the OpenTelemetry standard. + +**Aliases:** + +- `attribute.names` — Alias for `mapKeys(attribute)`. +- `attribute.values` — Alias for `mapValues(attribute)`. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql title="Query" +SELECT * FROM system.opentelemetry_span_log LIMIT 1 FORMAT Vertical; +``` + +```text title="Response" +Row 1: +────── +trace_id: cdab0847-0d62-61d5-4d38-dd65b19a1914 +span_id: 701487461015578150 +parent_span_id: 2991972114672045096 +operation_name: DB::Block DB::InterpreterSelectQuery::getSampleBlockImpl() +kind: INTERNAL +start_time_us: 1612374594529090 +finish_time_us: 1612374594529108 +finish_date: 2021-02-03 +attribute.names: [] +attribute.values: [] +``` + +## See Also {#see-also} + +- [OpenTelemetry](/core/guides/oss/deployment-and-scaling/monitoring/opentelemetry) diff --git a/reference/system-tables/overview.mdx b/core/reference/system-tables/overview.mdx similarity index 84% rename from reference/system-tables/overview.mdx rename to core/reference/system-tables/overview.mdx index a35cdc7a..a9870991 100644 --- a/reference/system-tables/overview.mdx +++ b/core/reference/system-tables/overview.mdx @@ -23,14 +23,14 @@ System tables: Most of the system tables store their data in RAM. A ClickHouse server creates such system tables at the start. -Unlike other system tables, the system log tables [metric_log](/reference/system-tables/metric_log), [query_log](/reference/system-tables/query_log), [query_thread_log](/reference/system-tables/query_thread_log), [trace_log](/reference/system-tables/trace_log), [part_log](/reference/system-tables/part_log), [crash_log](/reference/system-tables/crash_log), [text_log](/reference/system-tables/text_log) and [backup_log](/reference/system-tables/backup_log) are served by [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) table engine and store their data in a filesystem by default. If you remove a table from a filesystem, the ClickHouse server creates the empty one again at the time of the next data writing. If system table schema changed in a new release, then ClickHouse renames the current table and creates a new one. +Unlike other system tables, the system log tables [metric_log](/core/reference/system-tables/metric_log), [query_log](/core/reference/system-tables/query_log), [query_thread_log](/core/reference/system-tables/query_thread_log), [trace_log](/core/reference/system-tables/trace_log), [part_log](/core/reference/system-tables/part_log), [crash_log](/core/reference/system-tables/crash_log), [text_log](/core/reference/system-tables/text_log) and [backup_log](/core/reference/system-tables/backup_log) are served by [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) table engine and store their data in a filesystem by default. If you remove a table from a filesystem, the ClickHouse server creates the empty one again at the time of the next data writing. If system table schema changed in a new release, then ClickHouse renames the current table and creates a new one. System log tables can be customized by creating a config file with the same name as the table under `/etc/clickhouse-server/config.d/`, or setting corresponding elements in `/etc/clickhouse-server/config.xml`. Elements can be customized are: - `database`: database the system log table belongs to. This option is deprecated now. All system log tables are under database `system`. - `table`: table to insert data. -- `partition_by`: specify [PARTITION BY](/reference/engines/table-engines/mergetree-family/custom-partitioning-key) expression. -- `ttl`: specify table [TTL](/reference/statements/alter/ttl) expression. +- `partition_by`: specify [PARTITION BY](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key) expression. +- `ttl`: specify table [TTL](/core/reference/statements/alter/ttl) expression. - `flush_interval_milliseconds`: interval of flushing data to disk. - `engine`: provide full engine expression (starting with `ENGINE =` ) with parameters. This option conflicts with `partition_by` and `ttl`. If set together, the server will raise an exception and exit. @@ -55,7 +55,7 @@ An example: ``` -By default, table growth is unlimited. To control a size of a table, you can use [TTL](/reference/statements/alter/ttl) settings for removing outdated log records. Also you can use the partitioning feature of `MergeTree`-engine tables. +By default, table growth is unlimited. To control a size of a table, you can use [TTL](/core/reference/statements/alter/ttl) settings for removing outdated log records. Also you can use the partitioning feature of `MergeTree`-engine tables. ## Sources of System Metrics {#system-tables-sources-of-system-metrics} @@ -85,7 +85,7 @@ You can enable it using `sudo sysctl kernel.task_delayacct=1` or by creating a ` ## System tables in ClickHouse Cloud {#system-tables-in-clickhouse-cloud} -In ClickHouse Cloud, system tables provide critical insights into the state and performance of the service, just as they do in self-managed deployments. Some system tables operate at the cluster-wide level, especially those that derive their data from Keeper nodes, which manage distributed metadata. These tables reflect the collective state of the cluster and should be consistent when queried on individual nodes. For example, the [`parts`](/reference/system-tables/parts) should be consistent irrespective of the node it is queried from: +In ClickHouse Cloud, system tables provide critical insights into the state and performance of the service, just as they do in self-managed deployments. Some system tables operate at the cluster-wide level, especially those that derive their data from Keeper nodes, which manage distributed metadata. These tables reflect the collective state of the cluster and should be consistent when queried on individual nodes. For example, the [`parts`](/core/reference/system-tables/parts) should be consistent irrespective of the node it is queried from: ```sql SELECT hostname(), count() @@ -145,7 +145,7 @@ SHOW TABLES FROM system LIKE 'query_log%' ### Querying multiple versions {#querying-multiple-versions} -We can query across these tables using the [`merge`](/reference/functions/table-functions/merge) function. For example, the query below identifies the latest query issued to the target node in each `query_log` table: +We can query across these tables using the [`merge`](/core/reference/functions/table-functions/merge) function. For example, the query below identifies the latest query issued to the target node in each `query_log` table: ```sql SELECT @@ -183,7 +183,7 @@ Importantly, these tables are still **local to each node**. ### Querying across nodes {#querying-across-nodes} -To comprehensively view the entire cluster, users can leverage the [`clusterAllReplicas`](/reference/functions/table-functions/cluster) function in combination with the `merge` function. The `clusterAllReplicas` function allows querying system tables across all replicas within the "default" cluster, consolidating node-specific data into a unified result. When combined with the `merge` function this can be used to target all system data for a specific table in a cluster. +To comprehensively view the entire cluster, users can leverage the [`clusterAllReplicas`](/core/reference/functions/table-functions/cluster) function in combination with the `merge` function. The `clusterAllReplicas` function allows querying system tables across all replicas within the "default" cluster, consolidating node-specific data into a unified result. When combined with the `merge` function this can be used to target all system data for a specific table in a cluster. This approach is particularly valuable for monitoring and debugging cluster-wide operations, ensuring users can effectively analyze the health and performance of their ClickHouse Cloud deployment. diff --git a/core/reference/system-tables/part_log.mdx b/core/reference/system-tables/part_log.mdx new file mode 100644 index 00000000..ef515fa5 --- /dev/null +++ b/core/reference/system-tables/part_log.mdx @@ -0,0 +1,105 @@ +--- +description: 'System table containing information about events that occurred with + data parts in the MergeTree family tables, such as adding or merging of data.' +keywords: ['system table', 'part_log'] +slug: /operations/system-tables/part_log +title: 'system.part_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +The `system.part_log` table is created only if the [part_log](/core/reference/settings/server-settings/settings#part_log) server setting is specified. + +This table contains information about events that occurred with [data parts](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key) in the [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) family tables, such as adding or merging data. + +The `system.part_log` table contains the following columns: + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `query_id` ([String](/core/reference/data-types/string)) — Identifier of the INSERT query that created this data part. +- `event_type` ([Enum8('NewPart' = 1, 'MergeParts' = 2, 'DownloadPart' = 3, 'RemovePart' = 4, 'MutatePart' = 5, 'MovePart' = 6, 'MergePartsStart' = 7, 'MutatePartStart' = 8)](/core/reference/data-types/enum)) — Type of the event that occurred with the data part. Can have one of the following values: NewPart — Inserting of a new data part, MergePartsStart — Merging of data parts has started, MergeParts — Merging of data parts has finished, DownloadPart — Downloading a data part, RemovePart — Removing or detaching a data part using [DETACH PARTITION](/core/reference/statements/alter/partition#detach-partitionpart).MutatePartStart — Mutating of a data part has started, MutatePart — Mutating of a data part has finished, MovePart — Moving the data part from the one disk to another one. +- `merge_reason` ([Enum8('NotAMerge' = 1, 'RegularMerge' = 2, 'TTLDeleteMerge' = 3, 'TTLRecompressMerge' = 4, 'TTLDropMerge' = 5)](/core/reference/data-types/enum)) — The reason for the event with type MERGE_PARTS. Can have one of the following values: NotAMerge — The current event has the type other than MERGE_PARTS, RegularMerge — Some regular merge, TTLDeleteMerge, TTLDropMerge — Cleaning up expired data. TTLRecompressMerge — Recompressing data part with the. +- `merge_algorithm` ([Enum8('Undecided' = 0, 'Vertical' = 1, 'Horizontal' = 2)](/core/reference/data-types/enum)) — Merge algorithm for the event with type MERGE_PARTS. Can have one of the following values: Undecided, Horizontal, Vertical +- `event_date` ([Date](/core/reference/data-types/date)) — Event date. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Event time with microseconds precision. +- `duration_ms` ([UInt64](/core/reference/data-types/int-uint)) — Duration of this operation. +- `database` ([String](/core/reference/data-types/string)) — Name of the database the data part is in. +- `table` ([String](/core/reference/data-types/string)) — Name of the table the data part is in. +- `table_uuid` ([UUID](/core/reference/data-types/uuid)) — UUID of the table the data part belongs to. +- `part_name` ([String](/core/reference/data-types/string)) — Name of the data part. +- `partition_id` ([String](/core/reference/data-types/string)) — ID of the partition that the data part was inserted to. The column takes the `all` value if the partitioning is by `tuple()`. +- `partition` ([String](/core/reference/data-types/string)) — The partition name. +- `part_type` ([String](/core/reference/data-types/string)) — The type of the part. Possible values: Wide and Compact. +- `part_storage_type` ([String](/core/reference/data-types/string)) — The type of DataPartStorage. Possible values: Packed - all files are stored in a single blob, Full - a blob per file. +- `disk_name` ([String](/core/reference/data-types/string)) — The disk name data part lies on. +- `path_on_disk` ([String](/core/reference/data-types/string)) — Absolute path to the folder with data part files. +- `rows` ([UInt64](/core/reference/data-types/int-uint)) — The number of rows in the data part. +- `size_in_bytes` ([UInt64](/core/reference/data-types/int-uint)) — Size of the data part on disk in bytes. +- `merged_from` ([Array(String)](/core/reference/data-types/array)) — An array of the source parts names which the current part was made up from. +- `bytes_uncompressed` ([UInt64](/core/reference/data-types/int-uint)) — Uncompressed size of the resulting part in bytes. +- `read_rows` ([UInt64](/core/reference/data-types/int-uint)) — The number of rows was read during the merge. +- `read_bytes` ([UInt64](/core/reference/data-types/int-uint)) — The number of bytes was read during the merge. +- `peak_memory_usage` ([UInt64](/core/reference/data-types/int-uint)) — The maximum amount of used during merge RAM +- `deduplication_block_ids` ([Array(String)](/core/reference/data-types/array)) — An array of block IDs used for deduplication when inserting this part. +- `error` ([UInt16](/core/reference/data-types/int-uint)) — The error code of the occurred exception. +- `exception` ([String](/core/reference/data-types/string)) — Text message of the occurred error. +- `mutation_ids` ([Array(String)](/core/reference/data-types/array)) — An array of mutation IDs applied to the source part (merged_from) for the event with type MUTATE_PART_START and MUTATE_PART. +- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/core/reference/data-types/map)) — All the profile events captured during this operation. +- `projections_duration_ms` ([Map(LowCardinality(String), UInt64)](/core/reference/data-types/map)) — Per-projection merge/rebuild duration in milliseconds. + +**Aliases:** + +- `ProfileEvents.Names` — Alias for `mapKeys(ProfileEvents)`. +- `ProfileEvents.Values` — Alias for `mapValues(ProfileEvents)`. +- `name` — Alias for `part_name`. +{/*AUTOGENERATED_END*/} + +The `system.part_log` table is created after the first inserting data to the `MergeTree` table. + +## Example {#example} + +```sql +SELECT * FROM system.part_log LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +hostname: clickhouse.eu-central1.internal +query_id: +event_type: MergeParts +merge_reason: RegularMerge +merge_algorithm: Vertical +event_date: 2025-07-19 +event_time: 2025-07-19 23:54:19 +event_time_microseconds: 2025-07-19 23:54:19.710761 +duration_ms: 2158 +database: default +table: github_events +table_uuid: 1ad33424-f5f5-402b-ac03-ec82282634ab +part_name: all_1_7_1 +partition_id: all +partition: tuple() +part_type: Wide +disk_name: default +path_on_disk: ./data/store/1ad/1ad33424-f5f5-402b-ac03-ec82282634ab/all_1_7_1/ +rows: 3285726 -- 3.29 million +size_in_bytes: 438968542 -- 438.97 million +merged_from: ['all_1_1_0','all_2_2_0','all_3_3_0','all_4_4_0','all_5_5_0','all_6_6_0','all_7_7_0'] +bytes_uncompressed: 1373137767 -- 1.37 billion +read_rows: 3285726 -- 3.29 million +read_bytes: 1429206946 -- 1.43 billion +peak_memory_usage: 303611887 -- 303.61 million +error: 0 +exception: +mutation_ids: +ProfileEvents: {'FileOpen':703,'ReadBufferFromFileDescriptorRead':3824,'ReadBufferFromFileDescriptorReadBytes':439601681,'WriteBufferFromFileDescriptorWrite':592,'WriteBufferFromFileDescriptorWriteBytes':438988500,'ReadCompressedBytes':439601681,'CompressedReadBufferBlocks':6314,'CompressedReadBufferBytes':1539835748,'OpenedFileCacheHits':50,'OpenedFileCacheMisses':484,'OpenedFileCacheMicroseconds':222,'IOBufferAllocs':1914,'IOBufferAllocBytes':319810140,'ArenaAllocChunks':8,'ArenaAllocBytes':131072,'MarkCacheMisses':7,'CreatedReadBufferOrdinary':534,'DiskReadElapsedMicroseconds':139058,'DiskWriteElapsedMicroseconds':51639,'AnalyzePatchRangesMicroseconds':28,'ExternalProcessingFilesTotal':1,'RowsReadByMainReader':170857759,'WaitMarksLoadMicroseconds':988,'LoadedMarksFiles':7,'LoadedMarksCount':14,'LoadedMarksMemoryBytes':728,'Merge':2,'MergeSourceParts':14,'MergedRows':3285733,'MergedColumns':4,'GatheredColumns':51,'MergedUncompressedBytes':1429207058,'MergeTotalMilliseconds':2158,'MergeExecuteMilliseconds':2155,'MergeHorizontalStageTotalMilliseconds':145,'MergeHorizontalStageExecuteMilliseconds':145,'MergeVerticalStageTotalMilliseconds':2008,'MergeVerticalStageExecuteMilliseconds':2006,'MergeProjectionStageTotalMilliseconds':5,'MergeProjectionStageExecuteMilliseconds':4,'MergingSortedMilliseconds':7,'GatheringColumnMilliseconds':56,'ContextLock':2091,'PartsLockHoldMicroseconds':77,'PartsLockWaitMicroseconds':1,'RealTimeMicroseconds':2157475,'CannotWriteToWriteBufferDiscard':36,'LogTrace':6,'LogDebug':59,'LoggerElapsedNanoseconds':514040,'ConcurrencyControlSlotsGranted':53,'ConcurrencyControlSlotsAcquired':53} +``` diff --git a/core/reference/system-tables/part_moves_between_shards.mdx b/core/reference/system-tables/part_moves_between_shards.mdx new file mode 100644 index 00000000..f231a029 --- /dev/null +++ b/core/reference/system-tables/part_moves_between_shards.mdx @@ -0,0 +1,30 @@ +--- +description: 'Contains information about parts which are currently in a process of moving between shards and their progress.' +keywords: ['system table', 'part_moves_between_shards'] +slug: /operations/system-tables/part_moves_between_shards +title: 'system.part_moves_between_shards' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about parts which are currently in a process of moving between shards and their progress. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — The name of the database where move is performed. +- `table` ([String](/core/reference/data-types)) — The name of the table where move is performed. +- `task_name` ([String](/core/reference/data-types)) — The name of the moving task. +- `task_uuid` ([UUID](/core/reference/data-types)) — The identifier of the moving task. +- `create_time` ([DateTime](/core/reference/data-types)) — The time when the task was created. +- `part_name` ([String](/core/reference/data-types)) — The name of the part which is in a process of moving. +- `part_uuid` ([UUID](/core/reference/data-types)) — The UUID of the part which is in a process of moving. +- `to_shard` ([String](/core/reference/data-types)) — The name of the destination shard. +- `dst_part_name` ([String](/core/reference/data-types)) — The result part name. +- `update_time` ([DateTime](/core/reference/data-types)) — The last time update was performed. +- `state` ([String](/core/reference/data-types)) — The current state of the move. +- `rollback` ([UInt8](/core/reference/data-types)) — The flag which indicated whether the operation was rolled back. +- `num_tries` ([UInt32](/core/reference/data-types)) — The number of tries to complete the operation. +- `last_exception` ([String](/core/reference/data-types)) — The last exception name if any. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/parts.mdx b/core/reference/system-tables/parts.mdx new file mode 100644 index 00000000..4304d724 --- /dev/null +++ b/core/reference/system-tables/parts.mdx @@ -0,0 +1,154 @@ +--- +description: 'System table containing information about parts of MergeTree' +keywords: ['system table', 'parts'] +slug: /operations/system-tables/parts +title: 'system.parts' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about parts of [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables. + +Each row describes one data part. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `partition` ([String](/core/reference/data-types)) — Partition identifier (string representation derived from the table partition key expression). +- `name` ([String](/core/reference/data-types)) — +Name of the data part. The part naming structure can be used to determine many aspects of the data, ingest, and merge patterns. The part naming format is the following: + +```text +____ +``` + +* Definitions: + - `partition_id` - identifies the partition key + - `minimum_block_number` - identifies the minimum block number in the part. ClickHouse always merges continuous blocks + - `maximum_block_number` - identifies the maximum block number in the part + - `level` - incremented by one with each additional merge on the part. A level of 0 indicates this is a new part that has not been merged. It is important to remember that all parts in ClickHouse are always immutable + - `data_version` - optional value, incremented when a part is mutated (again, mutated data is always only written to a new part, since parts are immutable) + +- `uuid` ([UUID](/core/reference/data-types)) — The UUID of data part. +- `part_type` ([String](/core/reference/data-types)) — The data part storing format. Possible values: `Wide` — each column is stored in a separate file, `Compact` — all columns are stored in one file. Data storing format is controlled by the `min_bytes_for_wide_part` and `min_rows_for_wide_part` settings of the MergeTree table. +- `active` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the data part is active. If a data part is active, it's used in a table. Otherwise, it's about to be deleted. Inactive data parts appear after merging and mutating operations. +- `marks` ([UInt64](/core/reference/data-types)) — The number of marks. To get the approximate number of rows in a data part, multiply marks by the index granularity (usually 8192) (this hint does not work for adaptive granularity). +- `rows` ([UInt64](/core/reference/data-types)) — The number of rows. +- `files` ([UInt64](/core/reference/data-types)) — The number of files in the data part. +- `bytes_on_disk` ([UInt64](/core/reference/data-types)) — Total size of all the data part files in bytes. +- `data_compressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included. +- `data_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included. +- `primary_key_size` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) used by primary key values in the primary.idx/cidx file on disk. +- `marks_bytes` ([UInt64](/core/reference/data-types)) — The size of the file with marks. +- `secondary_indices_compressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of compressed data for secondary indices in the data part. All the auxiliary files (for example, files with marks) are not included. +- `secondary_indices_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of uncompressed data for secondary indices in the data part. All the auxiliary files (for example, files with marks) are not included. +- `secondary_indices_marks_bytes` ([UInt64](/core/reference/data-types)) — The size of the file with marks for secondary indices. +- `modification_time` ([DateTime](/core/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation. +- `remove_time` ([DateTime](/core/reference/data-types)) — The time when the data part became inactive. +- `refcount` ([UInt32](/core/reference/data-types)) — The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges. +- `min_date` ([Date](/core/reference/data-types)) — The minimum value of the date key in the data part. +- `max_date` ([Date](/core/reference/data-types)) — The maximum value of the date key in the data part. +- `min_time` ([DateTime](/core/reference/data-types)) — The minimum value of the date and time key in the data part. +- `max_time` ([DateTime](/core/reference/data-types)) — The maximum value of the date and time key in the data part. +- `partition_id` ([String](/core/reference/data-types)) — ID of the partition. +- `min_block_number` ([Int64](/core/reference/data-types)) — The minimum number of data parts that make up the current part after merging. +- `max_block_number` ([Int64](/core/reference/data-types)) — The maximum number of data parts that make up the current part after merging. +- `level` ([UInt32](/core/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. +- `data_version` ([UInt64](/core/reference/data-types)) — Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than data_version). +- `primary_key_bytes_in_memory` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) used by primary key values. Will be 0 when `primary_key_lazy_load` is enabled and the key is not loaded. When non-zero the bytes live in the part itself and are accounted within `jemalloc.mergetree_arena.active_bytes`. They are NEVER counted in `PrimaryIndexCacheBytes` — those are mutually exclusive per part: an index lives either in the part (this metric) or in the shared `PrimaryIndexCache` (the other), depending on `primary_key_lazy_load` and `use_primary_key_cache`. +- `primary_key_bytes_in_memory_allocated` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) reserved for primary key values. Will be 0 when `primary_key_lazy_load` is enabled and the key is not loaded. When non-zero, included in `jemalloc.mergetree_arena.active_bytes`. See the note on `primary_key_bytes_in_memory` for the relationship with `PrimaryIndexCacheBytes`. +- `index_granularity_bytes_in_memory` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) used by index granularity values (will be 0 in case of primary_key_lazy_load=1 and use_primary_key_cache=1). When non-zero the bytes are part-owned and accounted within `jemalloc.mergetree_arena.active_bytes`. +- `index_granularity_bytes_in_memory_allocated` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) reserved for index granularity values (will be 0 in case of primary_key_lazy_load=1 and use_primary_key_cache=1). When non-zero, included in `jemalloc.mergetree_arena.active_bytes`. +- `is_frozen` ([UInt8](/core/reference/data-types)) — Flag that shows that a partition data backup exists. 1, the backup exists. 0, the backup does not exist. For more details, see FREEZE PARTITION. +- `database` ([String](/core/reference/data-types)) — Name of the database. +- `table` ([String](/core/reference/data-types)) — Name of the table. +- `engine` ([String](/core/reference/data-types)) — Name of the table engine without parameters. +- `disk_name` ([String](/core/reference/data-types)) — Name of a disk that stores the data part. +- `path` ([String](/core/reference/data-types)) — Absolute path to the folder with data part files. +- `hash_of_all_files` ([String](/core/reference/data-types)) — sipHash128 of compressed files. +- `hash_of_uncompressed_files` ([String](/core/reference/data-types)) — sipHash128 of uncompressed files (files with marks, index file etc.). +- `uncompressed_hash_of_compressed_files` ([String](/core/reference/data-types)) — sipHash128 of data in the compressed files as if they were uncompressed. +- `delete_ttl_info_min` ([DateTime](/core/reference/data-types)) — The minimum value of the date and time key for TTL DELETE rule. +- `delete_ttl_info_max` ([DateTime](/core/reference/data-types)) — The maximum value of the date and time key for TTL DELETE rule. +- `move_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — Array of expressions. Each expression defines a TTL MOVE rule. +- `move_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — Array of date and time values. Each element describes the minimum key value for a TTL MOVE rule. +- `move_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — Array of date and time values. Each element describes the maximum key value for a TTL MOVE rule. +- `default_compression_codec` ([String](/core/reference/data-types)) — The name of the codec used to compress this data part (in case when there is no explicit codec for columns). +- `recompression_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — The TTL expression. +- `recompression_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. +- `recompression_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. +- `group_by_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — The TTL expression. +- `group_by_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. +- `group_by_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. +- `rows_where_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — The TTL expression. +- `rows_where_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. +- `rows_where_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. +- `projections` ([Array(String)](/core/reference/data-types)) — The list of projection names calculated for this part. +- `visible` ([UInt8](/core/reference/data-types)) — Flag which indicated whether this part is visible for SELECT queries. +- `creation_tid` ([Tuple(UInt64, UInt64, UUID)](/core/reference/data-types)) — ID of transaction that has created/is trying to create this object. +- `removal_tid_lock` ([UInt64](/core/reference/data-types)) — Hash of removal_tid, used to lock an object for removal. +- `removal_tid` ([Tuple(UInt64, UInt64, UUID)](/core/reference/data-types)) — ID of transaction that has removed/is trying to remove this object +- `creation_csn` ([UInt64](/core/reference/data-types)) — CSN of transaction that has created this object +- `removal_csn` ([UInt64](/core/reference/data-types)) — CSN of transaction that has removed this object +- `has_lightweight_delete` ([UInt8](/core/reference/data-types)) — The flag which indicated whether the part has lightweight delete mask. +- `last_removal_attempt_time` ([DateTime](/core/reference/data-types)) — The last time the server tried to delete this part. +- `removal_state` ([String](/core/reference/data-types)) — The current state of part removal process. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.parts LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +partition: tuple() +name: all_1_4_1_6 +part_type: Wide +active: 1 +marks: 2 +rows: 6 +bytes_on_disk: 310 +data_compressed_bytes: 157 +data_uncompressed_bytes: 91 +secondary_indices_compressed_bytes: 58 +secondary_indices_uncompressed_bytes: 6 +secondary_indices_marks_bytes: 48 +marks_bytes: 144 +modification_time: 2020-06-18 13:01:49 +remove_time: 1970-01-01 00:00:00 +refcount: 1 +min_date: 1970-01-01 +max_date: 1970-01-01 +min_time: 1970-01-01 00:00:00 +max_time: 1970-01-01 00:00:00 +partition_id: all +min_block_number: 1 +max_block_number: 4 +level: 1 +data_version: 6 +primary_key_bytes_in_memory: 8 +primary_key_bytes_in_memory_allocated: 64 +is_frozen: 0 +database: default +table: months +engine: MergeTree +disk_name: default +path: /var/lib/clickhouse/data/default/months/all_1_4_1_6/ +hash_of_all_files: 2d0657a16d9430824d35e327fcbd87bf +hash_of_uncompressed_files: 84950cc30ba867c77a408ae21332ba29 +uncompressed_hash_of_compressed_files: 1ad78f1c6843bbfb99a2c931abe7df7d +delete_ttl_info_min: 1970-01-01 00:00:00 +delete_ttl_info_max: 1970-01-01 00:00:00 +move_ttl_info.expression: [] +move_ttl_info.min: [] +move_ttl_info.max: [] +``` + +## See Also {#see-also} + +- [MergeTree family](/core/reference/engines/table-engines/mergetree-family/mergetree) +- [TTL for Columns and Tables](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) diff --git a/core/reference/system-tables/parts_columns.mdx b/core/reference/system-tables/parts_columns.mdx new file mode 100644 index 00000000..c063de4c --- /dev/null +++ b/core/reference/system-tables/parts_columns.mdx @@ -0,0 +1,127 @@ +--- +description: 'System table containing information about parts and columns of MergeTree + tables.' +keywords: ['system table', 'parts_columns'] +slug: /operations/system-tables/parts_columns +title: 'system.parts_columns' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about parts and columns of [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables. +Each row describes one data part. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `partition` ([String](/core/reference/data-types)) — The partition name. +- `name` ([String](/core/reference/data-types)) — Name of the data part. +- `uuid` ([UUID](/core/reference/data-types)) — The parts UUID. +- `part_type` ([String](/core/reference/data-types)) — The data part storing format. Possible values: Wide — Each column is stored in a separate file in a filesystem, Compact — All columns are stored in one file in a filesystem. +- `active` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the data part is active. If a data part is active, it's used in a table. Otherwise, it's deleted. Inactive data parts remain after merging. +- `marks` ([UInt64](/core/reference/data-types)) — The number of marks. To get the approximate number of rows in a data part, multiply marks by the index granularity (usually 8192) (this hint does not work for adaptive granularity). +- `rows` ([UInt64](/core/reference/data-types)) — The number of rows. +- `bytes_on_disk` ([UInt64](/core/reference/data-types)) — Total size of all the data part files in bytes. +- `data_compressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included. +- `data_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included. +- `marks_bytes` ([UInt64](/core/reference/data-types)) — The size of the file with marks. +- `modification_time` ([DateTime](/core/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation. +- `remove_time` ([DateTime](/core/reference/data-types)) — The time when the data part became inactive. +- `refcount` ([UInt32](/core/reference/data-types)) — The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges. +- `min_date` ([Date](/core/reference/data-types)) — The minimum value for the Date column if that is included in the partition key. +- `max_date` ([Date](/core/reference/data-types)) — The maximum value for the Date column if that is included in the partition key. +- `min_time` ([DateTime](/core/reference/data-types)) — The minimum value for the DateTime column if that is included in the partition key. +- `max_time` ([DateTime](/core/reference/data-types)) — The maximum value for the DateTime column if that is included in the partition key. +- `partition_id` ([String](/core/reference/data-types)) — ID of the partition. +- `min_block_number` ([Int64](/core/reference/data-types)) — The minimum number of data parts that make up the current part after merging. +- `max_block_number` ([Int64](/core/reference/data-types)) — The maximum number of data parts that make up the current part after merging. +- `level` ([UInt32](/core/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. +- `data_version` ([UInt64](/core/reference/data-types)) — Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than data_version). +- `primary_key_bytes_in_memory` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) used by primary key values. +- `primary_key_bytes_in_memory_allocated` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) reserved for primary key values. +- `database` ([String](/core/reference/data-types)) — Name of the database. +- `table` ([String](/core/reference/data-types)) — Name of the table. +- `engine` ([String](/core/reference/data-types)) — Name of the table engine without parameters. +- `disk_name` ([String](/core/reference/data-types)) — Name of a disk that stores the data part. +- `path` ([String](/core/reference/data-types)) — Absolute path to the folder with data part files. +- `column` ([String](/core/reference/data-types)) — Name of the column. +- `type` ([String](/core/reference/data-types)) — Column type. +- `column_position` ([UInt64](/core/reference/data-types)) — Ordinal position of a column in a table starting with 1. +- `default_kind` ([String](/core/reference/data-types)) — Expression type (DEFAULT, MATERIALIZED, ALIAS) for the default value, or an empty string if it is not defined. +- `default_expression` ([String](/core/reference/data-types)) — Expression for the default value, or an empty string if it is not defined. +- `column_bytes_on_disk` ([UInt64](/core/reference/data-types)) — Total size of the column in bytes. +- `column_data_compressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of the compressed data in the column, in bytes. +- `column_data_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of the decompressed data in the column, in bytes. +- `column_marks_bytes` ([UInt64](/core/reference/data-types)) — The size of the marks for column, in bytes. +- `column_modification_time` ([Nullable(DateTime)](/core/reference/data-types)) — The last time the column was modified. +- `column_ttl_min` ([Nullable(DateTime)](/core/reference/data-types)) — The minimum value of the calculated TTL expression of the column. +- `column_ttl_max` ([Nullable(DateTime)](/core/reference/data-types)) — The maximum value of the calculated TTL expression of the column. +- `statistics` ([Array(String)](/core/reference/data-types)) — The statistics of the column. +- `estimates.min` ([Nullable(String)](/core/reference/data-types)) — Estimated minimum value of the column. +- `estimates.max` ([Nullable(String)](/core/reference/data-types)) — Estimated maximum value of the column. +- `estimates.cardinality` ([Nullable(UInt64)](/core/reference/data-types)) — Estimated cardinality of the column. +- `estimates.null_count` ([Nullable(UInt64)](/core/reference/data-types)) — Estimated number of NULL values in the column. +- `serialization_kind` ([String](/core/reference/data-types)) — Kind of serialization of a column +- `substreams` ([Array(String)](/core/reference/data-types)) — Names of substreams to which column is serialized +- `filenames` ([Array(String)](/core/reference/data-types)) — Names of files for each substream of a column respectively +- `subcolumns.names` ([Array(String)](/core/reference/data-types)) — Names of subcolumns of a column +- `subcolumns.types` ([Array(String)](/core/reference/data-types)) — Types of subcolumns of a column +- `subcolumns.serializations` ([Array(String)](/core/reference/data-types)) — Kinds of serialization of subcolumns of a column +- `subcolumns.bytes_on_disk` ([Array(UInt64)](/core/reference/data-types)) — Sizes in bytes for each subcolumn +- `subcolumns.data_compressed_bytes` ([Array(UInt64)](/core/reference/data-types)) — Sizes of the compressed data for each subcolumn, in bytes +- `subcolumns.data_uncompressed_bytes` ([Array(UInt64)](/core/reference/data-types)) — Sizes of the decompressed data for each subcolumn, in bytes +- `subcolumns.marks_bytes` ([Array(UInt64)](/core/reference/data-types)) — Sizes of the marks for each subcolumn of a column, in bytes +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.parts_columns LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +partition: tuple() +name: all_1_2_1 +part_type: Wide +active: 1 +marks: 2 +rows: 2 +bytes_on_disk: 155 +data_compressed_bytes: 56 +data_uncompressed_bytes: 4 +marks_bytes: 96 +modification_time: 2020-09-23 10:13:36 +remove_time: 2106-02-07 06:28:15 +refcount: 1 +min_date: 1970-01-01 +max_date: 1970-01-01 +partition_id: all +min_block_number: 1 +max_block_number: 2 +level: 1 +data_version: 1 +primary_key_bytes_in_memory: 2 +primary_key_bytes_in_memory_allocated: 64 +database: default +table: 53r93yleapyears +engine: MergeTree +disk_name: default +path: /var/lib/clickhouse/data/default/53r93yleapyears/all_1_2_1/ +column: id +type: Int8 +column_position: 1 +default_kind: +default_expression: +column_bytes_on_disk: 76 +column_data_compressed_bytes: 28 +column_data_uncompressed_bytes: 2 +column_marks_bytes: 48 +``` + +## See Also {#see-also} + +- [MergeTree family](/core/reference/engines/table-engines/mergetree-family/mergetree) +- [Calculating the number and size of compact and wide parts](/resources/support-center/knowledge-base/troubleshooting/count-parts-by-type) diff --git a/core/reference/system-tables/predicate_statistics_log.mdx b/core/reference/system-tables/predicate_statistics_log.mdx new file mode 100644 index 00000000..6e560c41 --- /dev/null +++ b/core/reference/system-tables/predicate_statistics_log.mdx @@ -0,0 +1,90 @@ +--- +description: 'System table containing sampled filter and index selectivity statistics + collected from `MergeTree` read pipelines during query execution.' +keywords: ['system table', 'predicate_statistics_log'] +slug: /operations/system-tables/predicate_statistics_log +title: 'system.predicate_statistics_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains sampled selectivity statistics collected while reading from `MergeTree` tables. The table is populated only when [`predicate_statistics_sample_rate`](/core/reference/settings/session-settings#predicate_statistics_sample_rate) is greater than `0`. + +Use this table to inspect how selective user predicates are in real workloads and how many granules remain after primary-key or skip-index filtering. The data is intended as input for workload-driven index and projection recommendations. + +## Row shapes {#row-shapes} + +A single query can produce two kinds of rows in `system.predicate_statistics_log`: + +- **Filter rows**, emitted per prewhere/filter step in `MergeTreeSelectProcessor`. They populate `predicate_expression`, `input_rows`, `passed_rows`, `filter_selectivity`, and the whole-predicate columns `total_input_rows`, `total_passed_rows`, `total_selectivity`. Index-related columns are empty. +- **Index rows**, emitted per read step in `ReadFromMergeTree`. They populate the `index_names`, `index_types`, `total_granules`, `granules_after`, and `index_selectivities` arrays, one entry per index stage (primary key, partition, skip indexes). Predicate-related columns are empty. + +Filter rows and index rows for the same query share the same `query_id` and `table`, so they can be joined when both are needed. + +## Sampling and overhead {#sampling-and-overhead} + +Sampling is controlled by [`predicate_statistics_sample_rate`](/core/reference/settings/session-settings#predicate_statistics_sample_rate): + +- `0` disables collection. +- `1` samples every query. +- `N > 1` samples approximately `1 / N` of queries, hashed by `query_id`. + +Lower values produce more data but add CPU work on the read path and more writes to the system log. After enabling the setting, use [`SYSTEM FLUSH LOGS`](/core/reference/statements/system#flush-logs) if you need rows to appear immediately. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Event date. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Timestamp when this log entry was written. +- `database` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Database name of the target table. +- `table` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Table name of the target table. +- `query_id` ([String](/core/reference/data-types/string)) — Query ID for linking back to query_log. +- `predicate_expression` ([String](/core/reference/data-types/string)) — Whole filter expression handled by this prewhere/filter step (ActionsDAG dump). +- `input_rows` ([UInt64](/core/reference/data-types/int-uint)) — Rows entering this prewhere/filter step. +- `passed_rows` ([UInt64](/core/reference/data-types/int-uint)) — Rows surviving this prewhere/filter step. +- `filter_selectivity` ([Float64](/core/reference/data-types/float)) — Selectivity of this step: passed_rows / input_rows. +- `total_input_rows` ([UInt64](/core/reference/data-types/int-uint)) — Rows entering the first prewhere step (total rows read from granules). +- `total_passed_rows` ([UInt64](/core/reference/data-types/int-uint)) — Rows surviving all prewhere steps (rows delivered to the query). +- `total_selectivity` ([Float64](/core/reference/data-types/float)) — Selectivity of the whole predicate: total_passed_rows / total_input_rows. +- `index_names` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Names of indexes applied, e.g. ['PrimaryKey', 'idx_bf_status'] (index rows only). +- `index_types` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Types of indexes applied: PrimaryKey, Skip, MinMax, Partition (index rows only). +- `total_granules` ([Array(UInt64)](/core/reference/data-types/array)) — Granules entering each index stage (index rows only). +- `granules_after` ([Array(UInt64)](/core/reference/data-types/array)) — Granules remaining after each index stage (index rows only). +- `index_selectivities` ([Array(Float64)](/core/reference/data-types/array)) — Per-index selectivity: granules_after / total_granules (index rows only). +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SET predicate_statistics_sample_rate = 1; + +SELECT * +FROM hits +WHERE URL LIKE '%/product/%' AND EventDate >= today() - 7 +FORMAT Null; + +SYSTEM FLUSH LOGS predicate_statistics_log; + +SELECT + query_id, + predicate_expression, + round(filter_selectivity, 3) AS step_selectivity, + round(total_selectivity, 3) AS query_selectivity, + index_names, + index_selectivities +FROM system.predicate_statistics_log +WHERE table = 'hits' +ORDER BY event_time DESC +LIMIT 10; +``` + +## See also {#see-also} + +- [`predicate_statistics_sample_rate`](/core/reference/settings/session-settings#predicate_statistics_sample_rate) +- [system.query_log](/core/reference/system-tables/query_log) diff --git a/reference/system-tables/primes.mdx b/core/reference/system-tables/primes.mdx similarity index 92% rename from reference/system-tables/primes.mdx rename to core/reference/system-tables/primes.mdx index 29746ce9..c3498658 100644 --- a/reference/system-tables/primes.mdx +++ b/core/reference/system-tables/primes.mdx @@ -14,7 +14,7 @@ You can use this table for tests, or if you need to do a brute force search over Reads from this table are not parallelized. -This is similar to the [`primes`](/reference/functions/table-functions/primes) table function. +This is similar to the [`primes`](/core/reference/functions/table-functions/primes) table function. You can also limit the output by predicates. diff --git a/reference/system-tables/privileges.mdx b/core/reference/system-tables/privileges.mdx similarity index 93% rename from reference/system-tables/privileges.mdx rename to core/reference/system-tables/privileges.mdx index 191efd2b..c7cbd7a2 100644 --- a/reference/system-tables/privileges.mdx +++ b/core/reference/system-tables/privileges.mdx @@ -13,8 +13,8 @@ Contains a list of all available privileges that could be granted to a user or r ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `privilege` ([Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'CHECK' = 2, 'SHOW COLUMNS' = 3, 'SHOW DICTIONARIES' = 4, 'SHOW' = 5, 'SHOW FILESYSTEM CACHES' = 6, 'SELECT' = 7, 'INSERT' = 8, 'ALTER UPDATE' = 9, 'ALTER DELETE' = 10, 'ALTER ADD COLUMN' = 11, 'ALTER MODIFY COLUMN' = 12, 'ALTER DROP COLUMN' = 13, 'ALTER COMMENT COLUMN' = 14, 'ALTER CLEAR COLUMN' = 15, 'ALTER RENAME COLUMN' = 16, 'ALTER MATERIALIZE COLUMN' = 17, 'ALTER COLUMN' = 18, 'ALTER MODIFY COMMENT' = 19, 'ALTER MODIFY DATABASE COMMENT' = 20, 'ALTER ORDER BY' = 21, 'ALTER SAMPLE BY' = 22, 'ALTER ADD INDEX' = 23, 'ALTER DROP INDEX' = 24, 'ALTER MATERIALIZE INDEX' = 25, 'ALTER CLEAR INDEX' = 26, 'ALTER INDEX' = 27, 'ALTER ADD STATISTICS' = 28, 'ALTER DROP STATISTICS' = 29, 'ALTER MODIFY STATISTICS' = 30, 'ALTER MATERIALIZE STATISTICS' = 31, 'ALTER STATISTICS' = 32, 'ALTER ADD PROJECTION' = 33, 'ALTER DROP PROJECTION' = 34, 'ALTER MATERIALIZE PROJECTION' = 35, 'ALTER CLEAR PROJECTION' = 36, 'ALTER PROJECTION' = 37, 'ALTER ADD CONSTRAINT' = 38, 'ALTER DROP CONSTRAINT' = 39, 'ALTER CONSTRAINT' = 40, 'ALTER TTL' = 41, 'ALTER MATERIALIZE TTL' = 42, 'ALTER REWRITE PARTS' = 43, 'ALTER SETTINGS' = 44, 'ALTER MOVE PARTITION' = 45, 'ALTER FETCH PARTITION' = 46, 'ALTER FREEZE PARTITION' = 47, 'ALTER UNLOCK SNAPSHOT' = 48, 'ALTER EXECUTE' = 49, 'ALTER DATABASE SETTINGS' = 50, 'ALTER NAMED COLLECTION' = 51, 'ALTER TABLE' = 52, 'ALTER DATABASE' = 53, 'ALTER VIEW MODIFY QUERY' = 54, 'ALTER VIEW MODIFY REFRESH' = 55, 'ALTER VIEW MODIFY SQL SECURITY' = 56, 'ALTER VIEW' = 57, 'ALTER' = 58, 'CREATE DATABASE' = 59, 'CREATE TABLE' = 60, 'CREATE VIEW' = 61, 'CREATE DICTIONARY' = 62, 'CREATE TEMPORARY TABLE' = 63, 'CREATE ARBITRARY TEMPORARY TABLE' = 64, 'CREATE TEMPORARY VIEW' = 65, 'CREATE FUNCTION' = 66, 'CREATE WORKLOAD' = 67, 'CREATE RESOURCE' = 68, 'CREATE NAMED COLLECTION' = 69, 'CREATE' = 70, 'DROP DATABASE' = 71, 'DROP TABLE' = 72, 'DROP VIEW' = 73, 'DROP DICTIONARY' = 74, 'DROP FUNCTION' = 75, 'DROP WORKLOAD' = 76, 'DROP RESOURCE' = 77, 'DROP NAMED COLLECTION' = 78, 'DROP' = 79, 'UNDROP TABLE' = 80, 'TRUNCATE' = 81, 'OPTIMIZE' = 82, 'BACKUP' = 83, 'KILL QUERY' = 84, 'KILL TRANSACTION' = 85, 'MOVE PARTITION BETWEEN SHARDS' = 86, 'CREATE USER' = 87, 'ALTER USER' = 88, 'DROP USER' = 89, 'CREATE ROLE' = 90, 'ALTER ROLE' = 91, 'DROP ROLE' = 92, 'ROLE ADMIN' = 93, 'CREATE ROW POLICY' = 94, 'ALTER ROW POLICY' = 95, 'DROP ROW POLICY' = 96, 'CREATE MASKING POLICY' = 97, 'ALTER MASKING POLICY' = 98, 'DROP MASKING POLICY' = 99, 'CREATE QUOTA' = 100, 'ALTER QUOTA' = 101, 'DROP QUOTA' = 102, 'CREATE SETTINGS PROFILE' = 103, 'ALTER SETTINGS PROFILE' = 104, 'DROP SETTINGS PROFILE' = 105, 'ALLOW SQL SECURITY NONE' = 106, 'SHOW USERS' = 107, 'SHOW ROLES' = 108, 'SHOW ROW POLICIES' = 109, 'SHOW QUOTAS' = 110, 'SHOW SETTINGS PROFILES' = 111, 'SHOW MASKING POLICIES' = 112, 'SHOW ACCESS' = 113, 'IMPERSONATE' = 114, 'ACCESS MANAGEMENT' = 115, 'SHOW NAMED COLLECTIONS' = 116, 'SHOW NAMED COLLECTIONS SECRETS' = 117, 'NAMED COLLECTION' = 118, 'NAMED COLLECTION ADMIN' = 119, 'SET DEFINER' = 120, 'TABLE ENGINE' = 121, 'SYSTEM SHUTDOWN' = 122, 'SYSTEM DROP DNS CACHE' = 123, 'SYSTEM DROP CONNECTIONS CACHE' = 124, 'SYSTEM PREWARM MARK CACHE' = 125, 'SYSTEM DROP MARK CACHE' = 126, 'SYSTEM DROP ICEBERG METADATA CACHE' = 127, 'SYSTEM DROP AVRO SCHEMA CACHE' = 128, 'SYSTEM DROP PARQUET METADATA CACHE' = 129, 'SYSTEM PREWARM PRIMARY INDEX CACHE' = 130, 'SYSTEM DROP PRIMARY INDEX CACHE' = 131, 'SYSTEM DROP UNCOMPRESSED CACHE' = 132, 'SYSTEM DROP VECTOR SIMILARITY INDEX CACHE' = 133, 'SYSTEM DROP TEXT INDEX TOKENS CACHE' = 134, 'SYSTEM DROP TEXT INDEX HEADER CACHE' = 135, 'SYSTEM DROP TEXT INDEX POSTINGS CACHE' = 136, 'SYSTEM DROP TEXT INDEX CACHES' = 137, 'SYSTEM DROP MMAP CACHE' = 138, 'SYSTEM DROP QUERY CONDITION CACHE' = 139, 'SYSTEM DROP QUERY CACHE' = 140, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 141, 'SYSTEM DROP FILESYSTEM CACHE' = 142, 'SYSTEM DROP DISTRIBUTED CACHE' = 143, 'SYSTEM SYNC FILESYSTEM CACHE' = 144, 'SYSTEM DROP PAGE CACHE' = 145, 'SYSTEM DROP SCHEMA CACHE' = 146, 'SYSTEM DROP FORMAT SCHEMA CACHE' = 147, 'SYSTEM DROP S3 CLIENT CACHE' = 148, 'SYSTEM DROP CACHE' = 149, 'SYSTEM RELOAD CONFIG' = 150, 'SYSTEM RELOAD USERS' = 151, 'SYSTEM RELOAD DICTIONARY' = 152, 'SYSTEM RELOAD MODEL' = 153, 'SYSTEM RELOAD FUNCTION' = 154, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 155, 'SYSTEM RELOAD ASYNCHRONOUS METRICS' = 156, 'SYSTEM RECONNECT ZOOKEEPER' = 157, 'SYSTEM RELOAD' = 158, 'SYSTEM RESTART DISK' = 159, 'SYSTEM WAIT BLOBS CLEANUP' = 160, 'SYSTEM MERGES' = 161, 'SYSTEM TTL MERGES' = 162, 'SYSTEM FETCHES' = 163, 'SYSTEM MOVES' = 164, 'SYSTEM PULLING REPLICATION LOG' = 165, 'SYSTEM CLEANUP' = 166, 'SYSTEM VIEWS' = 167, 'SYSTEM DISTRIBUTED SENDS' = 168, 'SYSTEM REPLICATED SENDS' = 169, 'SYSTEM SENDS' = 170, 'SYSTEM REPLICATION QUEUES' = 171, 'SYSTEM VIRTUAL PARTS UPDATE' = 172, 'SYSTEM REDUCE BLOCKING PARTS' = 173, 'SYSTEM DROP REPLICA' = 174, 'SYSTEM SYNC REPLICA' = 175, 'SYSTEM REPLICA READINESS' = 176, 'SYSTEM RESTART REPLICA' = 177, 'SYSTEM RESTORE REPLICA' = 178, 'SYSTEM RESTORE DATABASE REPLICA' = 179, 'SYSTEM WAIT LOADING PARTS' = 180, 'SYSTEM SYNC DATABASE REPLICA' = 181, 'SYSTEM SYNC TRANSACTION LOG' = 182, 'SYSTEM SYNC FILE CACHE' = 183, 'SYSTEM FLUSH DISTRIBUTED' = 184, 'SYSTEM FLUSH LOGS' = 185, 'SYSTEM FLUSH ASYNC INSERT QUEUE' = 186, 'SYSTEM FLUSH OBJECT STORAGE QUEUE' = 187, 'SYSTEM FLUSH' = 188, 'SYSTEM THREAD FUZZER' = 189, 'SYSTEM UNFREEZE' = 190, 'SYSTEM UNLOCK SNAPSHOT' = 191, 'SYSTEM FAILPOINT' = 192, 'SYSTEM MEMORY' = 193, 'SYSTEM LISTEN' = 194, 'SYSTEM JEMALLOC' = 195, 'SYSTEM LOAD PRIMARY KEY' = 196, 'SYSTEM UNLOAD PRIMARY KEY' = 197, 'SYSTEM INSTRUMENT ADD' = 198, 'SYSTEM INSTRUMENT REMOVE' = 199, 'SYSTEM' = 200, 'dictGet' = 201, 'displaySecretsInShowAndSelect' = 202, 'addressToLine' = 203, 'addressToLineWithInlines' = 204, 'addressToSymbol' = 205, 'demangle' = 206, 'INTROSPECTION' = 207, 'READ' = 208, 'WRITE' = 209, 'CLUSTER' = 210, 'FILE' = 211, 'URL' = 212, 'REMOTE' = 213, 'MONGO' = 214, 'REDIS' = 215, 'MYSQL' = 216, 'POSTGRES' = 217, 'SQLITE' = 218, 'ODBC' = 219, 'JDBC' = 220, 'HDFS' = 221, 'S3' = 222, 'HIVE' = 223, 'AZURE' = 224, 'KAFKA' = 225, 'NATS' = 226, 'RABBITMQ' = 227, 'YTSAURUS' = 228, 'ARROW FLIGHT' = 229, 'SOURCES' = 230, 'ALL' = 231, 'NONE' = 232)](/reference/data-types)) — Name of a privilege which can be used in the GRANT command. -- `aliases` ([Array(String)](/reference/data-types)) — List of aliases which can be used instead of the name of the privilege. -- `level` ([Nullable(Enum8('GLOBAL' = 0, 'DATABASE' = 1, 'TABLE' = 2, 'DICTIONARY' = 3, 'VIEW' = 4, 'COLUMN' = 5, 'NAMED_COLLECTION' = 6, 'USER_NAME' = 7, 'TABLE_ENGINE' = 8, 'DEFINER' = 9, 'SOURCE' = 10))](/reference/data-types)) — Level of the privilege. GLOBAL privileges can be granted only globally (`ON *.*`), DATABASE privileges can be granted on a specific database (`ON .*`) or globally (`ON *.*`), TABLE privileges can be granted either on a specific table or on a specific database or globally, and COLUMN privileges can be granted like TABLE privileges but also allow to specify columns. -- `parent_group` ([Nullable(Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'CHECK' = 2, 'SHOW COLUMNS' = 3, 'SHOW DICTIONARIES' = 4, 'SHOW' = 5, 'SHOW FILESYSTEM CACHES' = 6, 'SELECT' = 7, 'INSERT' = 8, 'ALTER UPDATE' = 9, 'ALTER DELETE' = 10, 'ALTER ADD COLUMN' = 11, 'ALTER MODIFY COLUMN' = 12, 'ALTER DROP COLUMN' = 13, 'ALTER COMMENT COLUMN' = 14, 'ALTER CLEAR COLUMN' = 15, 'ALTER RENAME COLUMN' = 16, 'ALTER MATERIALIZE COLUMN' = 17, 'ALTER COLUMN' = 18, 'ALTER MODIFY COMMENT' = 19, 'ALTER MODIFY DATABASE COMMENT' = 20, 'ALTER ORDER BY' = 21, 'ALTER SAMPLE BY' = 22, 'ALTER ADD INDEX' = 23, 'ALTER DROP INDEX' = 24, 'ALTER MATERIALIZE INDEX' = 25, 'ALTER CLEAR INDEX' = 26, 'ALTER INDEX' = 27, 'ALTER ADD STATISTICS' = 28, 'ALTER DROP STATISTICS' = 29, 'ALTER MODIFY STATISTICS' = 30, 'ALTER MATERIALIZE STATISTICS' = 31, 'ALTER STATISTICS' = 32, 'ALTER ADD PROJECTION' = 33, 'ALTER DROP PROJECTION' = 34, 'ALTER MATERIALIZE PROJECTION' = 35, 'ALTER CLEAR PROJECTION' = 36, 'ALTER PROJECTION' = 37, 'ALTER ADD CONSTRAINT' = 38, 'ALTER DROP CONSTRAINT' = 39, 'ALTER CONSTRAINT' = 40, 'ALTER TTL' = 41, 'ALTER MATERIALIZE TTL' = 42, 'ALTER REWRITE PARTS' = 43, 'ALTER SETTINGS' = 44, 'ALTER MOVE PARTITION' = 45, 'ALTER FETCH PARTITION' = 46, 'ALTER FREEZE PARTITION' = 47, 'ALTER UNLOCK SNAPSHOT' = 48, 'ALTER EXECUTE' = 49, 'ALTER DATABASE SETTINGS' = 50, 'ALTER NAMED COLLECTION' = 51, 'ALTER TABLE' = 52, 'ALTER DATABASE' = 53, 'ALTER VIEW MODIFY QUERY' = 54, 'ALTER VIEW MODIFY REFRESH' = 55, 'ALTER VIEW MODIFY SQL SECURITY' = 56, 'ALTER VIEW' = 57, 'ALTER' = 58, 'CREATE DATABASE' = 59, 'CREATE TABLE' = 60, 'CREATE VIEW' = 61, 'CREATE DICTIONARY' = 62, 'CREATE TEMPORARY TABLE' = 63, 'CREATE ARBITRARY TEMPORARY TABLE' = 64, 'CREATE TEMPORARY VIEW' = 65, 'CREATE FUNCTION' = 66, 'CREATE WORKLOAD' = 67, 'CREATE RESOURCE' = 68, 'CREATE NAMED COLLECTION' = 69, 'CREATE' = 70, 'DROP DATABASE' = 71, 'DROP TABLE' = 72, 'DROP VIEW' = 73, 'DROP DICTIONARY' = 74, 'DROP FUNCTION' = 75, 'DROP WORKLOAD' = 76, 'DROP RESOURCE' = 77, 'DROP NAMED COLLECTION' = 78, 'DROP' = 79, 'UNDROP TABLE' = 80, 'TRUNCATE' = 81, 'OPTIMIZE' = 82, 'BACKUP' = 83, 'KILL QUERY' = 84, 'KILL TRANSACTION' = 85, 'MOVE PARTITION BETWEEN SHARDS' = 86, 'CREATE USER' = 87, 'ALTER USER' = 88, 'DROP USER' = 89, 'CREATE ROLE' = 90, 'ALTER ROLE' = 91, 'DROP ROLE' = 92, 'ROLE ADMIN' = 93, 'CREATE ROW POLICY' = 94, 'ALTER ROW POLICY' = 95, 'DROP ROW POLICY' = 96, 'CREATE MASKING POLICY' = 97, 'ALTER MASKING POLICY' = 98, 'DROP MASKING POLICY' = 99, 'CREATE QUOTA' = 100, 'ALTER QUOTA' = 101, 'DROP QUOTA' = 102, 'CREATE SETTINGS PROFILE' = 103, 'ALTER SETTINGS PROFILE' = 104, 'DROP SETTINGS PROFILE' = 105, 'ALLOW SQL SECURITY NONE' = 106, 'SHOW USERS' = 107, 'SHOW ROLES' = 108, 'SHOW ROW POLICIES' = 109, 'SHOW QUOTAS' = 110, 'SHOW SETTINGS PROFILES' = 111, 'SHOW MASKING POLICIES' = 112, 'SHOW ACCESS' = 113, 'IMPERSONATE' = 114, 'ACCESS MANAGEMENT' = 115, 'SHOW NAMED COLLECTIONS' = 116, 'SHOW NAMED COLLECTIONS SECRETS' = 117, 'NAMED COLLECTION' = 118, 'NAMED COLLECTION ADMIN' = 119, 'SET DEFINER' = 120, 'TABLE ENGINE' = 121, 'SYSTEM SHUTDOWN' = 122, 'SYSTEM DROP DNS CACHE' = 123, 'SYSTEM DROP CONNECTIONS CACHE' = 124, 'SYSTEM PREWARM MARK CACHE' = 125, 'SYSTEM DROP MARK CACHE' = 126, 'SYSTEM DROP ICEBERG METADATA CACHE' = 127, 'SYSTEM DROP AVRO SCHEMA CACHE' = 128, 'SYSTEM DROP PARQUET METADATA CACHE' = 129, 'SYSTEM PREWARM PRIMARY INDEX CACHE' = 130, 'SYSTEM DROP PRIMARY INDEX CACHE' = 131, 'SYSTEM DROP UNCOMPRESSED CACHE' = 132, 'SYSTEM DROP VECTOR SIMILARITY INDEX CACHE' = 133, 'SYSTEM DROP TEXT INDEX TOKENS CACHE' = 134, 'SYSTEM DROP TEXT INDEX HEADER CACHE' = 135, 'SYSTEM DROP TEXT INDEX POSTINGS CACHE' = 136, 'SYSTEM DROP TEXT INDEX CACHES' = 137, 'SYSTEM DROP MMAP CACHE' = 138, 'SYSTEM DROP QUERY CONDITION CACHE' = 139, 'SYSTEM DROP QUERY CACHE' = 140, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 141, 'SYSTEM DROP FILESYSTEM CACHE' = 142, 'SYSTEM DROP DISTRIBUTED CACHE' = 143, 'SYSTEM SYNC FILESYSTEM CACHE' = 144, 'SYSTEM DROP PAGE CACHE' = 145, 'SYSTEM DROP SCHEMA CACHE' = 146, 'SYSTEM DROP FORMAT SCHEMA CACHE' = 147, 'SYSTEM DROP S3 CLIENT CACHE' = 148, 'SYSTEM DROP CACHE' = 149, 'SYSTEM RELOAD CONFIG' = 150, 'SYSTEM RELOAD USERS' = 151, 'SYSTEM RELOAD DICTIONARY' = 152, 'SYSTEM RELOAD MODEL' = 153, 'SYSTEM RELOAD FUNCTION' = 154, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 155, 'SYSTEM RELOAD ASYNCHRONOUS METRICS' = 156, 'SYSTEM RECONNECT ZOOKEEPER' = 157, 'SYSTEM RELOAD' = 158, 'SYSTEM RESTART DISK' = 159, 'SYSTEM WAIT BLOBS CLEANUP' = 160, 'SYSTEM MERGES' = 161, 'SYSTEM TTL MERGES' = 162, 'SYSTEM FETCHES' = 163, 'SYSTEM MOVES' = 164, 'SYSTEM PULLING REPLICATION LOG' = 165, 'SYSTEM CLEANUP' = 166, 'SYSTEM VIEWS' = 167, 'SYSTEM DISTRIBUTED SENDS' = 168, 'SYSTEM REPLICATED SENDS' = 169, 'SYSTEM SENDS' = 170, 'SYSTEM REPLICATION QUEUES' = 171, 'SYSTEM VIRTUAL PARTS UPDATE' = 172, 'SYSTEM REDUCE BLOCKING PARTS' = 173, 'SYSTEM DROP REPLICA' = 174, 'SYSTEM SYNC REPLICA' = 175, 'SYSTEM REPLICA READINESS' = 176, 'SYSTEM RESTART REPLICA' = 177, 'SYSTEM RESTORE REPLICA' = 178, 'SYSTEM RESTORE DATABASE REPLICA' = 179, 'SYSTEM WAIT LOADING PARTS' = 180, 'SYSTEM SYNC DATABASE REPLICA' = 181, 'SYSTEM SYNC TRANSACTION LOG' = 182, 'SYSTEM SYNC FILE CACHE' = 183, 'SYSTEM FLUSH DISTRIBUTED' = 184, 'SYSTEM FLUSH LOGS' = 185, 'SYSTEM FLUSH ASYNC INSERT QUEUE' = 186, 'SYSTEM FLUSH OBJECT STORAGE QUEUE' = 187, 'SYSTEM FLUSH' = 188, 'SYSTEM THREAD FUZZER' = 189, 'SYSTEM UNFREEZE' = 190, 'SYSTEM UNLOCK SNAPSHOT' = 191, 'SYSTEM FAILPOINT' = 192, 'SYSTEM MEMORY' = 193, 'SYSTEM LISTEN' = 194, 'SYSTEM JEMALLOC' = 195, 'SYSTEM LOAD PRIMARY KEY' = 196, 'SYSTEM UNLOAD PRIMARY KEY' = 197, 'SYSTEM INSTRUMENT ADD' = 198, 'SYSTEM INSTRUMENT REMOVE' = 199, 'SYSTEM' = 200, 'dictGet' = 201, 'displaySecretsInShowAndSelect' = 202, 'addressToLine' = 203, 'addressToLineWithInlines' = 204, 'addressToSymbol' = 205, 'demangle' = 206, 'INTROSPECTION' = 207, 'READ' = 208, 'WRITE' = 209, 'CLUSTER' = 210, 'FILE' = 211, 'URL' = 212, 'REMOTE' = 213, 'MONGO' = 214, 'REDIS' = 215, 'MYSQL' = 216, 'POSTGRES' = 217, 'SQLITE' = 218, 'ODBC' = 219, 'JDBC' = 220, 'HDFS' = 221, 'S3' = 222, 'HIVE' = 223, 'AZURE' = 224, 'KAFKA' = 225, 'NATS' = 226, 'RABBITMQ' = 227, 'YTSAURUS' = 228, 'ARROW FLIGHT' = 229, 'SOURCES' = 230, 'ALL' = 231, 'NONE' = 232))](/reference/data-types)) — Parent privilege - if the parent privilege is granted then all its children privileges are considered as granted too. +- `privilege` ([Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'CHECK' = 2, 'SHOW COLUMNS' = 3, 'SHOW DICTIONARIES' = 4, 'SHOW' = 5, 'SHOW FILESYSTEM CACHES' = 6, 'SELECT' = 7, 'INSERT' = 8, 'ALTER UPDATE' = 9, 'ALTER DELETE' = 10, 'ALTER ADD COLUMN' = 11, 'ALTER MODIFY COLUMN' = 12, 'ALTER DROP COLUMN' = 13, 'ALTER COMMENT COLUMN' = 14, 'ALTER CLEAR COLUMN' = 15, 'ALTER RENAME COLUMN' = 16, 'ALTER MATERIALIZE COLUMN' = 17, 'ALTER COLUMN' = 18, 'ALTER MODIFY COMMENT' = 19, 'ALTER MODIFY DATABASE COMMENT' = 20, 'ALTER ORDER BY' = 21, 'ALTER SAMPLE BY' = 22, 'ALTER ADD INDEX' = 23, 'ALTER DROP INDEX' = 24, 'ALTER MATERIALIZE INDEX' = 25, 'ALTER CLEAR INDEX' = 26, 'ALTER INDEX' = 27, 'ALTER ADD STATISTICS' = 28, 'ALTER DROP STATISTICS' = 29, 'ALTER MODIFY STATISTICS' = 30, 'ALTER MATERIALIZE STATISTICS' = 31, 'ALTER STATISTICS' = 32, 'ALTER ADD PROJECTION' = 33, 'ALTER DROP PROJECTION' = 34, 'ALTER MATERIALIZE PROJECTION' = 35, 'ALTER CLEAR PROJECTION' = 36, 'ALTER PROJECTION' = 37, 'ALTER ADD CONSTRAINT' = 38, 'ALTER DROP CONSTRAINT' = 39, 'ALTER CONSTRAINT' = 40, 'ALTER TTL' = 41, 'ALTER MATERIALIZE TTL' = 42, 'ALTER REWRITE PARTS' = 43, 'ALTER SETTINGS' = 44, 'ALTER MOVE PARTITION' = 45, 'ALTER FETCH PARTITION' = 46, 'ALTER FREEZE PARTITION' = 47, 'ALTER UNLOCK SNAPSHOT' = 48, 'ALTER EXECUTE' = 49, 'ALTER DATABASE SETTINGS' = 50, 'ALTER NAMED COLLECTION' = 51, 'ALTER TABLE' = 52, 'ALTER DATABASE' = 53, 'ALTER VIEW MODIFY QUERY' = 54, 'ALTER VIEW MODIFY REFRESH' = 55, 'ALTER VIEW MODIFY SQL SECURITY' = 56, 'ALTER VIEW' = 57, 'ALTER' = 58, 'CREATE DATABASE' = 59, 'CREATE TABLE' = 60, 'CREATE VIEW' = 61, 'CREATE DICTIONARY' = 62, 'CREATE TEMPORARY TABLE' = 63, 'CREATE ARBITRARY TEMPORARY TABLE' = 64, 'CREATE TEMPORARY VIEW' = 65, 'CREATE FUNCTION' = 66, 'CREATE WORKLOAD' = 67, 'CREATE RESOURCE' = 68, 'CREATE NAMED COLLECTION' = 69, 'CREATE' = 70, 'DROP DATABASE' = 71, 'DROP TABLE' = 72, 'DROP VIEW' = 73, 'DROP DICTIONARY' = 74, 'DROP FUNCTION' = 75, 'DROP WORKLOAD' = 76, 'DROP RESOURCE' = 77, 'DROP NAMED COLLECTION' = 78, 'DROP' = 79, 'UNDROP TABLE' = 80, 'TRUNCATE' = 81, 'OPTIMIZE' = 82, 'BACKUP' = 83, 'KILL QUERY' = 84, 'KILL TRANSACTION' = 85, 'MOVE PARTITION BETWEEN SHARDS' = 86, 'CREATE USER' = 87, 'ALTER USER' = 88, 'DROP USER' = 89, 'CREATE ROLE' = 90, 'ALTER ROLE' = 91, 'DROP ROLE' = 92, 'ROLE ADMIN' = 93, 'CREATE ROW POLICY' = 94, 'ALTER ROW POLICY' = 95, 'DROP ROW POLICY' = 96, 'CREATE MASKING POLICY' = 97, 'ALTER MASKING POLICY' = 98, 'DROP MASKING POLICY' = 99, 'CREATE QUOTA' = 100, 'ALTER QUOTA' = 101, 'DROP QUOTA' = 102, 'CREATE SETTINGS PROFILE' = 103, 'ALTER SETTINGS PROFILE' = 104, 'DROP SETTINGS PROFILE' = 105, 'ALLOW SQL SECURITY NONE' = 106, 'SHOW USERS' = 107, 'SHOW ROLES' = 108, 'SHOW ROW POLICIES' = 109, 'SHOW QUOTAS' = 110, 'SHOW SETTINGS PROFILES' = 111, 'SHOW MASKING POLICIES' = 112, 'SHOW ACCESS' = 113, 'IMPERSONATE' = 114, 'ACCESS MANAGEMENT' = 115, 'SHOW NAMED COLLECTIONS' = 116, 'SHOW NAMED COLLECTIONS SECRETS' = 117, 'NAMED COLLECTION' = 118, 'NAMED COLLECTION ADMIN' = 119, 'SET DEFINER' = 120, 'TABLE ENGINE' = 121, 'SYSTEM SHUTDOWN' = 122, 'SYSTEM DROP DNS CACHE' = 123, 'SYSTEM DROP CONNECTIONS CACHE' = 124, 'SYSTEM PREWARM MARK CACHE' = 125, 'SYSTEM DROP MARK CACHE' = 126, 'SYSTEM DROP ICEBERG METADATA CACHE' = 127, 'SYSTEM DROP AVRO SCHEMA CACHE' = 128, 'SYSTEM DROP PARQUET METADATA CACHE' = 129, 'SYSTEM PREWARM PRIMARY INDEX CACHE' = 130, 'SYSTEM DROP PRIMARY INDEX CACHE' = 131, 'SYSTEM DROP UNCOMPRESSED CACHE' = 132, 'SYSTEM DROP VECTOR SIMILARITY INDEX CACHE' = 133, 'SYSTEM DROP TEXT INDEX TOKENS CACHE' = 134, 'SYSTEM DROP TEXT INDEX HEADER CACHE' = 135, 'SYSTEM DROP TEXT INDEX POSTINGS CACHE' = 136, 'SYSTEM DROP TEXT INDEX CACHES' = 137, 'SYSTEM DROP MMAP CACHE' = 138, 'SYSTEM DROP QUERY CONDITION CACHE' = 139, 'SYSTEM DROP QUERY CACHE' = 140, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 141, 'SYSTEM DROP FILESYSTEM CACHE' = 142, 'SYSTEM DROP DISTRIBUTED CACHE' = 143, 'SYSTEM SYNC FILESYSTEM CACHE' = 144, 'SYSTEM DROP PAGE CACHE' = 145, 'SYSTEM DROP SCHEMA CACHE' = 146, 'SYSTEM DROP FORMAT SCHEMA CACHE' = 147, 'SYSTEM DROP S3 CLIENT CACHE' = 148, 'SYSTEM DROP CACHE' = 149, 'SYSTEM RELOAD CONFIG' = 150, 'SYSTEM RELOAD USERS' = 151, 'SYSTEM RELOAD DICTIONARY' = 152, 'SYSTEM RELOAD MODEL' = 153, 'SYSTEM RELOAD FUNCTION' = 154, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 155, 'SYSTEM RELOAD ASYNCHRONOUS METRICS' = 156, 'SYSTEM RECONNECT ZOOKEEPER' = 157, 'SYSTEM RELOAD' = 158, 'SYSTEM RESTART DISK' = 159, 'SYSTEM WAIT BLOBS CLEANUP' = 160, 'SYSTEM MERGES' = 161, 'SYSTEM TTL MERGES' = 162, 'SYSTEM FETCHES' = 163, 'SYSTEM MOVES' = 164, 'SYSTEM PULLING REPLICATION LOG' = 165, 'SYSTEM CLEANUP' = 166, 'SYSTEM VIEWS' = 167, 'SYSTEM DISTRIBUTED SENDS' = 168, 'SYSTEM REPLICATED SENDS' = 169, 'SYSTEM SENDS' = 170, 'SYSTEM REPLICATION QUEUES' = 171, 'SYSTEM VIRTUAL PARTS UPDATE' = 172, 'SYSTEM REDUCE BLOCKING PARTS' = 173, 'SYSTEM DROP REPLICA' = 174, 'SYSTEM SYNC REPLICA' = 175, 'SYSTEM REPLICA READINESS' = 176, 'SYSTEM RESTART REPLICA' = 177, 'SYSTEM RESTORE REPLICA' = 178, 'SYSTEM RESTORE DATABASE REPLICA' = 179, 'SYSTEM WAIT LOADING PARTS' = 180, 'SYSTEM SYNC DATABASE REPLICA' = 181, 'SYSTEM SYNC TRANSACTION LOG' = 182, 'SYSTEM SYNC FILE CACHE' = 183, 'SYSTEM FLUSH DISTRIBUTED' = 184, 'SYSTEM FLUSH LOGS' = 185, 'SYSTEM FLUSH ASYNC INSERT QUEUE' = 186, 'SYSTEM FLUSH OBJECT STORAGE QUEUE' = 187, 'SYSTEM FLUSH' = 188, 'SYSTEM THREAD FUZZER' = 189, 'SYSTEM UNFREEZE' = 190, 'SYSTEM UNLOCK SNAPSHOT' = 191, 'SYSTEM FAILPOINT' = 192, 'SYSTEM MEMORY' = 193, 'SYSTEM LISTEN' = 194, 'SYSTEM JEMALLOC' = 195, 'SYSTEM LOAD PRIMARY KEY' = 196, 'SYSTEM UNLOAD PRIMARY KEY' = 197, 'SYSTEM INSTRUMENT ADD' = 198, 'SYSTEM INSTRUMENT REMOVE' = 199, 'SYSTEM' = 200, 'dictGet' = 201, 'displaySecretsInShowAndSelect' = 202, 'addressToLine' = 203, 'addressToLineWithInlines' = 204, 'addressToSymbol' = 205, 'demangle' = 206, 'INTROSPECTION' = 207, 'READ' = 208, 'WRITE' = 209, 'CLUSTER' = 210, 'FILE' = 211, 'URL' = 212, 'REMOTE' = 213, 'MONGO' = 214, 'REDIS' = 215, 'MYSQL' = 216, 'POSTGRES' = 217, 'SQLITE' = 218, 'ODBC' = 219, 'JDBC' = 220, 'HDFS' = 221, 'S3' = 222, 'HIVE' = 223, 'AZURE' = 224, 'KAFKA' = 225, 'NATS' = 226, 'RABBITMQ' = 227, 'YTSAURUS' = 228, 'ARROW FLIGHT' = 229, 'SOURCES' = 230, 'ALL' = 231, 'NONE' = 232)](/core/reference/data-types)) — Name of a privilege which can be used in the GRANT command. +- `aliases` ([Array(String)](/core/reference/data-types)) — List of aliases which can be used instead of the name of the privilege. +- `level` ([Nullable(Enum8('GLOBAL' = 0, 'DATABASE' = 1, 'TABLE' = 2, 'DICTIONARY' = 3, 'VIEW' = 4, 'COLUMN' = 5, 'NAMED_COLLECTION' = 6, 'USER_NAME' = 7, 'TABLE_ENGINE' = 8, 'DEFINER' = 9, 'SOURCE' = 10))](/core/reference/data-types)) — Level of the privilege. GLOBAL privileges can be granted only globally (`ON *.*`), DATABASE privileges can be granted on a specific database (`ON .*`) or globally (`ON *.*`), TABLE privileges can be granted either on a specific table or on a specific database or globally, and COLUMN privileges can be granted like TABLE privileges but also allow to specify columns. +- `parent_group` ([Nullable(Enum16('SHOW DATABASES' = 0, 'SHOW TABLES' = 1, 'CHECK' = 2, 'SHOW COLUMNS' = 3, 'SHOW DICTIONARIES' = 4, 'SHOW' = 5, 'SHOW FILESYSTEM CACHES' = 6, 'SELECT' = 7, 'INSERT' = 8, 'ALTER UPDATE' = 9, 'ALTER DELETE' = 10, 'ALTER ADD COLUMN' = 11, 'ALTER MODIFY COLUMN' = 12, 'ALTER DROP COLUMN' = 13, 'ALTER COMMENT COLUMN' = 14, 'ALTER CLEAR COLUMN' = 15, 'ALTER RENAME COLUMN' = 16, 'ALTER MATERIALIZE COLUMN' = 17, 'ALTER COLUMN' = 18, 'ALTER MODIFY COMMENT' = 19, 'ALTER MODIFY DATABASE COMMENT' = 20, 'ALTER ORDER BY' = 21, 'ALTER SAMPLE BY' = 22, 'ALTER ADD INDEX' = 23, 'ALTER DROP INDEX' = 24, 'ALTER MATERIALIZE INDEX' = 25, 'ALTER CLEAR INDEX' = 26, 'ALTER INDEX' = 27, 'ALTER ADD STATISTICS' = 28, 'ALTER DROP STATISTICS' = 29, 'ALTER MODIFY STATISTICS' = 30, 'ALTER MATERIALIZE STATISTICS' = 31, 'ALTER STATISTICS' = 32, 'ALTER ADD PROJECTION' = 33, 'ALTER DROP PROJECTION' = 34, 'ALTER MATERIALIZE PROJECTION' = 35, 'ALTER CLEAR PROJECTION' = 36, 'ALTER PROJECTION' = 37, 'ALTER ADD CONSTRAINT' = 38, 'ALTER DROP CONSTRAINT' = 39, 'ALTER CONSTRAINT' = 40, 'ALTER TTL' = 41, 'ALTER MATERIALIZE TTL' = 42, 'ALTER REWRITE PARTS' = 43, 'ALTER SETTINGS' = 44, 'ALTER MOVE PARTITION' = 45, 'ALTER FETCH PARTITION' = 46, 'ALTER FREEZE PARTITION' = 47, 'ALTER UNLOCK SNAPSHOT' = 48, 'ALTER EXECUTE' = 49, 'ALTER DATABASE SETTINGS' = 50, 'ALTER NAMED COLLECTION' = 51, 'ALTER TABLE' = 52, 'ALTER DATABASE' = 53, 'ALTER VIEW MODIFY QUERY' = 54, 'ALTER VIEW MODIFY REFRESH' = 55, 'ALTER VIEW MODIFY SQL SECURITY' = 56, 'ALTER VIEW' = 57, 'ALTER' = 58, 'CREATE DATABASE' = 59, 'CREATE TABLE' = 60, 'CREATE VIEW' = 61, 'CREATE DICTIONARY' = 62, 'CREATE TEMPORARY TABLE' = 63, 'CREATE ARBITRARY TEMPORARY TABLE' = 64, 'CREATE TEMPORARY VIEW' = 65, 'CREATE FUNCTION' = 66, 'CREATE WORKLOAD' = 67, 'CREATE RESOURCE' = 68, 'CREATE NAMED COLLECTION' = 69, 'CREATE' = 70, 'DROP DATABASE' = 71, 'DROP TABLE' = 72, 'DROP VIEW' = 73, 'DROP DICTIONARY' = 74, 'DROP FUNCTION' = 75, 'DROP WORKLOAD' = 76, 'DROP RESOURCE' = 77, 'DROP NAMED COLLECTION' = 78, 'DROP' = 79, 'UNDROP TABLE' = 80, 'TRUNCATE' = 81, 'OPTIMIZE' = 82, 'BACKUP' = 83, 'KILL QUERY' = 84, 'KILL TRANSACTION' = 85, 'MOVE PARTITION BETWEEN SHARDS' = 86, 'CREATE USER' = 87, 'ALTER USER' = 88, 'DROP USER' = 89, 'CREATE ROLE' = 90, 'ALTER ROLE' = 91, 'DROP ROLE' = 92, 'ROLE ADMIN' = 93, 'CREATE ROW POLICY' = 94, 'ALTER ROW POLICY' = 95, 'DROP ROW POLICY' = 96, 'CREATE MASKING POLICY' = 97, 'ALTER MASKING POLICY' = 98, 'DROP MASKING POLICY' = 99, 'CREATE QUOTA' = 100, 'ALTER QUOTA' = 101, 'DROP QUOTA' = 102, 'CREATE SETTINGS PROFILE' = 103, 'ALTER SETTINGS PROFILE' = 104, 'DROP SETTINGS PROFILE' = 105, 'ALLOW SQL SECURITY NONE' = 106, 'SHOW USERS' = 107, 'SHOW ROLES' = 108, 'SHOW ROW POLICIES' = 109, 'SHOW QUOTAS' = 110, 'SHOW SETTINGS PROFILES' = 111, 'SHOW MASKING POLICIES' = 112, 'SHOW ACCESS' = 113, 'IMPERSONATE' = 114, 'ACCESS MANAGEMENT' = 115, 'SHOW NAMED COLLECTIONS' = 116, 'SHOW NAMED COLLECTIONS SECRETS' = 117, 'NAMED COLLECTION' = 118, 'NAMED COLLECTION ADMIN' = 119, 'SET DEFINER' = 120, 'TABLE ENGINE' = 121, 'SYSTEM SHUTDOWN' = 122, 'SYSTEM DROP DNS CACHE' = 123, 'SYSTEM DROP CONNECTIONS CACHE' = 124, 'SYSTEM PREWARM MARK CACHE' = 125, 'SYSTEM DROP MARK CACHE' = 126, 'SYSTEM DROP ICEBERG METADATA CACHE' = 127, 'SYSTEM DROP AVRO SCHEMA CACHE' = 128, 'SYSTEM DROP PARQUET METADATA CACHE' = 129, 'SYSTEM PREWARM PRIMARY INDEX CACHE' = 130, 'SYSTEM DROP PRIMARY INDEX CACHE' = 131, 'SYSTEM DROP UNCOMPRESSED CACHE' = 132, 'SYSTEM DROP VECTOR SIMILARITY INDEX CACHE' = 133, 'SYSTEM DROP TEXT INDEX TOKENS CACHE' = 134, 'SYSTEM DROP TEXT INDEX HEADER CACHE' = 135, 'SYSTEM DROP TEXT INDEX POSTINGS CACHE' = 136, 'SYSTEM DROP TEXT INDEX CACHES' = 137, 'SYSTEM DROP MMAP CACHE' = 138, 'SYSTEM DROP QUERY CONDITION CACHE' = 139, 'SYSTEM DROP QUERY CACHE' = 140, 'SYSTEM DROP COMPILED EXPRESSION CACHE' = 141, 'SYSTEM DROP FILESYSTEM CACHE' = 142, 'SYSTEM DROP DISTRIBUTED CACHE' = 143, 'SYSTEM SYNC FILESYSTEM CACHE' = 144, 'SYSTEM DROP PAGE CACHE' = 145, 'SYSTEM DROP SCHEMA CACHE' = 146, 'SYSTEM DROP FORMAT SCHEMA CACHE' = 147, 'SYSTEM DROP S3 CLIENT CACHE' = 148, 'SYSTEM DROP CACHE' = 149, 'SYSTEM RELOAD CONFIG' = 150, 'SYSTEM RELOAD USERS' = 151, 'SYSTEM RELOAD DICTIONARY' = 152, 'SYSTEM RELOAD MODEL' = 153, 'SYSTEM RELOAD FUNCTION' = 154, 'SYSTEM RELOAD EMBEDDED DICTIONARIES' = 155, 'SYSTEM RELOAD ASYNCHRONOUS METRICS' = 156, 'SYSTEM RECONNECT ZOOKEEPER' = 157, 'SYSTEM RELOAD' = 158, 'SYSTEM RESTART DISK' = 159, 'SYSTEM WAIT BLOBS CLEANUP' = 160, 'SYSTEM MERGES' = 161, 'SYSTEM TTL MERGES' = 162, 'SYSTEM FETCHES' = 163, 'SYSTEM MOVES' = 164, 'SYSTEM PULLING REPLICATION LOG' = 165, 'SYSTEM CLEANUP' = 166, 'SYSTEM VIEWS' = 167, 'SYSTEM DISTRIBUTED SENDS' = 168, 'SYSTEM REPLICATED SENDS' = 169, 'SYSTEM SENDS' = 170, 'SYSTEM REPLICATION QUEUES' = 171, 'SYSTEM VIRTUAL PARTS UPDATE' = 172, 'SYSTEM REDUCE BLOCKING PARTS' = 173, 'SYSTEM DROP REPLICA' = 174, 'SYSTEM SYNC REPLICA' = 175, 'SYSTEM REPLICA READINESS' = 176, 'SYSTEM RESTART REPLICA' = 177, 'SYSTEM RESTORE REPLICA' = 178, 'SYSTEM RESTORE DATABASE REPLICA' = 179, 'SYSTEM WAIT LOADING PARTS' = 180, 'SYSTEM SYNC DATABASE REPLICA' = 181, 'SYSTEM SYNC TRANSACTION LOG' = 182, 'SYSTEM SYNC FILE CACHE' = 183, 'SYSTEM FLUSH DISTRIBUTED' = 184, 'SYSTEM FLUSH LOGS' = 185, 'SYSTEM FLUSH ASYNC INSERT QUEUE' = 186, 'SYSTEM FLUSH OBJECT STORAGE QUEUE' = 187, 'SYSTEM FLUSH' = 188, 'SYSTEM THREAD FUZZER' = 189, 'SYSTEM UNFREEZE' = 190, 'SYSTEM UNLOCK SNAPSHOT' = 191, 'SYSTEM FAILPOINT' = 192, 'SYSTEM MEMORY' = 193, 'SYSTEM LISTEN' = 194, 'SYSTEM JEMALLOC' = 195, 'SYSTEM LOAD PRIMARY KEY' = 196, 'SYSTEM UNLOAD PRIMARY KEY' = 197, 'SYSTEM INSTRUMENT ADD' = 198, 'SYSTEM INSTRUMENT REMOVE' = 199, 'SYSTEM' = 200, 'dictGet' = 201, 'displaySecretsInShowAndSelect' = 202, 'addressToLine' = 203, 'addressToLineWithInlines' = 204, 'addressToSymbol' = 205, 'demangle' = 206, 'INTROSPECTION' = 207, 'READ' = 208, 'WRITE' = 209, 'CLUSTER' = 210, 'FILE' = 211, 'URL' = 212, 'REMOTE' = 213, 'MONGO' = 214, 'REDIS' = 215, 'MYSQL' = 216, 'POSTGRES' = 217, 'SQLITE' = 218, 'ODBC' = 219, 'JDBC' = 220, 'HDFS' = 221, 'S3' = 222, 'HIVE' = 223, 'AZURE' = 224, 'KAFKA' = 225, 'NATS' = 226, 'RABBITMQ' = 227, 'YTSAURUS' = 228, 'ARROW FLIGHT' = 229, 'SOURCES' = 230, 'ALL' = 231, 'NONE' = 232))](/core/reference/data-types)) — Parent privilege - if the parent privilege is granted then all its children privileges are considered as granted too. {/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/processes.mdx b/core/reference/system-tables/processes.mdx new file mode 100644 index 00000000..89dfd21a --- /dev/null +++ b/core/reference/system-tables/processes.mdx @@ -0,0 +1,107 @@ +--- +description: 'System table used for implementing the `SHOW PROCESSLIST` query.' +keywords: ['system table', 'processes'] +slug: /operations/system-tables/processes +title: 'system.processes' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +This system table is used for implementing the `SHOW PROCESSLIST` query. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `is_initial_query` ([UInt8](/core/reference/data-types)) — Whether this query comes directly from user or was issues by ClickHouse server in a scope of distributed query execution. +- `user` ([String](/core/reference/data-types)) — The user who made the query. Keep in mind that for distributed processing, queries are sent to remote servers under the default user. The field contains the username for a specific query, not for a query that this query initiated. +- `query_id` ([String](/core/reference/data-types)) — Query ID, if defined. +- `address` ([IPv6](/core/reference/data-types)) — The IP address the query was made from. The same for distributed processing. To track where a distributed query was originally made from, look at system.processes on the query requestor server. +- `port` ([UInt16](/core/reference/data-types)) — The client port the query was made from. +- `initial_user` ([String](/core/reference/data-types)) — Name of the user who ran the initial query (for distributed query execution). +- `initial_query_id` ([String](/core/reference/data-types)) — ID of the initial query (for distributed query execution). +- `initial_address` ([IPv6](/core/reference/data-types)) — IP address that the parent query was launched from. +- `initial_port` ([UInt16](/core/reference/data-types)) — The client port that was used to make the parent query. +- `interface` ([UInt8](/core/reference/data-types)) — The interface which was used to send the query. TCP = 1, HTTP = 2, GRPC = 3, MYSQL = 4, POSTGRESQL = 5, LOCAL = 6, TCP_INTERSERVER = 7. +- `os_user` ([String](/core/reference/data-types)) — Operating system username who runs clickhouse-client. +- `client_hostname` ([String](/core/reference/data-types)) — Hostname of the client machine where the clickhouse-client or another TCP client is run. +- `client_name` ([String](/core/reference/data-types)) — The clickhouse-client or another TCP client name. +- `client_revision` ([UInt64](/core/reference/data-types)) — Revision of the clickhouse-client or another TCP client. +- `client_version_major` ([UInt64](/core/reference/data-types)) — Major version of the clickhouse-client or another TCP client. +- `client_version_minor` ([UInt64](/core/reference/data-types)) — Minor version of the clickhouse-client or another TCP client. +- `client_version_patch` ([UInt64](/core/reference/data-types)) — Patch component of the clickhouse-client or another TCP client version. +- `http_method` ([UInt8](/core/reference/data-types)) — HTTP method that initiated the query. Possible values: 0 — The query was launched from the TCP interface. 1 — GET method was used. 2 — POST method was used. +- `http_user_agent` ([String](/core/reference/data-types)) — HTTP header UserAgent passed in the HTTP query. +- `http_referer` ([String](/core/reference/data-types)) — HTTP header Referer passed in the HTTP query (contains an absolute or partial address of the page making the query). +- `forwarded_for` ([String](/core/reference/data-types)) — HTTP header X-Forwarded-For passed in the HTTP query. +- `quota_key` ([String](/core/reference/data-types)) — The quota key specified in the quotas setting (see keyed). +- `distributed_depth` ([UInt64](/core/reference/data-types)) — The number of times query was retransmitted between server nodes internally. +- `elapsed` ([Float64](/core/reference/data-types)) — The time in seconds since request execution started. +- `is_cancelled` ([UInt8](/core/reference/data-types)) — Was query cancelled. +- `is_all_data_sent` ([UInt8](/core/reference/data-types)) — Was all data sent to the client (in other words query had been finished on the server). +- `read_rows` ([UInt64](/core/reference/data-types)) — The number of rows read from the table. For distributed processing, on the requestor server, this is the total for all remote servers. +- `read_bytes` ([UInt64](/core/reference/data-types)) — The number of uncompressed bytes read from the table. For distributed processing, on the requestor server, this is the total for all remote servers. +- `total_rows_approx` ([UInt64](/core/reference/data-types)) — The approximation of the total number of rows that should be read. For distributed processing, on the requestor server, this is the total for all remote servers. It can be updated during request processing, when new sources to process become known. +- `written_rows` ([UInt64](/core/reference/data-types)) — The amount of rows written to the storage. +- `written_bytes` ([UInt64](/core/reference/data-types)) — The amount of bytes written to the storage. +- `memory_usage` ([Int64](/core/reference/data-types)) — Amount of RAM the query uses. It might not include some types of dedicated memory +- `peak_memory_usage` ([Int64](/core/reference/data-types)) — The current peak of memory usage. +- `query` ([String](/core/reference/data-types)) — The query text. For INSERT, it does not include the data to insert. +- `normalized_query_hash` ([UInt64](/core/reference/data-types)) — A numeric hash value, such as it is identical for queries differ only by values of literals. +- `query_kind` ([String](/core/reference/data-types)) — The type of the query - SELECT, INSERT, etc. +- `thread_ids` ([Array(UInt64)](/core/reference/data-types)) — The list of identifiers of all threads which participated in this query. +- `peak_threads_usage` ([UInt64](/core/reference/data-types)) — Maximum count of simultaneous threads executing the query. +- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/core/reference/data-types)) — ProfileEvents calculated for this query. +- `Settings` ([Map(LowCardinality(String), LowCardinality(String))](/core/reference/data-types)) — The list of modified user-level settings. +- `current_database` ([String](/core/reference/data-types)) — The name of the current database. +- `is_internal` ([UInt8](/core/reference/data-types)) — Indicates whether it is an auxiliary query executed internally. +{/*AUTOGENERATED_END*/} + +```sql +SELECT * FROM system.processes LIMIT 10 FORMAT Vertical; +``` + +```response +Row 1: +────── +is_initial_query: 1 +user: default +query_id: 35a360fa-3743-441d-8e1f-228c938268da +address: ::ffff:172.23.0.1 +port: 47588 +initial_user: default +initial_query_id: 35a360fa-3743-441d-8e1f-228c938268da +initial_address: ::ffff:172.23.0.1 +initial_port: 47588 +interface: 1 +os_user: bharatnc +client_hostname: tower +client_name: ClickHouse +client_revision: 54437 +client_version_major: 20 +client_version_minor: 7 +client_version_patch: 2 +http_method: 0 +http_user_agent: +quota_key: +elapsed: 0.000582537 +is_cancelled: 0 +is_all_data_sent: 0 +read_rows: 0 +read_bytes: 0 +total_rows_approx: 0 +written_rows: 0 +written_bytes: 0 +memory_usage: 0 +peak_memory_usage: 0 +query: SELECT * from system.processes LIMIT 10 FORMAT Vertical; +thread_ids: [67] +ProfileEvents: {'Query':1,'SelectQuery':1,'ReadCompressedBytes':36,'CompressedReadBufferBlocks':1,'CompressedReadBufferBytes':10,'IOBufferAllocs':1,'IOBufferAllocBytes':89,'ContextLock':15,'RWLockAcquiredReadLocks':1} +Settings: {'background_pool_size':'32','load_balancing':'random','allow_suspicious_low_cardinality_types':'1','distributed_aggregation_memory_efficient':'1','skip_unavailable_shards':'1','log_queries':'1','max_bytes_before_external_group_by':'20000000000','max_bytes_before_external_sort':'20000000000','allow_introspection_functions':'1'} + +1 rows in set. Elapsed: 0.002 sec. +``` diff --git a/core/reference/system-tables/processors_profile_log.mdx b/core/reference/system-tables/processors_profile_log.mdx new file mode 100644 index 00000000..fb06bade --- /dev/null +++ b/core/reference/system-tables/processors_profile_log.mdx @@ -0,0 +1,95 @@ +--- +description: 'System table containing profiling information on the processors level + (which can be found in `EXPLAIN PIPELINE`)' +keywords: ['system table', 'processors_profile_log', 'EXPLAIN PIPELINE'] +slug: /operations/system-tables/processors_profile_log +title: 'system.processors_profile_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +This table contains profiling on processors level (that you can find in [`EXPLAIN PIPELINE`](/core/reference/statements/explain#explain-pipeline)). + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — The date when the event happened. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — The date and time when the event happened. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — The date and time with microseconds precision when the event happened. +- `id` ([UInt64](/core/reference/data-types/int-uint)) — ID of processor. +- `parent_ids` ([Array(UInt64)](/core/reference/data-types/array)) — Parent processors IDs. +- `plan_step` ([UInt64](/core/reference/data-types/int-uint)) — ID of the query plan step which created this processor. The value is zero if the processor was not added from any step. +- `plan_step_name` ([String](/core/reference/data-types/string)) — Name of the query plan step which created this processor. The value is empty if the processor was not added from any step. +- `plan_step_description` ([String](/core/reference/data-types/string)) — Description of the query plan step which created this processor. The value is empty if the processor was not added from any step. +- `plan_group` ([UInt64](/core/reference/data-types/int-uint)) — Group of the processor if it was created by query plan step. A group is a logical partitioning of processors added from the same query plan step. Group is used only for beautifying the result of EXPLAIN PIPELINE result. +- `initial_query_id` ([String](/core/reference/data-types/string)) — ID of the initial query (for distributed query execution). +- `query_id` ([String](/core/reference/data-types/string)) — ID of the query. +- `name` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the processor. +- `elapsed_us` ([UInt64](/core/reference/data-types/int-uint)) — Number of microseconds this processor was executed. +- `input_wait_elapsed_us` ([UInt64](/core/reference/data-types/int-uint)) — Number of microseconds this processor was waiting for data (from other processor). +- `output_wait_elapsed_us` ([UInt64](/core/reference/data-types/int-uint)) — Number of microseconds this processor was waiting because output port was full. +- `input_rows` ([UInt64](/core/reference/data-types/int-uint)) — The number of rows consumed by processor. +- `input_bytes` ([UInt64](/core/reference/data-types/int-uint)) — The number of bytes consumed by processor. +- `output_rows` ([UInt64](/core/reference/data-types/int-uint)) — The number of rows generated by processor. +- `output_bytes` ([UInt64](/core/reference/data-types/int-uint)) — The number of bytes generated by processor. +- `processor_uniq_id` ([String](/core/reference/data-types/string)) — The uniq processor id in pipeline. +- `step_uniq_id` ([String](/core/reference/data-types/string)) — The uniq step id in plan. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql title="Query" +EXPLAIN PIPELINE +SELECT sleep(1) +┌─explain─────────────────────────┐ +│ (Expression) │ +│ ExpressionTransform │ +│ (SettingQuotaAndLimits) │ +│ (ReadFromStorage) │ +│ SourceFromSingleChunk 0 → 1 │ +└─────────────────────────────────┘ + +SELECT sleep(1) +SETTINGS log_processors_profiles = 1 +Query id: feb5ed16-1c24-4227-aa54-78c02b3b27d4 +┌─sleep(1)─┐ +│ 0 │ +└──────────┘ +1 rows in set. Elapsed: 1.018 sec. + +SELECT + name, + elapsed_us, + input_wait_elapsed_us, + output_wait_elapsed_us +FROM system.processors_profile_log +WHERE query_id = 'feb5ed16-1c24-4227-aa54-78c02b3b27d4' +ORDER BY name ASC +``` + +```text title="Response" +┌─name────────────────────┬─elapsed_us─┬─input_wait_elapsed_us─┬─output_wait_elapsed_us─┐ +│ ExpressionTransform │ 1000497 │ 2823 │ 197 │ +│ LazyOutputFormat │ 36 │ 1002188 │ 0 │ +│ LimitsCheckingTransform │ 10 │ 1002994 │ 106 │ +│ NullSource │ 5 │ 1002074 │ 0 │ +│ NullSource │ 1 │ 1002084 │ 0 │ +│ SourceFromSingleChunk │ 45 │ 4736 │ 1000819 │ +└─────────────────────────┴────────────┴───────────────────────┴────────────────────────┘ +``` + +Here you can see: + +- `ExpressionTransform` was executing `sleep(1)` function, so it `work` will takes 1e6, and so `elapsed_us` > 1e6. +- `SourceFromSingleChunk` need to wait, because `ExpressionTransform` does not accept any data during execution of `sleep(1)`, so it will be in `PortFull` state for 1e6 us, and so `output_wait_elapsed_us` > 1e6. +- `LimitsCheckingTransform`/`NullSource`/`LazyOutputFormat` need to wait until `ExpressionTransform` will execute `sleep(1)` to process the result, so `input_wait_elapsed_us` > 1e6. + +## See Also {#see-also} + +- [`EXPLAIN PIPELINE`](/core/reference/statements/explain#explain-pipeline) diff --git a/core/reference/system-tables/projection_parts.mdx b/core/reference/system-tables/projection_parts.mdx new file mode 100644 index 00000000..b32daf4e --- /dev/null +++ b/core/reference/system-tables/projection_parts.mdx @@ -0,0 +1,76 @@ +--- +description: 'System table containing information about projection parts for tables of the MergeTree family.' +keywords: ['system table', 'projection_parts'] +slug: /operations/system-tables/projection_parts +title: 'system.projection_parts' +doc_type: 'reference' +--- + +## Description {#description} + +This table contains information about projection parts for tables of the MergeTree family. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `partition` ([String](/core/reference/data-types)) — The partition name. +- `name` ([String](/core/reference/data-types)) — Name of the data part. +- `part_type` ([String](/core/reference/data-types)) — The data part storing format. Possible Values: Wide (a file per column) and Compact (a single file for all columns). +- `parent_name` ([String](/core/reference/data-types)) — The name of the source (parent) data part. +- `parent_uuid` ([UUID](/core/reference/data-types)) — The UUID of the source (parent) data part. +- `parent_part_type` ([String](/core/reference/data-types)) — The source (parent) data part storing format. +- `active` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the data part is active. If a data part is active, it's used in a table. Otherwise, it's about to be deleted. Inactive data parts appear after merging and mutating operations. +- `marks` ([UInt64](/core/reference/data-types)) — The number of marks. To get the approximate number of rows in a data part, multiply marks by the index granularity (usually 8192) (this hint does not work for adaptive granularity). +- `rows` ([UInt64](/core/reference/data-types)) — The number of rows. +- `bytes_on_disk` ([UInt64](/core/reference/data-types)) — Total size of all the data part files in bytes. +- `data_compressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included. +- `data_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included. +- `marks_bytes` ([UInt64](/core/reference/data-types)) — The size of the file with marks. +- `parent_marks` ([UInt64](/core/reference/data-types)) — The number of marks in the source (parent) part. +- `parent_rows` ([UInt64](/core/reference/data-types)) — The number of rows in the source (parent) part. +- `parent_bytes_on_disk` ([UInt64](/core/reference/data-types)) — Total size of all the source (parent) data part files in bytes. +- `parent_data_compressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of compressed data in the source (parent) data part. +- `parent_data_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of uncompressed data in the source (parent) data part. +- `parent_marks_bytes` ([UInt64](/core/reference/data-types)) — The size of the file with marks in the source (parent) data part. +- `modification_time` ([DateTime](/core/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation. +- `remove_time` ([DateTime](/core/reference/data-types)) — The time when the data part became inactive. +- `refcount` ([UInt32](/core/reference/data-types)) — The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges. +- `min_date` ([Date](/core/reference/data-types)) — The minimum value of the date key in the data part. +- `max_date` ([Date](/core/reference/data-types)) — The maximum value of the date key in the data part. +- `min_time` ([DateTime](/core/reference/data-types)) — The minimum value of the date and time key in the data part. +- `max_time` ([DateTime](/core/reference/data-types)) — The maximum value of the date and time key in the data part. +- `partition_id` ([String](/core/reference/data-types)) — ID of the partition. +- `min_block_number` ([Int64](/core/reference/data-types)) — The minimum number of data parts that make up the current part after merging. +- `max_block_number` ([Int64](/core/reference/data-types)) — The maximum number of data parts that make up the current part after merging. +- `level` ([UInt32](/core/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. +- `data_version` ([UInt64](/core/reference/data-types)) — Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than data_version). +- `primary_key_bytes_in_memory` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) used by primary key values. +- `primary_key_bytes_in_memory_allocated` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) reserved for primary key values. +- `is_frozen` ([UInt8](/core/reference/data-types)) — Flag that shows that a partition data backup exists. 1, the backup exists. 0, the backup does not exist. +- `database` ([String](/core/reference/data-types)) — Name of the database. +- `table` ([String](/core/reference/data-types)) — Name of the table. +- `engine` ([String](/core/reference/data-types)) — Name of the table engine without parameters. +- `disk_name` ([String](/core/reference/data-types)) — Name of a disk that stores the data part. +- `path` ([String](/core/reference/data-types)) — Absolute path to the folder with data part files. +- `hash_of_all_files` ([String](/core/reference/data-types)) — sipHash128 of compressed files. +- `hash_of_uncompressed_files` ([String](/core/reference/data-types)) — sipHash128 of uncompressed files (files with marks, index file etc.). +- `uncompressed_hash_of_compressed_files` ([String](/core/reference/data-types)) — sipHash128 of data in the compressed files as if they were uncompressed. +- `delete_ttl_info_min` ([DateTime](/core/reference/data-types)) — The minimum value of the date and time key for TTL DELETE rule. +- `delete_ttl_info_max` ([DateTime](/core/reference/data-types)) — The maximum value of the date and time key for TTL DELETE rule. +- `move_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — Array of expressions. Each expression defines a TTL MOVE rule. +- `move_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — Array of date and time values. Each element describes the minimum key value for a TTL MOVE rule. +- `move_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — Array of date and time values. Each element describes the maximum key value for a TTL MOVE rule. +- `default_compression_codec` ([String](/core/reference/data-types)) — The name of the codec used to compress this data part (in case when there is no explicit codec for columns). +- `recompression_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — The TTL expression. +- `recompression_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. +- `recompression_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. +- `group_by_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — The TTL expression. +- `group_by_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. +- `group_by_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. +- `rows_where_ttl_info.expression` ([Array(String)](/core/reference/data-types)) — The TTL expression. +- `rows_where_ttl_info.min` ([Array(DateTime)](/core/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. +- `rows_where_ttl_info.max` ([Array(DateTime)](/core/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. +- `is_broken` ([UInt8](/core/reference/data-types)) — Whether projection part is broken +- `exception_code` ([Int32](/core/reference/data-types)) — Exception message explaining broken state of the projection part +- `exception` ([String](/core/reference/data-types)) — Exception code explaining broken state of the projection part +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/projection_parts_columns.mdx b/core/reference/system-tables/projection_parts_columns.mdx new file mode 100644 index 00000000..089feddb --- /dev/null +++ b/core/reference/system-tables/projection_parts_columns.mdx @@ -0,0 +1,64 @@ +--- +description: 'System table containing information about columns in projection parts for tables of the MergeTree family' +keywords: ['system table', 'projection_parts_columns'] +slug: /operations/system-tables/projection_parts_columns +title: 'system.projection_parts_columns' +doc_type: 'reference' +--- + +## Description {#description} + +This table contains information about columns in projection parts for tables of the MergeTree family. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `partition` ([String](/core/reference/data-types)) — The partition name. +- `name` ([String](/core/reference/data-types)) — Name of the data part. +- `part_type` ([String](/core/reference/data-types)) — The data part storing format. +- `parent_name` ([String](/core/reference/data-types)) — The name of the source (parent) data part. +- `parent_uuid` ([UUID](/core/reference/data-types)) — The UUID of the source (parent) data part. +- `parent_part_type` ([String](/core/reference/data-types)) — The source (parent) data part storing format. +- `active` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the data part is active +- `marks` ([UInt64](/core/reference/data-types)) — The number of marks. +- `rows` ([UInt64](/core/reference/data-types)) — The number of rows. +- `bytes_on_disk` ([UInt64](/core/reference/data-types)) — Total size of all the data part files in bytes. +- `data_compressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included. +- `data_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included. +- `marks_bytes` ([UInt64](/core/reference/data-types)) — The size of the file with marks. +- `parent_marks` ([UInt64](/core/reference/data-types)) — The number of marks in the source (parent) part. +- `parent_rows` ([UInt64](/core/reference/data-types)) — The number of rows in the source (parent) part. +- `parent_bytes_on_disk` ([UInt64](/core/reference/data-types)) — Total size of all the source (parent) data part files in bytes. +- `parent_data_compressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of compressed data in the source (parent) data part. +- `parent_data_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of uncompressed data in the source (parent) data part. +- `parent_marks_bytes` ([UInt64](/core/reference/data-types)) — The size of the file with marks in the source (parent) data part. +- `modification_time` ([DateTime](/core/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation. +- `remove_time` ([DateTime](/core/reference/data-types)) — The time when the data part became inactive. +- `refcount` ([UInt32](/core/reference/data-types)) — The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges. +- `min_date` ([Date](/core/reference/data-types)) — The minimum value for the Date column if that is included in the partition key. +- `max_date` ([Date](/core/reference/data-types)) — The maximum value for the Date column if that is included in the partition key. +- `min_time` ([DateTime](/core/reference/data-types)) — The minimum value for the DateTime column if that is included in the partition key. +- `max_time` ([DateTime](/core/reference/data-types)) — The maximum value for the DateTime column if that is included in the partition key. +- `partition_id` ([String](/core/reference/data-types)) — ID of the partition. +- `min_block_number` ([Int64](/core/reference/data-types)) — The minimum number of data parts that make up the current part after merging. +- `max_block_number` ([Int64](/core/reference/data-types)) — The maximum number of data parts that make up the current part after merging. +- `level` ([UInt32](/core/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. +- `data_version` ([UInt64](/core/reference/data-types)) — Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than data_version). +- `primary_key_bytes_in_memory` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) used by primary key values. +- `primary_key_bytes_in_memory_allocated` ([UInt64](/core/reference/data-types)) — The amount of memory (in bytes) reserved for primary key values. +- `database` ([String](/core/reference/data-types)) — Name of the database. +- `table` ([String](/core/reference/data-types)) — Name of the table. +- `engine` ([String](/core/reference/data-types)) — Name of the table engine without parameters. +- `disk_name` ([String](/core/reference/data-types)) — Name of a disk that stores the data part. +- `path` ([String](/core/reference/data-types)) — Absolute path to the folder with data part files. +- `column` ([String](/core/reference/data-types)) — Name of the column. +- `type` ([String](/core/reference/data-types)) — Column type. +- `column_position` ([UInt64](/core/reference/data-types)) — Ordinal position of a column in a table starting with 1. +- `default_kind` ([String](/core/reference/data-types)) — Expression type (DEFAULT, MATERIALIZED, ALIAS) for the default value, or an empty string if it is not defined. +- `default_expression` ([String](/core/reference/data-types)) — Expression for the default value, or an empty string if it is not defined. +- `column_bytes_on_disk` ([UInt64](/core/reference/data-types)) — Total size of the column in bytes. +- `column_data_compressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of compressed data in the column, in bytes. +- `column_data_uncompressed_bytes` ([UInt64](/core/reference/data-types)) — Total size of the decompressed data in the column, in bytes. +- `column_marks_bytes` ([UInt64](/core/reference/data-types)) — The size of the column with marks, in bytes. +- `column_modification_time` ([Nullable(DateTime)](/core/reference/data-types)) — The last time the column was modified. +{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/projections.mdx b/core/reference/system-tables/projections.mdx similarity index 62% rename from reference/system-tables/projections.mdx rename to core/reference/system-tables/projections.mdx index 9a000408..7065f395 100644 --- a/reference/system-tables/projections.mdx +++ b/core/reference/system-tables/projections.mdx @@ -14,13 +14,13 @@ Contains information about existing projections in all tables. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Database name. -- `table` ([String](/reference/data-types)) — Table name. -- `name` ([String](/reference/data-types)) — Projection name. -- `type` ([Enum8('Normal' = 0, 'Aggregate' = 1)](/reference/data-types)) — Projection type. -- `sorting_key` ([Array(String)](/reference/data-types)) — Projection sorting key. -- `query` ([String](/reference/data-types)) — Projection query. -- `settings` ([Map(String, String)](/reference/data-types)) — Projection settings. +- `database` ([String](/core/reference/data-types)) — Database name. +- `table` ([String](/core/reference/data-types)) — Table name. +- `name` ([String](/core/reference/data-types)) — Projection name. +- `type` ([Enum8('Normal' = 0, 'Aggregate' = 1)](/core/reference/data-types)) — Projection type. +- `sorting_key` ([Array(String)](/core/reference/data-types)) — Projection sorting key. +- `query` ([String](/core/reference/data-types)) — Projection query. +- `settings` ([Map(String, String)](/core/reference/data-types)) — Projection settings. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/query_cache.mdx b/core/reference/system-tables/query_cache.mdx new file mode 100644 index 00000000..41b877e7 --- /dev/null +++ b/core/reference/system-tables/query_cache.mdx @@ -0,0 +1,51 @@ +--- +description: 'System table which shows the content of the query cache.' +keywords: ['system table', 'query_cache'] +slug: /operations/system-tables/query_cache +title: 'system.query_cache' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Shows the content of the [query cache](/core/concepts/features/performance/caches/query-cache). + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `query` ([String](/core/reference/data-types)) — Query string. +- `query_id` ([String](/core/reference/data-types)) — ID of the query. +- `result_size` ([UInt64](/core/reference/data-types)) — Size of the query cache entry. +- `tag` ([LowCardinality(String)](/core/reference/data-types)) — Tag of the query cache entry. +- `stale` ([UInt8](/core/reference/data-types)) — If the query cache entry is stale. +- `shared` ([UInt8](/core/reference/data-types)) — If the query cache entry is shared between multiple users. +- `compressed` ([UInt8](/core/reference/data-types)) — If the query cache entry is compressed. +- `expires_at` ([DateTime](/core/reference/data-types)) — When the query cache entry becomes stale. +- `key_hash` ([UInt64](/core/reference/data-types)) — A hash of the query string, used as a key to find query cache entries. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.query_cache FORMAT Vertical; +``` + +```text +Row 1: +────── +query: SELECT 1 SETTINGS use_query_cache = 1 +query_id: 7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6 +result_size: 128 +tag: +stale: 0 +shared: 0 +compressed: 1 +expires_at: 2023-10-13 13:35:45 +key_hash: 12188185624808016954 + +1 row in set. Elapsed: 0.004 sec. +``` diff --git a/reference/system-tables/query_condition_cache.mdx b/core/reference/system-tables/query_condition_cache.mdx similarity index 71% rename from reference/system-tables/query_condition_cache.mdx rename to core/reference/system-tables/query_condition_cache.mdx index 3ba08252..b6203fe1 100644 --- a/reference/system-tables/query_condition_cache.mdx +++ b/core/reference/system-tables/query_condition_cache.mdx @@ -12,14 +12,14 @@ import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; ## Description {#description} -Shows the content of the [query condition cache](/concepts/features/performance/caches/query-condition-cache). +Shows the content of the [query condition cache](/core/concepts/features/performance/caches/query-condition-cache). ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `key_hash` ([UInt128](/reference/data-types)) — Hash of (table_uuid, part_name, condition_hash). -- `entry_size` ([UInt64](/reference/data-types)) — The size of the entry in bytes. -- `matching_marks` ([String](/reference/data-types)) — Matching marks. +- `key_hash` ([UInt128](/core/reference/data-types)) — Hash of (table_uuid, part_name, condition_hash). +- `entry_size` ([UInt64](/core/reference/data-types)) — The size of the entry in bytes. +- `matching_marks` ([String](/core/reference/data-types)) — Matching marks. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/query_log.mdx b/core/reference/system-tables/query_log.mdx new file mode 100644 index 00000000..5b738ff7 --- /dev/null +++ b/core/reference/system-tables/query_log.mdx @@ -0,0 +1,237 @@ +--- +description: 'System table containing information about executed queries, for example, + start time, duration of processing, error messages.' +keywords: ['system table', 'query_log'] +slug: /operations/system-tables/query_log +title: 'system.query_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Stores metadata and statistics about executed queries, such as start time, duration, error messages, resource usage, and other execution details. It does not store the results of queries. + +You can change settings of queries logging in the [query_log](/core/reference/settings/server-settings/settings#query_log) section of the server configuration. + +You can disable queries logging by setting [log_queries = 0](/core/reference/settings/session-settings#log_queries). We do not recommend to turn off logging because information in this table is important for solving issues. + +The flushing period of data is set in `flush_interval_milliseconds` parameter of the [query_log](/core/reference/settings/server-settings/settings#query_log) server settings section. To force flushing, use the [SYSTEM FLUSH LOGS](/core/reference/statements/system#flush-logs) query. + +ClickHouse does not delete data from the table automatically. See [Introduction](/core/reference/system-tables/overview#system-tables-introduction) for more details. + +The `system.query_log` table registers two kinds of queries: + +1. Initial queries that were run directly by the client. +2. Child queries that were initiated by other queries (for distributed query execution). For these types of queries, information about the parent queries is shown in the `initial_*` columns. + +Each query creates one or two rows in the `query_log` table, depending on the status (see the `type` column) of the query: + +1. If the query execution was successful, two rows with the `QueryStart` and `QueryFinish` types are created. +2. If an error occurred during query processing, two events with the `QueryStart` and `ExceptionWhileProcessing` types are created. +3. If an error occurred before launching the query, a single event with the `ExceptionBeforeStart` type is created. + +You can use the [log_queries_probability](/core/reference/settings/session-settings#log_queries_probability) setting to reduce the number of queries, registered in the `query_log` table. + +You can use the [log_formatted_queries](/core/reference/settings/session-settings#log_formatted_queries) setting to log formatted queries to the `formatted_query` column. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `type` ([Enum8('QueryStart' = 1, 'QueryFinish' = 2, 'ExceptionBeforeStart' = 3, 'ExceptionWhileProcessing' = 4)](/core/reference/data-types/enum)) — Type of an event that occurred when executing the query. Values: `QueryStart` — successful start of query execution, `QueryFinish` — successful end of query execution, `ExceptionBeforeStart` — exception before the start of query execution, `ExceptionWhileProcessing` — exception during the query execution. +- `event_date` ([Date](/core/reference/data-types/date)) — Query starting date. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Query starting time. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Query starting time with microseconds precision. +- `query_start_time` ([DateTime](/core/reference/data-types/datetime)) — Start time of query execution. +- `query_start_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Start time of query execution with microsecond precision. +- `query_duration_ms` ([UInt64](/core/reference/data-types/int-uint)) — Duration of query execution in milliseconds. +- `read_rows` ([UInt64](/core/reference/data-types/int-uint)) — Total number of rows read from all tables and table functions participated in query. It includes usual subqueries, subqueries for IN and JOIN. For distributed queries read_rows includes the total number of rows read at all replicas. Each replica sends it's read_rows value, and the server-initiator of the query summarizes all received and local values. The cache volumes do not affect this value. +- `read_bytes` ([UInt64](/core/reference/data-types/int-uint)) — Total number of bytes read from all tables and table functions participated in query. It includes usual subqueries, subqueries for IN and JOIN. For distributed queries read_bytes includes the total number of rows read at all replicas. Each replica sends it's read_bytes value, and the server-initiator of the query summarizes all received and local values. The cache volumes do not affect this value. +- `written_rows` ([UInt64](/core/reference/data-types/int-uint)) — For INSERT queries, the number of written rows. For other queries, the column value is 0. +- `written_bytes` ([UInt64](/core/reference/data-types/int-uint)) — For INSERT queries, the number of written bytes (uncompressed). For other queries, the column value is 0. +- `result_rows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows in a result of the SELECT query, or a number of rows in the INSERT query. +- `result_bytes` ([UInt64](/core/reference/data-types/int-uint)) — RAM volume in bytes used to store a query result. +- `memory_usage` ([UInt64](/core/reference/data-types/int-uint)) — Memory consumption by the query. +- `current_database` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the current database. +- `query` ([String](/core/reference/data-types/string)) — Query string. +- `formatted_query` ([String](/core/reference/data-types/string)) — Formatted query string. +- `normalized_query_hash` ([UInt64](/core/reference/data-types/int-uint)) — A numeric hash value, such as it is identical for queries differ only by values of literals. +- `query_kind` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Type of the query. +- `databases` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Names of the databases present in the query. +- `tables` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Names of the tables present in the query. +- `columns` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Names of the columns present in the query. +- `partitions` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Names of the partitions present in the query. +- `projections` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Names of the projections used during the query execution. +- `views` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Names of the (materialized or live) views present in the query. +- `exception_code` ([Int32](/core/reference/data-types/int-uint)) — Code of an exception. +- `exception` ([String](/core/reference/data-types/string)) — Exception message. +- `stack_trace` ([String](/core/reference/data-types/string)) — Stack trace. An empty string, if the query was completed successfully. +- `is_initial_query` ([UInt8](/core/reference/data-types/int-uint)) — Query type. Possible values: 1 — query was initiated by the client, 0 — query was initiated by another query as part of distributed query execution. +- `connection_address` ([IPv6](/core/reference/data-types/ipv6)) — The client IP address from which the connection was made. When connected through a proxy, this will be the address of the proxy. +- `connection_port` ([UInt16](/core/reference/data-types/int-uint)) — The client port from which the connection was made. When connected through a proxy, this will be the port of the proxy. +- `user` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the user who initiated the current query. +- `query_id` ([String](/core/reference/data-types/string)) — ID of the query. +- `address` ([IPv6](/core/reference/data-types/ipv6)) — IP address that was used to make the query. When connected through a proxy and `auth_use_forwarded_address` is set, this will be the address of the client instead of the proxy. +- `port` ([UInt16](/core/reference/data-types/int-uint)) — The client port that was used to make the query. When connected through a proxy and `auth_use_forwarded_address` is set, this will be the port of the client instead of the proxy. +- `initial_user` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the user who ran the initial query (for distributed query execution). +- `initial_query_id` ([String](/core/reference/data-types/string)) — ID of the initial query (for distributed query execution). +- `initial_address` ([IPv6](/core/reference/data-types/ipv6)) — IP address that the parent query was launched from. +- `initial_port` ([UInt16](/core/reference/data-types/int-uint)) — The client port that was used to make the parent query. +- `initial_query_start_time` ([DateTime](/core/reference/data-types/datetime)) — Initial query starting time (for distributed query execution). +- `initial_query_start_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Initial query starting time with microseconds precision (for distributed query execution). +- `authenticated_user` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the user who was authenticated in the session. +- `interface` ([UInt8](/core/reference/data-types/int-uint)) — Interface that the query was initiated from. Possible values: 1 — TCP, 2 — HTTP. +- `is_secure` ([UInt8](/core/reference/data-types/int-uint)) — The flag whether a query was executed over a secure interface +- `os_user` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Operating system username who runs clickhouse-client. +- `client_hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the client machine where the clickhouse-client or another TCP client is run. +- `client_name` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — The clickhouse-client or another TCP client name. +- `client_revision` ([UInt32](/core/reference/data-types/int-uint)) — Revision of the clickhouse-client or another TCP client. +- `client_version_major` ([UInt32](/core/reference/data-types/int-uint)) — Major version of the clickhouse-client or another TCP client. +- `client_version_minor` ([UInt32](/core/reference/data-types/int-uint)) — Minor version of the clickhouse-client or another TCP client. +- `client_version_patch` ([UInt32](/core/reference/data-types/int-uint)) — Patch component of the clickhouse-client or another TCP client version. +- `script_query_number` ([UInt32](/core/reference/data-types/int-uint)) — The query number in a script with multiple queries for clickhouse-client. +- `script_line_number` ([UInt32](/core/reference/data-types/int-uint)) — The line number of the query start in a script with multiple queries for clickhouse-client. +- `http_method` ([UInt8](/core/reference/data-types/int-uint)) — HTTP method that initiated the query. Possible values: 0 — The query was launched from the TCP interface, 1 — GET method was used, 2 — POST method was used. +- `http_user_agent` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — HTTP header UserAgent passed in the HTTP query. +- `http_referer` ([String](/core/reference/data-types/string)) — HTTP header Referer passed in the HTTP query (contains an absolute or partial address of the page making the query). +- `forwarded_for` ([String](/core/reference/data-types/string)) — HTTP header X-Forwarded-For passed in the HTTP query. +- `quota_key` ([String](/core/reference/data-types/string)) — The quota key specified in the quotas setting (see keyed). +- `distributed_depth` ([UInt64](/core/reference/data-types/int-uint)) — How many times a query was forwarded between servers. +- `revision` ([UInt32](/core/reference/data-types/int-uint)) — ClickHouse revision. +- `log_comment` ([String](/core/reference/data-types/string)) — Log comment. It can be set to arbitrary string no longer than max_query_size. An empty string if it is not defined. +- `thread_ids` ([Array(UInt64)](/core/reference/data-types/array)) — Thread ids that are participating in query execution. These threads may not have run simultaneously. +- `peak_threads_usage` ([UInt64](/core/reference/data-types/int-uint)) — Maximum count of simultaneous threads executing the query. +- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/core/reference/data-types/map)) — ProfileEvents that measure different metrics. The description of them could be found in the table system.events +- `Settings` ([Map(LowCardinality(String), LowCardinality(String))](/core/reference/data-types/map)) — Settings that were changed when the client ran the query. To enable logging changes to settings, set the log_query_settings parameter to 1. +- `used_aggregate_functions` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Canonical names of aggregate functions, which were used during query execution. +- `used_aggregate_function_combinators` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Canonical names of aggregate functions combinators, which were used during query execution. +- `used_database_engines` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Canonical names of database engines, which were used during query execution. +- `used_data_type_families` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Canonical names of data type families, which were used during query execution. +- `used_dictionaries` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Canonical names of dictionaries, which were used during query execution. +- `used_formats` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Canonical names of formats, which were used during query execution. +- `used_functions` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Canonical names of functions, which were used during query execution. +- `used_storages` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Canonical names of storages, which were used during query execution. +- `used_table_functions` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Canonical names of table functions, which were used during query execution. +- `used_executable_user_defined_functions` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Canonical names of executable user defined functions, which were used during query execution. +- `used_sql_user_defined_functions` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Canonical names of sql user defined functions, which were used during query execution. +- `used_row_policies` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — The list of row policies names that were used during query execution. +- `used_privileges` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Privileges which were successfully checked during query execution. +- `missing_privileges` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — Privileges that are missing during query execution. +- `transaction_id` ([Tuple(UInt64, UInt64, UUID)](/core/reference/data-types/tuple)) — The identifier of the transaction in scope of which this query was executed. +- `query_cache_usage` ([Enum8('Unknown' = 0, 'None' = 1, 'Write' = 2, 'Read' = 3)](/core/reference/data-types/enum)) — Usage of the query cache during query execution. Values: 'Unknown' = Status unknown, 'None' = The query result was neither written into nor read from the query result cache, 'Write' = The query result was written into the query result cache, 'Read' = The query result was read from the query result cache. +- `asynchronous_read_counters` ([Map(LowCardinality(String), UInt64)](/core/reference/data-types/map)) — Metrics for asynchronous reading. +- `is_internal` ([UInt8](/core/reference/data-types/int-uint)) — Indicates whether it is an auxiliary query executed internally. + +**Aliases:** + +- `ProfileEvents.Names` — Alias for `mapKeys(ProfileEvents)`. +- `ProfileEvents.Values` — Alias for `mapValues(ProfileEvents)`. +- `Settings.Names` — Alias for `mapKeys(Settings)`. +- `Settings.Values` — Alias for `mapValues(Settings)`. +{/*AUTOGENERATED_END*/} + +## Examples {#examples} + +**Basic example** + +```sql +SELECT * FROM system.query_log WHERE type = 'QueryFinish' ORDER BY query_start_time DESC LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +hostname: clickhouse.eu-central1.internal +type: QueryFinish +event_date: 2021-11-03 +event_time: 2021-11-03 16:13:54 +event_time_microseconds: 2021-11-03 16:13:54.953024 +query_start_time: 2021-11-03 16:13:54 +query_start_time_microseconds: 2021-11-03 16:13:54.952325 +query_duration_ms: 0 +read_rows: 69 +read_bytes: 6187 +written_rows: 0 +written_bytes: 0 +result_rows: 69 +result_bytes: 48256 +memory_usage: 0 +current_database: default +query: DESCRIBE TABLE system.query_log +formatted_query: +normalized_query_hash: 8274064835331539124 +query_kind: +databases: [] +tables: [] +columns: [] +projections: [] +views: [] +exception_code: 0 +exception: +stack_trace: +is_initial_query: 1 +user: default +query_id: 7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6 +address: ::ffff:127.0.0.1 +port: 40452 +initial_user: default +initial_query_id: 7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6 +initial_address: ::ffff:127.0.0.1 +initial_port: 40452 +initial_query_start_time: 2021-11-03 16:13:54 +initial_query_start_time_microseconds: 2021-11-03 16:13:54.952325 +interface: 1 +os_user: sevirov +client_hostname: clickhouse.eu-central1.internal +client_name: ClickHouse +client_revision: 54449 +client_version_major: 21 +client_version_minor: 10 +client_version_patch: 1 +http_method: 0 +http_user_agent: +http_referer: +forwarded_for: +quota_key: +revision: 54456 +log_comment: +thread_ids: [30776,31174] +ProfileEvents: {'Query':1,'NetworkSendElapsedMicroseconds':59,'NetworkSendBytes':2643,'SelectedRows':69,'SelectedBytes':6187,'ContextLock':9,'RWLockAcquiredReadLocks':1,'RealTimeMicroseconds':817,'UserTimeMicroseconds':427,'SystemTimeMicroseconds':212,'OSCPUVirtualTimeMicroseconds':639,'OSReadChars':894,'OSWriteChars':319} +Settings: {'load_balancing':'random','max_memory_usage':'10000000000'} +used_aggregate_functions: [] +used_aggregate_function_combinators: [] +used_database_engines: [] +used_data_type_families: [] +used_dictionaries: [] +used_formats: [] +used_functions: [] +used_storages: [] +used_table_functions: [] +used_executable_user_defined_functions:[] +used_sql_user_defined_functions: [] +used_privileges: [] +missing_privileges: [] +query_cache_usage: None +``` + +**Cloud example** + +In ClickHouse Cloud, `system.query_log` is local to each node; to see all entries you must query via [`clusterAllReplicas`](/core/reference/functions/table-functions/cluster). + +For example, to aggregate query_log rows from every replica in the “default” cluster you can write: + +```sql +SELECT * +FROM clusterAllReplicas('default', system.query_log) +WHERE event_time >= now() - toIntervalHour(1) +LIMIT 10 +SETTINGS skip_unavailable_shards = 1; +``` + +## See Also {#see-also} + +- [system.query_thread_log](/core/reference/system-tables/query_thread_log) — This table contains information about each query execution thread. diff --git a/core/reference/system-tables/query_metric_log.mdx b/core/reference/system-tables/query_metric_log.mdx new file mode 100644 index 00000000..ecabb742 --- /dev/null +++ b/core/reference/system-tables/query_metric_log.mdx @@ -0,0 +1,1316 @@ +--- +description: 'System table containing a history of memory and metric values from table + `system.events` for individual queries, periodically flushed to disk.' +keywords: ['system table', 'query_metric_log'] +slug: /operations/system-tables/query_metric_log +title: 'system.query_metric_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains a history of memory and metric values from table `system.events` for individual queries, periodically flushed to disk. + +Once a query starts, data is collected at periodic intervals of `query_metric_log_interval` milliseconds (which is set to 1000 +by default). The data is also collected when the query finishes if the query takes longer than `query_metric_log_interval`. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `query_id` ([String](/core/reference/data-types/string)) — Query ID. +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Event date. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Event time with microseconds resolution. +- `memory_usage` ([UInt64](/core/reference/data-types/int-uint)) — Amount of RAM the query uses. It might not include some types of dedicated memory. +- `peak_memory_usage` ([UInt64](/core/reference/data-types/int-uint)) — Maximum amount of RAM the query used. +- `ProfileEvent_Query` ([UInt64](/core/reference/data-types/int-uint)) — Number of queries to be interpreted and potentially executed. Does not include queries that failed to parse or were rejected due to AST size limits, quota limits or limits on the number of simultaneously running queries. May include internal queries initiated by ClickHouse itself. Does not count subqueries. +- `ProfileEvent_SelectQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as Query, but only for SELECT queries. +- `ProfileEvent_InsertQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as Query, but only for INSERT queries. +- `ProfileEvent_InitialQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as Query, but only counts initial queries (see is_initial_query). +- `ProfileEvent_InitialSelectQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as InitialQuery, but only for SELECT queries. +- `ProfileEvent_QueriesWithSubqueries` ([UInt64](/core/reference/data-types/int-uint)) — Count queries with all subqueries +- `ProfileEvent_SelectQueriesWithSubqueries` ([UInt64](/core/reference/data-types/int-uint)) — Count SELECT queries with all subqueries +- `ProfileEvent_InsertQueriesWithSubqueries` ([UInt64](/core/reference/data-types/int-uint)) — Count INSERT queries with all subqueries +- `ProfileEvent_SelectQueriesWithPrimaryKeyUsage` ([UInt64](/core/reference/data-types/int-uint)) — Count SELECT queries which use the primary key to evaluate the WHERE condition +- `ProfileEvent_AsyncInsertQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as InsertQuery, but only for asynchronous INSERT queries. +- `ProfileEvent_AsyncInsertBytes` ([UInt64](/core/reference/data-types/int-uint)) — Data size in bytes of asynchronous INSERT queries. +- `ProfileEvent_AsyncInsertRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows inserted by asynchronous INSERT queries. +- `ProfileEvent_AsyncInsertCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a duplicate hash id has been found in asynchronous INSERT hash id cache. +- `ProfileEvent_FailedInternalQuery` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed internal queries. +- `ProfileEvent_FailedInternalSelectQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as FailedInternalQuery, but only for SELECT queries. +- `ProfileEvent_FailedInternalInsertQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as FailedInternalQuery, but only for INSERT queries. +- `ProfileEvent_FailedInitialQuery` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed initial queries. +- `ProfileEvent_FailedInitialSelectQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as FailedInitialQuery, but only for SELECT queries. +- `ProfileEvent_FailedQuery` ([UInt64](/core/reference/data-types/int-uint)) — Number of total failed queries, both internal and user queries. +- `ProfileEvent_FailedSelectQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as FailedQuery, but only for SELECT queries. +- `ProfileEvent_FailedInsertQuery` ([UInt64](/core/reference/data-types/int-uint)) — Same as FailedQuery, but only for INSERT queries. +- `ProfileEvent_FailedAsyncInsertQuery` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed ASYNC INSERT queries. +- `ProfileEvent_ASTFuzzerQueries` ([UInt64](/core/reference/data-types/int-uint)) — Number of fuzzed queries attempted by the server-side AST fuzzer. +- `ProfileEvent_QueryTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time of all queries. +- `ProfileEvent_SelectQueryTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time of SELECT queries. +- `ProfileEvent_InsertQueryTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time of INSERT queries. +- `ProfileEvent_OtherQueryTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time of queries that are not SELECT or INSERT. +- `ProfileEvent_FileOpen` ([UInt64](/core/reference/data-types/int-uint)) — Number of files opened. +- `ProfileEvent_Seek` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the 'lseek' function was called. +- `ProfileEvent_ReadBufferFromFileDescriptorRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of reads (read/pread) from a file descriptor. Does not include sockets. +- `ProfileEvent_ReadBufferFromFileDescriptorReadFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the read (read/pread) from a file descriptor have failed. +- `ProfileEvent_ReadBufferFromFileDescriptorReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read from file descriptors. If the file is compressed, this will show the compressed data size. +- `ProfileEvent_WriteBufferFromFileDescriptorWrite` ([UInt64](/core/reference/data-types/int-uint)) — Number of writes (write/pwrite) to a file descriptor. Does not include sockets. +- `ProfileEvent_WriteBufferFromFileDescriptorWriteFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the write (write/pwrite) to a file descriptor have failed. +- `ProfileEvent_WriteBufferFromFileDescriptorWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to file descriptors. If the file is compressed, this will show compressed data size. +- `ProfileEvent_FileSync` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the F_FULLFSYNC/fsync/fdatasync function was called for files. +- `ProfileEvent_DirectorySync` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the F_FULLFSYNC/fsync/fdatasync function was called for directories. +- `ProfileEvent_FileSyncElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for F_FULLFSYNC/fsync/fdatasync syscall for files. +- `ProfileEvent_DirectorySyncElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for F_FULLFSYNC/fsync/fdatasync syscall for directories. +- `ProfileEvent_ReadCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes (the number of bytes before decompression) read from compressed sources (files, network). +- `ProfileEvent_CompressedReadBufferBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of compressed blocks (the blocks of data that are compressed independent of each other) read from compressed sources (files, network). +- `ProfileEvent_CompressedReadBufferBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of uncompressed bytes (the number of bytes after decompression) read from compressed sources (files, network). +- `ProfileEvent_CompressedReadBufferChecksumDoesntMatch` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the compressed block checksum did not match. +- `ProfileEvent_CompressedReadBufferChecksumDoesntMatchSingleBitMismatch` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a compressed block checksum mismatch was caused by a single-bit difference. +- `ProfileEvent_CompressedReadBufferChecksumDoesntMatchMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent detecting bit-flips due to compressed block checksum mismatches. +- `ProfileEvent_UncompressedCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a block of data has been found in the uncompressed cache (and decompression was avoided). +- `ProfileEvent_UncompressedCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a block of data has not been found in the uncompressed cache (and required decompression). +- `ProfileEvent_UncompressedCacheWeightLost` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes evicted from the uncompressed cache. +- `ProfileEvent_PageCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a block of data has been found in the userspace page cache. +- `ProfileEvent_PageCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a block of data has not been found in the userspace page cache. +- `ProfileEvent_PageCacheWeightLost` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes evicted from the userspace page cache +- `ProfileEvent_PageCacheResized` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the userspace page cache was auto-resized (typically happens a few times per second, controlled by memory_worker_period_ms). +- `ProfileEvent_PageCacheOvercommitResize` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the userspace page cache was auto-resized to free memory during a memory allocation. +- `ProfileEvent_PageCacheReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read from userspace page cache. +- `ProfileEvent_MMappedFileCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a file has been found in the MMap cache (for the 'mmap' read_method), so we didn't have to mmap it again. +- `ProfileEvent_MMappedFileCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a file has not been found in the MMap cache (for the 'mmap' read_method), so we had to mmap it again. +- `ProfileEvent_OpenedFileCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a file has been found in the opened file cache, so we didn't have to open it again. +- `ProfileEvent_OpenedFileCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a file has been found in the opened file cache, so we had to open it again. +- `ProfileEvent_OpenedFileCacheMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Amount of time spent executing OpenedFileCache methods. +- `ProfileEvent_AIOWrite` ([UInt64](/core/reference/data-types/int-uint)) — Number of writes with Linux or FreeBSD AIO interface +- `ProfileEvent_AIOWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written with Linux or FreeBSD AIO interface +- `ProfileEvent_AIORead` ([UInt64](/core/reference/data-types/int-uint)) — Number of reads with Linux or FreeBSD AIO interface +- `ProfileEvent_AIOReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read with Linux or FreeBSD AIO interface +- `ProfileEvent_IOBufferAllocs` ([UInt64](/core/reference/data-types/int-uint)) — Number of allocations of IO buffers (for ReadBuffer/WriteBuffer). +- `ProfileEvent_IOBufferAllocBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes allocated for IO buffers (for ReadBuffer/WriteBuffer). +- `ProfileEvent_ArenaAllocChunks` ([UInt64](/core/reference/data-types/int-uint)) — Number of chunks allocated for memory Arena (used for GROUP BY and similar operations) +- `ProfileEvent_ArenaAllocBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes allocated for memory Arena (used for GROUP BY and similar operations) +- `ProfileEvent_FunctionExecute` ([UInt64](/core/reference/data-types/int-uint)) — Number of SQL ordinary function calls (SQL functions are called on per-block basis, so this number represents the number of blocks). +- `ProfileEvent_TableFunctionExecute` ([UInt64](/core/reference/data-types/int-uint)) — Number of table function calls. +- `ProfileEvent_DefaultImplementationForNullsRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows processed by default implementation for nulls in function execution +- `ProfileEvent_DefaultImplementationForNullsRowsWithNulls` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows which contain null values processed by default implementation for nulls in function execution +- `ProfileEvent_MarkCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has been found in the mark cache, so we didn't have to load a mark file. +- `ProfileEvent_MarkCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has not been found in the mark cache, so we had to load a mark file in memory, which is a costly operation, adding to query latency. +- `ProfileEvent_PrimaryIndexCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has been found in the primary index cache, so we didn't have to load a index file. +- `ProfileEvent_PrimaryIndexCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has not been found in the primary index cache, so we had to load a index file in memory, which is a costly operation, adding to query latency. +- `ProfileEvent_IcebergMetadataFilesCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times iceberg metadata files have been found in the cache. +- `ProfileEvent_IcebergMetadataFilesCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times iceberg metadata files have not been found in the iceberg metadata cache and had to be read from (remote) disk. +- `ProfileEvent_IcebergMetadataFilesCacheStaleMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times iceberg metadata files have been found in the cache, but were considered stale and had to be read from (remote) disk. +- `ProfileEvent_IcebergMetadataFilesCacheWeightLost` ([UInt64](/core/reference/data-types/int-uint)) — Approximate number of bytes evicted from the iceberg metadata cache. +- `ProfileEvent_IcebergMetadataReadWaitTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time data readers spend waiting for iceberg metadata files to be read and parsed, summed across all reader threads. +- `ProfileEvent_ParquetMetadataCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times parquet metadata has been found in the cache. +- `ProfileEvent_ParquetMetadataCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times parquet metadata has not been found in the cache and had to be read from disk. +- `ProfileEvent_ParquetMetadataCacheWeightLost` ([UInt64](/core/reference/data-types/int-uint)) — Approximate number of bytes evicted from the parquet metadata cache. +- `ProfileEvent_IcebergIteratorInitializationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent on synchronous initialization of iceberg data iterators. +- `ProfileEvent_IcebergMetadataUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent on synchronous initialization of iceberg data iterators. +- `ProfileEvent_IcebergMetadataReturnedObjectInfos` ([UInt64](/core/reference/data-types/int-uint)) — Total number of returned object infos from iceberg iterator. +- `ProfileEvent_IcebergMinMaxNonPrunedDeleteFiles` ([UInt64](/core/reference/data-types/int-uint)) — Total number of accepted data files-position delete file pairs by minmax analysis from pairs suitable by partitioning and sequence number. +- `ProfileEvent_IcebergMinMaxPrunedDeleteFiles` ([UInt64](/core/reference/data-types/int-uint)) — Total number of accepted data files-position delete file pairs by minmax analysis from pairs suitable by partitioning and sequence number. +- `ProfileEvent_VectorSimilarityIndexCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an index granule has been found in the vector index cache. +- `ProfileEvent_VectorSimilarityIndexCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an index granule has not been found in the vector index cache and had to be read from disk. +- `ProfileEvent_VectorSimilarityIndexCacheWeightLost` ([UInt64](/core/reference/data-types/int-uint)) — Approximate number of bytes evicted from the vector index cache. +- `ProfileEvent_TextIndexReadDictionaryBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a text index dictionary block has been read from disk. +- `ProfileEvent_TextIndexTokensCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a text index token info has been found in the cache. +- `ProfileEvent_TextIndexTokensCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a text index token info has not been found in the cache. +- `ProfileEvent_TextIndexHeaderCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a header has been found in the cache. +- `ProfileEvent_TextIndexHeaderCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a header has not been found in the cache. +- `ProfileEvent_TextIndexPostingsCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a text index posting list has been found in the cache. +- `ProfileEvent_TextIndexPostingsCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a a text index posting list has not been found in the cache. +- `ProfileEvent_TextIndexReadSparseIndexBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a sparse index block has been read from the text index. +- `ProfileEvent_TextIndexReaderTotalMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent reading the text index. +- `ProfileEvent_TextIndexReadGranulesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent reading and analyzing granules of the text index. +- `ProfileEvent_TextIndexReadPostings` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a posting list has been read from the text index. +- `ProfileEvent_TextIndexUsedEmbeddedPostings` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a posting list embedded in the dictionary has been used. +- `ProfileEvent_TextIndexUseHint` ([UInt64](/core/reference/data-types/int-uint)) — Number of index granules where a direct reading from the text index was added as hint and was used. +- `ProfileEvent_TextIndexDiscardHint` ([UInt64](/core/reference/data-types/int-uint)) — Number of index granules where a direct reading from the text index was added as hint and was discarded due to low selectivity. +- `ProfileEvent_TextIndexDiscardPatternScan` ([UInt64](/core/reference/data-types/int-uint)) — Number of times pattern-based dictionary scan in a text index was discarded because the number of posting lists to read exceeded the threshold. +- `ProfileEvent_QueryConditionCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has been found in the query condition cache (and reading of marks can be skipped). Only updated for SELECT queries with SETTING use_query_condition_cache = 1. +- `ProfileEvent_QueryConditionCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an entry has not been found in the query condition cache (and reading of mark cannot be skipped). Only updated for SELECT queries with SETTING use_query_condition_cache = 1. +- `ProfileEvent_QueryCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a query result has been found in the query cache (and query computation was avoided). Only updated for SELECT queries with SETTING use_query_cache = 1. +- `ProfileEvent_QueryCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a query result has not been found in the query cache (and required query computation). Only updated for SELECT queries with SETTING use_query_cache = 1. +- `ProfileEvent_QueryCacheAgeSeconds` ([UInt64](/core/reference/data-types/int-uint)) — The sum of ages of found query cache entries in seconds. The value is set both for hits and misses. +- `ProfileEvent_QueryCacheReadRows` ([UInt64](/core/reference/data-types/int-uint)) — The number of rows read from the query cache. +- `ProfileEvent_QueryCacheReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — The number of (uncompressed) bytes read from the query cache. +- `ProfileEvent_QueryCacheWrittenRows` ([UInt64](/core/reference/data-types/int-uint)) — The number of rows saved into the query cache. +- `ProfileEvent_QueryCacheWrittenBytes` ([UInt64](/core/reference/data-types/int-uint)) — The number of (uncompressed) bytes saved into the query cache +- `ProfileEvent_CreatedReadBufferOrdinary` ([UInt64](/core/reference/data-types/int-uint)) — Number of times ordinary read buffer was created for reading data (while choosing among other read methods). +- `ProfileEvent_CreatedReadBufferDirectIO` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read buffer with O_DIRECT was created for reading data (while choosing among other read methods). +- `ProfileEvent_CreatedReadBufferDirectIOFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read buffer with O_DIRECT was attempted to be created for reading data (while choosing among other read methods), but the OS did not allow it (due to lack of filesystem support or other reasons) and we fallen back to the ordinary reading method. +- `ProfileEvent_CreatedReadBufferMMap` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read buffer using 'mmap' was created for reading data (while choosing among other read methods). +- `ProfileEvent_CreatedReadBufferMMapFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read buffer with 'mmap' was attempted to be created for reading data (while choosing among other read methods), but the OS did not allow it (due to lack of filesystem support or other reasons) and we fallen back to the ordinary reading method. +- `ProfileEvent_DiskReadElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for read syscall. This include reads from page cache. +- `ProfileEvent_DiskWriteElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for write syscall. This include writes to page cache. +- `ProfileEvent_NetworkReceiveElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for data to receive or receiving data from network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. +- `ProfileEvent_NetworkSendElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for data to send to network or sending data to network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. +- `ProfileEvent_NetworkReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total number of bytes received from network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. +- `ProfileEvent_NetworkSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total number of bytes send to network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. +- `ProfileEvent_FilterPartsByVirtualColumnsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent in filterPartsByVirtualColumns function. +- `ProfileEvent_GlobalThreadPoolExpansions` ([UInt64](/core/reference/data-types/int-uint)) — Counts the total number of times new threads have been added to the global thread pool. This metric indicates the frequency of expansions in the global thread pool to accommodate increased processing demands. +- `ProfileEvent_GlobalThreadPoolShrinks` ([UInt64](/core/reference/data-types/int-uint)) — Counts the total number of times the global thread pool has shrunk by removing threads. This occurs when the number of idle threads exceeds max_thread_pool_free_size, indicating adjustments in the global thread pool size in response to decreased thread utilization. +- `ProfileEvent_GlobalThreadPoolThreadCreationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for new threads to start. +- `ProfileEvent_GlobalThreadPoolLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time threads have spent waiting for locks in the global thread pool. +- `ProfileEvent_GlobalThreadPoolJobs` ([UInt64](/core/reference/data-types/int-uint)) — Counts the number of jobs that have been pushed to the global thread pool. +- `ProfileEvent_GlobalThreadPoolJobWaitTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Measures the elapsed time from when a job is scheduled in the thread pool to when it is picked up for execution by a worker thread. This metric helps identify delays in job processing, indicating the responsiveness of the thread pool to new tasks. +- `ProfileEvent_LocalThreadPoolExpansions` ([UInt64](/core/reference/data-types/int-uint)) — Counts the total number of times threads have been borrowed from the global thread pool to expand local thread pools. +- `ProfileEvent_LocalThreadPoolShrinks` ([UInt64](/core/reference/data-types/int-uint)) — Counts the total number of times threads have been returned to the global thread pool from local thread pools. +- `ProfileEvent_LocalThreadPoolThreadCreationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time local thread pools have spent waiting to borrow a thread from the global pool. +- `ProfileEvent_LocalThreadPoolLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time threads have spent waiting for locks in the local thread pools. +- `ProfileEvent_LocalThreadPoolJobs` ([UInt64](/core/reference/data-types/int-uint)) — Counts the number of jobs that have been pushed to the local thread pools. +- `ProfileEvent_LocalThreadPoolBusyMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time threads have spent executing the actual work. +- `ProfileEvent_LocalThreadPoolJobWaitTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Measures the elapsed time from when a job is scheduled in the thread pool to when it is picked up for execution by a worker thread. This metric helps identify delays in job processing, indicating the responsiveness of the thread pool to new tasks. +- `ProfileEvent_DiskS3GetRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 GET and SELECT requests passed through throttler: blocked and not blocked. +- `ProfileEvent_DiskS3GetRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 GET and SELECT requests blocked by throttler. +- `ProfileEvent_DiskS3GetRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform DiskS3 GET and SELECT request throttling. +- `ProfileEvent_DiskS3PutRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 PUT, COPY, POST and LIST requests passed through throttler: blocked and not blocked. +- `ProfileEvent_DiskS3PutRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 PUT, COPY, POST and LIST requests blocked by throttler. +- `ProfileEvent_DiskS3PutRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform DiskS3 PUT, COPY, POST and LIST request throttling. +- `ProfileEvent_S3GetRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 GET and SELECT requests passed through throttler: blocked and not blocked. +- `ProfileEvent_S3GetRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 GET and SELECT requests blocked by throttler. +- `ProfileEvent_S3GetRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform S3 GET and SELECT request throttling. +- `ProfileEvent_S3PutRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 PUT, COPY, POST and LIST requests passed through throttler: blocked and not blocked. +- `ProfileEvent_S3PutRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 PUT, COPY, POST and LIST requests blocked by throttler. +- `ProfileEvent_S3PutRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform S3 PUT, COPY, POST and LIST request throttling. +- `ProfileEvent_ACMEAPIRequests` ([UInt64](/core/reference/data-types/int-uint)) — Number of ACME API requests issued. +- `ProfileEvent_ACMECertificateOrders` ([UInt64](/core/reference/data-types/int-uint)) — Number of ACME certificate orders issued. +- `ProfileEvent_DiskAzureReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for Azure disk read requests. +- `ProfileEvent_DiskAzureReadRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk read requests. +- `ProfileEvent_DiskAzureReadRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk read request errors. +- `ProfileEvent_DiskAzureReadRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk read requests throttled. +- `ProfileEvent_DiskAzureReadRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk read request redirects. +- `ProfileEvent_DiskAzureWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for Azure disk write requests. +- `ProfileEvent_DiskAzureWriteRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk write requests. +- `ProfileEvent_DiskAzureWriteRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk write request errors. +- `ProfileEvent_DiskAzureWriteRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk write requests throttled. +- `ProfileEvent_DiskAzureWriteRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk write request redirects. +- `ProfileEvent_AzureReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for Azure read requests. +- `ProfileEvent_AzureReadRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure read requests. +- `ProfileEvent_AzureReadRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure read request errors. +- `ProfileEvent_AzureReadRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure read requests throttled. +- `ProfileEvent_AzureReadRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure read request redirects. +- `ProfileEvent_AzureWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for Azure write requests. +- `ProfileEvent_AzureWriteRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure write requests. +- `ProfileEvent_AzureWriteRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure write request errors. +- `ProfileEvent_AzureWriteRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure write requests throttled. +- `ProfileEvent_AzureWriteRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure write request redirects. +- `ProfileEvent_AzureGetRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure GET requests passed through throttler: blocked and not blocked. +- `ProfileEvent_AzureGetRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure GET requests blocked by throttler. +- `ProfileEvent_AzureGetRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure GET request throttling. +- `ProfileEvent_DiskAzureGetRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk GET requests passed through throttler: blocked and not blocked. +- `ProfileEvent_DiskAzureGetRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk GET requests blocked by throttler. +- `ProfileEvent_DiskAzureGetRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure disk GET request throttling. +- `ProfileEvent_AzurePutRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure PUT requests passed through throttler: blocked and not blocked. +- `ProfileEvent_AzurePutRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure PUT requests blocked by throttler. +- `ProfileEvent_AzurePutRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure PUT request throttling. +- `ProfileEvent_DiskAzurePutRequestThrottlerCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk PUT requests passed through throttler: blocked and not blocked. +- `ProfileEvent_DiskAzurePutRequestThrottlerBlocked` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure disk PUT requests blocked by throttler. +- `ProfileEvent_DiskAzurePutRequestThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure disk PUT request throttling. +- `ProfileEvent_RemoteReadThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_remote_read_network_bandwidth_for_server'/'max_remote_read_network_bandwidth' throttler. +- `ProfileEvent_RemoteReadThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_read_network_bandwidth_for_server'/'max_remote_read_network_bandwidth' throttling. +- `ProfileEvent_RemoteWriteThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_remote_write_network_bandwidth_for_server'/'max_remote_write_network_bandwidth' throttler. +- `ProfileEvent_RemoteWriteThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_write_network_bandwidth_for_server'/'max_remote_write_network_bandwidth' throttling. +- `ProfileEvent_LocalReadThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_local_read_bandwidth_for_server'/'max_local_read_bandwidth' throttler. +- `ProfileEvent_LocalReadThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_read_bandwidth_for_server'/'max_local_read_bandwidth' throttling. +- `ProfileEvent_LocalWriteThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_local_write_bandwidth_for_server'/'max_local_write_bandwidth' throttler. +- `ProfileEvent_LocalWriteThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_write_bandwidth_for_server'/'max_local_write_bandwidth' throttling. +- `ProfileEvent_BackupThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_backup_bandwidth_for_server' throttler. +- `ProfileEvent_BackupThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_backup_bandwidth_for_server' throttling. +- `ProfileEvent_MergesThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_merges_bandwidth_for_server' throttler. +- `ProfileEvent_MergesThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_merges_bandwidth_for_server' throttling. +- `ProfileEvent_MutationsThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_mutations_bandwidth_for_server' throttler. +- `ProfileEvent_MutationsThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_mutations_bandwidth_for_server' throttling. +- `ProfileEvent_UserThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_network_bandwidth_for_user' throttler. +- `ProfileEvent_UserThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_network_bandwidth_for_user' throttling. +- `ProfileEvent_AllUsersThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_network_bandwidth_for_all_users' throttler. +- `ProfileEvent_AllUsersThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_network_bandwidth_for_all_users' throttling. +- `ProfileEvent_QueryRemoteReadThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_remote_read_network_bandwidth' throttler. +- `ProfileEvent_QueryRemoteReadThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_read_network_bandwidth' throttling. +- `ProfileEvent_QueryRemoteWriteThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_remote_write_network_bandwidth' throttler. +- `ProfileEvent_QueryRemoteWriteThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_write_network_bandwidth' throttling. +- `ProfileEvent_QueryLocalReadThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_local_read_bandwidth' throttler. +- `ProfileEvent_QueryLocalReadThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_read_bandwidth' throttling. +- `ProfileEvent_QueryLocalWriteThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_local_write_bandwidth' throttler. +- `ProfileEvent_QueryLocalWriteThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_write_bandwidth' throttling. +- `ProfileEvent_QueryBackupThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_backup_bandwidth' throttler. +- `ProfileEvent_QueryBackupThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_backup_bandwidth' throttling. +- `ProfileEvent_DistrCacheReadThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_distributed_cache_read_bandwidth_for_server' throttler. +- `ProfileEvent_DistrCacheReadThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_distributed_cache_read_bandwidth_for_server' throttling. +- `ProfileEvent_DistrCacheWriteThrottlerBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through 'max_distributed_cache_write_bandwidth_for_server' throttler. +- `ProfileEvent_DistrCacheWriteThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_distributed_cache_write_bandwidth_for_server' throttling. +- `ProfileEvent_ThrottlerSleepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was sleeping to conform all throttling settings. +- `ProfileEvent_ReadTasksWithAppliedPatches` ([UInt64](/core/reference/data-types/int-uint)) — Total number of read tasks for which there was any patch part applied +- `ProfileEvent_PatchesAppliedInAllReadTasks` ([UInt64](/core/reference/data-types/int-uint)) — Total number of applied patch parts among all read tasks +- `ProfileEvent_PatchesMergeAppliedInAllReadTasks` ([UInt64](/core/reference/data-types/int-uint)) — Total number of applied patch parts with Merge mode among all read tasks +- `ProfileEvent_PatchesJoinAppliedInAllReadTasks` ([UInt64](/core/reference/data-types/int-uint)) — Total number of applied patch parts with Join mode among all read tasks +- `ProfileEvent_PatchesReadRows` ([UInt64](/core/reference/data-types/int-uint)) — Total number of rows read from patch parts +- `ProfileEvent_PatchesReadUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total number of uncompressed bytes read from patch parts +- `ProfileEvent_PatchesJoinRowsAddedToHashTable` ([UInt64](/core/reference/data-types/int-uint)) — Total number of rows added to hash tables when applying patch parts with Join mode +- `ProfileEvent_ApplyPatchesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent applying patch parts to blocks +- `ProfileEvent_ReadPatchesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent reading patch parts +- `ProfileEvent_BuildPatchesMergeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent building indexes for applying patch parts with Merge mode +- `ProfileEvent_BuildPatchesJoinMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent building indexes and hash tables for applying patch parts with Join mode +- `ProfileEvent_AnalyzePatchRangesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent analyzing index of patch parts +- `ProfileEvent_ReadTasksWithAppliedMutationsOnFly` ([UInt64](/core/reference/data-types/int-uint)) — Total number of read tasks for which there was any mutation applied on fly +- `ProfileEvent_MutationsAppliedOnFlyInAllReadTasks` ([UInt64](/core/reference/data-types/int-uint)) — Total number of applied mutations on-fly among all read tasks +- `ProfileEvent_PatchesAcquireLockTries` ([UInt64](/core/reference/data-types/int-uint)) — Total number of tries to acquire lock for executing lightweight updates +- `ProfileEvent_PatchesAcquireLockMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total number of microseconds spent to acquire lock for executing lightweight updates +- `ProfileEvent_DiskObjectStorageWaitBlobRemovalMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for pending blob removal after committing metadata transaction +- `ProfileEvent_SchedulerIOReadRequests` ([UInt64](/core/reference/data-types/int-uint)) — Resource requests passed through scheduler for IO reads. +- `ProfileEvent_SchedulerIOReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through scheduler for IO reads. +- `ProfileEvent_SchedulerIOReadWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for IO reads. +- `ProfileEvent_SchedulerIOWriteRequests` ([UInt64](/core/reference/data-types/int-uint)) — Resource requests passed through scheduler for IO writes. +- `ProfileEvent_SchedulerIOWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes passed through scheduler for IO writes. +- `ProfileEvent_SchedulerIOWriteWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for IO writes. +- `ProfileEvent_QueryMaskingRulesMatch` ([UInt64](/core/reference/data-types/int-uint)) — Number of times query masking rules was successfully matched. +- `ProfileEvent_ReplicatedPartFetches` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a data part was downloaded from replica of a ReplicatedMergeTree table. +- `ProfileEvent_ReplicatedPartFailedFetches` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a data part was failed to download from replica of a ReplicatedMergeTree table. +- `ProfileEvent_ObsoleteReplicatedParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a data part was covered by another data part that has been fetched from a replica (so, we have marked a covered data part as obsolete and no longer needed). +- `ProfileEvent_ReplicatedPartMerges` ([UInt64](/core/reference/data-types/int-uint)) — Number of times data parts of ReplicatedMergeTree tables were successfully merged. +- `ProfileEvent_ReplicatedPartFetchesOfMerged` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we prefer to download already merged part from replica of ReplicatedMergeTree table instead of performing a merge ourself (usually we prefer doing a merge ourself to save network traffic). This happens when we have not all source parts to perform a merge or when the data part is old enough. +- `ProfileEvent_ReplicatedPartMutations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times data parts of ReplicatedMergeTree tables were successfully mutated. +- `ProfileEvent_ReplicatedPartChecks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we had to perform advanced search for a data part on replicas or to clarify the need of an existing data part. +- `ProfileEvent_ReplicatedPartChecksFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the advanced search for a data part on replicas did not give result or when unexpected part has been found and moved away. +- `ProfileEvent_ReplicatedDataLoss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a data part that we wanted doesn't exist on any replica (even on replicas that are offline right now). That data parts are definitely lost. This is normal due to asynchronous replication (if quorum inserts were not enabled), when the replica on which the data part was written was failed and when it became online after fail it doesn't contain that data part. +- `ProfileEvent_ReplicatedCoveredPartsInZooKeeperOnStart` ([UInt64](/core/reference/data-types/int-uint)) — For debugging purposes. Number of parts in ZooKeeper that have a covering part, but doesn't exist on disk. Checked on server start. +- `ProfileEvent_QuorumParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of data parts written with quorum. It counts as one part for sync insert and maybe up to async inserts count for insert which flushes async inserts. +- `ProfileEvent_QuorumWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for quorum during inserts. +- `ProfileEvent_QuorumFailedInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of inserts failed due to quorum not reaching. +- `ProfileEvent_InsertedRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows INSERTed to all tables. +- `ProfileEvent_InsertedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes (uncompressed; for columns as they stored in memory) INSERTed to all tables. +- `ProfileEvent_DelayedInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition. +- `ProfileEvent_RejectedInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the INSERT of a block to a MergeTree table was rejected with 'Too many parts' exception due to high number of active data parts for partition. +- `ProfileEvent_DelayedInsertsMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total number of milliseconds spent while the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition. +- `ProfileEvent_DelayedMutations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the mutation of a MergeTree table was throttled due to high number of unfinished mutations for table. +- `ProfileEvent_RejectedMutations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the mutation of a MergeTree table was rejected with 'Too many mutations' exception due to high number of unfinished mutations for table. +- `ProfileEvent_DelayedMutationsMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total number of milliseconds spent while the mutation of a MergeTree table was throttled due to high number of unfinished mutations for table. +- `ProfileEvent_RejectedLightweightUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Number of time the lightweight update was rejected due to too many uncompressed bytes in patches. +- `ProfileEvent_DistributedDelayedInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the INSERT of a block to a Distributed table was throttled due to high number of pending bytes. +- `ProfileEvent_DistributedRejectedInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the INSERT of a block to a Distributed table was rejected with 'Too many bytes' exception due to high number of pending bytes. +- `ProfileEvent_DistributedDelayedInsertsMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total number of milliseconds spent while the INSERT of a block to a Distributed table was throttled due to high number of pending bytes. +- `ProfileEvent_DuplicatedInsertedBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of the synchronous inserts to a *MergeTree table was deduplicated. +- `ProfileEvent_SelfDuplicatedAsyncInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of async inserts in the INSERTed block to a ReplicatedMergeTree table was self deduplicated. +- `ProfileEvent_DuplicatedAsyncInserts` ([UInt64](/core/reference/data-types/int-uint)) — Number of async inserts in the INSERTed block to a ReplicatedMergeTree table was deduplicated. +- `ProfileEvent_DuplicationElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent checking for duplication of INSERTed blocks to *MergeTree tables. +- `ProfileEvent_ZooKeeperInit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times connection with ZooKeeper has been established. +- `ProfileEvent_ZooKeeperTransactions` ([UInt64](/core/reference/data-types/int-uint)) — Number of ZooKeeper operations, which include both read and write operations as well as multi-transactions. +- `ProfileEvent_ZooKeeperList` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'list' (getChildren) requests to ZooKeeper. +- `ProfileEvent_ZooKeeperListRecursive` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'listRecursive' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperCreate` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'create' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperRemove` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'remove' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperExists` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'exists' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperGet` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'get' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperSet` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'set' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperMulti` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'multi' requests to ZooKeeper (compound transactions). +- `ProfileEvent_ZooKeeperMultiRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of read 'multi' requests to ZooKeeper (compound transactions). +- `ProfileEvent_ZooKeeperMultiWrite` ([UInt64](/core/reference/data-types/int-uint)) — Number of write 'multi' requests to ZooKeeper (compound transactions). +- `ProfileEvent_ZooKeeperCheck` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'check' requests to ZooKeeper. Usually they don't make sense in isolation, only as part of a complex transaction. +- `ProfileEvent_ZooKeeperSync` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'sync' requests to ZooKeeper. These requests are rarely needed or usable. +- `ProfileEvent_ZooKeeperReconfig` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'reconfig' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperClose` ([UInt64](/core/reference/data-types/int-uint)) — Number of times connection with ZooKeeper has been closed voluntary. +- `ProfileEvent_ZooKeeperGetACL` ([UInt64](/core/reference/data-types/int-uint)) — Number of 'getACL' requests to ZooKeeper. +- `ProfileEvent_ZooKeeperWatchResponse` ([UInt64](/core/reference/data-types/int-uint)) — Number of times watch notification has been received from ZooKeeper. +- `ProfileEvent_ZooKeeperUserExceptions` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper related to the data (no node, bad version or similar). +- `ProfileEvent_ZooKeeperHardwareExceptions` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper related to network (connection loss or similar). +- `ProfileEvent_ZooKeeperOtherExceptions` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper other than ZooKeeperUserExceptions and ZooKeeperHardwareExceptions. +- `ProfileEvent_ZooKeeperWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Number of microseconds spent waiting for responses from ZooKeeper after creating a request, summed across all the requesting threads. +- `ProfileEvent_ZooKeeperBytesSent` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes send over network while communicating with ZooKeeper. +- `ProfileEvent_ZooKeeperBytesReceived` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received over network while communicating with ZooKeeper. +- `ProfileEvent_DistributedConnectionTries` ([UInt64](/core/reference/data-types/int-uint)) — Total count of distributed connection attempts. +- `ProfileEvent_DistributedConnectionUsable` ([UInt64](/core/reference/data-types/int-uint)) — Total count of successful distributed connections to a usable server (with required table, but maybe stale). +- `ProfileEvent_DistributedConnectionFailTry` ([UInt64](/core/reference/data-types/int-uint)) — Total count when distributed connection fails with retry. +- `ProfileEvent_DistributedConnectionMissingTable` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we rejected a replica from a distributed query, because it did not contain a table needed for the query. +- `ProfileEvent_DistributedConnectionStaleReplica` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we rejected a replica from a distributed query, because some table needed for a query had replication lag higher than the configured threshold. +- `ProfileEvent_DistributedConnectionSkipReadOnlyReplica` ([UInt64](/core/reference/data-types/int-uint)) — Number of replicas skipped during INSERT into Distributed table due to replicas being read-only +- `ProfileEvent_DistributedConnectionFailAtAll` ([UInt64](/core/reference/data-types/int-uint)) — Total count when distributed connection fails after all retries finished. +- `ProfileEvent_Shards` ([UInt64](/core/reference/data-types/int-uint)) — The number of shards involved in a query, summed across all distributed tables and table functions. A single host is counted multiple times if it appears in multiple tables. The number counts the total expected number of shards, which includes skipped shards with the `skip_unavailable_shards` setting. +- `ProfileEvent_HedgedRequestsChangeReplica` ([UInt64](/core/reference/data-types/int-uint)) — Total count when timeout for changing replica expired in hedged requests. +- `ProfileEvent_SuspendSendingQueryToShard` ([UInt64](/core/reference/data-types/int-uint)) — Total count when sending query to shard was suspended when async_query_sending_for_remote is enabled. +- `ProfileEvent_CompileFunction` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a compilation of generated LLVM code (to create fused function for complex expressions) was initiated. +- `ProfileEvent_CompiledFunctionExecute` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a compiled function was executed. +- `ProfileEvent_CompileExpressionsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for compilation of expressions to LLVM code. +- `ProfileEvent_CompileExpressionsBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes used for expressions compilation. +- `ProfileEvent_ExecuteShellCommand` ([UInt64](/core/reference/data-types/int-uint)) — Number of shell command executions. +- `ProfileEvent_ExternalProcessingCompressedBytesTotal` ([UInt64](/core/reference/data-types/int-uint)) — Number of compressed bytes written by external processing (sorting/aggregating/joining) +- `ProfileEvent_ExternalProcessingUncompressedBytesTotal` ([UInt64](/core/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written by external processing (sorting/aggregating/joining) +- `ProfileEvent_ExternalProcessingFilesTotal` ([UInt64](/core/reference/data-types/int-uint)) — Number of files used by external processing (sorting/aggregating/joining) +- `ProfileEvent_ExternalSortWritePart` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for sorting in external memory. +- `ProfileEvent_ExternalSortMerge` ([UInt64](/core/reference/data-types/int-uint)) — Number of times temporary files were merged for sorting in external memory. +- `ProfileEvent_ExternalSortCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of compressed bytes written for sorting in external memory. +- `ProfileEvent_ExternalSortUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written for sorting in external memory. +- `ProfileEvent_ExternalAggregationWritePart` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for aggregation in external memory. +- `ProfileEvent_ExternalAggregationMerge` ([UInt64](/core/reference/data-types/int-uint)) — Number of times temporary files were merged for aggregation in external memory. +- `ProfileEvent_ExternalAggregationCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to disk for aggregation in external memory. +- `ProfileEvent_ExternalAggregationUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written to disk for aggregation in external memory. +- `ProfileEvent_ExternalJoinWritePart` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for JOIN in external memory. +- `ProfileEvent_ExternalJoinMerge` ([UInt64](/core/reference/data-types/int-uint)) — Number of times temporary files were merged for JOIN in external memory. +- `ProfileEvent_ExternalJoinCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of compressed bytes written for JOIN in external memory. +- `ProfileEvent_ExternalJoinUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written for JOIN in external memory. +- `ProfileEvent_IcebergPartitionPrunedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of skipped files during Iceberg partition pruning +- `ProfileEvent_IcebergTrivialCountOptimizationApplied` ([UInt64](/core/reference/data-types/int-uint)) — Trivial count optimization applied while reading from Iceberg +- `ProfileEvent_IcebergVersionHintUsed` ([UInt64](/core/reference/data-types/int-uint)) — Number of times version-hint.text has been used. +- `ProfileEvent_IcebergMinMaxIndexPrunedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of skipped files by using MinMax index in Iceberg +- `ProfileEvent_JoinBuildTableRowCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of rows in the build table for a JOIN operation. +- `ProfileEvent_JoinProbeTableRowCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of rows in the probe table for a JOIN operation. +- `ProfileEvent_JoinResultRowCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of rows in the result of a JOIN operation. +- `ProfileEvent_JoinNonJoinedTransformBlockCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks emitted by NonJoinedBlocksTransform. +- `ProfileEvent_JoinNonJoinedTransformRowCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of non-joined rows emitted by NonJoinedBlocksTransform. +- `ProfileEvent_JoinDelayedJoinedTransformBlockCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks emitted by DelayedJoinedBlocksWorkerTransform. +- `ProfileEvent_JoinDelayedJoinedTransformRowCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows emitted by DelayedJoinedBlocksWorkerTransform. +- `ProfileEvent_JoinSpillingHashJoinSwitchedToGraceJoin` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a (Concurrent)HashJoin was switched to GraceHashJoin due to memory limit in SpillingHashJoin. +- `ProfileEvent_JoinReorderMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent executing JOIN reordering algorithm. +- `ProfileEvent_JoinOptimizeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent executing JOIN plan optimizations. +- `ProfileEvent_QueryPlanOptimizeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent executing query plan optimizations. +- `ProfileEvent_DeltaLakePartitionPrunedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of skipped files during DeltaLake partition pruning +- `ProfileEvent_DeltaLakeSnapshotInitializations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a DeltaLake table snapshot was initialized (loaded from object storage) +- `ProfileEvent_DeltaLakeScannedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of files scanned during DeltaLake scan callbacks +- `ProfileEvent_SlowRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of reads from a file that were slow. This indicate system overload. Thresholds are controlled by read_backoff_* settings. +- `ProfileEvent_ReadBackoff` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the number of query processing threads was lowered due to slow reads. +- `ProfileEvent_ReplicaPartialShutdown` ([UInt64](/core/reference/data-types/int-uint)) — How many times Replicated table has to deinitialize its state due to session expiration in ZooKeeper. The state is reinitialized every time when ZooKeeper is available again. +- `ProfileEvent_IndexAnalysisRounds` ([UInt64](/core/reference/data-types/int-uint)) — Number of times index analysis was performed within the query. +- `ProfileEvent_SelectedParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of data parts selected to read from a MergeTree table. +- `ProfileEvent_SelectedPartsTotal` ([UInt64](/core/reference/data-types/int-uint)) — Number of total data parts before selecting which ones to read from a MergeTree table. +- `ProfileEvent_SelectedRanges` ([UInt64](/core/reference/data-types/int-uint)) — Number of (non-adjacent) ranges in all data parts selected to read from a MergeTree table. +- `ProfileEvent_SelectedMarks` ([UInt64](/core/reference/data-types/int-uint)) — Number of marks (index granules) selected to read from a MergeTree table. +- `ProfileEvent_SelectedMarksTotal` ([UInt64](/core/reference/data-types/int-uint)) — Number of total marks (index granules) before selecting which ones to read from a MergeTree table. +- `ProfileEvent_SelectedRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows SELECTed from all tables. +- `ProfileEvent_SelectedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes (uncompressed; for columns as they stored in memory) SELECTed from all tables. +- `ProfileEvent_RowsReadByMainReader` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows read from MergeTree tables by the main reader (after PREWHERE step). +- `ProfileEvent_RowsReadByPrewhereReaders` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows read from MergeTree tables (in total) by prewhere readers. +- `ProfileEvent_LoadedDataParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of data parts loaded by MergeTree tables during initialization. +- `ProfileEvent_LoadedDataPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Microseconds spent by MergeTree tables for loading data parts during initialization. +- `ProfileEvent_FilteringMarksWithPrimaryKeyProcessedMarks` ([UInt64](/core/reference/data-types/int-uint)) — Total marks processed during PK analysis. +- `ProfileEvent_FilteringMarksWithPrimaryKeyMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent filtering parts by PK. +- `ProfileEvent_FilteringMarksWithSecondaryKeysMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent filtering parts by skip indexes. +- `ProfileEvent_DistributedIndexAnalysisMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent during distributed index analysis +- `ProfileEvent_DistributedIndexAnalysisScheduledReplicas` ([UInt64](/core/reference/data-types/int-uint)) — Number of replicas (local replica will be accounted once) to which distributed index analysis has been scheduled +- `ProfileEvent_DistributedIndexAnalysisReplicaUnavailable` ([UInt64](/core/reference/data-types/int-uint)) — Number of times distributed index analysis failed on one of replicas without fallback (failed during connect) +- `ProfileEvent_DistributedIndexAnalysisReplicaFallback` ([UInt64](/core/reference/data-types/int-uint)) — Number of times distributed index analysis failed on one of replicas with fallback to local replica +- `ProfileEvent_DistributedIndexAnalysisParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts send for distributed index analysis +- `ProfileEvent_DistributedIndexAnalysisMissingParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of missing parts during distributed index analysis that will be resolved locally +- `ProfileEvent_WaitMarksLoadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent loading marks +- `ProfileEvent_BackgroundLoadingMarksTasks` ([UInt64](/core/reference/data-types/int-uint)) — Number of background tasks for loading marks +- `ProfileEvent_MarksTasksFromCache` ([UInt64](/core/reference/data-types/int-uint)) — Number of times marks were loaded synchronously because they were already present in the cache. +- `ProfileEvent_LoadingMarksTasksCanceled` ([UInt64](/core/reference/data-types/int-uint)) — Number of times background tasks for loading marks were canceled +- `ProfileEvent_LoadedMarksFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of mark files loaded. +- `ProfileEvent_LoadedMarksCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of marks loaded (total across columns). +- `ProfileEvent_LoadedMarksMemoryBytes` ([UInt64](/core/reference/data-types/int-uint)) — Size of in-memory representations of loaded marks. +- `ProfileEvent_MarkCacheEvictedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes evicted from the mark cache. +- `ProfileEvent_MarkCacheEvictedMarks` ([UInt64](/core/reference/data-types/int-uint)) — Number of marks evicted from the mark cache. +- `ProfileEvent_MarkCacheEvictedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of mark files evicted from the mark cache. +- `ProfileEvent_LoadedPrimaryIndexFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of primary index files loaded. +- `ProfileEvent_LoadedPrimaryIndexRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows of primary key loaded. +- `ProfileEvent_LoadedPrimaryIndexBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows of primary key loaded. +- `ProfileEvent_Merge` ([UInt64](/core/reference/data-types/int-uint)) — Number of launched background merges. +- `ProfileEvent_MergeSourceParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of source parts scheduled for merges. +- `ProfileEvent_MergedRows` ([UInt64](/core/reference/data-types/int-uint)) — Rows read for background merges. This is the number of rows before merge. +- `ProfileEvent_MergedColumns` ([UInt64](/core/reference/data-types/int-uint)) — Number of columns merged during the horizontal stage of merges. +- `ProfileEvent_GatheredColumns` ([UInt64](/core/reference/data-types/int-uint)) — Number of columns gathered during the vertical stage of merges. +- `ProfileEvent_MergedProjections` ([UInt64](/core/reference/data-types/int-uint)) — Number of projections merged (not rebuilt) during MergeTree merges. +- `ProfileEvent_RebuiltProjections` ([UInt64](/core/reference/data-types/int-uint)) — Number of projections rebuilt from scratch during MergeTree merges. +- `ProfileEvent_MergedUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) that was read for background merges. This is the number before merge. +- `ProfileEvent_MergeWrittenRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows written during the merge. +- `ProfileEvent_MergeTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for background merges +- `ProfileEvent_MergeExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of background merges +- `ProfileEvent_MergeCommitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for committing merge results (part renaming, checksum verification, ZooKeeper updates) +- `ProfileEvent_MergeHorizontalStageTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for horizontal stage of background merges +- `ProfileEvent_MergeHorizontalStageExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of horizontal stage of background merges +- `ProfileEvent_MergeVerticalStageTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for vertical stage of background merges +- `ProfileEvent_MergeVerticalStageExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of vertical stage of background merges +- `ProfileEvent_MergeTextIndexStageTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for text index stage of background merges +- `ProfileEvent_MergeTextIndexStageExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of text index stage of background merges +- `ProfileEvent_MergeProjectionStageTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for projection stage of background merges +- `ProfileEvent_MergeProjectionStageExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of projection stage of background merges +- `ProfileEvent_MergePrewarmStageTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for prewarm stage of background merges +- `ProfileEvent_MergePrewarmStageExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of prewarm stage of background merges +- `ProfileEvent_MergesRejectedByMemoryLimit` ([UInt64](/core/reference/data-types/int-uint)) — Number of background merges rejected due to memory limit +- `ProfileEvent_MergingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while merging sorted columns +- `ProfileEvent_AggregatingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while aggregating sorted columns +- `ProfileEvent_CoalescingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while coalescing sorted columns +- `ProfileEvent_CollapsingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while collapsing sorted columns +- `ProfileEvent_ReplacingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while replacing sorted columns +- `ProfileEvent_SummingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while summing sorted columns +- `ProfileEvent_VersionedCollapsingSortedMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while version collapsing sorted columns +- `ProfileEvent_GatheringColumnMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent while gathering columns for vertical merge +- `ProfileEvent_MutationTotalParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of total parts for which mutations tried to be applied +- `ProfileEvent_MutationUntouchedParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of total parts for which mutations tried to be applied but which was completely skipped according to predicate +- `ProfileEvent_MutationCreatedEmptyParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of total parts which were replaced to empty parts instead of running mutation +- `ProfileEvent_MutatedRows` ([UInt64](/core/reference/data-types/int-uint)) — Rows read for mutations. This is the number of rows before mutation +- `ProfileEvent_MutatedUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) that was read for mutations. This is the number before mutation. +- `ProfileEvent_MutationAffectedRowsUpperBound` ([UInt64](/core/reference/data-types/int-uint)) — The upper bound of number of rows that were affected by mutation (e.g. number of rows that satisfy the predicate of UPDATE or DELETE mutation). The actual number may be slightly less +- `ProfileEvent_MutationTotalMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for mutations. +- `ProfileEvent_MutationExecuteMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total busy time spent for execution of mutations. +- `ProfileEvent_MutationCommitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for committing mutation results (part renaming, checksum verification, ZooKeeper updates) +- `ProfileEvent_MutationAllPartColumns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times when task to mutate all columns in part was created +- `ProfileEvent_MutationSomePartColumns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times when task to mutate some columns in part was created +- `ProfileEvent_MutateTaskProjectionsCalculationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent calculating projections in mutations +- `ProfileEvent_MergeTreeDataWriterRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows INSERTed to MergeTree tables. +- `ProfileEvent_MergeTreeDataWriterUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) INSERTed to MergeTree tables. +- `ProfileEvent_MergeTreeDataWriterCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes written to filesystem for data INSERTed to MergeTree tables. +- `ProfileEvent_MergeTreeDataWriterBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables. Each block forms a data part of level zero. +- `ProfileEvent_MergeTreeDataWriterBlocksAlreadySorted` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables that appeared to be already sorted. +- `ProfileEvent_MergeMutateBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in executeStep() for MergeMutate executor tasks. +- `ProfileEvent_MergeMutateBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in cancel() for MergeMutate executor tasks. +- `ProfileEvent_MergeMutateBackgroundExecutorTaskResetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent resetting task for MergeMutate executor. +- `ProfileEvent_MergeMutateBackgroundExecutorWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for completion in MergeMutate executor. +- `ProfileEvent_MoveBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in executeStep() for Move executor tasks. +- `ProfileEvent_MoveBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in cancel() for Move executor tasks. +- `ProfileEvent_MoveBackgroundExecutorTaskResetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent resetting task for Move executor. +- `ProfileEvent_MoveBackgroundExecutorWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for completion in Move executor. +- `ProfileEvent_FetchBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in executeStep() for Fetch executor tasks. +- `ProfileEvent_FetchBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in cancel() for Fetch executor tasks. +- `ProfileEvent_FetchBackgroundExecutorTaskResetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent resetting task for Fetch executor. +- `ProfileEvent_FetchBackgroundExecutorWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for completion in Fetch executor. +- `ProfileEvent_CommonBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in executeStep() for Common executor tasks. +- `ProfileEvent_CommonBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in cancel() for Common executor tasks. +- `ProfileEvent_CommonBackgroundExecutorTaskResetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent resetting task for Common executor. +- `ProfileEvent_CommonBackgroundExecutorWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for completion in Common executor. +- `ProfileEvent_MergeTreeDataWriterSkipIndicesCalculationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent calculating skip indices +- `ProfileEvent_MergeTreeDataWriterStatisticsCalculationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent calculating statistics +- `ProfileEvent_MergeTreeDataWriterSortingBlocksMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent sorting blocks +- `ProfileEvent_MergeTreeDataWriterMergingBlocksMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent merging input blocks (for special MergeTree engines) +- `ProfileEvent_MergeTreeDataWriterProjectionsCalculationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent calculating projections +- `ProfileEvent_MergeTreeDataProjectionWriterSortingBlocksMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent sorting blocks (for projection it might be a key different from table's sorting key) +- `ProfileEvent_MergeTreeDataProjectionWriterMergingBlocksMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent merging blocks +- `ProfileEvent_InsertedWideParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts inserted in Wide format. +- `ProfileEvent_InsertedCompactParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts inserted in Compact format. +- `ProfileEvent_MergedIntoWideParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts merged into Wide format. +- `ProfileEvent_MergedIntoCompactParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts merged into Compact format. +- `ProfileEvent_MergeTreeDataProjectionWriterRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows INSERTed to MergeTree tables projection. +- `ProfileEvent_MergeTreeDataProjectionWriterUncompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) INSERTed to MergeTree tables projection. +- `ProfileEvent_MergeTreeDataProjectionWriterCompressedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes written to filesystem for data INSERTed to MergeTree tables projection. +- `ProfileEvent_MergeTreeDataProjectionWriterBlocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables projection. Each block forms a data part of level zero. +- `ProfileEvent_MergeTreeDataProjectionWriterBlocksAlreadySorted` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables projection that appeared to be already sorted. +- `ProfileEvent_CannotRemoveEphemeralNode` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an error happened while trying to remove ephemeral node. This is not an issue, because our implementation of ZooKeeper library guarantee that the session will expire and the node will be removed. +- `ProfileEvent_RegexpWithMultipleNeedlesCreated` ([UInt64](/core/reference/data-types/int-uint)) — Regular expressions with multiple needles (VectorScan library) compiled. +- `ProfileEvent_RegexpWithMultipleNeedlesGlobalCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we fetched compiled regular expression with multiple needles (VectorScan library) from the global cache. +- `ProfileEvent_RegexpWithMultipleNeedlesGlobalCacheMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we failed to fetch compiled regular expression with multiple needles (VectorScan library) from the global cache. +- `ProfileEvent_RegexpLocalCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we fetched compiled regular expression from a local cache. +- `ProfileEvent_RegexpLocalCacheMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we failed to fetch compiled regular expression from a local cache. +- `ProfileEvent_ContextLock` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the lock of Context was acquired or tried to acquire. This is global lock. +- `ProfileEvent_ContextLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Context lock wait time in microseconds +- `ProfileEvent_StorageBufferFlush` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a buffer in a 'Buffer' table was flushed. +- `ProfileEvent_StorageBufferErrorOnFlush` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a buffer in the 'Buffer' table has not been able to flush due to error writing in the destination table. +- `ProfileEvent_StorageBufferPassedAllMinThresholds` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a criteria on min thresholds has been reached to flush a buffer in a 'Buffer' table. +- `ProfileEvent_StorageBufferPassedTimeMaxThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a criteria on max time threshold has been reached to flush a buffer in a 'Buffer' table. +- `ProfileEvent_StorageBufferPassedRowsMaxThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a criteria on max rows threshold has been reached to flush a buffer in a 'Buffer' table. +- `ProfileEvent_StorageBufferPassedBytesMaxThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a criteria on max bytes threshold has been reached to flush a buffer in a 'Buffer' table. +- `ProfileEvent_StorageBufferPassedTimeFlushThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times background-only flush threshold on time has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. +- `ProfileEvent_StorageBufferPassedRowsFlushThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times background-only flush threshold on rows has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. +- `ProfileEvent_StorageBufferPassedBytesFlushThreshold` ([UInt64](/core/reference/data-types/int-uint)) — Number of times background-only flush threshold on bytes has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. +- `ProfileEvent_StorageBufferLayerLockReadersWaitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time for waiting for Buffer layer during reading. +- `ProfileEvent_StorageBufferLayerLockWritersWaitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time for waiting free Buffer layer to write to (can be used to tune Buffer layers). +- `ProfileEvent_SystemLogErrorOnFlush` ([UInt64](/core/reference/data-types/int-uint)) — Number of times any of the system logs have failed to flush to the corresponding system table. Attempts to flush are repeated. +- `ProfileEvent_DictCacheKeysRequested` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys requested from the data source for the dictionaries of 'cache' types. +- `ProfileEvent_DictCacheKeysRequestedMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys requested from the data source for dictionaries of 'cache' types but not found in the data source. +- `ProfileEvent_DictCacheKeysRequestedFound` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys requested from the data source for dictionaries of 'cache' types and found in the data source. +- `ProfileEvent_DictCacheKeysExpired` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and found in the cache but they were obsolete. +- `ProfileEvent_DictCacheKeysNotFound` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and not found. +- `ProfileEvent_DictCacheKeysHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and found in the cache. +- `ProfileEvent_DictCacheRequestTimeNs` ([UInt64](/core/reference/data-types/int-uint)) — Number of nanoseconds spend in querying the external data sources for the dictionaries of 'cache' types. +- `ProfileEvent_DictCacheRequests` ([UInt64](/core/reference/data-types/int-uint)) — Number of bulk requests to the external data sources for the dictionaries of 'cache' types. +- `ProfileEvent_DictCacheLockWriteNs` ([UInt64](/core/reference/data-types/int-uint)) — Number of nanoseconds spend in waiting for write lock to update the data for the dictionaries of 'cache' types. +- `ProfileEvent_DictCacheLockReadNs` ([UInt64](/core/reference/data-types/int-uint)) — Number of nanoseconds spend in waiting for read lock to lookup the data for the dictionaries of 'cache' types. +- `ProfileEvent_DistributedSyncInsertionTimeoutExceeded` ([UInt64](/core/reference/data-types/int-uint)) — A timeout has exceeded while waiting for shards during synchronous insertion into a Distributed table (with 'distributed_foreground_insert' = 1) +- `ProfileEvent_DistributedAsyncInsertionFailures` ([UInt64](/core/reference/data-types/int-uint)) — Number of failures for asynchronous insertion into a Distributed table (with 'distributed_foreground_insert' = 0) +- `ProfileEvent_DataAfterMergeDiffersFromReplica` ([UInt64](/core/reference/data-types/int-uint)) — Number of times data after merge is not byte-identical to the data on another replicas. There could be several reasons: + 1. Using newer version of compression library after server update. + 2. Using another compression method. + 3. Non-deterministic compression algorithm (highly unlikely). + 4. Non-deterministic merge algorithm due to logical error in code. + 5. Data corruption in memory due to bug in code. + 6. Data corruption in memory due to hardware issue. + 7. Manual modification of source data after server startup. + 8. Manual modification of checksums stored in ZooKeeper. + 9. Part format related settings like 'enable_mixed_granularity_parts' are different on different replicas. + The server successfully detected this situation and will download merged part from the replica to force the byte-identical result. +- `ProfileEvent_DataAfterMutationDiffersFromReplica` ([UInt64](/core/reference/data-types/int-uint)) — Number of times data after mutation is not byte-identical to the data on other replicas. In addition to the reasons described in 'DataAfterMergeDiffersFromReplica', it is also possible due to non-deterministic mutation. +- `ProfileEvent_PolygonsAddedToPool` ([UInt64](/core/reference/data-types/int-uint)) — A polygon has been added to the cache (pool) for the 'pointInPolygon' function. +- `ProfileEvent_PolygonsInPoolAllocatedBytes` ([UInt64](/core/reference/data-types/int-uint)) — The number of bytes for polygons added to the cache (pool) for the 'pointInPolygon' function. +- `ProfileEvent_NaiveBayesClassifierModelsLoaded` ([UInt64](/core/reference/data-types/int-uint)) — Number of Naive Bayes Classifier models loaded. +- `ProfileEvent_NaiveBayesClassifierModelsAllocatedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes allocated for Naive Bayes Classifier models. +- `ProfileEvent_USearchAddCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of vectors added to usearch indexes. +- `ProfileEvent_USearchAddVisitedMembers` ([UInt64](/core/reference/data-types/int-uint)) — Number of nodes visited when adding vectors to usearch indexes. +- `ProfileEvent_USearchAddComputedDistances` ([UInt64](/core/reference/data-types/int-uint)) — Number of times distance was computed when adding vectors to usearch indexes. +- `ProfileEvent_USearchSearchCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of search operations performed in usearch indexes. +- `ProfileEvent_USearchSearchVisitedMembers` ([UInt64](/core/reference/data-types/int-uint)) — Number of nodes visited when searching in usearch indexes. +- `ProfileEvent_USearchSearchComputedDistances` ([UInt64](/core/reference/data-types/int-uint)) — Number of times distance was computed when searching usearch indexes. +- `ProfileEvent_RWLockAcquiredReadLocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read lock was acquired (in a heavy RWLock). +- `ProfileEvent_RWLockAcquiredWriteLocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a write lock was acquired (in a heavy RWLock). +- `ProfileEvent_RWLockReadersWaitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for a read lock to be acquired (in a heavy RWLock). +- `ProfileEvent_RWLockWritersWaitMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for a write lock to be acquired (in a heavy RWLock). +- `ProfileEvent_DNSError` ([UInt64](/core/reference/data-types/int-uint)) — Total count of errors in DNS resolution +- `ProfileEvent_PartsLockHoldMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent holding data parts lock in MergeTree tables +- `ProfileEvent_PartsLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for data parts lock in MergeTree tables +- `ProfileEvent_PartsLocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times data parts lock has been acquired for MergeTree tables +- `ProfileEvent_SharedPartsLockHoldMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent holding shared data parts lock in MergeTree tables +- `ProfileEvent_SharedPartsLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for shared data parts lock in MergeTree tables +- `ProfileEvent_SharedPartsLocks` ([UInt64](/core/reference/data-types/int-uint)) — Number of times shared data parts lock has been acquired for MergeTree tables +- `ProfileEvent_RealTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total (wall clock) time spent in processing (queries and other tasks) threads (note that this is a sum). +- `ProfileEvent_UserTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent in processing (queries and other tasks) threads executing CPU instructions in user mode. This includes time CPU pipeline was stalled due to main memory access, cache misses, branch mispredictions, hyper-threading, etc. +- `ProfileEvent_SystemTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent in processing (queries and other tasks) threads executing CPU instructions in OS kernel mode. This is time spent in syscalls, excluding waiting time during blocking syscalls. +- `ProfileEvent_MemoryOvercommitWaitTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent in waiting for memory to be freed in OvercommitTracker. +- `ProfileEvent_MemoryAllocatorPurge` ([UInt64](/core/reference/data-types/int-uint)) — Total number of times memory allocator purge was requested +- `ProfileEvent_MemoryAllocatorPurgeTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent for memory allocator purge +- `ProfileEvent_SoftPageFaults` ([UInt64](/core/reference/data-types/int-uint)) — The number of soft page faults in query execution threads. Soft page fault usually means a miss in the memory allocator cache, which requires a new memory mapping from the OS and subsequent allocation of a page of physical memory. +- `ProfileEvent_HardPageFaults` ([UInt64](/core/reference/data-types/int-uint)) — The number of hard page faults in query execution threads. High values indicate either that you forgot to turn off swap on your server, or eviction of memory pages of the ClickHouse binary during very high memory pressure, or successful usage of the 'mmap' read method for the tables data. +- `ProfileEvent_OSIOWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a thread spent waiting for a result of IO operation, from the OS point of view. This is real IO that doesn't include page cache. +- `ProfileEvent_OSCPUWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a thread was ready for execution but waiting to be scheduled by OS, from the OS point of view. +- `ProfileEvent_OSCPUVirtualTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — CPU time spent seen by OS. Does not include involuntary waits due to virtualization. +- `ProfileEvent_OSReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read from disks or block devices. Doesn't include bytes read from page cache. May include excessive data due to block size, readahead, etc. +- `ProfileEvent_OSWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to disks or block devices. Doesn't include bytes that are in page cache dirty pages. May not include data that was written by OS asynchronously. +- `ProfileEvent_OSReadChars` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read from filesystem, including page cache, as well as network and other files. +- `ProfileEvent_OSWriteChars` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to filesystem, including page cache, as well as network and other files. +- `ProfileEvent_ParallelReplicasHandleRequestMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent processing requests for marks from replicas +- `ProfileEvent_ParallelReplicasHandleAnnouncementMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent processing replicas announcements +- `ProfileEvent_ParallelReplicasAnnouncementMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to send an announcement +- `ProfileEvent_ParallelReplicasReadRequestMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent for read requests +- `ProfileEvent_ParallelReplicasReadAssignedMarks` ([UInt64](/core/reference/data-types/int-uint)) — Sum across all replicas of how many of scheduled marks were assigned by consistent hash +- `ProfileEvent_ParallelReplicasReadUnassignedMarks` ([UInt64](/core/reference/data-types/int-uint)) — Sum across all replicas of how many unassigned marks were scheduled +- `ProfileEvent_ParallelReplicasReadAssignedForStealingMarks` ([UInt64](/core/reference/data-types/int-uint)) — Sum across all replicas of how many of scheduled marks were assigned for stealing by consistent hash +- `ProfileEvent_ParallelReplicasReadMarks` ([UInt64](/core/reference/data-types/int-uint)) — How many marks were read by the given replica +- `ProfileEvent_ParallelReplicasStealingByHashMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent collecting segments meant for stealing by hash +- `ProfileEvent_ParallelReplicasProcessingPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent processing data parts +- `ProfileEvent_ParallelReplicasStealingLeftoversMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent collecting orphaned segments +- `ProfileEvent_ParallelReplicasCollectingOwnedSegmentsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent collecting segments meant by hash +- `ProfileEvent_ParallelReplicasNumRequests` ([UInt64](/core/reference/data-types/int-uint)) — Number of requests to the initiator. +- `ProfileEvent_ParallelReplicasDeniedRequests` ([UInt64](/core/reference/data-types/int-uint)) — Number of completely denied requests to the initiator +- `ProfileEvent_CacheWarmerBytesDownloaded` ([UInt64](/core/reference/data-types/int-uint)) — Amount of data fetched into filesystem cache by dedicated background threads. +- `ProfileEvent_CacheWarmerDataPartsDownloaded` ([UInt64](/core/reference/data-types/int-uint)) — Number of data parts that were fully fetched by CacheWarmer. +- `ProfileEvent_IgnoredColdParts` ([UInt64](/core/reference/data-types/int-uint)) — See setting ignore_cold_parts_seconds. Number of times read queries ignored very new parts that weren't pulled into cache by CacheWarmer yet. +- `ProfileEvent_PreferredWarmedUnmergedParts` ([UInt64](/core/reference/data-types/int-uint)) — See setting prefer_warmed_unmerged_parts_seconds. Number of times read queries used outdated pre-merge parts that are in cache instead of merged part that wasn't pulled into cache by CacheWarmer yet. +- `ProfileEvent_PerfCPUCycles` ([UInt64](/core/reference/data-types/int-uint)) — Total cycles. Be wary of what happens during CPU frequency scaling. +- `ProfileEvent_PerfInstructions` ([UInt64](/core/reference/data-types/int-uint)) — Retired instructions. Be careful, these can be affected by various issues, most notably hardware interrupt counts. +- `ProfileEvent_PerfCacheReferences` ([UInt64](/core/reference/data-types/int-uint)) — Cache accesses. Usually, this indicates Last Level Cache accesses, but this may vary depending on your CPU. This may include prefetches and coherency messages; again this depends on the design of your CPU. +- `ProfileEvent_PerfCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Cache misses. Usually this indicates Last Level Cache misses; this is intended to be used in conjunction with the PERFCOUNTHWCACHEREFERENCES event to calculate cache miss rates. +- `ProfileEvent_PerfBranchInstructions` ([UInt64](/core/reference/data-types/int-uint)) — Retired branch instructions. Prior to Linux 2.6.35, this used the wrong event on AMD processors. +- `ProfileEvent_PerfBranchMisses` ([UInt64](/core/reference/data-types/int-uint)) — Mispredicted branch instructions. +- `ProfileEvent_PerfBusCycles` ([UInt64](/core/reference/data-types/int-uint)) — Bus cycles, which can be different from total cycles. +- `ProfileEvent_PerfStalledCyclesFrontend` ([UInt64](/core/reference/data-types/int-uint)) — Stalled cycles during issue. +- `ProfileEvent_PerfStalledCyclesBackend` ([UInt64](/core/reference/data-types/int-uint)) — Stalled cycles during retirement. +- `ProfileEvent_PerfRefCPUCycles` ([UInt64](/core/reference/data-types/int-uint)) — Total cycles; not affected by CPU frequency scaling. +- `ProfileEvent_PerfCPUClock` ([UInt64](/core/reference/data-types/int-uint)) — The CPU clock, a high-resolution per-CPU timer +- `ProfileEvent_PerfTaskClock` ([UInt64](/core/reference/data-types/int-uint)) — A clock count specific to the task that is running +- `ProfileEvent_PerfContextSwitches` ([UInt64](/core/reference/data-types/int-uint)) — Number of context switches +- `ProfileEvent_PerfCPUMigrations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the process has migrated to a new CPU +- `ProfileEvent_PerfAlignmentFaults` ([UInt64](/core/reference/data-types/int-uint)) — Number of alignment faults. These happen when unaligned memory accesses happen; the kernel can handle these but it reduces performance. This happens only on some architectures (never on x86). +- `ProfileEvent_PerfEmulationFaults` ([UInt64](/core/reference/data-types/int-uint)) — Number of emulation faults. The kernel sometimes traps on unimplemented instructions and emulates them for user space. This can negatively impact performance. +- `ProfileEvent_PerfMinEnabledTime` ([UInt64](/core/reference/data-types/int-uint)) — For all events, minimum time that an event was enabled. Used to track event multiplexing influence +- `ProfileEvent_PerfMinEnabledRunningTime` ([UInt64](/core/reference/data-types/int-uint)) — Running time for event with minimum enabled time. Used to track the amount of event multiplexing +- `ProfileEvent_PerfDataTLBReferences` ([UInt64](/core/reference/data-types/int-uint)) — Data TLB references +- `ProfileEvent_PerfDataTLBMisses` ([UInt64](/core/reference/data-types/int-uint)) — Data TLB misses +- `ProfileEvent_PerfInstructionTLBReferences` ([UInt64](/core/reference/data-types/int-uint)) — Instruction TLB references +- `ProfileEvent_PerfInstructionTLBMisses` ([UInt64](/core/reference/data-types/int-uint)) — Instruction TLB misses +- `ProfileEvent_PerfLocalMemoryReferences` ([UInt64](/core/reference/data-types/int-uint)) — Local NUMA node memory reads +- `ProfileEvent_PerfLocalMemoryMisses` ([UInt64](/core/reference/data-types/int-uint)) — Local NUMA node memory read misses +- `ProfileEvent_CannotWriteToWriteBufferDiscard` ([UInt64](/core/reference/data-types/int-uint)) — Number of stack traces dropped by query profiler or signal handler because pipe is full or cannot write to pipe. +- `ProfileEvent_QueryProfilerSignalOverruns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we drop processing of a query profiler signal due to overrun plus the number of signals that OS has not delivered due to overrun. +- `ProfileEvent_QueryProfilerConcurrencyOverruns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times we drop processing of a query profiler signal due to too many concurrent query profilers in other threads, which may indicate overload. +- `ProfileEvent_QueryProfilerRuns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times QueryProfiler had been run. +- `ProfileEvent_QueryProfilerErrors` ([UInt64](/core/reference/data-types/int-uint)) — Invalid memory accesses during asynchronous stack unwinding. +- `ProfileEvent_CreatedLogEntryForMerge` ([UInt64](/core/reference/data-types/int-uint)) — Successfully created log entry to merge parts in ReplicatedMergeTree. +- `ProfileEvent_NotCreatedLogEntryForMerge` ([UInt64](/core/reference/data-types/int-uint)) — Log entry to merge parts in ReplicatedMergeTree is not created due to concurrent log update by another replica. +- `ProfileEvent_CreatedLogEntryForMutation` ([UInt64](/core/reference/data-types/int-uint)) — Successfully created log entry to mutate parts in ReplicatedMergeTree. +- `ProfileEvent_NotCreatedLogEntryForMutation` ([UInt64](/core/reference/data-types/int-uint)) — Log entry to mutate parts in ReplicatedMergeTree is not created due to concurrent log update by another replica. +- `ProfileEvent_S3ReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of GET and HEAD requests to S3 storage. +- `ProfileEvent_S3ReadRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of GET and HEAD requests to S3 storage. +- `ProfileEvent_S3ReadRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of non-throttling errors in GET and HEAD requests to S3 storage. +- `ProfileEvent_S3ReadRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of 429 and 503 errors in GET and HEAD requests to S3 storage. +- `ProfileEvent_S3ReadRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of redirects in GET and HEAD requests to S3 storage. +- `ProfileEvent_S3ReadRequestAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Number of attempts for GET and HEAD requests, including the initial try and any retries, but excluding retries performed internally by the S3 retry strategy +- `ProfileEvent_S3ReadRequestRetryableErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of retryable errors for GET and HEAD requests, excluding retries performed internally by the S3 retry strategy +- `ProfileEvent_S3WriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of POST, DELETE, PUT and PATCH requests to S3 storage. +- `ProfileEvent_S3WriteRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of POST, DELETE, PUT and PATCH requests to S3 storage. +- `ProfileEvent_S3WriteRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of non-throttling errors in POST, DELETE, PUT and PATCH requests to S3 storage. +- `ProfileEvent_S3WriteRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of 429 and 503 errors in POST, DELETE, PUT and PATCH requests to S3 storage. +- `ProfileEvent_S3WriteRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of redirects in POST, DELETE, PUT and PATCH requests to S3 storage. +- `ProfileEvent_S3WriteRequestAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Number of attempts for POST, DELETE, PUT and PATCH requests, including the initial try and any retries, but excluding retries performed internally by the retry strategy +- `ProfileEvent_S3WriteRequestRetryableErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of retryable errors for POST, DELETE, PUT and PATCH requests, excluding retries performed internally by the retry strategy +- `ProfileEvent_DiskS3ReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of GET and HEAD requests to DiskS3 storage. +- `ProfileEvent_DiskS3ReadRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of GET and HEAD requests to DiskS3 storage. +- `ProfileEvent_DiskS3ReadRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of non-throttling errors in GET and HEAD requests to DiskS3 storage. +- `ProfileEvent_DiskS3ReadRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of 429 and 503 errors in GET and HEAD requests to DiskS3 storage. +- `ProfileEvent_DiskS3ReadRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of redirects in GET and HEAD requests to DiskS3 storage. +- `ProfileEvent_DiskS3ReadRequestAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Number of attempts for GET and HEAD requests to DiskS3 storage, including the initial try and any retries, but excluding retries performed internally by the S3 retry strategy +- `ProfileEvent_DiskS3ReadRequestRetryableErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of retryable errors for GET and HEAD requests to DiskS3 storage, excluding retries performed internally by the S3 retry strategy +- `ProfileEvent_DiskS3WriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of POST, DELETE, PUT and PATCH requests to DiskS3 storage. +- `ProfileEvent_DiskS3WriteRequestsCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of POST, DELETE, PUT and PATCH requests to DiskS3 storage. +- `ProfileEvent_DiskS3WriteRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of non-throttling errors in POST, DELETE, PUT and PATCH requests to DiskS3 storage. +- `ProfileEvent_DiskS3WriteRequestsThrottling` ([UInt64](/core/reference/data-types/int-uint)) — Number of 429 and 503 errors in POST, DELETE, PUT and PATCH requests to DiskS3 storage. +- `ProfileEvent_DiskS3WriteRequestsRedirects` ([UInt64](/core/reference/data-types/int-uint)) — Number of redirects in POST, DELETE, PUT and PATCH requests to DiskS3 storage. +- `ProfileEvent_DiskS3WriteRequestAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Number of attempts for POST, DELETE, PUT and PATCH requests to DiskS3 storage, including the initial try and any retries, but excluding retries performed internally by the retry strategy +- `ProfileEvent_DiskS3WriteRequestRetryableErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of retryable errors for POST, DELETE, PUT and PATCH requests to DiskS3 storage, excluding retries performed internally by the retry strategy +- `ProfileEvent_S3DeleteObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API DeleteObject(s) calls. +- `ProfileEvent_S3CopyObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API CopyObject calls. +- `ProfileEvent_S3ListObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API ListObjects calls. +- `ProfileEvent_S3HeadObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API HeadObject calls. +- `ProfileEvent_S3GetObjectTagging` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API GetObjectTagging calls. +- `ProfileEvent_S3CreateMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API CreateMultipartUpload calls. +- `ProfileEvent_S3UploadPartCopy` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API UploadPartCopy calls. +- `ProfileEvent_S3UploadPart` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API UploadPart calls. +- `ProfileEvent_S3AbortMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API AbortMultipartUpload calls. +- `ProfileEvent_S3CompleteMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API CompleteMultipartUpload calls. +- `ProfileEvent_S3PutObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API PutObject calls. +- `ProfileEvent_S3GetObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 API GetObject calls. +- `ProfileEvent_DiskS3DeleteObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API DeleteObject(s) calls. +- `ProfileEvent_DiskS3CopyObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API CopyObject calls. +- `ProfileEvent_DiskS3ListObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API ListObjects calls. +- `ProfileEvent_DiskS3HeadObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API HeadObject calls. +- `ProfileEvent_DiskS3GetObjectTagging` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API GetObjectTagging calls. +- `ProfileEvent_DiskS3CreateMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API CreateMultipartUpload calls. +- `ProfileEvent_DiskS3UploadPartCopy` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API UploadPartCopy calls. +- `ProfileEvent_DiskS3UploadPart` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API UploadPart calls. +- `ProfileEvent_DiskS3AbortMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API AbortMultipartUpload calls. +- `ProfileEvent_DiskS3CompleteMultipartUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API CompleteMultipartUpload calls. +- `ProfileEvent_DiskS3PutObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API PutObject calls. +- `ProfileEvent_DiskS3GetObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of DiskS3 API GetObject calls. +- `ProfileEvent_DiskPlainRewritableAzureDirectoryCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for AzureObjectStorage. +- `ProfileEvent_DiskPlainRewritableAzureDirectoryRemoved` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for AzureObjectStorage. +- `ProfileEvent_DiskPlainRewritableLocalDirectoryCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for LocalObjectStorage. +- `ProfileEvent_DiskPlainRewritableLocalDirectoryRemoved` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for LocalObjectStorage. +- `ProfileEvent_DiskPlainRewritableS3DirectoryCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for S3ObjectStorage. +- `ProfileEvent_DiskPlainRewritableS3DirectoryRemoved` ([UInt64](/core/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for S3ObjectStorage. +- `ProfileEvent_DiskPlainRewritableLegacyLayoutDiskCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of the 'plain_rewritable' disks with legacy layout. +- `ProfileEvent_S3Clients` ([UInt64](/core/reference/data-types/int-uint)) — Number of created S3 clients. +- `ProfileEvent_TinyS3Clients` ([UInt64](/core/reference/data-types/int-uint)) — Number of S3 clients copies which reuse an existing auth provider from another client. +- `ProfileEvent_EngineFileLikeReadFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of files read in table engines working with files (like File/S3/URL/HDFS). +- `ProfileEvent_ReadBufferFromS3Microseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent on reading from S3. +- `ProfileEvent_ReadBufferFromS3InitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent initializing connection to S3. +- `ProfileEvent_ReadBufferFromS3Bytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from S3. +- `ProfileEvent_ReadBufferFromS3RequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while reading from S3. +- `ProfileEvent_WriteBufferFromS3Microseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent on writing to S3. +- `ProfileEvent_WriteBufferFromS3Bytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes written to S3. +- `ProfileEvent_WriteBufferFromS3RequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while writing to S3. +- `ProfileEvent_WriteBufferFromS3WaitInflightLimitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent on waiting while some of the current requests are done when its number reached the limit defined by s3_max_inflight_parts_for_one_file. +- `ProfileEvent_QueryMemoryLimitExceeded` ([UInt64](/core/reference/data-types/int-uint)) — Number of times when memory limit exceeded for query. +- `ProfileEvent_MemoryAllocatedWithoutCheck` ([UInt64](/core/reference/data-types/int-uint)) — Number of times memory has been allocated without checking for memory constraints. +- `ProfileEvent_MemoryAllocatedWithoutCheckBytes` ([UInt64](/core/reference/data-types/int-uint)) — Amount of bytes that has been allocated without checking for memory constraints. +- `ProfileEvent_AzureGetObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure API GetObject calls. +- `ProfileEvent_AzureUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API Upload calls +- `ProfileEvent_AzureStageBlock` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API StageBlock calls +- `ProfileEvent_AzureCommitBlockList` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API CommitBlockList calls +- `ProfileEvent_AzureCopyObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API CopyObject calls +- `ProfileEvent_AzureDeleteObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API DeleteObject(s) calls. +- `ProfileEvent_AzureListObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API ListObjects calls. +- `ProfileEvent_AzureGetProperties` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API GetProperties calls. +- `ProfileEvent_AzureCreateContainer` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API CreateContainer calls. +- `ProfileEvent_DiskAzureGetObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure API GetObject calls. +- `ProfileEvent_DiskAzureUpload` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API Upload calls +- `ProfileEvent_DiskAzureStageBlock` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API StageBlock calls +- `ProfileEvent_DiskAzureCommitBlockList` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CommitBlockList calls +- `ProfileEvent_DiskAzureCopyObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CopyObject calls +- `ProfileEvent_DiskAzureListObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API ListObjects calls. +- `ProfileEvent_DiskAzureDeleteObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of Azure blob storage API DeleteObject(s) calls. +- `ProfileEvent_DiskAzureGetProperties` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API GetProperties calls. +- `ProfileEvent_DiskAzureCreateContainer` ([UInt64](/core/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CreateContainer calls. +- `ProfileEvent_ReadBufferFromAzureMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent on reading from Azure. +- `ProfileEvent_ReadBufferFromAzureInitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent initializing connection to Azure. +- `ProfileEvent_ReadBufferFromAzureBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from Azure. +- `ProfileEvent_ReadBufferFromAzureRequestsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions while reading from Azure +- `ProfileEvent_CachedReadBufferReadFromCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the read from filesystem cache hit the cache. +- `ProfileEvent_CachedReadBufferReadFromCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the read from filesystem cache miss the cache. +- `ProfileEvent_CachedReadBufferReadFromSourceMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time reading from filesystem cache source (from remote filesystem, etc) +- `ProfileEvent_CachedReadBufferWaitReadBufferMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spend waiting for internal read buffer (includes cache waiting) +- `ProfileEvent_CachedReadBufferPredownloadedFromSourceMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time reading from filesystem cache source for predownload (from remote filesystem, etc) +- `ProfileEvent_CachedReadBufferReadFromCacheMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time reading from filesystem cache +- `ProfileEvent_CachedReadBufferReadFromSourceBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from filesystem cache source (from remote fs, etc) +- `ProfileEvent_CachedReadBufferPredownloadedFromSourceBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from filesystem cache source for predownload (from remote fs, etc) +- `ProfileEvent_CachedReadBufferReadFromCacheBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from filesystem cache +- `ProfileEvent_CachedReadBufferPredownloadedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from filesystem cache source. Cache segments are read from left to right as a whole, it might be that we need to predownload some part of the segment irrelevant for the current task just to get to the needed data +- `ProfileEvent_CachedReadBufferCacheWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes written from source (remote fs, etc) to filesystem cache +- `ProfileEvent_CachedReadBufferCacheWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent writing data into filesystem cache +- `ProfileEvent_CachedReadBufferCreateBufferMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Prepare buffer time +- `ProfileEvent_CachedWriteBufferCacheWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes written from source (remote fs, etc) to filesystem cache +- `ProfileEvent_CachedWriteBufferCacheWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent writing data into filesystem cache +- `ProfileEvent_FilesystemCacheLoadMetadataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent loading filesystem cache metadata +- `ProfileEvent_FilesystemCacheEvictedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes evicted from filesystem cache +- `ProfileEvent_FilesystemCacheCreatedKeyDirectories` ([UInt64](/core/reference/data-types/int-uint)) — Number of created key directories +- `ProfileEvent_FilesystemCacheEvictedFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments evicted from filesystem cache +- `ProfileEvent_FilesystemCacheEvictedFileSegmentsDuringPriorityIncrease` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments evicted from filesystem cache when increasing priority of file segments (Applies to SLRU cache policy) +- `ProfileEvent_FilesystemCacheBackgroundDownloadQueuePush` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments sent for background download in filesystem cache +- `ProfileEvent_FilesystemCacheEvictionSkippedFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in unreleasable state +- `ProfileEvent_FilesystemCacheEvictionSkippedEvictingFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in evicting state +- `ProfileEvent_FilesystemCacheEvictionSkippedMovingFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in moving state +- `ProfileEvent_FilesystemCacheEvictionTries` ([UInt64](/core/reference/data-types/int-uint)) — Number of filesystem cache eviction attempts +- `ProfileEvent_FilesystemCacheEvictionReusedIterator` ([UInt64](/core/reference/data-types/int-uint)) — Number of filesystem cache iterator reusing +- `ProfileEvent_FilesystemCacheLockKeyMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock cache key time +- `ProfileEvent_FilesystemCacheLockMetadataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock filesystem cache metadata time +- `ProfileEvent_FilesystemCachePriorityWriteLockMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock filesystem cache time for write to priority queue +- `ProfileEvent_FilesystemCachePriorityReadLockMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock filesystem cache time for read in priority queue +- `ProfileEvent_FilesystemCacheStateLockMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock filesystem cache time for state lock +- `ProfileEvent_FilesystemCacheReserveMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache space reservation time +- `ProfileEvent_FilesystemCacheReserveAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache space reservation attempt +- `ProfileEvent_FilesystemCacheEvictMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache eviction time +- `ProfileEvent_FilesystemCacheGetOrSetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache getOrSet() time +- `ProfileEvent_FilesystemCacheGetMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache get() time +- `ProfileEvent_FilesystemCacheBackgroundEvictedFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments evicted by background thread +- `ProfileEvent_FilesystemCacheBackgroundEvictedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes evicted by background thread +- `ProfileEvent_FilesystemCacheCheckCorrectness` ([UInt64](/core/reference/data-types/int-uint)) — Number of times FileCache::assertCacheCorrectness was called +- `ProfileEvent_FilesystemCacheCheckCorrectnessMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How much time does FileCache::assertCacheCorrectness takes +- `ProfileEvent_FileSegmentWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Wait on DOWNLOADING state +- `ProfileEvent_FileSegmentCompleteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Duration of FileSegment::complete() in filesystem cache +- `ProfileEvent_FileSegmentLockMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Lock file segment time +- `ProfileEvent_FileSegmentWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — File segment write() time +- `ProfileEvent_FileSegmentIncreasePriorityMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — File segment increase priority time +- `ProfileEvent_FileSegmentRemoveMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — File segment remove() time +- `ProfileEvent_FileSegmentHolderCompleteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — File segments holder complete() time +- `ProfileEvent_FileSegmentFailToIncreasePriority` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the priority was not increased due to a high contention on the cache lock +- `ProfileEvent_FilesystemCacheFailToReserveSpaceBecauseOfLockContention` ([UInt64](/core/reference/data-types/int-uint)) — Number of times space reservation was skipped due to a high contention on the cache lock +- `ProfileEvent_FilesystemCacheFailToReserveSpaceBecauseOfCacheResize` ([UInt64](/core/reference/data-types/int-uint)) — Number of times space reservation was skipped due to the cache is being resized +- `ProfileEvent_FilesystemCacheHoldFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache file segments count, which were hold +- `ProfileEvent_FilesystemCacheUnusedHoldFileSegments` ([UInt64](/core/reference/data-types/int-uint)) — Filesystem cache file segments count, which were hold, but not used (because of seek or LIMIT n, etc) +- `ProfileEvent_FilesystemCacheFreeSpaceKeepingThreadRun` ([UInt64](/core/reference/data-types/int-uint)) — Number of times background thread executed free space keeping job +- `ProfileEvent_FilesystemCacheFreeSpaceKeepingThreadWorkMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time for which background thread executed free space keeping job +- `ProfileEvent_FilesystemCacheFailedEvictionCandidates` ([UInt64](/core/reference/data-types/int-uint)) — Number of file segments which unexpectedly failed to be evicted during dynamic filesystem cache eviction +- `ProfileEvent_RemoteFSSeeks` ([UInt64](/core/reference/data-types/int-uint)) — Total number of seeks for async buffer +- `ProfileEvent_RemoteFSPrefetches` ([UInt64](/core/reference/data-types/int-uint)) — Number of prefetches made with asynchronous reading from remote filesystem +- `ProfileEvent_RemoteFSCancelledPrefetches` ([UInt64](/core/reference/data-types/int-uint)) — Number of cancelled prefecthes (because of seek) +- `ProfileEvent_RemoteFSUnusedPrefetches` ([UInt64](/core/reference/data-types/int-uint)) — Number of prefetches pending at buffer destruction +- `ProfileEvent_RemoteFSPrefetchedReads` ([UInt64](/core/reference/data-types/int-uint)) — Number of reads from prefecthed buffer +- `ProfileEvent_RemoteFSPrefetchedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes from prefecthed buffer +- `ProfileEvent_RemoteFSUnprefetchedReads` ([UInt64](/core/reference/data-types/int-uint)) — Number of reads from unprefetched buffer +- `ProfileEvent_RemoteFSUnprefetchedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes from unprefetched buffer +- `ProfileEvent_RemoteFSLazySeeks` ([UInt64](/core/reference/data-types/int-uint)) — Number of lazy seeks +- `ProfileEvent_RemoteFSSeeksWithReset` ([UInt64](/core/reference/data-types/int-uint)) — Number of seeks which lead to a new connection +- `ProfileEvent_RemoteFSBuffers` ([UInt64](/core/reference/data-types/int-uint)) — Number of buffers created for asynchronous reading from remote filesystem +- `ProfileEvent_MergeTreePrefetchedReadPoolInit` ([UInt64](/core/reference/data-types/int-uint)) — Time spent preparing tasks in MergeTreePrefetchedReadPool +- `ProfileEvent_WaitPrefetchTaskMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spend waiting for prefetched reader +- `ProfileEvent_ThreadpoolReaderTaskMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent getting the data in asynchronous reading +- `ProfileEvent_ThreadpoolReaderPrepareMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent on preparation (e.g. call to reader seek() method) +- `ProfileEvent_ThreadpoolReaderReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from a threadpool task in asynchronous reading +- `ProfileEvent_ThreadpoolReaderSubmit` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from a threadpool task in asynchronous reading +- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronously` ([UInt64](/core/reference/data-types/int-uint)) — How many times we haven't scheduled a task on the thread pool and read synchronously instead +- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronouslyBytes` ([UInt64](/core/reference/data-types/int-uint)) — How many bytes were read synchronously +- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronouslyMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How much time we spent reading synchronously +- `ProfileEvent_ThreadpoolReaderSubmitLookupInCacheMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How much time we spent checking if content is cached +- `ProfileEvent_AsynchronousReaderIgnoredBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes ignored during asynchronous reading +- `ProfileEvent_ReadBufferSeekCancelConnection` ([UInt64](/core/reference/data-types/int-uint)) — Number of seeks which lead to new connection (s3, http) +- `ProfileEvent_SleepFunctionCalls` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a sleep function (sleep, sleepEachRow) has been called. +- `ProfileEvent_SleepFunctionMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time set to sleep in a sleep function (sleep, sleepEachRow). +- `ProfileEvent_SleepFunctionElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent sleeping in a sleep function (sleep, sleepEachRow). +- `ProfileEvent_ThreadPoolReaderPageCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the read inside ThreadPoolReader was done from the page cache. +- `ProfileEvent_ThreadPoolReaderPageCacheHitBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read inside ThreadPoolReader when it was done from the page cache. +- `ProfileEvent_ThreadPoolReaderPageCacheHitElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent reading data from page cache in ThreadPoolReader. +- `ProfileEvent_ThreadPoolReaderPageCacheMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the read inside ThreadPoolReader was not done from page cache and was hand off to thread pool. +- `ProfileEvent_ThreadPoolReaderPageCacheMissBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes read inside ThreadPoolReader when read was not done from page cache and was hand off to thread pool. +- `ProfileEvent_ThreadPoolReaderPageCacheMissElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent reading data inside the asynchronous job in ThreadPoolReader - when read was not done from the page cache. +- `ProfileEvent_AsynchronousReadWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in waiting for asynchronous reads in asynchronous local read. +- `ProfileEvent_SynchronousReadWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in waiting for synchronous reads in asynchronous local read. +- `ProfileEvent_AsynchronousRemoteReadWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in waiting for asynchronous remote reads. +- `ProfileEvent_SynchronousRemoteReadWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in waiting for synchronous remote reads. +- `ProfileEvent_ExternalDataSourceLocalCacheReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Bytes read from local cache buffer in RemoteReadBufferCache +- `ProfileEvent_MainConfigLoads` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the main configuration was reloaded. +- `ProfileEvent_AggregationPreallocatedElementsInHashTables` ([UInt64](/core/reference/data-types/int-uint)) — How many elements were preallocated in hash tables for aggregation. +- `ProfileEvent_AggregationHashTablesInitializedAsTwoLevel` ([UInt64](/core/reference/data-types/int-uint)) — How many hash tables were inited as two-level for aggregation. +- `ProfileEvent_AggregationOptimizedEqualRangesOfKeys` ([UInt64](/core/reference/data-types/int-uint)) — For how many blocks optimization of equal ranges of keys was applied +- `ProfileEvent_HashJoinPreallocatedElementsInHashTables` ([UInt64](/core/reference/data-types/int-uint)) — How many elements were preallocated in hash tables for hash join. +- `ProfileEvent_MetadataFromKeeperCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an object storage metadata request was answered from cache without making request to Keeper +- `ProfileEvent_MetadataFromKeeperCacheMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an object storage metadata request had to be answered from Keeper +- `ProfileEvent_MetadataFromKeeperCacheTooManyInvalidated` ([UInt64](/core/reference/data-types/int-uint)) — Number of times filesystem cache returned too many invalidated entries +- `ProfileEvent_MetadataFromKeeperCacheUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent in updating the cache including waiting for responses from Keeper +- `ProfileEvent_MetadataFromKeeperUpdateCacheOneLevel` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a cache update for one level of directory tree was done +- `ProfileEvent_MetadataFromKeeperTransactionCommit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times metadata transaction commit was attempted +- `ProfileEvent_MetadataFromKeeperTransactionCommitRetry` ([UInt64](/core/reference/data-types/int-uint)) — Number of times metadata transaction commit was retried +- `ProfileEvent_MetadataFromKeeperCleanupTransactionCommit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times metadata transaction commit for deleted objects cleanup was attempted +- `ProfileEvent_MetadataFromKeeperCleanupTransactionCommitRetry` ([UInt64](/core/reference/data-types/int-uint)) — Number of times metadata transaction commit for deleted objects cleanup was retried +- `ProfileEvent_MetadataFromKeeperOperations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a request was made to Keeper +- `ProfileEvent_MetadataFromKeeperIndividualOperations` ([UInt64](/core/reference/data-types/int-uint)) — Number of paths read or written by single or multi requests to Keeper +- `ProfileEvent_MetadataFromKeeperIndividualOperationsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spend during single or multi requests to Keeper +- `ProfileEvent_MetadataFromKeeperReconnects` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a reconnect to Keeper was done +- `ProfileEvent_MetadataFromKeeperBackgroundCleanupObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a old deleted object clean up was performed by background task +- `ProfileEvent_MetadataFromKeeperBackgroundCleanupTransactions` ([UInt64](/core/reference/data-types/int-uint)) — Number of times old transaction idempotency token was cleaned up by background task +- `ProfileEvent_MetadataFromKeeperBackgroundCleanupBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an empty blob layout part was cleaned up by background task +- `ProfileEvent_MetadataFromKeeperBackgroundCleanupErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of times an error was encountered in background cleanup task +- `ProfileEvent_BlobKillerThreadRuns` ([UInt64](/core/reference/data-types/int-uint)) — Number of BlobKiller thread executes +- `ProfileEvent_BlobKillerThreadLockedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs returned from metadata storage +- `ProfileEvent_BlobKillerThreadRemoveTasks` ([UInt64](/core/reference/data-types/int-uint)) — Number of remove tasks created by BlobKiller +- `ProfileEvent_BlobKillerThreadRemovedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs removed by BlobKiller +- `ProfileEvent_BlobKillerThreadRecordedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs which removal by BlobKiller was recorded in metadata storage +- `ProfileEvent_BlobKillerThreadLockBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs lock errors occurred during BlobKiller execution +- `ProfileEvent_BlobKillerThreadRemoveBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs removal errors occurred during BlobKiller execution +- `ProfileEvent_BlobKillerThreadRecordBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs recording errors occurred during BlobKiller execution +- `ProfileEvent_BlobCopierThreadRuns` ([UInt64](/core/reference/data-types/int-uint)) — Number of BlobCopier thread executes +- `ProfileEvent_BlobCopierThreadLockedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs returned from metadata storage +- `ProfileEvent_BlobCopierThreadReplicatedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs replicated by BlobCopier +- `ProfileEvent_BlobCopierThreadRecordedBlobs` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs which replication by BlobCopier was recorded in metadata storage +- `ProfileEvent_BlobCopierThreadLockBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs lock errors occurred during BlobCopier execution +- `ProfileEvent_BlobCopierThreadReplicateBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs replication errors occurred during BlobCopier execution +- `ProfileEvent_BlobCopierThreadRecordBlobsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of blobs recording errors occurred during BlobCopier execution +- `ProfileEvent_SharedMergeTreeMetadataCacheHintLoadedFromCache` ([UInt64](/core/reference/data-types/int-uint)) — Number of times metadata cache hint was found without going to Keeper +- `ProfileEvent_KafkaRebalanceRevocations` ([UInt64](/core/reference/data-types/int-uint)) — Number of partition revocations (the first stage of consumer group rebalance) +- `ProfileEvent_KafkaRebalanceAssignments` ([UInt64](/core/reference/data-types/int-uint)) — Number of partition assignments (the final stage of consumer group rebalance) +- `ProfileEvent_KafkaRebalanceErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed consumer group rebalances +- `ProfileEvent_KafkaMessagesPolled` ([UInt64](/core/reference/data-types/int-uint)) — Number of Kafka messages polled from librdkafka to ClickHouse +- `ProfileEvent_KafkaMessagesRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of Kafka messages already processed by ClickHouse +- `ProfileEvent_KafkaMessagesFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of Kafka messages ClickHouse failed to parse +- `ProfileEvent_KafkaRowsRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows parsed from Kafka messages +- `ProfileEvent_KafkaRowsRejected` ([UInt64](/core/reference/data-types/int-uint)) — Number of parsed rows which were later rejected (due to rebalances / errors or similar reasons). Those rows will be consumed again after the rebalance. +- `ProfileEvent_KafkaDirectReads` ([UInt64](/core/reference/data-types/int-uint)) — Number of direct selects from Kafka tables since server start +- `ProfileEvent_KafkaBackgroundReads` ([UInt64](/core/reference/data-types/int-uint)) — Number of background reads populating materialized views from Kafka since server start +- `ProfileEvent_KafkaCommits` ([UInt64](/core/reference/data-types/int-uint)) — Number of successful commits of consumed offsets to Kafka (normally should be the same as KafkaBackgroundReads) +- `ProfileEvent_KafkaCommitFailures` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed commits of consumed offsets to Kafka (usually is a sign of some data duplication) +- `ProfileEvent_KafkaConsumerErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of errors reported by librdkafka during polls +- `ProfileEvent_KafkaMVNotReady` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed attempts to stream data to a materialized view that is not ready +- `ProfileEvent_KafkaWrites` ([UInt64](/core/reference/data-types/int-uint)) — Number of writes (inserts) to Kafka tables +- `ProfileEvent_KafkaRowsWritten` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows inserted into Kafka tables +- `ProfileEvent_KafkaProducerFlushes` ([UInt64](/core/reference/data-types/int-uint)) — Number of explicit flushes to Kafka producer +- `ProfileEvent_KafkaMessagesProduced` ([UInt64](/core/reference/data-types/int-uint)) — Number of messages produced to Kafka +- `ProfileEvent_KafkaProducerErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of errors during producing the messages to Kafka +- `ProfileEvent_ScalarSubqueriesGlobalCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was done using the global cache +- `ProfileEvent_ScalarSubqueriesLocalCacheHit` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was done using the local cache +- `ProfileEvent_ScalarSubqueriesCacheMiss` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was not cached and had to be calculated completely +- `ProfileEvent_SchemaInferenceCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the requested source is found in schema cache +- `ProfileEvent_SchemaInferenceCacheSchemaHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the schema is found in schema cache during schema inference +- `ProfileEvent_SchemaInferenceCacheNumRowsHits` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the number of rows is found in schema cache during count from files +- `ProfileEvent_SchemaInferenceCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the requested source is not in schema cache +- `ProfileEvent_SchemaInferenceCacheSchemaMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the requested source is in cache but the schema is not in cache during schema inference +- `ProfileEvent_SchemaInferenceCacheNumRowsMisses` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the requested source is in cache but the number of rows is not in cache while count from files +- `ProfileEvent_SchemaInferenceCacheEvictions` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a schema from cache was evicted due to overflow +- `ProfileEvent_SchemaInferenceCacheInvalidations` ([UInt64](/core/reference/data-types/int-uint)) — Number of times a schema in cache became invalid due to changes in data +- `ProfileEvent_KeeperPacketsSent` ([UInt64](/core/reference/data-types/int-uint)) — Packets sent by keeper server +- `ProfileEvent_KeeperPacketsReceived` ([UInt64](/core/reference/data-types/int-uint)) — Packets received by keeper server +- `ProfileEvent_KeeperRequestTotal` ([UInt64](/core/reference/data-types/int-uint)) — Total requests number on keeper server +- `ProfileEvent_KeeperRequestTotalWithSubrequests` ([UInt64](/core/reference/data-types/int-uint)) — Total requests number on keeper server, counting each subrequest within a multi request +- `ProfileEvent_KeeperLatency` ([UInt64](/core/reference/data-types/int-uint)) — Keeper latency +- `ProfileEvent_KeeperTotalElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Keeper total latency for a single request +- `ProfileEvent_KeeperProcessElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Keeper commit latency for a single request +- `ProfileEvent_KeeperPreprocessElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Keeper preprocessing latency for a single request +- `ProfileEvent_KeeperStorageLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper storage lock +- `ProfileEvent_KeeperStorageSharedLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper storage shared lock +- `ProfileEvent_KeeperChangelogLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper changelog lock +- `ProfileEvent_KeeperServerWriteLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper server write lock +- `ProfileEvent_KeeperSessionCallbackLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper session callback lock +- `ProfileEvent_KeeperReadRequestQueueLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper read request queue lock +- `ProfileEvent_KeeperProcessAndResponsesLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper process and responses lock +- `ProfileEvent_KeeperCommitWaitElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting for certain log to be committed +- `ProfileEvent_KeeperBatchMaxCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the size of batch was limited by the amount +- `ProfileEvent_KeeperBatchMaxTotalSize` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the size of batch was limited by the total bytes size +- `ProfileEvent_KeeperReadBatchCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of read request batches processed by Keeper +- `ProfileEvent_KeeperReadBatchTotalRequests` ([UInt64](/core/reference/data-types/int-uint)) — Total number of read requests processed in batches by Keeper +- `ProfileEvent_KeeperCommits` ([UInt64](/core/reference/data-types/int-uint)) — Number of successful commits +- `ProfileEvent_KeeperCommitsFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed commits +- `ProfileEvent_KeeperSnapshotCreations` ([UInt64](/core/reference/data-types/int-uint)) — Number of snapshots creations +- `ProfileEvent_KeeperSnapshotCreationsFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed snapshot creations +- `ProfileEvent_KeeperSnapshotApplys` ([UInt64](/core/reference/data-types/int-uint)) — Number of snapshot applying +- `ProfileEvent_KeeperSnapshotApplysFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed snapshot applying +- `ProfileEvent_KeeperReadSnapshot` ([UInt64](/core/reference/data-types/int-uint)) — Number of completed snapshot reads +- `ProfileEvent_KeeperReadSnapshotObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of snapshot objects sent to followers +- `ProfileEvent_KeeperReadSnapshotFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed snapshot reads +- `ProfileEvent_KeeperSnapshotRemoteLoaderErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of remote read errors in RemoteSnapshotLoader while serving a snapshot to a follower +- `ProfileEvent_KeeperSaveSnapshotObject` ([UInt64](/core/reference/data-types/int-uint)) — Number of snapshot objects received from leader +- `ProfileEvent_KeeperSaveSnapshotFailed` ([UInt64](/core/reference/data-types/int-uint)) — Number of failed snapshot saves +- `ProfileEvent_KeeperSaveSnapshot` ([UInt64](/core/reference/data-types/int-uint)) — Number of snapshot save +- `ProfileEvent_KeeperCreateRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of create requests +- `ProfileEvent_KeeperRemoveRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of remove requests +- `ProfileEvent_KeeperSetRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of set requests +- `ProfileEvent_KeeperReconfigRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of reconfig requests +- `ProfileEvent_KeeperCheckRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of check requests +- `ProfileEvent_KeeperMultiRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of multi requests +- `ProfileEvent_KeeperMultiReadRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of multi read requests +- `ProfileEvent_KeeperGetRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of get requests +- `ProfileEvent_KeeperListRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of list requests +- `ProfileEvent_KeeperListRecursiveRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of get children recursive requests +- `ProfileEvent_KeeperExistsRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of exists requests +- `ProfileEvent_KeeperSetWatchesRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of set watches requests +- `ProfileEvent_KeeperAddWatchRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of add watches requests +- `ProfileEvent_KeeperRemoveWatchRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of remove watches requests +- `ProfileEvent_KeeperCheckWatchRequest` ([UInt64](/core/reference/data-types/int-uint)) — Number of remove watches requests +- `ProfileEvent_KeeperRequestRejectedDueToSoftMemoryLimitCount` ([UInt64](/core/reference/data-types/int-uint)) — Number requests that have been rejected due to soft memory limit exceeded +- `ProfileEvent_KeeperStaleRequestsSkipped` ([UInt64](/core/reference/data-types/int-uint)) — Number of Keeper requests skipped because the session is no longer live +- `ProfileEvent_KeeperLiveSessionsLockWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent waiting to acquire Keeper live sessions lock +- `ProfileEvent_OverflowBreak` ([UInt64](/core/reference/data-types/int-uint)) — Number of times, data processing was cancelled by query complexity limitation with setting '*_overflow_mode' = 'break' and the result is incomplete. +- `ProfileEvent_OverflowThrow` ([UInt64](/core/reference/data-types/int-uint)) — Number of times, data processing was cancelled by query complexity limitation with setting '*_overflow_mode' = 'throw' and exception was thrown. +- `ProfileEvent_OverflowAny` ([UInt64](/core/reference/data-types/int-uint)) — Number of times approximate GROUP BY was in effect: when aggregation was performed only on top of first 'max_rows_to_group_by' unique keys and other keys were ignored due to 'group_by_overflow_mode' = 'any'. +- `ProfileEvent_S3QueueSetFileProcessingMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to set file as processing +- `ProfileEvent_S3QueueSetFileProcessedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to set file as processed +- `ProfileEvent_S3QueueSetFileFailedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to set file as failed +- `ProfileEvent_ObjectStorageQueueFailedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of files which failed to be processed +- `ProfileEvent_ObjectStorageQueueProcessedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of files which were processed +- `ProfileEvent_ObjectStorageQueueCleanupMaxSetSizeOrTTLMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to set file as failed +- `ProfileEvent_ObjectStorageQueuePullMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to read file data +- `ProfileEvent_ObjectStorageQueueFailedToBatchSetProcessing` ([UInt64](/core/reference/data-types/int-uint)) — Number of times batched set processing request failed +- `ProfileEvent_ObjectStorageQueueTrySetProcessingRequests` ([UInt64](/core/reference/data-types/int-uint)) — The number of times we tried to make set processing request +- `ProfileEvent_ObjectStorageQueueTrySetProcessingSucceeded` ([UInt64](/core/reference/data-types/int-uint)) — The number of times we successfully set file as processing +- `ProfileEvent_ObjectStorageQueueTrySetProcessingFailed` ([UInt64](/core/reference/data-types/int-uint)) — The number of times we unsuccessfully set file as processing +- `ProfileEvent_ObjectStorageQueueListedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of listed files in StorageS3(Azure)Queue +- `ProfileEvent_ObjectStorageQueueFilteredFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of filtered files in StorageS3(Azure)Queue +- `ProfileEvent_ObjectStorageQueueReadFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of read files (not equal to the number of actually inserted files) +- `ProfileEvent_ObjectStorageQueueReadRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of read rows (not equal to the number of actually inserted rows) +- `ProfileEvent_ObjectStorageQueueReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of read bytes (not equal to the number of actually inserted bytes) +- `ProfileEvent_ObjectStorageQueueExceptionsDuringRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions during read in S3(Azure)Queue +- `ProfileEvent_ObjectStorageQueueExceptionsDuringInsert` ([UInt64](/core/reference/data-types/int-uint)) — Number of exceptions during insert in S3(Azure)Queue +- `ProfileEvent_ObjectStorageQueueMovedObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of objects moved as part of after_processing = move +- `ProfileEvent_ObjectStorageQueueRemovedObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of objects removed as part of after_processing = delete +- `ProfileEvent_ObjectStorageQueueTaggedObjects` ([UInt64](/core/reference/data-types/int-uint)) — Number of objects tagged as part of after_processing = tag +- `ProfileEvent_ObjectStorageQueueInsertIterations` ([UInt64](/core/reference/data-types/int-uint)) — Number of insert iterations +- `ProfileEvent_ObjectStorageQueueCommitRequests` ([UInt64](/core/reference/data-types/int-uint)) — Number of keeper requests to commit files as either failed or processed +- `ProfileEvent_ObjectStorageQueueSuccessfulCommits` ([UInt64](/core/reference/data-types/int-uint)) — Number of successful keeper commits +- `ProfileEvent_ObjectStorageQueueUnsuccessfulCommits` ([UInt64](/core/reference/data-types/int-uint)) — Number of unsuccessful keeper commits +- `ProfileEvent_ObjectStorageQueueCancelledFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number cancelled files in StorageS3(Azure)Queue +- `ProfileEvent_ObjectStorageQueueProcessedRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of processed rows in StorageS3(Azure)Queue +- `ProfileEvent_ObjectStorageListedObjects` ([UInt64](/core/reference/data-types/int-uint)) — Total objects returned by object storage listing API before any filtering. +- `ProfileEvent_ObjectStorageGlobFilteredObjects` ([UInt64](/core/reference/data-types/int-uint)) — Objects that did not match the glob or regex pattern and were skipped during listing. +- `ProfileEvent_ObjectStoragePredicateFilteredObjects` ([UInt64](/core/reference/data-types/int-uint)) — Objects removed by virtual column predicate filtering on _path/_file. +- `ProfileEvent_ObjectStorageReadObjects` ([UInt64](/core/reference/data-types/int-uint)) — Objects actually opened for reading by the object storage source. +- `ProfileEvent_ServerStartupMilliseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time elapsed from starting server to listening to sockets in milliseconds +- `ProfileEvent_IOUringSQEsSubmitted` ([UInt64](/core/reference/data-types/int-uint)) — Total number of io_uring SQEs submitted +- `ProfileEvent_IOUringSQEsResubmitsAsync` ([UInt64](/core/reference/data-types/int-uint)) — Total number of asynchronous io_uring SQE resubmits performed +- `ProfileEvent_IOUringSQEsResubmitsSync` ([UInt64](/core/reference/data-types/int-uint)) — Total number of synchronous io_uring SQE resubmits performed +- `ProfileEvent_IOUringCQEsCompleted` ([UInt64](/core/reference/data-types/int-uint)) — Total number of successfully completed io_uring CQEs +- `ProfileEvent_IOUringCQEsFailed` ([UInt64](/core/reference/data-types/int-uint)) — Total number of completed io_uring CQEs with failures +- `ProfileEvent_BackupsOpenedForRead` ([UInt64](/core/reference/data-types/int-uint)) — Number of backups opened for reading +- `ProfileEvent_BackupsOpenedForWrite` ([UInt64](/core/reference/data-types/int-uint)) — Number of backups opened for writing +- `ProfileEvent_BackupsOpenedForUnlock` ([UInt64](/core/reference/data-types/int-uint)) — Number of backups opened for unlocking +- `ProfileEvent_BackupReadMetadataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent reading backup metadata from .backup file +- `ProfileEvent_BackupWriteMetadataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent writing backup metadata to .backup file +- `ProfileEvent_BackupEntriesCollectorMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent making backup entries +- `ProfileEvent_BackupEntriesCollectorForTablesDataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent making backup entries for tables data +- `ProfileEvent_BackupEntriesCollectorRunPostTasksMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent running post tasks after making backup entries +- `ProfileEvent_BackupPreparingFileInfosMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent preparing file infos for backup entries +- `ProfileEvent_BackupReadLocalFilesToCalculateChecksums` ([UInt64](/core/reference/data-types/int-uint)) — Number of files read locally to calculate checksums for backup entries +- `ProfileEvent_BackupReadLocalBytesToCalculateChecksums` ([UInt64](/core/reference/data-types/int-uint)) — Total size of files read locally to calculate checksums for backup entries +- `ProfileEvent_BackupReadRemoteFilesToCalculateChecksums` ([UInt64](/core/reference/data-types/int-uint)) — Number of files read from remote disks to calculate checksums for backup entries +- `ProfileEvent_BackupReadRemoteBytesToCalculateChecksums` ([UInt64](/core/reference/data-types/int-uint)) — Total size of files read from remote disks to calculate checksums for backup entries +- `ProfileEvent_BackupLockFileReads` ([UInt64](/core/reference/data-types/int-uint)) — How many times the '.lock' file was read while making backup +- `ProfileEvent_RestorePartsSkippedFiles` ([UInt64](/core/reference/data-types/int-uint)) — Number of files skipped while restoring parts +- `ProfileEvent_RestorePartsSkippedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total size of files skipped while restoring parts +- `ProfileEvent_ReadTaskRequestsReceived` ([UInt64](/core/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the initiator server side. +- `ProfileEvent_MergeTreeReadTaskRequestsReceived` ([UInt64](/core/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the initiator server side. +- `ProfileEvent_ReadTaskRequestsSent` ([UInt64](/core/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the remote server side. +- `ProfileEvent_MergeTreeReadTaskRequestsSent` ([UInt64](/core/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the remote server side. +- `ProfileEvent_MergeTreeAllRangesAnnouncementsSent` ([UInt64](/core/reference/data-types/int-uint)) — The number of announcements sent from the remote server to the initiator server about the set of data parts (for MergeTree tables). Measured on the remote server side. +- `ProfileEvent_ReadTaskRequestsSentElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the remote server side. +- `ProfileEvent_MergeTreeReadTaskRequestsSentElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the remote server side. +- `ProfileEvent_MergeTreeAllRangesAnnouncementsSentElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in sending the announcement from the remote server to the initiator server about the set of data parts (for MergeTree tables). Measured on the remote server side. +- `ProfileEvent_MergerMutatorsGetPartsForMergeElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to take data parts snapshot to build ranges from them. +- `ProfileEvent_MergerMutatorPrepareRangesForMergeElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to prepare parts ranges which can be merged according to merge predicate. +- `ProfileEvent_MergerMutatorSelectPartsForMergeElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent to select parts from ranges which can be merged. +- `ProfileEvent_MergerMutatorRangesForMergeCount` ([UInt64](/core/reference/data-types/int-uint)) — Amount of candidate ranges for merge +- `ProfileEvent_MergerMutatorPartsInRangesForMergeCount` ([UInt64](/core/reference/data-types/int-uint)) — Amount of candidate parts for merge +- `ProfileEvent_MergerMutatorSelectRangePartsCount` ([UInt64](/core/reference/data-types/int-uint)) — Amount of parts in selected range for merge +- `ProfileEvent_ConnectionPoolIsFullMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent waiting for a slot in connection pool. +- `ProfileEvent_AsyncLoaderWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting for async loader jobs. +- `ProfileEvent_DistrCacheServerSwitches` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of server switches between distributed cache servers in read/write-through cache +- `ProfileEvent_DistrCacheReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent reading from distributed cache +- `ProfileEvent_DistrCacheFallbackReadMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spend reading from fallback buffer instead of distributed cache +- `ProfileEvent_DistrCachePrecomputeRangesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent to precompute read ranges +- `ProfileEvent_DistrCacheNextImplMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spend in ReadBufferFromDistributedCache::nextImpl +- `ProfileEvent_DistrCacheStartRangeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent to start a new read range with distributed cache +- `ProfileEvent_DistrCacheRangeChange` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we changed read range because of seek/last_position change +- `ProfileEvent_DistrCacheRangeResetBackward` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we reset read range because of seek/last_position change +- `ProfileEvent_DistrCacheRangeResetForward` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we reset read range because of seek/last_position change +- `ProfileEvent_DistrCacheReconnectsAfterTimeout` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. The number of reconnects after timeout +- `ProfileEvent_DistrCacheServerUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache event. The number of server switches during read or write because the hash-chosen server changed (e.g. due to server deregistration) +- `ProfileEvent_DistrCacheReadErrors` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of distributed cache errors during read +- `ProfileEvent_DistrCacheWriteErrors` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of distributed cache errors during write +- `ProfileEvent_DistrCacheWriteReconnectsAfterTimeout` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. The number of reconnects after timeout +- `ProfileEvent_DistrCacheWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. Time spent in WriteBufferFromDistributedCache::writeToFileSegment +- `ProfileEvent_DistrCacheWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of bytes written to distributed cache +- `ProfileEvent_DistrCacheObjectStorageWriteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. Time spent writing to object storage +- `ProfileEvent_DistrCacheObjectStorageWriteBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of bytes written to object storage +- `ProfileEvent_DistrCacheGetResponseMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Time spend to wait for response from distributed cache +- `ProfileEvent_DistrCacheMakeRequestErrors` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Number of distributed cache errors when making a request +- `ProfileEvent_DistrCacheReceiveResponseErrors` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Number of distributed cache errors when receiving response a request +- `ProfileEvent_DistrCacheReceivedDataPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received data packets received from distributed cache +- `ProfileEvent_DistrCacheReceivedDataPacketsBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets received from distributed cache +- `ProfileEvent_DistrCacheReceivedOkPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Ok packets received from distributed cache +- `ProfileEvent_DistrCacheReceivedErrorPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Error packets received from distributed cache +- `ProfileEvent_DistrCacheReceivedCredentialsRefreshPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received RefreshCredentials packets received from distributed cache +- `ProfileEvent_DistrCacheReceivedStopPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Stop packets received from distributed cache +- `ProfileEvent_DistrCacheSentDataPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Total number of data packets sent to distributed cache +- `ProfileEvent_DistrCacheSentDataPacketsBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets sent to distributed cache +- `ProfileEvent_DistrCacheUnusedPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. Number of skipped unused packets from distributed cache +- `ProfileEvent_DistrCacheUnusedDataPacketsBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets which were ignored +- `ProfileEvent_DistrCacheUnusedPacketsBufferAllocations` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache client event. The number of extra buffer allocations in case we could not reuse existing buffer +- `ProfileEvent_DistrCacheLockRegistryMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. Time spent to take DistributedCacheRegistry lock +- `ProfileEvent_DistrCacheRegistryUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. Time spent updating distributed cache registry +- `ProfileEvent_DistrCacheRegistryUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. Number of distributed cache registry updates +- `ProfileEvent_DistrCacheHashRingRebuilds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. Number of distributed cache hash ring rebuilds +- `ProfileEvent_DistrCacheSuccessfulRegistryUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. The number of successful server registry updates +- `ProfileEvent_DistrCacheUnsuccessfulRegistryUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache registry event. The number of unsuccessful server registry updates +- `ProfileEvent_DistrCacheReadBytesFromFallbackBuffer` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache read buffer event. Bytes read from fallback buffer +- `ProfileEvent_DistrCacheOpenedConnections` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of open connections to distributed cache +- `ProfileEvent_DistrCacheReusedConnections` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of reused connections to distributed cache +- `ProfileEvent_DistrCacheStaleReconnections` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of reconnections due to stale (peer-closed) pooled connections +- `ProfileEvent_DistrCacheRemoveOutdatedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The time spent removing outdated connections from the pool +- `ProfileEvent_DistrCacheOpenedConnectionsBypassingPool` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of open connections to distributed cache bypassing pool +- `ProfileEvent_DistrCacheConnectMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The time spent to connect to distributed cache +- `ProfileEvent_DistrCacheConnectAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of connection attempts to distributed cache +- `ProfileEvent_DistrCacheSuccessfulConnectAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of successful connection attempts to distributed cache +- `ProfileEvent_DistrCacheUnsuccessfulConnectAttempts` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. The number of unsuccessful connection attempts to distributed cache +- `ProfileEvent_DistrCacheGetClientMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. Time spent getting client for distributed cache +- `ProfileEvent_DistrCacheTemporaryFilesCreated` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. Number of temporary files created in distributed cache +- `ProfileEvent_DistrCacheTemporaryFilesBytesWritten` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache connection event. Number of bytes written to temporary files created in distributed cache +- `ProfileEvent_DistrCacheServerProcessRequestMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Time spent processing request on DistributedCache server side +- `ProfileEvent_DistrCacheServerStartRequestPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Number of StartRequest packets in DistributedCacheServer +- `ProfileEvent_DistrCacheServerContinueRequestPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Number of ContinueRequest packets in DistributedCacheServer +- `ProfileEvent_DistrCacheServerEndRequestPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Number of EndRequest packets in DistributedCacheServer +- `ProfileEvent_DistrCacheServerReceivedCredentialsRefreshPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Number of RefreshCredentials client packets in DistributedCacheServer +- `ProfileEvent_DistrCacheServerAckRequestPackets` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. Number of AckRequest packets in DistributedCacheServer +- `ProfileEvent_DistrCacheServerNewS3CachedClients` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of new cached s3 clients +- `ProfileEvent_DistrCacheServerReusedS3CachedClients` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of reused cached s3 clients +- `ProfileEvent_DistrCacheServerCredentialsRefresh` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of expired credentials were refreshed +- `ProfileEvent_DistrCacheServerCachedReadBufferCacheHits` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache hit the cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerCachedReadBufferCacheMisses` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache missed the cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerCachedReadBufferCacheWrittenBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes written to cache in distributed cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerCachedReadBufferCacheReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from cache in distributed cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerCachedReadBufferObjectStorageReadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from object storage in distributed cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerCachedReadBufferCachePredownloadBytes` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from object storage for predownload in distributed cache while reading from filesystem cache +- `ProfileEvent_DistrCacheServerSkipped` ([UInt64](/core/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache server was skipped because of previous failed connection attempts +- `ProfileEvent_LogTest` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Test +- `ProfileEvent_LogTrace` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Trace +- `ProfileEvent_LogDebug` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Debug +- `ProfileEvent_LogInfo` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Info +- `ProfileEvent_LogWarning` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Warning +- `ProfileEvent_LogError` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Error +- `ProfileEvent_LogFatal` ([UInt64](/core/reference/data-types/int-uint)) — Number of log messages with level Fatal +- `ProfileEvent_LoggerElapsedNanoseconds` ([UInt64](/core/reference/data-types/int-uint)) — Cumulative time spend in logging +- `ProfileEvent_InterfaceHTTPSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through HTTP interfaces +- `ProfileEvent_InterfaceHTTPReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through HTTP interfaces +- `ProfileEvent_InterfaceNativeSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through native interfaces +- `ProfileEvent_InterfaceNativeReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through native interfaces +- `ProfileEvent_InterfacePrometheusSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through Prometheus interfaces +- `ProfileEvent_InterfacePrometheusReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through Prometheus interfaces +- `ProfileEvent_InterfaceInterserverSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through interserver interfaces +- `ProfileEvent_InterfaceInterserverReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through interserver interfaces +- `ProfileEvent_InterfaceMySQLSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through MySQL interfaces +- `ProfileEvent_InterfaceMySQLReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through MySQL interfaces +- `ProfileEvent_InterfacePostgreSQLSendBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes sent through PostgreSQL interfaces +- `ProfileEvent_InterfacePostgreSQLReceiveBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes received through PostgreSQL interfaces +- `ProfileEvent_ParallelReplicasUsedCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of replicas used to execute a query with task-based parallel replicas +- `ProfileEvent_ParallelReplicasAvailableCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of replicas available to execute a query with task-based parallel replicas +- `ProfileEvent_ParallelReplicasUnavailableCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of replicas which was chosen, but found to be unavailable during query execution with task-based parallel replicas +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdates` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts update count +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesByLeader` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates by leader +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts update microseconds +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromZooKeeper` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates count from ZooKeeper +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromZooKeeperMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates from ZooKeeper microseconds +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesPeerNotFound` ([UInt64](/core/reference/data-types/int-uint)) — Virtual updates from peer failed because no one found +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromPeer` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates count from peer +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromPeerMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates from peer microseconds +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesForMergesOrStatus` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates from non-default background job +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesLeaderFailedElection` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates leader election failed +- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesLeaderSuccessfulElection` ([UInt64](/core/reference/data-types/int-uint)) — Virtual parts updates leader election successful +- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentAttempt` ([UInt64](/core/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation +- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentFailedWithNothingToDo` ([UInt64](/core/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation and failed because nothing to merge +- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentFailedWithConflict` ([UInt64](/core/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation and failed because of conflict in Keeper +- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentSuccessful` ([UInt64](/core/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation +- `ProfileEvent_SharedMergeTreeMergePartsMovedToOudated` ([UInt64](/core/reference/data-types/int-uint)) — How many parts moved to outdated directory +- `ProfileEvent_SharedMergeTreeMergePartsMovedToCondemned` ([UInt64](/core/reference/data-types/int-uint)) — How many parts moved to condemned directory +- `ProfileEvent_SharedMergeTreeOutdatedPartsConfirmationRequest` ([UInt64](/core/reference/data-types/int-uint)) — How many ZooKeeper requests were used to config outdated parts +- `ProfileEvent_SharedMergeTreeOutdatedPartsConfirmationInvocations` ([UInt64](/core/reference/data-types/int-uint)) — How many invocations were made to confirm outdated parts +- `ProfileEvent_SharedMergeTreeOutdatedPartsHTTPRequest` ([UInt64](/core/reference/data-types/int-uint)) — How many HTTP requests were send to confirm outdated parts +- `ProfileEvent_SharedMergeTreeOutdatedPartsHTTPResponse` ([UInt64](/core/reference/data-types/int-uint)) — How many HTTP responses were send to confirm outdated parts +- `ProfileEvent_SharedMergeTreeCondemnedPartsKillRequest` ([UInt64](/core/reference/data-types/int-uint)) — How many ZooKeeper requests were used to remove condemned parts +- `ProfileEvent_SharedMergeTreeCondemnedPartsLockConflict` ([UInt64](/core/reference/data-types/int-uint)) — How many times we failed to acquire lock because of conflict +- `ProfileEvent_SharedMergeTreeCondemnedPartsRemoved` ([UInt64](/core/reference/data-types/int-uint)) — How many condemned parts were removed +- `ProfileEvent_SharedMergeTreePartsKillerRuns` ([UInt64](/core/reference/data-types/int-uint)) — How many times parts killer has been running +- `ProfileEvent_SharedMergeTreePartsKillerMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How much time does parts killer main thread takes +- `ProfileEvent_SharedMergeTreePartsKillerParts` ([UInt64](/core/reference/data-types/int-uint)) — How many parts has been scheduled by the killer +- `ProfileEvent_SharedMergeTreePartsKillerPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How many time does it take to remove parts (executed from multiple threads) +- `ProfileEvent_SharedMergeTreeMergeSelectingTaskMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Merge selecting task microseconds for SMT +- `ProfileEvent_SharedMergeTreeReplicaSetUpdateTaskRuns` ([UInt64](/core/reference/data-types/int-uint)) — Number of times updateReplicaSetTask has run +- `ProfileEvent_SharedMergeTreeOptimizeAsync` ([UInt64](/core/reference/data-types/int-uint)) — Asynchronous OPTIMIZE queries executed +- `ProfileEvent_SharedMergeTreeOptimizeSync` ([UInt64](/core/reference/data-types/int-uint)) — Synchronous OPTIMIZE queries executed +- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJob` ([UInt64](/core/reference/data-types/int-uint)) — How many times scheduleDataProcessingJob called/ +- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJobNothingToScheduled` ([UInt64](/core/reference/data-types/int-uint)) — How many times scheduleDataProcessingJob called but nothing to do +- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJobMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — scheduleDataProcessingJob execute time +- `ProfileEvent_SharedMergeTreeHandleBlockingParts` ([UInt64](/core/reference/data-types/int-uint)) — How many blocking parts to handle in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeHandleBlockingPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of handling blocking parts in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeHandleFetchPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of handling fetched parts in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeHandleOutdatedParts` ([UInt64](/core/reference/data-types/int-uint)) — How many outdated parts to handle in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeHandleOutdatedPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of handling outdated parts in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeSelectPartsForRendezvousFetchMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of selectPartsForRendezvousFetch +- `ProfileEvent_SharedMergeTreeSelectPartsForRendezvousFetchParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts selected by selectPartsForRendezvousFetch +- `ProfileEvent_SharedMergeTreeSelectPartsForCoordinatedFetchMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of selectPartsForCoordinatedFetch +- `ProfileEvent_SharedMergeTreeSelectPartsForCoordinatedFetchParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts selected by selectPartsForCoordinatedFetch +- `ProfileEvent_SharedMergeTreeSelectPartsForFullFetchMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of selectPartsForFullFetch +- `ProfileEvent_SharedMergeTreeSelectPartsForFullFetchParts` ([UInt64](/core/reference/data-types/int-uint)) — Number of parts selected by selectPartsForFullFetch +- `ProfileEvent_SharedMergeTreeTryUpdateDiskMetadataCacheForPartMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of tryUpdateDiskMetadataCacheForPart in scheduleDataProcessingJob +- `ProfileEvent_SharedMergeTreeLoadChecksumAndIndexesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of loadColumnsChecksumsIndexes only for SharedMergeTree +- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanRequest` ([UInt64](/core/reference/data-types/int-uint)) — How many times SnapshotCleanerThread decides to clean a part +- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerParts` ([UInt64](/core/reference/data-types/int-uint)) — How long time SnapshotCleanerThread tries to clean a part +- `ProfileEvent_SharedMergeTreeSnapshotPartsRemoved` ([UInt64](/core/reference/data-types/int-uint)) — How many times SnapshotCleanerThread successfully clean a part +- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerRuns` ([UInt64](/core/reference/data-types/int-uint)) — How many times SnapshotCleanerThread runs +- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How long time SnapshotCleanerThread has run +- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerPartsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How long time SnapshotCleanerThread takes to clean parts +- `ProfileEvent_SharedMergeTreeDataPartsFetchAttempt` ([UInt64](/core/reference/data-types/int-uint)) — How many times we tried to fetch data parts +- `ProfileEvent_SharedMergeTreeDataPartsFetchFromPeer` ([UInt64](/core/reference/data-types/int-uint)) — How many times we fetch data parts from peer +- `ProfileEvent_SharedMergeTreeDataPartsFetchFromPeerMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Data parts fetch from peer microseconds +- `ProfileEvent_SharedMergeTreeDataPartsFetchFromS3` ([UInt64](/core/reference/data-types/int-uint)) — How many times we fetch data parts from S3 +- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeper` ([UInt64](/core/reference/data-types/int-uint)) — How many times we have update replica set from ZooKeeper +- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeperRequests` ([UInt64](/core/reference/data-types/int-uint)) — How many total ZooKeeper requests we made to update replica set +- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeperMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — How much time we spend to update replica set +- `ProfileEvent_KeeperLogsEntryReadFromLatestCache` ([UInt64](/core/reference/data-types/int-uint)) — Number of log entries in Keeper being read from latest logs cache +- `ProfileEvent_KeeperLogsEntryReadFromCommitCache` ([UInt64](/core/reference/data-types/int-uint)) — Number of log entries in Keeper being read from commit logs cache +- `ProfileEvent_KeeperLogsEntryReadFromFile` ([UInt64](/core/reference/data-types/int-uint)) — Number of log entries in Keeper being read directly from the changelog file +- `ProfileEvent_KeeperLogsPrefetchedEntries` ([UInt64](/core/reference/data-types/int-uint)) — Number of log entries in Keeper being prefetched from the changelog file +- `ProfileEvent_KeeperChangelogWrittenBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to the changelog in Keeper +- `ProfileEvent_KeeperChangelogFileSyncMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in fsync for Keeper changelog (uncompressed logs only) +- `ProfileEvent_KeeperSnapshotWrittenBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes written to snapshot files in Keeper +- `ProfileEvent_KeeperSnapshotFileSyncMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent in fsync for Keeper snapshot files +- `ProfileEvent_StorageConnectionsCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of created connections for storages +- `ProfileEvent_StorageConnectionsReused` ([UInt64](/core/reference/data-types/int-uint)) — Number of reused connections for storages +- `ProfileEvent_StorageConnectionsReset` ([UInt64](/core/reference/data-types/int-uint)) — Number of reset connections for storages +- `ProfileEvent_StorageConnectionsPreserved` ([UInt64](/core/reference/data-types/int-uint)) — Number of preserved connections for storages +- `ProfileEvent_StorageConnectionsExpired` ([UInt64](/core/reference/data-types/int-uint)) — Number of expired connections for storages +- `ProfileEvent_StorageConnectionsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of cases when creation of a connection for storage is failed +- `ProfileEvent_StorageConnectionsElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on creating connections for storages +- `ProfileEvent_DiskConnectionsCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of created connections for disk +- `ProfileEvent_DiskConnectionsReused` ([UInt64](/core/reference/data-types/int-uint)) — Number of reused connections for disk +- `ProfileEvent_DiskConnectionsReset` ([UInt64](/core/reference/data-types/int-uint)) — Number of reset connections for disk +- `ProfileEvent_DiskConnectionsPreserved` ([UInt64](/core/reference/data-types/int-uint)) — Number of preserved connections for disk +- `ProfileEvent_DiskConnectionsExpired` ([UInt64](/core/reference/data-types/int-uint)) — Number of expired connections for disk +- `ProfileEvent_DiskConnectionsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of cases when creation of a connection for disk is failed +- `ProfileEvent_DiskConnectionsElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on creating connections for disk +- `ProfileEvent_HTTPConnectionsCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of created client HTTP connections +- `ProfileEvent_HTTPConnectionsReused` ([UInt64](/core/reference/data-types/int-uint)) — Number of reused client HTTP connections +- `ProfileEvent_HTTPConnectionsReset` ([UInt64](/core/reference/data-types/int-uint)) — Number of reset client HTTP connections +- `ProfileEvent_HTTPConnectionsPreserved` ([UInt64](/core/reference/data-types/int-uint)) — Number of preserved client HTTP connections +- `ProfileEvent_HTTPConnectionsExpired` ([UInt64](/core/reference/data-types/int-uint)) — Number of expired client HTTP connections +- `ProfileEvent_HTTPConnectionsErrors` ([UInt64](/core/reference/data-types/int-uint)) — Number of cases when creation of a client HTTP connection failed +- `ProfileEvent_HTTPConnectionsElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on creating client HTTP connections +- `ProfileEvent_HTTPServerConnectionsCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of created server HTTP connections +- `ProfileEvent_HTTPServerConnectionsReused` ([UInt64](/core/reference/data-types/int-uint)) — Number of reused server HTTP connections +- `ProfileEvent_HTTPServerConnectionsPreserved` ([UInt64](/core/reference/data-types/int-uint)) — Number of preserved server HTTP connections. Connection kept alive successfully +- `ProfileEvent_HTTPServerConnectionsExpired` ([UInt64](/core/reference/data-types/int-uint)) — Number of expired server HTTP connections. +- `ProfileEvent_HTTPServerConnectionsClosed` ([UInt64](/core/reference/data-types/int-uint)) — Number of closed server HTTP connections. Keep alive has not been negotiated +- `ProfileEvent_HTTPServerConnectionsReset` ([UInt64](/core/reference/data-types/int-uint)) — Number of reset server HTTP connections. Server closes connection +- `ProfileEvent_AddressesDiscovered` ([UInt64](/core/reference/data-types/int-uint)) — Total count of new addresses in DNS resolve results for HTTP connections +- `ProfileEvent_AddressesExpired` ([UInt64](/core/reference/data-types/int-uint)) — Total count of expired addresses which is no longer presented in DNS resolve results for HTTP connections +- `ProfileEvent_AddressesMarkedAsFailed` ([UInt64](/core/reference/data-types/int-uint)) — Total count of addresses which have been marked as faulty due to connection errors for HTTP connections +- `ProfileEvent_ReadWriteBufferFromHTTPRequestsSent` ([UInt64](/core/reference/data-types/int-uint)) — Number of HTTP requests sent by ReadWriteBufferFromHTTP +- `ProfileEvent_ReadWriteBufferFromHTTPBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total size of payload bytes received and sent by ReadWriteBufferFromHTTP. Doesn't include HTTP headers. +- `ProfileEvent_WriteBufferFromHTTPRequestsSent` ([UInt64](/core/reference/data-types/int-uint)) — Number of HTTP requests sent by WriteBufferFromHTTP +- `ProfileEvent_WriteBufferFromHTTPBytes` ([UInt64](/core/reference/data-types/int-uint)) — Total size of payload bytes received and sent by WriteBufferFromHTTP. Doesn't include HTTP headers. +- `ProfileEvent_ConcurrencyControlSlotsGranted` ([UInt64](/core/reference/data-types/int-uint)) — Number of CPU slot granted according to guarantee of 1 thread per query and for queries with setting 'use_concurrency_control' = 0 +- `ProfileEvent_ConcurrencyControlSlotsDelayed` ([UInt64](/core/reference/data-types/int-uint)) — Number of CPU slot not granted initially and required to wait for a free CPU slot +- `ProfileEvent_ConcurrencyControlSlotsAcquired` ([UInt64](/core/reference/data-types/int-uint)) — Total number of CPU slots acquired +- `ProfileEvent_ConcurrencyControlSlotsAcquiredNonCompeting` ([UInt64](/core/reference/data-types/int-uint)) — Total number of noncompeting CPU slot acquired +- `ProfileEvent_ConcurrencyControlQueriesDelayed` ([UInt64](/core/reference/data-types/int-uint)) — Total number of CPU slot allocations (queries) that were required to wait for slots to upscale +- `ProfileEvent_ConcurrencyControlWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for CPU slots. +- `ProfileEvent_ConcurrencyControlPreemptedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting due to preemption of CPU slots. +- `ProfileEvent_ConcurrencyControlPreemptions` ([UInt64](/core/reference/data-types/int-uint)) — Total number of CPU preemptions +- `ProfileEvent_ConcurrencyControlUpscales` ([UInt64](/core/reference/data-types/int-uint)) — Total number of CPU upscaling events +- `ProfileEvent_ConcurrencyControlDownscales` ([UInt64](/core/reference/data-types/int-uint)) — Total number of CPU downscaling events +- `ProfileEvent_ConcurrentQuerySlotsAcquired` ([UInt64](/core/reference/data-types/int-uint)) — Total number of query slots acquired +- `ProfileEvent_ConcurrentQueryWaitMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time a query was waiting for a query slots +- `ProfileEvent_CoordinatedMergesMergeCoordinatorUpdateCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of merge coordinator updates +- `ProfileEvent_CoordinatedMergesMergeCoordinatorUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on updating merge coordinator state +- `ProfileEvent_CoordinatedMergesMergeCoordinatorFetchMetadataMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on fetching fresh metadata inside merge coordinator +- `ProfileEvent_CoordinatedMergesMergeCoordinatorFilterMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on filtering prepared merges inside merge coordinator +- `ProfileEvent_CoordinatedMergesMergeCoordinatorSelectMergesMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on finding merge using merge selectors inside merge coordinator +- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateForShareCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of for share captures of coordinator state lock +- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateExclusivelyCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number of exclusive captures of coordinator state lock +- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateForShareMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on locking coordinator state mutex for share +- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateExclusivelyMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on locking coordinator state mutex exclusively +- `ProfileEvent_CoordinatedMergesMergeWorkerUpdateCount` ([UInt64](/core/reference/data-types/int-uint)) — Total number merge worker updates +- `ProfileEvent_CoordinatedMergesMergeWorkerUpdateMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on updating local state of assigned merges on worker +- `ProfileEvent_CoordinatedMergesMergeAssignmentRequest` ([UInt64](/core/reference/data-types/int-uint)) — Total number of merge assignment requests +- `ProfileEvent_CoordinatedMergesMergeAssignmentResponse` ([UInt64](/core/reference/data-types/int-uint)) — Total number of merge assignment requests +- `ProfileEvent_CoordinatedMergesMergeAssignmentRequestMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend in merge assignment client +- `ProfileEvent_CoordinatedMergesMergeAssignmentResponseMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend in merge assignment handler +- `ProfileEvent_SharedDatabaseCatalogFailedToApplyState` ([UInt64](/core/reference/data-types/int-uint)) — Number of failures to apply new state in SharedDatabaseCatalog +- `ProfileEvent_SharedDatabaseCatalogStateApplicationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spend on application of new state in SharedDatabaseCatalog +- `ProfileEvent_MemoryWorkerRun` ([UInt64](/core/reference/data-types/int-uint)) — Number of runs done by MemoryWorker in background +- `ProfileEvent_MemoryWorkerRunElapsedMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Total time spent by MemoryWorker for background work +- `ProfileEvent_ParquetFetchWaitTimeMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time of waiting for parquet file reads from decoding threads (not prefetching threads) +- `ProfileEvent_WasmSerializationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent executing WebAssembly code +- `ProfileEvent_WasmDeserializationMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent executing WebAssembly code +- `ProfileEvent_WasmGuestExecuteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent executing WebAssembly code +- `ProfileEvent_WasmTotalExecuteMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Time spent executing WebAssembly code +- `ProfileEvent_WasmModuleInstatiate` ([UInt64](/core/reference/data-types/int-uint)) — Number of WebAssembly compartments created +- `ProfileEvent_WasmMemoryAllocated` ([UInt64](/core/reference/data-types/int-uint)) — Total memory allocated for WebAssembly compartments +- `ProfileEvent_ParquetReadRowGroups` ([UInt64](/core/reference/data-types/int-uint)) — The total number of row groups read from parquet data +- `ProfileEvent_ParquetPrunedRowGroups` ([UInt64](/core/reference/data-types/int-uint)) — The total number of row groups pruned from parquet data +- `ProfileEvent_ParquetDecodingTasks` ([UInt64](/core/reference/data-types/int-uint)) — Tasks issued by parquet reader +- `ProfileEvent_ParquetDecodingTaskBatches` ([UInt64](/core/reference/data-types/int-uint)) — Task groups sent to a thread pool by parquet reader +- `ProfileEvent_ParquetPrefetcherReadRandomRead` ([UInt64](/core/reference/data-types/int-uint)) — The total number of reads with ReadMode::RandomRead by DB::Parquet::Prefetcher +- `ProfileEvent_ParquetPrefetcherReadSeekAndRead` ([UInt64](/core/reference/data-types/int-uint)) — The total number of reads with ReadMode::SeekAndRead by DB::Parquet::Prefetcher +- `ProfileEvent_ParquetPrefetcherReadEntireFile` ([UInt64](/core/reference/data-types/int-uint)) — The total number of read with ReadMode::EntireFileIsInMemory by DB::Parquet::Prefetcher +- `ProfileEvent_ParquetRowsFilterExpression` ([UInt64](/core/reference/data-types/int-uint)) — The total number of rows that were passed through filter +- `ProfileEvent_ParquetColumnsFilterExpression` ([UInt64](/core/reference/data-types/int-uint)) — The total number of columns that were passed through filter +- `ProfileEvent_FilterTransformPassedRows` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows that passed the filter in the query +- `ProfileEvent_FilterTransformPassedBytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of bytes that passed the filter in the query +- `ProfileEvent_QueryPreempted` ([UInt64](/core/reference/data-types/int-uint)) — How many times tasks are paused and waiting due to 'priority' setting +- `ProfileEvent_IndexBinarySearchAlgorithm` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the binary search algorithm is used over the index marks +- `ProfileEvent_IndexGenericExclusionSearchAlgorithm` ([UInt64](/core/reference/data-types/int-uint)) — Number of times the generic exclusion search algorithm is used over the index marks +- `ProfileEvent_ParallelReplicasQueryCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of (sub)queries executed using parallel replicas during a query execution +- `ProfileEvent_DistributedConnectionReconnectCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of reconnects to other servers done during distributed query execution. It can happen when a stale connection has been acquired from connection pool +- `ProfileEvent_DistributedConnectionConnectCount` ([UInt64](/core/reference/data-types/int-uint)) — Number of connects to other servers done during distributed query execution. Happens when new connection is established instead of using existing from pool. +- `ProfileEvent_RefreshableViewRefreshSuccess` ([UInt64](/core/reference/data-types/int-uint)) — How many times refreshable materialized views refreshed +- `ProfileEvent_RefreshableViewRefreshFailed` ([UInt64](/core/reference/data-types/int-uint)) — How many times refreshable materialized views failed to refresh +- `ProfileEvent_RefreshableViewSyncReplicaSuccess` ([UInt64](/core/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view did an implicit SYNC REPLICA +- `ProfileEvent_RefreshableViewSyncReplicaRetry` ([UInt64](/core/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view failed and retried an implicit SYNC REPLICA +- `ProfileEvent_RefreshableViewLockTableRetry` ([UInt64](/core/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view had to switch to a new table because the old table was dropped +- `ProfileEvent_AsyncLoggingConsoleTotalMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the console log +- `ProfileEvent_AsyncLoggingFileLogTotalMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the file log +- `ProfileEvent_AsyncLoggingErrorFileLogTotalMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the error file log +- `ProfileEvent_AsyncLoggingSyslogTotalMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the syslog +- `ProfileEvent_AsyncLoggingTextLogTotalMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the text_log +- `ProfileEvent_AsyncLoggingConsoleDroppedMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages have been dropped from the console log due to the async log queue being full +- `ProfileEvent_AsyncLoggingFileLogDroppedMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages have been dropped from the file log due to the async log queue being full +- `ProfileEvent_AsyncLoggingErrorFileLogDroppedMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages have been dropped from error file log due to the async log queue being full +- `ProfileEvent_AsyncLoggingSyslogDroppedMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages have been dropped from the syslog due to the async log queue being full +- `ProfileEvent_AsyncLoggingTextLogDroppedMessages` ([UInt64](/core/reference/data-types/int-uint)) — How many messages have been dropped from text_log due to the async log queue being full +- `ProfileEvent_JemallocFailedAllocationSampleTracking` ([UInt64](/core/reference/data-types/int-uint)) — Total number of times tracking of jemalloc allocation sample failed +- `ProfileEvent_JemallocFailedDeallocationSampleTracking` ([UInt64](/core/reference/data-types/int-uint)) — Total number of times tracking of jemalloc deallocation sample failed +- `ProfileEvent_LoadedStatisticsMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Elapsed time of loading statistics from parts +- `ProfileEvent_RuntimeDataflowStatisticsInputBytes` ([UInt64](/core/reference/data-types/int-uint)) — Collected statistics on the number of bytes replicas would read if the query was executed with parallel replicas +- `ProfileEvent_RuntimeDataflowStatisticsOutputBytes` ([UInt64](/core/reference/data-types/int-uint)) — Collected statistics on the number of bytes replicas would send to the initiator if the query was executed with parallel replicas +- `ProfileEvent_S3CachedCredentialsProvidersReused` ([UInt64](/core/reference/data-types/int-uint)) — Total number of reused credentials provider from the cache +- `ProfileEvent_S3CachedCredentialsProvidersAdded` ([UInt64](/core/reference/data-types/int-uint)) — Total number of newly added credentials providers to the cache +- `ProfileEvent_RuntimeFiltersCreated` ([UInt64](/core/reference/data-types/int-uint)) — Number of distinct JOIN Runtime Filters created within a query +- `ProfileEvent_RuntimeFilterBlocksProcessed` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks processed by JOIN Runtime Filters +- `ProfileEvent_RuntimeFilterBlocksSkipped` ([UInt64](/core/reference/data-types/int-uint)) — Number of blocks skipped by JOIN Runtime Filters without processing due to filter being dynamically disabled because of poor filtering ratio +- `ProfileEvent_RuntimeFilterRowsChecked` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows checked by JOIN Runtime Filters +- `ProfileEvent_RuntimeFilterRowsPassed` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows that passed (not filtered out by) JOIN Runtime Filters +- `ProfileEvent_RuntimeFilterRowsSkipped` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows in blocks that were skipped by JOIN Runtime Filters +- `ProfileEvent_JoinBuildPostProcessingMicroseconds` ([UInt64](/core/reference/data-types/int-uint)) — Elapsed time of post-processing steps after building the right JOIN side. +- `ProfileEvent_AIInputTokens` ([UInt64](/core/reference/data-types/int-uint)) — Total prompt tokens consumed across all AI function calls in the query. +- `ProfileEvent_AIOutputTokens` ([UInt64](/core/reference/data-types/int-uint)) — Total completion tokens consumed across all AI function calls in the query. +- `ProfileEvent_AIAPICalls` ([UInt64](/core/reference/data-types/int-uint)) — Number of HTTP requests dispatched to AI providers. +- `ProfileEvent_AIRowsProcessed` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows that received an AI result. +- `ProfileEvent_AIRowsSkipped` ([UInt64](/core/reference/data-types/int-uint)) — Number of rows that received a default value due to quota or error. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.query_metric_log LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +query_id: 97c8ba04-b6d4-4bd7-b13e-6201c5c6e49d +hostname: clickhouse.eu-central1.internal +event_date: 2020-09-05 +event_time: 2020-09-05 16:22:33 +event_time_microseconds: 2020-09-05 16:22:33.196807 +memory_usage: 313434219 +peak_memory_usage: 598951986 +ProfileEvent_Query: 0 +ProfileEvent_SelectQuery: 0 +ProfileEvent_InsertQuery: 0 +ProfileEvent_FailedQuery: 0 +ProfileEvent_FailedSelectQuery: 0 +... +``` + +## See Also {#see-also} + +- [query_metric_log setting](/core/reference/settings/server-settings/settings#query_metric_log) — Enabling and disabling the setting. +- [query_metric_log_interval](/core/reference/settings/session-settings#query_metric_log_interval) +- [system.asynchronous_metrics](/core/reference/system-tables/asynchronous_metrics) — Contains periodically calculated metrics. +- [system.events](/core/reference/system-tables/events) — Contains a number of events that occurred. +- [system.metrics](/core/reference/system-tables/metrics) — Contains instantly calculated metrics. +- [Monitoring](/core/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. diff --git a/core/reference/system-tables/query_thread_log.mdx b/core/reference/system-tables/query_thread_log.mdx new file mode 100644 index 00000000..07060172 --- /dev/null +++ b/core/reference/system-tables/query_thread_log.mdx @@ -0,0 +1,144 @@ +--- +description: 'System table containing information about threads that execute queries, + for example, thread name, thread start time, duration of query processing.' +keywords: ['system table', 'query_thread_log'] +slug: /operations/system-tables/query_thread_log +title: 'system.query_thread_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about threads that execute queries, for example, thread name, thread start time, duration of query processing. + +To start logging: + +1. Configure parameters in the [query_thread_log](/core/reference/settings/server-settings/settings#query_thread_log) section. +2. Set [log_query_threads](/core/reference/settings/session-settings#log_query_threads) to 1. + +The flushing period of data is set in `flush_interval_milliseconds` parameter of the [query_thread_log](/core/reference/settings/server-settings/settings#query_thread_log) server settings section. To force flushing, use the [SYSTEM FLUSH LOGS](/core/reference/statements/system#flush-logs) query. + +ClickHouse does not delete data from the table automatically. See [Introduction](/core/reference/system-tables/overview#system-tables-introduction) for more details. + +You can use the [log_queries_probability](/core/reference/settings/session-settings#log_queries_probability)) setting to reduce the number of queries, registered in the `query_thread_log` table. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — The date when the thread has finished execution of the query. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — The date and time when the thread has finished execution of the query. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — The date and time when the thread has finished execution of the query with microseconds precision. +- `query_start_time` ([DateTime](/core/reference/data-types/datetime)) — Start time of query execution. +- `query_start_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Start time of query execution with microsecond precision. +- `query_duration_ms` ([UInt64](/core/reference/data-types/int-uint)) — Duration of query execution. +- `read_rows` ([UInt64](/core/reference/data-types/int-uint)) — Number of read rows. +- `read_bytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of read bytes. +- `written_rows` ([UInt64](/core/reference/data-types/int-uint)) — For INSERT queries, the number of written rows. For other queries, the column value is 0. +- `written_bytes` ([UInt64](/core/reference/data-types/int-uint)) — For INSERT queries, the number of written bytes. For other queries, the column value is 0. +- `memory_usage` ([Int64](/core/reference/data-types/int-uint)) — The difference between the amount of allocated and freed memory in context of this thread. +- `peak_memory_usage` ([Int64](/core/reference/data-types/int-uint)) — The maximum difference between the amount of allocated and freed memory in context of this thread. +- `thread_name` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the thread. +- `thread_id` ([UInt64](/core/reference/data-types/int-uint)) — Internal thread ID. +- `master_thread_id` ([UInt64](/core/reference/data-types/int-uint)) — OS initial ID of initial thread. +- `current_database` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the current database. +- `query` ([String](/core/reference/data-types/string)) — Query string. +- `normalized_query_hash` ([UInt64](/core/reference/data-types/int-uint)) — The hash of normalized query - with wiped constants, etc. +- `is_initial_query` ([UInt8](/core/reference/data-types/int-uint)) — Query type. Possible values: 1 — Query was initiated by the client, 0 — Query was initiated by another query for distributed query execution. +- `connection_address` ([IPv6](/core/reference/data-types/ipv6)) — The client IP address from which the connection was made. When connected through a proxy, this will be the address of the proxy. +- `connection_port` ([UInt16](/core/reference/data-types/int-uint)) — The client port from which the connection was made. When connected through a proxy, this will be the port of the proxy. +- `user` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the user who initiated the current query. +- `query_id` ([String](/core/reference/data-types/string)) — ID of the query. +- `address` ([IPv6](/core/reference/data-types/ipv6)) — IP address that was used to make the query. When connected through a proxy and `auth_use_forwarded_address` is set, this will be the address of the client instead of the proxy. +- `port` ([UInt16](/core/reference/data-types/int-uint)) — The client port that was used to make the query. When connected through a proxy and `auth_use_forwarded_address` is set, this will be the port of the client instead of the proxy. +- `initial_user` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the user who ran the initial query (for distributed query execution). +- `initial_query_id` ([String](/core/reference/data-types/string)) — ID of the initial query (for distributed query execution). +- `initial_address` ([IPv6](/core/reference/data-types/ipv6)) — IP address that the parent query was launched from. +- `initial_port` ([UInt16](/core/reference/data-types/int-uint)) — The client port that was used to make the parent query. +- `initial_query_start_time` ([DateTime](/core/reference/data-types/datetime)) — Start time of the initial query execution. +- `initial_query_start_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Start time of the initial query execution +- `authenticated_user` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the user who was authenticated in the session. +- `interface` ([UInt8](/core/reference/data-types/int-uint)) — Interface that the query was initiated from. Possible values: 1 — TCP, 2 — HTTP. +- `is_secure` ([UInt8](/core/reference/data-types/int-uint)) — The flag which shows whether the connection was secure. +- `os_user` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — OSs username who runs clickhouse-client. +- `client_hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the client machine where the clickhouse-client or another TCP client is run. +- `client_name` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — The clickhouse-client or another TCP client name. +- `client_revision` ([UInt32](/core/reference/data-types/int-uint)) — Revision of the clickhouse-client or another TCP client. +- `client_version_major` ([UInt32](/core/reference/data-types/int-uint)) — Major version of the clickhouse-client or another TCP client. +- `client_version_minor` ([UInt32](/core/reference/data-types/int-uint)) — Minor version of the clickhouse-client or another TCP client. +- `client_version_patch` ([UInt32](/core/reference/data-types/int-uint)) — Patch component of the clickhouse-client or another TCP client version. +- `script_query_number` ([UInt32](/core/reference/data-types/int-uint)) — A sequential query number in a multi-query script. +- `script_line_number` ([UInt32](/core/reference/data-types/int-uint)) — A line number in a multi-query script where the current query starts. +- `http_method` ([UInt8](/core/reference/data-types/int-uint)) — HTTP method that initiated the query. Possible values: 0 — The query was launched from the TCP interface, 1 — GET method was used., 2 — POST method was used. +- `http_user_agent` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — The UserAgent header passed in the HTTP request. +- `http_referer` ([String](/core/reference/data-types/string)) — HTTP header `Referer` passed in the HTTP query (contains an absolute or partial address of the page making the query). +- `forwarded_for` ([String](/core/reference/data-types/string)) — HTTP header `X-Forwarded-For` passed in the HTTP query. +- `quota_key` ([String](/core/reference/data-types/string)) — The 'quota key' specified in the quotas setting. +- `distributed_depth` ([UInt64](/core/reference/data-types/int-uint)) — How many times a query was forwarded between servers. +- `revision` ([UInt32](/core/reference/data-types/int-uint)) — ClickHouse revision. +- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/core/reference/data-types/map)) — ProfileEvents that measure different metrics for this thread. The description of them could be found in the table system.events. + +**Aliases:** + +- `ProfileEvents.Names` — Alias for `mapKeys(ProfileEvents)`. +- `ProfileEvents.Values` — Alias for `mapValues(ProfileEvents)`. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql + SELECT * FROM system.query_thread_log LIMIT 1 \G +``` + +```text +Row 1: +────── +hostname: clickhouse.eu-central1.internal +event_date: 2020-09-11 +event_time: 2020-09-11 10:08:17 +event_time_microseconds: 2020-09-11 10:08:17.134042 +query_start_time: 2020-09-11 10:08:17 +query_start_time_microseconds: 2020-09-11 10:08:17.063150 +query_duration_ms: 70 +read_rows: 0 +read_bytes: 0 +written_rows: 1 +written_bytes: 12 +memory_usage: 4300844 +peak_memory_usage: 4300844 +thread_name: TCPHandler +thread_id: 638133 +master_thread_id: 638133 +query: INSERT INTO test1 VALUES +is_initial_query: 1 +user: default +query_id: 50a320fd-85a8-49b8-8761-98a86bcbacef +address: ::ffff:127.0.0.1 +port: 33452 +initial_user: default +initial_query_id: 50a320fd-85a8-49b8-8761-98a86bcbacef +initial_address: ::ffff:127.0.0.1 +initial_port: 33452 +interface: 1 +os_user: bharatnc +client_hostname: tower +client_name: ClickHouse +client_revision: 54437 +client_version_major: 20 +client_version_minor: 7 +client_version_patch: 2 +http_method: 0 +http_user_agent: +quota_key: +revision: 54440 +ProfileEvents: {'Query':1,'SelectQuery':1,'ReadCompressedBytes':36,'CompressedReadBufferBlocks':1,'CompressedReadBufferBytes':10,'IOBufferAllocs':1,'IOBufferAllocBytes':89,'ContextLock':15,'RWLockAcquiredReadLocks':1} +``` + +## See Also {#see-also} + +- [system.query_log](/core/reference/system-tables/query_log) — Description of the `query_log` system table which contains common information about queries execution. +- [system.query_views_log](/core/reference/system-tables/query_views_log) — This table contains information about each view executed during a query. diff --git a/core/reference/system-tables/query_views_log.mdx b/core/reference/system-tables/query_views_log.mdx new file mode 100644 index 00000000..7c291c23 --- /dev/null +++ b/core/reference/system-tables/query_views_log.mdx @@ -0,0 +1,95 @@ +--- +description: 'System table containing information about the dependent views executed + when running a query, for example, the view type or the execution time.' +keywords: ['system table', 'query_views_log'] +slug: /operations/system-tables/query_views_log +title: 'system.query_views_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about the dependent views executed when running a query, for example, the view type or the execution time. + +To start logging: + +1. Configure parameters in the [query_views_log](/core/reference/settings/server-settings/settings#query_views_log) section. +2. Set [log_query_views](/core/reference/settings/session-settings#log_query_views) to 1. + +The flushing period of data is set in `flush_interval_milliseconds` parameter of the [query_views_log](/core/reference/settings/server-settings/settings#query_views_log) server settings section. To force flushing, use the [SYSTEM FLUSH LOGS](/core/reference/statements/system#flush-logs) query. + +ClickHouse does not delete data from the table automatically. See [Introduction](/core/reference/system-tables/overview#system-tables-introduction) for more details. + +You can use the [log_queries_probability](/core/reference/settings/session-settings#log_queries_probability)) setting to reduce the number of queries, registered in the `query_views_log` table. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — The date when the last event of the view happened. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — The date and time when the view finished execution. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — The date and time when the view finished execution with microseconds precision. +- `view_duration_ms` ([UInt64](/core/reference/data-types/int-uint)) — Duration of view execution (sum of its stages) in milliseconds. +- `initial_query_id` ([String](/core/reference/data-types/string)) — ID of the initial query (for distributed query execution). +- `view_name` ([String](/core/reference/data-types/string)) — Name of the view. +- `view_uuid` ([UUID](/core/reference/data-types/uuid)) — UUID of the view. +- `view_type` ([Enum8('Default' = 1, 'Materialized' = 2, 'Live' = 3, 'Window' = 4)](/core/reference/data-types/enum)) — Type of the view. Values: 'Default' = 1 — Default views. Should not appear in this log, 'Materialized' = 2 — Materialized views, 'Live' = 3 — Live views. +- `view_query` ([String](/core/reference/data-types/string)) — The query executed by the view. +- `view_target` ([String](/core/reference/data-types/string)) — The name of the view target table. +- `read_rows` ([UInt64](/core/reference/data-types/int-uint)) — Number of read rows. +- `read_bytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of read bytes. +- `written_rows` ([UInt64](/core/reference/data-types/int-uint)) — Number of written rows. +- `written_bytes` ([UInt64](/core/reference/data-types/int-uint)) — Number of written bytes. +- `peak_memory_usage` ([Int64](/core/reference/data-types/int-uint)) — The maximum difference between the amount of allocated and freed memory in context of this view. +- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/core/reference/data-types/map)) — ProfileEvents that measure different metrics. The description of them could be found in the table system.events. +- `status` ([Enum8('QueryStart' = 1, 'QueryFinish' = 2, 'ExceptionBeforeStart' = 3, 'ExceptionWhileProcessing' = 4)](/core/reference/data-types/enum)) — Status of the view. Values: 'QueryStart' = 1 — Successful start the view execution. Should not appear, 'QueryFinish' = 2 — Successful end of the view execution, 'ExceptionBeforeStart' = 3 — Exception before the start of the view execution., 'ExceptionWhileProcessing' = 4 — Exception during the view execution. +- `exception_code` ([Int32](/core/reference/data-types/int-uint)) — Code of an exception. +- `exception` ([String](/core/reference/data-types/string)) — Exception message. +- `stack_trace` ([String](/core/reference/data-types/string)) — Stack trace. An empty string, if the query was completed successfully. + +**Aliases:** + +- `ProfileEvents.Names` — Alias for `mapKeys(ProfileEvents)`. +- `ProfileEvents.Values` — Alias for `mapValues(ProfileEvents)`. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql title="Query" +SELECT * FROM system.query_views_log LIMIT 1 \G; +``` + +```text title="Response" +Row 1: +────── +hostname: clickhouse.eu-central1.internal +event_date: 2021-06-22 +event_time: 2021-06-22 13:23:07 +event_time_microseconds: 2021-06-22 13:23:07.738221 +view_duration_ms: 0 +initial_query_id: c3a1ac02-9cad-479b-af54-9e9c0a7afd70 +view_name: default.matview_inner +view_uuid: 00000000-0000-0000-0000-000000000000 +view_type: Materialized +view_query: SELECT * FROM default.table_b +view_target: default.`.inner.matview_inner` +read_rows: 4 +read_bytes: 64 +written_rows: 2 +written_bytes: 32 +peak_memory_usage: 4196188 +ProfileEvents: {'FileOpen':2,'WriteBufferFromFileDescriptorWrite':2,'WriteBufferFromFileDescriptorWriteBytes':187,'IOBufferAllocs':3,'IOBufferAllocBytes':3145773,'FunctionExecute':3,'DiskWriteElapsedMicroseconds':13,'InsertedRows':2,'InsertedBytes':16,'SelectedRows':4,'SelectedBytes':48,'ContextLock':16,'RWLockAcquiredReadLocks':1,'RealTimeMicroseconds':698,'SoftPageFaults':4,'OSReadChars':463} +status: QueryFinish +exception_code: 0 +exception: +stack_trace: +``` + +## See Also {#see-also} + +{/*AUTOGENERATED_START*/} +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/quota_limits.mdx b/core/reference/system-tables/quota_limits.mdx new file mode 100644 index 00000000..f208a907 --- /dev/null +++ b/core/reference/system-tables/quota_limits.mdx @@ -0,0 +1,32 @@ +--- +description: 'System table containing information about maximums for all intervals + of all quotas. Any number of rows or zero can correspond to one quota.' +keywords: ['system table', 'quota_limits'] +slug: /operations/system-tables/quota_limits +title: 'system.quota_limits' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about maximums for all intervals of all quotas. Any number of rows or zero can correspond to one quota. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `quota_name` ([String](/core/reference/data-types)) — Quota name. +- `duration` ([UInt32](/core/reference/data-types)) — Length of the time interval for calculating resource consumption, in seconds. +- `is_randomized_interval` ([UInt8](/core/reference/data-types)) — Boolean value. It shows whether the interval is randomized. Interval always starts at the same time if it is not randomized. For example, an interval of 1 minute always starts at an integer number of minutes (i.e. it can start at 11:20:00, but it never starts at 11:20:01), an interval of one day always starts at midnight UTC. If interval is randomized, the very first interval starts at random time, and subsequent intervals starts one by one. Values: 0 — Interval is not randomized, 1 — Interval is randomized. +- `max_queries` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum allowed number of queries of all types allowed to be executed. +- `max_query_selects` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum allowed number of SELECT queries allowed to be executed. +- `max_query_inserts` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum allowed number of INSERT queries allowed to be executed. +- `max_errors` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of queries resulted in an error allowed within the specified period of time. +- `max_result_rows` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum total number of rows in the result set of all queries allowed within the specified period of time. +- `max_result_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum total number of bytes in the result set of all queries allowed within the specified period of time. +- `max_read_rows` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of rows to read during execution of all queries allowed within the specified period of time. +- `max_read_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of bytes to read during execution of all queries allowed within the specified period of time. +- `max_execution_time` ([Nullable(Float64)](/core/reference/data-types)) — The maximum amount of time (in nanoseconds) allowed for all queries to execute within the specified period of time +- `max_written_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of bytes to written during execution of all queries allowed within the specified period of time. +- `max_failed_sequential_authentications` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of consecutive authentication failures allowed within the specified period of time. +- `max_queries_per_normalized_hash` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of executions of any single normalized query allowed within the specified period of time. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/quota_usage.mdx b/core/reference/system-tables/quota_usage.mdx new file mode 100644 index 00000000..50bbd93f --- /dev/null +++ b/core/reference/system-tables/quota_usage.mdx @@ -0,0 +1,54 @@ +--- +description: 'System table containing formation about quota usage by the current user + such as how much of the quota is used and how much is left.' +keywords: ['system table', 'quota_usage'] +slug: /operations/system-tables/quota_usage +title: 'system.quota_usage' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Quota usage by the current user: how much is used and how much is left. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `quota_name` ([String](/core/reference/data-types)) — Quota name. +- `quota_key` ([String](/core/reference/data-types)) — Key value. +- `start_time` ([Nullable(DateTime)](/core/reference/data-types)) — Start time for calculating resource consumption. +- `end_time` ([Nullable(DateTime)](/core/reference/data-types)) — End time for calculating resource consumption. +- `duration` ([Nullable(UInt32)](/core/reference/data-types)) — Length of the time interval for calculating resource consumption, in seconds. +- `queries` ([Nullable(UInt64)](/core/reference/data-types)) — The current number of executed queries. +- `max_queries` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum allowed number of queries of all types allowed to be executed. +- `query_selects` ([Nullable(UInt64)](/core/reference/data-types)) — The current number of executed SELECT queries. +- `max_query_selects` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum allowed number of SELECT queries allowed to be executed. +- `query_inserts` ([Nullable(UInt64)](/core/reference/data-types)) — The current number of executed INSERT queries. +- `max_query_inserts` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum allowed number of INSERT queries allowed to be executed. +- `errors` ([Nullable(UInt64)](/core/reference/data-types)) — The current number of queries resulted in an error. +- `max_errors` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of queries resulted in an error allowed within the specified period of time. +- `result_rows` ([Nullable(UInt64)](/core/reference/data-types)) — The current total number of rows in the result set of all queries within the current period of time. +- `max_result_rows` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum total number of rows in the result set of all queries allowed within the specified period of time. +- `result_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The current total number of bytes in the result set of all queries within the current period of time. +- `max_result_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum total number of bytes in the result set of all queries allowed within the specified period of time. +- `read_rows` ([Nullable(UInt64)](/core/reference/data-types)) — The current total number of rows read during execution of all queries within the current period of time. +- `max_read_rows` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of rows to read during execution of all queries allowed within the specified period of time. +- `read_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The current total number of bytes read during execution of all queries within the current period of time. +- `max_read_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of bytes to read during execution of all queries allowed within the specified period of time. +- `execution_time` ([Nullable(Float64)](/core/reference/data-types)) — The current total amount of time (in nanoseconds) spent to execute queries within the current period of time +- `max_execution_time` ([Nullable(Float64)](/core/reference/data-types)) — The maximum amount of time (in nanoseconds) allowed for all queries to execute within the specified period of time +- `written_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The current total number of bytes written during execution of all queries within the current period of time. +- `max_written_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of bytes to written during execution of all queries allowed within the specified period of time. +- `failed_sequential_authentications` ([Nullable(UInt64)](/core/reference/data-types)) — The current number of consecutive authentication failures within the current period of time. +- `max_failed_sequential_authentications` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of consecutive authentication failures allowed within the specified period of time. +- `queries_per_normalized_hash` ([Nullable(UInt64)](/core/reference/data-types)) — The current maximum number of executions of any single normalized query within the current period of time. +- `max_queries_per_normalized_hash` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of executions of any single normalized query allowed within the specified period of time. +{/*AUTOGENERATED_END*/} + +## See Also {#see-also} + +- [SHOW QUOTA](/core/reference/statements/show#show-quota)) diff --git a/core/reference/system-tables/quotas.mdx b/core/reference/system-tables/quotas.mdx new file mode 100644 index 00000000..f1685c58 --- /dev/null +++ b/core/reference/system-tables/quotas.mdx @@ -0,0 +1,28 @@ +--- +description: 'System table containing information about quotas.' +keywords: ['system table', 'quotas', 'quota'] +slug: /operations/system-tables/quotas +title: 'system.quotas' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about [quotas](/core/reference/system-tables/quotas). + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `name` ([String](/core/reference/data-types)) — Quota name. +- `id` ([UUID](/core/reference/data-types)) — Quota ID. +- `storage` ([String](/core/reference/data-types)) — Storage of quotas. Possible value: 'users.xml' if a quota configured in the users.xml file, 'disk' if a quota configured by an SQL-query. +- `keys` ([Array(Enum8('user_name' = 1, 'ip_address' = 2, 'forwarded_ip_address' = 3, 'client_key' = 4, 'normalized_query_hash' = 7))](/core/reference/data-types)) — Key specifies how the quota should be shared. If two connections use the same quota and key, they share the same amounts of resources. Values: [] — All users share the same quota, ['user_name'] — Connections with the same user name share the same quota, ['ip_address'] — Connections from the same IP share the same quota. ['client_key'] — Connections with the same key share the same quota. A key must be explicitly provided by a client. When using clickhouse-client, pass a key value in the --quota_key parameter, or use the quota_key parameter in the client configuration file. When using HTTP interface, use the X-ClickHouse-Quota header, ['user_name', 'client_key'] — Connections with the same client_key share the same quota. If a key isn't provided by a client, the quota is tracked for `user_name`, ['client_key', 'ip_address'] — Connections with the same client_key share the same quota. If a key isn't provided by a client, the quota is tracked for ip_address. +- `durations` ([Array(UInt32)](/core/reference/data-types)) — Time interval lengths in seconds. +- `apply_to_all` ([UInt8](/core/reference/data-types)) — Logical value. It shows which users the quota is applied to. Values: 0 — The quota applies to users specify in the apply_to_list. 1 — The quota applies to all users except those listed in apply_to_except. +- `apply_to_list` ([Array(String)](/core/reference/data-types)) — List of user names/roles that the quota should be applied to. +- `apply_to_except` ([Array(String)](/core/reference/data-types)) — List of user names/roles that the quota should not apply to. +{/*AUTOGENERATED_END*/} + +## See Also {#see-also} + +- [SHOW QUOTAS](/core/reference/statements/show#show-quotas) diff --git a/core/reference/system-tables/quotas_usage.mdx b/core/reference/system-tables/quotas_usage.mdx new file mode 100644 index 00000000..3edba00e --- /dev/null +++ b/core/reference/system-tables/quotas_usage.mdx @@ -0,0 +1,54 @@ +--- +description: 'System table containing formation about quota usage by all users.' +keywords: ['system table', 'quotas_usage', 'quota'] +slug: /operations/system-tables/quotas_usage +title: 'system.quotas_usage' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Quota usage by all users. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `quota_name` ([String](/core/reference/data-types)) — Quota name. +- `quota_key` ([String](/core/reference/data-types)) — Key value. +- `is_current` ([UInt8](/core/reference/data-types)) — Quota usage for current user. +- `start_time` ([Nullable(DateTime)](/core/reference/data-types)) — Start time for calculating resource consumption. +- `end_time` ([Nullable(DateTime)](/core/reference/data-types)) — End time for calculating resource consumption. +- `duration` ([Nullable(UInt32)](/core/reference/data-types)) — Length of the time interval for calculating resource consumption, in seconds. +- `queries` ([Nullable(UInt64)](/core/reference/data-types)) — The current number of executed queries. +- `max_queries` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum allowed number of queries of all types allowed to be executed. +- `query_selects` ([Nullable(UInt64)](/core/reference/data-types)) — The current number of executed SELECT queries. +- `max_query_selects` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum allowed number of SELECT queries allowed to be executed. +- `query_inserts` ([Nullable(UInt64)](/core/reference/data-types)) — The current number of executed INSERT queries. +- `max_query_inserts` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum allowed number of INSERT queries allowed to be executed. +- `errors` ([Nullable(UInt64)](/core/reference/data-types)) — The current number of queries resulted in an error. +- `max_errors` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of queries resulted in an error allowed within the specified period of time. +- `result_rows` ([Nullable(UInt64)](/core/reference/data-types)) — The current total number of rows in the result set of all queries within the current period of time. +- `max_result_rows` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum total number of rows in the result set of all queries allowed within the specified period of time. +- `result_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The current total number of bytes in the result set of all queries within the current period of time. +- `max_result_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum total number of bytes in the result set of all queries allowed within the specified period of time. +- `read_rows` ([Nullable(UInt64)](/core/reference/data-types)) — The current total number of rows read during execution of all queries within the current period of time. +- `max_read_rows` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of rows to read during execution of all queries allowed within the specified period of time. +- `read_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The current total number of bytes read during execution of all queries within the current period of time. +- `max_read_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of bytes to read during execution of all queries allowed within the specified period of time. +- `execution_time` ([Nullable(Float64)](/core/reference/data-types)) — The current total amount of time (in nanoseconds) spent to execute queries within the current period of time +- `max_execution_time` ([Nullable(Float64)](/core/reference/data-types)) — The maximum amount of time (in nanoseconds) allowed for all queries to execute within the specified period of time +- `written_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The current total number of bytes written during execution of all queries within the current period of time. +- `max_written_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of bytes to written during execution of all queries allowed within the specified period of time. +- `failed_sequential_authentications` ([Nullable(UInt64)](/core/reference/data-types)) — The current number of consecutive authentication failures within the current period of time. +- `max_failed_sequential_authentications` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of consecutive authentication failures allowed within the specified period of time. +- `queries_per_normalized_hash` ([Nullable(UInt64)](/core/reference/data-types)) — The current maximum number of executions of any single normalized query within the current period of time. +- `max_queries_per_normalized_hash` ([Nullable(UInt64)](/core/reference/data-types)) — The maximum number of executions of any single normalized query allowed within the specified period of time. +{/*AUTOGENERATED_END*/} + +## See Also {#see-also} + +- [SHOW QUOTA](/core/reference/statements/show#show-quota)) diff --git a/reference/system-tables/remote_data_paths.mdx b/core/reference/system-tables/remote_data_paths.mdx similarity index 52% rename from reference/system-tables/remote_data_paths.mdx rename to core/reference/system-tables/remote_data_paths.mdx index 88acf489..06308897 100644 --- a/reference/system-tables/remote_data_paths.mdx +++ b/core/reference/system-tables/remote_data_paths.mdx @@ -16,14 +16,14 @@ Each row represents one remote blob object associated with a data file. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `disk_name` ([String](/reference/data-types)) — Disk name. -- `path` ([String](/reference/data-types)) — Disk path. -- `cache_base_path` ([String](/reference/data-types)) — Base directory of cache files. -- `local_path` ([String](/reference/data-types)) — Path of ClickHouse file, also used as metadata path. -- `remote_path` ([String](/reference/data-types)) — Blob path in object storage, with which ClickHouse file is associated with. -- `size` ([UInt64](/reference/data-types)) — Size of the file (compressed). -- `common_prefix_for_blobs` ([String](/reference/data-types)) — Common prefix for blobs in object storage. -- `cache_paths` ([Array(String)](/reference/data-types)) — Cache files for corresponding blob. +- `disk_name` ([String](/core/reference/data-types)) — Disk name. +- `path` ([String](/core/reference/data-types)) — Disk path. +- `cache_base_path` ([String](/core/reference/data-types)) — Base directory of cache files. +- `local_path` ([String](/core/reference/data-types)) — Path of ClickHouse file, also used as metadata path. +- `remote_path` ([String](/core/reference/data-types)) — Blob path in object storage, with which ClickHouse file is associated with. +- `size` ([UInt64](/core/reference/data-types)) — Size of the file (compressed). +- `common_prefix_for_blobs` ([String](/core/reference/data-types)) — Common prefix for blobs in object storage. +- `cache_paths` ([Array(String)](/core/reference/data-types)) — Cache files for corresponding blob. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -47,6 +47,6 @@ cache_paths: ['/var/lib/clickhouse/disks/s3_cache/a1/b2/c3d4e5f6'] ## See Also {#see-also} -- [Using external storage for data storage](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3) -- [Configuring external storage](/concepts/features/configuration/server-config/storing-data#configuring-external-storage) -- [system.disks](/reference/system-tables/disks) +- [Using external storage for data storage](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3) +- [Configuring external storage](/core/concepts/features/configuration/server-config/storing-data#configuring-external-storage) +- [system.disks](/core/reference/system-tables/disks) diff --git a/core/reference/system-tables/replicas.mdx b/core/reference/system-tables/replicas.mdx new file mode 100644 index 00000000..741e3b88 --- /dev/null +++ b/core/reference/system-tables/replicas.mdx @@ -0,0 +1,105 @@ +--- +description: 'System table containing information about and status of replicated tables + residing on the local server. Useful for monitoring.' +keywords: ['system table', 'replicas'] +slug: /operations/system-tables/replicas +title: 'system.replicas' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information and status for replicated tables residing on the local server. +This table can be used for monitoring. The table contains a row for every Replicated\* table. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — Database name. +- `table` ([String](/core/reference/data-types)) — Table name. +- `uuid` ([UUID](/core/reference/data-types)) — Table UUID. +- `engine` ([String](/core/reference/data-types)) — Table engine name. +- `is_leader` ([UInt8](/core/reference/data-types)) — Whether the replica is the leader. Multiple replicas can be leaders at the same time. A replica can be prevented from becoming a leader using the merge_tree setting replicated_can_become_leader. The leaders are responsible for scheduling background merges. Note that writes can be performed to any replica that is available and has a session in ZK, regardless of whether it is a leader. +- `can_become_leader` ([UInt8](/core/reference/data-types)) — Whether the replica can be a leader. +- `is_readonly` ([UInt8](/core/reference/data-types)) — Whether the replica is in read-only mode. This mode is turned on if the config does not have sections with ClickHouse Keeper, if an unknown error occurred when reinitializing sessions in ClickHouse Keeper, and during session reinitialization in ClickHouse Keeper. +- `readonly_start_time` ([Nullable(DateTime)](/core/reference/data-types)) — The timestamp when the replica transitioned into readonly mode. Null if the replica is not in readonly mode. +- `is_session_expired` ([UInt8](/core/reference/data-types)) — Whether the session with ClickHouse Keeper has expired. Basically the same as `is_readonly`. +- `future_parts` ([UInt32](/core/reference/data-types)) — The number of data parts that will appear as the result of INSERTs or merges that haven't been done yet. +- `parts_to_check` ([UInt32](/core/reference/data-types)) — The number of data parts in the queue for verification. A part is put in the verification queue if there is suspicion that it might be damaged. +- `zookeeper_name` ([String](/core/reference/data-types)) — The name of the [Zoo]Keeper cluster (possibly auxiliary one) where the table's metadata is stored +- `zookeeper_path` ([String](/core/reference/data-types)) — Path to table data in ClickHouse Keeper. +- `replica_name` ([String](/core/reference/data-types)) — Replica name in ClickHouse Keeper. Different replicas of the same table have different names. +- `replica_path` ([String](/core/reference/data-types)) — Path to replica data in ClickHouse Keeper. The same as concatenating 'zookeeper_path/replicas/replica_path'. +- `columns_version` ([Int32](/core/reference/data-types)) — Version number of the table structure. Indicates how many times ALTER was performed. If replicas have different versions, it means some replicas haven't made all of the ALTERs yet. +- `queue_size` ([UInt32](/core/reference/data-types)) — Size of the queue for operations waiting to be performed. Operations include inserting blocks of data, merges, and certain other actions. It usually coincides with future_parts. +- `inserts_in_queue` ([UInt32](/core/reference/data-types)) — Number of inserts of blocks of data that need to be made. Insertions are usually replicated fairly quickly. If this number is large, it means something is wrong. +- `merges_in_queue` ([UInt32](/core/reference/data-types)) — The number of merges waiting to be made. Sometimes merges are lengthy, so this value may be greater than zero for a long time. +- `part_mutations_in_queue` ([UInt32](/core/reference/data-types)) — The number of mutations waiting to be made. +- `queue_oldest_time` ([DateTime](/core/reference/data-types)) — If `queue_size` greater than 0, shows when the oldest operation was added to the queue. +- `inserts_oldest_time` ([DateTime](/core/reference/data-types)) — See `queue_oldest_time`. +- `merges_oldest_time` ([DateTime](/core/reference/data-types)) — See `queue_oldest_time`. +- `part_mutations_oldest_time` ([DateTime](/core/reference/data-types)) — See `queue_oldest_time`. +- `oldest_part_to_get` ([String](/core/reference/data-types)) — The name of the part to fetch from other replicas obtained from the oldest GET_PARTS entry in the replication queue. +- `oldest_part_to_merge_to` ([String](/core/reference/data-types)) — The result part name to merge to obtained from the oldest MERGE_PARTS entry in the replication queue. +- `oldest_part_to_mutate_to` ([String](/core/reference/data-types)) — The result part name to mutate to obtained from the oldest MUTATE_PARTS entry in the replication queue. +- `log_max_index` ([UInt64](/core/reference/data-types)) — Maximum entry number in the log of general activity. This column and the next three (`log_pointer`, `total_replicas`, `active_replicas`) have a non-zero value only where there is an active session with ClickHouse Keeper. +- `log_pointer` ([UInt64](/core/reference/data-types)) — Maximum entry number in the log of general activity that the replica copied to its execution queue, plus one. If log_pointer is much smaller than log_max_index, something is wrong. +- `last_queue_update` ([DateTime](/core/reference/data-types)) — When the queue was updated last time. +- `absolute_delay` ([UInt64](/core/reference/data-types)) — How big lag in seconds the current replica has. +- `total_replicas` ([UInt32](/core/reference/data-types)) — The total number of known replicas of this table. +- `active_replicas` ([UInt32](/core/reference/data-types)) — The number of replicas of this table that have a session in ClickHouse Keeper (i.e., the number of functioning replicas). +- `lost_part_count` ([UInt64](/core/reference/data-types)) — The number of data parts lost in the table by all replicas in total since table creation. Value is persisted in ClickHouse Keeper and can only increase. +- `last_queue_update_exception` ([String](/core/reference/data-types)) — When the queue contains broken entries. Especially important when ClickHouse breaks backward compatibility between versions and log entries written by newer versions aren't parseable by old versions. +- `zookeeper_exception` ([String](/core/reference/data-types)) — The last exception message, got if the error happened when fetching the info from ClickHouse Keeper. +- `replica_is_active` ([Map(String, UInt8)](/core/reference/data-types)) — Map between replica name and is replica active. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * +FROM system.replicas +WHERE table = 'test_table' +FORMAT Vertical +``` + +```text +Query id: dc6dcbcb-dc28-4df9-ae27-4354f5b3b13e + +Row 1: +─────── +database: db +table: test_table +engine: ReplicatedMergeTree +is_leader: 1 +can_become_leader: 1 +is_readonly: 0 +is_session_expired: 0 +future_parts: 0 +parts_to_check: 0 +zookeeper_path: /test/test_table +replica_name: r1 +replica_path: /test/test_table/replicas/r1 +columns_version: -1 +queue_size: 27 +inserts_in_queue: 27 +merges_in_queue: 0 +part_mutations_in_queue: 0 +queue_oldest_time: 2021-10-12 14:48:48 +inserts_oldest_time: 2021-10-12 14:48:48 +merges_oldest_time: 1970-01-01 03:00:00 +part_mutations_oldest_time: 1970-01-01 03:00:00 +oldest_part_to_get: 1_17_17_0 +oldest_part_to_merge_to: +oldest_part_to_mutate_to: +log_max_index: 206 +log_pointer: 207 +last_queue_update: 2021-10-12 14:50:08 +absolute_delay: 99 +total_replicas: 5 +active_replicas: 5 +lost_part_count: 0 +last_queue_update_exception: +zookeeper_exception: +replica_is_active: {'r1':1,'r2':1} +``` diff --git a/core/reference/system-tables/replicated_fetches.mdx b/core/reference/system-tables/replicated_fetches.mdx new file mode 100644 index 00000000..0790b4ed --- /dev/null +++ b/core/reference/system-tables/replicated_fetches.mdx @@ -0,0 +1,68 @@ +--- +description: 'System table containing information about currently running background + fetches.' +keywords: ['system table', 'replicated_fetches'] +slug: /operations/system-tables/replicated_fetches +title: 'system.replicated_fetches' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about currently running background fetches. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — Name of the database. +- `table` ([String](/core/reference/data-types)) — Name of the table. +- `elapsed` ([Float64](/core/reference/data-types)) — The time elapsed (in seconds) since showing currently running background fetches started. +- `progress` ([Float64](/core/reference/data-types)) — The percentage of completed work from 0 to 1. +- `result_part_name` ([String](/core/reference/data-types)) — The name of the part that will be formed as the result of showing currently running background fetches. +- `result_part_path` ([String](/core/reference/data-types)) — Absolute path to the part that will be formed as the result of showing currently running background fetches. +- `partition_id` ([String](/core/reference/data-types)) — ID of the partition. +- `total_size_bytes_compressed` ([UInt64](/core/reference/data-types)) — The total size (in bytes) of the compressed data in the result part. +- `bytes_read_compressed` ([UInt64](/core/reference/data-types)) — The number of compressed bytes read from the result part. +- `source_replica_path` ([String](/core/reference/data-types)) — Absolute path to the source replica. +- `source_replica_hostname` ([String](/core/reference/data-types)) — Hostname of the source replica. +- `source_replica_port` ([UInt16](/core/reference/data-types)) — Port number of the source replica. +- `interserver_scheme` ([String](/core/reference/data-types)) — Name of the interserver scheme. +- `URI` ([String](/core/reference/data-types)) — Uniform resource identifier. +- `to_detached` ([UInt8](/core/reference/data-types)) — The flag indicates whether the currently running background fetch is being performed using the TO DETACHED expression. +- `thread_id` ([UInt64](/core/reference/data-types)) — Thread identifier. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.replicated_fetches LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +database: default +table: t +elapsed: 7.243039876 +progress: 0.41832135995612835 +result_part_name: all_0_0_0 +result_part_path: /var/lib/clickhouse/store/700/70080a04-b2de-4adf-9fa5-9ea210e81766/all_0_0_0/ +partition_id: all +total_size_bytes_compressed: 1052783726 +bytes_read_compressed: 440401920 +source_replica_path: /clickhouse/test/t/replicas/1 +source_replica_hostname: node1 +source_replica_port: 9009 +interserver_scheme: http +URI: http://node1:9009/?endpoint=DataPartsExchange%3A%2Fclickhouse%2Ftest%2Ft%2Freplicas%2F1&part=all_0_0_0&client_protocol_version=4&compress=false +to_detached: 0 +thread_id: 54 +``` + +## See Also {#see-also} + +- [Managing ReplicatedMergeTree Tables](/core/reference/statements/system#managing-replicatedmergetree-tables) diff --git a/reference/system-tables/replicated_merge_tree_settings.mdx b/core/reference/system-tables/replicated_merge_tree_settings.mdx similarity index 53% rename from reference/system-tables/replicated_merge_tree_settings.mdx rename to core/reference/system-tables/replicated_merge_tree_settings.mdx index 53b3f699..58f51de3 100644 --- a/reference/system-tables/replicated_merge_tree_settings.mdx +++ b/core/reference/system-tables/replicated_merge_tree_settings.mdx @@ -13,18 +13,18 @@ Contains a list of all ReplicatedMergeTree engine specific settings, their curre ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Setting name. -- `value` ([String](/reference/data-types)) — Setting value. -- `default` ([String](/reference/data-types)) — Setting default value. -- `changed` ([UInt8](/reference/data-types)) — 1 if the setting was explicitly defined in the config or explicitly changed. -- `description` ([String](/reference/data-types)) — Setting description. -- `min` ([Nullable(String)](/reference/data-types)) — Minimum value of the setting, if any is set via constraints. If the setting has no minimum value, contains NULL. -- `max` ([Nullable(String)](/reference/data-types)) — Maximum value of the setting, if any is set via constraints. If the setting has no maximum value, contains NULL. -- `disallowed_values` ([Array(String)](/reference/data-types)) — List of disallowed values -- `readonly` ([UInt8](/reference/data-types)) — Shows whether the current user can change the setting: 0 — Current user can change the setting, 1 — Current user can't change the setting. -- `type` ([String](/reference/data-types)) — Setting type (implementation specific string value). -- `is_obsolete` ([UInt8](/reference/data-types)) — Shows whether a setting is obsolete. -- `tier` ([Enum8('Production' = 0, 'Obsolete' = 4, 'Experimental' = 8, 'Beta' = 12)](/reference/data-types)) — +- `name` ([String](/core/reference/data-types)) — Setting name. +- `value` ([String](/core/reference/data-types)) — Setting value. +- `default` ([String](/core/reference/data-types)) — Setting default value. +- `changed` ([UInt8](/core/reference/data-types)) — 1 if the setting was explicitly defined in the config or explicitly changed. +- `description` ([String](/core/reference/data-types)) — Setting description. +- `min` ([Nullable(String)](/core/reference/data-types)) — Minimum value of the setting, if any is set via constraints. If the setting has no minimum value, contains NULL. +- `max` ([Nullable(String)](/core/reference/data-types)) — Maximum value of the setting, if any is set via constraints. If the setting has no maximum value, contains NULL. +- `disallowed_values` ([Array(String)](/core/reference/data-types)) — List of disallowed values +- `readonly` ([UInt8](/core/reference/data-types)) — Shows whether the current user can change the setting: 0 — Current user can change the setting, 1 — Current user can't change the setting. +- `type` ([String](/core/reference/data-types)) — Setting type (implementation specific string value). +- `is_obsolete` ([UInt8](/core/reference/data-types)) — Shows whether a setting is obsolete. +- `tier` ([Enum8('Production' = 0, 'Obsolete' = 4, 'Experimental' = 8, 'Beta' = 12)](/core/reference/data-types)) — Support level for this feature. ClickHouse features are organized in tiers, varying depending on the current status of their development and the expectations one might have when using them: * PRODUCTION: The feature is stable, safe to use and does not have issues interacting with other PRODUCTION features. diff --git a/core/reference/system-tables/replication_queue.mdx b/core/reference/system-tables/replication_queue.mdx new file mode 100644 index 00000000..10afc913 --- /dev/null +++ b/core/reference/system-tables/replication_queue.mdx @@ -0,0 +1,73 @@ +--- +description: 'System table containing information about tasks from replication queues + stored in ClickHouse Keeper, or ZooKeeper, for tables in the `ReplicatedMergeTree` + family.' +keywords: ['system table', 'replication_queue'] +slug: /operations/system-tables/replication_queue +title: 'system.replication_queue' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about tasks from replication queues stored in ClickHouse Keeper, or ZooKeeper, for tables in the `ReplicatedMergeTree` family. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — Name of the database. +- `table` ([String](/core/reference/data-types)) — Name of the table. +- `replica_name` ([String](/core/reference/data-types)) — Replica name in ClickHouse Keeper. Different replicas of the same table have different names. +- `position` ([UInt32](/core/reference/data-types)) — Position of the task in the queue. +- `node_name` ([String](/core/reference/data-types)) — Node name in ClickHouse Keeper. +- `type` ([String](/core/reference/data-types)) — Type of the task in the queue, one of: • GET_PART — Get the part from another replica, • ATTACH_PART — Attach the part, possibly from our own replica (if found in the detached folder). You may think of it as a GET_PART with some optimizations as they're nearly identical, • MERGE_PARTS — Merge the parts, • DROP_RANGE — Delete the parts in the specified partition in the specified number range. • CLEAR_COLUMN — NOTE: Deprecated. Drop specific column from specified partition. • CLEAR_INDEX — NOTE: Deprecated. Drop specific index from specified partition. • REPLACE_RANGE — Drop a certain range of parts and replace them with new ones. • MUTATE_PART — Apply one or several mutations to the part. • ALTER_METADATA — Apply alter modification according to global /metadata and /columns paths. +- `create_time` ([DateTime](/core/reference/data-types)) — Date and time when the task was submitted for execution. +- `required_quorum` ([UInt32](/core/reference/data-types)) — The number of replicas waiting for the task to complete with confirmation of completion. This column is only relevant for the GET_PARTS task. +- `source_replica` ([String](/core/reference/data-types)) — Name of the source replica. +- `new_part_name` ([String](/core/reference/data-types)) — Name of the new part. +- `parts_to_merge` ([Array(String)](/core/reference/data-types)) — Names of parts to merge or update. +- `is_detach` ([UInt8](/core/reference/data-types)) — The flag indicates whether the DETACH_PARTS task is in the queue. +- `is_currently_executing` ([UInt8](/core/reference/data-types)) — The flag indicates whether a specific task is being performed right now. +- `num_tries` ([UInt32](/core/reference/data-types)) — The number of failed attempts to complete the task. +- `last_exception` ([String](/core/reference/data-types)) — Text message about the last error that occurred (if any). +- `last_exception_time` ([DateTime](/core/reference/data-types)) — Date and time when the last error occurred. +- `last_attempt_time` ([DateTime](/core/reference/data-types)) — Date and time when the task was last attempted. +- `num_postponed` ([UInt32](/core/reference/data-types)) — The number of times the action was postponed. +- `postpone_reason` ([String](/core/reference/data-types)) — The reason why the task was postponed. +- `last_postpone_time` ([DateTime](/core/reference/data-types)) — Date and time when the task was last postponed. +- `merge_type` ([String](/core/reference/data-types)) — Type of the current merge. Empty if it's a mutation. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.replication_queue LIMIT 1 FORMAT Vertical; +``` + +```text +Row 1: +────── +database: merge +table: visits_v2 +replica_name: mtgiga001-1t +position: 15 +node_name: queue-0009325559 +type: MERGE_PARTS +create_time: 2020-12-07 14:04:21 +required_quorum: 0 +source_replica: mtgiga001-1t +new_part_name: 20201130_121373_121384_2 +parts_to_merge: ['20201130_121373_121378_1','20201130_121379_121379_0','20201130_121380_121380_0','20201130_121381_121381_0','20201130_121382_121382_0','20201130_121383_121383_0','20201130_121384_121384_0'] +is_detach: 0 +is_currently_executing: 0 +num_tries: 36 +last_exception: Code: 226, e.displayText() = DB::Exception: Marks file '/opt/clickhouse/data/merge/visits_v2/tmp_fetch_20201130_121373_121384_2/CounterID.mrk' does not exist (version 20.8.7.15 (official build)) +last_attempt_time: 2020-12-08 17:35:54 +num_postponed: 0 +postpone_reason: +last_postpone_time: 1970-01-01 03:00:00 +``` + +## See Also {#see-also} + +- [Managing ReplicatedMergeTree Tables](/core/reference/statements/system#managing-replicatedmergetree-tables) diff --git a/core/reference/system-tables/resources.mdx b/core/reference/system-tables/resources.mdx new file mode 100644 index 00000000..a9210700 --- /dev/null +++ b/core/reference/system-tables/resources.mdx @@ -0,0 +1,46 @@ +--- +description: 'System table containing information about resources residing on the + local server with one row for every resource.' +keywords: ['system table', 'resources'] +slug: /operations/system-tables/resources +title: 'system.resources' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about [resources](/core/concepts/features/configuration/server-config/workload-scheduling#workload_entity_storage) residing on the local server. The table contains a row for every resource. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `name` ([String](/core/reference/data-types)) — The name of the resource. +- `read_disks` ([Array(String)](/core/reference/data-types)) — The list of disk names that uses this resource for read operations. +- `write_disks` ([Array(String)](/core/reference/data-types)) — The list of disk names that uses this resource for write operations. +- `unit` ([String](/core/reference/data-types)) — Resource unit used for cost measurements. +- `create_query` ([String](/core/reference/data-types)) — CREATE query of the resource. +{/*AUTOGENERATED_END*/} + +Example: + +```sql +SELECT * +FROM system.resources +FORMAT Vertical +``` + +```text +Row 1: +────── +name: io_read +read_disks: ['s3'] +write_disks: [] +create_query: CREATE RESOURCE io_read (READ DISK s3) + +Row 2: +────── +name: io_write +read_disks: [] +write_disks: ['s3'] +create_query: CREATE RESOURCE io_write (WRITE DISK s3) +``` diff --git a/reference/system-tables/rocksdb.mdx b/core/reference/system-tables/rocksdb.mdx similarity index 54% rename from reference/system-tables/rocksdb.mdx rename to core/reference/system-tables/rocksdb.mdx index 6bfad346..867b8cb8 100644 --- a/reference/system-tables/rocksdb.mdx +++ b/core/reference/system-tables/rocksdb.mdx @@ -13,8 +13,8 @@ Contains a list of metrics exposed from embedded RocksDB. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Database name. -- `table` ([String](/reference/data-types)) — Name of the table with StorageEmbeddedRocksDB engine. -- `name` ([String](/reference/data-types)) — Metric name. -- `value` ([UInt64](/reference/data-types)) — Metric value. +- `database` ([String](/core/reference/data-types)) — Database name. +- `table` ([String](/core/reference/data-types)) — Name of the table with StorageEmbeddedRocksDB engine. +- `name` ([String](/core/reference/data-types)) — Metric name. +- `value` ([UInt64](/core/reference/data-types)) — Metric value. {/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/role_grants.mdx b/core/reference/system-tables/role_grants.mdx new file mode 100644 index 00000000..9275d5a8 --- /dev/null +++ b/core/reference/system-tables/role_grants.mdx @@ -0,0 +1,22 @@ +--- +description: 'System table containing the role grants for users and roles.' +keywords: ['system table', 'role_grants'] +slug: /operations/system-tables/role_grants +title: 'system.role_grants' +doc_type: 'reference' +--- + +## Description {#description} + +Contains the role grants for users and roles. To add entries to this table, use `GRANT role TO user`. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `user_name` ([Nullable(String)](/core/reference/data-types)) — User name. +- `role_name` ([Nullable(String)](/core/reference/data-types)) — Role name. +- `granted_role_name` ([String](/core/reference/data-types)) — Name of role granted to the `role_name` role. To grant one role to another one use `GRANT role1 TO role2`. +- `granted_role_id` ([UUID](/core/reference/data-types)) — The ID of the role. +- `granted_role_is_default` ([UInt8](/core/reference/data-types)) — Flag that shows whether `granted_role` is a default role. Possible values: • 1 — `granted_role` is a default role, • 0 — `granted_role` is not a default role. +- `with_admin_option` ([UInt8](/core/reference/data-types)) — Flag that shows whether `granted_role` is a role with `ADMIN OPTION` privilege. Possible values: • 1 — The role has `ADMIN OPTION` privilege.• 0 — The role without `ADMIN OPTION` privilege. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/roles.mdx b/core/reference/system-tables/roles.mdx new file mode 100644 index 00000000..fad89c61 --- /dev/null +++ b/core/reference/system-tables/roles.mdx @@ -0,0 +1,23 @@ +--- +description: 'System table containing information about configured roles.' +keywords: ['system table', 'roles'] +slug: /operations/system-tables/roles +title: 'system.roles' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about configured [roles](/core/concepts/features/security/access-rights#role-management). + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `name` ([String](/core/reference/data-types)) — Role name. +- `id` ([UUID](/core/reference/data-types)) — Role ID. +- `storage` ([String](/core/reference/data-types)) — Path to the storage of roles. Configured in the `access_control_path` parameter. +{/*AUTOGENERATED_END*/} + +## See Also {#see-also} + +- [SHOW ROLES](/core/reference/statements/show#show-roles) diff --git a/core/reference/system-tables/row_policies.mdx b/core/reference/system-tables/row_policies.mdx new file mode 100644 index 00000000..c0b6f09c --- /dev/null +++ b/core/reference/system-tables/row_policies.mdx @@ -0,0 +1,32 @@ +--- +description: 'System table containing filters for one particular table, as well as + a list of roles and/or users which should use this row policy.' +keywords: ['system table', 'row_policies'] +slug: /operations/system-tables/row_policies +title: 'system.row_policies' +doc_type: 'reference' +--- + +## Description {#description} + +Contains filters for one particular table, as well as a list of roles and/or users which should use this row policy. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `name` ([String](/core/reference/data-types)) — Name of a row policy. +- `short_name` ([String](/core/reference/data-types)) — Short name of a row policy. Names of row policies are compound, for example: myfilter ON mydb.mytable. Here 'myfilter ON mydb.mytable' is the name of the row policy, 'myfilter' is it's short name. +- `database` ([String](/core/reference/data-types)) — Database name. +- `table` ([String](/core/reference/data-types)) — Table name. Empty if policy for database. +- `id` ([UUID](/core/reference/data-types)) — Row policy ID. +- `storage` ([String](/core/reference/data-types)) — Name of the directory where the row policy is stored. +- `select_filter` ([Nullable(String)](/core/reference/data-types)) — Expression which is used for filtering in SELECT queries. +- `is_restrictive` ([UInt8](/core/reference/data-types)) — Shows whether the row policy restricts access to rows. Value: • 0 — The row policy is defined with `AS PERMISSIVE` clause, • 1 — The row policy is defined with AS RESTRICTIVE clause. +- `apply_to_all` ([UInt8](/core/reference/data-types)) — Shows that the row policies set for all roles and/or users. +- `apply_to_list` ([Array(String)](/core/reference/data-types)) — List of the roles and/or users to which the row policies is applied. +- `apply_to_except` ([Array(String)](/core/reference/data-types)) — The row policies is applied to all roles and/or users excepting of the listed ones. +{/*AUTOGENERATED_END*/} + +## See Also {#see-also} + +- [SHOW POLICIES](/core/reference/statements/show#show-policies) diff --git a/core/reference/system-tables/s3_queue_settings.mdx b/core/reference/system-tables/s3_queue_settings.mdx new file mode 100644 index 00000000..9ee533f1 --- /dev/null +++ b/core/reference/system-tables/s3_queue_settings.mdx @@ -0,0 +1,25 @@ +--- +description: 'System table containing information about the settings of S3Queue tables. + Available from server version `24.10`.' +keywords: ['system table', 's3_queue_settings'] +slug: /operations/system-tables/s3_queue_settings +title: 'system.s3_queue_settings' +doc_type: 'reference' +--- + +## Description {#description} + +Contains information about the settings of [S3Queue](/core/reference/engines/table-engines/integrations/s3queue) tables. Available from server version `24.10`. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — Database of the table with S3Queue engine. +- `table` ([String](/core/reference/data-types)) — Name of the table with S3Queue engine. +- `name` ([String](/core/reference/data-types)) — Setting name. +- `value` ([String](/core/reference/data-types)) — Setting value. +- `type` ([String](/core/reference/data-types)) — Setting type (implementation specific string value). +- `changed` ([UInt8](/core/reference/data-types)) — 1 if the setting was explicitly defined in the config or explicitly changed. +- `description` ([String](/core/reference/data-types)) — Setting description. +- `alterable` ([UInt8](/core/reference/data-types)) — Shows whether the current user can change the setting via ALTER TABLE MODIFY SETTING: 0 — Current user can't change the setting, 1 — Current user can change the setting. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/s3queue_log.mdx b/core/reference/system-tables/s3queue_log.mdx new file mode 100644 index 00000000..bc1cc30a --- /dev/null +++ b/core/reference/system-tables/s3queue_log.mdx @@ -0,0 +1,34 @@ +--- +description: 'Contains log entries with information about files processed by the S3Queue engine. + +It is safe to truncate or drop this table at any time.' +keywords: ['system table', 's3queue_log'] +slug: /operations/system-tables/s3queue_log +title: 'system.s3queue_log' +doc_type: 'reference' +--- + +Contains log entries with information about files processed by the S3Queue engine. + +It is safe to truncate or drop this table at any time. + +Columns: + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname +- `event_date` ([Date](/core/reference/data-types/date)) — Event date of writing this log row +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Event time of writing this log row +- `database` ([String](/core/reference/data-types/string)) — The name of the database where the queue table (`S3Queue` or `AzureQueue`) lives. +- `table` ([String](/core/reference/data-types/string)) — The name of the queue table (`S3Queue` or `AzureQueue`). +- `uuid` ([String](/core/reference/data-types/string)) — The UUID of the queue table (`S3Queue` or `AzureQueue`). +- `file_name` ([String](/core/reference/data-types/string)) — File name of the processing file. +- `rows_processed` ([UInt64](/core/reference/data-types/int-uint)) — Number of processed rows. +- `status` ([Enum8('Processed' = 0, 'Failed' = 1)](/core/reference/data-types/enum)) — Status of the processing file. +- `processing_start_time` ([Nullable(DateTime)](/core/reference/data-types/nullable)) — Time of the start of processing the file. +- `processing_end_time` ([Nullable(DateTime)](/core/reference/data-types/nullable)) — Time of the end of processing the file. +- `exception` ([String](/core/reference/data-types/string)) — Exception message if happened. +- `commit_id` ([UInt64](/core/reference/data-types/int-uint)) — Id of the transaction in which this file was committed. +- `commit_time` ([DateTime](/core/reference/data-types/datetime)) — Time of committing file in keeper (as either failed or processed). +- `transaction_start_time` ([DateTime](/core/reference/data-types/datetime)) — Time when the whole processing transaction started. +- `get_object_time_ms` ([UInt64](/core/reference/data-types/int-uint)) — Time which took us to find the object in object storage. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/s3queue_metadata_cache.mdx b/core/reference/system-tables/s3queue_metadata_cache.mdx new file mode 100644 index 00000000..30e119af --- /dev/null +++ b/core/reference/system-tables/s3queue_metadata_cache.mdx @@ -0,0 +1,24 @@ +--- +description: 'Contains in-memory state of S3Queue metadata and currently processed rows per file.' +keywords: ['system table', 's3queue_metadata_cache'] +slug: /operations/system-tables/s3queue_metadata_cache +title: 'system.s3queue_metadata_cache' +doc_type: 'reference' +--- + +## Description {#description} + +Contains in-memory state of S3Queue metadata and currently processed rows per file. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `zookeeper_path` ([String](/core/reference/data-types)) — Path in zookeeper to metadata +- `file_path` ([String](/core/reference/data-types)) — File path of a file which is being processed +- `file_name` ([String](/core/reference/data-types)) — File name of a file which is being processed +- `rows_processed` ([UInt64](/core/reference/data-types)) — Currently processed number of rows +- `status` ([String](/core/reference/data-types)) — Status of processing: Processed, Processing, Failed +- `processing_start_time` ([Nullable(DateTime)](/core/reference/data-types)) — Time at which processing of the file started +- `processing_end_time` ([Nullable(DateTime)](/core/reference/data-types)) — Time at which processing of the file ended +- `exception` ([String](/core/reference/data-types)) — Exception which happened during processing +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/scheduler.mdx b/core/reference/system-tables/scheduler.mdx new file mode 100644 index 00000000..08f8bb7a --- /dev/null +++ b/core/reference/system-tables/scheduler.mdx @@ -0,0 +1,89 @@ +--- +description: 'System table containing information about and status of scheduling nodes + residing on the local server.' +keywords: ['system table', 'scheduler'] +slug: /operations/system-tables/scheduler +title: 'system.scheduler' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about and status of [scheduling nodes](/core/concepts/features/configuration/server-config/workload-scheduling#hierarchy) residing on the local server. +This table can be used for monitoring. The table contains a row for every scheduling node. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `resource` ([String](/core/reference/data-types)) — Resource name +- `path` ([String](/core/reference/data-types)) — Path to a scheduling node within this resource scheduling hierarchy +- `type` ([String](/core/reference/data-types)) — Type of a scheduling node. +- `weight` ([Float64](/core/reference/data-types)) — Weight of a node, used by a parent node of `fair` type. +- `priority` ([Int64](/core/reference/data-types)) — Priority of a node, used by a parent node of 'priority' type (Lower value means higher priority). +- `is_active` ([UInt8](/core/reference/data-types)) — Whether this node is currently active - has resource requests to be dequeued and constraints satisfied. +- `active_children` ([UInt64](/core/reference/data-types)) — The number of children in active state. +- `dequeued_requests` ([UInt64](/core/reference/data-types)) — The total number of resource requests dequeued from this node. +- `canceled_requests` ([UInt64](/core/reference/data-types)) — The total number of resource requests canceled from this node. +- `dequeued_cost` ([Int64](/core/reference/data-types)) — The sum of costs (e.g. size in bytes) of all requests dequeued from this node. +- `throughput` ([Float64](/core/reference/data-types)) — Current average throughput (dequeued cost per second). +- `canceled_cost` ([Int64](/core/reference/data-types)) — The sum of costs (e.g. size in bytes) of all requests canceled from this node. +- `busy_periods` ([UInt64](/core/reference/data-types)) — The total number of deactivations of this node. +- `vruntime` ([Nullable(Float64)](/core/reference/data-types)) — For children of `fair` nodes only. Virtual runtime of a node used by SFQ algorithm to select the next child to process in a max-min fair manner. +- `system_vruntime` ([Nullable(Float64)](/core/reference/data-types)) — For `fair` nodes only. Virtual runtime showing `vruntime` of the last processed resource request. Used during child activation as the new value of `vruntime`. +- `queue_length` ([Nullable(UInt64)](/core/reference/data-types)) — For `fifo` nodes only. Current number of resource requests residing in the queue. +- `queue_cost` ([Nullable(Int64)](/core/reference/data-types)) — For fifo nodes only. Sum of costs (e.g. size in bytes) of all requests residing in the queue. +- `budget` ([Nullable(Int64)](/core/reference/data-types)) — For fifo nodes only. The number of available 'cost units' for new resource requests. Can appear in case of discrepancy of estimated and real costs of resource requests (e.g. after read/write failure) +- `is_satisfied` ([Nullable(UInt8)](/core/reference/data-types)) — For constraint nodes only (e.g. `inflight_limit`). Equals to `1` if all the constraint of this node are satisfied. +- `inflight_requests` ([Nullable(Int64)](/core/reference/data-types)) — For `inflight_limit` nodes only. The number of resource requests dequeued from this node, that are currently in consumption state. +- `inflight_cost` ([Nullable(Int64)](/core/reference/data-types)) — For `inflight_limit` nodes only. The sum of costs (e.g. bytes) of all resource requests dequeued from this node, that are currently in consumption state. +- `max_requests` ([Nullable(Int64)](/core/reference/data-types)) — For `inflight_limit` nodes only. Upper limit for inflight_requests leading to constraint violation. +- `max_cost` ([Nullable(Int64)](/core/reference/data-types)) — For `inflight_limit` nodes only. Upper limit for inflight_cost leading to constraint violation. +- `max_speed` ([Nullable(Float64)](/core/reference/data-types)) — For `bandwidth_limit` nodes only. Upper limit for bandwidth in tokens per second. +- `max_burst` ([Nullable(Float64)](/core/reference/data-types)) — For `bandwidth_limit` nodes only. Upper limit for tokens available in token-bucket throttler. +- `throttling_us` ([Nullable(Int64)](/core/reference/data-types)) — For `bandwidth_limit` nodes only. Total number of microseconds this node was in throttling state. +- `tokens` ([Nullable(Float64)](/core/reference/data-types)) — For `bandwidth_limit` nodes only. Number of tokens currently available in token-bucket throttler. +{/*AUTOGENERATED_END*/} + +Example: + +```sql +SELECT * +FROM system.scheduler +WHERE resource = 'network_read' AND path = '/prio/fair/prod' +FORMAT Vertical +``` + +```text +Row 1: +────── +resource: network_read +path: /prio/fair/prod +type: fifo +weight: 5 +priority: 0 +is_active: 0 +active_children: 0 +dequeued_requests: 67 +canceled_requests: 0 +dequeued_cost: 4692272 +canceled_cost: 0 +busy_periods: 63 +vruntime: 938454.1999999989 +system_vruntime: ᴺᵁᴸᴸ +queue_length: 0 +queue_cost: 0 +budget: -60524 +is_satisfied: ᴺᵁᴸᴸ +inflight_requests: ᴺᵁᴸᴸ +inflight_cost: ᴺᵁᴸᴸ +max_requests: ᴺᵁᴸᴸ +max_cost: ᴺᵁᴸᴸ +max_speed: ᴺᵁᴸᴸ +max_burst: ᴺᵁᴸᴸ +throttling_us: ᴺᵁᴸᴸ +tokens: ᴺᵁᴸᴸ +``` diff --git a/reference/system-tables/schema_inference_cache.mdx b/core/reference/system-tables/schema_inference_cache.mdx similarity index 75% rename from reference/system-tables/schema_inference_cache.mdx rename to core/reference/system-tables/schema_inference_cache.mdx index 7c39fbf0..7a2cce04 100644 --- a/reference/system-tables/schema_inference_cache.mdx +++ b/core/reference/system-tables/schema_inference_cache.mdx @@ -17,14 +17,14 @@ Contains information about all cached file schemas. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `storage` ([String](/reference/data-types)) — Storage name: File, URL, S3 or HDFS. -- `source` ([String](/reference/data-types)) — File source. -- `format` ([String](/reference/data-types)) — Format name. -- `additional_format_info` ([String](/reference/data-types)) — Additional information required to identify the schema. For example, format specific settings. -- `registration_time` ([DateTime](/reference/data-types)) — Timestamp when schema was added in cache. -- `schema` ([Nullable(String)](/reference/data-types)) — Cached schema. -- `number_of_rows` ([Nullable(UInt64)](/reference/data-types)) — Number of rows in the file in given format. It's used for caching trivial count() from data files and for caching number of rows from the metadata during schema inference. -- `schema_inference_mode` ([Nullable(String)](/reference/data-types)) — Scheme inference mode. +- `storage` ([String](/core/reference/data-types)) — Storage name: File, URL, S3 or HDFS. +- `source` ([String](/core/reference/data-types)) — File source. +- `format` ([String](/core/reference/data-types)) — Format name. +- `additional_format_info` ([String](/core/reference/data-types)) — Additional information required to identify the schema. For example, format specific settings. +- `registration_time` ([DateTime](/core/reference/data-types)) — Timestamp when schema was added in cache. +- `schema` ([Nullable(String)](/core/reference/data-types)) — Cached schema. +- `number_of_rows` ([Nullable(UInt64)](/core/reference/data-types)) — Number of rows in the file in given format. It's used for caching trivial count() from data files and for caching number of rows from the metadata during schema inference. +- `schema_inference_mode` ([Nullable(String)](/core/reference/data-types)) — Scheme inference mode. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -79,4 +79,4 @@ schema: id Nullable(Float64), age Nullable(Float64), name Nullab ``` ## See Also {#see-also} -- [Automatic schema inference from input data](/integrations/connectors/data-integrations/drivers-and-interfaces/schema-inference) +- [Automatic schema inference from input data](/core/concepts/features/interfaces/schema-inference) diff --git a/reference/system-tables/server_settings.mdx b/core/reference/system-tables/server_settings.mdx similarity index 86% rename from reference/system-tables/server_settings.mdx rename to core/reference/system-tables/server_settings.mdx index a913da93..ef260368 100644 --- a/reference/system-tables/server_settings.mdx +++ b/core/reference/system-tables/server_settings.mdx @@ -14,19 +14,19 @@ import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; ## Description {#description} Contains information about global settings for the server, which are specified in `config.xml`. -Currently, the table shows only settings from the first layer of `config.xml` and doesn't support nested configs (e.g. [logger](/reference/settings/server-settings/settings#logger)). +Currently, the table shows only settings from the first layer of `config.xml` and doesn't support nested configs (e.g. [logger](/core/reference/settings/server-settings/settings#logger)). ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Server setting name. -- `value` ([String](/reference/data-types)) — Server setting value. -- `default` ([String](/reference/data-types)) — Server setting default value. -- `changed` ([UInt8](/reference/data-types)) — Shows whether a setting was specified in config.xml -- `description` ([String](/reference/data-types)) — Short server setting description. -- `type` ([String](/reference/data-types)) — Server setting value type. -- `changeable_without_restart` ([Enum8('No' = 0, 'IncreaseOnly' = 1, 'DecreaseOnly' = 2, 'Yes' = 3)](/reference/data-types)) — Shows whether a setting can be changed at runtime. -- `is_obsolete` ([UInt8](/reference/data-types)) — Shows whether a setting is obsolete. +- `name` ([String](/core/reference/data-types)) — Server setting name. +- `value` ([String](/core/reference/data-types)) — Server setting value. +- `default` ([String](/core/reference/data-types)) — Server setting default value. +- `changed` ([UInt8](/core/reference/data-types)) — Shows whether a setting was specified in config.xml +- `description` ([String](/core/reference/data-types)) — Short server setting description. +- `type` ([String](/core/reference/data-types)) — Server setting value type. +- `changeable_without_restart` ([Enum8('No' = 0, 'IncreaseOnly' = 1, 'DecreaseOnly' = 2, 'Yes' = 3)](/core/reference/data-types)) — Shows whether a setting can be changed at runtime. +- `is_obsolete` ([UInt8](/core/reference/data-types)) — Shows whether a setting is obsolete. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -69,6 +69,6 @@ SELECT * FROM system.server_settings WHERE changed AND name='max_thread_pool_siz ## See Also {#see-also} -- [Settings](/reference/system-tables/settings) -- [Configuration Files](/concepts/features/configuration/server-config/configuration-files) -- [Server Settings](/reference/settings/server-settings/settings) +- [Settings](/core/reference/system-tables/settings) +- [Configuration Files](/core/concepts/features/configuration/server-config/configuration-files) +- [Server Settings](/core/reference/settings/server-settings/settings) diff --git a/core/reference/system-tables/session_log.mdx b/core/reference/system-tables/session_log.mdx new file mode 100644 index 00000000..213dce27 --- /dev/null +++ b/core/reference/system-tables/session_log.mdx @@ -0,0 +1,76 @@ +--- +description: 'System table containing information about all successful and failed + login and logout events.' +keywords: ['system table', 'session_log'] +slug: /operations/system-tables/session_log +title: 'system.session_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains information about all successful and failed login and logout events. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `type` ([Enum8('LoginFailure' = 0, 'LoginSuccess' = 1, 'Logout' = 2)](/core/reference/data-types/enum)) — Login/logout result. Possible values: LoginFailure — Login error. LoginSuccess — Successful login. Logout — Logout from the system. +- `auth_id` ([UUID](/core/reference/data-types/uuid)) — Authentication ID, which is a UUID that is automatically generated each time user logins. +- `session_id` ([String](/core/reference/data-types/string)) — Session ID that is passed by client via HTTP interface. +- `event_date` ([Date](/core/reference/data-types/date)) — Login/logout date. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Login/logout time. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Login/logout starting time with microseconds precision. +- `user` ([Nullable(String)](/core/reference/data-types/nullable)) — User name. +- `auth_type` ([Nullable(Enum8('NO_PASSWORD' = 0, 'PLAINTEXT_PASSWORD' = 1, 'SHA256_PASSWORD' = 2, 'DOUBLE_SHA1_PASSWORD' = 3, 'LDAP' = 4, 'KERBEROS' = 5, 'SSL_CERTIFICATE' = 6, 'BCRYPT_PASSWORD' = 7, 'SSH_KEY' = 8, 'HTTP' = 9, 'JWT' = 10, 'SCRAM_SHA256_PASSWORD' = 11, 'NO_AUTHENTICATION' = 12))](/core/reference/data-types/nullable)) — The authentication type. +- `profiles` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — The list of profiles set for all roles and/or users. +- `roles` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — The list of roles to which the profile is applied. +- `settings` ([Array(Tuple(LowCardinality(String), String))](/core/reference/data-types/array)) — Settings that were changed when the client logged in/out. +- `client_address` ([IPv6](/core/reference/data-types/ipv6)) — The IP address that was used to log in/out. +- `client_port` ([UInt16](/core/reference/data-types/int-uint)) — The client port that was used to log in/out. +- `interface` ([Enum8('TCP' = 1, 'HTTP' = 2, 'gRPC' = 3, 'MySQL' = 4, 'PostgreSQL' = 5, 'Local' = 6, 'TCP_Interserver' = 7, 'Prometheus' = 8, 'Background' = 9)](/core/reference/data-types/enum)) — The interface from which the login was initiated. +- `client_hostname` ([String](/core/reference/data-types/string)) — The hostname of the client machine where the clickhouse-client or another TCP client is run. +- `client_name` ([String](/core/reference/data-types/string)) — The clickhouse-client or another TCP client name. +- `client_revision` ([UInt32](/core/reference/data-types/int-uint)) — Revision of the clickhouse-client or another TCP client. +- `client_version_major` ([UInt32](/core/reference/data-types/int-uint)) — The major version of the clickhouse-client or another TCP client. +- `client_version_minor` ([UInt32](/core/reference/data-types/int-uint)) — The minor version of the clickhouse-client or another TCP client. +- `client_version_patch` ([UInt32](/core/reference/data-types/int-uint)) — Patch component of the clickhouse-client or another TCP client version. +- `failure_reason` ([String](/core/reference/data-types/string)) — The exception message containing the reason for the login/logout failure. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql title="Query" +SELECT * FROM system.session_log LIMIT 1 FORMAT Vertical; +``` + +```text title="Response" +Row 1: +────── +hostname: clickhouse.eu-central1.internal +type: LoginSuccess +auth_id: 45e6bd83-b4aa-4a23-85e6-bd83b4aa1a23 +session_id: +event_date: 2021-10-14 +event_time: 2021-10-14 20:33:52 +event_time_microseconds: 2021-10-14 20:33:52.104247 +user: default +auth_type: PLAINTEXT_PASSWORD +profiles: ['default'] +roles: [] +settings: [('load_balancing','random'),('max_memory_usage','10000000000')] +client_address: ::ffff:127.0.0.1 +client_port: 38490 +interface: TCP +client_hostname: +client_name: ClickHouse client +client_revision: 54449 +client_version_major: 21 +client_version_minor: 10 +client_version_patch: 0 +failure_reason: +``` diff --git a/reference/system-tables/settings.mdx b/core/reference/system-tables/settings.mdx similarity index 61% rename from reference/system-tables/settings.mdx rename to core/reference/system-tables/settings.mdx index c8b0582f..c1026697 100644 --- a/reference/system-tables/settings.mdx +++ b/core/reference/system-tables/settings.mdx @@ -14,19 +14,19 @@ Contains information about session settings for current user. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Setting name. -- `value` ([String](/reference/data-types)) — Setting value. -- `changed` ([UInt8](/reference/data-types)) — Shows whether the setting was explicitly defined in the config or explicitly changed. -- `description` ([String](/reference/data-types)) — Short setting description. -- `min` ([Nullable(String)](/reference/data-types)) — Minimum value of the setting, if any is set via constraints. If the setting has no minimum value, contains NULL. -- `max` ([Nullable(String)](/reference/data-types)) — Maximum value of the setting, if any is set via constraints. If the setting has no maximum value, contains NULL. -- `disallowed_values` ([Array(String)](/reference/data-types)) — List of disallowed values -- `readonly` ([UInt8](/reference/data-types)) — Shows whether the current user can change the setting: 0 — Current user can change the setting, 1 — Current user can't change the setting. -- `type` ([String](/reference/data-types)) — The type of the value that can be assigned to this setting. -- `default` ([String](/reference/data-types)) — Setting default value. -- `alias_for` ([String](/reference/data-types)) — The name of the original setting if the setting is an alias for another setting. -- `is_obsolete` ([UInt8](/reference/data-types)) — Shows whether a setting is obsolete. -- `tier` ([Enum8('Production' = 0, 'Obsolete' = 4, 'Experimental' = 8, 'Beta' = 12)](/reference/data-types)) — +- `name` ([String](/core/reference/data-types)) — Setting name. +- `value` ([String](/core/reference/data-types)) — Setting value. +- `changed` ([UInt8](/core/reference/data-types)) — Shows whether the setting was explicitly defined in the config or explicitly changed. +- `description` ([String](/core/reference/data-types)) — Short setting description. +- `min` ([Nullable(String)](/core/reference/data-types)) — Minimum value of the setting, if any is set via constraints. If the setting has no minimum value, contains NULL. +- `max` ([Nullable(String)](/core/reference/data-types)) — Maximum value of the setting, if any is set via constraints. If the setting has no maximum value, contains NULL. +- `disallowed_values` ([Array(String)](/core/reference/data-types)) — List of disallowed values +- `readonly` ([UInt8](/core/reference/data-types)) — Shows whether the current user can change the setting: 0 — Current user can change the setting, 1 — Current user can't change the setting. +- `type` ([String](/core/reference/data-types)) — The type of the value that can be assigned to this setting. +- `default` ([String](/core/reference/data-types)) — Setting default value. +- `alias_for` ([String](/core/reference/data-types)) — The name of the original setting if the setting is an alias for another setting. +- `is_obsolete` ([UInt8](/core/reference/data-types)) — Shows whether a setting is obsolete. +- `tier` ([Enum8('Production' = 0, 'Obsolete' = 4, 'Experimental' = 8, 'Beta' = 12)](/core/reference/data-types)) — Support level for this feature. ClickHouse features are organized in tiers, varying depending on the current status of their development and the expectations one might have when using them: * PRODUCTION: The feature is stable, safe to use and does not have issues interacting with other PRODUCTION features. @@ -93,7 +93,7 @@ Row 3: name: min_insert_block_size_rows_for_materialized_views value: 0 changed: 0 -description: Sets the minimum number of rows in the block which can be inserted into a table by an `INSERT` query. Smaller-sized blocks are squashed into bigger ones. This setting is applied only for blocks inserted into [materialized view](/reference/statements/create/view). By adjusting this setting, you control blocks squashing while pushing to materialized view and avoid excessive memory usage. +description: Sets the minimum number of rows in the block which can be inserted into a table by an `INSERT` query. Smaller-sized blocks are squashed into bigger ones. This setting is applied only for blocks inserted into [materialized view](/core/reference/statements/create/view). By adjusting this setting, you control blocks squashing while pushing to materialized view and avoid excessive memory usage. Possible values: @@ -102,7 +102,7 @@ Possible values: ## See Also {#see-also} -- [min_insert_block_size_rows](/reference/settings/session-settings#min_insert_block_size_rows) +- [min_insert_block_size_rows](/core/reference/settings/session-settings#min_insert_block_size_rows) min: ᴺᵁᴸᴸ max: ᴺᵁᴸᴸ readonly: 0 @@ -117,7 +117,7 @@ Row 4: name: min_insert_block_size_bytes_for_materialized_views value: 0 changed: 0 -description: Sets the minimum number of bytes in the block which can be inserted into a table by an `INSERT` query. Smaller-sized blocks are squashed into bigger ones. This setting is applied only for blocks inserted into [materialized view](/reference/statements/create/view). By adjusting this setting, you control blocks squashing while pushing to materialized view and avoid excessive memory usage. +description: Sets the minimum number of bytes in the block which can be inserted into a table by an `INSERT` query. Smaller-sized blocks are squashed into bigger ones. This setting is applied only for blocks inserted into [materialized view](/core/reference/statements/create/view). By adjusting this setting, you control blocks squashing while pushing to materialized view and avoid excessive memory usage. Possible values: @@ -126,7 +126,7 @@ Possible values: ## See Also {#see-also} -- [min_insert_block_size_bytes](/reference/settings/session-settings#min_insert_block_size_bytes) +- [min_insert_block_size_bytes](/core/reference/settings/session-settings#min_insert_block_size_bytes) min: ᴺᵁᴸᴸ max: ᴺᵁᴸᴸ readonly: 0 @@ -148,7 +148,7 @@ SELECT * FROM system.settings WHERE changed AND name='load_balancing' ## See Also {#see-also} -- [Settings](/reference/system-tables/overview#system-tables-introduction) -- [Permissions for Queries](/concepts/features/configuration/settings/permissions-for-queries) -- [Constraints on Settings](/concepts/features/configuration/settings/constraints-on-settings) -- [SHOW SETTINGS](/reference/statements/show#show-settings) statement +- [Settings](/core/reference/system-tables/overview#system-tables-introduction) +- [Permissions for Queries](/core/concepts/features/configuration/settings/permissions-for-queries) +- [Constraints on Settings](/core/concepts/features/configuration/settings/constraints-on-settings) +- [SHOW SETTINGS](/core/reference/statements/show#show-settings) statement diff --git a/reference/system-tables/settings_changes.mdx b/core/reference/system-tables/settings_changes.mdx similarity index 72% rename from reference/system-tables/settings_changes.mdx rename to core/reference/system-tables/settings_changes.mdx index ae81e07e..7319e3f2 100644 --- a/reference/system-tables/settings_changes.mdx +++ b/core/reference/system-tables/settings_changes.mdx @@ -14,9 +14,9 @@ Contains information about setting changes in previous ClickHouse versions. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `type` ([Enum8('Session' = 0, 'MergeTree' = 1)](/reference/data-types)) — The group of settings (Session, MergeTree...) -- `version` ([String](/reference/data-types)) — The ClickHouse server version. -- `changes` ([Array(Tuple(name String, previous_value String, new_value String, reason String))](/reference/data-types)) — The list of changes in settings which changed the behaviour of ClickHouse. +- `type` ([Enum8('Session' = 0, 'MergeTree' = 1)](/core/reference/data-types)) — The group of settings (Session, MergeTree...) +- `version` ([String](/core/reference/data-types)) — The ClickHouse server version. +- `changes` ([Array(Tuple(name String, previous_value String, new_value String, reason String))](/core/reference/data-types)) — The list of changes in settings which changed the behaviour of ClickHouse. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -38,5 +38,5 @@ changes: [('input_format_parquet_preserve_order','1','0','Allow Parquet reader t ## See Also {#see-also} -- [Settings](/reference/system-tables/overview#system-tables-introduction) -- [system.settings](/reference/system-tables/settings) +- [Settings](/core/reference/system-tables/overview#system-tables-introduction) +- [system.settings](/core/reference/system-tables/settings) diff --git a/core/reference/system-tables/settings_profile_elements.mdx b/core/reference/system-tables/settings_profile_elements.mdx new file mode 100644 index 00000000..59453aae --- /dev/null +++ b/core/reference/system-tables/settings_profile_elements.mdx @@ -0,0 +1,31 @@ +--- +description: 'System table which describes the content of the settings profile: constraints, + roles and users that the setting applies to, parent settings profiles.' +keywords: ['system table', 'settings_profile_elements'] +slug: /operations/system-tables/settings_profile_elements +title: 'system.settings_profile_elements' +doc_type: 'reference' +--- + +## Description {#description} + +Describes the content of the settings profile: + +- Сonstraints. +- Roles and users that the setting applies to. +- Parent settings profiles. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `profile_name` ([Nullable(String)](/core/reference/data-types)) — Setting profile name. +- `user_name` ([Nullable(String)](/core/reference/data-types)) — User name. +- `role_name` ([Nullable(String)](/core/reference/data-types)) — Role name. +- `index` ([UInt64](/core/reference/data-types)) — Sequential number of the settings profile element. +- `setting_name` ([Nullable(String)](/core/reference/data-types)) — Setting name. +- `value` ([Nullable(String)](/core/reference/data-types)) — Setting value. +- `min` ([Nullable(String)](/core/reference/data-types)) — The minimum value of the setting. NULL if not set. +- `max` ([Nullable(String)](/core/reference/data-types)) — The maximum value of the setting. NULL if not set. +- `writability` ([Nullable(Enum8('WRITABLE' = 0, 'CONST' = 1, 'CHANGEABLE_IN_READONLY' = 2))](/core/reference/data-types)) — The property which shows whether a setting can be changed or not. +- `inherit_profile` ([Nullable(String)](/core/reference/data-types)) — A parent profile for this setting profile. NULL if not set. Setting profile will inherit all the settings' values and constraints (min, max, readonly) from its parent profiles. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/settings_profiles.mdx b/core/reference/system-tables/settings_profiles.mdx new file mode 100644 index 00000000..150f1190 --- /dev/null +++ b/core/reference/system-tables/settings_profiles.mdx @@ -0,0 +1,27 @@ +--- +description: 'System table which contains properties of configured setting profiles.' +keywords: ['system table', 'settings_profiles'] +slug: /operations/system-tables/settings_profiles +title: 'system.settings_profiles' +doc_type: 'reference' +--- + +## Description {#description} + +Contains properties of configured setting profiles. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `name` ([String](/core/reference/data-types)) — Setting profile name. +- `id` ([UUID](/core/reference/data-types)) — Setting profile ID. +- `storage` ([String](/core/reference/data-types)) — Path to the storage of setting profiles. Configured in the `access_control_path` parameter. +- `num_elements` ([UInt64](/core/reference/data-types)) — Number of elements for this profile in the `system.settings_profile_elements` table. +- `apply_to_all` ([UInt8](/core/reference/data-types)) — Shows that the settings profile set for all roles and/or users. +- `apply_to_list` ([Array(String)](/core/reference/data-types)) — List of the roles and/or users to which the setting profile is applied. +- `apply_to_except` ([Array(String)](/core/reference/data-types)) — The setting profile is applied to all roles and/or users excepting of the listed ones. +{/*AUTOGENERATED_END*/} + +## See Also {#see-also} + +- [SHOW PROFILES](/core/reference/statements/show#show-profiles) diff --git a/reference/system-tables/stack_trace.mdx b/core/reference/system-tables/stack_trace.mdx similarity index 82% rename from reference/system-tables/stack_trace.mdx rename to core/reference/system-tables/stack_trace.mdx index dbca14f7..8a827ebf 100644 --- a/reference/system-tables/stack_trace.mdx +++ b/core/reference/system-tables/stack_trace.mdx @@ -15,16 +15,16 @@ import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; Contains stack traces of all server threads. Allows developers to introspect the server state. -To analyze stack frames, use the `addressToLine`, `addressToLineWithInlines`, `addressToSymbol` and `demangle` [introspection functions](/reference/functions/regular-functions/introspection). +To analyze stack frames, use the `addressToLine`, `addressToLineWithInlines`, `addressToSymbol` and `demangle` [introspection functions](/core/reference/functions/regular-functions/introspection). ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `thread_name` ([String](/reference/data-types)) — The name of the thread. -- `thread_id` ([UInt64](/reference/data-types)) — The thread identifier -- `query_id` ([String](/reference/data-types)) — The ID of the query this thread belongs to. -- `trace` ([Array(UInt64)](/reference/data-types)) — The stacktrace of this thread. Basically just an array of addresses. -- `untracked_memory` ([Int64](/reference/data-types)) — Per-thread atomic-less counter of memory allocations not yet propagated to the parent MemoryTracker. May be negative if more was freed than allocated since the last flush. +- `thread_name` ([String](/core/reference/data-types)) — The name of the thread. +- `thread_id` ([UInt64](/core/reference/data-types)) — The thread identifier +- `query_id` ([String](/core/reference/data-types)) — The ID of the query this thread belongs to. +- `trace` ([Array(UInt64)](/core/reference/data-types)) — The stacktrace of this thread. Basically just an array of addresses. +- `untracked_memory` ([Int64](/core/reference/data-types)) — Per-thread atomic-less counter of memory allocations not yet propagated to the parent MemoryTracker. May be negative if more was freed than allocated since the last flush. {/*AUTOGENERATED_END*/} ## Example {#example} @@ -99,7 +99,7 @@ res: /lib/x86_64-linux-gnu/libc-2.27.so ## See Also {#see-also} -- [Introspection Functions](/reference/functions/regular-functions/introspection) — Which introspection functions are available and how to use them. -- [system.trace_log](/reference/system-tables/trace_log) — Contains stack traces collected by the sampling query profiler. -- [arrayMap](/reference/functions/regular-functions/array-functions#arrayMap)) — Description and usage example of the `arrayMap` function. -- [arrayFilter](/reference/functions/regular-functions/array-functions#arrayFilter) — Description and usage example of the `arrayFilter` function. +- [Introspection Functions](/core/reference/functions/regular-functions/introspection) — Which introspection functions are available and how to use them. +- [system.trace_log](/core/reference/system-tables/trace_log) — Contains stack traces collected by the sampling query profiler. +- [arrayMap](/core/reference/functions/regular-functions/array-functions#arrayMap)) — Description and usage example of the `arrayMap` function. +- [arrayFilter](/core/reference/functions/regular-functions/array-functions#arrayFilter) — Description and usage example of the `arrayFilter` function. diff --git a/reference/system-tables/storage_policies.mdx b/core/reference/system-tables/storage_policies.mdx similarity index 65% rename from reference/system-tables/storage_policies.mdx rename to core/reference/system-tables/storage_policies.mdx index b74305e2..f45d0885 100644 --- a/reference/system-tables/storage_policies.mdx +++ b/core/reference/system-tables/storage_policies.mdx @@ -9,21 +9,21 @@ doc_type: 'reference' ## Description {#description} -Contains information about storage policies and volumes which are defined in [server configuration](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes_configure). +Contains information about storage policies and volumes which are defined in [server configuration](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes_configure). ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `policy_name` ([String](/reference/data-types)) — The name of the storage policy. -- `volume_name` ([String](/reference/data-types)) — The name of the volume. -- `volume_priority` ([UInt64](/reference/data-types)) — The priority of the volume. -- `disks` ([Array(String)](/reference/data-types)) — The list of all disks names which are a part of this storage policy. -- `volume_type` ([Enum8('JBOD' = 0, 'SINGLE_DISK' = 1, 'UNKNOWN' = 2)](/reference/data-types)) — The type of the volume - JBOD or a single disk. -- `max_data_part_size` ([UInt64](/reference/data-types)) — the maximum size of a part that can be stored on any of the volumes disks. -- `move_factor` ([Float32](/reference/data-types)) — When the amount of available space gets lower than this factor, data automatically starts to move on the next volume if any (by default, 0.1). -- `prefer_not_to_merge` ([UInt8](/reference/data-types)) — You should not use this setting. Disables merging of data parts on this volume (this is harmful and leads to performance degradation). -- `perform_ttl_move_on_insert` ([UInt8](/reference/data-types)) — Disables TTL move on data part INSERT. By default (if enabled) if we insert a data part that already expired by the TTL move rule it immediately goes to a volume/disk declared in move rule. -- `load_balancing` ([Enum8('ROUND_ROBIN' = 0, 'LEAST_USED' = 1)](/reference/data-types)) — Policy for disk balancing, `round_robin` or `least_used`. +- `policy_name` ([String](/core/reference/data-types)) — The name of the storage policy. +- `volume_name` ([String](/core/reference/data-types)) — The name of the volume. +- `volume_priority` ([UInt64](/core/reference/data-types)) — The priority of the volume. +- `disks` ([Array(String)](/core/reference/data-types)) — The list of all disks names which are a part of this storage policy. +- `volume_type` ([Enum8('JBOD' = 0, 'SINGLE_DISK' = 1, 'UNKNOWN' = 2)](/core/reference/data-types)) — The type of the volume - JBOD or a single disk. +- `max_data_part_size` ([UInt64](/core/reference/data-types)) — the maximum size of a part that can be stored on any of the volumes disks. +- `move_factor` ([Float32](/core/reference/data-types)) — When the amount of available space gets lower than this factor, data automatically starts to move on the next volume if any (by default, 0.1). +- `prefer_not_to_merge` ([UInt8](/core/reference/data-types)) — You should not use this setting. Disables merging of data parts on this volume (this is harmful and leads to performance degradation). +- `perform_ttl_move_on_insert` ([UInt8](/core/reference/data-types)) — Disables TTL move on data part INSERT. By default (if enabled) if we insert a data part that already expired by the TTL move rule it immediately goes to a volume/disk declared in move rule. +- `load_balancing` ([Enum8('ROUND_ROBIN' = 0, 'LEAST_USED' = 1)](/core/reference/data-types)) — Policy for disk balancing, `round_robin` or `least_used`. {/*AUTOGENERATED_END*/} ## Volume selection on `INSERT` {#volume-selection-on-insert} @@ -75,4 +75,4 @@ the TTL destination volume (for `TO DISK 'X'`, on the volume that contains disk `X`). The part is then written to the priority-N volume first and moved to the TTL destination by a background move task (observable via `system.moves`). See the -[`perform_ttl_move_on_insert` setting on the MergeTree engine](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes_configure). +[`perform_ttl_move_on_insert` setting on the MergeTree engine](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes_configure). diff --git a/reference/system-tables/symbols.mdx b/core/reference/system-tables/symbols.mdx similarity index 88% rename from reference/system-tables/symbols.mdx rename to core/reference/system-tables/symbols.mdx index dd8cd2d6..176b4c16 100644 --- a/reference/system-tables/symbols.mdx +++ b/core/reference/system-tables/symbols.mdx @@ -15,9 +15,9 @@ This table is only useful for C++ experts and ClickHouse engineers. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `symbol` ([String](/reference/data-types)) — Symbol name in the binary. It is mangled. You can apply demangle(symbol) to obtain a readable name. -- `address_begin` ([UInt64](/reference/data-types)) — Start address of the symbol in the binary. -- `address_end` ([UInt64](/reference/data-types)) — End address of the symbol in the binary. +- `symbol` ([String](/core/reference/data-types)) — Symbol name in the binary. It is mangled. You can apply demangle(symbol) to obtain a readable name. +- `address_begin` ([UInt64](/core/reference/data-types)) — Start address of the symbol in the binary. +- `address_end` ([UInt64](/core/reference/data-types)) — End address of the symbol in the binary. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/reference/system-tables/system_warnings.mdx b/core/reference/system-tables/system_warnings.mdx similarity index 50% rename from reference/system-tables/system_warnings.mdx rename to core/reference/system-tables/system_warnings.mdx index cc749b1f..bda82762 100644 --- a/reference/system-tables/system_warnings.mdx +++ b/core/reference/system-tables/system_warnings.mdx @@ -19,20 +19,20 @@ If current value drops below the threshold, the entry is removed from the table. The table can be configured with these settings: -- [max_table_num_to_warn](/reference/settings/server-settings/settings#max_table_num_to_warn) -- [max_database_num_to_warn](/reference/settings/server-settings/settings#max_database_num_to_warn) -- [max_dictionary_num_to_warn](/reference/settings/server-settings/settings#max_dictionary_num_to_warn) -- [max_view_num_to_warn](/reference/settings/server-settings/settings#max_view_num_to_warn) -- [max_part_num_to_warn](/reference/settings/server-settings/settings#max_part_num_to_warn) -- [max_pending_mutations_to_warn](/reference/settings/server-settings/settings#max_pending_mutations_to_warn) -- [max_pending_mutations_execution_time_to_warn](/reference/settings/server-settings/settings#max_pending_mutations_execution_time_to_warn) -- [max_named_collection_num_to_warn](/reference/settings/server-settings/settings#max_named_collection_num_to_warn) -- [resource_overload_warnings](/concepts/features/configuration/settings/server-overload#resource-overload-warnings) +- [max_table_num_to_warn](/core/reference/settings/server-settings/settings#max_table_num_to_warn) +- [max_database_num_to_warn](/core/reference/settings/server-settings/settings#max_database_num_to_warn) +- [max_dictionary_num_to_warn](/core/reference/settings/server-settings/settings#max_dictionary_num_to_warn) +- [max_view_num_to_warn](/core/reference/settings/server-settings/settings#max_view_num_to_warn) +- [max_part_num_to_warn](/core/reference/settings/server-settings/settings#max_part_num_to_warn) +- [max_pending_mutations_to_warn](/core/reference/settings/server-settings/settings#max_pending_mutations_to_warn) +- [max_pending_mutations_execution_time_to_warn](/core/reference/settings/server-settings/settings#max_pending_mutations_execution_time_to_warn) +- [max_named_collection_num_to_warn](/core/reference/settings/server-settings/settings#max_named_collection_num_to_warn) +- [resource_overload_warnings](/core/concepts/features/configuration/settings/server-overload#resource-overload-warnings) ## Columns {#columns} -- `message` ([String](/reference/data-types/string)) — Warning message. -- `message_format_string` ([LowCardinality(String)](/reference/data-types/string)) — The format string used to format the message. +- `message` ([String](/core/reference/data-types/string)) — Warning message. +- `message_format_string` ([LowCardinality(String)](/core/reference/data-types/string)) — The format string used to format the message. ## Example {#example} diff --git a/reference/system-tables/table_engines.mdx b/core/reference/system-tables/table_engines.mdx similarity index 60% rename from reference/system-tables/table_engines.mdx rename to core/reference/system-tables/table_engines.mdx index d1dc7d44..98786140 100644 --- a/reference/system-tables/table_engines.mdx +++ b/core/reference/system-tables/table_engines.mdx @@ -14,15 +14,15 @@ Contains description of table engines supported by server and their feature supp This table contains the following columns (the column type is shown in brackets): {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — The name of table engine. -- `supports_settings` ([UInt8](/reference/data-types)) — Flag that indicates if table engine supports SETTINGS clause. -- `supports_skipping_indices` ([UInt8](/reference/data-types)) — Flag that indicates if table engine supports skipping indices. -- `supports_projections` ([UInt8](/reference/data-types)) — Flag that indicated if table engine supports projections. -- `supports_sort_order` ([UInt8](/reference/data-types)) — Flag that indicates if table engine supports clauses PARTITION_BY, PRIMARY_KEY, ORDER_BY and SAMPLE_BY. -- `supports_ttl` ([UInt8](/reference/data-types)) — Flag that indicates if table engine supports TTL. -- `supports_replication` ([UInt8](/reference/data-types)) — Flag that indicates if table engine supports data replication. -- `supports_deduplication` ([UInt8](/reference/data-types)) — Flag that indicates if table engine supports data deduplication. -- `supports_parallel_insert` ([UInt8](/reference/data-types)) — Flag that indicates if table engine supports parallel insert (see max_insert_threads setting). +- `name` ([String](/core/reference/data-types)) — The name of table engine. +- `supports_settings` ([UInt8](/core/reference/data-types)) — Flag that indicates if table engine supports SETTINGS clause. +- `supports_skipping_indices` ([UInt8](/core/reference/data-types)) — Flag that indicates if table engine supports skipping indices. +- `supports_projections` ([UInt8](/core/reference/data-types)) — Flag that indicated if table engine supports projections. +- `supports_sort_order` ([UInt8](/core/reference/data-types)) — Flag that indicates if table engine supports clauses PARTITION_BY, PRIMARY_KEY, ORDER_BY and SAMPLE_BY. +- `supports_ttl` ([UInt8](/core/reference/data-types)) — Flag that indicates if table engine supports TTL. +- `supports_replication` ([UInt8](/core/reference/data-types)) — Flag that indicates if table engine supports data replication. +- `supports_deduplication` ([UInt8](/core/reference/data-types)) — Flag that indicates if table engine supports data deduplication. +- `supports_parallel_insert` ([UInt8](/core/reference/data-types)) — Flag that indicates if table engine supports parallel insert (see max_insert_threads setting). {/*AUTOGENERATED_END*/} ## Example {#example} @@ -43,6 +43,6 @@ WHERE name IN ('Kafka', 'MergeTree', 'ReplicatedCollapsingMergeTree') ## See also {#see-also} -- MergeTree family [query clauses](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-query-clauses) -- Kafka [settings](/reference/engines/table-engines/integrations/kafka#creating-a-table) -- Join [settings](/reference/engines/table-engines/special/join#join-limitations-and-settings) +- MergeTree family [query clauses](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-query-clauses) +- Kafka [settings](/core/reference/engines/table-engines/integrations/kafka#creating-a-table) +- Join [settings](/core/reference/engines/table-engines/special/join#join-limitations-and-settings) diff --git a/reference/system-tables/table_functions.mdx b/core/reference/system-tables/table_functions.mdx similarity index 58% rename from reference/system-tables/table_functions.mdx rename to core/reference/system-tables/table_functions.mdx index 3b6e60a4..37d22410 100644 --- a/reference/system-tables/table_functions.mdx +++ b/core/reference/system-tables/table_functions.mdx @@ -13,7 +13,7 @@ Contains a list of all available table functions with their descriptions. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Name of a table function. -- `description` ([String](/reference/data-types)) — Brief description of a table function. -- `allow_readonly` ([UInt8](/reference/data-types)) — Flag that indicated whether a readonly user may use this function. +- `name` ([String](/core/reference/data-types)) — Name of a table function. +- `description` ([String](/core/reference/data-types)) — Brief description of a table function. +- `allow_readonly` ([UInt8](/core/reference/data-types)) — Flag that indicated whether a readonly user may use this function. {/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/tables.mdx b/core/reference/system-tables/tables.mdx new file mode 100644 index 00000000..131d6856 --- /dev/null +++ b/core/reference/system-tables/tables.mdx @@ -0,0 +1,131 @@ +--- +description: 'System table containing metadata of each table that the server knows + about.' +keywords: ['system table', 'tables'] +slug: /operations/system-tables/tables +title: 'system.tables' +doc_type: 'reference' +--- + +## Description {#description} + +Contains metadata of each table that the server knows about. + +[Detached](/core/reference/statements/detach) tables are not shown in `system.tables`. + +[Temporary tables](/core/reference/statements/create/table#temporary-tables) are visible in the `system.tables` only in those session where they have been created. They are shown with the empty `database` field and with the `is_temporary` flag switched on. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — The name of the database the table is in. +- `name` ([String](/core/reference/data-types)) — Table name. +- `uuid` ([UUID](/core/reference/data-types)) — Table uuid (Atomic database). +- `engine` ([String](/core/reference/data-types)) — Table engine name (without parameters). +- `is_temporary` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the table is temporary. +- `data_paths` ([Array(String)](/core/reference/data-types)) — Paths to the table data in the file systems. +- `metadata_path` ([String](/core/reference/data-types)) — Path to the table metadata in the file system. +- `metadata_modification_time` ([DateTime](/core/reference/data-types)) — Time of latest modification of the table metadata. +- `metadata_version` ([Int32](/core/reference/data-types)) — Metadata version for ReplicatedMergeTree table, 0 for non ReplicatedMergeTree table. +- `dependencies_database` ([Array(String)](/core/reference/data-types)) — Database dependencies. +- `dependencies_table` ([Array(String)](/core/reference/data-types)) — Table dependencies (materialized views the current table). +- `create_table_query` ([String](/core/reference/data-types)) — The query that was used to create the table. +- `engine_full` ([String](/core/reference/data-types)) — Parameters of the table engine. +- `as_select` ([String](/core/reference/data-types)) — SELECT query for view. +- `parameterized_view_parameters` ([Array(Tuple(name String, type String))](/core/reference/data-types)) — Parameters of parameterized view. +- `partition_key` ([String](/core/reference/data-types)) — The partition key expression specified in the table. +- `sorting_key` ([String](/core/reference/data-types)) — The sorting key expression specified in the table. +- `primary_key` ([String](/core/reference/data-types)) — The primary key expression specified in the table. +- `sampling_key` ([String](/core/reference/data-types)) — The sampling key expression specified in the table. +- `unique_key` ([String](/core/reference/data-types)) — The unique key expression specified in the table (UNIQUE KEY clause). +- `storage_policy` ([String](/core/reference/data-types)) — The storage policy. Relevant for tables using MergeTree and Distributed engines. +- `total_rows` ([Nullable(UInt64)](/core/reference/data-types)) — Total number of rows, if it is possible to quickly determine exact number of rows in the table, otherwise NULL (including underlying Buffer table). +- `total_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — Total number of bytes, if it is possible to quickly determine exact number of bytes for the table on storage, otherwise NULL (does not includes any underlying storage). If the table stores data on disk, returns used space on disk (i.e. compressed). If the table stores data in memory, returns approximated number of used bytes in memory. +- `total_bytes_uncompressed` ([Nullable(UInt64)](/core/reference/data-types)) — Total number of uncompressed bytes, if it's possible to quickly determine the exact number of bytes from the part checksums for the table on storage, otherwise NULL (does not take underlying storage (if any) into account). +- `parts` ([Nullable(UInt64)](/core/reference/data-types)) — The total number of parts in this table. +- `active_parts` ([Nullable(UInt64)](/core/reference/data-types)) — The number of active parts in this table. +- `total_marks` ([Nullable(UInt64)](/core/reference/data-types)) — The total number of marks in all parts in this table. +- `active_on_fly_data_mutations` ([UInt64](/core/reference/data-types)) — Total number of active data mutations (UPDATEs and DELETEs) suitable for applying on the fly. +- `active_on_fly_alter_mutations` ([UInt64](/core/reference/data-types)) — Total number of active alter mutations (MODIFY COLUMN) suitable for applying on the fly. +- `active_on_fly_metadata_mutations` ([UInt64](/core/reference/data-types)) — Total number of active metadata mutations (RENAMEs) suitable for applying on the fly. +- `columns_descriptions_cache_size` ([UInt64](/core/reference/data-types)) — Size of columns description cache for *MergeTree tables +- `lifetime_rows` ([Nullable(UInt64)](/core/reference/data-types)) — Total number of rows INSERTed since server start (only for Buffer tables). +- `lifetime_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — Total number of bytes INSERTed since server start (only for Buffer tables). +- `comment` ([String](/core/reference/data-types)) — The comment for the table. +- `has_own_data` ([UInt8](/core/reference/data-types)) — Flag that indicates whether the table itself stores some data on disk or only accesses some other source. +- `loading_dependencies_database` ([Array(String)](/core/reference/data-types)) — Database loading dependencies (list of objects which should be loaded before the current object). +- `loading_dependencies_table` ([Array(String)](/core/reference/data-types)) — Table loading dependencies (list of objects which should be loaded before the current object). +- `loading_dependent_database` ([Array(String)](/core/reference/data-types)) — Dependent loading database. +- `loading_dependent_table` ([Array(String)](/core/reference/data-types)) — Dependent loading table. +- `definer` ([String](/core/reference/data-types)) — SQL security definer's name used for the table. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.tables LIMIT 2 FORMAT Vertical; +``` + +```text +Row 1: +────── +database: base +name: t1 +uuid: 81b1c20a-b7c6-4116-a2ce-7583fb6b6736 +engine: MergeTree +is_temporary: 0 +data_paths: ['/var/lib/clickhouse/store/81b/81b1c20a-b7c6-4116-a2ce-7583fb6b6736/'] +metadata_path: /var/lib/clickhouse/store/461/461cf698-fd0b-406d-8c01-5d8fd5748a91/t1.sql +metadata_modification_time: 2021-01-25 19:14:32 +dependencies_database: [] +dependencies_table: [] +create_table_query: CREATE TABLE base.t1 (`n` UInt64) ENGINE = MergeTree ORDER BY n +engine_full: MergeTree ORDER BY n +as_select: SELECT database AS table_catalog +partition_key: +sorting_key: n +primary_key: n +sampling_key: +storage_policy: default +total_rows: 1 +total_bytes: 99 +lifetime_rows: ᴺᵁᴸᴸ +lifetime_bytes: ᴺᵁᴸᴸ +comment: +has_own_data: 0 +loading_dependencies_database: [] +loading_dependencies_table: [] +loading_dependent_database: [] +loading_dependent_table: [] + +Row 2: +────── +database: default +name: 53r93yleapyears +uuid: 00000000-0000-0000-0000-000000000000 +engine: MergeTree +is_temporary: 0 +data_paths: ['/var/lib/clickhouse/data/default/53r93yleapyears/'] +metadata_path: /var/lib/clickhouse/metadata/default/53r93yleapyears.sql +metadata_modification_time: 2020-09-23 09:05:36 +dependencies_database: [] +dependencies_table: [] +create_table_query: CREATE TABLE default.`53r93yleapyears` (`id` Int8, `febdays` Int8) ENGINE = MergeTree ORDER BY id +engine_full: MergeTree ORDER BY id +as_select: SELECT name AS catalog_name +partition_key: +sorting_key: id +primary_key: id +sampling_key: +storage_policy: default +total_rows: 2 +total_bytes: 155 +lifetime_rows: ᴺᵁᴸᴸ +lifetime_bytes: ᴺᵁᴸᴸ +comment: +has_own_data: 0 +loading_dependencies_database: [] +loading_dependencies_table: [] +loading_dependent_database: [] +loading_dependent_table: [] +``` diff --git a/core/reference/system-tables/text_log.mdx b/core/reference/system-tables/text_log.mdx new file mode 100644 index 00000000..71e5102c --- /dev/null +++ b/core/reference/system-tables/text_log.mdx @@ -0,0 +1,80 @@ +--- +description: 'System table containing logging entries.' +keywords: ['system table', 'text_log'] +slug: /operations/system-tables/text_log +title: 'system.text_log' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Contains logging entries. The logging level which goes to this table can be limited to the `text_log.level` server setting. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Date of the entry. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Time of the entry. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Time of the entry with microseconds precision. +- `thread_name` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the thread from which the logging was done. +- `thread_id` ([UInt64](/core/reference/data-types/int-uint)) — OS thread ID. +- `level` ([Enum8('Fatal' = 1, 'Critical' = 2, 'Error' = 3, 'Warning' = 4, 'Notice' = 5, 'Information' = 6, 'Debug' = 7, 'Trace' = 8, 'Test' = 9)](/core/reference/data-types/enum)) — Entry level. Possible values: 1 or 'Fatal', 2 or 'Critical', 3 or 'Error', 4 or 'Warning', 5 or 'Notice', 6 or 'Information', 7 or 'Debug', 8 or 'Trace'. +- `query_id` ([String](/core/reference/data-types/string)) — ID of the query. +- `logger_name` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Name of the logger (e.g., DDLWorker). +- `message` ([String](/core/reference/data-types/string)) — The message itself. +- `revision` ([UInt32](/core/reference/data-types/int-uint)) — ClickHouse revision. +- `source_file` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Source file from which the logging was done. +- `source_line` ([UInt64](/core/reference/data-types/int-uint)) — Source line from which the logging was done. +- `message_format_string` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — A format string that was used to format the message. +- `value1` ([String](/core/reference/data-types/string)) — Argument 1 that was used to format the message. +- `value2` ([String](/core/reference/data-types/string)) — Argument 2 that was used to format the message. +- `value3` ([String](/core/reference/data-types/string)) — Argument 3 that was used to format the message. +- `value4` ([String](/core/reference/data-types/string)) — Argument 4 that was used to format the message. +- `value5` ([String](/core/reference/data-types/string)) — Argument 5 that was used to format the message. +- `value6` ([String](/core/reference/data-types/string)) — Argument 6 that was used to format the message. +- `value7` ([String](/core/reference/data-types/string)) — Argument 7 that was used to format the message. +- `value8` ([String](/core/reference/data-types/string)) — Argument 8 that was used to format the message. +- `value9` ([String](/core/reference/data-types/string)) — Argument 9 that was used to format the message. +- `value10` ([String](/core/reference/data-types/string)) — Argument 10 that was used to format the message. +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT * FROM system.text_log LIMIT 1 \G +``` + +```text +Row 1: +────── +hostname: clickhouse.eu-central1.internal +event_date: 2020-09-10 +event_time: 2020-09-10 11:23:07 +event_time_microseconds: 2020-09-10 11:23:07.871397 +microseconds: 871397 +thread_name: clickhouse-serv +thread_id: 564917 +level: Information +query_id: +logger_name: DNSCacheUpdater +message: Update period 15 seconds +revision: 54440 +source_file: /ClickHouse/src/Interpreters/DNSCacheUpdater.cpp; void DB::DNSCacheUpdater::start() +source_line: 45 +message_format_string: Update period {} seconds +value1: 15 +value2: +value3: +value4: +value5: +value6: +value7: +value8: +value9: +value10: +``` diff --git a/reference/system-tables/time_zones.mdx b/core/reference/system-tables/time_zones.mdx similarity index 91% rename from reference/system-tables/time_zones.mdx rename to core/reference/system-tables/time_zones.mdx index 1750229f..c3db9e5c 100644 --- a/reference/system-tables/time_zones.mdx +++ b/core/reference/system-tables/time_zones.mdx @@ -14,7 +14,7 @@ Contains a list of time zones that are supported by the ClickHouse server. This ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `time_zone` ([String](/reference/data-types)) — List of supported time zones. +- `time_zone` ([String](/core/reference/data-types)) — List of supported time zones. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/reference/system-tables/tokenizers.mdx b/core/reference/system-tables/tokenizers.mdx similarity index 63% rename from reference/system-tables/tokenizers.mdx rename to core/reference/system-tables/tokenizers.mdx index d5f37b95..b2373699 100644 --- a/reference/system-tables/tokenizers.mdx +++ b/core/reference/system-tables/tokenizers.mdx @@ -13,12 +13,12 @@ import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; ## Description {#description} Shows all available tokenizers. -These can be used in functions [tokens](/reference/functions/regular-functions/splitting-merging-functions#tokens), [hasAllTokens](/reference/functions/regular-functions/string-search-functions#hasAllTokens), [hasAnyTokens](/reference/functions/regular-functions/string-search-functions#hasAnyTokens), and the [text index](/reference/engines/table-engines/mergetree-family/textindexes). +These can be used in functions [tokens](/core/reference/functions/regular-functions/splitting-merging-functions#tokens), [hasAllTokens](/core/reference/functions/regular-functions/string-search-functions#hasAllTokens), [hasAnyTokens](/core/reference/functions/regular-functions/string-search-functions#hasAnyTokens), and the [text index](/core/reference/engines/table-engines/mergetree-family/textindexes). ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Name of the tokenizer +- `name` ([String](/core/reference/data-types)) — Name of the tokenizer {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/reference/system-tables/trace_log.mdx b/core/reference/system-tables/trace_log.mdx similarity index 53% rename from reference/system-tables/trace_log.mdx rename to core/reference/system-tables/trace_log.mdx index b432ea02..0b9306d6 100644 --- a/reference/system-tables/trace_log.mdx +++ b/core/reference/system-tables/trace_log.mdx @@ -13,41 +13,41 @@ import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; ## Description {#description} -Contains stack traces collected by the [sampling query profiler](/concepts/features/performance/troubleshoot/sampling-query-profiler). +Contains stack traces collected by the [sampling query profiler](/core/concepts/features/performance/troubleshoot/sampling-query-profiler). -ClickHouse creates this table when the [trace_log](/reference/settings/server-settings/settings#trace_log) server configuration section is set. Also see settings: [query_profiler_real_time_period_ns](/reference/settings/session-settings#query_profiler_real_time_period_ns), [query_profiler_cpu_time_period_ns](/reference/settings/session-settings#query_profiler_cpu_time_period_ns), [memory_profiler_step](/reference/settings/session-settings#memory_profiler_step), -[memory_profiler_sample_probability](/reference/settings/session-settings#memory_profiler_sample_probability), [trace_profile_events](/reference/settings/session-settings#trace_profile_events). +ClickHouse creates this table when the [trace_log](/core/reference/settings/server-settings/settings#trace_log) server configuration section is set. Also see settings: [query_profiler_real_time_period_ns](/core/reference/settings/session-settings#query_profiler_real_time_period_ns), [query_profiler_cpu_time_period_ns](/core/reference/settings/session-settings#query_profiler_cpu_time_period_ns), [memory_profiler_step](/core/reference/settings/session-settings#memory_profiler_step), +[memory_profiler_sample_probability](/core/reference/settings/session-settings#memory_profiler_sample_probability), [trace_profile_events](/core/reference/settings/session-settings#trace_profile_events). To analyze logs, use the `addressToLine`, `addressToLineWithInlines`, `addressToSymbol` and `demangle` introspection functions. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Date of sampling moment. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Timestamp of the sampling moment. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Timestamp of the sampling moment with microseconds precision. -- `timestamp_ns` ([UInt64](/reference/data-types/int-uint)) — Timestamp of the sampling moment in nanoseconds. -- `revision` ([UInt32](/reference/data-types/int-uint)) — ClickHouse server build revision. When connecting to the server by `clickhouse-client`, you see a string similar to `Connected to ClickHouse server version 19.18.1.`. This field contains the `revision`, but not the `version` of a server. -- `trace_type` ([Enum8('Real' = 0, 'CPU' = 1, 'Memory' = 2, 'MemorySample' = 3, 'MemoryPeak' = 4, 'ProfileEvent' = 5, 'JemallocSample' = 6, 'MemoryAllocatedWithoutCheck' = 7, 'Instrumentation' = 8)](/reference/data-types/enum)) — Trace type: `Real` represents collecting stack traces by wall-clock time. `CPU` represents collecting stack traces by CPU time. `Memory` represents collecting allocations and deallocations when memory allocation exceeds the subsequent watermark. `MemorySample` represents collecting random allocations and deallocations. `MemoryPeak` represents collecting updates of peak memory usage. `ProfileEvent` represents collecting of increments of profile events. `JemallocSample` represents collecting of jemalloc samples. `MemoryAllocatedWithoutCheck` represents collection of significant allocations (>16MiB) that is done with ignoring any memory limits (for ClickHouse developers only).`Instrumentation` represents traces collected by the instrumentation performed through XRay. -- `cpu_id` ([UInt64](/reference/data-types/int-uint)) — CPU identifier. -- `thread_id` ([UInt64](/reference/data-types/int-uint)) — Thread identifier. -- `thread_name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Thread name. -- `query_id` ([String](/reference/data-types/string)) — Query identifier that can be used to get details about a query that was running from the query_log system table. -- `trace` ([Array(UInt64)](/reference/data-types/array)) — Stack trace at the moment of sampling. Each element is a virtual memory address inside ClickHouse server process. -- `size` ([Int64](/reference/data-types/int-uint)) — For trace types Memory, MemorySample, MemoryAllocatedWithoutCheck or MemoryPeak is the amount of memory allocated, for other trace types is 0. -- `ptr` ([UInt64](/reference/data-types/int-uint)) — The address of the allocated chunk. -- `memory_context` ([Enum8('Unknown' = -1, 'Global' = 0, 'User' = 1, 'Process' = 2, 'Thread' = 3, 'Max' = 4)](/reference/data-types/enum)) — Memory Tracker context (only for Memory/MemoryPeak): `Unknown` context is not defined for this trace_type. `Global` represents server context. `User` represents user/merge context. `Process` represents process (i.e. query) context. `Thread` represents thread (thread of particular process) context. `Max` this is a special value means that memory tracker is not blocked (for blocked_context column). -- `memory_blocked_context` ([Enum8('Unknown' = -1, 'Global' = 0, 'User' = 1, 'Process' = 2, 'Thread' = 3, 'Max' = 4)](/reference/data-types/enum)) — Context for which memory tracker is blocked (for ClickHouse developers only): `Unknown` context is not defined for this trace_type. `Global` represents server context. `User` represents user/merge context. `Process` represents process (i.e. query) context. `Thread` represents thread (thread of particular process) context. `Max` this is a special value means that memory tracker is not blocked (for blocked_context column). -- `event` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — For trace type ProfileEvent is the name of updated profile event, for other trace types is an empty string. -- `increment` ([Int64](/reference/data-types/int-uint)) — For trace type ProfileEvent is the amount of increment of profile event, for other trace types is 0. -- `symbols` ([Array(LowCardinality(String))](/reference/data-types/array)) — If the symbolization is enabled, contains demangled symbol names, corresponding to the `trace`. Symbolization can be enabled or disabled in the `symbolize` setting under `trace_log` in the server configuration file. -- `lines` ([Array(LowCardinality(String))](/reference/data-types/array)) — If the symbolization is enabled, contains strings with file names with line numbers, corresponding to the `trace`. -- `function_id` ([Nullable(Int32)](/reference/data-types/nullable)) — For trace type Instrumentation, ID assigned to the function in xray_instr_map section of elf-binary. -- `function_name` ([Nullable(String)](/reference/data-types/nullable)) — For trace type Instrumentation, name of the instrumented function. -- `handler` ([Nullable(String)](/reference/data-types/nullable)) — For trace type Instrumentation, handler of the instrumented function. -- `entry_type` ([Nullable(Enum8('Entry' = 0, 'Exit' = 1))](/reference/data-types/nullable)) — For trace type Instrumentation, entry type of the instrumented function. -- `duration_nanoseconds` ([Nullable(UInt64)](/reference/data-types/nullable)) — For trace type Instrumentation, time the function was running for in nanoseconds. +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `event_date` ([Date](/core/reference/data-types/date)) — Date of sampling moment. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Timestamp of the sampling moment. +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Timestamp of the sampling moment with microseconds precision. +- `timestamp_ns` ([UInt64](/core/reference/data-types/int-uint)) — Timestamp of the sampling moment in nanoseconds. +- `revision` ([UInt32](/core/reference/data-types/int-uint)) — ClickHouse server build revision. When connecting to the server by `clickhouse-client`, you see a string similar to `Connected to ClickHouse server version 19.18.1.`. This field contains the `revision`, but not the `version` of a server. +- `trace_type` ([Enum8('Real' = 0, 'CPU' = 1, 'Memory' = 2, 'MemorySample' = 3, 'MemoryPeak' = 4, 'ProfileEvent' = 5, 'JemallocSample' = 6, 'MemoryAllocatedWithoutCheck' = 7, 'Instrumentation' = 8)](/core/reference/data-types/enum)) — Trace type: `Real` represents collecting stack traces by wall-clock time. `CPU` represents collecting stack traces by CPU time. `Memory` represents collecting allocations and deallocations when memory allocation exceeds the subsequent watermark. `MemorySample` represents collecting random allocations and deallocations. `MemoryPeak` represents collecting updates of peak memory usage. `ProfileEvent` represents collecting of increments of profile events. `JemallocSample` represents collecting of jemalloc samples. `MemoryAllocatedWithoutCheck` represents collection of significant allocations (>16MiB) that is done with ignoring any memory limits (for ClickHouse developers only).`Instrumentation` represents traces collected by the instrumentation performed through XRay. +- `cpu_id` ([UInt64](/core/reference/data-types/int-uint)) — CPU identifier. +- `thread_id` ([UInt64](/core/reference/data-types/int-uint)) — Thread identifier. +- `thread_name` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Thread name. +- `query_id` ([String](/core/reference/data-types/string)) — Query identifier that can be used to get details about a query that was running from the query_log system table. +- `trace` ([Array(UInt64)](/core/reference/data-types/array)) — Stack trace at the moment of sampling. Each element is a virtual memory address inside ClickHouse server process. +- `size` ([Int64](/core/reference/data-types/int-uint)) — For trace types Memory, MemorySample, MemoryAllocatedWithoutCheck or MemoryPeak is the amount of memory allocated, for other trace types is 0. +- `ptr` ([UInt64](/core/reference/data-types/int-uint)) — The address of the allocated chunk. +- `memory_context` ([Enum8('Unknown' = -1, 'Global' = 0, 'User' = 1, 'Process' = 2, 'Thread' = 3, 'Max' = 4)](/core/reference/data-types/enum)) — Memory Tracker context (only for Memory/MemoryPeak): `Unknown` context is not defined for this trace_type. `Global` represents server context. `User` represents user/merge context. `Process` represents process (i.e. query) context. `Thread` represents thread (thread of particular process) context. `Max` this is a special value means that memory tracker is not blocked (for blocked_context column). +- `memory_blocked_context` ([Enum8('Unknown' = -1, 'Global' = 0, 'User' = 1, 'Process' = 2, 'Thread' = 3, 'Max' = 4)](/core/reference/data-types/enum)) — Context for which memory tracker is blocked (for ClickHouse developers only): `Unknown` context is not defined for this trace_type. `Global` represents server context. `User` represents user/merge context. `Process` represents process (i.e. query) context. `Thread` represents thread (thread of particular process) context. `Max` this is a special value means that memory tracker is not blocked (for blocked_context column). +- `event` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — For trace type ProfileEvent is the name of updated profile event, for other trace types is an empty string. +- `increment` ([Int64](/core/reference/data-types/int-uint)) — For trace type ProfileEvent is the amount of increment of profile event, for other trace types is 0. +- `symbols` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — If the symbolization is enabled, contains demangled symbol names, corresponding to the `trace`. Symbolization can be enabled or disabled in the `symbolize` setting under `trace_log` in the server configuration file. +- `lines` ([Array(LowCardinality(String))](/core/reference/data-types/array)) — If the symbolization is enabled, contains strings with file names with line numbers, corresponding to the `trace`. +- `function_id` ([Nullable(Int32)](/core/reference/data-types/nullable)) — For trace type Instrumentation, ID assigned to the function in xray_instr_map section of elf-binary. +- `function_name` ([Nullable(String)](/core/reference/data-types/nullable)) — For trace type Instrumentation, name of the instrumented function. +- `handler` ([Nullable(String)](/core/reference/data-types/nullable)) — For trace type Instrumentation, handler of the instrumented function. +- `entry_type` ([Nullable(Enum8('Entry' = 0, 'Exit' = 1))](/core/reference/data-types/nullable)) — For trace type Instrumentation, entry type of the instrumented function. +- `duration_nanoseconds` ([Nullable(UInt64)](/core/reference/data-types/nullable)) — For trace type Instrumentation, time the function was running for in nanoseconds. **Aliases:** @@ -132,6 +132,6 @@ We can omit the stack part if we want a more compact but less informative trace. ## See Also {#see-also} -- [SYSTEM INSTRUMENT](/reference/statements/system#instrument) — Add or remove instrumentation points. -- [system.instrumentation](/reference/system-tables/instrumentation) — Inspect instrumented points. -- [system.symbols](/reference/system-tables/symbols) — Inspect symbols to add instrumentation points. +- [SYSTEM INSTRUMENT](/core/reference/statements/system#instrument) — Add or remove instrumentation points. +- [system.instrumentation](/core/reference/system-tables/instrumentation) — Inspect instrumented points. +- [system.symbols](/core/reference/system-tables/symbols) — Inspect symbols to add instrumentation points. diff --git a/core/reference/system-tables/transactions.mdx b/core/reference/system-tables/transactions.mdx new file mode 100644 index 00000000..22735dac --- /dev/null +++ b/core/reference/system-tables/transactions.mdx @@ -0,0 +1,21 @@ +--- +description: 'Contains a list of transactions and their state.' +keywords: ['system table', 'transactions'] +slug: /operations/system-tables/transactions +title: 'system.transactions' +doc_type: 'reference' +--- + +## Description {#description} + +Contains a list of transactions and their state. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `tid` ([Tuple(UInt64, UInt64, UUID)](/core/reference/data-types/tuple)) — The identifier of the transaction. +- `tid_hash` ([UInt64](/core/reference/data-types/int-uint)) — The hash of the identifier. +- `elapsed` ([Float64](/core/reference/data-types/float)) — The amount of time the transaction being processed. +- `is_readonly` ([UInt8](/core/reference/data-types/int-uint)) — The flag which shows whether the transaction has executed any write operation. +- `state` ([Enum8('RUNNING' = 0, 'COMMITTING' = 1, 'COMMITTED' = 2, 'ROLLED_BACK' = 3)](/core/reference/data-types/enum)) — The state of the transaction. Possible values: RUNNING, COMMITTING, COMMITTED, ROLLED_BACK. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/transactions_info_log.mdx b/core/reference/system-tables/transactions_info_log.mdx new file mode 100644 index 00000000..605d831f --- /dev/null +++ b/core/reference/system-tables/transactions_info_log.mdx @@ -0,0 +1,31 @@ +--- +description: 'Contains information about all transactions executed on a current server. + +It is safe to truncate or drop this table at any time.' +keywords: ['system table', 'transactions_info_log'] +slug: /operations/system-tables/transactions_info_log +title: 'system.transactions_info_log' +doc_type: 'reference' +--- + +Contains information about all transactions executed on a current server. + +It is safe to truncate or drop this table at any time. + +Columns: + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — The hostname where transaction was executed. +- `type` ([Enum8('Begin' = 1, 'Commit' = 2, 'Rollback' = 3, 'AddPart' = 10, 'LockPart' = 11, 'UnlockPart' = 12)](/core/reference/data-types/enum)) — The type of the transaction. Possible values: Begin, Commit, Rollback, AddPart, LockPart, UnlockPart. +- `event_date` ([Date](/core/reference/data-types/date)) — Date of the entry. +- `event_time` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Time of the entry +- `thread_id` ([UInt64](/core/reference/data-types/int-uint)) — The identifier of a thread. +- `query_id` ([String](/core/reference/data-types/string)) — The ID of a query executed in a scope of transaction. +- `tid` ([Tuple(UInt64, UInt64, UUID)](/core/reference/data-types/tuple)) — The identifier of a transaction. +- `tid_hash` ([UInt64](/core/reference/data-types/int-uint)) — The hash of the identifier. +- `csn` ([UInt64](/core/reference/data-types/int-uint)) — The Commit Sequence Number +- `database` ([String](/core/reference/data-types/string)) — The name of the database the transaction was executed against. +- `table` ([String](/core/reference/data-types/string)) — The name of the table the transaction was executed against. +- `uuid` ([UUID](/core/reference/data-types/uuid)) — The uuid of the table the transaction was executed against. +- `part` ([String](/core/reference/data-types/string)) — The name of the part participated in the transaction. +{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/unicode.mdx b/core/reference/system-tables/unicode.mdx similarity index 94% rename from reference/system-tables/unicode.mdx rename to core/reference/system-tables/unicode.mdx index 99a28f9b..54620365 100644 --- a/reference/system-tables/unicode.mdx +++ b/core/reference/system-tables/unicode.mdx @@ -15,9 +15,9 @@ The property names of Unicode code points from ICU are converted to `snake_case` ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `code_point` ([String](/reference/data-types)) — The Unicode code point represented as U+XXXX. -- `code_point_value` ([Int32](/reference/data-types)) — The integer value of the Unicode code point. -- `notation` ([String](/reference/data-types)) — The character notation (visual representation of the code point). +- `code_point` ([String](/core/reference/data-types)) — The Unicode code point represented as U+XXXX. +- `code_point_value` ([Int32](/core/reference/data-types)) — The integer value of the Unicode code point. +- `notation` ([String](/core/reference/data-types)) — The character notation (visual representation of the code point). {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/user_defined_functions.mdx b/core/reference/system-tables/user_defined_functions.mdx new file mode 100644 index 00000000..7ffffd8b --- /dev/null +++ b/core/reference/system-tables/user_defined_functions.mdx @@ -0,0 +1,80 @@ +--- +description: 'System table containing loading status and configuration metadata for User-Defined Functions (UDFs).' +keywords: ['system table', 'user_defined_functions', 'udf', 'executable'] +slug: /operations/system-tables/user_defined_functions +title: 'system.user_defined_functions' +doc_type: 'reference' +--- + +## Description {#description} + +Contains loading status, error information, and configuration metadata for [User-Defined Functions (UDFs)](/core/reference/functions/regular-functions/udf). + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `name` ([String](/core/reference/data-types)) — UDF name. +- `load_status` ([Enum8('Success' = 0, 'Failed' = 1)](/core/reference/data-types)) — Loading status.Possible values: + - **Success** — UDF loaded and ready to use + - **Failed** — UDF failed to load (see field 'loading_error_message' for details). +- `loading_error_message` ([String](/core/reference/data-types)) — Detailed error message when loading failed. Empty if loaded successfully. +- `last_successful_update_time` ([Nullable(DateTime)](/core/reference/data-types)) — Timestamp of the last successful update. NULL if never succeeded. +- `loading_duration_ms` ([UInt64](/core/reference/data-types)) — Time spent loading the UDF, in milliseconds. +- `type` ([Enum8('executable' = 0, 'executable_pool' = 1)](/core/reference/data-types)) — UDF type: 'executable' (single process) or 'executable_pool' (process pool). +- `command` ([String](/core/reference/data-types)) — Script or command to execute for this UDF. +- `format` ([String](/core/reference/data-types)) — Data format for I/O (e.g., 'TabSeparated', 'JSONEachRow'). +- `return_type` ([String](/core/reference/data-types)) — Function return type (e.g., 'String', 'UInt64'). +- `return_name` ([String](/core/reference/data-types)) — Optional return value identifier. Empty if not configured. +- `argument_types` ([Array(String)](/core/reference/data-types)) — Array of argument types (e.g., ['String', 'UInt64']). +- `argument_names` ([Array(String)](/core/reference/data-types)) — Array of argument names. Empty strings for unnamed arguments. +- `max_command_execution_time` ([UInt64](/core/reference/data-types)) — Maximum seconds to process a data block. Only for 'executable_pool' type. +- `command_termination_timeout` ([UInt64](/core/reference/data-types)) — Seconds before sending SIGTERM to command process. +- `command_read_timeout` ([UInt64](/core/reference/data-types)) — Milliseconds for reading from command stdout. +- `command_write_timeout` ([UInt64](/core/reference/data-types)) — Milliseconds for writing to command stdin. +- `pool_size` ([UInt64](/core/reference/data-types)) — Number of command process instances. Only for 'executable_pool' type. +- `send_chunk_header` ([UInt8](/core/reference/data-types)) — Whether to send row count before each data chunk (boolean). +- `execute_direct` ([UInt8](/core/reference/data-types)) — Whether to execute command directly (1) or via /bin/bash (0). +- `lifetime` ([UInt64](/core/reference/data-types)) — Reload interval in seconds. 0 means reload is disabled. +- `deterministic` ([UInt8](/core/reference/data-types)) — Whether function returns the same result for the same arguments (boolean). +{/*AUTOGENERATED_END*/} + +## Example {#example} + +View all UDFs and their loading status: + +```sql +SELECT + name, + load_status, + type, + command, + return_type, + argument_types +FROM system.user_defined_functions +FORMAT Vertical; +``` + +```response +Row 1: +────── +name: my_sum_udf +load_status: Success +type: executable +command: /var/lib/clickhouse/user_scripts/sum.py +return_type: UInt64 +argument_types: ['UInt64','UInt64'] +``` + +Find failed UDFs: + +```sql +SELECT + name, + loading_error_message +FROM system.user_defined_functions +WHERE load_status = 'Failed'; +``` + +## See Also {#see-also} + +- [User-Defined Functions](/core/reference/functions/regular-functions/udf) — How to create and configure UDFs. diff --git a/reference/system-tables/user_directories.mdx b/core/reference/system-tables/user_directories.mdx similarity index 54% rename from reference/system-tables/user_directories.mdx rename to core/reference/system-tables/user_directories.mdx index 780a8306..4b80fb5a 100644 --- a/reference/system-tables/user_directories.mdx +++ b/core/reference/system-tables/user_directories.mdx @@ -13,8 +13,8 @@ Contains the information about configured user directories - directories on the ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — The name of the directory. -- `type` ([String](/reference/data-types)) — The type of the access storage e.g. users.xml or replicated or memory etc. -- `params` ([String](/reference/data-types)) — JSON with the parameters of the access storage. -- `precedence` ([UInt64](/reference/data-types)) — The order in which this directory is declared in the config. The same order is used when ClickHouse tries to find a user or role. +- `name` ([String](/core/reference/data-types)) — The name of the directory. +- `type` ([String](/core/reference/data-types)) — The type of the access storage e.g. users.xml or replicated or memory etc. +- `params` ([String](/core/reference/data-types)) — JSON with the parameters of the access storage. +- `precedence` ([UInt64](/core/reference/data-types)) — The order in which this directory is declared in the config. The same order is used when ClickHouse tries to find a user or role. {/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/user_processes.mdx b/core/reference/system-tables/user_processes.mdx similarity index 72% rename from reference/system-tables/user_processes.mdx rename to core/reference/system-tables/user_processes.mdx index 54627129..4b11ebfc 100644 --- a/reference/system-tables/user_processes.mdx +++ b/core/reference/system-tables/user_processes.mdx @@ -18,10 +18,10 @@ This system table can be used to get overview of memory usage and ProfileEvents ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `user` ([String](/reference/data-types)) — User name. -- `memory_usage` ([Int64](/reference/data-types)) — Sum of RAM used by all processes of the user. It might not include some types of dedicated memory. See the max_memory_usage setting. -- `peak_memory_usage` ([Int64](/reference/data-types)) — The peak of memory usage of the user. It can be reset when no queries are run for the user. -- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/reference/data-types)) — Summary of ProfileEvents that measure different metrics for the user. The description of them could be found in the table system.events +- `user` ([String](/core/reference/data-types)) — User name. +- `memory_usage` ([Int64](/core/reference/data-types)) — Sum of RAM used by all processes of the user. It might not include some types of dedicated memory. See the max_memory_usage setting. +- `peak_memory_usage` ([Int64](/core/reference/data-types)) — The peak of memory usage of the user. It can be reset when no queries are run for the user. +- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/core/reference/data-types)) — Summary of ProfileEvents that measure different metrics for the user. The description of them could be found in the table system.events {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/core/reference/system-tables/users.mdx b/core/reference/system-tables/users.mdx new file mode 100644 index 00000000..f4b1922d --- /dev/null +++ b/core/reference/system-tables/users.mdx @@ -0,0 +1,37 @@ +--- +description: 'System table containing a list of user accounts configured on the server.' +keywords: ['system table', 'users'] +slug: /operations/system-tables/users +title: 'system.users' +doc_type: 'reference' +--- + +## Description {#description} + +Contains a list of [user accounts](/core/concepts/features/security/access-rights#user-account-management) configured on the server. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `name` ([String](/core/reference/data-types)) — User name. +- `id` ([UUID](/core/reference/data-types)) — User ID. +- `storage` ([String](/core/reference/data-types)) — Path to the storage of users. Configured in the access_control_path parameter. +- `auth_type` ([Array(Enum8('no_password' = 0, 'plaintext_password' = 1, 'sha256_password' = 2, 'double_sha1_password' = 3, 'ldap' = 4, 'kerberos' = 5, 'ssl_certificate' = 6, 'bcrypt_password' = 7, 'ssh_key' = 8, 'http' = 9, 'jwt' = 10, 'scram_sha256_password' = 11, 'no_authentication' = 12))](/core/reference/data-types)) — Shows the authentication types. There are multiple ways of user identification: with no password, with plain text password, with SHA256-encoded password, with double SHA-1-encoded password or with bcrypt-encoded password. +- `auth_params` ([Array(String)](/core/reference/data-types)) — Authentication parameters in the JSON format depending on the auth_type. +- `valid_until` ([Array(DateTime)](/core/reference/data-types)) — The expiration date and time for user credentials. +- `host_ip` ([Array(String)](/core/reference/data-types)) — IP addresses of hosts that are allowed to connect to the ClickHouse server. +- `host_names` ([Array(String)](/core/reference/data-types)) — Names of hosts that are allowed to connect to the ClickHouse server. +- `host_names_regexp` ([Array(String)](/core/reference/data-types)) — Regular expression for host names that are allowed to connect to the ClickHouse server. +- `host_names_like` ([Array(String)](/core/reference/data-types)) — Names of hosts that are allowed to connect to the ClickHouse server, set using the LIKE predicate. +- `default_roles_all` ([UInt8](/core/reference/data-types)) — Shows that all granted roles set for user by default. +- `default_roles_list` ([Array(String)](/core/reference/data-types)) — List of granted roles provided by default. +- `default_roles_except` ([Array(String)](/core/reference/data-types)) — All the granted roles set as default excepting of the listed ones. +- `grantees_any` ([UInt8](/core/reference/data-types)) — The flag that indicates whether a user with any grant option can grant it to anyone. +- `grantees_list` ([Array(String)](/core/reference/data-types)) — The list of users or roles to which this user is allowed to grant options to. +- `grantees_except` ([Array(String)](/core/reference/data-types)) — The list of users or roles to which this user is forbidden from grant options to. +- `default_database` ([String](/core/reference/data-types)) — The name of the default database for this user. +{/*AUTOGENERATED_END*/} + +## See also {#see-also} + +- [SHOW USERS](/core/reference/statements/show#show-users) diff --git a/core/reference/system-tables/view_refreshes.mdx b/core/reference/system-tables/view_refreshes.mdx new file mode 100644 index 00000000..48bc8c6d --- /dev/null +++ b/core/reference/system-tables/view_refreshes.mdx @@ -0,0 +1,54 @@ +--- +description: 'System table containing information about Refreshable Materialized Views.' +keywords: ['system table', 'view_refreshes'] +slug: /operations/system-tables/view_refreshes +title: 'system.view_refreshes' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +Information about [Refreshable Materialized Views](/core/reference/statements/create/view#refreshable-materialized-view). Contains all refreshable materialized views, regardless of whether there's a refresh in progress or not. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `database` ([String](/core/reference/data-types)) — The name of the database the table is in. +- `view` ([String](/core/reference/data-types)) — Table name. +- `uuid` ([UUID](/core/reference/data-types)) — Table uuid (Atomic database). +- `status` ([String](/core/reference/data-types)) — Current state of the refresh. +- `last_success_time` ([Nullable(DateTime)](/core/reference/data-types)) — Time when the latest successful refresh started. NULL if no successful refreshes happened since server startup or table creation. +- `last_success_duration_ms` ([Nullable(UInt64)](/core/reference/data-types)) — How long the latest refresh took. +- `last_refresh_time` ([Nullable(DateTime)](/core/reference/data-types)) — Time when the latest refresh attempt finished (if known) or started (if unknown or still running). NULL if no refresh attempts happened since server startup or table creation. +- `last_refresh_replica` ([String](/core/reference/data-types)) — If coordination is enabled, name of the replica that made the current (if running) or previous (if not running) refresh attempt. +- `next_refresh_time` ([Nullable(DateTime)](/core/reference/data-types)) — Time at which the next refresh is scheduled to start, if status = Scheduled. +- `exception` ([String](/core/reference/data-types)) — Error message from previous attempt if it failed. +- `retry` ([UInt64](/core/reference/data-types)) — How many failed attempts there were so far, for the current refresh. Not available if status is `RunningOnAnotherReplica`. +- `progress` ([Nullable(Float64)](/core/reference/data-types)) — Progress of the current running or most recently completed refresh at the given replica, between 0 and 1. NULL if status is `RunningOnAnotherReplica` or the refresh is not running. +- `read_rows` ([Nullable(UInt64)](/core/reference/data-types)) — Number of rows read by the current running or most recently completed refresh at the given replica. NULL if status is `RunningOnAnotherReplica`. +- `read_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — Number of bytes read by the current running or most recently completed refresh at the given replica. NULL if status is `RunningOnAnotherReplica` +- `total_rows` ([Nullable(UInt64)](/core/reference/data-types)) — Estimated total number of rows that need to be read by the current running or most recently completed refresh at the given replica. NULL if status is `RunningOnAnotherReplica` +- `written_rows` ([Nullable(UInt64)](/core/reference/data-types)) — Number of rows written by the current running or most recently completed refresh at the given replica. NULL if status is `RunningOnAnotherReplica` +- `written_bytes` ([Nullable(UInt64)](/core/reference/data-types)) — Number of bytes written by the current running or most recently completed refresh at the given replica. NULL if status is `RunningOnAnotherReplica` +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql +SELECT + database, + view, + status, + last_refresh_result, + last_refresh_time, + next_refresh_time +FROM system.view_refreshes + +┌─database─┬─view───────────────────────┬─status────┬─last_refresh_result─┬───last_refresh_time─┬───next_refresh_time─┐ +│ default │ hello_documentation_reader │ Scheduled │ Finished │ 2023-12-01 01:24:00 │ 2023-12-01 01:25:00 │ +└──────────┴────────────────────────────┴───────────┴─────────────────────┴─────────────────────┴─────────────────────┘ +``` diff --git a/reference/system-tables/warnings.mdx b/core/reference/system-tables/warnings.mdx similarity index 67% rename from reference/system-tables/warnings.mdx rename to core/reference/system-tables/warnings.mdx index 5d35a7ef..fbef772a 100644 --- a/reference/system-tables/warnings.mdx +++ b/core/reference/system-tables/warnings.mdx @@ -13,6 +13,6 @@ Contains warnings about server configuration to be displayed by clickhouse-clien ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `message` ([String](/reference/data-types)) — A warning message issued by ClickHouse server. -- `message_format_string` ([LowCardinality(String)](/reference/data-types)) — A format string that was used to format the message. +- `message` ([String](/core/reference/data-types)) — A warning message issued by ClickHouse server. +- `message_format_string` ([LowCardinality(String)](/core/reference/data-types)) — A format string that was used to format the message. {/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/workloads.mdx b/core/reference/system-tables/workloads.mdx similarity index 62% rename from reference/system-tables/workloads.mdx rename to core/reference/system-tables/workloads.mdx index dce3ad8a..12a04559 100644 --- a/reference/system-tables/workloads.mdx +++ b/core/reference/system-tables/workloads.mdx @@ -9,14 +9,14 @@ doc_type: 'reference' ## Description {#description} -Contains information for [workloads](/concepts/features/configuration/server-config/workload-scheduling#workload_entity_storage) residing on the local server. The table contains a row for every workload. +Contains information for [workloads](/core/concepts/features/configuration/server-config/workload-scheduling#workload_entity_storage) residing on the local server. The table contains a row for every workload. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — The name of the workload. -- `parent` ([String](/reference/data-types)) — The name of the parent workload. -- `create_query` ([String](/reference/data-types)) — CREATE query of the workload. +- `name` ([String](/core/reference/data-types)) — The name of the workload. +- `parent` ([String](/core/reference/data-types)) — The name of the parent workload. +- `create_query` ([String](/core/reference/data-types)) — CREATE query of the workload. {/*AUTOGENERATED_END*/} ## Example {#example} diff --git a/reference/system-tables/zeros.mdx b/core/reference/system-tables/zeros.mdx similarity index 86% rename from reference/system-tables/zeros.mdx rename to core/reference/system-tables/zeros.mdx index 66ed2e72..8bbf80ad 100644 --- a/reference/system-tables/zeros.mdx +++ b/core/reference/system-tables/zeros.mdx @@ -13,5 +13,5 @@ Produces unlimited number of non-materialized zeros. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `zero` ([UInt8](/reference/data-types)) — dummy +- `zero` ([UInt8](/core/reference/data-types)) — dummy {/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/zeros_mt.mdx b/core/reference/system-tables/zeros_mt.mdx similarity index 85% rename from reference/system-tables/zeros_mt.mdx rename to core/reference/system-tables/zeros_mt.mdx index b8df634d..f5c1d52f 100644 --- a/reference/system-tables/zeros_mt.mdx +++ b/core/reference/system-tables/zeros_mt.mdx @@ -13,5 +13,5 @@ Multithreaded version of system.zeros. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `zero` ([UInt8](/reference/data-types)) — dummy +- `zero` ([UInt8](/core/reference/data-types)) — dummy {/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/zookeeper.mdx b/core/reference/system-tables/zookeeper.mdx similarity index 100% rename from reference/system-tables/zookeeper.mdx rename to core/reference/system-tables/zookeeper.mdx diff --git a/reference/system-tables/zookeeper_connection.mdx b/core/reference/system-tables/zookeeper_connection.mdx similarity index 55% rename from reference/system-tables/zookeeper_connection.mdx rename to core/reference/system-tables/zookeeper_connection.mdx index 1ae35e9e..a39e85d6 100644 --- a/reference/system-tables/zookeeper_connection.mdx +++ b/core/reference/system-tables/zookeeper_connection.mdx @@ -18,20 +18,20 @@ This table does not exist if ZooKeeper is not configured. The 'system.zookeeper_ ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types/string)) — ZooKeeper cluster's name. -- `host` ([String](/reference/data-types/string)) — The hostname/IP of the ZooKeeper node that ClickHouse connected to. -- `port` ([UIn16](/reference/data-types/int-uint)) — The port of the ZooKeeper node that ClickHouse connected to. -- `index` ([Nullable(UInt8)](/reference/data-types/int-uint)) — The index of the ZooKeeper node that ClickHouse connected to. The index is from ZooKeeper config. If not connected, this column is NULL. -- `connected_time` ([DateTime](/reference/data-types/datetime)) — When the connection was established -- `session_uptime_elapsed_seconds` ([UInt64](/reference/data-types/int-uint)) — Seconds elapsed since the connection was established. -- `is_expired` ([UInt8](/reference/data-types/int-uint)) — Is the current connection expired. -- `keeper_api_version` ([UInt8](/reference/data-types/int-uint)) — Keeper API version. -- `client_id` ([Int64](/reference/data-types/int-uint)) — Session id of the connection. -- `xid` ([Int64](/reference/data-types/int-uint)) — XID of the current session. -- `enabled_feature_flags` ([Array(Enum16)](/reference/data-types/array)) — Feature flags which are enabled. Only applicable to ClickHouse Keeper. Possible values are `FILTERED_LIST`, `MULTI_READ`, `CHECK_NOT_EXISTS`, `CREATE_IF_NOT_EXISTS`, `REMOVE_RECURSIVE`. -- `availability_zone` ([String](/reference/data-types/string)) — Availability zone. -- `session_timeout_ms` ([UInt64](/reference/data-types/int-uint)) — Session timeout (in milliseconds). -- `last_zxid_seen` ([Int64](/reference/data-types/int-uint)) — Last zxid seen by the current session. +- `name` ([String](/core/reference/data-types/string)) — ZooKeeper cluster's name. +- `host` ([String](/core/reference/data-types/string)) — The hostname/IP of the ZooKeeper node that ClickHouse connected to. +- `port` ([UIn16](/core/reference/data-types/int-uint)) — The port of the ZooKeeper node that ClickHouse connected to. +- `index` ([Nullable(UInt8)](/core/reference/data-types/int-uint)) — The index of the ZooKeeper node that ClickHouse connected to. The index is from ZooKeeper config. If not connected, this column is NULL. +- `connected_time` ([DateTime](/core/reference/data-types/datetime)) — When the connection was established +- `session_uptime_elapsed_seconds` ([UInt64](/core/reference/data-types/int-uint)) — Seconds elapsed since the connection was established. +- `is_expired` ([UInt8](/core/reference/data-types/int-uint)) — Is the current connection expired. +- `keeper_api_version` ([UInt8](/core/reference/data-types/int-uint)) — Keeper API version. +- `client_id` ([Int64](/core/reference/data-types/int-uint)) — Session id of the connection. +- `xid` ([Int64](/core/reference/data-types/int-uint)) — XID of the current session. +- `enabled_feature_flags` ([Array(Enum16)](/core/reference/data-types/array)) — Feature flags which are enabled. Only applicable to ClickHouse Keeper. Possible values are `FILTERED_LIST`, `MULTI_READ`, `CHECK_NOT_EXISTS`, `CREATE_IF_NOT_EXISTS`, `REMOVE_RECURSIVE`. +- `availability_zone` ([String](/core/reference/data-types/string)) — Availability zone. +- `session_timeout_ms` ([UInt64](/core/reference/data-types/int-uint)) — Session timeout (in milliseconds). +- `last_zxid_seen` ([Int64](/core/reference/data-types/int-uint)) — Last zxid seen by the current session. {/*AUTOGENERATED_END*/} Example: diff --git a/reference/system-tables/zookeeper_connection_log.mdx b/core/reference/system-tables/zookeeper_connection_log.mdx similarity index 78% rename from reference/system-tables/zookeeper_connection_log.mdx rename to core/reference/system-tables/zookeeper_connection_log.mdx index 03be127d..ef70ee8e 100644 --- a/reference/system-tables/zookeeper_connection_log.mdx +++ b/core/reference/system-tables/zookeeper_connection_log.mdx @@ -21,20 +21,20 @@ The table doesn't contain events for disconnections caused by server shutdown. ## Columns {#columns} {/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server which is connected to or disconnected from ZooKeeper. -- `type` ([Enum8('Connected' = 0, 'Disconnected' = 1)](/reference/data-types/enum)) — The type of the event. Possible values: Connected, Disconnected. -- `event_date` ([Date](/reference/data-types/date)) — Date of the entry. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Time of the entry -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Time of the entry with microseconds precision. -- `name` ([String](/reference/data-types/string)) — ZooKeeper cluster's name. -- `host` ([String](/reference/data-types/string)) — The hostname/IP of the ZooKeeper node that ClickHouse connected to or disconnected from. -- `port` ([UInt16](/reference/data-types/int-uint)) — The port of the ZooKeeper node that ClickHouse connected to or disconnected from. -- `index` ([UInt8](/reference/data-types/int-uint)) — The index of the ZooKeeper node that ClickHouse connected to or disconnected from. The index is from ZooKeeper config. -- `client_id` ([Int64](/reference/data-types/int-uint)) — Session id of the connection. -- `keeper_api_version` ([UInt8](/reference/data-types/int-uint)) — Keeper API version. -- `enabled_feature_flags` ([Array(Enum16('FILTERED_LIST' = 0, 'MULTI_READ' = 1, 'CHECK_NOT_EXISTS' = 2, 'CREATE_IF_NOT_EXISTS' = 3, 'REMOVE_RECURSIVE' = 4, 'MULTI_WATCHES' = 5, 'CHECK_STAT' = 6, 'PERSISTENT_WATCHES' = 7, 'CREATE_WITH_STATS' = 8, 'TRY_REMOVE' = 9, 'LIST_WITH_STAT_AND_DATA' = 10, 'GET_CHILDREN_RECURSIVE' = 11))](/reference/data-types/array)) — Feature flags which are enabled. Only applicable to ClickHouse Keeper. -- `availability_zone` ([String](/reference/data-types/string)) — Availability zone -- `reason` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Reason for the connection or disconnection. +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server which is connected to or disconnected from ZooKeeper. +- `type` ([Enum8('Connected' = 0, 'Disconnected' = 1)](/core/reference/data-types/enum)) — The type of the event. Possible values: Connected, Disconnected. +- `event_date` ([Date](/core/reference/data-types/date)) — Date of the entry. +- `event_time` ([DateTime](/core/reference/data-types/datetime)) — Time of the entry +- `event_time_microseconds` ([DateTime64(6)](/core/reference/data-types/datetime64)) — Time of the entry with microseconds precision. +- `name` ([String](/core/reference/data-types/string)) — ZooKeeper cluster's name. +- `host` ([String](/core/reference/data-types/string)) — The hostname/IP of the ZooKeeper node that ClickHouse connected to or disconnected from. +- `port` ([UInt16](/core/reference/data-types/int-uint)) — The port of the ZooKeeper node that ClickHouse connected to or disconnected from. +- `index` ([UInt8](/core/reference/data-types/int-uint)) — The index of the ZooKeeper node that ClickHouse connected to or disconnected from. The index is from ZooKeeper config. +- `client_id` ([Int64](/core/reference/data-types/int-uint)) — Session id of the connection. +- `keeper_api_version` ([UInt8](/core/reference/data-types/int-uint)) — Keeper API version. +- `enabled_feature_flags` ([Array(Enum16('FILTERED_LIST' = 0, 'MULTI_READ' = 1, 'CHECK_NOT_EXISTS' = 2, 'CREATE_IF_NOT_EXISTS' = 3, 'REMOVE_RECURSIVE' = 4, 'MULTI_WATCHES' = 5, 'CHECK_STAT' = 6, 'PERSISTENT_WATCHES' = 7, 'CREATE_WITH_STATS' = 8, 'TRY_REMOVE' = 9, 'LIST_WITH_STAT_AND_DATA' = 10, 'GET_CHILDREN_RECURSIVE' = 11))](/core/reference/data-types/array)) — Feature flags which are enabled. Only applicable to ClickHouse Keeper. +- `availability_zone` ([String](/core/reference/data-types/string)) — Availability zone +- `reason` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Reason for the connection or disconnection. {/*AUTOGENERATED_END*/} Example: diff --git a/core/reference/system-tables/zookeeper_info.mdx b/core/reference/system-tables/zookeeper_info.mdx new file mode 100644 index 00000000..815ab0db --- /dev/null +++ b/core/reference/system-tables/zookeeper_info.mdx @@ -0,0 +1,58 @@ +--- +description: 'System table which outputs introspection of all available keeper nodes.' +keywords: ['system table', 'zookeeper_info'] +slug: /operations/system-tables/zookeeper_info +title: 'system.zookeeper_info' +doc_type: 'reference' +--- + +import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; + + + +## Description {#description} + +This table outputs combined introspection about zookeeper and the nodes are taken from config. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `zookeeper_cluster_name` ([String](/core/reference/data-types/string)) — ZooKeeper cluster's name. +- `host` ([String](/core/reference/data-types/string)) — The hostname/IP of the ZooKeeper node that ClickHouse connected to. +- `port` ([UInt16](/core/reference/data-types/int-uint)) — The port of the ZooKeeper node that ClickHouse connected to. +- `index` ([Nullable(UInt8)](/core/reference/data-types/int-uint)) — The index of the ZooKeeper node that ClickHouse connected to. The index is from ZooKeeper config. If not connected, this column is NULL. +- `is_connected` ([Nullable(UInt8)](/core/reference/data-types/int-uint)) — If zookeeper is connected or not. +- `is_readonly` ([UInt8](/core/reference/data-types/int-uint)) — Is read only. +- `version` ([String](/core/reference/data-types/string)) — The ZooKeeper version. +- `avg_latency` ([UInt64](/core/reference/data-types/int-uint)) — The average latency. +- `max_latency` ([UInt64](/core/reference/data-types/int-uint)) — The max latency. +- `min_latency` ([UInt64](/core/reference/data-types/int-uint)) — The min latency. +- `packets_received` ([UInt64](/core/reference/data-types/int-uint)) — The number of packets received. +- `packets_sent` ([UInt64](/core/reference/data-types/int-uint)) — The number of packets sent. +- `outstanding_requests` ([UInt64](/core/reference/data-types/int-uint)) — The number of outstanding requests. +- `server_state` ([String](/core/reference/data-types/string)) — Server state. +- `is_leader` ([UInt8](/core/reference/data-types/int-uint)) — Is this zookeeper leader. +- `znode_count` ([UInt64](/core/reference/data-types/int-uint)) — The znode count. +- `watch_count` ([UInt64](/core/reference/data-types/int-uint)) — The watch count. +- `ephemerals_count` ([UInt64](/core/reference/data-types/int-uint)) — The ephemerals count. +- `approximate_data_size` ([UInt64](/core/reference/data-types/int-uint)) — The approximate data size. +- `followers` ([UInt64](/core/reference/data-types/int-uint)) — The followers of the leader. This field is only exposed by the leader. +- `synced_followers` ([UInt64](/core/reference/data-types/int-uint)) — TThe synced followers of the leader. This field is only exposed by the leader. +- `pending_syncs` ([UInt64](/core/reference/data-types/int-uint)) — The pending syncs of the leader. This field is only exposed by the leader. +- `open_file_descriptor_count` ([UInt64](/core/reference/data-types/int-uint)) — The open file descriptor count. Only available on Unix platforms. +- `max_file_descriptor_count` ([UInt64](/core/reference/data-types/int-uint)) — The max file descriptor count. Only available on Unix platforms. +- `connections` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper connections. +- `outstanding` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper outstanding. +- `zxid` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper zxid. +- `node_count` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper node count. +- `snapshot_dir_size` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper snapshot directory size. +- `log_dir_size` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper log directory size. +- `first_log_idx` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper first log index. +- `first_log_term` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper first log term. +- `last_log_idx` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper last log index. +- `last_log_term` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper last log term. +- `last_committed_idx` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper last committed index. +- `leader_committed_log_idx` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper leader committed log index. +- `target_committed_log_idx` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper target committed log index. +- `last_snapshot_idx` ([UInt64](/core/reference/data-types/int-uint)) — The ZooKeeper last snapshot index. +{/*AUTOGENERATED_END*/} diff --git a/core/reference/system-tables/zookeeper_log.mdx b/core/reference/system-tables/zookeeper_log.mdx new file mode 100644 index 00000000..27788b58 --- /dev/null +++ b/core/reference/system-tables/zookeeper_log.mdx @@ -0,0 +1,130 @@ +--- +description: 'System table containing information about the parameters of the request + to the ZooKeeper server and the response from it.' +keywords: ['system table', 'zookeeper_log'] +slug: /operations/system-tables/zookeeper_log +title: 'system.zookeeper_log' +doc_type: 'reference' +--- + +## Description {#description} + +This table contains information about the parameters of the request to the ZooKeeper server and the response from it. + +For requests, only columns with request parameters are filled in, and the remaining columns are filled with default values (`0` or `NULL`). When the response arrives, the data from the response is added to the other columns. + +## Columns {#columns} + +{/*AUTOGENERATED_START*/} +- `hostname` ([LowCardinality(String)](/core/reference/data-types/lowcardinality)) — Hostname of the server executing the query. +- `type` ([Enum8('Request' = 1, 'Response' = 2, 'Finalize' = 3)](/core/reference/data-types/enum)) — Event type in the ZooKeeper client. Can have one of the following values: Request — The request has been sent, Response — The response was received, Finalize — The connection is lost, no response was received. +- `event_date` ([Date](/core/reference/data-types/date)) — The date when the event happened. +- `event_time` ([DateTime64(6)](/core/reference/data-types/datetime64)) — The date and time when the event happened. +- `thread_id` ([UInt64](/core/reference/data-types/int-uint)) — The ID of the thread executed this request. +- `query_id` ([String](/core/reference/data-types/string)) — The ID of a query in scope of which this request was executed. +- `address` ([IPv6](/core/reference/data-types/ipv6)) — IP address of ZooKeeper server that was used to make the request. +- `port` ([UInt16](/core/reference/data-types/int-uint)) — The port of ZooKeeper server that was used to make the request. +- `session_id` ([Int64](/core/reference/data-types/int-uint)) — The session ID that the ZooKeeper server sets for each connection. +- `duration_microseconds` ([UInt64](/core/reference/data-types/int-uint)) — The time taken by ZooKeeper to execute the request. +- `xid` ([Int64](/core/reference/data-types/int-uint)) — The ID of the request within the session. This is usually a sequential request number. It is the same for the request row and the paired response/finalize row. +- `has_watch` ([UInt8](/core/reference/data-types/int-uint)) — The request whether the watch has been set. +- `op_num` ([Enum16('Close' = -11, 'Error' = -1, 'Watch' = 0, 'Create' = 1, 'Remove' = 2, 'Exists' = 3, 'Get' = 4, 'Set' = 5, 'GetACL' = 6, 'SetACL' = 7, 'SimpleList' = 8, 'Sync' = 9, 'Heartbeat' = 11, 'List' = 12, 'Check' = 13, 'Multi' = 14, 'Create2' = 15, 'Reconfig' = 16, 'CheckWatch' = 17, 'RemoveWatch' = 18, 'MultiRead' = 22, 'Auth' = 100, 'SetWatch' = 101, 'SetWatch2' = 105, 'AddWatch' = 106, 'FilteredList' = 500, 'CheckNotExists' = 501, 'CreateIfNotExists' = 502, 'RemoveRecursive' = 503, 'CheckStat' = 504, 'TryRemove' = 505, 'FilteredListWithStatsAndData' = 506, 'ListRecursive' = 507, 'SessionID' = 997)](/core/reference/data-types/enum)) — The type of request or response. +- `path` ([String](/core/reference/data-types/string)) — The path to the ZooKeeper node specified in the request, or an empty string if the request not requires specifying a path. +- `data` ([String](/core/reference/data-types/string)) — The data written to the ZooKeeper node (for the SET and CREATE requests — what the request wanted to write, for the response to the GET request — what was read) or an empty string. +- `is_ephemeral` ([UInt8](/core/reference/data-types/int-uint)) — Is the ZooKeeper node being created as an ephemeral. +- `is_sequential` ([UInt8](/core/reference/data-types/int-uint)) — Is the ZooKeeper node being created as an sequential. +- `version` ([Nullable(Int32)](/core/reference/data-types/nullable)) — The version of the ZooKeeper node that the request expects when executing. This is supported for CHECK, SET, REMOVE requests (is relevant -1 if the request does not check the version or NULL for other requests that do not support version checking). +- `requests_size` ([UInt32](/core/reference/data-types/int-uint)) — The number of requests included in the multi request (this is a special request that consists of several consecutive ordinary requests and executes them atomically). All requests included in multi request will have the same xid. +- `request_idx` ([UInt32](/core/reference/data-types/int-uint)) — The number of the request included in multi request (for multi request — 0, then in order from 1). +- `zxid` ([Int64](/core/reference/data-types/int-uint)) — ZooKeeper transaction ID. The serial number issued by the ZooKeeper server in response to a successfully executed request (0 if the request was not executed/returned an error/the client does not know whether the request was executed). +- `error` ([Nullable(Enum8('ZNOWATCHER' = -121, 'ZNOTREADONLY' = -119, 'ZSESSIONMOVED' = -118, 'ZNOTHING' = -117, 'ZCLOSING' = -116, 'ZAUTHFAILED' = -115, 'ZINVALIDACL' = -114, 'ZINVALIDCALLBACK' = -113, 'ZSESSIONEXPIRED' = -112, 'ZNOTEMPTY' = -111, 'ZNODEEXISTS' = -110, 'ZNOCHILDRENFOREPHEMERALS' = -108, 'ZBADVERSION' = -103, 'ZNOAUTH' = -102, 'ZNONODE' = -101, 'ZAPIERROR' = -100, 'ZOUTOFMEMORY' = -10, 'ZINVALIDSTATE' = -9, 'ZBADARGUMENTS' = -8, 'ZOPERATIONTIMEOUT' = -7, 'ZUNIMPLEMENTED' = -6, 'ZMARSHALLINGERROR' = -5, 'ZCONNECTIONLOSS' = -4, 'ZDATAINCONSISTENCY' = -3, 'ZRUNTIMEINCONSISTENCY' = -2, 'ZSYSTEMERROR' = -1, 'ZOK' = 0))](/core/reference/data-types/nullable)) — Error code. Can have many values, here are just some of them: ZOK — The request was executed successfully, ZCONNECTIONLOSS — The connection was lost, ZOPERATIONTIMEOUT — The request execution timeout has expired, ZSESSIONEXPIRED — The session has expired, NULL — The request is completed. +- `watch_type` ([Nullable(Enum8('NOTWATCHING' = -2, 'SESSION' = -1, 'CREATED' = 1, 'DELETED' = 2, 'CHANGED' = 3, 'CHILD' = 4))](/core/reference/data-types/nullable)) — The type of the watch event (for responses with op_num = Watch), for the remaining responses: NULL. +- `watch_state` ([Nullable(Enum16('AUTH_FAILED' = -113, 'EXPIRED_SESSION' = -112, 'CONNECTING' = 1, 'ASSOCIATING' = 2, 'CONNECTED' = 3, 'READONLY' = 5, 'NOTCONNECTED' = 999))](/core/reference/data-types/nullable)) — The status of the watch event (for responses with op_num = Watch), for the remaining responses: NULL. +- `path_created` ([String](/core/reference/data-types/string)) — The path to the created ZooKeeper node (for responses to the CREATE request), may differ from the path if the node is created as a sequential. +- `stat_czxid` ([Int64](/core/reference/data-types/int-uint)) — The zxid of the change that caused this ZooKeeper node to be created. +- `stat_mzxid` ([Int64](/core/reference/data-types/int-uint)) — The zxid of the change that last modified this ZooKeeper node. +- `stat_pzxid` ([Int64](/core/reference/data-types/int-uint)) — The transaction ID of the change that last modified children of this ZooKeeper node. +- `stat_version` ([Int32](/core/reference/data-types/int-uint)) — The number of changes to the data of this ZooKeeper node. +- `stat_cversion` ([Int32](/core/reference/data-types/int-uint)) — The number of changes to the children of this ZooKeeper node. +- `stat_dataLength` ([Int32](/core/reference/data-types/int-uint)) — The length of the data field of this ZooKeeper node. +- `stat_numChildren` ([Int32](/core/reference/data-types/int-uint)) — The number of children of this ZooKeeper node. +- `children` ([Array(String)](/core/reference/data-types/array)) — The list of child ZooKeeper nodes (for responses to LIST request). +{/*AUTOGENERATED_END*/} + +## Example {#example} + +```sql title="Query" +SELECT * FROM system.zookeeper_log WHERE (session_id = '106662742089334927') AND (xid = '10858') FORMAT Vertical; +``` + +```text title="Response" +Row 1: +────── +hostname: clickhouse.eu-central1.internal +type: Request +event_date: 2021-08-09 +event_time: 2021-08-09 21:38:30.291792 +address: :: +port: 2181 +session_id: 106662742089334927 +xid: 10858 +has_watch: 1 +op_num: List +path: /clickhouse/task_queue/ddl +data: +is_ephemeral: 0 +is_sequential: 0 +version: ᴺᵁᴸᴸ +requests_size: 0 +request_idx: 0 +zxid: 0 +error: ᴺᵁᴸᴸ +watch_type: ᴺᵁᴸᴸ +watch_state: ᴺᵁᴸᴸ +path_created: +stat_czxid: 0 +stat_mzxid: 0 +stat_pzxid: 0 +stat_version: 0 +stat_cversion: 0 +stat_dataLength: 0 +stat_numChildren: 0 +children: [] + +Row 2: +────── +type: Response +event_date: 2021-08-09 +event_time: 2021-08-09 21:38:30.292086 +address: :: +port: 2181 +session_id: 106662742089334927 +xid: 10858 +has_watch: 1 +op_num: List +path: /clickhouse/task_queue/ddl +data: +is_ephemeral: 0 +is_sequential: 0 +version: ᴺᵁᴸᴸ +requests_size: 0 +request_idx: 0 +zxid: 16926267 +error: ZOK +watch_type: ᴺᵁᴸᴸ +watch_state: ᴺᵁᴸᴸ +path_created: +stat_czxid: 16925469 +stat_mzxid: 16925469 +stat_pzxid: 16926179 +stat_version: 0 +stat_cversion: 7 +stat_dataLength: 0 +stat_numChildren: 7 +children: ['query-0000000006','query-0000000005','query-0000000004','query-0000000003','query-0000000002','query-0000000001','query-0000000000'] +``` + +## See also {#see-also} + +- [ZooKeeper](/core/guides/oss/best-practices/tips#zookeeper) +- [ZooKeeper guide](https://zookeeper.apache.org/doc/r3.3.3/zookeeperProgrammers.html) diff --git a/reference/system-tables/zookeeper_watches.mdx b/core/reference/system-tables/zookeeper_watches.mdx similarity index 57% rename from reference/system-tables/zookeeper_watches.mdx rename to core/reference/system-tables/zookeeper_watches.mdx index 9c4907d8..38f924d0 100644 --- a/reference/system-tables/zookeeper_watches.mdx +++ b/core/reference/system-tables/zookeeper_watches.mdx @@ -13,14 +13,14 @@ Shows currently active [watches](https://zookeeper.apache.org/doc/r3.3.3/zookeep ## Columns {#columns} -- `zookeeper_name` ([String](/reference/data-types/string)) — Name of the ZooKeeper connection (`default` for the main connection, or the auxiliary name). -- `create_time` ([DateTime](/reference/data-types/datetime)) — Time when the watch was created. -- `create_time_microseconds` ([DateTime64](/reference/data-types/datetime64)) — Time when the watch was created with microsecond precision. -- `path` ([String](/reference/data-types/string)) — ZooKeeper path being watched. -- `session_id` ([Int64](/reference/data-types/int-uint)) — Session ID of the connection that registered the watch. -- `request_xid` ([Int64](/reference/data-types/int-uint)) — XID of the request that created the watch. -- `op_num` ([Enum](/reference/data-types/enum)) — The type of the request that created the watch. -- `watch_type` ([Enum8](/reference/data-types/enum)) — Watch type. Possible values: +- `zookeeper_name` ([String](/core/reference/data-types/string)) — Name of the ZooKeeper connection (`default` for the main connection, or the auxiliary name). +- `create_time` ([DateTime](/core/reference/data-types/datetime)) — Time when the watch was created. +- `create_time_microseconds` ([DateTime64](/core/reference/data-types/datetime64)) — Time when the watch was created with microsecond precision. +- `path` ([String](/core/reference/data-types/string)) — ZooKeeper path being watched. +- `session_id` ([Int64](/core/reference/data-types/int-uint)) — Session ID of the connection that registered the watch. +- `request_xid` ([Int64](/core/reference/data-types/int-uint)) — XID of the request that created the watch. +- `op_num` ([Enum](/core/reference/data-types/enum)) — The type of the request that created the watch. +- `watch_type` ([Enum8](/core/reference/data-types/enum)) — Watch type. Possible values: - `Children` — watching for changes in the list of child nodes (set by `List` operations). - `Exists` — watching for node creation or deletion. - `Data` — watching for changes in node data (set by `Get` operations). @@ -46,5 +46,5 @@ watch_type: Children **See Also** -- [ZooKeeper](/guides/oss/best-practices/tips#zookeeper) +- [ZooKeeper](/core/guides/oss/best-practices/tips#zookeeper) - [ZooKeeper guide](https://zookeeper.apache.org/doc/r3.3.3/zookeeperProgrammers.html) diff --git a/customize-layout.js b/customize-layout.js deleted file mode 100644 index c8236494..00000000 --- a/customize-layout.js +++ /dev/null @@ -1,89 +0,0 @@ -(function () { - 'use strict'; - - // Track if we've moved the element to avoid unnecessary operations - let hasMoved = false; - - // Function to add Beta tag to sidebar titles - // Configure which titles should get the Beta tag - const betaTitles = ['MongoDB']; - - function addBetaTagsToSidebarTitles() { - // Find all h5 elements with id="sidebar-title" (querySelector gets all) - const sidebarTitles = document.querySelectorAll('h5#sidebar-title'); - - if (sidebarTitles.length === 0) { - console.log('No sidebar title elements found'); - return false; - } - - let addedCount = 0; - - sidebarTitles.forEach(sidebarTitle => { - // Get just the text content without any child elements - let titleText = ''; - for (let node of sidebarTitle.childNodes) { - if (node.nodeType === Node.TEXT_NODE) { - titleText += node.textContent; - } - } - titleText = titleText.trim(); - - // Check if this title should have a Beta tag - if (!betaTitles.includes(titleText)) { - return; // Skip this one - } - - // Check if tag already exists - if (sidebarTitle.querySelector('.nav-tag-pill')) { - return; // Skip, already has tag - } - - // Create the Beta tag pill - const tagPillSpan = document.createElement('span'); - tagPillSpan.className = 'nav-tag-pill flex items-center w-fit'; - - const tagTextSpan = document.createElement('span'); - tagTextSpan.className = 'nav-tag-pill-text px-1 py-0.5 rounded-md text-[0.65rem] leading-tight font-bold text-primary dark:text-primary-light bg-primary/10'; - tagTextSpan.setAttribute('data-nav-tag', 'Beta'); - tagTextSpan.textContent = 'Beta'; - - tagPillSpan.appendChild(tagTextSpan); - - // Add a space before the tag - sidebarTitle.appendChild(document.createTextNode(' ')); - sidebarTitle.appendChild(tagPillSpan); - - console.log('Beta tag added to sidebar title:', titleText); - addedCount++; - }); - - return addedCount > 0; - } - - // Try to move elements immediately - addBetaTagsToSidebarTitles(); - - // Try again on DOMContentLoaded - document.addEventListener('DOMContentLoaded', function() { - addBetaTagsToSidebarTitles(); - }); - - // Try again on window load (after all resources are loaded) - window.addEventListener('load', function() { - addBetaTagsToSidebarTitles(); - }); - - // Keep watching for changes indefinitely - don't disconnect - const observer = new MutationObserver(function(mutations) { - // Always try to add beta tags to sidebar titles - addBetaTagsToSidebarTitles(); - }); - - // Start observing the document for changes - observer.observe(document.documentElement, { - childList: true, - subtree: true - }); - -})(); \ No newline at end of file diff --git a/docs.json b/docs.json index 5b949402..3924b865 100644 --- a/docs.json +++ b/docs.json @@ -19,29 +19,26 @@ "interaction": { "drilldown": false }, - "favicon": "/favicon.svg", + "favicon": "/_site/favicon.svg", "banner": { - "content": "Introducing Managed ClickStack: Observability for OpenTelemetry at scale [Read more →](https://clickhouse.com/blog)", + "content": "Introducing Managed ClickStack: Observability for OpenTelemetry at scale [Read more \u2192](https://clickhouse.com/blog)", "dismissible": true }, "scripts": [ { - "src": "/inject-product-headers.js" + "src": "/_site/customizations/cookie-banner.js" }, { - "src": "/cookie-banner.js" + "src": "/_site/customizations/custom-footer.js" }, { - "src": "/custom-footer.js" + "src": "/_site/customizations/navbar-cta.js" }, { - "src": "/navbar-cta.js" + "src": "/_site/customizations/kapa-init.js" }, { - "src": "/kapa-init.js" - }, - { - "src": "/ask-ai-button.js" + "src": "/_site/customizations/ask-ai-button.js" } ], "navigation": { @@ -53,1775 +50,16 @@ "tab": "Database", "menu": [ { - "item": "Get started", - "icon": "/images/icons/icon-get-started.svg", - "pages": [ - "index", - { - "group": "Get started", - "pages": [ - { - "group": "FAQ", - "expandable": true, - "expanded": true, - "pages": [ - "get-started/about/intro", - "get-started/about/olap", - "get-started/about/why-clickhouse-is-so-fast", - "get-started/about/distinctive-features" - ] - }, - "get-started/about/deployment-modes", - { - "group": "Use cases", - "expanded": true, - "root": "get-started/use-cases/overview", - "pages": [ - "get-started/use-cases/real-time-analytics", - "get-started/use-cases/observability", - "get-started/use-cases/data-warehousing", - { - "group": "Machine learning & generative AI", - "pages": [ - "get-started/use-cases/machine-learning-and-genai/machine-learning", - "get-started/use-cases/machine-learning-and-genai/agent-facing-analytics", - "use-cases/ai/mcp/remote-mcp", - "use-cases/ai-ml/aichat/using-ai-chat", - "use-cases/ai-ml/aichat/customizing-semantic-layer" - ] - } - ] - }, - "get-started/quickstarts/home" - ] - }, - { - "group": "Setup", - "root": "get-started/setup/overview", - "expanded": true, - "pages": [ - "get-started/setup/cloud", - { - "group": "Self-managed", - "expanded": true, - "root": "get-started/setup/self-managed/overview", - "pages": [ - "get-started/setup/self-managed/quick-install", - "get-started/setup/self-managed/debian-ubuntu", - "get-started/setup/self-managed/redhat", - "get-started/setup/self-managed/other-linux", - "get-started/setup/self-managed/macos", - "get-started/setup/self-managed/windows", - "get-started/setup/self-managed/docker", - "get-started/setup/self-managed/nixos", - "get-started/setup/self-managed/advanced" - ] - }, - { - "group": "Migration guides", - "root": "get-started/setup/migration-guides/overview", - "pages": [ - { - "group": "PostgreSQL", - "pages": [ - "get-started/setup/migration-guides/postgres/overview", - { - "group": "Migration guide", - "pages": [ - "get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part1", - "get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part2", - "get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3" - ] - }, - "get-started/setup/migration-guides/postgres/appendix" - ] - }, - { - "group": "BigQuery", - "pages": [ - "get-started/setup/migration-guides/bigquery/overview", - "get-started/setup/migration-guides/bigquery/migrating-to-clickhouse-cloud", - "get-started/setup/migration-guides/bigquery/loading-data" - ] - }, - { - "group": "Snowflake", - "pages": [ - "get-started/setup/migration-guides/snowflake/overview", - "get-started/setup/migration-guides/snowflake/migration-guide", - "get-started/setup/migration-guides/snowflake/sql-translation-reference" - ] - }, - { - "group": "Elasticsearch", - "pages": [ - "get-started/setup/migration-guides/elastic/overview" - ] - }, - { - "group": "Redshift", - "pages": [ - "get-started/setup/migration-guides/redshift/overview", - "get-started/setup/migration-guides/redshift/migration-guide", - "get-started/setup/migration-guides/redshift/sql-translation-reference" - ] - }, - { - "group": "OSS to Cloud", - "pages": [ - "get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud" - ] - }, - { - "group": "Other methods", - "pages": [ - "get-started/setup/migration-guides/other-methods/clickhouse-local-etl", - "get-started/setup/migration-guides/other-methods/etl-tool-to-clickhouse", - "get-started/setup/migration-guides/other-methods/object-storage-to-clickhouse" - ] - } - ] - } - ] - }, - { - "group": "Sample datasets", - "expanded": true, - "root": "get-started/sample-datasets/index", - "pages": [ - "get-started/sample-datasets/playground", - { - "group": "Benchmarks", - "pages": [ - "get-started/sample-datasets/amplab-benchmark", - "get-started/sample-datasets/brown-benchmark", - "get-started/sample-datasets/criteo", - "get-started/sample-datasets/star-schema", - "get-started/sample-datasets/tpcds", - "get-started/sample-datasets/tpch" - ] - }, - { - "group": "Vector search & embeddings", - "pages": [ - "get-started/sample-datasets/dbpedia", - "get-started/sample-datasets/hacker-news-vector-search", - "get-started/sample-datasets/laion", - "get-started/sample-datasets/laion5b" - ] - }, - { - "group": "Web & social analytics", - "pages": [ - "get-started/sample-datasets/amazon-reviews", - "get-started/sample-datasets/anon-web-analytics-metrica", - "get-started/sample-datasets/github", - "get-started/sample-datasets/github-events", - "get-started/sample-datasets/hacker-news", - "get-started/sample-datasets/stackoverflow", - "get-started/sample-datasets/youtube-dislikes" - ] - }, - { - "group": "Geo & location", - "pages": [ - "get-started/sample-datasets/cell-towers", - "get-started/sample-datasets/foursquare-os-places", - "get-started/sample-datasets/nyc-taxi" - ] - }, - { - "group": "Time series & sensors", - "pages": [ - "get-started/sample-datasets/environmental-sensors", - "get-started/sample-datasets/noaa", - "get-started/sample-datasets/tw-weather", - "get-started/sample-datasets/wikistat" - ] - }, - { - "group": "Public records & open data", - "pages": [ - "get-started/sample-datasets/covid19", - "get-started/sample-datasets/menus", - "get-started/sample-datasets/nypd-complaint-data", - "get-started/sample-datasets/ontime", - "get-started/sample-datasets/uk-price-paid" - ] - } - ] - } - ] + "$ref": "core/get-started/navigation.json" }, { - "item": "Concepts", - "icon": "/images/icons/icon-concepts.svg", - "root": "concepts/index", - "pages": [ - "concepts/index", - { - "group": "Fundamentals", - "root": "concepts/core-concepts/index", - "expanded": true, - "pages": [ - "concepts/core-concepts/glossary", - "concepts/core-concepts/parts", - "concepts/core-concepts/partitions", - "concepts/core-concepts/merges", - "concepts/core-concepts/primary-indexes", - "concepts/core-concepts/query-parallelism", - "concepts/core-concepts/academic-overview" - ] - }, - { - "group": "ClickHouse concepts", - "root": "concepts/features/index", - "expanded": true, - "pages": [ - { - "group": "Materialized views", - "root": "concepts/features/materialized-views/index", - "pages": [ - "concepts/features/materialized-views/incremental-materialized-view", - "concepts/features/materialized-views/refreshable-materialized-view", - "concepts/features/materialized-views/cascading-materialized-views" - ] - }, - { - "group": "Dictionaries", - "pages": [ - "concepts/features/dictionaries/index", - "concepts/features/dictionaries/best-practices" - ] - }, - { - "group": "Projections", - "pages": [ - "concepts/features/projections/projections", - "concepts/features/projections/materialized-views-versus-projections" - ] - }, - { - "group": "Performance", - "pages": [ - "concepts/features/performance/prewhere", - "concepts/features/performance/allocation-profiling", - "concepts/features/performance/allocation-profiling-old", - { - "group": "Caches", - "pages": [ - "concepts/features/performance/caches/caches", - "concepts/features/performance/caches/query-cache", - "concepts/features/performance/caches/query-condition-cache", - "concepts/features/performance/caches/userspace-page-cache" - ] - }, - { - "group": "Skipping-indexes", - "pages": [ - "concepts/features/performance/skip-indexes/skipping-indexes", - "concepts/features/performance/skip-indexes/skipping-indexes-examples" - ] - }, - "concepts/features/performance/lazy-materialization", - { - "group": "Troubleshooting", - "pages": [ - "concepts/features/performance/troubleshoot/debugging-memory-issues", - "concepts/features/performance/troubleshoot/performance-test", - "concepts/features/performance/troubleshoot/sampling-query-profiler" - ] - } - ] - }, - { - "group": "Operations", - "pages": [ - { - "group": "Insert", - "pages": [ - "concepts/operations/insert/asyncinserts", - "concepts/operations/insert/bulkinserts", - "concepts/operations/insert/deduplication", - "concepts/operations/insert/deduplicating-inserts-on-retries", - "concepts/operations/insert/transactions" - ] - }, - { - "group": "Select", - "pages": [ - "concepts/operations/select/joining-tables" - ] - }, - { - "group": "Update", - "root": "concepts/operations/update/index", - "pages": [ - "concepts/operations/update/overview", - "concepts/operations/update/on-fly-mutations", - "concepts/operations/update/replacing-merge-tree" - ] - }, - { - "group": "Delete", - "root": "concepts/operations/delete/overview", - "pages": [ - "concepts/operations/delete/overview", - "concepts/operations/delete/delete-mutations", - "concepts/operations/delete/drop-partition", - "concepts/operations/delete/lightweight-delete", - "concepts/operations/delete/truncate", - "concepts/operations/delete/ttl" - ] - } - ] - }, - { - "group": "Configuration", - "pages": [ - { - "group": "Settings", - "pages": [ - "concepts/features/configuration/settings/overview", - "concepts/features/configuration/settings/settings-query-level", - "concepts/features/configuration/settings/settings-users", - "concepts/features/configuration/settings/settings-profiles", - "concepts/features/configuration/settings/constraints-on-settings", - "concepts/features/configuration/settings/query-complexity", - "concepts/features/configuration/settings/permissions-for-queries", - "concepts/features/configuration/settings/memory-overcommit", - "concepts/features/configuration/settings/server-overload", - "concepts/features/configuration/settings/tcp-connection-limits", - "concepts/features/configuration/settings/alternative-query-languages" - ] - }, - { - "group": "Server config", - "pages": [ - "concepts/features/configuration/server-config/configuration-files", - "concepts/features/configuration/server-config/storing-data", - "concepts/features/configuration/server-config/named-collections", - "concepts/features/configuration/server-config/workload-scheduling", - "concepts/features/configuration/server-config/quotas", - "concepts/features/configuration/server-config/composable-protocols", - "concepts/features/configuration/server-config/startup-scripts" - ] - } - ] - }, - { - "group": "Security and auth", - "root": "concepts/features/security/access-rights", - "pages": [ - "concepts/features/security/access-rights", - "concepts/features/security/network-ports", - { - "group": "TLS", - "root": "concepts/features/security/tls/index", - "pages": [ - "concepts/features/security/tls/configuring-tls", - "concepts/features/security/tls/configuring-tls-acme-client" - ] - }, - { - "group": "External authenticators", - "root": "concepts/features/security/external-authenticators/index", - "pages": [ - { - "group": "SSL", - "pages": [ - "concepts/features/security/external-authenticators/ssl-x509", - "concepts/features/security/ssl-user-auth" - ] - }, - { - "group": "LDAP", - "pages": [ - "concepts/features/security/external-authenticators/ldap", - "concepts/features/security/configuring-ldap" - ] - }, - "concepts/features/security/external-authenticators/http", - "concepts/features/security/external-authenticators/kerberos" - ] - } - ] - }, - { - "group": "Backup and restore", - "pages": [ - "concepts/features/backup-restore/overview", - "concepts/features/backup-restore/local-disk", - "concepts/features/backup-restore/s3-endpoint", - "concepts/features/backup-restore/azure-blob-storage", - "concepts/features/backup-restore/snapshot", - "concepts/features/backup-restore/alternative-methods" - ] - }, - { - "group": "Tools and utilities", - "root": "concepts/features/tools-and-utilities/index", - "pages": [ - "concepts/features/tools-and-utilities/backupview", - "concepts/features/tools-and-utilities/clickhouse-benchmark", - "concepts/features/tools-and-utilities/clickhouse-compressor", - "concepts/features/tools-and-utilities/clickhouse-disks", - "concepts/features/tools-and-utilities/clickhouse-format", - "concepts/features/tools-and-utilities/clickhouse-keeper-client", - "concepts/features/tools-and-utilities/clickhouse-keeper-http-api", - "concepts/features/tools-and-utilities/clickhouse-local", - "concepts/features/tools-and-utilities/clickhouse-obfuscator", - "concepts/features/tools-and-utilities/odbc-bridge", - "concepts/features/tools-and-utilities/static-files-disk-uploader" - ] - } - ] - }, - { - "group": "Best practices", - "root": "concepts/best-practices/index", - "expanded": true, - "pages": [ - "concepts/best-practices/choosing-a-primary-key", - "concepts/best-practices/select-data-type", - "concepts/best-practices/use-materialized-views", - "concepts/best-practices/minimize-optimize-joins", - "concepts/best-practices/partitioning-keys", - "concepts/best-practices/selecting-an-insert-strategy", - "concepts/best-practices/using-data-skipping-indices", - "concepts/best-practices/avoid-mutations", - "concepts/best-practices/avoid-optimize-final", - "concepts/best-practices/avoidnullablecolumns", - "concepts/best-practices/json-type" - ] - } - ] + "$ref": "core/concepts/navigation.json" }, { - "item": "Guides", - "icon": "/images/icons/icon-guides.svg", - "groups": [ - { - "group": "ClickHouse guides", - "pages": [ - { - "group": "Data modelling", - "root": "guides/cloud-oss/data-modelling/index", - "pages": [ - "guides/cloud-oss/data-modelling/schema-design", - "guides/cloud-oss/data-modelling/sparse-primary-indexes", - "guides/cloud-oss/data-modelling/denormalization", - "guides/cloud-oss/data-modelling/backfilling", - "guides/cloud-oss/data-modelling/merge-table-function", - "guides/cloud-oss/data-modelling/stored-procedures-and-prepared-statements", - { - "group": "Compression", - "expanded": false, - "pages": [ - "guides/cloud-oss/data-modelling/compression/compression-in-clickhouse", - "guides/cloud-oss/data-modelling/compression/compression-modes" - ] - }, - "guides/cloud-oss/working-with-arrays", - "guides/cloud-oss/working-with-joins" - ] - }, - { - "group": "Performance & monitoring", - "root": "guides/performance-and-monitoring/index", - "pages": [ - "guides/cloud-oss/performance-and-monitoring/query-optimization", - "guides/cloud-oss/performance-and-monitoring/analyzer", - "guides/cloud-oss/performance-and-monitoring/understanding-query-execution-with-the-analyzer", - "guides/cloud-oss/performance-and-monitoring/dynamic-column-selection" - ] - }, - { - "group": "Aggregate combinator examples", - "expanded": false, - "pages": [ - "guides/cloud-oss/examples/aggregate-function-combinators/anyIf", - "guides/cloud-oss/examples/aggregate-function-combinators/argMaxIf", - "guides/cloud-oss/examples/aggregate-function-combinators/argMinIf", - "guides/cloud-oss/examples/aggregate-function-combinators/avgIf", - "guides/cloud-oss/examples/aggregate-function-combinators/avgMap", - "guides/cloud-oss/examples/aggregate-function-combinators/avgMerge", - "guides/cloud-oss/examples/aggregate-function-combinators/avgMergeState", - "guides/cloud-oss/examples/aggregate-function-combinators/avgResample", - "guides/cloud-oss/examples/aggregate-function-combinators/avgState", - "guides/cloud-oss/examples/aggregate-function-combinators/countIf", - "guides/cloud-oss/examples/aggregate-function-combinators/countResample", - "guides/cloud-oss/examples/aggregate-function-combinators/groupArrayDistinct", - "guides/cloud-oss/examples/aggregate-function-combinators/groupArrayResample", - "guides/cloud-oss/examples/aggregate-function-combinators/maxMap", - "guides/cloud-oss/examples/aggregate-function-combinators/maxSimpleState", - "guides/cloud-oss/examples/aggregate-function-combinators/minMap", - "guides/cloud-oss/examples/aggregate-function-combinators/minSimpleState", - "guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingArrayIf", - "guides/cloud-oss/examples/aggregate-function-combinators/quantilesTimingIf", - "guides/cloud-oss/examples/aggregate-function-combinators/sumArray", - "guides/cloud-oss/examples/aggregate-function-combinators/sumForEach", - "guides/cloud-oss/examples/aggregate-function-combinators/sumIf", - "guides/cloud-oss/examples/aggregate-function-combinators/sumMap", - "guides/cloud-oss/examples/aggregate-function-combinators/sumSimpleState", - "guides/cloud-oss/examples/aggregate-function-combinators/uniqArray", - "guides/cloud-oss/examples/aggregate-function-combinators/uniqArrayIf" - ] - }, - "guides/cloud/index", - "guides/oss/update", - { - "group": "OSS best practices", - "pages": [ - "guides/oss/best-practices/sizing-and-hardware-recommendations", - "guides/oss/best-practices/tips" - ] - }, - { - "group": "Deployment and scaling", - "expanded": false, - "root": "guides/oss/deployment-and-scaling/index", - "pages": [ - "guides/oss/deployment-and-scaling/terminology", - "guides/oss/deployment-and-scaling/shards", - "guides/oss/deployment-and-scaling/scaling-clusters", - "guides/oss/deployment-and-scaling/separation-storage-compute", - "guides/oss/deployment-and-scaling/cluster-discovery", - { - "group": "Keeper", - "expanded": false, - "pages": [ - "guides/oss/deployment-and-scaling/keeper/index", - "guides/oss/deployment-and-scaling/keeper/ssl-zookeeper" - ] - }, - { - "group": "Monitoring", - "expanded": false, - "pages": [ - "guides/oss/deployment-and-scaling/monitoring/monitoring", - "guides/oss/deployment-and-scaling/monitoring/opentelemetry" - ] - }, - { - "group": "Examples", - "expanded": false, - "pages": [ - "guides/oss/deployment-and-scaling/examples/1-shard-2-replicas", - "guides/oss/deployment-and-scaling/examples/2-shards-1-replica", - "guides/oss/deployment-and-scaling/examples/2-shards-2-replicas" - ] - } - ] - } - ] - }, - { - "group": "Use case guides", - "expandable": true, - "expanded": false, - "pages": [ - { - "group": "Real-time analytics", - "pages": [ - { - "group": "Time series", - "expanded": false, - "pages": [ - "guides/real-time-analytics/time-series/index", - "guides/real-time-analytics/time-series/date-time-data-types", - "guides/real-time-analytics/time-series/basic-operations", - "guides/real-time-analytics/time-series/analysis-functions", - "guides/real-time-analytics/time-series/storage-efficiency", - "guides/real-time-analytics/time-series/query-performance", - "guides/real-time-analytics/time-series/materialized-view-rollup", - "guides/real-time-analytics/time-series/time-series-filling-gaps" - ] - } - ] - }, - { - "group": "Observability", - "root": "guides/observability/index", - "pages": [ - "guides/observability/cloud-monitoring", - "guides/observability/self-managed-monitoring", - { - "group": "Build your own", - "pages": [ - "guides/observability/build-your-own/index", - "guides/observability/build-your-own/introduction", - "guides/observability/build-your-own/schema-design", - "guides/observability/build-your-own/integrating-opentelemetry", - "guides/observability/build-your-own/managing-data", - "guides/observability/build-your-own/grafana", - "guides/observability/build-your-own/demo-application" - ] - } - ] - }, - { - "group": "Data warehousing", - "root": "guides/data-warehousing/index", - "pages": [ - "guides/data-warehousing/glue-catalog", - "guides/data-warehousing/lakekeeper-catalog", - "guides/data-warehousing/nessie-catalog", - "guides/data-warehousing/onelake-catalog", - "guides/data-warehousing/polaris-catalog", - "guides/data-warehousing/rest-catalog", - "guides/data-warehousing/unity-catalog", - "guides/data-warehousing/biglake-catalog" - ] - }, - { - "group": "AI/ML", - "root": "guides/ai-ml/index", - "pages": [ - "guides/ai-ml/vector-search", - "guides/ai-ml/ai-powered-sql-generation", - { - "group": "Data exploration", - "pages": [ - "guides/ai-ml/data-exploration/jupyter-notebook", - "guides/ai-ml/data-exploration/marimo-notebook" - ] - }, - { - "group": "MCP", - "pages": [ - "guides/ai-ml/MCP/index", - "guides/ai-ml/MCP/claude-desktop", - "guides/ai-ml/MCP/librechat", - "guides/ai-ml/MCP/anythingllm", - "guides/ai-ml/MCP/open-webui", - "guides/ai-ml/MCP/ollama", - "guides/ai-ml/MCP/janai", - { - "group": "AI agent libraries", - "pages": [ - "guides/ai-ml/MCP/ai-agent-libraries/index", - "guides/ai-ml/MCP/ai-agent-libraries/streamlit", - "guides/ai-ml/MCP/ai-agent-libraries/langchain", - "guides/ai-ml/MCP/ai-agent-libraries/llamaindex", - "guides/ai-ml/MCP/ai-agent-libraries/pydantic-ai", - "guides/ai-ml/MCP/ai-agent-libraries/slackbot", - "guides/ai-ml/MCP/ai-agent-libraries/agno", - "guides/ai-ml/MCP/ai-agent-libraries/chainlit", - "guides/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk", - "guides/ai-ml/MCP/ai-agent-libraries/copilotkit", - "guides/ai-ml/MCP/ai-agent-libraries/crewai", - "guides/ai-ml/MCP/ai-agent-libraries/dspy", - "guides/ai-ml/MCP/ai-agent-libraries/mcp-agent", - "guides/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework", - "guides/ai-ml/MCP/ai-agent-libraries/upsonic", - "guides/ai-ml/MCP/ai-agent-libraries/openai-agents" - ] - } - ] - } - ] - } - ] - } - ] + "$ref": "core/guides/navigation.json" }, { - "item": "Reference", - "icon": "/images/icons/icon-reference.svg", - "pages": [ - "reference/home", - { - "group": "SQL Reference", - "expandable": true, - "expanded": true, - "pages": [ - "reference/syntax", - { - "group": "Statements", - "expandable": true, - "expanded": false, - "root": "reference/statements/index", - "pages": [ - { - "group": "ALTER", - "expanded": false, - "pages": [ - "reference/statements/alter/index", - "reference/statements/alter/apply-deleted-mask", - "reference/statements/alter/apply-patches", - "reference/statements/alter/column", - "reference/statements/alter/comment", - "reference/statements/alter/constraint", - "reference/statements/alter/database-comment", - "reference/statements/alter/delete", - "reference/statements/alter/named-collection", - "reference/statements/alter/order-by", - "reference/statements/alter/partition", - "reference/statements/alter/projection", - "reference/statements/alter/quota", - "reference/statements/alter/role", - "reference/statements/alter/row-policy", - "reference/statements/alter/sample-by", - "reference/statements/alter/setting", - "reference/statements/alter/settings-profile", - "reference/statements/alter/skipping-index", - "reference/statements/alter/statistics", - "reference/statements/alter/ttl", - "reference/statements/alter/update", - "reference/statements/alter/user", - "reference/statements/alter/masking-policy", - "reference/statements/alter/view" - ] - }, - "reference/statements/attach", - "reference/statements/check-grant", - "reference/statements/check-table", - { - "group": "CREATE", - "expanded": false, - "pages": [ - "reference/statements/create/index", - "reference/statements/create/database", - { - "group": "DICTIONARY", - "expanded": false, - "root": "reference/statements/create/dictionary", - "pages": [ - "reference/statements/create/dictionary/attributes", - "reference/statements/create/dictionary/embedded", - "reference/statements/create/dictionary/lifetime", - { - "group": "Layouts", - "expanded": false, - "root": "reference/statements/create/dictionary/layouts/overview", - "pages": [ - "reference/statements/create/dictionary/layouts/flat", - "reference/statements/create/dictionary/layouts/hashed", - "reference/statements/create/dictionary/layouts/hashed-array", - "reference/statements/create/dictionary/layouts/cache", - "reference/statements/create/dictionary/layouts/ssd-cache", - "reference/statements/create/dictionary/layouts/direct", - "reference/statements/create/dictionary/layouts/range-hashed", - "reference/statements/create/dictionary/layouts/hierarchical", - "reference/statements/create/dictionary/layouts/polygon", - "reference/statements/create/dictionary/layouts/ip-trie", - "reference/statements/create/dictionary/layouts/regexp-tree" - ] - }, - { - "group": "Sources", - "expanded": false, - "root": "reference/statements/create/dictionary/sources/overview", - "pages": [ - "reference/statements/create/dictionary/sources/local-file", - "reference/statements/create/dictionary/sources/executable-file", - "reference/statements/create/dictionary/sources/executable-pool", - "reference/statements/create/dictionary/sources/http", - "reference/statements/create/dictionary/sources/clickhouse", - "reference/statements/create/dictionary/sources/mysql", - "reference/statements/create/dictionary/sources/postgresql", - "reference/statements/create/dictionary/sources/mongodb", - "reference/statements/create/dictionary/sources/redis", - "reference/statements/create/dictionary/sources/cassandra", - "reference/statements/create/dictionary/sources/odbc", - "reference/statements/create/dictionary/sources/null", - "reference/statements/create/dictionary/sources/yamlregexptree", - "reference/statements/create/dictionary/sources/ytsaurus" - ] - } - ] - }, - "reference/statements/create/masking-policy", - "reference/statements/create/function", - "reference/statements/create/named-collection", - "reference/statements/create/quota", - "reference/statements/create/role", - "reference/statements/create/row-policy", - "reference/statements/create/settings-profile", - "reference/statements/create/table", - "reference/statements/create/user", - "reference/statements/create/view" - ] - }, - "reference/statements/delete", - "reference/statements/describe-table", - "reference/statements/detach", - "reference/statements/distributed-ddl", - "reference/statements/drop", - "reference/statements/exchange", - "reference/statements/execute_as", - "reference/statements/exists", - "reference/statements/explain", - "reference/statements/grant", - "reference/statements/in", - "reference/statements/insert-into", - "reference/statements/kill", - "reference/statements/move", - "reference/statements/optimize", - "reference/statements/parallel_with", - "reference/statements/rename", - "reference/statements/revoke", - { - "group": "SELECT", - "expanded": false, - "pages": [ - "reference/statements/select/index", - "reference/statements/select/all", - "reference/statements/select/apply_modifier", - "reference/statements/select/array-join", - "reference/statements/select/distinct", - "reference/statements/select/except", - "reference/statements/select/except_modifier", - "reference/statements/select/format", - "reference/statements/select/from", - "reference/statements/select/group-by", - "reference/statements/select/having", - "reference/statements/select/intersect", - "reference/statements/select/into-outfile", - "reference/statements/select/join", - "reference/statements/select/limit-by", - "reference/statements/select/limit", - "reference/statements/select/offset", - "reference/statements/select/order-by", - "reference/statements/select/qualify", - "reference/statements/select/replace_modifier", - "reference/statements/select/sample", - "reference/statements/select/union", - "reference/statements/select/where", - "reference/statements/select/with" - ] - }, - "reference/statements/set-role", - "reference/statements/set", - "reference/statements/show", - "reference/statements/system", - "reference/statements/truncate", - "reference/statements/undrop", - "reference/statements/update", - "reference/statements/use", - "reference/statements/watch" - ] - }, - { - "group": "Operators", - "expandable": true, - "expanded": false, - "root": "reference/operators/index", - "pages": [ - "reference/operators/exists", - "reference/operators/distributed-ddl" - ] - } - ] - }, - { - "group": "Data Types", - "expandable": true, - "expanded": false, - "root": "reference/data-types/index", - "pages": [ - { - "group": "Numeric types", - "expanded": false, - "pages": [ - "reference/data-types/int-uint", - "reference/data-types/float", - "reference/data-types/decimal", - "reference/data-types/boolean" - ] - }, - { - "group": "String types", - "expanded": false, - "pages": [ - "reference/data-types/string", - "reference/data-types/fixedstring" - ] - }, - { - "group": "Date and time types", - "expanded": false, - "pages": [ - "reference/data-types/date", - "reference/data-types/date32", - "reference/data-types/datetime", - "reference/data-types/datetime64", - "reference/data-types/time", - "reference/data-types/time64" - ] - }, - { - "group": "Network types", - "expanded": false, - "pages": [ - "reference/data-types/ipv4", - "reference/data-types/ipv6" - ] - }, - { - "group": "Composite types", - "expanded": false, - "pages": [ - "reference/data-types/array", - "reference/data-types/tuple", - "reference/data-types/map", - "reference/data-types/nested-data-structures/index" - ] - }, - { - "group": "Semi-structured types", - "expanded": false, - "pages": [ - "reference/data-types/newjson", - "reference/data-types/dynamic", - "reference/data-types/variant" - ] - }, - { - "group": "Nullable and optional types", - "expanded": false, - "pages": [ - "reference/data-types/nullable", - "reference/data-types/lowcardinality" - ] - }, - { - "group": "Specialized types", - "expanded": false, - "pages": [ - "reference/data-types/uuid", - "reference/data-types/enum", - "reference/data-types/geo", - "reference/data-types/qbit", - "reference/data-types/domains/index" - ] - }, - { - "group": "Aggregate function types", - "expanded": false, - "pages": [ - "reference/data-types/aggregatefunction", - "reference/data-types/simpleaggregatefunction" - ] - }, - { - "group": "Special Data Types", - "expanded": false, - "pages": [ - "reference/data-types/special-data-types/index", - "reference/data-types/special-data-types/expression", - "reference/data-types/special-data-types/interval", - "reference/data-types/special-data-types/nothing", - "reference/data-types/special-data-types/set" - ] - }, - { - "group": "Binary encoding", - "pages": [ - "reference/data-types/data-types-binary-encoding" - ] - } - ] - }, - { - "group": "Engines", - "expandable": true, - "expanded": false, - "root": "reference/engines/engines", - "pages": [ - { - "group": "Table Engines", - "expanded": false, - "pages": [ - "reference/engines/table-engines/index", - { - "group": "Integrations", - "expanded": false, - "pages": [ - "reference/engines/table-engines/integrations/index", - "reference/engines/table-engines/integrations/ExternalDistributed", - "reference/engines/table-engines/integrations/arrowflight", - "reference/engines/table-engines/integrations/azure-queue", - "reference/engines/table-engines/integrations/azureBlobStorage", - "reference/engines/table-engines/integrations/deltalake", - "reference/engines/table-engines/integrations/embedded-rocksdb", - "reference/engines/table-engines/integrations/hdfs", - "reference/engines/table-engines/integrations/hive", - "reference/engines/table-engines/integrations/hudi", - "reference/engines/table-engines/integrations/iceberg", - "reference/engines/table-engines/integrations/jdbc", - "reference/engines/table-engines/integrations/kafka", - "reference/engines/table-engines/integrations/materialized-postgresql", - "reference/engines/table-engines/integrations/mongodb", - "reference/engines/table-engines/integrations/mysql", - "reference/engines/table-engines/integrations/nats", - "reference/engines/table-engines/integrations/odbc", - "reference/engines/table-engines/integrations/paimon", - "reference/engines/table-engines/integrations/postgresql", - "reference/engines/table-engines/integrations/rabbitmq", - "reference/engines/table-engines/integrations/redis", - "reference/engines/table-engines/integrations/s3", - "reference/engines/table-engines/integrations/s3queue", - "reference/engines/table-engines/integrations/sqlite", - "reference/engines/table-engines/integrations/time-series", - "reference/engines/table-engines/integrations/ytsaurus" - ] - }, - { - "group": "Log Family", - "expanded": false, - "pages": [ - "reference/engines/table-engines/log-family/index", - "reference/engines/table-engines/log-family/log", - "reference/engines/table-engines/log-family/stripelog", - "reference/engines/table-engines/log-family/tinylog" - ] - }, - { - "group": "MergeTree Family", - "expanded": false, - "pages": [ - "reference/engines/table-engines/mergetree-family/index", - "reference/engines/table-engines/mergetree-family/mergetree", - "reference/engines/table-engines/mergetree-family/aggregatingmergetree", - "reference/engines/table-engines/mergetree-family/annindexes", - "reference/engines/table-engines/mergetree-family/coalescingmergetree", - "reference/engines/table-engines/mergetree-family/collapsingmergetree", - "reference/engines/table-engines/mergetree-family/custom-partitioning-key", - "reference/engines/table-engines/mergetree-family/graphitemergetree", - "reference/engines/table-engines/mergetree-family/invertedindexes", - "reference/engines/table-engines/mergetree-family/replacingmergetree", - "reference/engines/table-engines/mergetree-family/replication", - "reference/engines/table-engines/mergetree-family/summingmergetree", - "reference/engines/table-engines/mergetree-family/textindexes", - "reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree" - ] - }, - { - "group": "Special", - "expanded": false, - "pages": [ - "reference/engines/table-engines/special/index", - "reference/engines/table-engines/special/alias", - "reference/engines/table-engines/special/buffer", - "reference/engines/table-engines/special/dictionary", - "reference/engines/table-engines/special/distributed", - "reference/engines/table-engines/special/executable", - "reference/engines/table-engines/special/external-data", - "reference/engines/table-engines/special/file", - "reference/engines/table-engines/special/filelog", - "reference/engines/table-engines/special/generate", - "reference/engines/table-engines/special/join", - "reference/engines/table-engines/special/keepermap", - "reference/engines/table-engines/special/memory", - "reference/engines/table-engines/special/merge", - "reference/engines/table-engines/special/null", - "reference/engines/table-engines/special/set", - "reference/engines/table-engines/special/url", - "reference/engines/table-engines/special/view" - ] - } - ] - }, - { - "group": "Database Engines", - "expanded": false, - "pages": [ - "reference/engines/database-engines/index", - "reference/engines/database-engines/atomic", - "reference/engines/database-engines/backup", - "reference/engines/database-engines/datalake", - "reference/engines/database-engines/materialized-postgresql", - "reference/engines/database-engines/mysql", - "reference/engines/database-engines/postgresql", - "reference/engines/database-engines/replicated", - "reference/engines/database-engines/shared", - "reference/engines/database-engines/sqlite" - ] - } - ] - }, - { - "group": "Functions", - "expandable": true, - "expanded": false, - "root": "reference/functions/index", - "pages": [ - { - "group": "Regular functions", - "expanded": false, - "pages": [ - "reference/functions/regular-functions/overview", - "reference/functions/regular-functions/ai-functions", - "reference/functions/regular-functions/arithmetic-functions", - "reference/functions/regular-functions/array-functions", - "reference/functions/regular-functions/array-join", - "reference/functions/regular-functions/bit-functions", - "reference/functions/regular-functions/bitmap-functions", - "reference/functions/regular-functions/comparison-functions", - "reference/functions/regular-functions/conditional-functions", - "reference/functions/regular-functions/date-time-functions", - "reference/functions/regular-functions/distance-functions", - "reference/functions/regular-functions/embedded-dict-functions", - "reference/functions/regular-functions/encoding-functions", - "reference/functions/regular-functions/encryption-functions", - "reference/functions/regular-functions/ext-dict-functions", - "reference/functions/regular-functions/files", - "reference/functions/regular-functions/financial-functions", - "reference/functions/regular-functions/functions-for-nulls", - { - "group": "Geo", - "expanded": false, - "pages": [ - "reference/functions/regular-functions/geo/index", - "reference/functions/regular-functions/geo/coordinates", - "reference/functions/regular-functions/geo/flipCoordinates", - "reference/functions/regular-functions/geo/geometry", - "reference/functions/regular-functions/geo/geohash", - "reference/functions/regular-functions/geo/h3", - "reference/functions/regular-functions/geo/polygon", - "reference/functions/regular-functions/geo/s2", - "reference/functions/regular-functions/geo/svg" - ] - }, - "reference/functions/regular-functions/hash-functions", - "reference/functions/regular-functions/in-functions", - "reference/functions/regular-functions/introspection", - "reference/functions/regular-functions/ip-address-functions", - "reference/functions/regular-functions/json-functions", - "reference/functions/regular-functions/logical-functions", - "reference/functions/regular-functions/machine-learning-functions", - "reference/functions/regular-functions/math-functions", - "reference/functions/regular-functions/nlp-functions", - "reference/functions/regular-functions/numeric-indexed-vector-functions", - "reference/functions/regular-functions/other-functions", - "reference/functions/regular-functions/random-functions", - "reference/functions/regular-functions/regular-functions-index", - "reference/functions/regular-functions/rounding-functions", - "reference/functions/regular-functions/splitting-merging-functions", - "reference/functions/regular-functions/string-functions", - "reference/functions/regular-functions/string-replace-functions", - "reference/functions/regular-functions/string-search-functions", - "reference/functions/regular-functions/time-series-functions", - "reference/functions/regular-functions/time-window-functions", - "reference/functions/regular-functions/tuple-functions", - "reference/functions/regular-functions/tuple-map-functions", - "reference/functions/regular-functions/type-conversion-functions", - "reference/functions/regular-functions/ulid-functions", - "reference/functions/regular-functions/uniqtheta-functions", - "reference/functions/regular-functions/url-functions", - "reference/functions/regular-functions/uuid-functions" - ] - }, - { - "group": "Aggregate Functions", - "expanded": false, - "pages": [ - "reference/functions/aggregate-functions/index", - "reference/functions/aggregate-functions/combinators", - "reference/functions/aggregate-functions/grouping_function", - "reference/functions/aggregate-functions/parametric-functions", - { - "group": "Reference", - "expanded": false, - "pages": [ - "reference/functions/aggregate-functions/reference/index", - "reference/functions/aggregate-functions/reference/aggThrow", - "reference/functions/aggregate-functions/reference/analysis_of_variance", - "reference/functions/aggregate-functions/reference/any", - "reference/functions/aggregate-functions/reference/anyHeavy", - "reference/functions/aggregate-functions/reference/anyLast", - "reference/functions/aggregate-functions/reference/approxtopk", - "reference/functions/aggregate-functions/reference/approxtopsum", - "reference/functions/aggregate-functions/reference/argMax", - "reference/functions/aggregate-functions/reference/argAndMax", - "reference/functions/aggregate-functions/reference/argMin", - "reference/functions/aggregate-functions/reference/argAndMin", - "reference/functions/aggregate-functions/reference/avg", - "reference/functions/aggregate-functions/reference/avgWeighted", - "reference/functions/aggregate-functions/reference/boundrat", - "reference/functions/aggregate-functions/reference/categoricalInformationValue", - "reference/functions/aggregate-functions/reference/contingency", - "reference/functions/aggregate-functions/reference/corr", - "reference/functions/aggregate-functions/reference/corrMatrix", - "reference/functions/aggregate-functions/reference/corrStable", - "reference/functions/aggregate-functions/reference/count", - "reference/functions/aggregate-functions/reference/covarPop", - "reference/functions/aggregate-functions/reference/covarPopMatrix", - "reference/functions/aggregate-functions/reference/covarPopStable", - "reference/functions/aggregate-functions/reference/covarSamp", - "reference/functions/aggregate-functions/reference/covarSampMatrix", - "reference/functions/aggregate-functions/reference/covarSampStable", - "reference/functions/aggregate-functions/reference/cramersV", - "reference/functions/aggregate-functions/reference/cramersVBiasCorrected", - "reference/functions/aggregate-functions/reference/deltaSum", - "reference/functions/aggregate-functions/reference/deltaSumTimestamp", - "reference/functions/aggregate-functions/reference/distinctDynamicTypes", - "reference/functions/aggregate-functions/reference/distinctJSONPaths", - "reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes", - "reference/functions/aggregate-functions/reference/entropy", - "reference/functions/aggregate-functions/reference/estimateCompressionRatio", - "reference/functions/aggregate-functions/reference/exponentialMovingAverage", - "reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg", - "reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount", - "reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax", - "reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum", - "reference/functions/aggregate-functions/reference/first_value", - "reference/functions/aggregate-functions/reference/flame_graph", - "reference/functions/aggregate-functions/reference/groupArray", - "reference/functions/aggregate-functions/reference/groupArrayArray", - "reference/functions/aggregate-functions/reference/groupArrayInsertAt", - "reference/functions/aggregate-functions/reference/groupArrayIntersect", - "reference/functions/aggregate-functions/reference/groupArrayLast", - "reference/functions/aggregate-functions/reference/groupArrayMovingAvg", - "reference/functions/aggregate-functions/reference/groupArrayMovingSum", - "reference/functions/aggregate-functions/reference/groupArraySample", - "reference/functions/aggregate-functions/reference/groupArraySorted", - "reference/functions/aggregate-functions/reference/groupBitAnd", - "reference/functions/aggregate-functions/reference/groupBitmap", - "reference/functions/aggregate-functions/reference/groupBitmapAnd", - "reference/functions/aggregate-functions/reference/groupBitmapOr", - "reference/functions/aggregate-functions/reference/groupBitmapXor", - "reference/functions/aggregate-functions/reference/groupBitOr", - "reference/functions/aggregate-functions/reference/groupBitXor", - "reference/functions/aggregate-functions/reference/groupConcat", - "reference/functions/aggregate-functions/reference/groupUniqArray", - "reference/functions/aggregate-functions/reference/intervalLengthSum", - "reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest", - "reference/functions/aggregate-functions/reference/kurtPop", - "reference/functions/aggregate-functions/reference/kurtSamp", - "reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets", - "reference/functions/aggregate-functions/reference/last_value", - "reference/functions/aggregate-functions/reference/mannWhitneyUTest", - "reference/functions/aggregate-functions/reference/max", - "reference/functions/aggregate-functions/reference/maxIntersections", - "reference/functions/aggregate-functions/reference/maxIntersectionsPosition", - "reference/functions/aggregate-functions/reference/maxMap", - "reference/functions/aggregate-functions/reference/meanZTest", - "reference/functions/aggregate-functions/reference/median", - "reference/functions/aggregate-functions/reference/min", - "reference/functions/aggregate-functions/reference/minMap", - "reference/functions/aggregate-functions/reference/quantile", - "reference/functions/aggregate-functions/reference/quantileGK", - "reference/functions/aggregate-functions/reference/quantileBFloat16", - "reference/functions/aggregate-functions/reference/quantileddsketch", - "reference/functions/aggregate-functions/reference/quantileDeterministic", - "reference/functions/aggregate-functions/reference/quantileExact", - "reference/functions/aggregate-functions/reference/quantileExactExclusive", - "reference/functions/aggregate-functions/reference/quantileExactHigh", - "reference/functions/aggregate-functions/reference/quantileExactInclusive", - "reference/functions/aggregate-functions/reference/quantileExactLow", - "reference/functions/aggregate-functions/reference/quantileExactWeighted", - "reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated", - "reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted", - "reference/functions/aggregate-functions/reference/quantilePrometheusHistogram", - "reference/functions/aggregate-functions/reference/quantiles", - "reference/functions/aggregate-functions/reference/quantilesExactExclusive", - "reference/functions/aggregate-functions/reference/quantilesExactInclusive", - "reference/functions/aggregate-functions/reference/quantilesGK", - "reference/functions/aggregate-functions/reference/quantileTDigest", - "reference/functions/aggregate-functions/reference/quantileTDigestWeighted", - "reference/functions/aggregate-functions/reference/quantileTiming", - "reference/functions/aggregate-functions/reference/quantileTimingWeighted", - "reference/functions/aggregate-functions/reference/quantilesTimingWeighted", - "reference/functions/aggregate-functions/reference/rankCorr", - "reference/functions/aggregate-functions/reference/simpleLinearRegression", - "reference/functions/aggregate-functions/reference/singleValueOrNull", - "reference/functions/aggregate-functions/reference/skewPop", - "reference/functions/aggregate-functions/reference/skewSamp", - "reference/functions/aggregate-functions/reference/sparkbar", - "reference/functions/aggregate-functions/reference/stddevPop", - "reference/functions/aggregate-functions/reference/stddevPopStable", - "reference/functions/aggregate-functions/reference/stddevSamp", - "reference/functions/aggregate-functions/reference/stddevSampStable", - "reference/functions/aggregate-functions/reference/stochasticLinearRegression", - "reference/functions/aggregate-functions/reference/stochasticLogisticRegression", - "reference/functions/aggregate-functions/reference/studentTTest", - "reference/functions/aggregate-functions/reference/studentTTestOneSample", - "reference/functions/aggregate-functions/reference/sum", - "reference/functions/aggregate-functions/reference/sumCount", - "reference/functions/aggregate-functions/reference/sumKahan", - "reference/functions/aggregate-functions/reference/sumMap", - "reference/functions/aggregate-functions/reference/sumMapWithOverflow", - "reference/functions/aggregate-functions/reference/sumWithOverflow", - "reference/functions/aggregate-functions/reference/theilsU", - "reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid", - "reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid", - "reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid", - "reference/functions/aggregate-functions/reference/timeSeriesGroupArray", - "reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid", - "reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid", - "reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples", - "reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid", - "reference/functions/aggregate-functions/reference/timeSeriesRateToGrid", - "reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness", - "reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid", - "reference/functions/aggregate-functions/reference/topK", - "reference/functions/aggregate-functions/reference/topKWeighted", - "reference/functions/aggregate-functions/reference/uniq", - "reference/functions/aggregate-functions/reference/uniqCombined", - "reference/functions/aggregate-functions/reference/uniqCombined64", - "reference/functions/aggregate-functions/reference/uniqExact", - "reference/functions/aggregate-functions/reference/uniqHLL12", - "reference/functions/aggregate-functions/reference/uniqthetasketch", - "reference/functions/aggregate-functions/reference/varPop", - "reference/functions/aggregate-functions/reference/varPopStable", - "reference/functions/aggregate-functions/reference/varSamp", - "reference/functions/aggregate-functions/reference/varSampStable", - "reference/functions/aggregate-functions/reference/welchTTest" - ] - } - ] - }, - { - "group": "Table functions", - "expanded": false, - "pages": [ - "reference/functions/table-functions/index", - "reference/functions/table-functions/arrowflight", - "reference/functions/table-functions/azureBlobStorage", - "reference/functions/table-functions/azureBlobStorageCluster", - "reference/functions/table-functions/cluster", - "reference/functions/table-functions/deltalake", - "reference/functions/table-functions/deltalakeCluster", - "reference/functions/table-functions/dictionary", - "reference/functions/table-functions/executable", - "reference/functions/table-functions/file", - "reference/functions/table-functions/fileCluster", - "reference/functions/table-functions/filesystem", - "reference/functions/table-functions/format", - "reference/functions/table-functions/fuzzJSON", - "reference/functions/table-functions/fuzzQuery", - "reference/functions/table-functions/gcs", - "reference/functions/table-functions/generate", - "reference/functions/table-functions/generate_series", - "reference/functions/table-functions/hdfs", - "reference/functions/table-functions/hdfsCluster", - "reference/functions/table-functions/hudi", - "reference/functions/table-functions/hudiCluster", - "reference/functions/table-functions/iceberg", - "reference/functions/table-functions/icebergCluster", - "reference/functions/table-functions/input", - "reference/functions/table-functions/jdbc", - "reference/functions/table-functions/loop", - "reference/functions/table-functions/merge", - "reference/functions/table-functions/mergeTreeIndex", - "reference/functions/table-functions/mergeTreeProjection", - "reference/functions/table-functions/mergeTreeTextIndex", - "reference/functions/table-functions/mongodb", - "reference/functions/table-functions/mysql", - "reference/functions/table-functions/null", - "reference/functions/table-functions/numbers", - "reference/functions/table-functions/odbc", - "reference/functions/table-functions/paimon", - "reference/functions/table-functions/paimonCluster", - "reference/functions/table-functions/postgresql", - "reference/functions/table-functions/primes", - "reference/functions/table-functions/prometheusQuery", - "reference/functions/table-functions/prometheusQueryRange", - "reference/functions/table-functions/redis", - "reference/functions/table-functions/remote", - "reference/functions/table-functions/s3", - "reference/functions/table-functions/s3Cluster", - "reference/functions/table-functions/sqlite", - "reference/functions/table-functions/timeSeriesData", - "reference/functions/table-functions/timeSeriesMetrics", - "reference/functions/table-functions/timeSeriesSelector", - "reference/functions/table-functions/timeSeriesTags", - "reference/functions/table-functions/url", - "reference/functions/table-functions/urlCluster", - "reference/functions/table-functions/values", - "reference/functions/table-functions/view", - "reference/functions/table-functions/ytsaurus", - "reference/functions/table-functions/zeros" - ] - }, - { - "group": "Window functions", - "expanded": false, - "pages": [ - "reference/functions/window-functions/index", - "reference/functions/window-functions/cume_dist", - "reference/functions/window-functions/dense_rank", - "reference/functions/window-functions/first_value", - "reference/functions/window-functions/lag", - "reference/functions/window-functions/lagInFrame", - "reference/functions/window-functions/last_value", - "reference/functions/window-functions/lead", - "reference/functions/window-functions/leadInFrame", - "reference/functions/window-functions/nth_value", - "reference/functions/window-functions/percent_rank", - "reference/functions/window-functions/rank", - "reference/functions/window-functions/row_number" - ] - }, - { - "group": "User Defined Functions", - "pages": [ - "reference/functions/regular-functions/udf", - "reference/functions/regular-functions/wasm_udf" - ] - } - ] - }, - { - "group": "Formats", - "expandable": true, - "root": "reference/formats/index", - "expanded": false, - "pages": [ - { - "group": "Arrow", - "expanded": false, - "pages": [ - "reference/formats/Arrow/Arrow", - "reference/formats/Arrow/ArrowStream" - ] - }, - { - "group": "Avro", - "expanded": false, - "pages": [ - "reference/formats/Avro/Avro", - "reference/formats/Avro/AvroConfluent" - ] - }, - "reference/formats/BSONEachRow", - "reference/formats/Buffers", - { - "group": "CSV", - "expanded": false, - "pages": [ - "reference/formats/CSV/CSV", - "reference/formats/CSV/CSVWithNames", - "reference/formats/CSV/CSVWithNamesAndTypes" - ] - }, - "reference/formats/CapnProto", - { - "group": "CustomSeparated", - "expanded": false, - "pages": [ - "reference/formats/CustomSeparated/CustomSeparated", - "reference/formats/CustomSeparated/CustomSeparatedIgnoreSpaces", - "reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNames", - "reference/formats/CustomSeparated/CustomSeparatedIgnoreSpacesWithNamesAndTypes", - "reference/formats/CustomSeparated/CustomSeparatedWithNames", - "reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes" - ] - }, - "reference/formats/DWARF", - "reference/formats/Form", - "reference/formats/Hash", - "reference/formats/HiveText", - { - "group": "JSON", - "expanded": false, - "pages": [ - "reference/formats/JSON/JSON", - "reference/formats/JSON/JSONAsObject", - "reference/formats/JSON/JSONAsString", - "reference/formats/JSON/JSONColumns", - "reference/formats/JSON/JSONColumnsWithMetadata", - "reference/formats/JSON/JSONCompact", - "reference/formats/JSON/JSONCompactColumns", - "reference/formats/JSON/JSONCompactEachRow", - "reference/formats/JSON/JSONCompactEachRowWithNames", - "reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes", - "reference/formats/JSON/JSONCompactEachRowWithProgress", - "reference/formats/JSON/JSONCompactStrings", - "reference/formats/JSON/JSONCompactStringsEachRow", - "reference/formats/JSON/JSONCompactStringsEachRowWithNames", - "reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes", - "reference/formats/JSON/JSONCompactStringsEachRowWithProgress", - "reference/formats/JSON/JSONEachRow", - "reference/formats/JSON/JSONEachRowWithProgress", - "reference/formats/JSON/JSONLines", - "reference/formats/JSON/JSONObjectEachRow", - "reference/formats/JSON/JSONStrings", - "reference/formats/JSON/JSONStringsEachRow", - "reference/formats/JSON/JSONStringsEachRowWithProgress", - "reference/formats/JSON/PrettyJSONEachRow", - "reference/formats/JSON/format-settings" - ] - }, - { - "group": "LineAsString", - "expanded": false, - "pages": [ - "reference/formats/LineAsString/LineAsString", - "reference/formats/LineAsString/LineAsStringWithNames", - "reference/formats/LineAsString/LineAsStringWithNamesAndTypes" - ] - }, - "reference/formats/Markdown", - "reference/formats/MsgPack", - "reference/formats/MySQLDump", - "reference/formats/MySQLWire", - "reference/formats/Native", - "reference/formats/Npy", - "reference/formats/Null", - "reference/formats/ODBCDriver2", - "reference/formats/ORC", - "reference/formats/One", - { - "group": "Parquet", - "expanded": false, - "pages": [ - "reference/formats/Parquet/Parquet", - "reference/formats/Parquet/ParquetMetadata" - ] - }, - "reference/formats/PostgreSQLWire", - { - "group": "Pretty", - "expanded": false, - "pages": [ - "reference/formats/Pretty/Pretty", - "reference/formats/Pretty/PrettyCompact", - "reference/formats/Pretty/PrettyCompactMonoBlock", - "reference/formats/Pretty/PrettyCompactNoEscapes", - "reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock", - "reference/formats/Pretty/PrettyMonoBlock", - "reference/formats/Pretty/PrettyNoEscapes", - "reference/formats/Pretty/PrettyNoEscapesMonoBlock", - "reference/formats/Pretty/PrettySpace", - "reference/formats/Pretty/PrettySpaceMonoBlock", - "reference/formats/Pretty/PrettySpaceNoEscapes", - "reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock" - ] - }, - "reference/formats/Prometheus", - { - "group": "Protobuf", - "expanded": false, - "pages": [ - "reference/formats/Protobuf/Protobuf", - "reference/formats/Protobuf/ProtobufList", - "reference/formats/Protobuf/ProtobufSingle" - ] - }, - "reference/formats/RawBLOB", - "reference/formats/Regexp", - { - "group": "RowBinary", - "expanded": false, - "pages": [ - "reference/formats/RowBinary/RowBinary", - "reference/formats/RowBinary/RowBinaryWithDefaults", - "reference/formats/RowBinary/RowBinaryWithNames", - "reference/formats/RowBinary/RowBinaryWithNamesAndTypes" - ] - }, - "reference/formats/SQLInsert", - { - "group": "TabSeparated", - "expanded": false, - "pages": [ - "reference/formats/TabSeparated/TSKV", - "reference/formats/TabSeparated/TabSeparated", - "reference/formats/TabSeparated/TabSeparatedRaw", - "reference/formats/TabSeparated/TabSeparatedRawWithNames", - "reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes", - "reference/formats/TabSeparated/TabSeparatedWithNames", - "reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes" - ] - }, - { - "group": "Template", - "expanded": false, - "pages": [ - "reference/formats/Template/Template", - "reference/formats/Template/TemplateIgnoreSpaces" - ] - }, - "reference/formats/Values", - "reference/formats/Vertical", - "reference/formats/XML" - ] - }, - { - "group": "Settings", - "expandable": true, - "expanded": false, - "root": "reference/settings/index", - "pages": [ - "reference/settings/server-settings/settings", - "reference/settings/session-settings", - "reference/settings/merge-tree-settings", - "reference/settings/formats", - "reference/settings/beta-and-experimental-features" - ] - }, - { - "group": "System Tables", - "expandable": true, - "expanded": false, - "root": "reference/system-tables/index", - "pages": [ - "reference/system-tables/aggregate_function_combinators", - "reference/system-tables/aggregated_zookeeper_log", - "reference/system-tables/asynchronous_insert_log", - "reference/system-tables/asynchronous_inserts", - "reference/system-tables/asynchronous_loader", - "reference/system-tables/asynchronous_metric_log", - "reference/system-tables/asynchronous_metrics", - "reference/system-tables/azure_queue_log", - "reference/system-tables/azure_queue_metadata_cache", - "reference/system-tables/azure_queue_settings", - "reference/system-tables/backup_log", - "reference/system-tables/backups", - "reference/system-tables/background_schedule_pool", - "reference/system-tables/background_schedule_pool_log", - "reference/system-tables/blob_storage_log", - "reference/system-tables/build_options", - "reference/system-tables/certificates", - "reference/system-tables/clusters", - "reference/system-tables/codecs", - "reference/system-tables/collations", - "reference/system-tables/columns", - "reference/system-tables/completions", - "reference/system-tables/contributors", - "reference/system-tables/crash_log", - "reference/system-tables/current_roles", - "reference/system-tables/dashboards", - "reference/system-tables/data_skipping_indices", - "reference/system-tables/data_type_families", - "reference/system-tables/database_engines", - "reference/system-tables/database_replicas", - "reference/system-tables/databases", - "reference/system-tables/dead_letter_queue", - "reference/system-tables/delta_metadata_log", - "reference/system-tables/detached_parts", - "reference/system-tables/detached_tables", - "reference/system-tables/dictionaries", - "reference/system-tables/dimensional_metrics", - "reference/system-tables/disks", - "reference/system-tables/distributed_ddl_queue", - "reference/system-tables/distribution_queue", - "reference/system-tables/dns_cache", - "reference/system-tables/dropped_tables", - "reference/system-tables/dropped_tables_parts", - "reference/system-tables/enabled_roles", - "reference/system-tables/error_log", - "reference/system-tables/errors", - "reference/system-tables/events", - "reference/system-tables/fail_points", - "reference/system-tables/formats", - "reference/system-tables/filesystem_cache_log", - "reference/system-tables/filesystem_cache_settings", - "reference/system-tables/filesystem_cache", - "reference/system-tables/filesystem_read_prefetches_log", - "reference/system-tables/functions", - "reference/system-tables/grants", - "reference/system-tables/graphite_retentions", - "reference/system-tables/histogram_metric_log", - "reference/system-tables/histogram_metrics", - "reference/system-tables/iceberg_history", - "reference/system-tables/iceberg_metadata_log", - "reference/system-tables/information_schema", - "reference/system-tables/instrumentation", - "reference/system-tables/jemalloc_bins", - "reference/system-tables/jemalloc_stats", - "reference/system-tables/jemalloc_profile_text", - "reference/system-tables/kafka_consumers", - "reference/system-tables/keywords", - "reference/system-tables/licenses", - "reference/system-tables/macros", - "reference/system-tables/masking_policies", - "reference/system-tables/merge_tree_settings", - "reference/system-tables/merges", - "reference/system-tables/metric_log", - "reference/system-tables/metrics", - "reference/system-tables/models", - "reference/system-tables/moves", - "reference/system-tables/mutations", - "reference/system-tables/named_collections", - "reference/system-tables/numbers", - "reference/system-tables/numbers_mt", - "reference/system-tables/one", - "reference/system-tables/opentelemetry_span_log", - "reference/system-tables/part_log", - "reference/system-tables/part_moves_between_shards", - "reference/system-tables/parts", - "reference/system-tables/parts_columns", - "reference/system-tables/predicate_statistics_log", - "reference/system-tables/primes", - "reference/system-tables/privileges", - "reference/system-tables/processes", - "reference/system-tables/processors_profile_log", - "reference/system-tables/projection_parts", - "reference/system-tables/projection_parts_columns", - "reference/system-tables/projections", - "reference/system-tables/query_cache", - "reference/system-tables/query_condition_cache", - "reference/system-tables/query_log", - "reference/system-tables/query_metric_log", - "reference/system-tables/query_thread_log", - "reference/system-tables/query_views_log", - "reference/system-tables/quota_limits", - "reference/system-tables/quota_usage", - "reference/system-tables/quotas", - "reference/system-tables/quotas_usage", - "reference/system-tables/remote_data_paths", - "reference/system-tables/replicas", - "reference/system-tables/replicated_fetches", - "reference/system-tables/replicated_merge_tree_settings", - "reference/system-tables/replication_queue", - "reference/system-tables/resources", - "reference/system-tables/rocksdb", - "reference/system-tables/role_grants", - "reference/system-tables/roles", - "reference/system-tables/row_policies", - "reference/system-tables/s3_queue_settings", - "reference/system-tables/s3queue_log", - "reference/system-tables/s3queue_metadata_cache", - "reference/system-tables/scheduler", - "reference/system-tables/schema_inference_cache", - "reference/system-tables/server_settings", - "reference/system-tables/session_log", - "reference/system-tables/settings", - "reference/system-tables/settings_changes", - "reference/system-tables/settings_profile_elements", - "reference/system-tables/settings_profiles", - "reference/system-tables/stack_trace", - "reference/system-tables/storage_policies", - "reference/system-tables/symbols", - "reference/system-tables/system_warnings", - "reference/system-tables/table_engines", - "reference/system-tables/table_functions", - "reference/system-tables/tables", - "reference/system-tables/text_log", - "reference/system-tables/time_zones", - "reference/system-tables/tokenizers", - "reference/system-tables/trace_log", - "reference/system-tables/transactions", - "reference/system-tables/transactions_info_log", - "reference/system-tables/unicode", - "reference/system-tables/user_defined_functions", - "reference/system-tables/user_directories", - "reference/system-tables/user_processes", - "reference/system-tables/users", - "reference/system-tables/view_refreshes", - "reference/system-tables/warnings", - "reference/system-tables/workloads", - "reference/system-tables/zeros", - "reference/system-tables/zeros_mt", - "reference/system-tables/zookeeper", - "reference/system-tables/zookeeper_info", - "reference/system-tables/zookeeper_connection", - "reference/system-tables/zookeeper_connection_log", - "reference/system-tables/zookeeper_log", - "reference/system-tables/zookeeper_watches" - ] - }, - { - "group": "Data Lakes", - "root": "reference/datalakes", - "pages": [] - } - ] + "$ref": "core/reference/navigation.json" } ] }, @@ -1834,672 +72,13 @@ "href": "#" }, { - "item": "ClickHouse Cloud", - "icon": "/images/icons/icon-clickhouse-cloud.svg", - "groups": [ - { - "group": "ClickHouse Cloud", - "pages": [ - { - "group": "Get started", - "root": "products/cloud/getting-started/cloud-get-started", - "pages": [ - "products/cloud/getting-started/intro", - "products/cloud/getting-started/resource-tour" - ] - }, - { - "group": "Features", - "pages": [ - "products/cloud/features/cloud-tiers", - "products/cloud/features/cli", - "products/cloud/features/integrations", - "products/cloud/features/data-catalogs", - "products/cloud/reference/architecture", - "products/cloud/reference/supported-regions", - { - "group": "SQL console", - "expanded": false, - "pages": [ - "products/cloud/features/sql-console-features/sql-console", - "products/cloud/features/sql-console-features/query-insights", - "products/cloud/features/sql-console-features/query-endpoints", - "products/cloud/features/sql-console-features/dashboards", - "products/cloud/features/sql-console-features/hyperdx", - "products/cloud/features/sql-console-features/user-defined-functions" - ] - }, - { - "group": "Infrastructure", - "expanded": false, - "pages": [ - { - "group": "Automatic scaling", - "root": "products/cloud/features/autoscaling/overview", - "pages": [ - "products/cloud/features/autoscaling/vertical", - "products/cloud/features/autoscaling/horizontal", - "products/cloud/features/autoscaling/make-before-break", - "products/cloud/features/autoscaling/idling", - "products/cloud/features/autoscaling/scaling-recommendations", - "products/cloud/features/autoscaling/scheduled-scaling" - ] - }, - "products/cloud/features/infrastructure/parallel-replicas", - "products/cloud/features/infrastructure/deployment-options", - "products/cloud/features/infrastructure/replica-aware-routing", - "products/cloud/features/infrastructure/shared-catalog", - "products/cloud/features/infrastructure/shared-merge-tree", - "products/cloud/features/infrastructure/warehouses" - ] - }, - { - "group": "Admin", - "expanded": false, - "pages": [ - { - "group": "Cloud API", - "pages": [ - "products/cloud/features/admin-features/api/api-overview", - "products/cloud/features/admin-features/api/openapi", - "products/cloud/features/admin-features/api/postman" - ] - }, - "products/cloud/features/admin-features/upgrades" - ] - }, - "products/cloud/features/security", - { - "group": "Monitoring", - "expanded": false, - "pages": [ - "products/cloud/features/monitoring/overview", - "products/cloud/features/monitoring/cloud-console", - "products/cloud/features/monitoring/advanced-dashboard", - "products/cloud/features/monitoring/notifications", - "products/cloud/features/monitoring/prometheus", - "products/cloud/features/monitoring/system-tables", - "products/cloud/features/monitoring/integrations" - ] - }, - { - "group": "Backups", - "root": "products/cloud/features/backups/overview", - "pages": [ - "products/cloud/features/backups/faq" - ] - }, - "products/cloud/features/support", - { - "group": "AI/ML", - "expanded": false, - "pages": [ - "products/cloud/features/ai-ml/index", - "products/cloud/features/ai-ml/ask-ai", - "products/cloud/features/ai-ml/langfuse", - "products/cloud/features/ai-ml/remote-mcp", - "products/cloud/features/ai-ml/model-developer-terms" - ] - } - ] - }, - { - "group": "Cloud reference", - "pages": [ - "products/cloud/reference/service-uptime", - "products/cloud/reference/account-close", - "products/cloud/reference/security/console-roles", - "products/cloud/reference/security/audit-logging", - "products/cloud/reference/security/compliance-overview", - "products/cloud/reference/security/ai-compliance", - "products/cloud/reference/personal-data-access" - ] - }, - { - "group": "Billing", - "pages": [ - "products/cloud/reference/billing/billing-overview", - { - "group": "Marketplace", - "expanded": false, - "pages": [ - "products/cloud/reference/billing/marketplace/overview", - "products/cloud/reference/billing/marketplace/aws-marketplace-committed", - "products/cloud/reference/billing/marketplace/aws-marketplace-payg", - "products/cloud/reference/billing/marketplace/azure-marketplace-committed", - "products/cloud/reference/billing/marketplace/azure-marketplace-payg", - "products/cloud/reference/billing/marketplace/gcp-marketplace-committed", - "products/cloud/reference/billing/marketplace/gcp-marketplace-payg", - "products/cloud/reference/billing/marketplace/migrate-marketplace-payg-committed" - ] - }, - { - "group": "ClickPipes", - "expanded": false, - "pages": [ - "products/cloud/reference/billing/clickpipes/clickpipes-for-cdc", - "products/cloud/reference/billing/clickpipes/clickpipes-for-streaming-and-object-storage" - ] - }, - "products/cloud/reference/billing/network-data-transfer", - "products/cloud/reference/billing/payment-thresholds", - "products/cloud/reference/billing/managing-payment-methods", - "products/cloud/reference/billing/billing-compliance" - ] - }, - { - "group": "Guides", - "pages": [ - { - "group": "Best practices", - "pages": [ - "products/cloud/guides/best-practices/multitenancy", - "products/cloud/guides/best-practices/usagelimits" - ] - }, - { - "group": "General", - "expanded": false, - "pages": [ - "products/cloud/guides/cloud-compatibility", - "products/cloud/guides/production-readiness" - ] - }, - { - "group": "Migration", - "expanded": false, - "pages": [ - "products/cloud/guides/migration/upload-a-csv-file", - "products/cloud/guides/migration/oss-to-cloud-backup-restore" - ] - }, - { - "group": "SQL console", - "expanded": false, - "pages": [ - "products/cloud/guides/sql-console/connection-details", - "products/cloud/guides/sql-console/query-endpoints" - ] - }, - { - "group": "Backups", - "expanded": false, - "pages": [ - "products/cloud/guides/backups/review-and-restore-backups", - "products/cloud/guides/backups/configurable-backups", - { - "group": "Bring Your Own Backup", - "expanded": false, - "pages": [ - "products/cloud/guides/backups/bring-your-own-backup/export-backups-to-own-cloud-account", - "products/cloud/guides/backups/bring-your-own-backup/backup-restore-from-ui", - "products/cloud/guides/backups/bring-your-own-backup/backup-restore-using-commands" - ] - } - ] - }, - { - "group": "Data sources", - "expanded": false, - "pages": [ - "products/cloud/guides/data-sources/cloud-endpoints-api", - "products/cloud/guides/data-sources/accessing-s3-data-securely", - "products/cloud/guides/data-sources/secure-azure", - "products/cloud/guides/data-sources/secure-gcs", - "products/cloud/guides/data-sources/accessing-iceberg-data-securely" - ] - }, - { - "group": "Infrastructure", - "expanded": false, - "pages": [ - { - "group": "Deployment modes", - "expanded": false, - "pages": [ - "products/cloud/guides/infrastructure/deployment-options/clickhouse-private", - "products/cloud/guides/infrastructure/deployment-options/clickhouse-government", - "products/cloud/guides/infrastructure/deployment-options/byoc/overview" - ] - } - ] - }, - { - "group": "Security", - "expanded": false, - "pages": [ - { - "group": "Cloud access management", - "expanded": false, - "pages": [ - "products/cloud/guides/security/cloud-access-management/manage-my-account", - "products/cloud/guides/security/cloud-access-management/manage-cloud-users", - "products/cloud/guides/security/cloud-access-management/manage-custom-roles", - "products/cloud/guides/security/cloud-access-management/manage-sql-console-role-assignments", - "products/cloud/guides/security/cloud-access-management/manage-database-users", - "products/cloud/guides/security/cloud-access-management/saml-sso-setup", - "products/cloud/guides/security/cloud-access-management/common-access-management-queries", - "products/cloud/guides/security/cloud-access-management/manage-database-service-accounts", - "products/cloud/guides/security/saml-sso-removal" - ] - }, - { - "group": "Connectivity", - "expanded": false, - "pages": [ - "products/cloud/guides/security/connectivity/setting-ip-filters", - { - "group": "Private networking", - "expanded": false, - "pages": [ - "products/cloud/guides/security/connectivity/private-networking/aws-privatelink", - "products/cloud/guides/security/connectivity/private-networking/gcp-private-service-connect", - "products/cloud/guides/security/connectivity/private-networking/azure-privatelink" - ] - } - ] - }, - { - "group": "Data security", - "expanded": false, - "pages": [ - "products/cloud/guides/security/data-masking", - "products/cloud/guides/security/cmek", - "products/cloud/guides/security/cmek-migration" - ] - }, - { - "group": "Compliance", - "expanded": false, - "pages": [ - "products/cloud/guides/security/compliance/hipaa-onboarding", - "products/cloud/guides/security/compliance/pci-onboarding" - ] - } - ] - } - ] - }, - { - "group": "API reference", - "openapi": "api-reference/cloud/cloud-openapi.json" - } - ] - }, - { - "group": "ClickHouse Private", - "pages": [ - { - "group": "Overview", - "pages": [ - "products/clickhouse-private/overview/overview", - "products/clickhouse-private/overview/versions", - "products/clickhouse-private/overview/breaking-changes" - ] - }, - { - "group": "Deployment", - "pages": [ - "products/clickhouse-private/deployment/aws", - "products/clickhouse-private/deployment/gcp", - "products/clickhouse-private/deployment/bare-metal", - "products/clickhouse-private/deployment/government" - ] - }, - { - "group": "Management", - "pages": [ - "products/clickhouse-private/management/operational-guide", - "products/clickhouse-private/management/api", - "products/clickhouse-private/management/howto-guides", - "products/clickhouse-private/management/faq" - ] - } - ] - }, - { - "group": "Bring Your Own Cloud", - "pages": [ - { - "group": "Overview", - "pages": [ - "products/bring-your-own-cloud/overview/overview", - "products/bring-your-own-cloud/overview/architecture" - ] - }, - { - "group": "Configuration", - "pages": [ - "products/bring-your-own-cloud/configuration/configurations", - "products/bring-your-own-cloud/configuration/connect", - "products/bring-your-own-cloud/configuration/operations" - ] - }, - { - "group": "Onboarding", - "pages": [ - "products/bring-your-own-cloud/onboarding/aws", - "products/bring-your-own-cloud/onboarding/standard", - { - "group": "Customization", - "pages": [ - "products/bring-your-own-cloud/onboarding/customization-aws", - "products/bring-your-own-cloud/onboarding/customization-gcp" - ] - }, - { - "group": "Network", - "root": "products/bring-your-own-cloud/onboarding/network", - "pages": [ - "products/bring-your-own-cloud/onboarding/network-aws", - "products/bring-your-own-cloud/onboarding/network-gcp" - ] - }, - "products/bring-your-own-cloud/onboarding/new-region", - "products/bring-your-own-cloud/onboarding/azure-private-preview" - ] - }, - { - "group": "Reference", - "pages": [ - "products/bring-your-own-cloud/reference/network-security", - "products/bring-your-own-cloud/reference/privilege", - "products/bring-your-own-cloud/reference/clickhouse-data-access", - "products/bring-your-own-cloud/reference/observability-aws", - "products/bring-your-own-cloud/reference/billable-aws-services", - "products/bring-your-own-cloud/reference/cost-model-aws", - "products/bring-your-own-cloud/reference/aws-service-limits", - "products/bring-your-own-cloud/reference/faq", - "products/bring-your-own-cloud/reference/faq-aws" - ] - } - ] - } - ] + "$ref": "products/cloud/navigation.json" }, { - "item": "Managed Postgres", - "icon": "/images/icons/icon-postgres.svg", - "groups": [ - { - "group": "Get started", - "pages": [ - "products/managed-postgres/overview", - "products/managed-postgres/quickstart" - ] - }, - { - "group": "Features", - "pages": [ - "products/managed-postgres/connection", - "products/managed-postgres/settings", - "products/managed-postgres/scaling", - "products/managed-postgres/security", - "products/managed-postgres/high-availability", - "products/managed-postgres/read-replicas", - "products/managed-postgres/backup-and-restore", - "products/managed-postgres/extensions", - "products/managed-postgres/upgrades", - "products/managed-postgres/openapi" - ] - }, - { - "group": "Benchmarks", - "pages": [ - "products/managed-postgres/benchmarks" - ] - }, - { - "group": "ClickHouse Integration", - "pages": [ - "products/managed-postgres/clickhouse-integration" - ] - }, - { - "group": "Migrations", - "pages": [ - "products/managed-postgres/migrations/pg_dump-pg_restore", - "products/managed-postgres/migrations/logical-replication", - "products/managed-postgres/migrations/peerdb", - "products/managed-postgres/migrations/data-validation", - "products/managed-postgres/migrations/clickhouse-cloud" - ] - }, - { - "group": "Monitoring", - "pages": [ - "products/managed-postgres/monitoring/overview", - "products/managed-postgres/monitoring/dashboard", - "products/managed-postgres/monitoring/metrics", - "products/managed-postgres/monitoring/prometheus", - "products/managed-postgres/monitoring/query-insights" - ] - }, - { - "group": "FAQ", - "pages": [ - "products/managed-postgres/faq" - ] - } - ] + "$ref": "products/managed-postgres/navigation.json" }, { - "item": "ClickStack", - "icon": "/images/icons/icon-clickstack.svg", - "groups": [ - { - "group": "Get started", - "pages": [ - "products/clickstack/overview", - { - "group": "Getting started", - "root": "products/clickstack/getting-started/index", - "pages": [ - "products/clickstack/getting-started/managed", - "products/clickstack/getting-started/oss" - ] - }, - { - "group": "Sample datasets", - "pages": [ - "products/clickstack/example-datasets/sample-data", - "products/clickstack/example-datasets/kubernetes", - "products/clickstack/example-datasets/local-data", - "products/clickstack/example-datasets/remote-demo-data", - "products/clickstack/example-datasets/session-replay" - ] - }, - "products/clickstack/architecture", - "products/clickstack/faq" - ] - }, - { - "group": "Features", - "pages": [ - { - "group": "Deployment", - "pages": [ - { - "group": "Open Source", - "root": "products/clickstack/deployment/oss", - "pages": [ - "products/clickstack/deployment/all-in-one", - { - "group": "Helm", - "pages": [ - { - "group": "v2.x", - "root": "products/clickstack/deployment/helm", - "pages": [ - "products/clickstack/deployment/helm-configuration", - "products/clickstack/deployment/helm-deployment-options", - "products/clickstack/deployment/helm-cloud", - "products/clickstack/deployment/helm-additional-manifests", - "products/clickstack/deployment/helm-upgrade" - ] - }, - { - "group": "v1.x (deprecated)", - "root": "products/clickstack/deployment/helm-v1", - "pages": [ - "products/clickstack/deployment/helm-configuration-v1", - "products/clickstack/deployment/helm-deployment-options-v1", - "products/clickstack/deployment/helm-cloud-v1" - ] - } - ] - }, - "products/clickstack/deployment/docker-compose", - "products/clickstack/deployment/hyperdx-only", - "products/clickstack/deployment/local-mode-only", - "products/clickstack/deployment/clickhouse-embedded" - ] - }, - "products/clickstack/deployment/managed" - ] - }, - "products/clickstack/features/search", - { - "group": "Dashboards", - "root": "products/clickstack/features/dashboards/overview", - "pages": [ - "products/clickstack/features/dashboards/dashboard-templates", - "products/clickstack/features/dashboards/sql-visualizations" - ] - }, - "products/clickstack/notebooks", - "products/clickstack/text-to-chart", - "products/clickstack/features/event-patterns", - "products/clickstack/features/event-deltas", - "products/clickstack/features/alerts", - "products/clickstack/service-maps", - "products/clickstack/features/session-replay", - { - "group": "Demo days", - "root": "products/clickstack/demo-days/index", - "pages": [ - { - "group": "2026", - "pages": [ - "products/clickstack/demo-days/2026/2026-04-03", - "products/clickstack/demo-days/2026/2026-04-10", - "products/clickstack/demo-days/2026/2026-04-17", - "products/clickstack/demo-days/2026/2026-05-08" - ] - } - ] - } - ] - }, - { - "group": "Managing ClickStack", - "expanded": true, - "root": "products/clickstack/managing", - "pages": [ - "products/clickstack/managing/admin", - "products/clickstack/managing/estimating-resources", - "products/clickstack/managing/materialized-views", - "products/clickstack/managing/performance-tuning", - "products/clickstack/managing/production", - "products/clickstack/managing/rbac" - ] - }, - { - "group": "Guides", - "pages": [ - { - "group": "Ingesting data", - "pages": [ - "products/clickstack/ingesting-data/overview", - "products/clickstack/ingesting-data/opentelemetry", - "products/clickstack/ingesting-data/vector", - "products/clickstack/ingesting-data/collector", - "products/clickstack/ingesting-data/schemas", - "products/clickstack/ingesting-data/schema/map-vs-json", - "products/clickstack/ingesting-data/trace-sampling", - { - "group": "Integrations", - "pages": [ - "products/clickstack/integration-examples/nginx-logs", - "products/clickstack/integration-examples/nginx-traces", - "products/clickstack/integration-examples/redis-logs", - "products/clickstack/integration-examples/redis-metrics", - "products/clickstack/integration-examples/cloudwatch", - "products/clickstack/integration-examples/aws-lambda", - { - "group": "Host logs", - "pages": [ - "products/clickstack/integration-examples/host-logs", - "products/clickstack/integration-examples/host-logs/ec2" - ] - }, - "products/clickstack/integration-examples/jvm-metrics", - "products/clickstack/integration-examples/kafka-metrics", - "products/clickstack/integration-examples/kubernetes", - "products/clickstack/integration-examples/mysql", - "products/clickstack/integration-examples/nodejs-traces", - "products/clickstack/integration-examples/postgres-logs", - "products/clickstack/integration-examples/postgres-metrics", - "products/clickstack/integration-examples/systemd", - "products/clickstack/integration-examples/temporal", - "products/clickstack/integration-examples/cloudflare", - "products/clickstack/integration-examples/kafka-logs", - "products/clickstack/integration-examples/mongodb-logs" - ] - }, - { - "group": "Language SDKs", - "pages": [ - "products/clickstack/ingesting-data/sdks/browser", - "products/clickstack/ingesting-data/sdks/nodejs", - "products/clickstack/ingesting-data/sdks/python", - "products/clickstack/ingesting-data/sdks/golang", - "products/clickstack/ingesting-data/sdks/java", - "products/clickstack/ingesting-data/sdks/ruby", - "products/clickstack/ingesting-data/sdks/elixir", - "products/clickstack/ingesting-data/sdks/deno", - "products/clickstack/ingesting-data/sdks/nestjs", - "products/clickstack/ingesting-data/sdks/nextjs", - "products/clickstack/ingesting-data/sdks/react-native", - "products/clickstack/ingesting-data/sdks/aws-lambda" - ] - } - ] - }, - { - "group": "Migration guides", - "expanded": true, - "pages": [ - { - "group": "Migrating from Elastic", - "pages": [ - "products/clickstack/migration/elastic/intro", - "products/clickstack/migration/elastic/concepts", - "products/clickstack/migration/elastic/types", - "products/clickstack/migration/elastic/search", - "products/clickstack/migration/elastic/migrating-data", - "products/clickstack/migration/elastic/migrating-agents", - "products/clickstack/migration/elastic/migrating-sdks" - ] - } - ] - }, - "products/clickstack/ttl" - ] - }, - { - "group": "Integration partners", - "root": "products/clickstack/integration-partners/index", - "pages": [ - "products/clickstack/integration-partners/bindplane" - ] - }, - { - "group": "API reference", - "root": "products/clickstack/api-reference", - "openapi": "api-reference/hyperdx/hyperdx-openapi.json" - } - ] + "$ref": "products/clickstack/navigation.json" }, { "item": "LangFuse", @@ -2512,98 +91,10 @@ "href": "#" }, { - "item": "Agentic Data Stack", - "icon": "/images/icons/icon-agentic-data-stack.svg", - "groups": [ - { - "group": "Overview", - "pages": [ - "products/agentic-data-stack/overview" - ] - } - ] + "$ref": "products/agentic-data-stack/navigation.json" }, { - "item": "chDB", - "icon": "/images/icons/icon-chdb.svg", - "groups": [ - { - "group": "Get started", - "pages": [ - "products/chdb/index", - "products/chdb/getting-started" - ] - }, - { - "group": "Language integrations", - "pages": [ - "products/chdb/install/python", - "products/chdb/install/nodejs", - "products/chdb/install/go", - "products/chdb/install/rust", - "products/chdb/install/bun", - "products/chdb/install/c" - ] - }, - { - "group": "DataStore", - "pages": [ - "products/chdb/datastore/index", - "products/chdb/datastore/quickstart", - "products/chdb/datastore/factory-methods", - "products/chdb/datastore/query-building", - "products/chdb/datastore/aggregation", - "products/chdb/datastore/accessors", - "products/chdb/datastore/io", - "products/chdb/datastore/execution-model", - "products/chdb/datastore/pandas-compat", - "products/chdb/datastore/class-reference" - ] - }, - { - "group": "Configuration", - "pages": [ - "products/chdb/configuration/index", - "products/chdb/configuration/execution-engine", - "products/chdb/configuration/function-config", - "products/chdb/configuration/performance-mode" - ] - }, - { - "group": "Debugging", - "pages": [ - "products/chdb/debugging/index", - "products/chdb/debugging/explain", - "products/chdb/debugging/logging", - "products/chdb/debugging/profiling" - ] - }, - { - "group": "Developer guides", - "pages": [ - "products/chdb/guides/jupysql", - "products/chdb/guides/querying-pandas", - "products/chdb/guides/querying-apache-arrow", - "products/chdb/guides/querying-s3-bucket", - "products/chdb/guides/querying-parquet", - "products/chdb/guides/query-remote-clickhouse", - "products/chdb/guides/clickhouse-local", - "products/chdb/guides/migration-from-pandas", - "products/chdb/guides/pandas-cookbook", - "products/chdb/guides/pandas-differences", - "products/chdb/guides/pandas-performance", - "products/chdb/guides/pandas-to-sql" - ] - }, - { - "group": "Technical reference", - "pages": [ - "products/chdb/reference/data-formats", - "products/chdb/reference/sql-reference", - "products/chdb/api/python" - ] - } - ] + "$ref": "products/chdb/navigation.json" }, { "$ref": "products/kubernetes-operator/navigation.json" @@ -2614,514 +105,13 @@ "tab": "Integrations", "menu": [ { - "item": "ClickPipes", - "icon": "/images/icons/icon-clickpipes.svg", - "root": "integrations/clickpipes/home", - "groups": [ - { - "group": "ClickPipes for Object Storage", - "root": "integrations/clickpipes/home", - "pages": [ - { - "group": "Amazon S3", - "pages": [ - "integrations/clickpipes/object-storage/amazon-s3/overview", - "integrations/clickpipes/object-storage/amazon-s3/get-started", - "integrations/clickpipes/object-storage/amazon-s3/unordered-mode" - ] - }, - { - "group": "Google Cloud Storage", - "pages": [ - "integrations/clickpipes/object-storage/google-cloud-storage/overview", - "integrations/clickpipes/object-storage/google-cloud-storage/get-started", - "integrations/clickpipes/object-storage/google-cloud-storage/unordered-mode" - ] - }, - { - "group": "Azure Blob Storage", - "pages": [ - "integrations/clickpipes/object-storage/azure-blob-storage/overview", - "integrations/clickpipes/object-storage/azure-blob-storage/get-started" - ] - } - ] - }, - { - "group": "ClickPipes for Postgres", - "pages": [ - "integrations/clickpipes/postgres/index", - "integrations/clickpipes/postgres/deduplication", - "integrations/clickpipes/postgres/ordering-keys", - "integrations/clickpipes/postgres/toast", - "integrations/clickpipes/postgres/connecting-to-postgresql", - "integrations/clickpipes/postgres/inserting-data", - "integrations/clickpipes/postgres/schema-changes", - "integrations/clickpipes/postgres/faq", - "integrations/clickpipes/postgres/parallel-initial-load", - "integrations/clickpipes/postgres/lifecycle", - "integrations/clickpipes/postgres/auth", - { - "group": "Operations", - "pages": [ - "integrations/clickpipes/postgres/add-table", - "integrations/clickpipes/postgres/pause-and-resume", - "integrations/clickpipes/postgres/remove-table", - "integrations/clickpipes/postgres/table-resync", - "integrations/clickpipes/postgres/resync", - "integrations/clickpipes/postgres/controlling-sync", - "integrations/clickpipes/postgres/scaling" - ] - }, - { - "group": "Source", - "pages": [ - "integrations/clickpipes/postgres/source/alloydb", - "integrations/clickpipes/postgres/source/rds", - "integrations/clickpipes/postgres/source/aurora", - "integrations/clickpipes/postgres/source/supabase", - "integrations/clickpipes/postgres/source/google-cloudsql", - "integrations/clickpipes/postgres/source/azure-flexible-server-postgres", - "integrations/clickpipes/postgres/source/neon-postgres", - "integrations/clickpipes/postgres/source/crunchy-postgres", - "integrations/clickpipes/postgres/source/generic", - "integrations/clickpipes/postgres/source/timescale", - "integrations/clickpipes/postgres/source/planetscale" - ] - } - ] - }, - { - "group": "ClickPipes for Kafka", - "pages": [ - "integrations/clickpipes/kafka/index", - "integrations/clickpipes/kafka/create-kafka-clickpipe", - "integrations/clickpipes/kafka/schema-registries", - "integrations/clickpipes/kafka/reference", - "integrations/clickpipes/kafka/best-practices", - "integrations/clickpipes/kafka/faq" - ] - }, - { - "group": "ClickPipes for Kinesis", - "pages": [ - "integrations/clickpipes/kinesis/overview", - "integrations/clickpipes/kinesis/index", - "integrations/clickpipes/kinesis/auth" - ] - }, - { - "group": "ClickPipes for MySQL", - "pages": [ - "integrations/clickpipes/mysql/index", - "integrations/clickpipes/mysql/faq", - "integrations/clickpipes/mysql/datatypes", - "integrations/clickpipes/mysql/parallel-initial-load", - "integrations/clickpipes/mysql/schema-changes", - "integrations/clickpipes/mysql/lifecycle", - { - "group": "Operations", - "pages": [ - "integrations/clickpipes/mysql/add-table", - "integrations/clickpipes/mysql/pause-and-resume", - "integrations/clickpipes/mysql/remove-table", - "integrations/clickpipes/mysql/table-resync", - "integrations/clickpipes/mysql/resync", - "integrations/clickpipes/mysql/controlling-sync", - "integrations/clickpipes/mysql/scaling" - ] - }, - { - "group": "Source", - "pages": [ - "integrations/clickpipes/mysql/source/rds", - "integrations/clickpipes/mysql/source/aurora", - "integrations/clickpipes/mysql/source/gcp", - "integrations/clickpipes/mysql/source/azure-flexible-server-mysql", - "integrations/clickpipes/mysql/source/generic", - "integrations/clickpipes/mysql/source/rds-maria", - "integrations/clickpipes/mysql/source/generic-maria" - ] - } - ] - }, - { - "group": "ClickPipes for MongoDB", - "pages": [ - "integrations/clickpipes/mongodb/index", - "integrations/clickpipes/mongodb/datatypes", - "integrations/clickpipes/mongodb/quickstart", - "integrations/clickpipes/mongodb/lifecycle", - "integrations/clickpipes/mongodb/faq", - { - "group": "Operations", - "pages": [ - "integrations/clickpipes/mongodb/add-table", - "integrations/clickpipes/mongodb/remove-table", - "integrations/clickpipes/mongodb/pause-and-resume", - "integrations/clickpipes/mongodb/table-resync", - "integrations/clickpipes/mongodb/resync", - "integrations/clickpipes/mongodb/controlling-sync", - "integrations/clickpipes/mongodb/scaling" - ] - }, - { - "group": "Source", - "pages": [ - "integrations/clickpipes/mongodb/source/atlas", - "integrations/clickpipes/mongodb/source/generic", - "integrations/clickpipes/mongodb/source/documentdb" - ] - } - ] - }, - { - "group": "ClickPipes for BigQuery", - "pages": [ - "integrations/clickpipes/bigquery/overview", - "integrations/clickpipes/bigquery/get-started" - ] - }, - { - "group": "Programmatic access", - "pages": [ - "integrations/clickpipes/programmatic-access/openapi", - "integrations/clickpipes/programmatic-access/terraform" - ] - }, - { - "group": "Other", - "pages": [ - "integrations/clickpipes/aws-privatelink", - "integrations/clickpipes/dynamodb", - "integrations/clickpipes/monitoring" - ] - } - ] + "$ref": "integrations/clickpipes/navigation.json" }, { - "item": "Language clients", - "icon": "/images/icons/icon-language-clients.svg", - "groups": [ - { - "group": "Home", - "icon": "house", - "root": "integrations/language-clients/index", - "pages": [] - }, - { - "group": "JavaScript", - "icon": "/images/integrations/logos/node_js.svg", - "root": "integrations/language-clients/js", - "pages": [] - }, - { - "group": "Python", - "icon": "/images/integrations/logos/notext-python.svg", - "root": "integrations/language-clients/python/index", - "expanded": true, - "pages": [ - "integrations/language-clients/python/driver-api", - "integrations/language-clients/python/additional-options", - "integrations/language-clients/python/advanced-querying", - "integrations/language-clients/python/advanced-inserting", - "integrations/language-clients/python/advanced-usage", - "integrations/language-clients/python/sqlalchemy" - ] - }, - { - "group": "Go", - "icon": "/images/integrations/logos/golang.svg", - "root": "integrations/language-clients/go/index", - "expanded": true, - "pages": [ - "integrations/language-clients/go/clickhouse-api", - "integrations/language-clients/go/configuration", - "integrations/language-clients/go/config-reference", - "integrations/language-clients/go/data-types", - "integrations/language-clients/go/database-sql-api" - ] - }, - { - "group": "Java", - "expanded": true, - "icon": "/images/integrations/logos/java.svg", - "root": "integrations/language-clients/java/index", - "pages": [ - "integrations/language-clients/java/client", - "integrations/language-clients/java/jdbc", - "integrations/language-clients/java/r2dbc", - "integrations/language-clients/java/date-time-guide" - ] - }, - { - "group": "C#", - "icon": "/images/integrations/logos/csharp.svg", - "root": "integrations/language-clients/csharp/overview", - "pages": [] - }, - { - "group": "Rust", - "icon": "/images/integrations/logos/rust.png", - "root": "integrations/language-clients/rust", - "pages": [] - }, - { - "group": "C++", - "icon": "/images/integrations/logos/logo_cpp.svg", - "root": "integrations/language-clients/cpp", - "pages": [] - }, - { - "group": "Third-party clients", - "icon": "users", - "pages": [ - "integrations/language-clients/third-party/moose-olap", - "integrations/language-clients/third-party/client-libraries" - ] - } - ] + "$ref": "integrations/language-clients/navigation.json" }, { - "item": "Connectors", - "icon": "/images/icons/icon-connectors.svg", - "root": "integrations/connectors/home", - "groups": [ - { - "group": "Data sources", - "pages": [ - "integrations/connectors/data-sources/index", - { - "group": "AWS S3", - "expanded": false, - "pages": [ - "integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse", - "integrations/connectors/data-ingestion/AWS/performance", - "integrations/connectors/data-ingestion/AWS/creating-an-s3-iam-role-and-bucket" - ] - }, - "integrations/connectors/data-sources/postgres", - { - "group": "Kafka", - "expanded": false, - "pages": [ - "integrations/connectors/data-ingestion/kafka/index", - "integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink", - "integrations/connectors/data-ingestion/kafka/confluent/confluent-cloud", - "integrations/connectors/data-ingestion/kafka/confluent/custom-connector", - "integrations/connectors/data-ingestion/kafka/msk/index", - "integrations/connectors/data-ingestion/kafka/kafka-vector", - "integrations/connectors/data-ingestion/kafka/kafka-table-engine", - "integrations/connectors/data-ingestion/kafka/confluent/index", - "integrations/connectors/data-ingestion/kafka/confluent/kafka-connect-http", - "integrations/connectors/data-ingestion/kafka/kafka-connect-jdbc", - "integrations/connectors/data-ingestion/kafka/kafka-table-engine-named-collections" - ] - }, - "integrations/connectors/data-sources/mysql", - "integrations/connectors/data-sources/cassandra", - "integrations/connectors/data-sources/gcs", - "integrations/connectors/data-ingestion/s3-minio", - "integrations/connectors/data-ingestion/emqx/index", - "integrations/connectors/data-ingestion/insert-local-files", - "integrations/connectors/data-ingestion/jdbc-with-clickhouse", - "integrations/connectors/data-ingestion/odbc-with-clickhouse" - ] - }, - { - "group": "Data visualization", - "pages": [ - "integrations/connectors/data-visualization/index", - { - "group": "Grafana", - "expanded": false, - "pages": [ - "integrations/connectors/data-visualization/grafana/index", - "integrations/connectors/data-visualization/grafana/query-builder", - "integrations/connectors/data-visualization/grafana/config" - ] - }, - "integrations/connectors/data-visualization/lightdash-and-clickhouse", - "integrations/connectors/data-visualization/looker-and-clickhouse", - "integrations/connectors/data-visualization/looker-studio-and-clickhouse", - "integrations/connectors/data-visualization/metabase-and-clickhouse", - "integrations/connectors/data-visualization/omni-and-clickhouse", - "integrations/connectors/data-visualization/powerbi-and-clickhouse", - "integrations/connectors/data-visualization/quicksight-and-clickhouse", - "integrations/connectors/data-visualization/superset-and-clickhouse", - "integrations/connectors/data-visualization/splunk-and-clickhouse", - { - "group": "Tableau", - "expanded": false, - "pages": [ - "integrations/connectors/data-visualization/tableau/tableau-and-clickhouse", - "integrations/connectors/data-visualization/tableau/tableau-online-and-clickhouse", - "integrations/connectors/data-visualization/tableau/tableau-connection-tips", - "integrations/connectors/data-visualization/tableau/tableau-analysis-tips" - ] - }, - { - "group": "Community integrations", - "expanded": false, - "pages": [ - "integrations/connectors/data-visualization/community-integrations/astrato-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/chartbrew-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/databrain-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/deepnote", - "integrations/connectors/data-visualization/community-integrations/dot-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/draxlr-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/embeddable-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/explo-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/fabi-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/hashboard-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/luzmo-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/mitzu-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/rocketbi-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/zingdata-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/querio-and-clickhouse", - "integrations/connectors/data-visualization/community-integrations/holistics-and-clickhouse" - ] - } - ] - }, - { - "group": "Data ingestion", - "pages": [ - "integrations/connectors/data-ingestion/index", - "integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse", - "integrations/connectors/data-ingestion/etl-tools/apify-and-clickhouse", - { - "group": "Apache Spark", - "expanded": false, - "pages": [ - "integrations/connectors/data-ingestion/apache-spark/index", - "integrations/connectors/data-ingestion/apache-spark/spark-native-connector", - "integrations/connectors/data-ingestion/apache-spark/databricks", - "integrations/connectors/data-ingestion/apache-spark/spark-jdbc" - ] - }, - "integrations/connectors/data-ingestion/apache-flink", - "integrations/connectors/data-ingestion/AWS/glue", - { - "group": "Azure Data Factory", - "expanded": false, - "pages": [ - "integrations/connectors/data-ingestion/azure/azure-data-factory/index", - "integrations/connectors/data-ingestion/azure/azure-data-factory/overview", - "integrations/connectors/data-ingestion/azure/azure-data-factory/using-azureblobstorage", - "integrations/connectors/data-ingestion/azure/azure-data-factory/using-http-interface" - ] - }, - "integrations/connectors/data-ingestion/azure/azure-synapse", - "integrations/connectors/data-ingestion/etl-tools/apache-beam", - { - "group": "Google Dataflow", - "expanded": false, - "pages": [ - "integrations/connectors/data-ingestion/GCP/google-dataflow/dataflow", - "integrations/connectors/data-ingestion/GCP/google-dataflow/java-runner", - "integrations/connectors/data-ingestion/GCP/google-dataflow/templates", - { - "group": "Dataflow templates", - "expanded": false, - "pages": [ - "integrations/connectors/data-ingestion/GCP/google-dataflow/templates/bigquery-to-clickhouse" - ] - } - ] - }, - "integrations/connectors/data-ingestion/etl-tools/bladepipe-and-clickhouse", - { - "group": "dbt", - "expanded": false, - "pages": [ - "integrations/connectors/data-ingestion/etl-tools/dbt/index", - "integrations/connectors/data-ingestion/etl-tools/dbt/features-and-configurations", - "integrations/connectors/data-ingestion/etl-tools/dbt/materializations", - "integrations/connectors/data-ingestion/etl-tools/dbt/materialization-materialized-view", - "integrations/connectors/data-ingestion/etl-tools/dbt/guides" - ] - }, - "integrations/connectors/data-ingestion/etl-tools/dlt-and-clickhouse", - { - "group": "Fivetran", - "root": "integrations/connectors/data-ingestion/etl-tools/fivetran/index", - "pages": [ - "integrations/connectors/data-ingestion/etl-tools/fivetran/reference", - "integrations/connectors/data-ingestion/etl-tools/fivetran/troubleshooting" - ] - }, - "integrations/connectors/data-ingestion/etl-tools/nifi-and-clickhouse", - "integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse", - { - "group": "Streamkap", - "expanded": false, - "pages": [ - "integrations/connectors/data-ingestion/streamkap/streamkap-and-clickhouse", - "integrations/connectors/data-ingestion/streamkap/sql-server-clickhouse" - ] - }, - { - "group": "Community integrations", - "expanded": false, - "pages": [ - "integrations/connectors/data-ingestion/community-integrations/artie-and-clickhouse", - "integrations/connectors/data-ingestion/community-integrations/estuary" - ] - } - ] - }, - { - "group": "Tools", - "pages": [ - "integrations/connectors/tools/index", - { - "group": "SQL clients", - "expanded": false, - "pages": [ - "integrations/connectors/data-integrations/sql-clients/datagrip", - "integrations/connectors/data-integrations/sql-clients/dbeaver", - "integrations/connectors/data-integrations/sql-clients/dbvisualizer", - "integrations/connectors/data-integrations/sql-clients/jupysql", - "integrations/connectors/data-integrations/sql-clients/qstudio", - "integrations/connectors/data-integrations/sql-clients/tablum", - "integrations/connectors/data-integrations/sql-clients/marimo", - "integrations/connectors/data-integrations/sql-clients/cli" - ] - }, - { - "group": "Data integrations", - "expanded": false, - "pages": [ - "integrations/connectors/tools/data-integration-index", - "integrations/connectors/data-integrations/integrations/retool", - "integrations/connectors/data-integrations/integrations/easypanel", - "integrations/connectors/data-integrations/integrations/middleware", - "integrations/connectors/data-integrations/integrations/splunk", - { - "group": "pg_clickhouse", - "expanded": false, - "pages": [ - "integrations/connectors/tools/pg_clickhouse/introduction", - "integrations/connectors/tools/pg_clickhouse/reference", - "integrations/connectors/tools/pg_clickhouse/tutorial" - ] - } - ] - }, - { - "group": "Misc", - "expanded": false, - "pages": [ - "integrations/connectors/tools/misc-index", - "integrations/connectors/tools/gui", - "integrations/connectors/tools/proxy", - "integrations/connectors/tools/third-party-libraries" - ] - } - ] - } - ] + "$ref": "integrations/connectors/navigation.json" } ] }, @@ -3129,369 +119,16 @@ "tab": "Resources", "menu": [ { - "item": "Support center", - "icon": "/images/icons/icon-support-center.svg", - "groups": [ - { - "group": "Knowledgebase", - "root": "resources/support-center/home", - "pages": [ - { - "group": "Performance & Optimization", - "pages": [ - "resources/support-center/knowledge-base/performance-optimization/insert-select-settings-tuning", - "resources/support-center/knowledge-base/performance-optimization/async-vs-optimize-read-in-order", - "resources/support-center/knowledge-base/performance-optimization/check-query-processing-time-only", - "resources/support-center/knowledge-base/performance-optimization/find-expensive-queries", - "resources/support-center/knowledge-base/performance-optimization/finding-expensive-queries-by-memory-usage", - "resources/support-center/knowledge-base/performance-optimization/improve-map-performance", - "resources/support-center/knowledge-base/performance-optimization/memory-limit-exceeded-for-query", - "resources/support-center/knowledge-base/performance-optimization/optimize-final-vs-final", - "resources/support-center/knowledge-base/performance-optimization/query-max-execution-time", - "resources/support-center/knowledge-base/performance-optimization/tips-tricks-optimizing-basic-data-types-in-clickhouse", - "resources/support-center/knowledge-base/performance-optimization/why-is-my-primary-key-not-used" - ] - }, - { - "group": "Cloud", - "pages": [ - "resources/support-center/knowledge-base/cloud-services/aws-privatelink-setup-for-clickpipes", - "resources/support-center/knowledge-base/cloud-services/aws-privatelink-setup-for-msk-clickpipes", - "resources/support-center/knowledge-base/cloud-services/change-billing-email", - "resources/support-center/knowledge-base/cloud-services/clickhouse-cloud-api-usage", - "resources/support-center/knowledge-base/cloud-services/custom-dns-alias-for-instance", - "resources/support-center/knowledge-base/cloud-services/execute-system-queries-in-cloud", - "resources/support-center/knowledge-base/cloud-services/how-to-check-my-clickhouse-cloud-sevice-state", - "resources/support-center/knowledge-base/cloud-services/how-to-connect-to-ch-cloud-using-ssh-keys", - "resources/support-center/knowledge-base/cloud-services/ingest-failures-23-9-release", - "resources/support-center/knowledge-base/cloud-services/multi-region-replication", - "resources/support-center/knowledge-base/cloud-services/unable-to-access-cloud-service" - ] - }, - { - "group": "Data Import & Export", - "pages": [ - "resources/support-center/knowledge-base/data-import-export/cannot-append-data-to-parquet-format", - "resources/support-center/knowledge-base/data-import-export/file-export", - "resources/support-center/knowledge-base/data-import-export/importing-geojason-with-nested-object-array", - "resources/support-center/knowledge-base/data-import-export/importing-and-working-with-json-array-objects", - "resources/support-center/knowledge-base/data-import-export/ingest-parquet-files-in-s3", - "resources/support-center/knowledge-base/data-import-export/json-import", - "resources/support-center/knowledge-base/data-import-export/json-extract-example", - "resources/support-center/knowledge-base/data-import-export/json-simple-example", - "resources/support-center/knowledge-base/data-import-export/kafka-clickhouse-json", - "resources/support-center/knowledge-base/data-import-export/kafka-to-clickhouse-setup", - "resources/support-center/knowledge-base/data-import-export/mysql-to-parquet-csv-json", - "resources/support-center/knowledge-base/data-import-export/parquet-to-csv-json", - "resources/support-center/knowledge-base/data-import-export/postgresql-to-parquet-csv-json", - "resources/support-center/knowledge-base/data-import-export/s3-export-data-year-month-folders" - ] - }, - { - "group": "Configuration & Settings", - "pages": [ - "resources/support-center/knowledge-base/configuration-settings/about-quotas-and-query-complexity", - "resources/support-center/knowledge-base/configuration-settings/alter-user-settings-exception", - "resources/support-center/knowledge-base/configuration-settings/change-the-prompt-in-clickhouse-client", - "resources/support-center/knowledge-base/configuration-settings/configure-a-user-setting", - "resources/support-center/knowledge-base/configuration-settings/configure-cap-ipc-lock-and-cap-sys-nice-in-docker", - "resources/support-center/knowledge-base/configuration-settings/ignoring-incorrect-settings", - "resources/support-center/knowledge-base/configuration-settings/maximum-number-of-tables-and-databases" - ] - }, - { - "group": "Integrations & Client Libraries", - "pages": [ - "resources/support-center/knowledge-base/integrations/node-js-example", - "resources/support-center/knowledge-base/integrations/ODBC-authentication-failed-error-using-PowerBI-CH-connector", - "resources/support-center/knowledge-base/integrations/oracle-odbc", - "resources/support-center/knowledge-base/integrations/how-to-set-up-ch-on-docker-odbc-connect-mssql", - "resources/support-center/knowledge-base/integrations/python-clickhouse-connect-example", - "resources/support-center/knowledge-base/integrations/python-http-requests", - "resources/support-center/knowledge-base/integrations/terraform-example" - ] - }, - { - "group": "Troubleshooting & Errors", - "root": "resources/support-center/troubleshooting/index", - "pages": [ - "resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error", - "resources/support-center/knowledge-base/troubleshooting/connection-timeout-remote-remoteSecure", - "resources/support-center/knowledge-base/troubleshooting/exception-too-many-parts", - "resources/support-center/knowledge-base/troubleshooting/fix-developer-verification-error-in-macos", - "resources/support-center/knowledge-base/troubleshooting/part-intersects-previous-part" - ] - }, - { - "group": "Tables & Schema", - "pages": [ - "resources/support-center/knowledge-base/tables-schema/add-column", - "resources/support-center/knowledge-base/tables-schema/delete-old-data", - "resources/support-center/knowledge-base/tables-schema/exchangeStatementToSwitchTables", - "resources/support-center/knowledge-base/tables-schema/how-to-create-table-to-query-multiple-remote-clusters", - "resources/support-center/knowledge-base/tables-schema/recreate-table-across-terminals", - "resources/support-center/knowledge-base/tables-schema/schema-migration-tools", - "resources/support-center/knowledge-base/tables-schema/search-across-node-for-tables-with-a-wildcard" - ] - }, - { - "group": "Queries & SQL", - "pages": [ - "resources/support-center/knowledge-base/queries-sql/calculate-pi-using-sql", - "resources/support-center/knowledge-base/queries-sql/compare-resultsets", - "resources/support-center/knowledge-base/queries-sql/comparing-metrics-between-queries", - "resources/support-center/knowledge-base/queries-sql/filtered-aggregates", - "resources/support-center/knowledge-base/queries-sql/how-to-filter-a-clickhouse-table-by-an-array-column", - "resources/support-center/knowledge-base/queries-sql/how-to-insert-all-rows-from-another-table", - "resources/support-center/knowledge-base/queries-sql/pivot", - "resources/support-center/knowledge-base/queries-sql/useful-queries-for-troubleshooting", - "resources/support-center/knowledge-base/queries-sql/using-array-join-to-extract-and-query-attributes" - ] - }, - { - "group": "Materialized Views & Projections", - "pages": [ - "resources/support-center/knowledge-base/materialized-views/are-materialized-views-inserted-asynchronously", - "resources/support-center/knowledge-base/materialized-views/how-to-display-queries-using-mv", - "resources/support-center/knowledge-base/materialized-views/how-to-use-parametrised-views", - "resources/support-center/knowledge-base/materialized-views/projection-example" - ] - }, - { - "group": "Monitoring & Debugging", - "pages": [ - "resources/support-center/knowledge-base/monitoring-debugging/check-query-cache-in-use", - "resources/support-center/knowledge-base/monitoring-debugging/generate-har-file", - "resources/support-center/knowledge-base/monitoring-debugging/mapping-of-system-metrics-to-prometheus-metrics", - "resources/support-center/knowledge-base/monitoring-debugging/outputSendLogsLevelTracesToFile", - "resources/support-center/knowledge-base/monitoring-debugging/profiling-clickhouse-with-llvm-xray", - "resources/support-center/knowledge-base/monitoring-debugging/send-logs-level", - "resources/support-center/knowledge-base/monitoring-debugging/which-processes-are-currently-running", - "resources/support-center/knowledge-base/monitoring-debugging/view-number-of-active-mutations", - "resources/support-center/knowledge-base/monitoring-debugging/why-default-logging-verbose" - ] - }, - { - "group": "Security & Access Control", - "pages": [ - "resources/support-center/knowledge-base/security/check-users-roles", - "resources/support-center/knowledge-base/security/common-rbac-queries", - "resources/support-center/knowledge-base/security/remove-default-user", - "resources/support-center/knowledge-base/security/row-column-policy", - "resources/support-center/knowledge-base/security/windows-active-directory-to-ch-roles" - ] - }, - { - "group": "Data Management", - "pages": [ - "resources/support-center/knowledge-base/data-management/backing-up-a-specific-partition", - "resources/support-center/knowledge-base/data-management/calculate-ratio-of-zero-sparse-serialization", - "resources/support-center/knowledge-base/data-management/dictionaries-consistent-state", - "resources/support-center/knowledge-base/data-management/dictionary-using-strings", - "resources/support-center/knowledge-base/data-management/read-consistency", - "resources/support-center/knowledge-base/data-management/when-is-ttl-applied" - ] - }, - { - "group": "Setup & Installation", - "pages": [ - "resources/support-center/knowledge-base/setup-installation/difference-between-official-builds-and-3rd-party", - "resources/support-center/knowledge-base/setup-installation/enabling-ssl-with-lets-encrypt", - "resources/support-center/knowledge-base/setup-installation/how-to-increase-thread-pool-size", - "resources/support-center/knowledge-base/setup-installation/install-clickhouse-windows10", - "resources/support-center/knowledge-base/setup-installation/llvm-clang-up-to-date", - "resources/support-center/knowledge-base/setup-installation/production" - ] - }, - { - "group": "General & FAQs", - "root": "resources/support-center/knowledge-base/general-faqs/index", - "pages": [ - { - "group": "General", - "root": "resources/support-center/knowledge-base/general-faqs/index", - "pages": [ - "resources/support-center/knowledge-base/general-faqs/columnar-database", - "resources/support-center/knowledge-base/general-faqs/concurrency", - "resources/support-center/knowledge-base/general-faqs/cost-based", - "resources/support-center/knowledge-base/general-faqs/datalake", - "resources/support-center/knowledge-base/general-faqs/dbms-naming", - "resources/support-center/knowledge-base/general-faqs/dependencies", - "resources/support-center/knowledge-base/general-faqs/distributed-join", - "resources/support-center/knowledge-base/general-faqs/federated", - "resources/support-center/knowledge-base/general-faqs/how-do-i-contribute-code-to-clickhouse", - "resources/support-center/knowledge-base/general-faqs/mapreduce", - "resources/support-center/knowledge-base/general-faqs/ne-tormozit", - "resources/support-center/knowledge-base/general-faqs/olap", - "resources/support-center/knowledge-base/general-faqs/sql", - "resources/support-center/knowledge-base/general-faqs/updates", - "resources/support-center/knowledge-base/general-faqs/who-is-using-clickhouse", - "resources/support-center/knowledge-base/general-faqs/why-recommend-clickhouse-keeper-over-zookeeper" - ] - }, - { - "group": "Use Cases", - "root": "resources/support-center/knowledge-base/general-faqs/use-cases-index", - "pages": [ - "resources/support-center/knowledge-base/general-faqs/key-value", - "resources/support-center/knowledge-base/general-faqs/time-series", - "resources/support-center/knowledge-base/general-faqs/use-clickhouse-for-log-analytics", - "resources/support-center/knowledge-base/general-faqs/vector-search" - ] - }, - { - "group": "Integration", - "root": "resources/support-center/knowledge-base/integrations/index", - "pages": [ - "resources/support-center/knowledge-base/data-import-export/json-import", - "resources/support-center/knowledge-base/integrations/oracle-odbc" - ] - }, - { - "group": "Operations", - "root": "resources/support-center/knowledge-base/general-faqs/operations-index", - "pages": [ - "resources/support-center/knowledge-base/tables-schema/delete-old-data", - "resources/support-center/knowledge-base/cloud-services/multi-region-replication", - "resources/support-center/knowledge-base/setup-installation/production", - "resources/support-center/knowledge-base/general-faqs/separate-storage" - ] - } - ] - }, - { - "group": "Tips & Tricks", - "pages": [ - "resources/support-center/tips-and-tricks/community-wisdom", - "resources/support-center/tips-and-tricks/cost-optimization", - "resources/support-center/tips-and-tricks/debugging-insights", - "resources/support-center/tips-and-tricks/materialized-views", - "resources/support-center/tips-and-tricks/performance-optimization", - "resources/support-center/tips-and-tricks/success-stories", - "resources/support-center/tips-and-tricks/too-many-parts" - ] - } - ] - } - ] + "$ref": "resources/support-center/navigation.json" }, { - "item": "Contribute", - "icon": "/images/icons/icon-contribute.svg", - "groups": [ - { - "group": "Introduction", - "pages": [ - "resources/contribute/developer-instruction", - "resources/contribute/architecture" - ] - }, - { - "group": "Building", - "pages": [ - "resources/contribute/build", - "resources/contribute/build-osx", - "resources/contribute/build-cross-osx", - "resources/contribute/build-cross-arm", - "resources/contribute/build-cross-riscv", - "resources/contribute/build-cross-s390x", - "resources/contribute/build-cross-loongarch", - "resources/contribute/build-e2k" - ] - }, - { - "group": "Contributing", - "pages": [ - "resources/contribute/tests", - "resources/contribute/continuous-integration", - "resources/contribute/contrib", - "resources/contribute/style", - "resources/contribute/building-and-benchmarking-deflate-qpl", - "resources/contribute/integrating-rust-libraries", - "resources/contribute/profile-guided-optimization", - "resources/contribute/backports" - ] - }, - { - "group": "Roadmap", - "pages": [ - "resources/contribute/roadmap" - ] - } - ] + "$ref": "resources/develop-contribute/navigation.json" }, { - "item": "Changelogs", - "icon": "/images/icons/icon-changelogs.svg", - "root": "resources/changelogs/cloud/changelog", - "groups": [ - { - "group": "Cloud", - "root": "resources/changelogs/cloud/index", - "pages": [ - "resources/changelogs/cloud/changelog", - "resources/changelogs/cloud/release-status", - { - "group": "Release notes", - "pages": [ - "resources/changelogs/cloud/release-notes/26_02", - "resources/changelogs/cloud/release-notes/25_12", - "resources/changelogs/cloud/release-notes/25_10", - "resources/changelogs/cloud/release-notes/25_08", - "resources/changelogs/cloud/release-notes/25_06", - "resources/changelogs/cloud/release-notes/25_04", - "resources/changelogs/cloud/release-notes/24_12", - "resources/changelogs/cloud/release-notes/24_10", - "resources/changelogs/cloud/release-notes/24_08", - "resources/changelogs/cloud/release-notes/24_06", - "resources/changelogs/cloud/release-notes/24_05", - "resources/changelogs/cloud/release-notes/24_02" - ] - }, - { - "group": "Archive", - "pages": [ - "resources/changelogs/cloud/archive/2025", - "resources/changelogs/cloud/archive/2024", - "resources/changelogs/cloud/archive/2023", - "resources/changelogs/cloud/archive/2022" - ] - } - ] - }, - { - "group": "Self-managed", - "pages": [ - "resources/changelogs/oss/2026", - "resources/changelogs/oss/2025", - "resources/changelogs/oss/2024", - "resources/changelogs/oss/2023", - "resources/changelogs/oss/2022", - "resources/changelogs/oss/2021", - "resources/changelogs/oss/2020", - "resources/changelogs/oss/2019", - "resources/changelogs/oss/2018", - "resources/changelogs/oss/2017", - "resources/changelogs/security-changelog" - ] - } - ] + "$ref": "resources/changelogs/navigation.json" }, { - "item": "About", - "icon": "/images/icons/icon-about.svg", - "groups": [ - { - "group": "About ClickHouse", - "root": "resources/about/index", - "pages": [ - "resources/about/history", - "resources/about/adopters", - "resources/about/cloud", - "resources/about/support" - ] - } - ] + "$ref": "resources/about/navigation.json" } ] } @@ -3533,2679 +170,13 @@ ] }, "logo": { - "light": "/logo/light.svg", - "dark": "/logo/dark.svg" + "light": "/_site/logo/light.svg", + "dark": "/_site/logo/dark.svg" }, "fonts": { "family": "Inter" }, "navbar": {}, - "redirects": [ - { - "source": "/optimize/avoid-mutations", - "destination": "/concepts/best-practices/avoid-mutations" - }, - { - "source": "/optimize/avoidoptimizefinal", - "destination": "/concepts/best-practices/avoid-optimize-final" - }, - { - "source": "/optimize/partitioning-key", - "destination": "/concepts/best-practices/partitioning-keys" - }, - { - "source": "/starter-guides", - "destination": "/get-started/quickstarts/home" - }, - { - "source": "/introduction-clickhouse", - "destination": "/get-started/about/intro" - }, - { - "source": "/install/quick-install-curl", - "destination": "/get-started/setup/self-managed/quick-install" - }, - { - "source": "/integrations/clickpipes/secure-kinesis", - "destination": "/integrations/clickpipes/kinesis/auth" - }, - { - "source": "/integrations/clickpipes/secure-rds", - "destination": "/integrations/clickpipes/postgres/auth" - }, - { - "source": "/docs/en/cloud/manage/service-types", - "destination": "/products/cloud/features/cloud-tiers" - }, - { - "source": "/cloud/reference/byoc/onboarding/customization", - "destination": "/products/bring-your-own-cloud/onboarding/customization-aws" - }, - { - "source": "/knowledgebase/why-clickhouse-is-so-fast", - "destination": "/get-started/about/why-clickhouse-is-so-fast" - }, - { - "source": "/faq/general/why-clickhouse-is-so-fast", - "destination": "/get-started/about/why-clickhouse-is-so-fast" - }, - { - "source": "/integrations/data-formats/json", - "destination": "/integrations/connectors/data-ingestion/data-formats/json/intro" - }, - { - "source": "/faq/marketplace", - "destination": "/products/cloud/reference/billing/marketplace/overview" - }, - { - "source": "/native-protocol/compression", - "destination": "/guides/cloud-oss/data-modelling/compression/compression-modes" - }, - { - "source": "/manage/backups", - "destination": "/products/cloud/guides/backups" - }, - { - "source": "/manage/security/organization-activity", - "destination": "/products/cloud/reference/security/audit-logging" - }, - { - "source": "/cloud/manage/cmek", - "destination": "/products/cloud/guides/security/cmek" - }, - { - "source": "/manage/security/ip-access-list", - "destination": "/products/cloud/guides/security/connectivity/setting-ip-filters" - }, - { - "source": "/faq/billing#faq", - "destination": "/products/cloud/reference/billing/billing-overview#faqs" - }, - { - "source": "/guides/developer/lightweght-delete", - "destination": "/concepts/operations/delete/lightweight-delete" - }, - { - "source": "/guides/developer/shared-merge-tree", - "destination": "/products/cloud/features/infrastructure/shared-merge-tree" - }, - { - "source": "/integrations/data-ingestion", - "destination": "/reference/statements/insert-into" - }, - { - "source": "/integrations/data-ingestion/kafka", - "destination": "/integrations/connectors/data-ingestion/kafka" - }, - { - "source": "/integrations/data-ingestion/kafka/code", - "destination": "/integrations/connectors/data-ingestion/kafka" - }, - { - "source": "/integrations/data-ingestion/kafka/code/connectors", - "destination": "/integrations/connectors/data-ingestion/kafka" - }, - { - "source": "/integrations/deltalake", - "destination": "/reference/functions/table-functions/deltalake" - }, - { - "source": "/integrations/hive", - "destination": "/reference/engines/table-engines/integrations/hive" - }, - { - "source": "/integrations/hudi", - "destination": "/reference/engines/table-engines/integrations/hudi" - }, - { - "source": "/integrations/iceberg", - "destination": "/reference/functions/table-functions/iceberg" - }, - { - "source": "/integrations/mongodb", - "destination": "/reference/engines/table-engines/integrations/mongodb" - }, - { - "source": "/integrations/nats", - "destination": "/reference/engines/table-engines/integrations/nats" - }, - { - "source": "/integrations/rabbitmq", - "destination": "/reference/engines/table-engines/integrations/rabbitmq" - }, - { - "source": "/integrations/redis", - "destination": "/reference/functions/table-functions/redis" - }, - { - "source": "/integrations/rocksdb", - "destination": "/reference/engines/table-engines/integrations/embedded-rocksdb" - }, - { - "source": "/integrations/sqlite", - "destination": "/reference/engines/table-engines/integrations/sqlite" - }, - { - "source": "/integrations/connect-a-client", - "destination": "/integrations/connectors/data-integrations/drivers-and-interfaces/cli" - }, - { - "source": "/cloud/sql-console", - "destination": "/integrations/connectors/data-integrations/sql-clients/sql-console" - }, - { - "source": "/category/cloud-reference", - "destination": "/products/cloud/getting-started/intro" - }, - { - "source": "/about-us/performance", - "destination": "/get-started/about/why-clickhouse-is-so-fast" - }, - { - "source": "/operations/optimizing-performance", - "destination": "/concepts/features/performance/troubleshoot/sampling-query-profiler" - }, - { - "source": "/guides/improving-query-performance/skipping-indexes", - "destination": "/concepts/features/performance/skip-indexes/skipping-indexes" - }, - { - "source": "/guides", - "destination": "/get-started/oss/starter-guides/creating-tables" - }, - { - "source": "/optimize/sparse-primary-indexes", - "destination": "/guides/cloud-oss/data-modelling/sparse-primary-indexes" - }, - { - "source": "/guides/improving-query-performance/sparse-primary-indexes", - "destination": "/guides/cloud-oss/data-modelling/sparse-primary-indexes" - }, - { - "source": "/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-cardinality", - "destination": "/guides/cloud-oss/data-modelling/sparse-primary-indexes" - }, - { - "source": "/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-design", - "destination": "/guides/cloud-oss/data-modelling/sparse-primary-indexes" - }, - { - "source": "/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-intro", - "destination": "/guides/cloud-oss/data-modelling/sparse-primary-indexes" - }, - { - "source": "/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-multiple", - "destination": "/guides/cloud-oss/data-modelling/sparse-primary-indexes" - }, - { - "source": "/guides/improving-query-performance/sparse-primary-indexes/sparse-primary-indexes-uuids", - "destination": "/guides/cloud-oss/data-modelling/sparse-primary-indexes" - }, - { - "source": "/integrations/data-ingestion/dbms/", - "destination": "/integrations/connectors/home" - }, - { - "source": "/integrations/data-ingestion/etl-tools", - "destination": "/integrations/connectors/home" - }, - { - "source": "/integrations/intro", - "destination": "/integrations/connectors/home" - }, - { - "source": "/integrations/migration/clickhouse-local", - "destination": "/get-started/setup/migration-guides/other-methods/clickhouse-local-etl" - }, - { - "source": "/integrations/migration/clickhouse-to-cloud", - "destination": "/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud" - }, - { - "source": "/integrations/migration/etl-tool-to-clickhouse", - "destination": "/get-started/setup/migration-guides/other-methods/etl-tool-to-clickhouse" - }, - { - "source": "/integrations/sql-clients/index", - "destination": "/integrations/connectors/home" - }, - { - "source": "/interfaces", - "destination": "/integrations/connectors/data-integrations/drivers-and-interfaces/overview" - }, - { - "source": "/native-protocol", - "destination": "/resources/contribute/native-protocol/basics" - }, - { - "source": "/manage/users", - "destination": "/concepts/features/security/access-rights" - }, - { - "source": "/manage", - "destination": "/concepts/features/security/access-rights" - }, - { - "source": "/manage/configuration", - "destination": "/concepts/features/configuration/server-config/configuration-files" - }, - { - "source": "/manage/replication-and-sharding", - "destination": "/guides/oss/deployment-and-scaling/keeper" - }, - { - "source": "/integrations/sql-clients/datagrip", - "destination": "/integrations/connectors/data-integrations/sql-clients/datagrip" - }, - { - "source": "/integrations/sql-clients/dbeaver", - "destination": "/integrations/connectors/data-integrations/sql-clients/dbeaver" - }, - { - "source": "/integrations/sql-clients/qstudio", - "destination": "/integrations/connectors/data-integrations/sql-clients/qstudio" - }, - { - "source": "/integrations/sql-clients/jupysql", - "destination": "/integrations/connectors/data-integrations/sql-clients/jupysql" - }, - { - "source": "/integrations/sql-clients/tablum.io", - "destination": "/integrations/connectors/data-integrations/sql-clients/tablum" - }, - { - "source": "/sql-reference/dictionaries/external-dictionaries", - "destination": "/reference/statements/create/dictionary" - }, - { - "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts", - "destination": "/reference/statements/create/dictionary" - }, - { - "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict", - "destination": "/reference/statements/create/dictionary" - }, - { - "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout", - "destination": "/reference/statements/create/dictionary/layouts/overview" - }, - { - "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-lifetime", - "destination": "/reference/statements/create/dictionary/lifetime" - }, - { - "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources", - "destination": "/reference/statements/create/dictionary/sources/overview" - }, - { - "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure", - "destination": "/reference/statements/create/dictionary/attributes" - }, - { - "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-hierarchical", - "destination": "/reference/statements/create/dictionary/layouts/hierarchical" - }, - { - "source": "/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-polygon", - "destination": "/reference/statements/create/dictionary/layouts/polygon" - }, - { - "source": "/sql-reference/dictionaries/external-dictionaries/regexp-tree", - "destination": "/reference/statements/create/dictionary/layouts/regexp-tree" - }, - { - "source": "/sql-reference/dictionaries/internal-dicts", - "destination": "/reference/statements/create/dictionary/embedded" - }, - { - "source": "/sql-reference/dictionaries", - "destination": "/reference/statements/create/dictionary" - }, - { - "source": "/operations/clickhouse-keeper/", - "destination": "/guides/oss/deployment-and-scaling/keeper" - }, - { - "source": "/connect-a-ui/grafana-and-clickhouse", - "destination": "/integrations/connectors/data-visualization/grafana" - }, - { - "source": "/connect-a-ui/metabase-and-clickhouse", - "destination": "/integrations/connectors/data-visualization/metabase-and-clickhouse" - }, - { - "source": "/connect-a-ui/mitzu-and-clickhouse", - "destination": "/integrations/connectors/data-visualization/community-integrations/mitzu-and-clickhouse" - }, - { - "source": "/connect-a-ui/rocketbi-and-clickhouse", - "destination": "/integrations/connectors/data-visualization/community-integrations/rocketbi-and-clickhouse" - }, - { - "source": "/connect-a-ui/superset-and-clickhouse", - "destination": "/integrations/connectors/data-visualization/superset-and-clickhouse" - }, - { - "source": "/connect-a-ui/tableau-and-clickhouse", - "destination": "/integrations/connectors/data-visualization/tableau/tableau-and-clickhouse" - }, - { - "source": "/integrations/language-clients/javascript", - "destination": "/integrations/language-clients/js" - }, - { - "source": "/integrations/language-clients/python/intro", - "destination": "/integrations/language-clients/python" - }, - { - "source": "/integrations/language-clients/python/driver-api", - "destination": "/integrations/language-clients/python" - }, - { - "source": "/integrations/language-clients/python/queries", - "destination": "/integrations/language-clients/python" - }, - { - "source": "/integrations/language-clients/python/inserts", - "destination": "/integrations/language-clients/python" - }, - { - "source": "/integrations/language-clients/python/options", - "destination": "/integrations/language-clients/python" - }, - { - "source": "/integrations/go/intro", - "destination": "/integrations/language-clients/go" - }, - { - "source": "/integrations/go/choosing-a-client", - "destination": "/integrations/language-clients/go" - }, - { - "source": "/integrations/go/clickhouse-go", - "destination": "/integrations/language-clients/go" - }, - { - "source": "/integrations/go/clickhouse-go/introduction", - "destination": "/integrations/language-clients/go" - }, - { - "source": "/integrations/go/clickhouse-go/installation", - "destination": "/integrations/language-clients/go" - }, - { - "source": "/integrations/go/clickhouse-go/clickhouse-api", - "destination": "/integrations/language-clients/go" - }, - { - "source": "/integrations/go/clickhouse-go/database-sql-api", - "destination": "/integrations/language-clients/go" - }, - { - "source": "/integrations/go/clickhouse-go/performance-tips", - "destination": "/integrations/language-clients/go" - }, - { - "source": "/integrations/language-clients/java/r2dbc", - "destination": "/integrations/language-clients/java" - }, - { - "source": "/integrations/nifi-and-clickhouse", - "destination": "/integrations/connectors/data-ingestion/etl-tools/nifi-and-clickhouse" - }, - { - "source": "/integrations/kafka/intro", - "destination": "/integrations/connectors/data-ingestion/kafka" - }, - { - "source": "/integrations/kafka/self-managed/connect-sink", - "destination": "/integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink" - }, - { - "source": "/integrations/kafka/self-managed/jdbc", - "destination": "/integrations/connectors/data-ingestion/kafka/kafka-connect-jdbc" - }, - { - "source": "/integrations/kafka/self-managed/vector", - "destination": "/integrations/connectors/data-ingestion/kafka/kafka-vector" - }, - { - "source": "/integrations/data-ingestion/kafka/cloud/msk/connect-sink", - "destination": "/integrations/connectors/data-ingestion/kafka/msk" - }, - { - "source": "/integrations/s3/s3-intro", - "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" - }, - { - "source": "/integrations/s3/s3-table-functions", - "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" - }, - { - "source": "/integrations/s3/s3-table-engine", - "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" - }, - { - "source": "/integrations/s3/s3-merge-tree", - "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" - }, - { - "source": "/integrations/s3/s3-optimizing-performance", - "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" - }, - { - "source": "/guides/sre/configuring-s3-for-clickhouse-use", - "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" - }, - { - "source": "/guides/sre/s3-multi-region", - "destination": "/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse" - }, - { - "source": "/integrations/s3/s3-minio", - "destination": "/integrations/connectors/data-ingestion/s3-minio" - }, - { - "source": "/integrations/vector-to-clickhouse", - "destination": "/integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse" - }, - { - "source": "/integrations/airbyte-and-clickhouse", - "destination": "/integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse" - }, - { - "source": "/integrations/postgresql/postgres-with-clickhouse", - "destination": "/integrations/connectors/data-sources/postgres" - }, - { - "source": "/integrations/postgresql/postgres-with-clickhouse-database-engine", - "destination": "/integrations/connectors/data-sources/postgres" - }, - { - "source": "/integrations/mqtt", - "destination": "/integrations/connectors/data-ingestion/emqx" - }, - { - "source": "/integrations/emqx/emqx-intro", - "destination": "/integrations/connectors/data-ingestion/emqx" - }, - { - "source": "/integrations/emqx/clickhouse-service-set-up", - "destination": "/integrations/connectors/data-ingestion/emqx" - }, - { - "source": "/integrations/emqx/create-emqx-cloud-deployment", - "destination": "/integrations/connectors/data-ingestion/emqx" - }, - { - "source": "/integrations/emqx/emqx-cloud-data-integration", - "destination": "/integrations/connectors/data-ingestion/emqx" - }, - { - "source": "/integrations/emqx/workflow-samples", - "destination": "/integrations/connectors/data-ingestion/emqx" - }, - { - "source": "/integrations/dbt/dbt-intro", - "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" - }, - { - "source": "/integrations/dbt/dbt-setup", - "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" - }, - { - "source": "/integrations/dbt/dbt-connecting", - "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" - }, - { - "source": "/integrations/dbt/dbt-view-model", - "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" - }, - { - "source": "/integrations/dbt/dbt-table-model", - "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" - }, - { - "source": "/integrations/dbt/dbt-incremental-model", - "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" - }, - { - "source": "/integrations/dbt/dbt-snapshot", - "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" - }, - { - "source": "/integrations/dbt/dbt-seeds", - "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" - }, - { - "source": "/integrations/dbt/dbt-limitations", - "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt" - }, - { - "source": "/development", - "destination": "/resources/contribute/developer-instruction" - }, - { - "source": "/guides/sre/keeper/clickhouse-keeper-uuid", - "destination": "/guides/oss/deployment-and-scaling/keeper" - }, - { - "source": "/guides/sre/user-management/alter-permissions", - "destination": "/concepts/features/security/access-rights" - }, - { - "source": "/guides/sre/users-and-roles", - "destination": "/concepts/features/security/access-rights" - }, - { - "source": "/integrations/data-formats/parquet-arrow-avro-orc", - "destination": "/integrations/connectors/data-ingestion/data-formats/parquet" - }, - { - "source": "/guides/developer/working-with-json", - "destination": "/integrations/connectors/data-ingestion/data-formats/json/intro" - }, - { - "source": "/guides/developer/working-with-json/json-intro", - "destination": "/integrations/connectors/data-ingestion/data-formats/json/intro" - }, - { - "source": "/guides/developer/working-with-json/json-load-data", - "destination": "/integrations/connectors/data-ingestion/data-formats/json/intro" - }, - { - "source": "/guides/developer/working-with-json/json-other-approaches", - "destination": "/integrations/connectors/data-ingestion/data-formats/json/intro" - }, - { - "source": "/guides/developer/working-with-json/json-semi-structured", - "destination": "/integrations/connectors/data-ingestion/data-formats/json/intro" - }, - { - "source": "/guides/developer/working-with-json/json-structured", - "destination": "/integrations/connectors/data-ingestion/data-formats/json/intro" - }, - { - "source": "/get-started/sql-console/opening", - "destination": "/products/cloud/features/sql-console-features/sql-console" - }, - { - "source": "/get-started/sql-console/exploring-tables", - "destination": "/products/cloud/features/sql-console-features/sql-console" - }, - { - "source": "/get-started/sql-console/filtering", - "destination": "/products/cloud/features/sql-console-features/sql-console" - }, - { - "source": "/get-started/sql-console/creating", - "destination": "/products/cloud/features/sql-console-features/sql-console" - }, - { - "source": "/get-started/sql-console/advanced", - "destination": "/products/cloud/features/sql-console-features/sql-console" - }, - { - "source": "/get-started/sql-console/visualizing", - "destination": "/products/cloud/features/sql-console-features/sql-console" - }, - { - "source": "/connect-a-ui", - "destination": "/integrations/connectors/data-visualization" - }, - { - "source": "/development/browse_code", - "destination": "/resources/contribute/developer-instruction" - }, - { - "source": "/development/browse-code", - "destination": "/resources/contribute/developer-instruction" - }, - { - "source": "/development/build_cross_arm", - "destination": "/resources/contribute/build-cross-arm" - }, - { - "source": "/development/build_cross_osx", - "destination": "/resources/contribute/build-cross-osx" - }, - { - "source": "/development/build_osx", - "destination": "/resources/contribute/build-osx" - }, - { - "source": "/development/developer_instruction", - "destination": "/resources/contribute/developer-instruction" - }, - { - "source": "/database_engines/", - "destination": "/reference/engines/database-engines" - }, - { - "source": "/engines/database_engines/", - "destination": "/reference/engines/database-engines" - }, - { - "source": "/database_engines/mysql", - "destination": "/reference/engines/database-engines/mysql" - }, - { - "source": "/engines/database_engines/mysql", - "destination": "/reference/engines/database-engines/mysql" - }, - { - "source": "/engines/table_engines", - "destination": "/reference/engines/table-engines" - }, - { - "source": "/operations/table_engines", - "destination": "/reference/engines/table-engines" - }, - { - "source": "/engines/table_engines/integrations", - "destination": "/reference/engines/table-engines/integrations" - }, - { - "source": "/engines/table_engines/integrations/hdfs", - "destination": "/reference/engines/table-engines/integrations/hdfs" - }, - { - "source": "/operations/table_engines/hdfs", - "destination": "/reference/engines/table-engines/integrations/hdfs" - }, - { - "source": "/engines/table_engines/integrations/jdbc", - "destination": "/reference/engines/table-engines/integrations/jdbc" - }, - { - "source": "/operations/table_engines/jdbc", - "destination": "/reference/engines/table-engines/integrations/jdbc" - }, - { - "source": "/engines/table_engines/integrations/kafka", - "destination": "/reference/engines/table-engines/integrations/kafka" - }, - { - "source": "/table_engines/replication", - "destination": "/guides/oss/deployment-and-scaling/examples/1-shard-2-replicas" - }, - { - "source": "/integrations/kafka/kafka-connect-http", - "destination": "/integrations/connectors/data-ingestion/kafka/confluent/kafka-connect-http" - }, - { - "source": "/integrations/kafka/kafka-connect-options", - "destination": "/integrations/connectors/data-ingestion/kafka" - }, - { - "source": "/operations/table_engines/kafka", - "destination": "/reference/engines/table-engines/integrations/kafka" - }, - { - "source": "/integrations/kafka/kafka-intro", - "destination": "/integrations/connectors/data-ingestion/kafka" - }, - { - "source": "/integrations/kafka/kafka-connect-intro", - "destination": "/integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink" - }, - { - "source": "/engines/table_engines/integrations/mysql", - "destination": "/reference/engines/table-engines/integrations/mysql" - }, - { - "source": "/operations/table_engines/mysql", - "destination": "/reference/engines/table-engines/integrations/mysql" - }, - { - "source": "/engines/table_engines/integrations/odbc", - "destination": "/reference/engines/table-engines/integrations/odbc" - }, - { - "source": "/operations/table_engines/odbc", - "destination": "/reference/engines/table-engines/integrations/odbc" - }, - { - "source": "/engines/table-engines/log-family/log-family", - "destination": "/reference/engines/table-engines/log-family" - }, - { - "source": "/engines/table_engines/log_family", - "destination": "/reference/engines/table-engines/log-family" - }, - { - "source": "/engines/table_engines/log_family/log", - "destination": "/reference/engines/table-engines/log-family/log" - }, - { - "source": "/operations/table_engines/log", - "destination": "/reference/engines/table-engines/log-family/log" - }, - { - "source": "/engines/table_engines/log_family/stripelog", - "destination": "/reference/engines/table-engines/log-family/stripelog" - }, - { - "source": "/operations/table_engines/stripelog", - "destination": "/reference/engines/table-engines/log-family/stripelog" - }, - { - "source": "/engines/table_engines/log_family/tinylog", - "destination": "/reference/engines/table-engines/log-family/tinylog" - }, - { - "source": "/operations/table_engines/tinylog", - "destination": "/reference/engines/table-engines/log-family/tinylog" - }, - { - "source": "/engines/table_engines/mergetree_family", - "destination": "/reference/engines/table-engines/mergetree-family" - }, - { - "source": "/engines/table_engines/mergetree_family/aggregatingmergetree", - "destination": "/reference/engines/table-engines/mergetree-family/aggregatingmergetree" - }, - { - "source": "/operations/table_engines/aggregatingmergetree", - "destination": "/reference/engines/table-engines/mergetree-family/aggregatingmergetree" - }, - { - "source": "/engines/table_engines/mergetree_family/collapsingmergetree", - "destination": "/reference/engines/table-engines/mergetree-family/collapsingmergetree" - }, - { - "source": "/operations/table_engines/collapsingmergetree", - "destination": "/reference/engines/table-engines/mergetree-family/collapsingmergetree" - }, - { - "source": "/engines/table_engines/mergetree_family/custom_partitioning_key", - "destination": "/reference/engines/table-engines/mergetree-family/custom-partitioning-key" - }, - { - "source": "/operations/table_engines/custom_partitioning_key", - "destination": "/reference/engines/table-engines/mergetree-family/custom-partitioning-key" - }, - { - "source": "/engines/table_engines/mergetree_family/graphitemergetree", - "destination": "/reference/engines/table-engines/mergetree-family/graphitemergetree" - }, - { - "source": "/operations/table_engines/graphitemergetree", - "destination": "/reference/engines/table-engines/mergetree-family/graphitemergetree" - }, - { - "source": "/engines/table_engines/mergetree_family/replacingmergetree", - "destination": "/reference/engines/table-engines/mergetree-family/replacingmergetree" - }, - { - "source": "/operations/table_engines/replacingmergetree", - "destination": "/reference/engines/table-engines/mergetree-family/replacingmergetree" - }, - { - "source": "/engines/table_engines/mergetree_family/replication", - "destination": "/reference/engines/table-engines/mergetree-family/replication" - }, - { - "source": "/operations/table_engines/replication", - "destination": "/reference/engines/table-engines/mergetree-family/replication" - }, - { - "source": "/engines/table_engines/mergetree_family/summingmergetree", - "destination": "/reference/engines/table-engines/mergetree-family/summingmergetree" - }, - { - "source": "/operations/table_engines/summingmergetree", - "destination": "/reference/engines/table-engines/mergetree-family/summingmergetree" - }, - { - "source": "/engines/table_engines/mergetree_family/versionedcollapsingmergetree", - "destination": "/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree" - }, - { - "source": "/operations/table_engines/versionedcollapsingmergetree", - "destination": "/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree" - }, - { - "source": "/engines/table_engines/special", - "destination": "/reference/engines/table-engines/special" - }, - { - "source": "/engines/table_engines/special/buffer", - "destination": "/reference/engines/table-engines/special/buffer" - }, - { - "source": "/operations/table_engines/buffer", - "destination": "/reference/engines/table-engines/special/buffer" - }, - { - "source": "/engines/table_engines/special/dictionary", - "destination": "/reference/engines/table-engines/special/dictionary" - }, - { - "source": "/operations/table_engines/dictionary", - "destination": "/reference/engines/table-engines/special/dictionary" - }, - { - "source": "/engines/table_engines/special/distributed", - "destination": "/reference/engines/table-engines/special/distributed" - }, - { - "source": "/operations/table_engines/distributed", - "destination": "/reference/engines/table-engines/special/distributed" - }, - { - "source": "/engines/table_engines/special/external_data", - "destination": "/reference/engines/table-engines/special/external-data" - }, - { - "source": "/operations/table_engines/external_data", - "destination": "/reference/engines/table-engines/special/external-data" - }, - { - "source": "/engines/table_engines/special/file", - "destination": "/reference/engines/table-engines/special/file" - }, - { - "source": "/operations/table_engines/file", - "destination": "/reference/engines/table-engines/special/file" - }, - { - "source": "/engines/table_engines/special/generate", - "destination": "/reference/engines/table-engines/special/generate" - }, - { - "source": "/operations/table_engines/generate", - "destination": "/reference/engines/table-engines/special/generate" - }, - { - "source": "/engines/table_engines/special/join", - "destination": "/reference/engines/table-engines/special/join" - }, - { - "source": "/operations/table_engines/join", - "destination": "/reference/engines/table-engines/special/join" - }, - { - "source": "/engines/table_engines/special/memory", - "destination": "/reference/engines/table-engines/special/memory" - }, - { - "source": "/operations/table_engines/memory", - "destination": "/reference/engines/table-engines/special/memory" - }, - { - "source": "/engines/table_engines/special/merge", - "destination": "/reference/engines/table-engines/special/merge" - }, - { - "source": "/operations/table_engines/merge", - "destination": "/reference/engines/table-engines/special/merge" - }, - { - "source": "/engines/table_engines/special/null", - "destination": "/reference/engines/table-engines/special/null" - }, - { - "source": "/operations/table_engines/null", - "destination": "/reference/engines/table-engines/special/null" - }, - { - "source": "/engines/table_engines/special/set", - "destination": "/reference/engines/table-engines/special/set" - }, - { - "source": "/operations/table_engines/set", - "destination": "/reference/engines/table-engines/special/set" - }, - { - "source": "/engines/table_engines/special/url", - "destination": "/reference/engines/table-engines/special/url" - }, - { - "source": "/operations/table_engines/url", - "destination": "/reference/engines/table-engines/special/url" - }, - { - "source": "/engines/table_engines/special/view", - "destination": "/reference/engines/table-engines/special/view" - }, - { - "source": "/operations/table_engines/view", - "destination": "/reference/engines/table-engines/special/view" - }, - { - "source": "/guides/ingest/tab_separated_values", - "destination": "/get-started/sample-datasets/nypd-complaint-data" - }, - { - "source": "/getting_started/example_datasets", - "destination": "/get-started/sample-datasets" - }, - { - "source": "/getting_started/example_datasets/amplab_benchmark", - "destination": "/get-started/sample-datasets/amplab-benchmark" - }, - { - "source": "/getting_started/example_datasets/criteo", - "destination": "/get-started/sample-datasets/criteo" - }, - { - "source": "/getting_started/example_datasets/metrica", - "destination": "/get-started/sample-datasets/anon-web-analytics-metrica" - }, - { - "source": "/getting_started/example_datasets/nyc_taxi", - "destination": "/get-started/sample-datasets/nyc-taxi" - }, - { - "source": "/getting_started/example_datasets/ontime", - "destination": "/get-started/sample-datasets/ontime" - }, - { - "source": "/getting_started/example_datasets/star_schema", - "destination": "/get-started/sample-datasets/star-schema" - }, - { - "source": "/getting_started/example_datasets/wikistat", - "destination": "/get-started/sample-datasets/wikistat" - }, - { - "source": "/getting_started/install", - "destination": "/get-started/setup/self-managed/install" - }, - { - "source": "/operations/requirements", - "destination": "/get-started/setup/self-managed/install" - }, - { - "source": "/getting_started/playground", - "destination": "/get-started/sample-datasets/playground" - }, - { - "source": "/getting_started/tutorial", - "destination": "/get-started/quickstarts/tutorial" - }, - { - "source": "/guide", - "destination": "/products/cloud/guides/cloud-compatibility" - }, - { - "source": "/guides/apply_catboost_model", - "destination": "/reference/functions/regular-functions/other-functions" - }, - { - "source": "/guides/developer/apply-catboost-model", - "destination": "/reference/functions/regular-functions/other-functions" - }, - { - "source": "/commercial/cloud", - "destination": "/products/cloud/getting-started/intro" - }, - { - "source": "/formats", - "destination": "/reference/formats" - }, - { - "source": "/formats/capnproto", - "destination": "/reference/formats" - }, - { - "source": "/formats/csv", - "destination": "/reference/formats" - }, - { - "source": "/formats/csvwithnames", - "destination": "/reference/formats" - }, - { - "source": "/formats/json", - "destination": "/reference/formats" - }, - { - "source": "/formats/jsoncompact", - "destination": "/reference/formats" - }, - { - "source": "/formats/jsoneachrow", - "destination": "/reference/formats" - }, - { - "source": "/formats/native", - "destination": "/reference/formats" - }, - { - "source": "/formats/null", - "destination": "/reference/formats" - }, - { - "source": "/formats/pretty", - "destination": "/reference/formats" - }, - { - "source": "/formats/prettycompact", - "destination": "/reference/formats" - }, - { - "source": "/formats/prettycompactmonoblock", - "destination": "/reference/formats" - }, - { - "source": "/formats/prettynoescapes", - "destination": "/reference/formats" - }, - { - "source": "/formats/prettyspace", - "destination": "/reference/formats" - }, - { - "source": "/formats/rowbinary", - "destination": "/reference/formats" - }, - { - "source": "/formats/tabseparated", - "destination": "/reference/formats" - }, - { - "source": "/formats/tabseparatedraw", - "destination": "/reference/formats" - }, - { - "source": "/formats/tabseparatedwithnames", - "destination": "/reference/formats" - }, - { - "source": "/formats/tabseparatedwithnamesandtypes", - "destination": "/reference/formats" - }, - { - "source": "/formats/tskv", - "destination": "/reference/formats" - }, - { - "source": "/formats/values", - "destination": "/reference/formats" - }, - { - "source": "/formats/vertical", - "destination": "/reference/formats" - }, - { - "source": "/formats/verticalraw", - "destination": "/reference/formats" - }, - { - "source": "/formats/xml", - "destination": "/reference/formats" - }, - { - "source": "/interfaces/http_interface", - "destination": "/integrations/connectors/data-integrations/drivers-and-interfaces/http" - }, - { - "source": "/interfaces/third_party", - "destination": "/integrations/connectors/data-integrations/drivers-and-interfaces/third-party" - }, - { - "source": "/interfaces/third-party/client_libraries", - "destination": "/integrations/language-clients/third-party/client-libraries" - }, - { - "source": "/interfaces/third-party_client_libraries", - "destination": "/integrations/language-clients/third-party/client-libraries" - }, - { - "source": "/interfaces/third-party_gui", - "destination": "/integrations/connectors/tools/gui" - }, - { - "source": "/introduction/distinctive_features", - "destination": "/get-started/about/distinctive-features" - }, - { - "source": "/introduction/features_considered_disadvantages", - "destination": "/get-started/about/distinctive-features" - }, - { - "source": "/introduction/ya_metrika_task", - "destination": "/resources/about/history" - }, - { - "source": "/operations/access_rights", - "destination": "/concepts/features/security/access-rights" - }, - { - "source": "/guides/sre/user-management/access-rights", - "destination": "/concepts/features/security/access-rights" - }, - { - "source": "/operations/configuration_files", - "destination": "/concepts/features/configuration/server-config/configuration-files" - }, - { - "source": "/operations/optimizing_performance", - "destination": "/concepts/features/performance/troubleshoot/sampling-query-profiler" - }, - { - "source": "/operations/optimizing_performance/sampling_query_profiler", - "destination": "/concepts/features/performance/troubleshoot/sampling-query-profiler" - }, - { - "source": "/operations/performance/sampling_query_profiler", - "destination": "/concepts/features/performance/troubleshoot/sampling-query-profiler" - }, - { - "source": "/operations/performance_test", - "destination": "/concepts/features/performance/troubleshoot/performance-test" - }, - { - "source": "/operations/server_configuration_parameters", - "destination": "/reference/settings/server-settings/settings" - }, - { - "source": "/operations/server_settings", - "destination": "/reference/settings/server-settings/settings" - }, - { - "source": "/operations/server_configuration_parameters/settings", - "destination": "/reference/settings/server-settings/settings" - }, - { - "source": "/operations/server_settings/settings", - "destination": "/reference/settings/server-settings/settings" - }, - { - "source": "/operations/settings/constraints_on_settings", - "destination": "/concepts/features/configuration/settings/constraints-on-settings" - }, - { - "source": "/operations/settings/permissions_for_queries", - "destination": "/concepts/features/configuration/settings/permissions-for-queries" - }, - { - "source": "/operations/settings/query_complexity", - "destination": "/concepts/features/configuration/settings/query-complexity" - }, - { - "source": "/operations/settings/settings_profiles", - "destination": "/concepts/features/configuration/settings/settings-profiles" - }, - { - "source": "/operations/settings/settings_users", - "destination": "/concepts/features/configuration/settings/settings-users" - }, - { - "source": "/operations/system_tables", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.asynchronous_metrics", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.clusters", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.columns", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.databases", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.dictionaries", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.events", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.functions", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.merges", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.metrics", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.numbers", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.numbers_mt", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.one", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.parts", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.processes", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.replicas", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.settings", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.tables", - "destination": "/reference/system-tables" - }, - { - "source": "/system_tables/system.zookeeper", - "destination": "/reference/system-tables" - }, - { - "source": "/operations/utils", - "destination": "/concepts/features/tools-and-utilities" - }, - { - "source": "/operations/utils/clickhouse-benchmark", - "destination": "/concepts/features/tools-and-utilities/clickhouse-benchmark" - }, - { - "source": "/operations/utils/clickhouse-local", - "destination": "/concepts/features/tools-and-utilities/clickhouse-local" - }, - { - "source": "/utils", - "destination": "/concepts/features/tools-and-utilities" - }, - { - "source": "/utils/clickhouse-local", - "destination": "/concepts/features/tools-and-utilities/clickhouse-local" - }, - { - "source": "/query_language/agg_functions", - "destination": "/reference/functions/aggregate-functions" - }, - { - "source": "/sql_reference/aggregate_functions", - "destination": "/reference/functions/aggregate-functions" - }, - { - "source": "/query_language/agg_functions/combinators", - "destination": "/reference/functions/aggregate-functions/combinators" - }, - { - "source": "/sql_reference/aggregate_functions/combinators", - "destination": "/reference/functions/aggregate-functions/combinators" - }, - { - "source": "/query_language/agg_functions/parametric_functions", - "destination": "/reference/functions/aggregate-functions/parametric-functions" - }, - { - "source": "/sql_reference/aggregate_functions/parametric_functions", - "destination": "/reference/functions/aggregate-functions/parametric-functions" - }, - { - "source": "/query_language/agg_functions/reference", - "destination": "/reference/functions/aggregate-functions/reference" - }, - { - "source": "/sql_reference/aggregate_functions/reference", - "destination": "/reference/functions/aggregate-functions/reference" - }, - { - "source": "/data_types", - "destination": "/reference/data-types" - }, - { - "source": "/sql_reference/data_types", - "destination": "/reference/data-types" - }, - { - "source": "/data_types/nested_data_structures/aggregatefunction", - "destination": "/reference/data-types/aggregatefunction" - }, - { - "source": "/sql_reference/data_types/aggregatefunction", - "destination": "/reference/data-types/aggregatefunction" - }, - { - "source": "/data_types/array", - "destination": "/reference/data-types/array" - }, - { - "source": "/sql_reference/data_types/array", - "destination": "/reference/data-types/array" - }, - { - "source": "/data_types/boolean", - "destination": "/reference/data-types/boolean" - }, - { - "source": "/sql_reference/data_types/boolean", - "destination": "/reference/data-types/boolean" - }, - { - "source": "/data_types/date", - "destination": "/reference/data-types/date" - }, - { - "source": "/sql_reference/data_types/date", - "destination": "/reference/data-types/date" - }, - { - "source": "/data_types/datetime", - "destination": "/reference/data-types/datetime" - }, - { - "source": "/sql_reference/data_types/datetime", - "destination": "/reference/data-types/datetime" - }, - { - "source": "/data_types/datetime64", - "destination": "/reference/data-types/datetime64" - }, - { - "source": "/sql_reference/data_types/datetime64", - "destination": "/reference/data-types/datetime64" - }, - { - "source": "/data_types/decimal", - "destination": "/reference/data-types/decimal" - }, - { - "source": "/sql_reference/data_types/decimal", - "destination": "/reference/data-types/decimal" - }, - { - "source": "/sql-reference/data-types/domains/overview", - "destination": "/reference/data-types/domains" - }, - { - "source": "/sql_reference/data_types/domains", - "destination": "/reference/data-types/domains" - }, - { - "source": "/sql-reference/data_types/domains/ipv4", - "destination": "/reference/data-types/ipv4" - }, - { - "source": "/data_types/domains/ipv4", - "destination": "/reference/data-types/ipv4" - }, - { - "source": "/sql_reference/data_types/domains/ipv4", - "destination": "/reference/data-types/ipv4" - }, - { - "source": "/sql-reference/data-types/domains/ipv6", - "destination": "/reference/data-types/ipv6" - }, - { - "source": "/data_types/domains/ipv6", - "destination": "/reference/data-types/ipv6" - }, - { - "source": "/sql_reference/data_types/domains/ipv6", - "destination": "/reference/data-types/ipv6" - }, - { - "source": "/data_types/domains/overview", - "destination": "/reference/data-types/domains" - }, - { - "source": "/sql_reference/data_types/domains/overview", - "destination": "/reference/data-types/domains" - }, - { - "source": "/data_types/enum", - "destination": "/reference/data-types/enum" - }, - { - "source": "/sql_reference/data_types/enum", - "destination": "/reference/data-types/enum" - }, - { - "source": "/data_types/fixedstring", - "destination": "/reference/data-types/fixedstring" - }, - { - "source": "/sql_reference/data_types/fixedstring", - "destination": "/reference/data-types/fixedstring" - }, - { - "source": "/data_types/float", - "destination": "/reference/data-types/float" - }, - { - "source": "/sql_reference/data_types/float", - "destination": "/reference/data-types/float" - }, - { - "source": "/data_types/int_uint", - "destination": "/reference/data-types/int-uint" - }, - { - "source": "/sql_reference/data_types/int_uint", - "destination": "/reference/data-types/int-uint" - }, - { - "source": "/data_types/nested_data_structures", - "destination": "/reference/data-types/nested-data-structures" - }, - { - "source": "/sql_reference/data_types/nested_data_structures", - "destination": "/reference/data-types/nested-data-structures" - }, - { - "source": "/data_types/nested_data_structures/nested", - "destination": "/reference/data-types/nested-data-structures" - }, - { - "source": "/sql_reference/data_types/nested_data_structures/nested", - "destination": "/reference/data-types/nested-data-structures" - }, - { - "source": "/data_types/nullable", - "destination": "/reference/data-types/nullable" - }, - { - "source": "/sql_reference/data_types/nullable", - "destination": "/reference/data-types/nullable" - }, - { - "source": "/sql_reference/data_types/simpleaggregatefunction", - "destination": "/reference/data-types/simpleaggregatefunction" - }, - { - "source": "/data_types/special_data_types", - "destination": "/reference/data-types/special-data-types" - }, - { - "source": "/sql_reference/data_types/special_data_types", - "destination": "/reference/data-types/special-data-types" - }, - { - "source": "/data_types/special_data_types/expression", - "destination": "/reference/data-types/special-data-types/expression" - }, - { - "source": "/sql_reference/data_types/special_data_types/expression", - "destination": "/reference/data-types/special-data-types/expression" - }, - { - "source": "/data_types/special_data_types/interval", - "destination": "/reference/data-types/special-data-types/interval" - }, - { - "source": "/sql_reference/data_types/special_data_types/interval", - "destination": "/reference/data-types/special-data-types/interval" - }, - { - "source": "/data_types/special_data_types/nothing", - "destination": "/reference/data-types/special-data-types/nothing" - }, - { - "source": "/sql_reference/data_types/special_data_types/nothing", - "destination": "/reference/data-types/special-data-types/nothing" - }, - { - "source": "/data_types/special_data_types/set", - "destination": "/reference/data-types/special-data-types/set" - }, - { - "source": "/sql_reference/data_types/special_data_types/set", - "destination": "/reference/data-types/special-data-types/set" - }, - { - "source": "/data_types/string", - "destination": "/reference/data-types/string" - }, - { - "source": "/sql_reference/data_types/string", - "destination": "/reference/data-types/string" - }, - { - "source": "/data_types/tuple", - "destination": "/reference/data-types/tuple" - }, - { - "source": "/sql_reference/data_types/tuple", - "destination": "/reference/data-types/tuple" - }, - { - "source": "/data_types/uuid", - "destination": "/reference/data-types/uuid" - }, - { - "source": "/sql_reference/data_types/uuid", - "destination": "/reference/data-types/uuid" - }, - { - "source": "/query_language/dicts", - "destination": "/reference/statements/create/dictionary" - }, - { - "source": "/sql_reference/dictionaries", - "destination": "/reference/statements/create/dictionary" - }, - { - "source": "/sql_reference/dictionaries/external_dictionaries", - "destination": "/reference/statements/create/dictionary" - }, - { - "source": "/query_language/dicts/external_dicts", - "destination": "/reference/statements/create/dictionary" - }, - { - "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts", - "destination": "/reference/statements/create/dictionary" - }, - { - "source": "/query_language/dicts/external_dicts_dict", - "destination": "/reference/statements/create/dictionary" - }, - { - "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict", - "destination": "/reference/statements/create/dictionary" - }, - { - "source": "/query_language/dicts/external_dicts_dict_hierarchical", - "destination": "/reference/statements/create/dictionary/layouts/hierarchical" - }, - { - "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict_hierarchical", - "destination": "/reference/statements/create/dictionary/layouts/hierarchical" - }, - { - "source": "/query_language/dicts/external_dicts_dict_layout", - "destination": "/reference/statements/create/dictionary/layouts/overview" - }, - { - "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict_layout", - "destination": "/reference/statements/create/dictionary/layouts/overview" - }, - { - "source": "/query_language/dicts/external_dicts_dict_lifetime", - "destination": "/reference/statements/create/dictionary/lifetime" - }, - { - "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict_lifetime", - "destination": "/reference/statements/create/dictionary/lifetime" - }, - { - "source": "/query_language/dicts/external_dicts_dict_sources", - "destination": "/reference/statements/create/dictionary/sources/overview" - }, - { - "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict_sources", - "destination": "/reference/statements/create/dictionary/sources/overview" - }, - { - "source": "/query_language/dicts/external_dicts_dict_structure", - "destination": "/reference/statements/create/dictionary/attributes" - }, - { - "source": "/sql_reference/dictionaries/external_dictionaries/external_dicts_dict_structure", - "destination": "/reference/statements/create/dictionary/attributes" - }, - { - "source": "/query_language/dicts/internal_dicts", - "destination": "/reference/statements/create/dictionary/embedded" - }, - { - "source": "/sql_reference/dictionaries/internal_dicts", - "destination": "/reference/statements/create/dictionary/embedded" - }, - { - "source": "/query_language/functions", - "destination": "/reference/functions/regular-functions" - }, - { - "source": "/sql_reference/functions", - "destination": "/reference/functions/regular-functions" - }, - { - "source": "/query_language/functions/arithmetic_functions", - "destination": "/reference/functions/regular-functions/arithmetic-functions" - }, - { - "source": "/sql_reference/functions/arithmetic_functions", - "destination": "/reference/functions/regular-functions/arithmetic-functions" - }, - { - "source": "/query_language/functions/array_functions", - "destination": "/reference/functions/regular-functions/array-functions" - }, - { - "source": "/sql_reference/functions/array_functions", - "destination": "/reference/functions/regular-functions/array-functions" - }, - { - "source": "/query_language/functions/array_join", - "destination": "/reference/functions/regular-functions/array-join" - }, - { - "source": "/sql_reference/functions/array_join", - "destination": "/reference/functions/regular-functions/array-join" - }, - { - "source": "/query_language/functions/bit_functions", - "destination": "/reference/functions/regular-functions/bit-functions" - }, - { - "source": "/sql_reference/functions/bit_functions", - "destination": "/reference/functions/regular-functions/bit-functions" - }, - { - "source": "/query_language/functions/bitmap_functions", - "destination": "/reference/functions/regular-functions/bitmap-functions" - }, - { - "source": "/sql_reference/functions/bitmap_functions", - "destination": "/reference/functions/regular-functions/bitmap-functions" - }, - { - "source": "/query_language/functions/comparison_functions", - "destination": "/reference/functions/regular-functions/comparison-functions" - }, - { - "source": "/sql_reference/functions/comparison_functions", - "destination": "/reference/functions/regular-functions/comparison-functions" - }, - { - "source": "/query_language/functions/conditional_functions", - "destination": "/reference/functions/regular-functions/conditional-functions" - }, - { - "source": "/sql_reference/functions/conditional_functions", - "destination": "/reference/functions/regular-functions/conditional-functions" - }, - { - "source": "/query_language/functions/date_time_functions", - "destination": "/reference/functions/regular-functions/date-time-functions" - }, - { - "source": "/sql_reference/functions/date_time_functions", - "destination": "/reference/functions/regular-functions/date-time-functions" - }, - { - "source": "/query_language/functions/encoding_functions", - "destination": "/reference/functions/regular-functions/encoding-functions" - }, - { - "source": "/sql_reference/functions/encoding_functions", - "destination": "/reference/functions/regular-functions/encoding-functions" - }, - { - "source": "/query_language/functions/ext_dict_functions", - "destination": "/reference/functions/regular-functions/ext-dict-functions" - }, - { - "source": "/sql_reference/functions/ext_dict_functions", - "destination": "/reference/functions/regular-functions/ext-dict-functions" - }, - { - "source": "/query_language/functions/functions_for_nulls", - "destination": "/reference/functions/regular-functions/functions-for-nulls" - }, - { - "source": "/sql_reference/functions/functions_for_nulls", - "destination": "/reference/functions/regular-functions/functions-for-nulls" - }, - { - "source": "/query_language/functions/geo", - "destination": "/reference/functions/regular-functions/geo" - }, - { - "source": "/sql_reference/functions/geo", - "destination": "/reference/functions/regular-functions/geo" - }, - { - "source": "/query_language/functions/hash_functions", - "destination": "/reference/functions/regular-functions/hash-functions" - }, - { - "source": "/sql_reference/functions/hash_functions", - "destination": "/reference/functions/regular-functions/hash-functions" - }, - { - "source": "/query_language/functions/in_functions", - "destination": "/reference/functions/regular-functions/in-functions" - }, - { - "source": "/sql_reference/functions/in_functions", - "destination": "/reference/functions/regular-functions/in-functions" - }, - { - "source": "/query_language/functions/introspection", - "destination": "/reference/functions/regular-functions/introspection" - }, - { - "source": "/sql_reference/functions/introspection", - "destination": "/reference/functions/regular-functions/introspection" - }, - { - "source": "/query_language/functions/ip_address_functions", - "destination": "/reference/functions/regular-functions/ip-address-functions" - }, - { - "source": "/sql_reference/functions/ip_address_functions", - "destination": "/reference/functions/regular-functions/ip-address-functions" - }, - { - "source": "/query_language/functions/json_functions", - "destination": "/reference/functions/regular-functions/json-functions" - }, - { - "source": "/sql_reference/functions/json_functions", - "destination": "/reference/functions/regular-functions/json-functions" - }, - { - "source": "/query_language/functions/logical_functions", - "destination": "/reference/functions/regular-functions/logical-functions" - }, - { - "source": "/sql_reference/functions/logical_functions", - "destination": "/reference/functions/regular-functions/logical-functions" - }, - { - "source": "/query_language/functions/machine_learning_functions", - "destination": "/reference/functions/regular-functions/machine-learning-functions" - }, - { - "source": "/sql_reference/functions/machine_learning_functions", - "destination": "/reference/functions/regular-functions/machine-learning-functions" - }, - { - "source": "/query_language/functions/math_functions", - "destination": "/reference/functions/regular-functions/math-functions" - }, - { - "source": "/sql_reference/functions/math_functions", - "destination": "/reference/functions/regular-functions/math-functions" - }, - { - "source": "/query_language/functions/other_functions", - "destination": "/reference/functions/regular-functions/other-functions" - }, - { - "source": "/sql_reference/functions/other_functions", - "destination": "/reference/functions/regular-functions/other-functions" - }, - { - "source": "/query_language/functions/random_functions", - "destination": "/reference/functions/regular-functions/random-functions" - }, - { - "source": "/sql_reference/functions/random_functions", - "destination": "/reference/functions/regular-functions/random-functions" - }, - { - "source": "/query_language/functions/rounding_functions", - "destination": "/reference/functions/regular-functions/rounding-functions" - }, - { - "source": "/sql_reference/functions/rounding_functions", - "destination": "/reference/functions/regular-functions/rounding-functions" - }, - { - "source": "/query_language/functions/splitting_merging_functions", - "destination": "/reference/functions/regular-functions/splitting-merging-functions" - }, - { - "source": "/sql_reference/functions/splitting_merging_functions", - "destination": "/reference/functions/regular-functions/splitting-merging-functions" - }, - { - "source": "/query_language/functions/string_functions", - "destination": "/reference/functions/regular-functions/string-functions" - }, - { - "source": "/sql_reference/functions/string_functions", - "destination": "/reference/functions/regular-functions/string-functions" - }, - { - "source": "/query_language/functions/string_replace_functions", - "destination": "/reference/functions/regular-functions/string-replace-functions" - }, - { - "source": "/sql_reference/functions/string_replace_functions", - "destination": "/reference/functions/regular-functions/string-replace-functions" - }, - { - "source": "/query_language/functions/string_search_functions", - "destination": "/reference/functions/regular-functions/string-search-functions" - }, - { - "source": "/sql_reference/functions/string_search_functions", - "destination": "/reference/functions/regular-functions/string-search-functions" - }, - { - "source": "/query_language/functions/type_conversion_functions", - "destination": "/reference/functions/regular-functions/type-conversion-functions" - }, - { - "source": "/sql_reference/functions/type_conversion_functions", - "destination": "/reference/functions/regular-functions/type-conversion-functions" - }, - { - "source": "/query_language/functions/url_functions", - "destination": "/reference/functions/regular-functions/url-functions" - }, - { - "source": "/sql_reference/functions/url_functions", - "destination": "/reference/functions/regular-functions/url-functions" - }, - { - "source": "/query_language/functions/uuid_functions", - "destination": "/reference/functions/regular-functions/uuid-functions" - }, - { - "source": "/sql_reference/functions/uuid_functions", - "destination": "/reference/functions/regular-functions/uuid-functions" - }, - { - "source": "/query_language/functions/ym_dict_functions", - "destination": "/reference/functions/regular-functions/embedded-dict-functions" - }, - { - "source": "/sql_reference/functions/ym_dict_functions", - "destination": "/reference/functions/regular-functions/embedded-dict-functions" - }, - { - "source": "/query_language/operators", - "destination": "/reference/operators" - }, - { - "source": "/sql_reference/operators", - "destination": "/reference/operators" - }, - { - "source": "/sql_reference/statements", - "destination": "/reference/statements" - }, - { - "source": "/query_language/alter", - "destination": "/reference/statements/alter" - }, - { - "source": "/sql_reference/statements/alter", - "destination": "/reference/statements/alter" - }, - { - "source": "/sql-reference/statements/alter/index", - "destination": "/reference/statements/alter/skipping-index" - }, - { - "source": "/query_language/create", - "destination": "/reference/statements/create" - }, - { - "source": "/sql_reference/statements/create", - "destination": "/reference/statements/create" - }, - { - "source": "/query_language/insert_into", - "destination": "/reference/statements/insert-into" - }, - { - "source": "/sql_reference/statements/insert_into", - "destination": "/reference/statements/insert-into" - }, - { - "source": "/query_language/misc", - "destination": "/reference/statements" - }, - { - "source": "/sql-reference/statements/misc", - "destination": "/reference/statements" - }, - { - "source": "/sql_reference/statements/misc", - "destination": "/reference/statements" - }, - { - "source": "/query_language/select", - "destination": "/reference/statements/select" - }, - { - "source": "/sql_reference/statements/select", - "destination": "/reference/statements/select" - }, - { - "source": "/query_language/show", - "destination": "/reference/statements/show" - }, - { - "source": "/sql_reference/statements/show", - "destination": "/reference/statements/show" - }, - { - "source": "/query_language/system", - "destination": "/reference/statements/system" - }, - { - "source": "/sql_reference/statements/system", - "destination": "/reference/statements/system" - }, - { - "source": "/query_language/syntax", - "destination": "/reference/syntax" - }, - { - "source": "/sql_reference/syntax", - "destination": "/reference/syntax" - }, - { - "source": "/query_language/table_functions", - "destination": "/reference/functions/table-functions" - }, - { - "source": "/sql_reference/table_functions", - "destination": "/reference/functions/table-functions" - }, - { - "source": "/query_language/table_functions/file", - "destination": "/reference/functions/table-functions/file" - }, - { - "source": "/sql_reference/table_functions/file", - "destination": "/reference/functions/table-functions/file" - }, - { - "source": "/query_language/table_functions/generate", - "destination": "/reference/functions/table-functions/generate" - }, - { - "source": "/sql_reference/table_functions/generate", - "destination": "/reference/functions/table-functions/generate" - }, - { - "source": "/query_language/table_functions/hdfs", - "destination": "/reference/functions/table-functions/hdfs" - }, - { - "source": "/sql_reference/table_functions/hdfs", - "destination": "/reference/functions/table-functions/hdfs" - }, - { - "source": "/query_language/table_functions/input", - "destination": "/reference/functions/table-functions/input" - }, - { - "source": "/sql_reference/table_functions/input", - "destination": "/reference/functions/table-functions/input" - }, - { - "source": "/query_language/table_functions/jdbc", - "destination": "/reference/functions/table-functions/jdbc" - }, - { - "source": "/sql_reference/table_functions/jdbc", - "destination": "/reference/functions/table-functions/jdbc" - }, - { - "source": "/query_language/table_functions/merge", - "destination": "/reference/functions/table-functions/merge" - }, - { - "source": "/sql_reference/table_functions/merge", - "destination": "/reference/functions/table-functions/merge" - }, - { - "source": "/query_language/table_functions/mysql", - "destination": "/reference/functions/table-functions/mysql" - }, - { - "source": "/sql_reference/table_functions/mysql", - "destination": "/reference/functions/table-functions/mysql" - }, - { - "source": "/query_language/table_functions/numbers", - "destination": "/reference/functions/table-functions/numbers" - }, - { - "source": "/sql_reference/table_functions/numbers", - "destination": "/reference/functions/table-functions/numbers" - }, - { - "source": "/query_language/table_functions/odbc", - "destination": "/reference/functions/table-functions/odbc" - }, - { - "source": "/sql_reference/table_functions/odbc", - "destination": "/reference/functions/table-functions/odbc" - }, - { - "source": "/query_language/table_functions/remote", - "destination": "/reference/functions/table-functions/remote" - }, - { - "source": "/sql_reference/table_functions/remote", - "destination": "/reference/functions/table-functions/remote" - }, - { - "source": "/query_language/table_functions/url", - "destination": "/reference/functions/table-functions/url" - }, - { - "source": "/sql_reference/table_functions/url", - "destination": "/reference/functions/table-functions/url" - }, - { - "source": "/whats_new", - "destination": "/resources/changelogs/oss/2026" - }, - { - "source": "/changelog", - "destination": "/resources/changelogs/oss/2026" - }, - { - "source": "/whats_new/changelog", - "destination": "/resources/changelogs/oss/2026" - }, - { - "source": "/changelog/2017", - "destination": "/resources/changelogs/oss/2017" - }, - { - "source": "/whats_new/changelog/2017", - "destination": "/resources/changelogs/oss/2017" - }, - { - "source": "/changelog/2018", - "destination": "/resources/changelogs/oss/2018" - }, - { - "source": "/whats_new/changelog/2018", - "destination": "/resources/changelogs/oss/2018" - }, - { - "source": "/changelog/2019", - "destination": "/resources/changelogs/oss/2019" - }, - { - "source": "/whats_new/changelog/2019", - "destination": "/resources/changelogs/oss/2019" - }, - { - "source": "/extended_roadmap", - "destination": "/resources/contribute/roadmap" - }, - { - "source": "/roadmap", - "destination": "/resources/contribute/roadmap" - }, - { - "source": "/whats_new/roadmap", - "destination": "/resources/contribute/roadmap" - }, - { - "source": "/security_changelog", - "destination": "/resources/changelogs/security-changelog" - }, - { - "source": "/whats_new/security_changelog", - "destination": "/resources/changelogs/security-changelog" - }, - { - "source": "/introduction", - "destination": "/get-started/about/intro" - }, - { - "source": "/introduction/adopters", - "destination": "/resources/about/adopters" - }, - { - "source": "/introduction/distinctive-features", - "destination": "/get-started/about/distinctive-features" - }, - { - "source": "/introduction/history", - "destination": "/resources/about/history" - }, - { - "source": "/introduction/performance", - "destination": "/get-started/about/why-clickhouse-is-so-fast" - }, - { - "source": "/getting-started/tutorial", - "destination": "/get-started/quickstarts/tutorial" - }, - { - "source": "/getting-started/install", - "destination": "/get-started/setup/self-managed/install" - }, - { - "source": "/faq/general/how-do-i-contribute-code-to-clickhouse", - "destination": "/resources/support-center/knowledge-base/general-faqs/how-do-i-contribute-code-to-clickhouse" - }, - { - "source": "/manage/security", - "destination": "/concepts/features/security/configuring-ldap" - }, - { - "source": "/single", - "destination": "/reference/statements/create/view" - }, - { - "source": "/architecture/single-node-deployment", - "destination": "/get-started/setup/self-managed/install" - }, - { - "source": "/home", - "destination": "/" - }, - { - "source": "/chdb/data-formats", - "destination": "/products/chdb/reference/data-formats" - }, - { - "source": "/chdb/sql-reference", - "destination": "/products/chdb/reference/sql-reference" - }, - { - "source": "/get-started/query-endpoints", - "destination": "/products/cloud/guides/sql-console/query-endpoints" - }, - { - "source": "/get-started/query-insights", - "destination": "/products/cloud/features/sql-console-features/query-insights" - }, - { - "source": "/get-started/sql-console", - "destination": "/products/cloud/features/sql-console-features/sql-console" - }, - { - "source": "/manage/billing", - "destination": "/products/cloud/reference/billing/billing-overview" - }, - { - "source": "/cloud/manage/billing/overview#clickpipes-for-streaming-object-storage", - "destination": "/products/cloud/reference/billing/clickpipes/clickpipes-for-streaming-and-object-storage" - }, - { - "source": "/integrations/clickpipes/object-storage", - "destination": "/integrations/clickpipes/object-storage/amazon-s3/get-started" - }, - { - "source": "/integrations/clickpipes/object-storage/reference", - "destination": "/integrations/clickpipes/object-storage/amazon-s3/overview" - }, - { - "source": "/cloud/marketplace", - "destination": "/products/cloud/reference/billing/marketplace" - }, - { - "source": "/deletes", - "destination": "/concepts/operations/delete/overview" - }, - { - "source": "/optimize", - "destination": "/guides/performance-and-monitoring" - }, - { - "source": "/observability", - "destination": "/guides/observability" - }, - { - "source": "/integrations/sql-clients/clickhouse-client-local", - "destination": "/integrations/connectors/data-integrations/drivers-and-interfaces/cli" - }, - { - "source": "/sql-reference/dictionaries/external-dictionaries/external-dict", - "destination": "/reference/statements/create/dictionary/embedded" - }, - { - "source": "/integrations/java/jdbc-driver", - "destination": "/integrations/language-clients/java/jdbc" - }, - { - "source": "/integrations/sql-clients/cli", - "destination": "/integrations/connectors/data-integrations/drivers-and-interfaces/cli" - }, - { - "source": "/operations/clickhouse-keeper", - "destination": "/concepts/features/tools-and-utilities/clickhouse-keeper-client" - }, - { - "source": "/guides/sre/clickhouse-keeper", - "destination": "/guides/oss/deployment-and-scaling/keeper" - }, - { - "source": "/operations/settings/merge-tree", - "destination": "/reference/settings/merge-tree-settings" - }, - { - "source": "/operations/settings/merge-tree-setting", - "destination": "/reference/settings/merge-tree-settings" - }, - { - "source": "/materialized-view", - "destination": "/concepts/features/materialized-views" - }, - { - "source": "/cloud/manage/service-types", - "destination": "/products/cloud/features/cloud-tiers" - }, - { - "source": "/integrations/dlt", - "destination": "/integrations/connectors/data-ingestion/etl-tools/dlt-and-clickhouse" - }, - { - "source": "/cloud/security/cloud-endpoints-api", - "destination": "/products/cloud/guides/sql-console/query-endpoints" - }, - { - "source": "/operations/server-configuration-parameters", - "destination": "/reference/settings/server-settings/settings" - }, - { - "source": "/intron", - "destination": "/get-started/about/intro" - }, - { - "source": "/query_language/functions/string_functions/", - "destination": "/reference/functions/regular-functions/string-functions" - }, - { - "source": "/integrations/language-clients/java/client-v2", - "destination": "/integrations/language-clients/java/client" - }, - { - "source": "/integrations/language-clients/java/jdbc-v2", - "destination": "/integrations/language-clients/java/jdbc" - }, - { - "source": "/pricing", - "destination": "/products/cloud/reference/billing/billing-overview" - }, - { - "source": "/operations/input-output-formats", - "destination": "/reference/formats" - }, - { - "source": "/cloud/connect", - "destination": "/products/cloud/features/sql-console-features/sql-console" - }, - { - "source": "/engines/database-engines/materialized-mysql", - "destination": "/reference/engines/database-engines" - }, - { - "source": "/sql-reference/aggregate-functions/reference/array_concat_agg", - "destination": "/reference/functions/aggregate-functions/reference/groupArrayArray" - }, - { - "source": "/integrations/java/jdbc-v2", - "destination": "/integrations/language-clients/java/jdbc" - }, - { - "source": "/integrations/java/client-v2", - "destination": "/integrations/language-clients/java/jdbc" - }, - { - "source": "/interfaces/formats/Protobuf/Protobuf", - "destination": "/reference/formats/Protobuf/Protobuf" - }, - { - "source": "/integrations/jdbc", - "destination": "/integrations/language-clients/java/jdbc" - }, - { - "source": "/sql-reference/table-functions/generateSeries", - "destination": "/reference/functions/table-functions/generate_series" - }, - { - "source": "/cloud/data-ingestion", - "destination": "/integrations/connectors/data-ingestion" - }, - { - "source": "/migrations/postgres/en/migrations/postgresql", - "destination": "/get-started/setup/migration-guides/postgres/overview" - }, - { - "source": "/sql-reference/data-types/bfloat16", - "destination": "/reference/data-types/float#bfloat16" - }, - { - "source": "/cloud/reference/compute-compute-separation", - "destination": "/products/cloud/features/infrastructure/warehouses#what-is-compute-compute-separation" - }, - { - "source": "/cloud/bestpractices/bulk-inserts", - "destination": "/concepts/best-practices/selecting-an-insert-strategy" - }, - { - "source": "/cloud/bestpractices/asynchronous-inserts", - "destination": "/concepts/best-practices/use-materialized-views" - }, - { - "source": "/cloud/bestpractices/avoid-mutations", - "destination": "/concepts/best-practices/avoid-mutations" - }, - { - "source": "/cloud/bestpractices/avoid-nullable-columns", - "destination": "/concepts/best-practices/select-data-type" - }, - { - "source": "/cloud/bestpractices/avoid-optimize-final", - "destination": "/concepts/best-practices/avoid-optimize-final" - }, - { - "source": "/cloud/bestpractices/low-cardinality-partitioning-key", - "destination": "/concepts/best-practices/partitioning-keys" - }, - { - "source": "/integrations/postgresql/postgres-vs-clickhouse", - "destination": "/get-started/setup/migration-guides/postgres/appendix" - }, - { - "source": "/migrations/postgresql/designing-schemas", - "destination": "/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3" - }, - { - "source": "/category/engines", - "destination": "/reference/engines/engines" - }, - { - "source": "/integrations/postgresql/data-type-mappings", - "destination": "/get-started/setup/migration-guides/postgres/appendix#data-type-mappings" - }, - { - "source": "/operations/system-tables/error_log", - "destination": "/reference/system-tables/error_log" - }, - { - "source": "/engines/table-engines/special/replicatedmergetree", - "destination": "/reference/engines/table-engines/mergetree-family/replication" - }, - { - "source": "/integrations/language-clients/java/jdbc-v1", - "destination": "/integrations/language-clients/java/jdbc" - }, - { - "source": "/engines/table-engines/integrations/google-cloud-storage", - "destination": "/reference/functions/table-functions/gcs" - }, - { - "source": "/getting-started/example-datasets/reddit-comments", - "destination": "/get-started/sample-datasets" - }, - { - "source": "/getting-started/example-datasets/recipes", - "destination": "/get-started/sample-datasets" - }, - { - "source": "/development/adding_test_queries", - "destination": "/resources/contribute/tests#adding-a-new-test" - }, - { - "source": "/cloud/get-started/cloud-quick-start", - "destination": "/get-started/setup/cloud" - }, - { - "source": "/integrations/migration/upload-a-csv-file", - "destination": "/products/cloud/guides/migration/upload-a-csv-file" - }, - { - "source": "/faq/troubleshooting", - "destination": "/resources/support-center/knowledge-base/cloud-services/unable-to-access-cloud-service" - }, - { - "source": "/cloud/manage/jan-2025-faq/summary", - "destination": "/products/cloud/features/cloud-tiers" - }, - { - "source": "/cloud/manage/jan-2025-faq/new-tiers", - "destination": "/products/cloud/features/cloud-tiers" - }, - { - "source": "/cloud/manage/jan-2025-faq/scaling", - "destination": "/products/cloud/features/autoscaling/overview" - }, - { - "source": "/cloud/manage/jan-2025-faq/backup", - "destination": "/products/cloud/guides/backups/review-and-restore-backups" - }, - { - "source": "/cloud/manage/jan-2025-faq/pricing-dimensions", - "destination": "/products/cloud/features/cloud-tiers" - }, - { - "source": "/cloud/manage/jan-2025-faq/billing", - "destination": "/products/cloud/reference/billing" - }, - { - "source": "/cloud/manage/jan-2025-faq", - "destination": "/products/cloud/features/cloud-tiers" - }, - { - "source": "/cloud/manage/jan-2025-faq/plan-migrations", - "destination": "/products/cloud/features/cloud-tiers" - }, - { - "source": "/operations/system-tables/latency_log", - "destination": "/reference/system-tables/histogram_metrics" - }, - { - "source": "/operations/system-tables/latency_buckets", - "destination": "/reference/system-tables/histogram_metrics" - }, - { - "source": "/integrations/kafka/cloud/confluent/custom-connector-cloud", - "destination": "/integrations/connectors/data-ingestion/kafka/confluent/confluent-cloud" - }, - { - "source": "/integrations/data-ingestion/clickpipes/mysql/parallel_initial_load", - "destination": "/integrations/clickpipes/mysql/parallel-initial-load" - }, - { - "source": "/integrations/data-ingestion/clickpipes/postgres/parallel_initial_load", - "destination": "/integrations/clickpipes/postgres/parallel-initial-load" - }, - { - "source": "/integrations/redshift", - "destination": "/get-started/setup/migration-guides/redshift/migration-guide" - }, - { - "source": "/integrations/migration", - "destination": "/get-started/setup/migration-guides/overview" - }, - { - "source": "/cloud/security/security-and-compliance", - "destination": "/products/cloud/reference/security/compliance-overview" - }, - { - "source": "/cloud/manage", - "destination": "/products/cloud/features/admin-features/api" - }, - { - "source": "/migrations/migrations", - "destination": "/get-started/setup/migration-guides/overview" - }, - { - "source": "/cloud/security/personal-data-access", - "destination": "/products/cloud/reference/personal-data-access" - }, - { - "source": "/cloud/security/cloud-access-management/overview", - "destination": "/products/cloud/guides/security/cloud-access-management/manage-database-users" - }, - { - "source": "/cloud/security/cloud-access-management", - "destination": "/products/cloud/guides/security/cloud-access-management" - }, - { - "source": "/cloud/guides/sql-console/config-sql-console-role-assignments", - "destination": "/products/cloud/guides/security/cloud-access-management/manage-sql-console-role-assignments" - }, - { - "source": "/cloud/security/secure-s3", - "destination": "/products/cloud/guides/data-sources/accessing-s3-data-securely" - }, - { - "source": "/manage/security/cloud-endpoints-api", - "destination": "/products/cloud/guides/data-sources/cloud-endpoints-api" - }, - { - "source": "/cloud/security/shared-responsibility-model", - "destination": "/products/cloud/reference/security/console-roles" - }, - { - "source": "/cloud/security/cloud-authentication", - "destination": "/products/cloud/features/security#cloud-console-auth" - }, - { - "source": "/cloud/security/private-link-overview", - "destination": "/products/cloud/guides/security/connectivity/private-networking" - }, - { - "source": "/cloud/security/connectivity", - "destination": "/products/cloud/guides/security/connectivity/private-networking" - }, - { - "source": "/cloud/guides/sql-console/configure-org-service-role-assignments", - "destination": "/products/cloud/guides/security/cloud-access-management" - }, - { - "source": "/operations/system-tables/crash-log", - "destination": "/reference/system-tables/crash_log" - }, - { - "source": "/operations/system-tables/current-roles", - "destination": "/reference/system-tables/current_roles" - }, - { - "source": "/operations/system-tables/enabled-roles", - "destination": "/reference/system-tables/enabled_roles" - }, - { - "source": "/operations/system-tables/role-grants", - "destination": "/reference/system-tables/role_grants" - }, - { - "source": "/cloud/reference/byoc", - "destination": "/products/cloud/guides/infrastructure/deployment-options/byoc/overview" - }, - { - "source": "/about-clickhouse", - "destination": "/get-started/about/intro" - }, - { - "source": "/cloud/security/inviting-new-users", - "destination": "/products/cloud/guides/security/cloud-access-management/manage-cloud-users#invite-users" - }, - { - "source": "/sql-reference/functions/time-series-analysis-functions", - "destination": "/reference/functions/regular-functions/time-series-functions" - }, - { - "source": "/use-cases/observability/clickstack/ingesting-data/kubernetes", - "destination": "/products/clickstack/integration-examples/kubernetes" - }, - { - "source": "/operations/backup", - "destination": "/concepts/features/backup-restore/overview" - }, - { - "source": "/sql-reference/data-types/object-data-type", - "destination": "/reference/data-types/newjson" - }, - { - "source": "/about-us/faq", - "destination": "/resources/support-center/knowledge-base/general-faqs/faq-index" - }, - { - "source": "/engines/table-engines/mergetree-family/invertedindexes", - "destination": "/reference/engines/table-engines/mergetree-family/textindexes" - }, - { - "source": "/guides/sre/configuring-ssl", - "destination": "/concepts/features/security/tls/configuring-tls" - }, - { - "source": "/use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud", - "destination": "/products/clickstack/deployment/managed" - }, - { - "source": "/use-cases/observability/clickstack/demo-days/2026/04/03-04-2026", - "destination": "/products/clickstack/demo-days/2026/2026-04-03" - }, - { - "source": "/use-cases/observability/clickstack/demo-days/2026/04/10-04-2026", - "destination": "/products/clickstack/demo-days/2026/2026-04-10" - }, - { - "source": "/cloud/security/compliance/hipaa-onboarding#deploy-hippa-services", - "destination": "/products/cloud/guides/security/compliance/hipaa-onboarding#deploy-hipaa-services" - }, - { - "source": "/operations/compression_codecs", - "destination": "/reference/statements/create/table#column_compression_codec" - }, - { - "source": "/operations/server-configuration-parameters/users", - "destination": "/concepts/features/configuration/settings/settings-users" - }, - { - "source": "/operations/performance", - "destination": "/concepts/features/performance/troubleshoot/sampling-query-profiler" - }, - { - "source": "/operations/access-rights/users", - "destination": "/concepts/features/security/access-rights" - }, - { - "source": "/operations/resource-management/resource_pools", - "destination": "/concepts/features/configuration/server-config/workload-scheduling" - }, - { - "source": "/whats-new", - "destination": "/resources/changelogs/oss/2026" - }, - { - "source": "/whats-new/TODO", - "destination": "/resources/changelogs/oss/2026" - }, - { - "source": "/whats-new/cloud", - "destination": "/resources/changelogs/cloud" - }, - { - "source": "/cloud/reference/byoc/faq/:path*", - "destination": "/products/bring-your-own-cloud/reference/faq" - }, - { - "source": "/about-quotas-and-query-complexity", - "destination": "/resources/support-center/knowledge-base/configuration-settings/about-quotas-and-query-complexity" - }, - { - "source": "/integrations/dbt/materialized-views", - "destination": "/integrations/connectors/data-ingestion/etl-tools/dbt/materialization-materialized-view" - }, - { - "source": "/managing-data/update_mutations", - "destination": "/reference/statements/alter/update" - }, - { - "source": "/sql-reference/formats", - "destination": "/reference/formats" - } - ], "contextual": { "options": [ "copy", @@ -6217,5 +188,8 @@ "cursor", "vscode" ] + }, + "redirects": { + "$ref": "_site/redirects.json" } } diff --git a/get-started/quickstarts/_prerequisites/cloud_prerequisite.mdx b/get-started/quickstarts/_prerequisites/cloud_prerequisite.mdx deleted file mode 100644 index 7b44de98..00000000 --- a/get-started/quickstarts/_prerequisites/cloud_prerequisite.mdx +++ /dev/null @@ -1,3 +0,0 @@ -To successfully follow this guide, you'll need the following: - -- A running ClickHouse Cloud service. If you don't have one yet, complete the [Create your first Cloud service](/get-started/quickstarts/create-your-first-service-on-cloud) quickstart first. \ No newline at end of file diff --git a/get-started/sample-datasets/index.mdx b/get-started/sample-datasets/index.mdx deleted file mode 100644 index a4322656..00000000 --- a/get-started/sample-datasets/index.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -description: 'Get started with ClickHouse using our tutorials and example datasets' -keywords: ['clickhouse', 'install', 'tutorial', 'sample', 'datasets'] -sidebarTitle: 'Overview' -slug: /getting-started/example-datasets/ -title: 'Tutorials and example datasets' -doc_type: 'landing-page' ---- - - -These tutorials work with any ClickHouse deployment, including [ClickHouse Cloud](/get-started/setup/cloud). - - -We have a lot of resources for helping you get started and learn how ClickHouse works: - -- If you need to get ClickHouse up and running, check out our [Quick Start](/get-started/setup/overview) -- The [ClickHouse Tutorial](/get-started/quickstarts/tutorial) analyzes a dataset of New York City taxi rides - -In addition, the sample datasets provide a great experience on working with ClickHouse, -learning important techniques and tricks, and seeing how to take advantage of the many powerful -functions in ClickHouse. The sample datasets include: - -{/* The following table is automatically generated at build time -by https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh */} - -{/*AUTOGENERATED_START*/} -| Page | Description | -|-----|-----| -| [Amazon customer review](/get-started/sample-datasets/amazon-reviews) | Over 150M customer reviews of Amazon products | -| [AMPLab Big Data Benchmark](/get-started/sample-datasets/amplab-benchmark) | A benchmark dataset used for comparing the performance of data warehousing solutions. | -| [Analyzing Stack Overflow data with ClickHouse](/get-started/sample-datasets/stackoverflow) | Analyzing Stack Overflow data with ClickHouse | -| [Anonymized web analytics](/get-started/sample-datasets/anon-web-analytics-metrica) | Dataset consisting of two tables containing anonymized web analytics data with hits and visits | -| [Brown University Benchmark](/get-started/sample-datasets/brown-benchmark) | A new analytical benchmark for machine-generated log data | -| [COVID-19 open data](/get-started/sample-datasets/covid19) | COVID-19 Open-Data is a large, open-source database of COVID-19 epidemiological data and related factors like demographics, economics, and government responses | -| [dbpedia dataset](/get-started/sample-datasets/dbpedia) | Dataset containing 1 million articles from Wikipedia and their vector embeddings | -| [Environmental sensors data](/get-started/sample-datasets/environmental-sensors) | Over 20 billion records of data from Sensor.Community, a contributors-driven global sensor network that creates Open Environmental Data. | -| [Foursquare places](/get-started/sample-datasets/foursquare-os-places) | Dataset with over 100 million records containing information about places on a map, such as shops, restaurants, parks, playgrounds, and monuments. | -| [Geo data using the cell tower dataset](/get-started/sample-datasets/cell-towers) | Learn how to load OpenCelliD data into ClickHouse, connect Apache Superset to ClickHouse and build a dashboard based on data | -| [GitHub events dataset](/get-started/sample-datasets/github-events) | Dataset containing all events on GitHub from 2011 to Dec 6 2020, with a size of 3.1 billion records. | -| [Hacker News dataset](/get-started/sample-datasets/hacker-news) | Dataset containing 28 million rows of hacker news data. | -| [Hacker News vector search dataset](/get-started/sample-datasets/hacker-news-vector-search) | Dataset containing 28+ million Hacker News postings & their vector embeddings | -| [LAION 5B dataset](/get-started/sample-datasets/laion5b) | Dataset containing 100 million vectors from the LAION 5B dataset | -| [Laion-400M dataset](/get-started/sample-datasets/laion) | Dataset containing 400 million images with English image captions | -| [New York Public Library "What's on the Menu?" dataset](/get-started/sample-datasets/menus) | Dataset containing 1.3 million records of historical data on the menus of hotels, restaurants and cafes with the dishes along with their prices. | -| [New York taxi data](/get-started/sample-datasets/nyc-taxi) | Data for billions of taxi and for-hire vehicle (Uber, Lyft, etc.) trips originating in New York City since 2009 | -| [NOAA Global Historical Climatology Network](/get-started/sample-datasets/noaa) | 2.5 billion rows of climate data for the last 120 yrs | -| [NYPD complaint data](/get-started/sample-datasets/nypd-complaint-data) | Ingest and query Tab Separated Value data in 5 steps | -| [OnTime](/get-started/sample-datasets/ontime) | Dataset containing the on-time performance of airline flights | -| [Star Schema Benchmark (SSB, 2009)](/get-started/sample-datasets/star-schema) | The Star Schema Benchmark (SSB) data set and queries | -| [Taiwan historical weather datasets](/get-started/sample-datasets/tw-weather) | 131 million rows of weather observation data for the last 128 yrs | -| [Terabyte click logs from Criteo](/get-started/sample-datasets/criteo) | A terabyte of click logs from Criteo | -| [The UK property prices dataset](/get-started/sample-datasets/uk-price-paid) | Learn how to use projections to improve the performance of queries that you run frequently using the UK property dataset, which contains data about prices paid for real-estate property in England and Wales | -| [TPC-DS (2012)](/get-started/sample-datasets/tpcds) | The TPC-DS benchmark data set and queries. | -| [TPC-H (1999)](/get-started/sample-datasets/tpch) | The TPC-H benchmark data set and queries. | -| [WikiStat](/get-started/sample-datasets/wikistat) | Explore the WikiStat dataset containing 0.5 trillion records. | -| [Writing queries in ClickHouse using GitHub data](/get-started/sample-datasets/github) | Dataset containing all of the commits and changes for the ClickHouse repository | -| [YouTube dataset of dislikes](/get-started/sample-datasets/youtube-dislikes) | A collection of dislikes of YouTube videos. | -{/*AUTOGENERATED_END*/} diff --git a/get-started/setup/migration-guides/bigquery/index.mdx b/get-started/setup/migration-guides/bigquery/index.mdx deleted file mode 100644 index d37271ff..00000000 --- a/get-started/setup/migration-guides/bigquery/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -slug: /migrations/bigquery -title: 'BigQuery' -description: 'Landing page for the BigQuery migrations section' -keywords: ['BigQuery', 'migration'] -doc_type: 'landing-page' ---- - -In this section of the docs, learn more about the similarities and differences between BigQuery and ClickHouse Cloud, as well as why you might want to migrate and how to do so. - -| Page | Description | -|-----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| -| [BigQuery vs ClickHouse Cloud](/get-started/setup/migration-guides/bigquery/overview) | The way resources are organized in ClickHouse Cloud is similar to BigQuery's resource hierarchy. We describe the specific differences in this article. | -| [Migrating from BigQuery to ClickHouse Cloud](/get-started/setup/migration-guides/bigquery/migrating-to-clickhouse-cloud) | Learn about why you might want to migrate from BigQuery to ClickHouse Cloud. | -| [Loading Data](/get-started/setup/migration-guides/bigquery/loading-data) | A guide showing you how to migrate data from BigQuery to ClickHouse. | diff --git a/get-started/setup/migration-guides/overview.mdx b/get-started/setup/migration-guides/overview.mdx deleted file mode 100644 index e40768d0..00000000 --- a/get-started/setup/migration-guides/overview.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebarTitle: 'Overview' -slug: /integrations/migration/overview -keywords: ['clickhouse', 'migrate', 'migration', 'migrating', 'data'] -title: 'Migrating Data into ClickHouse' -description: 'Page describing the options available for migrating data into ClickHouse' -doc_type: 'guide' ---- - -
    - - - -
    - -
    - -There are several options for migrating data into ClickHouse Cloud, depending on where your data resides now: - -- [Self-managed to Cloud](/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud): use the `remoteSecure` function to transfer data -- [Another DBMS](/get-started/setup/migration-guides/other-methods/clickhouse-local-etl): use the [clickhouse-local] ETL tool along with the appropriate ClickHouse table function for your current DBMS -- [Anywhere!](/get-started/setup/migration-guides/other-methods/etl-tool-to-clickhouse): use one of the many popular ETL/ELT tools that connect to all kinds of different data sources -- [Object Storage](/get-started/setup/migration-guides/other-methods/object-storage-to-clickhouse): easily insert data from S3 into ClickHouse - -In the example [Migrate from Redshift](/get-started/setup/migration-guides/redshift/migration-guide), we present three different ways to migrate data to ClickHouse. diff --git a/get-started/setup/migration-guides/postgres/index.mdx b/get-started/setup/migration-guides/postgres/index.mdx deleted file mode 100644 index bda8ca60..00000000 --- a/get-started/setup/migration-guides/postgres/index.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -slug: /migrations/postgresql -title: 'PostgreSQL' -description: 'Landing page for the PostgreSQL migrations section' -doc_type: 'landing-page' -keywords: ['PostgreSQL migration', 'database migration', 'ClickHouse migration', 'CDC replication', 'data migration'] ---- - -| Page | Description | -|----------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Overview](/get-started/setup/migration-guides/postgres/overview) | Introduction page for this section | -| [Connecting to PostgreSQL](/integrations/connectors/data-ingestion/postgresql/connecting-to-postgresql) | This page covers the following options for integrating PostgreSQL with ClickHouse: ClickPipes, PeerDB, PostgreSQL table engine, MaterializedPostgreSQL database engine. | -| [Migrating data](/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part1) | Part 1 of a guide on migrating from PostgreSQL to ClickHouse. Using a practical example, it demonstrates how to efficiently carry out the migration with a real-time replication (CDC) approach. Many of the concepts covered are also applicable to manual bulk data transfers from PostgreSQL to ClickHouse. | -|[Rewriting PostgreSQL Queries](/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part2)|Part 2 of a guide on migrating from PostgreSQL to ClickHouse. Using a practical example, it demonstrates how to efficiently carry out the migration with a real-time replication (CDC) approach. Many of the concepts covered are also applicable to manual bulk data transfers from PostgreSQL to ClickHouse.| -|[Data modeling techniques](/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3)|Part 3 of a guide on migrating from PostgreSQL to ClickHouse. Using a practical example, it demonstrates how to model data in ClickHouse if migrating from PostgreSQL.| -|[Appendix](/get-started/setup/migration-guides/postgres/appendix)|Additional information relevant to migrating from PostgreSQL| diff --git a/get-started/setup/overview.mdx b/get-started/setup/overview.mdx deleted file mode 100644 index 43da4ed2..00000000 --- a/get-started/setup/overview.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -slug: /getting-started/quick-start -title: 'Setup' -sidebarTitle: 'Overview' -description: 'Choose how to run ClickHouse — Cloud, self-managed, or migrate from another database.' -doc_type: 'landing-page' -keywords: ['setup', 'install', 'cloud', 'self-managed', 'migration'] ---- - -Pick the path that matches how you want to run ClickHouse. - - - - Spin up a managed ClickHouse service in minutes — no infrastructure to operate. - - - Install and run ClickHouse on your own infrastructure: Linux, macOS, Windows, Docker, or Kubernetes. - - - Move data into ClickHouse from PostgreSQL, BigQuery, Snowflake, Redshift, Elasticsearch, and more. - - \ No newline at end of file diff --git a/get-started/setup/self-managed/install.mdx b/get-started/setup/self-managed/install.mdx deleted file mode 100644 index db1fbdfb..00000000 --- a/get-started/setup/self-managed/install.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -description: 'Install ClickHouse' -keywords: ['clickhouse', 'install', 'getting started', 'quick start'] -sidebarTitle: 'Install' -slug: /install -title: 'Install ClickHouse' -doc_type: 'guide' ---- - -import InstallSelector from "/snippets/components/Install/Install.jsx"; -import CLIInstall from '/snippets/_cli_install.mdx'; -import Windows from '/snippets/_windows_install.mdx'; -import TarProd from '/snippets/_linux_tar_install.mdx'; -import QuickInstall from '/snippets/_quick_install.mdx'; -import DebianProd from '/snippets/_deb_install.mdx'; -import RPMProd from '/snippets/_rpm_install.mdx'; -import MacOSProd from '/snippets/_macos.mdx'; -import NixOS from '/snippets/_nixos_install.mdx'; -import Docker from '/snippets/_docker.mdx'; - -import {galaxyOnClick} from "/snippets/lib/galaxy.jsx"; - -# Installation instructions - - - Start building instantly without having to size and scale your cluster. We take care of sizing, scaling - , security, reliability and upgrades. - -
    - -Alternatively, select a platform, distribution and install method below to view install -instructions for Opensource ClickHouse: - -} - windows={} - quickinstall={} - debian_prod={} - rpm_prod={} - tar_prod={} - macos_prod={} - nixos={} - docker={} -/> - diff --git a/get-started/setup/self-managed/quick-install.mdx b/get-started/setup/self-managed/quick-install.mdx deleted file mode 100644 index d7244075..00000000 --- a/get-started/setup/self-managed/quick-install.mdx +++ /dev/null @@ -1,83 +0,0 @@ ---- -description: 'Quickly install ClickHouse using the CLI or curl' -keywords: ['ClickHouse', 'install', 'quick', 'curl', 'clickhousectl', 'CLI'] -sidebarTitle: 'Quick install' -slug: /install/quick-install -title: 'Quick install' -hide_title: true -doc_type: 'guide' ---- - -import QuickInstall from '/snippets/_quick_install.mdx'; - -If you don't need to install ClickHouse for production, the quickest way to get -set up is using the ClickHouse CLI or running an install script using curl. - - - - -The ClickHouse CLI (`clickhousectl`) helps you install and manage local ClickHouse -versions, launch servers, and run queries. - - - -## Install the ClickHouse CLI {#install-the-cli} - -```bash -curl https://clickhouse.com/cli | sh -``` - -A `chctl` alias is also created automatically for convenience. - - -## Install ClickHouse {#install-clickhouse} - -```bash -clickhousectl local install stable -``` - - -## Start clickhouse-server {#start-clickhouse-server} - -```bash -clickhousectl local server start -``` - -The server runs in the background. To verify it's running: - -```bash -clickhousectl local server list -``` - - -## Start clickhouse-client {#start-clickhouse-client} - -```bash -clickhousectl local client -``` - -You will see something like this: - -```response -ClickHouse client version 24.5.1.117 (official build). -Connecting to localhost:9000 as user default. -Connected to ClickHouse server version 24.5.1. - -local-host :) -``` - -You're now ready to start sending SQL commands to ClickHouse! - - -The [Quick Start](/get-started/setup/overview) walks you through the steps for creating tables and inserting data. - - - - - - - - - - - diff --git a/guides/ai-ml/MCP/ai-agent-libraries/index.mdx b/guides/ai-ml/MCP/ai-agent-libraries/index.mdx deleted file mode 100644 index ecd59a20..00000000 --- a/guides/ai-ml/MCP/ai-agent-libraries/index.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -slug: /use-cases/AI/MCP/ai-agent-libraries -title: 'Integrate AI agent libraries with ClickHouse MCP server' -description: 'Learn how to build an AI agent with DSPy and the ClickHouse MCP server' -keywords: ['ClickHouse', 'Agno', 'Chainlit', 'MCP', 'DSPy', 'LangChain', 'LlamaIndex', 'OpenAI agents', 'PydanticAI', 'SlackBot', 'StreamLit'] -doc_type: 'guide' ---- - -{/*AUTOGENERATED_START*/} -| Page | Description | -|-----|-----| -| [How to build a ClickHouse-backed AI Agent with Streamlit](/guides/ai-ml/MCP/ai-agent-libraries/streamlit) | Learn how to build a web-based AI Agent with Streamlit and the ClickHouse MCP server | -| [How to build a LangChain/LangGraph AI agent using ClickHouse MCP server.](/guides/ai-ml/MCP/ai-agent-libraries/langchain) | Learn how to build a LangChain/LangGraph AI agent that can interact with ClickHouse's SQL playground using ClickHouse's MCP server. | -| [How to build a LlamaIndex AI agent using ClickHouse MCP server.](/guides/ai-ml/MCP/ai-agent-libraries/llamaindex) | Learn how to build a LlamaIndex AI agent that can interact with ClickHouse MCP server. | -| [How to build a PydanticAI agent using ClickHouse MCP server.](/guides/ai-ml/MCP/ai-agent-libraries/pydantic-ai) | Learn how to build a PydanticAI agent that can interact with ClickHouse MCP server. | -| [How to build a SlackBot agent using ClickHouse MCP server.](/guides/ai-ml/MCP/ai-agent-libraries/slackbot) | Learn how to build a SlackBot agent that can interact with ClickHouse MCP server. | -| [How to build an AI Agent with Agno and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/agno) | Learn how build an AI Agent with Agno and the ClickHouse MCP server | -| [How to build an AI Agent with Chainlit and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/chainlit) | Learn how to use Chainlit to build LLM-based chat apps together with the ClickHouse MCP server | -| [How to build an AI Agent with Claude Agent SDK and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/claude-agent-sdk) | Learn how build an AI Agent with Claude Agent SDK and the ClickHouse MCP server | -| [How to build an AI Agent with CopilotKit and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/copilotkit) | Learn how to build an agentic application using data stored in ClickHouse with ClickHouse MCP and CopilotKit | -| [How to build an AI Agent with CrewAI and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/crewai) | Learn how build an AI Agent with CrewAI and the ClickHouse MCP server | -| [How to build an AI Agent with DSPy and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/dspy) | Learn how to build an AI agent with DSPy and the ClickHouse MCP server | -| [How to build an AI Agent with mcp-agent and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/mcp-agent) | Learn how build an AI Agent with mcp-agent and the ClickHouse MCP server | -| [How to build an AI Agent with Microsoft Agent framework and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/microsoft-agent-framework) | Learn how build an AI Agent with Microsoft Agent framework and the ClickHouse MCP server | -| [How to build an AI Agent with Upsonic and the ClickHouse MCP server](/guides/ai-ml/MCP/ai-agent-libraries/upsonic) | Learn how build an AI Agent with Upsonic and the ClickHouse MCP server | -| [How to build an OpenAI agent using ClickHouse MCP server.](/guides/ai-ml/MCP/ai-agent-libraries/openai-agents) | Learn how to build an OpenAI agent that can interact with ClickHouse MCP server. | -{/*AUTOGENERATED_END*/} - diff --git a/guides/ai-ml/index.mdx b/guides/ai-ml/index.mdx deleted file mode 100644 index 70644854..00000000 --- a/guides/ai-ml/index.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -description: 'Landing page for Machine Learning and GenAI use case guides' -slug: /use-cases/AI/ask-ai -title: 'Machine learning and GenAI' -keywords: ['machine learning', 'genAI', 'AI'] -doc_type: 'landing-page' ---- - -ClickHouse is ideally suited as a real-time database to power Machine Learning workloads. -With ClickHouse, it's easier than ever to unleash GenAI on your analytics data. -In this section, you'll find some guides around how ClickHouse is used for -Machine Learning and GenAI. - -| Section | Description | -| ------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | -| [AI chat](/use-cases/ai-ml/aichat/using-ai-chat) | This guide explains how to enable and use the AI Chat feature in the ClickHouse Cloud Console. | -| [Semantic Layer](/use-cases/ai-ml/aichat/customizing-semantic-layer) | Learn how to customize the ClickHouse Assistant chat agent with AGENTS.md to provide business-specific rules, calculations, and data structure guidance. | -| [MCP](/guides/ai-ml/MCP) | A collection of guides to get you setup using Model Context Protocol (MCP) with ClickHouse | -| [AI-powered SQL generation](/guides/ai-ml/ai-powered-sql-generation) | This feature allows you to describe your data requirements in plain text, which the system then translates into corresponding SQL statements. | diff --git a/guides/cloud-oss/data-modelling/index.mdx b/guides/cloud-oss/data-modelling/index.mdx deleted file mode 100644 index e56071e6..00000000 --- a/guides/cloud-oss/data-modelling/index.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -slug: /data-modeling/overview -title: 'Data modelling overview' -description: 'Overview of Data Modelling' -keywords: ['data modelling', 'schema design', 'dictionary', 'materialized view', 'data compression', 'denormalizing data'] -doc_type: 'landing-page' ---- - -This section is about data modeling in ClickHouse and contains the following topics: - -| Page | Description | -|-----------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Schema Design](/guides/cloud-oss/data-modelling/schema-design) | Discusses ClickHouse schema design for optimal performance, considering factors like queries, data updates, latency, and volume. | -| [Dictionary](/concepts/features/dictionaries) | An explainer on how to define and use dictionaries to improve query performance and enrich data. | -| [Materialized Views](/concepts/features/materialized-views) | Information on Materialized Views and Refreshable Materialized Views in ClickHouse. | -| [Projections](/concepts/features/projections/projections)| Information on Projections in ClickHouse.| -| [Data Compression](/guides/cloud-oss/data-modelling/compression/compression-in-clickhouse) | Discusses various compression modes in ClickHouse and how to optimize data storage and query performance by choosing the right compression method for your specific data types and workloads. | -| [Denormalizing Data](/guides/cloud-oss/data-modelling/denormalization) | Discusses the denormalization approach used in ClickHouse which aims to improve query performance by storing related data in a single table. | diff --git a/guides/cloud-oss/examples/aggregate-function-combinators/maxSimpleState.mdx b/guides/cloud-oss/examples/aggregate-function-combinators/maxSimpleState.mdx deleted file mode 100644 index 5ddfcdd6..00000000 --- a/guides/cloud-oss/examples/aggregate-function-combinators/maxSimpleState.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -slug: '/examples/aggregate-function-combinators/maxSimpleState' -title: 'maxSimpleState' -description: 'Example of using the maxSimpleState combinator' -keywords: ['max', 'state', 'simple', 'combinator', 'examples', 'maxSimpleState'] -sidebarTitle: 'maxSimpleState' -doc_type: 'reference' ---- - -## Description {#description} - -The [`SimpleState`](/reference/functions/aggregate-functions/combinators#-simplestate) combinator can be applied to the [`max`](/reference/functions/aggregate-functions/reference/max) -function to return the maximum value across all input values. It returns the -result with type `SimpleAggregateState`. - -## Example usage {#example-usage} - -The example given in [`minSimpleState`](/guides/cloud-oss/examples/aggregate-function-combinators/minSimpleState#example-usage) -demonstrates a usage of both `maxSimpleState` and `minSimpleState`. - -## See also {#see-also} -- [`max`](/reference/functions/aggregate-functions/reference/max) -- [`SimpleState combinator`](/reference/functions/aggregate-functions/combinators#-simplestate) -- [`SimpleAggregateFunction type`](/reference/data-types/simpleaggregatefunction) diff --git a/guides/cloud/index.mdx b/guides/cloud/index.mdx deleted file mode 100644 index cc949387..00000000 --- a/guides/cloud/index.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -slug: /guides/cloud -title: 'ClickHouse Cloud guides' -description: 'Landing page for guides specific to ClickHouse Cloud' -keywords: ['cloud', 'clickhouse cloud', 'guides', 'how-to', 'best practices'] -doc_type: 'landing-page' ---- - -This section contains guides specific to ClickHouse Cloud: - -| Page | Description | -|------|-------------| -| [Cloud compatibility](/products/cloud/guides/cloud-compatibility) | Differences and compatibility considerations between ClickHouse Cloud and self-managed ClickHouse. | -| [Production readiness](/products/cloud/guides/production-readiness) | Checklist for taking a ClickHouse Cloud service to production. | -| [Multitenancy best practices](/products/cloud/guides/best-practices/multitenancy) | Patterns for serving multiple tenants from a single ClickHouse Cloud service. | -| [Usage limits](/products/cloud/guides/best-practices/usagelimits) | Service-level usage limits and how to plan around them. | -| [Upload a CSV file](/products/cloud/guides/migration/upload-a-csv-file) | Load data into ClickHouse Cloud from a local CSV file. | -| [OSS to Cloud backup/restore](/products/cloud/guides/migration/oss-to-cloud-backup-restore) | Migrate from self-managed ClickHouse to ClickHouse Cloud using backup/restore. | -| [SQL console connection details](/products/cloud/guides/sql-console/connection-details) | Connect to your ClickHouse Cloud service from the SQL console. | -| [Query endpoints](/products/cloud/guides/sql-console/query-endpoints) | Expose saved queries as HTTP endpoints. | -| [Review and restore backups](/products/cloud/guides/backups/review-and-restore-backups) | Review backup status and restore a service from a backup. | -| [Configurable backups](/products/cloud/guides/backups/configurable-backups) | Configure backup frequency and retention. | -| [Accessing S3 data securely](/products/cloud/guides/data-sources/accessing-s3-data-securely) | Use role-based access to read S3 data from ClickHouse Cloud. | -| [Cloud endpoints API](/products/cloud/guides/data-sources/cloud-endpoints-api) | Programmatically manage Cloud endpoints. | \ No newline at end of file diff --git a/guides/data-modelling/deleting-data/index.mdx b/guides/data-modelling/deleting-data/index.mdx deleted file mode 100644 index bdcde331..00000000 --- a/guides/data-modelling/deleting-data/index.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -slug: /managing-data/deleting-data/overview -title: 'Deleting Data' -description: 'How to delete data in ClickHouse Table Of Contents' -keywords: ['delete', 'truncate', 'drop', 'lightweight delete'] -doc_type: 'guide' ---- - -In this section of the documentation, -we will explore how to delete data in ClickHouse. - -| Page | Description | -|-------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------| -| [Overview](/concepts/operations/delete/overview) | Provides an overview of the various ways to delete data in ClickHouse. | -| [Lightweight deletes](/concepts/operations/delete/lightweight-delete) | Learn how to use the Lightweight Delete to delete data. | -| [Delete mutations](/concepts/operations/delete/delete-mutations) |Learn about Delete Mutations. | -| [Truncate table](/concepts/operations/delete/truncate) | Learn about how to use Truncate, which allows the data in a table or database to be removed, while preserving its existence. | -| [Drop partitions](/concepts/operations/delete/drop-partition) | Learn about Dropping Partitions in ClickHouse. | diff --git a/guides/data-warehousing/index.mdx b/guides/data-warehousing/index.mdx deleted file mode 100644 index dff5b3d6..00000000 --- a/guides/data-warehousing/index.mdx +++ /dev/null @@ -1,62 +0,0 @@ ---- -description: 'Use ClickHouse to query, accelerate, and analyze data in open table formats such as Apache Iceberg, Delta Lake, Apache Hudi, and Apache Paimon.' -slug: /use-cases/data-lake -title: 'Data Lake' -keywords: ['data lake', 'lakehouse', 'iceberg', 'delta lake', 'hudi', 'paimon', 'glue', 'unity', 'rest', 'OneLake', 'BigLake'] -doc_type: 'landing-page' ---- - -ClickHouse integrates with open table formats, including [Apache Iceberg](/reference/engines/table-engines/integrations/iceberg), [Delta Lake](/reference/engines/table-engines/integrations/deltalake), [Apache Hudi](/reference/engines/table-engines/integrations/hudi), and [Apache Paimon](/reference/functions/table-functions/paimon). This allows users to connect ClickHouse to data already stored in these formats across object storage, combining the analytical power of ClickHouse with their existing data lake infrastructure. - -## Why use ClickHouse with open table formats? {#why-clickhouse-uses-lake-formats} - -### Query existing data in place {#querying-data-in-place} - -ClickHouse can query open table formats directly in object storage without duplicating data. Organizations standardized on Iceberg, Delta Lake, Hudi, or Paimon can point ClickHouse at existing tables and immediately use its SQL dialect, analytical functions, and efficient native Parquet reader. At the same time, tools like [clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local) and [chDB](/products/chdb) enable exploratory, ad hoc analysis across more than 70 file formats in remote storage, allowing users to interactively explore data lake datasets with no infrastructure setup. - -Users can achieve this with either direct reading, using [table functions and table engines](/guides/data-warehousing/getting-started/querying-directly), or by [connecting to a data catalogue](/guides/data-warehousing/getting-started/connecting-catalogs). - -### Real-time analytical workloads with ClickHouse {#real-time-with-clickhouse} - -For workloads that demand high concurrency and low-latency responses, users can load data from open table formats into ClickHouse's [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) engine. This provides a real-time analytics layer on top of data that originates in a data lake, supporting dashboards, operational reporting, and other latency-sensitive workloads that benefit from MergeTree columnar storage and indexing capabilities. - -See the getting started guide for [accelerating analytics with MergeTree](/guides/data-warehousing/getting-started/accelerating-analytics). - -## Capabilities {#capabilities} - -### Read data directly {#read-data-directly} - -ClickHouse provides [table functions](/reference/functions/table-functions) and [engines](/reference/engines/table-engines/integrations) for reading open table formats directly on object storage. Functions such as [`iceberg()`](/reference/functions/table-functions/iceberg), [`deltaLake()`](/reference/functions/table-functions/deltalake), [`hudi()`](/reference/functions/table-functions/hudi), and [`paimon()`](/reference/functions/table-functions/paimon) allow users to query open table format tables from within a SQL statement without any prior configuration. Versions of these functions exist for most common object stores, such as S3, Azure Blob Storage, and GCS. These functions also have equivalent table engines which can be used to create tables within ClickHouse which reference underlying open table format object storage - thus making querying more convenient. - -See our getting started guide for [querying directly](/guides/data-warehousing/getting-started/querying-directly), or by [connecting to a data catalogue](/guides/data-warehousing/getting-started/connecting-catalogs). - -### Expose catalogs as databases {#expose-catalogs-as-databases} - -Using the [`DataLakeCatalog`](/reference/engines/database-engines/datalake) database engine, users can connect ClickHouse to an external catalog and expose it as a database. Tables registered in the catalog appear as tables within ClickHouse, enabling the full range of ClickHouse SQL syntax and analytical functions to be used transparently. This means users can query, join, and aggregate across catalog-managed tables as if they were native ClickHouse tables, benefiting from ClickHouse's query optimization, parallel execution, and reading capabilities. - -Supported catalogs include: - -| Catalog | Guide | -|---------|-------| -| AWS Glue | [Glue Catalog guide](/guides/data-warehousing/glue-catalog) | -| BigLake Metastore | [BigLake Metastore guide](/guides/data-warehousing/biglake-catalog) | -| Databricks Unity Catalog | [Unity Catalog guide](/guides/data-warehousing/unity-catalog) | -| Iceberg REST Catalog | [REST Catalog guide](/guides/data-warehousing/rest-catalog) | -| Lakekeeper | [Lakekeeper Catalog guide](/guides/data-warehousing/lakekeeper-catalog) | -| Project Nessie | [Nessie Catalog guide](/guides/data-warehousing/nessie-catalog) | -| Microsoft OneLake | [OneLake Catalog guide](/guides/data-warehousing/onelake-catalog) | - -See the getting started guide for [connecting to catalogs](/guides/data-warehousing/getting-started/connecting-catalogs). - -### Write back to open table formats {#write-back-to-lakehouse-formats} - -ClickHouse supports writing data back to open table formats, which is relevant in scenarios such as: - -- **Real-time to long-term storage** - Data transits through ClickHouse as a real-time analytics layer, and users need to offload results to Iceberg or other formats for durable, cost-effective long-term storage. -- **Reverse ETL** - Users perform transformations inside ClickHouse using materialized views or scheduled queries and wish to persist the results into open table formats for consumption by other tools in the data ecosystem. - -See the getting started guide for [writing to data lakes](/guides/data-warehousing/getting-started/writing-data). - -## Next steps {#next-steps} - -Ready to try it out? The [Getting Started guide](/guides/data-warehousing/getting-started/overview) walks through querying open table formats directly, connecting to a catalog, loading data into MergeTree for fast analytics, and writing results back - all in a single end-to-end workflow. diff --git a/guides/data-warehousing/reference/index.mdx b/guides/data-warehousing/reference/index.mdx deleted file mode 100644 index ff98f62a..00000000 --- a/guides/data-warehousing/reference/index.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -description: 'Reference guides for connecting ClickHouse to data lake catalogs including AWS Glue, Unity, REST, Lakekeeper, Nessie, and OneLake.' -slug: /use-cases/data-lake/reference -title: 'Catalog guides' -keywords: ['data lake', 'lakehouse', 'catalog', 'glue', 'unity', 'rest', 'lakekeeper', 'nessie', 'OneLake'] -doc_type: 'landing-page' ---- - -ClickHouse integrates with a range of data lake catalogs through the [`DataLakeCatalog`](/reference/engines/database-engines/datalake) database engine. The following guides walk through connecting ClickHouse to each supported catalog, including configuration, authentication, and querying examples. - -| Catalog | Description | -|---------|-------------| -| [AWS Glue](/guides/data-warehousing/glue-catalog) | Query Iceberg tables registered in the AWS Glue Data Catalog from data stored in S3. | -| [Databricks Unity Catalog](/guides/data-warehousing/unity-catalog) | Connect to Databricks Unity Catalog for Delta Lake and Iceberg tables. | -| [Iceberg REST Catalog](/guides/data-warehousing/rest-catalog) | Use any catalog implementing the Iceberg REST specification, such as Tabular. | -| [Lakekeeper](/guides/data-warehousing/lakekeeper-catalog) | Connect to the Lakekeeper Catalog for Iceberg tables. | -| [Project Nessie](/guides/data-warehousing/nessie-catalog) | Query Iceberg tables using the Nessie Catalog with Git-like data version control. | -| [Microsoft OneLake](/guides/data-warehousing/onelake-catalog) | Query Iceberg tables in Microsoft Fabric OneLake. | diff --git a/guides/data-warehousing/support-matrix.mdx b/guides/data-warehousing/support-matrix.mdx deleted file mode 100644 index a4515404..00000000 --- a/guides/data-warehousing/support-matrix.mdx +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: 'Support matrix' -sidebarTitle: 'Support matrix' -slug: /use-cases/data-lake/support-matrix -description: 'Comprehensive support matrices for ClickHouse open table format integrations and data catalog connections.' -keywords: ['data lake', 'lakehouse', 'support', 'iceberg', 'delta lake', 'hudi', 'paimon', 'catalog', 'features'] -doc_type: 'reference' ---- - -This page provides comprehensive support matrices for ClickHouse's data lake integrations. It covers the features available for each open table format, the catalogs ClickHouse can connect to, and the capabilities supported by each catalog. - -## Open table format support {#format-support} - -ClickHouse integrates with four open table formats: [Apache Iceberg](/reference/engines/table-engines/integrations/iceberg), [Delta Lake](/reference/engines/table-engines/integrations/deltalake), [Apache Hudi](/reference/engines/table-engines/integrations/hudi), and [Apache Paimon](/reference/functions/table-functions/paimon). Select a format below to view its support matrix. - -**Legend:** ✅ Supported | ⚠️ Partial / Experimental | ❌ Not supported - - - - -| Feature | Status | Notes | -|---------|:-:|-------| -| **Storage backends** | | | -| AWS S3 | ✅ | Via [`icebergS3()`](/reference/functions/table-functions/iceberg) or `iceberg()` alias | -| GCS | ✅ | Via [`icebergS3()`](/reference/functions/table-functions/iceberg) or `iceberg()` alias | -| Azure Blob Storage | ✅ | Via [`icebergAzure()`](/reference/functions/table-functions/iceberg) | -| HDFS | ⚠️ | Via [`icebergHDFS()`](/reference/functions/table-functions/iceberg). Deprecated. | -| Local filesystem | ✅ | Via [`icebergLocal()`](/reference/functions/table-functions/iceberg) | -| **Access methods** | | | -| Table function | ✅ | [`icebergS3()`](/reference/functions/table-functions/iceberg) with variants per backend | -| Table engine | ✅ | [`IcebergS3`](/reference/engines/table-engines/integrations/iceberg) with variants per backend | -| Cluster-distributed reads | ✅ | [`icebergS3Cluster`](/reference/functions/table-functions/icebergCluster), [`icebergAzureCluster`](/reference/functions/table-functions/icebergCluster), [`icebergHDFSCluster`](/reference/functions/table-functions/icebergCluster) | -| Named collections | ✅ | [Defining a named collection](/reference/functions/table-functions/iceberg#defining-a-named-collection) | -| | | | -| **Read features** | | | -| Read support | ✅ | Full SELECT support with all ClickHouse SQL functions | -| Partition pruning | ✅ | See [Partition pruning](/reference/engines/table-engines/integrations/iceberg#partition-pruning). | -| Hidden partitioning | ✅ | Iceberg transform-based partitioning supported | -| Partition evolution | ✅ | Reading tables with changing partition specs over time supported | -| Schema evolution | ✅ | Column addition, removal, and reordering. See [Schema evolution](/reference/engines/table-engines/integrations/iceberg#schema-evolution). | -| Type promotion / widening | ✅ | `int` → `long`, `float` → `double`, `decimal(P,S)` → `decimal(P',S)` where P' > P. See [Schema evolution](/reference/engines/table-engines/integrations/iceberg#schema-evolution). | -| Time travel / snapshots | ✅ | Via `iceberg_timestamp_ms` or `iceberg_snapshot_id` settings. See [Time travel](/reference/engines/table-engines/integrations/iceberg#time-travel). | -| Position deletes | ✅ | See [Processing deleted rows](/reference/engines/table-engines/integrations/iceberg#deleted-rows). | -| Equality deletes | ✅ | Table engine only, from v25.8+. See [Processing deleted rows](/reference/engines/table-engines/integrations/iceberg#deleted-rows). | -| Merge-on-read | ⚠️ | Experimental. Supported for [delete operations](/reference/functions/table-functions/iceberg#iceberg-writes-delete). | -| Format versions | ⚠️ | v1 and v2 supported. V3 not supported. | -| Column statistics | ✅ | | -| Bloom filters / puffin files | ❌ | Bloom filter indexes in puffin files not supported | -| Virtual columns | ✅ | `_path`, `_file`, `_size`, `_time`, `_etag`. See [Virtual columns](/reference/functions/table-functions/iceberg#virtual-columns). | -| | | | -| **Write features** | | | -| Table creation | ✅ | Experimental. Requires `allow_insert_into_iceberg = 1`. From v25.7+. See [Creating a table](/reference/functions/table-functions/iceberg#create-iceberg-table). | -| INSERT | ✅ | Beta from 26.2. Requires `allow_insert_into_iceberg = 1`. See [Inserting data](/reference/functions/table-functions/iceberg#writes-inserts). | -| DELETE | ✅ | Experimental. Requires `allow_insert_into_iceberg = 1`. Via `ALTER TABLE ... DELETE WHERE`. See [Deleting data](/reference/functions/table-functions/iceberg#iceberg-writes-delete). | -| ALTER TABLE (schema changes) | ✅ | Experimental. Requires `allow_insert_into_iceberg = 1`. Add, drop, modify, rename columns. See [Schema evolution](/reference/functions/table-functions/iceberg#iceberg-writes-schema-evolution). | -| Compaction | ⚠️ | Experimental. Requires `allow_experimental_iceberg_compaction = 1`. Merges position delete files into data files. See [Compaction](/reference/functions/table-functions/iceberg#iceberg-writes-compaction). Other Iceberg compaction operations not supported. | -| UPDATE / MERGE | ❌ | Not supported. See Compaction. | -| Copy-on-write | ❌ | Not supported | -| Expire snapshots | ❌ | Not supported | -| Remove orphan files | ❌ | Not supported | -| Writing partitions | ✅ | Supported. | -| Altering partitions | ❌ | The changing of the partitioning scheme from ClickHouse is not supported. ClickHouse can write to iceberg tables which have an evolved partitioning. | -| | | | -| **Metadata** | | | -| Branching and tagging | ❌ | Iceberg branch/tag references not supported | -| Metadata file resolution | ✅ | Support for metadata resolution through catalogs, simple directory listing, using 'version-hint' and specific path. Configurable via `iceberg_metadata_file_path` and `iceberg_metadata_table_uuid`. See [Metadata file resolution](/reference/engines/table-engines/integrations/iceberg#metadata-file-resolution). | -| Data caching | ✅ | Same mechanism as S3/Azure/HDFS storage engines. See [Data cache](/reference/engines/table-engines/integrations/iceberg#data-cache). | -| Metadata caching | ✅ | Manifest and metadata files cached in memory. Enabled by default via `use_iceberg_metadata_files_cache`. See [Metadata cache](/reference/engines/table-engines/integrations/iceberg#metadata-cache). | - - - - -From version 25.6, ClickHouse reads Delta Lake tables using the Delta Lake Rust kernel, providing broader feature support; however, known issues occur when accessing data in Azure Blob Storage. For this reason the Kernel is disabled when reading data on Azure Blob Storage. We indicate below which features require this kernel. - -| Feature | Status | Notes | -|---------|:-:|-------| -| **Storage backends** | | | -| AWS S3 | ✅ | Via [`deltaLake()`](/reference/functions/table-functions/deltalake) or `deltaLakeS3()` | -| GCS | ✅ | Via [`deltaLake()`](/reference/functions/table-functions/deltalake) or `deltaLakeS3()` | -| Azure Blob Storage | ✅ | Via [`deltaLakeAzure()`](/reference/functions/table-functions/deltalake) | -| HDFS | ❌ | Not supported | -| Local filesystem | ✅ | Via [`deltaLakeLocal()`](/reference/functions/table-functions/deltalake) | -| **Access methods** | | | -| Table function | ✅ | [`deltaLake()`](/reference/functions/table-functions/deltalake) with variants per backend | -| Table engine | ✅ | [`DeltaLake`](/reference/engines/table-engines/integrations/deltalake) | -| Cluster-distributed reads | ✅ | [`deltaLakeCluster`](/reference/functions/table-functions/deltalakeCluster), [`deltaLakeAzureCluster`](/reference/functions/table-functions/deltalakeCluster) | -| Named collections | ✅ | [Named collection](/reference/functions/table-functions/deltalake#arguments) | -| **Read features** | | | -| Read support | ✅ | Full SELECT support with all ClickHouse SQL functions | -| Partition pruning | ✅ | Requires Delta Kernel. | -| Schema evolution | ✅ | Requires Delta Kernel. | -| Time travel | ✅ | Requires Delta Kernel. | -| Deletion vectors | ✅ | | -| Column mapping | ✅ | | -| Change data feed | ✅ | Requires Delta Kernel. | -| Virtual columns | ✅ | `_path`, `_file`, `_size`, `_time`, `_etag`. See [Virtual columns](/reference/functions/table-functions/deltalake#virtual-columns). | -| **Write features** | | | -| INSERT | ✅ | Experimental. Requires `allow_experimental_delta_lake_writes = 1`. See [DeltaLake engine](/reference/engines/table-engines/integrations/deltalake). Requires Delta Kernel. | -| DELETE / UPDATE / MERGE | ❌ | Not supported | -| CREATE empty table | ❌ | Creation of a new empty Delta Lake table is not supported. `CREATE TABLE` operation assumes existence of existing Delta Lake on object storage. | -| **Caching** | | | -| Data caching | ✅ | Same mechanism as S3/Azure/HDFS storage engines. See [Data cache](/reference/engines/table-engines/integrations/deltalake#data-cache). | - - - - -| Feature | Status | Notes | -|---------|:-:|-------| -| **Storage backends** | | | -| AWS S3 | ✅ | Via [`hudi()`](/reference/functions/table-functions/hudi) | -| GCS | ✅ | Via [`hudi()`](/reference/functions/table-functions/hudi) | -| Azure Blob Storage | ❌ | Not supported | -| HDFS | ❌ | Not supported | -| Local filesystem | ❌ | Not supported | -| **Access methods** | | | -| Table function | ✅ | [`hudi()`](/reference/functions/table-functions/hudi) | -| Table engine | ✅ | [`Hudi`](/reference/engines/table-engines/integrations/hudi) | -| Cluster-distributed reads | ✅ | [`hudiCluster`](/reference/functions/table-functions/hudiCluster) (S3 only) | -| Named collections | ✅ | [Hudi arguments](/reference/functions/table-functions/hudi#arguments) | -| **Read features** | | | -| Read support | ✅ | Full SELECT support with all ClickHouse SQL functions | -| Schema evolution | ❌ | Not supported | -| Time travel | ❌ | Not supported | -| Virtual columns | ✅ | `_path`, `_file`, `_size`, `_time`, `_etag`. See [Virtual columns](/reference/functions/table-functions/hudi#virtual-columns). | -| **Write features** | | | -| INSERT / DELETE / UPDATE | ❌ | Read-only integration | -| **Caching** | | | -| Data caching | ❌ | Not supported | - - - - -| Feature | Status | Notes | -|---------|:-:|-------| -| **Storage backends** | | | -| S3 | ✅ | Experimental. Via [`paimon()`](/reference/functions/table-functions/paimon) or `paimonS3()` | -| GCS | ✅ | Experimental. Via [`paimon()`](/reference/functions/table-functions/paimon) or `paimonS3()` | -| Azure Blob Storage | ✅ | Experimental. Via [`paimonAzure()`](/reference/functions/table-functions/paimon) | -| HDFS | ⚠️ | Experimental. Via [`paimonHDFS()`](/reference/functions/table-functions/paimon). Deprecated. | -| Local filesystem | ✅ | Experimental. Via [`paimonLocal()`](/reference/functions/table-functions/paimon) | -| **Access methods** | | | -| Table function | ✅ | Experimental. [`paimon()`](/reference/functions/table-functions/paimon) with variants per backend | -| Table engine | ❌ | No dedicated table engine | -| Cluster-distributed reads | ✅ | Experimental. [`paimonS3Cluster`](/reference/functions/table-functions/paimonCluster), [`paimonAzureCluster`](/reference/functions/table-functions/paimonCluster), [`paimonHDFSCluster`](/reference/functions/table-functions/paimonCluster) | -| Named collections | ✅ | Experimental. [Defining a named collection](/reference/functions/table-functions/paimon#defining-a-named-collection) | -| **Read features** | | | -| Read support | ✅ | Experimental. Full SELECT support with all ClickHouse SQL functions | -| Schema evolution | ❌ | Not supported | -| Time travel | ❌ | Not supported | -| Virtual columns | ✅ | Experimental. `_path`, `_file`, `_size`, `_time`, `_etag`. See [Virtual columns](/reference/functions/table-functions/paimon#virtual-columns). | -| **Write features** | | | -| INSERT / DELETE / UPDATE | ❌ | Read-only integration | -| **Caching** | | | -| Data caching | ❌ | Not supported | - - - - -## Catalog support {#catalog-support} - -ClickHouse can connect to external data catalogs using the [`DataLakeCatalog`](/reference/engines/database-engines/datalake) database engine, which exposes the catalog as a ClickHouse database. Tables registered in the catalog appear automatically and can be queried with standard SQL. - -The following catalogs are currently supported. Refer to each catalog's reference guide for full setup instructions. - -| Catalog | Formats | Read | Create table | INSERT | Reference guide | -|---------|---------|:-:|:-:|:-:|---------| -| [AWS Glue Catalog](/guides/data-warehousing/glue-catalog) | Iceberg | ✅ Beta | ❌ | ❌ | [Glue catalog guide](/guides/data-warehousing/glue-catalog) | -| [BigLake Metastore](/guides/data-warehousing/biglake-catalog) | Iceberg | ✅ Beta | ❌ | ❌ | [BigLake Metastore guide](/guides/data-warehousing/biglake-catalog) | -| [Databricks Unity Catalog](/guides/data-warehousing/unity-catalog) | Delta, Iceberg | ✅ Beta | ❌ | ❌ | [Unity Catalog guide](/guides/data-warehousing/unity-catalog) | -| [Iceberg REST](/guides/data-warehousing/rest-catalog) | Iceberg | ✅ Beta | ❌ | ❌ | [REST catalog guide](/guides/data-warehousing/rest-catalog) | -| [Lakekeeper](/guides/data-warehousing/lakekeeper-catalog) | Iceberg | ✅ Beta | ❌ | ❌ | [Lakekeeper catalog guide](/guides/data-warehousing/lakekeeper-catalog) | -| [Project Nessie](/guides/data-warehousing/nessie-catalog) | Iceberg | ✅ Experimental | ❌ | ❌ | [Nessie catalog guide](/guides/data-warehousing/nessie-catalog) | -| [Microsoft OneLake](/guides/data-warehousing/onelake-catalog) | Iceberg | ✅ Beta | ❌ | ❌ | [OneLake catalog guide](/guides/data-warehousing/onelake-catalog) | - -All catalog integrations currently require an experimental or beta setting to be enabled and expose **read-only** access — tables can be queried but not created or written to through the catalog connection. To load data from a catalog into ClickHouse for faster analytics, use `INSERT INTO SELECT` as described in the [accelerating analytics guide](/guides/data-warehousing/getting-started/accelerating-analytics). To write data back to open table formats, create standalone Iceberg tables as described in the [writing data guide](/guides/data-warehousing/getting-started/writing-data). diff --git a/guides/observability/build-your-own/index.mdx b/guides/observability/build-your-own/index.mdx deleted file mode 100644 index eced9cff..00000000 --- a/guides/observability/build-your-own/index.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -slug: /use-cases/observability/build-your-own -title: 'Build your own observability stack' -description: 'Landing page building your own observability stack' -doc_type: 'landing-page' -keywords: ['observability', 'custom stack', 'build your own', 'logs', 'traces', 'metrics', 'OpenTelemetry'] ---- - -This guide helps you build a custom observability stack using ClickHouse as the foundation. Learn how to design, implement, and optimize your observability solution for logs, metrics, and traces, with practical examples and best practices. - -| Page | Description | -|-------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Introduction](/guides/observability/build-your-own/introduction) | This guide is designed for if you're looking to build your own observability solution using ClickHouse, focusing on logs and traces. | -| [Schema design](/guides/observability/build-your-own/schema-design) | Learn why users are recommended to create their own schema for logs and traces, along with some best practices for doing so. | -| [Managing data](/guides/observability/build-your-own/managing-data) | Deployments of ClickHouse for observability invariably involve large datasets, which need to be managed. ClickHouse offers features to assist with data management. | -| [Integrating OpenTelemetry](/guides/observability/build-your-own/integrating-opentelemetry) | Collecting and exporting logs and traces using OpenTelemetry with ClickHouse. | -| [Using Visualization Tools](/guides/observability/build-your-own/grafana) | Learn how to use observability visualization tools for ClickHouse, including HyperDX and Grafana. | -| [Demo Application](/guides/observability/build-your-own/demo-application) | Explore the OpenTelemetry demo application forked to work with ClickHouse for logs and traces. | diff --git a/guides/performance-and-monitoring/index.mdx b/guides/performance-and-monitoring/index.mdx deleted file mode 100644 index 9498b8b4..00000000 --- a/guides/performance-and-monitoring/index.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -slug: /operations/overview -sidebarTitle: 'Performance and optimizations overview' -description: 'Overview page of Performance and Optimizations' -title: 'Performance and Optimizations' -keywords: ['performance optimization', 'best practices', 'optimization guide', 'ClickHouse performance', 'database optimization'] -doc_type: 'reference' ---- - -import TableOfContents from '/snippets/_performance_optimizations_table_of_contents.mdx'; - -This section contains tips and best practices for improving performance with ClickHouse. -We recommend users read [Core Concepts](/concepts/core-concepts/parts) as a precursor to this section, -which covers the main concepts required to improve performance. - - diff --git a/guides/security/index.mdx b/guides/security/index.mdx deleted file mode 100644 index 086dbcbf..00000000 --- a/guides/security/index.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -slug: /security-and-authentication -title: 'Security and authentication' -description: 'Landing page for Security and authentication' -doc_type: 'landing-page' -keywords: ['security and authentication', 'access control', 'RBAC', 'user management', 'SRE guide'] ---- - -| Page | Description | -|------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------| -| [Users and Roles](/concepts/features/security/access-rights) | Learn more about how ClickHouse supports access control management based on RBAC approach. | -| [External Authenticators](/concepts/features/security/external-authenticators) | Learn more about how OSS ClickHouse supports authenticating and managing users using external services. | diff --git a/i18n/ja/index.mdx b/i18n/ja/index.mdx index 081b0ebb..efe1c2ed 100644 --- a/i18n/ja/index.mdx +++ b/i18n/ja/index.mdx @@ -218,12 +218,12 @@ export const ContentSwitcher = () => { } links={[ - { label: "What is ClickHouse?", href: "/get-started/about/intro" }, - { label: "Setup/Install", href: "/get-started/install/quick-start-cloud" }, - { label: "Explore quickstarts", href: "/get-started/quickstarts/home" }, - { label: "Migration guides", href: "/get-started/migration-guides/01_overview" }, - { label: "Core concepts & best practices", href: "/concepts/best-practices/index" }, - { label: "Sample datasets", href: "/get-started/sample-datasets/github" } + { label: "What is ClickHouse?", href: "/core/get-started/about/intro" }, + { label: "Setup/Install", href: "/core/get-started/install/quick-start-cloud" }, + { label: "Explore quickstarts", href: "/core/get-started/quickstarts/home" }, + { label: "Migration guides", href: "/core/get-started/migration-guides/01_overview" }, + { label: "Core concepts & best practices", href: "/core/concepts/best-practices/index" }, + { label: "Sample datasets", href: "/core/get-started/sample-datasets/github" } ]} /> { } links={[ - { label: "Data modelling topics", href: "/guides/data_modelling/schema-design" }, - { label: "Performance & query optimization guides", href: "/guides/performance_and_monitoring/query-optimization" }, - { label: "ClickHouse Cloud topics", href: "/guides/cloud/cloud-compatibility" }, - { label: "Self-managed topics", href: "/guides/oss/deployment_and_scaling/terminology" }, - { label: "Use-case guides", href: "/guides/use_case_guides/time-series/time-series-filling-gaps" }, + { label: "Data modelling topics", href: "/core/guides/data_modelling/schema-design" }, + { label: "Performance & query optimization guides", href: "/core/guides/performance_and_monitoring/query-optimization" }, + { label: "ClickHouse Cloud topics", href: "/core/guides/cloud/cloud-compatibility" }, + { label: "Self-managed topics", href: "/core/guides/oss/deployment_and_scaling/terminology" }, + { label: "Use-case guides", href: "/core/guides/use_case_guides/time-series/time-series-filling-gaps" }, ]} /> { } links={[ - { label: "SQL reference", href: "/reference/statements" }, - { label: "Session settings", href: "/reference/settings/session-settings" }, - { label: "Server settings", href: "/reference/settings/server-settings/settings" }, - { label: "Functions", href: "/reference/functions/regular-functions/overview" }, - { label: "Engines", href: "/reference/engines/engines" }, - { label: "System tables", href: "/reference/system-tables" }, - { label: "Formats", href: "/reference/formats/Arrow/Arrow" }, - { label: "Data types", href: "/reference/data-types/int-uint" } + { label: "SQL reference", href: "/core/reference/statements" }, + { label: "Session settings", href: "/core/reference/settings/session-settings" }, + { label: "Server settings", href: "/core/reference/settings/server-settings/settings" }, + { label: "Functions", href: "/core/reference/functions/regular-functions/overview" }, + { label: "Engines", href: "/core/reference/engines/engines" }, + { label: "System tables", href: "/core/reference/system-tables" }, + { label: "Formats", href: "/core/reference/formats/Arrow/Arrow" }, + { label: "Data types", href: "/core/reference/data-types/int-uint" } ]} /> @@ -278,7 +278,7 @@ export const ContentSwitcher = () => { darkFilename="use-cases/rt-analytics.png" title="Real-time analytics" description="Deliver instant insights and dashboards at scale. Analyze billions of rows in real time with millisecond results." - href="/get-started/use_cases/real-time-analytics" + href="/core/get-started/use_cases/real-time-analytics" /> { darkFilename="use-cases/data-warehousing.png" title="Data warehousing" description="Analyze and explore data instantly for insights and apps. Scale faster by offloading heavy workloads." - href="/get-started/use_cases/data_warehousing" + href="/core/get-started/use_cases/data_warehousing" /> @@ -397,7 +397,7 @@ export const ContentSwitcher = () => {
    - Get started with ClickHouse Cloud → + Get started with ClickHouse Cloud →

    Cannot find what you are searching for? Check out our support center.

    diff --git a/i18n/ko/index.mdx b/i18n/ko/index.mdx index 081b0ebb..efe1c2ed 100644 --- a/i18n/ko/index.mdx +++ b/i18n/ko/index.mdx @@ -218,12 +218,12 @@ export const ContentSwitcher = () => { } links={[ - { label: "What is ClickHouse?", href: "/get-started/about/intro" }, - { label: "Setup/Install", href: "/get-started/install/quick-start-cloud" }, - { label: "Explore quickstarts", href: "/get-started/quickstarts/home" }, - { label: "Migration guides", href: "/get-started/migration-guides/01_overview" }, - { label: "Core concepts & best practices", href: "/concepts/best-practices/index" }, - { label: "Sample datasets", href: "/get-started/sample-datasets/github" } + { label: "What is ClickHouse?", href: "/core/get-started/about/intro" }, + { label: "Setup/Install", href: "/core/get-started/install/quick-start-cloud" }, + { label: "Explore quickstarts", href: "/core/get-started/quickstarts/home" }, + { label: "Migration guides", href: "/core/get-started/migration-guides/01_overview" }, + { label: "Core concepts & best practices", href: "/core/concepts/best-practices/index" }, + { label: "Sample datasets", href: "/core/get-started/sample-datasets/github" } ]} /> { } links={[ - { label: "Data modelling topics", href: "/guides/data_modelling/schema-design" }, - { label: "Performance & query optimization guides", href: "/guides/performance_and_monitoring/query-optimization" }, - { label: "ClickHouse Cloud topics", href: "/guides/cloud/cloud-compatibility" }, - { label: "Self-managed topics", href: "/guides/oss/deployment_and_scaling/terminology" }, - { label: "Use-case guides", href: "/guides/use_case_guides/time-series/time-series-filling-gaps" }, + { label: "Data modelling topics", href: "/core/guides/data_modelling/schema-design" }, + { label: "Performance & query optimization guides", href: "/core/guides/performance_and_monitoring/query-optimization" }, + { label: "ClickHouse Cloud topics", href: "/core/guides/cloud/cloud-compatibility" }, + { label: "Self-managed topics", href: "/core/guides/oss/deployment_and_scaling/terminology" }, + { label: "Use-case guides", href: "/core/guides/use_case_guides/time-series/time-series-filling-gaps" }, ]} /> { } links={[ - { label: "SQL reference", href: "/reference/statements" }, - { label: "Session settings", href: "/reference/settings/session-settings" }, - { label: "Server settings", href: "/reference/settings/server-settings/settings" }, - { label: "Functions", href: "/reference/functions/regular-functions/overview" }, - { label: "Engines", href: "/reference/engines/engines" }, - { label: "System tables", href: "/reference/system-tables" }, - { label: "Formats", href: "/reference/formats/Arrow/Arrow" }, - { label: "Data types", href: "/reference/data-types/int-uint" } + { label: "SQL reference", href: "/core/reference/statements" }, + { label: "Session settings", href: "/core/reference/settings/session-settings" }, + { label: "Server settings", href: "/core/reference/settings/server-settings/settings" }, + { label: "Functions", href: "/core/reference/functions/regular-functions/overview" }, + { label: "Engines", href: "/core/reference/engines/engines" }, + { label: "System tables", href: "/core/reference/system-tables" }, + { label: "Formats", href: "/core/reference/formats/Arrow/Arrow" }, + { label: "Data types", href: "/core/reference/data-types/int-uint" } ]} /> @@ -278,7 +278,7 @@ export const ContentSwitcher = () => { darkFilename="use-cases/rt-analytics.png" title="Real-time analytics" description="Deliver instant insights and dashboards at scale. Analyze billions of rows in real time with millisecond results." - href="/get-started/use_cases/real-time-analytics" + href="/core/get-started/use_cases/real-time-analytics" /> { darkFilename="use-cases/data-warehousing.png" title="Data warehousing" description="Analyze and explore data instantly for insights and apps. Scale faster by offloading heavy workloads." - href="/get-started/use_cases/data_warehousing" + href="/core/get-started/use_cases/data_warehousing" /> @@ -397,7 +397,7 @@ export const ContentSwitcher = () => {
    - Get started with ClickHouse Cloud → + Get started with ClickHouse Cloud →

    Cannot find what you are searching for? Check out our support center.

    diff --git a/i18n/ru/index.mdx b/i18n/ru/index.mdx index 081b0ebb..efe1c2ed 100644 --- a/i18n/ru/index.mdx +++ b/i18n/ru/index.mdx @@ -218,12 +218,12 @@ export const ContentSwitcher = () => { } links={[ - { label: "What is ClickHouse?", href: "/get-started/about/intro" }, - { label: "Setup/Install", href: "/get-started/install/quick-start-cloud" }, - { label: "Explore quickstarts", href: "/get-started/quickstarts/home" }, - { label: "Migration guides", href: "/get-started/migration-guides/01_overview" }, - { label: "Core concepts & best practices", href: "/concepts/best-practices/index" }, - { label: "Sample datasets", href: "/get-started/sample-datasets/github" } + { label: "What is ClickHouse?", href: "/core/get-started/about/intro" }, + { label: "Setup/Install", href: "/core/get-started/install/quick-start-cloud" }, + { label: "Explore quickstarts", href: "/core/get-started/quickstarts/home" }, + { label: "Migration guides", href: "/core/get-started/migration-guides/01_overview" }, + { label: "Core concepts & best practices", href: "/core/concepts/best-practices/index" }, + { label: "Sample datasets", href: "/core/get-started/sample-datasets/github" } ]} /> { } links={[ - { label: "Data modelling topics", href: "/guides/data_modelling/schema-design" }, - { label: "Performance & query optimization guides", href: "/guides/performance_and_monitoring/query-optimization" }, - { label: "ClickHouse Cloud topics", href: "/guides/cloud/cloud-compatibility" }, - { label: "Self-managed topics", href: "/guides/oss/deployment_and_scaling/terminology" }, - { label: "Use-case guides", href: "/guides/use_case_guides/time-series/time-series-filling-gaps" }, + { label: "Data modelling topics", href: "/core/guides/data_modelling/schema-design" }, + { label: "Performance & query optimization guides", href: "/core/guides/performance_and_monitoring/query-optimization" }, + { label: "ClickHouse Cloud topics", href: "/core/guides/cloud/cloud-compatibility" }, + { label: "Self-managed topics", href: "/core/guides/oss/deployment_and_scaling/terminology" }, + { label: "Use-case guides", href: "/core/guides/use_case_guides/time-series/time-series-filling-gaps" }, ]} /> { } links={[ - { label: "SQL reference", href: "/reference/statements" }, - { label: "Session settings", href: "/reference/settings/session-settings" }, - { label: "Server settings", href: "/reference/settings/server-settings/settings" }, - { label: "Functions", href: "/reference/functions/regular-functions/overview" }, - { label: "Engines", href: "/reference/engines/engines" }, - { label: "System tables", href: "/reference/system-tables" }, - { label: "Formats", href: "/reference/formats/Arrow/Arrow" }, - { label: "Data types", href: "/reference/data-types/int-uint" } + { label: "SQL reference", href: "/core/reference/statements" }, + { label: "Session settings", href: "/core/reference/settings/session-settings" }, + { label: "Server settings", href: "/core/reference/settings/server-settings/settings" }, + { label: "Functions", href: "/core/reference/functions/regular-functions/overview" }, + { label: "Engines", href: "/core/reference/engines/engines" }, + { label: "System tables", href: "/core/reference/system-tables" }, + { label: "Formats", href: "/core/reference/formats/Arrow/Arrow" }, + { label: "Data types", href: "/core/reference/data-types/int-uint" } ]} /> @@ -278,7 +278,7 @@ export const ContentSwitcher = () => { darkFilename="use-cases/rt-analytics.png" title="Real-time analytics" description="Deliver instant insights and dashboards at scale. Analyze billions of rows in real time with millisecond results." - href="/get-started/use_cases/real-time-analytics" + href="/core/get-started/use_cases/real-time-analytics" /> { darkFilename="use-cases/data-warehousing.png" title="Data warehousing" description="Analyze and explore data instantly for insights and apps. Scale faster by offloading heavy workloads." - href="/get-started/use_cases/data_warehousing" + href="/core/get-started/use_cases/data_warehousing" /> @@ -397,7 +397,7 @@ export const ContentSwitcher = () => {
    - Get started with ClickHouse Cloud → + Get started with ClickHouse Cloud →

    Cannot find what you are searching for? Check out our support center.

    diff --git a/i18n/zh/index.mdx b/i18n/zh/index.mdx index 081b0ebb..efe1c2ed 100644 --- a/i18n/zh/index.mdx +++ b/i18n/zh/index.mdx @@ -218,12 +218,12 @@ export const ContentSwitcher = () => { } links={[ - { label: "What is ClickHouse?", href: "/get-started/about/intro" }, - { label: "Setup/Install", href: "/get-started/install/quick-start-cloud" }, - { label: "Explore quickstarts", href: "/get-started/quickstarts/home" }, - { label: "Migration guides", href: "/get-started/migration-guides/01_overview" }, - { label: "Core concepts & best practices", href: "/concepts/best-practices/index" }, - { label: "Sample datasets", href: "/get-started/sample-datasets/github" } + { label: "What is ClickHouse?", href: "/core/get-started/about/intro" }, + { label: "Setup/Install", href: "/core/get-started/install/quick-start-cloud" }, + { label: "Explore quickstarts", href: "/core/get-started/quickstarts/home" }, + { label: "Migration guides", href: "/core/get-started/migration-guides/01_overview" }, + { label: "Core concepts & best practices", href: "/core/concepts/best-practices/index" }, + { label: "Sample datasets", href: "/core/get-started/sample-datasets/github" } ]} /> { } links={[ - { label: "Data modelling topics", href: "/guides/data_modelling/schema-design" }, - { label: "Performance & query optimization guides", href: "/guides/performance_and_monitoring/query-optimization" }, - { label: "ClickHouse Cloud topics", href: "/guides/cloud/cloud-compatibility" }, - { label: "Self-managed topics", href: "/guides/oss/deployment_and_scaling/terminology" }, - { label: "Use-case guides", href: "/guides/use_case_guides/time-series/time-series-filling-gaps" }, + { label: "Data modelling topics", href: "/core/guides/data_modelling/schema-design" }, + { label: "Performance & query optimization guides", href: "/core/guides/performance_and_monitoring/query-optimization" }, + { label: "ClickHouse Cloud topics", href: "/core/guides/cloud/cloud-compatibility" }, + { label: "Self-managed topics", href: "/core/guides/oss/deployment_and_scaling/terminology" }, + { label: "Use-case guides", href: "/core/guides/use_case_guides/time-series/time-series-filling-gaps" }, ]} /> { } links={[ - { label: "SQL reference", href: "/reference/statements" }, - { label: "Session settings", href: "/reference/settings/session-settings" }, - { label: "Server settings", href: "/reference/settings/server-settings/settings" }, - { label: "Functions", href: "/reference/functions/regular-functions/overview" }, - { label: "Engines", href: "/reference/engines/engines" }, - { label: "System tables", href: "/reference/system-tables" }, - { label: "Formats", href: "/reference/formats/Arrow/Arrow" }, - { label: "Data types", href: "/reference/data-types/int-uint" } + { label: "SQL reference", href: "/core/reference/statements" }, + { label: "Session settings", href: "/core/reference/settings/session-settings" }, + { label: "Server settings", href: "/core/reference/settings/server-settings/settings" }, + { label: "Functions", href: "/core/reference/functions/regular-functions/overview" }, + { label: "Engines", href: "/core/reference/engines/engines" }, + { label: "System tables", href: "/core/reference/system-tables" }, + { label: "Formats", href: "/core/reference/formats/Arrow/Arrow" }, + { label: "Data types", href: "/core/reference/data-types/int-uint" } ]} /> @@ -278,7 +278,7 @@ export const ContentSwitcher = () => { darkFilename="use-cases/rt-analytics.png" title="Real-time analytics" description="Deliver instant insights and dashboards at scale. Analyze billions of rows in real time with millisecond results." - href="/get-started/use_cases/real-time-analytics" + href="/core/get-started/use_cases/real-time-analytics" /> { darkFilename="use-cases/data-warehousing.png" title="Data warehousing" description="Analyze and explore data instantly for insights and apps. Scale faster by offloading heavy workloads." - href="/get-started/use_cases/data_warehousing" + href="/core/get-started/use_cases/data_warehousing" /> @@ -397,7 +397,7 @@ export const ContentSwitcher = () => {
    - Get started with ClickHouse Cloud → + Get started with ClickHouse Cloud →

    Cannot find what you are searching for? Check out our support center.

    diff --git a/index.mdx b/index.mdx index a4eeab83..852dadcf 100644 --- a/index.mdx +++ b/index.mdx @@ -210,21 +210,21 @@ export const ContentSwitcher = () => {
    } links={[ - { label: "What is ClickHouse?", href: "/get-started/about/intro" }, - { label: "Setup/Install", href: "/get-started/setup/cloud" }, - { label: "Explore quickstarts", href: "/get-started/quickstarts/home" }, - { label: "Migration guides", href: "/get-started/setup/migration-guides/01_overview" }, - { label: "ClickHouse fundamentals", href: "/concepts/core-concepts/index" }, - { label: "Concepts (features)", href: "/concepts/features/index" }, - { label: "Best practices", href: "/concepts/best-practices/index" }, - { label: "Sample datasets", href: "/get-started/sample-datasets/github" } + { label: "What is ClickHouse?", href: "/core/get-started/about/intro" }, + { label: "Setup/Install", href: "/core/get-started/setup/cloud" }, + { label: "Explore quickstarts", href: "/core/get-started/quickstarts/home" }, + { label: "Migration guides", href: "/core/get-started/setup/migration-guides/overview" }, + { label: "ClickHouse fundamentals", href: "/core/concepts/core-concepts/index" }, + { label: "Concepts (features)", href: "/core/concepts/features/index" }, + { label: "Best practices", href: "/core/concepts/best-practices/index" }, + { label: "Sample datasets", href: "/core/get-started/sample-datasets/index" } ]} /> { } links={[ - { label: "Data modelling topics", href: "/guides/cloud-oss/data-modelling/schema-design" }, - { label: "Performance and query optimization", href: "/guides/cloud-oss/performance_and_monitoring/query-optimization" }, - { label: "ClickHouse Cloud topics", href: "/guides/cloud" }, - { label: "Use-case guides", href: "/guides/use_case_guides/time-series/time-series-filling-gaps" }, + { label: "Data modelling topics", href: "/core/guides/clickhouse/data-modelling/schema-design" }, + { label: "Performance and query optimization", href: "/core/guides/clickhouse/performance-and-monitoring/query-optimization" }, + { label: "ClickHouse Cloud topics", href: "/products/cloud/guides" }, + { label: "Use-case guides", href: "/core/guides/use_case_guides/time-series/time-series-filling-gaps" }, ]} /> } links={[ - { label: "SQL reference", href: "/reference/statements" }, - { label: "Session settings", href: "/reference/settings/session-settings" }, - { label: "Server settings", href: "/reference/settings/server-settings/settings" }, - { label: "Functions", href: "/reference/functions/regular-functions/overview" }, - { label: "Engines", href: "/reference/engines/engines" }, - { label: "System tables", href: "/reference/system-tables" }, - { label: "Formats", href: "/reference/formats/Arrow/Arrow" }, - { label: "Data types", href: "/reference/data-types/int-uint" } + { label: "SQL reference", href: "/core/reference/statements" }, + { label: "Session settings", href: "/core/reference/settings/session-settings" }, + { label: "Server settings", href: "/core/reference/settings/server-settings/settings" }, + { label: "Functions", href: "/core/reference/functions/regular-functions/overview" }, + { label: "Engines", href: "/core/reference/engines/engines" }, + { label: "System tables", href: "/core/reference/system-tables" }, + { label: "Formats", href: "/core/reference/formats/Arrow/Arrow" }, + { label: "Data types", href: "/core/reference/data-types/int-uint" } ]} />
    @@ -278,7 +278,7 @@ export const ContentSwitcher = () => { darkFilename="use-cases/rt-analytics.png" title="Real-time analytics" description="Deliver instant insights and dashboards at scale. Analyze billions of rows in real time with millisecond results." - href="/get-started/use-cases/real-time-analytics" + href="/core/get-started/use-cases/real-time-analytics" /> { darkFilename="use-cases/data-warehousing.png" title="Data warehousing" description="Analyze and explore data instantly for insights and apps. Scale faster by offloading heavy workloads." - href="/get-started/use-cases/data-warehousing" + href="/core/get-started/use-cases/data-warehousing" /> @@ -411,11 +411,26 @@ export const ContentSwitcher = () => {
    Search...
    ⌘{/* */}K - +
    - Get started with ClickHouse Cloud → + Get started with ClickHouse Cloud →

    Cannot find what you are searching for? Check out our support center.

    diff --git a/integrations/clickpipes/bigquery/get-started.mdx b/integrations/clickpipes/bigquery/get-started.mdx index 781a6132..4af1abfa 100644 --- a/integrations/clickpipes/bigquery/get-started.mdx +++ b/integrations/clickpipes/bigquery/get-started.mdx @@ -64,7 +64,7 @@ Depending on the size of your BigQuery dataset, or the total size of the tables **3.** For each selected table, make sure to define a custom sorting key under **Advanced settings** > **Use a custom sorting key**. In the future, the sorting key will be automatically inferred based on existing clustering or partitioning keys in the upstream database. - You **must** define a [sorting key](/concepts/best-practices/choosing-a-primary-key) for the replicated tables in order to optimize query performance in ClickHouse. Otherwise, the sorting key will be set as `tuple()`, which means no primary index will be created and ClickHouse will perform full table scans for all queries on the table. + You **must** define a [sorting key](/core/concepts/best-practices/choosing-a-primary-key) for the replicated tables in order to optimize query performance in ClickHouse. Otherwise, the sorting key will be set as `tuple()`, which means no primary index will be created and ClickHouse will perform full table scans for all queries on the table. diff --git a/integrations/clickpipes/home.mdx b/integrations/clickpipes/home.mdx index 8ad023ef..0336f1be 100644 --- a/integrations/clickpipes/home.mdx +++ b/integrations/clickpipes/home.mdx @@ -90,7 +90,7 @@ For all services, ClickPipes traffic will originate from a default region based ## Adjusting ClickHouse settings {#adjusting-clickhouse-settings} ClickHouse Cloud provides sensible defaults for most of the use cases. However, if you need to adjust some ClickHouse settings for the ClickPipes destination tables, a dedicated role for ClickPipes is the most flexible solution. Steps: -1. create a custom role `CREATE ROLE my_clickpipes_role SETTINGS ...`. See [CREATE ROLE](/reference/statements/create/role) syntax for details. +1. create a custom role `CREATE ROLE my_clickpipes_role SETTINGS ...`. See [CREATE ROLE](/core/reference/statements/create/role) syntax for details. 2. add the custom role to ClickPipes user on step `Details and Settings` during the ClickPipes creation. @@ -104,13 +104,13 @@ ClickPipes provides sensible defaults that cover the requirements of most use ca |------------------------------------|---------------|---------------------------------------------------------------------------------------| | `Max insert bytes` | 10 GB | Number of bytes to process in a single insert batch. | | `Max file count` | 100 | Maximum number of files to process in a single insert batch. | -| `Max threads` | auto(3) | [Maximum number of concurrent threads](/reference/settings/session-settings#max_threads) for file processing. | -| `Max insert threads` | 1 | [Maximum number of concurrent insert threads](/reference/settings/session-settings#max_insert_threads) for file processing. | -| `Min insert block size bytes` | 1 GB | [Minimum size of bytes in the block](/reference/settings/session-settings#min_insert_block_size_bytes) which can be inserted into a table. | -| `Max download threads` | 4 | [Maximum number of concurrent download threads](/reference/settings/session-settings#max_download_threads). | +| `Max threads` | auto(3) | [Maximum number of concurrent threads](/core/reference/settings/session-settings#max_threads) for file processing. | +| `Max insert threads` | 1 | [Maximum number of concurrent insert threads](/core/reference/settings/session-settings#max_insert_threads) for file processing. | +| `Min insert block size bytes` | 1 GB | [Minimum size of bytes in the block](/core/reference/settings/session-settings#min_insert_block_size_bytes) which can be inserted into a table. | +| `Max download threads` | 4 | [Maximum number of concurrent download threads](/core/reference/settings/session-settings#max_download_threads). | | `Object storage polling interval` | 30 s | Configures the maximum wait period before inserting data into the ClickHouse cluster. | -| `Parallel distributed insert select` | 2 | [Parallel distributed insert select setting](/reference/settings/session-settings#parallel_distributed_insert_select). | -| `Parallel view processing` | false | Whether to enable pushing to attached views [concurrently instead of sequentially](/reference/settings/session-settings#parallel_view_processing). | +| `Parallel distributed insert select` | 2 | [Parallel distributed insert select setting](/core/reference/settings/session-settings#parallel_distributed_insert_select). | +| `Parallel view processing` | false | Whether to enable pushing to attached views [concurrently instead of sequentially](/core/reference/settings/session-settings#parallel_view_processing). | | `Use cluster function` | true | Whether to process files in parallel across multiple nodes. | @@ -124,9 +124,9 @@ ClickPipes provides sensible defaults that cover the requirements of most use ca ## Error reporting {#error-reporting} ClickPipes will store errors in two separate tables depending on the type of error encountered during the ingestion process. ### Record errors {#record-errors} -ClickPipes will create a table next to your destination table with the postfix `_clickpipes_error`. This table will contain any errors from malformed data or mismatched schema and will include the entirety of the invalid message. This table has a [TTL](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) of 7 days. +ClickPipes will create a table next to your destination table with the postfix `_clickpipes_error`. This table will contain any errors from malformed data or mismatched schema and will include the entirety of the invalid message. This table has a [TTL](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) of 7 days. ### System errors {#system-errors} -Errors related to the operation of the ClickPipe will be stored in the `system.clickpipes_log` table. This will store all other errors related to the operation of your ClickPipe (network, connectivity, etc.). This table has a [TTL](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) of 7 days. +Errors related to the operation of the ClickPipe will be stored in the `system.clickpipes_log` table. This will store all other errors related to the operation of your ClickPipe (network, connectivity, etc.). This table has a [TTL](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) of 7 days. If ClickPipes can't connect to a data source after 15 min or to a destination after 1 hr, the ClickPipes instance stops and stores an appropriate message in the system error table (provided the ClickHouse instance is available). @@ -141,7 +141,7 @@ In addition to in-console monitoring, ClickPipes exposes metrics to a [Prometheu - **Does ClickPipes support data transformation?** - Yes, ClickPipes supports basic data transformation by exposing the DDL creation. You can then apply more advanced transformations to the data as it is loaded into its destination table in a ClickHouse Cloud service leveraging ClickHouse's [materialized views feature](/concepts/features/materialized-views/cascading-materialized-views). + Yes, ClickPipes supports basic data transformation by exposing the DDL creation. You can then apply more advanced transformations to the data as it is loaded into its destination table in a ClickHouse Cloud service leveraging ClickHouse's [materialized views feature](/core/concepts/features/materialized-views/cascading-materialized-views). - **Does using ClickPipes incur an additional cost?** diff --git a/integrations/clickpipes/kafka/best-practices.mdx b/integrations/clickpipes/kafka/best-practices.mdx index 0d2ee6c5..a988b637 100644 --- a/integrations/clickpipes/kafka/best-practices.mdx +++ b/integrations/clickpipes/kafka/best-practices.mdx @@ -17,7 +17,7 @@ To learn more about message compression in Kafka, we recommend starting with thi ## Limitations {#limitations} -- [`DEFAULT`](/reference/statements/create/table#default) is not supported. +- [`DEFAULT`](/core/reference/statements/create/table#default) is not supported. - Individual messages are limited to 2MB (uncompressed) by default when running with the smallest (XS) replica size, and 8MB (uncompressed) with larger replicas. Messages that exceed this limit will be rejected with an error. If you have a need for larger messages, please contact support. ## Delivery semantics {#delivery-semantics} diff --git a/integrations/clickpipes/kafka/reference.mdx b/integrations/clickpipes/kafka/reference.mdx index 65172c9d..21780c9e 100644 --- a/integrations/clickpipes/kafka/reference.mdx +++ b/integrations/clickpipes/kafka/reference.mdx @@ -27,9 +27,9 @@ import ExperimentalBadge from "/snippets/components/ExperimentalBadge/Experiment ## Supported data formats {#supported-data-formats} The supported formats are: -- [JSON](/integrations/connectors/data-ingestion/data-formats/json/intro) -- [AvroConfluent](/reference/formats/Avro/AvroConfluent) -- [Protobuf](/reference/formats/Protobuf/Protobuf) +- [JSON](/core/guides/clickhouse/data-formats/json/intro) +- [AvroConfluent](/core/reference/formats/Avro/AvroConfluent) +- [Protobuf](/core/reference/formats/Protobuf/Protobuf) ## Supported data types {#supported-data-types} @@ -77,7 +77,7 @@ Note that you will have to manually change the destination column to the desired #### Supported Avro data types {#supported-avro-data-types} -ClickPipes supports all Avro Primitive and Complex types, and all Avro Logical types except `local-timestamp-millis` and `local_timestamp-micros`. Avro `record` types are converted to Tuple, `array` types to Array, and `map` to Map (string keys only). In general the conversions listed [here](/integrations/connectors/data-integrations/drivers-and-interfaces/schema-inference#avro) are available. We recommend using exact type matching for Avro numeric types, as ClickPipes does not check for overflow or precision loss on type conversion. +ClickPipes supports all Avro Primitive and Complex types, and all Avro Logical types except `local-timestamp-millis` and `local_timestamp-micros`. Avro `record` types are converted to Tuple, `array` types to Array, and `map` to Map (string keys only). In general the conversions listed [here](/core/concepts/features/interfaces/schema-inference#avro) are available. We recommend using exact type matching for Avro numeric types, as ClickPipes does not check for overflow or precision loss on type conversion. Alternatively, all Avro types can be inserted into a `String` column, and will be represented as a valid JSON string in that case. #### Nullable types and Avro unions {#nullable-types-and-avro-unions} @@ -159,5 +159,5 @@ The following virtual columns are supported for Kafka compatible streaming data | `_raw_message` | Full Kafka Message | `String` | Note that the `_raw_message` column is only recommended for JSON data. -For use cases where only the JSON string is required (such as using ClickHouse [`JsonExtract*`](/reference/functions/regular-functions/json-functions#jsonextract-functions) functions to +For use cases where only the JSON string is required (such as using ClickHouse [`JsonExtract*`](/core/reference/functions/regular-functions/json-functions#jsonextract-functions) functions to populate a downstream materialized view), it may improve ClickPipes performance to delete all the "non-virtual" columns. diff --git a/integrations/clickpipes/kinesis/overview.mdx b/integrations/clickpipes/kinesis/overview.mdx index dcb04f12..041a1488 100644 --- a/integrations/clickpipes/kinesis/overview.mdx +++ b/integrations/clickpipes/kinesis/overview.mdx @@ -78,7 +78,7 @@ You have familiarized yourself with the [ClickPipes intro](/integrations/clickpi ## Supported data formats {#supported-data-formats} The supported formats are: -- [JSON](/reference/formats/JSON/JSON) +- [JSON](/core/reference/formats/JSON/JSON) ## Compression {#compression} @@ -140,12 +140,12 @@ The following virtual columns are supported for Kinesis stream. When creating a | _sequence_number | Kinesis Sequence Number | String | | _raw_message | Full Kinesis Message | String | -The _raw_message field can be used in cases where only full Kinesis JSON record is required (such as using ClickHouse [`JsonExtract*`](/reference/functions/regular-functions/json-functions#jsonextract-functions) functions to populate a downstream materialized +The _raw_message field can be used in cases where only full Kinesis JSON record is required (such as using ClickHouse [`JsonExtract*`](/core/reference/functions/regular-functions/json-functions#jsonextract-functions) functions to populate a downstream materialized view). For such pipes, it may improve ClickPipes performance to delete all the "non-virtual" columns. ## Limitations {#limitations} -- [DEFAULT](/reference/statements/create/table#default) isn't supported. +- [DEFAULT](/core/reference/statements/create/table#default) isn't supported. - Individual messages are limited to 8MB (uncompressed) by default when running with the smallest (XS) replica size, and 16MB (uncompressed) with larger replicas. Messages that exceed this limit will be rejected with an error. If you have a need for larger messages, please contact support. ## Performance {#performance} diff --git a/integrations/clickpipes/mongodb/datatypes.mdx b/integrations/clickpipes/mongodb/datatypes.mdx index 042abc26..b8cab2a5 100644 --- a/integrations/clickpipes/mongodb/datatypes.mdx +++ b/integrations/clickpipes/mongodb/datatypes.mdx @@ -30,5 +30,5 @@ MongoDB stores data records as BSON documents. In ClickPipes, you can configure | Object | Dynamic | Each nested field is mapped recursively | -To learn more about ClickHouse's JSON data types, see [our documentation](/reference/data-types/newjson). +To learn more about ClickHouse's JSON data types, see [our documentation](/core/reference/data-types/newjson). diff --git a/integrations/clickpipes/mongodb/faq.mdx b/integrations/clickpipes/mongodb/faq.mdx index fe27f08e..a56fe44e 100644 --- a/integrations/clickpipes/mongodb/faq.mdx +++ b/integrations/clickpipes/mongodb/faq.mdx @@ -31,7 +31,7 @@ To learn more about working with JSON, see our [Working with JSON guide](/integr MongoDB documents are replicated as JSON type in ClickHouse by default, preserving the nested structure. You have several options to flatten this data. If you want to flatten the data to columns, you can use normal views, materialized views, or query-time access. 1. **Normal Views**: Use normal views to encapsulate flattening logic. -2. **Materialized Views**: For smaller datasets, you can use refreshable materialized with the [`FINAL` modifier](/reference/statements/select/from#final-modifier) to periodically flatten and deduplicate data. For larger datasets, we recommend using incremental materialized views without `FINAL` to flatten the data in real-time, and then deduplicate data at query time. +2. **Materialized Views**: For smaller datasets, you can use refreshable materialized with the [`FINAL` modifier](/core/reference/statements/select/from#final-modifier) to periodically flatten and deduplicate data. For larger datasets, we recommend using incremental materialized views without `FINAL` to flatten the data in real-time, and then deduplicate data at query time. 3. **Query-time Access**: Instead of flattening, use dot notation to access nested fields directly in queries. For detailed examples, see our [Working with JSON guide](/integrations/clickpipes/mongodb/quickstart). diff --git a/integrations/clickpipes/mongodb/index.mdx b/integrations/clickpipes/mongodb/index.mdx index 4c580e01..dca362d3 100644 --- a/integrations/clickpipes/mongodb/index.mdx +++ b/integrations/clickpipes/mongodb/index.mdx @@ -117,5 +117,5 @@ Here are a few caveats to note when using this connector: - We require MongoDB version 5.1.0+. - We use MongoDB's native Change Streams API for CDC, which relies on the MongoDB oplog to capture real-time changes. -- Documents from MongoDB are replicated into ClickHouse as JSON type by default. This allows for flexible schema management and makes it possible to use the rich set of JSON operators in ClickHouse for querying and analytics. You can learn more about querying JSON data [here](/reference/data-types/newjson). +- Documents from MongoDB are replicated into ClickHouse as JSON type by default. This allows for flexible schema management and makes it possible to use the rich set of JSON operators in ClickHouse for querying and analytics. You can learn more about querying JSON data [here](/core/reference/data-types/newjson). - Self-serve PrivateLink configuration isn't currently available. If you're on AWS and require PrivateLink, please reach out to db-integrations-support@clickhouse.com or create a support ticket — we will work with you to enable it. diff --git a/integrations/clickpipes/mongodb/quickstart.mdx b/integrations/clickpipes/mongodb/quickstart.mdx index de8e5525..4261960d 100644 --- a/integrations/clickpipes/mongodb/quickstart.mdx +++ b/integrations/clickpipes/mongodb/quickstart.mdx @@ -75,7 +75,7 @@ The replicated tables use this standard schema: ClickPipes maps MongoDB collections into ClickHouse using the `ReplacingMergeTree` table engine family. With this engine, updates are modeled as inserts with a newer version (`_peerdb_version`) of the document for a given primary key (`_id`), enabling efficient handling of updates, replaces, and deletes as versioned inserts. -`ReplacingMergeTree` clears out duplicates asynchronously in the background. To guarantee the absence of duplicates for the same row, use the [`FINAL` modifier](/reference/statements/select/from#final-modifier). For example: +`ReplacingMergeTree` clears out duplicates asynchronously in the background. To guarantee the absence of duplicates for the same row, use the [`FINAL` modifier](/core/reference/statements/select/from#final-modifier). For example: ```sql SELECT * FROM t1 FINAL; @@ -113,7 +113,7 @@ FROM t1; └───────────────┴─────────────────────┘ ``` -When querying _nested object fields_ using dot syntax, make sure to add the [`^`](/reference/data-types/newjson#reading-json-sub-objects-as-sub-columns) operator: +When querying _nested object fields_ using dot syntax, make sure to add the [`^`](/core/reference/data-types/newjson#reading-json-sub-objects-as-sub-columns) operator: ```sql title="Query" SELECT doc.^shipping as shipping_info FROM t1; @@ -151,7 +151,7 @@ SELECT dynamicType(doc.customer_id) AS type FROM t1; └───────┘ ``` -[Regular functions](/reference/functions/regular-functions/regular-functions-index) work for dynamic type just like they do for regular columns: +[Regular functions](/core/reference/functions/regular-functions/regular-functions-index) work for dynamic type just like they do for regular columns: **Example 1: Date parsing** @@ -195,7 +195,7 @@ SELECT length(doc.items) AS item_count FROM t1; ### Field casting {#field-casting} -[Aggregation functions](/reference/functions/aggregate-functions/combinators) in ClickHouse don't work with dynamic type directly. For example, if you attempt to directly use the `sum` function on a dynamic type, you get the following error: +[Aggregation functions](/core/reference/functions/aggregate-functions/combinators) in ClickHouse don't work with dynamic type directly. For example, if you attempt to directly use the `sum` function on a dynamic type, you get the following error: ```sql SELECT sum(doc.shipping.cost) AS shipping_cost FROM t1; @@ -269,7 +269,7 @@ LIMIT 10; ### Refreshable materialized view {#refreshable-materialized-view} -You can create [Refreshable Materialized Views](/concepts/features/materialized-views/refreshable-materialized-view), which enable you to schedule query execution for deduplicating rows and storing the results in a flattened destination table. With each scheduled refresh, the destination table is replaced with the latest query results. +You can create [Refreshable Materialized Views](/core/concepts/features/materialized-views/refreshable-materialized-view), which enable you to schedule query execution for deduplicating rows and storing the results in a flattened destination table. With each scheduled refresh, the destination table is replaced with the latest query results. The key advantage of this method is that the query using the `FINAL` keyword runs only once during the refresh, eliminating the need for subsequent queries on the destination table to use `FINAL`. @@ -319,7 +319,7 @@ LIMIT 10; ### Incremental materialized view {#incremental-materialized-view} -If you want to access flattened columns in real-time, you can create [Incremental Materialized Views](/concepts/features/materialized-views/incremental-materialized-view). If your table has frequent updates, it's not recommended to use the `FINAL` modifier in your materialized view as every update will trigger a merge. Instead, you can deduplicate the data at query time by building a normal view on top of the materialized view. +If you want to access flattened columns in real-time, you can create [Incremental Materialized Views](/core/concepts/features/materialized-views/incremental-materialized-view). If your table has frequent updates, it's not recommended to use the `FINAL` modifier in your materialized view as every update will trigger a merge. Instead, you can deduplicate the data at query time by building a normal view on top of the materialized view. ```sql CREATE TABLE flattened_t1 ( diff --git a/integrations/clickpipes/navigation.json b/integrations/clickpipes/navigation.json new file mode 100644 index 00000000..52744f01 --- /dev/null +++ b/integrations/clickpipes/navigation.json @@ -0,0 +1,187 @@ +{ + "item": "ClickPipes", + "icon": "/images/icons/icon-clickpipes.svg", + "root": "integrations/clickpipes/home", + "groups": [ + { + "group": "ClickPipes for Object Storage", + "root": "integrations/clickpipes/home", + "pages": [ + { + "group": "Amazon S3", + "pages": [ + "integrations/clickpipes/object-storage/amazon-s3/overview", + "integrations/clickpipes/object-storage/amazon-s3/get-started", + "integrations/clickpipes/object-storage/amazon-s3/unordered-mode" + ] + }, + { + "group": "Google Cloud Storage", + "pages": [ + "integrations/clickpipes/object-storage/google-cloud-storage/overview", + "integrations/clickpipes/object-storage/google-cloud-storage/get-started", + "integrations/clickpipes/object-storage/google-cloud-storage/unordered-mode" + ] + }, + { + "group": "Azure Blob Storage", + "pages": [ + "integrations/clickpipes/object-storage/azure-blob-storage/overview", + "integrations/clickpipes/object-storage/azure-blob-storage/get-started" + ] + } + ] + }, + { + "group": "ClickPipes for Postgres", + "pages": [ + "integrations/clickpipes/postgres/index", + "integrations/clickpipes/postgres/deduplication", + "integrations/clickpipes/postgres/ordering-keys", + "integrations/clickpipes/postgres/toast", + "integrations/clickpipes/postgres/connecting-to-postgresql", + "integrations/clickpipes/postgres/inserting-data", + "integrations/clickpipes/postgres/schema-changes", + "integrations/clickpipes/postgres/faq", + "integrations/clickpipes/postgres/postgres-generated-columns", + "integrations/clickpipes/postgres/parallel-initial-load", + "integrations/clickpipes/postgres/lifecycle", + "integrations/clickpipes/postgres/auth", + { + "group": "Operations", + "pages": [ + "integrations/clickpipes/postgres/add-table", + "integrations/clickpipes/postgres/pause-and-resume", + "integrations/clickpipes/postgres/remove-table", + "integrations/clickpipes/postgres/table-resync", + "integrations/clickpipes/postgres/resync", + "integrations/clickpipes/postgres/controlling-sync", + "integrations/clickpipes/postgres/scaling" + ] + }, + { + "group": "Source", + "pages": [ + "integrations/clickpipes/postgres/source/alloydb", + "integrations/clickpipes/postgres/source/rds", + "integrations/clickpipes/postgres/source/aurora", + "integrations/clickpipes/postgres/source/supabase", + "integrations/clickpipes/postgres/source/google-cloudsql", + "integrations/clickpipes/postgres/source/azure-flexible-server-postgres", + "integrations/clickpipes/postgres/source/neon-postgres", + "integrations/clickpipes/postgres/source/crunchy-postgres", + "integrations/clickpipes/postgres/source/generic", + "integrations/clickpipes/postgres/source/timescale", + "integrations/clickpipes/postgres/source/planetscale" + ] + } + ] + }, + { + "group": "ClickPipes for Kafka", + "pages": [ + "integrations/clickpipes/kafka/index", + "integrations/clickpipes/kafka/create-kafka-clickpipe", + "integrations/clickpipes/kafka/schema-registries", + "integrations/clickpipes/kafka/reference", + "integrations/clickpipes/kafka/best-practices", + "integrations/clickpipes/kafka/faq" + ] + }, + { + "group": "ClickPipes for Kinesis", + "pages": [ + "integrations/clickpipes/kinesis/overview", + "integrations/clickpipes/kinesis/index", + "integrations/clickpipes/kinesis/auth" + ] + }, + { + "group": "ClickPipes for MySQL", + "pages": [ + "integrations/clickpipes/mysql/index", + "integrations/clickpipes/mysql/faq", + "integrations/clickpipes/mysql/datatypes", + "integrations/clickpipes/mysql/parallel-initial-load", + "integrations/clickpipes/mysql/schema-changes", + "integrations/clickpipes/mysql/lifecycle", + { + "group": "Operations", + "pages": [ + "integrations/clickpipes/mysql/add-table", + "integrations/clickpipes/mysql/pause-and-resume", + "integrations/clickpipes/mysql/remove-table", + "integrations/clickpipes/mysql/table-resync", + "integrations/clickpipes/mysql/resync", + "integrations/clickpipes/mysql/controlling-sync", + "integrations/clickpipes/mysql/scaling" + ] + }, + { + "group": "Source", + "pages": [ + "integrations/clickpipes/mysql/source/rds", + "integrations/clickpipes/mysql/source/aurora", + "integrations/clickpipes/mysql/source/gcp", + "integrations/clickpipes/mysql/source/azure-flexible-server-mysql", + "integrations/clickpipes/mysql/source/generic", + "integrations/clickpipes/mysql/source/rds-maria", + "integrations/clickpipes/mysql/source/generic-maria" + ] + } + ] + }, + { + "group": "ClickPipes for MongoDB", + "pages": [ + "integrations/clickpipes/mongodb/index", + "integrations/clickpipes/mongodb/datatypes", + "integrations/clickpipes/mongodb/quickstart", + "integrations/clickpipes/mongodb/lifecycle", + "integrations/clickpipes/mongodb/faq", + { + "group": "Operations", + "pages": [ + "integrations/clickpipes/mongodb/add-table", + "integrations/clickpipes/mongodb/remove-table", + "integrations/clickpipes/mongodb/pause-and-resume", + "integrations/clickpipes/mongodb/table-resync", + "integrations/clickpipes/mongodb/resync", + "integrations/clickpipes/mongodb/controlling-sync", + "integrations/clickpipes/mongodb/scaling" + ] + }, + { + "group": "Source", + "pages": [ + "integrations/clickpipes/mongodb/source/atlas", + "integrations/clickpipes/mongodb/source/generic", + "integrations/clickpipes/mongodb/source/documentdb" + ] + } + ] + }, + { + "group": "ClickPipes for BigQuery", + "pages": [ + "integrations/clickpipes/bigquery/overview", + "integrations/clickpipes/bigquery/get-started" + ] + }, + { + "group": "Programmatic access", + "pages": [ + "integrations/clickpipes/programmatic-access/openapi", + "integrations/clickpipes/programmatic-access/terraform" + ] + }, + { + "group": "Other", + "pages": [ + "integrations/clickpipes/aws-privatelink", + "integrations/clickpipes/dynamodb", + "integrations/clickpipes/monitoring" + ] + } + ] +} diff --git a/integrations/clickpipes/object-storage/amazon-s3/overview.mdx b/integrations/clickpipes/object-storage/amazon-s3/overview.mdx index ef0e25bc..c93c0327 100644 --- a/integrations/clickpipes/object-storage/amazon-s3/overview.mdx +++ b/integrations/clickpipes/object-storage/amazon-s3/overview.mdx @@ -27,11 +27,11 @@ Due to differences in URL formats and API implementations across object storage ## Supported formats {#supported-formats} -- [JSON](/reference/formats/JSON/JSON) -- [CSV](/reference/formats/CSV/CSV) -- [TSV](/reference/formats/TabSeparated/TabSeparated) -- [Parquet](/reference/formats/Parquet/Parquet) -- [Avro](/reference/formats/Avro/Avro) +- [JSON](/core/reference/formats/JSON/JSON) +- [CSV](/core/reference/formats/CSV/CSV) +- [TSV](/core/reference/formats/TabSeparated/TabSeparated) +- [Parquet](/core/reference/formats/Parquet/Parquet) +- [Avro](/core/reference/formats/Avro/Avro) ## Features {#features} @@ -185,13 +185,13 @@ ClickPipes provides sensible defaults that cover the requirements of most use ca |------------------------------------|---------------|---------------------------------------------------------------------------------------| | `Max insert bytes` | 10GB | Number of bytes to process in a single insert batch. | | `Max file count` | 100 | Maximum number of files to process in a single insert batch. | -| `Max threads` | auto(3) | [Maximum number of concurrent threads](/reference/settings/session-settings#max_threads) for file processing. | -| `Max insert threads` | 1 | [Maximum number of concurrent insert threads](/reference/settings/session-settings#max_insert_threads) for file processing. | -| `Min insert block size bytes` | 1GB | [Minimum size of bytes in the block](/reference/settings/session-settings#min_insert_block_size_bytes) which can be inserted into a table. | -| `Max download threads` | 4 | [Maximum number of concurrent download threads](/reference/settings/session-settings#max_download_threads). | +| `Max threads` | auto(3) | [Maximum number of concurrent threads](/core/reference/settings/session-settings#max_threads) for file processing. | +| `Max insert threads` | 1 | [Maximum number of concurrent insert threads](/core/reference/settings/session-settings#max_insert_threads) for file processing. | +| `Min insert block size bytes` | 1GB | [Minimum size of bytes in the block](/core/reference/settings/session-settings#min_insert_block_size_bytes) which can be inserted into a table. | +| `Max download threads` | 4 | [Maximum number of concurrent download threads](/core/reference/settings/session-settings#max_download_threads). | | `Object storage polling interval` | 30s | Configures the maximum wait period before inserting data into the ClickHouse cluster. | -| `Parallel distributed insert select` | 2 | [Parallel distributed insert select setting](/reference/settings/session-settings#parallel_distributed_insert_select). | -| `Parallel view processing` | false | Whether to enable pushing to attached views [concurrently instead of sequentially](/reference/settings/session-settings#parallel_view_processing). | +| `Parallel distributed insert select` | 2 | [Parallel distributed insert select setting](/core/reference/settings/session-settings#parallel_distributed_insert_select). | +| `Parallel view processing` | false | Whether to enable pushing to attached views [concurrently instead of sequentially](/core/reference/settings/session-settings#parallel_view_processing). | | `Use cluster function` | true | Whether to process files in parallel across multiple nodes. | diff --git a/integrations/clickpipes/object-storage/azure-blob-storage/overview.mdx b/integrations/clickpipes/object-storage/azure-blob-storage/overview.mdx index 7f4ceedc..b8f6eff7 100644 --- a/integrations/clickpipes/object-storage/azure-blob-storage/overview.mdx +++ b/integrations/clickpipes/object-storage/azure-blob-storage/overview.mdx @@ -14,11 +14,11 @@ ABS ClickPipes can be deployed and managed manually using the ClickPipes UI, as ## Supported formats {#supported-formats} -- [JSON](/reference/formats/JSON/JSON) -- [CSV](/reference/formats/CSV/CSV) -- [TSV](/reference/formats/TabSeparated/TabSeparated) -- [Parquet](/reference/formats/Parquet/Parquet) -- [Avro](/reference/formats/Avro/Avro) +- [JSON](/core/reference/formats/JSON/JSON) +- [CSV](/core/reference/formats/CSV/CSV) +- [TSV](/core/reference/formats/TabSeparated/TabSeparated) +- [Parquet](/core/reference/formats/Parquet/Parquet) +- [Avro](/core/reference/formats/Avro/Avro) ## Features {#features} @@ -135,13 +135,13 @@ ClickPipes provides sensible defaults that cover the requirements of most use ca |------------------------------------|---------------|---------------------------------------------------------------------------------------| | `Max insert bytes` | 10GB | Number of bytes to process in a single insert batch. | | `Max file count` | 100 | Maximum number of files to process in a single insert batch. | -| `Max threads` | auto(3) | [Maximum number of concurrent threads](/reference/settings/session-settings#max_threads) for file processing. | -| `Max insert threads` | 1 | [Maximum number of concurrent insert threads](/reference/settings/session-settings#max_insert_threads) for file processing. | -| `Min insert block size bytes` | 1GB | [Minimum size of bytes in the block](/reference/settings/session-settings#min_insert_block_size_bytes) which can be inserted into a table. | -| `Max download threads` | 4 | [Maximum number of concurrent download threads](/reference/settings/session-settings#max_download_threads). | +| `Max threads` | auto(3) | [Maximum number of concurrent threads](/core/reference/settings/session-settings#max_threads) for file processing. | +| `Max insert threads` | 1 | [Maximum number of concurrent insert threads](/core/reference/settings/session-settings#max_insert_threads) for file processing. | +| `Min insert block size bytes` | 1GB | [Minimum size of bytes in the block](/core/reference/settings/session-settings#min_insert_block_size_bytes) which can be inserted into a table. | +| `Max download threads` | 4 | [Maximum number of concurrent download threads](/core/reference/settings/session-settings#max_download_threads). | | `Object storage polling interval` | 30s | Configures the maximum wait period before inserting data into the ClickHouse cluster. | -| `Parallel distributed insert select` | 2 | [Parallel distributed insert select setting](/reference/settings/session-settings#parallel_distributed_insert_select). | -| `Parallel view processing` | false | Whether to enable pushing to attached views [concurrently instead of sequentially](/reference/settings/session-settings#parallel_view_processing). | +| `Parallel distributed insert select` | 2 | [Parallel distributed insert select setting](/core/reference/settings/session-settings#parallel_distributed_insert_select). | +| `Parallel view processing` | false | Whether to enable pushing to attached views [concurrently instead of sequentially](/core/reference/settings/session-settings#parallel_view_processing). | | `Use cluster function` | true | Whether to process files in parallel across multiple nodes. | diff --git a/integrations/clickpipes/object-storage/google-cloud-storage/overview.mdx b/integrations/clickpipes/object-storage/google-cloud-storage/overview.mdx index 5150b570..1ec05140 100644 --- a/integrations/clickpipes/object-storage/google-cloud-storage/overview.mdx +++ b/integrations/clickpipes/object-storage/google-cloud-storage/overview.mdx @@ -14,11 +14,11 @@ GCS ClickPipes can be deployed and managed manually using the ClickPipes UI, as ## Supported formats {#supported-formats} -- [JSON](/reference/formats/JSON/JSON) -- [CSV](/reference/formats/CSV/CSV) -- [TSV](/reference/formats/TabSeparated/TabSeparated) -- [Parquet](/reference/formats/Parquet/Parquet) -- [Avro](/reference/formats/Avro/Avro) +- [JSON](/core/reference/formats/JSON/JSON) +- [CSV](/core/reference/formats/CSV/CSV) +- [TSV](/core/reference/formats/TabSeparated/TabSeparated) +- [Parquet](/core/reference/formats/Parquet/Parquet) +- [Avro](/core/reference/formats/Avro/Avro) ## Features {#features} @@ -144,13 +144,13 @@ ClickPipes provides sensible defaults that cover the requirements of most use ca |------------------------------------|---------------|---------------------------------------------------------------------------------------| | `Max insert bytes` | 10GB | Number of bytes to process in a single insert batch. | | `Max file count` | 100 | Maximum number of files to process in a single insert batch. | -| `Max threads` | auto(3) | [Maximum number of concurrent threads](/reference/settings/session-settings#max_threads) for file processing. | -| `Max insert threads` | 1 | [Maximum number of concurrent insert threads](/reference/settings/session-settings#max_insert_threads) for file processing. | -| `Min insert block size bytes` | 1GB | [Minimum size of bytes in the block](/reference/settings/session-settings#min_insert_block_size_bytes) which can be inserted into a table. | -| `Max download threads` | 4 | [Maximum number of concurrent download threads](/reference/settings/session-settings#max_download_threads). | +| `Max threads` | auto(3) | [Maximum number of concurrent threads](/core/reference/settings/session-settings#max_threads) for file processing. | +| `Max insert threads` | 1 | [Maximum number of concurrent insert threads](/core/reference/settings/session-settings#max_insert_threads) for file processing. | +| `Min insert block size bytes` | 1GB | [Minimum size of bytes in the block](/core/reference/settings/session-settings#min_insert_block_size_bytes) which can be inserted into a table. | +| `Max download threads` | 4 | [Maximum number of concurrent download threads](/core/reference/settings/session-settings#max_download_threads). | | `Object storage polling interval` | 30s | Configures the maximum wait period before inserting data into the ClickHouse cluster. | -| `Parallel distributed insert select` | 2 | [Parallel distributed insert select setting](/reference/settings/session-settings#parallel_distributed_insert_select). | -| `Parallel view processing` | false | Whether to enable pushing to attached views [concurrently instead of sequentially](/reference/settings/session-settings#parallel_view_processing). | +| `Parallel distributed insert select` | 2 | [Parallel distributed insert select setting](/core/reference/settings/session-settings#parallel_distributed_insert_select). | +| `Parallel view processing` | false | Whether to enable pushing to attached views [concurrently instead of sequentially](/core/reference/settings/session-settings#parallel_view_processing). | | `Use cluster function` | true | Whether to process files in parallel across multiple nodes. | diff --git a/integrations/clickpipes/postgres/connecting-to-postgresql.mdx b/integrations/clickpipes/postgres/connecting-to-postgresql.mdx index 072185fd..83501650 100644 --- a/integrations/clickpipes/postgres/connecting-to-postgresql.mdx +++ b/integrations/clickpipes/postgres/connecting-to-postgresql.mdx @@ -111,7 +111,7 @@ Check the ClickHouse [Cloud Endpoints API](/products/cloud/guides/sql-console/qu |password |password to connect to postgres|ClickHouse_123 | - View the [PostgreSQL table engine](/reference/engines/table-engines/integrations/postgresql) doc page for a complete list of parameters. + View the [PostgreSQL table engine](/core/reference/engines/table-engines/integrations/postgresql) doc page for a complete list of parameters. ### 3 Test the Integration {#3-test-the-integration} @@ -181,7 +181,7 @@ Check the ClickHouse [Cloud Endpoints API](/products/cloud/guides/sql-console/qu ``` This example demonstrated the basic integration between PostgreSQL and ClickHouse using the `PostrgeSQL` table engine. -Check out the [doc page for the PostgreSQL table engine](/reference/engines/table-engines/integrations/postgresql) for more features, such as specifying schemas, returning only a subset of columns, and connecting to multiple replicas. Also check out the [ClickHouse and PostgreSQL - a match made in data heaven - part 1](https://clickhouse.com/blog/migrating-data-between-clickhouse-postgres) blog. +Check out the [doc page for the PostgreSQL table engine](/core/reference/engines/table-engines/integrations/postgresql) for more features, such as specifying schemas, returning only a subset of columns, and connecting to multiple replicas. Also check out the [ClickHouse and PostgreSQL - a match made in data heaven - part 1](https://clickhouse.com/blog/migrating-data-between-clickhouse-postgres) blog. ## Using the MaterializedPostgreSQL database engine {#using-the-materializedpostgresql-database-engine} @@ -341,5 +341,5 @@ Query id: b0729816-3917-44d3-8d1a-fed912fb59ce This integration guide focused on a simple example on how to replicate a database with a table, however, there exist more advanced options which include replicating the whole database or adding new tables and schemas to the existing replications. Although DDL commands aren't supported for this replication, the engine can be set to detect changes and reload the tables when there are structural changes made. -For more features available for advanced options, please see the [reference documentation](/reference/engines/database-engines/materialized-postgresql). +For more features available for advanced options, please see the [reference documentation](/core/reference/engines/database-engines/materialized-postgresql). diff --git a/integrations/clickpipes/postgres/deduplication.mdx b/integrations/clickpipes/postgres/deduplication.mdx index 72821b5b..03a8108d 100644 --- a/integrations/clickpipes/postgres/deduplication.mdx +++ b/integrations/clickpipes/postgres/deduplication.mdx @@ -22,7 +22,7 @@ ClickPipes uses [Postgres Logical Decoding](https://www.pgedge.com/blog/logical- ### ReplacingMergeTree {#replacingmergetree} -ClickPipes maps Postgres tables to ClickHouse using the [ReplacingMergeTree](/reference/engines/table-engines/mergetree-family/replacingmergetree) engine. ClickHouse performs best with append-only workloads and doesn't recommend frequent UPDATEs. This is where ReplacingMergeTree is particularly powerful. +ClickPipes maps Postgres tables to ClickHouse using the [ReplacingMergeTree](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) engine. ClickHouse performs best with append-only workloads and doesn't recommend frequent UPDATEs. This is where ReplacingMergeTree is particularly powerful. With ReplacingMergeTree, updates are modeled as inserts with a newer version (`_peerdb_version`) of the row, while deletes are inserts with a newer version and `_peerdb_is_deleted` marked as true. The ReplacingMergeTree engine deduplicates/merges data in the background, and retains the latest version of the row for a given primary key (id), enabling efficient handling of UPDATEs and DELETEs as versioned inserts. @@ -64,13 +64,13 @@ The illustration below walks through a basic example of synchronization of a tab **Step 3** shows how ClickPipes replicates the INSERT, UPDATE, and DELETE operations to ClickHouse as versioned inserts. The UPDATE appears as a new version of the row with ID 2, while the DELETE appears as a new version of ID 1 which is marked as true using `_is_deleted`. Because of this, ClickHouse has three additional rows compared to PostgreSQL. -As a result, running a simple query like `SELECT count(*) FROM users;` may produce different results in ClickHouse and PostgreSQL. According to the [ClickHouse merge documentation](/concepts/core-concepts/merges#replacing-merges), outdated row versions are eventually discarded during the merge process. However, the timing of this merge is unpredictable, meaning queries in ClickHouse may return inconsistent results until it occurs. +As a result, running a simple query like `SELECT count(*) FROM users;` may produce different results in ClickHouse and PostgreSQL. According to the [ClickHouse merge documentation](/core/concepts/core-concepts/merges#replacing-merges), outdated row versions are eventually discarded during the merge process. However, the timing of this merge is unpredictable, meaning queries in ClickHouse may return inconsistent results until it occurs. How can we ensure identical query results in both ClickHouse and PostgreSQL? ### Deduplicate using FINAL Keyword {#deduplicate-using-final-keyword} -The recommended way to deduplicate data in ClickHouse queries is to use the [FINAL modifier.](/reference/statements/select/from#final-modifier) This ensures only the deduplicated rows are returned. +The recommended way to deduplicate data in ClickHouse queries is to use the [FINAL modifier.](/core/reference/statements/select/from#final-modifier) This ensures only the deduplicated rows are returned. Let's look at how to apply it to three different queries. @@ -124,7 +124,7 @@ LIMIT 10 #### FINAL setting {#final-setting} -Rather than adding the FINAL modifier to each table name in the query, you can use the [FINAL setting](/reference/settings/session-settings#final) to apply it automatically to all tables in the query. +Rather than adding the FINAL modifier to each table name in the query, you can use the [FINAL setting](/core/reference/settings/session-settings#final) to apply it automatically to all tables in the query. This setting can be applied either per query or for an entire session. @@ -139,7 +139,7 @@ SELECT count(*) FROM posts; #### ROW policy {#row-policy} -An easy way to hide the redundant `_peerdb_is_deleted = 0` filter is to use [ROW policy.](/concepts/features/security/access-rights#row-policy-management) Below is an example that creates a row policy to exclude the deleted rows from all queries on the table votes. +An easy way to hide the redundant `_peerdb_is_deleted = 0` filter is to use [ROW policy.](/core/concepts/features/security/access-rights#row-policy-management) Below is an example that creates a row policy to exclude the deleted rows from all queries on the table votes. ```sql -- Apply row policy to all users @@ -156,7 +156,7 @@ This section will explore techniques for deduplicating data while keeping the or #### Views {#views} -[Views](/reference/statements/create/view#normal-view) are a great way to hide the FINAL keyword from the query, as they don't store any data and simply perform a read from another table on each access. +[Views](/core/reference/statements/create/view#normal-view) are a great way to hide the FINAL keyword from the query, as they don't store any data and simply perform a read from another table on each access. Below is an example of creating views for each table of our database in ClickHouse with the FINAL keyword and filter for the deleted rows. @@ -183,7 +183,7 @@ LIMIT 10 #### Refreshable materialized view {#refreshable-material-view} -Another approach is to use a [refreshable materialized view](/concepts/features/materialized-views/refreshable-materialized-view), which enables you to schedule query execution for deduplicating rows and storing the results in a destination table. With each scheduled refresh, the destination table is replaced with the latest query results. +Another approach is to use a [refreshable materialized view](/core/concepts/features/materialized-views/refreshable-materialized-view), which enables you to schedule query execution for deduplicating rows and storing the results in a destination table. With each scheduled refresh, the destination table is replaced with the latest query results. The key advantage of this method is that the query using the FINAL keyword runs only once during the refresh, eliminating the need for subsequent queries on the destination table to use FINAL. diff --git a/integrations/clickpipes/postgres/faq.mdx b/integrations/clickpipes/postgres/faq.mdx index 562c07bd..084c4664 100644 --- a/integrations/clickpipes/postgres/faq.mdx +++ b/integrations/clickpipes/postgres/faq.mdx @@ -22,7 +22,7 @@ Yes. Your source Postgres and destination ClickHouse have independent retention. ### How can I enrich data as it flows from Postgres to ClickHouse? {#data-enrichment} -Use [materialized views](/concepts/features/materialized-views) on top of your CDC destination tables. Materialized views in ClickHouse act as insert triggers, so each row replicated from Postgres can be transformed, joined with lookup tables, or enriched with additional columns before being written to a final target table. +Use [materialized views](/core/concepts/features/materialized-views) on top of your CDC destination tables. Materialized views in ClickHouse act as insert triggers, so each row replicated from Postgres can be transformed, joined with lookup tables, or enriched with additional columns before being written to a final target table. ### Can I replicate from multiple Postgres instances into one or more ClickHouse services? {#multi-region-multi-source} @@ -164,7 +164,7 @@ Currently, we don't support defining custom data type mappings as part of the pi ### How are JSON and JSONB columns replicated from Postgres? {#how-are-json-and-jsonb-columns-replicated-from-postgres} -JSON and JSONB columns are replicated as String type in ClickHouse. Since ClickHouse supports a native [JSON type](/reference/data-types/newjson), you can create a materialized view over the ClickPipes tables to perform the translation if needed. Alternatively, you can use [JSON functions](/reference/functions/regular-functions/json-functions) directly on the String columns. We're actively working on a feature that replicates JSON and JSONB columns directly to the JSON type in ClickHouse. This feature is expected to be available in a few months. +JSON and JSONB columns are replicated as String type in ClickHouse. Since ClickHouse supports a native [JSON type](/core/reference/data-types/newjson), you can create a materialized view over the ClickPipes tables to perform the translation if needed. Alternatively, you can use [JSON functions](/core/reference/functions/regular-functions/json-functions) directly on the String columns. We're actively working on a feature that replicates JSON and JSONB columns directly to the JSON type in ClickHouse. This feature is expected to be available in a few months. ### What happens to inserts when a mirror is paused? {#what-happens-to-inserts-when-a-mirror-is-paused} diff --git a/integrations/clickpipes/postgres/index.mdx b/integrations/clickpipes/postgres/index.mdx index 2ef09af7..306f651c 100644 --- a/integrations/clickpipes/postgres/index.mdx +++ b/integrations/clickpipes/postgres/index.mdx @@ -139,6 +139,6 @@ You can configure the Advanced settings if needed. A brief description of each s ## What's next? {#whats-next} -Once you've set up your ClickPipe to replicate data from PostgreSQL to ClickHouse Cloud, you can focus on how to query and model your data for optimal performance. See the [migration guide](/get-started/setup/migration-guides/postgres/overview) to assess which strategy best suits your requirements, as well as the [Deduplication strategies (using CDC)](/integrations/clickpipes/postgres/deduplication) and [Ordering Keys](/integrations/clickpipes/postgres/ordering-keys) pages for best practices on CDC workloads. +Once you've set up your ClickPipe to replicate data from PostgreSQL to ClickHouse Cloud, you can focus on how to query and model your data for optimal performance. See the [migration guide](/core/get-started/setup/migration-guides/postgres/overview) to assess which strategy best suits your requirements, as well as the [Deduplication strategies (using CDC)](/integrations/clickpipes/postgres/deduplication) and [Ordering Keys](/integrations/clickpipes/postgres/ordering-keys) pages for best practices on CDC workloads. For common questions around PostgreSQL CDC and troubleshooting, see the [Postgres FAQs page](/integrations/clickpipes/postgres/faq). diff --git a/integrations/clickpipes/postgres/inserting-data.mdx b/integrations/clickpipes/postgres/inserting-data.mdx index ab4fb741..062c7833 100644 --- a/integrations/clickpipes/postgres/inserting-data.mdx +++ b/integrations/clickpipes/postgres/inserting-data.mdx @@ -6,11 +6,11 @@ description: 'Page describing how to insert data from PostgresSQL using ClickPip doc_type: 'guide' --- -We recommend reading [this guide](/get-started/oss/starter-guides/inserting-data) to learn best practices on inserting data to ClickHouse to optimize for insert performance. +We recommend reading [this guide](/core/concepts/features/operations/insert/inserting-data) to learn best practices on inserting data to ClickHouse to optimize for insert performance. For bulk loading data from PostgreSQL, you can use: - using [ClickPipes](/integrations/clickpipes/postgres), the managed integration service for ClickHouse Cloud. - `PeerDB by ClickHouse`, an ETL tool specifically designed for PostgreSQL database replication to both self-hosted ClickHouse and ClickHouse Cloud. -- The [Postgres Table Function](/reference/functions/table-functions/postgresql) to read data directly. This is typically appropriate for if batch replication based on a known watermark, e.g. a timestamp. is sufficient or if it's a once-off migration. This approach can scale to 10's of millions of rows. Users looking to migrate larger datasets should consider multiple requests, each dealing with a chunk of the data. Staging tables can be used for each chunk prior to its partitions being moved to a final table. This allows failed requests to be retried. For further details on this bulk-loading strategy, see here. +- The [Postgres Table Function](/core/reference/functions/table-functions/postgresql) to read data directly. This is typically appropriate for if batch replication based on a known watermark, e.g. a timestamp. is sufficient or if it's a once-off migration. This approach can scale to 10's of millions of rows. Users looking to migrate larger datasets should consider multiple requests, each dealing with a chunk of the data. Staging tables can be used for each chunk prior to its partitions being moved to a final table. This allows failed requests to be retried. For further details on this bulk-loading strategy, see here. - Data can be exported from Postgres in CSV format. This can then be inserted into ClickHouse from either local files or via object storage using table functions. diff --git a/integrations/clickpipes/postgres/maintenance.mdx b/integrations/clickpipes/postgres/maintenance.mdx deleted file mode 100644 index 234e52ae..00000000 --- a/integrations/clickpipes/postgres/maintenance.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -sidebarTitle: 'Maintenance windows' -description: 'Maintenance windows for ClickPipes for Postgres.' -slug: /integrations/clickpipes/postgres/maintenance -title: 'Maintenance windows for ClickPipes for Postgres' -doc_type: 'reference' -keywords: ['clickpipes', 'postgresql', 'cdc', 'data ingestion', 'real-time sync'] -integration: - - support_level: 'core' - - category: 'clickpipes' ---- - -There is an upcoming maintenance window for Postgres ClickPipes scheduled on: -- **Date:** 17 April 2025 -- **Time:** 07:00 AM - 08:00 AM UTC - -During this time, your Postgres Pipes will experience a brief downtime. -The ClickPipes will be available again after the maintenance window and will resume normal operations. diff --git a/integrations/clickpipes/postgres/ordering-keys.mdx b/integrations/clickpipes/postgres/ordering-keys.mdx index af71e499..e3af8add 100644 --- a/integrations/clickpipes/postgres/ordering-keys.mdx +++ b/integrations/clickpipes/postgres/ordering-keys.mdx @@ -12,13 +12,13 @@ integration: Ordering Keys (a.k.a. sorting keys) define how data is sorted on disk and indexed for a table in ClickHouse. When replicating from Postgres, ClickPipes by default uses the Postgres primary key of a table as the ordering key for the corresponding table in ClickHouse. In most cases, the Postgres primary key serves as a sufficient ordering key, as ClickHouse is already optimized for fast scans, and custom ordering keys are often not required. -As describe in the [migration guide](/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3), for larger use cases you should include additional columns beyond the Postgres primary key in the ClickHouse ordering key to optimize queries. +As describe in the [migration guide](/core/get-started/setup/migration-guides/postgres/migration-guide/migration-guide-part3), for larger use cases you should include additional columns beyond the Postgres primary key in the ClickHouse ordering key to optimize queries. By default with CDC, choosing an ordering key different from the Postgres primary key can cause data deduplication issues in ClickHouse. This happens because the ordering key in ClickHouse serves a dual role: it controls data indexing and sorting while acting as the deduplication key. The easiest way to address this issue is by defining refreshable materialized views. ## Use refreshable materialized views {#use-refreshable-materialized-views} -A simple way to define custom ordering keys (ORDER BY) is using [refreshable materialized views](/concepts/features/materialized-views/refreshable-materialized-view) (MVs). These allow you to periodically (e.g., every 5 or 10 minutes) copy the entire table with the desired ordering key. +A simple way to define custom ordering keys (ORDER BY) is using [refreshable materialized views](/core/concepts/features/materialized-views/refreshable-materialized-view) (MVs). These allow you to periodically (e.g., every 5 or 10 minutes) copy the entire table with the desired ordering key. Below is an example of a Refreshable MV with a custom ORDER BY and required deduplication: diff --git a/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse.mdx b/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse.mdx index a1a07867..33d7c76d 100644 --- a/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse.mdx +++ b/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse.mdx @@ -26,8 +26,8 @@ s3(path, [aws_access_key_id, aws_secret_access_key,] [format, [structure, [compr where: -* path — Bucket URL with a path to the file. This supports following wildcards in read-only mode: `*`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` are numbers, `'abc'`, `'def'` are strings. For more information, see the docs on [using wildcards in path](/reference/engines/table-engines/integrations/s3#wildcards-in-path). -* format — The [format](/reference/formats#formats-overview) of the file. +* path — Bucket URL with a path to the file. This supports following wildcards in read-only mode: `*`, `?`, `{abc,def}` and `{N..M}` where `N`, `M` are numbers, `'abc'`, `'def'` are strings. For more information, see the docs on [using wildcards in path](/core/reference/engines/table-engines/integrations/s3#wildcards-in-path). +* format — The [format](/core/reference/formats#formats-overview) of the file. * structure — Structure of the table. Format `'column1_name column1_type, column2_name column2_type, ...'`. * compression — Parameter is optional. Supported values: `none`, `gzip/gz`, `brotli/br`, `xz/LZMA`, `zstd/zst`. By default, it will autodetect compression by file extension. @@ -95,7 +95,7 @@ DESCRIBE TABLE s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc └───────────────────────┴────────────────────┘ ``` -To interact with our S3-based dataset, we prepare a standard `MergeTree` table as our destination. The statement below creates a table named `trips` in the default database. Note that we have chosen to modify some of those data types as inferred above, particularly to not use the [`Nullable()`](/reference/data-types/nullable) data type modifier, which could cause some unnecessary additional stored data and some additional performance overhead: +To interact with our S3-based dataset, we prepare a standard `MergeTree` table as our destination. The statement below creates a table named `trips` in the default database. Note that we have chosen to modify some of those data types as inferred above, particularly to not use the [`Nullable()`](/core/reference/data-types/nullable) data type modifier, which could cause some unnecessary additional stored data and some additional performance overhead: ```sql CREATE TABLE trips @@ -151,7 +151,7 @@ PARTITION BY toYYYYMM(pickup_date) ORDER BY pickup_datetime ``` -Note the use of [partitioning](/reference/engines/table-engines/mergetree-family/custom-partitioning-key) on the `pickup_date` field. Usually a partition key is for data management, but later on we will use this key to parallelize writes to S3. +Note the use of [partitioning](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key) on the `pickup_date` field. Usually a partition key is for data management, but later on we will use this key to parallelize writes to S3. Each entry in our taxi dataset contains a taxi trip. This anonymized data consists of 20M records compressed in the S3 bucket https://datasets-documentation.s3.eu-west-3.amazonaws.com/ under the folder **nyc-taxi**. The data is in the TSV format with approximately 1M rows per file. @@ -167,7 +167,7 @@ LIMIT 10; Note that we're not required to list the columns since the `TabSeparatedWithNames` format encodes the column names in the first row. Other formats, such as `CSV` or `TSV`, will return auto-generated columns for this query, e.g., `c1`, `c2`, `c3` etc. -Queries additionally support [virtual columns](/reference/functions/table-functions/s3#virtual-columns), like `_path` and `_file`, that provide information regarding the bucket path and filename respectively. For example: +Queries additionally support [virtual columns](/core/reference/functions/table-functions/s3#virtual-columns), like `_path` and `_file`, that provide information regarding the bucket path and filename respectively. For example: ```sql SELECT _path, _file, trip_id @@ -291,7 +291,7 @@ LIMIT 100000; ### Utilizing clusters {#utilizing-clusters} -The above functions are all limited to execution on a single node. Read speeds will scale linearly with CPU cores until other resources (typically network) are saturated, allowing users to vertically scale. However, this approach has its limitations. While you can alleviate some resource pressure by inserting into a distributed table when performing an `INSERT INTO SELECT` query, this still leaves a single node reading, parsing, and processing the data. To address this challenge and allow us to scale reads horizontally, we have the [s3Cluster](/reference/functions/table-functions/s3Cluster) function. +The above functions are all limited to execution on a single node. Read speeds will scale linearly with CPU cores until other resources (typically network) are saturated, allowing users to vertically scale. However, this approach has its limitations. While you can alleviate some resource pressure by inserting into a distributed table when performing an `INSERT INTO SELECT` query, this still leaves a single node reading, parsing, and processing the data. To address this challenge and allow us to scale reads horizontally, we have the [s3Cluster](/core/reference/functions/table-functions/s3Cluster) function. The node which receives the query, known as the initiator, creates a connection to every node in the cluster. The glob pattern determining which files need to be read is resolved to a set of files. The initiator distributes files to the nodes in the cluster, which act as workers. These workers, in turn, request files to process as they complete reads. This process ensures that we can scale reads horizontally. @@ -302,9 +302,9 @@ s3Cluster(cluster_name, source, [access_key_id, secret_access_key,] format, stru ``` * `cluster_name` — Name of a cluster that is used to build a set of addresses and connection parameters to remote and local servers. -* `source` — URL to a file or a bunch of files. Supports following wildcards in read-only mode: `*`, `?`, `{'abc','def'}` and `{N..M}` where N, M — numbers, abc, def — strings. For more information see [Wildcards In Path](/reference/engines/table-engines/integrations/s3#wildcards-in-path). +* `source` — URL to a file or a bunch of files. Supports following wildcards in read-only mode: `*`, `?`, `{'abc','def'}` and `{N..M}` where N, M — numbers, abc, def — strings. For more information see [Wildcards In Path](/core/reference/engines/table-engines/integrations/s3#wildcards-in-path). * `access_key_id` and `secret_access_key` — Keys that specify credentials to use with the given endpoint. Optional. -* `format` — The [format](/reference/formats#formats-overview) of the file. +* `format` — The [format](/core/reference/formats#formats-overview) of the file. * `structure` — Structure of the table. Format 'column1_name column1_type, column2_name column2_type, ...'. Like any `s3` functions, the credentials are optional if the bucket is insecure or you define security through the environment, e.g., IAM roles. Unlike the s3 function, however, the structure must be specified in the request as of 22.3.1, i.e., the schema isn't inferred. @@ -321,7 +321,7 @@ INSERT INTO default.trips_all ) ``` -Inserts will occur against the initiator node. This means that while reads will occur on each node, the resulting rows will be routed to the initiator for distribution. In high throughput scenarios, this may prove a bottleneck. To address this, set the parameter [parallel_distributed_insert_select](/reference/settings/session-settings#parallel_distributed_insert_select) for the `s3cluster` function. +Inserts will occur against the initiator node. This means that while reads will occur on each node, the resulting rows will be routed to the initiator for distribution. In high throughput scenarios, this may prove a bottleneck. To address this, set the parameter [parallel_distributed_insert_select](/core/reference/settings/session-settings#parallel_distributed_insert_select) for the `s3cluster` function. ## S3 table engines {#s3-table-engines} @@ -333,8 +333,8 @@ CREATE TABLE s3_engine_table (name String, value UInt32) [SETTINGS ...] ``` -* `path` — Bucket URL with a path to the file. Supports following wildcards in read-only mode: `*`, `?`, `{abc,def}` and `{N..M}` where N, M — numbers, 'abc', 'def' — strings. For more information, see [here](/reference/engines/table-engines/integrations/s3#wildcards-in-path). -* `format` — The[ format](/reference/formats#formats-overview) of the file. +* `path` — Bucket URL with a path to the file. Supports following wildcards in read-only mode: `*`, `?`, `{abc,def}` and `{N..M}` where N, M — numbers, 'abc', 'def' — strings. For more information, see [here](/core/reference/engines/table-engines/integrations/s3#wildcards-in-path). +* `format` — The[ format](/core/reference/formats#formats-overview) of the file. * `aws_access_key_id`, `aws_secret_access_key` - Long-term credentials for the AWS account user. You can use these to authenticate your requests. The parameter is optional. If credentials aren't specified, configuration file values are used. For more information, see [Managing credentials](#managing-credentials). * `compression` — Compression type. Supported values: none, gzip/gz, brotli/br, xz/LZMA, zstd/zst. The parameter is optional. By default, it will autodetect compression by file extension. @@ -469,7 +469,7 @@ Both of these settings default to 0 - thus forcing the user to set one of them. Some notes about the `S3` table engine: - Unlike a traditional `MergeTree` family table, dropping an `S3` table won't delete the underlying data. -- Full settings for this table type can be found [here](/reference/engines/table-engines/integrations/s3#settings). +- Full settings for this table type can be found [here](/core/reference/engines/table-engines/integrations/s3#settings). - Be aware of the following caveats when using this engine: * ALTER queries aren't supported * SAMPLE operations aren't supported @@ -496,7 +496,7 @@ In the previous examples, we have passed credentials in the `s3` function or `S3 ``` - These credentials will be used for any requests where the endpoint above is an exact prefix match for the requested URL. Also, note the ability in this example to declare an authorization header as an alternative to access and secret keys. A complete list of supported settings can be found [here](/reference/engines/table-engines/integrations/s3#settings). + These credentials will be used for any requests where the endpoint above is an exact prefix match for the requested URL. Also, note the ability in this example to declare an authorization header as an alternative to access and secret keys. A complete list of supported settings can be found [here](/core/reference/engines/table-engines/integrations/s3#settings). * The example above highlights the availability of the configuration parameter `use_environment_credentials`. This configuration parameter can also be set globally at the `s3` level: @@ -523,7 +523,7 @@ For how to optimize reading and inserting using the S3 function, see the [dedica ### S3 storage tuning {#s3-storage-tuning} -Internally, the ClickHouse merge tree uses two primary storage formats: [`Wide` and `Compact`](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage). While the current implementation uses the default behavior of ClickHouse (controlled through the settings `min_bytes_for_wide_part` and `min_rows_for_wide_part`), we expect behavior to diverge for S3 in the future releases, e.g., a larger default value of `min_bytes_for_wide_part` encouraging a more `Compact` format and thus fewer files. You may now wish to tune these settings when using exclusively S3 storage. +Internally, the ClickHouse merge tree uses two primary storage formats: [`Wide` and `Compact`](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage). While the current implementation uses the default behavior of ClickHouse (controlled through the settings `min_bytes_for_wide_part` and `min_rows_for_wide_part`), we expect behavior to diverge for S3 in the future releases, e.g., a larger default value of `min_bytes_for_wide_part` encouraging a more `Compact` format and thus fewer files. You may now wish to tune these settings when using exclusively S3 storage. ## S3 backed MergeTree {#s3-backed-mergetree} @@ -567,7 +567,7 @@ To utilize an S3 bucket as a disk, we must first declare it within the ClickHous ``` -A complete list of settings relevant to this disk declaration can be found [here](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). Note that credentials can be managed here using the same approaches described in [Managing credentials](#managing-credentials), i.e., the use_environment_credentials can be set to true in the above settings block to use IAM roles. +A complete list of settings relevant to this disk declaration can be found [here](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). Note that credentials can be managed here using the same approaches described in [Managing credentials](#managing-credentials), i.e., the use_environment_credentials can be set to true in the above settings block to use IAM roles. ### Creating a storage policy {#creating-a-storage-policy} @@ -675,7 +675,7 @@ Replication with S3 disks can be accomplished by using the `ReplicatedMergeTree` The following notes cover the implementation of S3 interactions with ClickHouse. Whilst generally only informative, it may help the readers when [Optimizing for Performance](#s3-optimizing-performance): -* By default, the maximum number of query processing threads used by any stage of the query processing pipeline is equal to the number of cores. Some stages are more parallelizable than others, so this value provides an upper bound. Multiple query stages may execute at once since data is streamed from the disk. The exact number of threads used for a query may thus exceed this. Modify through the setting [max_threads](/reference/settings/session-settings#max_threads). +* By default, the maximum number of query processing threads used by any stage of the query processing pipeline is equal to the number of cores. Some stages are more parallelizable than others, so this value provides an upper bound. Multiple query stages may execute at once since data is streamed from the disk. The exact number of threads used for a query may thus exceed this. Modify through the setting [max_threads](/core/reference/settings/session-settings#max_threads). * Reads on S3 are asynchronous by default. This behavior is determined by setting `remote_filesystem_read_method`, set to the value `threadpool` by default. When serving a request, ClickHouse reads granules in stripes. Each of these stripes potentially contain many columns. A thread will read the columns for their granules one by one. Rather than doing this synchronously, a prefetch is made for all columns before waiting for the data. This offers significant performance improvements over synchronous waits on each column. You won't need to change this setting in most cases - see [Optimizing for Performance](#s3-optimizing-performance). * Writes are performed in parallel, with a maximum of 100 concurrent file writing threads. `max_insert_delayed_streams_for_parallel_write`, which has a default value of 1000, controls the number of S3 blobs written in parallel. Since a buffer is required for each file being written (~1MB), this effectively limits the memory consumption of an INSERT. It may be appropriate to lower this value in low server memory scenarios. @@ -726,7 +726,7 @@ vim /etc/clickhouse-server/config.d/storage_config.xml The tags `s3_disk` and `s3_cache` within the `` tag are arbitrary labels. These can be set to something else but the same label must be used in the `` tab under the `` tab to reference the disk. The `` tag is also arbitrary and is the name of the policy which will be used as the identifier storage target when creating resources in ClickHouse. -The configuration shown above is for ClickHouse version 22.8 or higher, if you're using an older version please see the [storing data](/concepts/features/configuration/server-config/storing-data#using-local-cache) docs. +The configuration shown above is for ClickHouse version 22.8 or higher, if you're using an older version please see the [storing data](/core/concepts/features/configuration/server-config/storing-data#using-local-cache) docs. For more information about using S3: Integrations Guide: [S3 Backed MergeTree](#s3-backed-mergetree) @@ -823,7 +823,7 @@ ClickHouse tables are replicated across the two servers, and therefore across th ### Install software {#install-software} #### ClickHouse server nodes {#clickhouse-server-nodes} -Refer to the [installation instructions](/get-started/setup/self-managed/install) when performing the deployment steps on the ClickHouse server nodes. +Refer to the [installation instructions](/core/get-started/setup/install) when performing the deployment steps on the ClickHouse server nodes. #### Deploy ClickHouse {#deploy-clickhouse} @@ -835,7 +835,7 @@ Place `chnode1` in one AWS region, and `chnode2` in a second. Deploy ClickHouse Keeper on three hosts, in the sample configurations these are named `keepernode1`, `keepernode2`, and `keepernode3`. `keepernode1` can be deployed in the same region as `chnode1`, `keepernode2` with `chnode2`, and `keepernode3` in either region but a different availability zone from the ClickHouse node in that region. -Refer to the [installation instructions](/get-started/setup/self-managed/install) when performing the deployment steps on the ClickHouse Keeper nodes. +Refer to the [installation instructions](/core/get-started/setup/install) when performing the deployment steps on the ClickHouse Keeper nodes. ### Create S3 buckets {#create-s3-buckets} @@ -1017,7 +1017,7 @@ ClickHouse Keeper is responsible for coordinating the replication of data across ### Configure networking {#configure-networking} -See the [network ports](/concepts/features/security/network-ports) list when you configure the security settings in AWS so that your servers can communicate with each other, and you can communicate with them. +See the [network ports](/core/concepts/features/security/network-ports) list when you configure the security settings in AWS so that your servers can communicate with each other, and you can communicate with them. All three servers must listen for network connections so that they can communicate between the servers and with S3. By default, ClickHouse listens only on the loopback address, so this must be changed. This is configured in `/etc/clickhouse-server/config.d/`. Here is a sample that configures ClickHouse and ClickHouse Keeper to listen on all IP v4 interfaces. see the documentation or the default configuration file `/etc/clickhouse/config.xml` for more information. @@ -1139,7 +1139,7 @@ When you added the [cluster configuration](#define-a-cluster) a single shard rep 1 row in set. Elapsed: 0.012 sec. ``` - You can customize the zookeeper path `'clickhouse/tables/{uuid}/{shard}` shown above by setting `default_replica_path` and `default_replica_name`. The docs are [here](/reference/settings/server-settings/settings#default_replica_path). + You can customize the zookeeper path `'clickhouse/tables/{uuid}/{shard}` shown above by setting `default_replica_path` and `default_replica_name`. The docs are [here](/core/reference/settings/server-settings/settings#default_replica_path). ### Testing {#testing-1} diff --git a/integrations/connectors/data-ingestion/AWS/performance.mdx b/integrations/connectors/data-ingestion/AWS/performance.mdx index fff63c40..892f5acd 100644 --- a/integrations/connectors/data-ingestion/AWS/performance.mdx +++ b/integrations/connectors/data-ingestion/AWS/performance.mdx @@ -9,10 +9,10 @@ keywords: ['s3', 'performance', 'optimization', 'object storage', 'data loading' import { Image } from "/snippets/components/Image.jsx"; -This section focuses on optimizing performance when reading and inserting data from S3 using the [s3 table functions](/reference/functions/table-functions/s3). +This section focuses on optimizing performance when reading and inserting data from S3 using the [s3 table functions](/core/reference/functions/table-functions/s3). -**The lesson described in this guide can be applied to other object storage implementations with their own dedicated table functions such as [GCS](/reference/functions/table-functions/gcs) and [Azure Blob storage](/reference/functions/table-functions/azureBlobStorage).** +**The lesson described in this guide can be applied to other object storage implementations with their own dedicated table functions such as [GCS](/core/reference/functions/table-functions/gcs) and [Azure Blob storage](/core/reference/functions/table-functions/azureBlobStorage).** Before tuning threads and block sizes to improve insert performance, we recommend users understand the mechanics of S3 inserts. If you're familiar with the insert mechanics, or just want some quick tips, skip to our example [below](/integrations/connectors/data-ingestion/AWS/performance#example-dataset). @@ -25,7 +25,7 @@ Two main factors, in addition to hardware size, influence the performance and re -When performing an `INSERT INTO SELECT`, ClickHouse receives some data portion, and ① forms (at least) one in-memory insert block (per [partitioning key](/reference/engines/table-engines/mergetree-family/custom-partitioning-key)) from the received data. The block's data is sorted, and table engine-specific optimizations are applied. The data is then compressed and ② written to the database storage in the form of a new data part. +When performing an `INSERT INTO SELECT`, ClickHouse receives some data portion, and ① forms (at least) one in-memory insert block (per [partitioning key](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key)) from the received data. The block's data is sorted, and table engine-specific optimizations are applied. The data is then compressed and ② written to the database storage in the form of a new data part. The insert block size impacts both the [disk file I/O usage](https://en.wikipedia.org/wiki/Category:Disk_file_systems) and memory usage of a ClickHouse server. Larger insert blocks use more memory but generate larger and fewer initial parts. The fewer parts ClickHouse needs to create for loading a large amount of data, the less disk file I/O and automatic [background merges required](https://clickhouse.com/blog/supercharge-your-clickhouse-data-loads-part1#more-parts--more-background-part-merges). @@ -45,26 +45,26 @@ Go to ① In ①, the size depends on the insert block size, which can be controlled with two settings: -- [`min_insert_block_size_rows`](/reference/settings/session-settings#min_insert_block_size_rows) (default: `1048545` rows) -- [`min_insert_block_size_bytes`](/reference/settings/session-settings#min_insert_block_size_bytes) (default: `256 MiB`) +- [`min_insert_block_size_rows`](/core/reference/settings/session-settings#min_insert_block_size_rows) (default: `1048545` rows) +- [`min_insert_block_size_bytes`](/core/reference/settings/session-settings#min_insert_block_size_bytes) (default: `256 MiB`) When either the specified number of rows is collected in the insert block, or the configured amount of data is reached (whichever happens first), then this will trigger the block being written into a new part. The insert loop continues at step ①. -Note that the `min_insert_block_size_bytes` value denotes the uncompressed in-memory block size (and not the compressed on-disk part size). Also, note that the created blocks and parts rarely precisely contain the configured number of rows or bytes because ClickHouse streams and [processes](https://clickhouse.com/company/events/query-performance-introspection) data row-[block](/reference/settings/session-settings#max_block_size)-wise. Therefore, these settings specify minimum thresholds. +Note that the `min_insert_block_size_bytes` value denotes the uncompressed in-memory block size (and not the compressed on-disk part size). Also, note that the created blocks and parts rarely precisely contain the configured number of rows or bytes because ClickHouse streams and [processes](https://clickhouse.com/company/events/query-performance-introspection) data row-[block](/core/reference/settings/session-settings#max_block_size)-wise. Therefore, these settings specify minimum thresholds. #### Be aware of merges {#be-aware-of-merges} -The smaller the configured insert block size is, the more initial parts get created for a large data load, and the more background part merges are executed concurrently with the data ingestion. This can cause resource contention (CPU and memory) and require additional time (for reaching a [healthy](/reference/settings/merge-tree-settings#parts_to_throw_insert) (3000) number of parts) after the ingestion is finished. +The smaller the configured insert block size is, the more initial parts get created for a large data load, and the more background part merges are executed concurrently with the data ingestion. This can cause resource contention (CPU and memory) and require additional time (for reaching a [healthy](/core/reference/settings/merge-tree-settings#parts_to_throw_insert) (3000) number of parts) after the ingestion is finished. :::important -ClickHouse query performance will be negatively impacted if the part count exceeds the [recommended limits](/reference/settings/merge-tree-settings#parts_to_throw_insert). +ClickHouse query performance will be negatively impacted if the part count exceeds the [recommended limits](/core/reference/settings/merge-tree-settings#parts_to_throw_insert). ::: -ClickHouse will continuously [merge parts](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse#data-needs-to-be-batched-for-optimal-performance) into larger parts until they [reach](/reference/settings/merge-tree-settings#max_bytes_to_merge_at_max_space_in_pool) a compressed size of ~150 GiB. This diagram shows how a ClickHouse server merges parts: +ClickHouse will continuously [merge parts](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse#data-needs-to-be-batched-for-optimal-performance) into larger parts until they [reach](/core/reference/settings/merge-tree-settings#max_bytes_to_merge_at_max_space_in_pool) a compressed size of ~150 GiB. This diagram shows how a ClickHouse server merges parts: -A single ClickHouse server utilizes several [background merge threads](/reference/settings/server-settings/settings#background_pool_size) to execute concurrent [part merges](https://clickhouse.com/blog/supercharge-your-clickhouse-data-loads-part1#more-parts--more-background-part-merges:~:text=to%20execute%20concurrent-,part%20merges,-.%20Each%20thread%20executes). Each thread executes a loop: +A single ClickHouse server utilizes several [background merge threads](/core/reference/settings/server-settings/settings#background_pool_size) to execute concurrent [part merges](https://clickhouse.com/blog/supercharge-your-clickhouse-data-loads-part1#more-parts--more-background-part-merges:~:text=to%20execute%20concurrent-,part%20merges,-.%20Each%20thread%20executes). Each thread executes a loop: ```bash ① Decide which parts to merge next, and load these parts as blocks into memory. @@ -78,7 +78,7 @@ Go to ① Note that [increasing](https://clickhouse.com/blog/supercharge-your-clickhouse-data-loads-part1#hardware-size) the number of CPU cores and the size of RAM increases the background merge throughput. -Parts that were merged into larger parts are marked as [inactive](/reference/system-tables/parts) and finally deleted after a [configurable](/reference/settings/merge-tree-settings#old_parts_lifetime) number of minutes. Over time, this creates a tree of merged parts (hence the name [`MergeTree`](/reference/engines/table-engines/mergetree-family) table). +Parts that were merged into larger parts are marked as [inactive](/core/reference/system-tables/parts) and finally deleted after a [configurable](/core/reference/settings/merge-tree-settings#old_parts_lifetime) number of minutes. Over time, this creates a tree of merged parts (hence the name [`MergeTree`](/core/reference/engines/table-engines/mergetree-family) table). ### Insert parallelism {#insert-parallelism} @@ -100,7 +100,7 @@ Until all data from all files is processed, each insert thread executes a loop: Go to ①. ``` -The number of such parallel insert threads can be configured with the [`max_insert_threads`](/reference/settings/session-settings#max_insert_threads) setting. The default value is `1` for open-source ClickHouse and 4 for [ClickHouse Cloud](https://clickhouse.com/cloud). +The number of such parallel insert threads can be configured with the [`max_insert_threads`](/core/reference/settings/session-settings#max_insert_threads) setting. The default value is `1` for open-source ClickHouse and 4 for [ClickHouse Cloud](https://clickhouse.com/cloud). With a large number of files, the parallel processing by multiple insert threads works well. It can fully saturate both the available CPU cores and the network bandwidth (for parallel file downloads). In scenarios where just a few large files will be loaded into a table, ClickHouse automatically establishes a high level of data processing parallelism and optimizes network bandwidth usage by spawning additional reader threads per insert thread for reading (downloading) more distinct ranges within large files in parallel. @@ -128,7 +128,7 @@ Ensure your buckets are located in the same region as your ClickHouse instances. ## Formats {#formats} -ClickHouse can read files stored in S3 buckets in the [supported formats](/reference/formats#formats-overview) using the `s3` function and `S3` engine. If reading raw files, some of these formats have distinct advantages: +ClickHouse can read files stored in S3 buckets in the [supported formats](/core/reference/formats#formats-overview) using the `s3` function and `S3` engine. If reading raw files, some of these formats have distinct advantages: * Formats with encoded column names such as Native, Parquet, CSVWithNames, and TabSeparatedWithNames will be less verbose to query since the user won't be required to specify the column name is the `s3` function. The column names allow this information to be inferred. * Formats will differ in performance with respect to read and write throughputs. Native and parquet represent the most optimal formats for read performance since they're already column orientated and more compact. The native format additionally benefits from alignment with how ClickHouse stores data in memory - thus reducing processing overhead as data is streamed into ClickHouse. @@ -138,7 +138,7 @@ ClickHouse can read files stored in S3 buckets in the [supported formats](/refer ## Example dataset {#example-dataset} -To illustrate further potential optimizations, purposes we will use [the posts from the Stack Overflow dataset](/guides/cloud-oss/data-modelling/schema-design#stack-overflow-dataset) - optimizing both the query and insert performance of this data. +To illustrate further potential optimizations, purposes we will use [the posts from the Stack Overflow dataset](/core/guides/clickhouse/data-modelling/schema-design#stack-overflow-dataset) - optimizing both the query and insert performance of this data. This dataset consists of 189 Parquet files, with one for every month between July 2008 and March 2024. @@ -175,10 +175,10 @@ FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow 0 rows in set. Elapsed: 191.692 sec. Processed 59.82 million rows, 24.03 GB (312.06 thousand rows/s., 125.37 MB/s.) ``` -In our example we only return a few rows. If measuring the performance of `SELECT` queries, where large volumes of data are returned to the client, either utilize the [null format](/reference/formats/Null) for queries or direct results to the [`Null` engine](/reference/engines/table-engines/special/null). This should avoid the client being overwhelmed with data and network saturation. +In our example we only return a few rows. If measuring the performance of `SELECT` queries, where large volumes of data are returned to the client, either utilize the [null format](/core/reference/formats/Null) for queries or direct results to the [`Null` engine](/core/reference/engines/table-engines/special/null). This should avoid the client being overwhelmed with data and network saturation. -When reading from queries, the initial query can often appear slower than if the same query is repeated. This can be attributed to both S3's own caching but also the [ClickHouse Schema Inference Cache](/reference/system-tables/schema_inference_cache). This stores the inferred schema for files and means the inference step can be skipped on subsequent accesses, thus reducing query time. +When reading from queries, the initial query can often appear slower than if the same query is repeated. This can be attributed to both S3's own caching but also the [ClickHouse Schema Inference Cache](/core/reference/system-tables/schema_inference_cache). This stores the inferred schema for files and means the inference step can be skipped on subsequent accesses, thus reducing query time. ## Using threads for reads {#using-threads-for-reads} @@ -188,7 +188,7 @@ Read performance on S3 will scale linearly with the number of cores, provided yo * Usually, the default value of `max_threads` is sufficient, i.e., the number of cores. If the amount of memory used for a query is high, and this needs to be reduced, or the `LIMIT` on results is low, this value can be set lower. Users with plenty of memory may wish to experiment with increasing this value for possible higher read throughput from S3. Typically this is only beneficial on machines with lower core counts, i.e., < 10. The benefit from further parallelization typically diminishes as other resources act as a bottleneck, e.g., network and CPU contention. * Versions of ClickHouse before 22.3.1 only parallelized reads across multiple files when using the `s3` function or `S3` table engine. This required the user to ensure files were split into chunks on S3 and read using a glob pattern to achieve optimal read performance. Later versions now parallelize downloads within a file. * In low thread count scenarios, you may benefit from setting `remote_filesystem_read_method` to "read" to cause the synchronous reading of files from S3. -* For the s3 function and table, parallel downloading of an individual file is determined by the values [`max_download_threads`](/reference/settings/session-settings#max_download_threads) and [`max_download_buffer_size`](/reference/settings/session-settings#max_download_buffer_size). While [`max_download_threads`](/reference/settings/session-settings#max_download_threads) controls the number of threads used, files will only be downloaded in parallel if their size is greater than 2 * `max_download_buffer_size`. By default, the `max_download_buffer_size` default is set to 10MiB. In some cases, you can safely increase this buffer size to 50 MB (`max_download_buffer_size=52428800`), with the aim of ensuring smaller files are only downloaded by a single thread. This can reduce the time each thread spends making S3 calls and thus also lower the S3 wait time. See [this blog post](https://clickhouse.com/blog/clickhouse-1-trillion-row-challenge) for an example of this. +* For the s3 function and table, parallel downloading of an individual file is determined by the values [`max_download_threads`](/core/reference/settings/session-settings#max_download_threads) and [`max_download_buffer_size`](/core/reference/settings/session-settings#max_download_buffer_size). While [`max_download_threads`](/core/reference/settings/session-settings#max_download_threads) controls the number of threads used, files will only be downloaded in parallel if their size is greater than 2 * `max_download_buffer_size`. By default, the `max_download_buffer_size` default is set to 10MiB. In some cases, you can safely increase this buffer size to 50 MB (`max_download_buffer_size=52428800`), with the aim of ensuring smaller files are only downloaded by a single thread. This can reduce the time each thread spends making S3 calls and thus also lower the S3 wait time. See [this blog post](https://clickhouse.com/blog/clickhouse-1-trillion-row-challenge) for an example of this. Before making any changes to improve performance, ensure you measure appropriately. As S3 API calls are sensitive to latency and may impact client timings, use the query log for performance metrics, i.e., `system.query_log`. diff --git a/integrations/connectors/data-ingestion/GCP/google-dataflow/templates/bigquery-to-clickhouse.mdx b/integrations/connectors/data-ingestion/GCP/google-dataflow/templates/bigquery-to-clickhouse.mdx index 2dd62af2..133eac0e 100644 --- a/integrations/connectors/data-ingestion/GCP/google-dataflow/templates/bigquery-to-clickhouse.mdx +++ b/integrations/connectors/data-ingestion/GCP/google-dataflow/templates/bigquery-to-clickhouse.mdx @@ -67,13 +67,13 @@ recommended mapping you should have in your target ClickHouse table (for a given | BigQuery Type | ClickHouse Type | Notes | |-----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [**Array Type**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#array_type) | [**Array Type**](/reference/data-types/array) | The inner type must be one of the supported primitive data types listed in this table. | -| [**Boolean Type**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#boolean_type) | [**Bool Type**](/reference/data-types/boolean) | | -| [**Date Type**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#date_type) | [**Date Type**](/reference/data-types/date) | | -| [**Datetime Type**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#datetime_type) | [**Datetime Type**](/reference/data-types/datetime) | Works as well with `Enum8`, `Enum16` and `FixedString`. | -| [**String Type**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#string_type) | [**String Type**](/reference/data-types/string) | In BigQuery all Int types (`INT`, `SMALLINT`, `INTEGER`, `BIGINT`, `TINYINT`, `BYTEINT`) are aliases to `INT64`. We recommend you setting in ClickHouse the right Integer size, as the template will convert the column based on the defined column type (`Int8`, `Int16`, `Int32`, `Int64`). | -| [**Numeric - Integer Types**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#numeric_types) | [**Integer Types**](/reference/data-types/int-uint) | In BigQuery all Int types (`INT`, `SMALLINT`, `INTEGER`, `BIGINT`, `TINYINT`, `BYTEINT`) are aliases to `INT64`. We recommend you setting in ClickHouse the right Integer size, as the template will convert the column based on the defined column type (`Int8`, `Int16`, `Int32`, `Int64`). The template will also convert unassigned Int types if used in ClickHouse table (`UInt8`, `UInt16`, `UInt32`, `UInt64`). | -| [**Numeric - Float Types**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#numeric_types) | [**Float Types**](/reference/data-types/float) | Supported ClickHouse types: `Float32` and `Float64` | +| [**Array Type**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#array_type) | [**Array Type**](/core/reference/data-types/array) | The inner type must be one of the supported primitive data types listed in this table. | +| [**Boolean Type**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#boolean_type) | [**Bool Type**](/core/reference/data-types/boolean) | | +| [**Date Type**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#date_type) | [**Date Type**](/core/reference/data-types/date) | | +| [**Datetime Type**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#datetime_type) | [**Datetime Type**](/core/reference/data-types/datetime) | Works as well with `Enum8`, `Enum16` and `FixedString`. | +| [**String Type**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#string_type) | [**String Type**](/core/reference/data-types/string) | In BigQuery all Int types (`INT`, `SMALLINT`, `INTEGER`, `BIGINT`, `TINYINT`, `BYTEINT`) are aliases to `INT64`. We recommend you setting in ClickHouse the right Integer size, as the template will convert the column based on the defined column type (`Int8`, `Int16`, `Int32`, `Int64`). | +| [**Numeric - Integer Types**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#numeric_types) | [**Integer Types**](/core/reference/data-types/int-uint) | In BigQuery all Int types (`INT`, `SMALLINT`, `INTEGER`, `BIGINT`, `TINYINT`, `BYTEINT`) are aliases to `INT64`. We recommend you setting in ClickHouse the right Integer size, as the template will convert the column based on the defined column type (`Int8`, `Int16`, `Int32`, `Int64`). The template will also convert unassigned Int types if used in ClickHouse table (`UInt8`, `UInt16`, `UInt32`, `UInt64`). | +| [**Numeric - Float Types**](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#numeric_types) | [**Float Types**](/core/reference/data-types/float) | Supported ClickHouse types: `Float32` and `Float64` | ## Running the Template {#running-the-template} diff --git a/integrations/connectors/data-ingestion/GCP/index.mdx b/integrations/connectors/data-ingestion/GCP/index.mdx deleted file mode 100644 index 6399610f..00000000 --- a/integrations/connectors/data-ingestion/GCP/index.mdx +++ /dev/null @@ -1,614 +0,0 @@ ---- -sidebarTitle: 'Google Cloud Storage (GCS)' -slug: /integrations/gcs -description: 'Google Cloud Storage (GCS) Backed MergeTree' -title: 'Integrate Google Cloud Storage with ClickHouse' -doc_type: 'guide' -keywords: ['Google Cloud Storage ClickHouse', 'GCS ClickHouse integration', 'GCS backed MergeTree', 'ClickHouse GCS storage', 'Google Cloud ClickHouse'] ---- - -import BucketDetails from '/snippets/_GCS_authentication_and_bucket.mdx'; -import { Image } from "/snippets/components/Image.jsx"; - - -If you're using ClickHouse Cloud on [Google Cloud](https://cloud.google.com), this page doesn't apply as your services will already be using [Google Cloud Storage](https://cloud.google.com/storage). If you're looking to `SELECT` or `INSERT` data from GCS, please see the [`gcs` table function](/reference/functions/table-functions/gcs). - - -ClickHouse recognizes that GCS represents an attractive storage solution if you're seeking to separate storage and compute. To help achieve this, support is provided for using GCS as the storage for a MergeTree engine. This will enable you to exploit the scalability and cost benefits of GCS, and the insert and query performance of the MergeTree engine. - -## GCS backed MergeTree {#gcs-backed-mergetree} - -### Creating a disk {#creating-a-disk} - -To utilize a GCS bucket as a disk, we must first declare it within the ClickHouse configuration in a file under `conf.d`. An example of a GCS disk declaration is shown below. This configuration includes multiple sections to configure the GCS "disk", the cache, and the policy that is specified in DDL queries when tables are to be created on the GCS disk. Each of these are described below. - -#### Storage configuration > disks > gcs {#storage_configuration--disks--gcs} - -This part of the configuration is shown in the highlighted section and specifies that: -- Batch deletes aren't to be performed. GCS doesn't currently support batch deletes, so the autodetect is disabled to suppress error messages. -- The type of the disk is `s3` because the S3 API is in use. -- The endpoint as provided by GCS -- The service account HMAC key and secret -- The metadata path on the local disk - -```xml highlight={5-10} - - - - - false - s3 - https://storage.googleapis.com/BUCKET NAME/FOLDER NAME/ - SERVICE ACCOUNT HMAC KEY - SERVICE ACCOUNT HMAC SECRET - /var/lib/clickhouse/disks/gcs/ - - - - - -
    - gcs -
    -
    -
    -
    -
    -
    -``` -#### Storage configuration > disks > cache {#storage_configuration--disks--cache} - -The example configuration highlighted below enables a 10Gi memory cache for the disk `gcs`. - -```xml highlight={12-17} - - - - - false - s3 - https://storage.googleapis.com/BUCKET NAME/FOLDER NAME/ - SERVICE ACCOUNT HMAC KEY - SERVICE ACCOUNT HMAC SECRET - /var/lib/clickhouse/disks/gcs/ - - - cache - gcs - /var/lib/clickhouse/disks/gcs_cache/ - 10Gi - - - - - -
    - gcs_cache -
    -
    -
    -
    -
    -
    -``` -#### Storage configuration > policies > gcs_main {#storage_configuration--policies--gcs_main} - -Storage configuration policies allow choosing where data is stored. The policy highlighted below allows data to be stored on the disk `gcs` by specifying the policy `gcs_main`. For example, `CREATE TABLE ... SETTINGS storage_policy='gcs_main'`. - -```xml highlight={14-20} - - - - - false - s3 - https://storage.googleapis.com/BUCKET NAME/FOLDER NAME/ - SERVICE ACCOUNT HMAC KEY - SERVICE ACCOUNT HMAC SECRET - /var/lib/clickhouse/disks/gcs/ - - - - - -
    - gcs -
    -
    -
    -
    -
    -
    -``` - -A complete list of settings relevant to this disk declaration can be found [here](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). - -### Creating a table {#creating-a-table} - -Assuming you have configured your disk to use a bucket with write access, you should be able to create a table such as in the example below. For purposes of brevity, we use a subset of the NYC taxi columns and stream data directly to the GCS-backed table: - -```sql highlight={20} -CREATE TABLE trips_gcs -( - `trip_id` UInt32, - `pickup_date` Date, - `pickup_datetime` DateTime, - `dropoff_datetime` DateTime, - `pickup_longitude` Float64, - `pickup_latitude` Float64, - `dropoff_longitude` Float64, - `dropoff_latitude` Float64, - `passenger_count` UInt8, - `trip_distance` Float64, - `tip_amount` Float32, - `total_amount` Float32, - `payment_type` Enum8('UNK' = 0, 'CSH' = 1, 'CRE' = 2, 'NOC' = 3, 'DIS' = 4) -) -ENGINE = MergeTree -PARTITION BY toYYYYMM(pickup_date) -ORDER BY pickup_datetime -SETTINGS storage_policy='gcs_main' -``` - -```sql -INSERT INTO trips_gcs SELECT trip_id, pickup_date, pickup_datetime, dropoff_datetime, pickup_longitude, pickup_latitude, dropoff_longitude, dropoff_latitude, passenger_count, trip_distance, tip_amount, total_amount, payment_type FROM s3('https://ch-nyc-taxi.s3.eu-west-3.amazonaws.com/tsv/trips_{0..9}.tsv.gz', 'TabSeparatedWithNames') LIMIT 1000000; -``` - -Depending on the hardware, this latter insert of 1m rows may take a few minutes to execute. You can confirm the progress via the system.processes table. Feel free to adjust the row count up to the limit of 10m and explore some sample queries. - -```sql -SELECT passenger_count, avg(tip_amount) AS avg_tip, avg(total_amount) AS avg_amount FROM trips_gcs GROUP BY passenger_count; -``` - -### Handling replication {#handling-replication} - -Replication with GCS disks can be accomplished by using the `ReplicatedMergeTree` table engine. See the [replicating a single shard across two GCP regions using GCS](#gcs-multi-region) guide for details. - -### Learn more {#learn-more} - -The [Cloud Storage XML API](https://cloud.google.com/storage/docs/xml-api/overview) is interoperable with some tools and libraries that work with services such as Amazon Simple Storage Service (Amazon S3). - -For further information on tuning threads, see [Optimizing for Performance](/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse#s3-optimizing-performance). - -## Using Google Cloud Storage (GCS) {#gcs-multi-region} - - -Object storage is used by default in ClickHouse Cloud, you don't need to follow this procedure if you're running in ClickHouse Cloud. - - -### Plan the deployment {#plan-the-deployment} - -This tutorial is written to describe a replicated ClickHouse deployment running in Google Cloud and using Google Cloud Storage (GCS) as the ClickHouse storage disk "type". - -In the tutorial, you will deploy ClickHouse server nodes in Google Cloud Engine VMs, each with an associated GCS bucket for storage. Replication is coordinated by a set of ClickHouse Keeper nodes, also deployed as VMs. - -Sample requirements for high availability: -- Two ClickHouse server nodes, in two GCP regions -- Two GCS buckets, deployed in the same regions as the two ClickHouse server nodes -- Three ClickHouse Keeper nodes, two of them are deployed in the same regions as the ClickHouse server nodes. The third can be in the same region as one of the first two Keeper nodes, but in a different availability zone. - -ClickHouse Keeper requires two nodes to function, hence a requirement for three nodes for high availability. - -### Prepare virtual machines {#prepare-vms} - -Deploy five VMS in three regions: - -| Region | ClickHouse Server | Bucket | ClickHouse Keeper | -|--------|-------------------|-------------------|-------------------| -| 1 | `chnode1` | `bucket_regionname` | `keepernode1` | -| 2 | `chnode2` | `bucket_regionname` | `keepernode2` | -| 3 `*` | | | `keepernode3` | - -`*` This can be a different availability zone in the same region as 1 or 2. - -#### Deploy ClickHouse {#deploy-clickhouse} - -Deploy ClickHouse on two hosts, in the sample configurations these are named `chnode1`, `chnode2`. - -Place `chnode1` in one GCP region, and `chnode2` in a second. In this guide `us-east1` and `us-east4` are used for the compute engine VMs, and also for GCS buckets. - - -Don't start `clickhouse server` until after it is configured. Just install it. - - -Refer to the [installation instructions](/get-started/setup/self-managed/install) when performing the deployment steps on the ClickHouse server nodes. - -#### Deploy ClickHouse Keeper {#deploy-clickhouse-keeper} - -Deploy ClickHouse Keeper on three hosts, in the sample configurations these are named `keepernode1`, `keepernode2`, and `keepernode3`. `keepernode1` can be deployed in the same region as `chnode1`, `keepernode2` with `chnode2`, and `keepernode3` in either region, but in a different availability zone from the ClickHouse node in that region. - -Refer to the [installation instructions](/get-started/setup/self-managed/install) when performing the deployment steps on the ClickHouse Keeper nodes. - -### Create two buckets {#create-two-buckets} - -The two ClickHouse servers will be located in different regions for high availability. Each will have a GCS bucket in the same region. - -In **Cloud Storage > Buckets** choose **CREATE BUCKET**. For this tutorial two buckets are created, one in each of `us-east1` and `us-east4`. The buckets are single region, standard storage class, and not public. When prompted, enable public access prevention. Don't create folders, they will be created when ClickHouse writes to the storage. - -If you need step-by-step instructions to create buckets and an HMAC key, then expand **Create GCS buckets and an HMAC key** and follow along: - - - -### Configure ClickHouse Keeper {#configure-clickhouse-keeper} - -All of the ClickHouse Keeper nodes have the same configuration file except for the `server_id` line (first highlighted line below). Modify the file with the hostnames for your ClickHouse Keeper servers, and on each of the servers set the `server_id` to match the appropriate `server` entry in the `raft_configuration`. Since this example has `server_id` set to `3`, we have highlighted the matching lines in the `raft_configuration`. - -- Edit the file with your hostnames, and make sure that they resolve from the ClickHouse server nodes and the Keeper nodes -- Copy the file into place (`/etc/clickhouse-keeper/keeper_config.xml` on each of the Keeper servers -- Edit the `server_id` on each machine, based on its entry number in the `raft_configuration` - -```xml title=/etc/clickhouse-keeper/keeper_config.xml highlight={12,33-37} - - - trace - /var/log/clickhouse-keeper/clickhouse-keeper.log - /var/log/clickhouse-keeper/clickhouse-keeper.err.log - 1000M - 3 - - 0.0.0.0 - - 9181 - 3 - /var/lib/clickhouse/coordination/log - /var/lib/clickhouse/coordination/snapshots - - - 10000 - 30000 - warning - - - - - 1 - keepernode1.us-east1-b.c.clickhousegcs-374921.internal - 9234 - - - 2 - keepernode2.us-east4-c.c.clickhousegcs-374921.internal - 9234 - - - 3 - keepernode3.us-east5-a.c.clickhousegcs-374921.internal - 9234 - - - - -``` - -### Configure ClickHouse server {#configure-clickhouse-server} - - -**best practice** - -Some of the steps in this guide will ask you to place a configuration file in `/etc/clickhouse-server/config.d/`. This is the default location on Linux systems for configuration override files. When you put these files into that directory ClickHouse will merge the content with the default configuration. By placing these files in the `config.d` directory you will avoid losing your configuration during an upgrade. - - -#### Networking {#networking} -By default, ClickHouse listens on the loopback interface, in a replicated setup networking between machines is necessary. Listen on all interfaces: - -```xml title=/etc/clickhouse-server/config.d/network.xml - - 0.0.0.0 - -``` - -#### Remote ClickHouse Keeper servers {#remote-clickhouse-keeper-servers} - -Replication is coordinated by ClickHouse Keeper. This configuration file identifies the ClickHouse Keeper nodes by hostname and port number. - -- Edit the hostnames to match your Keeper hosts - -```xml title=/etc/clickhouse-server/config.d/use-keeper.xml - - - - keepernode1.us-east1-b.c.clickhousegcs-374921.internal - 9181 - - - keepernode2.us-east4-c.c.clickhousegcs-374921.internal - 9181 - - - keepernode3.us-east5-a.c.clickhousegcs-374921.internal - 9181 - - - -``` - -#### Remote ClickHouse servers {#remote-clickhouse-servers} - -This file configures the hostname and port of each ClickHouse server in the cluster. The default configuration file contains sample cluster definitions, in order to show only the clusters that are completely configured the tag `replace="true"` is added to the `remote_servers` entry so that when this configuration is merged with the default it replaces the `remote_servers` section instead of adding to it. - -- Edit the file with your hostnames, and make sure that they resolve from the ClickHouse server nodes - -```xml title=/etc/clickhouse-server/config.d/remote-servers.xml - - - - - - chnode1.us-east1-b.c.clickhousegcs-374921.internal - 9000 - - - chnode2.us-east4-c.c.clickhousegcs-374921.internal - 9000 - - - - - -``` - -#### Replica identification {#replica-identification} - -This file configures settings related to the ClickHouse Keeper path. Specifically the macros used to identify which replica the data is part of. On one server the replica should be specified as `replica_1`, and on the other server `replica_2`. The names can be changed, based on our example of one replica being stored in South Carolina and the other in Northern Virginia the values could be `carolina` and `virginia`; just make sure that they're different on each machine. - -```xml title=/etc/clickhouse-server/config.d/macros.xml highlight={8} - - - /clickhouse/task_queue/ddl - - - cluster_1S_2R - 1 - replica_1 - - -``` - -#### Storage in GCS {#storage-in-gcs} - -ClickHouse storage configuration includes `disks` and `policies`. The disk being configured below is named `gcs`, and is of `type` `s3`. The type is s3 because ClickHouse accesses the GCS bucket as if it was an AWS S3 bucket. Two copies of this configuration will be needed, one for each of the ClickHouse server nodes. - -These substitutions should be made in the configuration below. - -These substitutions differ between the two ClickHouse server nodes: -- `REPLICA 1 BUCKET` should be set to the name of the bucket in the same region as the server -- `REPLICA 1 FOLDER` should be changed to `replica_1` on one of the servers, and `replica_2` on the other - -These substitutions are common across the two nodes: -- The `access_key_id` should be set to the HMAC Key generated earlier -- The `secret_access_key` should be set to HMAC Secret generated earlier - -```xml title=/etc/clickhouse-server/config.d/storage.xml - - - - - false - s3 - https://storage.googleapis.com/REPLICA 1 BUCKET/REPLICA 1 FOLDER/ - SERVICE ACCOUNT HMAC KEY - SERVICE ACCOUNT HMAC SECRET - /var/lib/clickhouse/disks/gcs/ - - - cache - gcs - /var/lib/clickhouse/disks/gcs_cache/ - 10Gi - - - - - -
    - gcs -
    -
    -
    -
    -
    -
    -``` - -### Start ClickHouse Keeper {#start-clickhouse-keeper} - -Use the commands for your operating system, for example: - -```bash -sudo systemctl enable clickhouse-keeper -sudo systemctl start clickhouse-keeper -sudo systemctl status clickhouse-keeper -``` - -#### Check ClickHouse Keeper status {#check-clickhouse-keeper-status} - -Send commands to the ClickHouse Keeper with `netcat`. For example, `mntr` returns the state of the ClickHouse Keeper cluster. If you run the command on each of the Keeper nodes you will see that one is a leader, and the other two are followers: - -```bash -echo mntr | nc localhost 9181 -``` -```response highlight={7-9,18-19} -zk_version v22.7.2.15-stable-f843089624e8dd3ff7927b8a125cf3a7a769c069 -zk_avg_latency 0 -zk_max_latency 11 -zk_min_latency 0 -zk_packets_received 1783 -zk_packets_sent 1783 -zk_num_alive_connections 2 -zk_outstanding_requests 0 -zk_server_state leader -zk_znode_count 135 -zk_watch_count 8 -zk_ephemerals_count 3 -zk_approximate_data_size 42533 -zk_key_arena_size 28672 -zk_latest_snapshot_size 0 -zk_open_file_descriptor_count 182 -zk_max_file_descriptor_count 18446744073709551615 -zk_followers 2 -zk_synced_followers 2 -``` - -### Start ClickHouse server {#start-clickhouse-server} - -On `chnode1` and `chnode` run: - -```bash -sudo service clickhouse-server start -``` -```bash -sudo service clickhouse-server status -``` - -### Verification {#verification} - -#### Verify disk configuration {#verify-disk-configuration} - -`system.disks` should contain records for each disk: -- default -- gcs -- cache - -```sql -SELECT * -FROM system.disks -FORMAT Vertical -``` -```response -Row 1: -────── -name: cache -path: /var/lib/clickhouse/disks/gcs/ -free_space: 18446744073709551615 -total_space: 18446744073709551615 -unreserved_space: 18446744073709551615 -keep_free_space: 0 -type: s3 -is_encrypted: 0 -is_read_only: 0 -is_write_once: 0 -is_remote: 1 -is_broken: 0 -cache_path: /var/lib/clickhouse/disks/gcs_cache/ - -Row 2: -────── -name: default -path: /var/lib/clickhouse/ -free_space: 6555529216 -total_space: 10331889664 -unreserved_space: 6555529216 -keep_free_space: 0 -type: local -is_encrypted: 0 -is_read_only: 0 -is_write_once: 0 -is_remote: 0 -is_broken: 0 -cache_path: - -Row 3: -────── -name: gcs -path: /var/lib/clickhouse/disks/gcs/ -free_space: 18446744073709551615 -total_space: 18446744073709551615 -unreserved_space: 18446744073709551615 -keep_free_space: 0 -type: s3 -is_encrypted: 0 -is_read_only: 0 -is_write_once: 0 -is_remote: 1 -is_broken: 0 -cache_path: - -3 rows in set. Elapsed: 0.002 sec. -``` -#### Verify that tables created on the cluster are created on both nodes {#verify-that-tables-created-on-the-cluster-are-created-on-both-nodes} -```sql highlight={1,18} -create table trips on cluster 'cluster_1S_2R' ( - `trip_id` UInt32, - `pickup_date` Date, - `pickup_datetime` DateTime, - `dropoff_datetime` DateTime, - `pickup_longitude` Float64, - `pickup_latitude` Float64, - `dropoff_longitude` Float64, - `dropoff_latitude` Float64, - `passenger_count` UInt8, - `trip_distance` Float64, - `tip_amount` Float32, - `total_amount` Float32, - `payment_type` Enum8('UNK' = 0, 'CSH' = 1, 'CRE' = 2, 'NOC' = 3, 'DIS' = 4)) -ENGINE = ReplicatedMergeTree -PARTITION BY toYYYYMM(pickup_date) -ORDER BY pickup_datetime -SETTINGS storage_policy='gcs_main' -``` -```response -┌─host───────────────────────────────────────┬─port─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐ -│ chnode2.us-east4-c.c.gcsqa-375100.internal │ 9000 │ 0 │ │ 1 │ 1 │ -└────────────────────────────────────────────┴──────┴────────┴───────┴─────────────────────┴──────────────────┘ -┌─host───────────────────────────────────────┬─port─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐ -│ chnode1.us-east1-b.c.gcsqa-375100.internal │ 9000 │ 0 │ │ 0 │ 0 │ -└────────────────────────────────────────────┴──────┴────────┴───────┴─────────────────────┴──────────────────┘ - -2 rows in set. Elapsed: 0.641 sec. -``` - -#### Verify that data can be inserted {#verify-that-data-can-be-inserted} - -```sql -INSERT INTO trips SELECT - trip_id, - pickup_date, - pickup_datetime, - dropoff_datetime, - pickup_longitude, - pickup_latitude, - dropoff_longitude, - dropoff_latitude, - passenger_count, - trip_distance, - tip_amount, - total_amount, - payment_type -FROM s3('https://ch-nyc-taxi.s3.eu-west-3.amazonaws.com/tsv/trips_{0..9}.tsv.gz', 'TabSeparatedWithNames') -LIMIT 1000000 -``` - -#### Verify that the storage policy `gcs_main` is used for the table. {#verify-that-the-storage-policy-gcs_main-is-used-for-the-table} -```sql -SELECT - engine, - data_paths, - metadata_path, - storage_policy, - formatReadableSize(total_bytes) -FROM system.tables -WHERE name = 'trips' -FORMAT Vertical -``` -```response -Row 1: -────── -engine: ReplicatedMergeTree -data_paths: ['/var/lib/clickhouse/disks/gcs/store/631/6315b109-d639-4214-a1e7-afbd98f39727/'] -metadata_path: /var/lib/clickhouse/store/e0f/e0f3e248-7996-44d4-853e-0384e153b740/trips.sql -storage_policy: gcs_main -formatReadableSize(total_bytes): 36.42 MiB - -1 row in set. Elapsed: 0.002 sec. -``` - -#### Verify in Google Cloud console {#verify-in-google-cloud-console} - -Looking at the buckets you will see that a folder was created in each bucket with the name that was used in the `storage.xml` configuration file. Expand the folders and you will see many files, representing the data partitions. -#### Bucket for replica one {#bucket-for-replica-one} - - - -#### Bucket for replica two {#bucket-for-replica-two} - - diff --git a/integrations/connectors/data-ingestion/apache-flink.mdx b/integrations/connectors/data-ingestion/apache-flink.mdx index d55a0358..56479df3 100644 --- a/integrations/connectors/data-ingestion/apache-flink.mdx +++ b/integrations/connectors/data-ingestion/apache-flink.mdx @@ -192,14 +192,14 @@ For more detailed instructions, see the [Example Guide](https://github.com/Click | `table` | ClickHouse table name | N/A | Yes | | `options` | Map of Java client configuration options | Empty map | No | | `serverSettings` | Map of ClickHouse server session settings | Empty map | No | -| `enableJsonSupportAsString` | ClickHouse server setting to expect a JSON formatted String for the [JSON data type](/reference/data-types/newjson) | true | No | +| `enableJsonSupportAsString` | ClickHouse server setting to expect a JSON formatted String for the [JSON data type](/core/reference/data-types/newjson) | true | No | `options` and `serverSettings` should be passed to the client as `Map`. An empty map for either will use client or server defaults, respectively. All available Java client options are listed in [ClientConfigProperties.java](https://github.com/ClickHouse/clickhouse-java/blob/main/client-v2/src/main/java/com/clickhouse/client/api/ClientConfigProperties.java) and [this documentation page](/integrations/language-clients/java/client#configuration). -All available server session settings are listed in [this documentation page](/reference/settings/session-settings). +All available server session settings are listed in [this documentation page](/core/reference/settings/session-settings). For example: @@ -299,13 +299,13 @@ The table below provides a quick reference for converting data types when insert Notes: * A `ZoneId` must be provided when performing date operations. -* [Precision and scale](/reference/data-types/decimal#decimal-value-ranges) must be provided when performing decimal operations. +* [Precision and scale](/core/reference/data-types/decimal#decimal-value-ranges) must be provided when performing decimal operations. * In order for ClickHouse to parse a Java String as JSON, you need to enable `enableJsonSupportAsString` in `ClickHouseClientConfig`. * The connector requires an `ElementConvertor` to map elements in the input DataStream to ClickHouse payloads. To this end, the connector provides `ClickHouseConvertor` and `POJOConvertor`, which you can use to implement this mapping using the `DataWriter` serialization methods above. ## Supported input formats {#supported-input-formats} -You can find the list of available ClickHouse input formats in [this documentation page](/reference/formats#formats-overview) and [ClickHouseFormat.java](https://github.com/ClickHouse/clickhouse-java/blob/main/clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseFormat.java). +You can find the list of available ClickHouse input formats in [this documentation page](/core/reference/formats#formats-overview) and [ClickHouseFormat.java](https://github.com/ClickHouse/clickhouse-java/blob/main/clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseFormat.java). To specify the format the connector should use to serialize your DataStream to ClickHouse payloads, use the `setClickHouseFormat` function. For example: @@ -324,7 +324,7 @@ csvSink.setClickHouseFormat(ClickHouseFormat.CSV); ``` -By default, the connector will use either [RowBinaryWithDefaults](/reference/formats/RowBinary/RowBinaryWithDefaults) or [RowBinary](/reference/formats/RowBinary/RowBinary) if `setSupportDefault` in `ClickHouseClientConfig` is explicitly set to true or false, respectively. +By default, the connector will use either [RowBinaryWithDefaults](/core/reference/formats/RowBinary/RowBinaryWithDefaults) or [RowBinary](/core/reference/formats/RowBinary/RowBinary) if `setSupportDefault` in `ClickHouseClientConfig` is explicitly set to true or false, respectively. ## Metrics {#metrics} @@ -365,8 +365,8 @@ The connector exposes the following additional metrics on top of Flink's existin ## Advanced and recommended usage {#advanced-and-recommended-usage} - For optimal performance, ensure your DataStream element type is **not** a Generic type - see [here for Flink's type distinction](https://nightlies.apache.org/flink/flink-docs-release-2.2/docs/dev/datastream/fault-tolerance/serialization/types_serialization/#flinks-typeinformation-class). Non-generic elements will avoid the serialization overhead incurred by Kryo and improve throughput to ClickHouse. -- We recommend setting `maxBatchSize` to at least 1000 and ideally between 10,000 to 100,000. See [this guide on bulk inserts](/concepts/operations/insert/bulkinserts) for more information. -- To do OLTP-style deduplication or upsert to ClickHouse, refer to [this documentation page](/concepts/operations/insert/deduplication#options-for-deduplication). _Note: this is not to be confused with batch deduplication that happens on retries._ +- We recommend setting `maxBatchSize` to at least 1000 and ideally between 10,000 to 100,000. See [this guide on bulk inserts](/core/concepts/features/operations/insert/bulkinserts) for more information. +- To do OLTP-style deduplication or upsert to ClickHouse, refer to [this documentation page](/core/concepts/features/operations/insert/deduplication#options-for-deduplication). _Note: this is not to be confused with batch deduplication that happens on retries._ ## Troubleshooting {#troubleshooting} @@ -386,7 +386,7 @@ com.clickhouse.client.api.ServerException: Code: 33. DB::Exception: Cannot read You may experience that the connector's throughput does not scale with the job's parallelism (Flink task count) when writing to ClickHouse. -**Cause**: ClickHouse's background [part merging process](/concepts/core-concepts/merges) may be slowing down inserts. This can happen when the configured batch size is too small, the connector is flushing too frequently, or a combination of the two. +**Cause**: ClickHouse's background [part merging process](/core/concepts/core-concepts/merges) may be slowing down inserts. This can happen when the configured batch size is too small, the connector is flushing too frequently, or a combination of the two. **Solution**: Monitor the `numRequestSubmitted` and `actualRecordsPerBatch` metrics to help determine how to tune your batch size (`maxBatchSize`) and how frequently to flush. Also, see [Advanced and recommended usage](#advanced-and-recommended-usage) for batch sizing recommendations. diff --git a/integrations/connectors/data-ingestion/azure/azure-data-factory/overview.mdx b/integrations/connectors/data-ingestion/azure/azure-data-factory/overview.mdx index 3306ce6b..319010db 100644 --- a/integrations/connectors/data-ingestion/azure/azure-data-factory/overview.mdx +++ b/integrations/connectors/data-ingestion/azure/azure-data-factory/overview.mdx @@ -26,5 +26,5 @@ into ClickHouse: | Method | Description | |----------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Using the `azureBlobStorage` Table Function](/integrations/connectors/data-ingestion/azure/azure-data-factory/using-azureblobstorage) | Involves using ClickHouse's [`azureBlobStorage` Table Function](/reference/functions/table-functions/azureBlobStorage) to transfer data directly from Azure Blob Storage. | -| [Using the ClickHouse HTTP interface](/integrations/connectors/data-ingestion/azure/azure-data-factory/using-http-interface) | Uses the [ClickHouse HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http) as a data source within Azure Data Factory, allowing you to copy data or use it in data flow activities as part of your pipelines. | +| [Using the `azureBlobStorage` Table Function](/integrations/connectors/data-ingestion/azure/azure-data-factory/using-azureblobstorage) | Involves using ClickHouse's [`azureBlobStorage` Table Function](/core/reference/functions/table-functions/azureBlobStorage) to transfer data directly from Azure Blob Storage. | +| [Using the ClickHouse HTTP interface](/integrations/connectors/data-ingestion/azure/azure-data-factory/using-http-interface) | Uses the [ClickHouse HTTP interface](/core/concepts/features/interfaces/http) as a data source within Azure Data Factory, allowing you to copy data or use it in data flow activities as part of your pipelines. | diff --git a/integrations/connectors/data-ingestion/azure/azure-data-factory/using-azureblobstorage.mdx b/integrations/connectors/data-ingestion/azure/azure-data-factory/using-azureblobstorage.mdx index e5e165f8..093d0b80 100644 --- a/integrations/connectors/data-ingestion/azure/azure-data-factory/using-azureblobstorage.mdx +++ b/integrations/connectors/data-ingestion/azure/azure-data-factory/using-azureblobstorage.mdx @@ -22,13 +22,13 @@ read data on demand. It provides a table-like interface that allows you to select, insert, and filter data directly from the source. The function is highly optimized and supports many widely used file formats, including `CSV`, `JSON`, `Parquet`, `Arrow`, -`TSV`, `ORC`, `Avro`, and more. For the full list see ["Data formats"](/reference/formats). +`TSV`, `ORC`, `Avro`, and more. For the full list see ["Data formats"](/core/reference/formats). In this section, we'll walk through a simple startup guide for transferring data from Azure Blob Storage to ClickHouse, along with important considerations for using this function effectively. For more details and advanced options, refer to the official documentation: -[`azureBlobStorage` Table Function documentation page](/reference/functions/table-functions/azureBlobStorage) +[`azureBlobStorage` Table Function documentation page](/core/reference/functions/table-functions/azureBlobStorage) ## Acquiring Azure Blob Storage Access Keys {#acquiring-azure-blob-storage-access-keys} @@ -85,7 +85,7 @@ As an example we will download a single file from the Environmental Sensors Dataset. 1. Download a [sample file](https://clickhouse-public-datasets.s3.eu-central-1.amazonaws.com/sensors/monthly/2019-06_bmp180.csv.zst) - from the [Environmental Sensors Dataset](/get-started/sample-datasets/environmental-sensors) + from the [Environmental Sensors Dataset](/core/get-started/sample-datasets/environmental-sensors) 2. In the Azure Portal, create a new storage account if you don't already have one. @@ -135,7 +135,7 @@ Now that everything is set up, you can query the data directly from Azure Blob S For more information on configuration options and schema inference when querying external sources like Azure Blob Storage, see [Automatic schema -inference from input data](/integrations/connectors/data-integrations/drivers-and-interfaces/schema-inference) +inference from input data](/core/concepts/features/interfaces/schema-inference) 8. Now insert the data from Azure Blob Storage into the sensors table: @@ -159,6 +159,6 @@ This is just a basic introduction to using the azureBlobStorage function. For more advanced options and configuration details, please refer to the official documentation: -- [azureBlobStorage Table Function](/reference/functions/table-functions/azureBlobStorage) -- [Formats for Input and Output Data](/reference/formats) -- [Automatic schema inference from input data](/integrations/connectors/data-integrations/drivers-and-interfaces/schema-inference) +- [azureBlobStorage Table Function](/core/reference/functions/table-functions/azureBlobStorage) +- [Formats for Input and Output Data](/core/reference/formats) +- [Automatic schema inference from input data](/core/concepts/features/interfaces/schema-inference) diff --git a/integrations/connectors/data-ingestion/azure/azure-data-factory/using-http-interface.mdx b/integrations/connectors/data-ingestion/azure/azure-data-factory/using-http-interface.mdx index d930cb28..a9936725 100644 --- a/integrations/connectors/data-ingestion/azure/azure-data-factory/using-http-interface.mdx +++ b/integrations/connectors/data-ingestion/azure/azure-data-factory/using-http-interface.mdx @@ -14,7 +14,7 @@ import { Image } from "/snippets/components/Image.jsx"; # Using ClickHouse HTTP interface in Azure data factory {#using-clickhouse-http-interface-in-azure-data-factory} -The [`azureBlobStorage` Table Function](/reference/functions/table-functions/azureBlobStorage) +The [`azureBlobStorage` Table Function](/core/reference/functions/table-functions/azureBlobStorage) is a fast and convenient way to ingest data from Azure Blob Storage into ClickHouse. Using it may however not always be suitable for the following reasons: @@ -23,7 +23,7 @@ ClickHouse. Using it may however not always be suitable for the following reason altogether — for example, if the storage account is locked down with no public endpoint. In such scenarios, you can use Azure Data Factory together with the -[ClickHouse HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http) +[ClickHouse HTTP interface](/core/concepts/features/interfaces/http) to send data from Azure services into ClickHouse. This method reverses the flow: instead of having ClickHouse pull the data from @@ -44,9 +44,9 @@ runtime](https://learn.microsoft.com/en-us/azure/data-factory/create-self-hosted Azure Data Factory supports sending data to external systems over HTTP in JSON format. We can use this capability to insert data directly into ClickHouse -using the [ClickHouse HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http). +using the [ClickHouse HTTP interface](/core/concepts/features/interfaces/http). You can learn more in the [ClickHouse HTTP Interface -documentation](/integrations/connectors/data-integrations/drivers-and-interfaces/http). +documentation](/core/concepts/features/interfaces/http). For this example, we only need to specify the destination table, define the input data format as JSON, and include options to allow more flexible timestamp @@ -181,7 +181,7 @@ we can create a dataset that Azure Data Factory will use to send data to ClickHouse. In this example, we'll insert a small portion of the [Environmental Sensors -Data](/get-started/sample-datasets/environmental-sensors). +Data](/core/get-started/sample-datasets/environmental-sensors). 1. Open the ClickHouse query console of your choice — this could be the ClickHouse Cloud web UI, the CLI client, or any other interface you use to @@ -286,7 +286,7 @@ Now that we've configured both the input and output datasets, we can set up a We recommend keeping the default batch size of 10,000, or even increasing it further. For more details, see - [Selecting an Insert Strategy / Batch inserts if synchronous](/concepts/best-practices/selecting-an-insert-strategy#batch-inserts-if-synchronous) + [Selecting an Insert Strategy / Batch inserts if synchronous](/core/concepts/best-practices/selecting-an-insert-strategy#batch-inserts-if-synchronous) for more details. @@ -299,7 +299,7 @@ Now that we've configured both the input and output datasets, we can set up a 6. Once complete, click **Publish all** to save your pipeline and dataset changes. ## Additional resources {#additional-resources-1} -- [HTTP Interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http) +- [HTTP Interface](/core/concepts/features/interfaces/http) - [Copy and transform data from and to a REST endpoint by using Azure Data Factory](https://learn.microsoft.com/en-us/azure/data-factory/connector-rest?tabs=data-factory) -- [Selecting an Insert Strategy](/concepts/best-practices/selecting-an-insert-strategy) +- [Selecting an Insert Strategy](/core/concepts/best-practices/selecting-an-insert-strategy) - [Create and configure a self-hosted integration runtime](https://learn.microsoft.com/en-us/azure/data-factory/create-self-hosted-integration-runtime?tabs=data-factory) diff --git a/integrations/connectors/data-ingestion/data-formats/json/intro.mdx b/integrations/connectors/data-ingestion/data-formats/json/intro.mdx deleted file mode 100644 index 3bcce244..00000000 --- a/integrations/connectors/data-ingestion/data-formats/json/intro.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -sidebarTitle: 'Overview' -title: 'Working with JSON' -slug: /integrations/data-formats/json/overview -description: 'Working with JSON in ClickHouse' -keywords: ['json', 'clickhouse'] -score: 10 -doc_type: 'guide' ---- - - - - - -
    -ClickHouse provides several approaches for handling JSON, each with its respective pros and cons and usage. In this guide, we will cover how to load JSON and design your schema optimally. This guide consists of the following sections: - -- [Loading JSON](/integrations/connectors/data-ingestion/data-formats/json/loading) - Loading and querying structured and semi-structured JSON in ClickHouse with simple schemas. -- [JSON schema inference](/integrations/connectors/data-ingestion/data-formats/json/inference) - Using JSON schema inference to query JSON and create table schemas. -- [Designing JSON schema](/integrations/connectors/data-ingestion/data-formats/json/schema) - Steps to design and optimize your JSON schema. -- [Exporting JSON](/integrations/connectors/data-ingestion/data-formats/json/exporting) - How to export JSON. -- [Handling other JSON Formats](/integrations/connectors/data-ingestion/data-formats/json/formats) - Some tips on handling JSON formats other than newline-delimited (NDJSON). -- [Other approaches to modeling JSON](/integrations/connectors/data-ingestion/data-formats/json/other) - Legacy approaches to modeling JSON. **Not recommended.** diff --git a/integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse.mdx b/integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse.mdx index 6b38489c..d4516d78 100644 --- a/integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse.mdx @@ -79,7 +79,7 @@ GRANT CREATE ON * TO my_airbyte_user; ## Add a dataset as a source {#3-add-a-dataset-as-a-source} -The example dataset we will use is the New York City Taxi Data (on Github). For this tutorial, we will use a subset of this dataset which corresponds to the month of Jan 2022. +The example dataset we will use is the New York City Taxi Data (on Github). For this tutorial, we will use a subset of this dataset which corresponds to the month of Jan 2022. 1. Within Airbyte, select the "Sources" page and add a new source of type file. @@ -165,7 +165,7 @@ The example dataset we will use is the more details). + Now that the dataset is loaded on your ClickHouse instance, you can create an new table and use more suitable ClickHouse data types (more details). 8. Congratulations - you have successfully loaded the NYC taxi data into ClickHouse using Airbyte! diff --git a/integrations/connectors/data-ingestion/etl-tools/apache-beam.mdx b/integrations/connectors/data-ingestion/etl-tools/apache-beam.mdx index 74a1ea17..766a7841 100644 --- a/integrations/connectors/data-ingestion/etl-tools/apache-beam.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/apache-beam.mdx @@ -143,7 +143,7 @@ You can adjust the `ClickHouseIO.Write` configuration with the following setter Please consider the following limitations when using the connector: * As of today, only Sink operation is supported. The connector doesn't support Source operation. -* ClickHouse performs deduplication when inserting into a `ReplicatedMergeTree` or a `Distributed` table built on top of a `ReplicatedMergeTree`. Without replication, inserting into a regular MergeTree can result in duplicates if an insert fails and then successfully retries. However, each block is inserted atomically, and the block size can be configured using `ClickHouseIO.Write.withMaxInsertBlockSize(long)`. Deduplication is achieved by using checksums of the inserted blocks. For more information about deduplication, please visit [Deduplication](/concepts/operations/insert/deduplication) and [Deduplicate insertion config](/reference/settings/session-settings#insert_deduplicate). +* ClickHouse performs deduplication when inserting into a `ReplicatedMergeTree` or a `Distributed` table built on top of a `ReplicatedMergeTree`. Without replication, inserting into a regular MergeTree can result in duplicates if an insert fails and then successfully retries. However, each block is inserted atomically, and the block size can be configured using `ClickHouseIO.Write.withMaxInsertBlockSize(long)`. Deduplication is achieved by using checksums of the inserted blocks. For more information about deduplication, please visit [Deduplication](/core/concepts/features/operations/insert/deduplication) and [Deduplicate insertion config](/core/reference/settings/session-settings#insert_deduplicate). * The connector doesn't perform any DDL statements; therefore, the target table must exist prior insertion. ## Related content {#related-content} diff --git a/integrations/connectors/data-ingestion/etl-tools/apify-and-clickhouse.mdx b/integrations/connectors/data-ingestion/etl-tools/apify-and-clickhouse.mdx index 705ff66d..4a5d3e18 100644 --- a/integrations/connectors/data-ingestion/etl-tools/apify-and-clickhouse.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/apify-and-clickhouse.mdx @@ -61,7 +61,7 @@ Apify also provides a [Python client](https://docs.apify.com/api/client/python). ### Create a target table in ClickHouse {#4-create-a-target-table} -Create a table to hold the scraped data. The schema depends on the Actor you use. This example uses [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) for a product scraping Actor: +Create a table to hold the scraped data. The schema depends on the Actor you use. This example uses [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) for a product scraping Actor: ```sql CREATE TABLE apify_products @@ -140,13 +140,13 @@ Use the Apify client library (`apify-client` for [JavaScript](https://docs.apify ### Loading into ClickHouse {#loading-into-clickhouse} -Use [`JSONEachRow`](/reference/formats/JSON/JSONEachRow) format when inserting into ClickHouse. It maps directly to Apify's JSON output with no transformation needed. +Use [`JSONEachRow`](/core/reference/formats/JSON/JSONEachRow) format when inserting into ClickHouse. It maps directly to Apify's JSON output with no transformation needed. Match your ClickHouse table schema to the Actor's output fields. Check the Actor's output schema on its [Apify Store](https://apify.com/store) page or in the **Dataset** tab after a run. ### Performance {#performance} -For high-throughput inserts from the JavaScript client, follow the [Tips for performance optimizations](/integrations/language-clients/js#tips-for-performance-optimizations). Batch rows into larger inserts rather than inserting one row at a time, and consider [async inserts](/concepts/operations/insert/asyncinserts) when client-side batching isn't practical. +For high-throughput inserts from the JavaScript client, follow the [Tips for performance optimizations](/integrations/language-clients/js#tips-for-performance-optimizations). Batch rows into larger inserts rather than inserting one row at a time, and consider [async inserts](/core/concepts/features/operations/insert/asyncinserts) when client-side batching isn't practical. ### Security {#security} diff --git a/integrations/connectors/data-ingestion/etl-tools/dbt/features-and-configurations.mdx b/integrations/connectors/data-ingestion/etl-tools/dbt/features-and-configurations.mdx index bbe894dd..4f4c3f22 100644 --- a/integrations/connectors/data-ingestion/etl-tools/dbt/features-and-configurations.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/dbt/features-and-configurations.mdx @@ -120,8 +120,8 @@ without `on cluster` clause for this model. #### Read-after-write Consistency {#read-after-write-consistency} dbt relies on a read-after-insert consistency model. This isn't compatible with ClickHouse clusters that have more than one replica if you can't guarantee that all operations will go to the same replica. You may not encounter problems in your day-to-day usage of dbt, but there are some strategies depending on your cluster to have this guarantee in place: -- If you're using a ClickHouse Cloud cluster, you only need to set `select_sequential_consistency: 1` in your profile's `custom_settings` property. You can find more information about this setting [here](/reference/settings/session-settings#select_sequential_consistency). -- If you're using a self-hosted cluster, make sure all dbt requests are sent to the same ClickHouse replica. If you have a load balancer on top of it, try using some `replica aware routing`/`sticky sessions` mechanism to be able to always reach the same replica. Adding the setting `select_sequential_consistency = 1` in clusters outside ClickHouse Cloud is [not recommended](/reference/settings/session-settings#select_sequential_consistency). +- If you're using a ClickHouse Cloud cluster, you only need to set `select_sequential_consistency: 1` in your profile's `custom_settings` property. You can find more information about this setting [here](/core/reference/settings/session-settings#select_sequential_consistency). +- If you're using a self-hosted cluster, make sure all dbt requests are sent to the same ClickHouse replica. If you have a load balancer on top of it, try using some `replica aware routing`/`sticky sessions` mechanism to be able to always reach the same replica. Adding the setting `select_sequential_consistency = 1` in clusters outside ClickHouse Cloud is [not recommended](/core/reference/settings/session-settings#select_sequential_consistency). ## Additional ClickHouse macros {#additional-clickhouse-macros} @@ -187,9 +187,9 @@ dbt Core v1.10 introduced catalog integration support, which allows adapters to ClickHouse recently added native support for Apache Iceberg tables and data catalogs. Most of the features are still `experimental`, but you can already use them if you use a recent ClickHouse version. -* You can use ClickHouse to **query Iceberg tables stored in object storage** (S3, Azure Blob Storage, Google Cloud Storage) using the [Iceberg table engine](/reference/engines/table-engines/integrations/iceberg) and [iceberg table function](/reference/functions/table-functions/iceberg). +* You can use ClickHouse to **query Iceberg tables stored in object storage** (S3, Azure Blob Storage, Google Cloud Storage) using the [Iceberg table engine](/core/reference/engines/table-engines/integrations/iceberg) and [iceberg table function](/core/reference/functions/table-functions/iceberg). -* Additionally, ClickHouse provides the [DataLakeCatalog database engine](/reference/engines/database-engines/datalake), which enables **connection to external data catalogs** including AWS Glue Catalog, Databricks Unity Catalog, Hive Metastore, and REST Catalogs. This allows you to query open table format data (Iceberg, Delta Lake) directly from external catalogs without data duplication. +* Additionally, ClickHouse provides the [DataLakeCatalog database engine](/core/reference/engines/database-engines/datalake), which enables **connection to external data catalogs** including AWS Glue Catalog, Databricks Unity Catalog, Hive Metastore, and REST Catalogs. This allows you to query open table format data (Iceberg, Delta Lake) directly from external catalogs without data duplication. ### Workarounds for Working with Iceberg and Catalogs {#workarounds-iceberg-catalogs} diff --git a/integrations/connectors/data-ingestion/etl-tools/dbt/guides.mdx b/integrations/connectors/data-ingestion/etl-tools/dbt/guides.mdx index d1018a97..96f9b8c7 100644 --- a/integrations/connectors/data-ingestion/etl-tools/dbt/guides.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/dbt/guides.mdx @@ -768,9 +768,9 @@ In this run, only the new rows are added straight to `imdb_dbt.actor_summary` ta ### Delete and insert mode (experimental) {#deleteinsert-mode-experimental} -Historically ClickHouse has had only limited support for updates and deletes, in the form of asynchronous [Mutations](/reference/statements/alter). These can be extremely IO-intensive and should generally be avoided. +Historically ClickHouse has had only limited support for updates and deletes, in the form of asynchronous [Mutations](/core/reference/statements/alter). These can be extremely IO-intensive and should generally be avoided. -ClickHouse 22.8 introduced [lightweight deletes](/reference/statements/delete) and ClickHouse 25.7 introduced [lightweight updates](/reference/statements/update). With the introduction of these features, modifications from single update queries, even when being materialized asynchronously, will occur instantly from the user's perspective. +ClickHouse 22.8 introduced [lightweight deletes](/core/reference/statements/delete) and ClickHouse 25.7 introduced [lightweight updates](/core/reference/statements/update). With the introduction of these features, modifications from single update queries, even when being materialized asynchronously, will occur instantly from the user's perspective. This mode can be configured for a model via the `incremental_strategy` parameter i.e. @@ -984,7 +984,7 @@ For further details on dbt snapshots see [here](https://docs.getdbt.com/docs/bui ## Using seeds {#using-seeds} -dbt provides the ability to load data from CSV files. This capability isn't suited to loading large exports of a database and is more designed for small files typically used for code tables and [dictionaries](/concepts/features/dictionaries), e.g. mapping country codes to country names. For a simple example, we generate and then upload a list of genre codes using the seed functionality. +dbt provides the ability to load data from CSV files. This capability isn't suited to loading large exports of a database and is more designed for small files typically used for code tables and [dictionaries](/core/concepts/features/dictionaries), e.g. mapping country codes to country names. For a simple example, we generate and then upload a list of genre codes using the seed functionality. 1. We generate a list of genre codes from our existing dataset. From the dbt directory, use the `clickhouse-client` to create a file `seeds/genre_codes.csv`: diff --git a/integrations/connectors/data-ingestion/etl-tools/dbt/index.mdx b/integrations/connectors/data-ingestion/etl-tools/dbt/index.mdx index 44cb2f4f..d082424c 100644 --- a/integrations/connectors/data-ingestion/etl-tools/dbt/index.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/dbt/index.mdx @@ -65,24 +65,24 @@ dbt introduces the concept of a model. This is defined as a SQL statement, poten dbt provides 5 types of materialization. All of them are supported by `dbt-clickhouse`: -* **view** (default): The model is built as a view in the database. At ClickHouse this is built as a [view](/reference/statements/create/view). -* **table**: The model is built as a table in the database. At ClickHouse this is built as a [table](/reference/statements/create/table). +* **view** (default): The model is built as a view in the database. At ClickHouse this is built as a [view](/core/reference/statements/create/view). +* **table**: The model is built as a table in the database. At ClickHouse this is built as a [table](/core/reference/statements/create/table). * **ephemeral**: The model isn't directly built in the database but is instead pulled into dependent models as CTEs (Common Table Expressions). * **incremental**: The model is initially materialized as a table, and in subsequent runs, dbt inserts new rows and updates changed rows in the table. -* **materialized view**: The model is built as a materialized view in the database. At ClickHouse this is built as a [materialized view](/reference/statements/create/view#materialized-view). +* **materialized view**: The model is built as a materialized view in the database. At ClickHouse this is built as a [materialized view](/core/reference/statements/create/view#materialized-view). Additional syntax and clauses define how these models should be updated if their underlying data changes. dbt generally recommends starting with the view materialization until performance becomes a concern. The table materialization provides a query time performance improvement by capturing the results of the model's query as a table at the expense of increased storage. The incremental approach builds on this further to allow subsequent updates to the underlying data to be captured in the target table. The[ current adapter](https://github.com/silentsokolov/dbt-clickhouse) for ClickHouse supports also support **dictionary**, **distributed table** and **distributed incremental** materializations. The adapter also supports dbt [snapshots](https://docs.getdbt.com/docs/building-a-dbt-project/snapshots#check-strategy) and [seeds](https://docs.getdbt.com/docs/building-a-dbt-project/seeds). -The following are [experimental features](/reference/settings/beta-and-experimental-features) in `dbt-clickhouse`: +The following are [experimental features](/core/reference/settings/beta-and-experimental-features) in `dbt-clickhouse`: | Type | Supported? | Details | |-----------------------------------------|-----------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Materialized View materialization | Yes. Creation with explicit target is in Beta | Creates a [materialized view](/reference/statements/create/view#materialized-view). | -| Distributed table materialization | Yes, Experimental | Creates a [distributed table](/reference/engines/table-engines/special/distributed). | +| Materialized View materialization | Yes. Creation with explicit target is in Beta | Creates a [materialized view](/core/reference/statements/create/view#materialized-view). | +| Distributed table materialization | Yes, Experimental | Creates a [distributed table](/core/reference/engines/table-engines/special/distributed). | | Distributed incremental materialization | Yes, Experimental | Incremental model based on the same idea as distributed table. Note that not all strategies are supported, visit [their docs section](/integrations/connectors/data-ingestion/etl-tools/dbt/materializations#materialization-distributed-incremental) for more info. | -| Dictionary materialization | Yes, Experimental | Creates a [dictionary](/reference/engines/table-engines/special/dictionary). | +| Dictionary materialization | Yes, Experimental | Creates a [dictionary](/core/reference/engines/table-engines/special/dictionary). | ## Setup of dbt and the ClickHouse adapter {#setup-of-dbt-and-the-clickhouse-adapter} @@ -151,7 +151,7 @@ To keep your development environments in sync and avoid running your models agai We recommend using a dedicated ClickHouse cluster or service for the testing environment (i.e., a staging environment) to avoid impacting the operation of your production environment. To ensure the testing environment is representative, it's important that you use a subset of your production data, as well as run dbt in a way that prevents schema drift between environments. - If you don't need fresh data to test against, you can restore a backup of your production data into the staging environment. -- If you need fresh data to test against, you can use a combination of the [`remoteSecure()` table function](/reference/functions/table-functions/remote) and refreshable materialized views to insert at the desired frequency. Another option is to use object storage as an intermediate and periodically write data from your production service, then import it into the staging environment using the object storage table functions or ClickPipes (for continuous ingestion). +- If you need fresh data to test against, you can use a combination of the [`remoteSecure()` table function](/core/reference/functions/table-functions/remote) and refreshable materialized views to insert at the desired frequency. Another option is to use object storage as an intermediate and periodically write data from your production service, then import it into the staging environment using the object storage table functions or ClickPipes (for continuous ingestion). Using a dedicated environment for CI testing also allows you to perform manual testing without impacting your production environment. For example, you may want to point a BI tool to this environment for testing. @@ -178,7 +178,7 @@ The current ClickHouse adapter for dbt has several limitations you should be awa - The plugin uses syntax that requires ClickHouse version 25.3 or newer. We don't test older versions of Clickhouse. We also don't currently test Replicated tables. - Different runs of the `dbt-adapter` may collide if they're run at the same time as internally they can use the same table names for the same operations. For more information, check the issue [#420](https://github.com/ClickHouse/dbt-clickhouse/issues/420). -- The adapter currently materializes models as tables using an [INSERT INTO SELECT](/reference/statements/insert-into#inserting-the-results-of-select). This effectively means data duplication if the run is executed again. Very large datasets (PB) can result in extremely long run times, making some models unviable. To improve performance, use ClickHouse Materialized Views by implementing the view as `materialized: materialization_view`. Additionally, aim to minimize the number of rows returned by any query by utilizing `GROUP BY` where possible. Prefer models that summarize data over those that simply transform while maintaining row counts of the source. +- The adapter currently materializes models as tables using an [INSERT INTO SELECT](/core/reference/statements/insert-into#inserting-the-results-of-select). This effectively means data duplication if the run is executed again. Very large datasets (PB) can result in extremely long run times, making some models unviable. To improve performance, use ClickHouse Materialized Views by implementing the view as `materialized: materialization_view`. Additionally, aim to minimize the number of rows returned by any query by utilizing `GROUP BY` where possible. Prefer models that summarize data over those that simply transform while maintaining row counts of the source. - To use Distributed tables to represent a model, you must create the underlying replicated tables on each node manually. The Distributed table can, in turn, be created on top of these. The adapter doesn't manage cluster creation. - When dbt creates a relation (table/view) in a database, it usually creates it as: `{{ database }}.{{ schema }}.{{ table/view id }}`. ClickHouse has no notion of schemas. The adapter therefore uses `{{schema}}.{{ table/view id }}`, where `schema` is the ClickHouse database. - Ephemeral models/CTEs don't work if placed before the `INSERT INTO` in a ClickHouse insert statement, see https://github.com/ClickHouse/ClickHouse/issues/30323. This shouldn't affect most models, but care should be taken where an ephemeral model is placed in model definitions and other SQL statements. {/* TODO review this limitation, looks like the issue was already closed and the fix was introduced in 24.10 */} diff --git a/integrations/connectors/data-ingestion/etl-tools/dbt/materialization-materialized-view.mdx b/integrations/connectors/data-ingestion/etl-tools/dbt/materialization-materialized-view.mdx index 76209877..f6575389 100644 --- a/integrations/connectors/data-ingestion/etl-tools/dbt/materialization-materialized-view.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/dbt/materialization-materialized-view.mdx @@ -13,7 +13,7 @@ import ClickHouseSupportedBadge from "/snippets/components/ClickHouseSupported/C -A `materialized_view` materialization should be a `SELECT` from an existing (source) table. Unlike PostgreSQL, a ClickHouse materialized view is not "static" (and has no corresponding REFRESH operation). Instead, it acts as an **insert trigger**, inserting new rows into a target table by applying the defined `SELECT` transformation on rows inserted into the source table. See the [ClickHouse materialized view documentation](/concepts/features/materialized-views) for more details on how materialized views work in ClickHouse. +A `materialized_view` materialization should be a `SELECT` from an existing (source) table. Unlike PostgreSQL, a ClickHouse materialized view is not "static" (and has no corresponding REFRESH operation). Instead, it acts as an **insert trigger**, inserting new rows into a target table by applying the defined `SELECT` transformation on rows inserted into the source table. See the [ClickHouse materialized view documentation](/core/concepts/features/materialized-views) for more details on how materialized views work in ClickHouse. For general materialization concepts and shared configurations (engine, order_by, partition_by, etc.), see the [Materializations](/integrations/connectors/data-ingestion/etl-tools/dbt/materializations) page. @@ -451,7 +451,7 @@ The following table summarizes the safety of each operation when inserts are act ## Refreshable Materialized Views {#refreshable-materialized-views} -[Refreshable Materialized Views](/concepts/features/materialized-views/refreshable-materialized-view) are a special type of materialized view in ClickHouse that periodically re-executes the query and stores the result, similar to how materialized views work in other databases. This is useful for scenarios where you want periodic snapshots or aggregations rather than real-time insert triggers. +[Refreshable Materialized Views](/core/concepts/features/materialized-views/refreshable-materialized-view) are a special type of materialized view in ClickHouse that periodically re-executes the query and stores the result, similar to how materialized views work in other databases. This is useful for scenarios where you want periodic snapshots or aggregations rather than real-time insert triggers. Refreshable materialized views can be used with **both** the [implicit target](#implicit-target) and [explicit target](#explicit-target) approaches. The `refreshable` config is independent of how the target table is managed. diff --git a/integrations/connectors/data-ingestion/etl-tools/dbt/materializations.mdx b/integrations/connectors/data-ingestion/etl-tools/dbt/materializations.mdx index 9337fdb6..4900106f 100644 --- a/integrations/connectors/data-ingestion/etl-tools/dbt/materializations.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/dbt/materializations.mdx @@ -26,19 +26,19 @@ The following table shows configurations shared by some of the available materia | settings | A map/dictionary of "TABLE" settings to be used to DDL statements like 'CREATE TABLE' with this model | | | query_settings | A map/dictionary of ClickHouse user level settings to be used with `INSERT` or `DELETE` statements in conjunction with this model | | | ttl | A TTL expression to be used with the table. The TTL expression is a string that can be used to specify the TTL for the table. | | -| sql_security | The ClickHouse user to use when executing the view's underlying query. [Accepted values](/reference/statements/create/view#sql_security): `definer`, `invoker`. | | +| sql_security | The ClickHouse user to use when executing the view's underlying query. [Accepted values](/core/reference/statements/create/view#sql_security): `definer`, `invoker`. | | | definer | If `sql_security` was set to `definer`, you have to specify any existing user or `CURRENT_USER` in the `definer` clause. | | ### Supported table engines {#supported-table-engines} | Type | Details | |------------------------|-------------------------------------------------------------------------------------------| -| MergeTree (default) | [docs](/reference/engines/table-engines/mergetree-family/mergetree). | -| HDFS | [docs](/reference/engines/table-engines/integrations/hdfs) | -| MaterializedPostgreSQL | [docs](/reference/engines/table-engines/integrations/materialized-postgresql) | -| S3 | [docs](/reference/engines/table-engines/integrations/s3) | -| EmbeddedRocksDB | [docs](/reference/engines/table-engines/integrations/embedded-rocksdb) | -| Hive | [docs](/reference/engines/table-engines/integrations/hive) | +| MergeTree (default) | [docs](/core/reference/engines/table-engines/mergetree-family/mergetree). | +| HDFS | [docs](/core/reference/engines/table-engines/integrations/hdfs) | +| MaterializedPostgreSQL | [docs](/core/reference/engines/table-engines/integrations/materialized-postgresql) | +| S3 | [docs](/core/reference/engines/table-engines/integrations/s3) | +| EmbeddedRocksDB | [docs](/core/reference/engines/table-engines/integrations/embedded-rocksdb) | +| Hive | [docs](/core/reference/engines/table-engines/integrations/hive) | **Note**: for materialized views, all *MergeTree engines are supported. @@ -46,8 +46,8 @@ The following table shows configurations shared by some of the available materia | Type | Details | |-------------------|---------------------------------------------------------------------------| -| Distributed Table | [docs](/reference/engines/table-engines/special/distributed). | -| Dictionary | [docs](/reference/engines/table-engines/special/dictionary) | +| Distributed Table | [docs](/core/reference/engines/table-engines/special/distributed). | +| Dictionary | [docs](/core/reference/engines/table-engines/special/dictionary) | If you encounter issues connecting to ClickHouse from dbt with one of the above engines, please report an issue [here](https://github.com/ClickHouse/dbt-clickhouse/issues). @@ -72,7 +72,7 @@ should be carefully researched and tested. | Option | Description | Default if any | |--------|------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------| | codec | A string consisting of arguments passed to `CODEC()` in the column's DDL. For example: `codec: "Delta, ZSTD"` will be compiled as `CODEC(Delta, ZSTD)`. | -| ttl | A string consisting of a [TTL (time-to-live) expression](/concepts/operations/delete/ttl) that defines a TTL rule in the column's DDL. For example: `ttl: ts + INTERVAL 1 DAY` will be compiled as `TTL ts + INTERVAL 1 DAY`. | +| ttl | A string consisting of a [TTL (time-to-live) expression](/core/concepts/features/operations/delete/ttl) that defines a TTL rule in the column's DDL. For example: `ttl: ts + INTERVAL 1 DAY` will be compiled as `TTL ts + INTERVAL 1 DAY`. | #### Example of schema configuration {#example-of-schema-configuration} @@ -118,7 +118,7 @@ group by event_type ## Materialization: view {#materialization-view} -A dbt model can be created as a [ClickHouse view](/reference/functions/table-functions/view) +A dbt model can be created as a [ClickHouse view](/core/reference/functions/table-functions/view) and configured using the following syntax: Project File (`dbt_project.yml`): @@ -135,7 +135,7 @@ Or config block (`models/.sql`): ## Materialization: table {#materialization-table} -A dbt model can be created as a [ClickHouse table](/reference/system-tables/tables) and +A dbt model can be created as a [ClickHouse table](/core/reference/system-tables/tables) and configured using the following syntax: Project File (`dbt_project.yml`): @@ -162,7 +162,7 @@ Or config block (`models/.sql`): ### Data skipping indexes {#data-skipping-indexes} -You can add [data skipping indexes](/concepts/features/performance/skip-indexes/skipping-indexes) to `table` materializations using the `indexes` configuration: +You can add [data skipping indexes](/core/concepts/features/performance/skip-indexes/skipping-indexes) to `table` materializations using the `indexes` configuration: ```sql {{ config( @@ -176,7 +176,7 @@ You can add [data skipping indexes](/concepts/features/performance/skip-indexes/ ### Projections {#projections} -You can add [projections](/concepts/features/projections/projections) to `table` and `distributed_table` materializations using the `projections` configuration: +You can add [projections](/core/concepts/features/projections/projections) to `table` and `distributed_table` materializations using the `projections` configuration: ```sql {{ config( @@ -327,7 +327,7 @@ parameters of the model config. ## Materialization: materialized_view {#materialized-view} -The `materialized_view` materialization creates a ClickHouse [materialized view](/reference/statements/create/view#materialized-view) that acts as an insert trigger, automatically transforming and inserting new rows from a source table into a target table. This is one of the most powerful materializations available in dbt-clickhouse. +The `materialized_view` materialization creates a ClickHouse [materialized view](/core/reference/statements/create/view#materialized-view) that acts as an insert trigger, automatically transforming and inserting new rows from a source table into a target table. This is one of the most powerful materializations available in dbt-clickhouse. Due to its depth, this materialization has its own dedicated page. **[Go to the Materialized Views guide](/integrations/connectors/data-ingestion/etl-tools/dbt/materialization-materialized-view)** for the full documentation diff --git a/integrations/connectors/data-ingestion/etl-tools/dlt-and-clickhouse.mdx b/integrations/connectors/data-ingestion/etl-tools/dlt-and-clickhouse.mdx index 03e31585..a27e08c8 100644 --- a/integrations/connectors/data-ingestion/etl-tools/dlt-and-clickhouse.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/dlt-and-clickhouse.mdx @@ -182,7 +182,7 @@ pipeline = dlt.pipeline( ``` ### Using Google Cloud Storage as a staging area {#using-google-cloud-storage-as-a-staging-area} -dlt supports using Google Cloud Storage (GCS) as a staging area when loading data into ClickHouse. This is handled automatically by ClickHouse's GCS table function which dlt uses under the hood. +dlt supports using Google Cloud Storage (GCS) as a staging area when loading data into ClickHouse. This is handled automatically by ClickHouse's GCS table function which dlt uses under the hood. The clickhouse GCS table function only supports authentication using Hash-based Message Authentication Code (HMAC) keys. To enable this, GCS provides an S3 compatibility mode that emulates the Amazon S3 API. ClickHouse takes advantage of this to allow accessing GCS buckets via its S3 integration. diff --git a/integrations/connectors/data-ingestion/etl-tools/fivetran/reference.mdx b/integrations/connectors/data-ingestion/etl-tools/fivetran/reference.mdx index 65451da3..1931706f 100644 --- a/integrations/connectors/data-ingestion/etl-tools/fivetran/reference.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/fivetran/reference.mdx @@ -81,24 +81,24 @@ The Fivetran ClickHouse destination maps [Fivetran data types](https://fivetran. | Fivetran type | ClickHouse type | |---------------|--------------------------------------------------------------| -| BOOLEAN | [Bool](/reference/data-types/boolean) | -| SHORT | [Int16](/reference/data-types/int-uint) | -| INT | [Int32](/reference/data-types/int-uint) | -| LONG | [Int64](/reference/data-types/int-uint) | -| BIGDECIMAL | [Decimal(P, S)](/reference/data-types/decimal) | -| FLOAT | [Float32](/reference/data-types/float) | -| DOUBLE | [Float64](/reference/data-types/float) | -| LOCALDATE | [Date32](/reference/data-types/date32) | -| LOCALDATETIME | [DateTime64(0, 'UTC')](/reference/data-types/datetime64) | -| INSTANT | [DateTime64(9, 'UTC')](/reference/data-types/datetime64) | -| STRING | [String](/reference/data-types/string) | -| LOCALTIME | [String](/reference/data-types/string) \* \*\* | -| BINARY | [String](/reference/data-types/string) \* | -| XML | [String](/reference/data-types/string) \* | -| JSON | [String](/reference/data-types/string) \* | +| BOOLEAN | [Bool](/core/reference/data-types/boolean) | +| SHORT | [Int16](/core/reference/data-types/int-uint) | +| INT | [Int32](/core/reference/data-types/int-uint) | +| LONG | [Int64](/core/reference/data-types/int-uint) | +| BIGDECIMAL | [Decimal(P, S)](/core/reference/data-types/decimal) | +| FLOAT | [Float32](/core/reference/data-types/float) | +| DOUBLE | [Float64](/core/reference/data-types/float) | +| LOCALDATE | [Date32](/core/reference/data-types/date32) | +| LOCALDATETIME | [DateTime64(0, 'UTC')](/core/reference/data-types/datetime64) | +| INSTANT | [DateTime64(9, 'UTC')](/core/reference/data-types/datetime64) | +| STRING | [String](/core/reference/data-types/string) | +| LOCALTIME | [String](/core/reference/data-types/string) \* \*\* | +| BINARY | [String](/core/reference/data-types/string) \* | +| XML | [String](/core/reference/data-types/string) \* | +| JSON | [String](/core/reference/data-types/string) \* | -\* BINARY, XML, LOCALTIME, and JSON are stored as [String](/reference/data-types/string) because ClickHouse's `String` type can represent an arbitrary set of bytes. The destination adds a column comment to indicate the original data type. The ClickHouse [JSON](/reference/data-types/newjson) data type is not used as it was marked as obsolete and never recommended for production usage. +\* BINARY, XML, LOCALTIME, and JSON are stored as [String](/core/reference/data-types/string) because ClickHouse's `String` type can represent an arbitrary set of bytes. The destination adds a column comment to indicate the original data type. The ClickHouse [JSON](/core/reference/data-types/newjson) data type is not used as it was marked as obsolete and never recommended for production usage. \*\* NOTE: Issue to track the support for LOCALTIME type: [clickhouse-fivetran-destination #15](https://github.com/ClickHouse/clickhouse-fivetran-destination/issues/15). @@ -120,12 +120,12 @@ ClickHouse itself supports DateTime64 with precision \<= 9 up to 2299-12-31 23:5 ## Destination tables {#table-structure} The ClickHouse Cloud destination uses -[Replacing](/reference/engines/table-engines/mergetree-family/replacingmergetree) engine type of +[Replacing](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) engine type of [SharedMergeTree](/products/cloud/features/infrastructure/shared-merge-tree) family (specifically, `SharedReplacingMergeTree`), versioned by the `_fivetran_synced` column. Every column except primary (ordering) keys and Fivetran metadata columns is created -as [Nullable(T)](/reference/data-types/nullable), where `T` is a +as [Nullable(T)](/core/reference/data-types/nullable), where `T` is a ClickHouse Cloud type based on the [data types mapping](#type-mapping). The table structure varies depending on the Fivetran @@ -313,7 +313,7 @@ Since `_fivetran_id` and `_fivetran_start` form the compound sorting key. ### Selecting the latest version of the data without duplicates {#selecting-latest-version} `SharedReplacingMergeTree` performs background data deduplication -[only during merges at an unknown time](/reference/engines/table-engines/mergetree-family/replacingmergetree). +[only during merges at an unknown time](/core/reference/engines/table-engines/mergetree-family/replacingmergetree). However, selecting the latest version of the data without duplicates ad-hoc is possible with the `FINAL` keyword: ```sql diff --git a/integrations/connectors/data-ingestion/etl-tools/fivetran/troubleshooting.mdx b/integrations/connectors/data-ingestion/etl-tools/fivetran/troubleshooting.mdx index 79ca85ad..8436e6e0 100644 --- a/integrations/connectors/data-ingestion/etl-tools/fivetran/troubleshooting.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/fivetran/troubleshooting.mdx @@ -159,7 +159,7 @@ cause: can't map type UInt64 to Fivetran types 1. **Do not manually modify column types** in Fivetran-managed tables. 2. **To recover**: Alter the column back to the expected type (e.g., `Int64`) or delete and re-sync the table. -3. **For custom types**: Create a [materialized view](/reference/statements/create/view#materialized-view) on top of the Fivetran-managed table. +3. **For custom types**: Create a [materialized view](/core/reference/statements/create/view#materialized-view) on top of the Fivetran-managed table. --- @@ -218,7 +218,7 @@ For example, the following architecture can be used: ### Optimizing reading queries {#optimizing-reading-queries} -ClickHouse uses `SharedReplacingMergeTree` for Fivetran destination tables, which is the version of the [`ReplacingMergeTree` table engine](/concepts/operations/update/replacing-merge-tree) in ClickHouse Cloud. Duplicate rows with the same primary key are normal — deduplication happens asynchronously during background merges. At read time, you need to be careful to avoid returning duplicate rows, as some rows may not have been deduplicated yet. +ClickHouse uses `SharedReplacingMergeTree` for Fivetran destination tables, which is the version of the [`ReplacingMergeTree` table engine](/core/concepts/features/operations/update/replacing-merge-tree) in ClickHouse Cloud. Duplicate rows with the same primary key are normal — deduplication happens asynchronously during background merges. At read time, you need to be careful to avoid returning duplicate rows, as some rows may not have been deduplicated yet. Using the `FINAL` keyword is the simplest way to avoid duplicate rows, as it forces a merge of any not-yet-deduplicated rows at read time: @@ -226,20 +226,20 @@ Using the `FINAL` keyword is the simplest way to avoid duplicate rows, as it for SELECT * FROM schema.table FINAL WHERE ... ``` -There are ways to optimize this `FINAL` operation — for example, by filtering on key columns using a `WHERE` condition. For more details, see the [FINAL performance](/concepts/operations/update/replacing-merge-tree#final-performance) section of the ReplacingMergeTree guide. +There are ways to optimize this `FINAL` operation — for example, by filtering on key columns using a `WHERE` condition. For more details, see the [FINAL performance](/core/concepts/features/operations/update/replacing-merge-tree#final-performance) section of the ReplacingMergeTree guide. If those optimizations are not sufficient, you have additional options that avoid using `FINAL` while still handling duplicates correctly: -- If you want to query a numeric column that is always incrementing, [you can use `max(the_column)`](/concepts/operations/insert/deduplication#avoiding-final). +- If you want to query a numeric column that is always incrementing, [you can use `max(the_column)`](/core/concepts/features/operations/insert/deduplication#avoiding-final). - If you need to retrieve the latest value for some columns for a particular key, you can use [`argMax(the_column, _fivetran_id)`](https://clickhouse.com/blog/10-best-practice-tips#perfecting_replacingmergetree). ### Primary key and ORDER BY optimization {#primary-key-optimization} -Fivetran replicates the source table's primary key as the ClickHouse `ORDER BY` clause. When the source has no PK, `_fivetran_id` (a UUID) becomes the sorting key, which can lead to poor query performance because ClickHouse builds its [sparse primary index](/guides/cloud-oss/data-modelling/sparse-primary-indexes) from the `ORDER BY` columns. +Fivetran replicates the source table's primary key as the ClickHouse `ORDER BY` clause. When the source has no PK, `_fivetran_id` (a UUID) becomes the sorting key, which can lead to poor query performance because ClickHouse builds its [sparse primary index](/core/guides/clickhouse/data-modelling/sparse-primary-indexes) from the `ORDER BY` columns. **Recommendations in this case if any other optimization is not sufficient:** 1. **Treat Fivetran tables as raw staging tables.** Do not query them directly for analytics. -2. **If queries are still not performant enough**, use a [Refreshable Materialized View](/concepts/features/materialized-views/refreshable-materialized-view) to create a copy of the table with an `ORDER BY` optimized for your query patterns. Unlike incremental materialized views, refreshable materialized views re-run the full query on a schedule, which correctly handles the `UPDATE` and `DELETE` operations that Fivetran issues during syncs: +2. **If queries are still not performant enough**, use a [Refreshable Materialized View](/core/concepts/features/materialized-views/refreshable-materialized-view) to create a copy of the table with an `ORDER BY` optimized for your query patterns. Unlike incremental materialized views, refreshable materialized views re-run the full query on a schedule, which correctly handles the `UPDATE` and `DELETE` operations that Fivetran issues during syncs: ```sql CREATE MATERIALIZED VIEW schema.table_optimized REFRESH EVERY 1 HOUR diff --git a/integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse.mdx b/integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse.mdx index 888e5b9a..ce92c32b 100644 --- a/integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse.mdx +++ b/integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse.mdx @@ -122,7 +122,7 @@ SELECT * FROM nginxdb.access_logs ## Parse the Logs {#4-parse-the-logs} Having the logs in ClickHouse is great, but storing each event as a single string doesn't allow for much data analysis. -We'll next look at how to parse the log events using a [materialized view](/concepts/features/materialized-views/incremental-materialized-view). +We'll next look at how to parse the log events using a [materialized view](/core/concepts/features/materialized-views/incremental-materialized-view). A **materialized view** functions similarly to an insert trigger in SQL. When rows of data are inserted into a source table, the materialized view makes some transformation of these rows and inserts the results into a target table. The materialized view can be configured to configure a parsed representation of the log events in **access_logs**. @@ -132,7 +132,7 @@ An example of one such log event is shown below: 192.168.208.1 - - [12/Oct/2021:15:32:43 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36" ``` -There are various functions in ClickHouse to parse the above string. The [`splitByWhitespace`](/reference/functions/regular-functions/splitting-merging-functions#splitByWhitespace) function parses a string by whitespace and returns each token in an array. +There are various functions in ClickHouse to parse the above string. The [`splitByWhitespace`](/core/reference/functions/regular-functions/splitting-merging-functions#splitByWhitespace) function parses a string by whitespace and returns each token in an array. To demonstrate, run the following command: ```sql title="Query" @@ -146,7 +146,7 @@ SELECT splitByWhitespace('192.168.208.1 - - [12/Oct/2021:15:32:43 +0000] "GET / A few of the strings have some extra characters, and the user agent (the browser details) didn't need to be parsed, but the resulting array is close to what is needed. -Similar to `splitByWhitespace`, the [`splitByRegexp`](/reference/functions/regular-functions/splitting-merging-functions#splitByRegexp) function splits a string into an array based on a regular expression. +Similar to `splitByWhitespace`, the [`splitByRegexp`](/core/reference/functions/regular-functions/splitting-merging-functions#splitByRegexp) function splits a string into an array based on a regular expression. Run the following command, which returns two strings. ```sql @@ -161,7 +161,7 @@ Notice that the second string returned is the user agent successfully parsed fro Before looking at the final `CREATE MATERIALIZED VIEW` command, let's view a couple more functions used to clean up the data. For example, the value of `RequestMethod` is `"GET` containing an unwanted double-quote. -You can use the [`trimBoth` (alias `trim`)](/reference/functions/regular-functions/string-functions#trimBoth) function to remove the double quote: +You can use the [`trimBoth` (alias `trim`)](/core/reference/functions/regular-functions/string-functions#trimBoth) function to remove the double quote: ```sql SELECT trim(LEADING '"' FROM '"GET') @@ -223,7 +223,7 @@ SELECT * FROM nginxdb.access_logs_view -The lesson above stored the data in two tables, but you could change the initial `nginxdb.access_logs` table to use the [`Null`](/reference/engines/table-engines/special/null) table engine. +The lesson above stored the data in two tables, but you could change the initial `nginxdb.access_logs` table to use the [`Null`](/core/reference/engines/table-engines/special/null) table engine. The parsed data will still end up in the `nginxdb.access_logs_view` table, but the raw data won't be stored in a table. diff --git a/integrations/connectors/data-ingestion/insert-local-files.mdx b/integrations/connectors/data-ingestion/insert-local-files.mdx index 48699e34..0513be48 100644 --- a/integrations/connectors/data-ingestion/insert-local-files.mdx +++ b/integrations/connectors/data-ingestion/insert-local-files.mdx @@ -11,7 +11,7 @@ keywords: ['insert local files ClickHouse', 'ClickHouse local file import', 'cli You can use `clickhouse-client` to stream local files into your ClickHouse service. This allows you the ability to preprocess the data using the many powerful and convenient ClickHouse functions. Let's look at an example... -1. Suppose we have a TSV file named `comments.tsv` that contains some Hacker News comments, and the header row contains column names. You need to specify an [input format](/reference/formats) when you insert the data, which in our case is `TabSeparatedWithNames`: +1. Suppose we have a TSV file named `comments.tsv` that contains some Hacker News comments, and the header row contains column names. You need to specify an [input format](/core/reference/formats) when you insert the data, which in our case is `TabSeparatedWithNames`: ```text id type author timestamp comment children @@ -40,7 +40,7 @@ ENGINE = MergeTree ORDER BY toYYYYMMDD(timestamp) ``` -3. We want to lowercase the `author` column, which is easily done with the [`lower` function](/reference/functions/regular-functions/string-functions#lower). We also want to split the `comment` string into tokens and store the result in the `tokens` column, which can be done using the [`extractAll` function](/reference/functions/regular-functions/string-search-functions#extractAll). You do all of this in one `clickhouse-client` command - notice how the `comments.tsv` file is piped into the `clickhouse-client` using the `<` operator: +3. We want to lowercase the `author` column, which is easily done with the [`lower` function](/core/reference/functions/regular-functions/string-functions#lower). We also want to split the `comment` string into tokens and store the result in the `tokens` column, which can be done using the [`extractAll` function](/core/reference/functions/regular-functions/string-search-functions#extractAll). You do all of this in one `clickhouse-client` command - notice how the `comments.tsv` file is piped into the `clickhouse-client` using the `<` operator: ```bash clickhouse-client \ @@ -112,4 +112,4 @@ cat comments.tsv | clickhouse-client \ " ``` -Visit the [docs page on `clickhouse-client`](/integrations/connectors/data-integrations/drivers-and-interfaces/cli) for details on how to install `clickhouse-client` on your local operating system. +Visit the [docs page on `clickhouse-client`](/core/concepts/features/interfaces/cli) for details on how to install `clickhouse-client` on your local operating system. diff --git a/integrations/connectors/data-ingestion/jdbc-with-clickhouse.mdx b/integrations/connectors/data-ingestion/jdbc-with-clickhouse.mdx index ab225bb6..42e84502 100644 --- a/integrations/connectors/data-ingestion/jdbc-with-clickhouse.mdx +++ b/integrations/connectors/data-ingestion/jdbc-with-clickhouse.mdx @@ -14,13 +14,13 @@ clickhouse-jdbc-bridge contains experimental codes and is no longer supported. I -Using JDBC requires the ClickHouse JDBC bridge, so you will need to use `clickhouse-local` on a local machine to stream the data from your database to ClickHouse Cloud. Visit the [**Using clickhouse-local**](/get-started/setup/migration-guides/other-methods/clickhouse-local-etl) page in the **Migrate** section of the docs for details. +Using JDBC requires the ClickHouse JDBC bridge, so you will need to use `clickhouse-local` on a local machine to stream the data from your database to ClickHouse Cloud. Visit the [**Using clickhouse-local**](/core/get-started/setup/migration-guides/other-methods/clickhouse-local-etl) page in the **Migrate** section of the docs for details. -**Overview:** The ClickHouse JDBC Bridge in combination with the [jdbc table function](/reference/functions/table-functions/jdbc) or the [JDBC table engine](/reference/engines/table-engines/integrations/jdbc) allows ClickHouse to access data from any external data source for which a JDBC driver is available: +**Overview:** The ClickHouse JDBC Bridge in combination with the [jdbc table function](/core/reference/functions/table-functions/jdbc) or the [JDBC table engine](/core/reference/engines/table-engines/integrations/jdbc) allows ClickHouse to access data from any external data source for which a JDBC driver is available: -This is handy when there is no native built-in [integration engine](/reference/engines/table-engines/integrations), table function, or external dictionary for the external data source available, but a JDBC driver for the data source exists. +This is handy when there is no native built-in [integration engine](/core/reference/engines/table-engines/integrations), table function, or external dictionary for the external data source available, but a JDBC driver for the data source exists. You can use the ClickHouse JDBC Bridge for both reads and writes. And in parallel for multiple external data sources, e.g. you can run distributed queries on ClickHouse across multiple external and internal data sources in real time. @@ -36,7 +36,7 @@ You have access to a machine that has: 2. wget installed 3. a current version of **Java** (e.g. OpenJDK Version >= 17) installed 4. a current version of **MySQL** (e.g. MySQL Version >=8) installed and running -5. a current version of **ClickHouse** [installed](/get-started/setup/self-managed/install) and running +5. a current version of **ClickHouse** [installed](/core/get-started/setup/install) and running ## Install the ClickHouse JDBC Bridge locally {#install-the-clickhouse-jdbc-bridge-locally} @@ -99,9 +99,9 @@ We started the ClickHouse JDBC Bridge in foreground mode. In order to stop the B ## Use the JDBC connection from within ClickHouse {#use-the-jdbc-connection-from-within-clickhouse} -ClickHouse can now access MySQL data by either using the [jdbc table function](/reference/functions/table-functions/jdbc) or the [JDBC table engine](/reference/engines/table-engines/integrations/jdbc). +ClickHouse can now access MySQL data by either using the [jdbc table function](/core/reference/functions/table-functions/jdbc) or the [JDBC table engine](/core/reference/engines/table-engines/integrations/jdbc). -The easiest way to execute the following examples is to copy and paste them into the [`clickhouse-client`](/integrations/connectors/data-integrations/drivers-and-interfaces/cli) or into the [Play UI](/integrations/connectors/data-integrations/drivers-and-interfaces/http). +The easiest way to execute the following examples is to copy and paste them into the [`clickhouse-client`](/core/concepts/features/interfaces/cli) or into the [Play UI](/core/concepts/features/interfaces/http). - jdbc Table Function: @@ -138,7 +138,7 @@ In order to install the ClickHouse JDBC Bridge externally, we do the following s 1. We install, configure and run the ClickHouse JDBC Bridge on a dedicated host by following the steps described in section 1 of this guide. -2. On each ClickHouse Host we add the following configuration block to the ClickHouse server configuration (depending on your chosen configuration format, use either the XML or YAML version): +2. On each ClickHouse Host we add the following configuration block to the ClickHouse server configuration (depending on your chosen configuration format, use either the XML or YAML version): diff --git a/integrations/connectors/data-ingestion/kafka/confluent/kafka-connect-http.mdx b/integrations/connectors/data-ingestion/kafka/confluent/kafka-connect-http.mdx index 8f7a8d47..a2472e1f 100644 --- a/integrations/connectors/data-ingestion/kafka/confluent/kafka-connect-http.mdx +++ b/integrations/connectors/data-ingestion/kafka/confluent/kafka-connect-http.mdx @@ -123,7 +123,7 @@ Note that this example preserves the Array fields of the Github dataset. We assu Follow [these instructions](https://docs.confluent.io/cloud/current/cp-component/connect-cloud-config.html#set-up-a-local-connect-worker-with-cp-install) for setting up Connect relevant to your installation type, noting the differences between a standalone and distributed cluster. If using Confluent Cloud, the distributed setup is relevant. -The most important parameter is the `http.api.url`. The [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http) for ClickHouse requires you to encode the INSERT statement as a parameter in the URL. This must include the format (`JSONEachRow` in this case) and target database. The format must be consistent with the Kafka data, which will be converted to a string in the HTTP payload. These parameters must be URL escaped. An example of this format for the Github dataset (assuming you're running ClickHouse locally) is shown below: +The most important parameter is the `http.api.url`. The [HTTP interface](/core/concepts/features/interfaces/http) for ClickHouse requires you to encode the INSERT statement as a parameter in the URL. This must include the format (`JSONEachRow` in this case) and target database. The format must be consistent with the Kafka data, which will be converted to a string in the HTTP payload. These parameters must be URL escaped. An example of this format for the Github dataset (assuming you're running ClickHouse locally) is shown below: ```response ://:?query=INSERT%20INTO%20.
    %20FORMAT%20JSONEachRow @@ -140,10 +140,10 @@ The following additional parameters are relevant to using the HTTP Sink with Cli * `ssl.enabled` - set to true if using SSL. * `connection.user` - username for ClickHouse. * `connection.password` - password for ClickHouse. -* `batch.max.size` - The number of rows to send in a single batch. Ensure this set is to an appropriately large number. Per ClickHouse [recommendations](/reference/statements/insert-into#performance-considerations) a value of 1000 should be considered a minimum. +* `batch.max.size` - The number of rows to send in a single batch. Ensure this set is to an appropriately large number. Per ClickHouse [recommendations](/core/reference/statements/insert-into#performance-considerations) a value of 1000 should be considered a minimum. * `tasks.max` - The HTTP Sink connector supports running one or more tasks. This can be used to increase performance. Along with batch size this represents your primary means of improving performance. * `key.converter` - set according to the types of your keys. -* `value.converter` - set based on the type of data on your topic. This data doesn't need a schema. The format here must be consistent with the FORMAT specified in the parameter `http.api.url`. The simplest here is to use JSON and the org.apache.kafka.connect.json.JsonConverter converter. Treating the value as a string, via the converter org.apache.kafka.connect.storage.StringConverter, is also possible - although this will require the user to extract a value in the insert statement using functions. [Avro format](/reference/formats/Avro/Avro) is also supported in ClickHouse if using the io.confluent.connect.avro.AvroConverter converter. +* `value.converter` - set based on the type of data on your topic. This data doesn't need a schema. The format here must be consistent with the FORMAT specified in the parameter `http.api.url`. The simplest here is to use JSON and the org.apache.kafka.connect.json.JsonConverter converter. Treating the value as a string, via the converter org.apache.kafka.connect.storage.StringConverter, is also possible - although this will require the user to extract a value in the insert statement using functions. [Avro format](/core/reference/formats/Avro/Avro) is also supported in ClickHouse if using the io.confluent.connect.avro.AvroConverter converter. A full list of settings, including how to configure a proxy, retries, and advanced SSL, can be found [here](https://docs.confluent.io/kafka-connect-http/current/connector_config.html). diff --git a/integrations/connectors/data-ingestion/kafka/index.mdx b/integrations/connectors/data-ingestion/kafka/index.mdx index b42de566..03f09f10 100644 --- a/integrations/connectors/data-ingestion/kafka/index.mdx +++ b/integrations/connectors/data-ingestion/kafka/index.mdx @@ -102,4 +102,4 @@ To get started using the Kafka table engine, see the [reference documentation](/ [BYOC]: /products/cloud/guides/infrastructure/deployment-options/byoc/overview [Cloud]: /products/cloud/getting-started/cloud-get-started -[Self-hosted]: /get-started/about/intro +[Self-hosted]: /core/get-started/about/intro diff --git a/integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink.mdx b/integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink.mdx index 9658c74b..8d916dac 100644 --- a/integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink.mdx +++ b/integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink.mdx @@ -111,7 +111,7 @@ The full table of configuration options: | `clickhouseSettings` | Comma-separated list of ClickHouse settings (e.g. "insert_quorum=2, etc...") | `""` | | `topic2TableMap` | Comma-separated list that maps topic names to table names (e.g. "topic1=table1, topic2=table2, etc...") | `""` | | `tableRefreshInterval` | Time (in seconds) to refresh the table definition cache | `0` | -| `keeperOnCluster` | Allows configuration of ON CLUSTER parameter for self-hosted instances (e.g. `ON CLUSTER clusterNameInConfigFileDefinition`) for exactly-once connect_state table (see [Distributed DDL Queries](/reference/statements/distributed-ddl) | `""` | +| `keeperOnCluster` | Allows configuration of ON CLUSTER parameter for self-hosted instances (e.g. `ON CLUSTER clusterNameInConfigFileDefinition`) for exactly-once connect_state table (see [Distributed DDL Queries](/core/reference/statements/distributed-ddl) | `""` | | `bypassRowBinary` | Allows disabling use of RowBinary and RowBinaryWithDefaults for Schema-based data (Avro, Protobuf, etc.) - should only be used when data will have missing columns, and Nullable/Default are unacceptable | `"false"` | | `dateTimeFormats` | Date time formats for parsing DateTime64 schema fields, separated by `;` (e.g. `someDateField=yyyy-MM-dd HH:mm:ss.SSSSSSSSS;someOtherDateField=yyyy-MM-dd HH:mm:ss`). | `""` | | `tolerateStateMismatch` | Allows the connector to drop records "earlier" than the current offset stored AFTER_PROCESSING (e.g. if offset 5 is sent, and offset 250 was the last recorded offset). Should be used to fix ingestion after failure and should be reverted back to `"false"` once done. | `"false"` | @@ -163,7 +163,7 @@ Sink, use [Kafka Connect Transformations](https://docs.confluent.io/platform/cur **Without a schema declared:** -A record is converted into JSON and sent to ClickHouse as a value in [JSONEachRow](/reference/formats/JSON/JSONEachRow) format. +A record is converted into JSON and sent to ClickHouse as a value in [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) format. ### Configuration recipes {#configuration-recipes} @@ -435,7 +435,7 @@ message TwoRecords { } ``` -From CH version 26.1 onwards, this schema is supported when `allow_experimental_nullable_tuple_type=1` (see [this documentation page](/reference/settings/session-settings#allow_experimental_nullable_tuple_type)). +From CH version 26.1 onwards, this schema is supported when `allow_experimental_nullable_tuple_type=1` (see [this documentation page](/core/reference/settings/session-settings#allow_experimental_nullable_tuple_type)). ##### JSON schema support {#json-schema-support} @@ -452,7 +452,7 @@ From CH version 26.1 onwards, this schema is supported when `allow_experimental_ ##### String support {#string-support} -The connector supports the String Converter in different ClickHouse formats: [JSON](/reference/formats/JSON/JSONEachRow), [CSV](/reference/formats/CSV/CSV), and [TSV](/reference/formats/TabSeparated/TabSeparated). +The connector supports the String Converter in different ClickHouse formats: [JSON](/core/reference/formats/JSON/JSONEachRow), [CSV](/core/reference/formats/CSV/CSV), and [TSV](/core/reference/formats/TabSeparated/TabSeparated). ```json { @@ -795,7 +795,7 @@ When using `exactlyOnce=true` with async inserts: **Important**: Always use `wait_for_async_insert=1` with exactly-once to ensure offset commits happen only after data is persisted. -For more information about async inserts, see the [ClickHouse async inserts documentation](/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts). +For more information about async inserts, see the [ClickHouse async inserts documentation](/core/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts). #### Connector parallelism {#connector-parallelism} diff --git a/integrations/connectors/data-ingestion/kafka/kafka-connect-jdbc.mdx b/integrations/connectors/data-ingestion/kafka/kafka-connect-jdbc.mdx index fbde2315..3eb003bf 100644 --- a/integrations/connectors/data-ingestion/kafka/kafka-connect-jdbc.mdx +++ b/integrations/connectors/data-ingestion/kafka/kafka-connect-jdbc.mdx @@ -54,7 +54,7 @@ The following parameters are relevant to using the JDBC connector with ClickHous * `_connection.url_` - this should take the form of `jdbc:clickhouse://<clickhouse host>:<clickhouse http port>/<target database>` * `connection.user` - a user with write access to the target database * `table.name.format`- ClickHouse table to insert data. This must exist. -* `batch.size` - The number of rows to send in a single batch. Ensure this set is to an appropriately large number. Per ClickHouse [recommendations](/reference/statements/insert-into#performance-considerations) a value of 1000 should be considered a minimum. +* `batch.size` - The number of rows to send in a single batch. Ensure this set is to an appropriately large number. Per ClickHouse [recommendations](/core/reference/statements/insert-into#performance-considerations) a value of 1000 should be considered a minimum. * `tasks.max` - The JDBC Sink connector supports running one or more tasks. This can be used to increase performance. Along with batch size this represents your primary means of improving performance. * `value.converter.schemas.enable` - Set to false if using a schema registry, true if you embed your schemas in the messages. * `value.converter` - Set according to your datatype e.g. for JSON, `io.confluent.connect.json.JsonSchemaConverter`. diff --git a/integrations/connectors/data-ingestion/kafka/kafka-table-engine-named-collections.mdx b/integrations/connectors/data-ingestion/kafka/kafka-table-engine-named-collections.mdx index a3a0020e..b243352b 100644 --- a/integrations/connectors/data-ingestion/kafka/kafka-table-engine-named-collections.mdx +++ b/integrations/connectors/data-ingestion/kafka/kafka-table-engine-named-collections.mdx @@ -33,7 +33,7 @@ Ensure the user creating the named collection has the necessary access permissio 1 ``` -Refer to the [User Management Guide](/concepts/features/security/access-rights) for more details on enabling access control. +Refer to the [User Management Guide](/core/concepts/features/security/access-rights) for more details on enabling access control. ## Configuration {#configuration} @@ -91,7 +91,7 @@ Add the following section to your ClickHouse `config.xml` file: ### Configuration notes {#configuration-notes} 1. Adjust Kafka addresses and related configurations to match your Kafka cluster setup. -2. The section before `` contains ClickHouse Kafka engine parameters. For a full list of parameters, refer to the [Kafka engine parameters ](/reference/engines/table-engines/integrations/kafka). +2. The section before `` contains ClickHouse Kafka engine parameters. For a full list of parameters, refer to the [Kafka engine parameters ](/core/reference/engines/table-engines/integrations/kafka). 3. The section within `` contains extended Kafka configuration options. For more options, refer to the [librdkafka configuration](https://github.com/confluentinc/librdkafka/blob/master/CONFIGURATION.md). 4. This example uses the `SASL_SSL` security protocol and `PLAIN` mechanism. Adjust these settings based on your Kafka cluster configuration. diff --git a/integrations/connectors/data-ingestion/kafka/kafka-table-engine.mdx b/integrations/connectors/data-ingestion/kafka/kafka-table-engine.mdx index f452dcb1..d4974e1b 100644 --- a/integrations/connectors/data-ingestion/kafka/kafka-table-engine.mdx +++ b/integrations/connectors/data-ingestion/kafka/kafka-table-engine.mdx @@ -17,7 +17,7 @@ The Kafka table engine can be used to [**read** data from](#kafka-to-clickhouse) If you're on ClickHouse Cloud, we recommend using [ClickPipes](/integrations/clickpipes/home) instead. ClickPipes natively supports private network connections, scaling ingestion and cluster resources independently, and comprehensive monitoring for streaming Kafka data into ClickHouse. -To use the Kafka table engine, you should be broadly familiar with [ClickHouse materialized views](/concepts/features/materialized-views/cascading-materialized-views). +To use the Kafka table engine, you should be broadly familiar with [ClickHouse materialized views](/core/concepts/features/materialized-views/cascading-materialized-views). #### Overview {#overview} @@ -25,7 +25,7 @@ Initially, we focus on the most common use case: using the Kafka table engine to The Kafka table engine allows ClickHouse to read from a Kafka topic directly. Whilst useful for viewing messages on a topic, the engine by design only permits one-time retrieval, i.e. when a query is issued to the table, it consumes data from the queue and increases the consumer offset before returning results to the caller. Data can't, in effect, be re-read without resetting these offsets. -To persist this data from a read of the table engine, we need a means of capturing the data and inserting it into another table. Trigger-based materialized views natively provide this functionality. A materialized view initiates a read on the table engine, receiving batches of documents. The TO clause determines the destination of the data - typically a table of the [Merge Tree family](/reference/engines/table-engines/mergetree-family). This process is visualized below: +To persist this data from a read of the table engine, we need a means of capturing the data and inserting it into another table. Trigger-based materialized views natively provide this functionality. A materialized view initiates a read on the table engine, receiving batches of documents. The TO clause determines the destination of the data - typically a table of the [Merge Tree family](/core/reference/engines/table-engines/mergetree-family). This process is visualized below: @@ -50,7 +50,7 @@ This step is required if you're connecting to a secure Kafka. These settings can ``` -Either place the above snippet inside a new file under your conf.d/ directory or merge it into existing configuration files. For settings that can be configured, see [here](/reference/engines/table-engines/integrations/kafka#configuration). +Either place the above snippet inside a new file under your conf.d/ directory or merge it into existing configuration files. For settings that can be configured, see [here](/core/reference/engines/table-engines/integrations/kafka#configuration). We're also going to create a database called `KafkaEngine` to use in this tutorial: @@ -66,7 +66,7 @@ USE KafkaEngine; ##### 3. Create the destination table {#3-create-the-destination-table} -Prepare your destination table. In the example below we use the reduced GitHub schema for purposes of brevity. Note that although we use a MergeTree table engine, this example could easily be adapted for any member of the [MergeTree family](/reference/engines/table-engines/mergetree-family). +Prepare your destination table. In the example below we use the reduced GitHub schema for purposes of brevity. Note that although we use a MergeTree table engine, this example could easily be adapted for any member of the [MergeTree family](/core/reference/engines/table-engines/mergetree-family). ```sql CREATE TABLE github @@ -221,7 +221,7 @@ ATTACH TABLE github_queue; ##### Adding Kafka metadata {#adding-kafka-metadata} -It can be useful to keep track of the metadata from the original Kafka messages after it's been ingested into ClickHouse. For example, we may want to know how much of a specific topic or partition we have consumed. For this purpose, the Kafka table engine exposes several [virtual columns](/reference/engines/table-engines#table_engines-virtual_columns). These can be persisted as columns in our target table by modifying our schema and materialized view's select statement. +It can be useful to keep track of the metadata from the original Kafka messages after it's been ingested into ClickHouse. For example, we may want to know how much of a specific topic or partition we have consumed. For this purpose, the Kafka table engine exposes several [virtual columns](/core/reference/engines/table-engines#table_engines-virtual_columns). These can be persisted as columns in our target table by modifying our schema and materialized view's select statement. First, we perform the stop operation described above before adding columns to our target table. @@ -239,7 +239,7 @@ ALTER TABLE github Next, we need to ensure virtual columns are mapped as required. Virtual columns are prefixed with `_`. -A complete listing of virtual columns can be found [here](/reference/engines/table-engines/integrations/kafka#virtual-columns). +A complete listing of virtual columns can be found [here](/core/reference/engines/table-engines/integrations/kafka#virtual-columns). To update our table with the virtual columns, we'll need to drop the materialized view, re-attach the Kafka engine table, and re-create the materialized view. @@ -299,16 +299,16 @@ Errors such as authentication issues aren't reported in responses to Kafka engin Kafka is often used as a "dumping ground" for data. This leads to topics containing mixed message formats and inconsistent field names. Avoid this and utilize Kafka features such Kafka Streams or ksqlDB to ensure messages are well-formed and consistent before insertion into Kafka. If these options aren't possible, ClickHouse has some features that can help. * Treat the message field as strings. Functions can be used in the materialized view statement to perform cleansing and casting if required. This shouldn't represent a production solution but might assist in one-off ingestion. -* If you're consuming JSON from a topic, using the JSONEachRow format, use the setting [`input_format_skip_unknown_fields`](/reference/settings/formats#input_format_skip_unknown_fields). When writing data, by default, ClickHouse throws an exception if input data contains columns that don't exist in the target table. However, if this option is enabled, these excess columns will be ignored. Again this isn't a production-level solution and might confuse others. +* If you're consuming JSON from a topic, using the JSONEachRow format, use the setting [`input_format_skip_unknown_fields`](/core/reference/settings/formats#input_format_skip_unknown_fields). When writing data, by default, ClickHouse throws an exception if input data contains columns that don't exist in the target table. However, if this option is enabled, these excess columns will be ignored. Again this isn't a production-level solution and might confuse others. * Consider the setting `kafka_skip_broken_messages`. This requires the user to specify the level of tolerance per block for malformed messages - considered in the context of kafka_max_block_size. If this tolerance is exceeded (measured in absolute messages) the usual exception behaviour will revert, and other messages will be skipped. ##### Delivery Semantics and challenges with duplicates {#delivery-semantics-and-challenges-with-duplicates} -The Kafka table engine has at-least-once semantics. Duplicates are possible in several known rare circumstances. For example, messages could be read from Kafka and successfully inserted into ClickHouse. Before the new offset can be committed, the connection to Kafka is lost. A retry of the block in this situation is required. The block may be [de-duplicated ](/reference/engines/table-engines/mergetree-family/replication)using a distributed table or ReplicatedMergeTree as the target table. While this reduces the chance of duplicate rows, it relies on identical blocks. Events such as a Kafka rebalancing may invalidate this assumption, causing duplicates in rare circumstances. +The Kafka table engine has at-least-once semantics. Duplicates are possible in several known rare circumstances. For example, messages could be read from Kafka and successfully inserted into ClickHouse. Before the new offset can be committed, the connection to Kafka is lost. A retry of the block in this situation is required. The block may be [de-duplicated ](/core/reference/engines/table-engines/mergetree-family/replication)using a distributed table or ReplicatedMergeTree as the target table. While this reduces the chance of duplicate rows, it relies on identical blocks. Events such as a Kafka rebalancing may invalidate this assumption, causing duplicates in rare circumstances. ##### Quorum based Inserts {#quorum-based-inserts} -You may need [quorum-based inserts](/reference/settings/session-settings#insert_quorum) for cases where higher delivery guarantees are required in ClickHouse. This can't be set on the materialized view or the target table. It can, however, be set for user profiles e.g. +You may need [quorum-based inserts](/core/reference/settings/session-settings#insert_quorum) for cases where higher delivery guarantees are required in ClickHouse. This can't be set on the materialized view or the target table. It can, however, be set for user profiles e.g. ```xml @@ -462,11 +462,11 @@ Multiple ClickHouse instances can all be configured to read from a topic using t Consider the following when looking to increase Kafka Engine table throughput performance: -* The performance will vary depending on the message size, format, and target table types. 100k rows/sec on a single table engine should be considered obtainable. By default, messages are read in blocks, controlled by the parameter kafka_max_block_size. By default, this is set to the [max_insert_block_size](/reference/settings/session-settings#max_insert_block_size), defaulting to 1,048,576. Unless messages are extremely large, this should nearly always be increased. Values between 500k to 1M aren't uncommon. Test and evaluate the effect on throughput performance. +* The performance will vary depending on the message size, format, and target table types. 100k rows/sec on a single table engine should be considered obtainable. By default, messages are read in blocks, controlled by the parameter kafka_max_block_size. By default, this is set to the [max_insert_block_size](/core/reference/settings/session-settings#max_insert_block_size), defaulting to 1,048,576. Unless messages are extremely large, this should nearly always be increased. Values between 500k to 1M aren't uncommon. Test and evaluate the effect on throughput performance. * The number of consumers for a table engine can be increased using kafka_num_consumers. However, by default, inserts will be linearized in a single thread unless kafka_thread_per_consumer is changed from the default value of 1. Set this to 1 to ensure flushes are performed in parallel. Note that creating a Kafka engine table with N consumers (and kafka_thread_per_consumer=1) is logically equivalent to creating N Kafka engines, each with a materialized view and kafka_thread_per_consumer=0. * Increasing consumers isn't a free operation. Each consumer maintains its own buffers and threads, increasing the overhead on the server. Be conscious of the overhead of consumers and scale linearly across your cluster first and if possible. * If the throughput of Kafka messages is variable and delays are acceptable, consider increasing the stream_flush_interval_ms to ensure larger blocks are flushed. -* [background_message_broker_schedule_pool_size](/reference/settings/server-settings/settings#background_message_broker_schedule_pool_size) sets the number of threads performing background tasks. These threads are used for Kafka streaming. This setting is applied at the ClickHouse server start and can't be changed in a user session, defaulting to 16. If you see timeouts in the logs, it may be appropriate to increase this. +* [background_message_broker_schedule_pool_size](/core/reference/settings/server-settings/settings#background_message_broker_schedule_pool_size) sets the number of threads performing background tasks. These threads are used for Kafka streaming. This setting is applied at the ClickHouse server start and can't be changed in a user session, defaulting to 16. If you see timeouts in the logs, it may be appropriate to increase this. * For communication with Kafka, the librdkafka library is used, which itself creates threads. Large numbers of Kafka tables, or consumers, can thus result in large numbers of context switches. Either distribute this load across the cluster, only replicating the target tables if possible, or consider using a table engine to read from multiple topics - a list of values is supported. Multiple materialized views can be read from a single table, each filtering to the data from a specific topic. Any settings changes should be tested. We recommend monitoring Kafka consumer lags to ensure you're properly scaled. @@ -475,7 +475,7 @@ Any settings changes should be tested. We recommend monitoring Kafka consumer la Aside from the settings discussed above, the following may be of interest: -* [Kafka_max_wait_ms](/reference/settings/session-settings#kafka_max_wait_ms) - The wait time in milliseconds for reading messages from Kafka before retry. Set at a user profile level and defaults to 5000. +* [Kafka_max_wait_ms](/core/reference/settings/session-settings#kafka_max_wait_ms) - The wait time in milliseconds for reading messages from Kafka before retry. Set at a user profile level and defaults to 5000. [All settings ](https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md)from the underlying librdkafka can also be placed in the ClickHouse configuration files inside a _kafka_ element - setting names should be XML elements with periods replaced with underscores e.g. diff --git a/integrations/connectors/data-ingestion/kafka/kafka-vector.mdx b/integrations/connectors/data-ingestion/kafka/kafka-vector.mdx index 2153dd9e..7b59d980 100644 --- a/integrations/connectors/data-ingestion/kafka/kafka-vector.mdx +++ b/integrations/connectors/data-ingestion/kafka/kafka-vector.mdx @@ -110,7 +110,7 @@ A few important notes on this configuration and behavior of Vector: - The source parameter `decoding.codec = "json"` ensures the message is passed to the ClickHouse sink as a single JSON object. If handling messages as Strings and using the default `bytes` value, the contents of the message will be appended to a field `message`. In most cases this will require processing in ClickHouse as described in the [Vector getting started](/integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse#4-parse-the-logs) guide. - Vector [adds a number of fields](https://vector.dev/docs/reference/configuration/sources/kafka/#output-data) to the messages. In our example, we ignore these fields in the ClickHouse sink via the configuration parameter `skip_unknown_fields = true`. This ignores fields that aren't part of the target table schema. Feel free to adjust your schema to ensure these meta fields such as `offset` are added. - Notice how the sink references of the source of events via the parameter `inputs`. -- Note the behavior of the ClickHouse sink as described [here](https://vector.dev/docs/reference/configuration/sinks/clickhouse/#buffers-and-batches). For optimal throughput, you may wish to tune the `buffer.max_events`, `batch.timeout_secs` and `batch.max_bytes` parameters. Per ClickHouse [recommendations](/reference/statements/insert-into#performance-considerations) a value of 1000 is should be considered a minimum for the number of events in any single batch. For uniform high throughput use cases, you may increase the parameter `buffer.max_events`. More variable throughputs may require changes in the parameter `batch.timeout_secs` +- Note the behavior of the ClickHouse sink as described [here](https://vector.dev/docs/reference/configuration/sinks/clickhouse/#buffers-and-batches). For optimal throughput, you may wish to tune the `buffer.max_events`, `batch.timeout_secs` and `batch.max_bytes` parameters. Per ClickHouse [recommendations](/core/reference/statements/insert-into#performance-considerations) a value of 1000 is should be considered a minimum for the number of events in any single batch. For uniform high throughput use cases, you may increase the parameter `buffer.max_events`. More variable throughputs may require changes in the parameter `batch.timeout_secs` - The parameter `auto_offset_reset = "smallest"` forces the Kafka source to start from the start of the topic - thus ensuring we consume the messages published in step (1). You may require different behavior. See [here](https://vector.dev/docs/reference/configuration/sources/kafka/#auto_offset_reset) for further details. 4. Start Vector diff --git a/integrations/connectors/data-ingestion/mysql.mdx b/integrations/connectors/data-ingestion/mysql.mdx deleted file mode 100644 index 673c3c73..00000000 --- a/integrations/connectors/data-ingestion/mysql.mdx +++ /dev/null @@ -1,156 +0,0 @@ ---- -slug: /integrations/mysql -sidebarTitle: 'MySQL' -title: 'MySQL' -hide_title: true -description: 'Page describing MySQL integration' -doc_type: 'reference' -integration: - - support_level: 'core' - - category: 'data_ingestion' - - website: 'https://github.com/ClickHouse/clickhouse' -keywords: ['mysql', 'database integration', 'external table', 'data source', 'sql database'] ---- - -import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/CloudNotSupportedBadge.jsx"; -import ExperimentalBadge from "/snippets/components/ExperimentalBadge/ExperimentalBadge.jsx"; - -# Integrating MySQL with ClickHouse - -This page covers using the `MySQL` table engine, for reading from a MySQL table. - - -For ClickHouse Cloud, you can also use the [MySQL ClickPipe](/integrations/clickpipes/mysql) (currently in public beta) to easily move data from your MySQL tables to ClickHouse. - - -## Connecting ClickHouse to MySQL using the MySQL Table Engine {#connecting-clickhouse-to-mysql-using-the-mysql-table-engine} - -The `MySQL` table engine allows you to connect ClickHouse to MySQL. **SELECT** and **INSERT** statements can be made in either ClickHouse or in the MySQL table. This article illustrates the basic methods of how to use the `MySQL` table engine. - -### 1. Configure MySQL {#1-configure-mysql} - -1. Create a database in MySQL: - ```sql - CREATE DATABASE db1; - ``` - -2. Create a table: - ```sql - CREATE TABLE db1.table1 ( - id INT, - column1 VARCHAR(255) - ); - ``` - -3. Insert sample rows: - ```sql - INSERT INTO db1.table1 - (id, column1) - VALUES - (1, 'abc'), - (2, 'def'), - (3, 'ghi'); - ``` - -4. Create a user to connect from ClickHouse: - ```sql - CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!'; - ``` - -5. Grant privileges as needed. (For demonstration purposes, the `mysql_clickhouse` user is granted admin privileges.) - ```sql - GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%'; - ``` - - -If you're using this feature in ClickHouse Cloud, you may need the to allow the ClickHouse Cloud IP addresses to access your MySQL instance. -Check the ClickHouse [Cloud Endpoints API](/products/cloud/guides/sql-console/query-endpoints) for egress traffic details. - - -### 2. Define a Table in ClickHouse {#2-define-a-table-in-clickhouse} - -1. Now let's create a ClickHouse table that uses the `MySQL` table engine: - ```sql - CREATE TABLE mysql_table1 ( - id UInt64, - column1 String - ) - ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!') - ``` - -The minimum parameters are: - -|parameter|Description |example | - |---------|----------------------------|---------------------| -|host |hostname or IP |mysql-host.domain.com| -|database |mysql database name |db1 | -|table |mysql table name |table1 | -|user |username to connect to mysql|mysql_clickhouse | -|password |password to connect to mysql|Password123! | - - -View the [MySQL table engine](/reference/engines/table-engines/integrations/mysql) doc page for a complete list of parameters. - - -### 3. Test the Integration {#3-test-the-integration} - -1. In MySQL, insert a sample row: - ```sql - INSERT INTO db1.table1 - (id, column1) - VALUES - (4, 'jkl'); - ``` - -2. Notice the existing rows from the MySQL table are in the ClickHouse table, along with the new row you just added: - ```sql - SELECT - id, - column1 - FROM mysql_table1 - ``` - -You should see 4 rows: - ```response - Query id: 6d590083-841e-4e95-8715-ef37d3e95197 - - ┌─id─┬─column1─┐ - │ 1 │ abc │ - │ 2 │ def │ - │ 3 │ ghi │ - │ 4 │ jkl │ - └────┴─────────┘ - - 4 rows in set. Elapsed: 0.044 sec. - ``` - -3. Let's add a row to the ClickHouse table: - ```sql - INSERT INTO mysql_table1 - (id, column1) - VALUES - (5,'mno') - ``` - -4. Notice the new row appears in MySQL: - ```bash - mysql> select id,column1 from db1.table1; - ``` - -You should see the new row: - ```response - +------+---------+ - | id | column1 | - +------+---------+ - | 1 | abc | - | 2 | def | - | 3 | ghi | - | 4 | jkl | - | 5 | mno | - +------+---------+ - 5 rows in set (0.01 sec) - ``` - -### Summary {#summary} - -The `MySQL` table engine allows you to connect ClickHouse to MySQL to exchange data back and forth. For more details, be sure to check out the documentation page for the [MySQL table engine](/reference/functions/table-functions/mysql). diff --git a/integrations/connectors/data-ingestion/postgresql/connecting-to-postgresql.mdx b/integrations/connectors/data-ingestion/postgresql/connecting-to-postgresql.mdx deleted file mode 100644 index 072185fd..00000000 --- a/integrations/connectors/data-ingestion/postgresql/connecting-to-postgresql.mdx +++ /dev/null @@ -1,345 +0,0 @@ ---- -slug: /integrations/postgresql/connecting-to-postgresql -title: 'Connecting to PostgreSQL' -keywords: ['clickhouse', 'postgres', 'postgresql', 'connect', 'integrate', 'table', 'engine'] -description: 'Page describing the various ways to connect PostgreSQL to ClickHouse' -show_related_blogs: true -doc_type: 'guide' ---- - -import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/CloudNotSupportedBadge.jsx"; -import ExperimentalBadge from "/snippets/components/ExperimentalBadge/ExperimentalBadge.jsx"; - -# Connecting ClickHouse to PostgreSQL - -This page covers following options for integrating PostgreSQL with ClickHouse: - -- using the `PostgreSQL` table engine, for reading from a PostgreSQL table -- using the experimental `MaterializedPostgreSQL` database engine, for syncing a database in PostgreSQL with a database in ClickHouse - - -Check out our [Managed Postgres](/products/managed-postgres/overview) service. Backed by NVMe storage that is physically collocated with compute, it delivers up to 10x faster performance for workloads that are disk-bound compared to alternatives using network-attached storage like EBS and allows you to replicate your Postgres data to ClickHouse using the Postgres CDC connector in ClickPipes. - - -## Using the PostgreSQL table engine {#using-the-postgresql-table-engine} - -The `PostgreSQL` table engine allows **SELECT** and **INSERT** operations on data stored on the remote PostgreSQL server from ClickHouse. -This article is to illustrate basic methods of integration using one table. - -### 1. Setting up PostgreSQL {#1-setting-up-postgresql} -1. In `postgresql.conf`, add the following entry to enable PostgreSQL to listen on the network interfaces: - ```text - listen_addresses = '*' - ``` - -2. Create a user to connect from ClickHouse. For demonstration purposes, this example grants full superuser rights. - ```sql - CREATE ROLE clickhouse_user SUPERUSER LOGIN PASSWORD 'ClickHouse_123'; - ``` - -3. Create a new database in PostgreSQL: - ```sql - CREATE DATABASE db_in_psg; - ``` - -4. Create a new table: - ```sql - CREATE TABLE table1 ( - id integer primary key, - column1 varchar(10) - ); - ``` - -5. Let's add a few rows for testing: - ```sql - INSERT INTO table1 - (id, column1) - VALUES - (1, 'abc'), - (2, 'def'); - ``` - -6. To configure PostgreSQL to allow connections to the new database with the new user for replication, add the following entry to the `pg_hba.conf` file. Update the address line with either the subnet or IP address of your PostgreSQL server: - ```text - # TYPE DATABASE USER ADDRESS METHOD - host db_in_psg clickhouse_user 192.168.1.0/24 password - ``` - -7. Reload the `pg_hba.conf` configuration (adjust this command depending on your version): - ```text - /usr/pgsql-12/bin/pg_ctl reload - ``` - -8. Verify the new `clickhouse_user` can login: - ```text - psql -U clickhouse_user -W -d db_in_psg -h - ``` - - -If you're using this feature in ClickHouse Cloud, you may need the to allow the ClickHouse Cloud IP addresses to access your PostgreSQL instance. -Check the ClickHouse [Cloud Endpoints API](/products/cloud/guides/sql-console/query-endpoints) for egress traffic details. - - -### 2. Define a Table in ClickHouse {#2-define-a-table-in-clickhouse} -1. Login to the `clickhouse-client`: - ```bash - clickhouse-client --user default --password ClickHouse123! - ``` - -2. Let's create a new database: - ```sql - CREATE DATABASE db_in_ch; - ``` - -3. Create a table that uses the `PostgreSQL`: - ```sql - CREATE TABLE db_in_ch.table1 - ( - id UInt64, - column1 String - ) - ENGINE = PostgreSQL('postgres-host.domain.com:5432', 'db_in_psg', 'table1', 'clickhouse_user', 'ClickHouse_123'); - ``` - - The minimum parameters needed are: - - |parameter|Description |example | - |---------|----------------------------|---------------------| - |host:port|hostname or IP and port |postgres-host.domain.com:5432| - |database |PostgreSQL database name |db_in_psg | - |user |username to connect to postgres|clickhouse_user | - |password |password to connect to postgres|ClickHouse_123 | - - - View the [PostgreSQL table engine](/reference/engines/table-engines/integrations/postgresql) doc page for a complete list of parameters. - - -### 3 Test the Integration {#3-test-the-integration} - -1. In ClickHouse, view initial rows: - ```sql - SELECT * FROM db_in_ch.table1 - ``` - - The ClickHouse table should automatically be populated with the two rows that already existed in the table in PostgreSQL: - ```response - Query id: 34193d31-fe21-44ac-a182-36aaefbd78bf - - ┌─id─┬─column1─┐ - │ 1 │ abc │ - │ 2 │ def │ - └────┴─────────┘ - ``` - -2. Back in PostgreSQL, add a couple of rows to the table: - ```sql - INSERT INTO table1 - (id, column1) - VALUES - (3, 'ghi'), - (4, 'jkl'); - ``` - -4. Those two new rows should appear in your ClickHouse table: - ```sql - SELECT * FROM db_in_ch.table1 - ``` - - The response should be: - ```response - Query id: 86fa2c62-d320-4e47-b564-47ebf3d5d27b - - ┌─id─┬─column1─┐ - │ 1 │ abc │ - │ 2 │ def │ - │ 3 │ ghi │ - │ 4 │ jkl │ - └────┴─────────┘ - ``` - -5. Let's see what happens when you add rows to the ClickHouse table: - ```sql - INSERT INTO db_in_ch.table1 - (id, column1) - VALUES - (5, 'mno'), - (6, 'pqr'); - ``` - -6. The rows added in ClickHouse should appear in the table in PostgreSQL: - ```sql - db_in_psg=# SELECT * FROM table1; - id | column1 - ----+--------- - 1 | abc - 2 | def - 3 | ghi - 4 | jkl - 5 | mno - 6 | pqr - (6 rows) - ``` - -This example demonstrated the basic integration between PostgreSQL and ClickHouse using the `PostrgeSQL` table engine. -Check out the [doc page for the PostgreSQL table engine](/reference/engines/table-engines/integrations/postgresql) for more features, such as specifying schemas, returning only a subset of columns, and connecting to multiple replicas. Also check out the [ClickHouse and PostgreSQL - a match made in data heaven - part 1](https://clickhouse.com/blog/migrating-data-between-clickhouse-postgres) blog. - -## Using the MaterializedPostgreSQL database engine {#using-the-materializedpostgresql-database-engine} - - - - -The PostgreSQL database engine uses the PostgreSQL replication features to create a replica of the database with all or a subset of schemas and tables. -This article is to illustrate basic methods of integration using one database, one schema and one table. - -***In the following procedures, the PostgreSQL CLI (psql) and the ClickHouse CLI (clickhouse-client) are used. The PostgreSQL server is installed on linux. The following has minimum settings if the postgresql database is new test install*** - -### 1. In PostgreSQL {#1-in-postgresql} -1. In `postgresql.conf`, set minimum listen levels, replication wal level and replication slots: - -add the following entries: -```text -listen_addresses = '*' -max_replication_slots = 10 -wal_level = logical -``` -_*ClickHouse needs minimum of `logical` wal level and minimum `2` replication slots_ - -2. Using an admin account, create a user to connect from ClickHouse: -```sql -CREATE ROLE clickhouse_user SUPERUSER LOGIN PASSWORD 'ClickHouse_123'; -``` -_*for demonstration purposes, full superuser rights have been granted._ - -3. create a new database: -```sql -CREATE DATABASE db1; -``` - -4. connect to the new database in `psql`: -```text -\connect db1 -``` - -5. create a new table: -```sql -CREATE TABLE table1 ( - id integer primary key, - column1 varchar(10) -); -``` - -6. add initial rows: -```sql -INSERT INTO table1 -(id, column1) -VALUES -(1, 'abc'), -(2, 'def'); -``` - -7. Configure PostgreSQL allow connections to the new database with the new user for replication. Below is the minimum entry to add to the `pg_hba.conf` file: - -```text -# TYPE DATABASE USER ADDRESS METHOD -host db1 clickhouse_user 192.168.1.0/24 password -``` -_*for demonstration purposes, this is using clear text password authentication method. update the address line with either the subnet or the address of the server per PostgreSQL documentation_ - -8. reload the `pg_hba.conf` configuration with something like this (adjust for your version): -```text -/usr/pgsql-12/bin/pg_ctl reload -``` - -9. Test the login with new `clickhouse_user`: -```text - psql -U clickhouse_user -W -d db1 -h -``` - -### 2. In ClickHouse {#2-in-clickhouse} -1. log into the ClickHouse CLI -```bash -clickhouse-client --user default --password ClickHouse123! -``` - -2. Enable the PostgreSQL experimental feature for the database engine: -```sql -SET allow_experimental_database_materialized_postgresql=1 -``` - -3. Create the new database to be replicated and define the initial table: -```sql -CREATE DATABASE db1_postgres -ENGINE = MaterializedPostgreSQL('postgres-host.domain.com:5432', 'db1', 'clickhouse_user', 'ClickHouse_123') -SETTINGS materialized_postgresql_tables_list = 'table1'; -``` -minimum options: - -|parameter|Description |example | -|---------|----------------------------|---------------------| -|host:port|hostname or IP and port |postgres-host.domain.com:5432| -|database |PostgreSQL database name |db1 | -|user |username to connect to postgres|clickhouse_user | -|password |password to connect to postgres|ClickHouse_123 | -|settings |additional settings for the engine| materialized_postgresql_tables_list = 'table1'| - - -For complete guide to the PostgreSQL database engine, refer to https://clickhouse.com/docs/engines/database-engines/materialized-postgresql/#settings - - -4. Verify the initial table has data: - -```sql -ch_env_2 :) select * from db1_postgres.table1; - -SELECT * -FROM db1_postgres.table1 - -Query id: df2381ac-4e30-4535-b22e-8be3894aaafc - -┌─id─┬─column1─┐ -│ 1 │ abc │ -└────┴─────────┘ -┌─id─┬─column1─┐ -│ 2 │ def │ -└────┴─────────┘ -``` - -### 3. Test basic replication {#3-test-basic-replication} -1. In PostgreSQL, add new rows: -```sql -INSERT INTO table1 -(id, column1) -VALUES -(3, 'ghi'), -(4, 'jkl'); -``` - -2. In ClickHouse, verify the new rows are visible: -```sql -ch_env_2 :) select * from db1_postgres.table1; - -SELECT * -FROM db1_postgres.table1 - -Query id: b0729816-3917-44d3-8d1a-fed912fb59ce - -┌─id─┬─column1─┐ -│ 1 │ abc │ -└────┴─────────┘ -┌─id─┬─column1─┐ -│ 4 │ jkl │ -└────┴─────────┘ -┌─id─┬─column1─┐ -│ 3 │ ghi │ -└────┴─────────┘ -┌─id─┬─column1─┐ -│ 2 │ def │ -└────┴─────────┘ -``` - -### 4. Summary {#4-summary} -This integration guide focused on a simple example on how to replicate a database with a table, however, there exist more advanced options which include replicating the whole database or adding new tables and schemas to the existing replications. Although DDL commands aren't supported for this replication, the engine can be set to detect changes and reload the tables when there are structural changes made. - - -For more features available for advanced options, please see the [reference documentation](/reference/engines/database-engines/materialized-postgresql). - diff --git a/integrations/connectors/data-ingestion/postgresql/inserting-data.mdx b/integrations/connectors/data-ingestion/postgresql/inserting-data.mdx deleted file mode 100644 index ab4fb741..00000000 --- a/integrations/connectors/data-ingestion/postgresql/inserting-data.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -slug: /integrations/postgresql/inserting-data -title: 'How to insert data from PostgreSQL' -keywords: ['postgres', 'postgresql', 'inserts'] -description: 'Page describing how to insert data from PostgresSQL using ClickPipes, PeerDB or the Postgres table function' -doc_type: 'guide' ---- - -We recommend reading [this guide](/get-started/oss/starter-guides/inserting-data) to learn best practices on inserting data to ClickHouse to optimize for insert performance. - -For bulk loading data from PostgreSQL, you can use: - -- using [ClickPipes](/integrations/clickpipes/postgres), the managed integration service for ClickHouse Cloud. -- `PeerDB by ClickHouse`, an ETL tool specifically designed for PostgreSQL database replication to both self-hosted ClickHouse and ClickHouse Cloud. -- The [Postgres Table Function](/reference/functions/table-functions/postgresql) to read data directly. This is typically appropriate for if batch replication based on a known watermark, e.g. a timestamp. is sufficient or if it's a once-off migration. This approach can scale to 10's of millions of rows. Users looking to migrate larger datasets should consider multiple requests, each dealing with a chunk of the data. Staging tables can be used for each chunk prior to its partitions being moved to a final table. This allows failed requests to be retried. For further details on this bulk-loading strategy, see here. -- Data can be exported from Postgres in CSV format. This can then be inserted into ClickHouse from either local files or via object storage using table functions. diff --git a/integrations/connectors/data-ingestion/redshift/_snippets/_migration_guide.mdx b/integrations/connectors/data-ingestion/redshift/_snippets/_migration_guide.mdx index 8ea10163..e9000a9f 100644 --- a/integrations/connectors/data-ingestion/redshift/_snippets/_migration_guide.mdx +++ b/integrations/connectors/data-ingestion/redshift/_snippets/_migration_guide.mdx @@ -67,7 +67,7 @@ To use this option, you need to set up a ClickHouse JDBC Bridge. ClickHouse JDBC Deploy the ClickHouse JDBC Bridge. For more details, see our user guide on [JDBC for External Data sources](/integrations/connectors/data-ingestion/jdbc-with-clickhouse) -If you're using ClickHouse Cloud, you will need to run your ClickHouse JDBC Bridge on a separate environment and connect to ClickHouse Cloud using the [remoteSecure](/reference/functions/table-functions/remote) function +If you're using ClickHouse Cloud, you will need to run your ClickHouse JDBC Bridge on a separate environment and connect to ClickHouse Cloud using the [remoteSecure](/core/reference/functions/table-functions/remote) function diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/native-clients-interfaces-index.mdx b/integrations/connectors/data-integrations/drivers-and-interfaces/native-clients-interfaces-index.mdx deleted file mode 100644 index 2ff5e3c4..00000000 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/native-clients-interfaces-index.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -description: 'Native clients and interfaces for ClickHouse' -keywords: ['clients', 'interfaces', 'CLI', 'SQL console', 'drivers'] -slug: /interfaces/natives-clients-and-interfaces -title: 'Native Clients and Interfaces' -doc_type: 'landing-page' ---- - -ClickHouse provides a number of different native clients and interfaces that allow you to connect to ClickHouse. - -For more information see the pages below: - -| Section | Summary | -|--------------------------------------------------------------|-------------------------------------------------------------------------------------| -| [clickhousectl](/integrations/connectors/data-integrations/drivers-and-interfaces/cli) | The CLI for ClickHouse: local and cloud. | -| [ClickHouse Client](/integrations/connectors/data-integrations/drivers-and-interfaces/client) | Native command-line client supporting command-line options and configuration files. | -| [Drivers & Interfaces](/integrations/connectors/data-integrations/drivers-and-interfaces/overview) | A number of network interfaces, libraries and visual interfaces. | -| [SQL Console](/integrations/connectors/data-integrations/sql-clients/sql-console) | A fast and easy way to interact with your data in ClickHouse Cloud. | \ No newline at end of file diff --git a/integrations/connectors/data-integrations/drivers-and-interfaces/tcp.mdx b/integrations/connectors/data-integrations/drivers-and-interfaces/tcp.mdx deleted file mode 100644 index 88513f31..00000000 --- a/integrations/connectors/data-integrations/drivers-and-interfaces/tcp.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -description: 'Documentation for the native TCP interface in ClickHouse' -sidebarTitle: 'Native interface (TCP)' -slug: /interfaces/tcp -title: 'Native interface (TCP)' -doc_type: 'reference' ---- - -The native protocol is used in the [command-line client](/integrations/connectors/data-integrations/drivers-and-interfaces/cli), for inter-server communication during distributed query processing, and also in other C++ programs. Unfortunately, native ClickHouse protocol doesn't have formal specification yet, but it can be reverse-engineered from ClickHouse source code (starting [around here](https://github.com/ClickHouse/ClickHouse/tree/master/src/Client)) and/or by intercepting and analyzing TCP traffic. diff --git a/integrations/connectors/data-integrations/sql-clients/jupysql.mdx b/integrations/connectors/data-integrations/sql-clients/jupysql.mdx index 53bce030..6d12e0b4 100644 --- a/integrations/connectors/data-integrations/sql-clients/jupysql.mdx +++ b/integrations/connectors/data-integrations/sql-clients/jupysql.mdx @@ -41,7 +41,7 @@ from sklearn_evaluation import plot **You'd need to make sure your Clickhouse is up and reachable for the next stages. You can use either the local or the cloud version.** -**Note:** you will need to adjust the connection string according to the instance type you're trying to connect to (url, user, password). In the example below we've used a local instance. To learn more about it, check out [this guide](/get-started/setup/overview). +**Note:** you will need to adjust the connection string according to the instance type you're trying to connect to (url, user, password). In the example below we've used a local instance. To learn more about it, check out [this guide](/core/get-started/setup/install). ```python %sql clickhouse://default:@localhost:8123/default diff --git a/integrations/connectors/data-integrations/sql-clients/sql-console.mdx b/integrations/connectors/data-integrations/sql-clients/sql-console.mdx deleted file mode 100644 index 78f459f1..00000000 --- a/integrations/connectors/data-integrations/sql-clients/sql-console.mdx +++ /dev/null @@ -1,372 +0,0 @@ ---- -sidebarTitle: 'SQL Console' -title: 'SQL Console' -slug: /integrations/sql-clients/sql-console -description: 'Learn about SQL Console' -doc_type: 'guide' -keywords: ['sql console', 'query interface', 'web ui', 'sql editor', 'cloud console'] -integration: - - support_level: 'community' - - category: 'sql_client' ---- - -import ExperimentalBadge from "/snippets/components/ExperimentalBadge/ExperimentalBadge.jsx"; -import { Image } from "/snippets/components/Image.jsx"; - -SQL console is the fastest and easiest way to explore and query your databases in ClickHouse Cloud. You can use the SQL console to: - -- Connect to your ClickHouse Cloud Services -- View, filter, and sort table data -- Execute queries and visualize result data in just a few clicks -- Share queries with team members and collaborate more effectively. - -## Exploring tables {#exploring-tables} - -### Viewing table list and schema info {#viewing-table-list-and-schema-info} - -An overview of tables contained in your ClickHouse instance can be found in the left sidebar area. Use the database selector at the top of the left bar to view the tables in a specific database - - - -Tables in the list can also be expanded to view columns and types - - - -### Exploring table data {#exploring-table-data} - -Click on a table in the list to open it in a new tab. In the Table View, data can be easily viewed, selected, and copied. Note that structure and formatting are preserved when copy-pasting to spreadsheet applications such as Microsoft Excel and Google Sheets. You can flip between pages of table data (paginated in 30-row increments) using the navigation in the footer. - - - -### Inspecting cell data {#inspecting-cell-data} - -The Cell Inspector tool can be used to view large amounts of data contained within a single cell. To open it, right-click on a cell and select 'Inspect Cell'. The contents of the cell inspector can be copied by clicking the copy icon in the top right corner of the inspector contents. - - - -## Filtering and sorting tables {#filtering-and-sorting-tables} - -### Sorting a table {#sorting-a-table} - -To sort a table in the SQL console, open a table and select the 'Sort' button in the toolbar. This button will open a menu that will allow you to configure your sort. You can choose a column by which to sort and configure the ordering of the sort (ascending or descending). Select 'Apply' or press Enter to sort your table - - - -The SQL console also allows you to add multiple sorts to a table. Click the 'Sort' button again to add another sort. Note: sorts are applied in the order that they appear in the sort pane (top to bottom). To remove a sort, simply click the 'x' button next to the sort. - -### Filtering a table {#filtering-a-table} - -To filter a table in the SQL console, open a table and select the 'Filter' button. Just like sorting, this button will open a menu that will allow you to configure your filter. You can choose a column by which to filter and select the necessary criteria. The SQL console intelligently displays filter options that correspond to the type of data contained in the column. - - - -When you're happy with your filter, you can select 'Apply' to filter your data. You can also add additional filters as shown below. - - - -Similar to the sort functionality, click the 'x' button next to a filter to remove it. - -### Filtering and sorting together {#filtering-and-sorting-together} - -The SQL console allows you to filter and sort a table at the same time. To do this, add all desired filters and sorts using the steps described above and click the 'Apply' button. - - - -### Creating a query from filters and sorts {#creating-a-query-from-filters-and-sorts} - -The SQL console can convert your sorts and filters directly into queries with one click. Simply select the 'Create Query' button from the toolbar with the sort and filter parameters of your choosing. After clicking 'Create query', a new query tab will open pre-populated with the SQL command corresponding to the data contained in your table view. - - - - -Filters and sorts aren't mandatory when using the 'Create Query' feature. - - -You can learn more about querying in the SQL console by reading the (link) query documentation. - -## Creating and running a query {#creating-and-running-a-query} - -### Creating a query {#creating-a-query} - -There are two ways to create a new query in the SQL console. - -- Click the '+' button in the tab bar -- Select the 'New Query' button from the left sidebar query list - - - -### Running a query {#running-a-query} - -To run a query, type your SQL command or commands into the SQL Editor and click the 'Run' button or use the shortcut `cmd / ctrl + enter`. To write and run multiple commands sequentially, make sure to add a semicolon after each command. - -Query Execution Options -By default, clicking the run button will run all commands contained in the SQL Editor. The SQL console supports two other query execution options: - -- Run selected commands -- Run command at the cursor - -To run selected commands, highlight the desired command or sequence of commands and click the 'Run' button (or use the `cmd / ctrl + enter` shortcut). You can also select 'Run selected' from the SQL Editor context menu (opened by right-clicking anywhere within the editor) when a selection is present. - - - -Running the command at the current cursor position can be achieved in two ways: - -- Select 'At Cursor' from the extended run options menu (or use the corresponding `cmd / ctrl + shift + enter` keyboard shortcut - - - -- Selecting 'Run at cursor' from the SQL Editor context menu - - - - -The command present at the cursor position will flash yellow on execution. - - -### Canceling a query {#canceling-a-query} - -While a query is running, the 'Run' button in the Query Editor toolbar will be replaced with a 'Cancel' button. Simply click this button or press `Esc` to cancel the query. Note: Any results that have already been returned will persist after cancellation. - - - -### Saving a query {#saving-a-query} - -If not previously named, your query should be called 'Untitled Query'. Click on the query name to change it. Renaming a query will cause the query to be saved. - - - -You can also use the save button or `cmd / ctrl + s` keyboard shortcut to save a query. - - - -## Using GenAI to manage queries {#using-genai-to-manage-queries} - -This feature allows you to write queries as natural language questions and have the query console create SQL queries based on the context of the available tables. GenAI can also help you debug your queries. - -For more information on GenAI, checkout the [Announcing GenAI powered query suggestions in ClickHouse Cloud blog post](https://clickhouse.com/blog/announcing-genai-powered-query-suggestions-clickhouse-cloud). - -### Table setup {#table-setup} - -Let's import the UK Price Paid example dataset and use that to create some GenAI queries. - -1. Open a ClickHouse Cloud service. -1. Create a new query by clicking the _+_ icon. -1. Paste and run the following code: - - ```sql - CREATE TABLE uk_price_paid - ( - price UInt32, - date Date, - postcode1 LowCardinality(String), - postcode2 LowCardinality(String), - type Enum8('terraced' = 1, 'semi-detached' = 2, 'detached' = 3, 'flat' = 4, 'other' = 0), - is_new UInt8, - duration Enum8('freehold' = 1, 'leasehold' = 2, 'unknown' = 0), - addr1 String, - addr2 String, - street LowCardinality(String), - locality LowCardinality(String), - town LowCardinality(String), - district LowCardinality(String), - county LowCardinality(String) - ) - ENGINE = MergeTree - ORDER BY (postcode1, postcode2, addr1, addr2); - ``` - - This query should take around 1 second to complete. Once it's done, you should have an empty table called `uk_price_paid. - -1. Create a new query and paste the following query: - - ```sql - INSERT INTO uk_price_paid - WITH - splitByChar(' ', postcode) AS p - SELECT - toUInt32(price_string) AS price, - parseDateTimeBestEffortUS(time) AS date, - p[1] AS postcode1, - p[2] AS postcode2, - transform(a, ['T', 'S', 'D', 'F', 'O'], ['terraced', 'semi-detached', 'detached', 'flat', 'other']) AS type, - b = 'Y' AS is_new, - transform(c, ['F', 'L', 'U'], ['freehold', 'leasehold', 'unknown']) AS duration, - addr1, - addr2, - street, - locality, - town, - district, - county - FROM url( - 'http://prod.publicdata.landregistry.gov.uk.s3-website-eu-west-1.amazonaws.com/pp-complete.csv', - 'CSV', - 'uuid_string String, - price_string String, - time String, - postcode String, - a String, - b String, - c String, - addr1 String, - addr2 String, - street String, - locality String, - town String, - district String, - county String, - d String, - e String' - ) SETTINGS max_http_get_redirects=10; - ``` - -This query grabs the dataset from the `gov.uk` website. This file is ~4GB, so this query will take a few minutes to complete. Once ClickHouse has processed the query, you should have the entire dataset within the `uk_price_paid` table. - -#### Query creation {#query-creation} - -Let's create a query using natural language. - -1. Select the **uk_price_paid** table, and then click **Create Query**. -1. Click **Generate SQL**. You may be asked to accept that your queries are sent to Chat-GPT. You must select **I agree** to continue. -1. You can now use this prompt to enter a natural language query and have ChatGPT convert it into an SQL query. In this example we're going to enter: - - > Show me the total price and total number of all uk_price_paid transactions by year. - -1. The console will generate the query we're looking for and display it in a new tab. In our example, GenAI created the following query: - - ```sql - -- Show me the total price and total number of all uk_price_paid transactions by year. - SELECT year(date), sum(price) as total_price, Count(*) as total_transactions - FROM uk_price_paid - GROUP BY year(date) - ``` - -1. Once you've verified that the query is correct, click **Run** to execute it. - -### Debugging {#debugging} - -Now, let's test the query debugging capabilities of GenAI. - -1. Create a new query by clicking the _+_ icon and paste the following code: - - ```sql - -- Show me the total price and total number of all uk_price_paid transactions by year. - SELECT year(date), sum(pricee) as total_price, Count(*) as total_transactions - FROM uk_price_paid - GROUP BY year(date) - ``` - -1. Click **Run**. The query fails since we're trying to get values from `pricee` instead of `price`. -1. Click **Fix Query**. -1. GenAI will attempt to fix the query. In this case, it changed `pricee` to `price`. It also realised that `toYear` is a better function to use in this scenario. -1. Select **Apply** to add the suggested changes to your query and click **Run**. - -Keep in mind that GenAI is an experimental feature. Use caution when running GenAI-generated queries against any dataset. - -## Advanced querying features {#advanced-querying-features} - -### Searching query results {#searching-query-results} - -After a query is executed, you can quickly search through the returned result set using the search input in the result pane. This feature assists in previewing the results of an additional `WHERE` clause or simply checking to ensure that specific data is included in the result set. After inputting a value into the search input, the result pane will update and return records containing an entry that matches the inputted value. In this example, we'll look for all instances of `breakfast` in the `hackernews` table for comments that contain `ClickHouse` (case-insensitive): - - - -Note: Any field matching the inputted value will be returned. For example, the third record in the above screenshot doesn't match 'breakfast' in the `by` field, but the `text` field does: - - - -### Adjusting pagination settings {#adjusting-pagination-settings} - -By default, the query result pane will display every result record on a single page. For larger result sets, it may be preferable to paginate results for easier viewing. This can be accomplished using the pagination selector in the bottom right corner of the result pane: - - - -Selecting a page size will immediately apply pagination to the result set and navigation options will appear in the middle of the result pane footer - - - -### Exporting query result data {#exporting-query-result-data} - -Query result sets can be easily exported to CSV format directly from the SQL console. To do so, open the `•••` menu on the right side of the result pane toolbar and select 'Download as CSV'. - - - -## Visualizing query data {#visualizing-query-data} - -Some data can be more easily interpreted in chart form. You can quickly create visualizations from query result data directly from the SQL console in just a few clicks. As an example, we'll use a query that calculates weekly statistics for NYC taxi trips: - -```sql -SELECT - toStartOfWeek(pickup_datetime) AS week, - sum(total_amount) AS fare_total, - sum(trip_distance) AS distance_total, - count(*) AS trip_total -FROM - nyc_taxi -GROUP BY - 1 -ORDER BY - 1 ASC -``` - - - -Without visualization, these results are difficult to interpret. Let's turn them into a chart. - -### Creating charts {#creating-charts} - -To begin building your visualization, select the 'Chart' option from the query result pane toolbar. A chart configuration pane will appear: - - - -We'll start by creating a simple bar chart tracking `trip_total` by `week`. To accomplish this, we'll drag the `week` field to the x-axis and the `trip_total` field to the y-axis: - - - -Most chart types support multiple fields on numeric axes. To demonstrate, we'll drag the fare_total field onto the y-axis: - - - -### Customizing charts {#customizing-charts} - -The SQL console supports ten chart types that can be selected from the chart type selector in the chart configuration pane. For example, we can easily change the previous chart type from Bar to an Area: - - - -Chart titles match the name of the query supplying the data. Updating the name of the query will cause the Chart title to update as well: - - - -A number of more advanced chart characteristics can also be adjusted in the 'Advanced' section of the chart configuration pane. To begin, we'll adjust the following settings: - -- Subtitle -- Axis titles -- Label orientation for the x-axis - -Our chart will be updated accordingly: - - - -In some scenarios, it may be necessary to adjust the axis scales for each field independently. This can also be accomplished in the 'Advanced' section of the chart configuration pane by specifying min and max values for an axis range. As an example, the above chart looks good, but in order to demonstrate the correlation between our `trip_total` and `fare_total` fields, the axis ranges need some adjustment: - - - -## Sharing queries {#sharing-queries} - -The SQL console enables you to share queries with your team. When a query is shared, all members of the team can see and edit the query. Shared queries are a great way to collaborate with your team. - -To share a query, click the 'Share' button in the query toolbar. - - - -A dialog will open, allowing you to share the query with all members of a team. If you have multiple teams, you can select which team to share the query with. - - - - - - - -In some scenarios, it may be necessary to adjust the axis scales for each field independently. This can also be accomplished in the 'Advanced' section of the chart configuration pane by specifying min and max values for an axis range. As an example, the above chart looks good, but in order to demonstrate the correlation between our `trip_total` and `fare_total` fields, the axis ranges need some adjustment: - - diff --git a/integrations/connectors/data-sources/cassandra.mdx b/integrations/connectors/data-sources/cassandra.mdx index b19e7d7c..74984da6 100644 --- a/integrations/connectors/data-sources/cassandra.mdx +++ b/integrations/connectors/data-sources/cassandra.mdx @@ -7,4 +7,4 @@ keywords: ['cassandra', 'integration', 'dictionary'] doc_type: 'reference' --- -You can integrate with Cassandra via a dictionary. Further details [here](/reference/statements/create/dictionary/sources/cassandra). +You can integrate with Cassandra via a dictionary. Further details [here](/core/reference/statements/create/dictionary/sources/cassandra). diff --git a/integrations/connectors/data-sources/gcs.mdx b/integrations/connectors/data-sources/gcs.mdx index 6399610f..db599962 100644 --- a/integrations/connectors/data-sources/gcs.mdx +++ b/integrations/connectors/data-sources/gcs.mdx @@ -11,7 +11,7 @@ import BucketDetails from '/snippets/_GCS_authentication_and_bucket.mdx'; import { Image } from "/snippets/components/Image.jsx"; -If you're using ClickHouse Cloud on [Google Cloud](https://cloud.google.com), this page doesn't apply as your services will already be using [Google Cloud Storage](https://cloud.google.com/storage). If you're looking to `SELECT` or `INSERT` data from GCS, please see the [`gcs` table function](/reference/functions/table-functions/gcs). +If you're using ClickHouse Cloud on [Google Cloud](https://cloud.google.com), this page doesn't apply as your services will already be using [Google Cloud Storage](https://cloud.google.com/storage). If you're looking to `SELECT` or `INSERT` data from GCS, please see the [`gcs` table function](/core/reference/functions/table-functions/gcs). ClickHouse recognizes that GCS represents an attractive storage solution if you're seeking to separate storage and compute. To help achieve this, support is provided for using GCS as the storage for a MergeTree engine. This will enable you to exploit the scalability and cost benefits of GCS, and the insert and query performance of the MergeTree engine. @@ -121,7 +121,7 @@ Storage configuration policies allow choosing where data is stored. The policy ``` -A complete list of settings relevant to this disk declaration can be found [here](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). +A complete list of settings relevant to this disk declaration can be found [here](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-s3). ### Creating a table {#creating-a-table} @@ -211,13 +211,13 @@ Place `chnode1` in one GCP region, and `chnode2` in a second. In this guide `us Don't start `clickhouse server` until after it is configured. Just install it. -Refer to the [installation instructions](/get-started/setup/self-managed/install) when performing the deployment steps on the ClickHouse server nodes. +Refer to the [installation instructions](/core/get-started/setup/install) when performing the deployment steps on the ClickHouse server nodes. #### Deploy ClickHouse Keeper {#deploy-clickhouse-keeper} Deploy ClickHouse Keeper on three hosts, in the sample configurations these are named `keepernode1`, `keepernode2`, and `keepernode3`. `keepernode1` can be deployed in the same region as `chnode1`, `keepernode2` with `chnode2`, and `keepernode3` in either region, but in a different availability zone from the ClickHouse node in that region. -Refer to the [installation instructions](/get-started/setup/self-managed/install) when performing the deployment steps on the ClickHouse Keeper nodes. +Refer to the [installation instructions](/core/get-started/setup/install) when performing the deployment steps on the ClickHouse Keeper nodes. ### Create two buckets {#create-two-buckets} diff --git a/integrations/connectors/data-sources/index.mdx b/integrations/connectors/data-sources/index.mdx index ea7b29b3..c485a1b3 100644 --- a/integrations/connectors/data-sources/index.mdx +++ b/integrations/connectors/data-sources/index.mdx @@ -16,19 +16,19 @@ For further information see the pages listed below: | [Kafka](/integrations/connectors/data-ingestion/kafka) | | [MySQL](/integrations/connectors/data-sources/mysql) | | [Cassandra](/integrations/connectors/data-sources/cassandra) | -| [Redis](/reference/functions/table-functions/redis) | -| [RabbitMQ](/reference/engines/table-engines/integrations/rabbitmq) | -| [MongoDB](/reference/engines/table-engines/integrations/mongodb) | +| [Redis](/core/reference/functions/table-functions/redis) | +| [RabbitMQ](/core/reference/engines/table-engines/integrations/rabbitmq) | +| [MongoDB](/core/reference/engines/table-engines/integrations/mongodb) | | [Google Cloud Storage (GCS)](/integrations/connectors/data-ingestion/GCP) | -| [Hive](/reference/engines/table-engines/integrations/hive) | -| [Hudi](/reference/engines/table-engines/integrations/hudi) | -| [Iceberg](/reference/functions/table-functions/iceberg) | +| [Hive](/core/reference/engines/table-engines/integrations/hive) | +| [Hudi](/core/reference/engines/table-engines/integrations/hudi) | +| [Iceberg](/core/reference/functions/table-functions/iceberg) | | [MinIO](/integrations/connectors/data-ingestion/s3-minio) | -| [Delta Lake](/reference/functions/table-functions/deltalake) | -| [RocksDB](/reference/engines/table-engines/integrations/embedded-rocksdb) | +| [Delta Lake](/core/reference/functions/table-functions/deltalake) | +| [RocksDB](/core/reference/engines/table-engines/integrations/embedded-rocksdb) | | [Splunk](/integrations/connectors/data-visualization/splunk-and-clickhouse) | -| [SQLite](/reference/engines/table-engines/integrations/sqlite) | -| [NATS](/reference/engines/table-engines/integrations/nats) | +| [SQLite](/core/reference/engines/table-engines/integrations/sqlite) | +| [NATS](/core/reference/engines/table-engines/integrations/nats) | | [EMQX](/integrations/connectors/data-ingestion/emqx) | | [Insert Local Files](/integrations/connectors/data-ingestion/insert-local-files) | | [JDBC](/integrations/connectors/data-ingestion/jdbc-with-clickhouse) | diff --git a/integrations/connectors/data-sources/mysql.mdx b/integrations/connectors/data-sources/mysql.mdx index 673c3c73..09b62c35 100644 --- a/integrations/connectors/data-sources/mysql.mdx +++ b/integrations/connectors/data-sources/mysql.mdx @@ -89,7 +89,7 @@ The minimum parameters are: |password |password to connect to mysql|Password123! | -View the [MySQL table engine](/reference/engines/table-engines/integrations/mysql) doc page for a complete list of parameters. +View the [MySQL table engine](/core/reference/engines/table-engines/integrations/mysql) doc page for a complete list of parameters. ### 3. Test the Integration {#3-test-the-integration} @@ -153,4 +153,4 @@ You should see the new row: ### Summary {#summary} -The `MySQL` table engine allows you to connect ClickHouse to MySQL to exchange data back and forth. For more details, be sure to check out the documentation page for the [MySQL table engine](/reference/functions/table-functions/mysql). +The `MySQL` table engine allows you to connect ClickHouse to MySQL to exchange data back and forth. For more details, be sure to check out the documentation page for the [MySQL table engine](/core/reference/functions/table-functions/mysql). diff --git a/integrations/connectors/data-sources/postgres.mdx b/integrations/connectors/data-sources/postgres.mdx index c1999d13..bdb8cb06 100644 --- a/integrations/connectors/data-sources/postgres.mdx +++ b/integrations/connectors/data-sources/postgres.mdx @@ -13,6 +13,6 @@ keywords: ['postgresql', 'database integration', 'external table', 'data source' import PostgreSQL from '/snippets/connecting-to-postgresql.mdx'; -> A full migration guide for PostgreSQL to ClickHouse, including advice on data modeling and equivalent concepts, can be found [here](/get-started/setup/migration-guides/postgres/overview). The following describes how to connect ClickHouse and PostgreSQL. +> A full migration guide for PostgreSQL to ClickHouse, including advice on data modeling and equivalent concepts, can be found [here](/core/get-started/setup/migration-guides/postgres/overview). The following describes how to connect ClickHouse and PostgreSQL. diff --git a/integrations/connectors/data-visualization/community-integrations/chartbrew-and-clickhouse.mdx b/integrations/connectors/data-visualization/community-integrations/chartbrew-and-clickhouse.mdx index 381b7062..2e98e485 100644 --- a/integrations/connectors/data-visualization/community-integrations/chartbrew-and-clickhouse.mdx +++ b/integrations/connectors/data-visualization/community-integrations/chartbrew-and-clickhouse.mdx @@ -27,7 +27,7 @@ In this guide, you will connect Chartbrew to ClickHouse, run a SQL query, and cr **Add some data** -If you don't have a dataset to work with, you can add one of the examples. This guide uses the [UK Price Paid](/get-started/sample-datasets/uk-price-paid) dataset. +If you don't have a dataset to work with, you can add one of the examples. This guide uses the [UK Price Paid](/core/get-started/sample-datasets/uk-price-paid) dataset. ## 1. Gather your connection details {#1-gather-your-connection-details} diff --git a/integrations/connectors/data-visualization/community-integrations/deepnote.mdx b/integrations/connectors/data-visualization/community-integrations/deepnote.mdx index e50b393c..7f4303d7 100644 --- a/integrations/connectors/data-visualization/community-integrations/deepnote.mdx +++ b/integrations/connectors/data-visualization/community-integrations/deepnote.mdx @@ -22,7 +22,7 @@ import ConnectionDetails from '/snippets/_gather_your_details_http.mdx'; This guide assumes you already have a Deepnote account and that you have a running ClickHouse instance. ## Interactive example {#interactive-example} -If you would like to explore an interactive example of querying ClickHouse from Deepnote data notebooks, click the button below to launch a template project connected to the [ClickHouse playground](/get-started/sample-datasets/playground). +If you would like to explore an interactive example of querying ClickHouse from Deepnote data notebooks, click the button below to launch a template project connected to the [ClickHouse playground](/core/get-started/sample-datasets/playground). [Launch in Deepnote](https://deepnote.com/launch?template=ClickHouse%20and%20Deepnote) diff --git a/integrations/connectors/data-visualization/community-integrations/explo-and-clickhouse.mdx b/integrations/connectors/data-visualization/community-integrations/explo-and-clickhouse.mdx index 79c2d5a6..31d13624 100644 --- a/integrations/connectors/data-visualization/community-integrations/explo-and-clickhouse.mdx +++ b/integrations/connectors/data-visualization/community-integrations/explo-and-clickhouse.mdx @@ -29,7 +29,7 @@ In this guide you will connect your data from ClickHouse to Explo and visualize **Add some data** -If you don't have a dataset to work with you can add one of the examples. This guide uses the [UK Price Paid](/get-started/sample-datasets/uk-price-paid) dataset, so you might choose that one. There are several others to look at in the same documentation category. +If you don't have a dataset to work with you can add one of the examples. This guide uses the [UK Price Paid](/core/get-started/sample-datasets/uk-price-paid) dataset, so you might choose that one. There are several others to look at in the same documentation category. ## 1. Gather your connection details {#1-gather-your-connection-details} diff --git a/integrations/connectors/data-visualization/community-integrations/mitzu-and-clickhouse.mdx b/integrations/connectors/data-visualization/community-integrations/mitzu-and-clickhouse.mdx index da229201..d0fca110 100644 --- a/integrations/connectors/data-visualization/community-integrations/mitzu-and-clickhouse.mdx +++ b/integrations/connectors/data-visualization/community-integrations/mitzu-and-clickhouse.mdx @@ -32,7 +32,7 @@ In this guide, we're going to cover the following: **Example datasets** If you don't have a data set to use for Mitzu, you can work with NYC Taxi Data. -This dataset is available in ClickHouse Cloud or [can be loaded with these instructions](/get-started/sample-datasets/nyc-taxi). +This dataset is available in ClickHouse Cloud or [can be loaded with these instructions](/core/get-started/sample-datasets/nyc-taxi). This guide is just a brief overview of how to use Mitzu. You can find more detailed information in the [Mitzu documentation](https://docs.mitzu.io/). diff --git a/integrations/connectors/data-visualization/grafana/config.mdx b/integrations/connectors/data-visualization/grafana/config.mdx index 753b73ef..caaf41a6 100644 --- a/integrations/connectors/data-visualization/grafana/config.mdx +++ b/integrations/connectors/data-visualization/grafana/config.mdx @@ -209,7 +209,7 @@ In the above example, we create an alias called `TimestampDate` that converts th This data isn't stored on disk like the first column, it's calculated at query time. Table-defined aliases won't be returned with `SELECT *`, but this can be configured in the server settings. -For more info, read the documentation for the [ALIAS](/reference/statements/create/table#alias) column type. +For more info, read the documentation for the [ALIAS](/core/reference/statements/create/table#alias) column type. #### Column alias tables {#column-alias-tables} diff --git a/integrations/connectors/data-visualization/grafana/index.mdx b/integrations/connectors/data-visualization/grafana/index.mdx index 9a75a159..f5f44411 100644 --- a/integrations/connectors/data-visualization/grafana/index.mdx +++ b/integrations/connectors/data-visualization/grafana/index.mdx @@ -44,9 +44,9 @@ When connecting ClickHouse to a data visualization tool like Grafana, it is reco Grafana doesn't validate that queries are safe. Queries can contain any SQL statement, including `DELETE` and `INSERT`. To configure a read-only user, follow these steps: -1. Create a `readonly` user profile following the [Creating Users and Roles in ClickHouse](/concepts/features/security/access-rights) guide. +1. Create a `readonly` user profile following the [Creating Users and Roles in ClickHouse](/core/concepts/features/security/access-rights) guide. 2. Ensure the `readonly` user has enough permission to modify the `max_execution_time` setting required by the underlying [clickhouse-go client](https://github.com/ClickHouse/clickhouse-go). -3. If you're using a public ClickHouse instance, it isn't recommended to set `readonly=2` in the `readonly` profile. Instead, leave `readonly=1` and set the constraint type of `max_execution_time` to [changeable_in_readonly](/concepts/features/configuration/settings/constraints-on-settings) to allow modification of this setting. +3. If you're using a public ClickHouse instance, it isn't recommended to set `readonly=2` in the `readonly` profile. Instead, leave `readonly=1` and set the constraint type of `max_execution_time` to [changeable_in_readonly](/core/concepts/features/configuration/settings/constraints-on-settings) to allow modification of this setting. ## 3. Install the ClickHouse plugin for Grafana {#3--install-the-clickhouse-plugin-for-grafana} diff --git a/integrations/connectors/data-visualization/grafana/query-builder.mdx b/integrations/connectors/data-visualization/grafana/query-builder.mdx index 267fa5aa..3e545bfb 100644 --- a/integrations/connectors/data-visualization/grafana/query-builder.mdx +++ b/integrations/connectors/data-visualization/grafana/query-builder.mdx @@ -41,10 +41,10 @@ The most flexible query type is the table query. This is a catch-all for the oth |----|----| | Builder Mode | Simple queries exclude Aggregates and Group By, while aggregate queries include these options. | | Columns | The selected columns. Raw SQL can be typed into this field to allow for functions and column aliasing. | -| Aggregates | A list of [aggregate functions](/reference/functions/aggregate-functions). Allows for custom values for function and column. Only visible in Aggregate mode. | -| Group By | A list of [GROUP BY](/reference/statements/select/group-by) expressions. Only visible in Aggregate mode. | -| Order By | A list of [ORDER BY](/reference/statements/select/order-by) expressions. | -| Limit | Appends a [LIMIT](/reference/statements/select/limit) statement to the end of the query. If set to `0` then it will be excluded. Some visualizations might need this set to `0` to show all the data. | +| Aggregates | A list of [aggregate functions](/core/reference/functions/aggregate-functions). Allows for custom values for function and column. Only visible in Aggregate mode. | +| Group By | A list of [GROUP BY](/core/reference/statements/select/group-by) expressions. Only visible in Aggregate mode. | +| Order By | A list of [ORDER BY](/core/reference/statements/select/order-by) expressions. | +| Limit | Appends a [LIMIT](/core/reference/statements/select/limit) statement to the end of the query. If set to `0` then it will be excluded. Some visualizations might need this set to `0` to show all the data. | | Filters | A list of filters to be applied in the `WHERE` clause. | @@ -70,8 +70,8 @@ The logs query type supports [data links](#data-links). | Time | The primary timestamp column for the log. Will display time-like types, but allows for custom values/functions. | | Log Level | Optional. The *level* or *severity* of the log. Values typically look like `INFO`, `error`, `Debug`, etc. | | Message | The log message content. | -| Order By | A list of [ORDER BY](/reference/statements/select/order-by) expressions. | -| Limit | Appends a [LIMIT](/reference/statements/select/limit) statement to the end of the query. If set to `0` then it will be excluded, but this isn't recommended for large log datasets. | +| Order By | A list of [ORDER BY](/core/reference/statements/select/order-by) expressions. | +| Limit | Appends a [LIMIT](/core/reference/statements/select/limit) statement to the end of the query. If set to `0` then it will be excluded, but this isn't recommended for large log datasets. | | Filters | A list of filters to be applied in the `WHERE` clause. | | Message Filter | A text input for conveniently filtering logs using a `LIKE %value%`. Excluded when input is empty. | @@ -104,10 +104,10 @@ Try removing the `LIMIT` clause by setting it to `0` (if your dataset allows). | Builder Mode | Simple queries exclude Aggregates and Group By, while aggregate queries include these options. | | Time | The primary time column for the query. Will display time-like types, but allows for custom values/functions. | | Columns | The selected columns. Raw SQL can be typed into this field to allow for functions and column aliasing. Only visible in Simple mode. | -| Aggregates | A list of [aggregate functions](/reference/functions/aggregate-functions). Allows for custom values for function and column. Only visible in Aggregate mode. | -| Group By | A list of [GROUP BY](/reference/statements/select/group-by) expressions. Only visible in Aggregate mode. | -| Order By | A list of [ORDER BY](/reference/statements/select/order-by) expressions. | -| Limit | Appends a [LIMIT](/reference/statements/select/limit) statement to the end of the query. If set to `0` then it will be excluded, this is recommended for some time series datasets in order to show the full visualization. | +| Aggregates | A list of [aggregate functions](/core/reference/functions/aggregate-functions). Allows for custom values for function and column. Only visible in Aggregate mode. | +| Group By | A list of [GROUP BY](/core/reference/statements/select/group-by) expressions. Only visible in Aggregate mode. | +| Order By | A list of [ORDER BY](/core/reference/statements/select/order-by) expressions. | +| Limit | Appends a [LIMIT](/core/reference/statements/select/limit) statement to the end of the query. If set to `0` then it will be excluded, this is recommended for some time series datasets in order to show the full visualization. | | Filters | A list of filters to be applied in the `WHERE` clause. | @@ -142,8 +142,8 @@ The trace query type supports [data links](#data-links). | Duration Unit | The unit of time used for the duration. Nanoseconds by default. The selected unit will be converted to a float in milliseconds as required by Grafana. | | Tags Column | Span Tags. Exclude this if not using an OTel based schema as it expects a specific Map column type. | | Service Tags Column | Service Tags. Exclude this if not using an OTel based schema as it expects a specific Map column type. | -| Order By | A list of [ORDER BY](/reference/statements/select/order-by) expressions. | -| Limit | Appends a [LIMIT](/reference/statements/select/limit) statement to the end of the query. If set to `0` then it will be excluded, but this isn't recommended for large trace datasets. | +| Order By | A list of [ORDER BY](/core/reference/statements/select/order-by) expressions. | +| Limit | Appends a [LIMIT](/core/reference/statements/select/limit) statement to the end of the query. If set to `0` then it will be excluded, but this isn't recommended for large trace datasets. | | Filters | A list of filters to be applied in the `WHERE` clause. | | Trace ID | The Trace ID to filter by. Only used in Trace ID mode, and when opening a trace ID [data link](#data-links). | @@ -232,7 +232,7 @@ WHERE log_time >= toDateTime(1415792726) AND log_time <= toDateTime(1447328726) In this example, the Grafana dashboard's time range is applied to the `log_time` column. -The plugin also supports notation using braces `{}`. Use this notation when queries are needed inside [parameters](/reference/syntax#defining-and-using-query-parameters). +The plugin also supports notation using braces `{}`. Use this notation when queries are needed inside [parameters](/core/reference/syntax#defining-and-using-query-parameters). ### List of macros {#list-of-macros} @@ -240,14 +240,14 @@ This is a list of all macros available in the plugin: | Macro | Description | Output example | | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| `$__dateFilter(columnName)` | Replaced by a time range filter on the provided column using the Grafana panel's time range as a [Date](/reference/data-types/date). | `columnName >= toDate('2022-10-21') AND columnName <= toDate('2022-10-23')` | -| `$__timeFilter(columnName)` | Replaced by a time range filter on the provided column using the Grafana panel's time range as a [DateTime](/reference/data-types/datetime). | `columnName >= toDateTime(1415792726) AND time <= toDateTime(1447328726)` | -| `$__timeFilter_ms(columnName)` | Replaced by a time range filter on the provided column using the Grafana panel's time range as a [DateTime64](/reference/data-types/datetime64). | `columnName >= fromUnixTimestamp64Milli(1415792726123) AND columnName <= fromUnixTimestamp64Milli(1447328726456)` | +| `$__dateFilter(columnName)` | Replaced by a time range filter on the provided column using the Grafana panel's time range as a [Date](/core/reference/data-types/date). | `columnName >= toDate('2022-10-21') AND columnName <= toDate('2022-10-23')` | +| `$__timeFilter(columnName)` | Replaced by a time range filter on the provided column using the Grafana panel's time range as a [DateTime](/core/reference/data-types/datetime). | `columnName >= toDateTime(1415792726) AND time <= toDateTime(1447328726)` | +| `$__timeFilter_ms(columnName)` | Replaced by a time range filter on the provided column using the Grafana panel's time range as a [DateTime64](/core/reference/data-types/datetime64). | `columnName >= fromUnixTimestamp64Milli(1415792726123) AND columnName <= fromUnixTimestamp64Milli(1447328726456)` | | `$__dateTimeFilter(dateColumn, timeColumn)` | Shorthand that combines `$__dateFilter()` and `$__timeFilter()` using separate Date and DateTime columns. Alias `$__dt()` | `$__dateFilter(dateColumn) AND $__timeFilter(timeColumn)` | -| `$__fromTime` | Replaced by the starting time of the Grafana panel range cast to a [DateTime](/reference/data-types/datetime). | `toDateTime(1415792726)` | -| `$__fromTime_ms` | Replaced by the starting time of the panel range cast to a [DateTime64](/reference/data-types/datetime64). | `fromUnixTimestamp64Milli(1415792726123)` | -| `$__toTime` | Replaced by the ending time of the Grafana panel range cast to a [DateTime](/reference/data-types/datetime). | `toDateTime(1447328726)` | -| `$__toTime_ms` | Replaced by the ending time of the panel range cast to a [DateTime64](/reference/data-types/datetime64). | `fromUnixTimestamp64Milli(1447328726456)` | +| `$__fromTime` | Replaced by the starting time of the Grafana panel range cast to a [DateTime](/core/reference/data-types/datetime). | `toDateTime(1415792726)` | +| `$__fromTime_ms` | Replaced by the starting time of the panel range cast to a [DateTime64](/core/reference/data-types/datetime64). | `fromUnixTimestamp64Milli(1415792726123)` | +| `$__toTime` | Replaced by the ending time of the Grafana panel range cast to a [DateTime](/core/reference/data-types/datetime). | `toDateTime(1447328726)` | +| `$__toTime_ms` | Replaced by the ending time of the panel range cast to a [DateTime64](/core/reference/data-types/datetime64). | `fromUnixTimestamp64Milli(1447328726456)` | | `$__timeInterval(columnName)` | Replaced by a function calculating the interval based on window size in seconds. | `toStartOfInterval(toDateTime(columnName), INTERVAL 20 second)` | | `$__timeInterval_ms(columnName)` | Replaced by a function calculating the interval based on window size in milliseconds. | `toStartOfInterval(toDateTime64(columnName, 3), INTERVAL 20 millisecond)` | | `$__interval_s` | Replaced by the dashboard interval in seconds. | `20` | diff --git a/integrations/connectors/data-visualization/metabase-and-clickhouse.mdx b/integrations/connectors/data-visualization/metabase-and-clickhouse.mdx index efd9c74b..08fce201 100644 --- a/integrations/connectors/data-visualization/metabase-and-clickhouse.mdx +++ b/integrations/connectors/data-visualization/metabase-and-clickhouse.mdx @@ -31,7 +31,7 @@ In this guide you will ask some questions of your ClickHouse data with Metabase **Add some data** -If you don't have a dataset to work with you can add one of the examples. This guide uses the [UK Price Paid](/get-started/sample-datasets/uk-price-paid) dataset, so you might choose that one. There are several others to look at in the same documentation category. +If you don't have a dataset to work with you can add one of the examples. This guide uses the [UK Price Paid](/core/get-started/sample-datasets/uk-price-paid) dataset, so you might choose that one. There are several others to look at in the same documentation category. ## 1. Gather your connection details {#1-gather-your-connection-details} diff --git a/integrations/connectors/data-visualization/powerbi-and-clickhouse.mdx b/integrations/connectors/data-visualization/powerbi-and-clickhouse.mdx index dae196c5..4cb37f40 100644 --- a/integrations/connectors/data-visualization/powerbi-and-clickhouse.mdx +++ b/integrations/connectors/data-visualization/powerbi-and-clickhouse.mdx @@ -224,7 +224,7 @@ PowerBI automatically generates SQL queries with nested subqueries, complex join - More predictable costs -If your dashboards are slow, check ClickHouse's [`query_log`](/reference/system-tables/query_log) to see what SQL queries Power BI is actually running. Common problems include nested subqueries, scanning entire tables, or inefficient joins. Once you identify the issue, create [materialized views](/concepts/features/materialized-views) that solve those specific problems. +If your dashboards are slow, check ClickHouse's [`query_log`](/core/reference/system-tables/query_log) to see what SQL queries Power BI is actually running. Common problems include nested subqueries, scanning entire tables, or inefficient joins. Once you identify the issue, create [materialized views](/core/concepts/features/materialized-views) that solve those specific problems. ### Implementation best practices {#implementation-best-practices} diff --git a/integrations/connectors/data-visualization/quicksight-and-clickhouse.mdx b/integrations/connectors/data-visualization/quicksight-and-clickhouse.mdx index 4f7c6821..f47e0ad1 100644 --- a/integrations/connectors/data-visualization/quicksight-and-clickhouse.mdx +++ b/integrations/connectors/data-visualization/quicksight-and-clickhouse.mdx @@ -20,7 +20,7 @@ QuickSight can connect to on-premise ClickHouse setup (23.11+) via MySQL interfa ## On-premise ClickHouse server setup {#on-premise-clickhouse-server-setup} -Please refer to [the official documentation](/integrations/connectors/data-integrations/drivers-and-interfaces/mysql) on how to set up a ClickHouse server with enabled MySQL interface. +Please refer to [the official documentation](/core/concepts/features/interfaces/mysql) on how to set up a ClickHouse server with enabled MySQL interface. Aside from adding an entry to the server's `config.xml` @@ -30,7 +30,7 @@ Aside from adding an entry to the server's `config.xml` ``` -it is also _required_ to use [Double SHA1 password encryption](/concepts/features/configuration/settings/settings-users#user-namepassword) for the user that will be using MySQL interface. +it is also _required_ to use [Double SHA1 password encryption](/core/concepts/features/configuration/settings/settings-users#user-namepassword) for the user that will be using MySQL interface. Generating a random password encrypted with Double SHA1 from the shell: diff --git a/integrations/connectors/data-visualization/splunk-and-clickhouse.mdx b/integrations/connectors/data-visualization/splunk-and-clickhouse.mdx index 5d4dd10b..d6e3fec6 100644 --- a/integrations/connectors/data-visualization/splunk-and-clickhouse.mdx +++ b/integrations/connectors/data-visualization/splunk-and-clickhouse.mdx @@ -35,7 +35,7 @@ With this guide, you will be able to create a dashboard connected to ClickHouse -This guide uses the [New York City Taxi dataset](/get-started/sample-datasets/nyc-taxi). There are many other datasets that you can use from [our docs](http://localhost:3000/docs/getting-started/example-datasets). +This guide uses the [New York City Taxi dataset](/core/get-started/sample-datasets/nyc-taxi). There are many other datasets that you can use from [our docs](http://localhost:3000/docs/getting-started/example-datasets). ## Prerequisites {#prerequisites} diff --git a/integrations/connectors/data-visualization/superset-and-clickhouse.mdx b/integrations/connectors/data-visualization/superset-and-clickhouse.mdx index f9853219..c464486a 100644 --- a/integrations/connectors/data-visualization/superset-and-clickhouse.mdx +++ b/integrations/connectors/data-visualization/superset-and-clickhouse.mdx @@ -31,7 +31,7 @@ In this guide you will build a dashboard in Superset with data from a ClickHouse **Add some data** -If you don't have a dataset to work with you can add one of the examples. This guide uses the [UK Price Paid](/get-started/sample-datasets/uk-price-paid) dataset, so you might choose that one. There are several others to look at in the same documentation category. +If you don't have a dataset to work with you can add one of the examples. This guide uses the [UK Price Paid](/core/get-started/sample-datasets/uk-price-paid) dataset, so you might choose that one. There are several others to look at in the same documentation category. ## 1. Gather your connection details {#1-gather-your-connection-details} diff --git a/integrations/connectors/data-visualization/tableau/tableau-analysis-tips.mdx b/integrations/connectors/data-visualization/tableau/tableau-analysis-tips.mdx index 5f4ff962..504d55be 100644 --- a/integrations/connectors/data-visualization/tableau/tableau-analysis-tips.mdx +++ b/integrations/connectors/data-visualization/tableau/tableau-analysis-tips.mdx @@ -11,12 +11,12 @@ integration: --- ## MEDIAN() and PERCENTILE() functions {#median-and-percentile-functions} -- In Live mode the MEDIAN() and PERCENTILE() functions (since connector v0.1.3 release) use the [ClickHouse quantile()() function](/reference/functions/aggregate-functions/reference/quantile), which significantly speeds up the calculation, but uses sampling. If you want to get accurate calculation results, then use functions `MEDIAN_EXACT()` and `PERCENTILE_EXACT()` (based on [quantileExact()()](/reference/functions/aggregate-functions/reference/quantileExact)). +- In Live mode the MEDIAN() and PERCENTILE() functions (since connector v0.1.3 release) use the [ClickHouse quantile()() function](/core/reference/functions/aggregate-functions/reference/quantile), which significantly speeds up the calculation, but uses sampling. If you want to get accurate calculation results, then use functions `MEDIAN_EXACT()` and `PERCENTILE_EXACT()` (based on [quantileExact()()](/core/reference/functions/aggregate-functions/reference/quantileExact)). - In Extract mode you can't use MEDIAN_EXACT() and PERCENTILE_EXACT() because MEDIAN() and PERCENTILE() are always accurate (and slow). ## Additional functions for calculated fields in Live mode {#additional-functions-for-calculated-fields-in-live-mode} ClickHouse has a huge number of functions that can be used for data analysis — much more than Tableau supports. For the convenience of users, we have added new functions that are available for use in Live mode when creating Calculated Fields. Unfortunately, it isn't possible to add descriptions to these functions in the Tableau interface, so we will add a description for them right here. -- **[`-If` Aggregation Combinator](/reference/functions/aggregate-functions/combinators#-if)** *(added in v0.2.3)* - allows to have Row-Level Filters right in the Aggregate Calculation. `SUM_IF(), AVG_IF(), COUNT_IF(), MIN_IF() & MAX_IF()` functions have been added. -- **`BAR([my_int], [min_val_int], [max_val_int], [bar_string_length_int])`** *(added in v0.2.1)* — Forget about boring bar charts! Use `BAR()` function instead (equivalent of [`bar()`](/reference/functions/regular-functions/other-functions#bar) in ClickHouse). For example, this calculated field returns nice bars as String: +- **[`-If` Aggregation Combinator](/core/reference/functions/aggregate-functions/combinators#-if)** *(added in v0.2.3)* - allows to have Row-Level Filters right in the Aggregate Calculation. `SUM_IF(), AVG_IF(), COUNT_IF(), MIN_IF() & MAX_IF()` functions have been added. +- **`BAR([my_int], [min_val_int], [max_val_int], [bar_string_length_int])`** *(added in v0.2.1)* — Forget about boring bar charts! Use `BAR()` function instead (equivalent of [`bar()`](/core/reference/functions/regular-functions/other-functions#bar) in ClickHouse). For example, this calculated field returns nice bars as String: ```text BAR([my_int], [min_val_int], [max_val_int], [bar_string_length_int]) + " " + FORMAT_READABLE_QUANTITY([my_int]) ``` @@ -26,23 +26,23 @@ ClickHouse has a huge number of functions that can be used for data analysis — █████ 88.02 million ███████████████ 259.37 million ``` -- **`COUNTD_UNIQ([my_field])`** *(added in v0.2.0)* — Calculates the approximate number of different values of the argument. Equivalent of [uniq()](/reference/functions/aggregate-functions/reference/uniq). Much faster than `COUNTD()`. -- **`DATE_BIN('day', 10, [my_datetime_or_date])`** *(added in v0.2.1)* — equivalent of [`toStartOfInterval()`](/reference/functions/regular-functions/date-time-functions#toStartOfInterval) in ClickHouse. Rounds down a Date or Date & Time to the given interval, for example: +- **`COUNTD_UNIQ([my_field])`** *(added in v0.2.0)* — Calculates the approximate number of different values of the argument. Equivalent of [uniq()](/core/reference/functions/aggregate-functions/reference/uniq). Much faster than `COUNTD()`. +- **`DATE_BIN('day', 10, [my_datetime_or_date])`** *(added in v0.2.1)* — equivalent of [`toStartOfInterval()`](/core/reference/functions/regular-functions/date-time-functions#toStartOfInterval) in ClickHouse. Rounds down a Date or Date & Time to the given interval, for example: ```text == my_datetime_or_date == | == DATE_BIN('day', 10, [my_datetime_or_date]) == 28.07.2004 06:54:50 | 21.07.2004 00:00:00 17.07.2004 14:01:56 | 11.07.2004 00:00:00 14.07.2004 07:43:00 | 11.07.2004 00:00:00 ``` -- **`FORMAT_READABLE_QUANTITY([my_integer])`** *(added in v0.2.1)* — Returns a rounded number with a suffix (thousand, million, billion, etc.) as a string. It is useful for reading big numbers by human. Equivalent of [`formatReadableQuantity()`](/reference/functions/regular-functions/other-functions#formatReadableQuantity). -- **`FORMAT_READABLE_TIMEDELTA([my_integer_timedelta_sec], [optional_max_unit])`** *(added in v0.2.1)* — Accepts the time delta in seconds. Returns a time delta with (year, month, day, hour, minute, second) as a string. `optional_max_unit` is maximum unit to show. Acceptable values: `seconds`, `minutes`, `hours`, `days`, `months`, `years`. Equivalent of [`formatReadableTimeDelta()`](/reference/functions/regular-functions/other-functions#formatReadableTimeDelta). -- **`GET_SETTING([my_setting_name])`** *(added in v0.2.1)* — Returns the current value of a custom setting. Equivalent of [`getSetting()`](/reference/functions/regular-functions/other-functions#getSetting). -- **`HEX([my_string])`** *(added in v0.2.1)* — Returns a string containing the argument's hexadecimal representation. Equivalent of [`hex()`](/reference/functions/regular-functions/encoding-functions#hex). -- **`KURTOSIS([my_number])`** — Computes the sample kurtosis of a sequence. Equivalent of [`kurtSamp()`](/reference/functions/aggregate-functions/reference/kurtSamp). -- **`KURTOSISP([my_number])`** — Computes the kurtosis of a sequence. The equivalent of [`kurtPop()`](/reference/functions/aggregate-functions/reference/kurtPop). -- **`MEDIAN_EXACT([my_number])`** *(added in v0.1.3)* — Exactly computes the median of a numeric data sequence. Equivalent of [`quantileExact(0.5)(...)`](/reference/functions/aggregate-functions/reference/quantileExact). -- **`MOD([my_number_1], [my_number_2])`** — Calculates the remainder after division. If arguments are floating-point numbers, they're pre-converted to integers by dropping the decimal portion. Equivalent of [`modulo()`](/reference/functions/regular-functions/arithmetic-functions#modulo). -- **`PERCENTILE_EXACT([my_number], [level_float])`** *(added in v0.1.3)* — Exactly computes the percentile of a numeric data sequence. The recommended level range is [0.01, 0.99]. Equivalent of [`quantileExact()()`](/reference/functions/aggregate-functions/reference/quantileExact). +- **`FORMAT_READABLE_QUANTITY([my_integer])`** *(added in v0.2.1)* — Returns a rounded number with a suffix (thousand, million, billion, etc.) as a string. It is useful for reading big numbers by human. Equivalent of [`formatReadableQuantity()`](/core/reference/functions/regular-functions/other-functions#formatReadableQuantity). +- **`FORMAT_READABLE_TIMEDELTA([my_integer_timedelta_sec], [optional_max_unit])`** *(added in v0.2.1)* — Accepts the time delta in seconds. Returns a time delta with (year, month, day, hour, minute, second) as a string. `optional_max_unit` is maximum unit to show. Acceptable values: `seconds`, `minutes`, `hours`, `days`, `months`, `years`. Equivalent of [`formatReadableTimeDelta()`](/core/reference/functions/regular-functions/other-functions#formatReadableTimeDelta). +- **`GET_SETTING([my_setting_name])`** *(added in v0.2.1)* — Returns the current value of a custom setting. Equivalent of [`getSetting()`](/core/reference/functions/regular-functions/other-functions#getSetting). +- **`HEX([my_string])`** *(added in v0.2.1)* — Returns a string containing the argument's hexadecimal representation. Equivalent of [`hex()`](/core/reference/functions/regular-functions/encoding-functions#hex). +- **`KURTOSIS([my_number])`** — Computes the sample kurtosis of a sequence. Equivalent of [`kurtSamp()`](/core/reference/functions/aggregate-functions/reference/kurtSamp). +- **`KURTOSISP([my_number])`** — Computes the kurtosis of a sequence. The equivalent of [`kurtPop()`](/core/reference/functions/aggregate-functions/reference/kurtPop). +- **`MEDIAN_EXACT([my_number])`** *(added in v0.1.3)* — Exactly computes the median of a numeric data sequence. Equivalent of [`quantileExact(0.5)(...)`](/core/reference/functions/aggregate-functions/reference/quantileExact). +- **`MOD([my_number_1], [my_number_2])`** — Calculates the remainder after division. If arguments are floating-point numbers, they're pre-converted to integers by dropping the decimal portion. Equivalent of [`modulo()`](/core/reference/functions/regular-functions/arithmetic-functions#modulo). +- **`PERCENTILE_EXACT([my_number], [level_float])`** *(added in v0.1.3)* — Exactly computes the percentile of a numeric data sequence. The recommended level range is [0.01, 0.99]. Equivalent of [`quantileExact()()`](/core/reference/functions/aggregate-functions/reference/quantileExact). - **`PROPER([my_string])`** *(added in v0.2.5)* - Converts a text string so the first letter of each word is capitalized and the remaining letters are in lowercase. Spaces and non-alphanumeric characters such as punctuation also act as separators. For example: ```text PROPER("PRODUCT name") => "Product Name" @@ -50,13 +50,13 @@ ClickHouse has a huge number of functions that can be used for data analysis — ```text PROPER("darcy-mae") => "Darcy-Mae" ``` -- **`RAND()`** *(added in v0.2.1)* — returns integer (UInt32) number, for example `3446222955`. Equivalent of [`rand()`](/reference/functions/regular-functions/random-functions#rand). +- **`RAND()`** *(added in v0.2.1)* — returns integer (UInt32) number, for example `3446222955`. Equivalent of [`rand()`](/core/reference/functions/regular-functions/random-functions#rand). - **`RANDOM()`** *(added in v0.2.1)* — unofficial [`RANDOM()`](https://kb.tableau.com/articles/issue/random-function-produces-inconsistent-results) Tableau function, which returns float between 0 and 1. -- **`RAND_CONSTANT([optional_field])`** *(added in v0.2.1)* — Produces a constant column with a random value. Something like `{RAND()}` Fixed LOD, but faster. Equivalent of [`randConstant()`](/reference/functions/regular-functions/random-functions#randConstant). -- **`REAL([my_number])`** — Casts field to float (Float64). Details [`here`](/reference/data-types/decimal#operations-and-result-type). -- **`SHA256([my_string])`** *(added in v0.2.1)* — Calculates SHA-256 hash from a string and returns the resulting set of bytes as a string (FixedString). Convenient to use with the `HEX()` function, for example, `HEX(SHA256([my_string]))`. Equivalent of [`SHA256()`](/reference/functions/regular-functions/hash-functions#SHA256). -- **`SKEWNESS([my_number])`** — Computes the sample skewness of a sequence. Equivalent of [`skewSamp()`](/reference/functions/aggregate-functions/reference/skewSamp). -- **`SKEWNESSP([my_number])`** — Computes the skewness of a sequence. Equivalent of [`skewPop()`](/reference/functions/aggregate-functions/reference/skewPop). -- **`TO_TYPE_NAME([field])`** *(added in v0.2.1)* — Returns a string containing the ClickHouse type name of the passed argument. Equivalent of [`toTypeName()`](/reference/functions/regular-functions/other-functions#toTypeName). -- **`TRUNC([my_float])`** — It is the same as the `FLOOR([my_float])` function. Equivalent of [`trunc()`](/reference/functions/regular-functions/rounding-functions#trunc). -- **`UNHEX([my_string])`** *(added in v0.2.1)* — Performs the opposite operation of `HEX()`. Equivalent of [`unhex()`](/reference/functions/regular-functions/encoding-functions#unhex). +- **`RAND_CONSTANT([optional_field])`** *(added in v0.2.1)* — Produces a constant column with a random value. Something like `{RAND()}` Fixed LOD, but faster. Equivalent of [`randConstant()`](/core/reference/functions/regular-functions/random-functions#randConstant). +- **`REAL([my_number])`** — Casts field to float (Float64). Details [`here`](/core/reference/data-types/decimal#operations-and-result-type). +- **`SHA256([my_string])`** *(added in v0.2.1)* — Calculates SHA-256 hash from a string and returns the resulting set of bytes as a string (FixedString). Convenient to use with the `HEX()` function, for example, `HEX(SHA256([my_string]))`. Equivalent of [`SHA256()`](/core/reference/functions/regular-functions/hash-functions#SHA256). +- **`SKEWNESS([my_number])`** — Computes the sample skewness of a sequence. Equivalent of [`skewSamp()`](/core/reference/functions/aggregate-functions/reference/skewSamp). +- **`SKEWNESSP([my_number])`** — Computes the skewness of a sequence. Equivalent of [`skewPop()`](/core/reference/functions/aggregate-functions/reference/skewPop). +- **`TO_TYPE_NAME([field])`** *(added in v0.2.1)* — Returns a string containing the ClickHouse type name of the passed argument. Equivalent of [`toTypeName()`](/core/reference/functions/regular-functions/other-functions#toTypeName). +- **`TRUNC([my_float])`** — It is the same as the `FLOOR([my_float])` function. Equivalent of [`trunc()`](/core/reference/functions/regular-functions/rounding-functions#trunc). +- **`UNHEX([my_string])`** *(added in v0.2.1)* — Performs the opposite operation of `HEX()`. Equivalent of [`unhex()`](/core/reference/functions/regular-functions/encoding-functions#unhex). diff --git a/integrations/connectors/data-visualization/tableau/tableau-connection-tips.mdx b/integrations/connectors/data-visualization/tableau/tableau-connection-tips.mdx index 92ad22ba..e2953b80 100644 --- a/integrations/connectors/data-visualization/tableau/tableau-connection-tips.mdx +++ b/integrations/connectors/data-visualization/tableau/tableau-connection-tips.mdx @@ -17,7 +17,7 @@ import ClickHouseSupportedBadge from "/snippets/components/ClickHouseSupported/C ## Initial SQL tab {#initial-sql-tab} -If the *Set Session ID* checkbox is activated on the Advanced tab (by default), feel free to set session level [settings](/reference/settings/session-settings) using +If the *Set Session ID* checkbox is activated on the Advanced tab (by default), feel free to set session level [settings](/core/reference/settings/session-settings) using ```text SET my_setting=value; diff --git a/integrations/connectors/navigation.json b/integrations/connectors/navigation.json new file mode 100644 index 00000000..d70b3637 --- /dev/null +++ b/integrations/connectors/navigation.json @@ -0,0 +1,242 @@ +{ + "item": "Connectors", + "icon": "/images/icons/icon-connectors.svg", + "root": "integrations/connectors/home", + "groups": [ + { + "group": "Data sources", + "pages": [ + "integrations/connectors/data-sources/index", + { + "group": "AWS S3", + "expanded": false, + "pages": [ + "integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse", + "integrations/connectors/data-ingestion/AWS/performance", + "integrations/connectors/data-ingestion/AWS/creating-an-s3-iam-role-and-bucket" + ] + }, + "integrations/connectors/data-sources/postgres", + { + "group": "Kafka", + "expanded": false, + "pages": [ + "integrations/connectors/data-ingestion/kafka/index", + "integrations/connectors/data-ingestion/kafka/kafka-clickhouse-connect-sink", + "integrations/connectors/data-ingestion/kafka/confluent/confluent-cloud", + "integrations/connectors/data-ingestion/kafka/confluent/custom-connector", + "integrations/connectors/data-ingestion/kafka/msk/index", + "integrations/connectors/data-ingestion/kafka/kafka-vector", + "integrations/connectors/data-ingestion/kafka/kafka-table-engine", + "integrations/connectors/data-ingestion/kafka/confluent/index", + "integrations/connectors/data-ingestion/kafka/confluent/kafka-connect-http", + "integrations/connectors/data-ingestion/kafka/kafka-connect-jdbc", + "integrations/connectors/data-ingestion/kafka/kafka-table-engine-named-collections" + ] + }, + "integrations/connectors/data-sources/mysql", + "integrations/connectors/data-sources/cassandra", + "integrations/connectors/data-sources/gcs", + "integrations/connectors/data-ingestion/s3-minio", + "integrations/connectors/data-ingestion/emqx/index", + "integrations/connectors/data-ingestion/insert-local-files", + "integrations/connectors/data-ingestion/jdbc-with-clickhouse", + "integrations/connectors/data-ingestion/odbc-with-clickhouse" + ] + }, + { + "group": "Data visualization", + "pages": [ + "integrations/connectors/data-visualization/index", + { + "group": "Grafana", + "expanded": false, + "pages": [ + "integrations/connectors/data-visualization/grafana/index", + "integrations/connectors/data-visualization/grafana/query-builder", + "integrations/connectors/data-visualization/grafana/config" + ] + }, + "integrations/connectors/data-visualization/lightdash-and-clickhouse", + "integrations/connectors/data-visualization/looker-and-clickhouse", + "integrations/connectors/data-visualization/looker-studio-and-clickhouse", + "integrations/connectors/data-visualization/metabase-and-clickhouse", + "integrations/connectors/data-visualization/omni-and-clickhouse", + "integrations/connectors/data-visualization/powerbi-and-clickhouse", + "integrations/connectors/data-visualization/quicksight-and-clickhouse", + "integrations/connectors/data-visualization/superset-and-clickhouse", + "integrations/connectors/data-visualization/splunk-and-clickhouse", + { + "group": "Tableau", + "expanded": false, + "pages": [ + "integrations/connectors/data-visualization/tableau/tableau-and-clickhouse", + "integrations/connectors/data-visualization/tableau/tableau-online-and-clickhouse", + "integrations/connectors/data-visualization/tableau/tableau-connection-tips", + "integrations/connectors/data-visualization/tableau/tableau-analysis-tips" + ] + }, + { + "group": "Community integrations", + "expanded": false, + "pages": [ + "integrations/connectors/data-visualization/community-integrations/astrato-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/chartbrew-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/databrain-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/deepnote", + "integrations/connectors/data-visualization/community-integrations/dot-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/draxlr-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/embeddable-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/explo-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/fabi-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/hashboard-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/luzmo-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/mitzu-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/rocketbi-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/zingdata-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/querio-and-clickhouse", + "integrations/connectors/data-visualization/community-integrations/holistics-and-clickhouse" + ] + } + ] + }, + { + "group": "Data ingestion", + "pages": [ + "integrations/connectors/data-ingestion/index", + "integrations/connectors/data-ingestion/etl-tools/airbyte-and-clickhouse", + "integrations/connectors/data-ingestion/etl-tools/apify-and-clickhouse", + { + "group": "Apache Spark", + "expanded": false, + "pages": [ + "integrations/connectors/data-ingestion/apache-spark/index", + "integrations/connectors/data-ingestion/apache-spark/spark-native-connector", + "integrations/connectors/data-ingestion/apache-spark/databricks", + "integrations/connectors/data-ingestion/apache-spark/spark-jdbc" + ] + }, + "integrations/connectors/data-ingestion/apache-flink", + "integrations/connectors/data-ingestion/AWS/glue", + { + "group": "Azure Data Factory", + "expanded": false, + "pages": [ + "integrations/connectors/data-ingestion/azure/azure-data-factory/index", + "integrations/connectors/data-ingestion/azure/azure-data-factory/overview", + "integrations/connectors/data-ingestion/azure/azure-data-factory/using-azureblobstorage", + "integrations/connectors/data-ingestion/azure/azure-data-factory/using-http-interface" + ] + }, + "integrations/connectors/data-ingestion/azure/azure-synapse", + "integrations/connectors/data-ingestion/etl-tools/apache-beam", + { + "group": "Google Dataflow", + "expanded": false, + "pages": [ + "integrations/connectors/data-ingestion/GCP/google-dataflow/dataflow", + "integrations/connectors/data-ingestion/GCP/google-dataflow/java-runner", + "integrations/connectors/data-ingestion/GCP/google-dataflow/templates", + { + "group": "Dataflow templates", + "expanded": false, + "pages": [ + "integrations/connectors/data-ingestion/GCP/google-dataflow/templates/bigquery-to-clickhouse" + ] + } + ] + }, + "integrations/connectors/data-ingestion/etl-tools/bladepipe-and-clickhouse", + { + "group": "dbt", + "expanded": false, + "pages": [ + "integrations/connectors/data-ingestion/etl-tools/dbt/index", + "integrations/connectors/data-ingestion/etl-tools/dbt/features-and-configurations", + "integrations/connectors/data-ingestion/etl-tools/dbt/materializations", + "integrations/connectors/data-ingestion/etl-tools/dbt/materialization-materialized-view", + "integrations/connectors/data-ingestion/etl-tools/dbt/guides" + ] + }, + "integrations/connectors/data-ingestion/etl-tools/dlt-and-clickhouse", + { + "group": "Fivetran", + "root": "integrations/connectors/data-ingestion/etl-tools/fivetran/index", + "pages": [ + "integrations/connectors/data-ingestion/etl-tools/fivetran/reference", + "integrations/connectors/data-ingestion/etl-tools/fivetran/troubleshooting" + ] + }, + "integrations/connectors/data-ingestion/etl-tools/nifi-and-clickhouse", + "integrations/connectors/data-ingestion/etl-tools/vector-to-clickhouse", + { + "group": "Streamkap", + "expanded": false, + "pages": [ + "integrations/connectors/data-ingestion/streamkap/streamkap-and-clickhouse", + "integrations/connectors/data-ingestion/streamkap/sql-server-clickhouse" + ] + }, + { + "group": "Community integrations", + "expanded": false, + "pages": [ + "integrations/connectors/data-ingestion/community-integrations/artie-and-clickhouse", + "integrations/connectors/data-ingestion/community-integrations/estuary" + ] + } + ] + }, + { + "group": "Tools", + "pages": [ + "integrations/connectors/tools/index", + { + "group": "SQL clients", + "expanded": false, + "root": "integrations/connectors/data-integrations/sql-clients/index", + "pages": [ + "integrations/connectors/data-integrations/sql-clients/datagrip", + "integrations/connectors/data-integrations/sql-clients/dbeaver", + "integrations/connectors/data-integrations/sql-clients/dbvisualizer", + "integrations/connectors/data-integrations/sql-clients/jupysql", + "integrations/connectors/data-integrations/sql-clients/qstudio", + "integrations/connectors/data-integrations/sql-clients/tablum", + "integrations/connectors/data-integrations/sql-clients/marimo", + "integrations/connectors/data-integrations/sql-clients/cli" + ] + }, + { + "group": "Data integrations", + "expanded": false, + "pages": [ + "integrations/connectors/tools/data-integration-index", + "integrations/connectors/data-integrations/integrations/retool", + "integrations/connectors/data-integrations/integrations/easypanel", + "integrations/connectors/data-integrations/integrations/middleware", + "integrations/connectors/data-integrations/integrations/splunk", + { + "group": "pg_clickhouse", + "expanded": false, + "pages": [ + "integrations/connectors/tools/pg_clickhouse/introduction", + "integrations/connectors/tools/pg_clickhouse/reference", + "integrations/connectors/tools/pg_clickhouse/tutorial" + ] + } + ] + }, + { + "group": "Misc", + "expanded": false, + "pages": [ + "integrations/connectors/tools/misc-index", + "integrations/connectors/tools/gui", + "integrations/connectors/tools/proxy", + "integrations/connectors/tools/third-party-libraries" + ] + } + ] + } + ] +} diff --git a/integrations/connectors/tools/pg_clickhouse/reference.mdx b/integrations/connectors/tools/pg_clickhouse/reference.mdx index e3370d2c..923ca770 100644 --- a/integrations/connectors/tools/pg_clickhouse/reference.mdx +++ b/integrations/connectors/tools/pg_clickhouse/reference.mdx @@ -1032,94 +1032,94 @@ SELECT clickhouse_raw_query( in conditionals (`HAVING` and `WHERE` clauses). That subset maps to ClickHouse equivalents as follows: -* `abs`: [abs](/reference/functions/regular-functions/arithmetic-functions#abs) -* `factorial`: [factorial](/reference/functions/regular-functions/math-functions#factorial) -* `mod` (int2/int4/int8/numeric): [modulo](/reference/functions/regular-functions/arithmetic-functions#modulo) -* `pow` & `power` (float8/numeric): [pow](/reference/functions/regular-functions/math-functions#pow) -* `round`: [round](/reference/functions/regular-functions/rounding-functions#round) -* `sin`, `cos`, `tan`, `atan`, `atan2`, `sinh`, `cosh`, `tanh`, `asinh`, `degrees`, `radians`, `pi`: [ClickHouse math functions](/reference/functions/regular-functions/math-functions) +* `abs`: [abs](/core/reference/functions/regular-functions/arithmetic-functions#abs) +* `factorial`: [factorial](/core/reference/functions/regular-functions/math-functions#factorial) +* `mod` (int2/int4/int8/numeric): [modulo](/core/reference/functions/regular-functions/arithmetic-functions#modulo) +* `pow` & `power` (float8/numeric): [pow](/core/reference/functions/regular-functions/math-functions#pow) +* `round`: [round](/core/reference/functions/regular-functions/rounding-functions#round) +* `sin`, `cos`, `tan`, `atan`, `atan2`, `sinh`, `cosh`, `tanh`, `asinh`, `degrees`, `radians`, `pi`: [ClickHouse math functions](/core/reference/functions/regular-functions/math-functions) of the same name. `asin`, `acos`, `atanh`, `acosh` are not pushed down: PG raises on out-of-range input where CH returns `NaN`. * `date_part`: - * `date_part('day')`: [toDayOfMonth](/reference/functions/regular-functions/date-time-functions#toDayOfMonth) - * `date_part('doy')`: [toDayOfYear](/reference/functions/regular-functions/date-time-functions#toDayOfYear) - * `date_part('dow')`: [toDayOfWeek](/reference/functions/regular-functions/date-time-functions#toDayOfWeek) - * `date_part('year')`: [toYear](/reference/functions/regular-functions/date-time-functions#toYear) - * `date_part('month')`: [toMonth](/reference/functions/regular-functions/date-time-functions#toMonth) - * `date_part('hour')`: [toHour](/reference/functions/regular-functions/date-time-functions#toHour) - * `date_part('minute')`: [toMinute](/reference/functions/regular-functions/date-time-functions#toMinute) - * `date_part('second')`: [toSecond](/reference/functions/regular-functions/date-time-functions#toSecond) - * `date_part('quarter')`: [toQuarter](/reference/functions/regular-functions/date-time-functions#toQuarter) - * `date_part('isoyear')`: [toISOYear](/reference/functions/regular-functions/date-time-functions#toISOYear) - * `date_part('week')`: [toISOYear](/reference/functions/regular-functions/date-time-functions#toISOWeek) - * `date_part('epoch')`: [toISOYear](/reference/functions/regular-functions/date-time-functions#toUnixTimestamp) + * `date_part('day')`: [toDayOfMonth](/core/reference/functions/regular-functions/date-time-functions#toDayOfMonth) + * `date_part('doy')`: [toDayOfYear](/core/reference/functions/regular-functions/date-time-functions#toDayOfYear) + * `date_part('dow')`: [toDayOfWeek](/core/reference/functions/regular-functions/date-time-functions#toDayOfWeek) + * `date_part('year')`: [toYear](/core/reference/functions/regular-functions/date-time-functions#toYear) + * `date_part('month')`: [toMonth](/core/reference/functions/regular-functions/date-time-functions#toMonth) + * `date_part('hour')`: [toHour](/core/reference/functions/regular-functions/date-time-functions#toHour) + * `date_part('minute')`: [toMinute](/core/reference/functions/regular-functions/date-time-functions#toMinute) + * `date_part('second')`: [toSecond](/core/reference/functions/regular-functions/date-time-functions#toSecond) + * `date_part('quarter')`: [toQuarter](/core/reference/functions/regular-functions/date-time-functions#toQuarter) + * `date_part('isoyear')`: [toISOYear](/core/reference/functions/regular-functions/date-time-functions#toISOYear) + * `date_part('week')`: [toISOYear](/core/reference/functions/regular-functions/date-time-functions#toISOWeek) + * `date_part('epoch')`: [toISOYear](/core/reference/functions/regular-functions/date-time-functions#toUnixTimestamp) * `date_trunc`: - * `date_trunc('week')`: [toMonday](/reference/functions/regular-functions/date-time-functions#toMonday) - * `date_trunc('second')`: [toStartOfSecond](/reference/functions/regular-functions/date-time-functions#toStartOfSecond) - * `date_trunc('minute')`: [toStartOfMinute](/reference/functions/regular-functions/date-time-functions#toStartOfMinute) - * `date_trunc('hour')`: [toStartOfHour](/reference/functions/regular-functions/date-time-functions#toStartOfHour) - * `date_trunc('day')`: [toStartOfDay](/reference/functions/regular-functions/date-time-functions#toStartOfDay) - * `date_trunc('month')`: [toStartOfMonth](/reference/functions/regular-functions/date-time-functions#toStartOfMonth) - * `date_trunc('quarter')`: [toStartOfQuarter](/reference/functions/regular-functions/date-time-functions#toStartOfQuarter) - * `date_trunc('year')`: [toStartOfYear](/reference/functions/regular-functions/date-time-functions#toStartOfYear) + * `date_trunc('week')`: [toMonday](/core/reference/functions/regular-functions/date-time-functions#toMonday) + * `date_trunc('second')`: [toStartOfSecond](/core/reference/functions/regular-functions/date-time-functions#toStartOfSecond) + * `date_trunc('minute')`: [toStartOfMinute](/core/reference/functions/regular-functions/date-time-functions#toStartOfMinute) + * `date_trunc('hour')`: [toStartOfHour](/core/reference/functions/regular-functions/date-time-functions#toStartOfHour) + * `date_trunc('day')`: [toStartOfDay](/core/reference/functions/regular-functions/date-time-functions#toStartOfDay) + * `date_trunc('month')`: [toStartOfMonth](/core/reference/functions/regular-functions/date-time-functions#toStartOfMonth) + * `date_trunc('quarter')`: [toStartOfQuarter](/core/reference/functions/regular-functions/date-time-functions#toStartOfQuarter) + * `date_trunc('year')`: [toStartOfYear](/core/reference/functions/regular-functions/date-time-functions#toStartOfYear) * `extract(field FROM source)`: same mappings as `date_part` -* `date(timestamp)` & `date(timestamptz)`: [toDate](/reference/functions/regular-functions/type-conversion-functions#toDate) +* `date(timestamp)` & `date(timestamptz)`: [toDate](/core/reference/functions/regular-functions/type-conversion-functions#toDate) (deparsed as CH alias `date`) -* `array_position`: [indexOf](/reference/functions/regular-functions/array-functions#indexOf) -* `array_cat`: [arrayConcat](/reference/functions/regular-functions/array-functions#arrayConcat) -* `array_append`: [arrayPushBack](/reference/functions/regular-functions/array-functions#arrayPushBack) -* `array_prepend`: [arrayPushFront](/reference/functions/regular-functions/array-functions#arrayPushFront) -* `array_remove`: [arrayRemove](/reference/functions/regular-functions/array-functions#arrayRemove) -* `array_length` & `cardinality`: [length](/reference/functions/regular-functions/array-functions#length) -* `array_to_string`: [arrayStringConcat](/reference/functions/regular-functions/array-functions#arrayStringConcat) -* `string_to_array`: [splitByString](/reference/functions/regular-functions/splitting-merging-functions#splitByString) -* `split_part`: [splitByString](/reference/functions/regular-functions/splitting-merging-functions#splitByString) + array subscript -* `trim_array`: [arrayResize](/reference/functions/regular-functions/array-functions#arrayResize) -* `array_fill`: [arrayWithConstant](/reference/functions/regular-functions/array-functions#arrayWithConstant) -* `array_reverse`: [arrayReverse](/reference/functions/regular-functions/array-functions#arrayReverse) -* `array_shuffle`: [arrayShuffle](/reference/functions/regular-functions/array-functions#arrayShuffle) -* `array_sample`: [arrayRandomSample](/reference/functions/regular-functions/array-functions#arrayRandomSample) -* `array_sort`: [arraySort](/reference/functions/regular-functions/array-functions#arraySort) / [arrayReverseSort](/reference/functions/regular-functions/array-functions#arrayReverseSort) -* `btrim`: [trimBoth](/reference/functions/regular-functions/string-functions#trimboth) -* `ltrim`: [ltrim](/reference/functions/regular-functions/string-functions#ltrim) -* `rtrim`: [rtrim](/reference/functions/regular-functions/string-functions#rtrim) -* `concat_ws`: [concatWithSeparator](/reference/functions/regular-functions/string-functions#concatwithseparator) -* `lower(text)`: [lowerUTF8](/reference/functions/regular-functions/string-functions#lowerutf8) -* `upper(text)`: [upperUTF8](/reference/functions/regular-functions/string-functions#upperutf8) -* `substring(text, ...)` & `substr(text, ...)`: [substringUTF8](/reference/functions/regular-functions/string-functions#substringutf8) -* `substring(bytea, ...)` & `substr(bytea, ...)`: [substring](/reference/functions/regular-functions/string-functions#substring) -* `length(text)`: [lengthUTF8](/reference/functions/regular-functions/string-functions#lengthutf8) -* `length(bytea)` & `octet_length`: [length](/reference/functions/regular-functions/array-functions#length) -* `reverse(text)`: [reverseUTF8](/reference/functions/regular-functions/string-functions#reverseutf8) -* `reverse(bytea)`: [reverse](/reference/functions/regular-functions/string-functions#reverse) -* `strpos`: [positionUTF8](/reference/functions/regular-functions/string-search-functions#positionutf8) -* `regexp_like`: [match](/reference/functions/regular-functions/string-search-functions#match) -* `regexp_replace`: [replaceRegexpOne](/reference/functions/regular-functions/string-replace-functions#replaceRegexpOne) or [replaceRegexpOne](/reference/functions/regular-functions/string-replace-functions#replaceRegexpAll) when the `g` flag is present -* `regexp_split_to_array`: [splitByRegexp](/reference/functions/regular-functions/splitting-merging-functions#splitByRegexp) -* `md5`: [MD5](/reference/functions/regular-functions/hash-functions#MD5) -* `json_extract_path_text`: [sub-column syntax](/reference/data-types/newjson#reading-json-paths-as-sub-columns) -* `json_extract_path`: [toJSONString](/reference/functions/regular-functions/json-functions#toJSONString) + [sub-column syntax](/reference/data-types/newjson#reading-json-paths-as-sub-columns) -* `jsonb_extract_path_text`: [sub-column syntax](/reference/data-types/newjson#reading-json-paths-as-sub-columns) -* `jsonb_extract_path`: [toJSONString](/reference/functions/regular-functions/json-functions#toJSONString) + [sub-column syntax](/reference/data-types/newjson#reading-json-paths-as-sub-columns) -* `bit_count(bytea)`: [bitCount](/reference/functions/regular-functions/bit-functions#bitcount) -* `to_timestamp(float8)`: [fromUnixTimestamp](/reference/functions/regular-functions/date-time-functions#fromUnixTimestamp) -* `to_char(timestamp[tz], fmt)`: [formatDateTime](/reference/functions/regular-functions/date-time-functions#formatDateTime) +* `array_position`: [indexOf](/core/reference/functions/regular-functions/array-functions#indexOf) +* `array_cat`: [arrayConcat](/core/reference/functions/regular-functions/array-functions#arrayConcat) +* `array_append`: [arrayPushBack](/core/reference/functions/regular-functions/array-functions#arrayPushBack) +* `array_prepend`: [arrayPushFront](/core/reference/functions/regular-functions/array-functions#arrayPushFront) +* `array_remove`: [arrayRemove](/core/reference/functions/regular-functions/array-functions#arrayRemove) +* `array_length` & `cardinality`: [length](/core/reference/functions/regular-functions/array-functions#length) +* `array_to_string`: [arrayStringConcat](/core/reference/functions/regular-functions/array-functions#arrayStringConcat) +* `string_to_array`: [splitByString](/core/reference/functions/regular-functions/splitting-merging-functions#splitByString) +* `split_part`: [splitByString](/core/reference/functions/regular-functions/splitting-merging-functions#splitByString) + array subscript +* `trim_array`: [arrayResize](/core/reference/functions/regular-functions/array-functions#arrayResize) +* `array_fill`: [arrayWithConstant](/core/reference/functions/regular-functions/array-functions#arrayWithConstant) +* `array_reverse`: [arrayReverse](/core/reference/functions/regular-functions/array-functions#arrayReverse) +* `array_shuffle`: [arrayShuffle](/core/reference/functions/regular-functions/array-functions#arrayShuffle) +* `array_sample`: [arrayRandomSample](/core/reference/functions/regular-functions/array-functions#arrayRandomSample) +* `array_sort`: [arraySort](/core/reference/functions/regular-functions/array-functions#arraySort) / [arrayReverseSort](/core/reference/functions/regular-functions/array-functions#arrayReverseSort) +* `btrim`: [trimBoth](/core/reference/functions/regular-functions/string-functions#trimboth) +* `ltrim`: [ltrim](/core/reference/functions/regular-functions/string-functions#ltrim) +* `rtrim`: [rtrim](/core/reference/functions/regular-functions/string-functions#rtrim) +* `concat_ws`: [concatWithSeparator](/core/reference/functions/regular-functions/string-functions#concatwithseparator) +* `lower(text)`: [lowerUTF8](/core/reference/functions/regular-functions/string-functions#lowerutf8) +* `upper(text)`: [upperUTF8](/core/reference/functions/regular-functions/string-functions#upperutf8) +* `substring(text, ...)` & `substr(text, ...)`: [substringUTF8](/core/reference/functions/regular-functions/string-functions#substringutf8) +* `substring(bytea, ...)` & `substr(bytea, ...)`: [substring](/core/reference/functions/regular-functions/string-functions#substring) +* `length(text)`: [lengthUTF8](/core/reference/functions/regular-functions/string-functions#lengthutf8) +* `length(bytea)` & `octet_length`: [length](/core/reference/functions/regular-functions/array-functions#length) +* `reverse(text)`: [reverseUTF8](/core/reference/functions/regular-functions/string-functions#reverseutf8) +* `reverse(bytea)`: [reverse](/core/reference/functions/regular-functions/string-functions#reverse) +* `strpos`: [positionUTF8](/core/reference/functions/regular-functions/string-search-functions#positionutf8) +* `regexp_like`: [match](/core/reference/functions/regular-functions/string-search-functions#match) +* `regexp_replace`: [replaceRegexpOne](/core/reference/functions/regular-functions/string-replace-functions#replaceRegexpOne) or [replaceRegexpOne](/core/reference/functions/regular-functions/string-replace-functions#replaceRegexpAll) when the `g` flag is present +* `regexp_split_to_array`: [splitByRegexp](/core/reference/functions/regular-functions/splitting-merging-functions#splitByRegexp) +* `md5`: [MD5](/core/reference/functions/regular-functions/hash-functions#MD5) +* `json_extract_path_text`: [sub-column syntax](/core/reference/data-types/newjson#reading-json-paths-as-sub-columns) +* `json_extract_path`: [toJSONString](/core/reference/functions/regular-functions/json-functions#toJSONString) + [sub-column syntax](/core/reference/data-types/newjson#reading-json-paths-as-sub-columns) +* `jsonb_extract_path_text`: [sub-column syntax](/core/reference/data-types/newjson#reading-json-paths-as-sub-columns) +* `jsonb_extract_path`: [toJSONString](/core/reference/functions/regular-functions/json-functions#toJSONString) + [sub-column syntax](/core/reference/data-types/newjson#reading-json-paths-as-sub-columns) +* `bit_count(bytea)`: [bitCount](/core/reference/functions/regular-functions/bit-functions#bitcount) +* `to_timestamp(float8)`: [fromUnixTimestamp](/core/reference/functions/regular-functions/date-time-functions#fromUnixTimestamp) +* `to_char(timestamp[tz], fmt)`: [formatDateTime](/core/reference/functions/regular-functions/date-time-functions#formatDateTime) when `fmt` is a string constant whose every keyword has a faithful ClickHouse equivalent. See [to_char()](#to_char) under Compatibility Notes for the supported keywords. Otherwise the function evaluates locally in PostgreSQL. * `statement_timestamp`, `transaction_timestamp`, & `clock_timestamp`: - [nowInBlock64](/reference/functions/regular-functions/date-time-functions#nowInBlock64) + [nowInBlock64](/core/reference/functions/regular-functions/date-time-functions#nowInBlock64) (`nowInBlock64(9, $session_timezone)`) * `CURRENT_DATE`: - [now](/reference/functions/regular-functions/date-time-functions#now) and - [toDate](/reference/functions/regular-functions/type-conversion-functions#toDate) + [now](/core/reference/functions/regular-functions/date-time-functions#now) and + [toDate](/core/reference/functions/regular-functions/type-conversion-functions#toDate) (`toDate(now($session_timezone))`) * `now`, `CURRENT_TIMESTAMP`, & `LOCALTIMESTAMP`: - [now64](/reference/functions/regular-functions/date-time-functions#now64) + [now64](/core/reference/functions/regular-functions/date-time-functions#now64) (`now64(9, $session_timezone)`) * `CURRENT_TIMESTAMP(n)` & `LOCALTIMESTAMP(n)`: - [now64](/reference/functions/regular-functions/date-time-functions#now64) + [now64](/core/reference/functions/regular-functions/date-time-functions#now64) (`now64(n, $session_timezone)`) * `CURRENT_DATABASE`: Passed as value from PostgreSQL function. * `CURRENT_SCHEMA`: Passed as value from PostgreSQL function. @@ -1131,16 +1131,16 @@ equivalents as follows: ### Pushdown operators {#pushdown-operators} -* Array slice (`arr[L:U]`): [arraySlice](/reference/functions/regular-functions/array-functions#arraySlice) -* `@>` (array contains): [hasAll](/reference/functions/regular-functions/array-functions#hasAll) -* `<@` (array contained by): [hasAll](/reference/functions/regular-functions/array-functions#hasAll) -* `&&` (array overlap): [hasAny](/reference/functions/regular-functions/array-functions#hasAny) -* `~` (regexp match): [match](/reference/functions/regular-functions/string-search-functions#match) -* `!~` (regexp not match): [match](/reference/functions/regular-functions/string-search-functions#match) -* `~*` (case insensitive regexp no match): [match](/reference/functions/regular-functions/string-search-functions#match) -* `!~*` (case insensitive regexp not match): [match](/reference/functions/regular-functions/string-search-functions#match) -* `->>` (JSON/JSONB extract element as text): [sub-column syntax](/reference/data-types/newjson#reading-json-paths-as-sub-columns) -* `->` (JSON/JSONB extract): [toJSONString](/reference/functions/regular-functions/json-functions#toJSONString) + [sub-column syntax](/reference/data-types/newjson#reading-json-paths-as-sub-columns) +* Array slice (`arr[L:U]`): [arraySlice](/core/reference/functions/regular-functions/array-functions#arraySlice) +* `@>` (array contains): [hasAll](/core/reference/functions/regular-functions/array-functions#hasAll) +* `<@` (array contained by): [hasAll](/core/reference/functions/regular-functions/array-functions#hasAll) +* `&&` (array overlap): [hasAny](/core/reference/functions/regular-functions/array-functions#hasAny) +* `~` (regexp match): [match](/core/reference/functions/regular-functions/string-search-functions#match) +* `!~` (regexp not match): [match](/core/reference/functions/regular-functions/string-search-functions#match) +* `~*` (case insensitive regexp no match): [match](/core/reference/functions/regular-functions/string-search-functions#match) +* `!~*` (case insensitive regexp not match): [match](/core/reference/functions/regular-functions/string-search-functions#match) +* `->>` (JSON/JSONB extract element as text): [sub-column syntax](/core/reference/data-types/newjson#reading-json-paths-as-sub-columns) +* `->` (JSON/JSONB extract): [toJSONString](/core/reference/functions/regular-functions/json-functions#toJSONString) + [sub-column syntax](/core/reference/data-types/newjson#reading-json-paths-as-sub-columns) ### Custom functions {#custom-functions} @@ -1148,7 +1148,7 @@ These custom functions created by `pg_clickhouse` provide foreign query pushdown for select ClickHouse functions with no PostgreSQL equivalents. If any of these functions can't be pushed down they will raise an exception. -* [dictGet](/reference/functions/regular-functions/ext-dict-functions#dictget-dictgetordefault-dictgetornull) +* [dictGet](/core/reference/functions/regular-functions/ext-dict-functions#dictget-dictgetordefault-dictgetornull) ### Extension pushdown {#extension-pushdown} @@ -1159,31 +1159,31 @@ extensions, pushing them down to their ClickHouse equivalents. All [re2 extension] functions push down 1:1 to ClickHouse: -* `re2match` → [match](/reference/functions/regular-functions/string-search-functions#match) -* `re2extract` → [extract](/reference/functions/regular-functions/string-search-functions#extract) -* `re2extractall` → [extractAll](/reference/functions/regular-functions/string-search-functions#extractAll) -* `re2regexpextract` → [regexpExtract](/reference/functions/regular-functions/string-search-functions#regexpExtract) -* `re2extractgroups` → [extractGroups](/reference/functions/regular-functions/string-search-functions#extractGroups) -* `re2replaceregexpone` → [replaceRegexpOne](/reference/functions/regular-functions/string-replace-functions#replaceRegexpOne) -* `re2replaceregexpall` → [replaceRegexpAll](/reference/functions/regular-functions/string-replace-functions#replaceRegexpAll) -* `re2countmatches` → [countMatches](/reference/functions/regular-functions/string-search-functions#countMatches) -* `re2countmatchescaseinsensitive` → [countMatchesCaseInsensitive](/reference/functions/regular-functions/string-search-functions#countMatchesCaseInsensitive) -* `re2multimatchany` → [multiMatchAny](/reference/functions/regular-functions/string-search-functions#multiMatchAny) -* `re2multimatchanyindex` → [multiMatchAnyIndex](/reference/functions/regular-functions/string-search-functions#multiMatchAnyIndex) -* `re2multimatchallindices` → [multiMatchAllIndices](/reference/functions/regular-functions/string-search-functions#multiMatchAllIndices) +* `re2match` → [match](/core/reference/functions/regular-functions/string-search-functions#match) +* `re2extract` → [extract](/core/reference/functions/regular-functions/string-search-functions#extract) +* `re2extractall` → [extractAll](/core/reference/functions/regular-functions/string-search-functions#extractAll) +* `re2regexpextract` → [regexpExtract](/core/reference/functions/regular-functions/string-search-functions#regexpExtract) +* `re2extractgroups` → [extractGroups](/core/reference/functions/regular-functions/string-search-functions#extractGroups) +* `re2replaceregexpone` → [replaceRegexpOne](/core/reference/functions/regular-functions/string-replace-functions#replaceRegexpOne) +* `re2replaceregexpall` → [replaceRegexpAll](/core/reference/functions/regular-functions/string-replace-functions#replaceRegexpAll) +* `re2countmatches` → [countMatches](/core/reference/functions/regular-functions/string-search-functions#countMatches) +* `re2countmatchescaseinsensitive` → [countMatchesCaseInsensitive](/core/reference/functions/regular-functions/string-search-functions#countMatchesCaseInsensitive) +* `re2multimatchany` → [multiMatchAny](/core/reference/functions/regular-functions/string-search-functions#multiMatchAny) +* `re2multimatchanyindex` → [multiMatchAnyIndex](/core/reference/functions/regular-functions/string-search-functions#multiMatchAnyIndex) +* `re2multimatchallindices` → [multiMatchAllIndices](/core/reference/functions/regular-functions/string-search-functions#multiMatchAllIndices) #### intarray {#intarray} One [intarray] function pushes down to ClickHouse: -* `idx` → [indexOf](/reference/functions/regular-functions/array-functions#indexOf) +* `idx` → [indexOf](/core/reference/functions/regular-functions/array-functions#indexOf) #### fuzzystrmatch {#fuzzystrmatch} Two [fuzzystrmatch] functions push down to ClickHouse: -* `soundex`: [soundex](/reference/functions/regular-functions/string-functions#soundex) -* `levenshtein` (2-arg): [editDistanceUTF8](/reference/functions/regular-functions/string-functions#editDistanceUTF8) +* `soundex`: [soundex](/core/reference/functions/regular-functions/string-functions#soundex) +* `levenshtein` (2-arg): [editDistanceUTF8](/core/reference/functions/regular-functions/string-functions#editDistanceUTF8) ### Pushdown casts {#pushdown-casts} @@ -1195,28 +1195,28 @@ In order to push down casts to incompatible data types, pg_clickhouse provides the following functions. They raise an exception in PostgreSQL if they're not pushed down. -* [toUInt8](/reference/functions/regular-functions/type-conversion-functions#touint8) -* [toUInt16](/reference/functions/regular-functions/type-conversion-functions#touint16) -* [toUInt32](/reference/functions/regular-functions/type-conversion-functions#touint32) -* [toUInt64](/reference/functions/regular-functions/type-conversion-functions#touint64) -* [toUInt128](/reference/functions/regular-functions/type-conversion-functions#touint128) +* [toUInt8](/core/reference/functions/regular-functions/type-conversion-functions#touint8) +* [toUInt16](/core/reference/functions/regular-functions/type-conversion-functions#touint16) +* [toUInt32](/core/reference/functions/regular-functions/type-conversion-functions#touint32) +* [toUInt64](/core/reference/functions/regular-functions/type-conversion-functions#touint64) +* [toUInt128](/core/reference/functions/regular-functions/type-conversion-functions#touint128) ### Pushdown aggregates {#pushdown-aggregates} These PostgreSQL aggregate functions pushdown to ClickHouse. -* [array_agg](/reference/functions/aggregate-functions/reference/groupArray) -* [avg](/reference/functions/aggregate-functions/reference/avg) -* [bit_and](/reference/functions/aggregate-functions/reference/groupBitAnd) -* [bit_or](/reference/functions/aggregate-functions/reference/groupBitOr) -* [bit_xor](/reference/functions/aggregate-functions/reference/groupBitXor) -* [bool_and / every](/reference/functions/aggregate-functions/reference/groupBitAnd) -* [bool_or](/reference/functions/aggregate-functions/reference/groupBitOr) -* [count](/reference/functions/aggregate-functions/reference/count) -* [min](/reference/functions/aggregate-functions/reference/min) -* [max](/reference/functions/aggregate-functions/reference/max) -* [string_agg](/reference/functions/aggregate-functions/reference/groupConcat) -* [sum](/reference/functions/aggregate-functions/reference/sum) +* [array_agg](/core/reference/functions/aggregate-functions/reference/groupArray) +* [avg](/core/reference/functions/aggregate-functions/reference/avg) +* [bit_and](/core/reference/functions/aggregate-functions/reference/groupBitAnd) +* [bit_or](/core/reference/functions/aggregate-functions/reference/groupBitOr) +* [bit_xor](/core/reference/functions/aggregate-functions/reference/groupBitXor) +* [bool_and / every](/core/reference/functions/aggregate-functions/reference/groupBitAnd) +* [bool_or](/core/reference/functions/aggregate-functions/reference/groupBitOr) +* [count](/core/reference/functions/aggregate-functions/reference/count) +* [min](/core/reference/functions/aggregate-functions/reference/min) +* [max](/core/reference/functions/aggregate-functions/reference/max) +* [string_agg](/core/reference/functions/aggregate-functions/reference/groupConcat) +* [sum](/core/reference/functions/aggregate-functions/reference/sum) ### Custom aggregates {#custom-aggregates} @@ -1225,16 +1225,16 @@ query pushdown for select ClickHouse aggregate functions with no PostgreSQL equivalents. If any of these functions can't be pushed down they will raise an exception. -* [argMax](/reference/functions/aggregate-functions/reference/argMax) -* [argMin](/reference/functions/aggregate-functions/reference/argMin) -* [uniq](/reference/functions/aggregate-functions/reference/uniq) -* [uniqCombined](/reference/functions/aggregate-functions/reference/uniqCombined) -* [uniqCombined64](/reference/functions/aggregate-functions/reference/uniqCombined64) -* [uniqExact](/reference/functions/aggregate-functions/reference/uniqExact) -* [uniqHLL12](/reference/functions/aggregate-functions/reference/uniqHLL12) -* [uniqTheta](/reference/functions/aggregate-functions/reference/uniqthetasketch) -* [quantile](/reference/functions/aggregate-functions/reference/quantile) -* [quantileExact](/reference/functions/aggregate-functions/reference/quantileExact) +* [argMax](/core/reference/functions/aggregate-functions/reference/argMax) +* [argMin](/core/reference/functions/aggregate-functions/reference/argMin) +* [uniq](/core/reference/functions/aggregate-functions/reference/uniq) +* [uniqCombined](/core/reference/functions/aggregate-functions/reference/uniqCombined) +* [uniqCombined64](/core/reference/functions/aggregate-functions/reference/uniqCombined64) +* [uniqExact](/core/reference/functions/aggregate-functions/reference/uniqExact) +* [uniqHLL12](/core/reference/functions/aggregate-functions/reference/uniqHLL12) +* [uniqTheta](/core/reference/functions/aggregate-functions/reference/uniqthetasketch) +* [quantile](/core/reference/functions/aggregate-functions/reference/quantile) +* [quantileExact](/core/reference/functions/aggregate-functions/reference/quantileExact) ### Pushdown ordered set aggregates {#pushdown-ordered-set-aggregates} @@ -1255,9 +1255,9 @@ SELECT quantile(0.25)(a) FROM t1; Note that the non-default `ORDER BY` suffixes `DESC` and `NULLS FIRST` aren't supported and will raise an error. -* `percentile_cont(double)`: [quantile](/reference/functions/aggregate-functions/reference/quantile) -* `quantile(double)`: [quantile](/reference/functions/aggregate-functions/reference/quantile) -* `quantileExact(double)`: [quantileExact](/reference/functions/aggregate-functions/reference/quantileExact) +* `percentile_cont(double)`: [quantile](/core/reference/functions/aggregate-functions/reference/quantile) +* `quantile(double)`: [quantile](/core/reference/functions/aggregate-functions/reference/quantile) +* `quantileExact(double)`: [quantileExact](/core/reference/functions/aggregate-functions/reference/quantileExact) ### Pushdown window functions {#pushdown-window-functions} @@ -1265,17 +1265,17 @@ These PostgreSQL [window functions] push down to ClickHouse with `OVER (PARTITION BY ... ORDER BY ...)` clauses, including frame specifications where applicable. -* [row_number](/reference/functions/window-functions#row_number) -* [rank](/reference/functions/window-functions#rank) -* [dense_rank](/reference/functions/window-functions#dense_rank) -* [ntile](/reference/functions/window-functions#ntile) -* [cume_dist](/reference/functions/window-functions#cume_dist) -* [percent_rank](/reference/functions/window-functions#percent_rank) -* [lead](/reference/functions/window-functions#lead) -* [lag](/reference/functions/window-functions#lag) -* [first_value](/reference/functions/window-functions#first_value) -* [last_value](/reference/functions/window-functions#last_value) -* [nth_value](/reference/functions/window-functions#nth_value) +* [row_number](/core/reference/functions/window-functions#row_number) +* [rank](/core/reference/functions/window-functions#rank) +* [dense_rank](/core/reference/functions/window-functions#dense_rank) +* [ntile](/core/reference/functions/window-functions#ntile) +* [cume_dist](/core/reference/functions/window-functions#cume_dist) +* [percent_rank](/core/reference/functions/window-functions#percent_rank) +* [lead](/core/reference/functions/window-functions#lead) +* [lag](/core/reference/functions/window-functions#lag) +* [first_value](/core/reference/functions/window-functions#first_value) +* [last_value](/core/reference/functions/window-functions#last_value) +* [nth_value](/core/reference/functions/window-functions#nth_value) * `min` / `max` (with `OVER` clause) Ranking functions (`row_number`, `rank`, `dense_rank`, `ntile`, `cume_dist`, @@ -1424,11 +1424,11 @@ Copyright (c) 2025-2026, ClickHouse "PostgreSQL Docs: IMPORT FOREIGN SCHEMA" [CREATE FOREIGN TABLE]: https://www.postgresql.org/docs/current/sql-createforeigntable.html "PostgreSQL Docs: CREATE FOREIGN TABLE" - [table engine]: /reference/engines/table-engines + [table engine]: /core/reference/engines/table-engines "ClickHouse Docs: Table engines" - [AggregateFunction Type]: /reference/data-types/aggregatefunction + [AggregateFunction Type]: /core/reference/data-types/aggregatefunction "ClickHouse Docs: AggregateFunction Type" - [SimpleAggregateFunction Type]: /reference/data-types/simpleaggregatefunction + [SimpleAggregateFunction Type]: /core/reference/data-types/simpleaggregatefunction "ClickHouse Docs: SimpleAggregateFunction Type" [ALTER FOREIGN TABLE]: https://www.postgresql.org/docs/current/sql-alterforeigntable.html "PostgreSQL Docs: ALTER FOREIGN TABLE" @@ -1461,14 +1461,14 @@ Copyright (c) 2025-2026, ClickHouse [shared library preloading]: https://www.postgresql.org/docs/current/runtime-config-client.html#RUNTIME-CONFIG-CLIENT-PRELOAD "PostgreSQL Docs: Shared Library Preloading" [ordered-set aggregate functions]: https://www.postgresql.org/docs/current/functions-aggregate.html#FUNCTIONS-ORDEREDSET-TABLE - [Parametric aggregate functions]: /reference/functions/aggregate-functions/parametric-functions - [ClickHouse settings]: /reference/settings/session-settings + [Parametric aggregate functions]: /core/reference/functions/aggregate-functions/parametric-functions + [ClickHouse settings]: /core/reference/settings/session-settings "ClickHouse Docs: Session Settings" [dollar quoting]: https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING "PostgreSQL Docs: Dollar-Quoted String Constants" [PREPARE notes]: https://www.postgresql.org/docs/current/sql-prepare.html#SQL-PREPARE-NOTES "PostgreSQL Docs: PREPARE notes" - [query parameters]: /guides/cloud-oss/data-modelling/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse + [query parameters]: /core/guides/clickhouse/data-modelling/stored-procedures-and-prepared-statements#alternatives-to-prepared-statements-in-clickhouse "ClickHouse Docs: Alternatives to prepared statements in ClickHouse" [underlying bug]: https://github.com/ClickHouse/ClickHouse/issues/85847 "ClickHouse/ClickHouse#85847 Some queries in a multipart forms don't read settings" @@ -1478,7 +1478,7 @@ Copyright (c) 2025-2026, ClickHouse "PostgreSQL Docs: Binary Data Types" [GRANT]: https://www.postgresql.org/docs/current/sql-grant.html "PostgreSQL Docs: GRANT" - [String]: /reference/data-types/string + [String]: /core/reference/data-types/string "ClickHouse Docs: String" [TEXT]: https://www.postgresql.org/docs/current/datatype-character.html "PostgreSQL Docs: Character Types" @@ -1497,5 +1497,5 @@ Copyright (c) 2025-2026, ClickHouse "PostgreSQL Docs: fuzzystrmatch" [`to_char()`]: https://www.postgresql.org/docs/current/functions-formatting.html "PostgreSQL Docs: Data Type Formatting Functions" - [formatDateTime]: /reference/functions/regular-functions/date-time-functions#formatDateTime + [formatDateTime]: /core/reference/functions/regular-functions/date-time-functions#formatDateTime "ClickHouse Docs: formatDateTime" diff --git a/integrations/connectors/tools/pg_clickhouse/tutorial.mdx b/integrations/connectors/tools/pg_clickhouse/tutorial.mdx index 13f8bbb1..bc879649 100644 --- a/integrations/connectors/tools/pg_clickhouse/tutorial.mdx +++ b/integrations/connectors/tools/pg_clickhouse/tutorial.mdx @@ -506,7 +506,7 @@ Here's an excerpt from the CSV file you're using in table format. The Setting `LIFETIME` to 0 disables automatic updates to avoid unnecessary traffic to our S3 bucket. In other cases, you might configure it differently. For details, see [Refreshing dictionary data using - LIFETIME](/reference/statements/create/dictionary/lifetime). + LIFETIME](/core/reference/statements/create/dictionary/lifetime). 2. Now import it: @@ -638,12 +638,12 @@ Generally, we avoid using `SELECT *` in PostgreSQL and ClickHouse. You should only retrieve the columns you actually need. - [ClickHouse tutorial]: /get-started/quickstarts/tutorial "ClickHouse Advanced Tutorial" + [ClickHouse tutorial]: /core/get-started/quickstarts/tutorial "ClickHouse Advanced Tutorial" [psql]: https://www.postgresql.org/docs/current/app-psql.html "PostgreSQL Client Applications: psql" [EXPLAIN]: https://www.postgresql.org/docs/current/sql-explain.html "SQL Commands: EXPLAIN" - [dictionary]: /reference/statements/create/dictionary + [dictionary]: /core/reference/statements/create/dictionary [PGXN]: https://pgxn.org/dist/pg_clickhouse "pg_clickhouse on PGXN" [GitHub]: https://github.com/ClickHouse/pg_clickhouse/releases "pg_clickhouse Releases on GitHub" @@ -651,5 +651,5 @@ should only retrieve the columns you actually need. "pg_clickhouse OCI Image on GitHub" [Postgres image]: https://hub.docker.com/_/postgres "Postgres OCI Image on Docker Hub" - [Refreshing dictionary data using LIFETIME]: /reference/statements/create/dictionary/lifetime + [Refreshing dictionary data using LIFETIME]: /core/reference/statements/create/dictionary/lifetime "ClickHouse Doc: Refreshing dictionary data using LIFETIME" diff --git a/integrations/connectors/tools/third-party-libraries.mdx b/integrations/connectors/tools/third-party-libraries.mdx index 6b096855..ea0d2a3f 100644 --- a/integrations/connectors/tools/third-party-libraries.mdx +++ b/integrations/connectors/tools/third-party-libraries.mdx @@ -73,7 +73,7 @@ For official integrations please see the [integrations page](/integrations/conne - [graphouse](https://github.com/ClickHouse/graphouse) - [carbon-clickhouse](https://github.com/lomik/carbon-clickhouse) - [graphite-clickhouse](https://github.com/lomik/graphite-clickhouse) - - [graphite-ch-optimizer](https://github.com/innogames/graphite-ch-optimizer) - optimizes staled partitions in [\*GraphiteMergeTree](/reference/engines/table-engines/mergetree-family/graphitemergetree) if rules from [rollup configuration](/reference/engines/table-engines/mergetree-family/graphitemergetree#rollup-configuration) could be applied + - [graphite-ch-optimizer](https://github.com/innogames/graphite-ch-optimizer) - optimizes staled partitions in [\*GraphiteMergeTree](/core/reference/engines/table-engines/mergetree-family/graphitemergetree) if rules from [rollup configuration](/core/reference/engines/table-engines/mergetree-family/graphitemergetree#rollup-configuration) could be applied - [Grafana](https://grafana.com/) - [clickhouse-grafana](https://github.com/Altinity/clickhouse-grafana) - [Prometheus](https://prometheus.io/) @@ -130,7 +130,7 @@ For official integrations please see the [integrations page](/integrations/conne - [Hadoop](http://hadoop.apache.org) - - [clickhouse-hdfs-loader](https://github.com/jaykelin/clickhouse-hdfs-loader) (uses [JDBC](/reference/functions/table-functions/jdbc)) + - [clickhouse-hdfs-loader](https://github.com/jaykelin/clickhouse-hdfs-loader) (uses [JDBC](/core/reference/functions/table-functions/jdbc)) diff --git a/integrations/language-clients/csharp/overview.mdx b/integrations/language-clients/csharp/overview.mdx index 2e7e8f03..d5c176c5 100644 --- a/integrations/language-clients/csharp/overview.mdx +++ b/integrations/language-clients/csharp/overview.mdx @@ -148,7 +148,7 @@ The `ClickHouseConnection` class normally allows for parallel operation (multipl When using a connection string to set custom settings, use the `set_` prefix, e.g. "set_max_threads=4". When using a ClickHouseClientSettings object, don't use the `set_` prefix. -For a full list of available settings, see [here](/reference/settings/session-settings). +For a full list of available settings, see [here](/core/reference/settings/session-settings). --- @@ -646,13 +646,13 @@ using var reader = new StreamReader(stream); var json = await reader.ReadToEndAsync(); ``` -Common formats: `JSONEachRow`, `CSV`, `TSV`, `Parquet`, `Native`. See the [formats documentation](/reference/formats) for all options. +Common formats: `JSONEachRow`, `CSV`, `TSV`, `Parquet`, `Native`. See the [formats documentation](/core/reference/formats) for all options. --- ### Raw stream insert {#raw-stream-insert} -Use `InsertRawStreamAsync` to insert data directly from file or memory streams in formats like CSV, JSON, Parquet, or any [supported ClickHouse format](/reference/formats). +Use `InsertRawStreamAsync` to insert data directly from file or memory streams in formats like CSV, JSON, Parquet, or any [supported ClickHouse format](/core/reference/formats). **Insert from a CSV file:** @@ -668,7 +668,7 @@ using var response = await client.InsertRawStreamAsync( ``` -See the [format settings documentation](/reference/settings/formats) for options to control data ingestion behavior. +See the [format settings documentation](/core/reference/settings/formats) for options to control data ingestion behavior. --- @@ -843,7 +843,7 @@ Avoid creating multiple `ClickHouseClient` or standalone `ClickHouseConnection` ### Async inserts {#async-inserts} -[Async inserts](/concepts/operations/insert/asyncinserts) shift batching responsibility from the client to the server. Instead of requiring client-side batching, the server buffers incoming data and flushes it to storage based on configurable thresholds. This is useful for high-concurrency scenarios like observability workloads where many agents send small payloads. +[Async inserts](/core/concepts/features/operations/insert/asyncinserts) shift batching responsibility from the client to the server. Instead of requiring client-side batching, the server buffers incoming data and flushes it to storage based on configurable thresholds. This is useful for high-concurrency scenarios like observability workloads where many agents send small payloads. Enable async inserts via `CustomSettings` or the connection string: @@ -1556,7 +1556,7 @@ var settings = new ClickHouseClientSettings() ## OpenTelemetry {#opentelemetry} -The driver provides built-in support for OpenTelemetry distributed tracing via the .NET [`System.Diagnostics.Activity`](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing) API. When enabled, the driver emits spans for database operations that can be exported to observability backends like Jaeger or ClickHouse itself (via the [OpenTelemetry Collector](/guides/observability/build-your-own/integrating-opentelemetry)). +The driver provides built-in support for OpenTelemetry distributed tracing via the .NET [`System.Diagnostics.Activity`](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing) API. When enabled, the driver emits spans for database operations that can be exported to observability backends like Jaeger or ClickHouse itself (via the [OpenTelemetry Collector](/core/guides/use-cases/observability/build-your-own/integrating-opentelemetry)). ### Enabling tracing {#opentelemetry-enabling} diff --git a/integrations/language-clients/go/clickhouse-api.mdx b/integrations/language-clients/go/clickhouse-api.mdx index bdc20578..e0388aa6 100644 --- a/integrations/language-clients/go/clickhouse-api.mdx +++ b/integrations/language-clients/go/clickhouse-api.mdx @@ -125,7 +125,7 @@ return batch.Send() [Full Example](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/batch.go) -Recommendations for ClickHouse apply [here](/get-started/oss/starter-guides/inserting-data#best-practices-for-inserts). Batches shouldn't be shared across go-routines - construct a separate batch per routine. +Recommendations for ClickHouse apply [here](/core/concepts/features/operations/insert/inserting-data#best-practices-for-inserts). Batches shouldn't be shared across go-routines - construct a separate batch per routine. From the above example, note the need for variable types to align with the column type when appending rows. While the mapping is usually obvious, this interface tries to be flexible, and types will be converted provided no precision loss is incurred. For example, the following demonstrates inserting a string into a datetime64. @@ -154,7 +154,7 @@ For a full summary of supported go types for each column type, see [Type Convers ## Ephemeral columns {#ephemeral-columns} -[Ephemeral columns](/reference/statements/create/table#ephemeral) are write-only columns that exist only during insertion — they are not stored and cannot be selected. They are useful for computing derived column values at insert time. +[Ephemeral columns](/core/reference/statements/create/table#ephemeral) are write-only columns that exist only during insertion — they are not stored and cannot be selected. They are useful for computing derived column values at insert time. ```go ctx := context.Background() @@ -235,7 +235,7 @@ Finally, note the ability to pass a `Context` to the `Query` and `QueryRow` meth ## Async insert {#async-insert} -Asynchronous inserts are supported through the Async method. This allows the user to specify whether the client should wait for the server to complete the insert or respond once the data has been received. This effectively controls the parameter [wait_for_async_insert](/reference/settings/session-settings#wait_for_async_insert). +Asynchronous inserts are supported through the Async method. This allows the user to specify whether the client should wait for the server to complete the insert or respond once the data has been received. This effectively controls the parameter [wait_for_async_insert](/core/reference/settings/session-settings#wait_for_async_insert). ```go conn, err := GetNativeConnection(nil, nil, nil) @@ -455,7 +455,7 @@ Go contexts provide a means of passing deadlines, cancellation signals, and othe Passing a context created `withDeadline` allows execution time limits to be placed on queries. Note this is an absolute time and expiry will only release the connection and send a cancel signal to ClickHouse. `WithCancel` can alternatively be used to cancel a query explicitly. -The helpers `clickhouse.WithQueryID` and `clickhouse.WithQuotaKey` allow a query id and quota key to be specified. Query ids can be useful for tracking queries in logs and for cancellation purposes. A quota key can be used to impose limits on ClickHouse usage based on a unique key value - see [Quotas Management](/concepts/features/security/access-rights#quotas-management) for further details. +The helpers `clickhouse.WithQueryID` and `clickhouse.WithQuotaKey` allow a query id and quota key to be specified. Query ids can be useful for tracking queries in logs and for cancellation purposes. A quota key can be used to impose limits on ClickHouse usage based on a unique key value - see [Quotas Management](/core/concepts/features/security/access-rights#quotas-management) for further details. You can also use the context to ensure a setting is only applied for a specific query - rather than for the entire connection, as shown in [Connection Settings](/integrations/language-clients/go/configuration#connection-settings). @@ -618,7 +618,7 @@ if err := rows.Err(); err != nil { ## External tables {#external-tables} -[External tables](/reference/engines/table-engines/special/external-data) allow the client to send data to ClickHouse, with a SELECT query. This data is put in a temporary table and can be used in the query itself for evaluation. +[External tables](/core/reference/engines/table-engines/special/external-data) allow the client to send data to ClickHouse, with a SELECT query. This data is put in a temporary table and can be used in the query itself for evaluation. To send external data to the client with a query, the user must build an external table via `ext.NewTable` before passing this via the context. @@ -688,7 +688,7 @@ fmt.Printf("external_table_1 UNION external_table_2: %d\n", count) ## Open telemetry {#open-telemetry} -ClickHouse supports [trace context propagation](/guides/oss/deployment-and-scaling/monitoring/opentelemetry) on both TCP and HTTP transports. When using TCP, the client serializes the span into the native binary protocol. Use `clickhouse.WithSpan` to attach a span to a query via the context. +ClickHouse supports [trace context propagation](/core/guides/oss/deployment-and-scaling/monitoring/opentelemetry) on both TCP and HTTP transports. When using TCP, the client serializes the span into the native binary protocol. Use `clickhouse.WithSpan` to attach a span to a query via the context. **HTTP transport limitation** @@ -716,4 +716,4 @@ fmt.Printf("count: %d\n", count) [Full Example](https://github.com/ClickHouse/clickhouse-go/blob/main/examples/clickhouse_api/open_telemetry.go) -Full details on exploiting tracing can be found under [OpenTelemetry support](/guides/oss/deployment-and-scaling/monitoring/opentelemetry). +Full details on exploiting tracing can be found under [OpenTelemetry support](/core/guides/oss/deployment-and-scaling/monitoring/opentelemetry). diff --git a/integrations/language-clients/go/data-types.mdx b/integrations/language-clients/go/data-types.mdx index ca48110c..1def5b2b 100644 --- a/integrations/language-clients/go/data-types.mdx +++ b/integrations/language-clients/go/data-types.mdx @@ -9,7 +9,7 @@ doc_type: 'reference' ## Type conversions {#type-conversions} -The client aims to be as flexible as possible concerning accepting variable types for both insertion and marshaling of responses. In most cases, an equivalent Golang type exists for a ClickHouse column type, e.g., [UInt64](/reference/data-types/int-uint) to [uint64](https://pkg.go.dev/builtin#uint64). These logical mappings should always be supported. You may wish to utilize variable types that can be inserted into columns or used to receive a response if the conversion of either the variable or received data takes place first. The client aims to support these conversions transparently, so users don't need to convert their data to align precisely before insertion and to provide flexible marshaling at query time. This transparent conversion doesn't allow for precision loss. For example, a uint32 can't be used to receive data from a UInt64 column. Conversely, a string can be inserted into a datetime64 field provided it meets the format requirements. +The client aims to be as flexible as possible concerning accepting variable types for both insertion and marshaling of responses. In most cases, an equivalent Golang type exists for a ClickHouse column type, e.g., [UInt64](/core/reference/data-types/int-uint) to [uint64](https://pkg.go.dev/builtin#uint64). These logical mappings should always be supported. You may wish to utilize variable types that can be inserted into columns or used to receive a response if the conversion of either the variable or received data takes place first. The client aims to support these conversions transparently, so users don't need to convert their data to align precisely before insertion and to provide flexible marshaling at query time. This transparent conversion doesn't allow for precision loss. For example, a uint32 can't be used to receive data from a UInt64 column. Conversely, a string can be inserted into a datetime64 field provided it meets the format requirements. The type conversions currently supported for primitive types are captured [here](https://github.com/ClickHouse/clickhouse-go/blob/main/TYPES.md). @@ -242,7 +242,7 @@ Note: typed slices and maps are supported, provide the sub-columns in the named ### Nested {#nested} -A Nested field is equivalent to an Array of named Tuples. Usage depends on whether the user has set [flatten_nested](/reference/settings/session-settings#flatten_nested) to 1 or 0. +A Nested field is equivalent to an Array of named Tuples. Usage depends on whether the user has set [flatten_nested](/core/reference/settings/session-settings#flatten_nested) to 1 or 0. By setting flatten_nested to 0, Nested columns stay as a single array of tuples. This allows you to use slices of maps for insertion and retrieval and arbitrary levels of nesting. The map's key must equal the column's name, as shown in the example below. @@ -575,9 +575,9 @@ if err = conn.QueryRow(ctx, "SELECT * FROM example").Scan(&col1, &col2); err != Due to Go's lack of a built-in Decimal type, we recommend using the third-party package [github.com/shopspring/decimal](https://github.com/shopspring/decimal) to work with Decimal types natively without modifying your original queries. -You may be tempted to use Float instead to avoid third-party dependencies. However, be aware that [Float types in ClickHouse aren't recommended when accurate values are required](/reference/data-types/float). +You may be tempted to use Float instead to avoid third-party dependencies. However, be aware that [Float types in ClickHouse aren't recommended when accurate values are required](/core/reference/data-types/float). -If you still choose to use Go's built-in Float type on the client side, you must explicitly convert Decimal to Float using the [toFloat64() function](/reference/functions/regular-functions/type-conversion-functions#toFloat64) or [its variants](/reference/functions/regular-functions/type-conversion-functions#toFloat64OrZero) in your ClickHouse queries. Be aware that this conversion may result in loss of precision. +If you still choose to use Go's built-in Float type on the client side, you must explicitly convert Decimal to Float using the [toFloat64() function](/core/reference/functions/regular-functions/type-conversion-functions#toFloat64) or [its variants](/core/reference/functions/regular-functions/type-conversion-functions#toFloat64OrZero) in your ClickHouse queries. Be aware that this conversion may result in loss of precision. ```go diff --git a/integrations/language-clients/go/database-sql-api.mdx b/integrations/language-clients/go/database-sql-api.mdx index 8c5d68ae..49f55835 100644 --- a/integrations/language-clients/go/database-sql-api.mdx +++ b/integrations/language-clients/go/database-sql-api.mdx @@ -312,7 +312,7 @@ if err := rows.Err(); err != nil { ## Async insert {#async-insert} -Asynchronous inserts can be achieved by executing an insert via the `ExecContext` method. This should be passed a context with asynchronous mode enabled, as shown below. This allows the user to specify whether the client should wait for the server to complete the insert or respond once the data has been received. This effectively controls the parameter [wait_for_async_insert](/reference/settings/session-settings#wait_for_async_insert). +Asynchronous inserts can be achieved by executing an insert via the `ExecContext` method. This should be passed a context with asynchronous mode enabled, as shown below. This allows the user to specify whether the client should wait for the server to complete the insert or respond once the data has been received. This effectively controls the parameter [wait_for_async_insert](/core/reference/settings/session-settings#wait_for_async_insert). ```go const ddl = ` @@ -501,7 +501,7 @@ if err := rows.Err(); err != nil { ## External tables {#external-tables} -[External tables](/reference/engines/table-engines/special/external-data) allow the client to send data to ClickHouse, with a `SELECT` query. This data is put in a temporary table and can be used in the query itself for evaluation. +[External tables](/core/reference/engines/table-engines/special/external-data) allow the client to send data to ClickHouse, with a `SELECT` query. This data is put in a temporary table and can be used in the query itself for evaluation. To send external data to the client with a query, the user must build an external table via `ext.NewTable` before passing this via the context. @@ -572,7 +572,7 @@ fmt.Printf("external_table_1 UNION external_table_2: %d\n", count) ## Open telemetry {#open-telemetry} -ClickHouse supports [trace context propagation](/guides/oss/deployment-and-scaling/monitoring/opentelemetry) on both TCP and HTTP transports. Use `clickhouse.WithSpan` to attach a span to a query via the context. +ClickHouse supports [trace context propagation](/core/guides/oss/deployment-and-scaling/monitoring/opentelemetry) on both TCP and HTTP transports. Use `clickhouse.WithSpan` to attach a span to a query via the context. **HTTP transport limitation** diff --git a/integrations/language-clients/go/index.mdx b/integrations/language-clients/go/index.mdx index 8aba39ad..114686d0 100644 --- a/integrations/language-clients/go/index.mdx +++ b/integrations/language-clients/go/index.mdx @@ -265,7 +265,7 @@ The client supports: * If reading large datasets, consider modifying the [`BlockBufferSize`](/integrations/language-clients/go/configuration#connection-settings). This will increase the memory footprint but will mean more blocks can be decoded in parallel during row iteration. The default value of 2 is conservative and minimizes memory overhead. Higher values will mean more blocks in memory. This requires testing since different queries can produce different block sizes. It can therefore be set on a [query level](/integrations/language-clients/go/clickhouse-api#using-context) via the Context. * Be specific with your types when inserting data. While the client aims to be flexible, e.g., allowing strings to be parsed for UUIDs or IPs, this requires data validation and incurs a cost at insert time. * Use column-oriented inserts where possible. Again these should be strongly typed, avoiding the need for the client to convert your values. -* Follow ClickHouse [recommendations](/reference/statements/insert-into#performance-considerations) for optimal insert performance. +* Follow ClickHouse [recommendations](/core/reference/statements/insert-into#performance-considerations) for optimal insert performance. ## Next steps {#next-steps} diff --git a/integrations/language-clients/java/client.mdx b/integrations/language-clients/java/client.mdx index 5c9a6842..e563776c 100644 --- a/integrations/language-clients/java/client.mdx +++ b/integrations/language-clients/java/client.mdx @@ -16,9 +16,9 @@ import WideTableWrapper from "/snippets/components/WideTableWrapper/WideTableWra - + -Java client library to communicate with a DB server through its protocols. The current implementation only supports the [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http). +Java client library to communicate with a DB server through its protocols. The current implementation only supports the [HTTP interface](/core/concepts/features/interfaces/http). The library provides its own API to send requests to a server. The library also provides tools to work with different binary data formats (RowBinary* & Native*). ## Setup {#setup} @@ -228,9 +228,9 @@ Configuration is defined during client creation. See `com.clickhouse.client.api. | Method | Arguments | Description | Default | Key | |--------|-----------|-------------|---------|-----| -| `serverSetting(String name, String value)` | `name` - setting name
    `value` - setting value | Sets what settings to pass to server along with each query. Individual operation settings may override it. [List of settings](/concepts/features/configuration/settings/settings-query-level) | `none` | `none` | -| `serverSetting(String name, Collection values)` | `name` - setting name
    `values` - setting values | Sets what settings to pass to server with multiple values, for example [roles](/integrations/connectors/data-integrations/drivers-and-interfaces/http#setting-role-with-query-parameters) | `none` | `none` | -| `setOption("custom_settings_prefix", value)` | `value` - prefix string | Sets the prefix for custom settings passed to the server. Should be aligned with the server configuration. See [ClickHouse Docs](/concepts/features/configuration/settings/settings-query-level#custom_settings). | `custom_` | `custom_settings_prefix` | +| `serverSetting(String name, String value)` | `name` - setting name
    `value` - setting value | Sets what settings to pass to server along with each query. Individual operation settings may override it. [List of settings](/core/concepts/features/configuration/settings/settings-query-level) | `none` | `none` | +| `serverSetting(String name, Collection values)` | `name` - setting name
    `values` - setting values | Sets what settings to pass to server with multiple values, for example [roles](/core/concepts/features/interfaces/http#setting-role-with-query-parameters) | `none` | `none` | +| `setOption("custom_settings_prefix", value)` | `value` - prefix string | Sets the prefix for custom settings passed to the server. Should be aligned with the server configuration. See [ClickHouse Docs](/core/concepts/features/configuration/settings/settings-query-level#custom_settings). | `custom_` | `custom_settings_prefix` | @@ -342,7 +342,7 @@ When options are set via `setOption` method (either the `Client.Builder` or oper ### ClickHouseFormat {#clickhouseformat} -Enum of [supported formats](/reference/formats). It includes all formats that ClickHouse supports. +Enum of [supported formats](/core/reference/formats). It includes all formats that ClickHouse supports. * `raw` - user should transcode raw data * `full` - the client can transcode data by itself and accepts a raw data stream @@ -352,87 +352,87 @@ This client version supports: | Format | Input | Output | |-------------------------------------------------------------------------------------------------------------------------------|:------:|:-------:| -| [TabSeparated](/reference/formats/TabSeparated/TabSeparated) | raw | raw | -| [TabSeparatedRaw](/reference/formats/TabSeparated/TabSeparatedRaw) | raw | raw | -| [TabSeparatedWithNames](/reference/formats/TabSeparated/TabSeparatedWithNames) | raw | raw | -| [TabSeparatedWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) | raw | raw | -| [TabSeparatedRawWithNames](/reference/formats/TabSeparated/TabSeparatedRawWithNames) | raw | raw | -| [TabSeparatedRawWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes) | raw | raw | -| [Template](/reference/formats/Template/Template) | raw | raw | -| [TemplateIgnoreSpaces](/reference/formats/Template/TemplateIgnoreSpaces) | raw | - | -| [CSV](/reference/formats/CSV/CSV) | raw | raw | -| [CSVWithNames](/reference/formats/CSV/CSVWithNames) | raw | raw | -| [CSVWithNamesAndTypes](/reference/formats/CSV/CSVWithNamesAndTypes) | raw | raw | -| [CustomSeparated](/reference/formats/CustomSeparated/CustomSeparated) | raw | raw | -| [CustomSeparatedWithNames](/reference/formats/CustomSeparated/CustomSeparatedWithNames) | raw | raw | -| [CustomSeparatedWithNamesAndTypes](/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes) | raw | raw | -| [SQLInsert](/reference/formats/SQLInsert) | - | raw | -| [Values](/reference/formats/Values) | raw | raw | -| [Vertical](/reference/formats/Vertical) | - | raw | -| [JSON](/reference/formats/JSON/JSON) | raw | raw | -| [JSONAsString](/reference/formats/JSON/JSONAsString) | raw | - | -| [JSONAsObject](/reference/formats/JSON/JSONAsObject) | raw | - | -| [JSONStrings](/reference/formats/JSON/JSONStrings) | raw | raw | -| [JSONColumns](/reference/formats/JSON/JSONColumns) | raw | raw | -| [JSONColumnsWithMetadata](/reference/formats/JSON/JSONColumnsWithMetadata) | raw | raw | -| [JSONCompact](/reference/formats/JSON/JSONCompact) | raw | raw | -| [JSONCompactStrings](/reference/formats/JSON/JSONCompactStrings) | - | raw | -| [JSONCompactColumns](/reference/formats/JSON/JSONCompactColumns) | raw | raw | -| [JSONEachRow](/reference/formats/JSON/JSONEachRow) | raw | raw | -| [PrettyJSONEachRow](/reference/formats/JSON/PrettyJSONEachRow) | - | raw | -| [JSONEachRowWithProgress](/reference/formats/JSON/JSONEachRowWithProgress) | - | raw | -| [JSONStringsEachRow](/reference/formats/JSON/JSONStringsEachRow) | raw | raw | -| [JSONStringsEachRowWithProgress](/reference/formats/JSON/JSONStringsEachRowWithProgress) | - | raw | -| [JSONCompactEachRow](/reference/formats/JSON/JSONCompactEachRow) | raw | raw | -| [JSONCompactEachRowWithNames](/reference/formats/JSON/JSONCompactEachRowWithNames) | raw | raw | -| [JSONCompactEachRowWithNamesAndTypes](/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes) | raw | raw | -| [JSONCompactStringsEachRow](/reference/formats/JSON/JSONCompactStringsEachRow) | raw | raw | -| [JSONCompactStringsEachRowWithNames](/reference/formats/JSON/JSONCompactStringsEachRowWithNames) | raw | raw | -| [JSONCompactStringsEachRowWithNamesAndTypes](/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes) | raw | raw | -| [JSONObjectEachRow](/reference/formats/JSON/JSONObjectEachRow) | raw | raw | -| [BSONEachRow](/reference/formats/BSONEachRow) | raw | raw | -| [TSKV](/reference/formats/TabSeparated/TSKV) | raw | raw | -| [Pretty](/reference/formats/Pretty/Pretty) | - | raw | -| [PrettyNoEscapes](/reference/formats/Pretty/PrettyNoEscapes) | - | raw | -| [PrettyMonoBlock](/reference/formats/Pretty/PrettyMonoBlock) | - | raw | -| [PrettyNoEscapesMonoBlock](/reference/formats/Pretty/PrettyNoEscapesMonoBlock) | - | raw | -| [PrettyCompact](/reference/formats/Pretty/PrettyCompact) | - | raw | -| [PrettyCompactNoEscapes](/reference/formats/Pretty/PrettyCompactNoEscapes) | - | raw | -| [PrettyCompactMonoBlock](/reference/formats/Pretty/PrettyCompactMonoBlock) | - | raw | -| [PrettyCompactNoEscapesMonoBlock](/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock) | - | raw | -| [PrettySpace](/reference/formats/Pretty/PrettySpace) | - | raw | -| [PrettySpaceNoEscapes](/reference/formats/Pretty/PrettySpaceNoEscapes) | - | raw | -| [PrettySpaceMonoBlock](/reference/formats/Pretty/PrettySpaceMonoBlock) | - | raw | -| [PrettySpaceNoEscapesMonoBlock](/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock) | - | raw | -| [Prometheus](/reference/formats/Prometheus) | - | raw | -| [Protobuf](/reference/formats/Protobuf/Protobuf) | raw | raw | -| [ProtobufSingle](/reference/formats/Protobuf/ProtobufSingle) | raw | raw | -| [ProtobufList](/reference/formats/Protobuf/ProtobufList) | raw | raw | -| [Avro](/reference/formats/Avro/Avro) | raw | raw | -| [AvroConfluent](/reference/formats/Avro/AvroConfluent) | raw | - | -| [Parquet](/reference/formats/Parquet/Parquet) | raw | raw | -| [ParquetMetadata](/reference/formats/Parquet/ParquetMetadata) | raw | - | -| [Arrow](/reference/formats/Arrow/Arrow) | raw | raw | -| [ArrowStream](/reference/formats/Arrow/ArrowStream) | raw | raw | -| [ORC](/reference/formats/ORC) | raw | raw | -| [One](/reference/formats/One) | raw | - | -| [Npy](/reference/formats/Npy) | raw | raw | -| [RowBinary](/reference/formats/RowBinary/RowBinary) | full | full | -| [RowBinaryWithNames](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) | full | full | -| [RowBinaryWithNamesAndTypes](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) | full | full | -| [RowBinaryWithDefaults](/reference/formats/RowBinary/RowBinaryWithDefaults) | full | - | -| [Native](/reference/formats/Native) | full | raw | -| [Null](/reference/formats/Null) | - | raw | -| [XML](/reference/formats/XML) | - | raw | -| [CapnProto](/reference/formats/CapnProto) | raw | raw | -| [LineAsString](/reference/formats/LineAsString/LineAsString) | raw | raw | -| [Regexp](/reference/formats/Regexp) | raw | - | -| [RawBLOB](/reference/formats/RawBLOB) | raw | raw | -| [MsgPack](/reference/formats/MsgPack) | raw | raw | -| [MySQLDump](/reference/formats/MySQLDump) | raw | - | -| [DWARF](/reference/formats/DWARF) | raw | - | -| [Markdown](/reference/formats/Markdown) | - | raw | -| [Form](/reference/formats/Form) | raw | - | +| [TabSeparated](/core/reference/formats/TabSeparated/TabSeparated) | raw | raw | +| [TabSeparatedRaw](/core/reference/formats/TabSeparated/TabSeparatedRaw) | raw | raw | +| [TabSeparatedWithNames](/core/reference/formats/TabSeparated/TabSeparatedWithNames) | raw | raw | +| [TabSeparatedWithNamesAndTypes](/core/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) | raw | raw | +| [TabSeparatedRawWithNames](/core/reference/formats/TabSeparated/TabSeparatedRawWithNames) | raw | raw | +| [TabSeparatedRawWithNamesAndTypes](/core/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes) | raw | raw | +| [Template](/core/reference/formats/Template/Template) | raw | raw | +| [TemplateIgnoreSpaces](/core/reference/formats/Template/TemplateIgnoreSpaces) | raw | - | +| [CSV](/core/reference/formats/CSV/CSV) | raw | raw | +| [CSVWithNames](/core/reference/formats/CSV/CSVWithNames) | raw | raw | +| [CSVWithNamesAndTypes](/core/reference/formats/CSV/CSVWithNamesAndTypes) | raw | raw | +| [CustomSeparated](/core/reference/formats/CustomSeparated/CustomSeparated) | raw | raw | +| [CustomSeparatedWithNames](/core/reference/formats/CustomSeparated/CustomSeparatedWithNames) | raw | raw | +| [CustomSeparatedWithNamesAndTypes](/core/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes) | raw | raw | +| [SQLInsert](/core/reference/formats/SQLInsert) | - | raw | +| [Values](/core/reference/formats/Values) | raw | raw | +| [Vertical](/core/reference/formats/Vertical) | - | raw | +| [JSON](/core/reference/formats/JSON/JSON) | raw | raw | +| [JSONAsString](/core/reference/formats/JSON/JSONAsString) | raw | - | +| [JSONAsObject](/core/reference/formats/JSON/JSONAsObject) | raw | - | +| [JSONStrings](/core/reference/formats/JSON/JSONStrings) | raw | raw | +| [JSONColumns](/core/reference/formats/JSON/JSONColumns) | raw | raw | +| [JSONColumnsWithMetadata](/core/reference/formats/JSON/JSONColumnsWithMetadata) | raw | raw | +| [JSONCompact](/core/reference/formats/JSON/JSONCompact) | raw | raw | +| [JSONCompactStrings](/core/reference/formats/JSON/JSONCompactStrings) | - | raw | +| [JSONCompactColumns](/core/reference/formats/JSON/JSONCompactColumns) | raw | raw | +| [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) | raw | raw | +| [PrettyJSONEachRow](/core/reference/formats/JSON/PrettyJSONEachRow) | - | raw | +| [JSONEachRowWithProgress](/core/reference/formats/JSON/JSONEachRowWithProgress) | - | raw | +| [JSONStringsEachRow](/core/reference/formats/JSON/JSONStringsEachRow) | raw | raw | +| [JSONStringsEachRowWithProgress](/core/reference/formats/JSON/JSONStringsEachRowWithProgress) | - | raw | +| [JSONCompactEachRow](/core/reference/formats/JSON/JSONCompactEachRow) | raw | raw | +| [JSONCompactEachRowWithNames](/core/reference/formats/JSON/JSONCompactEachRowWithNames) | raw | raw | +| [JSONCompactEachRowWithNamesAndTypes](/core/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes) | raw | raw | +| [JSONCompactStringsEachRow](/core/reference/formats/JSON/JSONCompactStringsEachRow) | raw | raw | +| [JSONCompactStringsEachRowWithNames](/core/reference/formats/JSON/JSONCompactStringsEachRowWithNames) | raw | raw | +| [JSONCompactStringsEachRowWithNamesAndTypes](/core/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes) | raw | raw | +| [JSONObjectEachRow](/core/reference/formats/JSON/JSONObjectEachRow) | raw | raw | +| [BSONEachRow](/core/reference/formats/BSONEachRow) | raw | raw | +| [TSKV](/core/reference/formats/TabSeparated/TSKV) | raw | raw | +| [Pretty](/core/reference/formats/Pretty/Pretty) | - | raw | +| [PrettyNoEscapes](/core/reference/formats/Pretty/PrettyNoEscapes) | - | raw | +| [PrettyMonoBlock](/core/reference/formats/Pretty/PrettyMonoBlock) | - | raw | +| [PrettyNoEscapesMonoBlock](/core/reference/formats/Pretty/PrettyNoEscapesMonoBlock) | - | raw | +| [PrettyCompact](/core/reference/formats/Pretty/PrettyCompact) | - | raw | +| [PrettyCompactNoEscapes](/core/reference/formats/Pretty/PrettyCompactNoEscapes) | - | raw | +| [PrettyCompactMonoBlock](/core/reference/formats/Pretty/PrettyCompactMonoBlock) | - | raw | +| [PrettyCompactNoEscapesMonoBlock](/core/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock) | - | raw | +| [PrettySpace](/core/reference/formats/Pretty/PrettySpace) | - | raw | +| [PrettySpaceNoEscapes](/core/reference/formats/Pretty/PrettySpaceNoEscapes) | - | raw | +| [PrettySpaceMonoBlock](/core/reference/formats/Pretty/PrettySpaceMonoBlock) | - | raw | +| [PrettySpaceNoEscapesMonoBlock](/core/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock) | - | raw | +| [Prometheus](/core/reference/formats/Prometheus) | - | raw | +| [Protobuf](/core/reference/formats/Protobuf/Protobuf) | raw | raw | +| [ProtobufSingle](/core/reference/formats/Protobuf/ProtobufSingle) | raw | raw | +| [ProtobufList](/core/reference/formats/Protobuf/ProtobufList) | raw | raw | +| [Avro](/core/reference/formats/Avro/Avro) | raw | raw | +| [AvroConfluent](/core/reference/formats/Avro/AvroConfluent) | raw | - | +| [Parquet](/core/reference/formats/Parquet/Parquet) | raw | raw | +| [ParquetMetadata](/core/reference/formats/Parquet/ParquetMetadata) | raw | - | +| [Arrow](/core/reference/formats/Arrow/Arrow) | raw | raw | +| [ArrowStream](/core/reference/formats/Arrow/ArrowStream) | raw | raw | +| [ORC](/core/reference/formats/ORC) | raw | raw | +| [One](/core/reference/formats/One) | raw | - | +| [Npy](/core/reference/formats/Npy) | raw | raw | +| [RowBinary](/core/reference/formats/RowBinary/RowBinary) | full | full | +| [RowBinaryWithNames](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) | full | full | +| [RowBinaryWithNamesAndTypes](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) | full | full | +| [RowBinaryWithDefaults](/core/reference/formats/RowBinary/RowBinaryWithDefaults) | full | - | +| [Native](/core/reference/formats/Native) | full | raw | +| [Null](/core/reference/formats/Null) | - | raw | +| [XML](/core/reference/formats/XML) | - | raw | +| [CapnProto](/core/reference/formats/CapnProto) | raw | raw | +| [LineAsString](/core/reference/formats/LineAsString/LineAsString) | raw | raw | +| [Regexp](/core/reference/formats/Regexp) | raw | - | +| [RawBLOB](/core/reference/formats/RawBLOB) | raw | raw | +| [MsgPack](/core/reference/formats/MsgPack) | raw | raw | +| [MySQLDump](/core/reference/formats/MySQLDump) | raw | - | +| [DWARF](/core/reference/formats/DWARF) | raw | - | +| [Markdown](/core/reference/formats/Markdown) | - | raw | +| [Form](/core/reference/formats/Form) | raw | - | ## Insert API {#insert-api} @@ -689,7 +689,7 @@ Configuration options for query operations. | `setMaxExecutionTime(Integer maxExecutionTime)` | Sets operation execution time on server. Won't affect read timeout. | | `waitEndOfQuery(Boolean waitEndOfQuery)` | Requests the server to wait for the end of the query before sending a response. | | `setUseServerTimeZone(Boolean useServerTimeZone)` | Server timezone (see client config) will be used to parse date/time types in the result of an operation. Default `false`. | -| `setUseTimeZone(String timeZone)` | Requests server to use `timeZone` for time conversion. See [session_timezone](/reference/settings/session-settings#session_timezone). | +| `setUseTimeZone(String timeZone)` | Requests server to use `timeZone` for time conversion. See [session_timezone](/core/reference/settings/session-settings#session_timezone). | | `serverSetting(String name, String value)` | Sets individual server settings for an operation. | | `serverSetting(String name, Collection values)` | Sets individual server settings with multiple values for an operation. Items of the collection should be `String` values. | | `setDBRoles(Collection dbRoles)` | Sets DB roles to be set before executing an operation. Items of the collection should be `String` values. | @@ -1160,9 +1160,9 @@ for (GenericRecord record : records) {
    - + -Java client library to communicate with a DB server through its protocols. Current implementation supports only [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http). The library provides own API to send requests to a server. +Java client library to communicate with a DB server through its protocols. Current implementation supports only [HTTP interface](/core/concepts/features/interfaces/http). The library provides own API to send requests to a server. **Deprecation** @@ -1307,7 +1307,7 @@ See [complete code example](https://github.com/ClickHouse/clickhouse-java/blob/m **RowBinary Encoding** -RowBinary format is described on its [page](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes). +RowBinary format is described on its [page](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes). There is an example of [code](https://github.com/ClickHouse/clickhouse-kafka-connect/blob/main/src/main/java/com/clickhouse/kafka/connect/sink/db/ClickHouseWriter.java#L622). @@ -1360,7 +1360,7 @@ ClickHouseClient client = ClickHouseClient.builder() .build(); ``` -See the [compression documentation](/guides/cloud-oss/data-modelling/compression/compression-modes) to learn more about different compression options. +See the [compression documentation](/core/guides/clickhouse/data-modelling/compression/compression-modes) to learn more about different compression options. ### Multiple queries {#v1-multiple-queries} diff --git a/integrations/language-clients/java/client/v7.mdx b/integrations/language-clients/java/client/v7.mdx deleted file mode 100644 index 35ba0d1a..00000000 --- a/integrations/language-clients/java/client/v7.mdx +++ /dev/null @@ -1,508 +0,0 @@ ---- -title: "Java Client" -sidebarTitle: "Java client v0.7x" ---- - -Java client library to communicate with a DB server through its protocols. Current implementation supports only [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http). The library provides own API to send requests to a server. - - -This library will be deprecated soon. Use the latest [Java Client](/integrations/language-clients/java/client) for new projects. - - -## Setup - - - - - -```xml - -{/* https://mvnrepository.com/artifact/com.clickhouse/clickhouse-http-client */} - - - - com.clickhouse - - clickhouse-http-client - - 0.7.2 - - - -``` - - - - - -```kotlin - -// https://mvnrepository.com/artifact/com.clickhouse/clickhouse-http-client - -implementation("com.clickhouse:clickhouse-http-client:0.7.2") - -``` - - - - - -```groovy - -// https://mvnrepository.com/artifact/com.clickhouse/clickhouse-http-client - -implementation 'com.clickhouse:clickhouse-http-client:0.7.2' - -``` - - - - - -Since version `0.5.0`, the driver uses a new client http library that needs to be added as a dependency. - - - - - -```xml - -{/* https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 */} - - - - org.apache.httpcomponents.client5 - - httpclient5 - - 5.3.1 - - - -``` - - - - - -```kotlin - -// https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 - -implementation("org.apache.httpcomponents.client5:httpclient5:5.3.1") - -``` - - - - - -```groovy - -// https://mvnrepository.com/artifact/org.apache.httpcomponents.client5/httpclient5 - -implementation 'org.apache.httpcomponents.client5:httpclient5:5.3.1' - -``` - - - - - -## Initialization - -Connection URL Format: `protocol://host[:port][/database][?param[=value][¶m[=value]]]`, for example: - -- `http://localhost:8443?ssl=true&sslmode=NONE` - -- `https://(https://explorer@play.clickhouse.com:443` - -Connect to a single node: - -```java showLineNumbers - -ClickHouseNode server = ClickHouseNode.of("http://localhost:8123/default?compress=0"); - -``` - -Connect to a cluster with multiple nodes: - -```java showLineNumbers - -ClickHouseNodes servers = ClickHouseNodes.of( - - "jdbc:ch:http://server1.domain,server2.domain,server3.domain/my_db" - - + "?load_balancing_policy=random&health_check_interval=5000&failover=2"); - -``` - -## Query API - -```java showLineNumbers - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - - ClickHouseResponse response = client.read(servers) - - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - - .query("select * from numbers limit :limit") - - .params(1000) - - .executeAndWait()) { - - ClickHouseResponseSummary summary = response.getSummary(); - - long totalRows = summary.getTotalRowsToRead(); - -} - -``` - -## Streaming Query API - -```java showLineNumbers - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - - ClickHouseResponse response = client.read(servers) - - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - - .query("select * from numbers limit :limit") - - .params(1000) - - .executeAndWait()) { - - for (ClickHouseRecord r : response.records()) { - - int num = r.getValue(0).asInteger(); - - // type conversion - - String str = r.getValue(0).asString(); - - LocalDate date = r.getValue(0).asDate(); - - } - -} - -``` - -See [complete code example](https://github.com/ClickHouse/clickhouse-java/blob/main/examples/client/src/main/java/com/clickhouse/examples/jdbc/Main.java#L73) in the [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client). - -## Insert API - -```java showLineNumbers - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - - ClickHouseResponse response = client.read(servers).write() - - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - - .query("insert into my_table select c2, c3 from input('c1 UInt8, c2 String, c3 Int32')") - - .data(myInputStream) // `myInputStream` is source of data in RowBinary format - - .executeAndWait()) { - - ClickHouseResponseSummary summary = response.getSummary(); - - summary.getWrittenRows(); - -} - -``` - -See [complete code example](https://github.com/ClickHouse/clickhouse-java/blob/main/examples/client/src/main/java/com/clickhouse/examples/jdbc/Main.java#L39) in the [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client). - -**RowBinary Encoding** - -RowBinary format is described on its [page](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes). - -There is an example of [code](https://github.com/ClickHouse/clickhouse-kafka-connect/blob/main/src/main/java/com/clickhouse/kafka/connect/sink/db/ClickHouseWriter.java#L622). - -## Features - -### Compression - -The client will by default use LZ4 compression, which requires this dependency: - - - - - -```xml - -{/* https://mvnrepository.com/artifact/org.lz4/lz4-java */} - - - - org.lz4 - - lz4-java - - 1.8.0 - - - -``` - - - - - -```kotlin - -// https://mvnrepository.com/artifact/org.lz4/lz4-java - -implementation("org.lz4:lz4-java:1.8.0") - -``` - - - - - -```groovy - -// https://mvnrepository.com/artifact/org.lz4/lz4-java - -implementation 'org.lz4:lz4-java:1.8.0' - -``` - - - - - -You can choose to use gzip instead by setting `compress_algorithm=gzip` in the connection URL. - -Alternatively, you can disable compression a few ways. - -1. Disable by setting `compress=0` in the connection URL: `http://localhost:8123/default?compress=0` - -2. Disable via the client configuration: - -```java showLineNumbers - -ClickHouseClient client = ClickHouseClient.builder() - - .config(new ClickHouseConfig(Map.of(ClickHouseClientOption.COMPRESS, false))) - - .nodeSelector(ClickHouseNodeSelector.of(ClickHouseProtocol.HTTP)) - - .build(); - -``` - -See the [compression documentation](/guides/cloud-oss/data-modelling/compression/compression-modes) to learn more about different compression options. - -### Multiple queries - -Execute multiple queries in a worker thread one after another within same session: - -```java showLineNumbers - -CompletableFuture> future = ClickHouseClient.send(servers.apply(servers.getNodeSelector()), - - "create database if not exists my_base", - - "use my_base", - - "create table if not exists test_table(s String) engine=Memory", - - "insert into test_table values('1')('2')('3')", - - "select * from test_table limit 1", - - "truncate table test_table", - - "drop table if exists test_table"); - -List results = future.get(); - -``` - -### Named Parameters - -You can pass parameters by name rather than relying solely on their position in the parameter list. This capability is available using `params` function. - -```java showLineNumbers - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - - ClickHouseResponse response = client.read(servers) - - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - - .query("select * from my_table where name=:name limit :limit") - - .params("Ben", 1000) - - .executeAndWait()) { - - //... - - } - -} - -``` - - - -All `params` signatures involving `String` type (`String`, `String[]`, `Map`) assume the keys being passed are valid ClickHouse SQL strings. For instance: - -```java showLineNumbers - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - - ClickHouseResponse response = client.read(servers) - - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - - .query("select * from my_table where name=:name") - - .params(Map.of("name","'Ben'")) - - .executeAndWait()) { - - //... - - } - -} - -``` - -If you prefer not to parse String objects to ClickHouse SQL manually, you can use the helper function `ClickHouseValues.convertToSqlExpression` located at `com.clickhouse.data`: - -```java showLineNumbers - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP); - - ClickHouseResponse response = client.read(servers) - - .format(ClickHouseFormat.RowBinaryWithNamesAndTypes) - - .query("select * from my_table where name=:name") - - .params(Map.of("name", ClickHouseValues.convertToSqlExpression("Ben's"))) - - .executeAndWait()) { - - //... - - } - -} - -``` - -In the example above, `ClickHouseValues.convertToSqlExpression` will escape the inner single quote, and surround the variable with a valid single quotes. - -Other types, such as `Integer`, `UUID`, `Array` and `Enum` will be converted automatically inside `params`. - - - -## Node Discovery - -Java client provides the ability to discover ClickHouse nodes automatically. Auto-discovery is disabled by default. To manually enable it, set `auto_discovery` to `true`: - -```java - -properties.setProperty("auto_discovery", "true"); - -``` - -Or in the connection URL: - -```plaintext - -jdbc:ch://my-server/system?auto_discovery=true - -``` - -If auto-discovery is enabled, there is no need to specify all ClickHouse nodes in the connection URL. Nodes specified in the URL will be treated as seeds, and the Java client will automatically discover more nodes from system tables and/or clickhouse-keeper or zookeeper. - -The following options are responsible for auto-discovery configuration: - -| Property | Default | Description | - -|-------------------------|---------|-------------------------------------------------------------------------------------------------------| - -| auto_discovery | `false` | Whether the client should discover more nodes from system tables and/or clickhouse-keeper/zookeeper. | - -| node_discovery_interval | `0` | Node discovery interval in milliseconds, zero or negative value means one-time discovery. | - -| node_discovery_limit | `100` | Maximum number of nodes that can be discovered at a time; zero or negative value means no limit. | - -### Load Balancing - -The Java client chooses a ClickHouse node to send requests to, according to the load-balancing policy. In general, the load-balancing policy is responsible for the following things: - -1. Get a node from a managed node list. - -2. Managing node's status. - -3. Optionally schedule a background process for node discovery (if auto-discovery is enabled) and run a health check. - -Here is a list of options to configure load balancing: - -| Property | Default | Description | - -|-----------------------|-------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| - -| load_balancing_policy | `""` | The load-balancing policy can be one of:
  • `firstAlive` - request is sent to the first healthy node from the managed node list
  • `random` - request is sent to a random node from the managed node list
  • `roundRobin` - request is sent to each node from the managed node list, in turn.
  • full qualified class name implementing `ClickHouseLoadBalancingPolicy` - custom load balancing policy
  • If it is not specified the request is sent to the first node from the managed node list | - -| load_balancing_tags | `""` | Load balancing tags for filtering out nodes. Requests are sent only to nodes that have the specified tags | - -| health_check_interval | `0` | Health check interval in milliseconds, zero or negative value means one-time. | - -| health_check_method | `ClickHouseHealthCheckMethod.SELECT_ONE` | Health check method. Can be one of:
  • `ClickHouseHealthCheckMethod.SELECT_ONE` - check with `select 1` query
  • `ClickHouseHealthCheckMethod.PING` - protocol-specific check, which is generally faster
  • | - -| node_check_interval | `0` | Node check interval in milliseconds, negative number is treated as zero. The node status is checked if the specified amount of time has passed since the last check.
    The difference between `health_check_interval` and `node_check_interval` is that the `health_check_interval` option schedules the background job, which checks the status for the list of nodes (all or faulty), but `node_check_interval` specifies the amount of time has passed since the last check for the particular node | - -| check_all_nodes | `false` | Whether to perform a health check against all nodes or just faulty ones. | - -### Failover and retry - -Java client provides configuration options to set up failover and retry behavior for failed queries: - -| Property | Default | Description | - -|-------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| - -| failover | `0` | Maximum number of times a failover can happen for a request. Zero or a negative value means no failover. Failover sends the failed request to a different node (according to the load-balancing policy) in order to recover from failover. | - -| retry | `0` | Maximum number of times retry can happen for a request. Zero or a negative value means no retry. Retry sends a request to the same node and only if the ClickHouse server returns the `NETWORK_ERROR` error code | - -| repeat_on_session_lock | `true` | Whether to repeat execution when the session is locked until timed out(according to `session_timeout` or `connect_timeout`). The failed request is repeated if the ClickHouse server returns the `SESSION_IS_LOCKED` error code | - -### Adding custom http headers - -Java client support HTTP/S transport layer in case we want to add custom HTTP headers to the request. - -We should use the custom_http_headers property, and the headers need to be `,` separated. The header key/value should be divided using `=` - -## Java Client support - -```java - -options.put("custom_http_headers", "X-ClickHouse-Quota=test, X-ClickHouse-Test=test"); - -``` - -## JDBC Driver - -```java - -properties.setProperty("custom_http_headers", "X-ClickHouse-Quota=test, X-ClickHouse-Test=test"); - -``` diff --git a/integrations/language-clients/java/client/v8.mdx b/integrations/language-clients/java/client/v8.mdx deleted file mode 100644 index d1f4be31..00000000 --- a/integrations/language-clients/java/client/v8.mdx +++ /dev/null @@ -1,662 +0,0 @@ ---- -title: "Java Client" -sidebarTitle: "Java client v0.8x" ---- - -Java client library to communicate with a DB server through its protocols. The current implementation only supports the [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http). -The library provides its own API to send requests to a server. The library also provides tools to work with different binary data formats (RowBinary* & Native*). - -## Setup - -- Maven Central (project web page): https://mvnrepository.com/artifact/com.clickhouse/client-v2 -- Nightly builds (repository link): https://central.sonatype.com/repository/maven-snapshots/ -- Old Nightly builds artifactory (repository link): https://s01.oss.sonatype.org/content/repositories/snapshots/ -
    - - - - -```xml - - com.clickhouse - client-v2 - 0.9.1 - -``` - - - - -```kotlin -// https://mvnrepository.com/artifact/com.clickhouse/client-v2 -implementation("com.clickhouse:client-v2:0.9.1") -``` - - - -```groovy -// https://mvnrepository.com/artifact/com.clickhouse/client-v2 -implementation 'com.clickhouse:client-v2:0.9.1' -``` - - - - -## Initialization - -The Client object is initialized by `com.clickhouse.client.api.Client.Builder#build()`. Each client has its own context and no objects are shared between them. -The Builder has configuration methods for convenient setup. - -Example: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setUsername(user) - .setPassword(password) - .build(); -``` - -`Client` is `AutoCloseable` and should be closed when not needed anymore. - -### Authentication - -Authentication is configured per client at the initialization phase. There are three authentication methods supported: by password, by access token, by SSL Client Certificate. - -Authentication by a password requires setting user name password by calling `setUsername(String)` and `setPassword(String)`: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setUsername(user) - .setPassword(password) - .build(); -``` - -Authentication by an access token requires setting access token by calling `setAccessToken(String)`: -```java showLineNumbers - Client client = new Client.Builder() - .addEndpoint("https://clickhouse-cloud-instance:8443/") - .setAccessToken(userAccessToken) - .build(); -``` - -Authentication by a SSL Client Certificate require setting username, enabling SSL Authentication, setting a client certificate and a client key by calling `setUsername(String)`, `useSSLAuthentication(boolean)`, `setClientCertificate(String)` and `setClientKey(String)` accordingly: -```java showLineNumbers -Client client = new Client.Builder() - .useSSLAuthentication(true) - .setUsername("some_user") - .setClientCertificate("some_user.crt") - .setClientKey("some_user.key") -``` - - -SSL Authentication may be hard to troubleshoot on production because many errors from SSL libraries provide not enough information. For example, if client certificate and key do not match then server will terminate connection immediately (in case of HTTP it will be connection initiation stage where no HTTP requests are send so no response is sent). - -Please use tools like [openssl](https://docs.openssl.org/master/man1/openssl/) to verify certificates and keys: -- check key integrity: `openssl rsa -in [key-file.key] -check -noout` -- check client certificate has matching CN for a user: - - get CN from an user certificate - `openssl x509 -noout -subject -in [user.cert]` - - verify same value is set in database `select name, auth_type, auth_params from system.users where auth_type = 'ssl_certificate'` (query will output `auth_params` with something like ` {"common_names":["some_user"]}`) - - - -## Configuration - -All settings are defined by instance methods (a.k.a configuration methods) that make the scope and context of each value clear. -Major configuration parameters are defined in one scope (client or operation) and do not override each other. - -Configuration is defined during client creation. See `com.clickhouse.client.api.Client.Builder`. - -## Client Configuration - -| Configuration Method | Arguments | Description | -|-----------------------|-----------------------------|:--------------------------------------------| -| `addEndpoint(String endpoint)` | - `endpoint` - URL formatted a server address. | Adds a server endpoint to list of available servers. Currently only one endpoint is supported.

    Default: `none`
    Enum: `none`
    Key: `none` | -| `addEndpoint(Protocol protocol, String host, int port, boolean secure)` | - `protocol` - connection protocol `com.clickhouse.client.api.enums.Protocol#HTTP`.
    - `host` - IP or hostname of a server.
    - `secure` - if communication should use secure version of the protocol (HTTPS) | Adds a server endpoint to list of available servers. Currently only one endpoint is supported.

    Default: `none`
    Enum: `none`
    Key: `none` | -| `setOption(String key, String value)` | - `key` - String key of the client configuration option.
    - `value` - String value of the option | Sets raw value of client options. Useful when reading configuration from properties files. | -| `setUsername(String username)` | - `username` - User's username to use while authentication | Sets username for an authentication method that is selected by further configuration

    Default: `default`
    Enum: `ClientConfigProperties.USER`
    Key: `user` | -| `setPassword(String password)` | - `password` - secret value for password authentication | Sets a secret for password authentication and effectively selects as authentication method

    Default: -
    Enum: `ClientConfigProperties.PASSWORD`
    Key: `password` | -| `setAccessToken(String accessToken)` | - `accessToken` - String representation of an access token | Sets an access token to authenticate with a sets corresponding authentication method

    Default: -
    Enum: `ClientConfigProperties.ACCESS_TOKEN`
    Key: `access_token` | -| `useSSLAuthentication(boolean useSSLAuthentication)` | - `useSSLAuthentication` - flag that indicates if SSL auth should be used | Sets SSL Client Certificate as an authentication method.

    Default: -
    Enum: `ClientConfigProperties.SSL_AUTH`
    Key: `ssl_authentication` | -| `enableConnectionPool(boolean enable)` | - `enable` - flag that indicates if the option should be enabled | Sets if a connection pool is enabled

    Default: `true`
    Enum: `ClientConfigProperties.CONNECTION_POOL_ENABLED`
    Key: `connection_pool_enabled` | -| `setConnectTimeout(long timeout, ChronoUnit unit)` | - `timeout` - timeout in some time unit.
    - `unit` - time unit of the `timeout` | Sets connection initiation timeout for any outgoing connection. This affects time wait on getting socket connect.

    Default: -
    Enum: `ClientConfigProperties.CONNECTION_TIMEOUT`
    Key: `connection_timeout`| -| `setConnectionRequestTimeout(long timeout, ChronoUnit unit)` | - `timeout` - timeout in some time unit.
    - `unit` - time unit of the `timeout` | Sets connection request timeout. This take effect only for getting connection from a pool.

    Default: `10000`
    Enum: `ClientConfigProperties.CONNECTION_REQUEST_TIMEOUT`
    Key: `connection_request_timeout` | -| `setMaxConnections(int maxConnections)` | - `maxConnections` - number of connections | Sets how many connections can a client open to each server endpoint.

    Default: `10`
    Enum: `ClientConfigProperties.HTTP_MAX_OPEN_CONNECTIONS`
    Key: `max_open_connections` | -| `setConnectionTTL(long timeout, ChronoUnit unit)` | - `timeout` - timeout in some time unit.
    - `unit` - time unit of the `timeout` | Sets connection TTL after which connection will be considered as not active

    Default: `-1`
    Enum: `ClientConfigProperties.CONNECTION_TTL`
    Key: `connection_ttl`| -| `setKeepAliveTimeout(long timeout, ChronoUnit unit)` | - `timeout` - timeout in some time unit.
    - `unit` - time unit of the `timeout` | Sets HTTP connection keep-alive timeout. This option may be used to disable Keep-Alive by setting timeout to zero - `0`

    Default: -
    Enum: `ClientConfigProperties.HTTP_KEEP_ALIVE_TIMEOUT`
    Key: `http_keep_alive_timeout` | -| `setConnectionReuseStrategy(ConnectionReuseStrategy strategy)` | - `strategy` - enum `com.clickhouse.client.api.ConnectionReuseStrategy` constant | Selects which strategy connection pool should use: `LIFO` if connection should be reused as soon as they are returned to a pool or `FIFO` to use connection in the order they become available (returned connection are not used immediately).

    Default: `FIFO`
    Enum: `ClientConfigProperties.CONNECTION_REUSE_STRATEGY`
    Key: `connection_reuse_strategy`| -| `setSocketTimeout(long timeout, ChronoUnit unit`)` | - `timeout` - timeout in some time unit.
    - `unit` - time unit of the `timeout` | Sets socket timeout that affects read and write operations

    Default: `0`
    Enum: `ClientConfigProperties.SOCKET_OPERATION_TIMEOUT`
    Key: `socket_timeout`| -| `setSocketRcvbuf(long size)` | - `size` - size in bytes | Sets TCP socket receive buffer. This buffer out of the JVM memory.

    Default: `8196`
    Enum: `ClientConfigProperties.SOCKET_RCVBUF_OPT`
    Key: `socket_rcvbuf` | -| `setSocketSndbuf(long size)` | - `size` - size in bytes | Sets TCP socket receive buffer. This buffer out of the JVM memory.

    Default: `8196`
    Enum: `ClientConfigProperties.SOCKET_SNDBUF_OPT`
    Key: `socket_sndbuf` | -| `setSocketKeepAlive(boolean value)` | - `value` - flag that indicates if option should be enabled. | Sets option `SO_KEEPALIVE` for every TCP socket created by the client. TCP Keep Alive enables mechanism that will check liveness of the connection and will help to detect abruptly terminated ones.

    Default: -
    Enum: `ClientConfigProperties.SOCKET_KEEPALIVE_OPT`
    Key: `socket_keepalive` | -| `setSocketTcpNodelay(boolean value)` | - `value` - flag that indicates if option should be enabled. | Sets option `SO_NODELAY` for every TCP socket created by the client. This TCP option will make socket to push data as soon as possible.

    Default: -
    Enum: `ClientConfigProperties.SOCKET_TCP_NO_DELAY_OPT`
    Key: `socket_tcp_nodelay`| -| `setSocketLinger(int secondsToWait)` | - `secondsToWait` - number of seconds. | Set linger time for every TCP socket created by the client.

    Default: -
    Enum: `ClientConfigProperties.SOCKET_LINGER_OPT`
    Key: `socket_linger`| -| `compressServerResponse(boolean enabled)` | - `enabled` - flag that indicates if the option should be enabled | Sets if server should compress its responses.

    Default: `true`
    Enum: `ClientConfigProperties.COMPRESS_SERVER_RESPONSE`
    Key: `compress` | -| `compressClientRequest(boolean enabled)` | - `enabled` - flag that indicates if the option should be enabled | Sets if client should compress its requests.

    Default: `false`
    Enum: `ClientConfigProperties.COMPRESS_CLIENT_REQUEST`
    Key: `decompress` | -| `useHttpCompression(boolean enabled)` | - `enabled` - flag that indicates if the option should be enabled | Sets if HTTP compression should be used for client/server communications if corresponding options are enabled | -| `appCompressedData(boolean enabled)` | - `enabled` - flag that indicates if the option should be enabled | Tell client that compression will be handled by application.

    Default: `false`
    Enum: `ClientConfigProperties.APP_COMPRESSED_DATA`
    Key: `app_compressed_data` | -| `setLZ4UncompressedBufferSize(int size)` | - `size` - size in bytes | Sets size of a buffer that will receive uncompressed portion of a data stream. If buffer is underestimated - a new one will be created and corresponding warning will be present in logs.

    Default: `65536`
    Enum: `ClientConfigProperties.COMPRESSION_LZ4_UNCOMPRESSED_BUF_SIZE`
    Key: `compression.lz4.uncompressed_buffer_size`| -| `disableNativeCompression` | - `disable` - flag that indicates if the option should be disabled | Disable native compression. If set to true then native compression will be disabled.

    Default: `false`
    Enum: `ClientConfigProperties.DISABLE_NATIVE_COMPRESSION`
    Key: `disable_native_compression` | -| `setDefaultDatabase(String database)` | - `database` - name of a database | Sets default database.

    Default: `default`
    Enum: `ClientConfigProperties.DATABASE`
    Key: `database` | -| `addProxy(ProxyType type, String host, int port)` | - `type` - proxy type.
    - `host` - proxy host name or IP Address.
    - `port` - proxy port | Sets proxy to be used for communication with a server. Setting proxy is required if proxy requires authentication.

    Default: -
    Enum: `ClientConfigProperties.PROXY_TYPE`
    Key: `proxy_type`

    Default: -
    Enum: `ClientConfigProperties.PROXY_HOST`
    Key: `proxy_host`

    Default: -
    Enum: `ClientConfigProperties.PROXY_PORT`
    Key: `proxy_port` | -| `setProxyCredentials(String user, String pass)` | - `user` - proxy username.
    - `pass` - password | Sets user credentials to authenticate with a proxy.

    Default: -
    Enum: `ClientConfigProperties.PROXY_USER`
    Key: `proxy_user`

    Default: -
    Enum: `ClientConfigProperties.PROXY_PASSWORD`
    Key: `proxy_password` | -| `setExecutionTimeout(long timeout, ChronoUnit timeUnit)` | - `timeout` - timeout in some time unit.
    - `timeUnit` - time unit of the `timeout` | Sets maximum execution timeout for queries

    Default: `0`
    Enum: `ClientConfigProperties.MAX_EXECUTION_TIME`
    Key: `max_execution_time`| -| `setHttpCookiesEnabled(boolean enabled)` | `enabled` - flag that indicates if the option should be enabled | Set if HTTP cookies should be remembered and sent to server back. | -| `setSSLTrustStore(String path)` | `path` - file path on local (client side) system | Sets if client should use SSL truststore for server host validation.

    Default: -
    Enum: `ClientConfigProperties.SSL_TRUST_STORE`
    Key: `trust_store` | -| `setSSLTrustStorePassword(String password)` | `password` - secret value | Sets password to be used to unlock SSL truststore specified by `setSSLTrustStore(String path)`

    Default: -
    Enum: `ClientConfigProperties.SSL_KEY_STORE_PASSWORD`
    Key: `key_store_password` | -| `setSSLTrustStoreType(String type)` | `type` - truststore type name | Sets type of the truststore specified by `setSSLTrustStore(String path)`.

    Default: -
    Enum: `ClientConfigProperties.SSL_KEYSTORE_TYPE`
    Key: `key_store_type` | -| `setRootCertificate(String path)` | `path` - file path on local (client side) system | Sets if client should use specified root (CA) certificate for server host to validation.

    Default: -
    Enum: `ClientConfigProperties.CA_CERTIFICATE`
    Key: `sslrootcert` | -| `setClientCertificate(String path)` | `path` - file path on local (client side) system | Sets client certificate path to be used while initiating SSL connection and to be used by SSL authentication.

    Default: -
    Enum: `ClientConfigProperties.SSL_CERTIFICATE`
    Key: `sslcert`| -| `setClientKey(String path)` | `path` - file path on local (client side) system | Sets client private key to be used for encrypting SSL communication with a server.

    Default: -
    Enum: `ClientConfigProperties.SSL_KEY`
    Key: `ssl_key`| -| `useServerTimeZone(boolean useServerTimeZone)` | `useServerTimeZone` - flag that indicates if the option should be enabled | Sets if client should use server timezone when decoding DateTime and Date column values. If enabled then server timezone should be set by `setServerTimeZone(String timeZone)`

    Default: `true`
    Enum: `ClientConfigProperties.USE_SERVER_TIMEZONE`
    Key: `use_server_time_zone`| -| `useTimeZone(String timeZone)` | `timeZone` - string value of java valid timezone ID (see `java.time.ZoneId`) | Sets if specified timezone should be used when decoding DateTime and Date column values. Will override server timezone.

    Default: -
    Enum: `ClientConfigProperties.USE_TIMEZONE`
    Key: `use_time_zone` | -| `setServerTimeZone(String timeZone)` | `timeZone` - string value of java valid timezone ID (see `java.time.ZoneId`) | Sets server side timezone. UTC timezone will be used by default.

    Default: `UTC`
    Enum: `ClientConfigProperties.SERVER_TIMEZONE`
    Key: `server_time_zone` | -| `useAsyncRequests(boolean async)` | `async` - flag that indicates if the option should be enabled. | Sets if client should execute request in a separate thread. Disabled by default because application knows better how to organize multi-threaded tasks and running tasks in separate thread do not help with performance.

    Default: `false`
    Enum: `ClientConfigProperties.ASYNC_OPERATIONS`
    Key: `async` | -| `setSharedOperationExecutor(ExecutorService executorService)` | `executorService` - instance of executor service. | Sets executor service for operation tasks.

    Default: `none`
    Enum: `none`
    Key: `none`| -| `setClientNetworkBufferSize(int size)` | - `size` - size in bytes | Sets size of a buffer in application memory space that is used to copy data back-and-forth between socket and application. Greater reduces system calls to TCP stack, but affects how much memory is spent on every connection. This buffer is also subject for GC because connections are shortlive. Also keep in mind that allocating big continuous block of memory might be a problem.

    Default: `300000`
    Enum: `ClientConfigProperties.CLIENT_NETWORK_BUFFER_SIZE`
    Key: `client_network_buffer_size`| -| `retryOnFailures(ClientFaultCause ...causes)` | - `causes` - enum constant of `com.clickhouse.client.api.ClientFaultCause` | Sets recoverable/retriable fault types.

    Default: `NoHttpResponse,ConnectTimeout,ConnectionRequestTimeout`
    Enum: `ClientConfigProperties.CLIENT_RETRY_ON_FAILURE`
    Key: `client_retry_on_failures` | -| `setMaxRetries(int maxRetries)` | - `maxRetries` - number of retries | Sets maximum number of retries for failures defined by `retryOnFailures(ClientFaultCause ...causes)`

    Default: `3`
    Enum: `ClientConfigProperties.RETRY_ON_FAILURE`
    Key: `retry` | -| `allowBinaryReaderToReuseBuffers(boolean reuse)` | - `reuse` - flag that indicates if the option should be enabled | Most datasets contain numeric data encoded as small byte sequences. By default reader will allocate required buffer, read data into it and then transform into a target Number class. That may cause significant GC preasure because of many small objects are being allocated and released. If this option is enabled then reader will use preallocated buffers to do numbers transcoding. It is safe because each reader has own set of buffers and readers are used by one thread. | -| `httpHeader(String key, String value)` | - `key` - HTTP header key.
    - `value` - string value of the header. | Sets value for a single HTTP header. Previous value is overridden.

    Default: `none`
    Enum: `none`
    Key: `none` | -| `httpHeader(String key, Collection values)` | - `key` - HTTP header key.
    - `values` - list of string values. | Sets values for a single HTTP header. Previous value is overridden.

    Default: `none`
    Enum: `none`
    Key: `none` | -| `httpHeaders(Map headers)` | - `header` - map with HTTP headers and their values. | Sets multiple HTTP header values at a time.

    Default: `none`
    Enum: `none`
    Key: `none` | -| `serverSetting(String name, String value)` | - `name` - name of a query level setting.
    - `value` - string value of the setting. | Sets what settings to pass to server along with each query. Individual operation settings may override it. The [List of settings](/concepts/features/configuration/settings/settings-query-level)

    Default: `none`
    Enum: `none`
    Key: `none` | -| `serverSetting(String name, Collection values)` | - `name` - name of a query level setting.
    - `values` - string values of the setting. |Sets what settings to pass to server along with each query. Individual operation settings may override it. The [List of settings](/concepts/features/configuration/settings/settings-query-level). This method is useful to set settings with multiple values, for example [roles](/integrations/connectors/data-integrations/drivers-and-interfaces/http#setting-role-with-query-parameters)

    Default: `none`
    Enum: `none`
    Key: `none` | -| `columnToMethodMatchingStrategy(ColumnToMethodMatchingStrategy strategy)` | - `strategy` - implementation of a column-field matching strategy | Sets custom strategy to be used for matching DTO class fields and DB columns when registering DTO.

    Default: `none`
    Enum: `none`
    Key: `none` | -| `useHTTPBasicAuth(boolean useBasicAuth)` | - `useBasicAuth` - flag that indicates if the option should be enabled | Sets if basic HTTP authentication should be used for user-password authentication. Default is enabled. Using this type of authentication resolves issues with passwords containing special characters that cannot be transferred over HTTP headers.

    Default: `true`
    Enum: `ClientConfigProperties.HTTP_USE_BASIC_AUTH`
    Key: `http_use_basic_auth` | -| `setClientName(String clientName)` | - `clientName` - a string representing application name | Sets additional information about calling application. This string will be passed to server as a client name. In case of HTTP protocol it will be passed as a `User-Agent` header.

    Default: -
    Enum: `ClientConfigProperties.CLIENT_NAME`
    Key: `client_name`| -| `useBearerTokenAuth(String bearerToken)` | - `bearerToken` - an encoded bearer token | Specifies whether to use Bearer Authentication and what token to use. The token will be sent as is, so it should be encoded before passing to this method.

    Default: -
    Enum: `ClientConfigProperties.BEARERTOKEN_AUTH`
    Key: `bearer_token` | -| `registerClientMetrics(Object registry, String name)` | - `registry` - Micrometer registry instance
    - `name` - metrics group name | Registers sensors with Micrometer (https://micrometer.io/) registry instance. | -| `setServerVersion(String version)` | - `version` - string value of a server version | Sets server version to avoid version detection.

    Default: -
    Enum: `ClientConfigProperties.SERVER_VERSION`
    Key: `server_version` | -| `typeHintMapping(Map typeHintMapping)` | - `typeHintMapping` - map of type hints | Sets type hint mapping for ClickHouse types. For example, to make multidimesional arrays be present as Java containers instead of own Array objects.

    Default: -
    Enum: `ClientConfigProperties.TYPE_HINT_MAPPING`
    Key: `type_hint_mapping` | -| `sslSocketSNI(String sni)` | - `sni` - string value of a server name | Sets server name to be used for SNI (Server Name Indication) in SSL/TLS connection.

    Default: -
    Enum: `ClientConfigProperties.SSL_SOCKET_SNI`
    Key: `ssl_socket_sni` | - -### Server Settings - -Server side settings can be set on the client level once while creation (see `serverSetting` method of the `Builder`) and on operation level (see `serverSetting` for operation settings class). - -```java showLineNumbers - try (Client client = new Client.Builder().addEndpoint(Protocol.HTTP, "localhost", mockServer.port(), false) - .setUsername("default") - .setPassword(ClickHouseServerForTest.getPassword()) - .compressClientRequest(true) - - // Client level - .serverSetting("max_threads", "10") - .serverSetting("async_insert", "1") - .serverSetting("roles", Arrays.asList("role1", "role2")) - - .build()) { - - // Operation level - QuerySettings querySettings = new QuerySettings(); - querySettings.serverSetting("session_timezone", "Europe/Zurich"); - - ... -} -``` -When options are set via `setOption` method (either the `Client.Builder` or operation settings class) then server settings name should be prefixed with `clickhouse_setting_`. The `com.clickhouse.client.api.ClientConfigProperties#serverSetting()` may be handy in this case. - -### Custom HTTP Header - -Custom HTTP headers can be set for all operations (client level) or a single one (operation level). -```java showLineNumbers - -QuerySettings settings = new QuerySettings() - .httpHeader(HttpHeaders.REFERER, clientReferer) - .setQueryId(qId); - -``` - -When options are set via `setOption` method (either the `Client.Builder` or operation settings class) then custom header name should be prefixed with `http_header_`. Method `com.clickhouse.client.api.ClientConfigProperties#httpHeader()` may be handy in this case. - -## Common Definitions - -### ClickHouseFormat - -Enum of [supported formats](/reference/formats). It includes all formats that ClickHouse supports. - -* `raw` - user should transcode raw data -* `full` - the client can transcode data by itself and accepts a raw data stream -* `-` - operation not supported by ClickHouse for this format - -This client version supports: - -| Format | Input | Output | -|-------------------------------------------------------------------------------------------------------------------------------|:------:|:-------:| -| [TabSeparated](/reference/formats/TabSeparated/TabSeparated) | raw | raw | -| [TabSeparatedRaw](/reference/formats/TabSeparated/TabSeparatedRaw) | raw | raw | -| [TabSeparatedWithNames](/reference/formats/TabSeparated/TabSeparatedWithNames) | raw | raw | -| [TabSeparatedWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) | raw | raw | -| [TabSeparatedRawWithNames](/reference/formats/TabSeparated/TabSeparatedRawWithNames) | raw | raw | -| [TabSeparatedRawWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes) | raw | raw | -| [Template](/reference/formats/Template/Template) | raw | raw | -| [TemplateIgnoreSpaces](/reference/formats/Template/TemplateIgnoreSpaces) | raw | - | -| [CSV](/reference/formats/CSV/CSV) | raw | raw | -| [CSVWithNames](/reference/formats/CSV/CSVWithNames) | raw | raw | -| [CSVWithNamesAndTypes](/reference/formats/CSV/CSVWithNamesAndTypes) | raw | raw | -| [CustomSeparated](/reference/formats/CustomSeparated/CustomSeparated) | raw | raw | -| [CustomSeparatedWithNames](/reference/formats/CustomSeparated/CustomSeparatedWithNames) | raw | raw | -| [CustomSeparatedWithNamesAndTypes](/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes) | raw | raw | -| [SQLInsert](/reference/formats/SQLInsert) | - | raw | -| [Values](/reference/formats/Values) | raw | raw | -| [Vertical](/reference/formats/Vertical) | - | raw | -| [JSON](/reference/formats/JSON/JSON) | raw | raw | -| [JSONAsString](/reference/formats/JSON/JSONAsString) | raw | - | -| [JSONAsObject](/reference/formats/JSON/JSONAsObject) | raw | - | -| [JSONStrings](/reference/formats/JSON/JSONStrings) | raw | raw | -| [JSONColumns](/reference/formats/JSON/JSONColumns) | raw | raw | -| [JSONColumnsWithMetadata](/reference/formats/JSON/JSONColumnsWithMetadata) | raw | raw | -| [JSONCompact](/reference/formats/JSON/JSONCompact) | raw | raw | -| [JSONCompactStrings](/reference/formats/JSON/JSONCompactStrings) | - | raw | -| [JSONCompactColumns](/reference/formats/JSON/JSONCompactColumns) | raw | raw | -| [JSONEachRow](/reference/formats/JSON/JSONEachRow) | raw | raw | -| [PrettyJSONEachRow](/reference/formats/JSON/PrettyJSONEachRow) | - | raw | -| [JSONEachRowWithProgress](/reference/formats/JSON/JSONEachRowWithProgress) | - | raw | -| [JSONStringsEachRow](/reference/formats/JSON/JSONStringsEachRow) | raw | raw | -| [JSONStringsEachRowWithProgress](/reference/formats/JSON/JSONStringsEachRowWithProgress) | - | raw | -| [JSONCompactEachRow](/reference/formats/JSON/JSONCompactEachRow) | raw | raw | -| [JSONCompactEachRowWithNames](/reference/formats/JSON/JSONCompactEachRowWithNames) | raw | raw | -| [JSONCompactEachRowWithNamesAndTypes](/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes) | raw | raw | -| [JSONCompactStringsEachRow](/reference/formats/JSON/JSONCompactStringsEachRow) | raw | raw | -| [JSONCompactStringsEachRowWithNames](/reference/formats/JSON/JSONCompactStringsEachRowWithNames) | raw | raw | -| [JSONCompactStringsEachRowWithNamesAndTypes](/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes) | raw | raw | -| [JSONObjectEachRow](/reference/formats/JSON/JSONObjectEachRow) | raw | raw | -| [BSONEachRow](/reference/formats/BSONEachRow) | raw | raw | -| [TSKV](/reference/formats/TabSeparated/TSKV) | raw | raw | -| [Pretty](/reference/formats/Pretty/Pretty) | - | raw | -| [PrettyNoEscapes](/reference/formats/Pretty/PrettyNoEscapes) | - | raw | -| [PrettyMonoBlock](/reference/formats/Pretty/PrettyMonoBlock) | - | raw | -| [PrettyNoEscapesMonoBlock](/reference/formats/Pretty/PrettyNoEscapesMonoBlock) | - | raw | -| [PrettyCompact](/reference/formats/Pretty/PrettyCompact) | - | raw | -| [PrettyCompactNoEscapes](/reference/formats/Pretty/PrettyCompactNoEscapes) | - | raw | -| [PrettyCompactMonoBlock](/reference/formats/Pretty/PrettyCompactMonoBlock) | - | raw | -| [PrettyCompactNoEscapesMonoBlock](/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock) | - | raw | -| [PrettySpace](/reference/formats/Pretty/PrettySpace) | - | raw | -| [PrettySpaceNoEscapes](/reference/formats/Pretty/PrettySpaceNoEscapes) | - | raw | -| [PrettySpaceMonoBlock](/reference/formats/Pretty/PrettySpaceMonoBlock) | - | raw | -| [PrettySpaceNoEscapesMonoBlock](/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock) | - | raw | -| [Prometheus](/reference/formats/Prometheus) | - | raw | -| [Protobuf](/reference/formats/Protobuf/Protobuf) | raw | raw | -| [ProtobufSingle](/reference/formats/Protobuf/ProtobufSingle) | raw | raw | -| [ProtobufList](/reference/formats/Protobuf/ProtobufList) | raw | raw | -| [Avro](/reference/formats/Avro/Avro) | raw | raw | -| [AvroConfluent](/reference/formats/Avro/AvroConfluent) | raw | - | -| [Parquet](/reference/formats/Parquet/Parquet) | raw | raw | -| [ParquetMetadata](/reference/formats/Parquet/ParquetMetadata) | raw | - | -| [Arrow](/reference/formats/Arrow/Arrow) | raw | raw | -| [ArrowStream](/reference/formats/Arrow/ArrowStream) | raw | raw | -| [ORC](/reference/formats/ORC) | raw | raw | -| [One](/reference/formats/One) | raw | - | -| [Npy](/reference/formats/Npy) | raw | raw | -| [RowBinary](/reference/formats/RowBinary/RowBinary) | full | full | -| [RowBinaryWithNames](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) | full | full | -| [RowBinaryWithNamesAndTypes](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) | full | full | -| [RowBinaryWithDefaults](/reference/formats/RowBinary/RowBinaryWithDefaults) | full | - | -| [Native](/reference/formats/Native) | full | raw | -| [Null](/reference/formats/Null) | - | raw | -| [XML](/reference/formats/XML) | - | raw | -| [CapnProto](/reference/formats/CapnProto) | raw | raw | -| [LineAsString](/reference/formats/LineAsString/LineAsString) | raw | raw | -| [Regexp](/reference/formats/Regexp) | raw | - | -| [RawBLOB](/reference/formats/RawBLOB) | raw | raw | -| [MsgPack](/reference/formats/MsgPack) | raw | raw | -| [MySQLDump](/reference/formats/MySQLDump) | raw | - | -| [DWARF](/reference/formats/DWARF) | raw | - | -| [Markdown](/reference/formats/Markdown) | - | raw | -| [Form](/reference/formats/Form) | raw | - | - -## Insert API - -### insert(String tableName, InputStream data, ClickHouseFormat format) - -Accepts data as an `InputStream` of bytes in the specified format. It is expected that `data` is encoded in the `format`. - -**Signatures** - -```java -CompletableFuture insert(String tableName, InputStream data, ClickHouseFormat format, InsertSettings settings) -CompletableFuture insert(String tableName, InputStream data, ClickHouseFormat format) -``` - -**Parameters** - -`tableName` - a target table name. - -`data` - an input stream of an encoded data. - -`format` - a format in which the data is encoded. - -`settings` - request settings. - -**Return value** - -Future of `InsertResponse` type - result of the operation and additional information like server side metrics. - -**Examples** - -```java showLineNumbers -try (InputStream dataStream = getDataStream()) { - try (InsertResponse response = client.insert(TABLE_NAME, dataStream, ClickHouseFormat.JSONEachRow, - insertSettings).get(3, TimeUnit.SECONDS)) { - - log.info("Insert finished: {} rows written", response.getMetrics().getMetric(ServerMetrics.NUM_ROWS_WRITTEN).getLong()); - } catch (Exception e) { - log.error("Failed to write JSONEachRow data", e); - throw new RuntimeException(e); - } -} - -``` - -### insert(String tableName, List<?> data, InsertSettings settings) - -Sends a write request to database. The list of objects is converted into an efficient format and then is sent to a server. The class of the list items should be registered up-front using `register(Class, TableSchema)` method. - -**Signatures** -```java -client.insert(String tableName, List data, InsertSettings settings) -client.insert(String tableName, List data) -``` - -**Parameters** - -`tableName` - name of the target table. - -`data` - collection DTO (Data Transfer Object) objects. - -`settings` - request settings. - -**Return value** - -Future of `InsertResponse` type - the result of the operation and additional information like server side metrics. - -**Examples** - -```java showLineNumbers -// Important step (done once) - register class to pre-compile object serializer according to the table schema. -client.register(ArticleViewEvent.class, client.getTableSchema(TABLE_NAME)); - -List events = loadBatch(); - -try (InsertResponse response = client.insert(TABLE_NAME, events).get()) { - // handle response, then it will be closed and connection that served request will be released. -} -``` - -### InsertSettings - -Configuration options for insert operations. - -**Configuration methods** - -| Method | Description | -|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| -| `setQueryId(String queryId)` | Sets query ID that will be assigned to the operation. Default: `null`. | -| `setDeduplicationToken(String token)` | Sets the deduplication token. This token will be sent to the server and can be used to identify the query. Default: `null`. | -| `setInputStreamCopyBufferSize(int size)` | Copy buffer size. The buffer is used during write operations to copy data from user-provided input stream to an output stream. Default: `8196`. | -| `serverSetting(String name, String value)` | Sets individual server settings for an operation. | -| `serverSetting(String name, Collection values)` | Sets individual server settings with multiple values for an operation. Items of the collection should be `String` values. | -| `setDBRoles(Collection dbRoles)` | Sets DB roles to be set before executing an operation. Items of the collection should be `String` values. | -| `setOption(String option, Object value)` | Sets a configuration option in raw format. This is not a server setting. | - -### InsertResponse - -Response object that holds result of insert operation. It is only available if the client got response from a server. - - -This object should be closed as soon as possible to release a connection because the connection cannot be re-used until all data of previous response is fully read. - - -| Method | Description | -|-----------------------------|------------------------------------------------------------------------------------------------------| -| `OperationMetrics getMetrics()` | Returns object with operation metrics. | -| `String getQueryId()` | Returns query ID assigned for the operation by the application (through operation settings or by server). | - -## Query API - -### query(String sqlQuery) - -Sends `sqlQuery` as is. Response format is set by query settings. `QueryResponse` will hold a reference to the response stream that should be consumed by a reader for the supportig format. - -**Signatures** - -```java -CompletableFuture query(String sqlQuery, QuerySettings settings) -CompletableFuture query(String sqlQuery) -``` - -**Parameters** - -`sqlQuery` - a single SQL statement. The Query is sent as is to a server. - -`settings` - request settings. - -**Return value** - -Future of `QueryResponse` type - a result dataset and additional information like server side metrics. The Response object should be closed after consuming the dataset. - -**Examples** - -```java -final String sql = "select * from " + TABLE_NAME + " where title <> '' limit 10"; - -// Default format is RowBinaryWithNamesAndTypesFormatReader so reader have all information about columns -try (QueryResponse response = client.query(sql).get(3, TimeUnit.SECONDS);) { - - // Create a reader to access the data in a convenient way - ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(response); - - while (reader.hasNext()) { - reader.next(); // Read the next record from stream and parse it - - // get values - double id = reader.getDouble("id"); - String title = reader.getString("title"); - String url = reader.getString("url"); - - // collecting data - } -} catch (Exception e) { - log.error("Failed to read data", e); -} - -// put business logic outside of the reading block to release http connection asap. -``` - -### query(String sqlQuery, Map<String, Object> queryParams, QuerySettings settings) - -Sends `sqlQuery` as is. Additionally will send query parameters so the server can compile the SQL expression. - -**Signatures** -```java -CompletableFuture query(String sqlQuery, Map queryParams, QuerySettings settings) -``` - -**Parameters** - -`sqlQuery` - sql expression with placeholders `{}`. - -`queryParams` - map of variables to complete the sql expression on server. - -`settings` - request settings. - -**Return value** - -Future of `QueryResponse` type - a result dataset and additional information like server side metrics. The Response object should be closed after consuming the dataset. - -**Examples** - -```java showLineNumbers - -// define parameters. They will be sent to the server along with the request. -Map queryParams = new HashMap<>(); -queryParams.put("param1", 2); - -try (QueryResponse response = - client.query("SELECT * FROM " + table + " WHERE col1 >= {param1:UInt32}", queryParams, new QuerySettings()).get()) { - - // Create a reader to access the data in a convenient way - ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(response); - - while (reader.hasNext()) { - reader.next(); // Read the next record from stream and parse it - - // reading data - } - -} catch (Exception e) { - log.error("Failed to read data", e); -} - -``` - -### queryAll(String sqlQuery) - -Queries a data in `RowBinaryWithNamesAndTypes` format. Returns the result as a collection. Read performance is the same as with the reader but more memory is required to hold the whole dataset. - -**Signatures** -```java -List queryAll(String sqlQuery) -``` - -**Parameters** - -`sqlQuery` - sql expression to query data from a server. - -**Return value** - -Complete dataset represented by a list of `GenericRecord` objects that provide access in row style for the result data. - -**Examples** - -```java showLineNumbers -try { - log.info("Reading whole table and process record by record"); - final String sql = "select * from " + TABLE_NAME + " where title <> ''"; - - // Read whole result set and process it record by record - client.queryAll(sql).forEach(row -> { - double id = row.getDouble("id"); - String title = row.getString("title"); - String url = row.getString("url"); - - log.info("id: {}, title: {}, url: {}", id, title, url); - }); -} catch (Exception e) { - log.error("Failed to read data", e); -} -``` - -### QuerySettings - -Configuration options for query operations. - -**Configuration methods** - -| Method | Description | -|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| -| `setQueryId(String queryId)` | Sets query ID that will be assigned to the operation. | -| `setFormat(ClickHouseFormat format)` | Sets response format. See `RowBinaryWithNamesAndTypes` for the full list. | -| `setMaxExecutionTime(Integer maxExecutionTime)` | Sets operation execution time on server. Will not affect read timeout. | -| `waitEndOfQuery(Boolean waitEndOfQuery)` | Requests the server to wait for the end of the query before sending a response. | -| `setUseServerTimeZone(Boolean useServerTimeZone)` | Server timezone (see client config) will be used to parse date/time types in the result of an operation. Default `false`. | -| `setUseTimeZone(String timeZone)` | Requests server to use `timeZone` for time conversion. See [session_timezone](/reference/settings/session-settings#session_timezone). | -| `serverSetting(String name, String value)` | Sets individual server settings for an operation. | -| `serverSetting(String name, Collection values)` | Sets individual server settings with multiple values for an operation. Items of the collection should be `String` values. | -| `setDBRoles(Collection dbRoles)` | Sets DB roles to be set before executing an operation. Items of the collection should be `String` values. | -| `setOption(String option, Object value)` | Sets a configuration option in raw format. This is not a server setting. | - -### QueryResponse - -Response object that holds result of query execution. It is only available if the client got a response from a server. - - -This object should be closed as soon as possible to release a connection because the connection cannot be re-used until all data of previous response is fully read. - - -| Method | Description | -|-------------------------------------|------------------------------------------------------------------------------------------------------| -| `ClickHouseFormat getFormat()` | Returns a format in which data in the response is encoded. | -| `InputStream getInputStream()` | Returns uncompressed byte stream of data in the specified format. | -| `OperationMetrics getMetrics()` | Returns object with operation metrics. | -| `String getQueryId()` | Returns query ID assigned for the operation by the application (through operation settings or by server). | -| `TimeZone getTimeZone()` | Returns timezone that should be used for handling Date/DateTime types in the response. | - -### Examples - -- Example code is available in [repo](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) -- Reference Spring Service [implementation](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - -## Common API - -### getTableSchema(String table) - -Fetches table schema for the `table`. - -**Signatures** - -```java -TableSchema getTableSchema(String table) -TableSchema getTableSchema(String table, String database) -``` - -**Parameters** - -`table` - table name for which schema data should be fetched. - -`database` - database where the target table is defined. - -**Return value** - -Returns a `TableSchema` object with list of table columns. - -### getTableSchemaFromQuery(String sql) - -Fetches schema from a SQL statement. - -**Signatures** - -```java -TableSchema getTableSchemaFromQuery(String sql) -``` - -**Parameters** - -`sql` - "SELECT" SQL statement which schema should be returned. - -**Return value** - -Returns a `TableSchema` object with columns matching the `sql` expression. - -### TableSchema - -### register(Class<?> clazz, TableSchema schema) - -Compiles serialization and deserialization layer for the Java Class to use for writing/reading data with `schema`. The method will create a serializer and deserializer for the pair getter/setter and corresponding column. -Column match is found by extracting its name from a method name. For example, `getFirstName` will be for the column `first_name` or `firstname`. - -**Signatures** - -```java -void register(Class clazz, TableSchema schema) -``` - -**Parameters** - -`clazz` - Class representing the POJO used to read/write data. - -`schema` - Data schema to use for matching with POJO properties. - -**Examples** - -```java showLineNumbers -client.register(ArticleViewEvent.class, client.getTableSchema(TABLE_NAME)); -``` - -## Usage Examples - -Complete examples code is stored in the repo in a 'example` [folder](https://github.com/ClickHouse/clickhouse-java/tree/main/examples): - -- [client-v2](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2) - main set of examples. -- [demo-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-service) - example of how to use the client in a Spring Boot application. -- [demo-kotlin-service](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/demo-kotlin-service) - example of how to use the client in Ktor (Kotlin) application. diff --git a/integrations/language-clients/java/date-time-guide.mdx b/integrations/language-clients/java/date-time-guide.mdx index 57b15c1d..1d964d61 100644 --- a/integrations/language-clients/java/date-time-guide.mdx +++ b/integrations/language-clients/java/date-time-guide.mdx @@ -102,7 +102,7 @@ Using `java.sql.Time` is limited to the `LocalTime` range. Internally, `java.sql - `toTime` always requires `Date`, `DateTime`, or another similar type. It does not accept strings. Related issue: https://github.com/ClickHouse/ClickHouse/issues/89896 -- It is aliased to [`toTimeWithFixedDate`](/reference/functions/regular-functions/date-time-functions#toTimeWithFixedDate). +- It is aliased to [`toTimeWithFixedDate`](/core/reference/functions/regular-functions/date-time-functions#toTimeWithFixedDate). - There is a timezone-related issue: https://github.com/ClickHouse/ClickHouse/pull/90310 @@ -120,7 +120,7 @@ String representation has complexities: - If no timezone is specified in the column definition and a string is passed on write, it will be converted from the server timezone to a UTC timestamp number. When a value is read from such a column, it will be converted from a UTC timestamp to a literal timestamp using the server or session timezone (a similar approach is applied to timestamp literals in expressions where the timezone is not defined explicitly). - If a timezone is specified in the column definition, then only that timezone is used in all string conversions. This contradicts the logic when no timezone is specified, so it requires a good understanding of how data is written for each column in the query. -- If a date is passed as a string in a format that includes a timezone, then a conversion function is needed. Usually [`parseDateTimeBestEffort`](/reference/functions/regular-functions/type-conversion-functions#parseDateTimeBestEffort) is used. +- If a date is passed as a string in a format that includes a timezone, then a conversion function is needed. Usually [`parseDateTimeBestEffort`](/core/reference/functions/regular-functions/type-conversion-functions#parseDateTimeBestEffort) is used. ### How the JDBC driver handles timestamps {#how-jdbc-driver-handles-timestamps} diff --git a/integrations/language-clients/java/index.mdx b/integrations/language-clients/java/index.mdx index be077674..3764b624 100644 --- a/integrations/language-clients/java/index.mdx +++ b/integrations/language-clients/java/index.mdx @@ -76,7 +76,7 @@ Java Client was developed far back in 2015. Its codebase became very hard to mai |Dynamic |✔ |✗ | |JSON |✔ |✗ | -[ClickHouse Data Types](/reference/data-types) +[ClickHouse Data Types](/core/reference/data-types) **Partial support** diff --git a/integrations/language-clients/java/jdbc.mdx b/integrations/language-clients/java/jdbc.mdx index 21d50d14..5c91d4c4 100644 --- a/integrations/language-clients/java/jdbc.mdx +++ b/integrations/language-clients/java/jdbc.mdx @@ -14,7 +14,7 @@ import WideTableWrapper from "/snippets/components/WideTableWrapper/WideTableWra - + `clickhouse-jdbc` implements the standard JDBC interface using the latest java client. @@ -799,15 +799,15 @@ try (Connection conn = DriverManager.getConnection(url, properties)) { - + -`clickhouse-jdbc` implements the standard JDBC interface. Being built on top of [clickhouse-client](/integrations/connectors/data-integrations/sql-clients/sql-console), it provides additional features like custom type mapping, transaction support, and standard synchronous `UPDATE` and `DELETE` statements, etc., so that it can be easily used with legacy applications and tools. +`clickhouse-jdbc` implements the standard JDBC interface. Being built on top of [clickhouse-client](/integrations/sql-clients/sql-console){/* MIGRATE: unknown slug */}, it provides additional features like custom type mapping, transaction support, and standard synchronous `UPDATE` and `DELETE` statements, etc., so that it can be easily used with legacy applications and tools. Latest JDBC (0.7.2) version uses Client-V1 -`clickhouse-jdbc` API is synchronous, and generally, it has more overheads(e.g., SQL parsing and type mapping/conversion, etc.). Consider [clickhouse-client](/integrations/connectors/data-integrations/sql-clients/sql-console) when performance is critical or if you prefer a more direct way to access ClickHouse. +`clickhouse-jdbc` API is synchronous, and generally, it has more overheads(e.g., SQL parsing and type mapping/conversion, etc.). Consider [clickhouse-client](/integrations/sql-clients/sql-console){/* MIGRATE: unknown slug */} when performance is critical or if you prefer a more direct way to access ClickHouse. ## Environment requirements {#v07-environment-requirements} @@ -977,7 +977,7 @@ try (PreparedStatement ps = conn.prepareStatement( ps.executeBatch(); // stream everything on-hand into ClickHouse } ``` -- [input function doc](/reference/functions/table-functions/input) whenever possible +- [input function doc](/core/reference/functions/table-functions/input) whenever possible ### Insert with placeholders {#insert-with-placeholders} diff --git a/integrations/language-clients/java/jdbc/v7.mdx b/integrations/language-clients/java/jdbc/v7.mdx deleted file mode 100644 index d1661dfd..00000000 --- a/integrations/language-clients/java/jdbc/v7.mdx +++ /dev/null @@ -1,389 +0,0 @@ ---- -title: "JDBC Driver" -sidebarTitle: "JDBC client v0.7x" ---- - -`clickhouse-jdbc` implements the standard JDBC interface. Being built on top of [clickhouse-client](/integrations/connectors/data-integrations/sql-clients/sql-console), it provides additional features like custom type mapping, transaction support, and standard synchronous `UPDATE` and `DELETE` statements, etc., so that it can be easily used with legacy applications and tools. - - -Latest JDBC (0.7.2) version uses Client-V1 - - -`clickhouse-jdbc` API is synchronous, and generally, it has more overheads(e.g., SQL parsing and type mapping/conversion, etc.). Consider [clickhouse-client](/integrations/connectors/data-integrations/sql-clients/sql-console) when performance is critical or if you prefer a more direct way to access ClickHouse. - -## Environment requirements - -- [OpenJDK](https://openjdk.java.net) version >= 8 - -### Setup - - - - - ```xml - {/* https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc */} - - com.clickhouse - clickhouse-jdbc - 0.7.2 - {/* use uber jar with all dependencies included, change classifier to http for smaller jar */} - shaded-all - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - // use uber jar with all dependencies included, change classifier to http for smaller jar - implementation("com.clickhouse:clickhouse-jdbc:0.7.2:shaded-all") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - // use uber jar with all dependencies included, change classifier to http for smaller jar - implementation 'com.clickhouse:clickhouse-jdbc:0.7.2:shaded-all' - ``` - - - - -Since version `0.5.0`, we are using Apache HTTP Client that's packed the Client. Since there is not a shared version of the package, you need to add a logger as a dependency. - - - - - ```xml - {/* https://mvnrepository.com/artifact/org.slf4j/slf4j-api */} - - org.slf4j - slf4j-api - 2.0.16 - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/org.slf4j/slf4j-api - implementation("org.slf4j:slf4j-api:2.0.16") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/org.slf4j/slf4j-api - implementation 'org.slf4j:slf4j-api:2.0.16' - ``` - - - - -## Configuration - -**Driver Class**: `com.clickhouse.jdbc.ClickHouseDriver` - -**URL Syntax**: `jdbc:(ch|clickhouse)[:]://endpoint1[,endpoint2,...][/][?param1=value1¶m2=value2]`, for example: - -- `jdbc:ch://localhost` is same as `jdbc:clickhouse:http://localhost:8123` -- `jdbc:ch:https://localhost` is same as `jdbc:clickhouse:http://localhost:8443?ssl=true&sslmode=STRICT` -- `jdbc:ch:grpc://localhost` is same as `jdbc:clickhouse:grpc://localhost:9100` - -**Connection Properties**: - -| Property | Default | Description | -| ------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `continueBatchOnError` | `false` | Whether to continue batch processing when error occurred | -| `createDatabaseIfNotExist` | `false` | Whether to create database if it does not exist | -| `custom_http_headers` | | comma separated custom http headers, for example: `User-Agent=client1,X-Gateway-Id=123` | -| `custom_http_params` | | comma separated custom http query parameters, for example: `extremes=0,max_result_rows=100` | -| `nullAsDefault` | `0` | `0` - treat null value as is and throw exception when inserting null into non-nullable column; `1` - treat null value as is and disable null-check for inserting; `2` - replace null to default value of corresponding data type for both query and insert | -| `jdbcCompliance` | `true` | Whether to support standard synchronous UPDATE/DELETE and fake transaction | -| `typeMappings` | | Customize mapping between ClickHouse data type and Java class, which will affect result of both [`getColumnType()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSetMetaData.html#getColumnType-int-) and [`getObject(Class<>?>`)](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-java.lang.String-java.lang.Class-). For example: `UInt128=java.lang.String,UInt256=java.lang.String` | -| `wrapperObject` | `false` | Whether [`getObject()`](https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html#getObject-int-) should return java.sql.Array / java.sql.Struct for Array / Tuple. | - -Note: please refer to [JDBC specific configuration](https://github.com/ClickHouse/clickhouse-java/blob/main/clickhouse-jdbc/src/main/java/com/clickhouse/jdbc/JdbcConfig.java) for more. - -## Supported data types - -JDBC Driver supports same data formats as client library does. - - -- AggregatedFunction - :warning: does not support `SELECT * FROM table ...` -- Decimal - `SET output_format_decimal_trailing_zeros=1` in 21.9+ for consistency -- Enum - can be treated as both string and integer -- UInt64 - mapped to `long` (in client-v1) - - -## Creating Connection - -```java -String url = "jdbc:ch://my-server/system"; // use http protocol and port 8123 by default - -Properties properties = new Properties(); - -ClickHouseDataSource dataSource = new ClickHouseDataSource(url, properties); -try (Connection conn = dataSource.getConnection("default", "password"); - Statement stmt = conn.createStatement()) { -} -``` - -## Simple Statement - -```java showLineNumbers - -try (Connection conn = dataSource.getConnection(...); - Statement stmt = conn.createStatement()) { - ResultSet rs = stmt.executeQuery("select * from numbers(50000)"); - while(rs.next()) { - // ... - } -} -``` - -## Insert - - -- Use `PreparedStatement` instead of `Statement` - - -It's easier to use but slower performance compare to input function (see below): - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("insert into mytable(* except (description))")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.addBatch(); // parameters will be write into buffered stream immediately in binary format - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` - -### With input table function - -An option with great performance characteristics: - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement( - "insert into mytable select col1, col2 from input('col1 String, col2 DateTime64(3), col3 Int32')")) { - // The column definition will be parsed so the driver knows there are 3 parameters: col1, col2 and col3 - ps.setString(1, "test"); // col1 - ps.setObject(2, LocalDateTime.now()); // col2, setTimestamp is slow and not recommended - ps.setInt(3, 123); // col3 - ps.addBatch(); // parameters will be write into buffered stream immediately in binary format - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` -- [input function doc](/reference/functions/table-functions/input) whenever possible - -### Insert with placeholders - -This option is recommended only for small inserts because it would require a long SQL expression (that will be parsed on client side and it will consume CPU & Memory): - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("insert into mytable values(trim(?),?,?)")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.setString(3, null); // description - ps.addBatch(); // append parameters to the query - ... - ps.executeBatch(); // issue the composed query: insert into mytable values(...)(...)...(...) -} -``` - -## Handling DateTime and time zones - -Please to use `java.time.LocalDateTime` or `java.time.OffsetDateTime` instead of `java.sql.Timestamp`, and `java.time.LocalDate` instead of `java.sql.Date`. - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("select date_time from mytable where date_time > ?")) { - ps.setObject(2, LocalDateTime.now()); - ResultSet rs = ps.executeQuery(); - while(rs.next()) { - LocalDateTime dateTime = (LocalDateTime) rs.getObject(1); - } - ... -} -``` - -## Handling `AggregateFunction` - - -As of now, only `groupBitmap` is supported. - - -```java showLineNumbers -// batch insert using input function -try (ClickHouseConnection conn = newConnection(props); - Statement s = conn.createStatement(); - PreparedStatement stmt = conn.prepareStatement( - "insert into test_batch_input select id, name, value from input('id Int32, name Nullable(String), desc Nullable(String), value AggregateFunction(groupBitmap, UInt32)')")) { - s.execute("drop table if exists test_batch_input;" - + "create table test_batch_input(id Int32, name Nullable(String), value AggregateFunction(groupBitmap, UInt32))engine=Memory"); - Object[][] objs = new Object[][] { - new Object[] { 1, "a", "aaaaa", ClickHouseBitmap.wrap(1, 2, 3, 4, 5) }, - new Object[] { 2, "b", null, ClickHouseBitmap.wrap(6, 7, 8, 9, 10) }, - new Object[] { 3, null, "33333", ClickHouseBitmap.wrap(11, 12, 13) } - }; - for (Object[] v : objs) { - stmt.setInt(1, (int) v[0]); - stmt.setString(2, (String) v[1]); - stmt.setString(3, (String) v[2]); - stmt.setObject(4, v[3]); - stmt.addBatch(); - } - int[] results = stmt.executeBatch(); - ... -} - -// use bitmap as query parameter -try (PreparedStatement stmt = conn.prepareStatement( - "SELECT bitmapContains(my_bitmap, toUInt32(1)) as v1, bitmapContains(my_bitmap, toUInt32(2)) as v2 from {tt 'ext_table'}")) { - stmt.setObject(1, ClickHouseExternalTable.builder().name("ext_table") - .columns("my_bitmap AggregateFunction(groupBitmap,UInt32)").format(ClickHouseFormat.RowBinary) - .content(new ByteArrayInputStream(ClickHouseBitmap.wrap(1, 3, 5).toBytes())) - .asTempTable() - .build()); - ResultSet rs = stmt.executeQuery(); - Assert.assertTrue(rs.next()); - Assert.assertEquals(rs.getInt(1), 1); - Assert.assertEquals(rs.getInt(2), 0); - Assert.assertFalse(rs.next()); -} -``` - -
    - -## Configuring HTTP library - -The ClickHouse JDBC connector supports three HTTP libraries: [`HttpClient`](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html), [`HttpURLConnection`](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/HttpURLConnection.html), and [Apache `HttpClient`](https://hc.apache.org/httpcomponents-client-5.2.x/). - - -`HttpClient` is only supported in JDK 11 or above. - - -The JDBC driver uses `HttpClient` by default. You can change the HTTP library used by the ClickHouse JDBC connector by setting the following property: - -```java -properties.setProperty("http_connection_provider", "APACHE_HTTP_CLIENT"); -``` - -Here is a full list of the corresponding values: - -| Property Value | HTTP Library | -|---------------------|---------------------| -| HTTP_CLIENT | `HttpClient` | -| HTTP_URL_CONNECTION | `HttpURLConnection` | -| APACHE_HTTP_CLIENT | Apache `HttpClient` | - -
    - -## Connect to ClickHouse with SSL - -To establish a secure JDBC connection to ClickHouse using SSL, you need to configure your JDBC properties to include SSL parameters. This typically involves specifying SSL properties such as `sslmode` and `sslrootcert` in your JDBC URL or Properties object. - -## SSL Properties - -| Name | Default Value | Optional Values | Description | -| ------------------ | ------------- | --------------- |----------------------------------------------------------------------------------| -| `ssl` | false | true, false | Whether to enable SSL/TLS for the connection | -| `sslmode` | strict | strict, none | Whether to verify SSL/TLS certificate | -| `sslrootcert` | | | Path to SSL/TLS root certificates | -| `sslcert` | | | Path to SSL/TLS certificate | -| `sslkey` | | | RSA key in PKCS#8 format | -| `key_store_type` | | JKS, PKCS12 | Specifies the type or format of the `KeyStore`/`TrustStore` file | -| `trust_store` | | | Path to the `TrustStore` file | -| `key_store_password` | | | Password needed to access the `KeyStore` file specified in the `KeyStore` config | - -These properties ensure that your Java application communicates with the ClickHouse server over an encrypted connection, enhancing data security during transmission. - -```java showLineNumbers - String url = "jdbc:ch://your-server:8443/system"; - - Properties properties = new Properties(); - properties.setProperty("ssl", "true"); - properties.setProperty("sslmode", "strict"); // NONE to trust all servers; STRICT for trusted only - properties.setProperty("sslrootcert", "/mine.crt"); - try (Connection con = DriverManager - .getConnection(url, properties)) { - - try (PreparedStatement stmt = con.prepareStatement( - - // place your code here - - } - } -``` - -## Resolving JDBC Timeout on Large Inserts - -When performing large inserts in ClickHouse with long execution times, you may encounter JDBC timeout errors like: - -```plaintext -Caused by: java.sql.SQLException: Read timed out, server myHostname [uri=https://hostname.aws.clickhouse.cloud:8443] -``` - -These errors can disrupt the data insertion process and affect system stability. To address this issue you need to adjust a few timeout settings in the client's OS. - -### Mac OS - -On Mac OS, the following settings can be adjusted to resolve the issue: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 - -### Linux - -On Linux, the equivalent settings alone may not resolve the issue. Additional steps are required due to the differences in how Linux handles socket keep-alive settings. Follow these steps: - -1. Adjust the following Linux kernel parameters in `/etc/sysctl.conf` or a related configuration file: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 -- `net.ipv4.tcp_keepalive_intvl`: 75 -- `net.ipv4.tcp_keepalive_probes`: 9 -- `net.ipv4.tcp_keepalive_time`: 60 (You may consider lowering this value from the default 300 seconds) - -2. After modifying the kernel parameters, apply the changes by running the following command: - -```shell -sudo sysctl -p - ``` - -After Setting those settings, you need to ensure that your client enables the Keep Alive option on the socket: - -```java -properties.setProperty("socket_keepalive", "true"); -``` - - -Currently, you must use Apache HTTP Client library when setting the socket keep-alive, as the other two HTTP client libraries supported by `clickhouse-java` do not allow setting socket options. For a detailed guide, see [Configuring HTTP library](/integrations/language-clients/java/jdbc#configuring-http-library). - - -Alternatively, you can add equivalent parameters to the JDBC URL. - -The default socket and connection timeout for the JDBC driver is 30 seconds. The timeout can be increased to support large data insert operations. Use the `options` method on `ClickHouseClient` together with the `SOCKET_TIMEOUT` and `CONNECTION_TIMEOUT` options as defined by `ClickHouseClientOption`: - -```java showLineNumbers -final int MS_12H = 12 * 60 * 60 * 1000; // 12 h in ms -final String sql = "insert into table_a (c1, c2, c3) select c1, c2, c3 from table_b;"; - -try (ClickHouseClient client = ClickHouseClient.newInstance(ClickHouseProtocol.HTTP)) { - client.read(servers).write() - .option(ClickHouseClientOption.SOCKET_TIMEOUT, MS_12H) - .option(ClickHouseClientOption.CONNECTION_TIMEOUT, MS_12H) - .query(sql) - .executeAndWait(); -} -``` \ No newline at end of file diff --git a/integrations/language-clients/java/jdbc/v8.mdx b/integrations/language-clients/java/jdbc/v8.mdx deleted file mode 100644 index 858305d2..00000000 --- a/integrations/language-clients/java/jdbc/v8.mdx +++ /dev/null @@ -1,227 +0,0 @@ ---- -title: "JDBC Driver" -sidebarTitle: "JDBC client v0.8x" ---- - - -`clickhouse-jdbc` implements the standard JDBC interface using the latest java client. -We recommend using the latest java client directly if performance/direct access is critical. - - -## Changes from 0.7.x -In 0.8 we tried to make the driver more strictly follow the JDBC specification, so there are some removed features that may affect you: - -| Old Feature | Notes | -|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Transaction Support | Early versions of the driver only **simulated** transaction support, which could have unexpected results. | -| Response Column Renaming | `ResultSet` was mutable - for efficiency sake they're now read-only | -| Multi-Statement SQL | Multi-statement support was only **simulated**, now it strictly follows 1:1 | -| Named Parameters | Not part of the JDBC spec | -| Stream-based `PreparedStatement` | Early version of the driver allowed for non-jdbc usage of `PreparedStatement` - if you desire such options, we recommend looking at the [Java Client](/integrations/language-clients/java/client) and its [examples](https://github.com/ClickHouse/clickhouse-java/tree/main/examples/client-v2). | - - -`Date` is stored without timezone, while `DateTime` is stored with timezone. This can lead to unexpected results if you're not careful. - - -## Environment requirements - -- [OpenJDK](https://openjdk.java.net) version >= 8 - -### Setup - - - - - ```xml - {/* https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc */} - - com.clickhouse - clickhouse-jdbc - 0.9.1 - shaded-all - - ``` - - - - - ```kotlin - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - implementation("com.clickhouse:clickhouse-jdbc:0.9.1:shaded-all") - ``` - - - - ```groovy - // https://mvnrepository.com/artifact/com.clickhouse/clickhouse-jdbc - implementation 'com.clickhouse:clickhouse-jdbc:0.9.1:shaded-all' - ``` - - - - -## Configuration - -**Driver Class**: `com.clickhouse.jdbc.ClickHouseDriver` - -**URL Syntax**: `jdbc:(ch|clickhouse)[:]://endpoint1[,endpoint2,...][/][?param1=value1¶m2=value2]`, for example: - -- `jdbc:clickhouse:http://localhost:8123` -- `jdbc:clickhouse:https://localhost:8443?ssl=true` - -**Connection Properties**: - -Beyond standard JDBC properties, the driver supports the ClickHouse-specific properties offered by the underlying [java client](/integrations/language-clients/java/client). -Where possible methods will return an `SQLFeatureNotSupportedException` if the feature is not supported. Other custom properties include: - -| Property | Default | Description | -|----------------------------------|---------|----------------------------------------------------------------| -| `disable_frameworks_detection` | `true` | Disable frameworks detection for User-Agent | -| `jdbc_ignore_unsupported_values` | `false` | Suppresses `SQLFeatureNotSupportedException` | -| `clickhouse.jdbc.v1` | `false` | Use older JDBC implementation instead of new JDBC | -| `default_query_settings` | `null` | Allows passing of default query settings with query operations | -| `jdbc_resultset_auto_close` | `true` | Automatically closes `ResultSet` when `Statement` is closed | -| `beta.row_binary_for_simple_insert` | `false` | Use `PreparedStatement` implementation based on `RowBinary` writer. Works only for `INSERT INTO ... VALUES` queries. | - -## Supported data types - -JDBC Driver supports the same data formats as the underlying [java client](/integrations/language-clients/java/client). - -### Handling Dates, Times, and Timezones -`java.sql.Date`, `java.sql.Time`, and `java.sql.Timestamp` can complicate how Timezones are calculated - though they're of course supported, -you may want to consider using the [java.time](https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html) package. `ZonedDateTime` and -`OffsetDateTime` are both great replacements for java.sql.Timestamp, java.sql.Date, and java.sql.Time. - -## Creating Connection - -```java -String url = "jdbc:ch://my-server:8123/system"; - -Properties properties = new Properties(); -DataSource dataSource = new DataSource(url, properties);//DataSource or DriverManager are the main entry points -try (Connection conn = dataSource.getConnection()) { -... // do something with the connection -``` - -## Supplying Credentials and Settings - -```java showLineNumbers -String url = "jdbc:ch://localhost:8123?jdbc_ignore_unsupported_values=true&socket_timeout=10"; - -Properties info = new Properties(); -info.put("user", "default"); -info.put("password", "password"); -info.put("database", "some_db"); - -//Creating a connection with DataSource -DataSource dataSource = new DataSource(url, info); -try (Connection conn = dataSource.getConnection()) { -... // do something with the connection -} - -//Alternate approach using the DriverManager -try (Connection conn = DriverManager.getConnection(url, info)) { -... // do something with the connection -} -``` - -## Simple Statement - -```java showLineNumbers - -try (Connection conn = dataSource.getConnection(...); - Statement stmt = conn.createStatement()) { - ResultSet rs = stmt.executeQuery("select * from numbers(50000)"); - while(rs.next()) { - // ... - } -} -``` - -## Insert - -```java showLineNumbers -try (PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable VALUES (?, ?)")) { - ps.setString(1, "test"); // id - ps.setObject(2, LocalDateTime.now()); // timestamp - ps.addBatch(); - ... - ps.executeBatch(); // stream everything on-hand into ClickHouse -} -``` - -## `HikariCP` - -```java showLineNumbers -// connection pooling won't help much in terms of performance, -// because the underlying implementation has its own pool. -// for example: HttpURLConnection has a pool for sockets -HikariConfig poolConfig = new HikariConfig(); -poolConfig.setConnectionTimeout(5000L); -poolConfig.setMaximumPoolSize(20); -poolConfig.setMaxLifetime(300_000L); -poolConfig.setDataSource(new ClickHouseDataSource(url, properties)); - -try (HikariDataSource ds = new HikariDataSource(poolConfig); - Connection conn = ds.getConnection(); - Statement s = conn.createStatement(); - ResultSet rs = s.executeQuery("SELECT * FROM system.numbers LIMIT 3")) { - while (rs.next()) { - // handle row - log.info("Integer: {}, String: {}", rs.getInt(1), rs.getString(1));//Same column but different types - } -} -``` - -## More Information -For more information, see our [GitHub repository](https://github.com/ClickHouse/clickhouse-java) and [Java Client documentation](/integrations/language-clients/java/client). - -## Troubleshooting -### Logging -The driver uses [slf4j](https://www.slf4j.org/) for logging, and will use the first available implementation on the `classpath`. - -### Resolving JDBC Timeout on Large Inserts - -When performing large inserts in ClickHouse with long execution times, you may encounter JDBC timeout errors like: - -```plaintext -Caused by: java.sql.SQLException: Read timed out, server myHostname [uri=https://hostname.aws.clickhouse.cloud:8443] -``` -These errors can disrupt the data insertion process and affect system stability. To address this issue you may need to adjust a few timeout settings in the client's OS. - -#### Mac OS - -On Mac OS, the following settings can be adjusted to resolve the issue: - -- `net.inet.tcp.keepidle`: 60000 -- `net.inet.tcp.keepintvl`: 45000 -- `net.inet.tcp.keepinit`: 45000 -- `net.inet.tcp.keepcnt`: 8 -- `net.inet.tcp.always_keepalive`: 1 - -#### Linux - -On Linux, the equivalent settings alone may not resolve the issue. Additional steps are required due to the differences in how Linux handles socket keep-alive settings. Follow these steps: - -1. Adjust the following Linux kernel parameters in `/etc/sysctl.conf` or a related configuration file: - - - `net.inet.tcp.keepidle`: 60000 - - `net.inet.tcp.keepintvl`: 45000 - - `net.inet.tcp.keepinit`: 45000 - - `net.inet.tcp.keepcnt`: 8 - - `net.inet.tcp.always_keepalive`: 1 - - `net.ipv4.tcp_keepalive_intvl`: 75 - - `net.ipv4.tcp_keepalive_probes`: 9 - - `net.ipv4.tcp_keepalive_time`: 60 (You may consider lowering this value from the default 300 seconds) - -2. After modifying the kernel parameters, apply the changes by running the following command: - -```shell -sudo sysctl -p -``` - -After Setting those settings, you need to ensure that your client enables the Keep Alive option on the socket: - -```java -properties.setProperty("socket_keepalive", "true"); -``` diff --git a/integrations/language-clients/js.mdx b/integrations/language-clients/js.mdx index 8cf6282c..4439b998 100644 --- a/integrations/language-clients/js.mdx +++ b/integrations/language-clients/js.mdx @@ -134,7 +134,7 @@ When creating a client instance, the following connection settings can be adjust | **session_id**?: string | Optional ClickHouse Session ID to send with every request. | - | - | | **keep_alive**?: `{ **enabled**?: boolean }` | Enabled by default in both Node.js and Web versions. | - | - | | **http_headers**?: `Record` | Additional HTTP headers for outgoing ClickHouse requests. | - | [Reverse proxy with authentication docs](/integrations/language-clients/js#reverse-proxy-with-authentication) | -| **roles**?: string \| string[] | ClickHouse role names to attach to the outgoing requests. | - | [Using roles with the HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http#setting-role-with-query-parameters) | +| **roles**?: string \| string[] | ClickHouse role names to attach to the outgoing requests. | - | [Using roles with the HTTP interface](/core/concepts/features/interfaces/http#setting-role-with-query-parameters) | #### Node.js-specific configuration parameters {#nodejs-specific-configuration-parameters} @@ -231,7 +231,7 @@ See also: [Keep-Alive configuration](/integrations/language-clients/js#keep-aliv ### Query ID {#query-id} Every method that sends a query or a statement (`command`, `exec`, `insert`, `select`) will provide `query_id` in the result. This unique identifier is assigned by the client per query, and might be useful to fetch the data from `system.query_log`, -if it is enabled in the [server configuration](/reference/settings/server-settings/settings), or cancel long-running queries (see [the example](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/node/troubleshooting/cancel_query.ts)). If necessary, `query_id` can be overridden by the user in `command`/`query`/`exec`/`insert` methods params. +if it is enabled in the [server configuration](/core/reference/settings/server-settings/settings), or cancel long-running queries (see [the example](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/node/troubleshooting/cancel_query.ts)). If necessary, `query_id` can be overridden by the user in `command`/`query`/`exec`/`insert` methods params. If you're overriding the `query_id` parameter, you need to ensure its uniqueness for every call. A random UUID is a good choice. @@ -299,7 +299,7 @@ You should start consuming the `ResultSet` as soon as possible, as it holds the Alternatively, if it's too large to fit into memory at once, you can call the `stream` method, and process the data in the streaming mode. Each of the response chunks will be transformed into a relatively small arrays of rows instead (the size of this array depends on the size of a particular chunk the client receives from the server, as it may vary, and the size of an individual row), one chunk at a time. -Please refer to the list of the [supported data formats](/integrations/language-clients/js#supported-data-formats) to determine what the best format is for streaming in your case. For example, if you want to stream JSON objects, you could choose [JSONEachRow](/reference/formats/JSON/JSONEachRow), and each row will be parsed as a JS object, or, perhaps, a more compact [JSONCompactColumns](/reference/formats/JSON/JSONCompactColumns) format that will result in each row being a compact array of values. See also: [streaming files](/integrations/language-clients/js#streaming-files-nodejs-only). +Please refer to the list of the [supported data formats](/integrations/language-clients/js#supported-data-formats) to determine what the best format is for streaming in your case. For example, if you want to stream JSON objects, you could choose [JSONEachRow](/core/reference/formats/JSON/JSONEachRow), and each row will be parsed as a JS object, or, perhaps, a more compact [JSONCompactColumns](/core/reference/formats/JSON/JSONCompactColumns) format that will result in each row being a compact array of values. See also: [streaming files](/integrations/language-clients/js#streaming-files-nodejs-only). :::important If the `ResultSet` or its stream isn't fully consumed, it will be destroyed after the `request_timeout` period of inactivity. @@ -454,7 +454,7 @@ If the insert statement was sent to the server, the `executed` flag will be `tru It can work with either a `Stream.Readable` or a plain `Array`, depending on the [data format](/integrations/language-clients/js#supported-data-formats) specified to the `insert` method. See also this section about the [file streaming](/integrations/language-clients/js#streaming-files-nodejs-only). -Insert method is supposed to be awaited; however, it is possible to specify an input stream and await the `insert` operation later, only when the stream is completed (which will also resolve the `insert` promise). This could potentially be useful for event listeners and similar scenarios, but the error handling might be non-trivial with a lot of edge cases on the client side. Instead, consider using [async inserts](/concepts/operations/insert/asyncinserts) as illustrated in [this example](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/node/performance/async_insert_without_waiting.ts). +Insert method is supposed to be awaited; however, it is possible to specify an input stream and await the `insert` operation later, only when the stream is completed (which will also resolve the `insert` promise). This could potentially be useful for event listeners and similar scenarios, but the error handling might be non-trivial with a lot of edge cases on the client side. Instead, consider using [async inserts](/core/concepts/features/operations/insert/asyncinserts) as illustrated in [this example](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/node/performance/async_insert_without_waiting.ts). If you have a custom INSERT statement that is difficult to model with this method, consider using the [command method](/integrations/language-clients/js#command-method). @@ -785,11 +785,11 @@ If you specify `format` as one from the JSON family of formats (`JSONEachRow`, ` Data provided in the "raw" text formats (`CSV`, `TabSeparated` and `CustomSeparated` families) are sent over the wire without additional transformations. -There might be confusion between JSON as a general format and [ClickHouse JSON format](/reference/formats/JSON/JSON). +There might be confusion between JSON as a general format and [ClickHouse JSON format](/core/reference/formats/JSON/JSON). -The client supports streaming JSON objects with formats such as [JSONEachRow](/reference/formats/JSON/JSONEachRow) (see the table overview for other streaming-friendly formats; see also the `select_streaming_` [examples in the client repository](https://github.com/ClickHouse/clickhouse-js/tree/main/examples/node)). +The client supports streaming JSON objects with formats such as [JSONEachRow](/core/reference/formats/JSON/JSONEachRow) (see the table overview for other streaming-friendly formats; see also the `select_streaming_` [examples in the client repository](https://github.com/ClickHouse/clickhouse-js/tree/main/examples/node)). -It's only that formats like [ClickHouse JSON](/reference/formats/JSON/JSON) and a few others are represented as a single object in the response and can't be streamed by the client. +It's only that formats like [ClickHouse JSON](/core/reference/formats/JSON/JSON) and a few others are represented as a single object in the response and can't be streamed by the client. | Format | Input (array) | Input (object) | Input/Output (Stream) | Output (JSON) | Output (text) | @@ -826,7 +826,7 @@ For Parquet, the main use case for selects likely will be writing the resulting `JSONEachRowWithProgress` is an output-only format that supports progress reporting in the stream. See [this example](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/node/performance/select_json_each_row_with_progress.ts) for more details. The entire list of ClickHouse input and output formats is available -[here](/reference/formats). +[here](/core/reference/formats). ## Supported ClickHouse data types {#supported-clickhouse-data-types} @@ -868,7 +868,7 @@ The related JS type is relevant for any `JSON*` formats except the ones that rep | Time/Time64 | ✔️ | string | The entire list of supported ClickHouse formats is available -[here](/reference/data-types). +[here](/core/reference/data-types). See also: @@ -949,7 +949,7 @@ Though the server can accept it as a number, it is returned as a string in `JSON integer overflow as max values for these types are bigger than `Number.MAX_SAFE_INTEGER`. This behavior, however, can be modified -with [`output_format_json_quote_64bit_integers` setting](/reference/settings/formats#output_format_json_quote_64bit_integers) +with [`output_format_json_quote_64bit_integers` setting](/core/reference/settings/formats#output_format_json_quote_64bit_integers) . **Example:** Adjust the JSON output format for 64-bit numbers. @@ -975,7 +975,7 @@ expect(await resultSet.json()).toEqual([ { number: 0 } ]) ## ClickHouse settings {#clickhouse-settings} -The client can adjust ClickHouse behavior via [settings](/reference/settings/session-settings) +The client can adjust ClickHouse behavior via [settings](/core/reference/settings/session-settings) mechanism. The settings can be set on the client instance level so that they will be applied to every request sent to the ClickHouse: @@ -1018,7 +1018,7 @@ the following format: where: - `name` — Placeholder identifier. -- `data_type` - [Data type](/reference/data-types) of the app parameter value. +- `data_type` - [Data type](/core/reference/data-types) of the app parameter value. **Example:**: Query with parameters. [Source code](https://github.com/ClickHouse/clickhouse-js/blob/main/examples/node/coding/query_with_parameter_binding.ts) @@ -1252,7 +1252,7 @@ If you're experiencing `socket hang up` errors even when using the latest versio ### Read-only users {#read-only-users} -When using the client with a [readonly=1 user](/concepts/features/configuration/settings/permissions-for-queries#readonly), the response compression can't be enabled, as it requires `enable_http_compression` setting. The following configuration will result in an error: +When using the client with a [readonly=1 user](/core/concepts/features/configuration/settings/permissions-for-queries#readonly), the response compression can't be enabled, as it requires `enable_http_compression` setting. The following configuration will result in an error: ```ts const client = createClient({ @@ -1381,7 +1381,7 @@ With certificates _and_ a custom _HTTPS_ Agent, it is likely necessary to disabl ## Tips for performance optimizations {#tips-for-performance-optimizations} -- To reduce application memory consumption, consider using streams for large inserts (e.g. from files) and selects when applicable. For event listeners and similar use cases, [async inserts](/concepts/operations/insert/asyncinserts) could be another good option, allowing to minimize, or even completely avoid batching on the client side. Async insert examples are available in the [client repository](https://github.com/ClickHouse/clickhouse-js/tree/main/examples/node), with `async_insert_` as the file name prefix. +- To reduce application memory consumption, consider using streams for large inserts (e.g. from files) and selects when applicable. For event listeners and similar use cases, [async inserts](/core/concepts/features/operations/insert/asyncinserts) could be another good option, allowing to minimize, or even completely avoid batching on the client side. Async insert examples are available in the [client repository](https://github.com/ClickHouse/clickhouse-js/tree/main/examples/node), with `async_insert_` as the file name prefix. - The client doesn't enable request or response compression by default. However, when selecting or inserting large datasets, you could consider enabling it via `ClickHouseClientConfigOptions.compression` (either for just `request` or `response`, or both). - Compression has significant performance penalty. Enabling it for `request` or `response` will negatively impact the speed of selects or inserts, respectively, but will reduce the amount of network traffic transferred by the application. diff --git a/integrations/language-clients/navigation.json b/integrations/language-clients/navigation.json new file mode 100644 index 00000000..71389f8c --- /dev/null +++ b/integrations/language-clients/navigation.json @@ -0,0 +1,83 @@ +{ + "item": "Language clients", + "icon": "/images/icons/icon-language-clients.svg", + "groups": [ + { + "group": "Home", + "icon": "house", + "root": "integrations/language-clients/index", + "pages": [] + }, + { + "group": "JavaScript", + "icon": "/images/integrations/logos/node_js.svg", + "root": "integrations/language-clients/js", + "pages": [] + }, + { + "group": "Python", + "icon": "/images/integrations/logos/notext-python.svg", + "root": "integrations/language-clients/python/index", + "expanded": true, + "pages": [ + "integrations/language-clients/python/driver-api", + "integrations/language-clients/python/additional-options", + "integrations/language-clients/python/advanced-querying", + "integrations/language-clients/python/advanced-inserting", + "integrations/language-clients/python/advanced-usage", + "integrations/language-clients/python/sqlalchemy" + ] + }, + { + "group": "Go", + "icon": "/images/integrations/logos/golang.svg", + "root": "integrations/language-clients/go/index", + "expanded": true, + "pages": [ + "integrations/language-clients/go/clickhouse-api", + "integrations/language-clients/go/configuration", + "integrations/language-clients/go/config-reference", + "integrations/language-clients/go/data-types", + "integrations/language-clients/go/database-sql-api" + ] + }, + { + "group": "Java", + "expanded": true, + "icon": "/images/integrations/logos/java.svg", + "root": "integrations/language-clients/java/index", + "pages": [ + "integrations/language-clients/java/client", + "integrations/language-clients/java/jdbc", + "integrations/language-clients/java/r2dbc", + "integrations/language-clients/java/date-time-guide" + ] + }, + { + "group": "C#", + "icon": "/images/integrations/logos/csharp.svg", + "root": "integrations/language-clients/csharp/overview", + "pages": [] + }, + { + "group": "Rust", + "icon": "/images/integrations/logos/rust.png", + "root": "integrations/language-clients/rust", + "pages": [] + }, + { + "group": "C++", + "icon": "/images/integrations/logos/logo_cpp.svg", + "root": "integrations/language-clients/cpp", + "pages": [] + }, + { + "group": "Third-party clients", + "icon": "users", + "pages": [ + "integrations/language-clients/third-party/moose-olap", + "integrations/language-clients/third-party/client-libraries" + ] + } + ] +} diff --git a/integrations/language-clients/python/advanced-querying.mdx b/integrations/language-clients/python/advanced-querying.mdx index d52cf791..824ae88d 100644 --- a/integrations/language-clients/python/advanced-querying.mdx +++ b/integrations/language-clients/python/advanced-querying.mdx @@ -45,8 +45,8 @@ Each of these methods returns a `ContextStream` object that must be opened via a ### Data blocks {#data-blocks} ClickHouse Connect processes all data from the primary `query` method as a stream of blocks received from the ClickHouse server. These blocks are transmitted in the custom "Native" format to and from ClickHouse. A "block" is simply a sequence of columns of binary data, where each column contains an equal number of data values of the specified data type. (As a columnar database, ClickHouse stores this data in a similar form.) The size of a block returned from a query is governed by two user settings that can be set at several levels (user profile, user, session, or query). They're: -- [max_block_size](/reference/settings/session-settings#max_block_size) -- Limit on the size of the block in rows. Default 65536. -- [preferred_block_size_bytes](/reference/settings/session-settings#preferred_block_size_bytes) -- Soft limit on the size of the block in bytes. Default 1,000,0000. +- [max_block_size](/core/reference/settings/session-settings#max_block_size) -- Limit on the size of the block in rows. Default 65536. +- [preferred_block_size_bytes](/core/reference/settings/session-settings#preferred_block_size_bytes) -- Soft limit on the size of the block in bytes. Default 1,000,0000. Regardless of the `preferred_block_size_setting`, each block will never be more than `max_block_size` rows. Depending on the type of query, the actual blocks returned can be of any size. For example, queries to a distributed table covering many shards may contain smaller blocks retrieved directly from each shard. @@ -408,14 +408,14 @@ client.query('SELECT device_id, dev_address, gw_address from devices', column_fo ## External data {#external-data} -ClickHouse queries can accept external data in any ClickHouse format. This binary data is sent along with the query string to be used to process the data. Details of the External Data feature are [here](/reference/engines/table-engines/special/external-data). The client `query*` methods accept an optional `external_data` parameter to take advantage of this feature. The value for the `external_data` parameter should be a `clickhouse_connect.driver.external.ExternalData` object. The constructor for that object accepts the following arguments: +ClickHouse queries can accept external data in any ClickHouse format. This binary data is sent along with the query string to be used to process the data. Details of the External Data feature are [here](/core/reference/engines/table-engines/special/external-data). The client `query*` methods accept an optional `external_data` parameter to take advantage of this feature. The value for the `external_data` parameter should be a `clickhouse_connect.driver.external.ExternalData` object. The constructor for that object accepts the following arguments: | Name | Type | Description | |-----------|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------| | file_path | str | Path to a file on the local system path to read the external data from. Either `file_path` or `data` is required | | file_name | str | The name of the external data "file". If not provided, will be determined from the `file_path` (without extensions) | | data | bytes | The external data in binary form (instead of being read from a file). Either `data` or `file_path` is required | -| fmt | str | The ClickHouse [Input Format](/reference/formats) of the data. Defaults to `TSV` | +| fmt | str | The ClickHouse [Input Format](/core/reference/formats) of the data. Defaults to `TSV` | | types | str or seq of str | A list of column data types in the external data. If a string, types should be separated by commas. Either `types` or `structure` is required | | structure | str or seq of str | A list of column name + data type in the data (see examples). Either `structure` or `types` is required | | mime_type | str | Optional MIME type of the file data. Currently ClickHouse ignores this HTTP subheader | diff --git a/integrations/language-clients/python/advanced-usage.mdx b/integrations/language-clients/python/advanced-usage.mdx index b7749144..09dccaa5 100644 --- a/integrations/language-clients/python/advanced-usage.mdx +++ b/integrations/language-clients/python/advanced-usage.mdx @@ -71,7 +71,7 @@ The code above yields an `output.csv` file with the following content: 4,"4" ``` -Similarly, you could save data in [TabSeparated](/reference/formats/TabSeparated/TabSeparated) and other formats. See [Formats for Input and Output Data](/reference/formats) for an overview of all available format options. +Similarly, you could save data in [TabSeparated](/core/reference/formats/TabSeparated/TabSeparated) and other formats. See [Formats for Input and Output Data](/core/reference/formats) for an overview of all available format options. ## Multithreaded, multiprocess, and async/event driven use cases {#multithreaded-multiprocess-and-asyncevent-driven-use-cases} @@ -113,8 +113,8 @@ See also: [run_async example](https://github.com/ClickHouse/clickhouse-connect/b ## Managing ClickHouse session IDs {#managing-clickhouse-session-ids} Each ClickHouse query occurs within the context of a ClickHouse "session". Sessions are currently used for two purposes: -- To associate specific ClickHouse settings with multiple queries (see the [user settings](/reference/settings/session-settings)). The ClickHouse `SET` command is used to change the settings for the scope of a user session. -- To track [temporary tables.](/reference/statements/create/table#temporary-tables) +- To associate specific ClickHouse settings with multiple queries (see the [user settings](/core/reference/settings/session-settings)). The ClickHouse `SET` command is used to change the settings for the scope of a user session. +- To track [temporary tables.](/core/reference/statements/create/table#temporary-tables) By default, each query executed with a ClickHouse Connect `Client` instance uses that client's session ID. `SET` statements and temporary tables work as expected when using a single client. However, the ClickHouse server doesn't allow concurrent queries within the same session (the client will raise a `ProgrammingError` if attempted). For applications that execute concurrent queries, use one of the following patterns: 1. Create a separate `Client` instance for each thread/process/event handler that needs session isolation. This preserves per-client session state (temporary tables and `SET` values). diff --git a/integrations/language-clients/python/driver-api.mdx b/integrations/language-clients/python/driver-api.mdx index 4e3f534d..ae7155ba 100644 --- a/integrations/language-clients/python/driver-api.mdx +++ b/integrations/language-clients/python/driver-api.mdx @@ -72,7 +72,7 @@ Finally, the `settings` argument to `get_client` is used to pass additional Clic | wait_end_of_query | Buffers the entire response on the ClickHouse server. This setting is required to return summary information, and is set automatically on non-streaming queries. | | role | ClickHouse role to be used for the session. Valid transport setting that can be included in query context. | -For other ClickHouse settings that can be sent with each query, see [the ClickHouse documentation](/reference/settings/session-settings). +For other ClickHouse settings that can be sent with each query, see [the ClickHouse documentation](/core/reference/settings/session-settings). ### Client creation examples {#client-creation-examples} @@ -249,7 +249,7 @@ ClickHouse Connect Client `query*` and `command` methods accept an optional `par #### Server-side binding {#server-side-binding} -ClickHouse supports [server side binding](/integrations/connectors/data-integrations/drivers-and-interfaces/client#cli-queries-with-parameters) for most query values, where the bound value is sent separate from the query as an HTTP query parameter. ClickHouse Connect will add the appropriate query parameters if it detects a binding expression of the form `{:}`. For server side binding, the `parameters` argument should be a Python dictionary. +ClickHouse supports [server side binding](/core/concepts/features/interfaces/client#cli-queries-with-parameters) for most query values, where the bound value is sent separate from the query as an HTTP query parameter. ClickHouse Connect will add the appropriate query parameters if it detects a binding expression of the form `{:}`. For server side binding, the `parameters` argument should be a Python dictionary. - Server-side binding with Python dictionary, DateTime value, and string value @@ -339,7 +339,7 @@ To bind DateTime64 arguments (ClickHouse types with sub-second precision) requir ### Settings argument {#settings-argument-1} -All the key ClickHouse Connect Client "insert" and "select" methods accept an optional `settings` keyword argument to pass ClickHouse server [user settings](/reference/settings/session-settings) for the included SQL statement. The `settings` argument should be a dictionary. Each item should be a ClickHouse setting name and its associated value. Note that values will be converted to strings when sent to the server as query parameters. +All the key ClickHouse Connect Client "insert" and "select" methods accept an optional `settings` keyword argument to pass ClickHouse server [user settings](/core/reference/settings/session-settings) for the included SQL statement. The `settings` argument should be a dictionary. Each item should be a ClickHouse setting name and its associated value. Note that values will be converted to strings when sent to the server as query parameters. As with client level settings, ClickHouse Connect will drop any settings that the server marks as *readonly*=*1*, with an associated log message. Settings that apply only to queries via the ClickHouse HTTP interface are always valid. Those settings are described under the `get_client` [API](#settings-argument). diff --git a/integrations/language-clients/rust.mdx b/integrations/language-clients/rust.mdx index fb836dea..56dcbe8b 100644 --- a/integrations/language-clients/rust.mdx +++ b/integrations/language-clients/rust.mdx @@ -16,8 +16,8 @@ The official Rust client for connecting to ClickHouse, originally developed by [ * Uses `serde` for encoding/decoding rows. * Supports `serde` attributes: `skip_serializing`, `skip_deserializing`, `rename`. -* Uses [`RowBinary`](/reference/formats/RowBinary/RowBinary) format over the HTTP transport. - * There are plans to switch to [`Native`](/reference/formats/Native) over TCP. +* Uses [`RowBinary`](/core/reference/formats/RowBinary/RowBinary) format over the HTTP transport. + * There are plans to switch to [`Native`](/core/reference/formats/Native) over TCP. * Supports TLS (via `native-tls` and `rustls-tls` features). * Supports compression and decompression (LZ4). * Provides APIs for selecting or inserting data, executing DDLs, and client-side batching. @@ -142,7 +142,7 @@ while let Some(row) = cursor.next().await? { .. } * Convenient `fetch_one::()` and `fetch_all::()` methods can be used to get a first row or all rows, correspondingly. * `sql::Identifier` can be used to bind table names. -NB: as the entire response is streamed, cursors can return an error even after producing some rows. If this happens in your use case, you could try `query(...).with_option("wait_end_of_query", "1")` in order to enable response buffering on the server-side. [More details](/integrations/connectors/data-integrations/drivers-and-interfaces/http#response-buffering). The `buffer_size` option can be useful, too. +NB: as the entire response is streamed, cursors can return an error even after producing some rows. If this happens in your use case, you could try `query(...).with_option("wait_end_of_query", "1")` in order to enable response buffering on the server-side. [More details](/core/concepts/features/interfaces/http#response-buffering). The `buffer_size` option can be useful, too. Use `wait_end_of_query` with caution when selecting rows, as it can will to higher memory consumption on the server side and will likely decrease the overall performance. @@ -172,7 +172,7 @@ insert.end().await?; ### Async insert (server-side batching) {#async-insert-server-side-batching} -You could use [ClickHouse asynchronous inserts](/concepts/operations/insert/asyncinserts) to avoid client-side batching of the incoming data. This can be done by simply providing the `async_insert` option to the `insert` method (or even to the `Client` instance itself, so that it will affect all the `insert` calls). +You could use [ClickHouse asynchronous inserts](/core/concepts/features/operations/insert/asyncinserts) to avoid client-side batching of the incoming data. This can be done by simply providing the `async_insert` option to the `insert` method (or even to the `Client` instance itself, so that it will affect all the `insert` calls). ```rust let client = Client::default() @@ -243,7 +243,7 @@ client ### ClickHouse settings {#clickhouse-settings} -You can apply various [ClickHouse settings](/reference/settings/session-settings) using the `with_option` method. For example: +You can apply various [ClickHouse settings](/core/reference/settings/session-settings) using the `with_option` method. For example: ```rust let numbers = client diff --git a/products/README.md b/products/README.md new file mode 100644 index 00000000..1bc5d5d5 --- /dev/null +++ b/products/README.md @@ -0,0 +1,32 @@ +# Products + +**What goes here:** Product-specific documentation for ClickHouse's deployment +offerings and managed/companion products. Each subdirectory is self-contained +and owns its own overview, getting started, guides, and reference material for +that product surface. + +**Audience:** Users working with a specific ClickHouse product. Content here +assumes the reader has chosen the product and wants details that apply to it +(billing, deployment topology, product-specific features, console/API +behavior). Content that applies to ClickHouse generally — concepts, query +patterns, SQL reference — belongs in `/core`, not here. + +**Subdirectories:** +- `cloud/` — ClickHouse Cloud (serverless managed service). +- `clickstack/` — ClickStack, the observability stack powered by ClickHouse. +- `bring-your-own-cloud/` — BYOC: ClickHouse Cloud running in the customer's + own cloud account. (Actually a deployment mode of Cloud, but separated here for simplicity) +- `clickhouse-private/` — ClickHouse Private: self-hosted, isolated deployment + on customer infrastructure. (Actually a deployment mode of Cloud, but separated here for simplicity) +- `kubernetes-operator/` — the ClickHouse Kubernetes operator for deploying + and managing clusters on Kubernetes. +- `managed-postgres/` — managed Postgres offering, natively integrated with + ClickHouse Cloud. +- `agentic-data-stack/` — the agentic analytics stack (ClickHouse + LibreChat + + Langfuse). +- `chdb/` — chDB, the in-process build of ClickHouse. + +If a page explains a ClickHouse engine, function, setting, or concept that +applies regardless of product, it belongs in `/core` (concepts, guides, or +reference). Only put a page here if it is meaningfully tied to the product — +its console, billing, deployment model, or product-only features. \ No newline at end of file diff --git a/products/agentic-data-stack/navigation.json b/products/agentic-data-stack/navigation.json new file mode 100644 index 00000000..5bddf3b3 --- /dev/null +++ b/products/agentic-data-stack/navigation.json @@ -0,0 +1,12 @@ +{ + "item": "Agentic Data Stack", + "icon": "/images/icons/icon-agentic-data-stack.svg", + "groups": [ + { + "group": "Overview", + "pages": [ + "products/agentic-data-stack/overview" + ] + } + ] +} diff --git a/products/bring-your-own-cloud/navigation.json b/products/bring-your-own-cloud/navigation.json new file mode 100644 index 00000000..ea341780 --- /dev/null +++ b/products/bring-your-own-cloud/navigation.json @@ -0,0 +1,58 @@ +{ + "group": "Bring Your Own Cloud", + "pages": [ + { + "group": "Overview", + "pages": [ + "products/bring-your-own-cloud/overview/overview", + "products/bring-your-own-cloud/overview/architecture" + ] + }, + { + "group": "Configuration", + "pages": [ + "products/bring-your-own-cloud/configuration/configurations", + "products/bring-your-own-cloud/configuration/connect", + "products/bring-your-own-cloud/configuration/operations" + ] + }, + { + "group": "Onboarding", + "pages": [ + "products/bring-your-own-cloud/onboarding/aws", + "products/bring-your-own-cloud/onboarding/standard", + { + "group": "Customization", + "pages": [ + "products/bring-your-own-cloud/onboarding/customization-aws", + "products/bring-your-own-cloud/onboarding/customization-gcp" + ] + }, + { + "group": "Network", + "root": "products/bring-your-own-cloud/onboarding/network", + "pages": [ + "products/bring-your-own-cloud/onboarding/network-aws", + "products/bring-your-own-cloud/onboarding/network-gcp" + ] + }, + "products/bring-your-own-cloud/onboarding/new-region", + "products/bring-your-own-cloud/onboarding/azure-private-preview" + ] + }, + { + "group": "Reference", + "pages": [ + "products/bring-your-own-cloud/reference/network-security", + "products/bring-your-own-cloud/reference/privilege", + "products/bring-your-own-cloud/reference/clickhouse-data-access", + "products/bring-your-own-cloud/reference/observability-aws", + "products/bring-your-own-cloud/reference/billable-aws-services", + "products/bring-your-own-cloud/reference/cost-model-aws", + "products/bring-your-own-cloud/reference/aws-service-limits", + "products/bring-your-own-cloud/reference/faq", + "products/bring-your-own-cloud/reference/faq-aws" + ] + } + ] +} diff --git a/products/bring-your-own-cloud/onboarding/azure-private-preview.mdx b/products/bring-your-own-cloud/onboarding/azure-private-preview.mdx index 2112f7d5..276de69e 100644 --- a/products/bring-your-own-cloud/onboarding/azure-private-preview.mdx +++ b/products/bring-your-own-cloud/onboarding/azure-private-preview.mdx @@ -18,7 +18,7 @@ BYOC on Azure is in **private preview**. To participate, [contact the ClickHouse BYOC on Azure lets you run ClickHouse in your own Azure subscription. Onboarding uses a Terraform module that provisions the cross-tenant authentication required for ClickHouse Cloud's provisioner to create and manage Azure resources in your tenant and subscription. -Other aspects of the deployment—such as [architecture](/products/cloud/guides/infrastructure/deployment-options/byoc/architecture), [network security](/products/bring-your-own-cloud/reference/network-security), [features](/products/cloud/guides/infrastructure/deployment-options/byoc/overview#features), and [connectivity](/products/bring-your-own-cloud/configuration/connect)—are broadly similar to the AWS and GCP BYOC offerings; refer to those pages for more details. +Other aspects of the deployment—such as [architecture](/products/bring-your-own-cloud/overview/architecture), [network security](/products/bring-your-own-cloud/reference/network-security), [features](/products/cloud/guides/infrastructure/deployment-options/byoc/overview#features), and [connectivity](/products/bring-your-own-cloud/configuration/connect)—are broadly similar to the AWS and GCP BYOC offerings; refer to those pages for more details. ## Prerequisites {#prerequisites} diff --git a/products/bring-your-own-cloud/reference/aws-service-limits.mdx b/products/bring-your-own-cloud/reference/aws-service-limits.mdx index b23dc980..f573bbcc 100644 --- a/products/bring-your-own-cloud/reference/aws-service-limits.mdx +++ b/products/bring-your-own-cloud/reference/aws-service-limits.mdx @@ -45,4 +45,4 @@ Before initiating BYOC onboarding, verify the following quotas in the AWS Region - [Billable AWS services](/products/bring-your-own-cloud/reference/billable-aws-services) — full inventory of AWS services BYOC provisions - [BYOC cost model (AWS)](/products/bring-your-own-cloud/reference/cost-model-aws) — how ClickHouse Cloud and AWS charges combine -- [BYOC architecture](/products/cloud/guides/infrastructure/deployment-options/byoc/architecture) — components ClickHouse Cloud deploys in your account +- [BYOC architecture](/products/bring-your-own-cloud/overview/architecture) — components ClickHouse Cloud deploys in your account diff --git a/products/bring-your-own-cloud/reference/billable-aws-services.mdx b/products/bring-your-own-cloud/reference/billable-aws-services.mdx index 788f9be2..0ac01d5f 100644 --- a/products/bring-your-own-cloud/reference/billable-aws-services.mdx +++ b/products/bring-your-own-cloud/reference/billable-aws-services.mdx @@ -52,6 +52,6 @@ See [AWS data transfer pricing](https://aws.amazon.com/ec2/pricing/on-demand/#Da ## Related {#related} -- [BYOC architecture](/products/cloud/guides/infrastructure/deployment-options/byoc/architecture) — components ClickHouse Cloud deploys in your account +- [BYOC architecture](/products/bring-your-own-cloud/overview/architecture) — components ClickHouse Cloud deploys in your account - [BYOC network security](/products/bring-your-own-cloud/reference/network-security) — how the data plane connects to ClickHouse Cloud - [BYOC privilege](/products/bring-your-own-cloud/reference/privilege) — IAM roles created during BYOC setup \ No newline at end of file diff --git a/products/bring-your-own-cloud/reference/cost-model-aws.mdx b/products/bring-your-own-cloud/reference/cost-model-aws.mdx index 5f0dfda6..318511d6 100644 --- a/products/bring-your-own-cloud/reference/cost-model-aws.mdx +++ b/products/bring-your-own-cloud/reference/cost-model-aws.mdx @@ -38,4 +38,4 @@ For current AWS list prices, see the per-service pricing pages on [aws.amazon.co - [Billable AWS services](/products/bring-your-own-cloud/reference/billable-aws-services) — full inventory of AWS services BYOC provisions - [AWS service limits and quotas](/products/bring-your-own-cloud/reference/aws-service-limits) — quotas to verify before deployment -- [BYOC architecture](/products/cloud/guides/infrastructure/deployment-options/byoc/architecture) — components ClickHouse Cloud deploys in your account \ No newline at end of file +- [BYOC architecture](/products/bring-your-own-cloud/overview/architecture) — components ClickHouse Cloud deploys in your account \ No newline at end of file diff --git a/products/chdb/getting-started.mdx b/products/chdb/getting-started.mdx index 4fc43d9c..4be1f825 100644 --- a/products/chdb/getting-started.mdx +++ b/products/chdb/getting-started.mdx @@ -48,7 +48,7 @@ pip install pandas pyarrow ## Querying a JSON file in S3 {#querying-a-json-file-in-s3} Let's now have a look at how to query a JSON file that's stored in an S3 bucket. -The [YouTube dislikes dataset](/get-started/sample-datasets/youtube-dislikes) contains more than 4 billion rows of dislikes on YouTube videos up to 2021. +The [YouTube dislikes dataset](/core/get-started/sample-datasets/youtube-dislikes) contains more than 4 billion rows of dislikes on YouTube videos up to 2021. We're going to work with one of the JSON files from that dataset. Import chdb: @@ -218,7 +218,7 @@ sess.query("CREATE DATABASE IF NOT EXISTS youtube") ``` Now we can create a `dislikes` table based on the schema from the JSON file, using the `CREATE...EMPTY AS` technique. -We'll use the [`schema_inference_make_columns_nullable`](/reference/settings/formats#schema_inference_make_columns_nullable) setting so that column types aren't all made `Nullable`. +We'll use the [`schema_inference_make_columns_nullable`](/core/reference/settings/formats#schema_inference_make_columns_nullable) setting so that column types aren't all made `Nullable`. ```python sess.query(f""" diff --git a/products/chdb/guides/clickhouse-local.mdx b/products/chdb/guides/clickhouse-local.mdx index 35a830df..c3778415 100644 --- a/products/chdb/guides/clickhouse-local.mdx +++ b/products/chdb/guides/clickhouse-local.mdx @@ -7,7 +7,7 @@ keywords: ['chdb', 'clickhouse-local'] doc_type: 'guide' --- -[clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local) is a CLI with an embedded version of ClickHouse. +[clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local) is a CLI with an embedded version of ClickHouse. It gives users the power of ClickHouse without having to install a server. In this guide, we will learn how to use a clickhouse-local database from chDB. @@ -41,7 +41,7 @@ ipython ## Installing clickhouse-local {#installing-clickhouse-local} -Downloading and installing clickhouse-local is the same as [downloading and installing ClickHouse](/get-started/setup/self-managed/install). +Downloading and installing clickhouse-local is the same as [downloading and installing ClickHouse](/core/get-started/setup/install). We can do this by running the following command: ```bash diff --git a/products/chdb/guides/querying-parquet.mdx b/products/chdb/guides/querying-parquet.mdx index 25323b94..8416d71d 100644 --- a/products/chdb/guides/querying-parquet.mdx +++ b/products/chdb/guides/querying-parquet.mdx @@ -42,14 +42,14 @@ You can also use the code in a Python script or in your favorite notebook. ## Exploring Parquet metadata {#exploring-parquet-metadata} -We're going to explore a Parquet file from the [Amazon reviews](/get-started/sample-datasets/amazon-reviews) dataset. +We're going to explore a Parquet file from the [Amazon reviews](/core/get-started/sample-datasets/amazon-reviews) dataset. But first, let's install `chDB`: ```python import chdb ``` -When querying Parquet files, we can use the [`ParquetMetadata`](/reference/formats/Parquet/ParquetMetadata) input format to have it return Parquet metadata rather than the content of the file. +When querying Parquet files, we can use the [`ParquetMetadata`](/core/reference/formats/Parquet/ParquetMetadata) input format to have it return Parquet metadata rather than the content of the file. Let's use the `DESCRIBE` clause to see the fields returned when we use this format: ```python diff --git a/products/chdb/guides/querying-s3-bucket.mdx b/products/chdb/guides/querying-s3-bucket.mdx index e0fee1ea..017b791d 100644 --- a/products/chdb/guides/querying-s3-bucket.mdx +++ b/products/chdb/guides/querying-s3-bucket.mdx @@ -42,14 +42,14 @@ You can also use the code in a Python script or in your favorite notebook. ## Listing files in an S3 bucket {#listing-files-in-an-s3-bucket} -Let's start by listing all the files in [an S3 bucket that contains Amazon reviews](/get-started/sample-datasets/amazon-reviews). -To do this, we can use the [`s3` table function](/reference/functions/table-functions/s3) and pass in the path to a file or a wildcard to a set of files. +Let's start by listing all the files in [an S3 bucket that contains Amazon reviews](/core/get-started/sample-datasets/amazon-reviews). +To do this, we can use the [`s3` table function](/core/reference/functions/table-functions/s3) and pass in the path to a file or a wildcard to a set of files. If you pass just the bucket name it will throw an exception. -We're also going to use the [`One`](/reference/formats/One) input format so that the file isn't parsed, instead a single row is returned per file and we can access the file via the `_file` virtual column and the path via the `_path` virtual column. +We're also going to use the [`One`](/core/reference/formats/One) input format so that the file isn't parsed, instead a single row is returned per file and we can access the file via the `_file` virtual column and the path via the `_path` virtual column. ```python import chdb @@ -195,4 +195,4 @@ LIMIT 10 This query won't work because it's a public bucket! -An alternative way is to used [named collections](/concepts/features/configuration/server-config/named-collections), but this approach isn't yet supported by chDB. +An alternative way is to used [named collections](/core/concepts/features/configuration/server-config/named-collections), but this approach isn't yet supported by chDB. diff --git a/products/chdb/index.mdx b/products/chdb/index.mdx index 1edfb00f..7a37f498 100644 --- a/products/chdb/index.mdx +++ b/products/chdb/index.mdx @@ -15,7 +15,7 @@ You can use it when you want to get the power of ClickHouse in a programming lan ## Key features {#key-features} - **In-process SQL OLAP Engine** - Powered by ClickHouse, no need to install ClickHouse server -- **Multiple data formats** - Input & Output support for Parquet, CSV, JSON, Arrow, ORC and [70+ more formats](/reference/formats) +- **Multiple data formats** - Input & Output support for Parquet, CSV, JSON, Arrow, ORC and [70+ more formats](/core/reference/formats) - **Minimized data copy** - From C++ to Python with [python memoryview](https://docs.python.org/3/c-api/memoryview.html) - **Rich Python Ecosystem Integration** - Native support for Pandas, Arrow, DB API 2.0, seamlessly fits into existing data science workflows - **Zero dependencies** - No need for external database installations diff --git a/products/chdb/navigation.json b/products/chdb/navigation.json new file mode 100644 index 00000000..094ffa8d --- /dev/null +++ b/products/chdb/navigation.json @@ -0,0 +1,85 @@ +{ + "item": "chDB", + "icon": "/images/icons/icon-chdb.svg", + "groups": [ + { + "group": "Get started", + "pages": [ + "products/chdb/index", + "products/chdb/getting-started" + ] + }, + { + "group": "Language integrations", + "root": "products/chdb/install/index", + "pages": [ + "products/chdb/install/python", + "products/chdb/install/nodejs", + "products/chdb/install/go", + "products/chdb/install/rust", + "products/chdb/install/bun", + "products/chdb/install/c" + ] + }, + { + "group": "DataStore", + "pages": [ + "products/chdb/datastore/index", + "products/chdb/datastore/quickstart", + "products/chdb/datastore/factory-methods", + "products/chdb/datastore/query-building", + "products/chdb/datastore/aggregation", + "products/chdb/datastore/accessors", + "products/chdb/datastore/io", + "products/chdb/datastore/execution-model", + "products/chdb/datastore/pandas-compat", + "products/chdb/datastore/class-reference" + ] + }, + { + "group": "Configuration", + "pages": [ + "products/chdb/configuration/index", + "products/chdb/configuration/execution-engine", + "products/chdb/configuration/function-config", + "products/chdb/configuration/performance-mode" + ] + }, + { + "group": "Debugging", + "pages": [ + "products/chdb/debugging/index", + "products/chdb/debugging/explain", + "products/chdb/debugging/logging", + "products/chdb/debugging/profiling" + ] + }, + { + "group": "Developer guides", + "root": "products/chdb/guides/index", + "pages": [ + "products/chdb/guides/jupysql", + "products/chdb/guides/querying-pandas", + "products/chdb/guides/querying-apache-arrow", + "products/chdb/guides/querying-s3-bucket", + "products/chdb/guides/querying-parquet", + "products/chdb/guides/query-remote-clickhouse", + "products/chdb/guides/clickhouse-local", + "products/chdb/guides/migration-from-pandas", + "products/chdb/guides/pandas-cookbook", + "products/chdb/guides/pandas-differences", + "products/chdb/guides/pandas-performance", + "products/chdb/guides/pandas-to-sql" + ] + }, + { + "group": "Technical reference", + "root": "products/chdb/reference/index", + "pages": [ + "products/chdb/reference/data-formats", + "products/chdb/reference/sql-reference", + "products/chdb/api/python" + ] + } + ] +} diff --git a/products/chdb/reference/data-formats.mdx b/products/chdb/reference/data-formats.mdx index 721677b9..2978a3cf 100644 --- a/products/chdb/reference/data-formats.mdx +++ b/products/chdb/reference/data-formats.mdx @@ -105,4 +105,4 @@ The supported data formats from ClickHouse are: | Markdown | ✗ | ✔ | | Form | ✔ | ✗ | -For further information and examples, see [ClickHouse formats for input and output data](/reference/formats). +For further information and examples, see [ClickHouse formats for input and output data](/core/reference/formats). diff --git a/products/chdb/reference/sql-reference.mdx b/products/chdb/reference/sql-reference.mdx index 067204ce..b7769b01 100644 --- a/products/chdb/reference/sql-reference.mdx +++ b/products/chdb/reference/sql-reference.mdx @@ -11,13 +11,13 @@ chdb supports the same SQL syntax, statements, engines and functions as ClickHou | Topic | |----------------------------| -| [SQL Syntax](/reference/syntax) | -| [Statements](/reference/statements) | -| [Table Engines](/reference/engines/table-engines) | -| [Database Engines](/reference/engines/database-engines) | -| [Regular Functions](/reference/functions) | -| [Aggregate Functions](/reference/functions/aggregate-functions) | -| [Table Functions](/reference/functions/table-functions) | -| [Window Functions](/reference/functions/window-functions) | +| [SQL Syntax](/core/reference/syntax) | +| [Statements](/core/reference/statements) | +| [Table Engines](/core/reference/engines/table-engines) | +| [Database Engines](/core/reference/engines/database-engines) | +| [Regular Functions](/core/reference/functions) | +| [Aggregate Functions](/core/reference/functions/aggregate-functions) | +| [Table Functions](/core/reference/functions/table-functions) | +| [Window Functions](/core/reference/functions/window-functions) | -For further information and examples, see the [ClickHouse SQL Reference](/reference/home). +For further information and examples, see the [ClickHouse SQL Reference](/core/reference/home). diff --git a/products/clickhouse-private/management/howto-guides.mdx b/products/clickhouse-private/management/howto-guides.mdx index 8ffd501b..7358b17d 100644 --- a/products/clickhouse-private/management/howto-guides.mdx +++ b/products/clickhouse-private/management/howto-guides.mdx @@ -65,11 +65,11 @@ The correct OpenSSL configuration for ClickHouse is generated by the Helm chart. > You'll need at least version `1.1.151` of the `onprem-clickHouse-cluster` Helm Chart in order to configure ClickHouse Server's `remote_servers` setting -This guide shows how to configure [`remote_servers`](/reference/settings/server-settings/settings#remote_servers) for use with Distributed tables and the cluster() function. This guide assumes the ClickHouse Cluster is named `default-xx-01` and there is a [secret](https://kubernetes.io/docs/concepts/configuration/secret/) named `default-xx-01-password` in the cluster namespace. +This guide shows how to configure [`remote_servers`](/core/reference/settings/server-settings/settings#remote_servers) for use with Distributed tables and the cluster() function. This guide assumes the ClickHouse Cluster is named `default-xx-01` and there is a [secret](https://kubernetes.io/docs/concepts/configuration/secret/) named `default-xx-01-password` in the cluster namespace. > Note: If you integrate with external secret stores, a similar approach can be followed using the [Kubernetes Secrets Store CSI Driver](https://github.com/kubernetes-sigs/secrets-store-csi-driver) to mount and [load the secret as an environment variable](https://secrets-store-csi-driver.sigs.k8s.io/topics/set-as-env-var). -The recommended approach uses [Kubernetes secrets with `secretKeyRef`](https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/#define-container-environment-variables-using-secret-data) to inject sensitive data as environment variables, then references those variables in the ClickHouse configuration using [`@from_env`](/concepts/features/configuration/server-config/configuration-files#from_env_zk). +The recommended approach uses [Kubernetes secrets with `secretKeyRef`](https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/#define-container-environment-variables-using-secret-data) to inject sensitive data as environment variables, then references those variables in the ClickHouse configuration using [`@from_env`](/core/concepts/features/configuration/server-config/configuration-files#from_env_zk). Example: diff --git a/products/clickhouse-private/management/operational-guide.mdx b/products/clickhouse-private/management/operational-guide.mdx index d4b46967..2019f8e8 100644 --- a/products/clickhouse-private/management/operational-guide.mdx +++ b/products/clickhouse-private/management/operational-guide.mdx @@ -34,7 +34,7 @@ Once the backup command above is issued, it will run in the background asynchron ##### Incremental Backups -You can also perform incremental backups where a previous backup is used as a starting point as to avoid recopying the same data on each backup. You can read more about it here: [https://clickhouse.com/docs/operations/backup#take-an-incremental-backup](/reference/engines/database-engines/backup#take-an-incremental-backup). +You can also perform incremental backups where a previous backup is used as a starting point as to avoid recopying the same data on each backup. You can read more about it here: [https://clickhouse.com/docs/operations/backup#take-an-incremental-backup](/core/reference/engines/database-engines/backup#take-an-incremental-backup). #### Restoring from a Backup @@ -663,7 +663,7 @@ WHERE readonly_start_time IS NOT NULL Typically, having such tables indicates that we ran `StorageSharedMergeTree::shutdown` but for some reason decided to keep the storage object and not destruct it. To confirm / investigate the reason for this, you can search the text logs with logger name as table name. Sometimes the problem is trivial and can be fixed with a simple replica restart. -First, try running [SYSTEM RESTART REPLICA](/reference/statements/system#restart-replica) for the affected tables. You can get the table names from the query mentioned above. +First, try running [SYSTEM RESTART REPLICA](/core/reference/statements/system#restart-replica) for the affected tables. You can get the table names from the query mentioned above. #### SMT. ClickHouseReplicaAlreadyExists diff --git a/products/clickhouse-private/navigation.json b/products/clickhouse-private/navigation.json new file mode 100644 index 00000000..712df0a6 --- /dev/null +++ b/products/clickhouse-private/navigation.json @@ -0,0 +1,31 @@ +{ + "group": "ClickHouse Private", + "pages": [ + { + "group": "Overview", + "pages": [ + "products/clickhouse-private/overview/overview", + "products/clickhouse-private/overview/versions", + "products/clickhouse-private/overview/breaking-changes" + ] + }, + { + "group": "Deployment", + "pages": [ + "products/clickhouse-private/deployment/aws", + "products/clickhouse-private/deployment/gcp", + "products/clickhouse-private/deployment/bare-metal", + "products/clickhouse-private/deployment/government" + ] + }, + { + "group": "Management", + "pages": [ + "products/clickhouse-private/management/operational-guide", + "products/clickhouse-private/management/api", + "products/clickhouse-private/management/howto-guides", + "products/clickhouse-private/management/faq" + ] + } + ] +} diff --git a/api-reference/hyperdx/hyperdx-openapi.json b/products/clickstack/api-reference/hyperdx-openapi.json similarity index 100% rename from api-reference/hyperdx/hyperdx-openapi.json rename to products/clickstack/api-reference/hyperdx-openapi.json diff --git a/products/clickstack/deployment/_snippets/_json_support.mdx b/products/clickstack/deployment/_snippets/_json_support.mdx index 95219cff..92f1acaa 100644 --- a/products/clickstack/deployment/_snippets/_json_support.mdx +++ b/products/clickstack/deployment/_snippets/_json_support.mdx @@ -1,5 +1,5 @@ ## Schema choice: Map vs JSON {#schema-choice-map-vs-json} -ClickStack stores attributes as `Map(LowCardinality(String), String)` columns by default. This is the recommended schema for observability workloads. Combined with [bucketed map serialization](/reference/data-types/map#bucketed-map-serialization) and text indexes on map keys and values, it provides selective lookups without the per-key ingest overhead of dynamic JSON subcolumns. +ClickStack stores attributes as `Map(LowCardinality(String), String)` columns by default. This is the recommended schema for observability workloads. Combined with [bucketed map serialization](/core/reference/data-types/map#bucketed-map-serialization) and text indexes on map keys and values, it provides selective lookups without the per-key ingest overhead of dynamic JSON subcolumns. A `JSON`-typed schema is available in beta for evaluation on workloads with a small, stable attribute key-set. It is **not recommended** as the default. See [Map vs JSON type](/products/clickstack/ingesting-data/schema/map-vs-json) for the full comparison and the env vars required to enable JSON support. diff --git a/products/clickstack/deployment/hyperdx-clickhouse-cloud.mdx b/products/clickstack/deployment/hyperdx-clickhouse-cloud.mdx deleted file mode 100644 index d39b7109..00000000 --- a/products/clickstack/deployment/hyperdx-clickhouse-cloud.mdx +++ /dev/null @@ -1,354 +0,0 @@ ---- -slug: /use-cases/observability/clickstack/deployment/hyperdx-clickhouse-cloud -title: 'ClickHouse Cloud' -description: 'Deploying ClickStack with ClickHouse Cloud' -doc_type: 'guide' -keywords: ['clickstack', 'deployment', 'setup', 'configuration', 'observability'] ---- - -import {PrivatePreviewBadge} from '/snippets/components/PrivatePreviewBadge/PrivatePreviewBadge.jsx' -import {BetaBadge} from '/snippets/components/BetaBadge/BetaBadge.jsx' - -[//]: # (import { TrackedLink } from '@site/src/components/GalaxyTrackedLink/GalaxyTrackedLink';) - - - - -This feature is in ClickHouse Cloud private preview. If your org is interested in getting priority access, -[join the waitlist](https://clickhouse.com/cloud/clickstack-private-preview). - -If you're new to ClickHouse Cloud, click [here](/products/cloud/getting-started/intro) to learn more or [sign up for a free trial](https://clickhouse.cloud/signUp) to get started. - - -This option is designed for users who are using ClickHouse Cloud. In this deployment pattern, both ClickHouse and HyperDX are hosted in ClickHouse Cloud, minimizing the number of components the user needs to self-host. - -As well as reducing infrastructure management, this deployment pattern ensures authentication is integrated with ClickHouse Cloud SSO/SAML. Unlike self-hosted deployments, there is also no need to provision a MongoDB instance to store application state — such as dashboards, saved searches, user settings, and alerts. - -In this mode, data ingestion is entirely left to the user. You can ingest data into ClickHouse Cloud using your own hosted OpenTelemetry collector, direct ingestion from client libraries, ClickHouse-native table engines (such as Kafka or S3), ETL pipelines, or ClickPipes — ClickHouse Cloud's managed ingestion service. This approach offers the simplest and most performant way to operate ClickStack. - -### Suitable for - -This deployment pattern is ideal in the following scenarios: - -1. You already have observability data in ClickHouse Cloud and wish to visualize it using HyperDX. -2. You operate a large observability deployment and need the dedicated performance and scalability of ClickStack with ClickHouse Cloud. -3. You're already using ClickHouse Cloud for analytics and want to instrument your application using ClickStack instrumentation libraries — sending data to the same cluster. In this case, we recommend using [warehouses](/products/cloud/features/infrastructure/warehouses) to isolate compute for observability workloads. - -## Deployment steps - -The following guide assumes you have already created a ClickHouse Cloud service. If you haven't created a service, follow the ["Create a ClickHouse service"](/get-started/setup/cloud#1-create-a-clickhouse-service) step from our Quick Start guide. - - - - -### Copy service credentials (optional) - -**If you have existing observability events you wish to visualize in your service, this step can be skipped.** - -Navigate to the main service listing and select the service you intend to observability events in for visualization in HyperDX. - -Press the `Connect` button from the navigation menu. A modal will open offering the credentials to your service with a set of instructions on how to connect via different interfaces and languages. Select `HTTPS` from the drop down and record the connection endpoint and credentials. - -ClickHouse Cloud connect - - - - -### Deploy Open Telemetry Collector (optional) - -**If you have existing observability events you wish to visualize in your service, this step can be skipped.** - -This step ensures tables are created with an Open Telemetry (OTel) schema, which can in turn be used seamlessly to create a data source in HyperDX. This also provides an OLTP endpoint which can be used for loading [sample datasets](/products/clickstack/example-datasets) and sending OTel events to ClickStack. - - -The following instructions use the standard distribution of the OTel collector, rather than the ClickStack distribution. The latter requires an OpAMP server for configuration. This is currently not supported in private preview. The configuration below replicates the version used by the ClickStack distribution of the collector, providing an OTLP endpoint to which events can be sent. - - -Download the configuration for the OTel collector: - -```bash -curl -O https://raw.githubusercontent.com/ClickHouse/clickhouse-docs/refs/heads/main/docs/use-cases/observability/clickstack/deployment/_snippets/otel-cloud-config.yaml -``` - - - - -```yaml -receivers: - otlp/hyperdx: - protocols: - grpc: - include_metadata: true - endpoint: '0.0.0.0:4317' - http: - cors: - allowed_origins: ['*'] - allowed_headers: ['*'] - include_metadata: true - endpoint: '0.0.0.0:4318' -processors: - transform: - log_statements: - - context: log - error_mode: ignore - statements: - # JSON parsing: Extends log attributes with the fields from structured log body content, either as an OTEL map or - # as a string containing JSON content. - - set(log.cache, ExtractPatterns(log.body, "(?P<0>(\\{.*\\}))")) where - IsString(log.body) - - merge_maps(log.attributes, ParseJSON(log.cache["0"]), "upsert") - where IsMap(log.cache) - - flatten(log.attributes) where IsMap(log.cache) - - merge_maps(log.attributes, log.body, "upsert") where IsMap(log.body) - - context: log - error_mode: ignore - conditions: - - severity_number == 0 and severity_text == "" - statements: - # Infer: extract the first log level keyword from the first 256 characters of the body - - set(log.cache["substr"], log.body.string) where Len(log.body.string) - < 256 - - set(log.cache["substr"], Substring(log.body.string, 0, 256)) where - Len(log.body.string) >= 256 - - set(log.cache, ExtractPatterns(log.cache["substr"], - "(?i)(?P<0>(alert|crit|emerg|fatal|error|err|warn|notice|debug|dbug|trace))")) - # Infer: detect FATAL - - set(log.severity_number, SEVERITY_NUMBER_FATAL) where - IsMatch(log.cache["0"], "(?i)(alert|crit|emerg|fatal)") - - set(log.severity_text, "fatal") where log.severity_number == - SEVERITY_NUMBER_FATAL - # Infer: detect ERROR - - set(log.severity_number, SEVERITY_NUMBER_ERROR) where - IsMatch(log.cache["0"], "(?i)(error|err)") - - set(log.severity_text, "error") where log.severity_number == - SEVERITY_NUMBER_ERROR - # Infer: detect WARN - - set(log.severity_number, SEVERITY_NUMBER_WARN) where - IsMatch(log.cache["0"], "(?i)(warn|notice)") - - set(log.severity_text, "warn") where log.severity_number == - SEVERITY_NUMBER_WARN - # Infer: detect DEBUG - - set(log.severity_number, SEVERITY_NUMBER_DEBUG) where - IsMatch(log.cache["0"], "(?i)(debug|dbug)") - - set(log.severity_text, "debug") where log.severity_number == - SEVERITY_NUMBER_DEBUG - # Infer: detect TRACE - - set(log.severity_number, SEVERITY_NUMBER_TRACE) where - IsMatch(log.cache["0"], "(?i)(trace)") - - set(log.severity_text, "trace") where log.severity_number == - SEVERITY_NUMBER_TRACE - # Infer: else - - set(log.severity_text, "info") where log.severity_number == 0 - - set(log.severity_number, SEVERITY_NUMBER_INFO) where log.severity_number == 0 - - context: log - error_mode: ignore - statements: - # Normalize the severity_text case - - set(log.severity_text, ConvertCase(log.severity_text, "lower")) - resourcedetection: - detectors: - - env - - system - - docker - timeout: 5s - override: false - batch: - memory_limiter: - # 80% of maximum memory up to 2G, adjust for low memory environments - limit_mib: 1500 - # 25% of limit up to 2G, adjust for low memory environments - spike_limit_mib: 512 - check_interval: 5s -connectors: - routing/logs: - default_pipelines: [logs/out-default] - error_mode: ignore - table: - - context: log - statement: route() where IsMatch(attributes["rr-web.event"], ".*") - pipelines: [logs/out-rrweb] -exporters: - debug: - verbosity: detailed - sampling_initial: 5 - sampling_thereafter: 200 - clickhouse/rrweb: - database: ${env:CLICKHOUSE_DATABASE} - endpoint: ${env:CLICKHOUSE_ENDPOINT} - password: ${env:CLICKHOUSE_PASSWORD} - username: ${env:CLICKHOUSE_USER} - ttl: 720h - logs_table_name: hyperdx_sessions - timeout: 5s - retry_on_failure: - enabled: true - initial_interval: 5s - max_interval: 30s - max_elapsed_time: 300s - clickhouse: - database: ${env:CLICKHOUSE_DATABASE} - endpoint: ${env:CLICKHOUSE_ENDPOINT} - password: ${env:CLICKHOUSE_PASSWORD} - username: ${env:CLICKHOUSE_USER} - ttl: 720h - timeout: 5s - retry_on_failure: - enabled: true - initial_interval: 5s - max_interval: 30s - max_elapsed_time: 300s -extensions: - health_check: - endpoint: :13133 -service: - pipelines: - traces: - receivers: [otlp/hyperdx] - processors: [memory_limiter, batch] - exporters: [clickhouse] - metrics: - receivers: [otlp/hyperdx] - processors: [memory_limiter, batch] - exporters: [clickhouse] - logs/in: - receivers: [otlp/hyperdx] - exporters: [routing/logs] - logs/out-default: - receivers: [routing/logs] - processors: [memory_limiter, transform, batch] - exporters: [clickhouse] - logs/out-rrweb: - receivers: [routing/logs] - processors: [memory_limiter, batch] - exporters: [clickhouse/rrweb] - -``` - - -Deploy the collector using the following Docker command, setting the respective environment variables to the connection settings recorded earlier and using the appropriate command below based on your operating system. - -```bash -# modify to your cloud endpoint -export CLICKHOUSE_ENDPOINT= -export CLICKHOUSE_PASSWORD= -# optionally modify -export CLICKHOUSE_DATABASE=default - -# osx -docker run --rm -it \ - -p 4317:4317 -p 4318:4318 \ - -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} \ - -e CLICKHOUSE_USER=default \ - -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} \ - -e CLICKHOUSE_DATABASE=${CLICKHOUSE_DATABASE} \ - --user 0:0 \ - -v "$(pwd)/otel-cloud-collector.yaml":/etc/otel/config.yaml \ - -v /var/log:/var/log:ro \ - -v /private/var/log:/private/var/log:ro \ - otel/opentelemetry-collector-contrib:latest \ - --config /etc/otel/config.yaml - -# linux command - -# docker run --network=host --rm -it \ -# -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} \ -# -e CLICKHOUSE_USER=default \ -# -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} \ -# -e CLICKHOUSE_DATABASE=${CLICKHOUSE_DATABASE} \ -# --user 0:0 \ -# -v "$(pwd)/otel-cloud-config.yaml":/etc/otel/config.yaml \ -# -v /var/log:/var/log:ro \ -# -v /private/var/log:/private/var/log:ro \ -# otel/opentelemetry-collector-contrib:latest \ -# --config /etc/otel/config.yaml -``` - - -In production, we recommend creating a dedicated user for ingestion, restricting access permissions to the database and tables needed. See "Database and ingestion user" for further details. - - - - - -### Connect to HyperDX - -Select your service, then select `HyperDX` from the left menu. - -ClickHouse Cloud HyperDX - -You will not need to create a user and will be automatically authenticated, before being prompted to create a datasource. - -For users looking to explore the HyperDX interface only, we recommend our [sample datasets](/products/clickstack/example-datasets), which use OTel data. - -ClickHouse Cloud HyperDX Landing - - - - -### User permissions - -Users accessing HyperDX are automatically authenticated using their ClickHouse Cloud console credentials. Access is controlled through SQL console permissions configured in the service settings. - -#### To configure user access - -1. Navigate to your service in the ClickHouse Cloud console -2. Go to **Settings** → **SQL Console Access** -3. Set the appropriate permission level for each user: - - **Service Admin → Full Access** - Required for enabling alerts - - **Service Read Only → Read Only** - Can view observability data and create dashboards - - **No access** - Cannot access HyperDX - -ClickHouse Cloud Read Only - - -To enable alerts, at least one user with **Service Admin** permissions (mapped to **Full Access** in the SQL Console Access dropdown) must log into HyperDX at least once. This provisions a dedicated user in the database that runs alert queries. - - - - - -### Create a data source - -HyperDX is Open Telemetry native but not Open Telemetry exclusive - users can use their own table schemas if desired. - -#### Using Open Telemetry schemas - -If you're using the above OTel collector to create the database and tables within ClickHouse, retain all default values within the create source model, completing the `Table` field with the value `otel_logs` - to create a logs source. All other settings should be auto-detected, allowing you to click `Save New Source`. - -ClickHouse Cloud HyperDX Datasource - -To create sources for traces and OTel metrics, users can select `Create New Source` from the top menu. - -HyperDX create new source - -From here, select the required source type followed by the appropriate table e.g. for traces, select the table `otel_traces`. All settings should be auto-detected. - -HyperDX create trace source - - -Note that different data sources in ClickStack—such as logs and traces—can be correlated with each other. To enable this, additional configuration is required on each source. For example, in the logs source, you can specify a corresponding trace source, and vice versa in the traces source. See ["Correlated sources"](/products/clickstack/config#correlated-sources) for further details. - - -#### Using custom schemas - -Users looking to connect HyperDX to an existing service with data can complete the database and table settings as required. Settings will be auto-detected if tables conform to the Open Telemetry schemas for ClickHouse. - -If using your own schema, we recommend creating a Logs source ensuring the required fields are specified - see ["Log source settings"](/products/clickstack/config#logs) for further details. - - - - - -## JSON type support - - - -ClickStack has beta support for the [JSON type](/reference/formats/JSON/JSON) from version `2.0.4`. - -For the benefits of this type, see [Benefits of the JSON type](/products/clickstack/ingesting-data/collector#benefits-json-type). - -In order to enable support for the JSON type, users must set the following environment variables: - -- `OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json'` - enables support in the OTel collector, ensuring schemas are created using the JSON type. - -Additionally, users should contact support@clickhouse.com to ensure JSON is enabled on both their ClickHouse Cloud service. diff --git a/products/clickstack/deployment/index.mdx b/products/clickstack/deployment/index.mdx deleted file mode 100644 index baa0deab..00000000 --- a/products/clickstack/deployment/index.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -slug: /use-cases/observability/clickstack/deployment -title: 'Deployment options' -description: 'Deploying ClickStack - The ClickHouse Observability Stack' -doc_type: 'reference' -keywords: ['ClickStack', 'observability'] ---- - -ClickStack provides multiple deployment options to suit various use cases. - -Each of the deployment options are summarized below. The [Getting Started Guide](/products/clickstack/getting-started) specifically demonstrates options 1 and 2. They're included here for completeness. - -| Name | Description | Suitable For | Limitations | Example Link | -|------------------|----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| -| Managed ClickStack | ClickHouse and ClickStack UI (HyperDX) hosted in ClickHouse Cloud. | Production deployments, demos, proof-of-concepts | None | [Managed](/products/clickstack/deployment/managed) | -| All-in-One | Single Docker container with all ClickStack components bundled. | Non-production deployments, demos, proof of concepts | Not recommended for production | [All-in-One](/products/clickstack/deployment/all-in-one) | -| Helm | Official Helm chart for Kubernetes-based deployments. Supports ClickHouse Cloud and production scaling. | Production deployments on Kubernetes | Kubernetes knowledge required, customization via Helm | [Helm](/products/clickstack/deployment/helm) | -| Docker Compose | Deploy each ClickStack component individually via Docker Compose. | Local testing, proof of concepts, production on single server, BYO ClickHouse | No fault tolerance, requires managing multiple containers | [Docker Compose](/products/clickstack/deployment/docker-compose) | -| HyperDX Only | Use HyperDX independently with your own ClickHouse and schema. | Existing ClickHouse users, custom event pipelines | No ClickHouse included, user must manage ingestion and schema | [HyperDX Only](/products/clickstack/deployment/hyperdx-only) | -| Local Mode Only | Runs entirely in the browser with local storage. No backend or persistence. | Demos, debugging, dev with HyperDX | No auth, no persistence, no alerting, single-user only | [Local Mode Only](/products/clickstack/deployment/local-mode-only) | diff --git a/products/clickstack/deployment/managed.mdx b/products/clickstack/deployment/managed.mdx index 1f4699fb..0bc9d041 100644 --- a/products/clickstack/deployment/managed.mdx +++ b/products/clickstack/deployment/managed.mdx @@ -114,7 +114,7 @@ If any OpenTelemetry tables exist already in your service, these will be auto-de **Auto-detection of datasources** -Auto-detection relies on the standard OpenTelemetry table schema provided by the ClickStack distribution of the OpenTelemetry collector. Sources are created for the database with the most complete set of tables. Additional tables can be added as [separate data sources](/products/clickstack/config#datasource-settings) if needed. +Auto-detection relies on the standard OpenTelemetry table schema provided by the ClickStack distribution of the OpenTelemetry collector. Sources are created for the database with the most complete set of tables. Additional tables can be added as [separate data sources](/products/clickstack/managing/config#datasource-settings) if needed. If auto detection is successful, you should be directed to the search view where you can immediately begin exploring your data. @@ -243,9 +243,9 @@ ENGINE = MergeTree ORDER BY (toStartOfMinute(time_local), status, remote_addr); ``` -Your table must align with the output schema produced by Vector. Adjust the schema as needed for your data, following the recommended [schema best practices](/concepts/best-practices/select-data-type). +Your table must align with the output schema produced by Vector. Adjust the schema as needed for your data, following the recommended [schema best practices](/core/concepts/best-practices/select-data-type). -We strongly recommend understanding how [Primary keys](/concepts/core-concepts/primary-indexes) work in ClickHouse and choosing an ordering key based on your access patterns. See the [ClickStack-specific](/products/clickstack/managing/performance-tuning#choosing-a-primary-key) guidance on choosing a primary key. +We strongly recommend understanding how [Primary keys](/core/concepts/core-concepts/primary-indexes) work in ClickHouse and choosing an ordering key based on your access patterns. See the [ClickStack-specific](/products/clickstack/managing/performance-tuning#choosing-a-primary-key) guidance on choosing a primary key. Once the table exists, copy the configuration snippet shown. Adjust the input to consume your existing pipelines, as well as the target table and database if required. Credentials should be pre-populated. @@ -286,7 +286,7 @@ We also recommend updating the `Default SELECT` to explicitly define which colum In the example above, a `Body` column doesn't exist in the data. Instead, it is defined using a SQL expression that reconstructs an Nginx log line from the available fields. -For other possible options, see the [configuration reference](/products/clickstack/config#hyperdx). +For other possible options, see the [configuration reference](/products/clickstack/managing/config#hyperdx). Once the source is configured, click "Save" and begin exploring your data. @@ -366,13 +366,13 @@ From here, select the required source type followed by the appropriate table e.g **Correlating sources** -Note that different data sources in ClickStack—such as logs and traces—can be correlated with each other. To enable this, additional configuration is required on each source. For example, in the logs source, you can specify a corresponding trace source, and vice versa in the traces source. See ["Correlated sources"](/products/clickstack/config#correlated-sources) for further details. +Note that different data sources in ClickStack—such as logs and traces—can be correlated with each other. To enable this, additional configuration is required on each source. For example, in the logs source, you can specify a corresponding trace source, and vice versa in the traces source. See ["Correlated sources"](/products/clickstack/managing/config#correlated-sources) for further details. #### Using custom schemas {#using-custom-schemas} Users looking to connect ClickStack to an existing service with data can complete the database and table settings as required. Settings will be auto-detected if tables conform to the OpenTelemetry schemas for ClickHouse. -If using your own schema, we recommend creating a Logs source ensuring the required fields are specified - see ["Log source settings"](/products/clickstack/config#logs) for further details. +If using your own schema, we recommend creating a Logs source ensuring the required fields are specified - see ["Log source settings"](/products/clickstack/managing/config#logs) for further details. diff --git a/products/clickstack/features/dashboards/overview.mdx b/products/clickstack/features/dashboards/overview.mdx index 3a6661af..f36295b0 100644 --- a/products/clickstack/features/dashboards/overview.mdx +++ b/products/clickstack/features/dashboards/overview.mdx @@ -134,7 +134,7 @@ Heatmap tiles plot the count of events falling into each (time, value) bucket as To add a heatmap tile: 1. Select `Add New Tile`. -2. Choose the `Heatmap` visualization type from the top menu. The data source dropdown only shows sources whose [source type is `Traces`](/products/clickstack/config#traces). Logs, metrics, and session sources are filtered out, since heatmaps need a span duration column that only traces sources provide. +2. Choose the `Heatmap` visualization type from the top menu. The data source dropdown only shows sources whose [source type is `Traces`](/products/clickstack/managing/config#traces). Logs, metrics, and session sources are filtered out, since heatmaps need a span duration column that only traces sources provide. 3. Pick any of your traces sources by name. The name itself is arbitrary, only the type matters. Once a source is selected, the heatmap pre-fills: @@ -278,7 +278,7 @@ This dashboard uses tabs to separate monitoring of **Selects**, **Inserts**, and **Required system table access** -This dashboard queries the ClickHouse [system tables](/reference/system-tables) to expose key metrics. The following grants are required: +This dashboard queries the ClickHouse [system tables](/core/reference/system-tables) to expose key metrics. The following grants are required: `GRANT SHOW COLUMNS, SELECT(CurrentMetric_MemoryTracking, CurrentMetric_S3Requests, ProfileEvent_OSCPUVirtualTimeMicroseconds, ProfileEvent_OSReadChars, ProfileEvent_OSWriteChars, ProfileEvent_S3GetObject, ProfileEvent_S3ListObjects, ProfileEvent_S3PutObject, ProfileEvent_S3UploadPart, event_time) ON system.metric_log` diff --git a/products/clickstack/features/dashboards/sql-visualizations.mdx b/products/clickstack/features/dashboards/sql-visualizations.mdx index 8719776c..e6aefb8d 100644 --- a/products/clickstack/features/dashboards/sql-visualizations.mdx +++ b/products/clickstack/features/dashboards/sql-visualizations.mdx @@ -28,7 +28,7 @@ From there: ## Query parameters {#query-parameters} -[Query parameters](/reference/syntax#defining-and-using-query-parameters) allow your SQL to reference the dashboard's current time range and granularity. They use the ClickHouse parameterized query syntax: `{paramName:Type}`. +[Query parameters](/core/reference/syntax#defining-and-using-query-parameters) allow your SQL to reference the dashboard's current time range and granularity. They use the ClickHouse parameterized query syntax: `{paramName:Type}`. ### Available parameters {#available-parameters} diff --git a/products/clickstack/getting-started/managed.mdx b/products/clickstack/getting-started/managed.mdx index 3743ea1b..2b47be6d 100644 --- a/products/clickstack/getting-started/managed.mdx +++ b/products/clickstack/getting-started/managed.mdx @@ -30,7 +30,7 @@ The easiest way to get started is by deploying **Managed ClickStack** on **Click ## Signup to ClickHouse Cloud {#signup-to-clickhouse-cloud} -To create a Managed ClickStack service in [ClickHouse Cloud](https://console.clickhouse.cloud) first complete the **first step** of the [ClickHouse Cloud quickstart guide](/get-started/setup/cloud). +To create a Managed ClickStack service in [ClickHouse Cloud](https://console.clickhouse.cloud) first complete the **first step** of the [ClickHouse Cloud quickstart guide](/core/get-started/setup/cloud). diff --git a/products/clickstack/home.mdx b/products/clickstack/home.mdx deleted file mode 100644 index 1d6882df..00000000 --- a/products/clickstack/home.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -mode: "custom" -max-toc-depth: 3 -slug: /clickstack ---- - -import {ClickStackAnimation} from '/snippets/components/ClickStackAnimation/ClickStackAnimation.jsx'; - - - -{/* Hero Section */} -
    -
    -

    Start building with ClickStack

    -

    The open-source observability stack for OpenTelemetry at scale

    - {/*

    Get started with:

    */} -
    - - -
    -
    -
    - -
    -
    diff --git a/products/clickstack/index.mdx b/products/clickstack/index.mdx index 78c98a2c..a11c1839 100644 --- a/products/clickstack/index.mdx +++ b/products/clickstack/index.mdx @@ -23,7 +23,7 @@ ClickStack can be deployed in two ways. With **ClickStack Open Source**, you run | [Sample Datasets](/products/clickstack/example-datasets) | Sample datasets and use cases | | [Architecture](/products/clickstack/architecture) | System architecture and components overview | | [Deployment](/products/clickstack/deployment) | Deployment guides and options | -| [Configuration](/products/clickstack/config) | Detailed configuration options and settings | +| [Configuration](/products/clickstack/managing/config) | Detailed configuration options and settings | | [Ingesting Data](/products/clickstack/ingesting-data) | Guidelines for ingesting data to ClickStack | | [Search](/products/clickstack/features/search) | How to search and query your observability data | | [Production](/products/clickstack/managing/production) | Best practices for production deployment | diff --git a/products/clickstack/ingesting-data/collector.mdx b/products/clickstack/ingesting-data/collector.mdx index c2d2b1cc..aabca299 100644 --- a/products/clickstack/ingesting-data/collector.mdx +++ b/products/clickstack/ingesting-data/collector.mdx @@ -288,7 +288,7 @@ OpenTelemetry supports the following processing and filtering features you can l - **Operators** - [Operators](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/pkg/stanza/docs/operators/README.md) provide the most basic unit of processing available at the receiver. Basic parsing is supported, allowing fields such as the Severity and Timestamp to be set. JSON and regex parsing are supported here along with event filtering and basic transformations. We recommend performing event filtering here. -We recommend users avoid doing excessive event processing using operators or [transform processors](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/transformprocessor/README.md). These can incur considerable memory and CPU overhead, especially JSON parsing. It is possible to do all processing in ClickHouse at insert time with materialized views and columns with some exceptions - specifically, context-aware enrichment e.g. adding of k8s metadata. For more details, see [Extracting structure with SQL](/guides/observability/build-your-own/schema-design#extracting-structure-with-sql). +We recommend users avoid doing excessive event processing using operators or [transform processors](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/transformprocessor/README.md). These can incur considerable memory and CPU overhead, especially JSON parsing. It is possible to do all processing in ClickHouse at insert time with materialized views and columns with some exceptions - specifically, context-aware enrichment e.g. adding of k8s metadata. For more details, see [Extracting structure with SQL](/core/guides/use-cases/observability/build-your-own/schema-design#extracting-structure-with-sql). ### Example {#example-processing} @@ -368,15 +368,15 @@ For this reason, the ClickStack distribution of the OTel collector uses the [bat Typically, users are forced to send smaller batches when the throughput of a collector is low, and yet they still expect data to reach ClickHouse within a minimum end-to-end latency. In this case, small batches are sent when the `timeout` of the batch processor expires. This can cause problems and is when asynchronous inserts are required. This issue is rare if you're sending data to the ClickStack collector acting as a Gateway - by acting as aggregators, they alleviate this problem - see [Collector roles](#collector-roles). -If large batches can't be guaranteed, you can delegate batching to ClickHouse using [Asynchronous Inserts](/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts). With asynchronous inserts, data is inserted into a buffer first and then written to the database storage later or asynchronously respectively. +If large batches can't be guaranteed, you can delegate batching to ClickHouse using [Asynchronous Inserts](/core/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts). With asynchronous inserts, data is inserted into a buffer first and then written to the database storage later or asynchronously respectively. -With [asynchronous inserts enabled](/concepts/operations/insert/asyncinserts#enabling-asynchronous-inserts), when ClickHouse ① receives an insert query, the query's data is ② immediately written into an in-memory buffer first. When ③ the next buffer flush takes place, the buffer's data is [sorted](/guides/cloud-oss/data-modelling/sparse-primary-indexes#data-is-stored-on-disk-ordered-by-primary-key-columns) and written as a part to the database storage. Note, that the data isn't searchable by queries before being flushed to the database storage; the buffer flush is [configurable](/concepts/operations/insert/asyncinserts). +With [asynchronous inserts enabled](/core/concepts/features/operations/insert/asyncinserts#enabling-asynchronous-inserts), when ClickHouse ① receives an insert query, the query's data is ② immediately written into an in-memory buffer first. When ③ the next buffer flush takes place, the buffer's data is [sorted](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#data-is-stored-on-disk-ordered-by-primary-key-columns) and written as a part to the database storage. Note, that the data isn't searchable by queries before being flushed to the database storage; the buffer flush is [configurable](/core/concepts/features/operations/insert/asyncinserts). To enable asynchronous inserts for the collector, add `async_insert=1` to the connection string. We recommend users use `wait_for_async_insert=1` (the default) to get delivery guarantees - see [here](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse) for further details. -Data from an async insert is inserted once the ClickHouse buffer is flushed. This occurs either after the [`async_insert_max_data_size`](/reference/settings/session-settings#async_insert_max_data_size) is exceeded or after [`async_insert_busy_timeout_ms`](/reference/settings/session-settings#async_insert_max_data_size) milliseconds since the first INSERT query. If the `async_insert_stale_timeout_ms` is set to a non-zero value, the data is inserted after `async_insert_stale_timeout_ms milliseconds` since the last query. You can tune these settings to control the end-to-end latency of their pipeline. Further settings that can be used to tune buffer flushing are documented [here](/reference/settings/session-settings#async_insert). Generally, defaults are appropriate. +Data from an async insert is inserted once the ClickHouse buffer is flushed. This occurs either after the [`async_insert_max_data_size`](/core/reference/settings/session-settings#async_insert_max_data_size) is exceeded or after [`async_insert_busy_timeout_ms`](/core/reference/settings/session-settings#async_insert_max_data_size) milliseconds since the first INSERT query. If the `async_insert_stale_timeout_ms` is set to a non-zero value, the data is inserted after `async_insert_stale_timeout_ms milliseconds` since the last query. You can tune these settings to control the end-to-end latency of their pipeline. Further settings that can be used to tune buffer flushing are documented [here](/core/reference/settings/session-settings#async_insert). Generally, defaults are appropriate. **Consider Adaptive Asynchronous Inserts** @@ -384,9 +384,9 @@ Data from an async insert is inserted once the ClickHouse buffer is flushed. Thi In cases where a low number of agents are in use, with low throughput but strict end-to-end latency requirements, [adaptive asynchronous inserts](https://clickhouse.com/blog/clickhouse-release-24-02#adaptive-asynchronous-inserts) may be useful. Generally, these aren't applicable to high throughput Observability use cases, as seen with ClickHouse. -Finally, the previous deduplication behavior associated with synchronous inserts into ClickHouse isn't enabled by default when using asynchronous inserts. If required, see the setting [`async_insert_deduplicate`](/reference/settings/session-settings#async_insert_deduplicate). +Finally, the previous deduplication behavior associated with synchronous inserts into ClickHouse isn't enabled by default when using asynchronous inserts. If required, see the setting [`async_insert_deduplicate`](/core/reference/settings/session-settings#async_insert_deduplicate). -Full details on configuring this feature can be found on this [docs page](/concepts/operations/insert/asyncinserts#enabling-asynchronous-inserts), or with a deep dive [blog post](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse). +Full details on configuring this feature can be found on this [docs page](/core/concepts/features/operations/insert/asyncinserts#enabling-asynchronous-inserts), or with a deep dive [blog post](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse). ## Scaling {#scaling} diff --git a/products/clickstack/ingesting-data/kubernetes.mdx b/products/clickstack/ingesting-data/kubernetes.mdx deleted file mode 100644 index 11be4c44..00000000 --- a/products/clickstack/ingesting-data/kubernetes.mdx +++ /dev/null @@ -1,305 +0,0 @@ ---- -slug: /use-cases/observability/clickstack/ingesting-data/kubernetes -description: 'Kubernetes integration for ClickStack - The ClickHouse Observability Stack' -title: 'Kubernetes' -doc_type: 'guide' -keywords: ['clickstack', 'kubernetes', 'logs', 'observability', 'container monitoring'] ---- - -ClickStack uses the OpenTelemetry (OTel) collector to collect logs, metrics, and Kubernetes events from Kubernetes clusters and forward them to ClickStack. We support the native OTel log format and require no additional vendor-specific configuration. - -This guide integrates the following: - -- **Logs** -- **Infra Metrics** - - -To send over application-level metrics or APM/traces, you'll need to add the corresponding language integration to your application as well. - - -The following guide assumes you have deployed a [ClickStack OTel collector as a gateway](/products/clickstack/ingesting-data/collector), secured with an ingestion API key. - -## Creating the OTel Helm chart configuration files - -To collect logs and metrics from both each node and the cluster itself, we'll need to deploy two separate OpenTelemetry collectors. One will be deployed as a DaemonSet to collect logs and metrics from each node, and the other will be deployed as a deployment to collect logs and metrics from the cluster itself. - -### Creating a API key secret - -Create a new Kubernetes secret with the [ingestion API Key](/products/clickstack/ingesting-data/opentelemetry#sending-otel-data) from HyperDX. This will be used by the components installed below to securely ingest into your ClickStack OTel collector: - -```shell -kubectl create secret generic hyperdx-secret \ ---from-literal=HYPERDX_API_KEY= \ -``` - -Additionally, create a config map with the location of your ClickStack OTel collector: - -```shell -kubectl create configmap -n=otel-demo otel-config-vars --from-literal=YOUR_OTEL_COLLECTOR_ENDPOINT= -``` - -### Creating the DaemonSet configuration - -The DaemonSet will collect logs and metrics from each node in the cluster but will not collect Kubernetes events or cluster-wide metrics. - -Download the DaemonSet manifest: - -```shell -curl -O https://raw.githubusercontent.com/ClickHouse/clickhouse-docs/refs/heads/main/docs/use-cases/observability/clickstack/example-datasets/_snippets/k8s_daemonset.yaml -``` - - -```yaml -# daemonset.yaml -mode: daemonset - -# Required to use the kubeletstats cpu/memory utilization metrics -clusterRole: - create: true - rules: - - apiGroups: - - '' - resources: - - nodes/proxy - verbs: - - get - -presets: - logsCollection: - enabled: true - hostMetrics: - enabled: true - # Configures the Kubernetes Processor to add Kubernetes metadata. - # Adds the k8sattributes processor to all the pipelines and adds the necessary rules to ClusterRole. - # More info: https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-attributes-processor - kubernetesAttributes: - enabled: true - # When enabled the processor will extra all labels for an associated pod and add them as resource attributes. - # The label's exact name will be the key. - extractAllPodLabels: true - # When enabled the processor will extra all annotations for an associated pod and add them as resource attributes. - # The annotation's exact name will be the key. - extractAllPodAnnotations: true - # Configures the collector to collect node, pod, and container metrics from the API server on a kubelet.. - # Adds the kubeletstats receiver to the metrics pipeline and adds the necessary rules to ClusterRole. - # More Info: https://opentelemetry.io/docs/kubernetes/collector/components/#kubeletstats-receiver - kubeletMetrics: - enabled: true - -extraEnvs: - - name: HYPERDX_API_KEY - valueFrom: - secretKeyRef: - name: hyperdx-secret - key: HYPERDX_API_KEY - optional: true - - name: YOUR_OTEL_COLLECTOR_ENDPOINT - valueFrom: - configMapKeyRef: - name: otel-config-vars - key: YOUR_OTEL_COLLECTOR_ENDPOINT - -config: - receivers: - # Configures additional kubelet metrics - kubeletstats: - collection_interval: 20s - auth_type: 'serviceAccount' - endpoint: '${env:K8S_NODE_NAME}:10250' - insecure_skip_verify: true - metrics: - k8s.pod.cpu_limit_utilization: - enabled: true - k8s.pod.cpu_request_utilization: - enabled: true - k8s.pod.memory_limit_utilization: - enabled: true - k8s.pod.memory_request_utilization: - enabled: true - k8s.pod.uptime: - enabled: true - k8s.node.uptime: - enabled: true - k8s.container.cpu_limit_utilization: - enabled: true - k8s.container.cpu_request_utilization: - enabled: true - k8s.container.memory_limit_utilization: - enabled: true - k8s.container.memory_request_utilization: - enabled: true - container.uptime: - enabled: true - - exporters: - otlphttp: - endpoint: "${env:YOUR_OTEL_COLLECTOR_ENDPOINT}" - headers: - authorization: "${env:HYPERDX_API_KEY}" - compression: gzip - - service: - pipelines: - logs: - exporters: - - otlphttp - metrics: - exporters: - - otlphttp -``` - - -### Creating the deployment configuration - -To collect Kubernetes events and cluster-wide metrics, we'll need to deploy a separate OpenTelemetry collector as a deployment. - -Download the deployment manifest: - -```shell -curl -O https://raw.githubusercontent.com/ClickHouse/clickhouse-docs/refs/heads/main/docs/use-cases/observability/clickstack/example-datasets/_snippets/k8s_deployment.yaml -``` - - - -```yaml -# deployment.yaml -mode: deployment - -image: - repository: otel/opentelemetry-collector-contrib - tag: 0.123.0 - -# We only want one of these collectors - any more and we'd produce duplicate data -replicaCount: 1 - -presets: - kubernetesAttributes: - enabled: true - # When enabled the processor will extra all labels for an associated pod and add them as resource attributes. - # The label's exact name will be the key. - extractAllPodLabels: true - # When enabled the processor will extra all annotations for an associated pod and add them as resource attributes. - # The annotation's exact name will be the key. - extractAllPodAnnotations: true - # Configures the collector to collect kubernetes events. - # Adds the k8sobject receiver to the logs pipeline and collects kubernetes events by default. - # More Info: https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-objects-receiver - kubernetesEvents: - enabled: true - # Configures the Kubernetes Cluster Receiver to collect cluster-level metrics. - # Adds the k8s_cluster receiver to the metrics pipeline and adds the necessary rules to ClusteRole. - # More Info: https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-cluster-receiver - clusterMetrics: - enabled: true - -extraEnvs: - - name: HYPERDX_API_KEY - valueFrom: - secretKeyRef: - name: hyperdx-secret - key: HYPERDX_API_KEY - optional: true - - name: YOUR_OTEL_COLLECTOR_ENDPOINT - valueFrom: - configMapKeyRef: - name: otel-config-vars - key: YOUR_OTEL_COLLECTOR_ENDPOINT - -config: - exporters: - otlphttp: - endpoint: "${env:YOUR_OTEL_COLLECTOR_ENDPOINT}" - compression: gzip - headers: - authorization: "${env:HYPERDX_API_KEY}" - service: - pipelines: - logs: - exporters: - - otlphttp - metrics: - exporters: - - otlphttp -``` - - -## Deploying the OpenTelemetry collector - -The OpenTelemetry collector can now be deployed in your Kubernetes cluster using -the [OpenTelemetry Helm Chart](https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-collector). - -Add the OpenTelemetry Helm repo: - -```shell -helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts # Add OTel Helm repo -``` - -Install the chart with the above config: - -```shell copy -helm install my-opentelemetry-collector-deployment open-telemetry/opentelemetry-collector -f k8s_deployment.yaml -helm install my-opentelemetry-collector-daemonset open-telemetry/opentelemetry-collector -f k8s_daemonset.yaml -``` - -Now the metrics, logs and Kubernetes events from your Kubernetes cluster should -now appear inside HyperDX. - -## Forwarding resource tags to pods (Recommended) - -To correlate application-level logs, metrics, and traces with Kubernetes metadata -(ex. pod name, namespace, etc.), you'll want to forward the Kubernetes metadata -to your application using the `OTEL_RESOURCE_ATTRIBUTES` environment variable. - -Here's an example deployment that forwards the Kubernetes metadata to the -application using environment variables: - -```yaml -# my_app_deployment.yaml - -apiVersion: apps/v1 -kind: Deployment -metadata: - name: app-deployment -spec: - replicas: 1 - selector: - matchLabels: - app: app - template: - metadata: - labels: - app: app - # Combined with the Kubernetes Attribute Processor, this will ensure - # the pod's logs and metrics will be associated with a service name. - service.name: - spec: - containers: - - name: app-container - image: my-image - env: - # ... other environment variables - # Collect K8s metadata from the downward API to forward to the app - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: POD_UID - valueFrom: - fieldRef: - fieldPath: metadata.uid - - name: POD_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: DEPLOYMENT_NAME - valueFrom: - fieldRef: - fieldPath: metadata.labels['deployment'] - # Forward the K8s metadata to the app via OTEL_RESOURCE_ATTRIBUTES - - name: OTEL_RESOURCE_ATTRIBUTES - value: k8s.pod.name=$(POD_NAME),k8s.pod.uid=$(POD_UID),k8s.namespace.name=$(POD_NAMESPACE),k8s.node.name=$(NODE_NAME),k8s.deployment.name=$(DEPLOYMENT_NAME) -``` diff --git a/products/clickstack/ingesting-data/schema/map-vs-json.mdx b/products/clickstack/ingesting-data/schema/map-vs-json.mdx index 7b4d50e7..77eee6a1 100644 --- a/products/clickstack/ingesting-data/schema/map-vs-json.mdx +++ b/products/clickstack/ingesting-data/schema/map-vs-json.mdx @@ -9,7 +9,7 @@ keywords: ['clickstack', 'json', 'map', 'attributes', 'schema', 'observability'] import BetaBadge from "/snippets/components/BetaBadge/BetaBadge.jsx"; -ClickStack's [default schema](/products/clickstack/ingesting-data/schemas) stores resource, scope, log, and span attributes as `Map(LowCardinality(String), String)` columns. ClickHouse also supports a strongly typed [`JSON` type](/reference/formats/JSON/JSON), and ClickStack has beta support for using it in place of `Map`. +ClickStack's [default schema](/products/clickstack/ingesting-data/schemas) stores resource, scope, log, and span attributes as `Map(LowCardinality(String), String)` columns. ClickHouse also supports a strongly typed [`JSON` type](/core/reference/formats/JSON/JSON), and ClickStack has beta support for using it in place of `Map`. **For typical observability workloads we recommend keeping the [default `Map`-based schema](/products/clickstack/ingesting-data/schemas).** The JSON type is available for users who want to evaluate it on workloads with a small, stable set of attribute keys, but it isn't the recommended schema for general use. @@ -17,7 +17,7 @@ ClickStack's [default schema](/products/clickstack/ingesting-data/schemas) store Observability data is dominated by attributes such as resource attributes, scope attributes, and span and log attributes. These sets are typically large, high-cardinality, and ingested at high throughput. The schema you pick for those attributes is the dominant factor in ingest cost and storage layout. -`Map(LowCardinality(String), String)` stores keys and values as a single structure. The historical disadvantage of `Map` was that reading a single key required reading the entire map column. That's no longer true: ClickHouse now supports [bucketed map serialization](/reference/data-types/map#bucketed-map-serialization), which splits the map into buckets so queries only read the buckets they need. Combined with [text indexes](/reference/engines/table-engines/mergetree-family/textindexes) on map keys and values, which is how [ClickStack's default schema](/products/clickstack/ingesting-data/schemas) is configured, this makes `Map` selective and fast at read time without paying any ingest penalty for new keys. +`Map(LowCardinality(String), String)` stores keys and values as a single structure. The historical disadvantage of `Map` was that reading a single key required reading the entire map column. That's no longer true: ClickHouse now supports [bucketed map serialization](/core/reference/data-types/map#bucketed-map-serialization), which splits the map into buckets so queries only read the buckets they need. Combined with [text indexes](/core/reference/engines/table-engines/mergetree-family/textindexes) on map keys and values, which is how [ClickStack's default schema](/products/clickstack/ingesting-data/schemas) is configured, this makes `Map` selective and fast at read time without paying any ingest penalty for new keys. In practice this means: @@ -30,7 +30,7 @@ In practice this means: The `JSON` type takes a different approach: at insert time, ClickHouse dynamically creates a dedicated, strongly typed subcolumn for each path it sees. At read time this is attractive, since only the requested subcolumns are read, types are preserved, and no query-time casting is needed. -The tradeoff lands at ingest time. Creating and managing many dynamic subcolumns introduces write-time overhead and metadata complexity. On observability workloads, which routinely have very large or highly dynamic attribute sets and high ingest throughput, that overhead is significant. The [`max_dynamic_paths`](/reference/data-types/newjson#reading-json-paths-as-sub-columns) limit can cap the damage by spilling extra paths into a shared column, but accessing the shared column is slower than dedicated subcolumns, which erodes the read-time advantage that motivated using JSON in the first place. +The tradeoff lands at ingest time. Creating and managing many dynamic subcolumns introduces write-time overhead and metadata complexity. On observability workloads, which routinely have very large or highly dynamic attribute sets and high ingest throughput, that overhead is significant. The [`max_dynamic_paths`](/core/reference/data-types/newjson#reading-json-paths-as-sub-columns) limit can cap the damage by spilling extra paths into a shared column, but accessing the shared column is slower than dedicated subcolumns, which erodes the read-time advantage that motivated using JSON in the first place. With bucketed map serialization removing most of the historical read-time overhead of `Map`, the read-time advantage of `JSON` no longer outweighs its ingest-time cost for typical observability workloads. @@ -89,7 +89,7 @@ docker run -e OTEL_AGENT_FEATURE_GATE_ARG='--feature-gates=clickhouse.json' -e O ## Migrating from a Map-based schema to JSON {#migrating-from-map-to-json} :::important Backwards compatibility -The [JSON type](/reference/formats/JSON/JSON) is **not backwards compatible** with existing map-based schemas. Enabling this feature creates new tables using the `JSON` type and requires manual data migration. +The [JSON type](/core/reference/formats/JSON/JSON) is **not backwards compatible** with existing map-based schemas. Enabling this feature creates new tables using the `JSON` type and requires manual data migration. ::: To migrate from the [default Map-based schemas](/products/clickstack/ingesting-data/schemas), follow these steps: diff --git a/products/clickstack/ingesting-data/vector.mdx b/products/clickstack/ingesting-data/vector.mdx index 39dd5405..35100d46 100644 --- a/products/clickstack/ingesting-data/vector.mdx +++ b/products/clickstack/ingesting-data/vector.mdx @@ -40,7 +40,7 @@ In the example below, we use `logs`: CREATE DATABASE IF NOT EXISTS logs ``` -Create a table for your data. This should match the output schema of your data. The example below assumes a classic Nginx structure. Adjust accordingly to your data, adhering to [schema best practices](/concepts/best-practices/select-data-type). We **strongly recommend** familiarizing yourself with the [concept of Primary keys](/concepts/core-concepts/primary-indexes), selecting your primary key based on the guidelines outlined [here](/products/clickstack/managing/performance-tuning#choosing-a-primary-key). +Create a table for your data. This should match the output schema of your data. The example below assumes a classic Nginx structure. Adjust accordingly to your data, adhering to [schema best practices](/core/concepts/best-practices/select-data-type). We **strongly recommend** familiarizing yourself with the [concept of Primary keys](/core/concepts/core-concepts/primary-indexes), selecting your primary key based on the guidelines outlined [here](/products/clickstack/managing/performance-tuning#choosing-a-primary-key). ```sql CREATE TABLE logs.nginx_logs @@ -122,7 +122,7 @@ We also recommend updating the `Default SELECT` to explicitly define which colum In the example above, a `Body` column doesn't exist in the data. Instead, it is defined using a SQL expression that reconstructs an Nginx log line from the available fields. -For other possible options, see the [configuration reference](/products/clickstack/config). +For other possible options, see the [configuration reference](/products/clickstack/managing/config).
    ### Explore the data {#explore-the-data-managed} @@ -142,7 +142,7 @@ Navigate to the logs view to explore the data and begin using ClickStack. Vector requires a table and schema to be defined prior to data ingestion. -First create a database. This can be done via the [ClickHouse Web user interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http#web-ui) at [http://localhost:8123/play](http://localhost:8123/play). Use the default username and password `api:api`. +First create a database. This can be done via the [ClickHouse Web user interface](/core/concepts/features/interfaces/http#web-ui) at [http://localhost:8123/play](http://localhost:8123/play). Use the default username and password `api:api`. @@ -152,7 +152,7 @@ In the example below, we use `logs`: CREATE DATABASE IF NOT EXISTS logs ``` -Create a table for your data. This should match the output schema of your data. The example below assumes a classic Nginx structure. Adjust accordingly to your data, adhering to [schema best practices](/concepts/best-practices/select-data-type). We **strongly recommend** familiarizing yourself with the [concept of Primary keys](/concepts/core-concepts/primary-indexes), selecting your primary key based on the guidelines outlined [here](/products/clickstack/managing/performance-tuning#choosing-a-primary-key). +Create a table for your data. This should match the output schema of your data. The example below assumes a classic Nginx structure. Adjust accordingly to your data, adhering to [schema best practices](/core/concepts/best-practices/select-data-type). We **strongly recommend** familiarizing yourself with the [concept of Primary keys](/core/concepts/core-concepts/primary-indexes), selecting your primary key based on the guidelines outlined [here](/products/clickstack/managing/performance-tuning#choosing-a-primary-key). ```sql CREATE TABLE logs.nginx_logs @@ -236,7 +236,7 @@ We also recommend updating the `Default SELECT` to explicitly define which colum In the example above, a `Body` column doesn't exist in the data. Instead, it is defined using a SQL expression that reconstructs an Nginx log line from the available fields. -For other possible options, see the [configuration reference](/products/clickstack/config). +For other possible options, see the [configuration reference](/products/clickstack/managing/config). ### Explore the data {#explore-the-data-oss} @@ -405,7 +405,7 @@ concat( This reconstructs the log line from the structured fields. -For other possible options, see the [configuration reference](/products/clickstack/config). +For other possible options, see the [configuration reference](/products/clickstack/managing/config). ### Explore the data {#explore-the-data-nginx-managed} @@ -438,7 +438,7 @@ The following guide assumes you have set up ClickStack Open Source with the [Get Vector requires a table and schema to be defined prior to data ingestion. -First create a database. This can be done via the [ClickHouse Web user interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http#web-ui) at [http://localhost:8123/play](http://localhost:8123/play). Use the default username and password `api:api`. +First create a database. This can be done via the [ClickHouse Web user interface](/core/concepts/features/interfaces/http#web-ui) at [http://localhost:8123/play](http://localhost:8123/play). Use the default username and password `api:api`. @@ -565,7 +565,7 @@ concat( This reconstructs the log line from the structured fields. -For other possible options, see the [configuration reference](/products/clickstack/config). +For other possible options, see the [configuration reference](/products/clickstack/managing/config). ### Navigate to the ClickStack UI {#navigate-to-clickstack-ui-nginx-oss} diff --git a/products/clickstack/integration-examples/cloudflare.mdx b/products/clickstack/integration-examples/cloudflare.mdx index 4f227e36..acd3e677 100644 --- a/products/clickstack/integration-examples/cloudflare.mdx +++ b/products/clickstack/integration-examples/cloudflare.mdx @@ -248,7 +248,7 @@ If data is in ClickHouse but not visible in HyperDX, check the data source confi ## Next steps {#next-steps} - Set up [alerts](/products/clickstack/features/alerts) for security events (WAF blocks, bot traffic spikes, error rate thresholds) -- Optimize [retention policies](/products/clickstack/ttl) based on your data volume +- Optimize [retention policies](/products/clickstack/managing/ttl) based on your data volume - Create additional dashboards for specific use cases (API performance, cache optimization, geographic traffic analysis) ## Going to production {#going-to-production} diff --git a/products/clickstack/managing/admin.mdx b/products/clickstack/managing/admin.mdx index 24da8618..81abe1be 100644 --- a/products/clickstack/managing/admin.mdx +++ b/products/clickstack/managing/admin.mdx @@ -13,7 +13,7 @@ Administrative operations typically involve executing DDL statements. The availa ## ClickStack Open Source {#clickstack-oss} -For ClickStack Open Source deployments, users perform administrative tasks using the [ClickHouse client](/integrations/connectors/data-integrations/drivers-and-interfaces/cli). The client connects to the database over the native ClickHouse protocol and supports full DDL and administrative operations, as well as providing interactive feedback on queries. +For ClickStack Open Source deployments, users perform administrative tasks using the [ClickHouse client](/core/concepts/features/interfaces/cli). The client connects to the database over the native ClickHouse protocol and supports full DDL and administrative operations, as well as providing interactive feedback on queries. ## Managed ClickStack {#clickstack-managed} diff --git a/products/clickstack/config.mdx b/products/clickstack/managing/config.mdx similarity index 94% rename from products/clickstack/config.mdx rename to products/clickstack/managing/config.mdx index 9055cd82..b43b4ab8 100644 --- a/products/clickstack/config.mdx +++ b/products/clickstack/managing/config.mdx @@ -106,7 +106,7 @@ This configuration can be performed inside the application from `Team Settings - Each of these sources require at least one table specified on creation and a set of columns which allow HyperDX to query the data. -If using the [default OpenTelemetry (OTel) schema](/guides/observability/build-your-own/integrating-opentelemetry#out-of-the-box-schema) distributed with ClickStack, these columns can be automatically inferred for each of the sources. If [modifying the schema](#clickhouse) or using a custom schema, users are required to specify and update these mappings. +If using the [default OpenTelemetry (OTel) schema](/core/guides/use-cases/observability/build-your-own/integrating-opentelemetry#out-of-the-box-schema) distributed with ClickStack, these columns can be automatically inferred for each of the sources. If [modifying the schema](#clickhouse) or using a custom schema, users are required to specify and update these mappings. The default schema for ClickHouse distributed with ClickStack is the schema created by the [ClickHouse exporter for the OTel collector](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/clickhouseexporter). These column names correlate with the OTel official specification documented [here](https://opentelemetry.io/docs/specs/otel/logs/data-model/). @@ -434,10 +434,10 @@ See ["ClickStack OpenTelemetry Collector"](/products/clickstack/ingesting-data/c ClickStack Open Source ships with a default ClickHouse configuration designed for multi-terabyte scale, but users are free to modify and optimize it to suit their workload. -To tune ClickHouse effectively, you should understand key storage concepts such as [parts](/concepts/core-concepts/parts), [partitions](/concepts/core-concepts/partitions), [shards and replicas](/guides/oss/deployment-and-scaling/shards), and how [merges](/concepts/core-concepts/merges) occur at insert time. We recommend reviewing the fundamentals of [primary indices](/concepts/core-concepts/primary-indexes), [sparse secondary indices](/concepts/features/performance/skip-indexes/skipping-indexes), and data skipping indices, along with techniques for [managing data lifecycle](/guides/observability/build-your-own/managing-data) e.g. using a TTL lifecycle. +To tune ClickHouse effectively, you should understand key storage concepts such as [parts](/core/concepts/core-concepts/parts), [partitions](/core/concepts/core-concepts/partitions), [shards and replicas](/core/guides/oss/deployment-and-scaling/shards), and how [merges](/core/concepts/core-concepts/merges) occur at insert time. We recommend reviewing the fundamentals of [primary indices](/core/concepts/core-concepts/primary-indexes), [sparse secondary indices](/core/concepts/features/performance/skip-indexes/skipping-indexes), and data skipping indices, along with techniques for [managing data lifecycle](/core/guides/use-cases/observability/build-your-own/managing-data) e.g. using a TTL lifecycle. -ClickStack supports [schema customization](/guides/observability/build-your-own/schema-design) - you may modify column types, extract new fields (e.g. from logs), apply codecs and dictionaries, and accelerate queries using projections. +ClickStack supports [schema customization](/core/guides/use-cases/observability/build-your-own/schema-design) - you may modify column types, extract new fields (e.g. from logs), apply codecs and dictionaries, and accelerate queries using projections. -Additionally, materialized views can be used to [transform or filter data during ingestion](/guides/observability/build-your-own/schema-design#materialized-columns), provided that data is written to the source table of the view and the application reads from the target table. Materialized views can also be used to [accelerate queries natively](/products/clickstack/managing/materialized-views) in ClickStack. +Additionally, materialized views can be used to [transform or filter data during ingestion](/core/guides/use-cases/observability/build-your-own/schema-design#materialized-columns), provided that data is written to the source table of the view and the application reads from the target table. Materialized views can also be used to [accelerate queries natively](/products/clickstack/managing/materialized-views) in ClickStack. For more details, refer to ClickHouse documentation on schema design, indexing strategies, and data management best practices - most of which apply directly to ClickStack deployments. diff --git a/products/clickstack/managing/materialized-views.mdx b/products/clickstack/managing/materialized-views.mdx index 4bcbc01c..2a240b03 100644 --- a/products/clickstack/managing/materialized-views.mdx +++ b/products/clickstack/managing/materialized-views.mdx @@ -14,7 +14,7 @@ import { Image } from "/snippets/components/Image.jsx"; ## Introduction {#introduction} -ClickStack can exploit [Incremental Materialized Views (IMV)](/concepts/features/materialized-views/incremental-materialized-view) to accelerate visualizations that rely on aggregation-heavy queries, such as computing average request duration per minute over time. This feature can dramatically improve query performance and is typically most beneficial for larger deployments, around 10 TB per day and above, while enabling scaling into the petabytes-per-day range. Incremental materialized views are in Beta and should be used with care. +ClickStack can exploit [Incremental Materialized Views (IMV)](/core/concepts/features/materialized-views/incremental-materialized-view) to accelerate visualizations that rely on aggregation-heavy queries, such as computing average request duration per minute over time. This feature can dramatically improve query performance and is typically most beneficial for larger deployments, around 10 TB per day and above, while enabling scaling into the petabytes-per-day range. Incremental materialized views are in Beta and should be used with care. Alerts can also benefit from materialized views, and will exploit them automatically. @@ -30,7 +30,7 @@ Unlike transactional databases such as Postgres, a ClickHouse materialized view The primary motivation for using materialized views is that the data written to the target table represents the result of an aggregation, filtering, or transformation. In ClickStack, they're used exclusively for aggregations. These results are typically much smaller than the raw input data, often representing partial aggregation states. Combined with the simplicity of querying the pre-aggregated target table, this leads to substantially lower query latency compared to performing the same computation on raw data at query time. -Materialized views in ClickHouse are updated continuously as data flows into the source table, behaving more like always-up-to-date indexes. This differs from many other databases, where materialized views are static snapshots that must be periodically refreshed, similar to ClickHouse [Refreshable Materialized Views](/concepts/features/materialized-views/refreshable-materialized-view). +Materialized views in ClickHouse are updated continuously as data flows into the source table, behaving more like always-up-to-date indexes. This differs from many other databases, where materialized views are static snapshots that must be periodically refreshed, similar to ClickHouse [Refreshable Materialized Views](/core/concepts/features/materialized-views/refreshable-materialized-view). @@ -51,7 +51,7 @@ A single materialized view can compute multiple metrics for different groupings, Before proceeding further, you're recommended to familiarize yourself with materialized views in ClickHouse in more depth. -See our guide on [Incremental materialized views](/concepts/features/materialized-views/incremental-materialized-view) for additional details. +See our guide on [Incremental materialized views](/core/concepts/features/materialized-views/incremental-materialized-view) for additional details. ## Selecting visualizations for acceleration {#selecting-visualizatons-for-acceleration} @@ -78,14 +78,14 @@ These visualizations are often executed repeatedly across users and time ranges, Materialized views introduce additional work at insert time, so they should be created selectively and deliberately. Not every visualization benefits from pre-aggregation, and accelerating rarely used charts is usually not worth the overhead. You should keep the total number of materialized views below a maximum of 20. -Prior to moving to production, always validate the resource overhead introduced by materialized views, particularly CPU usage, disk I/O, and [merge activity](/resources/support-center/tips-and-tricks/too-many-parts). Each materialized view increases insert-time work and contributes additional parts, so it's important to ensure merges can keep up and part counts remain stable. This can be monitored via [system tables](/reference/system-tables/tables) and the [built-in observability dashboard](/guides/oss/deployment-and-scaling/monitoring/monitoring#built-in-advanced-observability-dashboard) in open-source ClickHouse or using the built-in metrics and [monitoring dashboards in ClickHouse Cloud](/products/cloud/features/monitoring/advanced-dashboard). See [Too many parts](/resources/support-center/knowledge-base/troubleshooting/exception-too-many-parts) for guidance on diagnosing and mitigating excessive part counts. +Prior to moving to production, always validate the resource overhead introduced by materialized views, particularly CPU usage, disk I/O, and [merge activity](/resources/support-center/tips-and-tricks/too-many-parts). Each materialized view increases insert-time work and contributes additional parts, so it's important to ensure merges can keep up and part counts remain stable. This can be monitored via [system tables](/core/reference/system-tables/tables) and the [built-in observability dashboard](/core/guides/oss/deployment-and-scaling/monitoring/monitoring#built-in-advanced-observability-dashboard) in open-source ClickHouse or using the built-in metrics and [monitoring dashboards in ClickHouse Cloud](/products/cloud/features/monitoring/advanced-dashboard). See [Too many parts](/resources/support-center/knowledge-base/troubleshooting/exception-too-many-parts) for guidance on diagnosing and mitigating excessive part counts. Once you have identified the visualizations that matter most, the next step is consolidation. ### Consolidate visualizations into shared views {#consolidate-visualizations-into-shared-views} -All materialized views in ClickStack should group data by a time interval using functions such as [`toStartOfMinute`](/reference/functions/regular-functions/date-time-functions#toStartOfMinute). However, many visualizations also share additional grouping keys such as service name, span name, or status code. When multiple visualizations use the same grouping dimensions, they can often be served by a single materialized view. +All materialized views in ClickStack should group data by a time interval using functions such as [`toStartOfMinute`](/core/reference/functions/regular-functions/date-time-functions#toStartOfMinute). However, many visualizations also share additional grouping keys such as service name, span name, or status code. When multiple visualizations use the same grouping dimensions, they can often be served by a single materialized view. For example (for traces): @@ -116,12 +116,12 @@ Once you have identified a visualization, or set of visualizations, that you wan In cases where a debug panel isn't available inside HyperDX for a component, users can inspect the browser console, where all queries are logged. -After consolidating the required queries, you should familiarize yourself with [**aggregate state functions**](/reference/data-types/aggregatefunction) in ClickHouse. Materialized views rely on these functions to shift computation from query time to insert time. Instead of storing final aggregated values, a materialized view computes and stores **intermediate aggregation states**, which are later merged and finalized at query time. These will typically be much smaller than the original table. These states have dedicated data types and must be explicitly represented in the schema of the target table. +After consolidating the required queries, you should familiarize yourself with [**aggregate state functions**](/core/reference/data-types/aggregatefunction) in ClickHouse. Materialized views rely on these functions to shift computation from query time to insert time. Instead of storing final aggregated values, a materialized view computes and stores **intermediate aggregation states**, which are later merged and finalized at query time. These will typically be much smaller than the original table. These states have dedicated data types and must be explicitly represented in the schema of the target table. For reference, ClickHouse provides a detailed overview and examples of aggregate state functions, and the table engine used to store them - `AggregatingMergeTree` - in the documentation: -- [Aggregate functions and states](/reference/functions/aggregate-functions) -- [AggregatingMergeTree engine](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) +- [Aggregate functions and states](/core/reference/functions/aggregate-functions) +- [AggregatingMergeTree engine](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) You can see an example of how to use the AggregatingMergeTree and Aggregate functions in the video below: @@ -192,7 +192,7 @@ GROUP BY This materialized view consists of two parts: -1. The target table, which defines the schema and aggregate state types used to store intermediate results. The [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) engine is required to ensure these states are merged correctly in the background. +1. The target table, which defines the schema and aggregate state types used to store intermediate results. The [AggregatingMergeTree](/core/reference/engines/table-engines/mergetree-family/aggregatingmergetree) engine is required to ensure these states are merged correctly in the background. 2. The materialized view query is executed automatically on insert. Compared to the original query, it uses state functions such as `avgState` and `quantilesState` instead of final aggregation functions. The result is a compact table that stores per-minute aggregation states for each service name and status code. Its size grows predictably with time and cardinality, and after background merges, it represents the same result as running the original aggregation over the raw data. Querying this table is significantly cheaper than aggregating directly from the source traces table, enabling fast, consistent visualization performance at scale. @@ -247,7 +247,7 @@ Specify the minimum date for which the materialized view contains data. This rep Materialized views are **not automatically backfilled** when they're created, so they will only contain rows generated from data inserted after creation. -A full guide on backfilling materialized views can be found under ["Backfilling Data."](/guides/cloud-oss/data-modelling/backfilling#scenario-2-adding-materialized-views-to-existing-tables) +A full guide on backfilling materialized views can be found under ["Backfilling Data."](/core/guides/clickhouse/data-modelling/backfilling#scenario-2-adding-materialized-views-to-existing-tables) @@ -300,7 +300,7 @@ These indicators make it easy to confirm whether a visualization is accelerated, ### How materialized views are selected for visualizations {#how-views-are-selected} -When a visualization is executed, ClickStack may have multiple candidates available, including the base table, and multiple materialized views. To ensure optimal performance, ClickStack automatically evaluates and selects the most efficient option using ClickHouse's [`EXPLAIN ESTIMATE`](/reference/statements/explain#explain-estimate) mechanism. +When a visualization is executed, ClickStack may have multiple candidates available, including the base table, and multiple materialized views. To ensure optimal performance, ClickStack automatically evaluates and selects the most efficient option using ClickHouse's [`EXPLAIN ESTIMATE`](/core/reference/statements/explain#explain-estimate) mechanism. The selection process follows a well-defined sequence: @@ -317,7 +317,7 @@ The selection process follows a well-defined sequence: - Time bucketing is adjusted to align with the view's granularity. 3. **Select the best candidate** - If multiple compatible materialized views are available, ClickStack runs an [`EXPLAIN ESTIMATE`](/reference/statements/explain#explain-estimate) query for each candidate and compares the estimated number of rows and granules scanned. The view with the lowest estimated scan cost is selected. + If multiple compatible materialized views are available, ClickStack runs an [`EXPLAIN ESTIMATE`](/core/reference/statements/explain#explain-estimate) query for each candidate and compares the estimated number of rows and granules scanned. The view with the lowest estimated scan cost is selected. 4. **Graceful fallback** If no materialized view is compatible, ClickStack automatically falls back to querying the source table. @@ -335,7 +335,7 @@ Consider two materialized views created on the same trace source: The second view contains additional grouping keys and therefore produces more rows and scans more data. -If a visualization requests **average duration per service over time**, both views are technically valid. ClickStack issues an [`EXPLAIN ESTIMATE`](/reference/statements/explain#explain-estimate) query for each candidate and compares the estimated granule counts i.e.: +If a visualization requests **average duration per service over time**, both views are technically valid. ClickStack issues an [`EXPLAIN ESTIMATE`](/core/reference/statements/explain#explain-estimate) query for each candidate and compares the estimated granule counts i.e.: ```sql EXPLAIN ESTIMATE @@ -404,7 +404,7 @@ In summary, backfilling is often not worth the cost and operational risk. It sho **Avoid POPULATE** -Using the [POPULATE](/reference/statements/create/view#materialized-view) command isn't recommended for backfilling materialized views for anything other than small datasets where ingest is paused. This operator can miss rows inserted into its source table, with the materialized view created after the populate hash is finished. Furthermore, this populate runs against all data and is vulnerable to interruptions or memory limits on large datasets. +Using the [POPULATE](/core/reference/statements/create/view#materialized-view) command isn't recommended for backfilling materialized views for anything other than small datasets where ingest is paused. This operator can miss rows inserted into its source table, with the materialized view created after the populate hash is finished. Furthermore, this populate runs against all data and is vulnerable to interruptions or memory limits on large datasets. Suppose you want to backfill a materialized view corresponding to the following aggregation, which computes per-minute metrics grouped by service name and status code: @@ -501,7 +501,7 @@ This approach is appropriate when: - You want to tightly control CPU and memory consumption during backfill. - You need a more resilient process that can be restarted safely if interrupted. -The key idea is to use a [**Null table**](/reference/engines/table-engines/special/null) as an ingestion buffer. While the Null table doesn't store data, any materialized views attached to it will still execute, allowing aggregation states to be computed incrementally as data flows through. +The key idea is to use a [**Null table**](/core/reference/engines/table-engines/special/null) as an ingestion buffer. While the Null table doesn't store data, any materialized views attached to it will still execute, allowing aggregation states to be computed incrementally as data flows through. @@ -567,10 +567,10 @@ WHERE Timestamp < ( Because the data is processed incrementally, memory usage remains bounded and predictable, closely resembling normal ingestion behavior. -For additional safety, consider directing the backfill materialized view to a temporary target table (for example, `otel_traces_1m_v2`). Once the backfill completes successfully, [partitions can be moved](/reference/statements/alter/partition#move-partition-to-table) to the primary target table e.g. `ALTER TABLE otel_traces_1m_v2 MOVE PARTITION '2026-01-02' TO otel_traces_1m`. This allows for easy recovery if the backfill is interrupted or fails due to resource limits. +For additional safety, consider directing the backfill materialized view to a temporary target table (for example, `otel_traces_1m_v2`). Once the backfill completes successfully, [partitions can be moved](/core/reference/statements/alter/partition#move-partition-to-table) to the primary target table e.g. `ALTER TABLE otel_traces_1m_v2 MOVE PARTITION '2026-01-02' TO otel_traces_1m`. This allows for easy recovery if the backfill is interrupted or fails due to resource limits. -For further details on tuning this process, including improving insert performance and reducing and controlling resources, see ["Backfilling."](/guides/cloud-oss/data-modelling/backfilling#tuning-performance--resources) +For further details on tuning this process, including improving insert performance and reducing and controlling resources, see ["Backfilling."](/core/guides/clickhouse/data-modelling/backfilling#tuning-performance--resources) diff --git a/products/clickstack/managing.mdx b/products/clickstack/managing/overview.mdx similarity index 97% rename from products/clickstack/managing.mdx rename to products/clickstack/managing/overview.mdx index c041acae..daa46262 100644 --- a/products/clickstack/managing.mdx +++ b/products/clickstack/managing/overview.mdx @@ -26,7 +26,7 @@ This section describes how to manage ClickStack. | Concept | Description | |---------|-------------| -| **Tables** | How ClickStack data sources map to underlying ClickHouse tables. ClickHouse tables primarily use the [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) engine. | +| **Tables** | How ClickStack data sources map to underlying ClickHouse tables. ClickHouse tables primarily use the [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) engine. | | **Parts** | How data is written as immutable parts and merged over time. | | **Partitions** | Logical groupings of table parts that simplify data management, querying, and optimization. | | **Merges** | The background process that combines parts to reduce the number of parts queried and maintain performance. | diff --git a/products/clickstack/managing/performance-tuning.mdx b/products/clickstack/managing/performance-tuning.mdx index 40a1328a..bdd2d235 100644 --- a/products/clickstack/managing/performance-tuning.mdx +++ b/products/clickstack/managing/performance-tuning.mdx @@ -34,7 +34,7 @@ In ClickStack, each **data source maps directly to one or more ClickHouse tables | Metrics (summary) | [otel_metrics_summary](/products/clickstack/ingesting-data/schemas#summary-table) | | Sessions | [hyperdx_sessions](/products/clickstack/ingesting-data/schemas#sessions) | -Tables are assigned to [databases](/reference/statements/create/database) in ClickHouse. By default, the `default` database is used - this can be [modified in the OpenTelemetry collector](/products/clickstack/config#otel-collector). +Tables are assigned to [databases](/core/reference/statements/create/database) in ClickHouse. By default, the `default` database is used - this can be [modified in the OpenTelemetry collector](/products/clickstack/managing/config#otel-collector). :::important Focus on logs and traces In most cases, performance tuning focuses on the logs and trace tables. While metrics tables can be optimized for filtering, their schemas are intentionally opinionated for Prometheus-style workloads and typically don't require modification for standard charting. Logs and traces, by contrast, support a wider range of access patterns, and therefore benefit most from tuning. Session data has a fixed user experience, and its schema rarely needs to be modified. @@ -44,7 +44,7 @@ At a minimum, you should understand the following ClickHouse fundamentals: | Concept | Description | |---------|-------------| -| **Tables** | How data sources in ClickStack correspond to underlying ClickHouse tables. Tables in ClickHouse mainly use the [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) engine. | +| **Tables** | How data sources in ClickStack correspond to underlying ClickHouse tables. Tables in ClickHouse mainly use the [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) engine. | | **Parts** | How data is written in immutable parts and merged over time. | | **Partitions** | Partitions group the data parts of a table into organised logical units. These units are easier to manage, query, and optimize. | | **Merges** | The internal process that merges parts together to ensure that there are a lower number of parts to query. Essential for maintaining query performance. | @@ -55,15 +55,15 @@ These concepts are central to ClickHouse performance. They determine how data is You're recommended to review the following ClickHouse documentation before undertaking any tuning: -- [Creating tables in ClickHouse](/get-started/oss/starter-guides/creating-tables) - A simple introduction to tables. -- [Parts](/concepts/core-concepts/parts) -- [Partitions](/concepts/core-concepts/partitions) -- [Merges](/concepts/core-concepts/merges) -- [Primary keys/indexes](/concepts/core-concepts/primary-indexes) -- [How ClickHouse stores data: parts and granules](/guides/cloud-oss/data-modelling/sparse-primary-indexes) - More advanced guide on how data is structured and queried in ClickHouse, covering granules and primary keys in detail. -- [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree)- Advanced MergeTree reference guide useful for commands and for internal specifics. +- [Creating tables in ClickHouse](/core/get-started/quickstarts/creating-tables) - A simple introduction to tables. +- [Parts](/core/concepts/core-concepts/parts) +- [Partitions](/core/concepts/core-concepts/partitions) +- [Merges](/core/concepts/core-concepts/merges) +- [Primary keys/indexes](/core/concepts/core-concepts/primary-indexes) +- [How ClickHouse stores data: parts and granules](/core/guides/clickhouse/data-modelling/sparse-primary-indexes) - More advanced guide on how data is structured and queried in ClickHouse, covering granules and primary keys in detail. +- [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree)- Advanced MergeTree reference guide useful for commands and for internal specifics. -All optimizations described below can be applied directly to the underlying tables using standard ClickHouse SQL, either through the [ClickHouse Cloud SQL console](/integrations/connectors/data-integrations/sql-clients/sql-console) or via the [ClickHouse client](/integrations/connectors/data-integrations/drivers-and-interfaces/cli). +All optimizations described below can be applied directly to the underlying tables using standard ClickHouse SQL, either through the [ClickHouse Cloud SQL console](/products/cloud/features/sql-console-features/sql-console) or via the [ClickHouse client](/core/concepts/features/interfaces/cli). ## Optimization 1. Materialize frequently queried attributes {#materialize-frequently-queried-attributes} @@ -191,7 +191,7 @@ ALTER TABLE otel_v2.otel_traces MATERIALIZE COLUMN PodName ``` -This rewrites existing [parts](/concepts/core-concepts/parts) to populate the column. Mutations are single-threaded per part and can take time on large datasets. To limit impact, mutations can be scoped to a specific partition: +This rewrites existing [parts](/core/concepts/core-concepts/parts) to populate the column. Mutations are single-threaded per part and can take time on large datasets. To limit impact, mutations can be scoped to a specific partition: ```sql ALTER TABLE otel_v2.otel_traces @@ -394,11 +394,11 @@ Bloom filter size can be reduced by increasing the allowed false-positive rate. Tuning Bloom filter parameters is therefore a workload-dependent optimization and should be validated using real query patterns and production-like data volumes. -For further details on skip indices, see the guide ["Understanding ClickHouse data skipping indexes."](/concepts/features/performance/skip-indexes/skipping-indexes-examples) +For further details on skip indices, see the guide ["Understanding ClickHouse data skipping indexes."](/core/concepts/features/performance/skip-indexes/skipping-indexes-examples) ### Evaluating skip index effectiveness {#evaluating-skip-index-effectiveness} -The most reliable way to evaluate skip index pruning is to use `EXPLAIN indexes = 1`, which shows how many [parts](/concepts/core-concepts/parts) and [granules](/guides/cloud-oss/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing) are eliminated at each stage of query planning. In most cases, you want to see a large reduction in granules at the Skip stage, ideally after the primary key has already reduced the search space. Skip indexes are evaluated after partition pruning and primary key pruning, so their impact is best measured relative to the remaining parts and granules. +The most reliable way to evaluate skip index pruning is to use `EXPLAIN indexes = 1`, which shows how many [parts](/core/concepts/core-concepts/parts) and [granules](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing) are eliminated at each stage of query planning. In most cases, you want to see a large reduction in granules at the Skip stage, ideally after the primary key has already reduced the search space. Skip indexes are evaluated after partition pruning and primary key pruning, so their impact is best measured relative to the remaining parts and granules. `EXPLAIN` confirms whether pruning occurs, but it doesn't guarantee a net speedup. Skip indexes have a cost to evaluate, especially if the index is large. Always benchmark queries before and after adding and materializing an index to confirm real performance improvements. @@ -485,10 +485,10 @@ Filtering on columns that appear earlier in the primary key is more efficient th **A note on terminology** -Throughout this document, the term "ordering key" is used interchangeably with "primary key." Strictly speaking, these differ in ClickHouse, but for ClickStack, they typically refer to the same columns specified in the table `ORDER BY` clause. For details, see the [ClickHouse documentation](/reference/engines/table-engines/mergetree-family/mergetree#choosing-a-primary-key-that-differs-from-the-sorting-key) on choosing a primary key that differs from the sorting key. +Throughout this document, the term "ordering key" is used interchangeably with "primary key." Strictly speaking, these differ in ClickHouse, but for ClickStack, they typically refer to the same columns specified in the table `ORDER BY` clause. For details, see the [ClickHouse documentation](/core/reference/engines/table-engines/mergetree-family/mergetree#choosing-a-primary-key-that-differs-from-the-sorting-key) on choosing a primary key that differs from the sorting key. -Before modifying any primary key, reading through our [guide to understand how primary indexes work](/concepts/core-concepts/primary-indexes) in ClickHouse is strongly recommended: +Before modifying any primary key, reading through our [guide to understand how primary indexes work](/core/concepts/core-concepts/primary-indexes) in ClickHouse is strongly recommended: Primary key tuning is table and data-type-specific. A change that benefits one table and data type may not apply to others. The goal is always to optimize for a particular data type e.g. logs. @@ -499,7 +499,7 @@ Below are the default primary keys for the ClickStack tables for logs and metric - Logs ([`otel_logs`](/products/clickstack/ingesting-data/schemas#logs)) - `(ServiceName, TimestampTime, Timestamp)` - Traces (['otel_traces](/products/clickstack/ingesting-data/schemas#traces)) - `(ServiceName, SpanName, toDateTime(Timestamp))` -See ["Tables and schemas used by ClickStack"](/products/clickstack/ingesting-data/schemas) for the primary keys used by the tables for other data types. For example, trace tables are optimized for filtering by service name and span name, followed by timestamp and, trace ID. Log tables, conversely, are optimized for filtering by service name, then by date, and then by timestamp. Although the optimal order would be for the user to apply the filters in the order of the primary key, queries will still heavily benefit if filtering by any of these columns in any order, with ClickHouse [pruning data prior to reading](/concepts/features/performance/skip-indexes/skipping-indexes). +See ["Tables and schemas used by ClickStack"](/products/clickstack/ingesting-data/schemas) for the primary keys used by the tables for other data types. For example, trace tables are optimized for filtering by service name and span name, followed by timestamp and, trace ID. Log tables, conversely, are optimized for filtering by service name, then by date, and then by timestamp. Although the optimal order would be for the user to apply the filters in the order of the primary key, queries will still heavily benefit if filtering by any of these columns in any order, with ClickHouse [pruning data prior to reading](/core/concepts/features/performance/skip-indexes/skipping-indexes). When choosing a primary key, there are also other considerations for choosing an optimal ordering of the columns. See ["Choosing a primary key."](#choosing-a-primary-key) @@ -524,7 +524,7 @@ Some simple rules can be applied to help choose an ordering key. The following c 3. Prefer columns that are likely to be highly correlated with other columns in the table. This will help ensure these values are also stored contiguously, improving compression. 4. `GROUP BY` (aggregations for charts) and `ORDER BY` (sorting) operations for columns in the ordering key can be made more memory efficient. -On identifying the subset of columns for the ordering key, they must be declared in a specific order. This order can significantly influence both the efficiency of the filtering on secondary key columns in queries and the compression ratio for the table's data files. In general, it's best to order the keys in ascending order of cardinality. This should be balanced against the fact that filtering on columns that appear later in the ordering key will be less efficient than filtering on those that appear earlier in the tuple. Balance these behaviors and consider your access patterns. Most importantly, test variants. For further understanding of ordering keys and how to optimize them, reading ["Choosing a Primary Key."](/concepts/best-practices/choosing-a-primary-key) is recommended for even deeper insights into primary key tuning and the internal data structures, see ["A practical introduction to primary indexes in ClickHouse."](/guides/cloud-oss/data-modelling/sparse-primary-indexes) +On identifying the subset of columns for the ordering key, they must be declared in a specific order. This order can significantly influence both the efficiency of the filtering on secondary key columns in queries and the compression ratio for the table's data files. In general, it's best to order the keys in ascending order of cardinality. This should be balanced against the fact that filtering on columns that appear later in the ordering key will be less efficient than filtering on those that appear earlier in the tuple. Balance these behaviors and consider your access patterns. Most importantly, test variants. For further understanding of ordering keys and how to optimize them, reading ["Choosing a Primary Key."](/core/concepts/best-practices/choosing-a-primary-key) is recommended for even deeper insights into primary key tuning and the internal data structures, see ["A practical introduction to primary indexes in ClickHouse."](/core/guides/clickhouse/data-modelling/sparse-primary-indexes) ### Changing the primary key {#changing-the-primary-key} @@ -554,7 +554,7 @@ In rare, very large workloads, these may differ, but most users should keep them #### Exchange and drop table {#exhange-and-drop-table} -The `EXCHANGE` statement is used to swap the names of the tables [atomically](/concepts/core-concepts/glossary#atomicity). The temporary table (now the old default table), can be dropped. +The `EXCHANGE` statement is used to swap the names of the tables [atomically](/core/concepts/core-concepts/glossary#atomicity). The temporary table (now the old default table), can be dropped. ```sql EXCHANGE TABLES otel_logs_temp AND otel_logs @@ -568,7 +568,7 @@ However, **the primary key can't be modified on an existing table**. Changing it The following process can be used to ensure the old data can be retained and still queried transparently (using its existing key in HyperDX, if required, while new data is exposed through a new table optimized for the users' access patterns. This approach ensures ingest pipelines don't need to be modified, with data still sent to the default table names, and all changes are transparent to users. -Backfilling existing data into a new table is rarely worthwhile at scale. The compute and IO cost is usually high, and doesn't justify the performance benefits. Instead, allow older data to expire [via TTL](/products/clickstack/ttl) while newer data benefits from the improved key. +Backfilling existing data into a new table is rarely worthwhile at scale. The compute and IO cost is usually high, and doesn't justify the performance benefits. Instead, allow older data to expire [via TTL](/products/clickstack/managing/ttl) while newer data benefits from the improved key. The same example of introducing the `SeverityText` as the first column in the primary key is used below. In this case, a table is created for new data, retaining the old table for historical analysis. @@ -588,7 +588,7 @@ ORDER BY (SeverityText, ServiceName, TimestampTime) #### Create a Merge table {#create-merge-table} -The [Merge engine](/reference/engines/table-engines/special/merge) (not to be confused with MergeTree) doesn't store data itself, but allows reading from any number of other tables simultaneously. +The [Merge engine](/core/reference/engines/table-engines/special/merge) (not to be confused with MergeTree) doesn't store data itself, but allows reading from any number of other tables simultaneously. ```sql CREATE TABLE otel_logs_merge @@ -664,7 +664,7 @@ If TTL policies are in place, which is recommended, tables with older primary ke -ClickStack can exploit [Incremental Materialized Views](/concepts/features/materialized-views/incremental-materialized-view) to accelerate visualizations that rely on aggregation-heavy queries, such as computing average request duration per minute over time. This feature can dramatically improve query performance and is typically most beneficial for larger deployments, around 10 TB per day and above, while enabling scaling into the petabytes-per-day range. Incremental Materialized Views are in Beta and should be used with care. +ClickStack can exploit [Incremental Materialized Views](/core/concepts/features/materialized-views/incremental-materialized-view) to accelerate visualizations that rely on aggregation-heavy queries, such as computing average request duration per minute over time. This feature can dramatically improve query performance and is typically most beneficial for larger deployments, around 10 TB per day and above, while enabling scaling into the petabytes-per-day range. Incremental Materialized Views are in Beta and should be used with care. For details on using this feature in ClickStack, see our dedicated guide ["ClickStack - Materialized Views."](/products/clickstack/managing/materialized-views) @@ -692,9 +692,9 @@ For pre-aggregation and metric acceleration, ClickStack strongly prefers **expli For additional background, see: -- [Guide on projections](/concepts/features/projections/projections) -- [When to use projections](/concepts/features/projections/projections#when-to-use-projections) -- [Materialized views versus projections](/concepts/features/projections/materialized-views-versus-projections) +- [Guide on projections](/core/concepts/features/projections/projections) +- [When to use projections](/core/concepts/features/projections/projections#when-to-use-projections) +- [Materialized views versus projections](/core/concepts/features/projections/materialized-views-versus-projections) ### Example projections {#example-projections} @@ -771,8 +771,8 @@ In practice, projections are best suited for workflows where you frequently pivo For a deeper background, see: -- [ClickHouse projections guide](/concepts/features/projections/projections#when-to-use-projections) -- [Materialized views vs projections](/concepts/features/projections/materialized-views-versus-projections) +- [ClickHouse projections guide](/core/concepts/features/projections/projections#when-to-use-projections) +- [Materialized views vs projections](/core/concepts/features/projections/materialized-views-versus-projections) ### Lightweight projections with `_part_offset` {#lightweight-projections} @@ -786,7 +786,7 @@ For a deeper background, see: Newer ClickHouse versions also support more lightweight projections that store only the projection sorting key plus a `_part_offset` pointer into the base table, rather than duplicating full rows. This can greatly reduce storage overhead, and recent improvements enable granule-level pruning, making them behave more like true secondary indexes. See: -- [Smarter storage with _part_offset](/concepts/features/projections/projections#smarter_storage_with_part_offset) +- [Smarter storage with _part_offset](/core/concepts/features/projections/projections#smarter_storage_with_part_offset) - [Blog explanation and examples](https://clickhouse.com/blog/projections-secondary-indices#example-combining-multiple-projection-indexes) ### Alternatives {#projection-alternatives} @@ -794,4 +794,4 @@ Newer ClickHouse versions also support more lightweight projections that store o If you need multiple ordering keys, projections aren't the only option. Depending on operational constraints and how you want ClickStack to route queries, consider: - Configuring your OpenTelemetry collector to write to two tables with different `ORDER BY` keys, and create separate ClickStack sources for each table. -- Create a materialized view as a copy pipeline i.e. attach a materialized view to the main table that selects raw rows into a secondary table with a different ordering key (a denormalization or routing pattern). Create a source for this target table. Examples can be found [here](/concepts/features/materialized-views/incremental-materialized-view#filtering-and-transformation). +- Create a materialized view as a copy pipeline i.e. attach a materialized view to the main table that selects raw rows into a secondary table with a different ordering key (a denormalization or routing pattern). Create a source for this target table. Examples can be found [here](/core/concepts/features/materialized-views/incremental-materialized-view#filtering-and-transformation). diff --git a/products/clickstack/managing/production.mdx b/products/clickstack/managing/production.mdx index 85a57c0b..2cc953a7 100644 --- a/products/clickstack/managing/production.mdx +++ b/products/clickstack/managing/production.mdx @@ -40,7 +40,7 @@ It's recommended to create a dedicated user for the OTel collector for ingestion ### Configure Time To Live (TTL) {#configure-ttl-managed} -Ensure the [Time To Live (TTL)](/products/clickstack/ttl) has been [appropriately configured](/products/clickstack/ttl#modifying-ttl) for your Managed ClickStack deployment. This controls how long data is retained for - the default of 3 days often needs to be modified. +Ensure the [Time To Live (TTL)](/products/clickstack/managing/ttl) has been [appropriately configured](/products/clickstack/managing/ttl#modifying-ttl) for your Managed ClickStack deployment. This controls how long data is retained for - the default of 3 days often needs to be modified. ### Estimating Resources {#estimating-resources} @@ -149,18 +149,18 @@ If you're managing your own ClickHouse instance, it's essential to enable **TLS* ClickHouse OSS provides robust security features out of the box. However, these require configuration: -- **Use TLS** via `tcp_port_secure` and `` in `config.xml`. See [guides/sre/configuring-tls](/concepts/features/security/tls/configuring-tls). +- **Use TLS** via `tcp_port_secure` and `` in `config.xml`. See [core/guides/sre/configuring-tls](/core/concepts/features/security/tls/configuring-tls). - **Set a strong password** for the `default` user or disable it. - **Avoid exposing ClickHouse externally** unless explicitly intended. By default, ClickHouse binds only to `localhost` unless `listen_host` is modified. -- **Use authentication methods** such as passwords, certificates, SSH keys, or [external authenticators](/concepts/features/security/external-authenticators). -- **Restrict access** using IP filtering and the `HOST` clause. See [sql-reference/statements/create/user#user-host](/reference/statements/create/user#user-host). -- **Enable Role-Based Access Control (RBAC)** to grant granular privileges. See [operations/access-rights](/concepts/features/security/access-rights). -- **Enforce quotas and limits** using [quotas](/concepts/features/configuration/server-config/quotas), [settings profiles](/concepts/features/configuration/settings/settings-profiles), and read-only modes. -- **Encrypt data at rest** and use secure external storage. See [operations/storing-data](/concepts/features/configuration/server-config/storing-data) and [cloud/security/CMEK](/products/cloud/guides/security/cmek). -- **Avoid hard coding credentials.** Use [named collections](/concepts/features/configuration/server-config/named-collections) or IAM roles in ClickHouse Cloud. -- **Audit access and queries** using [system logs](/reference/system-tables/query_log) and [session logs](/reference/system-tables/session_log). +- **Use authentication methods** such as passwords, certificates, SSH keys, or [external authenticators](/core/concepts/features/security/external-authenticators). +- **Restrict access** using IP filtering and the `HOST` clause. See [sql-reference/statements/create/user#user-host](/core/reference/statements/create/user#user-host). +- **Enable Role-Based Access Control (RBAC)** to grant granular privileges. See [operations/access-rights](/core/concepts/features/security/access-rights). +- **Enforce quotas and limits** using [quotas](/core/concepts/features/configuration/server-config/quotas), [settings profiles](/core/concepts/features/configuration/settings/settings-profiles), and read-only modes. +- **Encrypt data at rest** and use secure external storage. See [operations/storing-data](/core/concepts/features/configuration/server-config/storing-data) and [cloud/security/CMEK](/products/cloud/guides/security/cmek). +- **Avoid hard coding credentials.** Use [named collections](/core/concepts/features/configuration/server-config/named-collections) or IAM roles in ClickHouse Cloud. +- **Audit access and queries** using [system logs](/core/reference/system-tables/query_log) and [session logs](/core/reference/system-tables/session_log). -See also [external authenticators](/concepts/features/security/external-authenticators) and [query complexity settings](/concepts/features/configuration/settings/query-complexity) for managing users and ensuring query/resource limits. +See also [external authenticators](/core/concepts/features/security/external-authenticators) and [query complexity settings](/core/concepts/features/configuration/settings/query-complexity) for managing users and ensuring query/resource limits. #### User permissions for ClickStack UI {#user-permissions} @@ -175,7 +175,7 @@ By default, the `default` user in both OSS and ClickHouse Cloud will have these ### Configure Time To Live (TTL) {#configure-ttl} -Ensure the [Time To Live (TTL)](/products/clickstack/ttl) has been [appropriately configured](/products/clickstack/ttl#modifying-ttl) for your ClickStack deployment. This controls how long data is retained for - the default of 3 days often needs to be modified. +Ensure the [Time To Live (TTL)](/products/clickstack/managing/ttl) has been [appropriately configured](/products/clickstack/managing/ttl#modifying-ttl) for your ClickStack deployment. This controls how long data is retained for - the default of 3 days often needs to be modified. ### MongoDB guidelines {#mongodb-guidelines} diff --git a/products/clickstack/ttl.mdx b/products/clickstack/managing/ttl.mdx similarity index 86% rename from products/clickstack/ttl.mdx rename to products/clickstack/managing/ttl.mdx index 0dbd6e0b..29416929 100644 --- a/products/clickstack/ttl.mdx +++ b/products/clickstack/managing/ttl.mdx @@ -55,17 +55,17 @@ SETTINGS ttl_only_drop_parts = 1 Partitioning in ClickHouse allows data to be logically separated on disk according to a column or SQL expression. By separating data logically, each partition can be operated on independently e.g. deleted when it expires according to a TTL policy. -As shown in the above example, partitioning is specified on a table when it is initially defined via the `PARTITION BY` clause. This clause can contain an SQL expression on any column/s, the results of which will define which partition a row is sent to. This causes data to be logically associated (via a common folder name prefix) with each partition on the disk, which can then be queried in isolation. For the example above, the default `otel_logs` schema partitions by day using the expression `toDate(Timestamp).` As rows are inserted into ClickHouse, this expression will be evaluated against each row and routed to the resulting partition if it exists (if the row is the first for a day, the partition will be created). For further details on partitioning and its other applications, see ["Table Partitions"](/concepts/core-concepts/partitions). +As shown in the above example, partitioning is specified on a table when it is initially defined via the `PARTITION BY` clause. This clause can contain an SQL expression on any column/s, the results of which will define which partition a row is sent to. This causes data to be logically associated (via a common folder name prefix) with each partition on the disk, which can then be queried in isolation. For the example above, the default `otel_logs` schema partitions by day using the expression `toDate(Timestamp).` As rows are inserted into ClickHouse, this expression will be evaluated against each row and routed to the resulting partition if it exists (if the row is the first for a day, the partition will be created). For further details on partitioning and its other applications, see ["Table Partitions"](/core/concepts/core-concepts/partitions). The table schema also includes a `TTL TimestampTime + toIntervalDay(3)` and setting `ttl_only_drop_parts = 1`. The former clause ensures data will be dropped once it is older than 3 days. The setting `ttl_only_drop_parts = 1` enforces only expiring data parts where all of the data has expired (vs. attempting to partially delete rows). With partitioning ensuring data from separate days is never "merged," data can thus be efficiently dropped. :::important `ttl_only_drop_parts` -We recommend always using the setting [`ttl_only_drop_parts=1`](/reference/settings/merge-tree-settings#ttl_only_drop_parts). When this setting is enabled, ClickHouse drops a whole part when all rows in it are expired. Dropping whole parts instead of partial cleaning TTL-d rows (achieved through resource-intensive mutations when `ttl_only_drop_parts=0`) allows having shorter `merge_with_ttl_timeout` times and lower impact on system performance. If data is partitioned by the same unit at which you perform TTL expiration e.g. day, parts will naturally only contain data from the defined interval. This will ensure `ttl_only_drop_parts=1` can be efficiently applied. +We recommend always using the setting [`ttl_only_drop_parts=1`](/core/reference/settings/merge-tree-settings#ttl_only_drop_parts). When this setting is enabled, ClickHouse drops a whole part when all rows in it are expired. Dropping whole parts instead of partial cleaning TTL-d rows (achieved through resource-intensive mutations when `ttl_only_drop_parts=0`) allows having shorter `merge_with_ttl_timeout` times and lower impact on system performance. If data is partitioned by the same unit at which you perform TTL expiration e.g. day, parts will naturally only contain data from the defined interval. This will ensure `ttl_only_drop_parts=1` can be efficiently applied. ::: -By default, data with an expired TTL is removed when ClickHouse [merges data parts](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage). When ClickHouse detects that data is expired, it performs an off-schedule merge. +By default, data with an expired TTL is removed when ClickHouse [merges data parts](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-data-storage). When ClickHouse detects that data is expired, it performs an off-schedule merge. **TTL schedule** @@ -77,7 +77,7 @@ TTLs aren't applied immediately but rather on a schedule, as noted above. The Me To modify TTL you can either: -1. **Modify the table schemas (recommended)**. This requires connecting to the ClickHouse instance e.g. using the [clickhouse-client](/integrations/connectors/data-integrations/drivers-and-interfaces/cli) or [Cloud SQL Console](/products/cloud/features/sql-console-features/sql-console). For example, we can modify the TTL for the `otel_logs` table using the following DDL: +1. **Modify the table schemas (recommended)**. This requires connecting to the ClickHouse instance e.g. using the [clickhouse-client](/core/concepts/features/interfaces/cli) or [Cloud SQL Console](/products/cloud/features/sql-console-features/sql-console). For example, we can modify the TTL for the `otel_logs` table using the following DDL: ```sql ALTER TABLE default.otel_logs diff --git a/products/clickstack/migration/elastic/concepts.mdx b/products/clickstack/migration/elastic/concepts.mdx index 779cca8d..303fefe2 100644 --- a/products/clickstack/migration/elastic/concepts.mdx +++ b/products/clickstack/migration/elastic/concepts.mdx @@ -41,29 +41,29 @@ ClickHouse and Elasticsearch organize and query data using different underlying | **Elasticsearch** | **ClickHouse / SQL** | **Description** | |-------------------|----------------------|------------------| -| **Field** | **Column** | The basic unit of data, holding one or more values of a specific type. Elasticsearch fields can store primitives as well as arrays and objects. Fields can have only one type. ClickHouse also supports arrays and objects (`Tuples`, `Maps`, `Nested`), as well as dynamic types like [`Variant`](/reference/data-types/variant) and [`Dynamic`](/reference/data-types/dynamic) which allow a column to have multiple types. | -| **Document** | **Row** | A collection of fields (columns). Elasticsearch documents are more flexible by default, with new fields added dynamically based on the data (type is inferred from ). ClickHouse rows are schema-bound by default, with users needing to insert all columns for a row or subset. The [`JSON`](/integrations/connectors/data-ingestion/data-formats/json/intro) type in ClickHouse supports equivalent semi-structured dynamic column creation based on the inserted data. | +| **Field** | **Column** | The basic unit of data, holding one or more values of a specific type. Elasticsearch fields can store primitives as well as arrays and objects. Fields can have only one type. ClickHouse also supports arrays and objects (`Tuples`, `Maps`, `Nested`), as well as dynamic types like [`Variant`](/core/reference/data-types/variant) and [`Dynamic`](/core/reference/data-types/dynamic) which allow a column to have multiple types. | +| **Document** | **Row** | A collection of fields (columns). Elasticsearch documents are more flexible by default, with new fields added dynamically based on the data (type is inferred from ). ClickHouse rows are schema-bound by default, with users needing to insert all columns for a row or subset. The [`JSON`](/core/guides/clickhouse/data-formats/json/intro) type in ClickHouse supports equivalent semi-structured dynamic column creation based on the inserted data. | | **Index** | **Table** | The unit of query execution and storage. In both systems, queries run against indices or tables, which store rows/documents. | | *Implicit* | Schema (SQL) | SQL schemas group tables into namespaces, often used for access control. Elasticsearch and ClickHouse don't have schemas, but both support row-and table-level security via roles and RBAC. | | **Cluster** | **Cluster / Database** | Elasticsearch clusters are runtime instances that manage one or more indices. In ClickHouse, databases organize tables within a logical namespace, providing the same logical grouping as a cluster in Elasticsearch. A ClickHouse cluster is a distributed set of nodes, similar to Elasticsearch, but is decoupled and independent of the data itself. | ### Data modeling and flexibility {#data-modeling-and-flexibility} -Elasticsearch is known for its schema flexibility through [dynamic mappings](https://www.elastic.co/docs/manage-data/data-store/mapping/dynamic-mapping). Fields are created as documents are ingested, and types are inferred automatically - unless a schema is specified. ClickHouse is stricter by default — tables are defined with explicit schemas — but offers flexibility through [`Dynamic`](/reference/data-types/dynamic), [`Variant`](/reference/data-types/variant), and [`JSON`](/integrations/connectors/data-ingestion/data-formats/json/intro) types. These enable ingestion of semi-structured data, with dynamic column creation and type inference similar to Elasticsearch. Similarly, the [`Map`](/reference/data-types/map) type allows arbitrary key-value pairs to be stored - although a single type is enforced for both the key and value. +Elasticsearch is known for its schema flexibility through [dynamic mappings](https://www.elastic.co/docs/manage-data/data-store/mapping/dynamic-mapping). Fields are created as documents are ingested, and types are inferred automatically - unless a schema is specified. ClickHouse is stricter by default — tables are defined with explicit schemas — but offers flexibility through [`Dynamic`](/core/reference/data-types/dynamic), [`Variant`](/core/reference/data-types/variant), and [`JSON`](/core/guides/clickhouse/data-formats/json/intro) types. These enable ingestion of semi-structured data, with dynamic column creation and type inference similar to Elasticsearch. Similarly, the [`Map`](/core/reference/data-types/map) type allows arbitrary key-value pairs to be stored - although a single type is enforced for both the key and value. -ClickHouse's approach to type flexibility is more transparent and controlled. Unlike Elasticsearch, where type conflicts can cause ingestion errors, ClickHouse allows mixed-type data in [`Variant`](/reference/data-types/variant) columns and supports schema evolution through the use of the [`JSON`](/integrations/connectors/data-ingestion/data-formats/json/intro) type. +ClickHouse's approach to type flexibility is more transparent and controlled. Unlike Elasticsearch, where type conflicts can cause ingestion errors, ClickHouse allows mixed-type data in [`Variant`](/core/reference/data-types/variant) columns and supports schema evolution through the use of the [`JSON`](/core/guides/clickhouse/data-formats/json/intro) type. -If not using [`JSON`](/integrations/connectors/data-ingestion/data-formats/json/intro), the schema is statically-defined. If values aren't provided for a row, they will either be defined as [`Nullable`](/reference/data-types/nullable) (not used in ClickStack) or revert to the default value for the type e.g. empty value for `String`. +If not using [`JSON`](/core/guides/clickhouse/data-formats/json/intro), the schema is statically-defined. If values aren't provided for a row, they will either be defined as [`Nullable`](/core/reference/data-types/nullable) (not used in ClickStack) or revert to the default value for the type e.g. empty value for `String`. ### Ingestion and transformation {#ingestion-and-transformation} -Elasticsearch uses ingest pipelines with processors (e.g., `enrich`, `rename`, `grok`) to transform documents before indexing. In ClickHouse, similar functionality is achieved using [**incremental materialized views**](/concepts/features/materialized-views/incremental-materialized-view), which can [filter, transform](/concepts/features/materialized-views/incremental-materialized-view#filtering-and-transformation), or [enrich](/concepts/features/materialized-views/incremental-materialized-view#lookup-table) incoming data and insert results into target tables. You can also insert data to a `Null` table engine if you only need the output of the materialized view to be stored. This means that only the results of any materialized views are preserved, but the original data is discarded - thus saving storage space. +Elasticsearch uses ingest pipelines with processors (e.g., `enrich`, `rename`, `grok`) to transform documents before indexing. In ClickHouse, similar functionality is achieved using [**incremental materialized views**](/core/concepts/features/materialized-views/incremental-materialized-view), which can [filter, transform](/core/concepts/features/materialized-views/incremental-materialized-view#filtering-and-transformation), or [enrich](/core/concepts/features/materialized-views/incremental-materialized-view#lookup-table) incoming data and insert results into target tables. You can also insert data to a `Null` table engine if you only need the output of the materialized view to be stored. This means that only the results of any materialized views are preserved, but the original data is discarded - thus saving storage space. -For enrichment, Elasticsearch supports dedicated [enrich processors](https://www.elastic.co/docs/reference/enrich-processor/enrich-processor) to add context to documents. In ClickHouse, [**dictionaries**](/concepts/features/dictionaries) can be used at both [query time](/concepts/features/dictionaries#query-time-enrichment) and [ingest time](/concepts/features/dictionaries#index-time-enrichment) to enrich rows - for example, to [map IPs to locations](/guides/observability/build-your-own/schema-design#using-ip-dictionaries) or apply [user agent lookups](/guides/observability/build-your-own/schema-design#using-regex-dictionaries-user-agent-parsing) on insert. +For enrichment, Elasticsearch supports dedicated [enrich processors](https://www.elastic.co/docs/reference/enrich-processor/enrich-processor) to add context to documents. In ClickHouse, [**dictionaries**](/core/concepts/features/dictionaries) can be used at both [query time](/core/concepts/features/dictionaries#query-time-enrichment) and [ingest time](/core/concepts/features/dictionaries#index-time-enrichment) to enrich rows - for example, to [map IPs to locations](/core/guides/use-cases/observability/build-your-own/schema-design#using-ip-dictionaries) or apply [user agent lookups](/core/guides/use-cases/observability/build-your-own/schema-design#using-regex-dictionaries-user-agent-parsing) on insert. ### Query languages {#query-languages} -Elasticsearch supports a [number of query languages](https://www.elastic.co/docs/explore-analyze/query-filter/languages) including [DSL](https://www.elastic.co/docs/explore-analyze/query-filter/languages/querydsl), [ES|QL](https://www.elastic.co/docs/explore-analyze/query-filter/languages/esql), [EQL](https://www.elastic.co/docs/explore-analyze/query-filter/languages/eql) and [KQL](https://www.elastic.co/docs/explore-analyze/query-filter/languages/kql) (Lucene style) queries, but has limited support for joins — only **left outer joins** are available via [`ES|QL`](https://www.elastic.co/guide/en/elasticsearch/reference/8.x/esql-commands.html#esql-lookup-join). ClickHouse supports **full SQL syntax**, including [all join types](/reference/statements/select/join#supported-types-of-join), [window functions](/reference/functions/window-functions), subqueries (and correlated), and CTEs. This is a major advantage if you need to correlate between observability signals and business or infrastructure data. +Elasticsearch supports a [number of query languages](https://www.elastic.co/docs/explore-analyze/query-filter/languages) including [DSL](https://www.elastic.co/docs/explore-analyze/query-filter/languages/querydsl), [ES|QL](https://www.elastic.co/docs/explore-analyze/query-filter/languages/esql), [EQL](https://www.elastic.co/docs/explore-analyze/query-filter/languages/eql) and [KQL](https://www.elastic.co/docs/explore-analyze/query-filter/languages/kql) (Lucene style) queries, but has limited support for joins — only **left outer joins** are available via [`ES|QL`](https://www.elastic.co/guide/en/elasticsearch/reference/8.x/esql-commands.html#esql-lookup-join). ClickHouse supports **full SQL syntax**, including [all join types](/core/reference/statements/select/join#supported-types-of-join), [window functions](/core/reference/functions/window-functions), subqueries (and correlated), and CTEs. This is a major advantage if you need to correlate between observability signals and business or infrastructure data. In ClickStack, [the UI provides a Lucene-compatible search interface](/products/clickstack/features/search) for ease of transition, alongside full SQL support via the ClickHouse backend. This syntax is comparable to the [Elastic query string](https://www.elastic.co/docs/reference/query-languages/query-dsl/query-dsl-query-string-query#query-string-syntax) syntax. For an exact comparison of this syntax, see ["Searching in ClickStack and Elastic"](/products/clickstack/migration/elastic/search). @@ -93,11 +93,11 @@ Importantly, Elasticsearch stores the full original document in [`_source`](http In Elasticsearch, [index mappings](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html) (equivalent to table schemas in ClickHouse) control the type of fields and the data structures used for this persistence and querying. -ClickHouse, by contrast, is **column-oriented** — every column is stored independently but always sorted by the table's primary/ordering key. This ordering enables [sparse primary indexes](/concepts/core-concepts/primary-indexes), which allow ClickHouse to skip over data during query execution efficiently. When queries filter by primary key fields, ClickHouse reads only the relevant parts of each column, significantly reducing disk I/O and improving performance — even without a full index on every column. +ClickHouse, by contrast, is **column-oriented** — every column is stored independently but always sorted by the table's primary/ordering key. This ordering enables [sparse primary indexes](/core/concepts/core-concepts/primary-indexes), which allow ClickHouse to skip over data during query execution efficiently. When queries filter by primary key fields, ClickHouse reads only the relevant parts of each column, significantly reducing disk I/O and improving performance — even without a full index on every column. -ClickHouse also supports [**skip indexes**](/concepts/features/performance/skip-indexes/skipping-indexes), which accelerate filtering by precomputing index data for selected columns. These must be explicitly defined but can significantly improve performance. Additionally, ClickHouse lets you specify [compression codecs](/guides/observability/build-your-own/schema-design#using-codecs) and compression algorithms per column — something Elasticsearch doesn't support (its [compression](https://www.elastic.co/docs/reference/elasticsearch/index-settings/index-modules) only applies to `_source` JSON storage). +ClickHouse also supports [**skip indexes**](/core/concepts/features/performance/skip-indexes/skipping-indexes), which accelerate filtering by precomputing index data for selected columns. These must be explicitly defined but can significantly improve performance. Additionally, ClickHouse lets you specify [compression codecs](/core/guides/use-cases/observability/build-your-own/schema-design#using-codecs) and compression algorithms per column — something Elasticsearch doesn't support (its [compression](https://www.elastic.co/docs/reference/elasticsearch/index-settings/index-modules) only applies to `_source` JSON storage). ClickHouse also supports sharding, but its model is designed to favor **vertical scaling**. A single shard can store **trillions of rows** and continues to perform efficiently as long as memory, CPU, and disk permit. Unlike Elasticsearch, there is **no hard row limit** per shard. Shards in ClickHouse are logical — effectively individual tables — and don't require partitioning unless the dataset exceeds the capacity of a single node. This typically occurs due to disk size constraints, with sharding ① introduced only when horizontal scale-out is necessary - reducing complexity and overhead. In this case, similar to Elasticsearch, a shard will hold a subset of the data. The data within a single shard is organized as a collection of ② immutable data parts containing ③ several data structures. @@ -106,7 +106,7 @@ Processing within a ClickHouse shard is **fully parallelized**, and users are en **Insert processing in ClickHouse** -Inserts in ClickHouse are **synchronous by default** — the write is acknowledged only after commit — but can be configured for **asynchronous inserts** to match Elastic-like buffering and batching. If [asynchronous data inserts](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse) are used, Ⓐ newly inserted rows first go into an Ⓑ in-memory insert buffer that is flushed by default once every 200 milliseconds. If multiple shards are used, a [distributed table](/reference/engines/table-engines/special/distributed) is used for routing newly inserted rows to their target shard. A new part is written for the shard on disk. +Inserts in ClickHouse are **synchronous by default** — the write is acknowledged only after commit — but can be configured for **asynchronous inserts** to match Elastic-like buffering and batching. If [asynchronous data inserts](https://clickhouse.com/blog/asynchronous-data-inserts-in-clickhouse) are used, Ⓐ newly inserted rows first go into an Ⓑ in-memory insert buffer that is flushed by default once every 200 milliseconds. If multiple shards are used, a [distributed table](/core/reference/engines/table-engines/special/distributed) is used for routing newly inserted rows to their target shard. A new part is written for the shard on disk. ### Distribution and replication {#distribution-and-replication} @@ -115,7 +115,7 @@ While both Elasticsearch and ClickHouse use clusters, shards, and replicas to en Elasticsearch uses a **primary-secondary** model for replication. When data is written to a primary shard, it is synchronously copied to one or more replicas. These replicas are themselves full shards distributed across nodes to ensure redundancy. Elasticsearch acknowledges writes only after all required replicas confirm the operation — a model that provides near **sequential consistency**, although **dirty reads** from replicas are possible before full sync. A **master node** coordinates the cluster, managing shard allocation, health, and leader election. -Conversely, ClickHouse employs **eventual consistency** by default, coordinated by **Keeper** - a lightweight alternative to ZooKeeper. Writes can be sent to any replica directly or via a [**distributed table**](/reference/engines/table-engines/special/distributed), which automatically selects a replica. Replication is asynchronous - changes are propagated to other replicas after the write is acknowledged. For stricter guarantees, ClickHouse [supports **sequential consistency**](/get-started/setup/migration-guides/postgres/appendix#sequential-consistency), where writes are acknowledged only after being committed across replicas, though this mode is rarely used due to its performance impact. Distributed tables unify access across multiple shards, forwarding `SELECT` queries to all shards and merging the results. For `INSERT` operations, they balance the load by evenly routing data across shards. ClickHouse's replication is highly flexible: any replica (a copy of a shard) can accept writes, and all changes are asynchronously synchronized to others. This architecture allows uninterrupted query serving during failures or maintenance, with resynchronization handled automatically - eliminating the need for primary-secondary enforcement at the data layer. +Conversely, ClickHouse employs **eventual consistency** by default, coordinated by **Keeper** - a lightweight alternative to ZooKeeper. Writes can be sent to any replica directly or via a [**distributed table**](/core/reference/engines/table-engines/special/distributed), which automatically selects a replica. Replication is asynchronous - changes are propagated to other replicas after the write is acknowledged. For stricter guarantees, ClickHouse [supports **sequential consistency**](/core/get-started/setup/migration-guides/postgres/appendix#sequential-consistency), where writes are acknowledged only after being committed across replicas, though this mode is rarely used due to its performance impact. Distributed tables unify access across multiple shards, forwarding `SELECT` queries to all shards and merging the results. For `INSERT` operations, they balance the load by evenly routing data across shards. ClickHouse's replication is highly flexible: any replica (a copy of a shard) can accept writes, and all changes are asynchronously synchronized to others. This architecture allows uninterrupted query serving during failures or maintenance, with resynchronization handled automatically - eliminating the need for primary-secondary enforcement at the data layer. **ClickHouse Cloud** @@ -138,7 +138,7 @@ Index routing in Elasticsearch ensures specific documents are always routed to s ### Aggregations and execution model {#aggregations-execution-model} -While both systems support the aggregation of data, ClickHouse offers significantly [more functions](/reference/functions/aggregate-functions/reference), including statistical, approximate, and specialized analytical functions. +While both systems support the aggregation of data, ClickHouse offers significantly [more functions](/core/reference/functions/aggregate-functions/reference), including statistical, approximate, and specialized analytical functions. In observability use cases, one of the most common applications for aggregations is to count how often specific log messages or events occur (and alert in case the frequency is unusual). @@ -152,7 +152,7 @@ Elasticsearch also requires a [`size` setting](https://www.elastic.co/guide/en/e ClickHouse, by contrast, performs exact aggregations out of the box. Functions like `count(*)` return accurate results without needing configuration tweaks, making query behavior simpler and more predictable. -ClickHouse imposes no size limits. You can perform unbounded group-by queries across large datasets. If memory thresholds are exceeded, ClickHouse [can spill to disk](/reference/statements/select/group-by#group-by-in-external-memory). Aggregations that group by a prefix of the primary key are especially efficient, often running with minimal memory consumption. +ClickHouse imposes no size limits. You can perform unbounded group-by queries across large datasets. If memory thresholds are exceeded, ClickHouse [can spill to disk](/core/reference/statements/select/group-by#group-by-in-external-memory). Aggregations that group by a prefix of the primary key are especially efficient, often running with minimal memory consumption. #### Execution model {#execution-model} @@ -166,7 +166,7 @@ On a single node, execution lanes split data into independent ranges allowing co Query execution is further parallelized by: 1. **SIMD vectorization**: operations on columnar data use [CPU SIMD instructions](https://en.wikipedia.org/wiki/Single_instruction,_multiple_data) (e.g., [AVX512](https://en.wikipedia.org/wiki/AVX-512)), allowing batch processing of values. -2. **Cluster-level parallelism**: in distributed setups, each node performs query processing locally. [Partial aggregation states](https://clickhouse.com/blog/aggregate-functions-combinators-in-clickhouse-for-arrays-maps-and-states#working-with-aggregation-states) are streamed to the initiating node and merged. If the query's `GROUP BY` keys align with the sharding keys, merging can be [minimized or avoided entirely](/reference/settings/session-settings#distributed_group_by_no_merge). +2. **Cluster-level parallelism**: in distributed setups, each node performs query processing locally. [Partial aggregation states](https://clickhouse.com/blog/aggregate-functions-combinators-in-clickhouse-for-arrays-maps-and-states#working-with-aggregation-states) are streamed to the initiating node and merged. If the query's `GROUP BY` keys align with the sharding keys, merging can be [minimized or avoided entirely](/core/reference/settings/session-settings#distributed_group_by_no_merge).
    This model enables efficient scaling across cores and nodes, making ClickHouse well-suited for large-scale analytics. The use of *partial aggregation states* allows intermediate results from different threads and nodes to be merged without loss of accuracy. @@ -212,7 +212,7 @@ Continuous transforms use transform [checkpoints](https://www.elastic.co/guide/e ClickHouse takes a fundamentally different approach. Rather than re-aggregating data periodically, ClickHouse supports **incremental materialized views**, which transform and aggregate data **at insert time**. When new data is written to a source table, a materialized view executes a pre-defined SQL aggregation query on only the new **inserted blocks**, and writes the aggregated results to a target table. -This model is made possible by ClickHouse's support for [**partial aggregate states**](/reference/data-types/aggregatefunction) — intermediate representations of aggregation functions that can be stored and later merged. This allows you to maintain partially aggregated results that are fast to query and cheap to update. Since the aggregation happens as data arrives, there's no need to run expensive recurring jobs or re-summarize older data. +This model is made possible by ClickHouse's support for [**partial aggregate states**](/core/reference/data-types/aggregatefunction) — intermediate representations of aggregation functions that can be stored and later merged. This allows you to maintain partially aggregated results that are fast to query and cheap to update. Since the aggregation happens as data arrives, there's no need to run expensive recurring jobs or re-summarize older data. We sketch the mechanics of incremental materialized views abstractly (note that we use the blue color for all rows belonging to the same group for which we want to pre-calculate aggregate values): @@ -220,7 +220,7 @@ We sketch the mechanics of incremental materialized views abstractly (note that In the diagram above, the materialized view's source table already contains a data part storing some `blue` rows (1 to 10) belonging to the same group. For this group, there also already exists a data part in the view's target table storing a [partial aggregation state](https://www.youtube.com/watch?v=QDAJTKZT8y4) for the `blue` group. When ① ② ③ inserts into the source table with new rows take place, a corresponding source table data part is created for each insert, and, in parallel, (just) for each block of newly inserted rows, a partial aggregation state is calculated and inserted in the form of a data part into the materialized view's target table. ④ During background part merges, the partial aggregation states are merged, resulting in incremental data aggregation. -Note that all [aggregate functions](/reference/functions/aggregate-functions/reference) (over 90 of them), including their combinations with aggregate function [combinators](https://www.youtube.com/watch?v=7ApwD0cfAFI), support [partial aggregation states](/reference/data-types/aggregatefunction). +Note that all [aggregate functions](/core/reference/functions/aggregate-functions/reference) (over 90 of them), including their combinations with aggregate function [combinators](https://www.youtube.com/watch?v=7ApwD0cfAFI), support [partial aggregation states](/core/reference/data-types/aggregatefunction). For a more concrete example of Elasticsearch vs ClickHouse for incremental aggregates, see this [example](https://github.com/ClickHouse/examples/tree/main/blog-examples/clickhouse-vs-elasticsearch/continuous-data-transformation#continuous-data-transformation-example). @@ -236,16 +236,16 @@ This model is particularly powerful for observability use cases where you need t ### Lakehouse support {#lakehouse-support} -ClickHouse and Elasticsearch take fundamentally different approaches to lakehouse integration. ClickHouse is a fully-fledged query execution engine capable of executing queries over lakehouse formats such as [Iceberg](/reference/functions/table-functions/iceberg) and [Delta Lake](/reference/functions/table-functions/deltalake), as well as integrating with data lake catalogs such as [AWS Glue](/guides/data-warehousing/glue-catalog) and [Unity catalog](/guides/data-warehousing/unity-catalog). These formats rely on efficient querying of [Parquet](/reference/formats/Parquet/Parquet) files, which ClickHouse fully supports. ClickHouse can read both Iceberg and Delta Lake tables directly, enabling seamless integration with modern data lake architectures. +ClickHouse and Elasticsearch take fundamentally different approaches to lakehouse integration. ClickHouse is a fully-fledged query execution engine capable of executing queries over lakehouse formats such as [Iceberg](/core/reference/functions/table-functions/iceberg) and [Delta Lake](/core/reference/functions/table-functions/deltalake), as well as integrating with data lake catalogs such as [AWS Glue](/core/guides/use-cases/data-warehousing/glue-catalog) and [Unity catalog](/core/guides/use-cases/data-warehousing/unity-catalog). These formats rely on efficient querying of [Parquet](/core/reference/formats/Parquet/Parquet) files, which ClickHouse fully supports. ClickHouse can read both Iceberg and Delta Lake tables directly, enabling seamless integration with modern data lake architectures. In contrast, Elasticsearch is tightly coupled to its internal data format and Lucene-based storage engine. It can't directly query lakehouse formats or Parquet files, limiting its ability to participate in modern data lake architectures. Elasticsearch requires data to be transformed and loaded into its proprietary format before it can be queried. ClickHouse's lakehouse capabilities extend beyond just reading data: -- **Data catalog integration**: ClickHouse supports integration with data catalogs like [AWS Glue](/guides/data-warehousing/glue-catalog), enabling automatic discovery and access to tables in object storage. -- **Object storage support**: native support for querying data residing in [S3](/reference/engines/table-engines/integrations/s3), [GCS](/reference/functions/table-functions/gcs), and [Azure Blob Storage](/reference/engines/table-engines/integrations/azureBlobStorage) without requiring data movement. -- **Query federation**: the ability to correlate data across multiple sources, including lakehouse tables, traditional databases, and ClickHouse tables using [external dictionaries](/concepts/features/dictionaries) and [table functions](/reference/functions/table-functions). -- **Incremental loading**: support for continuous loading from lakehouse tables into local [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables, using features like [S3Queue](/reference/engines/table-engines/integrations/s3queue) and [ClickPipes](/integrations/clickpipes/home). -- **Performance optimization**: distributed query execution over lakehouse data using [cluster functions](/reference/functions/table-functions/cluster) for improved performance. +- **Data catalog integration**: ClickHouse supports integration with data catalogs like [AWS Glue](/core/guides/use-cases/data-warehousing/glue-catalog), enabling automatic discovery and access to tables in object storage. +- **Object storage support**: native support for querying data residing in [S3](/core/reference/engines/table-engines/integrations/s3), [GCS](/core/reference/functions/table-functions/gcs), and [Azure Blob Storage](/core/reference/engines/table-engines/integrations/azureBlobStorage) without requiring data movement. +- **Query federation**: the ability to correlate data across multiple sources, including lakehouse tables, traditional databases, and ClickHouse tables using [external dictionaries](/core/concepts/features/dictionaries) and [table functions](/core/reference/functions/table-functions). +- **Incremental loading**: support for continuous loading from lakehouse tables into local [MergeTree](/core/reference/engines/table-engines/mergetree-family/mergetree) tables, using features like [S3Queue](/core/reference/engines/table-engines/integrations/s3queue) and [ClickPipes](/integrations/clickpipes/home). +- **Performance optimization**: distributed query execution over lakehouse data using [cluster functions](/core/reference/functions/table-functions/cluster) for improved performance. These capabilities make ClickHouse a natural fit for organizations adopting lakehouse architectures, allowing them to leverage both the flexibility of data lakes and the performance of a columnar database. diff --git a/products/clickstack/migration/elastic/migrating-data.mdx b/products/clickstack/migration/elastic/migrating-data.mdx index 61731c7a..5c5901f0 100644 --- a/products/clickstack/migration/elastic/migrating-data.mdx +++ b/products/clickstack/migration/elastic/migrating-data.mdx @@ -58,8 +58,8 @@ Configure Elastic's TTL settings to match your desired retention period. Set up For organizations requiring longer retention periods: - Continue running both systems in parallel until all data has expired from Elastic -- ClickStack [tiered storage](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes) capabilities can help manage long-term data efficiently. -- Consider using [materialized views](/concepts/features/materialized-views/incremental-materialized-view) to maintain aggregated or filtered historical data while allowing raw data to expire. +- ClickStack [tiered storage](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes) capabilities can help manage long-term data efficiently. +- Consider using [materialized views](/core/concepts/features/materialized-views/incremental-materialized-view) to maintain aggregated or filtered historical data while allowing raw data to expire. ### Migration timeline {#migration-timeline} @@ -81,9 +81,9 @@ We recommend starting with a **single shard** and scaling vertically. This confi - **ClickHouse OSS**: In self-managed deployments, we recommend: - Starting with a single shard - Scaling vertically with additional CPU and RAM - - Using [tiered storage](/guides/observability/build-your-own/managing-data#storage-tiers) to extend local disk with S3-compatible object storage - - Using [`ReplicatedMergeTree`](/reference/engines/table-engines/mergetree-family/replication) if high availability is required - - For fault tolerance, [1 replica of your shard](/reference/engines/table-engines/mergetree-family/replication) is typically sufficient in Observability workloads. + - Using [tiered storage](/core/guides/use-cases/observability/build-your-own/managing-data#storage-tiers) to extend local disk with S3-compatible object storage + - Using [`ReplicatedMergeTree`](/core/reference/engines/table-engines/mergetree-family/replication) if high availability is required + - For fault tolerance, [1 replica of your shard](/core/reference/engines/table-engines/mergetree-family/replication) is typically sufficient in Observability workloads. ### When to shard {#when-to-shard} @@ -93,7 +93,7 @@ Sharding may be necessary if: - You need tenant isolation or regional data separation - Your total dataset is too large for a single server, even with object storage -If you do need to shard, refer to [Horizontal scaling](/guides/oss/deployment-and-scaling/examples/2-shards-1-replica) for guidance on shard keys and distributed table setup. +If you do need to shard, refer to [Horizontal scaling](/core/guides/oss/deployment-and-scaling/examples/2-shards-1-replica) for guidance on shard keys and distributed table setup. ### Retention and TTL {#retention-and-ttl} @@ -517,19 +517,19 @@ Note that: - `date` → `DateTime` - `boolean` → `UInt8` - `long` → `Int64` - - `ip` → `Array(Variant(IPv4, IPv6))`. We use a [`Variant(IPv4, IPv6)`](/reference/data-types/variant) here as the field contains a mixture of [`IPv4`](/reference/data-types/ipv4) and [`IPv6`](/reference/data-types/ipv6). + - `ip` → `Array(Variant(IPv4, IPv6))`. We use a [`Variant(IPv4, IPv6)`](/core/reference/data-types/variant) here as the field contains a mixture of [`IPv4`](/core/reference/data-types/ipv4) and [`IPv6`](/core/reference/data-types/ipv6). - `object` → `JSON` for the syslog object whose structure is unpredictable. - Columns `host.ip` and `host.mac` are explicit `Array` type, unlike in Elasticsearch where all types are arrays. - An `ORDER BY` clause is added using timestamp and hostname for efficient time-based queries - `MergeTree`, which is optimal for log data, is used as the engine type -**This approach of statically defining the schema and using the JSON type selectively where required [is recommended](/integrations/connectors/data-ingestion/data-formats/json/schema#handling-semi-structured-dynamic-structures).** +**This approach of statically defining the schema and using the JSON type selectively where required [is recommended](/core/guides/clickhouse/data-formats/json/schema#handling-semi-structured-dynamic-structures).** This strict schema has a number of benefits: - **Data validation** – enforcing a strict schema avoids the risk of column explosion, outside of specific structures. -- **Avoids risk of column explosion**: although the JSON type scales to potentially thousands of columns, where subcolumns are stored as dedicated columns, this can lead to a column file explosion where an excessive number of column files are created that impacts performance. To mitigate this, the underlying [Dynamic type](/reference/data-types/dynamic) used by JSON offers a [`max_dynamic_paths`](/reference/data-types/newjson#reading-json-paths-as-sub-columns) parameter, which limits the number of unique paths stored as separate column files. Once the threshold is reached, additional paths are stored in a shared column file using a compact encoded format, maintaining performance and storage efficiency while supporting flexible data ingestion. Accessing this shared column file is, however, not as performant. Note, however, that the JSON column can be used with [type hints](/integrations/connectors/data-ingestion/data-formats/json/schema#using-type-hints-and-skipping-paths). "Hinted" columns will deliver the same performance as dedicated columns. -- **Simpler introspection of paths and types**: although the JSON type supports [introspection functions](/reference/data-types/newjson#introspection-functions) to determine the types and paths that have been inferred, static structures can be simpler to explore e.g. with `DESCRIBE`. +- **Avoids risk of column explosion**: although the JSON type scales to potentially thousands of columns, where subcolumns are stored as dedicated columns, this can lead to a column file explosion where an excessive number of column files are created that impacts performance. To mitigate this, the underlying [Dynamic type](/core/reference/data-types/dynamic) used by JSON offers a [`max_dynamic_paths`](/core/reference/data-types/newjson#reading-json-paths-as-sub-columns) parameter, which limits the number of unique paths stored as separate column files. Once the threshold is reached, additional paths are stored in a shared column file using a compact encoded format, maintaining performance and storage efficiency while supporting flexible data ingestion. Accessing this shared column file is, however, not as performant. Note, however, that the JSON column can be used with [type hints](/core/guides/clickhouse/data-formats/json/schema#using-type-hints-and-skipping-paths). "Hinted" columns will deliver the same performance as dedicated columns. +- **Simpler introspection of paths and types**: although the JSON type supports [introspection functions](/core/reference/data-types/newjson#introspection-functions) to determine the types and paths that have been inferred, static structures can be simpler to explore e.g. with `DESCRIBE`.
    Alternatively, you can simply create a table with one `JSON` column. @@ -550,7 +550,7 @@ We provide a type hint for the `host.name` and `timestamp` columns in the JSON d This latter approach, while simpler, is best for prototyping and data engineering tasks. For production, use `JSON` only for dynamic sub structures where necessary. -For more details on using the JSON type in schemas, and how to efficiently apply it, we recommend the guide ["Designing your schema"](/integrations/connectors/data-ingestion/data-formats/json/schema). +For more details on using the JSON type in schemas, and how to efficiently apply it, we recommend the guide ["Designing your schema"](/core/guides/clickhouse/data-formats/json/schema).
    ### Install `elasticdump` {#install-elasticdump} @@ -572,7 +572,7 @@ Where possible, we recommend running both ClickHouse, Elasticsearch, and `elasti ### Install ClickHouse client {#install-clickhouse-client} -Ensure ClickHouse is [installed on the server](/get-started/setup/self-managed/install) on which `elasticdump` is located. **Don't start a ClickHouse server** - these steps only require the client. +Ensure ClickHouse is [installed on the server](/core/get-started/setup/install) on which `elasticdump` is located. **Don't start a ClickHouse server** - these steps only require the client. ### Stream data {#stream-data} @@ -609,7 +609,7 @@ Our ClickHouse client parameters here (aside from credentials): - `max_insert_block_size=1000` - ClickHouse client will send data once this number of rows is reached. Increasing improves throughput at the expense of time to formulate a block - thus increasing time till data appears in ClickHouse. - `min_insert_block_size_bytes=0` - Turns off server block squashing by bytes. - `min_insert_block_size_rows=1000` - Squashes blocks from clients on the server side. In this case, we set to `max_insert_block_size` so rows appear immediately. Increase to improve throughput. -- `query="INSERT INTO logs_system_syslog FORMAT JSONAsRow"` - Inserting the data as [JSONEachRow format](/integrations/connectors/data-ingestion/data-formats/json/formats). This is appropriate if sending to a well-defined schema such as `logs_system_syslog.` +- `query="INSERT INTO logs_system_syslog FORMAT JSONAsRow"` - Inserting the data as [JSONEachRow format](/core/guides/clickhouse/data-formats/json/formats). This is appropriate if sending to a well-defined schema such as `logs_system_syslog.`
    **You can expect throughput on the order of thousands of rows per second.** @@ -624,7 +624,7 @@ clickhouse-client --host ${CLICKHOUSE_HOST} --secure --password ${CLICKHOUSE_PAS --min_insert_block_size_bytes=0 --min_insert_block_size_rows=1000 --query="INSERT INTO test.logs_system_syslog FORMAT JSONAsObject" ``` -See ["Reading JSON as an object"](/integrations/connectors/data-ingestion/data-formats/json/formats#reading-json-as-an-object) for further details. +See ["Reading JSON as an object"](/core/guides/clickhouse/data-formats/json/formats#reading-json-as-an-object) for further details.
    @@ -632,7 +632,7 @@ See ["Reading JSON as an object"](/integrations/connectors/data-ingestion/data-f The above commands assume a 1:1 mapping of Elasticsearch fields to ClickHouse columns. Users often need to filter and transform Elasticsearch data before insertion into ClickHouse. -This can be achieved using the [`input`](/reference/functions/table-functions/input) table function, which allows us to execute any `SELECT` query on the stdout. +This can be achieved using the [`input`](/core/reference/functions/table-functions/input) table function, which allows us to execute any `SELECT` query on the stdout. Suppose we wish to only store the `timestamp` and `hostname` fields from our earlier data. The ClickHouse schema: diff --git a/products/clickstack/migration/elastic/search.mdx b/products/clickstack/migration/elastic/search.mdx index 52f76489..9667c7b3 100644 --- a/products/clickstack/migration/elastic/search.mdx +++ b/products/clickstack/migration/elastic/search.mdx @@ -13,13 +13,13 @@ import { Image } from "/snippets/components/Image.jsx"; ClickHouse is a SQL-native engine, designed from the ground up for high-performance analytical workloads. In contrast, Elasticsearch provides a SQL-like interface, transpiling SQL into the underlying Elasticsearch query DSL — meaning it isn't a first-class citizen, and [feature parity](https://www.elastic.co/docs/explore-analyze/query-filter/languages/sql-limitations) is limited. -ClickHouse not only supports full SQL but extends it with a range of observability-focused functions, such as [`argMax`](/reference/functions/aggregate-functions/reference/argMax), [`histogram`](/reference/functions/aggregate-functions/parametric-functions#histogram), and [`quantileTiming`](/reference/functions/aggregate-functions/reference/quantileTiming), that simplify querying structured logs, metrics, and traces. +ClickHouse not only supports full SQL but extends it with a range of observability-focused functions, such as [`argMax`](/core/reference/functions/aggregate-functions/reference/argMax), [`histogram`](/core/reference/functions/aggregate-functions/parametric-functions#histogram), and [`quantileTiming`](/core/reference/functions/aggregate-functions/reference/quantileTiming), that simplify querying structured logs, metrics, and traces. For simple log and trace exploration, the ClickStack UI (HyperDX) provides a [Lucene-style syntax](/products/clickstack/features/search) for intuitive, text-based filtering for field-value queries, ranges, wildcards, and more. This is comparable to the [Lucene syntax](https://www.elastic.co/docs/reference/query-languages/query-dsl/query-dsl-query-string-query#query-string-syntax) in Elasticsearch and elements of the [Kibana Query Language](https://www.elastic.co/docs/reference/query-languages/kql). -The search interface supports this familiar syntax but translates it behind the scenes into efficient SQL `WHERE` clauses, making the experience familiar for Kibana users while still allowing users to leverage the power of SQL when needed. This allows you to exploit the full range of [string search functions](/reference/functions/regular-functions/string-search-functions), [similarity functions](/reference/functions/regular-functions/string-functions#stringJaccardIndex) and [date time functions](/reference/functions/regular-functions/date-time-functions) in ClickHouse. +The search interface supports this familiar syntax but translates it behind the scenes into efficient SQL `WHERE` clauses, making the experience familiar for Kibana users while still allowing users to leverage the power of SQL when needed. This allows you to exploit the full range of [string search functions](/core/reference/functions/regular-functions/string-search-functions), [similarity functions](/core/reference/functions/regular-functions/string-functions#stringJaccardIndex) and [date time functions](/core/reference/functions/regular-functions/date-time-functions) in ClickHouse. @@ -44,8 +44,8 @@ Both ClickStack and Elasticsearch provide flexible query languages to enable int | Unbounded ranges (numeric/date) | `duration:>10` or `duration:>=10` | `duration:>10` or `duration:>=10` | ClickStack uses standard SQL operators| | Inclusive/exclusive | `duration:{100 TO 200}` (exclusive) | Same | `{}` denotes exclusive bounds. `*` in ranges aren't supported. e.g. `duration:[100 TO *]`| | Exists check | N/A | `_exists_:user` or `field:*` | `_exists_` isn't supported. Use `LogAttributes.log.file.path: *` for `Map` columns e.g. `LogAttributes`. For root columns, these have to exist and will have a default value if not included in the event. To search for default values or missing columns use the same syntax as Elasticsearch ` ServiceName:*` or `ServiceName != ''`. | -| Regex | `match` function | `name:/joh?n(ath[oa]n)/` | Not currently supported in Lucene syntax. You can use SQL and the [`match`](/reference/functions/regular-functions/string-search-functions#match) function or other [string search functions](/reference/functions/regular-functions/string-search-functions).| -| Fuzzy match | `editDistance('quikc', field) = 1` | `quikc~` | Not currently supported in Lucene syntax. Distance functions can be used in SQL e.g. `editDistance('rror', SeverityText) = 1` or [other similarity functions](/reference/functions/regular-functions/string-functions#jaroSimilarity). | +| Regex | `match` function | `name:/joh?n(ath[oa]n)/` | Not currently supported in Lucene syntax. You can use SQL and the [`match`](/core/reference/functions/regular-functions/string-search-functions#match) function or other [string search functions](/core/reference/functions/regular-functions/string-search-functions).| +| Fuzzy match | `editDistance('quikc', field) = 1` | `quikc~` | Not currently supported in Lucene syntax. Distance functions can be used in SQL e.g. `editDistance('rror', SeverityText) = 1` or [other similarity functions](/core/reference/functions/regular-functions/string-functions#jaroSimilarity). | | Proximity search | Not supported | `"fox quick"~5` | Not currently supported in Lucene syntax. | | Boosting | `quick^2 fox` | `quick^2 fox` | Not supported in ClickStack at present. | | Field wildcard | `service.*:error` | `service.*:error` | Not supported in ClickStack at present. | @@ -55,10 +55,10 @@ Both ClickStack and Elasticsearch provide flexible query languages to enable int Unlike Elasticsearch, where a field can be entirely omitted from an event and therefore truly "not exist," ClickHouse requires all columns in a table schema to exist. If a field isn't provided in an insert event: -- For [`Nullable`](/reference/data-types/nullable) fields, it will be set to `NULL`. +- For [`Nullable`](/core/reference/data-types/nullable) fields, it will be set to `NULL`. - For non-nullable fields (the default), it will be populated with a default value (often an empty string, 0, or equivalent). -In ClickStack, we use the latter as [`Nullable`](/reference/data-types/nullable) is [not recommended](/concepts/best-practices/avoidnullablecolumns). +In ClickStack, we use the latter as [`Nullable`](/core/reference/data-types/nullable) is [not recommended](/core/concepts/best-practices/avoidnullablecolumns). This behavior means that checking whether a field "exists”" in the Elasticsearch sense isn't directly supported. diff --git a/products/clickstack/migration/elastic/types.mdx b/products/clickstack/migration/elastic/types.mdx index 879b6b10..df600420 100644 --- a/products/clickstack/migration/elastic/types.mdx +++ b/products/clickstack/migration/elastic/types.mdx @@ -12,59 +12,59 @@ Elasticsearch and ClickHouse support a wide variety of data types, but their und | **Elasticsearch Type** | **ClickHouse Equivalent** | **Comments** | |-------------------------------|------------------------------|--------------| -| `boolean` | [`UInt8`](/reference/data-types/int-uint) or [`Bool`](/reference/data-types/boolean) | ClickHouse supports `Boolean` as an alias for `UInt8` in newer versions. | -| `keyword` | [`String`](/reference/data-types/string) | Used for exact-match filtering, grouping, and sorting. | -| `text` | [`String`](/reference/data-types/string) | Full-text search is limited in ClickHouse; tokenization requires custom logic using functions such as `tokens` combined with array functions. | -| `long` | [`Int64`](/reference/data-types/int-uint) | 64-bit signed integer. | -| `integer` | [`Int32`](/reference/data-types/int-uint) | 32-bit signed integer. | -| `short` | [`Int16`](/reference/data-types/int-uint) | 16-bit signed integer. | -| `byte` | [`Int8`](/reference/data-types/int-uint) | 8-bit signed integer. | -| `unsigned_long` | [`UInt64`](/reference/data-types/int-uint) | Unsigned 64-bit integer. | -| `double` | [`Float64`](/reference/data-types/float) | 64-bit floating-point. | -| `float` | [`Float32`](/reference/data-types/float) | 32-bit floating-point. | -| `half_float` | [`Float32`](/reference/data-types/float) or [`BFloat16`](/reference/data-types/float) | Closest equivalent. ClickHouse doesn't have a 16-bit float. ClickHouse has a `BFloat16`- this is different from Half-float IEE-754: half-float offers higher precision with a smaller range, while bfloat16 sacrifices precision for a wider range, making it better suited for machine learning workloads. | -| `scaled_float` | [`Decimal(x, y)`](/reference/data-types/decimal) | Store fixed-point numeric values. | -| `date` | [`DateTime`](/reference/data-types/datetime) | Equivalent date types with second precision. | -| `date_nanos` | [`DateTime64`](/reference/data-types/datetime64) | ClickHouse supports nanosecond precision with `DateTime64(9)`. | -| `binary` | [`String`](/reference/data-types/string), [`FixedString(N)`](/reference/data-types/fixedstring) | Needs base64 decoding for binary fields. | -| `ip` | [`IPv4`](/reference/data-types/ipv4), [`IPv6`](/reference/data-types/ipv6) | Native `IPv4` and `IPv6` types available. | -| `object` | [`Nested`](/reference/data-types/nested-data-structures), [`Map`](/reference/data-types/map), [`Tuple`](/reference/data-types/tuple), [`JSON`](/reference/data-types/newjson) | ClickHouse can model JSON-like objects using [`Nested`](/reference/data-types/nested-data-structures) or [`JSON`](/reference/data-types/newjson). | -| `flattened` | [`String`](/reference/data-types/string) | The flattened type in Elasticsearch stores entire JSON objects as single fields, enabling flexible, schemaless access to nested keys without full mapping. In ClickHouse, similar functionality can be achieved using the String type, but requires processing to be done in materialized views. | -| `nested` | [`Nested`](/reference/data-types/nested-data-structures) | ClickHouse `Nested` columns provide similar semantics for grouped sub fields assuming users use `flatten_nested=0`. | +| `boolean` | [`UInt8`](/core/reference/data-types/int-uint) or [`Bool`](/core/reference/data-types/boolean) | ClickHouse supports `Boolean` as an alias for `UInt8` in newer versions. | +| `keyword` | [`String`](/core/reference/data-types/string) | Used for exact-match filtering, grouping, and sorting. | +| `text` | [`String`](/core/reference/data-types/string) | Full-text search is limited in ClickHouse; tokenization requires custom logic using functions such as `tokens` combined with array functions. | +| `long` | [`Int64`](/core/reference/data-types/int-uint) | 64-bit signed integer. | +| `integer` | [`Int32`](/core/reference/data-types/int-uint) | 32-bit signed integer. | +| `short` | [`Int16`](/core/reference/data-types/int-uint) | 16-bit signed integer. | +| `byte` | [`Int8`](/core/reference/data-types/int-uint) | 8-bit signed integer. | +| `unsigned_long` | [`UInt64`](/core/reference/data-types/int-uint) | Unsigned 64-bit integer. | +| `double` | [`Float64`](/core/reference/data-types/float) | 64-bit floating-point. | +| `float` | [`Float32`](/core/reference/data-types/float) | 32-bit floating-point. | +| `half_float` | [`Float32`](/core/reference/data-types/float) or [`BFloat16`](/core/reference/data-types/float) | Closest equivalent. ClickHouse doesn't have a 16-bit float. ClickHouse has a `BFloat16`- this is different from Half-float IEE-754: half-float offers higher precision with a smaller range, while bfloat16 sacrifices precision for a wider range, making it better suited for machine learning workloads. | +| `scaled_float` | [`Decimal(x, y)`](/core/reference/data-types/decimal) | Store fixed-point numeric values. | +| `date` | [`DateTime`](/core/reference/data-types/datetime) | Equivalent date types with second precision. | +| `date_nanos` | [`DateTime64`](/core/reference/data-types/datetime64) | ClickHouse supports nanosecond precision with `DateTime64(9)`. | +| `binary` | [`String`](/core/reference/data-types/string), [`FixedString(N)`](/core/reference/data-types/fixedstring) | Needs base64 decoding for binary fields. | +| `ip` | [`IPv4`](/core/reference/data-types/ipv4), [`IPv6`](/core/reference/data-types/ipv6) | Native `IPv4` and `IPv6` types available. | +| `object` | [`Nested`](/core/reference/data-types/nested-data-structures), [`Map`](/core/reference/data-types/map), [`Tuple`](/core/reference/data-types/tuple), [`JSON`](/core/reference/data-types/newjson) | ClickHouse can model JSON-like objects using [`Nested`](/core/reference/data-types/nested-data-structures) or [`JSON`](/core/reference/data-types/newjson). | +| `flattened` | [`String`](/core/reference/data-types/string) | The flattened type in Elasticsearch stores entire JSON objects as single fields, enabling flexible, schemaless access to nested keys without full mapping. In ClickHouse, similar functionality can be achieved using the String type, but requires processing to be done in materialized views. | +| `nested` | [`Nested`](/core/reference/data-types/nested-data-structures) | ClickHouse `Nested` columns provide similar semantics for grouped sub fields assuming users use `flatten_nested=0`. | | `join` | NA | No direct concept of parent-child relationships. Not required in ClickHouse as joins across tables are supported. | -| `alias` | [`Alias`](/reference/statements/create/table#alias) column modifier | Aliases [are supported](/reference/statements/create/table#alias) through a field modifier. Functions can be applied to these alias e.g. `size String ALIAS formatReadableSize(size_bytes)`| -| `range` types (`*_range`) | [`Tuple(start, end)`](/reference/data-types/tuple) or [`Array(T)`](/reference/data-types/array) | ClickHouse has no native range type, but numerical and date ranges can be represented using [`Tuple(start, end)`](/reference/data-types/tuple) or [`Array`](/reference/data-types/array) structures. For IP ranges (`ip_range`), store CIDR values as `String` and evaluate with functions like `isIPAddressInRange()`. Alternatively, consider `ip_trie` based lookup dictionaries for efficient filtering. | -| `aggregate_metric_double` | [`AggregateFunction(...)`](/reference/data-types/aggregatefunction) and [`SimpleAggregateFunction(...)`](/reference/data-types/simpleaggregatefunction) | Use aggregate function states and materialized views to model pre-aggregated metrics. All aggregation functions support aggregate states.| -| `histogram` | [`Tuple(Array(Float64), Array(UInt64))`](/reference/data-types/tuple) | Manually represent buckets and counts using arrays or custom schemas. | -| `annotated-text` | [`String`](/reference/data-types/string) | No built-in support for entity-aware search or annotations. | -| `completion`, `search_as_you_type` | NA | No native autocomplete or suggester engine. Can be reproduced with `String` and [search functions](/reference/functions/regular-functions/string-search-functions). | +| `alias` | [`Alias`](/core/reference/statements/create/table#alias) column modifier | Aliases [are supported](/core/reference/statements/create/table#alias) through a field modifier. Functions can be applied to these alias e.g. `size String ALIAS formatReadableSize(size_bytes)`| +| `range` types (`*_range`) | [`Tuple(start, end)`](/core/reference/data-types/tuple) or [`Array(T)`](/core/reference/data-types/array) | ClickHouse has no native range type, but numerical and date ranges can be represented using [`Tuple(start, end)`](/core/reference/data-types/tuple) or [`Array`](/core/reference/data-types/array) structures. For IP ranges (`ip_range`), store CIDR values as `String` and evaluate with functions like `isIPAddressInRange()`. Alternatively, consider `ip_trie` based lookup dictionaries for efficient filtering. | +| `aggregate_metric_double` | [`AggregateFunction(...)`](/core/reference/data-types/aggregatefunction) and [`SimpleAggregateFunction(...)`](/core/reference/data-types/simpleaggregatefunction) | Use aggregate function states and materialized views to model pre-aggregated metrics. All aggregation functions support aggregate states.| +| `histogram` | [`Tuple(Array(Float64), Array(UInt64))`](/core/reference/data-types/tuple) | Manually represent buckets and counts using arrays or custom schemas. | +| `annotated-text` | [`String`](/core/reference/data-types/string) | No built-in support for entity-aware search or annotations. | +| `completion`, `search_as_you_type` | NA | No native autocomplete or suggester engine. Can be reproduced with `String` and [search functions](/core/reference/functions/regular-functions/string-search-functions). | | `semantic_text` | NA | No native semantic search - generate embeddings and use vector search. | -| `token_count` | [`Int32`](/reference/data-types/int-uint) | Use during ingestion to compute token count manually e.g. `length(tokens())` function e.g. with a Materialized column | -| `dense_vector` | [`Array(Float32)`](/reference/data-types/array) | Use arrays for embedding storage | -| `sparse_vector` | [`Map(UInt32, Float32)`](/reference/data-types/map) | Simulate sparse vectors with maps. No native sparse vector support. | -| `rank_feature` / `rank_features` | [`Float32`](/reference/data-types/float), [`Array(Float32)`](/reference/data-types/array) | No native query-time boosting, but can be modeled manually in scoring logic. | -| `geo_point` | [`Tuple(Float64, Float64)`](/reference/data-types/tuple) or [`Point`](/reference/data-types/geo#point) | Use tuple of (latitude, longitude). [`Point`](/reference/data-types/geo#point) is available as a ClickHouse type. | -| `geo_shape`, `shape` | [`Ring`](/reference/data-types/geo#ring), [`LineString`](/reference/data-types/geo#linestring), [`MultiLineString`](/reference/data-types/geo#multilinestring), [`Polygon`](/reference/data-types/geo#polygon), [`MultiPolygon`](/reference/data-types/geo#multipolygon) | Native support for geo shapes and spatial indexing. | +| `token_count` | [`Int32`](/core/reference/data-types/int-uint) | Use during ingestion to compute token count manually e.g. `length(tokens())` function e.g. with a Materialized column | +| `dense_vector` | [`Array(Float32)`](/core/reference/data-types/array) | Use arrays for embedding storage | +| `sparse_vector` | [`Map(UInt32, Float32)`](/core/reference/data-types/map) | Simulate sparse vectors with maps. No native sparse vector support. | +| `rank_feature` / `rank_features` | [`Float32`](/core/reference/data-types/float), [`Array(Float32)`](/core/reference/data-types/array) | No native query-time boosting, but can be modeled manually in scoring logic. | +| `geo_point` | [`Tuple(Float64, Float64)`](/core/reference/data-types/tuple) or [`Point`](/core/reference/data-types/geo#point) | Use tuple of (latitude, longitude). [`Point`](/core/reference/data-types/geo#point) is available as a ClickHouse type. | +| `geo_shape`, `shape` | [`Ring`](/core/reference/data-types/geo#ring), [`LineString`](/core/reference/data-types/geo#linestring), [`MultiLineString`](/core/reference/data-types/geo#multilinestring), [`Polygon`](/core/reference/data-types/geo#polygon), [`MultiPolygon`](/core/reference/data-types/geo#multipolygon) | Native support for geo shapes and spatial indexing. | | `percolator` | NA | No concept of indexing queries. Use standard SQL + Incremental Materialized Views instead. | -| `version` | [`String`](/reference/data-types/string) | ClickHouse doesn't have a native version type. Store versions as strings and use custom UDFs functions to perform semantic comparisons if needed. Consider normalizing to numeric formats if range queries are required. | +| `version` | [`String`](/core/reference/data-types/string) | ClickHouse doesn't have a native version type. Store versions as strings and use custom UDFs functions to perform semantic comparisons if needed. Consider normalizing to numeric formats if range queries are required. | ### Notes {#notes} - **Arrays**: In Elasticsearch, all fields support arrays natively. In ClickHouse, arrays must be explicitly defined (e.g., `Array(String)`), with the advantage specific positions can be accessed and queried e.g. `an_array[1]`. - **Multi-fields**: Elasticsearch allows indexing the [same field multiple ways](https://www.elastic.co/docs/reference/elasticsearch/mapping-reference/multi-fields#_multi_fields_with_multiple_analyzers) (e.g., both `text` and `keyword`). In ClickHouse, this pattern must be modeled using separate columns or views. -- **Map and JSON Types** - In ClickHouse, the [`Map`](/reference/data-types/map) type is commonly used to model dynamic key-value structures such as `resourceAttributes` and `logAttributes`. This type enables flexible schema-less ingestion by allowing arbitrary keys to be added at runtime — similar in spirit to JSON objects in Elasticsearch. However, there are important limitations to consider: +- **Map and JSON Types** - In ClickHouse, the [`Map`](/core/reference/data-types/map) type is commonly used to model dynamic key-value structures such as `resourceAttributes` and `logAttributes`. This type enables flexible schema-less ingestion by allowing arbitrary keys to be added at runtime — similar in spirit to JSON objects in Elasticsearch. However, there are important limitations to consider: - - **Uniform value types**: ClickHouse [`Map`](/reference/data-types/map) columns must have a consistent value type (e.g., `Map(String, String)`). Mixed-type values aren't supported without coercion. - - **Performance cost**: accessing any key in a [`Map`](/reference/data-types/map) requires loading the entire map into memory, which can be suboptimal for performance. - - **No subcolumns**: unlike JSON, keys in a [`Map`](/reference/data-types/map) aren't represented as true subcolumns, which limits ClickHouse’s ability to index, compress, and query efficiently. + - **Uniform value types**: ClickHouse [`Map`](/core/reference/data-types/map) columns must have a consistent value type (e.g., `Map(String, String)`). Mixed-type values aren't supported without coercion. + - **Performance cost**: accessing any key in a [`Map`](/core/reference/data-types/map) requires loading the entire map into memory, which can be suboptimal for performance. + - **No subcolumns**: unlike JSON, keys in a [`Map`](/core/reference/data-types/map) aren't represented as true subcolumns, which limits ClickHouse’s ability to index, compress, and query efficiently. - Because of these limitations, ClickStack is migrating away from [`Map`](/reference/data-types/map) in favor of ClickHouse's enhanced [`JSON`](/reference/data-types/newjson) type. The [`JSON`](/reference/data-types/newjson) type addresses many of the shortcomings of `Map`: + Because of these limitations, ClickStack is migrating away from [`Map`](/core/reference/data-types/map) in favor of ClickHouse's enhanced [`JSON`](/core/reference/data-types/newjson) type. The [`JSON`](/core/reference/data-types/newjson) type addresses many of the shortcomings of `Map`: - **True columnar storage**: each JSON path is stored as a subcolumn, allowing efficient compression, filtering, and vectorized query execution. - **Mixed-type support**: different data types (e.g., integers, strings, arrays) can coexist under the same path without coercion or type unification. - **File system scalability**: internal limits on dynamic keys (`max_dynamic_paths`) and types (`max_dynamic_types`) prevent an explosion of column files on disk, even with high cardinality key sets. - **Dense storage**: nulls and missing values are stored sparsely to avoid unnecessary overhead. - The [`JSON`](/reference/data-types/newjson) type is especially well-suited for observability workloads, offering the flexibility of schemaless ingestion with the performance and scalability of native ClickHouse types — making it an ideal replacement for [`Map`](/reference/data-types/map) in dynamic attribute fields. + The [`JSON`](/core/reference/data-types/newjson) type is especially well-suited for observability workloads, offering the flexibility of schemaless ingestion with the performance and scalability of native ClickHouse types — making it an ideal replacement for [`Map`](/core/reference/data-types/map) in dynamic attribute fields. - For further details on the JSON type we recommend the [JSON guide](/integrations/connectors/data-ingestion/data-formats/json/intro) and ["How we built a new powerful JSON data type for ClickHouse"](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse). + For further details on the JSON type we recommend the [JSON guide](/core/guides/clickhouse/data-formats/json/intro) and ["How we built a new powerful JSON data type for ClickHouse"](https://clickhouse.com/blog/a-new-powerful-json-data-type-for-clickhouse). diff --git a/products/clickstack/navigation.json b/products/clickstack/navigation.json new file mode 100644 index 00000000..0445c2fe --- /dev/null +++ b/products/clickstack/navigation.json @@ -0,0 +1,227 @@ +{ + "item": "ClickStack", + "icon": "/images/icons/icon-clickstack.svg", + "groups": [ + { + "group": "Get started", + "root": "products/clickstack/index", + "pages": [ + "products/clickstack/overview", + { + "group": "Getting started", + "root": "products/clickstack/getting-started/index", + "pages": [ + "products/clickstack/getting-started/managed", + "products/clickstack/getting-started/oss" + ] + }, + { + "group": "Sample datasets", + "root": "products/clickstack/example-datasets/index", + "pages": [ + "products/clickstack/example-datasets/sample-data", + "products/clickstack/example-datasets/kubernetes", + "products/clickstack/example-datasets/local-data", + "products/clickstack/example-datasets/remote-demo-data", + "products/clickstack/example-datasets/session-replay" + ] + }, + "products/clickstack/architecture", + "products/clickstack/faq" + ] + }, + { + "group": "Features", + "pages": [ + { + "group": "Deployment", + "root": "products/clickstack/deployment/overview", + "pages": [ + { + "group": "Open Source", + "root": "products/clickstack/deployment/oss", + "pages": [ + "products/clickstack/deployment/all-in-one", + { + "group": "Helm", + "pages": [ + { + "group": "v2.x", + "root": "products/clickstack/deployment/helm", + "pages": [ + "products/clickstack/deployment/helm-configuration", + "products/clickstack/deployment/helm-deployment-options", + "products/clickstack/deployment/helm-cloud", + "products/clickstack/deployment/helm-additional-manifests", + "products/clickstack/deployment/helm-upgrade" + ] + }, + { + "group": "v1.x (deprecated)", + "root": "products/clickstack/deployment/helm-v1", + "pages": [ + "products/clickstack/deployment/helm-configuration-v1", + "products/clickstack/deployment/helm-deployment-options-v1", + "products/clickstack/deployment/helm-cloud-v1" + ] + } + ] + }, + "products/clickstack/deployment/docker-compose", + "products/clickstack/deployment/hyperdx-only", + "products/clickstack/deployment/local-mode-only", + "products/clickstack/deployment/clickhouse-embedded" + ] + }, + "products/clickstack/deployment/managed" + ] + }, + "products/clickstack/features/search", + { + "group": "Dashboards", + "root": "products/clickstack/features/dashboards/overview", + "pages": [ + "products/clickstack/features/dashboards/dashboard-templates", + "products/clickstack/features/dashboards/sql-visualizations" + ] + }, + "products/clickstack/notebooks", + "products/clickstack/text-to-chart", + "products/clickstack/features/event-patterns", + "products/clickstack/features/event-deltas", + "products/clickstack/features/alerts", + "products/clickstack/service-maps", + "products/clickstack/features/session-replay", + { + "group": "Demo days", + "root": "products/clickstack/demo-days/index", + "pages": [ + { + "group": "2026", + "pages": [ + "products/clickstack/demo-days/2026/2026-05-08", + "products/clickstack/demo-days/2026/2026-04-17", + "products/clickstack/demo-days/2026/2026-04-10", + "products/clickstack/demo-days/2026/2026-04-03" + ] + } + ] + } + ] + }, + { + "group": "Managing ClickStack", + "expanded": true, + "root": "products/clickstack/managing/overview", + "pages": [ + "products/clickstack/managing/admin", + "products/clickstack/managing/config", + "products/clickstack/managing/estimating-resources", + "products/clickstack/managing/materialized-views", + "products/clickstack/managing/performance-tuning", + "products/clickstack/managing/production", + "products/clickstack/managing/rbac", + "products/clickstack/managing/ttl" + ] + }, + { + "group": "Guides", + "pages": [ + { + "group": "Ingesting data", + "root": "products/clickstack/ingesting-data/index", + "pages": [ + "products/clickstack/ingesting-data/overview", + "products/clickstack/ingesting-data/opentelemetry", + "products/clickstack/ingesting-data/vector", + "products/clickstack/ingesting-data/collector", + "products/clickstack/ingesting-data/schemas", + "products/clickstack/ingesting-data/schema/map-vs-json", + "products/clickstack/ingesting-data/trace-sampling", + { + "group": "Integrations", + "root": "products/clickstack/integration-examples/index", + "pages": [ + "products/clickstack/integration-examples/nginx-logs", + "products/clickstack/integration-examples/nginx-traces", + "products/clickstack/integration-examples/redis-logs", + "products/clickstack/integration-examples/redis-metrics", + "products/clickstack/integration-examples/cloudwatch", + "products/clickstack/integration-examples/aws-lambda", + { + "group": "Host logs", + "pages": [ + "products/clickstack/integration-examples/host-logs", + "products/clickstack/integration-examples/host-logs/ec2" + ] + }, + "products/clickstack/integration-examples/jvm-metrics", + "products/clickstack/integration-examples/kafka-metrics", + "products/clickstack/integration-examples/kubernetes", + "products/clickstack/integration-examples/mysql", + "products/clickstack/integration-examples/nodejs-traces", + "products/clickstack/integration-examples/postgres-logs", + "products/clickstack/integration-examples/postgres-metrics", + "products/clickstack/integration-examples/systemd", + "products/clickstack/integration-examples/temporal", + "products/clickstack/integration-examples/cloudflare", + "products/clickstack/integration-examples/kafka-logs", + "products/clickstack/integration-examples/mongodb-logs" + ] + }, + { + "group": "Language SDKs", + "root": "products/clickstack/ingesting-data/sdks/index", + "pages": [ + "products/clickstack/ingesting-data/sdks/browser", + "products/clickstack/ingesting-data/sdks/nodejs", + "products/clickstack/ingesting-data/sdks/python", + "products/clickstack/ingesting-data/sdks/golang", + "products/clickstack/ingesting-data/sdks/java", + "products/clickstack/ingesting-data/sdks/ruby", + "products/clickstack/ingesting-data/sdks/elixir", + "products/clickstack/ingesting-data/sdks/deno", + "products/clickstack/ingesting-data/sdks/nestjs", + "products/clickstack/ingesting-data/sdks/nextjs", + "products/clickstack/ingesting-data/sdks/react-native", + "products/clickstack/ingesting-data/sdks/aws-lambda" + ] + } + ] + }, + { + "group": "Migration guides", + "expanded": true, + "root": "products/clickstack/migration/index", + "pages": [ + { + "group": "Migrating from Elastic", + "root": "products/clickstack/migration/elastic/index", + "pages": [ + "products/clickstack/migration/elastic/intro", + "products/clickstack/migration/elastic/concepts", + "products/clickstack/migration/elastic/types", + "products/clickstack/migration/elastic/search", + "products/clickstack/migration/elastic/migrating-data", + "products/clickstack/migration/elastic/migrating-agents", + "products/clickstack/migration/elastic/migrating-sdks" + ] + } + ] + } + ] + }, + { + "group": "Integration partners", + "root": "products/clickstack/integration-partners/index", + "pages": [ + "products/clickstack/integration-partners/bindplane" + ] + }, + { + "group": "API reference", + "root": "products/clickstack/api-reference", + "openapi": "products/clickstack/api-reference/hyperdx-openapi.json" + } + ] +} diff --git a/products/clickstack/styles/clickstack-homepage.css b/products/clickstack/styles/clickstack-homepage.css deleted file mode 100644 index ae6c59af..00000000 --- a/products/clickstack/styles/clickstack-homepage.css +++ /dev/null @@ -1,485 +0,0 @@ -/* Hero Section - Animated Grid Diagram */ -.hero { - display: flex; - flex-direction: column; - gap: 3rem; - padding: 3rem 0; - margin-bottom: 4rem; -} - -.hero-text { - text-align: center; - max-width: 800px; - margin: 0 auto; -} - -.hero-text h1 { - font-size: 3rem; - font-weight: 700; - margin-bottom: 1.5rem; - line-height: 1.2; -} - -.hero-text p { - font-size: 1.25rem; - color: #888; - margin-bottom: 2rem; -} - -.hero-buttons { - display: flex; - gap: 1rem; - justify-content: center; - flex-wrap: wrap; -} - -/* Hero Aside - Animated Diagram Container */ -.hero-aside { - width: 100%; - display: flex; - justify-content: center; - align-items: center; - min-height: 537px; - padding: 2rem 0; -} - -.hero-aside > div { - max-width: 537px; - width: 100%; - opacity: 1; - transition: opacity 0.3s ease; -} - -/* Tailwind utility classes support */ -.size-\[537px\] { - width: 537px; - height: 537px; -} - -.size-16 { - width: 4rem; - height: 4rem; -} - -.grid-cols-3 { - grid-template-columns: repeat(3, 1fr); -} - -.grid-rows-3 { - grid-template-rows: repeat(3, 1fr); -} - -/* Grid Layout for Animated Icons */ -.hero-aside .grid { - display: grid; - gap: 0; -} - -/* Default: all grid items use relative flex items-center justify-center */ -.hero-aside .grid > div { - position: relative; - display: flex; - align-items: center; - justify-content: center; -} - -/* Flex column layout */ -.flex.flex-col { - flex-direction: column; -} - -.flex.items-center { - align-items: center; -} - -.flex.justify-center { - justify-content: center; -} - -/* Icon Containers */ -.hero-aside .flex.size-16 { - width: 4rem; - height: 4rem; - display: flex; - align-items: center; - justify-content: center; - border-radius: 0.375rem; - border: 1px solid rgba(113, 113, 122, 0.8); - background-color: #171717; - padding: 1rem; - flex-shrink: 0; -} - -/* ClickStack Logo Container */ -.hero-aside .rounded-lg.border-2 { - border-radius: 0.5rem; - border: 2px solid #faff69; - background: linear-gradient(135deg, rgba(250, 255, 105, 0.2), rgba(250, 255, 105, 0.4)); - background-color: #262626; - position: relative; - overflow: hidden; -} - -/* Glow Effect for ClickStack Logo */ -.hero-aside .animate-fadeInOut { - animation: fadeInOut 3s ease-in-out infinite; - background-color: rgba(250, 255, 105, 0.6); - filter: blur(40px); -} - -@keyframes fadeInOut { - 0%, 100% { - opacity: 0.3; - } - 50% { - opacity: 0.8; - } -} - -/* Tailwind positioning utilities */ -.absolute { - position: absolute; -} - -.left-1\/2 { - left: 50%; -} - -.right-1\/2 { - right: 50%; -} - -.top-1\/2 { - top: 50%; -} - -.bottom-1\/2 { - bottom: 50%; -} - -.translate-y-8 { - transform: translateY(2rem); -} - -.-translate-y-8 { - transform: translateY(-2rem); -} - -/* Animated Connection Lines */ -.hero-aside svg[viewBox="0 0 100 100"], -.hero-aside svg[viewBox="0 0 3 115"] { - pointer-events: none; -} - -.hero-aside svg path, -.hero-aside svg line { - vector-effect: non-scaling-stroke; -} - -/* Light mode adjustments */ -@media (prefers-color-scheme: light) { - /* Light grey lines for light mode */ - .hero-aside svg path[stroke="#414141"], - .hero-aside svg line[stroke="#414141"] { - stroke: #d4d4d8; - } - - .hero-aside svg path[stroke="#faff69"], - .hero-aside svg line[stroke="#FAFF69"] { - stroke: #a1a1aa; - } - - /* Remove glow effect in light mode */ - .hero-aside .animate-fadeInOut { - display: none; - } -} - -/* Responsive Design */ -@media (min-width: 768px) { - .hero { - flex-direction: row; - align-items: center; - gap: 4rem; - } - - .hero-text { - text-align: left; - flex: 1; - } - - .hero-aside { - flex: 1; - } - - .hero-buttons { - justify-content: flex-start; - } -} - -@media (max-width: 767px) { - .hero-text h1 { - font-size: 2rem; - } - - .hero-text p { - font-size: 1.125rem; - } - - .hero-aside { - min-height: 400px; - } - - .hero-aside > div { - max-width: 400px; - } -} - -/* Sidekick Section */ -.sidekick { - padding: 4rem 0; - display: flex; - flex-direction: column; - gap: 3rem; -} - -.sidekick-text { - text-align: center; - max-width: 800px; - margin: 0 auto; -} - -.sidekick-text h2 { - font-size: 2.5rem; - font-weight: 700; - margin-bottom: 1.5rem; -} - -.sidekick-text p { - font-size: 1.125rem; - color: #888; - line-height: 1.6; -} - -/* Section Divider */ -.divider { - border-top: 1px solid #333; - margin-top: 4rem; -} - -.divider:first-child { - border-top: none; - margin-top: 0; -} - -/* MCP Section - Side by Side */ -.mcp-section { - display: flex; - flex-direction: column; - gap: 3rem; - padding: 4rem 0; - align-items: center; -} - -.mcp-aside { - flex: 1; - display: flex; - justify-content: center; - align-items: center; -} - -.mcp-aside img { - max-width: 100%; - height: auto; - border-radius: 0.5rem; -} - -.mcp-text { - flex: 1; -} - -.mcp-text h2 { - font-size: 2.5rem; - font-weight: 700; - margin-bottom: 1.5rem; -} - -.mcp-text p { - font-size: 1.125rem; - color: #888; - line-height: 1.6; -} - -.mcp-text ul { - list-style: none; - padding: 0; -} - -.mcp-text ul li { - padding-left: 1.5rem; - position: relative; - margin-bottom: 0.75rem; -} - -.mcp-text ul li::before { - content: "✓"; - position: absolute; - left: 0; - color: #faff69; - font-weight: bold; -} - -@media (min-width: 768px) { - .mcp-section { - flex-direction: row; - gap: 4rem; - } -} - -/* Updates Section */ -.updates { - padding: 4rem 0; - text-align: center; -} - -.updates h2 { - font-size: 2.5rem; - font-weight: 700; - margin-bottom: 3rem; -} - -.updates-content { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 2rem; - max-width: 1200px; - margin: 0 auto; -} - -.update-item { - padding: 2rem; - border-radius: 0.5rem; - border: 1px solid #333; - background-color: #1a1a1a; - transition: border-color 0.2s; -} - -.update-item:hover { - border-color: #faff69; -} - -.update-item h3 { - font-size: 1.5rem; - font-weight: 600; - margin-bottom: 1rem; -} - -.update-item p { - color: #888; - margin-bottom: 1.5rem; - line-height: 1.6; -} - -/* Help Section */ -.help { - padding: 4rem 0; -} - -.help-header { - text-align: center; - margin-bottom: 3rem; -} - -.help-header h2 { - font-size: 2.5rem; - font-weight: 700; -} - -.help-content { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 3rem; - max-width: 1200px; - margin: 0 auto; -} - -.help-column h4 { - font-size: 1.25rem; - font-weight: 600; - margin-bottom: 1.5rem; - color: #fff; -} - -.help-column a { - display: block; - color: #888; - text-decoration: none; - margin-bottom: 0.75rem; - transition: color 0.2s; -} - -.help-column a:hover { - color: #faff69; -} - -.support-button { - display: inline-block; - padding: 0.75rem 1.5rem; - background-color: #faff69; - color: #000; - border-radius: 0.375rem; - font-weight: 600; - text-decoration: none; - transition: opacity 0.2s; -} - -.support-button:hover { - opacity: 0.8; - color: #000; -} - -/* Dark mode - ensure black text */ -.dark .support-button { - color: #000; -} - -.dark .support-button:hover { - color: #000; -} - -/* Promo Cards */ -.promo-card { - border: 1px solid #333; - border-radius: 0.5rem; - padding: 1.5rem; - background-color: #1a1a1a; - transition: border-color 0.2s, transform 0.2s; -} - -.promo-card:hover { - border-color: #faff69; - transform: translateY(-2px); -} - -/* Promo Links */ -.promo-link { - display: inline-flex; - align-items: center; - gap: 0.5rem; - color: #faff69; - text-decoration: none; - font-weight: 500; - transition: gap 0.2s; -} - -.promo-link:hover { - gap: 0.75rem; -} - -.promo-link .arrow { - transition: transform 0.2s; -} - -.promo-link:hover .arrow { - transform: translateX(4px); -} \ No newline at end of file diff --git a/products/clickstack/text-to-chart.mdx b/products/clickstack/text-to-chart.mdx index 61579271..137f421c 100644 --- a/products/clickstack/text-to-chart.mdx +++ b/products/clickstack/text-to-chart.mdx @@ -134,4 +134,4 @@ Prompts can reference any column or attribute available in your configured data - [From text to charts: a faster way to visualize with ClickStack](https://clickhouse.com/blog/text-to-charts-faster-way-to-visualize-clickstack) — blog post introducing the feature - [Dashboards and visualizations](/products/clickstack/features/dashboards/overview) — manual chart creation using Chart Explorer - [Search](/products/clickstack/features/search) — full-text and property search syntax -- [Configuration](/products/clickstack/config) — all ClickStack environment variables +- [Configuration](/products/clickstack/managing/config) — all ClickStack environment variables diff --git a/products/cloud/.DS_Store b/products/cloud/.DS_Store index e1912345f48cbed3d8baccc69fa728b2243d1172..83fe367262ad07ac5127f1274b1431f6d01eda2d 100644 GIT binary patch delta 45 zcmZoMXfc@JFUrWkzyQPo3=BmKsSJ4x$qcD!DH9K>Gcs;moWefwg7{{3j=%f>;*kr+ delta 63 zcmZoMXfc@JFU-Wiz`)4BAi%(ol9p1OoRpuRGjXHlWCIZv5mts|h8%``hEjwS!^WNz K_RZ`ZfB6COtPxfK diff --git a/api-reference/cloud/cloud-openapi.json b/products/cloud/api-reference/cloud-openapi.json similarity index 100% rename from api-reference/cloud/cloud-openapi.json rename to products/cloud/api-reference/cloud-openapi.json diff --git a/products/cloud/cloud/auto-scaling.mdx b/products/cloud/cloud/auto-scaling.mdx deleted file mode 100644 index ccc04716..00000000 --- a/products/cloud/cloud/auto-scaling.mdx +++ /dev/null @@ -1,3 +0,0 @@ -# auto scaling - -Coming soon. diff --git a/products/cloud/cloud/backups.mdx b/products/cloud/cloud/backups.mdx deleted file mode 100644 index 166550f8..00000000 --- a/products/cloud/cloud/backups.mdx +++ /dev/null @@ -1,3 +0,0 @@ -# backups - -Coming soon. diff --git a/products/cloud/cloud/create-service.mdx b/products/cloud/cloud/create-service.mdx deleted file mode 100644 index b361de43..00000000 --- a/products/cloud/cloud/create-service.mdx +++ /dev/null @@ -1,3 +0,0 @@ -# create service - -Coming soon. diff --git a/products/cloud/cloud/security.mdx b/products/cloud/cloud/security.mdx deleted file mode 100644 index 065b3a7a..00000000 --- a/products/cloud/cloud/security.mdx +++ /dev/null @@ -1,3 +0,0 @@ -# security - -Coming soon. diff --git a/products/cloud/concepts-overview.mdx b/products/cloud/concepts-overview.mdx deleted file mode 100644 index 13a3599d..00000000 --- a/products/cloud/concepts-overview.mdx +++ /dev/null @@ -1,70 +0,0 @@ -In this section of the docs we'll dive into the concepts around what makes ClickHouse so fast and efficient. - -## Core Topics - -### Why is ClickHouse so Fast? -Learn what makes ClickHouse so fast, including vectorized query execution, column-oriented storage, and advanced compression techniques. - -[Read more →](/get-started/about/why-clickhouse-is-so-fast) - -### What is OLAP? -Learn what Online Analytical Processing is and how it differs from OLTP (transactional) workloads. - -[Read more →](/get-started/about/olap) - -### Column-Oriented Storage -Understand how column-oriented storage works and why it's ideal for analytical queries. - -[Read more →](/get-started/about/why-clickhouse-is-so-fast) - -### Glossary -This page contains a glossary of terms you'll commonly encounter throughout the docs. - -[Read more →](/concepts/core-concepts/glossary) - -## Architecture - -### Replication -Learn about ClickHouse's replication mechanisms for high availability and data redundancy. - -[Read more →](/reference/engines/table-engines/mergetree-family/replication) - -### Sharding -Understand how to scale ClickHouse horizontally by distributing data across multiple servers. - -[Read more →](/guides/oss/deployment-and-scaling/terminology) - -### Distributed Queries -Learn how ClickHouse executes queries across distributed tables spanning multiple shards. - -[Read more →](/reference/engines/table-engines/special/distributed) - -## Performance Features - -ClickHouse includes many features designed for maximum performance: - -- **Vectorized query execution** - Process data in batches using SIMD instructions -- **Primary key indexes** - Sparse indexes for efficient data location -- **Data skipping indexes** - Skip irrelevant data blocks during query execution -- **Compression** - Multiple compression codecs optimized for different data types -- **Adaptive join algorithms** - Automatically choose the best join strategy -- **Parallel processing** - Utilize all available CPU cores -- **Approximate calculations** - Trade accuracy for speed when needed - -## Data Management - -### Parts and Merges -Learn how ClickHouse organizes data into parts and background merge processes. - -### Partitioning -Understand how to partition large tables for better query performance and data management. - -### Data Types -Explore the rich set of data types available in ClickHouse, from basic types to specialized ones like Maps and Nested structures. - -## Next Steps - -- Start with our [Quick Start guide](/get-started/setup/cloud) -- Read the [Introduction](/get-started/about/intro) to understand what ClickHouse is -- Check out our [Best Practices](/concepts/best-practices) for production deployments - diff --git a/products/cloud/concepts.mdx b/products/cloud/concepts.mdx deleted file mode 100644 index 0ad19018..00000000 --- a/products/cloud/concepts.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: 'Concepts' -slug: /concepts -description: 'Landing page for concepts' -keywords: ['concepts', 'OLAP', 'fast'] -doc_type: 'landing-page' ---- - -In this section of the docs we'll dive into the concepts around what makes ClickHouse so fast and efficient. - -| Page | Description | -|------------------------------------------------------------------|---------------------------------------------------------------------------------------| -| [Why is ClickHouse so Fast?](/get-started/about/why-clickhouse-is-so-fast) | Learn what makes ClickHouse so fast. -| [What is OLAP?](/get-started/about/olap) | Learn what Online Analytical Processing is. -| [Why is ClickHouse unique?](/get-started/about/distinctive-features) | Learn what makes ClickHouse unique. -| [Glossary](/concepts/core-concepts/glossary) | This page contains a glossary of terms you'll commonly encounter throughout the docs. -| [FAQ](/resources/support-center/knowledge-base/general-faqs/faq-index) | A compilation of the most frequently asked questions we get about ClickHouse. diff --git a/products/cloud/features/admin-features/upgrades.mdx b/products/cloud/features/admin-features/upgrades.mdx index 61ee7a96..c02e56f8 100644 --- a/products/cloud/features/admin-features/upgrades.mdx +++ b/products/cloud/features/admin-features/upgrades.mdx @@ -21,7 +21,7 @@ As part of this change, historical system table data will be retained for up to ## Version compatibility {#version-compatibility} -When you create a service, the [`compatibility`](/reference/settings/session-settings#compatibility) setting is set to the most up-to-date ClickHouse version offered on ClickHouse Cloud at the time your service is initially provisioned. +When you create a service, the [`compatibility`](/core/reference/settings/session-settings#compatibility) setting is set to the most up-to-date ClickHouse version offered on ClickHouse Cloud at the time your service is initially provisioned. The `compatibility` setting allows you to use default values of settings from previous versions. When your service is upgraded to a new version, the version specified for the `compatibility` setting doesn't change. This means that default values for settings that existed when you first created your service won't change (unless you have already overridden those default values, in which case they will persist after the upgrade). diff --git a/use-cases/ai-ml/aichat/customizing-semantic-layer.mdx b/products/cloud/features/ai-ml/aichat/customizing-semantic-layer.mdx similarity index 100% rename from use-cases/ai-ml/aichat/customizing-semantic-layer.mdx rename to products/cloud/features/ai-ml/aichat/customizing-semantic-layer.mdx diff --git a/use-cases/ai-ml/aichat/using-ai-chat.mdx b/products/cloud/features/ai-ml/aichat/using-ai-chat.mdx similarity index 100% rename from use-cases/ai-ml/aichat/using-ai-chat.mdx rename to products/cloud/features/ai-ml/aichat/using-ai-chat.mdx diff --git a/products/cloud/features/ai-ml/ask-ai.mdx b/products/cloud/features/ai-ml/ask-ai.mdx index 22b59adf..66e28758 100644 --- a/products/cloud/features/ai-ml/ask-ai.mdx +++ b/products/cloud/features/ai-ml/ask-ai.mdx @@ -14,4 +14,4 @@ It’s designed to work as an embedded assistant, helping users move quickly fro The experience also embeds a "Docs AI" sub-agent that can be used to ask specific questions about the ClickHouse documentation straight from the console. Instead of searching through hundreds of pages, users can ask direct questions like "How do I configure materialized views?" or "What's the difference between ReplacingMergeTree and AggregatingMergeTree?" and receive precise answers with relevant code examples and links to source documentation. -See the [guides](/use-cases/ai-ml/aichat/using-ai-chat) section for more details. +See the [guides](/products/cloud/features/ai-ml/aichat/using-ai-chat) section for more details. diff --git a/use-cases/ai/mcp/remote-mcp.mdx b/products/cloud/features/ai-ml/mcp/remote-mcp.mdx similarity index 98% rename from use-cases/ai/mcp/remote-mcp.mdx rename to products/cloud/features/ai-ml/mcp/remote-mcp.mdx index 1e989588..c79bd124 100644 --- a/use-cases/ai/mcp/remote-mcp.mdx +++ b/products/cloud/features/ai-ml/mcp/remote-mcp.mdx @@ -13,7 +13,7 @@ import { Image } from "/snippets/components/Image.jsx"; This guide shows you how to enable the ClickHouse Cloud Remote MCP Server and set it up for use with common developer tools. **Prerequisites** -- A running [ClickHouse Cloud service](/get-started/setup/cloud) +- A running [ClickHouse Cloud service](/core/get-started/setup/cloud) - Your IDE or agentic development tool of choice ## Enable remote MCP server for Cloud {#enable-remote-mcp-server} diff --git a/products/cloud/features/ai-ml/remote-mcp.mdx b/products/cloud/features/ai-ml/remote-mcp.mdx index 5a02da18..bf10bc5c 100644 --- a/products/cloud/features/ai-ml/remote-mcp.mdx +++ b/products/cloud/features/ai-ml/remote-mcp.mdx @@ -32,13 +32,13 @@ ClickHouse offers two MCP servers. | **Setup** | Zero installation. Point your MCP client at the endpoint and authenticate. | Install and run the server locally | The remote MCP server provides the richest integration with ClickHouse Cloud, including service management, backup monitoring, ClickPipe visibility, and billing data, with no infrastructure to manage. -For self-hosted ClickHouse instances, see the [open-source MCP server guides](/guides/ai-ml/MCP). +For self-hosted ClickHouse instances, see the [open-source MCP server guides](/core/guides/use-cases/ai-ml/MCP). ## Enabling the remote MCP server {#enabling} The remote MCP server must be enabled per service before it can accept connections. In the ClickHouse Cloud console, open your service, click the **Connect** button, select **MCP**, and enable it. -For detailed steps with screenshots, see the [setup guide](/use-cases/ai/mcp/remote-mcp#enable-remote-mcp-server). +For detailed steps with screenshots, see the [setup guide](/products/cloud/features/ai-ml/mcp/remote-mcp#enable-remote-mcp-server). ## Endpoint {#endpoint} @@ -109,4 +109,4 @@ These tools allow agents to discover what data is available and run analytical q ## Getting started {#getting-started} -See the [setup guide](/use-cases/ai/mcp/remote-mcp) for step-by-step instructions on enabling the remote MCP server and connecting it to an MCP client. +See the [setup guide](/products/cloud/features/ai-ml/mcp/remote-mcp) for step-by-step instructions on enabling the remote MCP server and connecting it to an MCP client. diff --git a/products/cloud/features/autoscaling/idling.mdx b/products/cloud/features/autoscaling/idling.mdx index 1e24460f..6da0c484 100644 --- a/products/cloud/features/autoscaling/idling.mdx +++ b/products/cloud/features/autoscaling/idling.mdx @@ -21,7 +21,7 @@ In the **Settings** page, you can also choose whether or not to allow automatic - If server initialization time is more than 60 minutes, the idle timeout is set to 1 hour -The service may enter an idle state where it suspends refreshes of [refreshable materialized views](/concepts/features/materialized-views/refreshable-materialized-view), consumption from [S3Queue](/reference/engines/table-engines/integrations/s3queue), and scheduling of new merges. Existing merge operations will complete before the service transitions to the idle state. To ensure continuous operation of refreshable materialized views and S3Queue consumption, disable the idle state functionality. +The service may enter an idle state where it suspends refreshes of [refreshable materialized views](/core/concepts/features/materialized-views/refreshable-materialized-view), consumption from [S3Queue](/core/reference/engines/table-engines/integrations/s3queue), and scheduling of new merges. Existing merge operations will complete before the service transitions to the idle state. To ensure continuous operation of refreshable materialized views and S3Queue consumption, disable the idle state functionality. diff --git a/products/cloud/features/cli.mdx b/products/cloud/features/cli.mdx index 81b16064..36db445a 100644 --- a/products/cloud/features/cli.mdx +++ b/products/cloud/features/cli.mdx @@ -103,7 +103,7 @@ clickhousectl cloud --json service list ## Local development {#local-development} -The CLI also manages local ClickHouse installations and servers. See the [quick install](/get-started/setup/self-managed/quick-install) page for getting started with local development. +The CLI also manages local ClickHouse installations and servers. See the [quick install](/core/get-started/setup/self-managed/quick-install) page for getting started with local development. ## Requirements {#requirements} diff --git a/products/cloud/features/data-catalogs.mdx b/products/cloud/features/data-catalogs.mdx index f5ec0007..c33239f8 100644 --- a/products/cloud/features/data-catalogs.mdx +++ b/products/cloud/features/data-catalogs.mdx @@ -14,7 +14,7 @@ import BetaBadge from "/snippets/components/BetaBadge/BetaBadge.jsx"; ClickHouse Cloud can connect directly to your open table format data catalogs, giving you access to your data lake tables without duplicating data. Through the integration, your catalog's tables will appear as queryable databases inside ClickHouse. -Setup is available both via SQL command ([DataLakeCatalog](/reference/engines/database-engines/datalake)) and via the ClickHouse Cloud UI on the Data Sources tab. +Setup is available both via SQL command ([DataLakeCatalog](/core/reference/engines/database-engines/datalake)) and via the ClickHouse Cloud UI on the Data Sources tab. Using the UI: - Simplifies setup with a form using fields consistent with your Data Catalog objects @@ -25,12 +25,12 @@ Using the UI: | Name | Open Table Format Supported | Auth Method | Support | Version | |------|-----------------------------|----------------------------------------|---------|---------| -| AWS Glue Catalog | Iceberg | IAM/Access keys | Cloud & [Core](/guides/data-warehousing/glue-catalog) | 25.10+ | -| Lakekeeper | Iceberg | OAuth client credentials | [Core](/guides/data-warehousing/lakekeeper-catalog) | 25.10+ | -| Microsoft OneLake | Iceberg | Azure Active Directory (AAD) | Cloud & [Core](/guides/data-warehousing/onelake-catalog) | 25.12+ | -| Nessie | Iceberg | OAuth client credentials | [Core](/guides/data-warehousing/nessie-catalog) | 25.10+ | -| Polaris/Open Catalog | Iceberg | OAuth client credentials | [Core](/guides/data-warehousing/polaris-catalog) | 26.1+ | -| REST catalog | Iceberg | OAuth client credentials, Bearer token | Cloud & [Core](/guides/data-warehousing/rest-catalog) | 25.10+ | -| Unity Catalog | Iceberg (UniForm-enabled and managed), Delta | OAuth client credentials | Cloud (Iceberg only) & [Core](/guides/data-warehousing/unity-catalog) | 25.10+ | +| AWS Glue Catalog | Iceberg | IAM/Access keys | Cloud & [Core](/core/guides/use-cases/data-warehousing/glue-catalog) | 25.10+ | +| Lakekeeper | Iceberg | OAuth client credentials | [Core](/core/guides/use-cases/data-warehousing/lakekeeper-catalog) | 25.10+ | +| Microsoft OneLake | Iceberg | Azure Active Directory (AAD) | Cloud & [Core](/core/guides/use-cases/data-warehousing/onelake-catalog) | 25.12+ | +| Nessie | Iceberg | OAuth client credentials | [Core](/core/guides/use-cases/data-warehousing/nessie-catalog) | 25.10+ | +| Polaris/Open Catalog | Iceberg | OAuth client credentials | [Core](/core/guides/use-cases/data-warehousing/polaris-catalog) | 26.1+ | +| REST catalog | Iceberg | OAuth client credentials, Bearer token | Cloud & [Core](/core/guides/use-cases/data-warehousing/rest-catalog) | 25.10+ | +| Unity Catalog | Iceberg (UniForm-enabled and managed), Delta | OAuth client credentials | Cloud (Iceberg only) & [Core](/core/guides/use-cases/data-warehousing/unity-catalog) | 25.10+ | We have more catalogs planned, including Horizon and S3 tables REST endpoint. diff --git a/products/cloud/features/infrastructure/deployment-options.mdx b/products/cloud/features/infrastructure/deployment-options.mdx index b7daf90c..0b3101f3 100644 --- a/products/cloud/features/infrastructure/deployment-options.mdx +++ b/products/cloud/features/infrastructure/deployment-options.mdx @@ -16,7 +16,7 @@ This option is ideal if you prioritize rapid deployment, scalability, and minima ClickHouse Cloud handles provisioning, scaling, maintenance, and updates so users can focus entirely on data analysis and application development. It offers consumption-based pricing and automatic scaling to ensure reliable, cost-effective performance for analytical workloads. It is available across AWS, GCP, and Azure, with direct marketplace billing options. -Learn more about [ClickHouse Cloud](/get-started/setup/cloud). +Learn more about [ClickHouse Cloud](/core/get-started/setup/cloud). ## Bring Your Own Cloud {#byoc} diff --git a/products/cloud/features/infrastructure/parallel-replicas.mdx b/products/cloud/features/infrastructure/parallel-replicas.mdx index 954d9477..c20a3e9a 100644 --- a/products/cloud/features/infrastructure/parallel-replicas.mdx +++ b/products/cloud/features/infrastructure/parallel-replicas.mdx @@ -85,7 +85,7 @@ executed, aggregated and that the result is returned to the client. Like in most distributed systems, this will be the role of the node that receives the initial query. We also need to define the unit of work. In a sharded architecture, the unit of work is the shard, a subset of the data. With parallel replicas we -will use a small portion of the table, called [granules](/guides/cloud-oss/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing), +will use a small portion of the table, called [granules](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#data-is-organized-into-granules-for-parallel-data-processing), as the unit of work. Now, let's see how it works in practice with the help of the figure below: @@ -290,7 +290,7 @@ the label `comp-parallel-replicas`. | Limitation | Description | |-----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Complex queries | Currently parallel replica works fairly well for simple queries. Complexity layers like CTEs, subqueries, JOINs, non-flat query, etc. can have a negative impact on query performance. | -| Small queries | If you're executing a query that doesn't process a lot of rows, executing it on multiple replicas might not yield a better performance time given that the network time for the coordination between replicas can lead to additional cycles in the query execution. You can limit these issues by using the setting: [`parallel_replicas_min_number_of_rows_per_replica`](/reference/settings/session-settings#parallel_replicas_min_number_of_rows_per_replica). | +| Small queries | If you're executing a query that doesn't process a lot of rows, executing it on multiple replicas might not yield a better performance time given that the network time for the coordination between replicas can lead to additional cycles in the query execution. You can limit these issues by using the setting: [`parallel_replicas_min_number_of_rows_per_replica`](/core/reference/settings/session-settings#parallel_replicas_min_number_of_rows_per_replica). | | Parallel replicas are disabled with FINAL | | | Projections aren't used together with Parallel replicas | | | High Cardinality data and complex aggregation | High cardinality aggregation that needs to send much data can significantly slow down your queries. | @@ -307,10 +307,10 @@ the label `comp-parallel-replicas`. ## Investigating issues with parallel replicas {#investigating-issues-with-parallel-replicas} You can check what settings are being used for each query in the -[`system.query_log`](/reference/system-tables/query_log) table. You can -also look at the [`system.events`](/reference/system-tables/events) +[`system.query_log`](/core/reference/system-tables/query_log) table. You can +also look at the [`system.events`](/core/reference/system-tables/events) table to see all the events that have occured on the server, and you can use the -[`clusterAllReplicas`](/reference/functions/table-functions/cluster) table function to see the tables on all the replicas +[`clusterAllReplicas`](/core/reference/functions/table-functions/cluster) table function to see the tables on all the replicas (if you're a cloud user, use `default`). ```sql title="Query" @@ -369,7 +369,7 @@ WHERE event ILIKE '%ParallelReplicas%' ``` -The [`system.text_log`](/reference/system-tables/text_log) table also +The [`system.text_log`](/core/reference/system-tables/text_log) table also contains information about the execution of queries using parallel replicas: ```sql title="Query" diff --git a/products/cloud/features/infrastructure/warehouses.mdx b/products/cloud/features/infrastructure/warehouses.mdx index 51a5e03f..64b757fb 100644 --- a/products/cloud/features/infrastructure/warehouses.mdx +++ b/products/cloud/features/infrastructure/warehouses.mdx @@ -118,7 +118,7 @@ _Fig. 6 - Read-write and Read-only services in a warehouse_ 1. Read-only services currently support user management operations (CREATE, DROP, etc). -2. [Refreshable materialized views](/concepts/features/materialized-views/refreshable-materialized-view) run **only** on read-write (RW) services in a warehouse. +2. [Refreshable materialized views](/core/concepts/features/materialized-views/refreshable-materialized-view) run **only** on read-write (RW) services in a warehouse. 3. A service's type (read-only or read-write) is fixed at creation and cannot be changed from the Cloud Console afterwards. To switch between read-only and read-write access, create a new service in the warehouse with the desired type. @@ -166,7 +166,7 @@ Note that read-only services don't execute background merges, thus they don't sp - **ClickHouse Versions**: The [upgrade schedule](/products/cloud/features/admin-features/upgrades) is dictated by the primary service's settings. Secondary services cannot have a release schedule independent of the primary service. -- **`CREATE`/`RENAME`/`DROP DATABASE` queries could be blocked by idled/stopped services by default.** If these queries are executed when the service is idled or stopped, these queries can hang. To bypass this, you can run database management queries with [`settings distributed_ddl_task_timeout=0`](/reference/settings/session-settings#distributed_ddl_task_timeout) at the session or per query level. +- **`CREATE`/`RENAME`/`DROP DATABASE` queries could be blocked by idled/stopped services by default.** If these queries are executed when the service is idled or stopped, these queries can hang. To bypass this, you can run database management queries with [`settings distributed_ddl_task_timeout=0`](/core/reference/settings/session-settings#distributed_ddl_task_timeout) at the session or per query level. For example: diff --git a/products/cloud/features/monitoring/advanced-dashboard.mdx b/products/cloud/features/monitoring/advanced-dashboard.mdx index e0c85fee..0de5f95f 100644 --- a/products/cloud/features/monitoring/advanced-dashboard.mdx +++ b/products/cloud/features/monitoring/advanced-dashboard.mdx @@ -111,7 +111,7 @@ few issues you can spot using the advanced dashboard. ### Unbatched inserts {#unbatched-inserts} -As described in the [best practices documentation](/concepts/best-practices/selecting-an-insert-strategy#batch-inserts-if-synchronous), it is recommended to always +As described in the [best practices documentation](/core/concepts/best-practices/selecting-an-insert-strategy#batch-inserts-if-synchronous), it is recommended to always bulk insert data into ClickHouse if able to do so synchronously. A bulk insert with a reasonable batch size reduces the number of parts created @@ -150,7 +150,7 @@ number of queries per second executed. ### Bad primary key design {#bad-primary-key-design} Another issue you can spot using the advanced dashboard is a bad primary key design. -As described in ["A practical introduction to primary indexes in ClickHouse"](/guides/cloud-oss/data-modelling/sparse-primary-indexes#a-table-with-a-primary-key), +As described in ["A practical introduction to primary indexes in ClickHouse"](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#a-table-with-a-primary-key), choosing the primary key to fit best your use case will greatly improve performance by reducing the number of rows ClickHouse needs to read to execute your query. diff --git a/products/cloud/features/monitoring/notifications.mdx b/products/cloud/features/monitoring/notifications.mdx index f413b6f6..c8a1bdaf 100644 --- a/products/cloud/features/monitoring/notifications.mdx +++ b/products/cloud/features/monitoring/notifications.mdx @@ -47,7 +47,7 @@ ClickHouse sends service notifications when a certain alert condition is trigger |---|---|---|---| | Cluster can not be scaled up | When recommended cluster size exceeds vertical scaling maximum limit. New notification is generated when recommended cluster size changes. | | Consider raising maximum size per replica autoscaling limit. See [scaling](/products/cloud/features/autoscaling/overview). | | Too many parts error | When 'too many parts' error is detected. Notification will only trigger once per calendar day. | Administrator users will receive an email. | Consider batching inserts. See [Exception: Too many parts](/resources/support-center/knowledge-base/troubleshooting/exception-too-many-parts). | -| Failed mutations | When a mutation is in a failed state for 15 mins. Notification will only trigger once per calendar day. | Administrator users will receive an email. | Kill failed mutation. See [Avoid mutations](/concepts/best-practices/avoid-mutations). | +| Failed mutations | When a mutation is in a failed state for 15 mins. Notification will only trigger once per calendar day. | Administrator users will receive an email. | Kill failed mutation. See [Avoid mutations](/core/concepts/best-practices/avoid-mutations). | | High query concurrency | When query concurrency exceeds 1,000 per replica. Notification will only trigger once per calendar day. | Administrator users will receive an email. | Consider adding replicas. | | Cluster scaling completed | When a cluster's size changes. | | N/A | | Cluster can not be scaled down | When recommended cluster size exceeds vertical scaling maximum limit. New notification is generated when recommended cluster size changes. | | Consider lowering minimum size per replica autoscaling limit. See [scaling](/products/cloud/features/autoscaling/overview). | diff --git a/products/cloud/features/monitoring/system-tables.mdx b/products/cloud/features/monitoring/system-tables.mdx index f60f3350..ab97382e 100644 --- a/products/cloud/features/monitoring/system-tables.mdx +++ b/products/cloud/features/monitoring/system-tables.mdx @@ -11,7 +11,7 @@ import { Image } from "/snippets/components/Image.jsx"; # Querying ClickHouse's system database -All ClickHouse instances come with a set of [system tables](/reference/system-tables/overview) contained in the `system` database that contain information about: +All ClickHouse instances come with a set of [system tables](/core/reference/system-tables/overview) contained in the `system` database that contain information about: - Server states, processes, and environment. - Server's internal processes. @@ -86,7 +86,7 @@ FORMAT VERTICAL This approach is particularly valuable for monitoring and debugging cluster-wide operations, ensuring users can effectively analyze the health and performance of their ClickHouse Cloud deployment. -For more details, see [querying across nodes](/reference/system-tables/overview#querying-across-nodes). +For more details, see [querying across nodes](/core/reference/system-tables/overview#querying-across-nodes). ## System considerations {#system-considerations} @@ -98,7 +98,7 @@ For real-time production monitoring with operational separation, consider using ## Related pages {#related} -- [System tables reference](/reference/system-tables/overview) — Full reference for all available system tables +- [System tables reference](/core/reference/system-tables/overview) — Full reference for all available system tables - [Cloud Console monitoring](/products/cloud/features/monitoring/cloud-console) — Zero-setup dashboards that don't impact service performance - [Prometheus endpoint](/products/cloud/features/monitoring/prometheus) — Export metrics to external monitoring tools - [Advanced dashboard](/products/cloud/features/monitoring/advanced-dashboard) — Detailed reference for dashboard visualizations diff --git a/products/cloud/features/sql-console-features/dashboards.mdx b/products/cloud/features/sql-console-features/dashboards.mdx index 0a17e074..018f5c48 100644 --- a/products/cloud/features/sql-console-features/dashboards.mdx +++ b/products/cloud/features/sql-console-features/dashboards.mdx @@ -20,13 +20,13 @@ To share your dashboard with colleagues, be sure to share the underlying saved q ### Interactivity {#interactivity} -Use [query parameters](/reference/syntax#defining-and-using-query-parameters) to make your dashboard interactive. For instance, you can add a query parameter to a `WHERE` clause to function as a filter. +Use [query parameters](/core/reference/syntax#defining-and-using-query-parameters) to make your dashboard interactive. For instance, you can add a query parameter to a `WHERE` clause to function as a filter. You can toggle the query parameter input via the **Global** filters side pane by selecting a “filter” type in the visualization settings. You can also toggle the query parameter input by linking to another object (like a table) on the dashboard. Please see the “[configure a filter](/products/cloud/features/sql-console-features/dashboards#configure-a-filter)” section of the quick start guide below. ## Quick start {#quick-start} -Let's create a dashboard to monitor our ClickHouse service using the [query\_log](/reference/system-tables/query_log) system table. +Let's create a dashboard to monitor our ClickHouse service using the [query\_log](/core/reference/system-tables/query_log) system table. ## Quick start {#quick-start-1} @@ -72,7 +72,7 @@ You've created your first dashboard by visualizing two saved queries! ### Configure a filter {#configure-a-filter} -Let's make this dashboard interactive by adding a filter on query kind so you can display just the trends related to Insert queries. We'll accomplish this task using [query parameters](/reference/syntax#defining-and-using-query-parameters). +Let's make this dashboard interactive by adding a filter on query kind so you can display just the trends related to Insert queries. We'll accomplish this task using [query parameters](/core/reference/syntax#defining-and-using-query-parameters). Click on the three dots next to the line chart, and click on the pencil button next to the query to open the in-line query editor. Here, we can edit the underlying saved query directly from the dashboard. diff --git a/products/cloud/features/sql-console-features/user-defined-functions.mdx b/products/cloud/features/sql-console-features/user-defined-functions.mdx index f9348ed0..a58250fc 100644 --- a/products/cloud/features/sql-console-features/user-defined-functions.mdx +++ b/products/cloud/features/sql-console-features/user-defined-functions.mdx @@ -9,7 +9,7 @@ keywords: ['user defined function', 'UDF'] import PrivatePreviewBadge from "/snippets/components/PrivatePreviewBadge/PrivatePreviewBadge.jsx"; -User-defined functions (UDF) allow users to extend the behavior of ClickHouse beyond what is offered by over a thousand different out-of-box [functions](/reference/functions/regular-functions/regular-functions-index). +User-defined functions (UDF) allow users to extend the behavior of ClickHouse beyond what is offered by over a thousand different out-of-box [functions](/core/reference/functions/regular-functions/regular-functions-index). In ClickHouse Cloud, there are two ways to create user-defined functions: 1. Using SQL @@ -17,7 +17,7 @@ In ClickHouse Cloud, there are two ways to create user-defined functions: ## SQL user-defined functions {#sql-udfs} -SQL UDFs can be created using the [`CREATE FUNCTION`](/reference/statements/create/function) statement from a lambda expression. +SQL UDFs can be created using the [`CREATE FUNCTION`](/core/reference/statements/create/function) statement from a lambda expression. In this example we'll create a simple executable user-defined function, `isBusinessHours`. The function will check if a certain timestamp falls inside of regular business hours and return true if it does, otherwise false. @@ -144,7 +144,7 @@ zip is_business_hours.zip main.py 5. Select a function type, either **Executable pool** or **Executable**: - **Executable pool**: A pool of persistent processes is maintained, and a process is taken from the pool for reads. - **Executable**: The script runs on every query. -6. For this example, use the default settings. For a full list of configuration parameters, see [Executable user-defined functions](/reference/functions/regular-functions/udf#executable-user-defined-functions). +6. For this example, use the default settings. For a full list of configuration parameters, see [Executable user-defined functions](/core/reference/functions/regular-functions/udf#executable-user-defined-functions). 7. Click **Browse File** to upload the `.zip` file created at the start of this tutorial. 8. Add a new argument. For this example, add an argument `timestamp` with type `DateTime`. 9. Select a return type. For this example, select `Bool`. diff --git a/products/cloud/getting-started/cloud-get-started.mdx b/products/cloud/getting-started/cloud-get-started.mdx index c40f5add..f7ce17d4 100644 --- a/products/cloud/getting-started/cloud-get-started.mdx +++ b/products/cloud/getting-started/cloud-get-started.mdx @@ -17,7 +17,7 @@ you through each step of the process as you explore ClickHouse Cloud. ## Discover ClickHouse Cloud {#discover-clickhouse-cloud} - [Learn](/products/cloud/getting-started/intro) about what ClickHouse Cloud is, and how it differs from the open-source version -- [Discover](/get-started/use-cases/overview) the main use-cases of ClickHouse Cloud +- [Discover](/core/get-started/use-cases/overview) the main use-cases of ClickHouse Cloud ## Get set up with ClickHouse Cloud {#get-set-up-with-clickhouse-cloud} @@ -28,7 +28,7 @@ and point you towards some general best practices you should know. Topics include: -- [Migration guides](/get-started/setup/migration-guides/overview) from various platforms +- [Migration guides](/core/get-started/setup/migration-guides/overview) from various platforms ## Tune your ClickHouse Cloud deployment {#evaluate-clickhouse-cloud} diff --git a/products/cloud/getting-started/resource-tour.mdx b/products/cloud/getting-started/resource-tour.mdx index 5d238209..2e1fb6c4 100644 --- a/products/cloud/getting-started/resource-tour.mdx +++ b/products/cloud/getting-started/resource-tour.mdx @@ -36,7 +36,7 @@ using ClickHouse: |----------------------------------------------------------------------------|-------------------------------------------------------------------------------| | [Advanced dashboard](/products/cloud/features/monitoring/advanced-dashboard) | Use the built in advanced dashboard to monitor service health and performance | | [Prometheus integration](/products/cloud/features/monitoring/prometheus) | Use Prometheus to monitor Cloud services | -| [Cloud Monitoring Capabilities](/guides/observability/cloud-monitoring) | Get an overview of built in monitoring capabilities and integration options | +| [Cloud Monitoring Capabilities](/core/guides/use-cases/observability/cloud-monitoring) | Get an overview of built in monitoring capabilities and integration options | ## Security {#security} diff --git a/products/cloud/guides/backups/bring-your-own-backup/backup-restore-using-commands.mdx b/products/cloud/guides/backups/bring-your-own-backup/backup-restore-using-commands.mdx index d38dd5c1..00a81356 100644 --- a/products/cloud/guides/backups/bring-your-own-backup/backup-restore-using-commands.mdx +++ b/products/cloud/guides/backups/bring-your-own-backup/backup-restore-using-commands.mdx @@ -43,7 +43,7 @@ You will need the following details to export/restore backups to your own CSP st ## Backup / Restore specific DB {#backup_restore_db} Here we show the backup and restore of a *single* database. -See the [backup command summary](/concepts/features/backup-restore/overview#command-summary) for full backup and restore commands. +See the [backup command summary](/core/concepts/features/backup-restore/overview#command-summary) for full backup and restore commands. ### AWS S3 {#aws-s3-bucket} diff --git a/products/cloud/guides/backups/bring-your-own-backup/export-backups-to-own-cloud-account.mdx b/products/cloud/guides/backups/bring-your-own-backup/export-backups-to-own-cloud-account.mdx index c652d0f7..2e6f882d 100644 --- a/products/cloud/guides/backups/bring-your-own-backup/export-backups-to-own-cloud-account.mdx +++ b/products/cloud/guides/backups/bring-your-own-backup/export-backups-to-own-cloud-account.mdx @@ -93,7 +93,7 @@ AS test_backups_restored FROM S3('https://testchbackups.s3.amazonaws.com/backups/', '', '') ``` -See: [Configuring BACKUP/RESTORE to use an S3 Endpoint](/concepts/features/backup-restore/s3-endpoint) for more details. +See: [Configuring BACKUP/RESTORE to use an S3 Endpoint](/core/concepts/features/backup-restore/s3-endpoint) for more details. ## Backup / Restore to Azure Blob Storage {#backup--restore-to-azure-blob-storage} @@ -124,7 +124,7 @@ AS test_backups_restored_azure FROM AzureBlobStorage('', '', '/') ``` -See: [Configuring BACKUP/RESTORE to use an AzureBlobStorage Endpoint](/concepts/features/backup-restore/azure-blob-storage#configuring-backuprestore-to-use-an-azureblobstorage-endpoint) for more details. +See: [Configuring BACKUP/RESTORE to use an AzureBlobStorage Endpoint](/core/concepts/features/backup-restore/azure-blob-storage#configuring-backuprestore-to-use-an-azureblobstorage-endpoint) for more details. ## Backup / Restore to Google Cloud Storage (GCS) {#backup--restore-to-google-cloud-storage-gcs} diff --git a/products/cloud/guides/backups/review-and-restore-backups.mdx b/products/cloud/guides/backups/review-and-restore-backups.mdx index 68b65601..f162012a 100644 --- a/products/cloud/guides/backups/review-and-restore-backups.mdx +++ b/products/cloud/guides/backups/review-and-restore-backups.mdx @@ -137,7 +137,7 @@ After you have successfully inserted the data into your original service, make s The `UNDROP` command is supported in ClickHouse Cloud through [Shared Catalog](/products/cloud/features/infrastructure/shared-catalog). -To prevent users from accidentally dropping tables, you can use [`GRANT` statements](/reference/statements/grant) to revoke permissions for the [`DROP TABLE` command](/reference/statements/drop#drop-table) for a specific user or role. +To prevent users from accidentally dropping tables, you can use [`GRANT` statements](/core/reference/statements/grant) to revoke permissions for the [`DROP TABLE` command](/core/reference/statements/drop#drop-table) for a specific user or role. To prevent accidental deletion of data, please note that by default it isn't possible to drop tables >`1TB` in size in ClickHouse Cloud. diff --git a/products/cloud/guides/best-practices/multitenancy.mdx b/products/cloud/guides/best-practices/multitenancy.mdx index 68a59246..1c276d34 100644 --- a/products/cloud/guides/best-practices/multitenancy.mdx +++ b/products/cloud/guides/best-practices/multitenancy.mdx @@ -13,7 +13,7 @@ Depending on the requirements, there are different ways to implement multi-tenan ## Shared table {#shared-table} -In this approach, data from all tenants is stored in a single shared table, with a field (or set of fields) used to identify each tenant's data. To maximize performance, this field should be included in the [primary key](/reference/statements/create/table#primary-key). To ensure that you can only access data belonging to your respective tenants we use [role-based access control](/concepts/features/security/access-rights), implemented through [row policies](/concepts/features/security/access-rights#row-policy-management). +In this approach, data from all tenants is stored in a single shared table, with a field (or set of fields) used to identify each tenant's data. To maximize performance, this field should be included in the [primary key](/core/reference/statements/create/table#primary-key). To ensure that you can only access data belonging to your respective tenants we use [role-based access control](/core/concepts/features/security/access-rights), implemented through [row policies](/core/concepts/features/security/access-rights#row-policy-management). > **We recommend this approach as this is the simplest to manage, particularly when all tenants share the same data schema and data volumes are moderate (< TBs)** @@ -71,7 +71,7 @@ CREATE USER user_1 IDENTIFIED BY '' CREATE USER user_2 IDENTIFIED BY '' ``` -We [create row policies](/reference/statements/create/row-policy) that restricts `user_1` and `user_2` to access only their tenants' data. +We [create row policies](/core/reference/statements/create/row-policy) that restricts `user_1` and `user_2` to access only their tenants' data. ```sql -- Create row policies @@ -79,7 +79,7 @@ CREATE ROW POLICY user_filter_1 ON default.events USING tenant_id=1 TO user_1 CREATE ROW POLICY user_filter_2 ON default.events USING tenant_id=2 TO user_2 ``` -Then [`GRANT SELECT`](/reference/statements/grant#usage) privileges on the shared table using a common role. +Then [`GRANT SELECT`](/core/reference/statements/grant#usage) privileges on the shared table using a common role. ```sql -- Create role @@ -109,7 +109,7 @@ FROM events ## Separate tables {#separate-tables} -In this approach, each tenant's data is stored in a separate table within the same database, eliminating the need for a specific field to identify tenants. User access is enforced using a [GRANT statement](/reference/statements/grant), ensuring that each user can access only tables containing their tenants' data. +In this approach, each tenant's data is stored in a separate table within the same database, eliminating the need for a specific field to identify tenants. User access is enforced using a [GRANT statement](/core/reference/statements/grant), ensuring that each user can access only tables containing their tenants' data. > **Using separate tables is a good choice when tenants have different data schemas.** diff --git a/products/cloud/guides/cloud-compatibility.mdx b/products/cloud/guides/cloud-compatibility.mdx index 47b486af..212646c6 100644 --- a/products/cloud/guides/cloud-compatibility.mdx +++ b/products/cloud/guides/cloud-compatibility.mdx @@ -59,7 +59,7 @@ ClickHouse Cloud provides a highly-available, replicated service by default. As - Kafka ### Interfaces {#interfaces} -ClickHouse Cloud supports HTTPS, native interfaces, and the [MySQL wire protocol](/integrations/connectors/data-integrations/drivers-and-interfaces/mysql). Support for more interfaces such as Postgres is coming soon. +ClickHouse Cloud supports HTTPS, native interfaces, and the [MySQL wire protocol](/core/concepts/features/interfaces/mysql). Support for more interfaces such as Postgres is coming soon. ### Dictionaries {#dictionaries} Dictionaries are a popular way to speed up lookups in ClickHouse. ClickHouse Cloud currently supports dictionaries from PostgreSQL, MySQL, remote and local ClickHouse servers, Redis, MongoDB and HTTP sources. @@ -79,7 +79,7 @@ Federated queries with some external database and table engines, such as SQLite, ### User defined functions {#user-defined-functions} -User-defined functions in ClickHouse Cloud are in [private preview](/reference/functions/regular-functions/udf). +User-defined functions in ClickHouse Cloud are in [private preview](/core/reference/functions/regular-functions/udf). #### Settings behavior {#udf-settings-behavior} @@ -100,7 +100,7 @@ Experimental features are disabled in ClickHouse Cloud services to ensure the st ### Named collections {#named-collections} -[Named collections](/concepts/features/configuration/server-config/named-collections) aren't currently supported in ClickHouse Cloud. +[Named collections](/core/concepts/features/configuration/server-config/named-collections) aren't currently supported in ClickHouse Cloud. ## Operational defaults and considerations {#operational-defaults-and-considerations} The following are default settings for ClickHouse Cloud services. In some cases, these settings are fixed to ensure the correct operation of the service, and in others, they can be adjusted. diff --git a/products/cloud/guides/data-sources/index.mdx b/products/cloud/guides/data-sources/index.mdx index 7d45634a..fd1dbe89 100644 --- a/products/cloud/guides/data-sources/index.mdx +++ b/products/cloud/guides/data-sources/index.mdx @@ -25,4 +25,4 @@ ClickPipes allow customers to easily integrate streaming data from a number of s ### Table functions as external data sources {#table-functions-as-external-data-sources} -ClickHouse supports a number of table functions to access external data sources. For more information, refer to [table functions](/reference/functions/table-functions) in the SQL reference section. +ClickHouse supports a number of table functions to access external data sources. For more information, refer to [table functions](/core/reference/functions/table-functions) in the SQL reference section. diff --git a/products/cloud/guides/data-sources/secure-azure.mdx b/products/cloud/guides/data-sources/secure-azure.mdx index e007c722..a69c4219 100644 --- a/products/cloud/guides/data-sources/secure-azure.mdx +++ b/products/cloud/guides/data-sources/secure-azure.mdx @@ -16,8 +16,8 @@ This guide will help you choose the right approach and configure your connection Supported use cases: -- Reading data from Azure Blob Storage using the [azureBlobStorage table function](/reference/functions/table-functions/azureBlobStorage) -- Creating external tables with the [AzureBlobStorage table engine](/reference/engines/table-engines/integrations/azureBlobStorage) +- Reading data from Azure Blob Storage using the [azureBlobStorage table function](/core/reference/functions/table-functions/azureBlobStorage) +- Creating external tables with the [AzureBlobStorage table engine](/core/reference/engines/table-engines/integrations/azureBlobStorage) - Ingesting data via ClickPipes - [Storing backups in Azure Blob Storage](/products/cloud/guides/backups/bring-your-own-backup/backup-restore-from-ui#azure) diff --git a/products/cloud/guides/index.mdx b/products/cloud/guides/index.mdx index 988d9493..de8a6971 100644 --- a/products/cloud/guides/index.mdx +++ b/products/cloud/guides/index.mdx @@ -11,14 +11,14 @@ keywords: ['cloud guides', 'documentation', 'how-to', 'cloud features', 'tutoria | Page | Description | |-----|-----| | [Overview](/products/cloud/guides/backups/review-and-restore-backups) | Provides an overview of backups in ClickHouse Cloud | -| [Enable and connect ClickHouse Cloud remote MCP server](/use-cases/ai/mcp/remote-mcp) | This guide explains how to enable and use the ClickHouse Cloud Remote MCP | -| [Use ClickHouse Assistant chat in ClickHouse Cloud](/use-cases/ai-ml/aichat/using-ai-chat) | Guide to enabling and using the AI Chat feature in ClickHouse Cloud Console | +| [Enable and connect ClickHouse Cloud remote MCP server](/products/cloud/features/ai-ml/mcp/remote-mcp) | This guide explains how to enable and use the ClickHouse Cloud Remote MCP | +| [Use ClickHouse Assistant chat in ClickHouse Cloud](/products/cloud/features/ai-ml/aichat/using-ai-chat) | Guide to enabling and using the AI Chat feature in ClickHouse Cloud Console | | [Take a backup or restore a backup from the UI](/products/cloud/guides/backups/bring-your-own-backup/backup-restore-from-ui) | Page describing how to take a backup or restore a backup from the UI with your own bucket | | [Take a backup or restore a backup using commands](/products/cloud/guides/backups/bring-your-own-backup/backup-restore-using-commands) | Page describing how to take a backup or restore a backup with your own bucket using commands | | [Accessing GCS data securely](/products/cloud/guides/data-sources/secure-gcs) | This article demonstrates how ClickHouse Cloud customers can access their GCS data securely | | [Accessing Iceberg data securely](/products/cloud/guides/data-sources/accessing-iceberg-data-securely) | This article demonstrates how ClickHouse Cloud customers can securely access Apache Iceberg data in object storage using role-based access. | | [Accessing S3 data securely](/products/cloud/guides/data-sources/accessing-s3-data-securely) | This article demonstrates how ClickHouse Cloud customers can leverage role-based access to authenticate with Amazon Simple Storage Service(S3) and access their data securely. | -| [Architecture](/products/cloud/guides/infrastructure/deployment-options/byoc/architecture) | Deploy ClickHouse on your own cloud infrastructure | +| [Architecture](/products/bring-your-own-cloud/overview/architecture) | Deploy ClickHouse on your own cloud infrastructure | | [AWS customized setup](/products/bring-your-own-cloud/onboarding/customization-aws) | Deploy ClickHouse BYOC into your existing AWS VPC | | [AWS PrivateLink](/products/cloud/guides/security/connectivity/private-networking/aws-privatelink) | This document describes how to connect to ClickHouse Cloud using AWS PrivateLink. | | [Azure Private Link](/products/cloud/guides/security/connectivity/private-networking/azure-privatelink) | How to set up Azure Private Link | @@ -29,7 +29,7 @@ keywords: ['cloud guides', 'documentation', 'how-to', 'cloud features', 'tutoria | [BYOC FAQ](/products/bring-your-own-cloud/reference/faq) | Deploy ClickHouse on your own cloud infrastructure | | [BYOC GCP private networking setup](/products/bring-your-own-cloud/onboarding/network-gcp) | Set up VPC Peering or Private Service Connect for BYOC on GCP | | [BYOC Network Security](/products/bring-your-own-cloud/reference/network-security) | Deploy ClickHouse on your own cloud infrastructure | -| [BYOC observability](/products/cloud/guides/infrastructure/deployment-options/byoc/observability/aws) | Monitor and observe your BYOC ClickHouse deployment using built-in dashboards and Prometheus metrics | +| [BYOC observability](/products/bring-your-own-cloud/reference/observability-aws) | Monitor and observe your BYOC ClickHouse deployment using built-in dashboards and Prometheus metrics | | [BYOC operations and maintenance](/products/bring-your-own-cloud/configuration/operations) | Deploy ClickHouse on your own cloud infrastructure | | [BYOC privilege](/products/bring-your-own-cloud/reference/privilege) | Deploy ClickHouse on your own cloud infrastructure | | [BYOC security playbook](/products/cloud/guides/security/audit-logging/byoc-security-playbook) | This page illustrates methods customers can use to identify potential security events | @@ -63,7 +63,7 @@ keywords: ['cloud guides', 'documentation', 'how-to', 'cloud features', 'tutoria | [Managing AWS service limits and quotas](/products/bring-your-own-cloud/reference/aws-service-limits) | AWS service quotas to verify before BYOC onboarding, how to request increases, and what to monitor as services scale | | [Migrating from CMEK v1 to v2](/products/cloud/guides/security/cmek-migration) | Migration instructions to move from legacy CMEK to version 2 | | [Multi tenancy](/products/cloud/guides/best-practices/multitenancy) | Best practices to implement multi tenancy | -| [Optimizing ClickHouse Assistant agent conversations with a semantic layer](/use-cases/ai-ml/aichat/customizing-semantic-layer) | Guide to using AGENTS.md to provide custom business logic and data-specific instructions to the ClickHouse Assistant chat agent | +| [Optimizing ClickHouse Assistant agent conversations with a semantic layer](/products/cloud/features/ai-ml/aichat/customizing-semantic-layer) | Guide to using AGENTS.md to provide custom business logic and data-specific instructions to the ClickHouse Assistant chat agent | | [Overview](/products/cloud/guides/infrastructure/deployment-options/byoc/overview) | Deploy ClickHouse on your own cloud infrastructure | | [PCI onboarding](/products/cloud/guides/security/compliance/pci-onboarding) | Learn more about how to onboard to PCI compliant services | | [Query API endpoints](/products/cloud/guides/sql-console/query-endpoints) | Easily spin up REST API endpoints from your saved queries | diff --git a/products/cloud/guides/infrastructure/deployment-options/byoc/architecture.mdx b/products/cloud/guides/infrastructure/deployment-options/byoc/architecture.mdx deleted file mode 100644 index d487ae3b..00000000 --- a/products/cloud/guides/infrastructure/deployment-options/byoc/architecture.mdx +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: 'Architecture' -slug: /cloud/reference/byoc/architecture -sidebarTitle: 'Architecture' -keywords: ['BYOC', 'cloud', 'bring your own cloud'] -description: 'Deploy ClickHouse on your own cloud infrastructure' -doc_type: 'reference' ---- - -import { Image } from "/snippets/components/Image.jsx"; - -## Key concepts {#key-concepts} - -The diagram below illustrates how ClickHouse Cloud organizations, cloud accounts, and BYOC infrastructure relate to each other. - - -
    - -- **ClickHouse Cloud organization:** The top-level entity in ClickHouse Cloud that manages users, billing, and non-BYOC ClickHouse services. Users within an organization can access both standard Cloud services and BYOC services. -- **ClickHouse BYOC organization:** A separate organization dedicated to managing BYOC deployments. It shares users with the Cloud organization but is linked to one or more cloud accounts where BYOC infrastructure is deployed. -- **Cloud account / project:** The customer-owned AWS account or GCP project where BYOC infrastructure is provisioned. Each account or project can host BYOC deployments in one or more regions. A dedicated account or project per BYOC deployment is recommended for isolation. -- **BYOC infrastructure:** The set of cloud resources deployed within a specific region of a cloud account, including a VPC, Kubernetes cluster (EKS/GKE), storage buckets, IAM roles, and supporting services. A single cloud account can contain multiple BYOC infrastructures across different regions. -- **ClickHouse Service:** An individual ClickHouse cluster running within a BYOC infrastructure. Multiple services can run within the same BYOC infrastructure. - - -Mixing of AWS accounts and GCP projects under the same organization is only possible for customers who are not set up through a [cloud service provider marketplace](/products/cloud/reference/billing/marketplace/overview). - - -## Glossary {#glossary} - -- **ClickHouse VPC:** The VPC owned by ClickHouse Cloud. -- **Customer BYOC VPC:** The VPC, owned by the customer's cloud account, is provisioned and managed by ClickHouse Cloud and dedicated to a ClickHouse Cloud BYOC deployment. -- **Customer VPC:** Other VPCs owned by the customer cloud account used for applications that need to connect to the Customer BYOC VPC. - -## Technical architecture {#architecture} - -BYOC separates the **ClickHouse control plane**, which runs in the ClickHouse VPC, from the **data plane**, which runs entirely in your cloud account. The ClickHouse VPC hosts the ClickHouse Cloud Console, authentication, user management, APIs, billing, infrastructure management components such as the BYOC controller, and alerting/incident tooling. These services orchestrate and monitor your deployment, but they don't store your data. - -In your **Customer BYOC VPC**, ClickHouse provisions a Kubernetes cluster (for example, Amazon EKS) that runs the ClickHouse data plane. As shown in the diagram, this includes the ClickHouse cluster itself, the ClickHouse operator, and supporting services such as ingress, DNS, certificate management, state exporters, and scrapers. A dedicated monitoring stack (Prometheus, Grafana, AlertManager, and Thanos) also runs within your VPC, ensuring that metrics and alerts originate from and remain in your environment. - -
    - - - -
    - -The main cloud resources ClickHouse Cloud will deploy in your account are: - -* **VPC:** A Virtual Private Cloud dedicated to your ClickHouse deployment. This can be managed either by ClickHouse or by you, the customer, and is typically peered with your application VPCs. -* **IAM roles and policies:** Roles and permissions necessary for Kubernetes, ClickHouse services, and the monitoring stack. These can be provisioned by ClickHouse or supplied by the customer. -* **Storage buckets:** Used for storing data parts, backups, and (optionally) long-term metrics and log archives. -* **Kubernetes cluster:** This can be Amazon EKS, Google GKE, or Azure AKS, depending on your cloud provider, and hosts the ClickHouse servers and supporting services shown in the architecture diagram. - -By default, ClickHouse Cloud provisions a new, dedicated VPC and sets up the necessary IAM roles to ensure secure operation of Kubernetes services. For organizations with advanced networking or security needs, there is also the option to manage the VPC and IAM roles independently. This approach allows for greater customization of network configurations and more precise control over permissions. However, choosing to self-manage these resources will increase your operational responsibilities. - -### Data Storage {#data-storage} - -All ClickHouse data, backups, and observability data stay in your cloud account. Data parts and backups are stored in your object storage (for example, Amazon S3), while logs are stored on the storage volumes attached to your ClickHouse nodes. In a future update, logs will be written to LogHouse, a ClickHouse-based logging service that also runs inside your BYOC VPC. Metrics can be stored locally or in an independent bucket in your BYOC VPC for long-term retention. Control-plane connectivity between the ClickHouse VPC and your BYOC VPC is provided over a secure, tightly scoped channel (for example, via Tailscale as shown in the diagram); this is used only for management operations, not for query traffic. - -### Control Plane communication {#control-plane-communication} - -The ClickHouse VPC communicates with your BYOC VPC over HTTPS (port 443) for service management operations including configuration changes, health checks, and deployment commands. This traffic carries only control plane data for orchestration. Critical telemetry and alerts flow from your BYOC VPC to the ClickHouse VPC to enable resource utilization and health monitoring. - -## Key Requirements for BYOC {#key-requirements} - -The BYOC deployment model requires two essential components to ensure reliable operations, ease of maintenance, and security: - -### Cross-account IAM permissions {#cross-account-iam-permissions} - -ClickHouse Cloud needs cross-account IAM permissions to provision and manage resources within your cloud account. This enables ClickHouse to: - -- **Provision infrastructure**: Create and configure VPCs, subnets, security groups, and other networking components -- **Manage Kubernetes clusters**: Deploy and maintain EKS/GKE clusters, node groups, and cluster components -- **Create storage resources**: Provision S3 buckets or equivalent object storage for data and backups -- **Manage IAM roles**: Create and configure IAM roles for Kubernetes service accounts and supporting services -- **Operate supporting services**: Deploy and manage monitoring stacks, ingress controllers, and other infrastructure components - -These permissions are granted through a cross-account IAM role (AWS) or service account (GCP) that you create during the initial onboarding process. The role follows the principle of least privilege, with permissions scoped to only what's necessary for BYOC operations. - -For detailed information about the specific permissions required, see the [BYOC Privilege Reference](/products/bring-your-own-cloud/reference/privilege). - -### Tailscale Private Network Connection {#tailscale-private-network} - -Tailscale provides a secure, zero-trust private network connection between ClickHouse Cloud's management services and your BYOC deployment. This connection enables: - -- **Continuous monitoring**: ClickHouse engineers can access the Prometheus monitoring stack deployed in your BYOC VPC to monitor service health and performance -- **Proactive maintenance**: Engineers can perform routine maintenance, upgrades, and troubleshooting operations -- **Emergency support**: In case of service issues, engineers can quickly access your environment to diagnose and resolve problems -- **Infrastructure management**: Management services can coordinate with your BYOC infrastructure for automated operations - -The Tailscale connection is **outbound-only** from your BYOC VPC—no inbound connections are required, reducing your security exposure. All access is: -- **Approved and audited**: Engineers must request access through an internal approval system -- **Time-bound**: Access automatically expires after a set period -- **Restricted**: Engineers can only access system tables and infrastructure components, never customer data -- **Encrypted**: All communication is encrypted end-to-end - -For detailed information about how Tailscale works in BYOC and security controls, see the [Network Security documentation](/products/bring-your-own-cloud/reference/network-security#tailscale-private-network). - -### Why These Requirements Matter {#why-requirements-matter} - -Together, these two components enable ClickHouse Cloud to: - -- **Maintain reliability**: Proactively monitor and maintain your deployment to prevent issues -- **Ensure security**: Use least-privilege access with full auditability -- **Simplify operations**: Automate infrastructure management while you maintain control -- **Provide support**: Quickly respond to and resolve issues when they occur - -All customer data remains within your cloud account and is never accessed or transmitted through these management channels. - -**Additional recommendations and considerations:** -- Ensure that network CIDR ranges for your BYOC VPC doesn't overlap with any existing VPCs you plan to peer with. -- Tag your resources clearly to simplify management and support. -- Plan for adequate subnet sizing and distribution across availability zones for high availability. -- Consult the [security playbook](/products/cloud/guides/security/audit-logging/byoc-security-playbook) to understand shared responsibility and best practices when ClickHouse Cloud operates within your environment. -- Review the full onboarding guide for step-by-step instructions on initial account setup, VPC configuration, network connectivity (for example, VPC peering), and IAM role delegation. - -If you have unique requirements or constraints, contact ClickHouse Support for guidance on advanced network configurations or custom IAM policies. diff --git a/products/cloud/guides/infrastructure/deployment-options/byoc/faq/aws.mdx b/products/cloud/guides/infrastructure/deployment-options/byoc/faq/aws.mdx deleted file mode 100644 index 4d1eae9f..00000000 --- a/products/cloud/guides/infrastructure/deployment-options/byoc/faq/aws.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: 'BYOC on AWS FAQ' -slug: /cloud/reference/byoc/faq/aws -sidebarTitle: 'AWS' -keywords: ['BYOC', 'cloud', 'bring your own cloud', 'AWS'] -description: 'Deploy ClickHouse on your own cloud infrastructure' -doc_type: 'reference' ---- - -## FAQ - -### Compute - - - -Yes. The infrastructure only needs to be provisioned once for every AWS account and region combination. - - -BYOC supports the same set of [regions](/products/cloud/reference/supported-regions#aws-regions) as ClickHouse Cloud. - - -Besides Clickhouse instances (ClickHouse servers and ClickHouse Keeper), we run services such as `clickhouse-operator`, `aws-cluster-autoscaler`, Istio etc. and our monitoring stack. - -Currently, we have three m5.xlarge nodes (one for each AZ) in a dedicated node group to run those workloads. - - -### Network and security - - - -This is currently not possible. - - -Yes. Implementing a customer controlled mechanism where customers can approve engineers' access to the cluster is on our roadmap. At the moment, engineers must go through our internal escalation process to gain just-in-time access to the cluster. This is logged and audited by our security team. - - -By default, we use `10.0.0.0/16` for BYOC VPC. We recommend reserving at least /22 for potential future scaling, -but if you prefer to limit the size, it is possible to use /23 if it is likely that you will be limited -to 30 server pods. - - -Contact support to schedule maintenance windows. Please expect a minimum of a weekly update schedule. - - -### Uptime SLAs - - - -No, since the data plane is hosted in the customer's cloud environment, service availability depends on resources not in ClickHouse's control. Therefore, ClickHouse does not offer a formal uptime SLA for BYOC deployments. If you have additional questions, please contact support@clickhouse.com. - - \ No newline at end of file diff --git a/products/cloud/guides/infrastructure/deployment-options/byoc/observability/aws.mdx b/products/cloud/guides/infrastructure/deployment-options/byoc/observability/aws.mdx deleted file mode 100644 index 3cd9920d..00000000 --- a/products/cloud/guides/infrastructure/deployment-options/byoc/observability/aws.mdx +++ /dev/null @@ -1,199 +0,0 @@ ---- -title: 'BYOC observability' -slug: /cloud/reference/byoc/observability -sidebarTitle: 'Observability' -keywords: ['BYOC', 'cloud', 'bring your own cloud', 'observability', 'monitoring', 'Prometheus', 'Grafana'] -description: 'Monitor and observe your BYOC ClickHouse deployment using built-in dashboards and Prometheus metrics' -doc_type: 'reference' ---- - -import { Image } from "/snippets/components/Image.jsx"; - -BYOC deployments include comprehensive observability capabilities, allowing you to monitor your ClickHouse services through a dedicated Prometheus monitoring stack, and direct metric endpoints from ClickHouse Servers. All observability data remains within your cloud account, giving you complete control over your monitoring infrastructure. - -## Prometheus Monitoring Approaches {#prometheus-monitoring} - -BYOC offers two main ways to collect and visualize metrics using Prometheus: - -1. **Connect to the Built-In Prometheus Stack**: Access the centralized, pre-installed Prometheus instance running inside your BYOC Kubernetes cluster. -2. **Scrape ClickHouse Metrics Directly**: Point your own Prometheus deployment to the `/metrics_all` endpoint exposed by each ClickHouse service. - -### Comparing Monitoring Methods {#monitoring-approaches-comparison} - -| Capability | Built-In Prometheus Stack | Direct Scraping from ClickHouse Services | -|-------------------------|-------------------------------------------------------------------|------------------------------------------------------------| -| **Metrics Scope** | Consolidates metrics from ClickHouse, Kubernetes, and supporting services (full cluster visibility) | Metrics from individual ClickHouse servers only | -| **Setup Process** | Requires setting up private network access (e.g., via private load balancer) | Simply configure Prometheus to scrape the public or private ClickHouse endpoint | -| **How You Connect** | Through the private load balancer within your VPC/network | The same endpoint you use for database access | -| **Authentication** | None needed (private-network-restricted) | Uses ClickHouse service credentials | -| **Network Prerequisites** | Private load balancer and appropriate network connectivity | Available to any network with access to your ClickHouse endpoint | -| **Best Suited For** | Holistic infrastructure & service monitoring | Service-specific monitoring and integration | -| **How to Integrate** | Configure federation in external Prometheus to ingest cluster metrics | Add ClickHouse metric endpoints directly to your Prometheus config | - -**Recommendation**: For most use cases, we recommend integrating with the built-in Prometheus stack, as it provides comprehensive metrics from all components in your BYOC deployment (ClickHouse services, Kubernetes cluster, and supporting services) rather than just ClickHouse server metrics alone. - -## The Built-in BYOC Prometheus Stack {#builtin-prometheus-stack} - -ClickHouse BYOC deploys a complete Prometheus monitoring stack within your Kubernetes cluster, including Prometheus, Grafana, AlertManager, and optionally Thanos for long-term metric storage. This stack collects metrics from: - -- ClickHouse servers and ClickHouse Keeper -- Kubernetes cluster and system components -- Underlying infrastructure nodes - -### Accessing the Prometheus Stack {#accessing-prometheus-stack} - -To connect to the built-in Prometheus stack: - -1. **Contact ClickHouse Support** to enable the private load balancer for your BYOC environment. -2. **Request the Prometheus endpoint URL** from ClickHouse Support. -3. **Verify private network connectivity** to the Prometheus endpoint—typically via VPC peering or other private network setup. - -Endpoint formats vary by connectivity type: - -| Connectivity | Endpoint format | -|---|---| -| VPC / VPC peering | `https://prometheus-internal....clickhouse-byoc.com` | -| PrivateLink | `https://prometheus.vpce....clickhouse-byoc.com` | - - -The Prometheus stack URL is only accessible via private network connections and doesn't require authentication. Access is restricted to networks that can reach your BYOC VPC through VPC peering or other private connectivity options. - - -### Integrating with Your Monitoring Tools {#prometheus-stack-integration} - -You can utilize the BYOC Prometheus stack in your monitoring ecosystem in several ways: - -**Option 1: Query the Prometheus API** -- Access the Prometheus API endpoint directly from your preferred monitoring platform or custom dashboards. -- Use PromQL queries to extract, aggregate, and visualize the metrics you need. -- Ideal for building bespoke dashboards or alerting pipelines. - -Prometheus query endpoint `/query`: -```text -https://prometheus-internal....clickhouse-byoc.com/query -``` - -**Option 2: Federate Metrics to Your Own Prometheus** -- Configure your external Prometheus instance to federate (pull) metrics from the ClickHouse BYOC Prometheus stack. -- This enables you to unify and centralize metrics collection from multiple environments or clusters. -- Example Prometheus federation configuration: -```yaml -scrape_configs: - - job_name: 'federate-clickhouse-byoc' - scrape_interval: 15s - honor_labels: true - metrics_path: '/federate' - params: - 'match[]': - - '{job="clickhouse"}' - - '{job="kubernetes"}' - static_configs: - - targets: - - 'prometheus-internal....clickhouse-byoc.com' -``` - -## ClickHouse service Prometheus Integration {#direct-prometheus-integration} - -ClickHouse services expose a Prometheus-compatible metrics endpoint that you can scrape directly using your own Prometheus instance. This approach provides ClickHouse-specific metrics but doesn't include Kubernetes or supporting service metrics. - -### Accessing the Metrics Endpoint {#metrics-endpoint} - -The metrics endpoint is available at `/metrics_all` on your ClickHouse service endpoint: - -```bash -curl --user : https://....byoc.clickhouse-byoc.com:8443/metrics_all -``` - -**Sample Response:** -```bash -# HELP ClickHouse_CustomMetric_StorageSystemTablesS3DiskBytes The amount of bytes stored on disk `s3disk` in system database -# TYPE ClickHouse_CustomMetric_StorageSystemTablesS3DiskBytes gauge -ClickHouse_CustomMetric_StorageSystemTablesS3DiskBytes{hostname="c-jet-ax-16-server-43d5baj-0"} 62660929 -# HELP ClickHouse_CustomMetric_NumberOfBrokenDetachedParts The number of broken detached parts -# TYPE ClickHouse_CustomMetric_NumberOfBrokenDetachedParts gauge -ClickHouse_CustomMetric_NumberOfBrokenDetachedParts{hostname="c-jet-ax-16-server-43d5baj-0"} 0 -# HELP ClickHouse_CustomMetric_TotalNumberOfErrors The total number of errors on server since the last restart -# TYPE ClickHouse_CustomMetric_TotalNumberOfErrors gauge -ClickHouse_CustomMetric_TotalNumberOfErrors{hostname="c-jet-ax-16-server-43d5baj-0"} 9 -``` - -### Authentication {#authentication} - -The metrics endpoint requires authentication using ClickHouse credentials. We recommend use `default` user or creating a dedicated user with minimal permissions specifically for metric scraping. - -**Required Permissions:** -- `REMOTE` permission to connect to the service -- `SELECT` permissions on relevant system tables - -**Example User Setup:** -```sql -CREATE USER scrapping_user IDENTIFIED BY 'secure_password'; -GRANT REMOTE ON *.* TO scrapping_user; -GRANT SELECT ON system._custom_metrics_dictionary_custom_metrics_tables TO scrapping_user; -GRANT SELECT ON system._custom_metrics_dictionary_database_replicated_recovery_time TO scrapping_user; -GRANT SELECT ON system._custom_metrics_dictionary_failed_mutations TO scrapping_user; -GRANT SELECT ON system._custom_metrics_dictionary_group TO scrapping_user; -GRANT SELECT ON system._custom_metrics_dictionary_shared_catalog_recovery_time TO scrapping_user; -GRANT SELECT ON system._custom_metrics_dictionary_table_read_only_duration_seconds TO scrapping_user; -GRANT SELECT ON system._custom_metrics_view_error_metrics TO scrapping_user; -GRANT SELECT ON system._custom_metrics_view_histograms TO scrapping_user; -GRANT SELECT ON system._custom_metrics_view_metrics_and_events TO scrapping_user; -GRANT SELECT(description, metric, value) ON system.asynchronous_metrics TO scrapping_user; -GRANT SELECT ON system.custom_metrics TO scrapping_user; -GRANT SELECT(name, value) ON system.errors TO scrapping_user; -GRANT SELECT(description, event, value) ON system.events TO scrapping_user; -GRANT SELECT(description, labels, metric, value) ON system.histogram_metrics TO scrapping_user; -GRANT SELECT(description, metric, value) ON system.metrics TO scrapping_user; -``` - -### Configuring Prometheus {#configuring-prometheus} - -Configure your Prometheus instance to scrape the ClickHouse metrics endpoint: - -```yaml -global: - scrape_interval: 15s - -scrape_configs: - - job_name: "clickhouse" - static_configs: - - targets: ["....byoc.clickhouse-byoc.com:8443"] - scheme: https - metrics_path: "/metrics_all" - basic_auth: - username: - password: - honor_labels: true -``` - -Replace: -- `....byoc.clickhouse-byoc.com:8443` with your actual service endpoint -- `` and `` with your scraping user credentials - -## ClickHouse Mixin {#clickhouse-mixin} - -For teams that want a ready-made set of dashboards, ClickHouse provides a Prometheus **ClickHouse Mixin**. This is a pre-built Grafana dashboard designed specifically for monitoring ClickHouse clusters. - -### Setting up Grafana & Importing the ClickHouse Mix-in {#setup-grafana-mixin} - -Once your Prometheus instance is integrated with your ClickHouse monitoring stack, you can visualize metrics in Grafana by following these steps: - -1. **Add Prometheus as a Data Source in Grafana** - Go to "Data sources" in the Grafana sidebar, click "Add data source," and select "Prometheus." Enter your Prometheus instance URL and any required credentials to connect. - - - - - - - -2. **Import the ClickHouse Dashboard** - In Grafana, navigate to the dashboard area and choose "Import." You can either upload the dashboard JSON file or paste its contents directly. Obtain the JSON file from the ClickHouse mixin repository: - [ClickHouse Mix-in Dashboard JSON](https://github.com/ClickHouse/clickhouse-mixin/blob/main/dashboard_byoc.json) - - - -3. **Explore Your Metrics** - Once the dashboard is imported and configured with your Prometheus data source, you should see real-time metrics from your ClickHouse Cloud services. - - \ No newline at end of file diff --git a/products/cloud/guides/infrastructure/deployment-options/byoc/onboarding/aws.mdx b/products/cloud/guides/infrastructure/deployment-options/byoc/onboarding/aws.mdx deleted file mode 100644 index d079bc49..00000000 --- a/products/cloud/guides/infrastructure/deployment-options/byoc/onboarding/aws.mdx +++ /dev/null @@ -1,244 +0,0 @@ ---- -title: 'BYOC Onboarding for AWS' -slug: /cloud/reference/byoc/onboarding/aws -sidebarTitle: 'AWS' -keywords: ['BYOC', 'cloud', 'bring your own cloud', 'AWS'] -description: 'Deploy ClickHouse on your own cloud infrastructure' -doc_type: 'reference' ---- - -## Onboarding process - -Customers can initiate the onboarding process by reaching out to [us](https://clickhouse.com/cloud/bring-your-own-cloud). Customers need to have a dedicated AWS account and know the region they will use. At this time, we are allowing users to launch BYOC services only in the regions that we support for ClickHouse Cloud. - -### Prepare an AWS account - -Customers are recommended to prepare a dedicated AWS account for hosting the ClickHouse BYOC deployment to ensure better isolation. However, using a shared account and an existing VPC is also possible. See the details in *Setup BYOC Infrastructure* below. - -With this account and the initial organization admin email, you can contact ClickHouse support. - -### Initialize BYOC setup - -The initial BYOC setup can be performed using either a CloudFormation template or a Terraform module. Both approaches create the same IAM role, enabling BYOC controllers from ClickHouse Cloud to manage your infrastructure. Note that S3, VPC, and compute resources required for running ClickHouse are not included in this initial setup. - -#### CloudFormation Template - -[BYOC CloudFormation template](https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/cf-templates/byoc.yaml) - -#### Terraform Module - -[BYOC Terraform module](https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz) - -```hcl -module "clickhouse_onboarding" { - source = "https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz" - byoc_env = "production" -} -``` - -### Set up BYOC infrastructure - -After creating the CloudFormation stack, you will be prompted to set up the infrastructure, including S3, VPC, and the EKS cluster, from the cloud console. Certain configurations must be determined at this stage, as they cannot be changed later. Specifically: - -- **The region you want to use**, you can choose one of any [public regions](/products/cloud/reference/supported-regions) we have for ClickHouse Cloud. -- **The VPC CIDR range for BYOC**: By default, we use `10.0.0.0/16` for the BYOC VPC CIDR range. If you plan to use VPC peering with another account, ensure the CIDR ranges do not overlap. Allocate a proper CIDR range for BYOC, with a minimum size of `/22` to accommodate necessary workloads. -- **Availability Zones for BYOC VPC**: If you plan to use VPC peering, aligning availability zones between the source and BYOC accounts can help reduce cross-AZ traffic costs. In AWS, availability zone suffixes (`a, b, c`) may represent different physical zone IDs across accounts. See the [AWS guide](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/use-consistent-availability-zones-in-vpcs-across-different-aws-accounts.html) for details. - -#### Customer-managed VPC -By default, ClickHouse Cloud will provision a dedicated VPC for better isolation in your BYOC deployment. However, you can also use an existing VPC in your account. This requires specific configuration and must be coordinated through ClickHouse Support. - -**Configure Your Existing VPC** -1. Allocate at least 3 private subnets across 3 different availability zones for ClickHouse Cloud to use. -2. Ensure each subnet has a minimum CIDR range of `/23` (e.g., 10.0.0.0/23) to provide sufficient IP addresses for the ClickHouse deployment. -3. Add the tag `kubernetes.io/role/internal-elb=1` to each subnet to enable proper load balancer configuration. - -
    - -BYOC VPC Subnet - -
    - -
    - -BYOC VPC Subnet Tags - -
    - -4. Configure S3 Gateway Endpoint -If your VPC doesn't already have an S3 Gateway Endpoint configured, you'll need to create one to enable secure, private communication between your VPC and Amazon S3. This endpoint allows your ClickHouse services to access S3 without going through the public internet. Please refer to the screenshot below for an example configuration. - -
    - -BYOC S3 Endpint - -
    - -**Contact ClickHouse Support** -Create a support ticket with the following information: - -* Your AWS account ID -* The AWS region where you want to deploy the service -* Your VPC ID -* The Private Subnet IDs you've allocated for ClickHouse -* The availability zones these subnets are in - -### Optional: Setup VPC Peering - -To create or delete VPC peering for ClickHouse BYOC, follow the steps: - -#### Step 1: Enable private load balancer for ClickHouse BYOC -Contact ClickHouse Support to enable Private Load Balancer. - -#### Step 2 Create a peering connection -1. Navigate to the VPC Dashboard in ClickHouse BYOC account. -2. Select Peering Connections. -3. Click Create Peering Connection -4. Set the VPC Requester to the ClickHouse VPC ID. -5. Set the VPC Accepter to the target VPC ID. (Select another account if applicable) -6. Click Create Peering Connection. - -
    - -BYOC Create Peering Connection - -
    - -#### Step 3 Accept the peering connection request -Go to the peering account, in the (VPC -> Peering connections -> Actions -> Accept request) page customer can approve this VPC peering request. - -
    - -BYOC Accept Peering Connection - -
    - -#### Step 4 Add destination to ClickHouse VPC route tables -In ClickHouse BYOC account, -1. Select Route Tables in the VPC Dashboard. -2. Search for the ClickHouse VPC ID. Edit each route table attached to the private subnets. -3. Click the Edit button under the Routes tab. -4. Click Add another route. -5. Enter the CIDR range of the target VPC for the Destination. -6. Select “Peering Connection” and the ID of the peering connection for the Target. - -
    - -BYOC Add route table - -
    - -#### Step 5 Add destination to the target VPC route tables -In the peering AWS account, -1. Select Route Tables in the VPC Dashboard. -2. Search for the target VPC ID. -3. Click the Edit button under the Routes tab. -4. Click Add another route. -5. Enter the CIDR range of the ClickHouse VPC for the Destination. -6. Select “Peering Connection” and the ID of the peering connection for the Target. - -
    - -BYOC Add route table - -
    - -#### Step 6: Edit security group to allow peered VPC access -In the ClickHouse BYOC account, you need to update the Security Group settings to allow traffic from your peered VPC. Please contact ClickHouse Support to request the addition of inbound rules that include the CIDR ranges of your peered VPC. - ---- -The ClickHouse service should now be accessible from the peered VPC. - -To access ClickHouse privately, a private load balancer and endpoint are provisioned for secure connectivity from the user's peered VPC. The private endpoint follows the public endpoint format with a `-private` suffix. For example: -- **Public endpoint**: `h5ju65kv87.mhp0y4dmph.us-west-2.aws.byoc.clickhouse.cloud` -- **Private endpoint**: `h5ju65kv87-private.mhp0y4dmph.us-west-2.aws.byoc.clickhouse.cloud` - -Optional, after verifying that peering is working, you can request the removal of the public load balancer for ClickHouse BYOC. - -## Upgrade process - -We regularly upgrade the software, including ClickHouse database version upgrades, ClickHouse Operator, EKS, and other components. - -While we aim for seamless upgrades (e.g., rolling upgrades and restarts), some, such as ClickHouse version changes and EKS node upgrades, may impact service. Customers can specify a maintenance window (e.g., every Tuesday at 1:00 a.m. PDT), ensuring such upgrades occur only during the scheduled time. - - -Maintenance windows do not apply to security and vulnerability fixes. These are handled as off-cycle upgrades, with timely communication to coordinate a suitable time and minimize operational impact. - - -## CloudFormation IAM roles - -### Bootstrap IAM role - -The bootstrap IAM role has the following permissions: - -- **EC2 and VPC operations**: Required for setting up VPC and EKS clusters. -- **S3 operations (e.g., `s3:CreateBucket`)**: Needed to create buckets for ClickHouse BYOC storage. -- **`route53:*` permissions**: Required for external DNS to configure records in Route 53. -- **IAM operations (e.g., `iam:CreatePolicy`)**: Needed for controllers to create additional roles (see the next section for details). -- **EKS operations**: Limited to resources with names starting with the `clickhouse-cloud` prefix. - -### Additional IAM roles created by the controller - -In addition to the `ClickHouseManagementRole` created via CloudFormation, the controller will create several additional roles. - -These roles are assumed by applications running within the customer's EKS cluster: -- **State Exporter Role** - - ClickHouse component that reports service health information to ClickHouse Cloud. - - Requires permission to write to an SQS queue owned by ClickHouse Cloud. -- **Load-Balancer Controller** - - Standard AWS load balancer controller. - - EBS CSI Controller to manage volumes for ClickHouse services. -- **External-DNS** - - Propagates DNS configurations to Route 53. -- **Cert-Manager** - - Provisions TLS certificates for BYOC service domains. -- **Cluster Autoscaler** - - Adjusts the node group size as needed. - -**K8s-control-plane** and **k8s-worker** roles are meant to be assumed by AWS EKS services. - -Lastly, **`data-plane-mgmt`** allows a ClickHouse Cloud Control Plane component to reconcile necessary custom resources, such as `ClickHouseCluster` and the Istio Virtual Service/Gateway. - -## Network boundaries - -This section covers different network traffic to and from the customer BYOC VPC: - -- **Inbound**: Traffic entering the customer BYOC VPC. -- **Outbound**: Traffic originating from the customer BYOC VPC and sent to an external destination. -- **Public**: A network endpoint accessible from the public internet. -- **Private**: A network endpoint accessible only through private connections, such as VPC peering, VPC Private Link, or Tailscale. - -**Istio ingress is deployed behind an AWS NLB to accept ClickHouse client traffic.** - -*Inbound, Public (can be Private)* - -The Istio ingress gateway terminates TLS. The certificate, provisioned by CertManager with Let's Encrypt, is stored as a secret within the EKS cluster. Traffic between Istio and ClickHouse is [encrypted by AWS](https://docs.aws.amazon.com/whitepapers/latest/logical-separation/encrypting-data-at-rest-and--in-transit.html#:~:text=All%20network%20traffic%20between%20AWS,supported%20Amazon%20EC2%20instance%20types) since they reside in the same VPC. - -By default, ingress is publicly accessible with IP allow list filtering. Customers can configure VPC peering to make it private and disable public connections. We highly recommend setting up an [IP filter](/products/cloud/guides/security/connectivity/setting-ip-filters) to restrict access. - -### Troubleshooting access - -*Inbound, Public (can be Private)* - -ClickHouse Cloud engineers require troubleshooting access via Tailscale. They are provisioned with just-in-time certificate-based authentication for BYOC deployments. - -### Billing scraper - -*Outbound, Private* - -The Billing scraper collects billing data from ClickHouse and sends it to an S3 bucket owned by ClickHouse Cloud. - -It runs as a sidecar alongside the ClickHouse server container, periodically scraping CPU and memory metrics. Requests within the same region are routed through VPC gateway service endpoints. - -### Alerts - -*Outbound, Public* - -AlertManager is configured to send alerts to ClickHouse Cloud when the customer's ClickHouse cluster is unhealthy. - -Metrics and logs are stored within the customer's BYOC VPC. Logs are currently stored locally in EBS. In a future update, they will be stored in LogHouse, a ClickHouse service within the BYOC VPC. Metrics use a Prometheus and Thanos stack, stored locally in the BYOC VPC. - -### Service state - -*Outbound* - -State Exporter sends ClickHouse service state information to an SQS owned by ClickHouse Cloud. diff --git a/products/cloud/guides/infrastructure/deployment-options/byoc/overview.mdx b/products/cloud/guides/infrastructure/deployment-options/byoc/overview.mdx index 24d83ee8..e6121886 100644 --- a/products/cloud/guides/infrastructure/deployment-options/byoc/overview.mdx +++ b/products/cloud/guides/infrastructure/deployment-options/byoc/overview.mdx @@ -13,7 +13,7 @@ import { Image } from "/snippets/components/Image.jsx"; Bring Your Own Cloud (BYOC) empowers you to deploy ClickHouse services and store your data directly within your own cloud accounts, rather than relying on the default ClickHouse Cloud infrastructure. This approach is particularly well-suited for organizations with stringent security policies or regulatory compliance requirements that demand complete control and sovereignty over their data. -At a high level, BYOC separates the ClickHouse control plane, which runs in the ClickHouse VPC and is managed by ClickHouse Cloud, from the data plane, which runs entirely in your cloud account and contains your ClickHouse clusters, data, and backups. For a detailed view of the components involved and how traffic flows between them, see the [Architecture](/products/cloud/guides/infrastructure/deployment-options/byoc/architecture) page. +At a high level, BYOC separates the ClickHouse control plane, which runs in the ClickHouse VPC and is managed by ClickHouse Cloud, from the data plane, which runs entirely in your cloud account and contains your ClickHouse clusters, data, and backups. For a detailed view of the components involved and how traffic flows between them, see the [Architecture](/products/bring-your-own-cloud/overview/architecture) page. > **If you would like access, please [contact us](https://clickhouse.com/cloud/bring-your-own-cloud).** Refer to our [Terms of Service](https://clickhouse.com/legal/agreements/terms-of-service) for additional information. @@ -44,7 +44,7 @@ All **public regions** listed in our [supported regions](/products/cloud/referen - **Warehouses**: Compute-Compute Separation - **Zero Trust Network via Tailscale.** - **Monitoring**: - - Prometheus scraping for centralized monitoring with Prometheus, Grafana, and Datadog. See the [BYOC Observability](/products/cloud/guides/infrastructure/deployment-options/byoc/observability/aws) for setup instructions. + - Prometheus scraping for centralized monitoring with Prometheus, Grafana, and Datadog. See the [BYOC Observability](/products/bring-your-own-cloud/reference/observability-aws) for setup instructions. - **VPC Peering** - **Secure S3** - **[AWS PrivateLink](https://aws.amazon.com/privatelink/)** diff --git a/products/cloud/guides/migration/oss-to-cloud-backup-restore.mdx b/products/cloud/guides/migration/oss-to-cloud-backup-restore.mdx index 05d87731..1eb87603 100644 --- a/products/cloud/guides/migration/oss-to-cloud-backup-restore.mdx +++ b/products/cloud/guides/migration/oss-to-cloud-backup-restore.mdx @@ -15,7 +15,7 @@ import { Image } from "/snippets/components/Image.jsx"; There are two primary methods to migrate data from self-managed ClickHouse (OSS) to ClickHouse Cloud: -- Using the [`remoteSecure()`](/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud) function in which data is directly pulled/pushed. +- Using the [`remoteSecure()`](/core/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud) function in which data is directly pulled/pushed. - Using `BACKUP`/`RESTORE` commands via cloud object storage >This migration guide focuses on the `BACKUP`/`RESTORE` approach and offers a practical example @@ -33,7 +33,7 @@ for a ClickHouse cluster with two shards, and two replicas. **Cluster required** This backup method requires a ClickHouse cluster because tables must be converted from the `MergeTree` engine to `ReplicatedMergeTree`. -If you're running a single instance, follow the steps in ["Migrating between self-managed ClickHouse and ClickHouse Cloud using remoteSecure"](/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud) instead. +If you're running a single instance, follow the steps in ["Migrating between self-managed ClickHouse and ClickHouse Cloud using remoteSecure"](/core/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud) instead. ## OSS preparation {#oss-setup} @@ -77,7 +77,7 @@ It's likely your tables are already using the `ReplicatedMergeTree` engine if yo If not, you will need to convert any `MergeTree` tables to `ReplicatedMergeTree` before backing them up. For the sake of demonstration of how to convert `MergeTree` tables to `ReplicatedMergeTree`, we will begin with a `MergeTree` table and convert it to `ReplicatedMergeTree` after wards. -We're going to follow the first two steps of the [New York taxi data guide](/get-started/sample-datasets/nyc-taxi) to create a sample table and load data into it. +We're going to follow the first two steps of the [New York taxi data guide](/core/get-started/sample-datasets/nyc-taxi) to create a sample table and load data into it. Those steps are included below for your convenience. Run the following commands to create a new database and insert data from an S3 bucket into a new table: @@ -439,7 +439,7 @@ WHERE id = 'abc123-def456-789' ``` It is also possible to take incremental backups. -For more detail on backups in general, the reader is referred to the documentation for [backup and restore](/concepts/features/backup-restore/overview). +For more detail on backups in general, the reader is referred to the documentation for [backup and restore](/core/concepts/features/backup-restore/overview). ## Restore to ClickHouse Cloud {#restore-to-clickhouse-cloud} diff --git a/products/cloud/guides/migration/upload-a-csv-file.mdx b/products/cloud/guides/migration/upload-a-csv-file.mdx index a97af82a..68f8cb7b 100644 --- a/products/cloud/guides/migration/upload-a-csv-file.mdx +++ b/products/cloud/guides/migration/upload-a-csv-file.mdx @@ -68,7 +68,7 @@ Columns read from the file are shown as `Source field`s and for each field, you can change: - the inferred type - the default value -- whether to make the column [Nullable](/reference/data-types/nullable) or not +- whether to make the column [Nullable](/core/reference/data-types/nullable) or not diff --git a/products/cloud/guides/production-readiness.mdx b/products/cloud/guides/production-readiness.mdx index 9fa05463..4aba663b 100644 --- a/products/cloud/guides/production-readiness.mdx +++ b/products/cloud/guides/production-readiness.mdx @@ -49,7 +49,7 @@ Establish separate environments to safely test changes before impacting producti **Testing**: Test queries in staging before production deployment. Queries that work on small datasets often cause memory exhaustion, excessive CPU usage, or slow execution at production scale. Validate configuration changes including user permissions, quotas, and service settings in staging—configuration errors discovered in production create immediate operational incidents. -**Sizing**: Size your staging service to approximate production load characteristics. Testing on significantly smaller infrastructure may not reveal resource contention or scaling issues. Use production-representative datasets through periodic data refreshes or synthetic data generation. For guidance on how to size your staging environment and scale services appropriately, refer to the [Sizing and hardware recommendations](/guides/oss/best-practices/sizing-and-hardware-recommendations) and [Scaling in ClickHouse Cloud](/products/cloud/features/autoscaling/overview) documentation. These resources provide practical advice on memory, CPU, and storage sizing, as well as details on vertical and horizontal scaling options to help you match your staging environment to production workloads. +**Sizing**: Size your staging service to approximate production load characteristics. Testing on significantly smaller infrastructure may not reveal resource contention or scaling issues. Use production-representative datasets through periodic data refreshes or synthetic data generation. For guidance on how to size your staging environment and scale services appropriately, refer to the [Sizing and hardware recommendations](/core/guides/oss/best-practices/sizing-and-hardware-recommendations) and [Scaling in ClickHouse Cloud](/products/cloud/features/autoscaling/overview) documentation. These resources provide practical advice on memory, CPU, and storage sizing, as well as details on vertical and horizontal scaling options to help you match your staging environment to production workloads. ## Private networking {#private-networking} @@ -167,7 +167,7 @@ scrape_configs: password: ``` -For comprehensive setup including detailed Prometheus/Grafana configuration and advanced alerting, see the [ClickHouse Cloud Observability Guide](/guides/observability/cloud-monitoring#prometheus). +For comprehensive setup including detailed Prometheus/Grafana configuration and advanced alerting, see the [ClickHouse Cloud Observability Guide](/core/guides/use-cases/observability/cloud-monitoring#prometheus). ## Business continuity and support integration {#business-continuity} diff --git a/products/cloud/guides/security/audit-logging/byoc-security-playbook.mdx b/products/cloud/guides/security/audit-logging/byoc-security-playbook.mdx index a5a91dca..6ade2b86 100644 --- a/products/cloud/guides/security/audit-logging/byoc-security-playbook.mdx +++ b/products/cloud/guides/security/audit-logging/byoc-security-playbook.mdx @@ -15,7 +15,7 @@ Refer to the [database audit log](/products/cloud/guides/security/audit-logging/ ## Application layer denial of service attack {#application-layer-dos-attack} -There are various methods to execute a Denial of Service (DoS) attack. If the attack is focused on crashing the ClickHouse instance through a specific payload, recover the system back to a running state, or reboot the system and restrict access to regain control. Use the following query to review the [system.crash_log](/reference/system-tables/crash_log) to get more information about the attack. +There are various methods to execute a Denial of Service (DoS) attack. If the attack is focused on crashing the ClickHouse instance through a specific payload, recover the system back to a running state, or reboot the system and restrict access to regain control. Use the following query to review the [system.crash_log](/core/reference/system-tables/crash_log) to get more information about the attack. ```sql SELECT * diff --git a/products/cloud/guides/security/audit-logging/database-audit-log.mdx b/products/cloud/guides/security/audit-logging/database-audit-log.mdx index 8c793e89..8477858e 100644 --- a/products/cloud/guides/security/audit-logging/database-audit-log.mdx +++ b/products/cloud/guides/security/audit-logging/database-audit-log.mdx @@ -7,7 +7,7 @@ doc_type: 'guide' keywords: ['audit logging', 'database logs', 'compliance', 'security', 'monitoring'] --- -ClickHouse provides database audit logs by default. This page focuses on security relevant logs. For more information on data recorded by the system, refer to the docs for [system tables](/reference/system-tables/overview). +ClickHouse provides database audit logs by default. This page focuses on security relevant logs. For more information on data recorded by the system, refer to the docs for [system tables](/core/reference/system-tables/overview). **Log retention** @@ -19,7 +19,7 @@ Information is logged directly to the system tables and are retained for up to 3 ClickHouse logs security relevant database events primarily to session and query logs. -The [system.session_log](/reference/system-tables/session_log) records successful and failed login attempts, as well as the location of the authentication attempt. This information can be used to identify credential stuffing or brute force attacks against a ClickHouse instance. +The [system.session_log](/core/reference/system-tables/session_log) records successful and failed login attempts, as well as the location of the authentication attempt. This information can be used to identify credential stuffing or brute force attacks against a ClickHouse instance. Sample query showing login failures ```sql @@ -33,7 +33,7 @@ WHERE type='LoginFailure' LIMIT 100 ``` -The [system.query_log](/reference/system-tables/query_log) captures query activity executed in a ClickHouse instance. This information can be useful to determine what queries a threat actor executed. +The [system.query_log](/core/reference/system-tables/query_log) captures query activity executed in a ClickHouse instance. This information can be useful to determine what queries a threat actor executed. Sample query to search for activities of a "compromised_account" user ```sql @@ -49,11 +49,11 @@ WHERE user=’compromised_account’ ## Retaining log data within services {#reatining-log-data-within-services} -Customers needing longer retention or log durability can use materialized views to achieve these objectives. For more information on materialized views, what they are, benefits and how to implement review our [materialized views](/concepts/features/materialized-views) videos and documentation. +Customers needing longer retention or log durability can use materialized views to achieve these objectives. For more information on materialized views, what they are, benefits and how to implement review our [materialized views](/core/concepts/features/materialized-views) videos and documentation. ## Exporting logs {#exporting-logs} -System logs may be written or exported to a storage location using various formats that are compatible with SIEM systems. For more information, review our [table functions](/reference/functions/table-functions) docs. The most common methods are: -- [Write to S3](/reference/functions/table-functions/s3) -- [Write to GCS](/reference/functions/table-functions/gcs) -- [Write to Azure Blob Storage](/reference/functions/table-functions/azureBlobStorage) +System logs may be written or exported to a storage location using various formats that are compatible with SIEM systems. For more information, review our [table functions](/core/reference/functions/table-functions) docs. The most common methods are: +- [Write to S3](/core/reference/functions/table-functions/s3) +- [Write to GCS](/core/reference/functions/table-functions/gcs) +- [Write to Azure Blob Storage](/core/reference/functions/table-functions/azureBlobStorage) diff --git a/products/cloud/guides/security/cloud-access-management/common-access-management-queries.mdx b/products/cloud/guides/security/cloud-access-management/common-access-management-queries.mdx index 097b7c58..30139844 100644 --- a/products/cloud/guides/security/cloud-access-management/common-access-management-queries.mdx +++ b/products/cloud/guides/security/cloud-access-management/common-access-management-queries.mdx @@ -12,7 +12,7 @@ import CommonUserRolesContent from '/snippets/_users-and-roles-common.mdx'; **Self-managed** -If you're working with self-managed ClickHouse please see [SQL users and roles](/concepts/features/security/access-rights). +If you're working with self-managed ClickHouse please see [SQL users and roles](/core/concepts/features/security/access-rights). This article shows the basics of defining SQL users and roles and applying those privileges and permissions to databases, tables, rows, and columns. diff --git a/products/cloud/guides/security/cloud-access-management/manage-database-service-accounts.mdx b/products/cloud/guides/security/cloud-access-management/manage-database-service-accounts.mdx index 04d1a093..8c66f2d4 100644 --- a/products/cloud/guides/security/cloud-access-management/manage-database-service-accounts.mdx +++ b/products/cloud/guides/security/cloud-access-management/manage-database-service-accounts.mdx @@ -11,7 +11,7 @@ Database service accounts can be as simple as a user with a separate password or ## Overview {#overview} -[SET ROLE](/reference/statements/set-role) can be used to dynamically scope permissions for a service account during a session. This works by limiting a user's effective permissions to only those granted by the activated role(s). This approach has several advantages: +[SET ROLE](/core/reference/statements/set-role) can be used to dynamically scope permissions for a service account during a session. This works by limiting a user's effective permissions to only those granted by the activated role(s). This approach has several advantages: - Service accounts can be assigned multiple roles, but only activate the one needed for a specific query. - Attackers can only use the active role's permissions if the service account is compromised. - A single account can perform diverse tasks by switching roles rather than requiring separate credentials for each task. diff --git a/products/cloud/guides/security/cloud-access-management/manage-database-users.mdx b/products/cloud/guides/security/cloud-access-management/manage-database-users.mdx index 96360bee..868ec88a 100644 --- a/products/cloud/guides/security/cloud-access-management/manage-database-users.mdx +++ b/products/cloud/guides/security/cloud-access-management/manage-database-users.mdx @@ -55,7 +55,7 @@ The user will be assigned the role associated with their email address whenever ### Database user ID and password {#database-user-id--password} -Use the SHA256_hash method when [creating user accounts](/reference/statements/create/user) to secure passwords. ClickHouse database passwords must contain a minimum of 12 characters and meet complexity requirements: upper case characters, lower case characters, numbers and/or special characters. +Use the SHA256_hash method when [creating user accounts](/core/reference/statements/create/user) to secure passwords. ClickHouse database passwords must contain a minimum of 12 characters and meet complexity requirements: upper case characters, lower case characters, numbers and/or special characters. **Generate passwords securely** @@ -80,12 +80,12 @@ To set up SSH authentication for a ClickHouse Cloud database user. For a detailed walkthrough with examples, check out [How to connect to ClickHouse Cloud using SSH keys](/resources/support-center/knowledge-base/cloud-services/how-to-connect-to-ch-cloud-using-ssh-keys) in our Knowledgebase. ## Database permissions {#database-permissions} -Configure the following within the services and databases using the SQL [GRANT](/reference/statements/grant) statement. +Configure the following within the services and databases using the SQL [GRANT](/core/reference/statements/grant) statement. | Role | Description | |:----------------------|:------------------------------------------------------------------------------| | Default | Full administrative access to services | -| Custom | Configure using the SQL [`GRANT`](/reference/statements/grant) statement | +| Custom | Configure using the SQL [`GRANT`](/core/reference/statements/grant) statement | - Database roles are additive. This means if a user is a member of two roles, the user has the most access granted to the two roles. They don't lose access by adding roles. - Database roles can be granted to other roles, resulting in a hierarchical structure. Roles inherit all permissions of the roles for which it is a member. diff --git a/products/cloud/guides/security/cmek.mdx b/products/cloud/guides/security/cmek.mdx index 6bd08184..337193a4 100644 --- a/products/cloud/guides/security/cmek.mdx +++ b/products/cloud/guides/security/cmek.mdx @@ -136,6 +136,6 @@ Backups are encrypted using the same key as the associated service. When you res ## Performance {#performance} -Database encryption leverages ClickHouse's built-in [Virtual File System for Data Encryption feature](/concepts/features/configuration/server-config/storing-data#encrypted-virtual-file-system) to encrypt and protect your data. The algorithm in use for this feature is `AES_256_CTR`, which is expected to have a performance penalty of 5-15% depending on the workload: +Database encryption leverages ClickHouse's built-in [Virtual File System for Data Encryption feature](/core/concepts/features/configuration/server-config/storing-data#encrypted-virtual-file-system) to encrypt and protect your data. The algorithm in use for this feature is `AES_256_CTR`, which is expected to have a performance penalty of 5-15% depending on the workload: diff --git a/products/cloud/guides/security/connectivity/private-networking/aws-privatelink.mdx b/products/cloud/guides/security/connectivity/private-networking/aws-privatelink.mdx index 5cd23f8e..89f01474 100644 --- a/products/cloud/guides/security/connectivity/private-networking/aws-privatelink.mdx +++ b/products/cloud/guides/security/connectivity/private-networking/aws-privatelink.mdx @@ -365,7 +365,7 @@ jq .result.privateEndpointIds ### Connecting to a remote database {#connecting-to-a-remote-database} -Let's say you're trying to use [MySQL](/reference/functions/table-functions/mysql) or [PostgreSQL](/reference/functions/table-functions/postgresql) table functions in ClickHouse Cloud and connect to your database hosted in an Amazon Web Services (AWS) VPC. AWS PrivateLink can't be used to enable this connection securely. PrivateLink is a one-way, unidirectional connection. It allows your internal network or Amazon VPC to connect securely to ClickHouse Cloud, but it doesn't allow ClickHouse Cloud to connect to your internal network. +Let's say you're trying to use [MySQL](/core/reference/functions/table-functions/mysql) or [PostgreSQL](/core/reference/functions/table-functions/postgresql) table functions in ClickHouse Cloud and connect to your database hosted in an Amazon Web Services (AWS) VPC. AWS PrivateLink can't be used to enable this connection securely. PrivateLink is a one-way, unidirectional connection. It allows your internal network or Amazon VPC to connect securely to ClickHouse Cloud, but it doesn't allow ClickHouse Cloud to connect to your internal network. According to the [AWS PrivateLink documentation](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/aws-privatelink.html): diff --git a/products/cloud/guides/security/connectivity/private-networking/gcp-private-service-connect.mdx b/products/cloud/guides/security/connectivity/private-networking/gcp-private-service-connect.mdx index ecd2d84c..492e65bc 100644 --- a/products/cloud/guides/security/connectivity/private-networking/gcp-private-service-connect.mdx +++ b/products/cloud/guides/security/connectivity/private-networking/gcp-private-service-connect.mdx @@ -415,7 +415,7 @@ curl --silent --user "${KEY_ID:?}:${KEY_SECRET:?}" -X GET -H "Content-Type: appl ### Connecting to a remote database {#connecting-to-a-remote-database} -Let's say you're trying to use the [MySQL](/reference/functions/table-functions/mysql) or [PostgreSQL](/reference/functions/table-functions/postgresql) table functions in ClickHouse Cloud and connect to your database hosted in GCP. GCP PSC can't be used to enable this connection securely. PSC is a one-way, unidirectional connection. It allows your internal network or GCP VPC to connect securely to ClickHouse Cloud, but it doesn't allow ClickHouse Cloud to connect to your internal network. +Let's say you're trying to use the [MySQL](/core/reference/functions/table-functions/mysql) or [PostgreSQL](/core/reference/functions/table-functions/postgresql) table functions in ClickHouse Cloud and connect to your database hosted in GCP. GCP PSC can't be used to enable this connection securely. PSC is a one-way, unidirectional connection. It allows your internal network or GCP VPC to connect securely to ClickHouse Cloud, but it doesn't allow ClickHouse Cloud to connect to your internal network. According to the [GCP Private Service Connect documentation](https://cloud.google.com/vpc/docs/private-service-connect): diff --git a/products/cloud/guides/security/data-masking.mdx b/products/cloud/guides/security/data-masking.mdx index 79c72d22..7d33452f 100644 --- a/products/cloud/guides/security/data-masking.mdx +++ b/products/cloud/guides/security/data-masking.mdx @@ -23,7 +23,7 @@ This guide shows you how you can mask data in ClickHouse using several approache Masking policies are available in ClickHouse Cloud starting from version 25.12.
    -The [`CREATE MASKING POLICY`](/reference/statements/create/masking-policy) statement provides a native way to dynamically mask column values for specific users or roles at query time. Unlike other approaches, masking policies don't require creating separate views or storing masked data - the transformation happens transparently when users query the table. +The [`CREATE MASKING POLICY`](/core/reference/statements/create/masking-policy) statement provides a native way to dynamically mask column values for specific users or roles at query time. Unlike other approaches, masking policies don't require creating separate views or storing masked data - the transformation happens transparently when users query the table. ### Basic masking policy {#basic-maasking-policy} @@ -157,7 +157,7 @@ CREATE OR REPLACE MASKING POLICY mask_pii_data ON orders TO masked_data_viewer; ``` -For more details, see the [CREATE MASKING POLICY](/reference/statements/create/masking-policy) documentation. +For more details, see the [CREATE MASKING POLICY](/core/reference/statements/create/masking-policy) documentation. ## Use string replacement functions {#using-string-functions} @@ -165,10 +165,10 @@ For basic data masking use cases, the `replace` family of functions offers a con | Function | Description | |------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| -| [`replaceOne`](/reference/functions/regular-functions/string-replace-functions#replaceOne) | Replaces the first occurrence of a pattern in a haystack string with the provided replacement string. | -| [`replaceAll`](/reference/functions/regular-functions/string-replace-functions#replaceAll) | Replaces all occurrences of a pattern in a haystack string with the provided replacement string. | -| [`replaceRegexpOne`](/reference/functions/regular-functions/string-replace-functions#replaceRegexpOne) | Replaces the first occurrence of a substring matching a regular expression pattern (in re2 syntax) in a haystack with the provided replacement string. | -| [`replaceRegexpAll`](/reference/functions/regular-functions/string-replace-functions#replaceRegexpAll) | Replaces all occurrences of a substring matching a regular expression pattern (in re2 syntax) in a haystack with the provided replacement string. | +| [`replaceOne`](/core/reference/functions/regular-functions/string-replace-functions#replaceOne) | Replaces the first occurrence of a pattern in a haystack string with the provided replacement string. | +| [`replaceAll`](/core/reference/functions/regular-functions/string-replace-functions#replaceAll) | Replaces all occurrences of a pattern in a haystack string with the provided replacement string. | +| [`replaceRegexpOne`](/core/reference/functions/regular-functions/string-replace-functions#replaceRegexpOne) | Replaces the first occurrence of a substring matching a regular expression pattern (in re2 syntax) in a haystack with the provided replacement string. | +| [`replaceRegexpAll`](/core/reference/functions/regular-functions/string-replace-functions#replaceRegexpAll) | Replaces all occurrences of a substring matching a regular expression pattern (in re2 syntax) in a haystack with the provided replacement string. | For example, you can replace the name "John Smith" with a placeholder `[CUSTOMER_NAME]` using the `replaceOne` function: @@ -223,7 +223,7 @@ In the query above `\3` is used to substitute the third capture group into the r ## Create masked `VIEW`s {#masked-views} -A [`VIEW`](/reference/statements/create/view) can be used in conjunction with the aforementioned string functions to apply transformations to columns containing sensitive data, before they're presented to the user. +A [`VIEW`](/core/reference/statements/create/view) can be used in conjunction with the aforementioned string functions to apply transformations to columns containing sensitive data, before they're presented to the user. In this way, the original data remains unchanged, and users querying the view see only the masked data. To demonstrate, let's imagine that we have a table which stores records of customer orders. @@ -322,7 +322,7 @@ the masked data from the view and not the original unmasked data from the table. ## Use `MATERIALIZED` columns and column-level access restrictions {#materialized-ephemeral-column-restrictions} In cases where you don't want to create a separate view, you can store masked versions of your data alongside the original data. -To do so, you can use [materialized columns](/reference/statements/create/table#materialized). +To do so, you can use [materialized columns](/core/reference/statements/create/table#materialized). Values of such columns are automatically calculated according to the specified materialized expression when rows are inserted, and we can use them to create new columns with masked versions of the data. @@ -409,7 +409,7 @@ GRANT masked_orders_viewer TO your_user; ``` In the case where you want to store only the masked data in the `orders` table, -you can mark the sensitive unmasked columns as [`EPHEMERAL`](/reference/statements/create/table#ephemeral), +you can mark the sensitive unmasked columns as [`EPHEMERAL`](/core/reference/statements/create/table#ephemeral), which will ensure that columns of this type aren't stored in the table. ```sql @@ -463,7 +463,7 @@ ORDER BY user_id ASC ## Use query masking rules for log data {#use-query-masking-rules} -For users of ClickHouse OSS wishing to mask log data specifically, you can make use of [query masking rules](/reference/settings/server-settings/settings#query_masking_rules) (log masking) to mask data. +For users of ClickHouse OSS wishing to mask log data specifically, you can make use of [query masking rules](/core/reference/settings/server-settings/settings#query_masking_rules) (log masking) to mask data. To do so, you can define regular expression-based masking rules in the server configuration. These rules are applied to queries and all log messages before they're stored in server logs or system tables (such as `system.query_log`, `system.text_log`, and `system.processes`). @@ -471,7 +471,7 @@ These rules are applied to queries and all log messages before they're stored in This helps prevent sensitive data from leaking into **logs** only. Note that it doesn't mask data in query results. -For example, to mask a social security number, you could add the following rule to your [server configuration](/concepts/features/configuration/server-config/configuration-files): +For example, to mask a social security number, you could add the following rule to your [server configuration](/core/concepts/features/configuration/server-config/configuration-files): ```yaml diff --git a/products/cloud/guides/sql-console/query-endpoints.mdx b/products/cloud/guides/sql-console/query-endpoints.mdx index d3a341be..96b30c8b 100644 --- a/products/cloud/guides/sql-console/query-endpoints.mdx +++ b/products/cloud/guides/sql-console/query-endpoints.mdx @@ -33,8 +33,8 @@ To query an API endpoint, the API key needs `Member` organization role with `Que If you have a saved query, you can skip this step. -Open a new query tab. For demonstration purposes, we'll use the [youtube dataset](/get-started/sample-datasets/youtube-dislikes), which contains approximately 4.5 billion records. -Follow the steps in section ["Create table"](/get-started/sample-datasets/youtube-dislikes#create-the-table) to create the table on your Cloud service and insert data to it. +Open a new query tab. For demonstration purposes, we'll use the [youtube dataset](/core/get-started/sample-datasets/youtube-dislikes), which contains approximately 4.5 billion records. +Follow the steps in section ["Create table"](/core/get-started/sample-datasets/youtube-dislikes#create-the-table) to create the table on your Cloud service and insert data to it. **`LIMIT` the number of rows** @@ -169,7 +169,7 @@ POST /query-endpoints/{queryEndpointId}/run | `format` | No | Response format (supports all ClickHouse formats) | `?format=JSONEachRow` | | `param_:name` | No | Query variables when request body is a stream. Replace `:name` with your variable name | `?param_year=2024` | | `request_timeout` | No | Query timeout in milliseconds (default: 30000) | `?request_timeout=60000` | -| `:clickhouse_setting` | No | Any supported [ClickHouse setting](/reference/settings/session-settings) | `?max_threads=8` | +| `:clickhouse_setting` | No | Any supported [ClickHouse setting](/core/reference/settings/session-settings) | `?max_threads=8` | #### Headers {#headers} diff --git a/products/cloud/home.mdx b/products/cloud/home.mdx deleted file mode 100644 index 713e388d..00000000 --- a/products/cloud/home.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -mode: "custom" -max-toc-depth: 3 -slug: cloud ---- - - - -{/* Hero Section */} -
    -
    -

    Serverless. Simple. ClickHouse Cloud.

    -

    Get the performance you love from open source ClickHouse in a serverless offering that takes care of the details so you can spend more time getting insight out of the fastest database on earth.

    - {/*

    Get started with:

    */} -
    - -
    -
    -
    - ClickHouse Cloud dashboard showing real-time analytics -
    -
    - - - - Set up your project with our quickstart guide. - - - Explore ClickHouse Cloud features - - - - - - - - diff --git a/products/cloud/navigation.json b/products/cloud/navigation.json new file mode 100644 index 00000000..9113915d --- /dev/null +++ b/products/cloud/navigation.json @@ -0,0 +1,327 @@ +{ + "item": "ClickHouse Cloud", + "icon": "/images/icons/icon-clickhouse-cloud.svg", + "groups": [ + { + "group": "ClickHouse Cloud", + "pages": [ + { + "group": "Get started", + "root": "products/cloud/getting-started/cloud-get-started", + "pages": [ + "products/cloud/getting-started/intro", + "products/cloud/getting-started/resource-tour" + ] + }, + { + "group": "Features", + "pages": [ + "products/cloud/features/cloud-tiers", + "products/cloud/features/cli", + "products/cloud/features/integrations", + "products/cloud/features/data-catalogs", + "products/cloud/reference/architecture", + "products/cloud/reference/supported-regions", + { + "group": "SQL console", + "expanded": false, + "pages": [ + "products/cloud/features/sql-console-features/sql-console", + "products/cloud/features/sql-console-features/query-insights", + "products/cloud/features/sql-console-features/query-endpoints", + "products/cloud/features/sql-console-features/dashboards", + "products/cloud/features/sql-console-features/hyperdx", + "products/cloud/features/sql-console-features/user-defined-functions" + ] + }, + { + "group": "Infrastructure", + "expanded": false, + "pages": [ + { + "group": "Automatic scaling", + "root": "products/cloud/features/autoscaling/overview", + "pages": [ + "products/cloud/features/autoscaling/vertical", + "products/cloud/features/autoscaling/horizontal", + "products/cloud/features/autoscaling/make-before-break", + "products/cloud/features/autoscaling/idling", + "products/cloud/features/autoscaling/scaling-recommendations", + "products/cloud/features/autoscaling/scheduled-scaling" + ] + }, + "products/cloud/features/infrastructure/parallel-replicas", + "products/cloud/features/infrastructure/deployment-options", + "products/cloud/features/infrastructure/replica-aware-routing", + "products/cloud/features/infrastructure/shared-catalog", + "products/cloud/features/infrastructure/shared-merge-tree", + "products/cloud/features/infrastructure/warehouses" + ] + }, + { + "group": "Admin", + "expanded": false, + "pages": [ + { + "group": "Cloud API", + "root": "products/cloud/features/admin-features/api/index", + "pages": [ + "products/cloud/features/admin-features/api/api-overview", + "products/cloud/features/admin-features/api/openapi", + "products/cloud/features/admin-features/api/postman" + ] + }, + "products/cloud/features/admin-features/upgrades" + ] + }, + "products/cloud/features/security", + { + "group": "Monitoring", + "expanded": false, + "pages": [ + "products/cloud/features/monitoring/overview", + "products/cloud/features/monitoring/cloud-console", + "products/cloud/features/monitoring/advanced-dashboard", + "products/cloud/features/monitoring/notifications", + "products/cloud/features/monitoring/prometheus", + "products/cloud/features/monitoring/system-tables", + "products/cloud/features/monitoring/integrations" + ] + }, + { + "group": "Backups", + "root": "products/cloud/features/backups/overview", + "pages": [ + "products/cloud/features/backups/faq" + ] + }, + "products/cloud/features/support", + { + "group": "AI/ML", + "expanded": false, + "pages": [ + "products/cloud/features/ai-ml/index", + "products/cloud/features/ai-ml/ask-ai", + "products/cloud/features/ai-ml/aichat/using-ai-chat", + "products/cloud/features/ai-ml/aichat/customizing-semantic-layer", + "products/cloud/features/ai-ml/langfuse", + "products/cloud/features/ai-ml/remote-mcp", + "products/cloud/features/ai-ml/mcp/remote-mcp", + "products/cloud/features/ai-ml/model-developer-terms" + ] + } + ] + }, + { + "group": "Cloud reference", + "root": "products/cloud/reference/index", + "pages": [ + "products/cloud/reference/service-uptime", + "products/cloud/reference/account-close", + "products/cloud/reference/data-resiliency", + "products/cloud/reference/settings", + "products/cloud/reference/security/console-roles", + "products/cloud/reference/security/audit-logging", + "products/cloud/reference/security/compliance-overview", + "products/cloud/reference/security/ai-compliance", + "products/cloud/reference/personal-data-access" + ] + }, + { + "group": "Billing", + "root": "products/cloud/reference/billing/index", + "pages": [ + "products/cloud/reference/billing/billing-overview", + { + "group": "Marketplace", + "expanded": false, + "root": "products/cloud/reference/billing/marketplace/index", + "pages": [ + "products/cloud/reference/billing/marketplace/overview", + "products/cloud/reference/billing/marketplace/aws-marketplace-committed", + "products/cloud/reference/billing/marketplace/aws-marketplace-payg", + "products/cloud/reference/billing/marketplace/azure-marketplace-committed", + "products/cloud/reference/billing/marketplace/azure-marketplace-payg", + "products/cloud/reference/billing/marketplace/gcp-marketplace-committed", + "products/cloud/reference/billing/marketplace/gcp-marketplace-payg", + "products/cloud/reference/billing/marketplace/migrate-marketplace-payg-committed" + ] + }, + { + "group": "ClickPipes", + "expanded": false, + "root": "products/cloud/reference/billing/clickpipes/index", + "pages": [ + "products/cloud/reference/billing/clickpipes/clickpipes-for-cdc", + "products/cloud/reference/billing/clickpipes/clickpipes-for-streaming-and-object-storage" + ] + }, + "products/cloud/reference/billing/network-data-transfer", + "products/cloud/reference/billing/payment-thresholds", + "products/cloud/reference/billing/managing-payment-methods", + "products/cloud/reference/billing/billing-compliance" + ] + }, + { + "group": "Guides", + "root": "products/cloud/guides/index", + "pages": [ + { + "group": "Best practices", + "root": "products/cloud/guides/best-practices/index", + "pages": [ + "products/cloud/guides/best-practices/multitenancy", + "products/cloud/guides/best-practices/usagelimits" + ] + }, + { + "group": "General", + "expanded": false, + "pages": [ + "products/cloud/guides/cloud-compatibility", + "products/cloud/guides/production-readiness" + ] + }, + { + "group": "Migration", + "expanded": false, + "pages": [ + "products/cloud/guides/migration/upload-a-csv-file", + "products/cloud/guides/migration/oss-to-cloud-backup-restore" + ] + }, + { + "group": "SQL console", + "expanded": false, + "pages": [ + "products/cloud/guides/sql-console/connection-details", + "products/cloud/guides/sql-console/query-endpoints" + ] + }, + { + "group": "Backups", + "expanded": false, + "root": "products/cloud/guides/backups/index", + "pages": [ + "products/cloud/guides/backups/review-and-restore-backups", + "products/cloud/guides/backups/configurable-backups", + { + "group": "Bring Your Own Backup", + "expanded": false, + "pages": [ + "products/cloud/guides/backups/bring-your-own-backup/export-backups-to-own-cloud-account", + "products/cloud/guides/backups/bring-your-own-backup/backup-restore-from-ui", + "products/cloud/guides/backups/bring-your-own-backup/backup-restore-using-commands" + ] + } + ] + }, + { + "group": "Data sources", + "expanded": false, + "root": "products/cloud/guides/data-sources/index", + "pages": [ + "products/cloud/guides/data-sources/cloud-endpoints-api", + "products/cloud/guides/data-sources/accessing-s3-data-securely", + "products/cloud/guides/data-sources/secure-azure", + "products/cloud/guides/data-sources/secure-gcs", + "products/cloud/guides/data-sources/accessing-iceberg-data-securely" + ] + }, + { + "group": "Infrastructure", + "expanded": false, + "pages": [ + { + "group": "Deployment modes", + "expanded": false, + "pages": [ + "products/cloud/guides/infrastructure/deployment-options/clickhouse-private", + "products/cloud/guides/infrastructure/deployment-options/clickhouse-government", + "products/cloud/guides/infrastructure/deployment-options/byoc/overview" + ] + } + ] + }, + { + "group": "Security", + "expanded": false, + "pages": [ + { + "group": "Cloud access management", + "expanded": false, + "root": "products/cloud/guides/security/cloud-access-management/index", + "pages": [ + "products/cloud/guides/security/cloud-access-management/manage-my-account", + "products/cloud/guides/security/cloud-access-management/manage-cloud-users", + "products/cloud/guides/security/cloud-access-management/manage-custom-roles", + "products/cloud/guides/security/cloud-access-management/manage-sql-console-role-assignments", + "products/cloud/guides/security/cloud-access-management/manage-database-users", + "products/cloud/guides/security/cloud-access-management/saml-sso-setup", + "products/cloud/guides/security/cloud-access-management/common-access-management-queries", + "products/cloud/guides/security/cloud-access-management/manage-database-service-accounts", + "products/cloud/guides/security/saml-sso-removal" + ] + }, + { + "group": "Connectivity", + "expanded": false, + "pages": [ + "products/cloud/guides/security/connectivity/setting-ip-filters", + { + "group": "Private networking", + "expanded": false, + "root": "products/cloud/guides/security/connectivity/private-networking/index", + "pages": [ + "products/cloud/guides/security/connectivity/private-networking/aws-privatelink", + "products/cloud/guides/security/connectivity/private-networking/gcp-private-service-connect", + "products/cloud/guides/security/connectivity/private-networking/azure-privatelink" + ] + } + ] + }, + { + "group": "Audit logging", + "expanded": false, + "root": "products/cloud/guides/security/audit-logging/index", + "pages": [ + "products/cloud/guides/security/audit-logging/console-audit-log", + "products/cloud/guides/security/audit-logging/database-audit-log", + "products/cloud/guides/security/audit-logging/byoc-security-playbook" + ] + }, + { + "group": "Data security", + "expanded": false, + "pages": [ + "products/cloud/guides/security/data-masking", + "products/cloud/guides/security/cmek", + "products/cloud/guides/security/cmek-migration" + ] + }, + { + "group": "Compliance", + "expanded": false, + "pages": [ + "products/cloud/guides/security/compliance/hipaa-onboarding", + "products/cloud/guides/security/compliance/pci-onboarding" + ] + } + ] + } + ] + }, + { + "group": "API reference", + "openapi": "products/cloud/api-reference/cloud-openapi.json" + } + ] + }, + { + "$ref": "../clickhouse-private/navigation.json" + }, + { + "$ref": "../bring-your-own-cloud/navigation.json" + } + ] +} diff --git a/products/cloud/reference/billing/billing-overview.mdx b/products/cloud/reference/billing/billing-overview.mdx index fd4a9864..59c94d71 100644 --- a/products/cloud/reference/billing/billing-overview.mdx +++ b/products/cloud/reference/billing/billing-overview.mdx @@ -211,7 +211,7 @@ Compression can vary from dataset to dataset. How much it varies is dependent on how compressible the data is in the first place (number of high vs. low cardinality fields), and how the user sets up the schema (using optional codecs or not, for instance). It can be on the order of 10x for common types of analytical data, but it can be significantly lower or higher as well. -See the [optimizing documentation](/concepts/operations/insert/asyncinserts) for guidance and this [Uber blog](https://www.uber.com/blog/logging/) for a detailed logging use case example. +See the [optimizing documentation](/core/concepts/features/operations/insert/asyncinserts) for guidance and this [Uber blog](https://www.uber.com/blog/logging/) for a detailed logging use case example. The only practical way to know exactly is to ingest your dataset into ClickHouse and compare the size of the dataset with the size stored in ClickHouse. You can use the query: @@ -224,8 +224,8 @@ WHERE name = ### What tools does ClickHouse offer to estimate the cost of running a service in the cloud if I have a self-managed deployment? {#what-tools-does-clickhouse-offer-to-estimate-the-cost-of-running-a-service-in-the-cloud-if-i-have-a-self-managed-deployment} -The ClickHouse query log captures [key metrics](/reference/system-tables/query_log) that can be used to estimate the cost of running a workload in ClickHouse Cloud. -For details on migrating from self-managed to ClickHouse Cloud please refer to the [migration documentation](/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud), and contact [ClickHouse Cloud support](https://console.clickhouse.cloud/support) if you have further questions. +The ClickHouse query log captures [key metrics](/core/reference/system-tables/query_log) that can be used to estimate the cost of running a workload in ClickHouse Cloud. +For details on migrating from self-managed to ClickHouse Cloud please refer to the [migration documentation](/core/get-started/setup/migration-guides/oss-to-cloud/clickhouse-to-cloud), and contact [ClickHouse Cloud support](https://console.clickhouse.cloud/support) if you have further questions. ### What billing options are available for ClickHouse Cloud? {#what-billing-options-are-available-for-clickhouse-cloud} diff --git a/products/cloud/reference/settings.mdx b/products/cloud/reference/settings.mdx index a2cab267..a796ff30 100644 --- a/products/cloud/reference/settings.mdx +++ b/products/cloud/reference/settings.mdx @@ -9,10 +9,10 @@ doc_type: 'guide' import { Image } from "/snippets/components/Image.jsx"; -To specify settings for your ClickHouse Cloud service for a specific [user](/concepts/features/security/access-rights#user-account-management) or [role](/concepts/features/security/access-rights#role-management), you must use [SQL-driven Settings Profiles](/concepts/features/security/access-rights#settings-profiles-management). Applying Settings Profiles ensures that the settings you configure persist, even when your services stop, idle, and upgrade. To learn more about Settings Profiles, please see [this page](/concepts/features/configuration/settings/settings-profiles). +To specify settings for your ClickHouse Cloud service for a specific [user](/core/concepts/features/security/access-rights#user-account-management) or [role](/core/concepts/features/security/access-rights#role-management), you must use [SQL-driven Settings Profiles](/core/concepts/features/security/access-rights#settings-profiles-management). Applying Settings Profiles ensures that the settings you configure persist, even when your services stop, idle, and upgrade. To learn more about Settings Profiles, please see [this page](/core/concepts/features/configuration/settings/settings-profiles). -Please note that XML-based Settings Profiles and [configuration files](/concepts/features/configuration/server-config/configuration-files) are currently not supported for ClickHouse Cloud. +Please note that XML-based Settings Profiles and [configuration files](/core/concepts/features/configuration/server-config/configuration-files) are currently not supported for ClickHouse Cloud. -To learn more about the settings you can specify for your ClickHouse Cloud service, please see all possible settings by category in [our docs](/reference/settings). +To learn more about the settings you can specify for your ClickHouse Cloud service, please see all possible settings by category in [our docs](/core/reference/settings). diff --git a/products/kubernetes-operator/guides/configuration.mdx b/products/kubernetes-operator/guides/configuration.mdx index a6bba892..08eab7a2 100644 --- a/products/kubernetes-operator/guides/configuration.mdx +++ b/products/kubernetes-operator/guides/configuration.mdx @@ -356,8 +356,8 @@ spec: ``` #### Useful links: -* [YAML configuration examples](/concepts/features/configuration/server-config/configuration-files#example-1) -* [All server settings](/reference/settings/server-settings/settings) +* [YAML configuration examples](/core/concepts/features/configuration/server-config/configuration-files#example-1) +* [All server settings](/core/reference/settings/server-settings/settings) ### Embedded extra users configuration {#embedded-extra-users-configuration} @@ -389,7 +389,7 @@ spec: The `extraUsersConfig` is stored in k8s ConfigMap object. Avoid plain text secrets there. -#### See [documentation](/concepts/features/configuration/settings/settings-users) for all supported ClickHouse users configuration options. +#### See [documentation](/core/concepts/features/configuration/settings/settings-users) for all supported ClickHouse users configuration options. ### Configuration example {#configuration-example} diff --git a/products/kubernetes-operator/guides/introduction.mdx b/products/kubernetes-operator/guides/introduction.mdx index 4a8df5a1..8ed46294 100644 --- a/products/kubernetes-operator/guides/introduction.mdx +++ b/products/kubernetes-operator/guides/introduction.mdx @@ -101,7 +101,7 @@ The ClickHouse Operator automatically replicates database definitions across all ### What Gets Replicated {#what-gets-replicated} The operator synchronizes: -- [Replicated](/reference/engines/database-engines/replicated) database definitions +- [Replicated](/core/reference/engines/database-engines/replicated) database definitions - Integration database engines (PostgreSQL, MySQL, etc.) The operator does **not** synchronize: @@ -114,7 +114,7 @@ The operator does **not** synchronize: **Best practice** -Always use the [Replicated](/reference/engines/database-engines/replicated) database engine for production deployments. +Always use the [Replicated](/core/reference/engines/database-engines/replicated) database engine for production deployments. Benefits: diff --git a/products/managed-postgres/clickhouse-integration.mdx b/products/managed-postgres/clickhouse-integration.mdx index 4097d1a4..808cf3fe 100644 --- a/products/managed-postgres/clickhouse-integration.mdx +++ b/products/managed-postgres/clickhouse-integration.mdx @@ -50,7 +50,7 @@ Choose a destination database and select which tables to replicate: - **Destination database**: Select an existing ClickHouse database or create a new one - **Prefix default destination table names with schema name**: Adds the Postgres schema as a prefix to avoid naming conflicts - **Preserve NULL values from source**: Maintains NULL values instead of converting to defaults -- **Remove deleted rows during merges**: For [ReplacingMergeTree](/reference/engines/table-engines/mergetree-family/replacingmergetree) tables, physically removes deleted rows during background merges +- **Remove deleted rows during merges**: For [ReplacingMergeTree](/core/reference/engines/table-engines/mergetree-family/replacingmergetree) tables, physically removes deleted rows during background merges Expand schemas and select individual tables to replicate. You can also customize destination table names and column settings. diff --git a/products/managed-postgres/navigation.json b/products/managed-postgres/navigation.json new file mode 100644 index 00000000..f38202c7 --- /dev/null +++ b/products/managed-postgres/navigation.json @@ -0,0 +1,66 @@ +{ + "item": "Managed Postgres", + "icon": "/images/icons/icon-postgres.svg", + "groups": [ + { + "group": "Get started", + "pages": [ + "products/managed-postgres/overview", + "products/managed-postgres/quickstart" + ] + }, + { + "group": "Features", + "pages": [ + "products/managed-postgres/connection", + "products/managed-postgres/settings", + "products/managed-postgres/scaling", + "products/managed-postgres/security", + "products/managed-postgres/high-availability", + "products/managed-postgres/read-replicas", + "products/managed-postgres/backup-and-restore", + "products/managed-postgres/extensions", + "products/managed-postgres/upgrades", + "products/managed-postgres/openapi" + ] + }, + { + "group": "Benchmarks", + "pages": [ + "products/managed-postgres/benchmarks" + ] + }, + { + "group": "ClickHouse Integration", + "pages": [ + "products/managed-postgres/clickhouse-integration" + ] + }, + { + "group": "Migrations", + "pages": [ + "products/managed-postgres/migrations/pg_dump-pg_restore", + "products/managed-postgres/migrations/logical-replication", + "products/managed-postgres/migrations/peerdb", + "products/managed-postgres/migrations/data-validation", + "products/managed-postgres/migrations/clickhouse-cloud" + ] + }, + { + "group": "Monitoring", + "pages": [ + "products/managed-postgres/monitoring/overview", + "products/managed-postgres/monitoring/dashboard", + "products/managed-postgres/monitoring/metrics", + "products/managed-postgres/monitoring/prometheus", + "products/managed-postgres/monitoring/query-insights" + ] + }, + { + "group": "FAQ", + "pages": [ + "products/managed-postgres/faq" + ] + } + ] +} diff --git a/reference/datalakes.mdx b/reference/datalakes.mdx deleted file mode 100644 index d7e691ea..00000000 --- a/reference/datalakes.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -description: 'Documentation for Data Lakes' -sidebarTitle: 'Data Lakes' -slug: /sql-reference/datalakes -title: 'Data Lakes' -doc_type: 'reference' ---- - -In this section, we will take a look at ClickHouse's support for Data Lakes. -ClickHouse supports many of the most popular table formats and data catalogs, including Iceberg, Delta Lake, Hudi, AWS Glue, REST Catalog, Unity Catalog and Microsoft OneLake. - -# Open table formats {#open-table-formats} - -## Iceberg {#iceberg} - -See [iceberg](/reference/functions/table-functions/iceberg) which supports reading from Amazon S3 and S3-compatible services, HDFS, Azure and local file systems. [icebergCluster](/reference/functions/table-functions/icebergCluster) is the distributed variant of the `iceberg` function. - -## Delta Lake {#delta-lake} - -See [deltaLake](/reference/functions/table-functions/deltalake) which supports reading from Amazon S3 and S3-compatible services, Azure and local file systems. [deltaLakeCluster](/reference/functions/table-functions/deltalakeCluster) is the distributed variant of the `deltaLake` function. - -## Hudi {#hudi} - -See [hudi](/reference/functions/table-functions/hudi) which supports reading from Amazon S3 and S3-compatible services. [hudiCluster](/reference/functions/table-functions/hudiCluster) is the distributed variant of the `hudi` function. - -# Data catalogs {#data-catalogs} - -## AWS Glue {#aws-glue} - -AWS Glue Data Catalog can be used with Iceberg tables. You can use it with the `iceberg` table engine, or with the [DataLakeCatalog](/reference/engines/database-engines/datalake) database engine. - -## Iceberg REST Catalog {#iceberg-rest-catalog} - -The Iceberg REST Catalog can be used with Iceberg tables. You can use it with the `iceberg` table engine, or with the [DataLakeCatalog](/reference/engines/database-engines/datalake) database engine. - -## Unity Catalog {#unity-catalog} - -Unity Catalog can be used with both Delta Lake and Iceberg tables. You can use it with the `iceberg` or `deltaLake` table engines, or with the [DataLakeCatalog](/reference/engines/database-engines/datalake) database engine. - -## Microsoft OneLake {#microsoft-onelake} - -Microsoft OneLake can be used with both Delta Lake and Iceberg tables. You can use it with the [DataLakeCatalog](/reference/engines/database-engines/datalake) database engine. diff --git a/reference/engines/database-engines/index.mdx b/reference/engines/database-engines/index.mdx deleted file mode 100644 index 6fa60a3b..00000000 --- a/reference/engines/database-engines/index.mdx +++ /dev/null @@ -1,34 +0,0 @@ ---- -description: 'Documentation for Database Engines' -slug: /engines/database-engines/ -toc_folder_title: 'Database Engines' -toc_priority: 27 -toc_title: 'Introduction' -title: 'Database Engines' -doc_type: 'landing-page' ---- - -Database engines allow you to work with tables. By default, ClickHouse uses the [Atomic](/reference/engines/database-engines/atomic) database engine, which provides configurable [table engines](/reference/engines/table-engines) and an [SQL dialect](/reference/syntax). - -Here is a complete list of available database engines. Follow the links for more details: - -{/* The table of contents table for this page is automatically generated by -https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh -from the YAML front matter fields: slug, description, title. - -If you've spotted an error, please edit the YML frontmatter of the pages themselves. -*/} - -{/*AUTOGENERATED_START*/} -| Page | Description | -|-----|-----| -| [Shared](/reference/engines/database-engines/shared) | Page describing the `Shared` database engine, available in ClickHouse Cloud | -| [Atomic](/reference/engines/database-engines/atomic) | The `Atomic` engine supports non-blocking `DROP TABLE` and `RENAME TABLE` queries, and atomic `EXCHANGE TABLES`queries. The `Atomic` database engine is used by default. | -| [Replicated](/reference/engines/database-engines/replicated) | The engine is based on the Atomic engine. It supports replication of metadata via DDL log being written to ZooKeeper and executed on all of the replicas for a given database. | -| [PostgreSQL](/reference/engines/database-engines/postgresql) | Allows to connect to databases on a remote PostgreSQL server. | -| [MySQL](/reference/engines/database-engines/mysql) | Allows connecting to databases on a remote MySQL server and perform `INSERT` and `SELECT` queries to exchange data between ClickHouse and MySQL. | -| [SQLite](/reference/engines/database-engines/sqlite) | Allows to connect to SQLite databases and perform `INSERT` and `SELECT` queries to exchange data between ClickHouse and SQLite. | -| [MaterializedPostgreSQL](/reference/engines/database-engines/materialized-postgresql) | Creates a ClickHouse database with tables from PostgreSQL database. | -| [Backup](/reference/engines/database-engines/backup) | Allows to instantly attach table/database from backups in read-only mode. | -| [DataLakeCatalog](/reference/engines/database-engines/datalake) | The DataLakeCatalog database engine enables you to connect ClickHouse to external data catalogs and query open table format data | -{/*AUTOGENERATED_END*/} diff --git a/reference/engines/table-engines/index.mdx b/reference/engines/table-engines/index.mdx deleted file mode 100644 index 9e7a1bf6..00000000 --- a/reference/engines/table-engines/index.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -description: 'Documentation for Table Engines' -slug: /engines/table-engines/ -toc_folder_title: 'Table Engines' -toc_priority: 26 -toc_title: 'Introduction' -title: 'Table Engines' -doc_type: 'reference' ---- - -The table engine (type of table) determines: - -- How and where data is stored, where to write it to, and where to read it from. -- Which queries are supported, and how. -- Concurrent data access. -- Use of indexes, if present. -- Whether multithread request execution is possible. -- Data replication parameters. - -## Engine families {#engine-families} - -### MergeTree {#mergetree} - -The most universal and functional table engines for high-load tasks. The property shared by these engines is quick data insertion with subsequent background data processing. `MergeTree` family engines support data replication (with [Replicated\*](/reference/engines/table-engines/mergetree-family/replication) versions of engines), partitioning, secondary data-skipping indexes, and other features not supported in other engines. - -Engines in the family: - -| MergeTree Engines | -|-------------------------------------------------------------------------------------------------------------------------------------------| -| [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) | -| [ReplacingMergeTree](/reference/engines/table-engines/mergetree-family/replacingmergetree) | -| [SummingMergeTree](/reference/engines/table-engines/mergetree-family/summingmergetree) | -| [AggregatingMergeTree](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) | -| [CollapsingMergeTree](/reference/engines/table-engines/mergetree-family/collapsingmergetree) | -| [VersionedCollapsingMergeTree](/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree) | -| [GraphiteMergeTree](/reference/engines/table-engines/mergetree-family/graphitemergetree) | -| [CoalescingMergeTree](/reference/engines/table-engines/mergetree-family/coalescingmergetree) | - -### Log {#log} - -Lightweight [engines](/reference/engines/table-engines/log-family) with minimum functionality. They're the most effective when you need to quickly write many small tables (up to approximately 1 million rows) and read them later as a whole. - -Engines in the family: - -| Log Engines | -|----------------------------------------------------------------------------| -| [TinyLog](/reference/engines/table-engines/log-family/tinylog) | -| [StripeLog](/reference/engines/table-engines/log-family/stripelog) | -| [Log](/reference/engines/table-engines/log-family/log) | - -### Integration engines {#integration-engines} - -Engines for communicating with other data storage and processing systems. - -Engines in the family: - -| Integration Engines | -|---------------------------------------------------------------------------------| -| [ODBC](/reference/engines/table-engines/integrations/odbc) | -| [JDBC](/reference/engines/table-engines/integrations/jdbc) | -| [MySQL](/reference/engines/table-engines/integrations/mysql) | -| [MongoDB](/reference/engines/table-engines/integrations/mongodb) | -| [Redis](/reference/engines/table-engines/integrations/redis) | -| [HDFS](/reference/engines/table-engines/integrations/hdfs) | -| [S3](/reference/engines/table-engines/integrations/s3) | -| [Kafka](/reference/engines/table-engines/integrations/kafka) | -| [EmbeddedRocksDB](/reference/engines/table-engines/integrations/embedded-rocksdb) | -| [RabbitMQ](/reference/engines/table-engines/integrations/rabbitmq) | -| [PostgreSQL](/reference/engines/table-engines/integrations/postgresql) | -| [S3Queue](/reference/engines/table-engines/integrations/s3queue) | -| [TimeSeries](/reference/engines/table-engines/integrations/time-series) | - -### Special engines {#special-engines} - -Engines in the family: - -| Special Engines | -|---------------------------------------------------------------| -| [Distributed](/reference/engines/table-engines/special/distributed) | -| [Dictionary](/reference/engines/table-engines/special/dictionary) | -| [Merge](/reference/engines/table-engines/special/merge) | -| [Executable](/reference/engines/table-engines/special/executable) | -| [File](/reference/engines/table-engines/special/file) | -| [Null](/reference/engines/table-engines/special/null) | -| [Set](/reference/engines/table-engines/special/set) | -| [Join](/reference/engines/table-engines/special/join) | -| [URL](/reference/engines/table-engines/special/url) | -| [View](/reference/engines/table-engines/special/view) | -| [Memory](/reference/engines/table-engines/special/memory) | -| [Buffer](/reference/engines/table-engines/special/buffer) | -| [External Data](/reference/engines/table-engines/special/external-data) | -| [GenerateRandom](/reference/engines/table-engines/special/generate) | -| [KeeperMap](/reference/engines/table-engines/special/keepermap) | -| [FileLog](/reference/engines/table-engines/special/filelog) | - -## Virtual columns {#table_engines-virtual_columns} - -A virtual column is an integral table engine attribute that is defined in the engine source code. - -You shouldn't specify virtual columns in the `CREATE TABLE` query, and you can't see them in `SHOW CREATE TABLE` and `DESCRIBE TABLE` query results. Virtual columns are also read-only, so you can't insert data into virtual columns. - -To select data from a virtual column, you must specify its name in the `SELECT` query. `SELECT *` does not return values from virtual columns. - -If you create a table with a column that has the same name as one of the table virtual columns, the virtual column becomes inaccessible. We do not recommend doing this. To help avoid conflicts, virtual column names are usually prefixed with an underscore. - -- `_table` — Contains the name of the table from which data was read. Type: [String](/reference/data-types/string). - - Regardless of the table engine being used, each table includes a universal virtual column named `_table`. - - When querying a table with the merge table engine, you can set the constant conditions on `_table` in the `WHERE/PREWHERE` clause (for example, `WHERE _table='xyz'`). In this case the read operation is performed only for that tables where the condition on `_table` is satisfied, so the `_table` column acts as an index. - - When using queries formatted like `SELECT ... FROM (... UNION ALL ...)`, we can determine which actual table the returned rows originate from by specifying the `_table` column. diff --git a/reference/engines/table-engines/integrations/index.mdx b/reference/engines/table-engines/integrations/index.mdx deleted file mode 100644 index 5e46a16d..00000000 --- a/reference/engines/table-engines/integrations/index.mdx +++ /dev/null @@ -1,47 +0,0 @@ ---- -description: 'Documentation for Table Engines for Integrations' -sidebarTitle: 'Integrations' -slug: /engines/table-engines/integrations/ -title: 'Table Engines for Integrations' -doc_type: 'reference' ---- - -ClickHouse provides various means for integrating with external systems, including table engines. Like with all other table engines, the configuration is done using `CREATE TABLE` or `ALTER TABLE` queries. Then from a user perspective, the configured integration looks like a normal table, but queries to it are proxied to the external system. This transparent querying is one of the key advantages of this approach over alternative integration methods, like dictionaries or table functions, which require the use of custom query methods on each use. - -{/* The table of contents table for this page is automatically generated by -https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh -from the YAML front matter fields: slug, description, title. - -If you've spotted an error, please edit the YML frontmatter of the pages themselves. -*/} - -{/*AUTOGENERATED_START*/} -| Page | Description | -|-----|-----| -| [AzureBlobStorage table engine](/reference/engines/table-engines/integrations/azureBlobStorage) | This engine provides an integration with Azure Blob Storage ecosystem. | -| [DeltaLake table engine](/reference/engines/table-engines/integrations/deltalake) | This engine provides a read-only integration with existing Delta Lake tables in Amazon S3. | -| [EmbeddedRocksDB table engine](/reference/engines/table-engines/integrations/embedded-rocksdb) | This engine allows integrating ClickHouse with RocksDB | -| [ExternalDistributed table engine](/reference/engines/table-engines/integrations/ExternalDistributed) | The `ExternalDistributed` engine allows to perform `SELECT` queries on data that is stored on a remote servers MySQL or PostgreSQL. Accepts MySQL or PostgreSQL engines as an argument so sharding is possible. | -| [TimeSeries table engine](/reference/engines/table-engines/integrations/time-series) | A table engine storing time series, i.e. a set of values associated with timestamps and tags (or labels). | -| [HDFS table engine](/reference/engines/table-engines/integrations/hdfs) | This engine provides integration with the Apache Hadoop ecosystem by allowing to manage data on HDFS via ClickHouse. This engine is similar to the File and URL engines, but provides Hadoop-specific features. | -| [Hive table engine](/reference/engines/table-engines/integrations/hive) | The Hive engine allows you to perform `SELECT` queries on HDFS Hive table. | -| [Hudi table engine](/reference/engines/table-engines/integrations/hudi) | This engine provides a read-only integration with existing Apache Hudi tables in Amazon S3. | -| [Iceberg table engine](/reference/engines/table-engines/integrations/iceberg) | This engine provides a read-only integration with existing Apache Iceberg tables in Amazon S3, Azure, HDFS and locally stored tables. | -| [Paimon table engine](/reference/engines/table-engines/integrations/paimon) | This engine provides a read-only integration with existing Apache Paimon tables in Amazon S3, Azure, HDFS and locally stored tables. | -| [JDBC table engine](/reference/engines/table-engines/integrations/jdbc) | Allows ClickHouse to connect to external databases via JDBC. | -| [Kafka table engine](/reference/engines/table-engines/integrations/kafka) | The Kafka Table Engine can be used to publish works with Apache Kafka and lets you publish or subscribe to data flows, organize fault-tolerant storage, and process streams as they become available. | -| [MaterializedPostgreSQL table engine](/reference/engines/table-engines/integrations/materialized-postgresql) | Creates a ClickHouse table with an initial data dump of a PostgreSQL table and starts the replication process. | -| [MongoDB table engine](/reference/engines/table-engines/integrations/mongodb) | MongoDB engine is read-only table engine which allows to read data from a remote collection. | -| [MySQL table engine](/reference/engines/table-engines/integrations/mysql) | Documentation for MySQL Table Engine | -| [NATS table engine](/reference/engines/table-engines/integrations/nats) | This engine allows integrating ClickHouse with NATS to publish or subscribe to message subjects, and process new messages as they become available. | -| [ODBC table engine](/reference/engines/table-engines/integrations/odbc) | Allows ClickHouse to connect to external databases via ODBC. | -| [PostgreSQL table Engine](/reference/engines/table-engines/integrations/postgresql) | The PostgreSQL engine allows `SELECT` and `INSERT` queries on data stored on a remote PostgreSQL server. | -| [RabbitMQ table engine](/reference/engines/table-engines/integrations/rabbitmq) | This engine allows integrating ClickHouse with RabbitMQ. | -| [Redis table engine](/reference/engines/table-engines/integrations/redis) | This engine allows integrating ClickHouse with Redis. | -| [S3 table engine](/reference/engines/table-engines/integrations/s3) | This engine provides integration with the Amazon S3 ecosystem. Similar to the HDFS engine, but provides S3-specific features. | -| [S3Queue table engine](/reference/engines/table-engines/integrations/s3queue) | This engine provides integration with the Amazon S3 ecosystem and allows streaming imports. Similar to the Kafka and RabbitMQ engines, but provides S3-specific features. | -| [AzureQueue table engine](/reference/engines/table-engines/integrations/azure-queue) | This engine provides an integration with the Azure Blob Storage ecosystem, allowing streaming data import. | -| [YTsaurus table engine](/reference/engines/table-engines/integrations/ytsaurus) | Table engine that allows importing data from a YTsaurus cluster. | -| [SQLite table engine](/reference/engines/table-engines/integrations/sqlite) | The engine allows to import and export data to SQLite and supports queries to SQLite tables directly from ClickHouse. | -| [ArrowFlight table engine](/reference/engines/table-engines/integrations/arrowflight) | The engine allows querying remote datasets via Apache Arrow Flight. | -{/*AUTOGENERATED_END*/} diff --git a/reference/engines/table-engines/mergetree-family/index.mdx b/reference/engines/table-engines/mergetree-family/index.mdx deleted file mode 100644 index 072ef98b..00000000 --- a/reference/engines/table-engines/mergetree-family/index.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -description: 'Documentation for MergeTree Engine Family' -sidebarTitle: 'MergeTree Family' -slug: /engines/table-engines/mergetree-family/ -title: 'MergeTree Engine Family' -doc_type: 'reference' ---- - -Table engines from the MergeTree family are the core of ClickHouse data storage capabilities. They provide most features for resilience and high-performance data retrieval: columnar storage, custom partitioning, sparse primary index, secondary data-skipping indexes, etc. - -Base [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) table engine can be considered the default table engine for single-node ClickHouse instances because it is versatile and practical for a wide range of use cases. - -For production usage [ReplicatedMergeTree](/reference/engines/table-engines/mergetree-family/replication) is the way to go, because it adds high-availability to all features of regular MergeTree engine. A bonus is automatic data deduplication on data ingestion, so the software can safely retry if there was some network issue during insert. - -All other engines of MergeTree family add extra functionality for some specific use cases. Usually, it's implemented as additional data manipulation in background. - -The main downside of MergeTree engines is that they are rather heavy-weight. So the typical pattern is to have not so many of them. If you need many small tables, for example for temporary data, consider [Log engine family](/reference/engines/table-engines/log-family). - -{/* The table of contents table for this page is automatically generated by -https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh -from the YAML front matter fields: slug, description, title. - -If you've spotted an error, please edit the YML frontmatter of the pages themselves. -*/} - -{/*AUTOGENERATED_START*/} -| Page | Description | -|-----|-----| -| [MergeTree table engine](/reference/engines/table-engines/mergetree-family/mergetree) | `MergeTree`-family table engines are designed for high data ingest rates and huge data volumes. | -| [Replicated* table engines](/reference/engines/table-engines/mergetree-family/replication) | Overview of data replication with the Replicated* family of table engines in ClickHouse | -| [Custom Partitioning Key](/reference/engines/table-engines/mergetree-family/custom-partitioning-key) | Learn how to add a custom partitioning key to MergeTree tables. | -| [ReplacingMergeTree table engine](/reference/engines/table-engines/mergetree-family/replacingmergetree) | differs from MergeTree in that it removes duplicate entries with the same sorting key value (`ORDER BY` table section, not `PRIMARY KEY`). | -| [CoalescingMergeTree table engine](/reference/engines/table-engines/mergetree-family/coalescingmergetree) | CoalescingMergeTree inherits from the MergeTree engine. Its key feature is the ability to automatically store last non-null value of each column during part merges. | -| [SummingMergeTree table engine](/reference/engines/table-engines/mergetree-family/summingmergetree) | SummingMergeTree inherits from the MergeTree engine. Its key feature is the ability to automatically sum numeric data during part merges. | -| [AggregatingMergeTree table engine](/reference/engines/table-engines/mergetree-family/aggregatingmergetree) | Replaces all rows with the same primary key (or more accurately, with the same [sorting key](/reference/engines/table-engines/mergetree-family/mergetree)) with a single row (within a single data part) that stores a combination of states of aggregate functions. | -| [CollapsingMergeTree table engine](/reference/engines/table-engines/mergetree-family/collapsingmergetree) | Inherits from MergeTree but adds logic for collapsing rows during the merge process. | -| [VersionedCollapsingMergeTree table engine](/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree) | Allows for quick writing of object states that are continually changing, and deleting old object states in the background. | -| [GraphiteMergeTree table engine](/reference/engines/table-engines/mergetree-family/graphitemergetree) | Designed for thinning and aggregating/averaging (rollup) Graphite data. | -| [Exact and Approximate Vector Search](/reference/engines/table-engines/mergetree-family/annindexes) | Documentation for Exact and Approximate Vector Search | -| [Full-text Search with Text Indexes](/reference/engines/table-engines/mergetree-family/textindexes) | Quickly find search terms in text. | -{/*AUTOGENERATED_END*/} diff --git a/reference/engines/table-engines/special/index.mdx b/reference/engines/table-engines/special/index.mdx deleted file mode 100644 index 0b356131..00000000 --- a/reference/engines/table-engines/special/index.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -description: 'Documentation for Special Table Engines' -sidebarTitle: 'Special' -slug: /engines/table-engines/special/ -title: 'Special table engines' -doc_type: 'reference' ---- - -There are three main categories of table engines: - -- [MergeTree engine family](/reference/engines/table-engines/mergetree-family) for main production use. -- [Log engine family](/reference/engines/table-engines/log-family) for small temporary data. -- [Table engines for integrations](/reference/engines/table-engines/integrations). - -The remaining engines are unique in their purpose and are not grouped into families yet, thus they are placed in this "special" category. - -{/* The table of contents table for this page is automatically generated by -https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh -from the YAML front matter fields: slug, description, title. - -If you've spotted an error, please edit the YML frontmatter of the pages themselves. -*/} - -{/*AUTOGENERATED_START*/} -| Page | Description | -|-----|-----| -| [Alias table engine](/reference/engines/table-engines/special/alias) | The Alias table engine creates a transparent proxy to another table. All operations are forwarded to the target table while the alias itself stores no data. | -| [Distributed table engine](/reference/engines/table-engines/special/distributed) | Tables with Distributed engine do not store any data of their own, but allow distributed query processing on multiple servers. Reading is automatically parallelized. During a read, the table indexes on remote servers are used, if there are any. | -| [Dictionary table engine](/reference/engines/table-engines/special/dictionary) | The `Dictionary` engine displays the dictionary data as a ClickHouse table. | -| [Merge table engine](/reference/engines/table-engines/special/merge) | The `Merge` engine (not to be confused with `MergeTree`) does not store data itself, but allows reading from any number of other tables simultaneously. | -| [Executable and ExecutablePool table engines](/reference/engines/table-engines/special/executable) | The `Executable` and `ExecutablePool` table engines allow you to define a table whose rows are generated from a script that you define (by writing rows to **stdout**). | -| [File table engine](/reference/engines/table-engines/special/file) | The File table engine keeps the data in a file in one of the supported file formats (`TabSeparated`, `Native`, etc.). | -| [Null table engine](/reference/engines/table-engines/special/null) | When writing to a `Null` table, data is ignored. When reading from a `Null` table, the response is empty. | -| [Set table engine](/reference/engines/table-engines/special/set) | A data set that is always in RAM. It is intended for use on the right side of the `IN` operator. | -| [Join table engine](/reference/engines/table-engines/special/join) | Optional prepared data structure for usage in JOIN operations. | -| [URL table engine](/reference/engines/table-engines/special/url) | Queries data to/from a remote HTTP/HTTPS server. This engine is similar to the File engine. | -| [View table engine](/reference/engines/table-engines/special/view) | Used for implementing views (for more information, see the `CREATE VIEW query`). It does not store data, but only stores the specified `SELECT` query. When reading from a table, it runs this query (and deletes all unnecessary columns from the query). | -| [Memory table engine](/reference/engines/table-engines/special/memory) | The Memory engine stores data in RAM, in uncompressed form. Data is stored in exactly the same form as it is received when read. In other words, reading from this table is completely free. | -| [Buffer table engine](/reference/engines/table-engines/special/buffer) | Buffers the data to write in RAM, periodically flushing it to another table. During the read operation, data is read from the buffer and the other table simultaneously. | -| [External data for query processing](/reference/engines/table-engines/special/external-data) | ClickHouse allows sending a server the data that is needed for processing a query, together with a `SELECT` query. This data is put in a temporary table and can be used in the query (for example, in `IN` operators). | -| [GenerateRandom table engine](/reference/engines/table-engines/special/generate) | The GenerateRandom table engine produces random data for given table schema. | -| [KeeperMap table engine](/reference/engines/table-engines/special/keepermap) | This engine allows you to use Keeper/ZooKeeper cluster as consistent key-value store with linearizable writes and sequentially consistent reads. | -| [FileLog table engine](/reference/engines/table-engines/special/filelog) | This engine allows processing of application log files as a stream of records. | -{/*AUTOGENERATED_END*/} diff --git a/reference/formats/Avro/_snippets/data-types-matching.mdx b/reference/formats/Avro/_snippets/data-types-matching.mdx deleted file mode 100644 index f1dbb4e4..00000000 --- a/reference/formats/Avro/_snippets/data-types-matching.mdx +++ /dev/null @@ -1,39 +0,0 @@ -The table below shows all data types supported by the Apache Avro format, and their corresponding ClickHouse [data types](/reference/data-types) in `INSERT` and `SELECT` queries. - -| Avro data type `INSERT` | ClickHouse data type | Avro data type `SELECT` | -|---------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|---------------------------------| -| `boolean`, `int`, `long`, `float`, `double` | [Int(8\16\32)](/reference/data-types/int-uint), [UInt(8\16\32)](/reference/data-types/int-uint) | `int` | -| `boolean`, `int`, `long`, `float`, `double` | [Int64](/reference/data-types/int-uint), [UInt64](/reference/data-types/int-uint) | `long` | -| `boolean`, `int`, `long`, `float`, `double` | [Float32](/reference/data-types/float) | `float` | -| `boolean`, `int`, `long`, `float`, `double` | [Float64](/reference/data-types/float) | `double` | -| `bytes`, `string`, `fixed`, `enum` | [String](/reference/data-types/string) | `bytes` or `string` \* | -| `bytes`, `string`, `fixed` | [FixedString(N)](/reference/data-types/fixedstring) | `fixed(N)` | -| `enum` | [Enum(8\16)](/reference/data-types/enum) | `enum` | -| `array(T)` | [Array(T)](/reference/data-types/array) | `array(T)` | -| `map(V, K)` | [Map(V, K)](/reference/data-types/map) | `map(string, K)` | -| `union(null, T)`, `union(T, null)` | [Nullable(T)](/reference/data-types/date) | `union(null, T)` | -| `union(T1, T2, …)` \** | [Variant(T1, T2, …)](/reference/data-types/variant) | `union(T1, T2, …)` \** | -| `null` | [Nullable(Nothing)](/reference/data-types/special-data-types/nothing) | `null` | -| `int (date)` \**\* | [Date](/reference/data-types/date), [Date32](/reference/data-types/date32) | `int (date)` \**\* | -| `long (timestamp-millis)` \**\* | [DateTime64(3)](/reference/data-types/datetime) | `long (timestamp-millis)` \**\* | -| `long (timestamp-micros)` \**\* | [DateTime64(6)](/reference/data-types/datetime) | `long (timestamp-micros)` \**\* | -| `bytes (decimal)` \**\* | [DateTime64(N)](/reference/data-types/datetime) | `bytes (decimal)` \**\* | -| `int` | [IPv4](/reference/data-types/ipv4) | `int` | -| `fixed(16)` | [IPv6](/reference/data-types/ipv6) | `fixed(16)` | -| `bytes (decimal)` \**\* | [Decimal(P, S)](/reference/data-types/decimal) | `bytes (decimal)` \**\* | -| `string (uuid)` \**\* | [UUID](/reference/data-types/uuid) | `string (uuid)` \**\* | -| `fixed(16)` | [Int128/UInt128](/reference/data-types/int-uint) | `fixed(16)` | -| `fixed(32)` | [Int256/UInt256](/reference/data-types/int-uint) | `fixed(32)` | -| `record` | [Tuple](/reference/data-types/tuple) | `record` | - -\* `bytes` is default, controlled by setting [`output_format_avro_string_column_pattern`](/reference/settings/formats#output_format_avro_string_column_pattern) - -\** The [Variant type](/reference/data-types/variant) implicitly accepts `null` as a field value, so for example the Avro `union(T1, T2, null)` will be converted to `Variant(T1, T2)`. -As a result, when producing Avro from ClickHouse, we have to always include the `null` type to the Avro `union` type set as we don't know if any value is actually `null` during the schema inference. - -\**\* [Avro logical types](https://avro.apache.org/docs/current/spec.html#Logical+Types) - -Unsupported Avro logical data types: -- `time-millis` -- `time-micros` -- `duration` \ No newline at end of file diff --git a/reference/formats/CSV/CSV.mdx b/reference/formats/CSV/CSV.mdx deleted file mode 100644 index 59997721..00000000 --- a/reference/formats/CSV/CSV.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -alias: [] -description: 'Documentation for the CSV format' -input_format: true -keywords: ['CSV'] -output_format: true -slug: /interfaces/formats/CSV -title: 'CSV' -doc_type: 'reference' ---- - -## Description {#description} - -Comma Separated Values format ([RFC](https://tools.ietf.org/html/rfc4180)). -When formatting, rows are enclosed in double quotes. A double quote inside a string is output as two double quotes in a row. -There are no other rules for escaping characters. - -- Date and date-time are enclosed in double quotes. -- Numbers are output without quotes. -- Values are separated by a delimiter character, which is `,` by default. The delimiter character is defined in the setting [format_csv_delimiter](/reference/settings/formats#format_csv_delimiter). -- Rows are separated using the Unix line feed (LF). -- Arrays are serialized in CSV as follows: - - first, the array is serialized to a string as in TabSeparated format - - The resulting string is output to CSV in double quotes. -- Tuples in CSV format are serialized as separate columns (that is, their nesting in the tuple is lost). - -```bash -$ clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO test.csv FORMAT CSV" < data.csv -``` - - -By default, the delimiter is `,` -See the [format_csv_delimiter](/reference/settings/formats#format_csv_delimiter) setting for more information. - - -When parsing, all values can be parsed either with or without quotes. Both double and single quotes are supported. - -Rows can also be arranged without quotes. In this case, they are parsed up to the delimiter character or line feed (CR or LF). -However, in violation of the RFC, when parsing rows without quotes, the leading and trailing spaces and tabs are ignored. -The line feed supports: Unix (LF), Windows (CR LF) and Mac OS Classic (CR LF) types. - -`NULL` is formatted according to setting [format_csv_null_representation](/reference/settings/formats#format_csv_null_representation) (the default value is `\N`). - -In the input data, `ENUM` values can be represented as names or as ids. -First, we try to match the input value to the ENUM name. -If we fail and the input value is a number, we try to match this number to the ENUM id. -If input data contains only ENUM ids, it's recommended to enable the setting [input_format_csv_enum_as_number](/reference/settings/formats#input_format_csv_enum_as_number) to optimize `ENUM` parsing. - -## Example usage {#example-usage} - -## Format settings {#format-settings} - -| Setting | Description | Default | Notes | -|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [format_csv_delimiter](/reference/settings/formats#format_csv_delimiter) | the character to be considered as a delimiter in CSV data. | `,` | | -| [format_csv_allow_single_quotes](/reference/settings/formats#format_csv_allow_single_quotes) | allow strings in single quotes. | `true` | | -| [format_csv_allow_double_quotes](/reference/settings/formats#format_csv_allow_double_quotes) | allow strings in double quotes. | `true` | | -| [format_csv_null_representation](/reference/settings/formats#format_tsv_null_representation) | custom NULL representation in CSV format. | `\N` | | -| [input_format_csv_empty_as_default](/reference/settings/formats#input_format_csv_empty_as_default) | treat empty fields in CSV input as default values. | `true` | For complex default expressions, [input_format_defaults_for_omitted_fields](/reference/settings/formats#input_format_defaults_for_omitted_fields) must be enabled too. | -| [input_format_csv_enum_as_number](/reference/settings/formats#input_format_csv_enum_as_number) | treat inserted enum values in CSV formats as enum indices. | `false` | | -| [input_format_csv_use_best_effort_in_schema_inference](/reference/settings/formats#input_format_csv_use_best_effort_in_schema_inference) | use some tweaks and heuristics to infer schema in CSV format. If disabled, all fields will be inferred as Strings. | `true` | | -| [input_format_csv_arrays_as_nested_csv](/reference/settings/formats#input_format_csv_arrays_as_nested_csv) | when reading Array from CSV, expect that its elements were serialized in nested CSV and then put into string. | `false` | | -| [output_format_csv_crlf_end_of_line](/reference/settings/formats#output_format_csv_crlf_end_of_line) | if it is set to true, end of line in CSV output format will be `\r\n` instead of `\n`. | `false` | | -| [input_format_csv_skip_first_lines](/reference/settings/formats#input_format_csv_skip_first_lines) | skip the specified number of lines at the beginning of data. | `0` | | -| [input_format_csv_detect_header](/reference/settings/formats#input_format_csv_detect_header) | automatically detect header with names and types in CSV format. | `true` | | -| [input_format_csv_skip_trailing_empty_lines](/reference/settings/formats#input_format_csv_skip_trailing_empty_lines) | skip trailing empty lines at the end of data. | `false` | | -| [input_format_csv_trim_whitespaces](/reference/settings/formats#input_format_csv_trim_whitespaces) | trim spaces and tabs in non-quoted CSV strings. | `true` | | -| [input_format_csv_allow_whitespace_or_tab_as_delimiter](/reference/settings/formats#input_format_csv_allow_whitespace_or_tab_as_delimiter) | Allow to use whitespace or tab as field delimiter in CSV strings. | `false` | | -| [input_format_csv_allow_variable_number_of_columns](/reference/settings/formats#input_format_csv_allow_variable_number_of_columns) | allow variable number of columns in CSV format, ignore extra columns and use default values on missing columns. | `false` | | -| [input_format_csv_use_default_on_bad_values](/reference/settings/formats#input_format_csv_use_default_on_bad_values) | Allow to set default value to column when CSV field deserialization failed on bad value. | `false` | | -| [input_format_csv_try_infer_numbers_from_strings](/reference/settings/formats#input_format_csv_try_infer_numbers_from_strings) | Try to infer numbers from string fields while schema inference. | `false` | | \ No newline at end of file diff --git a/reference/formats/JSON/format-settings.mdx b/reference/formats/JSON/format-settings.mdx deleted file mode 100644 index 01dbfa0c..00000000 --- a/reference/formats/JSON/format-settings.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -description: 'List of format settings for the JSON format' -keywords: ['Format Settings', 'JSON'] -slug: /interfaces/formats/JSON/format-settings -title: 'Format Settings For JSON' -doc_type: 'reference' ---- - -On this page you can find format settings common to all JSON formats. - -{/* TO DO - AUTOGENERATE THE TABLE BELOW */} - -| Setting | Description | Default | Note | -|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [`input_format_import_nested_json`](/reference/settings/formats#input_format_import_nested_json) | Map nested JSON data to nested tables (it works for JSONEachRow format). | `false` | | -| [`input_format_json_read_bools_as_numbers`](/reference/settings/formats#input_format_json_read_bools_as_numbers) | Allow to parse bools as numbers in JSON input formats. | `true` | | -| [`input_format_json_read_bools_as_strings`](/reference/settings/formats#input_format_json_read_bools_as_strings) | Allow to parse bools as strings in JSON input formats. | `true` | | -| [`input_format_json_read_numbers_as_strings`](/reference/settings/formats#input_format_json_read_numbers_as_strings) | Allow to parse numbers as strings in JSON input formats. | `true` | | -| [`input_format_json_read_arrays_as_strings`](/reference/settings/formats#input_format_json_read_arrays_as_strings) | Allow to parse JSON arrays as strings in JSON input formats. | `true` | | -| [`input_format_json_read_objects_as_strings`](/reference/settings/formats#input_format_json_read_objects_as_strings) | Allow to parse JSON objects as strings in JSON input formats. | `true` | | -| [`input_format_json_named_tuples_as_objects`](/reference/settings/formats#input_format_json_named_tuples_as_objects) | Parse named tuple columns as JSON objects. | `true` | | -| [`input_format_json_try_infer_numbers_from_strings`](/reference/settings/formats#input_format_json_try_infer_numbers_from_strings) | Try to infer numbers from string fields while schema inference. | `false` | | -| [`input_format_json_try_infer_named_tuples_from_objects`](/reference/settings/formats#input_format_json_try_infer_named_tuples_from_objects) | Try to infer named tuple from JSON objects during schema inference. | `true` | | -| [`input_format_json_infer_incomplete_types_as_strings`](/reference/settings/formats#input_format_json_infer_incomplete_types_as_strings) | Use type String for keys that contains only Nulls or empty objects/arrays during schema inference in JSON input formats. | `true` | | -| [`input_format_json_defaults_for_missing_elements_in_named_tuple`](/reference/settings/formats#input_format_json_defaults_for_missing_elements_in_named_tuple) | Insert default values for missing elements in JSON object while parsing named tuple. | `true` | | -| [`input_format_json_ignore_unknown_keys_in_named_tuple`](/reference/settings/formats#input_format_json_ignore_unknown_keys_in_named_tuple) | Ignore unknown keys in json object for named tuples. | `false` | | -| [`input_format_json_compact_allow_variable_number_of_columns`](/reference/settings/formats#input_format_json_compact_allow_variable_number_of_columns) | Allow variable number of columns in JSONCompact/JSONCompactEachRow format, ignore extra columns and use default values on missing columns. | `false` | | -| [`input_format_json_throw_on_bad_escape_sequence`](/reference/settings/formats#input_format_json_throw_on_bad_escape_sequence) | Throw an exception if JSON string contains bad escape sequence. If disabled, bad escape sequences will remain as is in the data. | `true` | | -| [`input_format_json_empty_as_default`](/reference/settings/formats#input_format_json_empty_as_default) | Treat empty fields in JSON input as default values. | `false` | For complex default expressions [input_format_defaults_for_omitted_fields](/reference/settings/formats#input_format_defaults_for_omitted_fields) must be enabled too. | -| [`output_format_json_quote_64bit_integers`](/reference/settings/formats#output_format_json_quote_64bit_integers) | Controls quoting of 64-bit integers in JSON output format. | `true` | | -| [`output_format_json_quote_64bit_floats`](/reference/settings/formats#output_format_json_quote_64bit_floats) | Controls quoting of 64-bit floats in JSON output format. | `false` | | -| [`output_format_json_quote_denormals`](/reference/settings/formats#output_format_json_quote_denormals) | Enables '+nan', '-nan', '+inf', '-inf' outputs in JSON output format. | `false` | | -| [`output_format_json_quote_decimals`](/reference/settings/formats#output_format_json_quote_decimals) | Controls quoting of decimals in JSON output format. | `false` | | -| [`output_format_json_escape_forward_slashes`](/reference/settings/formats#output_format_json_escape_forward_slashes) | Controls escaping forward slashes for string outputs in JSON output format. | `true` | | -| [`output_format_json_named_tuples_as_objects`](/reference/settings/formats#output_format_json_named_tuples_as_objects) | Serialize named tuple columns as JSON objects. | `true` | | -| [`output_format_json_array_of_rows`](/reference/settings/formats#output_format_json_array_of_rows) | Output a JSON array of all rows in JSONEachRow(Compact) format. | `false` | | -| [`output_format_json_validate_utf8`](/reference/settings/formats#output_format_json_validate_utf8) | Enables validation of UTF-8 sequences in JSON output formats | `false` | Note that it doesn't impact formats JSON/JSONCompact/JSONColumnsWithMetadata, they always validate utf8. | diff --git a/reference/formats/MsgPack.mdx b/reference/formats/MsgPack.mdx deleted file mode 100644 index 530fac3f..00000000 --- a/reference/formats/MsgPack.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -alias: [] -description: 'Documentation for the MsgPack format' -input_format: true -keywords: ['MsgPack'] -output_format: true -slug: /interfaces/formats/MsgPack -title: 'MsgPack' -doc_type: 'reference' ---- - -| Input | Output | Alias | -|-------|--------|-------| -| ✔ | ✔ | | - -## Description {#description} - -ClickHouse supports reading and writing [MessagePack](https://msgpack.org/) data files. - -## Data types matching {#data-types-matching} - -| MessagePack data type (`INSERT`) | ClickHouse data type | MessagePack data type (`SELECT`) | -|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|----------------------------------| -| `uint N`, `positive fixint` | [`UIntN`](/reference/data-types/int-uint) | `uint N` | -| `int N`, `negative fixint` | [`IntN`](/reference/data-types/int-uint) | `int N` | -| `bool` | [`UInt8`](/reference/data-types/int-uint) | `uint 8` | -| `fixstr`, `str 8`, `str 16`, `str 32`, `bin 8`, `bin 16`, `bin 32` | [`String`](/reference/data-types/string) | `bin 8`, `bin 16`, `bin 32` | -| `fixstr`, `str 8`, `str 16`, `str 32`, `bin 8`, `bin 16`, `bin 32` | [`FixedString`](/reference/data-types/fixedstring) | `bin 8`, `bin 16`, `bin 32` | -| `float 32` | [`Float32`](/reference/data-types/float) | `float 32` | -| `float 64` | [`Float64`](/reference/data-types/float) | `float 64` | -| `uint 16` | [`Date`](/reference/data-types/date) | `uint 16` | -| `int 32` | [`Date32`](/reference/data-types/date32) | `int 32` | -| `uint 32` | [`DateTime`](/reference/data-types/datetime) | `uint 32` | -| `uint 64` | [`DateTime64`](/reference/data-types/datetime) | `uint 64` | -| `fixarray`, `array 16`, `array 32` | [`Array`](/reference/data-types/array)/[`Tuple`](/reference/data-types/tuple) | `fixarray`, `array 16`, `array 32` | -| `fixmap`, `map 16`, `map 32` | [`Map`](/reference/data-types/map) | `fixmap`, `map 16`, `map 32` | -| `uint 32` | [`IPv4`](/reference/data-types/ipv4) | `uint 32` | -| `bin 8` | [`String`](/reference/data-types/string) | `bin 8` | -| `int 8` | [`Enum8`](/reference/data-types/enum) | `int 8` | -| `bin 8` | [`(U)Int128`/`(U)Int256`](/reference/data-types/int-uint) | `bin 8` | -| `int 32` | [`Decimal32`](/reference/data-types/decimal) | `int 32` | -| `int 64` | [`Decimal64`](/reference/data-types/decimal) | `int 64` | -| `bin 8` | [`Decimal128`/`Decimal256`](/reference/data-types/decimal) | `bin 8 ` | - -## Example usage {#example-usage} - -Writing to a file ".msgpk": - -```sql -$ clickhouse-client --query="CREATE TABLE msgpack (array Array(UInt8)) ENGINE = Memory;" -$ clickhouse-client --query="INSERT INTO msgpack VALUES ([0, 1, 2, 3, 42, 253, 254, 255]), ([255, 254, 253, 42, 3, 2, 1, 0])"; -$ clickhouse-client --query="SELECT * FROM msgpack FORMAT MsgPack" > tmp_msgpack.msgpk; -``` - -## Format settings {#format-settings} - -| Setting | Description | Default | -|--------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|---------| -| [`input_format_msgpack_number_of_columns`](/reference/settings/formats#input_format_msgpack_number_of_columns) | the number of columns in inserted MsgPack data. Used for automatic schema inference from data. | `0` | -| [`output_format_msgpack_uuid_representation`](/reference/settings/formats#output_format_msgpack_uuid_representation) | the way how to output UUID in MsgPack format. | `EXT` | \ No newline at end of file diff --git a/reference/formats/Pretty/_snippets/common-pretty-format-settings.mdx b/reference/formats/Pretty/_snippets/common-pretty-format-settings.mdx deleted file mode 100644 index d0277fe6..00000000 --- a/reference/formats/Pretty/_snippets/common-pretty-format-settings.mdx +++ /dev/null @@ -1,14 +0,0 @@ -{/* Note: This file is used as a snippet in all files that import it */} - -The following settings are common to all `Pretty` formats: - -| Setting | Description | Default | -|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| -| [`output_format_pretty_max_rows`](/reference/settings/formats#output_format_pretty_max_rows) | Row limit for Pretty formats. | `10000` | -| [`output_format_pretty_max_column_pad_width`](/reference/settings/formats#output_format_pretty_max_column_pad_width) | Maximum width to pad all values in a column in Pretty formats. | `250` | -| [`output_format_pretty_max_value_width`](/reference/settings/formats#output_format_pretty_max_value_width) | Maximum width of value to display in Pretty formats. If greater - it will be cut. | `10000` | -| [`output_format_pretty_color`](/reference/settings/formats#output_format_pretty_color) | Use ANSI escape sequences to paint colors in Pretty formats. | `true` | -| [`output_format_pretty_grid_charset`](/reference/settings/formats#output_format_pretty_grid_charset) | Charset for printing grid borders. Available charsets: ASCII, UTF-8. | `UTF-8` | -| [`output_format_pretty_row_numbers`](/reference/settings/formats#output_format_pretty_row_numbers) | Add row numbers before each row for pretty output format. | `true` | -| [`output_format_pretty_display_footer_column_names`](/reference/settings/formats#output_format_pretty_display_footer_column_names) | Display column names in the footer if table contains many rows. | `true` | -| [`output_format_pretty_display_footer_column_names_min_rows`](/reference/settings/formats#output_format_pretty_display_footer_column_names_min_rows) | Sets the minimum number of rows for which a footer will be displayed if [`output_format_pretty_display_footer_column_names`](/reference/settings/formats#output_format_pretty_display_footer_column_names) is enabled. | `50` | diff --git a/reference/formats/RowBinary/_snippets/common-row-binary-format-settings.mdx b/reference/formats/RowBinary/_snippets/common-row-binary-format-settings.mdx deleted file mode 100644 index a8b3478b..00000000 --- a/reference/formats/RowBinary/_snippets/common-row-binary-format-settings.mdx +++ /dev/null @@ -1,11 +0,0 @@ -{/* Note: This snippet is reused in any file it is imported by */} - -The following settings are common to all `RowBinary` type formats. - -| Setting | Description | Default | -|------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| -| [`format_binary_max_string_size`](/reference/settings/formats#format_binary_max_string_size) | The maximum allowed size for String in RowBinary format. | `1GiB` | -| [`output_format_binary_encode_types_in_binary_format`](/reference/settings/formats#input_format_binary_decode_types_in_binary_format) | Allows to write types in header using [`binary encoding`](/reference/data-types/data-types-binary-encoding) instead of strings with type names in [`RowBinaryWithNamesAndTypes`](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) output format. | `false` | -| [`input_format_binary_decode_types_in_binary_format`](/reference/settings/formats#input_format_binary_decode_types_in_binary_format) | Allows to read types in header using [`binary encoding`](/reference/data-types/data-types-binary-encoding) instead of strings with type names in [`RowBinaryWithNamesAndTypes`](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) input format. | `false` | -| [`output_format_binary_write_json_as_string`](/reference/settings/formats#output_format_binary_write_json_as_string) | Allows to write values of the [`JSON`](/reference/data-types/newjson) data type as `JSON` [String](/reference/data-types/string) values in [`RowBinary`](/reference/formats/RowBinary/RowBinary) output format. | `false` | -| [`input_format_binary_read_json_as_string`](/reference/settings/formats#input_format_binary_read_json_as_string) | Allows to read values of the [`JSON`](/reference/data-types/newjson) data type as `JSON` [String](/reference/data-types/string) values in [`RowBinary`](/reference/formats/RowBinary/RowBinary) input format. | `false` | diff --git a/reference/formats/index.mdx b/reference/formats/index.mdx deleted file mode 100644 index 964ef8d9..00000000 --- a/reference/formats/index.mdx +++ /dev/null @@ -1,163 +0,0 @@ ---- -description: 'Overview of supported data formats for input and output in ClickHouse' -sidebarTitle: 'View all formats...' -slug: /interfaces/formats -title: 'Formats for input and output data' -doc_type: 'reference' ---- - -import CloudNotSupportedBadge from "/snippets/components/CloudNotSupportedBadge/CloudNotSupportedBadge.jsx"; - -# Formats for input and output data {#formats-for-input-and-output-data} - -ClickHouse supports most of the known text and binary data formats. This allows easy integration into almost any working -data pipeline to leverage the benefits of ClickHouse. - -## Input formats {#input-formats} - -Input formats are used for: -- Parsing data provided to `INSERT` statements -- Performing `SELECT` queries from file-backed tables such as `File`, `URL`, or `HDFS` -- Reading dictionaries - -Choosing the right input format is crucial for efficient data ingestion in ClickHouse. With over 70 supported formats, -selecting the most performant option can significantly impact insert speed, CPU and memory usage, and overall system -efficiency. To help navigate these choices, we benchmarked ingestion performance across formats, revealing key takeaways: - -- **The [Native](/reference/formats/Native) format is the most efficient input format**, offering the best compression, lowest - resource usage, and minimal server-side processing overhead. -- **Compression is essential** - LZ4 reduces data size with minimal CPU cost, while ZSTD offers higher compression at the - expense of additional CPU usage. -- **Pre-sorting has a moderate impact**, as ClickHouse already sorts efficiently. -- **Batching significantly improves efficiency** - larger batches reduce insert overhead and improve throughput. - -For a deep dive into the results and best practices, -read the full [benchmark analysis](https://www.clickhouse.com/blog/clickhouse-input-format-matchup-which-is-fastest-most-efficient). -For the full test results, explore the [FastFormats](https://fastformats.clickhouse.com/) online dashboard. - -## Output formats {#output-formats} - -Formats supported for output are used for: -- Arranging the results of a `SELECT` query -- Performing `INSERT` operations into file-backed tables - -## Formats overview {#formats-overview} - -The supported formats are: - -| Format | Input | Output | -|------------------------------------------------------------------------------------------------------------|-----|-------| -| [TabSeparated](/reference/formats/TabSeparated/TabSeparated) | ✔ | ✔ | -| [TabSeparatedRaw](/reference/formats/TabSeparated/TabSeparatedRaw) | ✔ | ✔ | -| [TabSeparatedWithNames](/reference/formats/TabSeparated/TabSeparatedWithNames) | ✔ | ✔ | -| [TabSeparatedWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes) | ✔ | ✔ | -| [TabSeparatedRawWithNames](/reference/formats/TabSeparated/TabSeparatedRawWithNames) | ✔ | ✔ | -| [TabSeparatedRawWithNamesAndTypes](/reference/formats/TabSeparated/TabSeparatedRawWithNamesAndTypes) | ✔ | ✔ | -| [Template](/reference/formats/Template/Template) | ✔ | ✔ | -| [TemplateIgnoreSpaces](/reference/formats/Template/TemplateIgnoreSpaces) | ✔ | ✗ | -| [CSV](/reference/formats/CSV/CSV) | ✔ | ✔ | -| [CSVWithNames](/reference/formats/CSV/CSVWithNames) | ✔ | ✔ | -| [CSVWithNamesAndTypes](/reference/formats/CSV/CSVWithNamesAndTypes) | ✔ | ✔ | -| [CustomSeparated](/reference/formats/CustomSeparated/CustomSeparated) | ✔ | ✔ | -| [CustomSeparatedWithNames](/reference/formats/CustomSeparated/CustomSeparatedWithNames) | ✔ | ✔ | -| [CustomSeparatedWithNamesAndTypes](/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes) | ✔ | ✔ | -| [SQLInsert](/reference/formats/SQLInsert) | ✗ | ✔ | -| [Values](/reference/formats/Values) | ✔ | ✔ | -| [Vertical](/reference/formats/Vertical) | ✗ | ✔ | -| [JSON](/reference/formats/JSON/JSON) | ✔ | ✔ | -| [JSONAsString](/reference/formats/JSON/JSONAsString) | ✔ | ✗ | -| [JSONAsObject](/reference/formats/JSON/JSONAsObject) | ✔ | ✗ | -| [JSONStrings](/reference/formats/JSON/JSONStrings) | ✔ | ✔ | -| [JSONColumns](/reference/formats/JSON/JSONColumns) | ✔ | ✔ | -| [JSONColumnsWithMetadata](/reference/formats/JSON/JSONColumnsWithMetadata) | ✔ | ✔ | -| [JSONCompact](/reference/formats/JSON/JSONCompact) | ✔ | ✔ | -| [JSONCompactStrings](/reference/formats/JSON/JSONCompactStrings) | ✗ | ✔ | -| [JSONCompactColumns](/reference/formats/JSON/JSONCompactColumns) | ✔ | ✔ | -| [JSONEachRow](/reference/formats/JSON/JSONEachRow) | ✔ | ✔ | -| [PrettyJSONEachRow](/reference/formats/JSON/PrettyJSONEachRow) | ✗ | ✔ | -| [JSONEachRowWithProgress](/reference/formats/JSON/JSONEachRowWithProgress) | ✗ | ✔ | -| [JSONStringsEachRow](/reference/formats/JSON/JSONStringsEachRow) | ✔ | ✔ | -| [JSONStringsEachRowWithProgress](/reference/formats/JSON/JSONStringsEachRowWithProgress) | ✗ | ✔ | -| [JSONCompactEachRow](/reference/formats/JSON/JSONCompactEachRow) | ✔ | ✔ | -| [JSONCompactEachRowWithNames](/reference/formats/JSON/JSONCompactEachRowWithNames) | ✔ | ✔ | -| [JSONCompactEachRowWithNamesAndTypes](/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes) | ✔ | ✔ | -| [JSONCompactEachRowWithProgress](/reference/formats/JSON/JSONCompactEachRowWithProgress) | ✗ | ✔ | -| [JSONCompactStringsEachRow](/reference/formats/JSON/JSONCompactStringsEachRow) | ✔ | ✔ | -| [JSONCompactStringsEachRowWithNames](/reference/formats/JSON/JSONCompactStringsEachRowWithNames) | ✔ | ✔ | -| [JSONCompactStringsEachRowWithNamesAndTypes](/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes) | ✔ | ✔ | -| [JSONCompactStringsEachRowWithProgress](/reference/formats/JSON/JSONCompactStringsEachRowWithProgress) | ✗ | ✔ | -| [JSONObjectEachRow](/reference/formats/JSON/JSONObjectEachRow) | ✔ | ✔ | -| [BSONEachRow](/reference/formats/BSONEachRow) | ✔ | ✔ | -| [TSKV](/reference/formats/TabSeparated/TSKV) | ✔ | ✔ | -| [Pretty](/reference/formats/Pretty/Pretty) | ✗ | ✔ | -| [PrettyNoEscapes](/reference/formats/Pretty/PrettyNoEscapes) | ✗ | ✔ | -| [PrettyMonoBlock](/reference/formats/Pretty/PrettyMonoBlock) | ✗ | ✔ | -| [PrettyNoEscapesMonoBlock](/reference/formats/Pretty/PrettyNoEscapesMonoBlock) | ✗ | ✔ | -| [PrettyCompact](/reference/formats/Pretty/PrettyCompact) | ✗ | ✔ | -| [PrettyCompactNoEscapes](/reference/formats/Pretty/PrettyCompactNoEscapes) | ✗ | ✔ | -| [PrettyCompactMonoBlock](/reference/formats/Pretty/PrettyCompactMonoBlock) | ✗ | ✔ | -| [PrettyCompactNoEscapesMonoBlock](/reference/formats/Pretty/PrettyCompactNoEscapesMonoBlock) | ✗ | ✔ | -| [PrettySpace](/reference/formats/Pretty/PrettySpace) | ✗ | ✔ | -| [PrettySpaceNoEscapes](/reference/formats/Pretty/PrettySpaceNoEscapes) | ✗ | ✔ | -| [PrettySpaceMonoBlock](/reference/formats/Pretty/PrettySpaceMonoBlock) | ✗ | ✔ | -| [PrettySpaceNoEscapesMonoBlock](/reference/formats/Pretty/PrettySpaceNoEscapesMonoBlock) | ✗ | ✔ | -| [Prometheus](/reference/formats/Prometheus) | ✗ | ✔ | -| [Protobuf](/reference/formats/Protobuf/Protobuf) | ✔ | ✔ | -| [ProtobufSingle](/reference/formats/Protobuf/ProtobufSingle) | ✔ | ✔ | -| [ProtobufList](/reference/formats/Protobuf/ProtobufList) | ✔ | ✔ | -| [Avro](/reference/formats/Avro/Avro) | ✔ | ✔ | -| [AvroConfluent](/reference/formats/Avro/AvroConfluent) | ✔ | ✔ | -| [Parquet](/reference/formats/Parquet/Parquet) | ✔ | ✔ | -| [ParquetMetadata](/reference/formats/Parquet/ParquetMetadata) | ✔ | ✗ | -| [Arrow](/reference/formats/Arrow/Arrow) | ✔ | ✔ | -| [ArrowStream](/reference/formats/Arrow/ArrowStream) | ✔ | ✔ | -| [ORC](/reference/formats/ORC) | ✔ | ✔ | -| [One](/reference/formats/One) | ✔ | ✗ | -| [Npy](/reference/formats/Npy) | ✔ | ✔ | -| [RowBinary](/reference/formats/RowBinary/RowBinary) | ✔ | ✔ | -| [RowBinaryWithNames](/reference/formats/RowBinary/RowBinaryWithNames) | ✔ | ✔ | -| [RowBinaryWithNamesAndTypes](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) | ✔ | ✔ | -| [RowBinaryWithDefaults](/reference/formats/RowBinary/RowBinaryWithDefaults) | ✔ | ✗ | -| [Native](/reference/formats/Native) | ✔ | ✔ | -| [Buffers](/reference/formats/Buffers) | ✔ | ✔ | -| [Null](/reference/formats/Null) | ✗ | ✔ | -| [Hash](/reference/formats/Hash) | ✗ | ✔ | -| [XML](/reference/formats/XML) | ✗ | ✔ | -| [CapnProto](/reference/formats/CapnProto) | ✔ | ✔ | -| [LineAsString](/reference/formats/LineAsString/LineAsString) | ✔ | ✔ | -| [LineAsStringWithNames](/reference/formats/LineAsString/LineAsStringWithNames) | ✔ | ✔ | -| [LineAsStringWithNamesAndTypes](/reference/formats/LineAsString/LineAsStringWithNamesAndTypes) | ✔ | ✔ | -| [Regexp](/reference/formats/Regexp) | ✔ | ✗ | -| [RawBLOB](/reference/formats/RawBLOB) | ✔ | ✔ | -| [MsgPack](/reference/formats/MsgPack) | ✔ | ✔ | -| [MySQLDump](/reference/formats/MySQLDump) | ✔ | ✗ | -| [DWARF](/reference/formats/DWARF) | ✔ | ✗ | -| [Markdown](/reference/formats/Markdown) | ✗ | ✔ | -| [Form](/reference/formats/Form) | ✔ | ✗ | - -You can control some format processing parameters with the ClickHouse settings. For more information read the [Settings](/reference/settings/formats) section. - -## Format schema {#formatschema} - -The file name containing the format schema is set by the setting `format_schema`. -It's required to set this setting when it is used one of the formats `Cap'n Proto` and `Protobuf`. -The format schema is a combination of a file name and the name of a message type in this file, delimited by a colon, -e.g. `schemafile.proto:MessageType`. -If the file has the standard extension for the format (for example, `.proto` for `Protobuf`), -it can be omitted and in this case, the format schema looks like `schemafile:MessageType`. - -If you input or output data via the [client](/integrations/connectors/data-integrations/drivers-and-interfaces/client) in interactive mode, the file name specified in the format schema -can contain an absolute path or a path relative to the current directory on the client. -If you use the client in the [batch mode](/integrations/connectors/data-integrations/drivers-and-interfaces/client#batch-mode), the path to the schema must be relative due to security reasons. - -If you input or output data via the [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http) the file name specified in the format schema -should be located in the directory specified in [format_schema_path](/reference/settings/server-settings/settings#format_schema_path) -in the server configuration. - -## Skipping errors {#skippingerrors} - -Some formats such as `CSV`, `TabSeparated`, `TSKV`, `JSONEachRow`, `Template`, `CustomSeparated` and `Protobuf` can skip broken row if parsing error occurred and continue parsing from the beginning of next row. See [input_format_allow_errors_num](/reference/settings/formats#input_format_allow_errors_num) and -[input_format_allow_errors_ratio](/reference/settings/formats#input_format_allow_errors_ratio) settings. -Limitations: -- In case of parsing error `JSONEachRow` skips all data until the new line (or EOF), so rows must be delimited by `\n` to count errors correctly. -- `Template` and `CustomSeparated` use delimiter after the last column and delimiter between rows to find the beginning of next row, so skipping errors works only if at least one of them is not empty. diff --git a/reference/functions/aggregate-functions/reference/index.mdx b/reference/functions/aggregate-functions/reference/index.mdx deleted file mode 100644 index 94ba59f9..00000000 --- a/reference/functions/aggregate-functions/reference/index.mdx +++ /dev/null @@ -1,166 +0,0 @@ ---- -description: 'Landing page for aggregate functions with complete list of aggregate - functions' -slug: /sql-reference/aggregate-functions/reference/ -title: 'Aggregate Functions' -toc_folder_title: 'Reference' -toc_hidden: true -doc_type: 'landing-page' ---- - -ClickHouse supports all standard SQL aggregate functions ([sum](/reference/functions/aggregate-functions/reference/sum), [avg](/reference/functions/aggregate-functions/reference/avg), [min](/reference/functions/aggregate-functions/reference/min), [max](/reference/functions/aggregate-functions/reference/max), [count](/reference/functions/aggregate-functions/reference/count)), as well as a wide range of other aggregate functions. - -{/* The table of contents table for this page is automatically generated by -https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh -from the YAML front matter fields: slug, description, title. - -If you've spotted an error, please edit the YML frontmatter of the pages themselves. -*/} - -{/*AUTOGENERATED_START*/} -| Page | Description | -|-----|-----| -| [aggThrow](/reference/functions/aggregate-functions/reference/aggThrow) | This function can be used for the purpose of testing exception safety. It will throw an exception on creation with the specified probability. | -| [analysisOfVariance](/reference/functions/aggregate-functions/reference/analysis_of_variance) | Provides a statistical test for one-way analysis of variance (ANOVA test). It is a test over several groups of normally distributed observations to find out whether all groups have the same mean or not. | -| [any](/reference/functions/aggregate-functions/reference/any) | Selects the first encountered value of a column. | -| [anyHeavy](/reference/functions/aggregate-functions/reference/anyHeavy) | Selects a frequently occurring value using the heavy hitters algorithm. If there is a value that occurs more than in half the cases in each of the query execution threads, this value is returned. Normally, the result is nondeterministic. | -| [anyLast](/reference/functions/aggregate-functions/reference/anyLast) | Selects the last encountered value of a column. | -| [approx_top_k](/reference/functions/aggregate-functions/reference/approxtopk) | Returns an array of the approximately most frequent values and their counts in the specified column. | -| [approx_top_sum](/reference/functions/aggregate-functions/reference/approxtopsum) | Returns an array of the approximately most frequent values and their counts in the specified column. | -| [argAndMax](/reference/functions/aggregate-functions/reference/argAndMax) | Calculates the `arg` and `val` value for a maximum `val` value. If there are multiple rows with equal `val` being the maximum, which of the associated `arg` and `val` is returned is not deterministic. | -| [argAndMin](/reference/functions/aggregate-functions/reference/argAndMin) | Calculates the `arg` and `val` value for a minimum `val` value. If there are multiple rows with equal `val` being the minimum, which of the associated `arg` and `val` is returned is not deterministic. | -| [argMax](/reference/functions/aggregate-functions/reference/argMax) | Calculates the `arg` value for a maximum `val` value. | -| [argMin](/reference/functions/aggregate-functions/reference/argMin) | Calculates the `arg` value for a minimum `val` value. If there are multiple rows with equal `val` being the maximum, which of the associated `arg` is returned is not deterministic. | -| [avg](/reference/functions/aggregate-functions/reference/avg) | Calculates the arithmetic mean. | -| [avgWeighted](/reference/functions/aggregate-functions/reference/avgWeighted) | Calculates the weighted arithmetic mean. | -| [boundingRatio](/reference/functions/aggregate-functions/reference/boundrat) | Aggregate function that calculates the slope between the leftmost and rightmost points across a group of values. | -| [categoricalInformationValue](/reference/functions/aggregate-functions/reference/categoricalInformationValue) | Calculates the value of `(P(tag = 1) - P(tag = 0))(log(P(tag = 1)) - log(P(tag = 0)))` for each category. | -| [contingency](/reference/functions/aggregate-functions/reference/contingency) | The `contingency` function calculates the contingency coefficient, a value that measures the association between two columns in a table. The computation is similar to the `cramersV` function but with a different denominator in the square root. | -| [corr](/reference/functions/aggregate-functions/reference/corr) | Calculates the Pearson correlation coefficient. | -| [corrMatrix](/reference/functions/aggregate-functions/reference/corrMatrix) | Computes the correlation matrix over N variables. | -| [corrStable](/reference/functions/aggregate-functions/reference/corrStable) | Calculates the Pearson correlation coefficient, but uses a numerically stable algorithm. | -| [count](/reference/functions/aggregate-functions/reference/count) | Counts the number of rows or not-NULL values. | -| [covarPop](/reference/functions/aggregate-functions/reference/covarPop) | Calculates the population covariance | -| [covarPopMatrix](/reference/functions/aggregate-functions/reference/covarPopMatrix) | Returns the population covariance matrix over N variables. | -| [covarPopStable](/reference/functions/aggregate-functions/reference/covarPopStable) | Calculates the value of the population covariance | -| [covarSamp](/reference/functions/aggregate-functions/reference/covarSamp) | Calculates the value of `Σ((x - x̅)(y - y̅)) / (n - 1)` | -| [covarSampMatrix](/reference/functions/aggregate-functions/reference/covarSampMatrix) | Returns the sample covariance matrix over N variables. | -| [covarSampStable](/reference/functions/aggregate-functions/reference/covarSampStable) | Similar to covarSamp but works slower while providing a lower computational error. | -| [cramersV](/reference/functions/aggregate-functions/reference/cramersV) | The result of the `cramersV` function ranges from 0 (corresponding to no association between the variables) to 1 and can reach 1 only when each value is completely determined by the other. It may be viewed as the association between two variables as a percentage of their maximum possible variation. | -| [cramersVBiasCorrected](/reference/functions/aggregate-functions/reference/cramersVBiasCorrected) | Calculates Cramer's V, but uses a bias correction. | -| [deltaSum](/reference/functions/aggregate-functions/reference/deltaSum) | Sums the arithmetic difference between consecutive rows. | -| [deltaSumTimestamp](/reference/functions/aggregate-functions/reference/deltaSumTimestamp) | Adds the difference between consecutive rows. If the difference is negative, it is ignored. | -| [distinctDynamicTypes](/reference/functions/aggregate-functions/reference/distinctDynamicTypes) | Calculates the list of distinct data types stored in Dynamic column. | -| [distinctJSONPaths](/reference/functions/aggregate-functions/reference/distinctJSONPaths) | Calculates a list of distinct paths stored in a JSON column. | -| [distinctJSONPathsAndTypes](/reference/functions/aggregate-functions/reference/distinctJSONPathsAndTypes) | Calculates the list of distinct paths and their types stored in JSON | -| [entropy](/reference/functions/aggregate-functions/reference/entropy) | Calculates Shannon entropy of for a column of values. | -| [estimateCompressionRatio](/reference/functions/aggregate-functions/reference/estimateCompressionRatio) | Estimates the compression ratio of a given column without compressing it. | -| [exponentialMovingAverage](/reference/functions/aggregate-functions/reference/exponentialMovingAverage) | Calculates the exponential moving average of values for the determined time. | -| [exponentialTimeDecayedAvg](/reference/functions/aggregate-functions/reference/exponentialTimeDecayedAvg) | Returns the exponentially smoothed weighted moving average of values of a time series at point `t` in time. | -| [exponentialTimeDecayedCount](/reference/functions/aggregate-functions/reference/exponentialTimeDecayedCount) | Returns the cumulative exponential decay over a time series at the index `t` in time. | -| [exponentialTimeDecayedMax](/reference/functions/aggregate-functions/reference/exponentialTimeDecayedMax) | Returns the maximum of the computed exponentially smoothed moving average at index `t` in time with that at `t-1`. | -| [exponentialTimeDecayedSum](/reference/functions/aggregate-functions/reference/exponentialTimeDecayedSum) | Returns the sum of exponentially smoothed moving average values of a time series at the index `t` in time. | -| [first_value](/reference/functions/aggregate-functions/reference/first_value) | It is an alias for any but it was introduced for compatibility with Window Functions, where sometimes it is necessary to process `NULL` values (by default all ClickHouse aggregate functions ignore NULL values). | -| [flameGraph](/reference/functions/aggregate-functions/reference/flame_graph) | Aggregate function which builds a flamegraph using the list of stacktraces. | -| [groupArray](/reference/functions/aggregate-functions/reference/groupArray) | Creates an array of argument values. Values can be added to the array in any (indeterminate) order. | -| [groupArrayArray](/reference/functions/aggregate-functions/reference/groupArrayArray) | Aggregates arrays into a larger array of those arrays. | -| [groupArrayInsertAt](/reference/functions/aggregate-functions/reference/groupArrayInsertAt) | Inserts a value into the array at the specified position. | -| [groupArrayIntersect](/reference/functions/aggregate-functions/reference/groupArrayIntersect) | Return an intersection of given arrays (Return all items of arrays, that are in all given arrays). | -| [groupArrayLast](/reference/functions/aggregate-functions/reference/groupArrayLast) | Creates an array of the last argument values. | -| [groupArrayMovingAvg](/reference/functions/aggregate-functions/reference/groupArrayMovingAvg) | Calculates the moving average of input values. | -| [groupArrayMovingSum](/reference/functions/aggregate-functions/reference/groupArrayMovingSum) | Calculates the moving sum of input values. | -| [groupArraySample](/reference/functions/aggregate-functions/reference/groupArraySample) | Creates an array of sample argument values. The size of the resulting array is limited to `max_size` elements. Argument values are selected and added to the array randomly. | -| [groupArraySorted](/reference/functions/aggregate-functions/reference/groupArraySorted) | Returns an array with the first N items in ascending order. | -| [groupBitAnd](/reference/functions/aggregate-functions/reference/groupBitAnd) | Applies bit-wise `AND` for series of numbers. | -| [groupBitmap](/reference/functions/aggregate-functions/reference/groupBitmap) | Bitmap or Aggregate calculations from a unsigned integer column, return cardinality of type UInt64, if add suffix -State, then return a bitmap object | -| [groupBitmapAnd](/reference/functions/aggregate-functions/reference/groupBitmapAnd) | Calculations the AND of a bitmap column, return cardinality of type UInt64, if add suffix -State, then return a bitmap object. | -| [groupBitmapOr](/reference/functions/aggregate-functions/reference/groupBitmapOr) | Calculations the OR of a bitmap column, return cardinality of type UInt64, if add suffix -State, then return a bitmap object. This is equivalent to `groupBitmapMerge`. | -| [groupBitmapXor](/reference/functions/aggregate-functions/reference/groupBitmapXor) | Calculates the XOR of a bitmap column, and returns the cardinality of type UInt64, if used with suffix -State, then it returns a bitmap object | -| [groupBitOr](/reference/functions/aggregate-functions/reference/groupBitOr) | Applies bit-wise `OR` to a series of numbers. | -| [groupBitXor](/reference/functions/aggregate-functions/reference/groupBitXor) | Applies bit-wise `XOR` for series of numbers. | -| [groupConcat](/reference/functions/aggregate-functions/reference/groupConcat) | Calculates a concatenated string from a group of strings, optionally separated by a delimiter, and optionally limited by a maximum number of elements. | -| [groupUniqArray](/reference/functions/aggregate-functions/reference/groupUniqArray) | Creates an array from different argument values. | -| [intervalLengthSum](/reference/functions/aggregate-functions/reference/intervalLengthSum) | Calculates the total length of union of all ranges (segments on numeric axis). | -| [kolmogorovSmirnovTest](/reference/functions/aggregate-functions/reference/kolmogorovSmirnovTest) | Applies Kolmogorov-Smirnov's test to samples from two populations. | -| [kurtPop](/reference/functions/aggregate-functions/reference/kurtPop) | Computes the kurtosis of a sequence. | -| [kurtSamp](/reference/functions/aggregate-functions/reference/kurtSamp) | Computes the sample kurtosis of a sequence. | -| [largestTriangleThreeBuckets](/reference/functions/aggregate-functions/reference/largestTriangleThreeBuckets) | Applies the Largest-Triangle-Three-Buckets algorithm to the input data. | -| [last_value](/reference/functions/aggregate-functions/reference/last_value) | Selects the last encountered value, similar to `anyLast`, but could accept NULL. | -| [mannWhitneyUTest](/reference/functions/aggregate-functions/reference/mannWhitneyUTest) | Applies the Mann-Whitney rank test to samples from two populations. | -| [max](/reference/functions/aggregate-functions/reference/max) | Aggregate function that calculates the maximum across a group of values. | -| [maxIntersections](/reference/functions/aggregate-functions/reference/maxIntersections) | Aggregate function that calculates the maximum number of times that a group of intervals intersects each other (if all the intervals intersect at least once). | -| [maxIntersectionsPosition](/reference/functions/aggregate-functions/reference/maxIntersectionsPosition) | Aggregate function that calculates the positions of the occurrences of the maxIntersections function. | -| [maxMap](/reference/functions/aggregate-functions/reference/maxMap) | Calculates the maximum from `value` array according to the keys specified in the `key` array. | -| [meanZTest](/reference/functions/aggregate-functions/reference/meanZTest) | Applies mean z-test to samples from two populations. | -| [median](/reference/functions/aggregate-functions/reference/median) | The `median*` functions are the aliases for the corresponding `quantile*` functions. They calculate median of a numeric data sample. | -| [min](/reference/functions/aggregate-functions/reference/min) | Aggregate function that calculates the minimum across a group of values. | -| [minMap](/reference/functions/aggregate-functions/reference/minMap) | Calculates the minimum from `value` array according to the keys specified in the `key` array. | -| [quantile](/reference/functions/aggregate-functions/reference/quantile) | Computes an approximate quantile of a numeric data sequence. | -| [quantileBFloat16](/reference/functions/aggregate-functions/reference/quantileBFloat16) | Computes an approximate quantile of a sample consisting of bfloat16 numbers. | -| [quantileDD](/reference/functions/aggregate-functions/reference/quantileddsketch) | Computes an approximate quantile of a sample with relative-error guarantees. | -| [quantileDeterministic](/reference/functions/aggregate-functions/reference/quantileDeterministic) | Computes an approximate quantile of a numeric data sequence. | -| [quantileExact Functions](/reference/functions/aggregate-functions/reference/quantileExact) | quantileExact, quantileExactLow, quantileExactHigh, quantileExactExclusive, quantileExactInclusive functions | -| [quantileExactExclusive](/reference/functions/aggregate-functions/reference/quantileExactExclusive) | Exactly computes the quantile of a numeric data sequence. | -| [quantileExactHigh](/reference/functions/aggregate-functions/reference/quantileExactHigh) | Similar to quantileExact, this computes the exact quantile of a numeric data sequence. | -| [quantileExactInclusive](/reference/functions/aggregate-functions/reference/quantileExactInclusive) | Exactly computes the quantile of a numeric data sequence. | -| [quantileExactLow](/reference/functions/aggregate-functions/reference/quantileExactLow) | Similar to quantileExact, this computes the exact [quantile](https://en.wikipedia.org/wiki/Quantile) of a numeric data sequence. | -| [quantileExactWeighted](/reference/functions/aggregate-functions/reference/quantileExactWeighted) | Exactly computes the quantile of a numeric data sequence, taking into account the weight of each element. | -| [quantileExactWeightedInterpolated](/reference/functions/aggregate-functions/reference/quantileExactWeightedInterpolated) | Computes quantile of a numeric data sequence using linear interpolation, taking into account the weight of each element. | -| [quantileGK](/reference/functions/aggregate-functions/reference/quantileGK) | Computes the quantile of a numeric data sequence using the Greenwald-Khanna algorithm. | -| [quantileInterpolatedWeighted](/reference/functions/aggregate-functions/reference/quantileInterpolatedWeighted) | Computes quantile of a numeric data sequence using linear interpolation, taking into account the weight of each element. | -| [quantilePrometheusHistogram](/reference/functions/aggregate-functions/reference/quantilePrometheusHistogram) | Computes quantile of a histogram using linear interpolation. | -| [quantiles Functions](/reference/functions/aggregate-functions/reference/quantiles) | quantiles, quantilesExactExclusive, quantilesExactInclusive, quantilesGK | -| [quantilesExactExclusive](/reference/functions/aggregate-functions/reference/quantilesExactExclusive) | Exactly computes the quantiles of a numeric data sequence. | -| [quantilesExactInclusive](/reference/functions/aggregate-functions/reference/quantilesExactInclusive) | Exactly computes the quantiles of a numeric data sequence. | -| [quantilesGK](/reference/functions/aggregate-functions/reference/quantilesGK) | quantilesGK works similarly to quantileGK but allows us to calculate quantities at different levels simultaneously and returns an array. | -| [quantilesTimingWeighted](/reference/functions/aggregate-functions/reference/quantilesTimingWeighted) | With the determined precision computes the quantile of a numeric data sequence according to the weight of each sequence member. | -| [quantileTDigest](/reference/functions/aggregate-functions/reference/quantileTDigest) | Computes an approximate quantile of a numeric data sequence using the t-digest algorithm. | -| [quantileTDigestWeighted](/reference/functions/aggregate-functions/reference/quantileTDigestWeighted) | Computes an approximate quantile of a numeric data sequence using the t-digest algorithm. | -| [quantileTiming](/reference/functions/aggregate-functions/reference/quantileTiming) | With the determined precision computes the quantile of a numeric data sequence. | -| [quantileTimingWeighted](/reference/functions/aggregate-functions/reference/quantileTimingWeighted) | With the determined precision computes the quantile of a numeric data sequence according to the weight of each sequence member. | -| [rankCorr](/reference/functions/aggregate-functions/reference/rankCorr) | Computes a rank correlation coefficient. | -| [simpleLinearRegression](/reference/functions/aggregate-functions/reference/simpleLinearRegression) | Performs simple (unidimensional) linear regression. | -| [singleValueOrNull](/reference/functions/aggregate-functions/reference/singleValueOrNull) | The aggregate function `singleValueOrNull` is used to implement subquery operators, such as `x = ALL (SELECT ...)`. It checks if there is only one unique non-NULL value in the data. | -| [skewPop](/reference/functions/aggregate-functions/reference/skewPop) | Computes the skewness of a sequence. | -| [skewSamp](/reference/functions/aggregate-functions/reference/skewSamp) | Computes the sample skewness of a sequence. | -| [sparkbar](/reference/functions/aggregate-functions/reference/sparkbar) | The function plots a frequency histogram for values `x` and the repetition rate `y` of these values over the interval `[min_x, max_x]`. | -| [stddevPop](/reference/functions/aggregate-functions/reference/stddevPop) | The result is equal to the square root of varPop. | -| [stddevPopStable](/reference/functions/aggregate-functions/reference/stddevPopStable) | The result is equal to the square root of varPop. Unlike stddevPop, this function uses a numerically stable algorithm. | -| [stddevSamp](/reference/functions/aggregate-functions/reference/stddevSamp) | The result is equal to the square root of varSamp | -| [stddevSampStable](/reference/functions/aggregate-functions/reference/stddevSampStable) | The result is equal to the square root of varSamp. Unlike this function uses a numerically stable algorithm. | -| [stochasticLinearRegression](/reference/functions/aggregate-functions/reference/stochasticLinearRegression) | This function implements stochastic linear regression. It supports custom parameters for learning rate, L2 regularization coefficient, mini-batch size, and has a few methods for updating weights (Adam, simple SGD, Momentum, Nesterov.) | -| [stochasticLogisticRegression](/reference/functions/aggregate-functions/reference/stochasticLogisticRegression) | This function implements stochastic logistic regression. It can be used for binary classification problem, supports the same custom parameters as stochasticLinearRegression and works the same way. | -| [studentTTest](/reference/functions/aggregate-functions/reference/studentTTest) | Applies the student t-test to samples from two populations. | -| [studentTTestOneSample](/reference/functions/aggregate-functions/reference/studentTTestOneSample) | Applies the one-sample Student t-test to a sample and a known population mean. | -| [sum](/reference/functions/aggregate-functions/reference/sum) | Calculates the sum. Only works for numbers. | -| [sumCount](/reference/functions/aggregate-functions/reference/sumCount) | Calculates the sum of the numbers and counts the number of rows at the same time. The function is used by ClickHouse query optimizer: if there are multiple `sum`, `count` or `avg` functions in a query, they can be replaced to single `sumCount` function to reuse the calculations. The function is rarely needed to use explicitly. | -| [sumKahan](/reference/functions/aggregate-functions/reference/sumKahan) | Calculates the sum of the numbers with Kahan compensated summation algorithm | -| [sumMap](/reference/functions/aggregate-functions/reference/sumMap) | Totals one or more `value` arrays according to the keys specified in the `key` array. Returns a tuple of arrays: keys in sorted order, followed by values summed for the corresponding keys without overflow. | -| [sumMapWithOverflow](/reference/functions/aggregate-functions/reference/sumMapWithOverflow) | Totals a `value` array according to the keys specified in the `key` array. Returns a tuple of two arrays: keys in sorted order, and values summed for the corresponding keys. Differs from the sumMap function in that it does summation with overflow. | -| [sumWithOverflow](/reference/functions/aggregate-functions/reference/sumWithOverflow) | Computes the sum of the numbers, using the same data type for the result as for the input parameters. If the sum exceeds the maximum value for this data type, it is calculated with overflow. | -| [theilsU](/reference/functions/aggregate-functions/reference/theilsU) | The `theilsU` function calculates Theils' U uncertainty coefficient, a value that measures the association between two columns in a table. | -| [timeSeriesChangesToGrid](/reference/functions/aggregate-functions/reference/timeSeriesChangesToGrid) | Aggregate function that calculates PromQL-like changes over time series data on the specified grid. | -| [timeSeriesDeltaToGrid](/reference/functions/aggregate-functions/reference/timeSeriesDeltaToGrid) | Aggregate function that calculates PromQL-like delta over time series data on the specified grid. | -| [timeSeriesDerivToGrid](/reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid) | Aggregate function that calculates PromQL-like derivative over time series data on the specified grid. | -| [timeSeriesGroupArray](/reference/functions/aggregate-functions/reference/timeSeriesGroupArray) | Sorts time series by timestamp in ascending order. | -| [timeSeriesInstantDeltaToGrid](/reference/functions/aggregate-functions/reference/timeSeriesInstantDeltaToGrid) | Aggregate function that calculates PromQL-like idelta over time series data on the specified grid. | -| [timeSeriesInstantRateToGrid](/reference/functions/aggregate-functions/reference/timeSeriesInstantRateToGrid) | Aggregate function that calculates PromQL-like irate over time series data on the specified grid. | -| [timeSeriesLastTwoSamples](/reference/functions/aggregate-functions/reference/timeSeriesLastTwoSamples) | Aggregate function for re-sampling time series data for PromQL-like irate and idelta calculation | -| [timeSeriesPredictLinearToGrid](/reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid) | Aggregate function that calculates PromQL-like linear prediction over time series data on the specified grid. | -| [timeSeriesRateToGrid](/reference/functions/aggregate-functions/reference/timeSeriesRateToGrid) | Aggregate function that calculates PromQL-like rate over time series data on the specified grid. | -| [timeSeriesResampleToGridWithStaleness](/reference/functions/aggregate-functions/reference/timeSeriesResampleToGridWithStaleness) | Aggregate function that re-samples time series data to the specified grid. | -| [timeSeriesResetsToGrid](/reference/functions/aggregate-functions/reference/timeSeriesResetsToGrid) | Aggregate function that calculates PromQL-like resets over time series data on the specified grid. | -| [topK](/reference/functions/aggregate-functions/reference/topK) | Returns an array of the approximately most frequent values in the specified column. The resulting array is sorted in descending order of approximate frequency of values (not by the values themselves). | -| [topKWeighted](/reference/functions/aggregate-functions/reference/topKWeighted) | Returns an array of the approximately most frequent values in the specified column. The resulting array is sorted in descending order of approximate frequency of values (not by the values themselves). Additionally, the weight of the value is taken into account. | -| [uniq](/reference/functions/aggregate-functions/reference/uniq) | Calculates the approximate number of different values of the argument. | -| [uniqCombined](/reference/functions/aggregate-functions/reference/uniqCombined) | Calculates the approximate number of different argument values. | -| [uniqCombined64](/reference/functions/aggregate-functions/reference/uniqCombined64) | Calculates the approximate number of different argument values. It is the same as uniqCombined, but uses a 64-bit hash for all data types rather than just for the String data type. | -| [uniqExact](/reference/functions/aggregate-functions/reference/uniqExact) | Calculates the exact number of different argument values. | -| [uniqHLL12](/reference/functions/aggregate-functions/reference/uniqHLL12) | Calculates the approximate number of different argument values, using the HyperLogLog algorithm. | -| [uniqTheta](/reference/functions/aggregate-functions/reference/uniqthetasketch) | Calculates the approximate number of different argument values, using the Theta Sketch Framework. | -| [varPop](/reference/functions/aggregate-functions/reference/varPop) | Calculates the population variance. | -| [varPopStable](/reference/functions/aggregate-functions/reference/varPopStable) | Returns the population variance. Unlike varPop , this function uses a numerically stable algorithm. It works slower but provides a lower computational error. | -| [varSamp](/reference/functions/aggregate-functions/reference/varSamp) | Calculate the sample variance of a data set. | -| [varSampStable](/reference/functions/aggregate-functions/reference/varSampStable) | Calculate the sample variance of a data set. Unlike `varSamp` , this function uses a numerically stable algorithm. It works slower but provides a lower computational error. | -| [welchTTest](/reference/functions/aggregate-functions/reference/welchTTest) | Applies Welch's t-test to samples from two populations. | -{/*AUTOGENERATED_END*/} diff --git a/reference/functions/aggregate-functions/reference/median.mdx b/reference/functions/aggregate-functions/reference/median.mdx deleted file mode 100644 index 83a3d2f7..00000000 --- a/reference/functions/aggregate-functions/reference/median.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -description: 'The `median*` functions are the aliases for the corresponding `quantile*` - functions. They calculate median of a numeric data sample.' -slug: /sql-reference/aggregate-functions/reference/median -title: 'median' -doc_type: 'reference' ---- - -The `median*` functions are the aliases for the corresponding `quantile*` functions. They calculate median of a numeric data sample. - -Functions: - -- `median` — Alias for [quantile](/reference/functions/aggregate-functions/reference/quantile). -- `medianDeterministic` — Alias for [quantileDeterministic](/reference/functions/aggregate-functions/reference/quantileDeterministic). -- `medianExact` — Alias for [quantileExact](/reference/functions/aggregate-functions/reference/quantileExact). -- `medianExactWeighted` — Alias for [quantileExactWeighted](/reference/functions/aggregate-functions/reference/quantileExactWeighted). -- `medianTiming` — Alias for [quantileTiming](/reference/functions/aggregate-functions/reference/quantileTiming). -- `medianTimingWeighted` — Alias for [quantileTimingWeighted](/reference/functions/aggregate-functions/reference/quantileTimingWeighted). -- `medianTDigest` — Alias for [quantileTDigest](/reference/functions/aggregate-functions/reference/quantileTDigest). -- `medianTDigestWeighted` — Alias for [quantileTDigestWeighted](/reference/functions/aggregate-functions/reference/quantileTDigestWeighted). -- `medianBFloat16` — Alias for [quantileBFloat16](/reference/functions/aggregate-functions/reference/quantileBFloat16). -- `medianDD` — Alias for [quantileDD](/reference/functions/aggregate-functions/reference/quantileddsketch). - -**Example** - -Input table: - -```text -┌─val─┐ -│ 1 │ -│ 1 │ -│ 2 │ -│ 3 │ -└─────┘ -``` - -```sql title="Query" -SELECT medianDeterministic(val, 1) FROM t; -``` - -```text title="Response" -┌─medianDeterministic(val, 1)─┐ -│ 1.5 │ -└─────────────────────────────┘ -``` diff --git a/reference/functions/index.mdx b/reference/functions/index.mdx deleted file mode 100644 index 7c7ea442..00000000 --- a/reference/functions/index.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -description: 'Documentation for Index' -sidebar: 'sqlreference' -slug: /sql-reference/functions -title: 'Functions Overview' -doc_type: 'landing-page' ---- - -| Page | Description | -|---------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------| -| [Regular Functions](/reference/functions/regular-functions/regular-functions-index) | Functions whose result for each row is independent of all other rows. | -| [Aggregate Functions](/reference/functions/aggregate-functions) | Functions that accumulate a set of values across rows. | -| [Table Functions](/reference/functions/table-functions) | Methods for constructing tables. | -| [Window Functions](/reference/functions/window-functions) | Functions which let you perform calculations across a set of rows that are related to the current row. | diff --git a/reference/functions/regular-functions/geo/index.mdx b/reference/functions/regular-functions/geo/index.mdx deleted file mode 100644 index d61d87be..00000000 --- a/reference/functions/regular-functions/geo/index.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -description: 'Documentation for Index' -sidebarTitle: 'Geo' -slug: /sql-reference/functions/geo/ -title: 'Geo Functions' -doc_type: 'reference' ---- - -Functions for working with geometric objects, for example [to calculate distances between points on a sphere](/reference/functions/regular-functions/geo/coordinates), [compute geohashes](/reference/functions/regular-functions/geo/geohash), and work with [h3 indexes](/reference/functions/regular-functions/geo/h3). diff --git a/reference/functions/regular-functions/regular-functions-index.mdx b/reference/functions/regular-functions/regular-functions-index.mdx deleted file mode 100644 index 92df7205..00000000 --- a/reference/functions/regular-functions/regular-functions-index.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -description: 'Landing page for Regular Functions' -slug: /sql-reference/functions/regular-functions -title: 'Regular functions' -doc_type: 'landing-page' ---- - -| Page | Description | -|--------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------| -| [Overview](/reference/functions/regular-functions/overview) | Overview of all functions. | -| [Machine Learning](/reference/functions/regular-functions/machine-learning-functions) | Functions for machine learning. | -| [Introspection](/reference/functions/regular-functions/introspection) | Functions for introspection of ClickHouse. | -| [arrayJoin](/reference/functions/regular-functions/array-join) | The arrayJoin function which takes each row and generates a set of rows (unfold) | -| [Searching in Strings](/reference/functions/regular-functions/string-search-functions) | Functions for searching within strings. | -| [Hash](/reference/functions/regular-functions/hash-functions) | Hashing functions. | -| [UUIDs](/reference/functions/regular-functions/uuid-functions) | Functions for Working with UUIDs. | -| [Time-Series](/reference/functions/regular-functions/time-series-functions) | Functions for working with time series | -| [Random Numbers](/reference/functions/regular-functions/random-functions) | Functions for random number generation. | -| [NLP](/reference/functions/regular-functions/nlp-functions) | Functions for Natural Language Processing. | -| [Conditional](/reference/functions/regular-functions/conditional-functions) | Conditional functions. | -| [Nullable](/reference/functions/regular-functions/functions-for-nulls) | Functions for working with NULL. | -| [Bit](/reference/functions/regular-functions/bit-functions) | Bitwise functions. | -| [Time Window](/reference/functions/regular-functions/time-window-functions) | Functions which return the inclusive lower and exclusive upper bound of the corresponding window. | -| [IP Address](/reference/functions/regular-functions/ip-address-functions) | Functions for Working with IPv4 and IPv6 Addresses. | -| [Splitting Strings](/reference/functions/regular-functions/splitting-merging-functions) | Functions for splitting strings. | -| [Tuples](/reference/functions/regular-functions/tuple-functions) | Functions for working with tuples. | -| [String replacement](/reference/functions/regular-functions/string-replace-functions) | Functions for string replacement. | -| [User Defined Functions](/reference/functions/regular-functions/udf) | User Defined Functions. | -| [Comparison](/reference/functions/regular-functions/comparison-functions) | Comparison functions (equals, less, greater etc.) | -| [Other](/reference/functions/regular-functions/other-functions) | Functions which don't fit into any other category. | -| [JSON](/reference/functions/regular-functions/json-functions) | Functions for working with JSON. | -| [URL](/reference/functions/regular-functions/url-functions) | Functions for working with URLs. | -| [Encoding](/reference/functions/regular-functions/encoding-functions) | Functions for encoding data. | -| [ULID](/reference/functions/regular-functions/ulid-functions) | Functions for Working with ULID. | -| [Maps](/reference/functions/regular-functions/tuple-map-functions) | Functions for working with Maps. | -| [Dictionaries](/reference/functions/regular-functions/ext-dict-functions) | Functions for working with dictionaries. | -| [IN](/reference/functions/regular-functions/in-functions) | IN operators | -| [Files](/reference/functions/regular-functions/files) | The file function. | -| [Arrays](/reference/functions/regular-functions/array-functions) | Functions for working with arrays. | -| [String](/reference/functions/regular-functions/string-functions) | Functions for working with Strings. (Functions for searching in strings and for replacing in strings are described separately.) | -| [DateTime](/reference/functions/regular-functions/date-time-functions) | Functions for working with dates and times. | -| [Logical](/reference/functions/regular-functions/logical-functions) | Functions which perform logical operations on arguments of arbitrary numeric types. | -| [Rounding](/reference/functions/regular-functions/rounding-functions) | Functions for rounding. | -| [uniqTheta](/reference/functions/regular-functions/uniqtheta-functions) | uniqTheta functions work on two uniqThetaSketch objects to do set operation calculations such as ∪ / ∩ / ×. | -| [Distance](/reference/functions/regular-functions/distance-functions) | Functions for calculating vector norms, distances, normalization, and common operations in linear algebra and machine learning. | -| [Bitmap](/reference/functions/regular-functions/bitmap-functions) | Functions for bitmaps. | -| [Math](/reference/functions/regular-functions/math-functions) | Mathematical functions. | -| [Financial](/reference/functions/regular-functions/financial-functions) | Financial functions. | -| [Encryption](/reference/functions/regular-functions/encryption-functions) | Functions for encryption. | -| [Arithmetic](/reference/functions/regular-functions/arithmetic-functions) | Functions for performing arithmetic on `UInt`, `Int` or `Float` types. | -| [Embedded Dictionaries](/reference/functions/regular-functions/embedded-dict-functions) | Functions for Working with Embedded Dictionaries | -| [Type Conversion](/reference/functions/regular-functions/type-conversion-functions) | Functions for converting from one type to another type. | diff --git a/reference/functions/table-functions/index.mdx b/reference/functions/table-functions/index.mdx deleted file mode 100644 index 33d48ccb..00000000 --- a/reference/functions/table-functions/index.mdx +++ /dev/null @@ -1,149 +0,0 @@ ---- -description: 'Documentation for Table Functions' -sidebarTitle: 'Table Functions' -slug: /sql-reference/table-functions/ -title: 'Table Functions' -doc_type: 'reference' ---- - -Table functions are methods for constructing tables. - -{/*AUTOGENERATED_START*/} -| Page | Description | -|-----|-----| -| [azureBlobStorage](/reference/functions/table-functions/azureBlobStorage) | Provides a table-like interface to select/insert files in Azure Blob Storage. Similar to the s3 function. | -| [azureBlobStorageCluster](/reference/functions/table-functions/azureBlobStorageCluster) | Allows processing files from Azure Blob storage in parallel with many nodes in a specified cluster. | -| [clusterAllReplicas](/reference/functions/table-functions/cluster) | Allows accessing all shards (configured in the `remote_servers` section) of a cluster without creating a Distributed table. | -| [deltaLake](/reference/functions/table-functions/deltalake) | Provides a read-only table-like interface to the Delta Lake tables in Amazon S3. | -| [deltaLakeCluster](/reference/functions/table-functions/deltalakeCluster) | This is an extension to the deltaLake table function. | -| [dictionary](/reference/functions/table-functions/dictionary) | Displays the dictionary data as a ClickHouse table. Works the same way as the Dictionary engine. | -| [executable](/reference/functions/table-functions/executable) | The `executable` table function creates a table based on the output of a user-defined function (UDF) that you define in a script that outputs rows to **stdout**. | -| [file](/reference/functions/table-functions/file) | A table engine which provides a table-like interface to SELECT from and INSERT into files, similar to the s3 table function. Use `file()` when working with local files, and `s3()` when working with buckets in object storage such as S3, GCS, or MinIO. | -| [fileCluster](/reference/functions/table-functions/fileCluster) | Enables simultaneous processing of files matching a specified path across multiple nodes within a cluster. The initiator establishes connections to worker nodes, expands globs in the file path, and delegates file-reading tasks to worker nodes. Each worker node is querying the initiator for the next file to process, repeating until all tasks are completed (all files are read). | -| [filesystem](/reference/functions/table-functions/filesystem) | Provides access to the file system to list files and return their metadata and contents. | -| [format](/reference/functions/table-functions/format) | Parses data from arguments according to specified input format. If structure argument is not specified, it's extracted from the data. | -| [gcs](/reference/functions/table-functions/gcs) | Provides a table-like interface to `SELECT` and `INSERT` data from Google Cloud Storage. Requires the `Storage Object User` IAM role. | -| [fuzzQuery](/reference/functions/table-functions/fuzzQuery) | Perturbs the given query string with random variations. | -| [fuzzJSON](/reference/functions/table-functions/fuzzJSON) | Perturbs a JSON string with random variations. | -| [generateRandom](/reference/functions/table-functions/generate) | Generates random data with a given schema. Allows populating test tables with that data. Not all types are supported. | -| [mergeTreeTextIndex](/reference/functions/table-functions/mergeTreeTextIndex) | Represents the dictionary of a text index in a MergeTree table. It can be used for introspection. | -| [mergeTreeProjection](/reference/functions/table-functions/mergeTreeProjection) | Represents the contents of some projection in MergeTree tables. It can be used for introspection. | -| [mergeTreeIndex](/reference/functions/table-functions/mergeTreeIndex) | Represents the contents of index and marks files of MergeTree tables. It can be used for introspection. | -| [hdfs](/reference/functions/table-functions/hdfs) | Creates a table from files in HDFS. This table function is similar to the url and file table functions. | -| [hdfsCluster](/reference/functions/table-functions/hdfsCluster) | Allows processing files from HDFS in parallel from many nodes in a specified cluster. | -| [hudi](/reference/functions/table-functions/hudi) | Provides a read-only table-like interface to Apache Hudi tables in Amazon S3. | -| [ytsaurus](/reference/functions/table-functions/ytsaurus) | The table function allows to read data from the YTsaurus cluster. | -| [hudiCluster Table Function](/reference/functions/table-functions/hudiCluster) | An extension to the hudi table function. Allows processing files from Apache Hudi tables in Amazon S3 in parallel with many nodes in a specified cluster. | -| [iceberg](/reference/functions/table-functions/iceberg) | Provides a read-only table-like interface to Apache Iceberg tables in Amazon S3, Azure, HDFS or locally stored. | -| [paimon](/reference/functions/table-functions/paimon) | Provides a read-only table-like interface to Apache Paimon tables in Amazon S3, Azure, HDFS or locally stored. | -| [icebergCluster](/reference/functions/table-functions/icebergCluster) | An extension to the iceberg table function which allows processing files from Apache Iceberg in parallel from many nodes in a specified cluster. | -| [paimonCluster](/reference/functions/table-functions/paimonCluster) | An extension to the paimon table function which allows processing files from Apache Paimon in parallel from many nodes in a specified cluster. | -| [input](/reference/functions/table-functions/input) | Table function that allows effectively converting and inserting data sent to the server with a given structure to a table with another structure. | -| [jdbc](/reference/functions/table-functions/jdbc) | Returns a table that is connected via JDBC driver. | -| [merge](/reference/functions/table-functions/merge) | Creates a temporary Merge table. The structure will be derived from underlying tables by using a union of their columns and by deriving common types. | -| [mongodb](/reference/functions/table-functions/mongodb) | Allows `SELECT` queries to be performed on data that is stored on a remote MongoDB server. | -| [mysql](/reference/functions/table-functions/mysql) | Allows `SELECT` and `INSERT` queries to be performed on data that are stored on a remote MySQL server. | -| [null](/reference/functions/table-functions/null) | Creates a temporary table of the specified structure with the Null table engine. The function is used for the convenience of test writing and demonstrations. | -| [timeSeriesMetrics](/reference/functions/table-functions/timeSeriesMetrics) | timeSeriesMetrics returns the metrics table used by table `db_name.time_series_table` whose table engine is the TimeSeries engine. | -| [timeSeriesSelector](/reference/functions/table-functions/timeSeriesSelector) | Reads time series from a TimeSeries table filtered by a selector and with timestamps in a specified interval. | -| [timeSeriesTags](/reference/functions/table-functions/timeSeriesTags) | timeSeriesTags table function returns the tags table use by table `db_name.time_series_table` whose table engine is the TimeSeries engine. | -| [prometheusQueryRange](/reference/functions/table-functions/prometheusQueryRange) | Evaluates a prometheus query using data from a TimeSeries table. | -| [zeros](/reference/functions/table-functions/zeros) | Used for test purposes as the fastest method to generate many rows. Similar to the `system.zeros` and `system.zeros_mt` system tables. | -| [primes](/reference/functions/table-functions/primes) | Returns a table with a single `prime` column that contains prime numbers. | -| [timeSeriesData](/reference/functions/table-functions/timeSeriesData) | timeSeriesData returns the data table used by table `db_name.time_series_table` whose table engine is TimeSeries. | -| [numbers](/reference/functions/table-functions/numbers) | Returns a table with a single `number` column that contains a sequence of integers. | -| [prometheusQuery](/reference/functions/table-functions/prometheusQuery) | Evaluates a prometheus query using data from a TimeSeries table. | -| [generate_series (generateSeries)](/reference/functions/table-functions/generate_series) | Returns a table with the single `generate_series` column (UInt64) that contains integers from start to stop inclusively. | -| [odbc](/reference/functions/table-functions/odbc) | Returns the table that is connected via ODBC. | -| [postgresql](/reference/functions/table-functions/postgresql) | Allows `SELECT` and `INSERT` queries to be performed on data that is stored on a remote PostgreSQL server. | -| [redis](/reference/functions/table-functions/redis) | This table function allows integrating ClickHouse with Redis. | -| [remote, remoteSecure](/reference/functions/table-functions/remote) | Table function `remote` allows to access remote servers on-the-fly, i.e. without creating a distributed table. Table function `remoteSecure` is same as `remote` but over a secure connection. | -| [s3 Table Function](/reference/functions/table-functions/s3) | Provides a table-like interface to select/insert files in Amazon S3 and Google Cloud Storage. This table function is similar to the hdfs function, but provides S3-specific features. | -| [s3Cluster](/reference/functions/table-functions/s3Cluster) | An extension to the s3 table function, which allows processing files from Amazon S3 and Google Cloud Storage in parallel with many nodes in a specified cluster. | -| [sqlite](/reference/functions/table-functions/sqlite) | Allows to perform queries on data stored in a SQLite database. | -| [arrowFlight](/reference/functions/table-functions/arrowflight) | Allows to perform queries on data exposed via an Apache Arrow Flight server. | -| [url](/reference/functions/table-functions/url) | Creates a table from the `URL` with given `format` and `structure` | -| [urlCluster](/reference/functions/table-functions/urlCluster) | Allows processing files from URL in parallel from many nodes in a specified cluster. | -| [view](/reference/functions/table-functions/view) | Turns a subquery into a table. The function implements views. | -| [values](/reference/functions/table-functions/values) | creates a temporary storage which fills columns with values. | -| [loop](/reference/functions/table-functions/loop) | The loop table function in ClickHouse is used to return query results in an infinite loop. | -{/*AUTOGENERATED_END*/} - -## Usage {#usage} - -Table functions can be used in the [`FROM`](/reference/statements/select/from) -clause of a `SELECT` query. For example, you can `SELECT` data from a file on your local -machine using the `file` table function. - -```bash title="Query" -echo "1, 2, 3" > example.csv -``` -```text title="Response" -./clickhouse client -:) SELECT * FROM file('example.csv') -┌─c1─┬─c2─┬─c3─┐ -│ 1 │ 2 │ 3 │ -└────┴────┴────┘ -``` - -You can also use table functions for creating a temporary table that is available -only in the current query. For example: - -```sql title="Query" -SELECT * FROM generateSeries(1,5); -``` -```response title="Response" -┌─generate_series─┐ -│ 1 │ -│ 2 │ -│ 3 │ -│ 4 │ -│ 5 │ -└─────────────────┘ -``` - -The table is deleted when the query finishes. - -Table functions can be used as a way to create tables, using the following syntax: - -```sql title="Query" -CREATE TABLE [IF NOT EXISTS] [db.]table_name AS table_function() -``` - -For example: - -```sql title="Query" -CREATE TABLE series AS generateSeries(1, 5); -SELECT * FROM series; -``` - -```response title="Response" -┌─generate_series─┐ -│ 1 │ -│ 2 │ -│ 3 │ -│ 4 │ -│ 5 │ -└─────────────────┘ -``` - -Finally, table functions can be used to `INSERT` data into a table. For example, -we could write out the contents of the table we created in the previous example -to a file on disk using the `file` table function again: - -```sql title="Query" -INSERT INTO FUNCTION file('numbers.csv', 'CSV') SELECT * FROM series; -``` - -```bash title="Query" -cat numbers.csv -1 -2 -3 -4 -5 -``` - - -You can't use table functions if the [allow_ddl](/reference/settings/session-settings#allow_ddl) setting is disabled. - \ No newline at end of file diff --git a/reference/home.mdx b/reference/home.mdx deleted file mode 100644 index 52a201c1..00000000 --- a/reference/home.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -description: 'Documentation for ClickHouse SQL Reference' -keywords: ['clickhouse', 'docs', 'sql reference', 'sql statements', 'sql', 'syntax'] -slug: /sql-reference -title: 'SQL Reference' -doc_type: 'reference' ---- - -# ClickHouse SQL Reference - -ClickHouse supports a declarative query language based on SQL that is identical to the ANSI SQL standard in many cases. - -Supported queries include GROUP BY, ORDER BY, subqueries in FROM, JOIN clause, IN operator, window functions and scalar subqueries. - ---- - - - - A list of available SQL statements in ClickHouse - - - Engines determine where and how your data is stored - - \ No newline at end of file diff --git a/reference/index.mdx b/reference/index.mdx deleted file mode 100644 index 14b15114..00000000 --- a/reference/index.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -description: 'Table of Contents page for Engines' -slug: /engines -title: 'Engines' -doc_type: 'landing-page' ---- - -| Page | Description | -|----------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Database Engines](/reference/engines/database-engines) | Database engines in ClickHouse allow you to work with tables and determine how data is stored and managed. Learn more about the various database engines available in ClickHouse. | -| [Table Engines](/reference/engines/table-engines) | Table engines in ClickHouse are a fundamental concept that determines how data is stored, written, and read. Learn more about the various table engines available in ClickHouse. | diff --git a/reference/settings/beta-and-experimental-features.mdx b/reference/settings/beta-and-experimental-features.mdx deleted file mode 100644 index 4862ba14..00000000 --- a/reference/settings/beta-and-experimental-features.mdx +++ /dev/null @@ -1,184 +0,0 @@ ---- -sidebarTitle: 'Beta and experimental features' -title: 'Beta and experimental features' -description: 'ClickHouse has beta and experimental features. This documentation page discusses definition.' -slug: /beta-and-experimental-features -doc_type: 'reference' ---- - -Because ClickHouse is open-source, it receives many contributions not only from ClickHouse employees but also from the community. These contributions are often developed at different speeds; certain features may require a lengthy prototyping phase or more time for sufficient community feedback and iteration to be considered generally available (GA). - -Due to the uncertainty of when features are classified as generally available, we delineate features into two categories: **Beta** and **Experimental**. - -**Beta** features are officially supported by the ClickHouse team. **Experimental** features are early prototypes driven by either the ClickHouse team or the community and aren't officially supported. - -The sections below explicitly describe the properties of **Beta** and **Experimental** features: - -## Beta features {#beta-features} - -- Under active development to make them generally available (GA) -- Main known issues can be tracked on GitHub -- Functionality may change in the future -- Possibly enabled in ClickHouse Cloud -- The ClickHouse team supports beta features - -You can find below the features considered Beta in ClickHouse Cloud and are available for use in your ClickHouse Cloud Services. - -Note: please be sure to be using a current version of the ClickHouse [compatibility](/reference/settings/session-settings#compatibility) setting to be using a recently introduced feature. - -## Experimental features {#experimental-features} - -- May never become GA -- May be removed -- Can introduce breaking changes -- Functionality may change in the feature -- Need to be deliberately enabled -- The ClickHouse team **doesn't support** experimental features -- May lack important functionality and documentation -- Can't be enabled in the cloud - -Please note: no additional experimental features are allowed to be enabled in ClickHouse Cloud other than those listed above as Beta. - -{/* The inner content of the tags below are replaced at build time with a table generated from source - Please don't modify or remove the tags -*/} - -{/*AUTOGENERATED_START*/} -## Beta settings {#beta-settings} - -| Name | Default | -|------|--------| -| [geotoh3_argument_order](/reference/settings/session-settings#geotoh3_argument_order) | `lat_lon` | -| [enable_lightweight_update](/reference/settings/session-settings#enable_lightweight_update) | `1` | -| [allow_experimental_correlated_subqueries](/reference/settings/session-settings#allow_experimental_correlated_subqueries) | `1` | -| [parallel_replicas_count](/reference/settings/session-settings#parallel_replicas_count) | `0` | -| [parallel_replica_offset](/reference/settings/session-settings#parallel_replica_offset) | `0` | -| [parallel_replicas_custom_key](/reference/settings/session-settings#parallel_replicas_custom_key) | `` | -| [parallel_replicas_custom_key_range_lower](/reference/settings/session-settings#parallel_replicas_custom_key_range_lower) | `0` | -| [parallel_replicas_custom_key_range_upper](/reference/settings/session-settings#parallel_replicas_custom_key_range_upper) | `0` | -| [parallel_replicas_filter_pushdown](/reference/settings/session-settings#parallel_replicas_filter_pushdown) | `0` | -| [parallel_replicas_allow_view_over_mergetree](/reference/settings/session-settings#parallel_replicas_allow_view_over_mergetree) | `0` | -| [allow_experimental_database_iceberg](/reference/settings/session-settings#allow_experimental_database_iceberg) | `0` | -| [allow_experimental_database_unity_catalog](/reference/settings/session-settings#allow_experimental_database_unity_catalog) | `0` | -| [allow_experimental_database_glue_catalog](/reference/settings/session-settings#allow_experimental_database_glue_catalog) | `0` | -| [session_timezone](/reference/settings/session-settings#session_timezone) | `` | -| [low_priority_query_wait_time_ms](/reference/settings/session-settings#low_priority_query_wait_time_ms) | `1000` | -| [allow_experimental_delta_kernel_rs](/reference/settings/session-settings#allow_experimental_delta_kernel_rs) | `1` | -| [allow_insert_into_iceberg](/reference/settings/session-settings#allow_insert_into_iceberg) | `0` | -| [enable_join_runtime_filters](/reference/settings/session-settings#enable_join_runtime_filters) | `1` | - -## Experimental settings {#experimental-settings} - -| Name | Default | -|------|--------| -| [allow_commit_order_projection](/reference/settings/merge-tree-settings#allow_commit_order_projection) | `0` | -| [allow_experimental_replacing_merge_with_cleanup](/reference/settings/merge-tree-settings#allow_experimental_replacing_merge_with_cleanup) | `0` | -| [allow_experimental_reverse_key](/reference/settings/merge-tree-settings#allow_experimental_reverse_key) | `0` | -| [allow_remote_fs_zero_copy_replication](/reference/settings/merge-tree-settings#allow_remote_fs_zero_copy_replication) | `0` | -| [distributed_index_analysis_min_indexes_bytes_to_activate](/reference/settings/merge-tree-settings#distributed_index_analysis_min_indexes_bytes_to_activate) | `1073741824` | -| [distributed_index_analysis_min_parts_to_activate](/reference/settings/merge-tree-settings#distributed_index_analysis_min_parts_to_activate) | `10` | -| [enable_replacing_merge_with_cleanup_for_min_age_to_force_merge](/reference/settings/merge-tree-settings#enable_replacing_merge_with_cleanup_for_min_age_to_force_merge) | `0` | -| [force_read_through_cache_for_merges](/reference/settings/merge-tree-settings#force_read_through_cache_for_merges) | `0` | -| [merge_selector_algorithm](/reference/settings/merge-tree-settings#merge_selector_algorithm) | `Simple` | -| [merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once](/reference/settings/merge-tree-settings#merge_selector_enable_heuristic_to_lower_max_parts_to_merge_at_once) | `0` | -| [merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent](/reference/settings/merge-tree-settings#merge_selector_heuristic_to_lower_max_parts_to_merge_at_once_exponent) | `5` | -| [notify_newest_block_number](/reference/settings/merge-tree-settings#notify_newest_block_number) | `0` | -| [part_moves_between_shards_delay_seconds](/reference/settings/merge-tree-settings#part_moves_between_shards_delay_seconds) | `30` | -| [part_moves_between_shards_enable](/reference/settings/merge-tree-settings#part_moves_between_shards_enable) | `0` | -| [remote_fs_zero_copy_path_compatible_mode](/reference/settings/merge-tree-settings#remote_fs_zero_copy_path_compatible_mode) | `0` | -| [remote_fs_zero_copy_zookeeper_path](/reference/settings/merge-tree-settings#remote_fs_zero_copy_zookeeper_path) | `/clickhouse/zero_copy` | -| [remove_rolled_back_parts_immediately](/reference/settings/merge-tree-settings#remove_rolled_back_parts_immediately) | `1` | -| [shared_merge_tree_virtual_parts_discovery_batch](/reference/settings/merge-tree-settings#shared_merge_tree_virtual_parts_discovery_batch) | `1` | -| [query_plan_optimize_join_order_randomize](/reference/settings/session-settings#query_plan_optimize_join_order_randomize) | `0` | -| [enable_join_transitive_predicates](/reference/settings/session-settings#enable_join_transitive_predicates) | `0` | -| [ast_fuzzer_runs](/reference/settings/session-settings#ast_fuzzer_runs) | `0` | -| [ast_fuzzer_any_query](/reference/settings/session-settings#ast_fuzzer_any_query) | `0` | -| [allow_fuzz_query_functions](/reference/settings/session-settings#allow_fuzz_query_functions) | `0` | -| [enable_materialized_cte](/reference/settings/session-settings#enable_materialized_cte) | `0` | -| [analyzer_inline_views](/reference/settings/session-settings#analyzer_inline_views) | `0` | -| [allow_experimental_kafka_offsets_storage_in_keeper](/reference/settings/session-settings#allow_experimental_kafka_offsets_storage_in_keeper) | `0` | -| [allow_experimental_delta_lake_writes](/reference/settings/session-settings#allow_experimental_delta_lake_writes) | `0` | -| [automatic_parallel_replicas_mode](/reference/settings/session-settings#automatic_parallel_replicas_mode) | `0` | -| [automatic_parallel_replicas_min_bytes_per_replica](/reference/settings/session-settings#automatic_parallel_replicas_min_bytes_per_replica) | `1048576` | -| [distributed_index_analysis](/reference/settings/session-settings#distributed_index_analysis) | `0` | -| [allow_experimental_materialized_postgresql_table](/reference/settings/session-settings#allow_experimental_materialized_postgresql_table) | `0` | -| [allow_experimental_funnel_functions](/reference/settings/session-settings#allow_experimental_funnel_functions) | `0` | -| [allow_experimental_nlp_functions](/reference/settings/session-settings#allow_experimental_nlp_functions) | `0` | -| [allow_experimental_hash_functions](/reference/settings/session-settings#allow_experimental_hash_functions) | `0` | -| [allow_experimental_time_series_table](/reference/settings/session-settings#allow_experimental_time_series_table) | `0` | -| [allow_experimental_unique_key](/reference/settings/session-settings#allow_experimental_unique_key) | `0` | -| [allow_experimental_codecs](/reference/settings/session-settings#allow_experimental_codecs) | `0` | -| [throw_on_unsupported_query_inside_transaction](/reference/settings/session-settings#throw_on_unsupported_query_inside_transaction) | `1` | -| [wait_changes_become_visible_after_commit_mode](/reference/settings/session-settings#wait_changes_become_visible_after_commit_mode) | `wait_unknown` | -| [implicit_transaction](/reference/settings/session-settings#implicit_transaction) | `0` | -| [grace_hash_join_initial_buckets](/reference/settings/session-settings#grace_hash_join_initial_buckets) | `1` | -| [grace_hash_join_max_buckets](/reference/settings/session-settings#grace_hash_join_max_buckets) | `1024` | -| [join_to_sort_minimum_perkey_rows](/reference/settings/session-settings#join_to_sort_minimum_perkey_rows) | `40` | -| [join_to_sort_maximum_table_rows](/reference/settings/session-settings#join_to_sort_maximum_table_rows) | `10000` | -| [allow_experimental_join_right_table_sorting](/reference/settings/session-settings#allow_experimental_join_right_table_sorting) | `0` | -| [allow_experimental_json_lazy_type_hints](/reference/settings/session-settings#allow_experimental_json_lazy_type_hints) | `0` | -| [allow_experimental_window_view](/reference/settings/session-settings#allow_experimental_window_view) | `0` | -| [window_view_clean_interval](/reference/settings/session-settings#window_view_clean_interval) | `60` | -| [window_view_heartbeat_interval](/reference/settings/session-settings#window_view_heartbeat_interval) | `15` | -| [wait_for_window_view_fire_signal_timeout](/reference/settings/session-settings#wait_for_window_view_fire_signal_timeout) | `10` | -| [stop_refreshable_materialized_views_on_startup](/reference/settings/session-settings#stop_refreshable_materialized_views_on_startup) | `0` | -| [allow_experimental_database_materialized_postgresql](/reference/settings/session-settings#allow_experimental_database_materialized_postgresql) | `0` | -| [allow_experimental_nullable_tuple_type](/reference/settings/session-settings#allow_experimental_nullable_tuple_type) | `0` | -| [allow_experimental_query_deduplication](/reference/settings/session-settings#allow_experimental_query_deduplication) | `0` | -| [allow_experimental_database_hms_catalog](/reference/settings/session-settings#allow_experimental_database_hms_catalog) | `0` | -| [allow_experimental_kusto_dialect](/reference/settings/session-settings#allow_experimental_kusto_dialect) | `0` | -| [allow_experimental_prql_dialect](/reference/settings/session-settings#allow_experimental_prql_dialect) | `0` | -| [allow_experimental_polyglot_dialect](/reference/settings/session-settings#allow_experimental_polyglot_dialect) | `0` | -| [polyglot_dialect](/reference/settings/session-settings#polyglot_dialect) | `` | -| [enable_adaptive_memory_spill_scheduler](/reference/settings/session-settings#enable_adaptive_memory_spill_scheduler) | `0` | -| [allow_experimental_cleanup_old_data_files_compaction](/reference/settings/session-settings#allow_experimental_cleanup_old_data_files_compaction) | `0` | -| [allow_experimental_iceberg_compaction](/reference/settings/session-settings#allow_experimental_iceberg_compaction) | `0` | -| [allow_iceberg_remove_orphan_files](/reference/settings/session-settings#allow_iceberg_remove_orphan_files) | `0` | -| [iceberg_orphan_files_older_than_seconds](/reference/settings/session-settings#iceberg_orphan_files_older_than_seconds) | `259200` | -| [allow_experimental_expire_snapshots](/reference/settings/session-settings#allow_experimental_expire_snapshots) | `0` | -| [write_full_path_in_iceberg_metadata](/reference/settings/session-settings#write_full_path_in_iceberg_metadata) | `0` | -| [iceberg_metadata_compression_method](/reference/settings/session-settings#iceberg_metadata_compression_method) | `` | -| [make_distributed_plan](/reference/settings/session-settings#make_distributed_plan) | `0` | -| [distributed_plan_execute_locally](/reference/settings/session-settings#distributed_plan_execute_locally) | `0` | -| [distributed_plan_default_shuffle_join_bucket_count](/reference/settings/session-settings#distributed_plan_default_shuffle_join_bucket_count) | `8` | -| [distributed_plan_default_reader_bucket_count](/reference/settings/session-settings#distributed_plan_default_reader_bucket_count) | `8` | -| [distributed_plan_force_exchange_kind](/reference/settings/session-settings#distributed_plan_force_exchange_kind) | `` | -| [distributed_plan_max_rows_to_broadcast](/reference/settings/session-settings#distributed_plan_max_rows_to_broadcast) | `20000` | -| [distributed_plan_prefer_replicas_over_workers](/reference/settings/session-settings#distributed_plan_prefer_replicas_over_workers) | `0` | -| [allow_experimental_ytsaurus_table_engine](/reference/settings/session-settings#allow_experimental_ytsaurus_table_engine) | `0` | -| [allow_experimental_ytsaurus_table_function](/reference/settings/session-settings#allow_experimental_ytsaurus_table_function) | `0` | -| [allow_experimental_ytsaurus_dictionary_source](/reference/settings/session-settings#allow_experimental_ytsaurus_dictionary_source) | `0` | -| [distributed_plan_force_shuffle_aggregation](/reference/settings/session-settings#distributed_plan_force_shuffle_aggregation) | `0` | -| [join_runtime_filter_exact_values_limit](/reference/settings/session-settings#join_runtime_filter_exact_values_limit) | `10000` | -| [join_runtime_bloom_filter_bytes](/reference/settings/session-settings#join_runtime_bloom_filter_bytes) | `524288` | -| [join_runtime_bloom_filter_hash_functions](/reference/settings/session-settings#join_runtime_bloom_filter_hash_functions) | `3` | -| [join_runtime_filter_pass_ratio_threshold_for_disabling](/reference/settings/session-settings#join_runtime_filter_pass_ratio_threshold_for_disabling) | `0.7` | -| [join_runtime_filter_blocks_to_skip_before_reenabling](/reference/settings/session-settings#join_runtime_filter_blocks_to_skip_before_reenabling) | `30` | -| [join_runtime_bloom_filter_max_ratio_of_set_bits](/reference/settings/session-settings#join_runtime_bloom_filter_max_ratio_of_set_bits) | `0.7` | -| [rewrite_in_to_join](/reference/settings/session-settings#rewrite_in_to_join) | `0` | -| [allow_experimental_time_series_aggregate_functions](/reference/settings/session-settings#allow_experimental_time_series_aggregate_functions) | `0` | -| [promql_database](/reference/settings/session-settings#promql_database) | `` | -| [promql_table](/reference/settings/session-settings#promql_table) | `` | -| [promql_evaluation_time](/reference/settings/session-settings#promql_evaluation_time) | `auto` | -| [allow_experimental_alias_table_engine](/reference/settings/session-settings#allow_experimental_alias_table_engine) | `0` | -| [allow_experimental_paimon_storage_engine](/reference/settings/session-settings) | `0` | -| [paimon_target_snapshot_id](/reference/settings/session-settings) | `-1` | -| [max_consume_snapshots](/reference/settings/session-settings) | `0` | -| [use_paimon_partition_pruning](/reference/settings/session-settings#use_paimon_partition_pruning) | `0` | -| [allow_experimental_object_storage_queue_hive_partitioning](/reference/settings/session-settings#allow_experimental_object_storage_queue_hive_partitioning) | `0` | -| [query_plan_optimize_join_order_algorithm](/reference/settings/session-settings#query_plan_optimize_join_order_algorithm) | `greedy` | -| [allow_experimental_database_paimon_rest_catalog](/reference/settings/session-settings#allow_experimental_database_paimon_rest_catalog) | `0` | -| [webassembly_udf_max_fuel](/reference/settings/session-settings#webassembly_udf_max_fuel) | `100000` | -| [webassembly_udf_max_memory](/reference/settings/session-settings#webassembly_udf_max_memory) | `134217728` | -| [webassembly_udf_max_input_block_size](/reference/settings/session-settings#webassembly_udf_max_input_block_size) | `0` | -| [webassembly_udf_max_instances](/reference/settings/session-settings#webassembly_udf_max_instances) | `32` | -| [allow_experimental_ai_functions](/reference/settings/session-settings#allow_experimental_ai_functions) | `0` | -| [ai_function_request_timeout_sec](/reference/settings/session-settings#ai_function_request_timeout_sec) | `60` | -| [ai_function_max_retries](/reference/settings/session-settings#ai_function_max_retries) | `0` | -| [ai_function_retry_initial_delay_ms](/reference/settings/session-settings#ai_function_retry_initial_delay_ms) | `1000` | -| [ai_function_throw_on_error](/reference/settings/session-settings#ai_function_throw_on_error) | `1` | -| [ai_function_max_input_tokens_per_query](/reference/settings/session-settings#ai_function_max_input_tokens_per_query) | `1000000` | -| [ai_function_max_output_tokens_per_query](/reference/settings/session-settings#ai_function_max_output_tokens_per_query) | `500000` | -| [ai_function_max_api_calls_per_query](/reference/settings/session-settings#ai_function_max_api_calls_per_query) | `0` | -| [ai_function_throw_on_quota_exceeded](/reference/settings/session-settings#ai_function_throw_on_quota_exceeded) | `1` | -{/*AUTOGENERATED_END*/} diff --git a/reference/settings/index.mdx b/reference/settings/index.mdx deleted file mode 100644 index b8657cb6..00000000 --- a/reference/settings/index.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -description: 'Table of Contents page for Settings' -slug: /operations/settings/ -title: 'Settings' -doc_type: 'landing-page' ---- - -{/* The table of contents table for this page is automatically generated by -https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh -from the YAML front matter fields: slug, description, title. - -If you've spotted an error, please edit the YML frontmatter of the pages themselves. -*/} - -{/*AUTOGENERATED_START*/} -| Page | Description | -|-----|-----| -| [Settings Overview](/concepts/features/configuration/settings/overview) | Overview page for settings. | -| [Permissions for queries](/concepts/features/configuration/settings/permissions-for-queries) | Settings for query permissions. | -| [Restrictions on query complexity](/concepts/features/configuration/settings/query-complexity) | Settings which restrict query complexity. | -| [Settings profiles](/concepts/features/configuration/settings/settings-profiles) | A collection of settings grouped under the same name. | -| [Constraints on settings](/concepts/features/configuration/settings/constraints-on-settings) | Constraints on settings can be defined in the `profiles` section of the `user.xml` configuration file and prohibit users from changing some of the settings with the `SET` query. | -| [Users and roles settings](/concepts/features/configuration/settings/settings-users) | Settings for configuring users and roles. | -| [Composable protocols](/concepts/features/configuration/server-config/composable-protocols) | Composable protocols allows more flexible configuration of TCP access to the ClickHouse server. | -| [Format Settings](/reference/settings/formats) | Settings which control input and output formats. | -| [Memory overcommit](/concepts/features/configuration/settings/memory-overcommit) | An experimental technique intended to allow to set more flexible memory limits for queries. | -| [MergeTree tables settings](/reference/settings/merge-tree-settings) | Settings for MergeTree which are in `system.merge_tree_settings` | -| [Query-level Session Settings](/concepts/features/configuration/settings/settings-query-level) | Settings at the query-level | -| [Server overload](/concepts/features/configuration/settings/server-overload) | Controlling behavior on server CPU overload. | -| [Session Settings](/reference/settings/session-settings) | Settings which are found in the ``system.settings`` table. | -| [TCP connection limits](/concepts/features/configuration/settings/tcp-connection-limits) | TCP connection limits. | -{/*AUTOGENERATED_END*/} diff --git a/reference/statements/alter/apply-deleted-mask.mdx b/reference/statements/alter/apply-deleted-mask.mdx deleted file mode 100644 index 63705178..00000000 --- a/reference/statements/alter/apply-deleted-mask.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -description: 'Documentation for Apply mask of deleted rows' -sidebarTitle: 'APPLY DELETED MASK' -slug: /sql-reference/statements/alter/apply-deleted-mask -title: 'Apply mask of deleted rows' -doc_type: 'reference' ---- - -```sql -ALTER TABLE [db].name [ON CLUSTER cluster] APPLY DELETED MASK [IN PARTITION partition_id] -``` - -The command applies mask created by [lightweight delete](/reference/statements/delete) and forcefully removes rows marked as deleted from disk. This command is a heavyweight mutation, and it semantically equals to query ```ALTER TABLE [db].name DELETE WHERE _row_exists = 0```. - - -It only works for tables in the [`MergeTree`](/reference/engines/table-engines/mergetree-family/mergetree) family (including [replicated](/reference/engines/table-engines/mergetree-family/replication) tables). - - -**See also** - -- [Lightweight deletes](/reference/statements/delete) -- [Heavyweight deletes](/reference/statements/alter/delete) diff --git a/reference/statements/create/dictionary/layouts/overview.mdx b/reference/statements/create/dictionary/layouts/overview.mdx deleted file mode 100644 index c515d7d4..00000000 --- a/reference/statements/create/dictionary/layouts/overview.mdx +++ /dev/null @@ -1,157 +0,0 @@ ---- -description: 'Dictionary layout types for storing dictionaries in memory' -sidebarTitle: 'Overview' -slug: /sql-reference/statements/create/dictionary/layouts -title: 'Dictionary layouts' -doc_type: 'reference' ---- - -import CloudDetails from '/snippets/_snippet_dictionary_in_cloud.mdx'; - -## Dictionary layout types {#storing-dictionaries-in-memory} - -There are a variety of ways to store dictionaries in memory, each with CPU and RAM-usage trade-offs. - -| Layout | Description | -|---|---| -| [flat](/reference/statements/create/dictionary/layouts/flat) | Stores data in flat arrays indexed by key. Fastest layout, but keys must be `UInt64` and bounded by `max_array_size`. | -| [hashed](/reference/statements/create/dictionary/layouts/hashed) | Stores data in a hash table. No key size limit, supports any number of elements. | -| [sparse_hashed](/reference/statements/create/dictionary/layouts/hashed#sparse_hashed) | Like `hashed`, but trades CPU for lower memory usage. | -| [complex_key_hashed](/reference/statements/create/dictionary/layouts/hashed#complex_key_hashed) | Like `hashed`, for composite keys. | -| [complex_key_sparse_hashed](/reference/statements/create/dictionary/layouts/hashed#complex_key_sparse_hashed) | Like `sparse_hashed`, for composite keys. | -| [hashed_array](/reference/statements/create/dictionary/layouts/hashed-array) | Attributes stored in arrays with a hash table mapping keys to array indices. Memory-efficient for many attributes. | -| [complex_key_hashed_array](/reference/statements/create/dictionary/layouts/hashed-array#complex_key_hashed_array) | Like `hashed_array`, for composite keys. | -| [range_hashed](/reference/statements/create/dictionary/layouts/range-hashed) | Hash table with ordered ranges. Supports lookups by key + date/time range. | -| [complex_key_range_hashed](/reference/statements/create/dictionary/layouts/range-hashed#complex_key_range_hashed) | Like `range_hashed`, for composite keys. | -| [cache](/reference/statements/create/dictionary/layouts/cache) | Fixed-size in-memory cache. Only frequently accessed keys are stored. | -| [complex_key_cache](/reference/statements/create/dictionary/layouts/hashed#complex_key_hashed) | Like `cache`, for composite keys. | -| [ssd_cache](/reference/statements/create/dictionary/layouts/ssd-cache) | Like `cache`, but stores data on SSD with an in-memory index. | -| [complex_key_ssd_cache](/reference/statements/create/dictionary/layouts/ssd-cache#complex_key_ssd_cache) | Like `ssd_cache`, for composite keys. | -| [direct](/reference/statements/create/dictionary/layouts/direct) | No in-memory storage — queries the source directly for each request. | -| [complex_key_direct](/reference/statements/create/dictionary/layouts/direct#complex_key_direct) | Like `direct`, for composite keys. | -| [ip_trie](/reference/statements/create/dictionary/layouts/ip-trie) | Trie structure for fast IP prefix lookups (CIDR-based). | - - -**Recommended layouts** - -[flat](/reference/statements/create/dictionary/layouts/flat), [hashed](/reference/statements/create/dictionary/layouts/hashed), and [complex_key_hashed](/reference/statements/create/dictionary/layouts/hashed#complex_key_hashed) provide the best query performance. -Caching layouts are not recommended due to potentially poor performance and difficulty tuning parameters — see [cache](/reference/statements/create/dictionary/layouts/cache) for details. - - -## Specify dictionary layout {#specify-dictionary-layout} - - - -You can configure a dictionary layout with the `LAYOUT` clause (for DDL) or the `layout` setting for configuration file definitions. - - - - -```sql -CREATE DICTIONARY (...) -... -LAYOUT(LAYOUT_TYPE(param value)) -- layout settings -... -``` - - - - -```xml - - - ... - - - - - - ... - - -``` - - - -
    - -See also [CREATE DICTIONARY](/reference/statements/create/dictionary) for the full DDL syntax. - -Dictionaries without word `complex-key*` in a layout have a key with [UInt64](/reference/data-types/int-uint) type, `complex-key*` dictionaries have a composite key (complex, with arbitrary types). - -**Numeric key example** (column key_column has [UInt64](/reference/data-types/int-uint) type): - - - - -```sql -CREATE DICTIONARY dict_name ( - key_column UInt64, - ... -) -PRIMARY KEY key_column -``` - - - - -```xml - - - key_column - - ... - -``` - - - -
    - -**Composite key example** (key has one element with [String](/reference/data-types/string) type): - - - - -```sql -CREATE DICTIONARY dict_name ( - country_code String, - ... -) -PRIMARY KEY country_code -``` - - - - -```xml - - - - country_code - String - - - ... - -``` - - - - -## Improve dictionary performance {#improve-performance} - -There are several ways to improve dictionary performance: - -- Call the function for working with the dictionary after `GROUP BY`. -- Mark attributes to extract as injective. - An attribute is called injective if different keys correspond to different attribute values. - So when `GROUP BY` uses a function that fetches an attribute value by the key, this function is automatically taken out of `GROUP BY`. - -ClickHouse generates an exception for errors with dictionaries. -Examples of errors can be: - -- The dictionary being accessed could not be loaded. -- Error querying a `cached` dictionary. - -You can view the list of dictionaries and their statuses in the [system.dictionaries](/reference/system-tables/dictionaries) table. diff --git a/reference/statements/create/index.mdx b/reference/statements/create/index.mdx deleted file mode 100644 index ba1af8ca..00000000 --- a/reference/statements/create/index.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -description: 'Documentation for CREATE Queries' -sidebarTitle: 'CREATE' -slug: /sql-reference/statements/create/ -title: 'CREATE Queries' -doc_type: 'reference' ---- - -CREATE queries create (for example) new [databases](/reference/statements/create/database), [tables](/reference/statements/create/table) and [views](/reference/statements/create/view). diff --git a/reference/statements/index.mdx b/reference/statements/index.mdx deleted file mode 100644 index 87fe2351..00000000 --- a/reference/statements/index.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -description: 'Documentation for ClickHouse SQL Statements' -sidebarTitle: 'List of statements' -slug: /sql-reference/statements/ -title: 'ClickHouse SQL Statements' -doc_type: 'reference' ---- - -Users interact with ClickHouse using SQL statements. ClickHouse supports common SQL statements like [SELECT](/reference/statements/select) and [CREATE](/reference/statements/create), but it also provides specialized statements like [KILL](/reference/statements/kill) and [OPTIMIZE](/reference/statements/optimize). diff --git a/reference/system-tables/asynchronous_insert_log.mdx b/reference/system-tables/asynchronous_insert_log.mdx deleted file mode 100644 index 2ac669e0..00000000 --- a/reference/system-tables/asynchronous_insert_log.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -description: 'System table containing information about async inserts. Each entry - represents an insert query buffered into an async insert query.' -keywords: ['system table', 'asynchronous_insert_log'] -slug: /operations/system-tables/asynchronous_insert_log -title: 'system.asynchronous_insert_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about async inserts. Each entry represents an insert query buffered into an async insert query. - -To start logging configure parameters in the [asynchronous_insert_log](/reference/settings/server-settings/settings#asynchronous_insert_log) section. - -The flushing period of data is set in `flush_interval_milliseconds` parameter of the [asynchronous_insert_log](/reference/settings/server-settings/settings#asynchronous_insert_log) server settings section. To force flushing, use the [SYSTEM FLUSH LOGS](/reference/statements/system#flush-logs) query. - -ClickHouse does not delete data from the table automatically. See [Introduction](/reference/system-tables/overview#system-tables-introduction) for more details. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — The date when the async insert happened. -- `event_time` ([DateTime](/reference/data-types/datetime)) — The date and time when the async insert finished execution. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — The date and time when the async insert finished execution with microseconds precision. -- `query` ([String](/reference/data-types/string)) — Query string. -- `database` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — The name of the database the table is in. -- `table` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Table name. -- `format` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Format name. -- `query_id` ([String](/reference/data-types/string)) — ID of the initial query. -- `bytes` ([UInt64](/reference/data-types/int-uint)) — Number of inserted bytes. -- `rows` ([UInt64](/reference/data-types/int-uint)) — Number of inserted rows. -- `exception` ([String](/reference/data-types/string)) — Exception message. -- `status` ([Enum8('Ok' = 0, 'ParsingError' = 1, 'FlushError' = 2)](/reference/data-types/enum)) — Status of the insert. Values: 'Ok' = 0 — Successful insert, 'ParsingError' = 1 — Exception when parsing the data, 'FlushError' = 2 — Exception when flushing the data. -- `data_kind` ([Enum8('Parsed' = 0, 'Preprocessed' = 1)](/reference/data-types/enum)) — The status of the data. Value: 'Parsed' and 'Preprocessed'. -- `flush_time` ([DateTime](/reference/data-types/datetime)) — The date and time when the flush happened. -- `flush_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — The date and time when the flush happened with microseconds precision. -- `flush_query_id` ([String](/reference/data-types/string)) — ID of the flush query. -- `timeout_milliseconds` ([UInt64](/reference/data-types/int-uint)) — The adaptive timeout calculated for this entry. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql title="Query" -SELECT * FROM system.asynchronous_insert_log LIMIT 1 \G; -``` - -```text title="Response" -hostname: clickhouse.eu-central1.internal -event_date: 2023-06-08 -event_time: 2023-06-08 10:08:53 -event_time_microseconds: 2023-06-08 10:08:53.199516 -query: INSERT INTO public.data_guess (user_id, datasource_id, timestamp, path, type, num, str) FORMAT CSV -database: public -table: data_guess -format: CSV -query_id: b46cd4c4-0269-4d0b-99f5-d27668c6102e -bytes: 133223 -exception: -status: Ok -flush_time: 2023-06-08 10:08:55 -flush_time_microseconds: 2023-06-08 10:08:55.139676 -flush_query_id: cd2c1e43-83f5-49dc-92e4-2fbc7f8d3716 -``` - -## See Also {#see-also} - -- [system.query_log](/reference/system-tables/query_log) — Description of the `query_log` system table which contains common information about queries execution. -- [system.asynchronous_inserts](/reference/system-tables/asynchronous_inserts) — This table contains information about pending asynchronous inserts in queue. diff --git a/reference/system-tables/asynchronous_inserts.mdx b/reference/system-tables/asynchronous_inserts.mdx deleted file mode 100644 index 7f17dc96..00000000 --- a/reference/system-tables/asynchronous_inserts.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -description: 'System table containing information about pending asynchronous inserts - in queue.' -keywords: ['system table', 'asynchronous_inserts'] -slug: /operations/system-tables/asynchronous_inserts -title: 'system.asynchronous_inserts' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about pending asynchronous inserts in queue. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `query` ([String](/reference/data-types)) — Query text. -- `database` ([String](/reference/data-types)) — Database name. -- `table` ([String](/reference/data-types)) — Table name. -- `format` ([String](/reference/data-types)) — Format name. -- `first_update` ([DateTime64(6)](/reference/data-types)) — First insert time with microseconds resolution. -- `total_bytes` ([UInt64](/reference/data-types)) — Total number of bytes waiting in the queue. -- `entries.query_id` ([Array(String)](/reference/data-types)) — Array of query ids of the inserts waiting in the queue. -- `entries.bytes` ([Array(UInt64)](/reference/data-types)) — Array of bytes of each insert query waiting in the queue. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql title="Query" -SELECT * FROM system.asynchronous_inserts LIMIT 1 \G; -``` - -```text title="Response" -Row 1: -────── -query: INSERT INTO public.data_guess (user_id, datasource_id, timestamp, path, type, num, str) FORMAT CSV -database: public -table: data_guess -format: CSV -first_update: 2023-06-08 10:08:54.199606 -total_bytes: 133223 -entries.query_id: ['b46cd4c4-0269-4d0b-99f5-d27668c6102e'] -entries.bytes: [133223] -``` - -## See also {#see-also} - -- [system.query_log](/reference/system-tables/query_log) — Description of the `query_log` system table which contains common information about queries execution. -- [system.asynchronous_insert_log](/reference/system-tables/asynchronous_insert_log) — This table contains information about async inserts performed. diff --git a/reference/system-tables/azure_queue_log.mdx b/reference/system-tables/azure_queue_log.mdx deleted file mode 100644 index 3a04fd7e..00000000 --- a/reference/system-tables/azure_queue_log.mdx +++ /dev/null @@ -1,34 +0,0 @@ ---- -description: 'Contains log entries with information about files processed by the AzureQueue engine. - -It is safe to truncate or drop this table at any time.' -keywords: ['system table', 'azure_queue_log'] -slug: /operations/system-tables/azure_queue_log -title: 'system.azure_queue_log' -doc_type: 'reference' ---- - -Contains log entries with information about files processed by the AzureQueue engine. - -It is safe to truncate or drop this table at any time. - -Columns: - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname -- `event_date` ([Date](/reference/data-types/date)) — Event date of writing this log row -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time of writing this log row -- `database` ([String](/reference/data-types/string)) — The name of the database where the queue table (`S3Queue` or `AzureQueue`) lives. -- `table` ([String](/reference/data-types/string)) — The name of the queue table (`S3Queue` or `AzureQueue`). -- `uuid` ([String](/reference/data-types/string)) — The UUID of the queue table (`S3Queue` or `AzureQueue`). -- `file_name` ([String](/reference/data-types/string)) — File name of the processing file. -- `rows_processed` ([UInt64](/reference/data-types/int-uint)) — Number of processed rows. -- `status` ([Enum8('Processed' = 0, 'Failed' = 1)](/reference/data-types/enum)) — Status of the processing file. -- `processing_start_time` ([Nullable(DateTime)](/reference/data-types/nullable)) — Time of the start of processing the file. -- `processing_end_time` ([Nullable(DateTime)](/reference/data-types/nullable)) — Time of the end of processing the file. -- `exception` ([String](/reference/data-types/string)) — Exception message if happened. -- `commit_id` ([UInt64](/reference/data-types/int-uint)) — Id of the transaction in which this file was committed. -- `commit_time` ([DateTime](/reference/data-types/datetime)) — Time of committing file in keeper (as either failed or processed). -- `transaction_start_time` ([DateTime](/reference/data-types/datetime)) — Time when the whole processing transaction started. -- `get_object_time_ms` ([UInt64](/reference/data-types/int-uint)) — Time which took us to find the object in object storage. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/azure_queue_metadata_cache.mdx b/reference/system-tables/azure_queue_metadata_cache.mdx deleted file mode 100644 index 56235031..00000000 --- a/reference/system-tables/azure_queue_metadata_cache.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -description: 'Contains in-memory state of AzureQueue metadata and currently processed rows per file.' -keywords: ['system table', 'azure_queue_metadata_cache'] -slug: /operations/system-tables/azure_queue_metadata_cache -title: 'system.azure_queue_metadata_cache' -doc_type: 'reference' ---- - -## Description {#description} - -Contains in-memory state of AzureQueue metadata and currently processed rows per file. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `zookeeper_path` ([String](/reference/data-types)) — Path in zookeeper to metadata -- `file_path` ([String](/reference/data-types)) — File path of a file which is being processed -- `file_name` ([String](/reference/data-types)) — File name of a file which is being processed -- `rows_processed` ([UInt64](/reference/data-types)) — Currently processed number of rows -- `status` ([String](/reference/data-types)) — Status of processing: Processed, Processing, Failed -- `processing_start_time` ([Nullable(DateTime)](/reference/data-types)) — Time at which processing of the file started -- `processing_end_time` ([Nullable(DateTime)](/reference/data-types)) — Time at which processing of the file ended -- `exception` ([String](/reference/data-types)) — Exception which happened during processing -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/azure_queue_settings.mdx b/reference/system-tables/azure_queue_settings.mdx deleted file mode 100644 index 71b5096e..00000000 --- a/reference/system-tables/azure_queue_settings.mdx +++ /dev/null @@ -1,26 +0,0 @@ ---- -description: 'System table containing information about settings of AzureQueue tables. - Available from server version `24.10`.' -keywords: ['system table', 'azure_queue_settings'] -slug: /operations/system-tables/azure_queue_settings -title: 'system.azure_queue_settings' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about settings of [AzureQueue](/reference/engines/table-engines/integrations/azure-queue) tables. -Available from `24.10` server version. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Database of the table with AzureQueue engine. -- `table` ([String](/reference/data-types)) — Name of the table with AzureQueue engine. -- `name` ([String](/reference/data-types)) — Setting name. -- `value` ([String](/reference/data-types)) — Setting value. -- `type` ([String](/reference/data-types)) — Setting type (implementation specific string value). -- `changed` ([UInt8](/reference/data-types)) — 1 if the setting was explicitly defined in the config or explicitly changed. -- `description` ([String](/reference/data-types)) — Setting description. -- `alterable` ([UInt8](/reference/data-types)) — Shows whether the current user can change the setting via ALTER TABLE MODIFY SETTING: 0 — Current user can't change the setting, 1 — Current user can change the setting. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/background_schedule_pool.mdx b/reference/system-tables/background_schedule_pool.mdx deleted file mode 100644 index aa2e1dec..00000000 --- a/reference/system-tables/background_schedule_pool.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -description: 'System table containing information about tasks in background schedule pools.' -keywords: ['system table', 'background_schedule_pool'] -slug: /operations/system-tables/background_schedule_pool -title: 'system.background_schedule_pool' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about tasks in background schedule pools. Background schedule pools are used for executing periodic tasks such as distributed sends, buffer flushes, and message broker operations. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `pool` ([String](/reference/data-types)) — Pool name. Possible values: `schedule` — general purpose schedule pool, `buffer_flush` — pool for flushing Buffer table data, `distributed` — pool for distributed table operations, `message_broker` — pool for message broker operations. -- `database` ([String](/reference/data-types)) — Database name. -- `table` ([String](/reference/data-types)) — Table name. -- `table_uuid` ([UUID](/reference/data-types)) — Table UUID. -- `query_id` ([String](/reference/data-types)) — Query ID (if executing now). Note: this is not a real query, but a randomly generated ID for matching logs in `system.text_log`. -- `elapsed_ms` ([UInt64](/reference/data-types)) — Task execution time (if executing now). -- `log_name` ([String](/reference/data-types)) — Log name for the task. -- `deactivated` ([UInt8](/reference/data-types)) — Whether the task is deactivated (always false, since deactivated tasks are removed from the pool). -- `scheduled` ([UInt8](/reference/data-types)) — Whether the task is scheduled for execution. -- `delayed` ([UInt8](/reference/data-types)) — Whether the task is scheduled with delay. -- `executing` ([UInt8](/reference/data-types)) — Whether the task is currently executing. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql title="Query" -SELECT * FROM system.background_schedule_pool LIMIT 5 FORMAT Vertical; -``` - -```text title="Response" -Row 1: -────── -pool: distributed -database: default -table: data -table_uuid: 00000000-0000-0000-0000-000000000000 -query_id: -elapsed_ms: 0 -log_name: BackgroundJobsAssignee:DataProcessing -deactivated: 0 -scheduled: 1 -delayed: 0 -executing: 0 -``` - -## See also {#see-also} - -- [system.background_schedule_pool_log](/reference/system-tables/background_schedule_pool_log) — Contains history of background schedule pool task executions. diff --git a/reference/system-tables/background_schedule_pool_log.mdx b/reference/system-tables/background_schedule_pool_log.mdx deleted file mode 100644 index 97ed2dc5..00000000 --- a/reference/system-tables/background_schedule_pool_log.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -description: 'System table containing history of background schedule pool task executions.' -keywords: ['system table', 'background_schedule_pool_log'] -slug: /operations/system-tables/background_schedule_pool_log -title: 'system.background_schedule_pool_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -The `system.background_schedule_pool_log` table is created only if the [background_schedule_pool_log](/reference/settings/server-settings/settings#background_schedule_pool_log) server setting is specified. - -This table contains the history of background schedule pool task executions. Background schedule pools are used for executing periodic tasks such as distributed sends, buffer flushes, and message broker operations. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Event date. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Event time with microseconds precision. -- `query_id` ([String](/reference/data-types/string)) — Identifier of the query associated with the background task. -- `database` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the database. -- `table` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the table. -- `table_uuid` ([UUID](/reference/data-types/uuid)) — UUID of the table the background task belongs to. -- `log_name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the background task. -- `duration_ms` ([UInt64](/reference/data-types/int-uint)) — Duration of the task execution in milliseconds. -- `error` ([UInt16](/reference/data-types/int-uint)) — The error code of the occurred exception. -- `exception` ([String](/reference/data-types/string)) — Text message of the occurred error. -{/*AUTOGENERATED_END*/} - -The `system.background_schedule_pool_log` table is created after the first background task execution. - -## Example {#example} - -```sql -SELECT * FROM system.background_schedule_pool_log LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -hostname: clickhouse.eu-central1.internal -event_date: 2025-12-18 -event_time: 2025-12-18 10:30:15 -event_time_microseconds: 2025-12-18 10:30:15.123456 -query_id: -database: default -table: data -table_uuid: 00000000-0000-0000-0000-000000000000 -log_name: default.data -duration_ms: 42 -error: 0 -exception: -``` - -## See also {#see-also} - -- [system.background_schedule_pool](/reference/system-tables/background_schedule_pool) — Contains information about currently scheduled tasks in background schedule pools. diff --git a/reference/system-tables/backups.mdx b/reference/system-tables/backups.mdx deleted file mode 100644 index 28c74888..00000000 --- a/reference/system-tables/backups.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -description: 'System table containing logging entries with information about `BACKUP` - and `RESTORE` operations.' -keywords: ['system table', 'backups'] -slug: /operations/system-tables/backups -title: 'system.backups' -doc_type: 'reference' ---- - -## Description {#description} - -Contains a list of all `BACKUP` or `RESTORE` operations with their current states and other properties. Note, that table is not persistent and it shows only operations executed after the last server restart. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `id` ([String](/reference/data-types)) — Operation ID, can be either passed via SETTINGS id=... or be randomly generated UUID. -- `name` ([String](/reference/data-types)) — Operation name, a string like `Disk('backups', 'my_backup')` -- `base_backup_name` ([String](/reference/data-types)) — Base Backup Operation name, a string like `Disk('backups', 'my_base_backup')` -- `query_id` ([String](/reference/data-types)) — Query ID of a query that started backup. -- `status` ([Enum8('CREATING_BACKUP' = 0, 'BACKUP_CREATED' = 1, 'BACKUP_FAILED' = 2, 'RESTORING' = 3, 'RESTORED' = 4, 'RESTORE_FAILED' = 5, 'BACKUP_CANCELLED' = 6, 'RESTORE_CANCELLED' = 7)](/reference/data-types)) — Status of backup or restore operation. -- `error` ([String](/reference/data-types)) — The error message if any. -- `start_time` ([DateTime64(6)](/reference/data-types)) — The time when operation started. -- `end_time` ([DateTime64(6)](/reference/data-types)) — The time when operation finished. -- `num_files` ([UInt64](/reference/data-types)) — The number of files stored in the backup. -- `total_size` ([UInt64](/reference/data-types)) — The total size of files stored in the backup. -- `num_entries` ([UInt64](/reference/data-types)) — The number of entries in the backup, i.e. the number of files inside the folder if the backup is stored as a folder. -- `uncompressed_size` ([UInt64](/reference/data-types)) — The uncompressed size of the backup. -- `compressed_size` ([UInt64](/reference/data-types)) — The compressed size of the backup. -- `files_read` ([UInt64](/reference/data-types)) — Returns the number of files read during RESTORE from this backup. -- `bytes_read` ([UInt64](/reference/data-types)) — Returns the total size of files read during RESTORE from this backup. -- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/reference/data-types)) — All the profile events captured during this operation. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/blob_storage_log.mdx b/reference/system-tables/blob_storage_log.mdx deleted file mode 100644 index f197243b..00000000 --- a/reference/system-tables/blob_storage_log.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -description: 'System table containing logging entries with information about various - blob storage operations such as uploads and deletes.' -keywords: ['system table', 'blob_storage_log'] -slug: /operations/system-tables/blob_storage_log -title: 'system.blob_storage_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains logging entries with information about various blob storage operations such as uploads and deletes. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Date of the event. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Time of the event. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Time of the event with microseconds precision. -- `event_type` ([Enum8('Upload' = 1, 'Delete' = 2, 'MultiPartUploadCreate' = 3, 'MultiPartUploadWrite' = 4, 'MultiPartUploadComplete' = 5, 'MultiPartUploadAbort' = 6, 'Read' = 7)](/reference/data-types/enum)) — Type of the event. Possible values: 'Upload', 'Delete', 'MultiPartUploadCreate', 'MultiPartUploadWrite', 'MultiPartUploadComplete', 'MultiPartUploadAbort', 'Read' -- `query_id` ([String](/reference/data-types/string)) — Identifier of the query associated with the event, if any. -- `thread_id` ([UInt64](/reference/data-types/int-uint)) — Identifier of the thread performing the operation. -- `thread_name` ([String](/reference/data-types/string)) — Name of the thread performing the operation. -- `disk_name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the associated disk. -- `bucket` ([String](/reference/data-types/string)) — Name of the bucket. -- `remote_path` ([String](/reference/data-types/string)) — Path to the remote resource. -- `local_path` ([String](/reference/data-types/string)) — Path to the metadata file on the local system, which references the remote resource. -- `data_size` ([UInt64](/reference/data-types/int-uint)) — Size of the data involved in the upload event. -- `elapsed_microseconds` ([UInt64](/reference/data-types/int-uint)) — Elapsed time for the operation, in microseconds. -- `error_code` ([Int32](/reference/data-types/int-uint)) — Error code of the operation. 0 if there was no error. -- `error` ([String](/reference/data-types/string)) — Error message associated with the event, if any. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -Suppose a blob storage operation uploads a file, and an event is logged: - -```sql -SELECT * FROM system.blob_storage_log WHERE query_id = '7afe0450-504d-4e4b-9a80-cd9826047972' ORDER BY event_date, event_time_microseconds \G -``` - -```text -Row 1: -────── -hostname: clickhouse.eu-central1.internal -event_date: 2023-10-31 -event_time: 2023-10-31 16:03:40 -event_time_microseconds: 2023-10-31 16:03:40.481437 -event_type: Upload -query_id: 7afe0450-504d-4e4b-9a80-cd9826047972 -thread_id: 2381740 -disk_name: disk_s3 -bucket: bucket1 -remote_path: rrr/kxo/tbnqtrghgtnxkzgtcrlutwuslgawe -local_path: store/654/6549e8b3-d753-4447-8047-d462df6e6dbe/tmp_insert_all_1_1_0/checksums.txt -data_size: 259 -error: -``` - -In this example, upload operation was associated with the `INSERT` query with ID `7afe0450-504d-4e4b-9a80-cd9826047972`. The local metadata file `store/654/6549e8b3-d753-4447-8047-d462df6e6dbe/tmp_insert_all_1_1_0/checksums.txt` refers to remote path `rrr/kxo/tbnqtrghgtnxkzgtcrlutwuslgawe` in bucket `bucket1` on disk `disk_s3`, with a size of 259 bytes. - -## See also {#see-also} - -- [External Disks for Storing Data](/concepts/features/configuration/server-config/storing-data) diff --git a/reference/system-tables/certificates.mdx b/reference/system-tables/certificates.mdx deleted file mode 100644 index c2570f0a..00000000 --- a/reference/system-tables/certificates.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -description: 'Contains information about available certificates and their sources.' -keywords: ['system table', 'certificates'] -slug: /operations/system-tables/certificates -title: 'system.certificates' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about available certificates and their sources. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `version` ([Int32](/reference/data-types)) — Version of the certificate. Values are 0 for v1, 1 for v2, 2 for v3. -- `serial_number` ([Nullable(String)](/reference/data-types)) — Serial Number of the certificate assigned by the issuer. -- `signature_algo` ([Nullable(String)](/reference/data-types)) — Signature Algorithm - an algorithm used by the issuer to sign this certificate. -- `issuer` ([Nullable(String)](/reference/data-types)) — Issuer - a unique identifier for the Certificate Authority issuing this certificate. -- `not_before` ([Nullable(String)](/reference/data-types)) — The beginning of the time window when this certificate is valid. -- `not_after` ([Nullable(String)](/reference/data-types)) — The end of the time window when this certificate is valid. -- `subject` ([Nullable(String)](/reference/data-types)) — Subject - identifies the owner of the public key. -- `pkey_algo` ([Nullable(String)](/reference/data-types)) — Public Key Algorithm defines the algorithm the public key can be used with. -- `path` ([String](/reference/data-types)) — Path to the file or directory containing this certificate. -- `default` ([UInt8](/reference/data-types)) — Certificate is in the default certificate location. -- `protocol` ([String](/reference/data-types)) — Protocol name if certificate is from per-protocol TLS config, otherwise empty. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/clusters.mdx b/reference/system-tables/clusters.mdx deleted file mode 100644 index 61de9f76..00000000 --- a/reference/system-tables/clusters.mdx +++ /dev/null @@ -1,93 +0,0 @@ ---- -description: 'System table containing information about clusters available in the - config file and the servers defined in them.' -keywords: ['system table', 'clusters'] -slug: /operations/system-tables/clusters -title: 'system.clusters' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about clusters available in the config file and the servers in them. - -## Columns {#Columns} - -{/*AUTOGENERATED_START*/} -- `cluster` ([String](/reference/data-types)) — The cluster name. -- `shard_num` ([UInt32](/reference/data-types)) — The shard number in the cluster, starting from 1. -- `shard_name` ([String](/reference/data-types)) — The name of the shard in the cluster. -- `shard_weight` ([UInt32](/reference/data-types)) — The relative weight of the shard when writing data. -- `internal_replication` ([UInt8](/reference/data-types)) — Flag that indicates whether this host is a part on ensemble which can replicate the data on its own. -- `replica_num` ([UInt32](/reference/data-types)) — The replica number in the shard, starting from 1. -- `host_name` ([String](/reference/data-types)) — The host name, as specified in the config. -- `host_address` ([String](/reference/data-types)) — The host IP address obtained from DNS. -- `port` ([UInt16](/reference/data-types)) — The port to use for connecting to the server. -- `is_local` ([UInt8](/reference/data-types)) — Flag that indicates whether the host is local. -- `user` ([String](/reference/data-types)) — The name of the user for connecting to the server. -- `default_database` ([String](/reference/data-types)) — The default database name. -- `errors_count` ([UInt32](/reference/data-types)) — The number of times this host failed to reach replica. -- `slowdowns_count` ([UInt32](/reference/data-types)) — The number of slowdowns that led to changing replica when establishing a connection with hedged requests. -- `estimated_recovery_time` ([UInt32](/reference/data-types)) — Seconds remaining until the replica error count is zeroed and it is considered to be back to normal. -- `database_shard_name` ([String](/reference/data-types)) — The name of the `Replicated` database shard (for clusters that belong to a `Replicated` database). -- `database_replica_name` ([String](/reference/data-types)) — The name of the `Replicated` database replica (for clusters that belong to a `Replicated` database). -- `is_shared_catalog_cluster` ([UInt8](/reference/data-types)) — Bool indicating if the cluster belongs to shared catalog. -- `is_active` ([Nullable(UInt8)](/reference/data-types)) — The status of the Replicated database replica (for clusters that belong to a Replicated database): 1 means 'replica is online', 0 means 'replica is offline', NULL means 'unknown'. -- `unsynced_after_recovery` ([Nullable(UInt8)](/reference/data-types)) — Indicates if a Replicated database replica has replication lag more than max_replication_lag_to_enqueue after creating or recovering the replica. -- `replication_lag` ([Nullable(UInt32)](/reference/data-types)) — The replication lag of the `Replicated` database replica (for clusters that belong to a Replicated database). -- `recovery_time` ([Nullable(UInt64)](/reference/data-types)) — The recovery time of the `Replicated` database replica (for clusters that belong to a Replicated database), in milliseconds. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql title="Query" -SELECT * FROM system.clusters LIMIT 2 FORMAT Vertical; -``` - -```text title="Response" -Row 1: -────── -cluster: test_cluster_two_shards -shard_num: 1 -shard_name: shard_01 -shard_weight: 1 -replica_num: 1 -host_name: 127.0.0.1 -host_address: 127.0.0.1 -port: 9000 -is_local: 1 -user: default -default_database: -errors_count: 0 -slowdowns_count: 0 -estimated_recovery_time: 0 -database_shard_name: -database_replica_name: -is_active: NULL - -Row 2: -────── -cluster: test_cluster_two_shards -shard_num: 2 -shard_name: shard_02 -shard_weight: 1 -replica_num: 1 -host_name: 127.0.0.2 -host_address: 127.0.0.2 -port: 9000 -is_local: 0 -user: default -default_database: -errors_count: 0 -slowdowns_count: 0 -estimated_recovery_time: 0 -database_shard_name: -database_replica_name: -is_active: NULL -``` - -## See also {#see-also} - -- [Table engine Distributed](/reference/engines/table-engines/special/distributed) -- [distributed_replica_error_cap setting](/reference/settings/session-settings#distributed_replica_error_cap) -- [distributed_replica_error_half_life setting](/reference/settings/session-settings#distributed_replica_error_half_life) diff --git a/reference/system-tables/columns.mdx b/reference/system-tables/columns.mdx deleted file mode 100644 index c3481478..00000000 --- a/reference/system-tables/columns.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -description: 'System table containing information about columns in all tables' -keywords: ['system table', 'columns'] -slug: /operations/system-tables/columns -title: 'system.columns' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about columns in all tables. - -You can use this table to get information similar to the [DESCRIBE TABLE](/reference/statements/describe-table) query, but for multiple tables at once. - -Columns from [temporary tables](/reference/statements/create/table#temporary-tables) are visible in the `system.columns` only in those session where they have been created. They are shown with the empty `database` field. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Database name. -- `table` ([String](/reference/data-types)) — Table name. -- `name` ([String](/reference/data-types)) — Column name. -- `type` ([String](/reference/data-types)) — Column type. -- `position` ([UInt64](/reference/data-types)) — Ordinal position of a column in a table starting with 1. -- `default_kind` ([String](/reference/data-types)) — Expression type (DEFAULT, MATERIALIZED, ALIAS) for the default value, or an empty string if it is not defined. -- `default_expression` ([String](/reference/data-types)) — Expression for the default value, or an empty string if it is not defined. -- `data_compressed_bytes` ([UInt64](/reference/data-types)) — The size of compressed data, in bytes. -- `data_uncompressed_bytes` ([UInt64](/reference/data-types)) — The size of decompressed data, in bytes. -- `marks_bytes` ([UInt64](/reference/data-types)) — The size of marks, in bytes. -- `comment` ([String](/reference/data-types)) — Comment on the column, or an empty string if it is not defined. -- `is_in_partition_key` ([UInt8](/reference/data-types)) — Flag that indicates whether the column is in the partition expression. -- `is_in_sorting_key` ([UInt8](/reference/data-types)) — Flag that indicates whether the column is in the sorting key expression. -- `is_in_primary_key` ([UInt8](/reference/data-types)) — Flag that indicates whether the column is in the primary key expression. -- `is_in_sampling_key` ([UInt8](/reference/data-types)) — Flag that indicates whether the column is in the sampling key expression. -- `compression_codec` ([String](/reference/data-types)) — Compression codec name. -- `character_octet_length` ([Nullable(UInt64)](/reference/data-types)) — Maximum length in bytes for binary data, character data, or text data and images. In ClickHouse makes sense only for FixedString data type. Otherwise, the NULL value is returned. -- `numeric_precision` ([Nullable(UInt64)](/reference/data-types)) — Accuracy of approximate numeric data, exact numeric data, integer data, or monetary data. In ClickHouse it is bit width for integer types and decimal precision for Decimal types. Otherwise, the NULL value is returned. -- `numeric_precision_radix` ([Nullable(UInt64)](/reference/data-types)) — The base of the number system is the accuracy of approximate numeric data, exact numeric data, integer data or monetary data. In ClickHouse it's 2 for integer types and 10 for Decimal types. Otherwise, the NULL value is returned. -- `numeric_scale` ([Nullable(UInt64)](/reference/data-types)) — The scale of approximate numeric data, exact numeric data, integer data, or monetary data. In ClickHouse makes sense only for Decimal types. Otherwise, the NULL value is returned. -- `datetime_precision` ([Nullable(UInt64)](/reference/data-types)) — Decimal precision of DateTime64 data type. For other data types, the NULL value is returned. -- `serialization_hint` ([Nullable(String)](/reference/data-types)) — A hint for column to choose serialization on inserts according to statistics. -- `statistics` ([String](/reference/data-types)) — The types of statistics created in this columns. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.columns LIMIT 2 FORMAT Vertical; -``` - -```text -Row 1: -────── -database: INFORMATION_SCHEMA -table: COLUMNS -name: table_catalog -type: String -position: 1 -default_kind: -default_expression: -data_compressed_bytes: 0 -data_uncompressed_bytes: 0 -marks_bytes: 0 -comment: -is_in_partition_key: 0 -is_in_sorting_key: 0 -is_in_primary_key: 0 -is_in_sampling_key: 0 -compression_codec: -character_octet_length: ᴺᵁᴸᴸ -numeric_precision: ᴺᵁᴸᴸ -numeric_precision_radix: ᴺᵁᴸᴸ -numeric_scale: ᴺᵁᴸᴸ -datetime_precision: ᴺᵁᴸᴸ - -Row 2: -────── -database: INFORMATION_SCHEMA -table: COLUMNS -name: table_schema -type: String -position: 2 -default_kind: -default_expression: -data_compressed_bytes: 0 -data_uncompressed_bytes: 0 -marks_bytes: 0 -comment: -is_in_partition_key: 0 -is_in_sorting_key: 0 -is_in_primary_key: 0 -is_in_sampling_key: 0 -compression_codec: -character_octet_length: ᴺᵁᴸᴸ -numeric_precision: ᴺᵁᴸᴸ -numeric_precision_radix: ᴺᵁᴸᴸ -numeric_scale: ᴺᵁᴸᴸ -datetime_precision: ᴺᵁᴸᴸ -``` diff --git a/reference/system-tables/crash_log.mdx b/reference/system-tables/crash_log.mdx deleted file mode 100644 index 0db53ad6..00000000 --- a/reference/system-tables/crash_log.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -description: 'System table containing information about stack traces for fatal errors.' -keywords: ['system table', 'crash_log'] -slug: /operations/system-tables/crash_log -title: 'system.crash_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about stack traces for fatal errors. The table does not exist in the database by default, it is created only when fatal errors occur. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — The hostname where the crash occurred. -- `event_date` ([Date](/reference/data-types/date)) — The date of the crash. -- `event_time` ([DateTime](/reference/data-types/datetime)) — The time of the crash. -- `timestamp_ns` ([UInt64](/reference/data-types/int-uint)) — Timestamp of the event with nanoseconds. -- `signal` ([Int32](/reference/data-types/int-uint)) — Signal number. -- `signal_code` ([Int32](/reference/data-types/int-uint)) — Signal code. Provides additional context about the signal cause. -- `thread_id` ([UInt64](/reference/data-types/int-uint)) — Thread ID. -- `query_id` ([String](/reference/data-types/string)) — Query ID. -- `query` ([String](/reference/data-types/string)) — Query text that was being executed when the crash occurred. -- `trace` ([Array(UInt64)](/reference/data-types/array)) — Stack trace at the moment of crash. Each element is a virtual memory address inside ClickHouse server process. -- `trace_full` ([Array(String)](/reference/data-types/array)) — Stack trace at the moment of crash. Each element contains a called method inside ClickHouse server process. -- `fault_address` ([Nullable(UInt64)](/reference/data-types/nullable)) — Memory address that caused the fault. -- `fault_access_type` ([String](/reference/data-types/string)) — Type of memory access that caused the fault (e.g., 'read', 'write'). -- `signal_description` ([String](/reference/data-types/string)) — Human-readable description based on signal_code (e.g., 'Address not mapped to object'). -- `current_exception_trace_full` ([Array(String)](/reference/data-types/array)) — Current exception stack trace with symbolized frames (std::terminate crashes only). -- `version` ([String](/reference/data-types/string)) — ClickHouse server version. -- `revision` ([UInt32](/reference/data-types/int-uint)) — ClickHouse server revision. -- `build_id` ([String](/reference/data-types/string)) — BuildID that is generated by compiler. -- `git_hash` ([String](/reference/data-types/string)) — Git commit hash of the ClickHouse source code. -- `architecture` ([String](/reference/data-types/string)) — CPU architecture (e.g., x86_64, aarch64). -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql title="Query" -SELECT * FROM system.crash_log ORDER BY event_time DESC LIMIT 1; -``` - -```text title="Response" -Row 1: -────── -hostname: clickhouse.eu-central1.internal -event_date: 2020-10-14 -event_time: 2020-10-14 15:47:40 -timestamp_ns: 1602679660271312710 -signal: 11 -thread_id: 23624 -query_id: 428aab7c-8f5c-44e9-9607-d16b44467e69 -trace: [188531193,...] -trace_full: ['3. DB::(anonymous namespace)::FunctionFormatReadableTimeDelta::executeImpl(std::__1::vector >&, std::__1::vector > const&, unsigned long, unsigned long) const @ 0xb3cc1f9 in /home/username/work/ClickHouse/build/programs/clickhouse',...] -version: ClickHouse 20.11.1.1 -revision: 54442 -build_id: -``` - -## See also {#see-also} - -- [trace_log](/reference/system-tables/trace_log) system table diff --git a/reference/system-tables/database_replicas.mdx b/reference/system-tables/database_replicas.mdx deleted file mode 100644 index 4057daed..00000000 --- a/reference/system-tables/database_replicas.mdx +++ /dev/null @@ -1,49 +0,0 @@ ---- -description: 'System table containing information about and status of replicated database.' -keywords: ['system table', 'database_replicas'] -slug: /operations/system-tables/database_replicas -title: 'system.database_replicas' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information of each Replicated database replicas. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — The name of the Replicated database is in. -- `is_readonly` ([UInt8](/reference/data-types)) — Whether the database replica is in read-only mode. -- `max_log_ptr` ([Int32](/reference/data-types)) — Maximum entry number in the log of general activity. -- `replica_name` ([String](/reference/data-types)) — Replica name in ClickHouse Keeper. -- `replica_path` ([String](/reference/data-types)) — Path to replica data in ClickHouse Keeper. -- `zookeeper_path` ([String](/reference/data-types)) — Path to database data in ClickHouse Keeper. -- `shard_name` ([String](/reference/data-types)) — The name of the shard in the cluster. -- `log_ptr` ([Int32](/reference/data-types)) — Maximum entry number in the log of general activity that the replica copied to its execution queue, plus one. -- `total_replicas` ([UInt32](/reference/data-types)) — The total number of known replicas of this database. -- `zookeeper_exception` ([String](/reference/data-types)) — The last exception message, got if the error happened when fetching the info from ClickHouse Keeper. -- `is_session_expired` ([UInt8](/reference/data-types)) — The session with ClickHouse Keeper has expired. Basically the same as `is_readonly`. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.database_replicas FORMAT Vertical; -``` - -```text -Row 1: -────── -database: db_2 -is_readonly: 0 -max_log_ptr: 2 -replica_name: replica1 -replica_path: /test/db_2/replicas/shard1|replica1 -zookeeper_path: /test/db_2 -shard_name: shard1 -log_ptr: 2 -total_replicas: 1 -zookeeper_exception: -is_session_expired: 0 -``` diff --git a/reference/system-tables/detached_parts.mdx b/reference/system-tables/detached_parts.mdx deleted file mode 100644 index be6da579..00000000 --- a/reference/system-tables/detached_parts.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -description: 'System table containing information about detached parts of MergeTree - tables' -keywords: ['system table', 'detached_parts'] -slug: /operations/system-tables/detached_parts -title: 'system.detached_parts' -doc_type: 'reference' ---- - -## Description {#purpose} - -Contains information about detached parts of [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables. The `reason` column specifies why the part was detached. - -For user-detached parts, the reason is empty. Such parts can be attached with [ALTER TABLE ATTACH PARTITION\|PART](/reference/statements/alter/partition#attach-partitionpart) command. - -For the description of other columns, see [system.parts](/reference/system-tables/parts). - -If part name is invalid, values of some columns may be `NULL`. Such parts can be deleted with [ALTER TABLE DROP DETACHED PART](/reference/statements/alter/partition#drop-detached-partitionpart). - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — The name of the database this part belongs to. -- `table` ([String](/reference/data-types)) — The name of the table this part belongs to. -- `partition_id` ([Nullable(String)](/reference/data-types)) — The identifier of the partition this part belongs to. -- `name` ([String](/reference/data-types)) — The name of the part. -- `bytes_on_disk` ([UInt64](/reference/data-types)) — Total size of all the data part files in bytes. -- `modification_time` ([DateTime](/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time when detach happened. -- `disk` ([String](/reference/data-types)) — The name of the disk that stores this data part. -- `path` ([String](/reference/data-types)) — The path of the disk to the file of this data part. -- `reason` ([Nullable(String)](/reference/data-types)) — The explanation why this part was detached. -- `min_block_number` ([Nullable(Int64)](/reference/data-types)) — The minimum number of data parts that make up the current part after merging. -- `max_block_number` ([Nullable(Int64)](/reference/data-types)) — The maximum number of data parts that make up the current part after merging. -- `level` ([Nullable(UInt32)](/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/dictionaries.mdx b/reference/system-tables/dictionaries.mdx deleted file mode 100644 index 10725d1c..00000000 --- a/reference/system-tables/dictionaries.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -description: 'System table containing information about dictionaries' -keywords: ['system table', 'dictionaries'] -slug: /operations/system-tables/dictionaries -title: 'system.dictionaries' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about [dictionaries](/reference/statements/create/dictionary). - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Name of the database containing the dictionary created by DDL query. Empty string for other dictionaries. -- `name` ([String](/reference/data-types)) — Dictionary name. -- `uuid` ([UUID](/reference/data-types)) — Dictionary UUID. -- `status` ([Enum8('NOT_LOADED' = 0, 'LOADED' = 1, 'FAILED' = 2, 'LOADING' = 3, 'FAILED_AND_RELOADING' = 4, 'LOADED_AND_RELOADING' = 5, 'NOT_EXIST' = 6)](/reference/data-types)) — Dictionary status.Possible values: - - **NOT_LOADED** — Dictionary was not loaded because it was not used - - **LOADED** — Dictionary loaded successfully - - **FAILED** — Unable to load the dictionary as a result of an error - - **LOADING** — Dictionary is loading now - - **LOADED_AND_RELOADING** — Dictionary is loaded successfully - - **and is being reloaded right now (frequent reasons: SYSTEM RELOAD DICTIONARY query** — - - **timeout** — - - **dictionary config has changed)** — - - **FAILED_AND_RELOADING** — Could not load the dictionary as a result of an error and is loading now. -- `origin` ([String](/reference/data-types)) — Path to the configuration file that describes the dictionary. -- `type` ([String](/reference/data-types)) — Type of a dictionary allocation. Storing Dictionaries in Memory. -- `key.names` ([Array(String)](/reference/data-types)) — Array of key names provided by the dictionary. -- `key.types` ([Array(String)](/reference/data-types)) — Corresponding array of key types provided by the dictionary. -- `attribute.names` ([Array(String)](/reference/data-types)) — Array of attribute names provided by the dictionary. -- `attribute.types` ([Array(String)](/reference/data-types)) — Corresponding array of attribute types provided by the dictionary. -- `bytes_allocated` ([UInt64](/reference/data-types)) — Amount of RAM allocated for the dictionary. -- `hierarchical_index_bytes_allocated` ([UInt64](/reference/data-types)) — Amount of RAM allocated for hierarchical index. -- `query_count` ([UInt64](/reference/data-types)) — Number of queries since the dictionary was loaded or since the last successful reboot. -- `hit_rate` ([Float64](/reference/data-types)) — For cache dictionaries, the percentage of uses for which the value was in the cache. -- `found_rate` ([Float64](/reference/data-types)) — The percentage of uses for which the value was found. -- `element_count` ([UInt64](/reference/data-types)) — Number of items stored in the dictionary. -- `load_factor` ([Float64](/reference/data-types)) — Percentage filled in the dictionary (for a hashed dictionary, the percentage filled in the hash table). -- `source` ([String](/reference/data-types)) — Text describing the data source for the dictionary. -- `lifetime_min` ([UInt64](/reference/data-types)) — Minimum lifetime of the dictionary in memory, after which ClickHouse tries to reload the dictionary (if invalidate_query is set, then only if it has changed). Set in seconds. -- `lifetime_max` ([UInt64](/reference/data-types)) — Maximum lifetime of the dictionary in memory, after which ClickHouse tries to reload the dictionary (if invalidate_query is set, then only if it has changed). Set in seconds. -- `loading_start_time` ([DateTime](/reference/data-types)) — Start time for loading the dictionary. -- `last_successful_update_time` ([DateTime](/reference/data-types)) — End time for loading or updating the dictionary. Helps to monitor some troubles with dictionary sources and investigate the causes. -- `error_count` ([UInt64](/reference/data-types)) — Number of errors since last successful loading. Helps to monitor some troubles with dictionary sources and investigate the causes. -- `loading_duration` ([Float32](/reference/data-types)) — Duration of a dictionary loading. -- `last_exception` ([String](/reference/data-types)) — Text of the error that occurs when creating or reloading the dictionary if the dictionary couldn't be created. -- `comment` ([String](/reference/data-types)) — Text of the comment to dictionary. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -Configure the dictionary: - -```sql -CREATE DICTIONARY dictionary_with_comment -( - id UInt64, - value String -) -PRIMARY KEY id -SOURCE(CLICKHOUSE(HOST 'localhost' PORT tcpPort() TABLE 'source_table')) -LAYOUT(FLAT()) -LIFETIME(MIN 0 MAX 1000) -COMMENT 'The temporary dictionary'; -``` - -Make sure that the dictionary is loaded. - -```sql -SELECT * FROM system.dictionaries LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -database: default -name: dictionary_with_comment -uuid: 4654d460-0d03-433a-8654-d4600d03d33a -status: NOT_LOADED -origin: 4654d460-0d03-433a-8654-d4600d03d33a -type: -key.names: ['id'] -key.types: ['UInt64'] -attribute.names: ['value'] -attribute.types: ['String'] -bytes_allocated: 0 -query_count: 0 -hit_rate: 0 -found_rate: 0 -element_count: 0 -load_factor: 0 -source: -lifetime_min: 0 -lifetime_max: 0 -loading_start_time: 1970-01-01 00:00:00 -last_successful_update_time: 1970-01-01 00:00:00 -loading_duration: 0 -last_exception: -comment: The temporary dictionary -``` diff --git a/reference/system-tables/disks.mdx b/reference/system-tables/disks.mdx deleted file mode 100644 index 9f12c487..00000000 --- a/reference/system-tables/disks.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -description: 'System table containing information about disks defined in the server - configuration' -keywords: ['system table', 'disks'] -slug: /operations/system-tables/disks -title: 'system.disks' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about disks defined in the [server configuration](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes_configure). - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Name of a disk in the server configuration. -- `path` ([String](/reference/data-types)) — Path to the mount point in the file system. -- `free_space` ([UInt64](/reference/data-types)) — Free space on disk in bytes. -- `total_space` ([UInt64](/reference/data-types)) — Disk volume in bytes. -- `unreserved_space` ([UInt64](/reference/data-types)) — Free space which is not taken by reservations (free_space minus the size of reservations taken by merges, inserts, and other disk write operations currently running). -- `keep_free_space` ([UInt64](/reference/data-types)) — Amount of disk space that should stay free on disk in bytes. Defined in the keep_free_space_bytes parameter of disk configuration. -- `type` ([String](/reference/data-types)) — The disk type which tells where this disk stores the data - RAM, local drive or remote storage. -- `object_storage_type` ([String](/reference/data-types)) — Type of object storage if disk type is object_storage -- `metadata_type` ([String](/reference/data-types)) — Type of metadata storage if disk type is object_storage -- `is_encrypted` ([UInt8](/reference/data-types)) — Flag which shows whether this disk encrypts the underlying data. -- `is_read_only` ([UInt8](/reference/data-types)) — Flag which indicates that you can only perform read operations with this disk. -- `is_write_once` ([UInt8](/reference/data-types)) — Flag which indicates if disk is write-once. Which means that it does support BACKUP to this disk, but does not support INSERT into MergeTree table on this disk. -- `is_remote` ([UInt8](/reference/data-types)) — Flag which indicated what operations with this disk involve network interaction. -- `is_broken` ([UInt8](/reference/data-types)) — Flag which indicates if disk is broken. Broken disks will have 0 space and cannot be used. -- `cache_path` ([String](/reference/data-types)) — The path to the cache directory on local drive in case when the disk supports caching. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.disks; -``` - -```response -┌─name────┬─path─────────────────┬───free_space─┬──total_space─┬─keep_free_space─┐ -│ default │ /var/lib/clickhouse/ │ 276392587264 │ 490652508160 │ 0 │ -└─────────┴──────────────────────┴──────────────┴──────────────┴─────────────────┘ - -1 rows in set. Elapsed: 0.001 sec. -``` diff --git a/reference/system-tables/distribution_queue.mdx b/reference/system-tables/distribution_queue.mdx deleted file mode 100644 index ff8d82e2..00000000 --- a/reference/system-tables/distribution_queue.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -description: 'System table containing information about local files that are in the - queue to be sent to the shards.' -keywords: ['system table', 'distribution_queue'] -slug: /operations/system-tables/distribution_queue -title: 'system.distribution_queue' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about local files that are in the queue to be sent to the shards. These local files contain new parts that are created by inserting new data into the Distributed table in asynchronous mode. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Name of the database. -- `table` ([String](/reference/data-types)) — Name of the table. -- `data_path` ([String](/reference/data-types)) — Path to the folder with local files. -- `is_blocked` ([UInt8](/reference/data-types)) — Flag indicates whether sending local files to the server is blocked. -- `error_count` ([UInt64](/reference/data-types)) — Number of errors. -- `data_files` ([UInt64](/reference/data-types)) — Number of local files in a folder. -- `data_compressed_bytes` ([UInt64](/reference/data-types)) — Size of compressed data in local files, in bytes. -- `broken_data_files` ([UInt64](/reference/data-types)) — Number of files that has been marked as broken (due to an error). -- `broken_data_compressed_bytes` ([UInt64](/reference/data-types)) — Size of compressed data in broken files, in bytes. -- `last_exception` ([String](/reference/data-types)) — Text message about the last error that occurred (if any). -- `last_exception_time` ([DateTime](/reference/data-types)) — Time when last exception occurred. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.distribution_queue LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -database: default -table: dist -data_path: ./store/268/268bc070-3aad-4b1a-9cf2-4987580161af/default@127%2E0%2E0%2E2:9000/ -is_blocked: 1 -error_count: 0 -data_files: 1 -data_compressed_bytes: 499 -last_exception: -``` - -## See also {#see-also} - -- [Distributed table engine](/reference/engines/table-engines/special/distributed) diff --git a/reference/system-tables/dropped_tables_parts.mdx b/reference/system-tables/dropped_tables_parts.mdx deleted file mode 100644 index 9fee1df4..00000000 --- a/reference/system-tables/dropped_tables_parts.mdx +++ /dev/null @@ -1,104 +0,0 @@ ---- -description: 'System table containing information about parts of MergeTree dropped - tables from `system.dropped_tables`' -keywords: ['system table', 'dropped_tables_parts'] -slug: /operations/system-tables/dropped_tables_parts -title: 'system.dropped_tables_parts' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about parts of [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) dropped tables from [system.dropped_tables](/reference/system-tables/dropped_tables) - -The schema of this table is the same as [system.parts](/reference/system-tables/parts) - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `partition` ([String](/reference/data-types)) — Partition identifier (string representation derived from the table partition key expression). -- `name` ([String](/reference/data-types)) — -Name of the data part. The part naming structure can be used to determine many aspects of the data, ingest, and merge patterns. The part naming format is the following: - -```text -____ -``` - -* Definitions: - - `partition_id` - identifies the partition key - - `minimum_block_number` - identifies the minimum block number in the part. ClickHouse always merges continuous blocks - - `maximum_block_number` - identifies the maximum block number in the part - - `level` - incremented by one with each additional merge on the part. A level of 0 indicates this is a new part that has not been merged. It is important to remember that all parts in ClickHouse are always immutable - - `data_version` - optional value, incremented when a part is mutated (again, mutated data is always only written to a new part, since parts are immutable) - -- `uuid` ([UUID](/reference/data-types)) — The UUID of data part. -- `part_type` ([String](/reference/data-types)) — The data part storing format. Possible values: `Wide` — each column is stored in a separate file, `Compact` — all columns are stored in one file. Data storing format is controlled by the `min_bytes_for_wide_part` and `min_rows_for_wide_part` settings of the MergeTree table. -- `active` ([UInt8](/reference/data-types)) — Flag that indicates whether the data part is active. If a data part is active, it's used in a table. Otherwise, it's about to be deleted. Inactive data parts appear after merging and mutating operations. -- `marks` ([UInt64](/reference/data-types)) — The number of marks. To get the approximate number of rows in a data part, multiply marks by the index granularity (usually 8192) (this hint does not work for adaptive granularity). -- `rows` ([UInt64](/reference/data-types)) — The number of rows. -- `files` ([UInt64](/reference/data-types)) — The number of files in the data part. -- `bytes_on_disk` ([UInt64](/reference/data-types)) — Total size of all the data part files in bytes. -- `data_compressed_bytes` ([UInt64](/reference/data-types)) — Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included. -- `data_uncompressed_bytes` ([UInt64](/reference/data-types)) — Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included. -- `primary_key_size` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) used by primary key values in the primary.idx/cidx file on disk. -- `marks_bytes` ([UInt64](/reference/data-types)) — The size of the file with marks. -- `secondary_indices_compressed_bytes` ([UInt64](/reference/data-types)) — Total size of compressed data for secondary indices in the data part. All the auxiliary files (for example, files with marks) are not included. -- `secondary_indices_uncompressed_bytes` ([UInt64](/reference/data-types)) — Total size of uncompressed data for secondary indices in the data part. All the auxiliary files (for example, files with marks) are not included. -- `secondary_indices_marks_bytes` ([UInt64](/reference/data-types)) — The size of the file with marks for secondary indices. -- `modification_time` ([DateTime](/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation. -- `remove_time` ([DateTime](/reference/data-types)) — The time when the data part became inactive. -- `refcount` ([UInt32](/reference/data-types)) — The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges. -- `min_date` ([Date](/reference/data-types)) — The minimum value of the date key in the data part. -- `max_date` ([Date](/reference/data-types)) — The maximum value of the date key in the data part. -- `min_time` ([DateTime](/reference/data-types)) — The minimum value of the date and time key in the data part. -- `max_time` ([DateTime](/reference/data-types)) — The maximum value of the date and time key in the data part. -- `partition_id` ([String](/reference/data-types)) — ID of the partition. -- `min_block_number` ([Int64](/reference/data-types)) — The minimum number of data parts that make up the current part after merging. -- `max_block_number` ([Int64](/reference/data-types)) — The maximum number of data parts that make up the current part after merging. -- `level` ([UInt32](/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. -- `data_version` ([UInt64](/reference/data-types)) — Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than data_version). -- `primary_key_bytes_in_memory` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) used by primary key values. Will be 0 when `primary_key_lazy_load` is enabled and the key is not loaded. When non-zero the bytes live in the part itself and are accounted within `jemalloc.mergetree_arena.active_bytes`. They are NEVER counted in `PrimaryIndexCacheBytes` — those are mutually exclusive per part: an index lives either in the part (this metric) or in the shared `PrimaryIndexCache` (the other), depending on `primary_key_lazy_load` and `use_primary_key_cache`. -- `primary_key_bytes_in_memory_allocated` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) reserved for primary key values. Will be 0 when `primary_key_lazy_load` is enabled and the key is not loaded. When non-zero, included in `jemalloc.mergetree_arena.active_bytes`. See the note on `primary_key_bytes_in_memory` for the relationship with `PrimaryIndexCacheBytes`. -- `index_granularity_bytes_in_memory` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) used by index granularity values (will be 0 in case of primary_key_lazy_load=1 and use_primary_key_cache=1). When non-zero the bytes are part-owned and accounted within `jemalloc.mergetree_arena.active_bytes`. -- `index_granularity_bytes_in_memory_allocated` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) reserved for index granularity values (will be 0 in case of primary_key_lazy_load=1 and use_primary_key_cache=1). When non-zero, included in `jemalloc.mergetree_arena.active_bytes`. -- `is_frozen` ([UInt8](/reference/data-types)) — Flag that shows that a partition data backup exists. 1, the backup exists. 0, the backup does not exist. For more details, see FREEZE PARTITION. -- `database` ([String](/reference/data-types)) — Name of the database. -- `table` ([String](/reference/data-types)) — Name of the table. -- `engine` ([String](/reference/data-types)) — Name of the table engine without parameters. -- `disk_name` ([String](/reference/data-types)) — Name of a disk that stores the data part. -- `path` ([String](/reference/data-types)) — Absolute path to the folder with data part files. -- `hash_of_all_files` ([String](/reference/data-types)) — sipHash128 of compressed files. -- `hash_of_uncompressed_files` ([String](/reference/data-types)) — sipHash128 of uncompressed files (files with marks, index file etc.). -- `uncompressed_hash_of_compressed_files` ([String](/reference/data-types)) — sipHash128 of data in the compressed files as if they were uncompressed. -- `delete_ttl_info_min` ([DateTime](/reference/data-types)) — The minimum value of the date and time key for TTL DELETE rule. -- `delete_ttl_info_max` ([DateTime](/reference/data-types)) — The maximum value of the date and time key for TTL DELETE rule. -- `move_ttl_info.expression` ([Array(String)](/reference/data-types)) — Array of expressions. Each expression defines a TTL MOVE rule. -- `move_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — Array of date and time values. Each element describes the minimum key value for a TTL MOVE rule. -- `move_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — Array of date and time values. Each element describes the maximum key value for a TTL MOVE rule. -- `default_compression_codec` ([String](/reference/data-types)) — The name of the codec used to compress this data part (in case when there is no explicit codec for columns). -- `recompression_ttl_info.expression` ([Array(String)](/reference/data-types)) — The TTL expression. -- `recompression_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. -- `recompression_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. -- `group_by_ttl_info.expression` ([Array(String)](/reference/data-types)) — The TTL expression. -- `group_by_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. -- `group_by_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. -- `rows_where_ttl_info.expression` ([Array(String)](/reference/data-types)) — The TTL expression. -- `rows_where_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. -- `rows_where_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. -- `projections` ([Array(String)](/reference/data-types)) — The list of projection names calculated for this part. -- `visible` ([UInt8](/reference/data-types)) — Flag which indicated whether this part is visible for SELECT queries. -- `creation_tid` ([Tuple(UInt64, UInt64, UUID)](/reference/data-types)) — ID of transaction that has created/is trying to create this object. -- `removal_tid_lock` ([UInt64](/reference/data-types)) — Hash of removal_tid, used to lock an object for removal. -- `removal_tid` ([Tuple(UInt64, UInt64, UUID)](/reference/data-types)) — ID of transaction that has removed/is trying to remove this object -- `creation_csn` ([UInt64](/reference/data-types)) — CSN of transaction that has created this object -- `removal_csn` ([UInt64](/reference/data-types)) — CSN of transaction that has removed this object -- `has_lightweight_delete` ([UInt8](/reference/data-types)) — The flag which indicated whether the part has lightweight delete mask. -- `last_removal_attempt_time` ([DateTime](/reference/data-types)) — The last time the server tried to delete this part. -- `removal_state` ([String](/reference/data-types)) — The current state of part removal process. -{/*AUTOGENERATED_END*/} - -## See Also {#see-also} - -- [MergeTree family](/reference/engines/table-engines/mergetree-family/mergetree) -- [system.parts](/reference/system-tables/parts) -- [system.dropped_tables](/reference/system-tables/dropped_tables) diff --git a/reference/system-tables/error_log.mdx b/reference/system-tables/error_log.mdx deleted file mode 100644 index 81f6a13a..00000000 --- a/reference/system-tables/error_log.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -description: 'System table containing the history of error values from table `system.errors`, - periodically flushed to disk.' -keywords: ['system table', 'error_log'] -slug: /operations/system-tables/system-error-log -title: 'system.error_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains history of error values from table `system.errors`, periodically flushed to disk. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Event date. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time. -- `code` ([Int32](/reference/data-types/int-uint)) — Error code. -- `error` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Error name. -- `value` ([UInt64](/reference/data-types/int-uint)) — Number of errors happened in time interval. -- `remote` ([UInt8](/reference/data-types/int-uint)) — Remote exception (i.e. received during one of the distributed queries). -- `last_error_time` ([DateTime](/reference/data-types/datetime)) — The time when the last error happened. -- `last_error_message` ([String](/reference/data-types/string)) — Message for the last error. -- `last_error_query_id` ([String](/reference/data-types/string)) — Id of a query that caused the last error (if available). -- `last_error_trace` ([Array(UInt64)](/reference/data-types/array)) — A stack trace that represents a list of physical addresses where the called methods are stored. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.error_log LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -hostname: clickhouse.testing.internal -event_date: 2025-11-11 -event_time: 2025-11-11 11:35:28 -code: 60 -error: UNKNOWN_TABLE -value: 1 -remote: 0 -last_error_time: 2025-11-11 11:35:28 -last_error_message: Unknown table expression identifier 'system.table_not_exist' in scope SELECT * FROM system.table_not_exist -last_error_query_id: 77ad9ece-3db7-4236-9b5a-f789bce4aa2e -last_error_trace: [100506790044914,100506534488542,100506409937998,100506409936517,100506425182891,100506618154123,100506617994473,100506617990486,100506617988112,100506618341386,100506630272160,100506630266232,100506630276900,100506629795243,100506633519500,100506633495783,100506692143858,100506692248921,100506790779783,100506790781278,100506790390399,100506790380047,123814948752036,123814949330028] -``` - -## See Also {#see-also} - -- [error_log setting](/reference/settings/server-settings/settings#error_log) — Enabling and disabling the setting. -- [system.errors](/reference/system-tables/errors) — Contains error codes with the number of times they have been triggered. -- [Monitoring](/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. diff --git a/reference/system-tables/filesystem_cache.mdx b/reference/system-tables/filesystem_cache.mdx deleted file mode 100644 index 53a7b2c3..00000000 --- a/reference/system-tables/filesystem_cache.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -description: 'Contains information about all entries inside filesystem cache for remote objects.' -keywords: ['system table', 'filesystem_cache'] -slug: /operations/system-tables/filesystem_cache -title: 'system.filesystem_cache' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about all entries inside filesystem cache for remote objects. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `cache_name` ([String](/reference/data-types)) — Name of the cache object. Can be used in `SYSTEM DESCRIBE FILESYSTEM CACHE `, `SYSTEM DROP FILESYSTEM CACHE ` commands -- `cache_base_path` ([String](/reference/data-types)) — Path to the base directory where all cache files (of a cache identified by `cache_name`) are stored. -- `cache_path` ([String](/reference/data-types)) — Path to a particular cache file, corresponding to a file segment in a source file -- `key` ([String](/reference/data-types)) — Cache key of the file segment -- `file_segment_range_begin` ([UInt64](/reference/data-types)) — Offset corresponding to the beginning of the file segment range -- `file_segment_range_end` ([UInt64](/reference/data-types)) — Offset corresponding to the (including) end of the file segment range -- `size` ([UInt64](/reference/data-types)) — Size of the file segment -- `state` ([String](/reference/data-types)) — File segment state (DOWNLOADED, DOWNLOADING, PARTIALLY_DOWNLOADED, ...) -- `finished_download_time` ([DateTime](/reference/data-types)) — Time when file segment finished downloading. -- `cache_hits` ([UInt64](/reference/data-types)) — Number of cache hits of corresponding file segment -- `references` ([UInt64](/reference/data-types)) — Number of references to corresponding file segment. Value 1 means that nobody uses it at the moment (the only existing reference is in cache storage itself) -- `downloaded_size` ([UInt64](/reference/data-types)) — Downloaded size of the file segment -- `kind` ([String](/reference/data-types)) — File segment kind (used to distinguish between file segments added as a part of 'Temporary data in cache') -- `unbound` ([UInt8](/reference/data-types)) — Internal implementation flag -- `user_id` ([String](/reference/data-types)) — User id of the user which created the file segment -- `segment_type` ([String](/reference/data-types)) — Type of the segment. Used to separate data files(`.json`, `.txt` and etc) from data file(`.bin`, mark files). -- `file_size` ([Nullable(UInt64)](/reference/data-types)) — File size of the file to which current file segment belongs -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/filesystem_cache_log.mdx b/reference/system-tables/filesystem_cache_log.mdx deleted file mode 100644 index d75c2792..00000000 --- a/reference/system-tables/filesystem_cache_log.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -description: 'Contains a history of all events occurred with filesystem cache for objects on a remote filesystem. - -It is safe to truncate or drop this table at any time.' -keywords: ['system table', 'filesystem_cache_log'] -slug: /operations/system-tables/filesystem_cache_log -title: 'system.filesystem_cache_log' -doc_type: 'reference' ---- - -Contains a history of all events occurred with filesystem cache for objects on a remote filesystem. - -It is safe to truncate or drop this table at any time. - -Columns: - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname -- `event_date` ([Date](/reference/data-types/date)) — Event date -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time -- `query_id` ([String](/reference/data-types/string)) — Id of the query -- `source_file_path` ([String](/reference/data-types/string)) — File segment path on filesystem -- `file_segment_range` ([Tuple(UInt64, UInt64)](/reference/data-types/tuple)) — File segment range -- `total_requested_range` ([Tuple(UInt64, UInt64)](/reference/data-types/tuple)) — Full read range -- `key` ([String](/reference/data-types/string)) — File segment key -- `offset` ([UInt64](/reference/data-types/int-uint)) — File segment offset -- `size` ([UInt64](/reference/data-types/int-uint)) — Read size -- `read_type` ([String](/reference/data-types/string)) — Read type: READ_FROM_CACHE, READ_FROM_FS_AND_DOWNLOADED_TO_CACHE, READ_FROM_FS_BYPASSING_CACHE -- `read_from_cache_attempted` ([UInt8](/reference/data-types/int-uint)) — Whether reading from cache was attempted -- `read_buffer_id` ([String](/reference/data-types/string)) — Internal implementation read buffer id -- `user_id` ([String](/reference/data-types/string)) — User id of the user which created the file segment -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/filesystem_cache_settings.mdx b/reference/system-tables/filesystem_cache_settings.mdx deleted file mode 100644 index 8f563545..00000000 --- a/reference/system-tables/filesystem_cache_settings.mdx +++ /dev/null @@ -1,49 +0,0 @@ ---- -description: 'Contains information about all filesystem cache settings' -keywords: ['system table', 'filesystem_cache_settings'] -slug: /operations/system-tables/filesystem_cache_settings -title: 'system.filesystem_cache_settings' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about all filesystem cache settings - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `cache_name` ([String](/reference/data-types)) — Cache name -- `path` ([String](/reference/data-types)) — Cache directory path -- `max_size` ([UInt64](/reference/data-types)) — Maximum cache size -- `max_elements` ([UInt64](/reference/data-types)) — Maximum number of cache elements, e.g. file segments (limits number of files on filesystem) -- `max_file_segment_size` ([UInt64](/reference/data-types)) — Maximum size of a single file segment -- `boundary_alignment` ([UInt64](/reference/data-types)) — File segment alignment -- `cache_on_write_operations` ([UInt8](/reference/data-types)) — Enables write-through cache (cache on INSERT and MERGE) -- `cache_policy` ([String](/reference/data-types)) — Cache eviction policy -- `slru_size_ratio` ([Float64](/reference/data-types)) — SLRU cache policy size ratio of protected to probationary elements -- `background_download_threads` ([UInt64](/reference/data-types)) — Number of background download threads. Value 0 disables background download -- `background_download_queue_size_limit` ([UInt64](/reference/data-types)) — Size of background download queue. Value 0 disables background download -- `background_download_max_file_segment_size` ([UInt64](/reference/data-types)) — Maximum size which can be downloaded in background download -- `load_metadata_threads` ([UInt64](/reference/data-types)) — Maximum number of threads used to load cache metadata at server startup -- `load_metadata_asynchronously` ([UInt8](/reference/data-types)) — Enables asynchronous loading of metadata on server startup -- `keep_free_space_size_ratio` ([Float64](/reference/data-types)) — A ratio of free space which cache would try to uphold in the background -- `keep_free_space_elements_ratio` ([Float64](/reference/data-types)) — A ratio of free elements which cache would try to uphold in the background -- `keep_free_space_remove_batch` ([UInt64](/reference/data-types)) — A remove batch size of cache elements made by background thread which upholds free space/elements ratio -- `enable_filesystem_query_cache_limit` ([UInt8](/reference/data-types)) — Enable limiting maximum size of cache which can be written within a query -- `cache_hits_threshold` ([UInt64](/reference/data-types)) — Deprecated setting -- `enable_bypass_cache_with_threshold` ([UInt8](/reference/data-types)) — Undocumented. Not recommended for use -- `bypass_cache_threshold` ([UInt64](/reference/data-types)) — Undocumented. Not recommended for use -- `write_cache_per_user_id_directory` ([UInt8](/reference/data-types)) — Internal ClickHouse Cloud setting -- `allow_dynamic_cache_resize` ([UInt8](/reference/data-types)) — Allow dynamic resize of filesystem cache -- `dynamic_resize_lock_wait_ms` ([UInt64](/reference/data-types)) — Timeout in milliseconds to acquire the dynamic resize exclusive lock before skipping the resize attempt -- `max_size_ratio_to_total_space` ([Float64](/reference/data-types)) — Ratio of `max_size` to total disk space -- `skip_cache_on_disk_failure` ([UInt8](/reference/data-types)) — If true, bypass filesystem cache operations silently on disk IO errors. If false (default), disk IO errors are propagated as startup failures. -- `use_split_cache` ([UInt8](/reference/data-types)) — Use separation of files to system/data. -- `split_cache_ratio` ([Float64](/reference/data-types)) — Ratio of system segment to total size of cache for split_cache. -- `overcommit_eviction_evict_step` ([UInt64](/reference/data-types)) — Eviction step in bytes for overcommit eviction policy. Used for keep_free_space_*_ratio settings -- `check_cache_probability` ([Float64](/reference/data-types)) — Works only for debug or sanitizer build. Checks cache correctness by going through all cache and checking state of each cache element -- `is_initialized` ([UInt8](/reference/data-types)) — Indicates whether cache was successfully initialized -- `current_size` ([UInt64](/reference/data-types)) — Current cache size -- `current_elements_num` ([UInt64](/reference/data-types)) — Current cache elements (file segments) number -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/filesystem_read_prefetches_log.mdx b/reference/system-tables/filesystem_read_prefetches_log.mdx deleted file mode 100644 index d26c2c1f..00000000 --- a/reference/system-tables/filesystem_read_prefetches_log.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -description: 'Contains a history of all prefetches done during reading from MergeTree tables backed by a remote filesystem. - -It is safe to truncate or drop this table at any time.' -keywords: ['system table', 'filesystem_read_prefetches_log'] -slug: /operations/system-tables/filesystem_read_prefetches_log -title: 'system.filesystem_read_prefetches_log' -doc_type: 'reference' ---- - -Contains a history of all prefetches done during reading from MergeTree tables backed by a remote filesystem. - -It is safe to truncate or drop this table at any time. - -Columns: - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) -- `event_date` ([Date](/reference/data-types/date)) -- `event_time` ([DateTime](/reference/data-types/datetime)) -- `query_id` ([String](/reference/data-types/string)) -- `path` ([String](/reference/data-types/string)) -- `offset` ([UInt64](/reference/data-types/int-uint)) -- `size` ([Int64](/reference/data-types/int-uint)) -- `prefetch_submit_time` ([DateTime64(6)](/reference/data-types/datetime64)) -- `priority` ([Int64](/reference/data-types/int-uint)) -- `prefetch_execution_start_time` ([DateTime64(6)](/reference/data-types/datetime64)) -- `prefetch_execution_end_time` ([DateTime64(6)](/reference/data-types/datetime64)) -- `prefetch_execution_time_us` ([UInt64](/reference/data-types/int-uint)) -- `state` ([String](/reference/data-types/string)) -- `thread_id` ([UInt64](/reference/data-types/int-uint)) -- `reader_id` ([String](/reference/data-types/string)) -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/formats.mdx b/reference/system-tables/formats.mdx deleted file mode 100644 index 48792d18..00000000 --- a/reference/system-tables/formats.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -description: 'Contains a list of all the formats along with flags whether a format is suitable for input/output or whether it supports parallelization.' -keywords: ['system table', 'formats'] -slug: /operations/system-tables/formats -title: 'system.formats' -doc_type: 'reference' ---- - -## Description {#description} - -Contains a list of all the formats along with flags whether a format is suitable for input/output or whether it supports parallelization. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Format name. -- `is_input` ([UInt8](/reference/data-types)) — Flag that indicates whether the format is suitable for data input. -- `is_output` ([UInt8](/reference/data-types)) — Flag that indicates whether the format is suitable for data output. -- `supports_parallel_parsing` ([UInt8](/reference/data-types)) — Flag that indicates whether the format supports parallel parsing. -- `supports_parallel_formatting` ([UInt8](/reference/data-types)) — Flag that indicates whether the format supports parallel formatting. -- `is_tty_friendly` ([UInt8](/reference/data-types)) — Flag that indicates whether the format usually displays fine in the terminal. For other formats, CLI will ask before output. -- `content_type` ([String](/reference/data-types)) — HTTP Content-Type corresponding to the output format. May depend on the current format settings. -- `supports_random_access` ([UInt8](/reference/data-types)) — Flag that indicates whether the format supports random access in the input. -- `has_schema_inference` ([UInt8](/reference/data-types)) — The format can dynamically determine the schema from the data (either from embedded header/metadata or from the piece of data). -- `has_external_schema` ([UInt8](/reference/data-types)) — The format either has a fixed schema or accepts a predefined schema in its own format. -- `prefers_large_blocks` ([UInt8](/reference/data-types)) — The format will write larger blocks into output and generate larger blocks on input. -- `supports_append` ([UInt8](/reference/data-types)) — It's possible to append into a single file with this format. -- `supports_subsets_of_columns` ([UInt8](/reference/data-types)) — The input format can recognize when certain columns are omitted. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/functions.mdx b/reference/system-tables/functions.mdx deleted file mode 100644 index c7bed7aa..00000000 --- a/reference/system-tables/functions.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -description: 'System table containing information about normal and aggregate functions.' -keywords: ['system table', 'functions'] -slug: /operations/system-tables/functions -title: 'system.functions' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about normal and aggregate functions. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — The name of the function. -- `is_aggregate` ([UInt8](/reference/data-types)) — Whether the function is an aggregate function. -- `case_insensitive` ([UInt8](/reference/data-types)) — Whether the function name can be used case-insensitively. -- `alias_to` ([String](/reference/data-types)) — The original function name, if the function name is an alias. -- `create_query` ([String](/reference/data-types)) — Obsolete. -- `origin` ([Enum8('System' = 0, 'SQLUserDefined' = 1, 'ExecutableUserDefined' = 2, 'WasmUserDefined' = 3)](/reference/data-types)) — Obsolete. -- `description` ([String](/reference/data-types)) — A high-level description what the function does. -- `syntax` ([String](/reference/data-types)) — Signature of the function. -- `arguments` ([String](/reference/data-types)) — The function arguments. -- `parameters` ([String](/reference/data-types)) — The function parameters (only for aggregate function). -- `returned_value` ([String](/reference/data-types)) — What does the function return. -- `examples` ([String](/reference/data-types)) — Usage example. -- `introduced_in` ([String](/reference/data-types)) — ClickHouse version in which the function was first introduced. -- `categories` ([String](/reference/data-types)) — The category of the function. -- `deterministic` ([Nullable(UInt8)](/reference/data-types)) — Whether the function returns the same result for the same arguments. NULL when unknown (e.g. aggregate or user-defined functions). -- `higher_order` ([Nullable(UInt8)](/reference/data-types)) — Whether the function is higher-order — i.e. accepts at least one lambda expression as an argument (e.g. arrayMap, arrayFilter, mapApply). NULL when unknown. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql title="Query" - SELECT name, is_aggregate, deterministic, case_insensitive, alias_to FROM system.functions LIMIT 5; -``` - -```text title="Response" -┌─name─────────────────────┬─is_aggregate─┬─deterministic─┬─case_insensitive─┬─alias_to─┐ -│ BLAKE3 │ 0 │ 1 │ 0 │ │ -│ sipHash128Reference │ 0 │ 1 │ 0 │ │ -│ mapExtractKeyLike │ 0 │ 1 │ 0 │ │ -│ sipHash128ReferenceKeyed │ 0 │ 1 │ 0 │ │ -│ mapPartialSort │ 0 │ 1 │ 0 │ │ -└──────────────────────────┴──────────────┴──────────────────┴──────────────────┴──────────┘ - -5 rows in set. Elapsed: 0.002 sec. -``` diff --git a/reference/system-tables/graphite_retentions.mdx b/reference/system-tables/graphite_retentions.mdx deleted file mode 100644 index 01a721f0..00000000 --- a/reference/system-tables/graphite_retentions.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -description: 'System table containing information about parameters `graphite_rollup` - which are used in tables with `GraphiteMergeTree` type engines.' -keywords: ['system table', 'graphite_retentions'] -slug: /operations/system-tables/graphite_retentions -title: 'system.graphite_retentions' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about parameters [graphite_rollup](/reference/settings/server-settings/settings#graphite) which are used in tables with [\*GraphiteMergeTree](/reference/engines/table-engines/mergetree-family/graphitemergetree) engines. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `config_name` ([String](/reference/data-types)) — graphite_rollup parameter name. -- `rule_type` ([String](/reference/data-types)) — The rule type. Possible values: RuleTypeAll = 0 - default, with regex, compatible with old scheme; RuleTypePlain = 1 - plain metrics, with regex, compatible with old scheme; RuleTypeTagged = 2 - tagged metrics, with regex, compatible with old scheme; RuleTypeTagList = 3 - tagged metrics, with regex (converted to RuleTypeTagged from string like 'retention=10min ; env=(staging|prod)') -- `regexp` ([String](/reference/data-types)) — A pattern for the metric name. -- `function` ([String](/reference/data-types)) — The name of the aggregating function. -- `age` ([UInt64](/reference/data-types)) — The minimum age of the data in seconds. -- `precision` ([UInt64](/reference/data-types)) — How precisely to define the age of the data in seconds. -- `priority` ([UInt16](/reference/data-types)) — Pattern priority. -- `is_default` ([UInt8](/reference/data-types)) — Whether the pattern is the default. -- `Tables.database` ([Array(String)](/reference/data-types)) — Array of names of database tables that use the `config_name` parameter. -- `Tables.table` ([Array(String)](/reference/data-types)) — Array of table names that use the `config_name` parameter. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/histogram_metric_log.mdx b/reference/system-tables/histogram_metric_log.mdx deleted file mode 100644 index 86b2e9ee..00000000 --- a/reference/system-tables/histogram_metric_log.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -description: 'System table containing periodic snapshots of histogram metrics, flushed to disk.' -keywords: ['system table', 'histogram_metric_log'] -sidebarTitle: 'histogram_metric_log' -slug: /operations/system-tables/histogram_metric_log -title: 'system.histogram_metric_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -History of `system.histogram_metrics`. Snapshot taken every `collect_interval_milliseconds`, flushed to disk. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Event date. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Event time with microseconds resolution. -- `metric` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Metric name. -- `labels` ([Map(LowCardinality(String), LowCardinality(String))](/reference/data-types/map)) — Metric labels. -- `histogram` ([Map(Float64, UInt64)](/reference/data-types/map)) — Cumulative histogram: maps bucket upper bound to number of observations ≤ that bound; includes +inf as the final bucket. -- `count` ([UInt64](/reference/data-types/int-uint)) — Total number of observations, equals histogram[+inf]. -- `sum` ([Float64](/reference/data-types/float)) — Sum of all observed values. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT event_time, metric, labels, histogram -FROM system.histogram_metric_log -WHERE metric = 'keeper_response_time_ms' -ORDER BY event_time DESC -LIMIT 1 -FORMAT Vertical; -``` - -## See Also {#see-also} - -- [system.histogram_metrics](/reference/system-tables/histogram_metrics) — Live histogram metrics. -- [system.metric_log](/reference/system-tables/metric_log) — History of `system.metrics` and `system.events`. diff --git a/reference/system-tables/iceberg_history.mdx b/reference/system-tables/iceberg_history.mdx deleted file mode 100644 index 7ba75271..00000000 --- a/reference/system-tables/iceberg_history.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -description: 'System iceberg snapshot history' -keywords: ['system iceberg_history'] -slug: /operations/system-tables/iceberg_history -title: 'system.iceberg_history' -doc_type: 'reference' ---- - -## Description {#description} - -This system table contain the snapshot history of Iceberg tables existing in ClickHouse. It will be empty if you don't have any Iceberg table in ClickHouse. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Database name. -- `table` ([String](/reference/data-types)) — Table name. -- `made_current_at` ([Nullable(DateTime64(3))](/reference/data-types)) — Date & time when this snapshot was made current snapshot -- `snapshot_id` ([UInt64](/reference/data-types)) — Snapshot id which is used to identify a snapshot. -- `parent_id` ([UInt64](/reference/data-types)) — Parent id of this snapshot. -- `is_current_ancestor` ([UInt8](/reference/data-types)) — Flag that indicates if this snapshot is an ancestor of the current snapshot. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/index.mdx b/reference/system-tables/index.mdx deleted file mode 100644 index e6d54c21..00000000 --- a/reference/system-tables/index.mdx +++ /dev/null @@ -1,180 +0,0 @@ ---- -description: 'Overview of what system tables are and why they are useful.' -keywords: ['system tables', 'overview'] -sidebarTitle: 'Overview' -slug: /operations/system-tables/ -title: 'System Tables' -doc_type: 'reference' ---- - -{/* The table of contents table for this page is automatically generated by -https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh -from the YAML front matter fields: slug, description, title. - -If you've spotted an error, please edit the YML frontmatter of the pages themselves. -*/} - -{/*AUTOGENERATED_START*/} -| Page | Description | -|-----|-----| -| [System Tables Overview](/reference/system-tables/overview) | Overview of what system tables are and why they are useful. | -| [system.histogram_metric_log](/reference/system-tables/histogram_metric_log) | System table containing periodic snapshots of histogram metrics, flushed to disk. | -| [INFORMATION_SCHEMA](/reference/system-tables/information_schema) | System database providing an almost standardized DBMS-agnostic view on metadata of database objects. | -| [system.aggregate_function_combinators](/reference/system-tables/aggregate_function_combinators) | Contains a list of all available aggregate function combinators, which could be applied to aggregate functions and change the way they work. | -| [system.aggregated_zookeeper_log](/reference/system-tables/aggregated_zookeeper_log) | System table containing aggregated statistics of ZooKeeper operations grouped by session, path, operation type, component, and subrequest flag. | -| [system.asynchronous_insert_log](/reference/system-tables/asynchronous_insert_log) | System table containing information about async inserts. Each entry represents an insert query buffered into an async insert query. | -| [system.asynchronous_loader](/reference/system-tables/asynchronous_loader) | System table containing information about and status of recent asynchronous jobs (e.g. for tables which are loading). The table contains a row for every job. | -| [system.asynchronous_metric_log](/reference/system-tables/asynchronous_metric_log) | System table containing historical values for `system.asynchronous_metrics`, which are saved once per time interval (one second by default) | -| [system.asynchronous_inserts](/reference/system-tables/asynchronous_inserts) | System table containing information about pending asynchronous inserts in queue. | -| [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) | System table containing metrics that are calculated periodically in the background. For example, the amount of RAM in use. | -| [system.azure_queue_settings](/reference/system-tables/azure_queue_settings) | System table containing information about settings of AzureQueue tables. Available from server version `24.10`. | -| [system.azure_queue_metadata_cache](/reference/system-tables/azure_queue_metadata_cache) | Contains in-memory state of AzureQueue metadata and currently processed rows per file. | -| [system.azure_queue_log](/reference/system-tables/azure_queue_log) | Contains log entries with information about files processed by the AzureQueue engine. -It is safe to truncate or drop this table at any time. | -| [system.background_schedule_pool_log](/reference/system-tables/background_schedule_pool_log) | System table containing history of background schedule pool task executions. | -| [system.background_schedule_pool](/reference/system-tables/background_schedule_pool) | System table containing information about tasks in background schedule pools. | -| [system.backup_log](/reference/system-tables/backup_log) | System table containing logging entries with information about `BACKUP` and `RESTORE` operations. | -| [system.backups](/reference/system-tables/backups) | System table containing logging entries with information about `BACKUP` and `RESTORE` operations. | -| [system.blob_storage_log](/reference/system-tables/blob_storage_log) | System table containing logging entries with information about various blob storage operations such as uploads and deletes. | -| [system.build_options](/reference/system-tables/build_options) | System table containing information about ClickHouse server's build options. | -| [system.certificates](/reference/system-tables/certificates) | Contains information about available certificates and their sources. | -| [system.clusters](/reference/system-tables/clusters) | System table containing information about clusters available in the config file and the servers defined in them. | -| [system.codecs](/reference/system-tables/codecs) | System table containing information about codecs in queue. | -| [system.collations](/reference/system-tables/collations) | Contains a list of all available collations for alphabetical comparison of strings. | -| [system.columns](/reference/system-tables/columns) | System table containing information about columns in all tables | -| [system.completions](/reference/system-tables/completions) | Contains a list of completion tokens. | -| [system.contributors](/reference/system-tables/contributors) | System table containing information about contributors. | -| [system.crash_log](/reference/system-tables/crash_log) | System table containing information about stack traces for fatal errors. | -| [system.current_roles](/reference/system-tables/current_roles) | System table containing active roles for the current user. | -| [system.dashboards](/reference/system-tables/dashboards) | Contains queries used by `/dashboard` page accessible though the HTTP interface. useful for monitoring and troubleshooting. | -| [system.data_skipping_indices](/reference/system-tables/data_skipping_indices) | System table containing information about existing data skipping indices in all the tables. | -| [system.data_type_families](/reference/system-tables/data_type_families) | System table containing information about supported data types | -| [system.database_engines](/reference/system-tables/database_engines) | System table containing a list of database engines supported by the server. | -| [system.database_replicas](/reference/system-tables/database_replicas) | System table containing information about and status of replicated database. | -| [system.databases](/reference/system-tables/databases) | System table containing information about the databases that are available to the current user. | -| [system.dead_letter_queue](/reference/system-tables/dead_letter_queue) | System table containing information about messages received via a streaming engine and parsed with errors. | -| [system.delta_lake_metadata_log](/reference/system-tables/delta_metadata_log) | System table containing information about metadata files read from Delta Lake tables. Each entry represents a root metadata JSON file. | -| [system.detached_parts](/reference/system-tables/detached_parts) | System table containing information about detached parts of MergeTree tables | -| [system.detached_tables](/reference/system-tables/detached_tables) | System table containing information about each detached table. | -| [system.dictionaries](/reference/system-tables/dictionaries) | System table containing information about dictionaries | -| [system.dimensional_metrics](/reference/system-tables/dimensional_metrics) | This table contains dimensional metrics that can be calculated instantly and exported in the Prometheus format. It is always up to date. | -| [system.disks](/reference/system-tables/disks) | System table containing information about disks defined in the server configuration | -| [system.distributed_ddl_queue](/reference/system-tables/distributed_ddl_queue) | System table containing information about distributed ddl queries (queries using the ON CLUSTER clause) that were executed on a cluster. | -| [system.distribution_queue](/reference/system-tables/distribution_queue) | System table containing information about local files that are in the queue to be sent to the shards. | -| [system.dns_cache](/reference/system-tables/dns_cache) | System table containing information about cached DNS records. | -| [system.dropped_tables](/reference/system-tables/dropped_tables) | System table containing information about tables that drop table has been executed on but for which data cleanup has not yet been performed | -| [system.dropped_tables_parts](/reference/system-tables/dropped_tables_parts) | System table containing information about parts of MergeTree dropped tables from `system.dropped_tables` | -| [system.enabled_roles](/reference/system-tables/enabled_roles) | System table containing all active roles at the moment, including the current role of the current user and the granted roles for the current role | -| [system.error_log](/reference/system-tables/error_log) | System table containing the history of error values from table `system.errors`, periodically flushed to disk. | -| [system.errors](/reference/system-tables/errors) | System table containing error codes with the number of times they have been triggered. | -| [system.events](/reference/system-tables/events) | System table containing information about the number of events that have occurred in the system. | -| [system.fail_points](/reference/system-tables/fail_points) | Contains a list of all available failpoints with their type and current status. | -| [system.filesystem_cache_settings](/reference/system-tables/filesystem_cache_settings) | Contains information about all filesystem cache settings | -| [system.filesystem_read_prefetches_log](/reference/system-tables/filesystem_read_prefetches_log) | Contains a history of all prefetches done during reading from MergeTree tables backed by a remote filesystem. -It is safe to truncate or drop this table at any time. | -| [system.filesystem_cache_log](/reference/system-tables/filesystem_cache_log) | Contains a history of all events occurred with filesystem cache for objects on a remote filesystem. -It is safe to truncate or drop this table at any time. | -| [system.filesystem_cache](/reference/system-tables/filesystem_cache) | Contains information about all entries inside filesystem cache for remote objects. | -| [system.formats](/reference/system-tables/formats) | Contains a list of all the formats along with flags whether a format is suitable for input/output or whether it supports parallelization. | -| [system.functions](/reference/system-tables/functions) | System table containing information about normal and aggregate functions. | -| [system.grants](/reference/system-tables/grants) | System table showing which privileges are granted to ClickHouse user accounts. | -| [system.graphite_retentions](/reference/system-tables/graphite_retentions) | System table containing information about parameters `graphite_rollup` which are used in tables with `GraphiteMergeTree` type engines. | -| [system.histogram_metrics](/reference/system-tables/histogram_metrics) | This table contains histogram metrics that can be calculated instantly and exported in the Prometheus format. It is always up to date. | -| [system.iceberg_history](/reference/system-tables/iceberg_history) | System iceberg snapshot history | -| [system.iceberg_metadata_log](/reference/system-tables/iceberg_metadata_log) | System table containing information about metadata files read from Iceberg tables. Each entry represents either a root metadata file, metadata extracted from an Avro file, or an entry of some Avro file. | -| [system.instrumentation](/reference/system-tables/instrumentation) | System table containing the instrumentation points | -| [system.jemalloc_stats](/reference/system-tables/jemalloc_stats) | Returns jemalloc statistics in a single row with a single column. Equivalent to SYSTEM JEMALLOC STATS command. | -| [system.jemalloc_bins](/reference/system-tables/jemalloc_bins) | System table containing information about memory allocations done via jemalloc allocator in different size classes (bins) aggregated from all arenas. | -| [system.jemalloc_profile_text](/reference/system-tables/jemalloc_profile_text) | Displays the symbolized jemalloc heap profile. Run 'SYSTEM JEMALLOC FLUSH PROFILE' to generate a profile first. | -| [system.kafka_consumers](/reference/system-tables/kafka_consumers) | System table containing information about Kafka consumers. | -| [system.keywords](/reference/system-tables/keywords) | Contains a list of all keywords used in ClickHouse parser. | -| [system.licenses](/reference/system-tables/licenses) | System table containing licenses of third-party libraries that are located in the contrib directory of ClickHouse sources. | -| [system.macros](/reference/system-tables/macros) | Contains a list of all macros defined in server configuration. | -| [system.masking_policies](/reference/system-tables/masking_policies) | System table containing information about all masking policies in the system. | -| [system.merge_tree_settings](/reference/system-tables/merge_tree_settings) | System table containing information about settings for MergeTree tables. | -| [system.merges](/reference/system-tables/merges) | System table containing information about merges and part mutations currently in process for tables in the MergeTree family. | -| [system.metric_log](/reference/system-tables/metric_log) | System table containing history of metrics values from tables `system.metrics` and `system.events`, periodically flushed to disk. | -| [system.metrics](/reference/system-tables/metrics) | System table containing metrics which can be calculated instantly, or have a current value. | -| [system.models](/reference/system-tables/models) | Contains a list of CatBoost models loaded into a LibraryBridge's memory along with time when it was loaded. | -| [system.moves](/reference/system-tables/moves) | System table containing information about in-progress data part moves of MergeTree tables. Each data part movement is represented by a single row. | -| [system.mutations](/reference/system-tables/mutations) | System table containing information about mutations of MergeTree tables and their progress. Each mutation command is represented by a single row. | -| [system.named_collections](/reference/system-tables/named_collections) | Contains a list of all named collections which were created via SQL query or parsed from configuration file. | -| [system.numbers_mt](/reference/system-tables/numbers_mt) | System table similar to `system.numbers` but reads are parallelized and numbers can be returned in any order. | -| [system.numbers](/reference/system-tables/numbers) | System table containing a single UInt64 column named `number` that contains almost all the natural numbers starting from zero. | -| [system.one](/reference/system-tables/one) | System table containing a single row with a single `dummy` UInt8 column containing the value 0. Similar to the `DUAL` table found in other DBMSs. | -| [system.opentelemetry_span_log](/reference/system-tables/opentelemetry_span_log) | System table containing information about trace spans for executed queries. | -| [system.part_moves_between_shards](/reference/system-tables/part_moves_between_shards) | Contains information about parts which are currently in a process of moving between shards and their progress. | -| [system.part_log](/reference/system-tables/part_log) | System table containing information about events that occurred with data parts in the MergeTree family tables, such as adding or merging of data. | -| [system.parts](/reference/system-tables/parts) | System table containing information about parts of MergeTree | -| [system.parts_columns](/reference/system-tables/parts_columns) | System table containing information about parts and columns of MergeTree tables. | -| [system.predicate_statistics_log](/reference/system-tables/predicate_statistics_log) | System table containing sampled filter and index selectivity statistics collected from `MergeTree` read pipelines during query execution. | -| [system.primes](/reference/system-tables/primes) | System table containing a single UInt64 column named `prime` that contains prime numbers in ascending order, starting from 2. | -| [system.privileges](/reference/system-tables/privileges) | Contains a list of all available privileges that could be granted to a user or role. | -| [system.processes](/reference/system-tables/processes) | System table used for implementing the `SHOW PROCESSLIST` query. | -| [system.processors_profile_log](/reference/system-tables/processors_profile_log) | System table containing profiling information on the processors level (which can be found in `EXPLAIN PIPELINE`) | -| [system.projection_parts_columns](/reference/system-tables/projection_parts_columns) | System table containing information about columns in projection parts for tables of the MergeTree family | -| [system.projection_parts](/reference/system-tables/projection_parts) | System table containing information about projection parts for tables of the MergeTree family. | -| [system.projections](/reference/system-tables/projections) | System table containing information about existing projections in all tables. | -| [system.query_views_log](/reference/system-tables/query_views_log) | System table containing information about the dependent views executed when running a query, for example, the view type or the execution time. | -| [system.query_condition_cache](/reference/system-tables/query_condition_cache) | System table which shows the content of the query condition cache. | -| [system.query_thread_log](/reference/system-tables/query_thread_log) | System table containing information about threads that execute queries, for example, thread name, thread start time, duration of query processing. | -| [system.query_metric_log](/reference/system-tables/query_metric_log) | System table containing a history of memory and metric values from table `system.events` for individual queries, periodically flushed to disk. | -| [system.query_log](/reference/system-tables/query_log) | System table containing information about executed queries, for example, start time, duration of processing, error messages. | -| [system.query_cache](/reference/system-tables/query_cache) | System table which shows the content of the query cache. | -| [system.quota_usage](/reference/system-tables/quota_usage) | System table containing formation about quota usage by the current user such as how much of the quota is used and how much is left. | -| [system.quota_limits](/reference/system-tables/quota_limits) | System table containing information about maximums for all intervals of all quotas. Any number of rows or zero can correspond to one quota. | -| [system.quotas_usage](/reference/system-tables/quotas_usage) | System table containing formation about quota usage by all users. | -| [system.quotas](/reference/system-tables/quotas) | System table containing information about quotas. | -| [system.remote_data_paths](/reference/system-tables/remote_data_paths) | System table containing information about data files stored on remote disks such as S3 or Azure Blob Storage. | -| [system.replicas](/reference/system-tables/replicas) | System table containing information about and status of replicated tables residing on the local server. Useful for monitoring. | -| [system.replicated_merge_tree_settings](/reference/system-tables/replicated_merge_tree_settings) | Contains a list of all ReplicatedMergeTree engine specific settings, their current and default values along with descriptions. You may change any of them in SETTINGS section in CREATE query. | -| [system.replicated_fetches](/reference/system-tables/replicated_fetches) | System table containing information about currently running background fetches. | -| [system.replication_queue](/reference/system-tables/replication_queue) | System table containing information about tasks from replication queues stored in ClickHouse Keeper, or ZooKeeper, for tables in the `ReplicatedMergeTree` family. | -| [system.resources](/reference/system-tables/resources) | System table containing information about resources residing on the local server with one row for every resource. | -| [system.rocksdb](/reference/system-tables/rocksdb) | Contains a list of metrics exposed from embedded RocksDB. | -| [system.role_grants](/reference/system-tables/role_grants) | System table containing the role grants for users and roles. | -| [system.roles](/reference/system-tables/roles) | System table containing information about configured roles. | -| [system.row_policies](/reference/system-tables/row_policies) | System table containing filters for one particular table, as well as a list of roles and/or users which should use this row policy. | -| [system.s3_queue_settings](/reference/system-tables/s3_queue_settings) | System table containing information about the settings of S3Queue tables. Available from server version `24.10`. | -| [system.s3queue_metadata_cache](/reference/system-tables/s3queue_metadata_cache) | Contains in-memory state of S3Queue metadata and currently processed rows per file. | -| [system.s3queue_log](/reference/system-tables/s3queue_log) | Contains log entries with information about files processed by the S3Queue engine. -It is safe to truncate or drop this table at any time. | -| [system.scheduler](/reference/system-tables/scheduler) | System table containing information about and status of scheduling nodes residing on the local server. | -| [system.schema_inference_cache](/reference/system-tables/schema_inference_cache) | System table containing information about all cached file schemas. | -| [system.server_settings](/reference/system-tables/server_settings) | System table containing formation about global settings for the server, which are specified in `config.xml`. | -| [system.session_log](/reference/system-tables/session_log) | System table containing information about all successful and failed login and logout events. | -| [system.settings](/reference/system-tables/settings) | System table containing information about session settings for current user. | -| [system.settings_profile_elements](/reference/system-tables/settings_profile_elements) | System table which describes the content of the settings profile: constraints, roles and users that the setting applies to, parent settings profiles. | -| [system.settings_changes](/reference/system-tables/settings_changes) | System table containing information about setting changes in previous ClickHouse versions. | -| [system.settings_profiles](/reference/system-tables/settings_profiles) | System table which contains properties of configured setting profiles. | -| [system.stack_trace](/reference/system-tables/stack_trace) | System table which contains stack traces of all server threads. Allows developers to introspect the server state. | -| [system.storage_policies](/reference/system-tables/storage_policies) | System table containing information about storage policies and volumes which are defined in server configuration. | -| [system.symbols](/reference/system-tables/symbols) | System table useful for C++ experts and ClickHouse engineers containing information for introspection of the `clickhouse` binary. | -| [system.table_engines](/reference/system-tables/table_engines) | System table containing descriptions of table engines supported by the server and the features they support. | -| [system.table_functions](/reference/system-tables/table_functions) | Contains a list of all available table functions with their descriptions. | -| [system.tables](/reference/system-tables/tables) | System table containing metadata of each table that the server knows about. | -| [system.text_log](/reference/system-tables/text_log) | System table containing logging entries. | -| [system.time_zones](/reference/system-tables/time_zones) | System table containing a list of time zones that are supported by the ClickHouse server. | -| [system.tokenizers](/reference/system-tables/tokenizers) | System table which shows all available tokenizers. | -| [system.trace_log](/reference/system-tables/trace_log) | System table containing stack traces collected by the sampling query profiler. | -| [system.transactions](/reference/system-tables/transactions) | Contains a list of transactions and their state. | -| [system.transactions_info_log](/reference/system-tables/transactions_info_log) | Contains information about all transactions executed on a current server. -It is safe to truncate or drop this table at any time. | -| [system.unicode](/reference/system-tables/unicode) | System table containing a list of Unicode characters and their properties. | -| [system.user_processes](/reference/system-tables/user_processes) | System table containing information useful for an overview of memory usage and ProfileEvents of users. | -| [system.user_directories](/reference/system-tables/user_directories) | Contains the information about configured user directories - directories on the file system from which ClickHouse server is allowed to read user provided data. | -| [system.user_defined_functions](/reference/system-tables/user_defined_functions) | System table containing loading status and configuration metadata for User-Defined Functions (UDFs). | -| [system.users](/reference/system-tables/users) | System table containing a list of user accounts configured on the server. | -| [system.view_refreshes](/reference/system-tables/view_refreshes) | System table containing information about Refreshable Materialized Views. | -| [system.warnings](/reference/system-tables/system_warnings) | This table contains warning messages about clickhouse server. | -| [system.warnings](/reference/system-tables/warnings) | Contains warnings about server configuration to be displayed by clickhouse-client right after it connects to the server. | -| [system.workloads](/reference/system-tables/workloads) | System table containing information for workloads residing on the local server. | -| [system.zeros](/reference/system-tables/zeros) | Produces unlimited number of non-materialized zeros. | -| [system.zeros_mt](/reference/system-tables/zeros_mt) | Multithreaded version of system.zeros. | -| [system.zookeeper_watches](/reference/system-tables/zookeeper_watches) | System table showing currently active ZooKeeper watches registered by this ClickHouse server. | -| [system.zookeeper_info](/reference/system-tables/zookeeper_info) | System table which outputs introspection of all available keeper nodes. | -| [system.zookeeper_log](/reference/system-tables/zookeeper_log) | System table containing information about the parameters of the request to the ZooKeeper server and the response from it. | -| [system.zookeeper_connection](/reference/system-tables/zookeeper_connection) | System table which exists only if ZooKeeper is configured. Shows current connections to ZooKeeper (including auxiliary ZooKeepers). | -| [system.zookeeper_connection_log](/reference/system-tables/zookeeper_connection_log) | Shows the history of ZooKeeper connections (including auxiliary ZooKeepers). | -| [system.zookeeper](/reference/system-tables/zookeeper) | System table which exists only if ClickHouse Keeper or ZooKeeper are configured. It exposes data from the Keeper cluster defined in the config. | -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/information_schema.mdx b/reference/system-tables/information_schema.mdx deleted file mode 100644 index c55b2d4c..00000000 --- a/reference/system-tables/information_schema.mdx +++ /dev/null @@ -1,364 +0,0 @@ ---- -description: 'System database providing an almost standardized DBMS-agnostic view - on metadata of database objects.' -keywords: ['system database', 'information_schema'] -slug: /operations/system-tables/information_schema -title: 'INFORMATION_SCHEMA' -doc_type: 'reference' ---- - -`INFORMATION_SCHEMA` (or: `information_schema`) is a system database which provides a (somewhat) standardized, [DBMS-agnostic view](https://en.wikipedia.org/wiki/Information_schema) on metadata of database objects. The views in `INFORMATION_SCHEMA` are generally inferior to normal system tables but tools can use them to obtain basic information in a cross-DBMS manner. The structure and content of views in `INFORMATION_SCHEMA` is supposed to evolves in a backwards-compatible way, i.e. only new functionality is added but existing functionality is not changed or removed. In terms of internal implementation, views in `INFORMATION_SCHEMA` usually map to to normal system tables like [system.columns](/reference/system-tables/columns), [system.databases](/reference/system-tables/databases) and [system.tables](/reference/system-tables/tables). - -```sql -SHOW TABLES FROM INFORMATION_SCHEMA; - --- or: -SHOW TABLES FROM information_schema; -``` - -```text -┌─name────────────────────┐ -│ COLUMNS │ -│ KEY_COLUMN_USAGE │ -│ REFERENTIAL_CONSTRAINTS │ -│ SCHEMATA │ -| STATISTICS | -│ TABLES │ -│ VIEWS │ -│ columns │ -│ key_column_usage │ -│ referential_constraints │ -│ schemata │ -| statistics | -│ tables │ -│ views │ -└─────────────────────────┘ -``` - -`INFORMATION_SCHEMA` contains the following views: - -- [COLUMNS](#columns) -- [KEY_COLUMN_USAGE](#key_column_usage) -- [REFERENTIAL_CONSTRAINTS](#referential_constraints) -- [SCHEMATA](#schemata) -- [STATISTICS](#statistics) -- [TABLES](#tables) -- [VIEWS](#views) - -Case-insensitive equivalent views, e.g. `INFORMATION_SCHEMA.columns` are provided for reasons of compatibility with other databases. The same applies to all the columns in these views - both lowercase (for example, `table_name`) and uppercase (`TABLE_NAME`) variants are provided. - -## COLUMNS {#columns} - -Contains columns read from the [system.columns](/reference/system-tables/columns) system table and columns that are not supported in ClickHouse or do not make sense (always `NULL`), but must be by the standard. - -Columns: - -{/*AUTOGENERATED_START*/} -- `table_catalog` ([String](/reference/data-types/string)) — Currently unused. -- `table_schema` ([String](/reference/data-types/string)) — Currently unused. -- `table_name` ([String](/reference/data-types/string)) — Currently unused. -- `non_unique` ([Int32](/reference/data-types/int-uint)) — Currently unused. -- `index_schema` ([String](/reference/data-types/string)) — Currently unused. -- `index_name` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — Currently unused. -- `seq_in_index` ([UInt32](/reference/data-types/int-uint)) — Currently unused. -- `column_name` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — Currently unused. -- `collation` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — Currently unused. -- `cardinality` ([Nullable](/reference/data-types/nullable)([Int64](/reference/data-types/int-uint))) — Currently unused. -- `sub_part` ([Nullable](/reference/data-types/nullable)([Int64](/reference/data-types/int-uint))) — Currently unused. -- `packed` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — Currently unused. -- `nullable` ([String](/reference/data-types/string)) — Currently unused. -- `index_type` ([String](/reference/data-types/string)) — Currently unused. -- `comment` ([String](/reference/data-types/string)) — Currently unused. -- `index_comment` ([String](/reference/data-types/string)) — Currently unused. -- `is_visible` ([String](/reference/data-types/string)) — Currently unused. -- `expression` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — Currently unused. -{/*AUTOGENERATED_END*/} - -**Example** - -```sql title="Query" -SELECT table_catalog, - table_schema, - table_name, - column_name, - ordinal_position, - column_default, - is_nullable, - data_type, - character_maximum_length, - character_octet_length, - numeric_precision, - numeric_precision_radix, - numeric_scale, - datetime_precision, - character_set_catalog, - character_set_schema, - character_set_name, - collation_catalog, - collation_schema, - collation_name, - domain_catalog, - domain_schema, - domain_name, - column_comment, - column_type -FROM INFORMATION_SCHEMA.COLUMNS -WHERE (table_schema = currentDatabase() OR table_schema = '') - AND table_name NOT LIKE '%inner%' -LIMIT 1 -FORMAT Vertical; -``` - -```text title="Response" -Row 1: -────── -table_catalog: default -table_schema: default -table_name: describe_example -column_name: id -ordinal_position: 1 -column_default: -is_nullable: 0 -data_type: UInt64 -character_maximum_length: ᴺᵁᴸᴸ -character_octet_length: ᴺᵁᴸᴸ -numeric_precision: 64 -numeric_precision_radix: 2 -numeric_scale: 0 -datetime_precision: ᴺᵁᴸᴸ -character_set_catalog: ᴺᵁᴸᴸ -character_set_schema: ᴺᵁᴸᴸ -character_set_name: ᴺᵁᴸᴸ -collation_catalog: ᴺᵁᴸᴸ -collation_schema: ᴺᵁᴸᴸ -collation_name: ᴺᵁᴸᴸ -domain_catalog: ᴺᵁᴸᴸ -domain_schema: ᴺᵁᴸᴸ -domain_name: ᴺᵁᴸᴸ -``` - -## SCHEMATA {#schemata} - -Contains columns read from the [system.databases](/reference/system-tables/databases) system table and columns that are not supported in ClickHouse or do not make sense (always `NULL`), but must be by the standard. - -Columns: - -- `catalog_name` ([String](/reference/data-types/string)) — The name of the database. -- `schema_name` ([String](/reference/data-types/string)) — The name of the database. -- `schema_owner` ([String](/reference/data-types/string)) — Schema owner name, always `'default'`. -- `default_character_set_catalog` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — `NULL`, not supported. -- `default_character_set_schema` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — `NULL`, not supported. -- `default_character_set_name` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — `NULL`, not supported. -- `sql_path` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — `NULL`, not supported. - -**Example** - -```sql title="Query" -SELECT catalog_name, - schema_name, - schema_owner, - default_character_set_catalog, - default_character_set_schema, - default_character_set_name, - sql_path -FROM information_schema.schemata -WHERE schema_name ILIKE 'information_schema' -LIMIT 1 -FORMAT Vertical; -``` - -```text title="Response" -Row 1: -────── -catalog_name: INFORMATION_SCHEMA -schema_name: INFORMATION_SCHEMA -schema_owner: default -default_character_set_catalog: ᴺᵁᴸᴸ -default_character_set_schema: ᴺᵁᴸᴸ -default_character_set_name: ᴺᵁᴸᴸ -sql_path: ᴺᵁᴸᴸ -``` - -## TABLES {#tables} - -Contains columns read from the [system.tables](/reference/system-tables/tables) system table. - -Columns: - -- `table_catalog` ([String](/reference/data-types/string)) — The name of the database in which the table is located. -- `table_schema` ([String](/reference/data-types/string)) — The name of the database in which the table is located. -- `table_name` ([String](/reference/data-types/string)) — Table name. -- `table_type` ([String](/reference/data-types/string)) — Table type. Possible values: - - `BASE TABLE` - - `VIEW` - - `FOREIGN TABLE` - - `LOCAL TEMPORARY` - - `SYSTEM VIEW` -- `table_rows` ([Nullable](/reference/data-types/nullable)([UInt64](/reference/data-types/int-uint))) — The total number of rows. NULL if it could not be determined. -- `data_length` ([Nullable](/reference/data-types/nullable)([UInt64](/reference/data-types/int-uint))) — The size of the data on-disk. NULL if it could not be determined. -- `index_length` ([Nullable](/reference/data-types/nullable)([UInt64](/reference/data-types/int-uint))) — The total size of the primary key, secondary indexes, and all marks. -- `table_collation` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — The table default collation. Always `utf8mb4_0900_ai_ci`. -- `table_comment` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — The comment used when creating the table. - -**Example** - -```sql title="Query" -SELECT table_catalog, - table_schema, - table_name, - table_type, - table_collation, - table_comment -FROM INFORMATION_SCHEMA.TABLES -WHERE (table_schema = currentDatabase() OR table_schema = '') - AND table_name NOT LIKE '%inner%' -LIMIT 1 -FORMAT Vertical; -``` - -```text title="Response" -Row 1: -────── -table_catalog: default -table_schema: default -table_name: describe_example -table_type: BASE TABLE -table_collation: utf8mb4_0900_ai_ci -table_comment: -``` - -## VIEWS {#views} - -Contains columns read from the [system.tables](/reference/system-tables/tables) system table, when the table engine [View](/reference/engines/table-engines/special/view) is used. - -Columns: - -{/*AUTOGENERATED_START*/} -- `table_catalog` ([String](/reference/data-types/string)) — The name of the database in which the table is located. -- `table_schema` ([String](/reference/data-types/string)) — The name of the database in which the table is located. -- `table_name` ([String](/reference/data-types/string)) — Table name. -- `view_definition` ([String](/reference/data-types/string)) — `SELECT` query for view. -- `check_option` ([String](/reference/data-types/string)) — `NONE`, no checking. -- `is_updatable` ([Enum8](/reference/data-types/enum)) — `NO`, the view is not updated. -- `is_insertable_into` ([Enum8](/reference/data-types/enum)) — Shows whether the created view is [materialized](/reference/statements/create/view#materialized-view). Possible values: - - `NO` — The created view is not materialized. - - `YES` — The created view is materialized. -- `is_trigger_updatable` ([Enum8](/reference/data-types/enum)) — `NO`, the trigger is not updated. -- `is_trigger_deletable` ([Enum8](/reference/data-types/enum)) — `NO`, the trigger is not deleted. -- `is_trigger_insertable_into` ([Enum8](/reference/data-types/enum)) — `NO`, no data is inserted into the trigger. -{/*AUTOGENERATED_END*/} - -**Example** - -```sql title="Query" -CREATE VIEW v (n Nullable(Int32), f Float64) AS SELECT n, f FROM t; -CREATE MATERIALIZED VIEW mv ENGINE = Null AS SELECT * FROM system.one; -SELECT table_catalog, - table_schema, - table_name, - view_definition, - check_option, - is_updatable, - is_insertable_into, - is_trigger_updatable, - is_trigger_deletable, - is_trigger_insertable_into -FROM information_schema.views -WHERE table_schema = currentDatabase() -LIMIT 1 -FORMAT Vertical; -``` - -```text title="Response" -Row 1: -────── -table_catalog: default -table_schema: default -table_name: mv -view_definition: SELECT * FROM system.one -check_option: NONE -is_updatable: NO -is_insertable_into: YES -is_trigger_updatable: NO -is_trigger_deletable: NO -is_trigger_insertable_into: NO -``` - -## KEY_COLUMN_USAGE {#key_column_usage} - -Contains columns from the [system.tables](/reference/system-tables/tables) system table which are restricted by constraints. - -Columns: - -- `constraint_catalog` ([String](/reference/data-types/string)) — Currently unused. Always `def`. -- `constraint_schema` ([String](/reference/data-types/string)) — The name of the schema (database) to which the constraint belongs. -- `constraint_name` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — The name of the constraint. -- `table_catalog` ([String](/reference/data-types/string)) — Currently unused. Always `def`. -- `table_schema` ([String](/reference/data-types/string)) — The name of the schema (database) to which the table belongs. -- `table_name` ([String](/reference/data-types/string)) — The name of the table that has the constraint. -- `column_name` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — The name of the column that has the constraint. -- `ordinal_position` ([UInt32](/reference/data-types/int-uint)) — Currently unused. Always `1`. -- `position_in_unique_constraint` ([Nullable](/reference/data-types/nullable)([UInt32](/reference/data-types/int-uint))) — Currently unused. Always `NULL`. -- `referenced_table_schema` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — Currently unused. Always NULL. -- `referenced_table_name` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — Currently unused. Always NULL. -- `referenced_column_name` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — Currently unused. Always NULL. - -**Example** - -```sql title="Query" -CREATE TABLE test (i UInt32, s String) ENGINE MergeTree ORDER BY i; -SELECT constraint_catalog, - constraint_schema, - constraint_name, - table_catalog, - table_schema, - table_name, - column_name, - ordinal_position, - position_in_unique_constraint, - referenced_table_schema, - referenced_table_name, - referenced_column_name -FROM information_schema.key_column_usage -WHERE table_name = 'test' -FORMAT Vertical; -``` - -```response title="Response" -Row 1: -────── -constraint_catalog: def -constraint_schema: default -constraint_name: PRIMARY -table_catalog: def -table_schema: default -table_name: test -column_name: i -ordinal_position: 1 -position_in_unique_constraint: ᴺᵁᴸᴸ -referenced_table_schema: ᴺᵁᴸᴸ -referenced_table_name: ᴺᵁᴸᴸ -referenced_column_name: ᴺᵁᴸᴸ -``` - -## REFERENTIAL_CONSTRAINTS {#referential_constraints} - -Contains information about foreign keys. Currently returns an empty result (no rows) which is just enough to provide compatibility with 3rd party tools like Tableau Online. - -Columns: - -- `constraint_catalog` ([String](/reference/data-types/string)) — Currently unused. -- `constraint_schema` ([String](/reference/data-types/string)) — Currently unused. -- `constraint_name` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — Currently unused. -- `unique_constraint_catalog` ([String](/reference/data-types/string)) — Currently unused. -- `unique_constraint_schema` ([String](/reference/data-types/string)) — Currently unused. -- `unique_constraint_name` ([Nullable](/reference/data-types/nullable)([String](/reference/data-types/string))) — Currently unused. -- `match_option` ([String](/reference/data-types/string)) — Currently unused. -- `update_rule` ([String](/reference/data-types/string)) — Currently unused. -- `delete_rule` ([String](/reference/data-types/string)) — Currently unused. -- `table_name` ([String](/reference/data-types/string)) — Currently unused. -- `referenced_table_name` ([String](/reference/data-types/string)) — Currently unused. - -## STATISTICS {#statistics} - -Provides information about table indexes. Currently returns an empty result (no rows) which is just enough to provide compatibility with 3rd party tools like Tableau Online. diff --git a/reference/system-tables/kafka_consumers.mdx b/reference/system-tables/kafka_consumers.mdx deleted file mode 100644 index 1757a281..00000000 --- a/reference/system-tables/kafka_consumers.mdx +++ /dev/null @@ -1,74 +0,0 @@ ---- -description: 'System table containing information about Kafka consumers.' -keywords: ['system table', 'kafka_consumers'] -slug: /operations/system-tables/kafka_consumers -title: 'system.kafka_consumers' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about Kafka consumers. -Applicable for [Kafka table engine](/reference/engines/table-engines/integrations/kafka) (native ClickHouse integration) - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Database of the table with Kafka Engine. -- `table` ([String](/reference/data-types)) — Name of the table with Kafka Engine. -- `consumer_id` ([String](/reference/data-types)) — Kafka consumer identifier. Note, that a table can have many consumers. Specified by `kafka_num_consumers` parameter. -- `assignments.topic` ([Array(String)](/reference/data-types)) — Kafka topic. -- `assignments.partition_id` ([Array(Int32)](/reference/data-types)) — Kafka partition id. Note, that only one consumer can be assigned to a partition. -- `assignments.current_offset` ([Array(Int64)](/reference/data-types)) — Current offset. -- `assignments.intent_size` ([Array(Nullable(Int64))](/reference/data-types)) — The number of pushed, but not yet committed messages in new StorageKafka. -- `exceptions.time` ([Array(DateTime)](/reference/data-types)) — Timestamp when the 10 most recent exceptions were generated. -- `exceptions.text` ([Array(String)](/reference/data-types)) — Text of 10 most recent exceptions. -- `last_poll_time` ([DateTime](/reference/data-types)) — Timestamp of the most recent poll. -- `num_messages_read` ([UInt64](/reference/data-types)) — Number of messages read by the consumer. -- `last_commit_time` ([DateTime](/reference/data-types)) — Timestamp of the most recent poll. -- `num_commits` ([UInt64](/reference/data-types)) — Total number of commits for the consumer. -- `last_rebalance_time` ([DateTime](/reference/data-types)) — Timestamp of the most recent Kafka rebalance. -- `num_rebalance_revocations` ([UInt64](/reference/data-types)) — Number of times the consumer was revoked its partitions. -- `num_rebalance_assignments` ([UInt64](/reference/data-types)) — Number of times the consumer was assigned to Kafka cluster. -- `is_currently_used` ([UInt8](/reference/data-types)) — The flag which shows whether the consumer is in use. -- `last_used` ([DateTime64(6)](/reference/data-types)) — The last time this consumer was in use. -- `rdkafka_stat` ([String](/reference/data-types)) — Library internal statistic. Set statistics_interval_ms to 0 disable, default is 3000 (once in three seconds). -- `dependencies` ([Array(Array(String))](/reference/data-types)) — Transitive database dependencies. -- `missing_dependencies` ([Array(Array(String))](/reference/data-types)) — Missing transitive database dependencies. -{/*AUTOGENERATED_END*/} - -Example: - -```sql -SELECT * -FROM system.kafka_consumers -FORMAT Vertical -``` - -```text -Row 1: -────── -database: test -table: kafka -consumer_id: ClickHouse-instance-test-kafka-1caddc7f-f917-4bb1-ac55-e28bd103a4a0 -assignments.topic: ['system_kafka_cons'] -assignments.partition_id: [0] -assignments.current_offset: [18446744073709550615] -exceptions.time: [] -exceptions.text: [] -last_poll_time: 2006-11-09 18:47:47 -num_messages_read: 4 -last_commit_time: 2006-11-10 04:39:40 -num_commits: 1 -last_rebalance_time: 1970-01-01 00:00:00 -num_rebalance_revocations: 0 -num_rebalance_assignments: 1 -is_currently_used: 1 -rdkafka_stat: {...} -dependencies: [['test.mv2','test.target2'],['test.mv1','test.target1']] -missing_dependencies: [] -``` diff --git a/reference/system-tables/masking_policies.mdx b/reference/system-tables/masking_policies.mdx deleted file mode 100644 index ef20217b..00000000 --- a/reference/system-tables/masking_policies.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -description: 'System table containing information about all masking policies in the system.' -keywords: ['system table', 'masking_policies'] -slug: /operations/system-tables/masking_policies -title: 'system.masking_policies' -doc_type: 'reference' ---- - -import CloudOnlyBadge from "/snippets/components/CloudOnlyBadge/CloudOnlyBadge.jsx"; - - - -## Description {#description} - -Contains information about all masking policies defined in the system. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types/string)) — Name of a masking policy. The full name format is `short_name ON database.table`. -- `short_name` ([String](/reference/data-types/string)) — Short name of a masking policy. For example, if the full name is `mask_email ON mydb.mytable`, the short name is `mask_email`. -- `database` ([String](/reference/data-types/string)) — Database name. -- `table` ([String](/reference/data-types/string)) — Table name. -- `id` ([UUID](/reference/data-types/uuid)) — Masking policy ID. -- `storage` ([String](/reference/data-types/string)) — Name of the directory where the masking policy is stored. -- `update_assignments` ([Nullable(String)](/reference/data-types/nullable)) — UPDATE assignments that define how data should be masked. For example: `email = '***masked***', phone = '***-***-****'`. -- `where_condition` ([Nullable(String)](/reference/data-types/nullable)) — Optional WHERE condition that specifies when the masking should be applied. -- `priority` ([Int64](/reference/data-types/int-uint)) — Priority for applying multiple masking policies. Higher priority policies are applied first. Default is 0. -- `apply_to_all` ([UInt8](/reference/data-types/int-uint)) — Shows whether the masking policy applies to all roles and/or users. 1 if true, 0 otherwise. -- `apply_to_list` ([Array(String)](/reference/data-types/array)) — List of the roles and/or users to which the masking policy is applied. -- `apply_to_except` ([Array(String)](/reference/data-types/array)) — The masking policy is applied to all roles and/or users except the listed ones. Only populated when `apply_to_all` is 1. -{/*AUTOGENERATED_END*/} \ No newline at end of file diff --git a/reference/system-tables/merges.mdx b/reference/system-tables/merges.mdx deleted file mode 100644 index 7100caf6..00000000 --- a/reference/system-tables/merges.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -description: 'System table containing information about merges and part mutations - currently in process for tables in the MergeTree family.' -keywords: ['system table', 'merges'] -slug: /operations/system-tables/merges -title: 'system.merges' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about merges and part mutations currently in process for tables in the MergeTree family. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — The name of the database the table is in. -- `table` ([String](/reference/data-types)) — Table name. -- `elapsed` ([Float64](/reference/data-types)) — The time elapsed (in seconds) since the merge started. -- `progress` ([Float64](/reference/data-types)) — The percentage of completed work from 0 to 1. -- `num_parts` ([UInt64](/reference/data-types)) — The number of parts to be merged. -- `source_part_names` ([Array(String)](/reference/data-types)) — The list of source parts names. -- `result_part_name` ([String](/reference/data-types)) — The name of the part that will be formed as the result of merging. -- `source_part_paths` ([Array(String)](/reference/data-types)) — The list of paths for each source part. -- `result_part_path` ([String](/reference/data-types)) — The path of the part that will be formed as the result of merging. -- `partition_id` ([String](/reference/data-types)) — The identifier of the partition where the merge is happening. -- `partition` ([String](/reference/data-types)) — The name of the partition -- `is_mutation` ([UInt8](/reference/data-types)) — 1 if this process is a part mutation. -- `total_size_bytes_compressed` ([UInt64](/reference/data-types)) — The total size of the compressed data in the merged chunks. -- `total_size_bytes_uncompressed` ([UInt64](/reference/data-types)) — The total size of compressed data in the merged chunks. -- `total_size_marks` ([UInt64](/reference/data-types)) — The total number of marks in the merged parts. -- `bytes_read_uncompressed` ([UInt64](/reference/data-types)) — Number of bytes read, uncompressed. -- `rows_read` ([UInt64](/reference/data-types)) — Number of rows read. -- `bytes_written_uncompressed` ([UInt64](/reference/data-types)) — Number of bytes written, uncompressed. -- `rows_written` ([UInt64](/reference/data-types)) — Number of rows written. -- `columns_written` ([UInt64](/reference/data-types)) — Number of columns written (for Vertical merge algorithm). -- `memory_usage` ([UInt64](/reference/data-types)) — Memory consumption of the merge process. -- `thread_id` ([UInt64](/reference/data-types)) — Thread ID of the merge process. -- `merge_type` ([String](/reference/data-types)) — The type of current merge. Empty if it's an mutation. -- `merge_algorithm` ([String](/reference/data-types)) — The algorithm used in current merge. Empty if it's an mutation. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/metric_log.mdx b/reference/system-tables/metric_log.mdx deleted file mode 100644 index 6cff04bb..00000000 --- a/reference/system-tables/metric_log.mdx +++ /dev/null @@ -1,1814 +0,0 @@ ---- -description: 'System table containing history of metrics values from tables `system.metrics` - and `system.events`, periodically flushed to disk.' -keywords: ['system table', 'metric_log'] -slug: /operations/system-tables/metric_log -title: 'system.metric_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains history of metrics values from tables `system.metrics` and `system.events`, periodically flushed to disk. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Event date. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Event time with microseconds resolution. -- `ProfileEvent_Query` ([UInt64](/reference/data-types/int-uint)) — Number of queries to be interpreted and potentially executed. Does not include queries that failed to parse or were rejected due to AST size limits, quota limits or limits on the number of simultaneously running queries. May include internal queries initiated by ClickHouse itself. Does not count subqueries. -- `ProfileEvent_SelectQuery` ([UInt64](/reference/data-types/int-uint)) — Same as Query, but only for SELECT queries. -- `ProfileEvent_InsertQuery` ([UInt64](/reference/data-types/int-uint)) — Same as Query, but only for INSERT queries. -- `ProfileEvent_InitialQuery` ([UInt64](/reference/data-types/int-uint)) — Same as Query, but only counts initial queries (see is_initial_query). -- `ProfileEvent_InitialSelectQuery` ([UInt64](/reference/data-types/int-uint)) — Same as InitialQuery, but only for SELECT queries. -- `ProfileEvent_QueriesWithSubqueries` ([UInt64](/reference/data-types/int-uint)) — Count queries with all subqueries -- `ProfileEvent_SelectQueriesWithSubqueries` ([UInt64](/reference/data-types/int-uint)) — Count SELECT queries with all subqueries -- `ProfileEvent_InsertQueriesWithSubqueries` ([UInt64](/reference/data-types/int-uint)) — Count INSERT queries with all subqueries -- `ProfileEvent_SelectQueriesWithPrimaryKeyUsage` ([UInt64](/reference/data-types/int-uint)) — Count SELECT queries which use the primary key to evaluate the WHERE condition -- `ProfileEvent_AsyncInsertQuery` ([UInt64](/reference/data-types/int-uint)) — Same as InsertQuery, but only for asynchronous INSERT queries. -- `ProfileEvent_AsyncInsertBytes` ([UInt64](/reference/data-types/int-uint)) — Data size in bytes of asynchronous INSERT queries. -- `ProfileEvent_AsyncInsertRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows inserted by asynchronous INSERT queries. -- `ProfileEvent_AsyncInsertCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a duplicate hash id has been found in asynchronous INSERT hash id cache. -- `ProfileEvent_FailedInternalQuery` ([UInt64](/reference/data-types/int-uint)) — Number of failed internal queries. -- `ProfileEvent_FailedInternalSelectQuery` ([UInt64](/reference/data-types/int-uint)) — Same as FailedInternalQuery, but only for SELECT queries. -- `ProfileEvent_FailedInternalInsertQuery` ([UInt64](/reference/data-types/int-uint)) — Same as FailedInternalQuery, but only for INSERT queries. -- `ProfileEvent_FailedInitialQuery` ([UInt64](/reference/data-types/int-uint)) — Number of failed initial queries. -- `ProfileEvent_FailedInitialSelectQuery` ([UInt64](/reference/data-types/int-uint)) — Same as FailedInitialQuery, but only for SELECT queries. -- `ProfileEvent_FailedQuery` ([UInt64](/reference/data-types/int-uint)) — Number of total failed queries, both internal and user queries. -- `ProfileEvent_FailedSelectQuery` ([UInt64](/reference/data-types/int-uint)) — Same as FailedQuery, but only for SELECT queries. -- `ProfileEvent_FailedInsertQuery` ([UInt64](/reference/data-types/int-uint)) — Same as FailedQuery, but only for INSERT queries. -- `ProfileEvent_FailedAsyncInsertQuery` ([UInt64](/reference/data-types/int-uint)) — Number of failed ASYNC INSERT queries. -- `ProfileEvent_ASTFuzzerQueries` ([UInt64](/reference/data-types/int-uint)) — Number of fuzzed queries attempted by the server-side AST fuzzer. -- `ProfileEvent_QueryTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time of all queries. -- `ProfileEvent_SelectQueryTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time of SELECT queries. -- `ProfileEvent_InsertQueryTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time of INSERT queries. -- `ProfileEvent_OtherQueryTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time of queries that are not SELECT or INSERT. -- `ProfileEvent_FileOpen` ([UInt64](/reference/data-types/int-uint)) — Number of files opened. -- `ProfileEvent_Seek` ([UInt64](/reference/data-types/int-uint)) — Number of times the 'lseek' function was called. -- `ProfileEvent_ReadBufferFromFileDescriptorRead` ([UInt64](/reference/data-types/int-uint)) — Number of reads (read/pread) from a file descriptor. Does not include sockets. -- `ProfileEvent_ReadBufferFromFileDescriptorReadFailed` ([UInt64](/reference/data-types/int-uint)) — Number of times the read (read/pread) from a file descriptor have failed. -- `ProfileEvent_ReadBufferFromFileDescriptorReadBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read from file descriptors. If the file is compressed, this will show the compressed data size. -- `ProfileEvent_WriteBufferFromFileDescriptorWrite` ([UInt64](/reference/data-types/int-uint)) — Number of writes (write/pwrite) to a file descriptor. Does not include sockets. -- `ProfileEvent_WriteBufferFromFileDescriptorWriteFailed` ([UInt64](/reference/data-types/int-uint)) — Number of times the write (write/pwrite) to a file descriptor have failed. -- `ProfileEvent_WriteBufferFromFileDescriptorWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to file descriptors. If the file is compressed, this will show compressed data size. -- `ProfileEvent_FileSync` ([UInt64](/reference/data-types/int-uint)) — Number of times the F_FULLFSYNC/fsync/fdatasync function was called for files. -- `ProfileEvent_DirectorySync` ([UInt64](/reference/data-types/int-uint)) — Number of times the F_FULLFSYNC/fsync/fdatasync function was called for directories. -- `ProfileEvent_FileSyncElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for F_FULLFSYNC/fsync/fdatasync syscall for files. -- `ProfileEvent_DirectorySyncElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for F_FULLFSYNC/fsync/fdatasync syscall for directories. -- `ProfileEvent_ReadCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes (the number of bytes before decompression) read from compressed sources (files, network). -- `ProfileEvent_CompressedReadBufferBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of compressed blocks (the blocks of data that are compressed independent of each other) read from compressed sources (files, network). -- `ProfileEvent_CompressedReadBufferBytes` ([UInt64](/reference/data-types/int-uint)) — Number of uncompressed bytes (the number of bytes after decompression) read from compressed sources (files, network). -- `ProfileEvent_CompressedReadBufferChecksumDoesntMatch` ([UInt64](/reference/data-types/int-uint)) — Number of times the compressed block checksum did not match. -- `ProfileEvent_CompressedReadBufferChecksumDoesntMatchSingleBitMismatch` ([UInt64](/reference/data-types/int-uint)) — Number of times a compressed block checksum mismatch was caused by a single-bit difference. -- `ProfileEvent_CompressedReadBufferChecksumDoesntMatchMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent detecting bit-flips due to compressed block checksum mismatches. -- `ProfileEvent_UncompressedCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a block of data has been found in the uncompressed cache (and decompression was avoided). -- `ProfileEvent_UncompressedCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a block of data has not been found in the uncompressed cache (and required decompression). -- `ProfileEvent_UncompressedCacheWeightLost` ([UInt64](/reference/data-types/int-uint)) — Number of bytes evicted from the uncompressed cache. -- `ProfileEvent_PageCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a block of data has been found in the userspace page cache. -- `ProfileEvent_PageCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a block of data has not been found in the userspace page cache. -- `ProfileEvent_PageCacheWeightLost` ([UInt64](/reference/data-types/int-uint)) — Number of bytes evicted from the userspace page cache -- `ProfileEvent_PageCacheResized` ([UInt64](/reference/data-types/int-uint)) — Number of times the userspace page cache was auto-resized (typically happens a few times per second, controlled by memory_worker_period_ms). -- `ProfileEvent_PageCacheOvercommitResize` ([UInt64](/reference/data-types/int-uint)) — Number of times the userspace page cache was auto-resized to free memory during a memory allocation. -- `ProfileEvent_PageCacheReadBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read from userspace page cache. -- `ProfileEvent_MMappedFileCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a file has been found in the MMap cache (for the 'mmap' read_method), so we didn't have to mmap it again. -- `ProfileEvent_MMappedFileCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a file has not been found in the MMap cache (for the 'mmap' read_method), so we had to mmap it again. -- `ProfileEvent_OpenedFileCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a file has been found in the opened file cache, so we didn't have to open it again. -- `ProfileEvent_OpenedFileCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a file has been found in the opened file cache, so we had to open it again. -- `ProfileEvent_OpenedFileCacheMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Amount of time spent executing OpenedFileCache methods. -- `ProfileEvent_AIOWrite` ([UInt64](/reference/data-types/int-uint)) — Number of writes with Linux or FreeBSD AIO interface -- `ProfileEvent_AIOWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written with Linux or FreeBSD AIO interface -- `ProfileEvent_AIORead` ([UInt64](/reference/data-types/int-uint)) — Number of reads with Linux or FreeBSD AIO interface -- `ProfileEvent_AIOReadBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read with Linux or FreeBSD AIO interface -- `ProfileEvent_IOBufferAllocs` ([UInt64](/reference/data-types/int-uint)) — Number of allocations of IO buffers (for ReadBuffer/WriteBuffer). -- `ProfileEvent_IOBufferAllocBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes allocated for IO buffers (for ReadBuffer/WriteBuffer). -- `ProfileEvent_ArenaAllocChunks` ([UInt64](/reference/data-types/int-uint)) — Number of chunks allocated for memory Arena (used for GROUP BY and similar operations) -- `ProfileEvent_ArenaAllocBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes allocated for memory Arena (used for GROUP BY and similar operations) -- `ProfileEvent_FunctionExecute` ([UInt64](/reference/data-types/int-uint)) — Number of SQL ordinary function calls (SQL functions are called on per-block basis, so this number represents the number of blocks). -- `ProfileEvent_TableFunctionExecute` ([UInt64](/reference/data-types/int-uint)) — Number of table function calls. -- `ProfileEvent_DefaultImplementationForNullsRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows processed by default implementation for nulls in function execution -- `ProfileEvent_DefaultImplementationForNullsRowsWithNulls` ([UInt64](/reference/data-types/int-uint)) — Number of rows which contain null values processed by default implementation for nulls in function execution -- `ProfileEvent_MarkCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has been found in the mark cache, so we didn't have to load a mark file. -- `ProfileEvent_MarkCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has not been found in the mark cache, so we had to load a mark file in memory, which is a costly operation, adding to query latency. -- `ProfileEvent_PrimaryIndexCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has been found in the primary index cache, so we didn't have to load a index file. -- `ProfileEvent_PrimaryIndexCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has not been found in the primary index cache, so we had to load a index file in memory, which is a costly operation, adding to query latency. -- `ProfileEvent_IcebergMetadataFilesCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times iceberg metadata files have been found in the cache. -- `ProfileEvent_IcebergMetadataFilesCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times iceberg metadata files have not been found in the iceberg metadata cache and had to be read from (remote) disk. -- `ProfileEvent_IcebergMetadataFilesCacheStaleMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times iceberg metadata files have been found in the cache, but were considered stale and had to be read from (remote) disk. -- `ProfileEvent_IcebergMetadataFilesCacheWeightLost` ([UInt64](/reference/data-types/int-uint)) — Approximate number of bytes evicted from the iceberg metadata cache. -- `ProfileEvent_IcebergMetadataReadWaitTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time data readers spend waiting for iceberg metadata files to be read and parsed, summed across all reader threads. -- `ProfileEvent_ParquetMetadataCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times parquet metadata has been found in the cache. -- `ProfileEvent_ParquetMetadataCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times parquet metadata has not been found in the cache and had to be read from disk. -- `ProfileEvent_ParquetMetadataCacheWeightLost` ([UInt64](/reference/data-types/int-uint)) — Approximate number of bytes evicted from the parquet metadata cache. -- `ProfileEvent_IcebergIteratorInitializationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent on synchronous initialization of iceberg data iterators. -- `ProfileEvent_IcebergMetadataUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent on synchronous initialization of iceberg data iterators. -- `ProfileEvent_IcebergMetadataReturnedObjectInfos` ([UInt64](/reference/data-types/int-uint)) — Total number of returned object infos from iceberg iterator. -- `ProfileEvent_IcebergMinMaxNonPrunedDeleteFiles` ([UInt64](/reference/data-types/int-uint)) — Total number of accepted data files-position delete file pairs by minmax analysis from pairs suitable by partitioning and sequence number. -- `ProfileEvent_IcebergMinMaxPrunedDeleteFiles` ([UInt64](/reference/data-types/int-uint)) — Total number of accepted data files-position delete file pairs by minmax analysis from pairs suitable by partitioning and sequence number. -- `ProfileEvent_VectorSimilarityIndexCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times an index granule has been found in the vector index cache. -- `ProfileEvent_VectorSimilarityIndexCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times an index granule has not been found in the vector index cache and had to be read from disk. -- `ProfileEvent_VectorSimilarityIndexCacheWeightLost` ([UInt64](/reference/data-types/int-uint)) — Approximate number of bytes evicted from the vector index cache. -- `ProfileEvent_TextIndexReadDictionaryBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of times a text index dictionary block has been read from disk. -- `ProfileEvent_TextIndexTokensCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a text index token info has been found in the cache. -- `ProfileEvent_TextIndexTokensCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a text index token info has not been found in the cache. -- `ProfileEvent_TextIndexHeaderCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a header has been found in the cache. -- `ProfileEvent_TextIndexHeaderCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a header has not been found in the cache. -- `ProfileEvent_TextIndexPostingsCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a text index posting list has been found in the cache. -- `ProfileEvent_TextIndexPostingsCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a a text index posting list has not been found in the cache. -- `ProfileEvent_TextIndexReadSparseIndexBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of times a sparse index block has been read from the text index. -- `ProfileEvent_TextIndexReaderTotalMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent reading the text index. -- `ProfileEvent_TextIndexReadGranulesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent reading and analyzing granules of the text index. -- `ProfileEvent_TextIndexReadPostings` ([UInt64](/reference/data-types/int-uint)) — Number of times a posting list has been read from the text index. -- `ProfileEvent_TextIndexUsedEmbeddedPostings` ([UInt64](/reference/data-types/int-uint)) — Number of times a posting list embedded in the dictionary has been used. -- `ProfileEvent_TextIndexUseHint` ([UInt64](/reference/data-types/int-uint)) — Number of index granules where a direct reading from the text index was added as hint and was used. -- `ProfileEvent_TextIndexDiscardHint` ([UInt64](/reference/data-types/int-uint)) — Number of index granules where a direct reading from the text index was added as hint and was discarded due to low selectivity. -- `ProfileEvent_TextIndexDiscardPatternScan` ([UInt64](/reference/data-types/int-uint)) — Number of times pattern-based dictionary scan in a text index was discarded because the number of posting lists to read exceeded the threshold. -- `ProfileEvent_QueryConditionCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has been found in the query condition cache (and reading of marks can be skipped). Only updated for SELECT queries with SETTING use_query_condition_cache = 1. -- `ProfileEvent_QueryConditionCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has not been found in the query condition cache (and reading of mark cannot be skipped). Only updated for SELECT queries with SETTING use_query_condition_cache = 1. -- `ProfileEvent_QueryCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a query result has been found in the query cache (and query computation was avoided). Only updated for SELECT queries with SETTING use_query_cache = 1. -- `ProfileEvent_QueryCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a query result has not been found in the query cache (and required query computation). Only updated for SELECT queries with SETTING use_query_cache = 1. -- `ProfileEvent_QueryCacheAgeSeconds` ([UInt64](/reference/data-types/int-uint)) — The sum of ages of found query cache entries in seconds. The value is set both for hits and misses. -- `ProfileEvent_QueryCacheReadRows` ([UInt64](/reference/data-types/int-uint)) — The number of rows read from the query cache. -- `ProfileEvent_QueryCacheReadBytes` ([UInt64](/reference/data-types/int-uint)) — The number of (uncompressed) bytes read from the query cache. -- `ProfileEvent_QueryCacheWrittenRows` ([UInt64](/reference/data-types/int-uint)) — The number of rows saved into the query cache. -- `ProfileEvent_QueryCacheWrittenBytes` ([UInt64](/reference/data-types/int-uint)) — The number of (uncompressed) bytes saved into the query cache -- `ProfileEvent_CreatedReadBufferOrdinary` ([UInt64](/reference/data-types/int-uint)) — Number of times ordinary read buffer was created for reading data (while choosing among other read methods). -- `ProfileEvent_CreatedReadBufferDirectIO` ([UInt64](/reference/data-types/int-uint)) — Number of times a read buffer with O_DIRECT was created for reading data (while choosing among other read methods). -- `ProfileEvent_CreatedReadBufferDirectIOFailed` ([UInt64](/reference/data-types/int-uint)) — Number of times a read buffer with O_DIRECT was attempted to be created for reading data (while choosing among other read methods), but the OS did not allow it (due to lack of filesystem support or other reasons) and we fallen back to the ordinary reading method. -- `ProfileEvent_CreatedReadBufferMMap` ([UInt64](/reference/data-types/int-uint)) — Number of times a read buffer using 'mmap' was created for reading data (while choosing among other read methods). -- `ProfileEvent_CreatedReadBufferMMapFailed` ([UInt64](/reference/data-types/int-uint)) — Number of times a read buffer with 'mmap' was attempted to be created for reading data (while choosing among other read methods), but the OS did not allow it (due to lack of filesystem support or other reasons) and we fallen back to the ordinary reading method. -- `ProfileEvent_DiskReadElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for read syscall. This include reads from page cache. -- `ProfileEvent_DiskWriteElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for write syscall. This include writes to page cache. -- `ProfileEvent_NetworkReceiveElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for data to receive or receiving data from network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. -- `ProfileEvent_NetworkSendElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for data to send to network or sending data to network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. -- `ProfileEvent_NetworkReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Total number of bytes received from network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. -- `ProfileEvent_NetworkSendBytes` ([UInt64](/reference/data-types/int-uint)) — Total number of bytes send to network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. -- `ProfileEvent_FilterPartsByVirtualColumnsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent in filterPartsByVirtualColumns function. -- `ProfileEvent_GlobalThreadPoolExpansions` ([UInt64](/reference/data-types/int-uint)) — Counts the total number of times new threads have been added to the global thread pool. This metric indicates the frequency of expansions in the global thread pool to accommodate increased processing demands. -- `ProfileEvent_GlobalThreadPoolShrinks` ([UInt64](/reference/data-types/int-uint)) — Counts the total number of times the global thread pool has shrunk by removing threads. This occurs when the number of idle threads exceeds max_thread_pool_free_size, indicating adjustments in the global thread pool size in response to decreased thread utilization. -- `ProfileEvent_GlobalThreadPoolThreadCreationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for new threads to start. -- `ProfileEvent_GlobalThreadPoolLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time threads have spent waiting for locks in the global thread pool. -- `ProfileEvent_GlobalThreadPoolJobs` ([UInt64](/reference/data-types/int-uint)) — Counts the number of jobs that have been pushed to the global thread pool. -- `ProfileEvent_GlobalThreadPoolJobWaitTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Measures the elapsed time from when a job is scheduled in the thread pool to when it is picked up for execution by a worker thread. This metric helps identify delays in job processing, indicating the responsiveness of the thread pool to new tasks. -- `ProfileEvent_LocalThreadPoolExpansions` ([UInt64](/reference/data-types/int-uint)) — Counts the total number of times threads have been borrowed from the global thread pool to expand local thread pools. -- `ProfileEvent_LocalThreadPoolShrinks` ([UInt64](/reference/data-types/int-uint)) — Counts the total number of times threads have been returned to the global thread pool from local thread pools. -- `ProfileEvent_LocalThreadPoolThreadCreationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time local thread pools have spent waiting to borrow a thread from the global pool. -- `ProfileEvent_LocalThreadPoolLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time threads have spent waiting for locks in the local thread pools. -- `ProfileEvent_LocalThreadPoolJobs` ([UInt64](/reference/data-types/int-uint)) — Counts the number of jobs that have been pushed to the local thread pools. -- `ProfileEvent_LocalThreadPoolBusyMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time threads have spent executing the actual work. -- `ProfileEvent_LocalThreadPoolJobWaitTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Measures the elapsed time from when a job is scheduled in the thread pool to when it is picked up for execution by a worker thread. This metric helps identify delays in job processing, indicating the responsiveness of the thread pool to new tasks. -- `ProfileEvent_DiskS3GetRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 GET and SELECT requests passed through throttler: blocked and not blocked. -- `ProfileEvent_DiskS3GetRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 GET and SELECT requests blocked by throttler. -- `ProfileEvent_DiskS3GetRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform DiskS3 GET and SELECT request throttling. -- `ProfileEvent_DiskS3PutRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 PUT, COPY, POST and LIST requests passed through throttler: blocked and not blocked. -- `ProfileEvent_DiskS3PutRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 PUT, COPY, POST and LIST requests blocked by throttler. -- `ProfileEvent_DiskS3PutRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform DiskS3 PUT, COPY, POST and LIST request throttling. -- `ProfileEvent_S3GetRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of S3 GET and SELECT requests passed through throttler: blocked and not blocked. -- `ProfileEvent_S3GetRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of S3 GET and SELECT requests blocked by throttler. -- `ProfileEvent_S3GetRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform S3 GET and SELECT request throttling. -- `ProfileEvent_S3PutRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of S3 PUT, COPY, POST and LIST requests passed through throttler: blocked and not blocked. -- `ProfileEvent_S3PutRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of S3 PUT, COPY, POST and LIST requests blocked by throttler. -- `ProfileEvent_S3PutRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform S3 PUT, COPY, POST and LIST request throttling. -- `ProfileEvent_ACMEAPIRequests` ([UInt64](/reference/data-types/int-uint)) — Number of ACME API requests issued. -- `ProfileEvent_ACMECertificateOrders` ([UInt64](/reference/data-types/int-uint)) — Number of ACME certificate orders issued. -- `ProfileEvent_DiskAzureReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for Azure disk read requests. -- `ProfileEvent_DiskAzureReadRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk read requests. -- `ProfileEvent_DiskAzureReadRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk read request errors. -- `ProfileEvent_DiskAzureReadRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk read requests throttled. -- `ProfileEvent_DiskAzureReadRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk read request redirects. -- `ProfileEvent_DiskAzureWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for Azure disk write requests. -- `ProfileEvent_DiskAzureWriteRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk write requests. -- `ProfileEvent_DiskAzureWriteRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk write request errors. -- `ProfileEvent_DiskAzureWriteRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk write requests throttled. -- `ProfileEvent_DiskAzureWriteRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk write request redirects. -- `ProfileEvent_AzureReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for Azure read requests. -- `ProfileEvent_AzureReadRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure read requests. -- `ProfileEvent_AzureReadRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of Azure read request errors. -- `ProfileEvent_AzureReadRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of Azure read requests throttled. -- `ProfileEvent_AzureReadRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure read request redirects. -- `ProfileEvent_AzureWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for Azure write requests. -- `ProfileEvent_AzureWriteRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure write requests. -- `ProfileEvent_AzureWriteRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of Azure write request errors. -- `ProfileEvent_AzureWriteRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of Azure write requests throttled. -- `ProfileEvent_AzureWriteRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure write request redirects. -- `ProfileEvent_AzureGetRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure GET requests passed through throttler: blocked and not blocked. -- `ProfileEvent_AzureGetRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of Azure GET requests blocked by throttler. -- `ProfileEvent_AzureGetRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure GET request throttling. -- `ProfileEvent_DiskAzureGetRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk GET requests passed through throttler: blocked and not blocked. -- `ProfileEvent_DiskAzureGetRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk GET requests blocked by throttler. -- `ProfileEvent_DiskAzureGetRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure disk GET request throttling. -- `ProfileEvent_AzurePutRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure PUT requests passed through throttler: blocked and not blocked. -- `ProfileEvent_AzurePutRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of Azure PUT requests blocked by throttler. -- `ProfileEvent_AzurePutRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure PUT request throttling. -- `ProfileEvent_DiskAzurePutRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk PUT requests passed through throttler: blocked and not blocked. -- `ProfileEvent_DiskAzurePutRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk PUT requests blocked by throttler. -- `ProfileEvent_DiskAzurePutRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure disk PUT request throttling. -- `ProfileEvent_RemoteReadThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_remote_read_network_bandwidth_for_server'/'max_remote_read_network_bandwidth' throttler. -- `ProfileEvent_RemoteReadThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_read_network_bandwidth_for_server'/'max_remote_read_network_bandwidth' throttling. -- `ProfileEvent_RemoteWriteThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_remote_write_network_bandwidth_for_server'/'max_remote_write_network_bandwidth' throttler. -- `ProfileEvent_RemoteWriteThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_write_network_bandwidth_for_server'/'max_remote_write_network_bandwidth' throttling. -- `ProfileEvent_LocalReadThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_local_read_bandwidth_for_server'/'max_local_read_bandwidth' throttler. -- `ProfileEvent_LocalReadThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_read_bandwidth_for_server'/'max_local_read_bandwidth' throttling. -- `ProfileEvent_LocalWriteThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_local_write_bandwidth_for_server'/'max_local_write_bandwidth' throttler. -- `ProfileEvent_LocalWriteThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_write_bandwidth_for_server'/'max_local_write_bandwidth' throttling. -- `ProfileEvent_BackupThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_backup_bandwidth_for_server' throttler. -- `ProfileEvent_BackupThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_backup_bandwidth_for_server' throttling. -- `ProfileEvent_MergesThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_merges_bandwidth_for_server' throttler. -- `ProfileEvent_MergesThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_merges_bandwidth_for_server' throttling. -- `ProfileEvent_MutationsThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_mutations_bandwidth_for_server' throttler. -- `ProfileEvent_MutationsThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_mutations_bandwidth_for_server' throttling. -- `ProfileEvent_UserThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_network_bandwidth_for_user' throttler. -- `ProfileEvent_UserThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_network_bandwidth_for_user' throttling. -- `ProfileEvent_AllUsersThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_network_bandwidth_for_all_users' throttler. -- `ProfileEvent_AllUsersThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_network_bandwidth_for_all_users' throttling. -- `ProfileEvent_QueryRemoteReadThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_remote_read_network_bandwidth' throttler. -- `ProfileEvent_QueryRemoteReadThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_read_network_bandwidth' throttling. -- `ProfileEvent_QueryRemoteWriteThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_remote_write_network_bandwidth' throttler. -- `ProfileEvent_QueryRemoteWriteThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_write_network_bandwidth' throttling. -- `ProfileEvent_QueryLocalReadThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_local_read_bandwidth' throttler. -- `ProfileEvent_QueryLocalReadThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_read_bandwidth' throttling. -- `ProfileEvent_QueryLocalWriteThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_local_write_bandwidth' throttler. -- `ProfileEvent_QueryLocalWriteThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_write_bandwidth' throttling. -- `ProfileEvent_QueryBackupThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_backup_bandwidth' throttler. -- `ProfileEvent_QueryBackupThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_backup_bandwidth' throttling. -- `ProfileEvent_DistrCacheReadThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_distributed_cache_read_bandwidth_for_server' throttler. -- `ProfileEvent_DistrCacheReadThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_distributed_cache_read_bandwidth_for_server' throttling. -- `ProfileEvent_DistrCacheWriteThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_distributed_cache_write_bandwidth_for_server' throttler. -- `ProfileEvent_DistrCacheWriteThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_distributed_cache_write_bandwidth_for_server' throttling. -- `ProfileEvent_ThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform all throttling settings. -- `ProfileEvent_ReadTasksWithAppliedPatches` ([UInt64](/reference/data-types/int-uint)) — Total number of read tasks for which there was any patch part applied -- `ProfileEvent_PatchesAppliedInAllReadTasks` ([UInt64](/reference/data-types/int-uint)) — Total number of applied patch parts among all read tasks -- `ProfileEvent_PatchesMergeAppliedInAllReadTasks` ([UInt64](/reference/data-types/int-uint)) — Total number of applied patch parts with Merge mode among all read tasks -- `ProfileEvent_PatchesJoinAppliedInAllReadTasks` ([UInt64](/reference/data-types/int-uint)) — Total number of applied patch parts with Join mode among all read tasks -- `ProfileEvent_PatchesReadRows` ([UInt64](/reference/data-types/int-uint)) — Total number of rows read from patch parts -- `ProfileEvent_PatchesReadUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Total number of uncompressed bytes read from patch parts -- `ProfileEvent_PatchesJoinRowsAddedToHashTable` ([UInt64](/reference/data-types/int-uint)) — Total number of rows added to hash tables when applying patch parts with Join mode -- `ProfileEvent_ApplyPatchesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent applying patch parts to blocks -- `ProfileEvent_ReadPatchesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent reading patch parts -- `ProfileEvent_BuildPatchesMergeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent building indexes for applying patch parts with Merge mode -- `ProfileEvent_BuildPatchesJoinMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent building indexes and hash tables for applying patch parts with Join mode -- `ProfileEvent_AnalyzePatchRangesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent analyzing index of patch parts -- `ProfileEvent_ReadTasksWithAppliedMutationsOnFly` ([UInt64](/reference/data-types/int-uint)) — Total number of read tasks for which there was any mutation applied on fly -- `ProfileEvent_MutationsAppliedOnFlyInAllReadTasks` ([UInt64](/reference/data-types/int-uint)) — Total number of applied mutations on-fly among all read tasks -- `ProfileEvent_PatchesAcquireLockTries` ([UInt64](/reference/data-types/int-uint)) — Total number of tries to acquire lock for executing lightweight updates -- `ProfileEvent_PatchesAcquireLockMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total number of microseconds spent to acquire lock for executing lightweight updates -- `ProfileEvent_DiskObjectStorageWaitBlobRemovalMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for pending blob removal after committing metadata transaction -- `ProfileEvent_SchedulerIOReadRequests` ([UInt64](/reference/data-types/int-uint)) — Resource requests passed through scheduler for IO reads. -- `ProfileEvent_SchedulerIOReadBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through scheduler for IO reads. -- `ProfileEvent_SchedulerIOReadWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for IO reads. -- `ProfileEvent_SchedulerIOWriteRequests` ([UInt64](/reference/data-types/int-uint)) — Resource requests passed through scheduler for IO writes. -- `ProfileEvent_SchedulerIOWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through scheduler for IO writes. -- `ProfileEvent_SchedulerIOWriteWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for IO writes. -- `ProfileEvent_QueryMaskingRulesMatch` ([UInt64](/reference/data-types/int-uint)) — Number of times query masking rules was successfully matched. -- `ProfileEvent_ReplicatedPartFetches` ([UInt64](/reference/data-types/int-uint)) — Number of times a data part was downloaded from replica of a ReplicatedMergeTree table. -- `ProfileEvent_ReplicatedPartFailedFetches` ([UInt64](/reference/data-types/int-uint)) — Number of times a data part was failed to download from replica of a ReplicatedMergeTree table. -- `ProfileEvent_ObsoleteReplicatedParts` ([UInt64](/reference/data-types/int-uint)) — Number of times a data part was covered by another data part that has been fetched from a replica (so, we have marked a covered data part as obsolete and no longer needed). -- `ProfileEvent_ReplicatedPartMerges` ([UInt64](/reference/data-types/int-uint)) — Number of times data parts of ReplicatedMergeTree tables were successfully merged. -- `ProfileEvent_ReplicatedPartFetchesOfMerged` ([UInt64](/reference/data-types/int-uint)) — Number of times we prefer to download already merged part from replica of ReplicatedMergeTree table instead of performing a merge ourself (usually we prefer doing a merge ourself to save network traffic). This happens when we have not all source parts to perform a merge or when the data part is old enough. -- `ProfileEvent_ReplicatedPartMutations` ([UInt64](/reference/data-types/int-uint)) — Number of times data parts of ReplicatedMergeTree tables were successfully mutated. -- `ProfileEvent_ReplicatedPartChecks` ([UInt64](/reference/data-types/int-uint)) — Number of times we had to perform advanced search for a data part on replicas or to clarify the need of an existing data part. -- `ProfileEvent_ReplicatedPartChecksFailed` ([UInt64](/reference/data-types/int-uint)) — Number of times the advanced search for a data part on replicas did not give result or when unexpected part has been found and moved away. -- `ProfileEvent_ReplicatedDataLoss` ([UInt64](/reference/data-types/int-uint)) — Number of times a data part that we wanted doesn't exist on any replica (even on replicas that are offline right now). That data parts are definitely lost. This is normal due to asynchronous replication (if quorum inserts were not enabled), when the replica on which the data part was written was failed and when it became online after fail it doesn't contain that data part. -- `ProfileEvent_ReplicatedCoveredPartsInZooKeeperOnStart` ([UInt64](/reference/data-types/int-uint)) — For debugging purposes. Number of parts in ZooKeeper that have a covering part, but doesn't exist on disk. Checked on server start. -- `ProfileEvent_QuorumParts` ([UInt64](/reference/data-types/int-uint)) — Number of data parts written with quorum. It counts as one part for sync insert and maybe up to async inserts count for insert which flushes async inserts. -- `ProfileEvent_QuorumWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for quorum during inserts. -- `ProfileEvent_QuorumFailedInserts` ([UInt64](/reference/data-types/int-uint)) — Number of inserts failed due to quorum not reaching. -- `ProfileEvent_InsertedRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows INSERTed to all tables. -- `ProfileEvent_InsertedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes (uncompressed; for columns as they stored in memory) INSERTed to all tables. -- `ProfileEvent_DelayedInserts` ([UInt64](/reference/data-types/int-uint)) — Number of times the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition. -- `ProfileEvent_RejectedInserts` ([UInt64](/reference/data-types/int-uint)) — Number of times the INSERT of a block to a MergeTree table was rejected with 'Too many parts' exception due to high number of active data parts for partition. -- `ProfileEvent_DelayedInsertsMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total number of milliseconds spent while the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition. -- `ProfileEvent_DelayedMutations` ([UInt64](/reference/data-types/int-uint)) — Number of times the mutation of a MergeTree table was throttled due to high number of unfinished mutations for table. -- `ProfileEvent_RejectedMutations` ([UInt64](/reference/data-types/int-uint)) — Number of times the mutation of a MergeTree table was rejected with 'Too many mutations' exception due to high number of unfinished mutations for table. -- `ProfileEvent_DelayedMutationsMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total number of milliseconds spent while the mutation of a MergeTree table was throttled due to high number of unfinished mutations for table. -- `ProfileEvent_RejectedLightweightUpdates` ([UInt64](/reference/data-types/int-uint)) — Number of time the lightweight update was rejected due to too many uncompressed bytes in patches. -- `ProfileEvent_DistributedDelayedInserts` ([UInt64](/reference/data-types/int-uint)) — Number of times the INSERT of a block to a Distributed table was throttled due to high number of pending bytes. -- `ProfileEvent_DistributedRejectedInserts` ([UInt64](/reference/data-types/int-uint)) — Number of times the INSERT of a block to a Distributed table was rejected with 'Too many bytes' exception due to high number of pending bytes. -- `ProfileEvent_DistributedDelayedInsertsMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total number of milliseconds spent while the INSERT of a block to a Distributed table was throttled due to high number of pending bytes. -- `ProfileEvent_DuplicatedInsertedBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of the synchronous inserts to a *MergeTree table was deduplicated. -- `ProfileEvent_SelfDuplicatedAsyncInserts` ([UInt64](/reference/data-types/int-uint)) — Number of async inserts in the INSERTed block to a ReplicatedMergeTree table was self deduplicated. -- `ProfileEvent_DuplicatedAsyncInserts` ([UInt64](/reference/data-types/int-uint)) — Number of async inserts in the INSERTed block to a ReplicatedMergeTree table was deduplicated. -- `ProfileEvent_DuplicationElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent checking for duplication of INSERTed blocks to *MergeTree tables. -- `ProfileEvent_ZooKeeperInit` ([UInt64](/reference/data-types/int-uint)) — Number of times connection with ZooKeeper has been established. -- `ProfileEvent_ZooKeeperTransactions` ([UInt64](/reference/data-types/int-uint)) — Number of ZooKeeper operations, which include both read and write operations as well as multi-transactions. -- `ProfileEvent_ZooKeeperList` ([UInt64](/reference/data-types/int-uint)) — Number of 'list' (getChildren) requests to ZooKeeper. -- `ProfileEvent_ZooKeeperListRecursive` ([UInt64](/reference/data-types/int-uint)) — Number of 'listRecursive' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperCreate` ([UInt64](/reference/data-types/int-uint)) — Number of 'create' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperRemove` ([UInt64](/reference/data-types/int-uint)) — Number of 'remove' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperExists` ([UInt64](/reference/data-types/int-uint)) — Number of 'exists' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperGet` ([UInt64](/reference/data-types/int-uint)) — Number of 'get' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperSet` ([UInt64](/reference/data-types/int-uint)) — Number of 'set' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperMulti` ([UInt64](/reference/data-types/int-uint)) — Number of 'multi' requests to ZooKeeper (compound transactions). -- `ProfileEvent_ZooKeeperMultiRead` ([UInt64](/reference/data-types/int-uint)) — Number of read 'multi' requests to ZooKeeper (compound transactions). -- `ProfileEvent_ZooKeeperMultiWrite` ([UInt64](/reference/data-types/int-uint)) — Number of write 'multi' requests to ZooKeeper (compound transactions). -- `ProfileEvent_ZooKeeperCheck` ([UInt64](/reference/data-types/int-uint)) — Number of 'check' requests to ZooKeeper. Usually they don't make sense in isolation, only as part of a complex transaction. -- `ProfileEvent_ZooKeeperSync` ([UInt64](/reference/data-types/int-uint)) — Number of 'sync' requests to ZooKeeper. These requests are rarely needed or usable. -- `ProfileEvent_ZooKeeperReconfig` ([UInt64](/reference/data-types/int-uint)) — Number of 'reconfig' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperClose` ([UInt64](/reference/data-types/int-uint)) — Number of times connection with ZooKeeper has been closed voluntary. -- `ProfileEvent_ZooKeeperGetACL` ([UInt64](/reference/data-types/int-uint)) — Number of 'getACL' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperWatchResponse` ([UInt64](/reference/data-types/int-uint)) — Number of times watch notification has been received from ZooKeeper. -- `ProfileEvent_ZooKeeperUserExceptions` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper related to the data (no node, bad version or similar). -- `ProfileEvent_ZooKeeperHardwareExceptions` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper related to network (connection loss or similar). -- `ProfileEvent_ZooKeeperOtherExceptions` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper other than ZooKeeperUserExceptions and ZooKeeperHardwareExceptions. -- `ProfileEvent_ZooKeeperWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Number of microseconds spent waiting for responses from ZooKeeper after creating a request, summed across all the requesting threads. -- `ProfileEvent_ZooKeeperBytesSent` ([UInt64](/reference/data-types/int-uint)) — Number of bytes send over network while communicating with ZooKeeper. -- `ProfileEvent_ZooKeeperBytesReceived` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received over network while communicating with ZooKeeper. -- `ProfileEvent_DistributedConnectionTries` ([UInt64](/reference/data-types/int-uint)) — Total count of distributed connection attempts. -- `ProfileEvent_DistributedConnectionUsable` ([UInt64](/reference/data-types/int-uint)) — Total count of successful distributed connections to a usable server (with required table, but maybe stale). -- `ProfileEvent_DistributedConnectionFailTry` ([UInt64](/reference/data-types/int-uint)) — Total count when distributed connection fails with retry. -- `ProfileEvent_DistributedConnectionMissingTable` ([UInt64](/reference/data-types/int-uint)) — Number of times we rejected a replica from a distributed query, because it did not contain a table needed for the query. -- `ProfileEvent_DistributedConnectionStaleReplica` ([UInt64](/reference/data-types/int-uint)) — Number of times we rejected a replica from a distributed query, because some table needed for a query had replication lag higher than the configured threshold. -- `ProfileEvent_DistributedConnectionSkipReadOnlyReplica` ([UInt64](/reference/data-types/int-uint)) — Number of replicas skipped during INSERT into Distributed table due to replicas being read-only -- `ProfileEvent_DistributedConnectionFailAtAll` ([UInt64](/reference/data-types/int-uint)) — Total count when distributed connection fails after all retries finished. -- `ProfileEvent_Shards` ([UInt64](/reference/data-types/int-uint)) — The number of shards involved in a query, summed across all distributed tables and table functions. A single host is counted multiple times if it appears in multiple tables. The number counts the total expected number of shards, which includes skipped shards with the `skip_unavailable_shards` setting. -- `ProfileEvent_HedgedRequestsChangeReplica` ([UInt64](/reference/data-types/int-uint)) — Total count when timeout for changing replica expired in hedged requests. -- `ProfileEvent_SuspendSendingQueryToShard` ([UInt64](/reference/data-types/int-uint)) — Total count when sending query to shard was suspended when async_query_sending_for_remote is enabled. -- `ProfileEvent_CompileFunction` ([UInt64](/reference/data-types/int-uint)) — Number of times a compilation of generated LLVM code (to create fused function for complex expressions) was initiated. -- `ProfileEvent_CompiledFunctionExecute` ([UInt64](/reference/data-types/int-uint)) — Number of times a compiled function was executed. -- `ProfileEvent_CompileExpressionsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for compilation of expressions to LLVM code. -- `ProfileEvent_CompileExpressionsBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes used for expressions compilation. -- `ProfileEvent_ExecuteShellCommand` ([UInt64](/reference/data-types/int-uint)) — Number of shell command executions. -- `ProfileEvent_ExternalProcessingCompressedBytesTotal` ([UInt64](/reference/data-types/int-uint)) — Number of compressed bytes written by external processing (sorting/aggregating/joining) -- `ProfileEvent_ExternalProcessingUncompressedBytesTotal` ([UInt64](/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written by external processing (sorting/aggregating/joining) -- `ProfileEvent_ExternalProcessingFilesTotal` ([UInt64](/reference/data-types/int-uint)) — Number of files used by external processing (sorting/aggregating/joining) -- `ProfileEvent_ExternalSortWritePart` ([UInt64](/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for sorting in external memory. -- `ProfileEvent_ExternalSortMerge` ([UInt64](/reference/data-types/int-uint)) — Number of times temporary files were merged for sorting in external memory. -- `ProfileEvent_ExternalSortCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of compressed bytes written for sorting in external memory. -- `ProfileEvent_ExternalSortUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written for sorting in external memory. -- `ProfileEvent_ExternalAggregationWritePart` ([UInt64](/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for aggregation in external memory. -- `ProfileEvent_ExternalAggregationMerge` ([UInt64](/reference/data-types/int-uint)) — Number of times temporary files were merged for aggregation in external memory. -- `ProfileEvent_ExternalAggregationCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to disk for aggregation in external memory. -- `ProfileEvent_ExternalAggregationUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written to disk for aggregation in external memory. -- `ProfileEvent_ExternalJoinWritePart` ([UInt64](/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for JOIN in external memory. -- `ProfileEvent_ExternalJoinMerge` ([UInt64](/reference/data-types/int-uint)) — Number of times temporary files were merged for JOIN in external memory. -- `ProfileEvent_ExternalJoinCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of compressed bytes written for JOIN in external memory. -- `ProfileEvent_ExternalJoinUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written for JOIN in external memory. -- `ProfileEvent_IcebergPartitionPrunedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of skipped files during Iceberg partition pruning -- `ProfileEvent_IcebergTrivialCountOptimizationApplied` ([UInt64](/reference/data-types/int-uint)) — Trivial count optimization applied while reading from Iceberg -- `ProfileEvent_IcebergVersionHintUsed` ([UInt64](/reference/data-types/int-uint)) — Number of times version-hint.text has been used. -- `ProfileEvent_IcebergMinMaxIndexPrunedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of skipped files by using MinMax index in Iceberg -- `ProfileEvent_JoinBuildTableRowCount` ([UInt64](/reference/data-types/int-uint)) — Total number of rows in the build table for a JOIN operation. -- `ProfileEvent_JoinProbeTableRowCount` ([UInt64](/reference/data-types/int-uint)) — Total number of rows in the probe table for a JOIN operation. -- `ProfileEvent_JoinResultRowCount` ([UInt64](/reference/data-types/int-uint)) — Total number of rows in the result of a JOIN operation. -- `ProfileEvent_JoinNonJoinedTransformBlockCount` ([UInt64](/reference/data-types/int-uint)) — Number of blocks emitted by NonJoinedBlocksTransform. -- `ProfileEvent_JoinNonJoinedTransformRowCount` ([UInt64](/reference/data-types/int-uint)) — Number of non-joined rows emitted by NonJoinedBlocksTransform. -- `ProfileEvent_JoinDelayedJoinedTransformBlockCount` ([UInt64](/reference/data-types/int-uint)) — Number of blocks emitted by DelayedJoinedBlocksWorkerTransform. -- `ProfileEvent_JoinDelayedJoinedTransformRowCount` ([UInt64](/reference/data-types/int-uint)) — Number of rows emitted by DelayedJoinedBlocksWorkerTransform. -- `ProfileEvent_JoinSpillingHashJoinSwitchedToGraceJoin` ([UInt64](/reference/data-types/int-uint)) — Number of times a (Concurrent)HashJoin was switched to GraceHashJoin due to memory limit in SpillingHashJoin. -- `ProfileEvent_JoinReorderMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent executing JOIN reordering algorithm. -- `ProfileEvent_JoinOptimizeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent executing JOIN plan optimizations. -- `ProfileEvent_QueryPlanOptimizeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent executing query plan optimizations. -- `ProfileEvent_DeltaLakePartitionPrunedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of skipped files during DeltaLake partition pruning -- `ProfileEvent_DeltaLakeSnapshotInitializations` ([UInt64](/reference/data-types/int-uint)) — Number of times a DeltaLake table snapshot was initialized (loaded from object storage) -- `ProfileEvent_DeltaLakeScannedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of files scanned during DeltaLake scan callbacks -- `ProfileEvent_SlowRead` ([UInt64](/reference/data-types/int-uint)) — Number of reads from a file that were slow. This indicate system overload. Thresholds are controlled by read_backoff_* settings. -- `ProfileEvent_ReadBackoff` ([UInt64](/reference/data-types/int-uint)) — Number of times the number of query processing threads was lowered due to slow reads. -- `ProfileEvent_ReplicaPartialShutdown` ([UInt64](/reference/data-types/int-uint)) — How many times Replicated table has to deinitialize its state due to session expiration in ZooKeeper. The state is reinitialized every time when ZooKeeper is available again. -- `ProfileEvent_IndexAnalysisRounds` ([UInt64](/reference/data-types/int-uint)) — Number of times index analysis was performed within the query. -- `ProfileEvent_SelectedParts` ([UInt64](/reference/data-types/int-uint)) — Number of data parts selected to read from a MergeTree table. -- `ProfileEvent_SelectedPartsTotal` ([UInt64](/reference/data-types/int-uint)) — Number of total data parts before selecting which ones to read from a MergeTree table. -- `ProfileEvent_SelectedRanges` ([UInt64](/reference/data-types/int-uint)) — Number of (non-adjacent) ranges in all data parts selected to read from a MergeTree table. -- `ProfileEvent_SelectedMarks` ([UInt64](/reference/data-types/int-uint)) — Number of marks (index granules) selected to read from a MergeTree table. -- `ProfileEvent_SelectedMarksTotal` ([UInt64](/reference/data-types/int-uint)) — Number of total marks (index granules) before selecting which ones to read from a MergeTree table. -- `ProfileEvent_SelectedRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows SELECTed from all tables. -- `ProfileEvent_SelectedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes (uncompressed; for columns as they stored in memory) SELECTed from all tables. -- `ProfileEvent_RowsReadByMainReader` ([UInt64](/reference/data-types/int-uint)) — Number of rows read from MergeTree tables by the main reader (after PREWHERE step). -- `ProfileEvent_RowsReadByPrewhereReaders` ([UInt64](/reference/data-types/int-uint)) — Number of rows read from MergeTree tables (in total) by prewhere readers. -- `ProfileEvent_LoadedDataParts` ([UInt64](/reference/data-types/int-uint)) — Number of data parts loaded by MergeTree tables during initialization. -- `ProfileEvent_LoadedDataPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Microseconds spent by MergeTree tables for loading data parts during initialization. -- `ProfileEvent_FilteringMarksWithPrimaryKeyProcessedMarks` ([UInt64](/reference/data-types/int-uint)) — Total marks processed during PK analysis. -- `ProfileEvent_FilteringMarksWithPrimaryKeyMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent filtering parts by PK. -- `ProfileEvent_FilteringMarksWithSecondaryKeysMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent filtering parts by skip indexes. -- `ProfileEvent_DistributedIndexAnalysisMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent during distributed index analysis -- `ProfileEvent_DistributedIndexAnalysisScheduledReplicas` ([UInt64](/reference/data-types/int-uint)) — Number of replicas (local replica will be accounted once) to which distributed index analysis has been scheduled -- `ProfileEvent_DistributedIndexAnalysisReplicaUnavailable` ([UInt64](/reference/data-types/int-uint)) — Number of times distributed index analysis failed on one of replicas without fallback (failed during connect) -- `ProfileEvent_DistributedIndexAnalysisReplicaFallback` ([UInt64](/reference/data-types/int-uint)) — Number of times distributed index analysis failed on one of replicas with fallback to local replica -- `ProfileEvent_DistributedIndexAnalysisParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts send for distributed index analysis -- `ProfileEvent_DistributedIndexAnalysisMissingParts` ([UInt64](/reference/data-types/int-uint)) — Number of missing parts during distributed index analysis that will be resolved locally -- `ProfileEvent_WaitMarksLoadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent loading marks -- `ProfileEvent_BackgroundLoadingMarksTasks` ([UInt64](/reference/data-types/int-uint)) — Number of background tasks for loading marks -- `ProfileEvent_MarksTasksFromCache` ([UInt64](/reference/data-types/int-uint)) — Number of times marks were loaded synchronously because they were already present in the cache. -- `ProfileEvent_LoadingMarksTasksCanceled` ([UInt64](/reference/data-types/int-uint)) — Number of times background tasks for loading marks were canceled -- `ProfileEvent_LoadedMarksFiles` ([UInt64](/reference/data-types/int-uint)) — Number of mark files loaded. -- `ProfileEvent_LoadedMarksCount` ([UInt64](/reference/data-types/int-uint)) — Number of marks loaded (total across columns). -- `ProfileEvent_LoadedMarksMemoryBytes` ([UInt64](/reference/data-types/int-uint)) — Size of in-memory representations of loaded marks. -- `ProfileEvent_MarkCacheEvictedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes evicted from the mark cache. -- `ProfileEvent_MarkCacheEvictedMarks` ([UInt64](/reference/data-types/int-uint)) — Number of marks evicted from the mark cache. -- `ProfileEvent_MarkCacheEvictedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of mark files evicted from the mark cache. -- `ProfileEvent_LoadedPrimaryIndexFiles` ([UInt64](/reference/data-types/int-uint)) — Number of primary index files loaded. -- `ProfileEvent_LoadedPrimaryIndexRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows of primary key loaded. -- `ProfileEvent_LoadedPrimaryIndexBytes` ([UInt64](/reference/data-types/int-uint)) — Number of rows of primary key loaded. -- `ProfileEvent_Merge` ([UInt64](/reference/data-types/int-uint)) — Number of launched background merges. -- `ProfileEvent_MergeSourceParts` ([UInt64](/reference/data-types/int-uint)) — Number of source parts scheduled for merges. -- `ProfileEvent_MergedRows` ([UInt64](/reference/data-types/int-uint)) — Rows read for background merges. This is the number of rows before merge. -- `ProfileEvent_MergedColumns` ([UInt64](/reference/data-types/int-uint)) — Number of columns merged during the horizontal stage of merges. -- `ProfileEvent_GatheredColumns` ([UInt64](/reference/data-types/int-uint)) — Number of columns gathered during the vertical stage of merges. -- `ProfileEvent_MergedProjections` ([UInt64](/reference/data-types/int-uint)) — Number of projections merged (not rebuilt) during MergeTree merges. -- `ProfileEvent_RebuiltProjections` ([UInt64](/reference/data-types/int-uint)) — Number of projections rebuilt from scratch during MergeTree merges. -- `ProfileEvent_MergedUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) that was read for background merges. This is the number before merge. -- `ProfileEvent_MergeWrittenRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows written during the merge. -- `ProfileEvent_MergeTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for background merges -- `ProfileEvent_MergeExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of background merges -- `ProfileEvent_MergeCommitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for committing merge results (part renaming, checksum verification, ZooKeeper updates) -- `ProfileEvent_MergeHorizontalStageTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for horizontal stage of background merges -- `ProfileEvent_MergeHorizontalStageExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of horizontal stage of background merges -- `ProfileEvent_MergeVerticalStageTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for vertical stage of background merges -- `ProfileEvent_MergeVerticalStageExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of vertical stage of background merges -- `ProfileEvent_MergeTextIndexStageTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for text index stage of background merges -- `ProfileEvent_MergeTextIndexStageExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of text index stage of background merges -- `ProfileEvent_MergeProjectionStageTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for projection stage of background merges -- `ProfileEvent_MergeProjectionStageExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of projection stage of background merges -- `ProfileEvent_MergePrewarmStageTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for prewarm stage of background merges -- `ProfileEvent_MergePrewarmStageExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of prewarm stage of background merges -- `ProfileEvent_MergesRejectedByMemoryLimit` ([UInt64](/reference/data-types/int-uint)) — Number of background merges rejected due to memory limit -- `ProfileEvent_MergingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while merging sorted columns -- `ProfileEvent_AggregatingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while aggregating sorted columns -- `ProfileEvent_CoalescingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while coalescing sorted columns -- `ProfileEvent_CollapsingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while collapsing sorted columns -- `ProfileEvent_ReplacingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while replacing sorted columns -- `ProfileEvent_SummingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while summing sorted columns -- `ProfileEvent_VersionedCollapsingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while version collapsing sorted columns -- `ProfileEvent_GatheringColumnMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while gathering columns for vertical merge -- `ProfileEvent_MutationTotalParts` ([UInt64](/reference/data-types/int-uint)) — Number of total parts for which mutations tried to be applied -- `ProfileEvent_MutationUntouchedParts` ([UInt64](/reference/data-types/int-uint)) — Number of total parts for which mutations tried to be applied but which was completely skipped according to predicate -- `ProfileEvent_MutationCreatedEmptyParts` ([UInt64](/reference/data-types/int-uint)) — Number of total parts which were replaced to empty parts instead of running mutation -- `ProfileEvent_MutatedRows` ([UInt64](/reference/data-types/int-uint)) — Rows read for mutations. This is the number of rows before mutation -- `ProfileEvent_MutatedUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) that was read for mutations. This is the number before mutation. -- `ProfileEvent_MutationAffectedRowsUpperBound` ([UInt64](/reference/data-types/int-uint)) — The upper bound of number of rows that were affected by mutation (e.g. number of rows that satisfy the predicate of UPDATE or DELETE mutation). The actual number may be slightly less -- `ProfileEvent_MutationTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for mutations. -- `ProfileEvent_MutationExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of mutations. -- `ProfileEvent_MutationCommitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for committing mutation results (part renaming, checksum verification, ZooKeeper updates) -- `ProfileEvent_MutationAllPartColumns` ([UInt64](/reference/data-types/int-uint)) — Number of times when task to mutate all columns in part was created -- `ProfileEvent_MutationSomePartColumns` ([UInt64](/reference/data-types/int-uint)) — Number of times when task to mutate some columns in part was created -- `ProfileEvent_MutateTaskProjectionsCalculationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent calculating projections in mutations -- `ProfileEvent_MergeTreeDataWriterRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows INSERTed to MergeTree tables. -- `ProfileEvent_MergeTreeDataWriterUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) INSERTed to MergeTree tables. -- `ProfileEvent_MergeTreeDataWriterCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes written to filesystem for data INSERTed to MergeTree tables. -- `ProfileEvent_MergeTreeDataWriterBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables. Each block forms a data part of level zero. -- `ProfileEvent_MergeTreeDataWriterBlocksAlreadySorted` ([UInt64](/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables that appeared to be already sorted. -- `ProfileEvent_MergeMutateBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in executeStep() for MergeMutate executor tasks. -- `ProfileEvent_MergeMutateBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in cancel() for MergeMutate executor tasks. -- `ProfileEvent_MergeMutateBackgroundExecutorTaskResetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent resetting task for MergeMutate executor. -- `ProfileEvent_MergeMutateBackgroundExecutorWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for completion in MergeMutate executor. -- `ProfileEvent_MoveBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in executeStep() for Move executor tasks. -- `ProfileEvent_MoveBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in cancel() for Move executor tasks. -- `ProfileEvent_MoveBackgroundExecutorTaskResetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent resetting task for Move executor. -- `ProfileEvent_MoveBackgroundExecutorWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for completion in Move executor. -- `ProfileEvent_FetchBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in executeStep() for Fetch executor tasks. -- `ProfileEvent_FetchBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in cancel() for Fetch executor tasks. -- `ProfileEvent_FetchBackgroundExecutorTaskResetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent resetting task for Fetch executor. -- `ProfileEvent_FetchBackgroundExecutorWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for completion in Fetch executor. -- `ProfileEvent_CommonBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in executeStep() for Common executor tasks. -- `ProfileEvent_CommonBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in cancel() for Common executor tasks. -- `ProfileEvent_CommonBackgroundExecutorTaskResetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent resetting task for Common executor. -- `ProfileEvent_CommonBackgroundExecutorWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for completion in Common executor. -- `ProfileEvent_MergeTreeDataWriterSkipIndicesCalculationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent calculating skip indices -- `ProfileEvent_MergeTreeDataWriterStatisticsCalculationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent calculating statistics -- `ProfileEvent_MergeTreeDataWriterSortingBlocksMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent sorting blocks -- `ProfileEvent_MergeTreeDataWriterMergingBlocksMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent merging input blocks (for special MergeTree engines) -- `ProfileEvent_MergeTreeDataWriterProjectionsCalculationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent calculating projections -- `ProfileEvent_MergeTreeDataProjectionWriterSortingBlocksMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent sorting blocks (for projection it might be a key different from table's sorting key) -- `ProfileEvent_MergeTreeDataProjectionWriterMergingBlocksMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent merging blocks -- `ProfileEvent_InsertedWideParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts inserted in Wide format. -- `ProfileEvent_InsertedCompactParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts inserted in Compact format. -- `ProfileEvent_MergedIntoWideParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts merged into Wide format. -- `ProfileEvent_MergedIntoCompactParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts merged into Compact format. -- `ProfileEvent_MergeTreeDataProjectionWriterRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows INSERTed to MergeTree tables projection. -- `ProfileEvent_MergeTreeDataProjectionWriterUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) INSERTed to MergeTree tables projection. -- `ProfileEvent_MergeTreeDataProjectionWriterCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes written to filesystem for data INSERTed to MergeTree tables projection. -- `ProfileEvent_MergeTreeDataProjectionWriterBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables projection. Each block forms a data part of level zero. -- `ProfileEvent_MergeTreeDataProjectionWriterBlocksAlreadySorted` ([UInt64](/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables projection that appeared to be already sorted. -- `ProfileEvent_CannotRemoveEphemeralNode` ([UInt64](/reference/data-types/int-uint)) — Number of times an error happened while trying to remove ephemeral node. This is not an issue, because our implementation of ZooKeeper library guarantee that the session will expire and the node will be removed. -- `ProfileEvent_RegexpWithMultipleNeedlesCreated` ([UInt64](/reference/data-types/int-uint)) — Regular expressions with multiple needles (VectorScan library) compiled. -- `ProfileEvent_RegexpWithMultipleNeedlesGlobalCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times we fetched compiled regular expression with multiple needles (VectorScan library) from the global cache. -- `ProfileEvent_RegexpWithMultipleNeedlesGlobalCacheMiss` ([UInt64](/reference/data-types/int-uint)) — Number of times we failed to fetch compiled regular expression with multiple needles (VectorScan library) from the global cache. -- `ProfileEvent_RegexpLocalCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times we fetched compiled regular expression from a local cache. -- `ProfileEvent_RegexpLocalCacheMiss` ([UInt64](/reference/data-types/int-uint)) — Number of times we failed to fetch compiled regular expression from a local cache. -- `ProfileEvent_ContextLock` ([UInt64](/reference/data-types/int-uint)) — Number of times the lock of Context was acquired or tried to acquire. This is global lock. -- `ProfileEvent_ContextLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Context lock wait time in microseconds -- `ProfileEvent_StorageBufferFlush` ([UInt64](/reference/data-types/int-uint)) — Number of times a buffer in a 'Buffer' table was flushed. -- `ProfileEvent_StorageBufferErrorOnFlush` ([UInt64](/reference/data-types/int-uint)) — Number of times a buffer in the 'Buffer' table has not been able to flush due to error writing in the destination table. -- `ProfileEvent_StorageBufferPassedAllMinThresholds` ([UInt64](/reference/data-types/int-uint)) — Number of times a criteria on min thresholds has been reached to flush a buffer in a 'Buffer' table. -- `ProfileEvent_StorageBufferPassedTimeMaxThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times a criteria on max time threshold has been reached to flush a buffer in a 'Buffer' table. -- `ProfileEvent_StorageBufferPassedRowsMaxThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times a criteria on max rows threshold has been reached to flush a buffer in a 'Buffer' table. -- `ProfileEvent_StorageBufferPassedBytesMaxThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times a criteria on max bytes threshold has been reached to flush a buffer in a 'Buffer' table. -- `ProfileEvent_StorageBufferPassedTimeFlushThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times background-only flush threshold on time has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. -- `ProfileEvent_StorageBufferPassedRowsFlushThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times background-only flush threshold on rows has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. -- `ProfileEvent_StorageBufferPassedBytesFlushThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times background-only flush threshold on bytes has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. -- `ProfileEvent_StorageBufferLayerLockReadersWaitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Time for waiting for Buffer layer during reading. -- `ProfileEvent_StorageBufferLayerLockWritersWaitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Time for waiting free Buffer layer to write to (can be used to tune Buffer layers). -- `ProfileEvent_SystemLogErrorOnFlush` ([UInt64](/reference/data-types/int-uint)) — Number of times any of the system logs have failed to flush to the corresponding system table. Attempts to flush are repeated. -- `ProfileEvent_DictCacheKeysRequested` ([UInt64](/reference/data-types/int-uint)) — Number of keys requested from the data source for the dictionaries of 'cache' types. -- `ProfileEvent_DictCacheKeysRequestedMiss` ([UInt64](/reference/data-types/int-uint)) — Number of keys requested from the data source for dictionaries of 'cache' types but not found in the data source. -- `ProfileEvent_DictCacheKeysRequestedFound` ([UInt64](/reference/data-types/int-uint)) — Number of keys requested from the data source for dictionaries of 'cache' types and found in the data source. -- `ProfileEvent_DictCacheKeysExpired` ([UInt64](/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and found in the cache but they were obsolete. -- `ProfileEvent_DictCacheKeysNotFound` ([UInt64](/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and not found. -- `ProfileEvent_DictCacheKeysHit` ([UInt64](/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and found in the cache. -- `ProfileEvent_DictCacheRequestTimeNs` ([UInt64](/reference/data-types/int-uint)) — Number of nanoseconds spend in querying the external data sources for the dictionaries of 'cache' types. -- `ProfileEvent_DictCacheRequests` ([UInt64](/reference/data-types/int-uint)) — Number of bulk requests to the external data sources for the dictionaries of 'cache' types. -- `ProfileEvent_DictCacheLockWriteNs` ([UInt64](/reference/data-types/int-uint)) — Number of nanoseconds spend in waiting for write lock to update the data for the dictionaries of 'cache' types. -- `ProfileEvent_DictCacheLockReadNs` ([UInt64](/reference/data-types/int-uint)) — Number of nanoseconds spend in waiting for read lock to lookup the data for the dictionaries of 'cache' types. -- `ProfileEvent_DistributedSyncInsertionTimeoutExceeded` ([UInt64](/reference/data-types/int-uint)) — A timeout has exceeded while waiting for shards during synchronous insertion into a Distributed table (with 'distributed_foreground_insert' = 1) -- `ProfileEvent_DistributedAsyncInsertionFailures` ([UInt64](/reference/data-types/int-uint)) — Number of failures for asynchronous insertion into a Distributed table (with 'distributed_foreground_insert' = 0) -- `ProfileEvent_DataAfterMergeDiffersFromReplica` ([UInt64](/reference/data-types/int-uint)) — Number of times data after merge is not byte-identical to the data on another replicas. There could be several reasons: - 1. Using newer version of compression library after server update. - 2. Using another compression method. - 3. Non-deterministic compression algorithm (highly unlikely). - 4. Non-deterministic merge algorithm due to logical error in code. - 5. Data corruption in memory due to bug in code. - 6. Data corruption in memory due to hardware issue. - 7. Manual modification of source data after server startup. - 8. Manual modification of checksums stored in ZooKeeper. - 9. Part format related settings like 'enable_mixed_granularity_parts' are different on different replicas. - The server successfully detected this situation and will download merged part from the replica to force the byte-identical result. -- `ProfileEvent_DataAfterMutationDiffersFromReplica` ([UInt64](/reference/data-types/int-uint)) — Number of times data after mutation is not byte-identical to the data on other replicas. In addition to the reasons described in 'DataAfterMergeDiffersFromReplica', it is also possible due to non-deterministic mutation. -- `ProfileEvent_PolygonsAddedToPool` ([UInt64](/reference/data-types/int-uint)) — A polygon has been added to the cache (pool) for the 'pointInPolygon' function. -- `ProfileEvent_PolygonsInPoolAllocatedBytes` ([UInt64](/reference/data-types/int-uint)) — The number of bytes for polygons added to the cache (pool) for the 'pointInPolygon' function. -- `ProfileEvent_NaiveBayesClassifierModelsLoaded` ([UInt64](/reference/data-types/int-uint)) — Number of Naive Bayes Classifier models loaded. -- `ProfileEvent_NaiveBayesClassifierModelsAllocatedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes allocated for Naive Bayes Classifier models. -- `ProfileEvent_USearchAddCount` ([UInt64](/reference/data-types/int-uint)) — Number of vectors added to usearch indexes. -- `ProfileEvent_USearchAddVisitedMembers` ([UInt64](/reference/data-types/int-uint)) — Number of nodes visited when adding vectors to usearch indexes. -- `ProfileEvent_USearchAddComputedDistances` ([UInt64](/reference/data-types/int-uint)) — Number of times distance was computed when adding vectors to usearch indexes. -- `ProfileEvent_USearchSearchCount` ([UInt64](/reference/data-types/int-uint)) — Number of search operations performed in usearch indexes. -- `ProfileEvent_USearchSearchVisitedMembers` ([UInt64](/reference/data-types/int-uint)) — Number of nodes visited when searching in usearch indexes. -- `ProfileEvent_USearchSearchComputedDistances` ([UInt64](/reference/data-types/int-uint)) — Number of times distance was computed when searching usearch indexes. -- `ProfileEvent_RWLockAcquiredReadLocks` ([UInt64](/reference/data-types/int-uint)) — Number of times a read lock was acquired (in a heavy RWLock). -- `ProfileEvent_RWLockAcquiredWriteLocks` ([UInt64](/reference/data-types/int-uint)) — Number of times a write lock was acquired (in a heavy RWLock). -- `ProfileEvent_RWLockReadersWaitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for a read lock to be acquired (in a heavy RWLock). -- `ProfileEvent_RWLockWritersWaitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for a write lock to be acquired (in a heavy RWLock). -- `ProfileEvent_DNSError` ([UInt64](/reference/data-types/int-uint)) — Total count of errors in DNS resolution -- `ProfileEvent_PartsLockHoldMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent holding data parts lock in MergeTree tables -- `ProfileEvent_PartsLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for data parts lock in MergeTree tables -- `ProfileEvent_PartsLocks` ([UInt64](/reference/data-types/int-uint)) — Number of times data parts lock has been acquired for MergeTree tables -- `ProfileEvent_SharedPartsLockHoldMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent holding shared data parts lock in MergeTree tables -- `ProfileEvent_SharedPartsLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for shared data parts lock in MergeTree tables -- `ProfileEvent_SharedPartsLocks` ([UInt64](/reference/data-types/int-uint)) — Number of times shared data parts lock has been acquired for MergeTree tables -- `ProfileEvent_RealTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total (wall clock) time spent in processing (queries and other tasks) threads (note that this is a sum). -- `ProfileEvent_UserTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent in processing (queries and other tasks) threads executing CPU instructions in user mode. This includes time CPU pipeline was stalled due to main memory access, cache misses, branch mispredictions, hyper-threading, etc. -- `ProfileEvent_SystemTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent in processing (queries and other tasks) threads executing CPU instructions in OS kernel mode. This is time spent in syscalls, excluding waiting time during blocking syscalls. -- `ProfileEvent_MemoryOvercommitWaitTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent in waiting for memory to be freed in OvercommitTracker. -- `ProfileEvent_MemoryAllocatorPurge` ([UInt64](/reference/data-types/int-uint)) — Total number of times memory allocator purge was requested -- `ProfileEvent_MemoryAllocatorPurgeTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for memory allocator purge -- `ProfileEvent_SoftPageFaults` ([UInt64](/reference/data-types/int-uint)) — The number of soft page faults in query execution threads. Soft page fault usually means a miss in the memory allocator cache, which requires a new memory mapping from the OS and subsequent allocation of a page of physical memory. -- `ProfileEvent_HardPageFaults` ([UInt64](/reference/data-types/int-uint)) — The number of hard page faults in query execution threads. High values indicate either that you forgot to turn off swap on your server, or eviction of memory pages of the ClickHouse binary during very high memory pressure, or successful usage of the 'mmap' read method for the tables data. -- `ProfileEvent_OSIOWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a thread spent waiting for a result of IO operation, from the OS point of view. This is real IO that doesn't include page cache. -- `ProfileEvent_OSCPUWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a thread was ready for execution but waiting to be scheduled by OS, from the OS point of view. -- `ProfileEvent_OSCPUVirtualTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — CPU time spent seen by OS. Does not include involuntary waits due to virtualization. -- `ProfileEvent_OSReadBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read from disks or block devices. Doesn't include bytes read from page cache. May include excessive data due to block size, readahead, etc. -- `ProfileEvent_OSWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to disks or block devices. Doesn't include bytes that are in page cache dirty pages. May not include data that was written by OS asynchronously. -- `ProfileEvent_OSReadChars` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read from filesystem, including page cache, as well as network and other files. -- `ProfileEvent_OSWriteChars` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to filesystem, including page cache, as well as network and other files. -- `ProfileEvent_ParallelReplicasHandleRequestMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent processing requests for marks from replicas -- `ProfileEvent_ParallelReplicasHandleAnnouncementMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent processing replicas announcements -- `ProfileEvent_ParallelReplicasAnnouncementMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to send an announcement -- `ProfileEvent_ParallelReplicasReadRequestMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent for read requests -- `ProfileEvent_ParallelReplicasReadAssignedMarks` ([UInt64](/reference/data-types/int-uint)) — Sum across all replicas of how many of scheduled marks were assigned by consistent hash -- `ProfileEvent_ParallelReplicasReadUnassignedMarks` ([UInt64](/reference/data-types/int-uint)) — Sum across all replicas of how many unassigned marks were scheduled -- `ProfileEvent_ParallelReplicasReadAssignedForStealingMarks` ([UInt64](/reference/data-types/int-uint)) — Sum across all replicas of how many of scheduled marks were assigned for stealing by consistent hash -- `ProfileEvent_ParallelReplicasReadMarks` ([UInt64](/reference/data-types/int-uint)) — How many marks were read by the given replica -- `ProfileEvent_ParallelReplicasStealingByHashMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent collecting segments meant for stealing by hash -- `ProfileEvent_ParallelReplicasProcessingPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent processing data parts -- `ProfileEvent_ParallelReplicasStealingLeftoversMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent collecting orphaned segments -- `ProfileEvent_ParallelReplicasCollectingOwnedSegmentsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent collecting segments meant by hash -- `ProfileEvent_ParallelReplicasNumRequests` ([UInt64](/reference/data-types/int-uint)) — Number of requests to the initiator. -- `ProfileEvent_ParallelReplicasDeniedRequests` ([UInt64](/reference/data-types/int-uint)) — Number of completely denied requests to the initiator -- `ProfileEvent_CacheWarmerBytesDownloaded` ([UInt64](/reference/data-types/int-uint)) — Amount of data fetched into filesystem cache by dedicated background threads. -- `ProfileEvent_CacheWarmerDataPartsDownloaded` ([UInt64](/reference/data-types/int-uint)) — Number of data parts that were fully fetched by CacheWarmer. -- `ProfileEvent_IgnoredColdParts` ([UInt64](/reference/data-types/int-uint)) — See setting ignore_cold_parts_seconds. Number of times read queries ignored very new parts that weren't pulled into cache by CacheWarmer yet. -- `ProfileEvent_PreferredWarmedUnmergedParts` ([UInt64](/reference/data-types/int-uint)) — See setting prefer_warmed_unmerged_parts_seconds. Number of times read queries used outdated pre-merge parts that are in cache instead of merged part that wasn't pulled into cache by CacheWarmer yet. -- `ProfileEvent_PerfCPUCycles` ([UInt64](/reference/data-types/int-uint)) — Total cycles. Be wary of what happens during CPU frequency scaling. -- `ProfileEvent_PerfInstructions` ([UInt64](/reference/data-types/int-uint)) — Retired instructions. Be careful, these can be affected by various issues, most notably hardware interrupt counts. -- `ProfileEvent_PerfCacheReferences` ([UInt64](/reference/data-types/int-uint)) — Cache accesses. Usually, this indicates Last Level Cache accesses, but this may vary depending on your CPU. This may include prefetches and coherency messages; again this depends on the design of your CPU. -- `ProfileEvent_PerfCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Cache misses. Usually this indicates Last Level Cache misses; this is intended to be used in conjunction with the PERFCOUNTHWCACHEREFERENCES event to calculate cache miss rates. -- `ProfileEvent_PerfBranchInstructions` ([UInt64](/reference/data-types/int-uint)) — Retired branch instructions. Prior to Linux 2.6.35, this used the wrong event on AMD processors. -- `ProfileEvent_PerfBranchMisses` ([UInt64](/reference/data-types/int-uint)) — Mispredicted branch instructions. -- `ProfileEvent_PerfBusCycles` ([UInt64](/reference/data-types/int-uint)) — Bus cycles, which can be different from total cycles. -- `ProfileEvent_PerfStalledCyclesFrontend` ([UInt64](/reference/data-types/int-uint)) — Stalled cycles during issue. -- `ProfileEvent_PerfStalledCyclesBackend` ([UInt64](/reference/data-types/int-uint)) — Stalled cycles during retirement. -- `ProfileEvent_PerfRefCPUCycles` ([UInt64](/reference/data-types/int-uint)) — Total cycles; not affected by CPU frequency scaling. -- `ProfileEvent_PerfCPUClock` ([UInt64](/reference/data-types/int-uint)) — The CPU clock, a high-resolution per-CPU timer -- `ProfileEvent_PerfTaskClock` ([UInt64](/reference/data-types/int-uint)) — A clock count specific to the task that is running -- `ProfileEvent_PerfContextSwitches` ([UInt64](/reference/data-types/int-uint)) — Number of context switches -- `ProfileEvent_PerfCPUMigrations` ([UInt64](/reference/data-types/int-uint)) — Number of times the process has migrated to a new CPU -- `ProfileEvent_PerfAlignmentFaults` ([UInt64](/reference/data-types/int-uint)) — Number of alignment faults. These happen when unaligned memory accesses happen; the kernel can handle these but it reduces performance. This happens only on some architectures (never on x86). -- `ProfileEvent_PerfEmulationFaults` ([UInt64](/reference/data-types/int-uint)) — Number of emulation faults. The kernel sometimes traps on unimplemented instructions and emulates them for user space. This can negatively impact performance. -- `ProfileEvent_PerfMinEnabledTime` ([UInt64](/reference/data-types/int-uint)) — For all events, minimum time that an event was enabled. Used to track event multiplexing influence -- `ProfileEvent_PerfMinEnabledRunningTime` ([UInt64](/reference/data-types/int-uint)) — Running time for event with minimum enabled time. Used to track the amount of event multiplexing -- `ProfileEvent_PerfDataTLBReferences` ([UInt64](/reference/data-types/int-uint)) — Data TLB references -- `ProfileEvent_PerfDataTLBMisses` ([UInt64](/reference/data-types/int-uint)) — Data TLB misses -- `ProfileEvent_PerfInstructionTLBReferences` ([UInt64](/reference/data-types/int-uint)) — Instruction TLB references -- `ProfileEvent_PerfInstructionTLBMisses` ([UInt64](/reference/data-types/int-uint)) — Instruction TLB misses -- `ProfileEvent_PerfLocalMemoryReferences` ([UInt64](/reference/data-types/int-uint)) — Local NUMA node memory reads -- `ProfileEvent_PerfLocalMemoryMisses` ([UInt64](/reference/data-types/int-uint)) — Local NUMA node memory read misses -- `ProfileEvent_CannotWriteToWriteBufferDiscard` ([UInt64](/reference/data-types/int-uint)) — Number of stack traces dropped by query profiler or signal handler because pipe is full or cannot write to pipe. -- `ProfileEvent_QueryProfilerSignalOverruns` ([UInt64](/reference/data-types/int-uint)) — Number of times we drop processing of a query profiler signal due to overrun plus the number of signals that OS has not delivered due to overrun. -- `ProfileEvent_QueryProfilerConcurrencyOverruns` ([UInt64](/reference/data-types/int-uint)) — Number of times we drop processing of a query profiler signal due to too many concurrent query profilers in other threads, which may indicate overload. -- `ProfileEvent_QueryProfilerRuns` ([UInt64](/reference/data-types/int-uint)) — Number of times QueryProfiler had been run. -- `ProfileEvent_QueryProfilerErrors` ([UInt64](/reference/data-types/int-uint)) — Invalid memory accesses during asynchronous stack unwinding. -- `ProfileEvent_CreatedLogEntryForMerge` ([UInt64](/reference/data-types/int-uint)) — Successfully created log entry to merge parts in ReplicatedMergeTree. -- `ProfileEvent_NotCreatedLogEntryForMerge` ([UInt64](/reference/data-types/int-uint)) — Log entry to merge parts in ReplicatedMergeTree is not created due to concurrent log update by another replica. -- `ProfileEvent_CreatedLogEntryForMutation` ([UInt64](/reference/data-types/int-uint)) — Successfully created log entry to mutate parts in ReplicatedMergeTree. -- `ProfileEvent_NotCreatedLogEntryForMutation` ([UInt64](/reference/data-types/int-uint)) — Log entry to mutate parts in ReplicatedMergeTree is not created due to concurrent log update by another replica. -- `ProfileEvent_S3ReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of GET and HEAD requests to S3 storage. -- `ProfileEvent_S3ReadRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of GET and HEAD requests to S3 storage. -- `ProfileEvent_S3ReadRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of non-throttling errors in GET and HEAD requests to S3 storage. -- `ProfileEvent_S3ReadRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of 429 and 503 errors in GET and HEAD requests to S3 storage. -- `ProfileEvent_S3ReadRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of redirects in GET and HEAD requests to S3 storage. -- `ProfileEvent_S3ReadRequestAttempts` ([UInt64](/reference/data-types/int-uint)) — Number of attempts for GET and HEAD requests, including the initial try and any retries, but excluding retries performed internally by the S3 retry strategy -- `ProfileEvent_S3ReadRequestRetryableErrors` ([UInt64](/reference/data-types/int-uint)) — Number of retryable errors for GET and HEAD requests, excluding retries performed internally by the S3 retry strategy -- `ProfileEvent_S3WriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of POST, DELETE, PUT and PATCH requests to S3 storage. -- `ProfileEvent_S3WriteRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of POST, DELETE, PUT and PATCH requests to S3 storage. -- `ProfileEvent_S3WriteRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of non-throttling errors in POST, DELETE, PUT and PATCH requests to S3 storage. -- `ProfileEvent_S3WriteRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of 429 and 503 errors in POST, DELETE, PUT and PATCH requests to S3 storage. -- `ProfileEvent_S3WriteRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of redirects in POST, DELETE, PUT and PATCH requests to S3 storage. -- `ProfileEvent_S3WriteRequestAttempts` ([UInt64](/reference/data-types/int-uint)) — Number of attempts for POST, DELETE, PUT and PATCH requests, including the initial try and any retries, but excluding retries performed internally by the retry strategy -- `ProfileEvent_S3WriteRequestRetryableErrors` ([UInt64](/reference/data-types/int-uint)) — Number of retryable errors for POST, DELETE, PUT and PATCH requests, excluding retries performed internally by the retry strategy -- `ProfileEvent_DiskS3ReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of GET and HEAD requests to DiskS3 storage. -- `ProfileEvent_DiskS3ReadRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of GET and HEAD requests to DiskS3 storage. -- `ProfileEvent_DiskS3ReadRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of non-throttling errors in GET and HEAD requests to DiskS3 storage. -- `ProfileEvent_DiskS3ReadRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of 429 and 503 errors in GET and HEAD requests to DiskS3 storage. -- `ProfileEvent_DiskS3ReadRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of redirects in GET and HEAD requests to DiskS3 storage. -- `ProfileEvent_DiskS3ReadRequestAttempts` ([UInt64](/reference/data-types/int-uint)) — Number of attempts for GET and HEAD requests to DiskS3 storage, including the initial try and any retries, but excluding retries performed internally by the S3 retry strategy -- `ProfileEvent_DiskS3ReadRequestRetryableErrors` ([UInt64](/reference/data-types/int-uint)) — Number of retryable errors for GET and HEAD requests to DiskS3 storage, excluding retries performed internally by the S3 retry strategy -- `ProfileEvent_DiskS3WriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of POST, DELETE, PUT and PATCH requests to DiskS3 storage. -- `ProfileEvent_DiskS3WriteRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of POST, DELETE, PUT and PATCH requests to DiskS3 storage. -- `ProfileEvent_DiskS3WriteRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of non-throttling errors in POST, DELETE, PUT and PATCH requests to DiskS3 storage. -- `ProfileEvent_DiskS3WriteRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of 429 and 503 errors in POST, DELETE, PUT and PATCH requests to DiskS3 storage. -- `ProfileEvent_DiskS3WriteRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of redirects in POST, DELETE, PUT and PATCH requests to DiskS3 storage. -- `ProfileEvent_DiskS3WriteRequestAttempts` ([UInt64](/reference/data-types/int-uint)) — Number of attempts for POST, DELETE, PUT and PATCH requests to DiskS3 storage, including the initial try and any retries, but excluding retries performed internally by the retry strategy -- `ProfileEvent_DiskS3WriteRequestRetryableErrors` ([UInt64](/reference/data-types/int-uint)) — Number of retryable errors for POST, DELETE, PUT and PATCH requests to DiskS3 storage, excluding retries performed internally by the retry strategy -- `ProfileEvent_S3DeleteObjects` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API DeleteObject(s) calls. -- `ProfileEvent_S3CopyObject` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API CopyObject calls. -- `ProfileEvent_S3ListObjects` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API ListObjects calls. -- `ProfileEvent_S3HeadObject` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API HeadObject calls. -- `ProfileEvent_S3GetObjectTagging` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API GetObjectTagging calls. -- `ProfileEvent_S3CreateMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API CreateMultipartUpload calls. -- `ProfileEvent_S3UploadPartCopy` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API UploadPartCopy calls. -- `ProfileEvent_S3UploadPart` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API UploadPart calls. -- `ProfileEvent_S3AbortMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API AbortMultipartUpload calls. -- `ProfileEvent_S3CompleteMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API CompleteMultipartUpload calls. -- `ProfileEvent_S3PutObject` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API PutObject calls. -- `ProfileEvent_S3GetObject` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API GetObject calls. -- `ProfileEvent_DiskS3DeleteObjects` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API DeleteObject(s) calls. -- `ProfileEvent_DiskS3CopyObject` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API CopyObject calls. -- `ProfileEvent_DiskS3ListObjects` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API ListObjects calls. -- `ProfileEvent_DiskS3HeadObject` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API HeadObject calls. -- `ProfileEvent_DiskS3GetObjectTagging` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API GetObjectTagging calls. -- `ProfileEvent_DiskS3CreateMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API CreateMultipartUpload calls. -- `ProfileEvent_DiskS3UploadPartCopy` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API UploadPartCopy calls. -- `ProfileEvent_DiskS3UploadPart` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API UploadPart calls. -- `ProfileEvent_DiskS3AbortMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API AbortMultipartUpload calls. -- `ProfileEvent_DiskS3CompleteMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API CompleteMultipartUpload calls. -- `ProfileEvent_DiskS3PutObject` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API PutObject calls. -- `ProfileEvent_DiskS3GetObject` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API GetObject calls. -- `ProfileEvent_DiskPlainRewritableAzureDirectoryCreated` ([UInt64](/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for AzureObjectStorage. -- `ProfileEvent_DiskPlainRewritableAzureDirectoryRemoved` ([UInt64](/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for AzureObjectStorage. -- `ProfileEvent_DiskPlainRewritableLocalDirectoryCreated` ([UInt64](/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for LocalObjectStorage. -- `ProfileEvent_DiskPlainRewritableLocalDirectoryRemoved` ([UInt64](/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for LocalObjectStorage. -- `ProfileEvent_DiskPlainRewritableS3DirectoryCreated` ([UInt64](/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for S3ObjectStorage. -- `ProfileEvent_DiskPlainRewritableS3DirectoryRemoved` ([UInt64](/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for S3ObjectStorage. -- `ProfileEvent_DiskPlainRewritableLegacyLayoutDiskCount` ([UInt64](/reference/data-types/int-uint)) — Number of the 'plain_rewritable' disks with legacy layout. -- `ProfileEvent_S3Clients` ([UInt64](/reference/data-types/int-uint)) — Number of created S3 clients. -- `ProfileEvent_TinyS3Clients` ([UInt64](/reference/data-types/int-uint)) — Number of S3 clients copies which reuse an existing auth provider from another client. -- `ProfileEvent_EngineFileLikeReadFiles` ([UInt64](/reference/data-types/int-uint)) — Number of files read in table engines working with files (like File/S3/URL/HDFS). -- `ProfileEvent_ReadBufferFromS3Microseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent on reading from S3. -- `ProfileEvent_ReadBufferFromS3InitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent initializing connection to S3. -- `ProfileEvent_ReadBufferFromS3Bytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from S3. -- `ProfileEvent_ReadBufferFromS3RequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while reading from S3. -- `ProfileEvent_WriteBufferFromS3Microseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent on writing to S3. -- `ProfileEvent_WriteBufferFromS3Bytes` ([UInt64](/reference/data-types/int-uint)) — Bytes written to S3. -- `ProfileEvent_WriteBufferFromS3RequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while writing to S3. -- `ProfileEvent_WriteBufferFromS3WaitInflightLimitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent on waiting while some of the current requests are done when its number reached the limit defined by s3_max_inflight_parts_for_one_file. -- `ProfileEvent_QueryMemoryLimitExceeded` ([UInt64](/reference/data-types/int-uint)) — Number of times when memory limit exceeded for query. -- `ProfileEvent_MemoryAllocatedWithoutCheck` ([UInt64](/reference/data-types/int-uint)) — Number of times memory has been allocated without checking for memory constraints. -- `ProfileEvent_MemoryAllocatedWithoutCheckBytes` ([UInt64](/reference/data-types/int-uint)) — Amount of bytes that has been allocated without checking for memory constraints. -- `ProfileEvent_AzureGetObject` ([UInt64](/reference/data-types/int-uint)) — Number of Azure API GetObject calls. -- `ProfileEvent_AzureUpload` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API Upload calls -- `ProfileEvent_AzureStageBlock` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API StageBlock calls -- `ProfileEvent_AzureCommitBlockList` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API CommitBlockList calls -- `ProfileEvent_AzureCopyObject` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API CopyObject calls -- `ProfileEvent_AzureDeleteObjects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API DeleteObject(s) calls. -- `ProfileEvent_AzureListObjects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API ListObjects calls. -- `ProfileEvent_AzureGetProperties` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API GetProperties calls. -- `ProfileEvent_AzureCreateContainer` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API CreateContainer calls. -- `ProfileEvent_DiskAzureGetObject` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure API GetObject calls. -- `ProfileEvent_DiskAzureUpload` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API Upload calls -- `ProfileEvent_DiskAzureStageBlock` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API StageBlock calls -- `ProfileEvent_DiskAzureCommitBlockList` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CommitBlockList calls -- `ProfileEvent_DiskAzureCopyObject` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CopyObject calls -- `ProfileEvent_DiskAzureListObjects` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API ListObjects calls. -- `ProfileEvent_DiskAzureDeleteObjects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API DeleteObject(s) calls. -- `ProfileEvent_DiskAzureGetProperties` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API GetProperties calls. -- `ProfileEvent_DiskAzureCreateContainer` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CreateContainer calls. -- `ProfileEvent_ReadBufferFromAzureMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent on reading from Azure. -- `ProfileEvent_ReadBufferFromAzureInitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent initializing connection to Azure. -- `ProfileEvent_ReadBufferFromAzureBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from Azure. -- `ProfileEvent_ReadBufferFromAzureRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while reading from Azure -- `ProfileEvent_CachedReadBufferReadFromCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times the read from filesystem cache hit the cache. -- `ProfileEvent_CachedReadBufferReadFromCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times the read from filesystem cache miss the cache. -- `ProfileEvent_CachedReadBufferReadFromSourceMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time reading from filesystem cache source (from remote filesystem, etc) -- `ProfileEvent_CachedReadBufferWaitReadBufferMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spend waiting for internal read buffer (includes cache waiting) -- `ProfileEvent_CachedReadBufferPredownloadedFromSourceMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time reading from filesystem cache source for predownload (from remote filesystem, etc) -- `ProfileEvent_CachedReadBufferReadFromCacheMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time reading from filesystem cache -- `ProfileEvent_CachedReadBufferReadFromSourceBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from filesystem cache source (from remote fs, etc) -- `ProfileEvent_CachedReadBufferPredownloadedFromSourceBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from filesystem cache source for predownload (from remote fs, etc) -- `ProfileEvent_CachedReadBufferReadFromCacheBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from filesystem cache -- `ProfileEvent_CachedReadBufferPredownloadedBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from filesystem cache source. Cache segments are read from left to right as a whole, it might be that we need to predownload some part of the segment irrelevant for the current task just to get to the needed data -- `ProfileEvent_CachedReadBufferCacheWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes written from source (remote fs, etc) to filesystem cache -- `ProfileEvent_CachedReadBufferCacheWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent writing data into filesystem cache -- `ProfileEvent_CachedReadBufferCreateBufferMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Prepare buffer time -- `ProfileEvent_CachedWriteBufferCacheWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes written from source (remote fs, etc) to filesystem cache -- `ProfileEvent_CachedWriteBufferCacheWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent writing data into filesystem cache -- `ProfileEvent_FilesystemCacheLoadMetadataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent loading filesystem cache metadata -- `ProfileEvent_FilesystemCacheEvictedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes evicted from filesystem cache -- `ProfileEvent_FilesystemCacheCreatedKeyDirectories` ([UInt64](/reference/data-types/int-uint)) — Number of created key directories -- `ProfileEvent_FilesystemCacheEvictedFileSegments` ([UInt64](/reference/data-types/int-uint)) — Number of file segments evicted from filesystem cache -- `ProfileEvent_FilesystemCacheEvictedFileSegmentsDuringPriorityIncrease` ([UInt64](/reference/data-types/int-uint)) — Number of file segments evicted from filesystem cache when increasing priority of file segments (Applies to SLRU cache policy) -- `ProfileEvent_FilesystemCacheBackgroundDownloadQueuePush` ([UInt64](/reference/data-types/int-uint)) — Number of file segments sent for background download in filesystem cache -- `ProfileEvent_FilesystemCacheEvictionSkippedFileSegments` ([UInt64](/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in unreleasable state -- `ProfileEvent_FilesystemCacheEvictionSkippedEvictingFileSegments` ([UInt64](/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in evicting state -- `ProfileEvent_FilesystemCacheEvictionSkippedMovingFileSegments` ([UInt64](/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in moving state -- `ProfileEvent_FilesystemCacheEvictionTries` ([UInt64](/reference/data-types/int-uint)) — Number of filesystem cache eviction attempts -- `ProfileEvent_FilesystemCacheEvictionReusedIterator` ([UInt64](/reference/data-types/int-uint)) — Number of filesystem cache iterator reusing -- `ProfileEvent_FilesystemCacheLockKeyMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock cache key time -- `ProfileEvent_FilesystemCacheLockMetadataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock filesystem cache metadata time -- `ProfileEvent_FilesystemCachePriorityWriteLockMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock filesystem cache time for write to priority queue -- `ProfileEvent_FilesystemCachePriorityReadLockMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock filesystem cache time for read in priority queue -- `ProfileEvent_FilesystemCacheStateLockMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock filesystem cache time for state lock -- `ProfileEvent_FilesystemCacheReserveMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache space reservation time -- `ProfileEvent_FilesystemCacheReserveAttempts` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache space reservation attempt -- `ProfileEvent_FilesystemCacheEvictMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache eviction time -- `ProfileEvent_FilesystemCacheGetOrSetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache getOrSet() time -- `ProfileEvent_FilesystemCacheGetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache get() time -- `ProfileEvent_FilesystemCacheBackgroundEvictedFileSegments` ([UInt64](/reference/data-types/int-uint)) — Number of file segments evicted by background thread -- `ProfileEvent_FilesystemCacheBackgroundEvictedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes evicted by background thread -- `ProfileEvent_FilesystemCacheCheckCorrectness` ([UInt64](/reference/data-types/int-uint)) — Number of times FileCache::assertCacheCorrectness was called -- `ProfileEvent_FilesystemCacheCheckCorrectnessMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How much time does FileCache::assertCacheCorrectness takes -- `ProfileEvent_FileSegmentWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Wait on DOWNLOADING state -- `ProfileEvent_FileSegmentCompleteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Duration of FileSegment::complete() in filesystem cache -- `ProfileEvent_FileSegmentLockMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock file segment time -- `ProfileEvent_FileSegmentWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — File segment write() time -- `ProfileEvent_FileSegmentIncreasePriorityMicroseconds` ([UInt64](/reference/data-types/int-uint)) — File segment increase priority time -- `ProfileEvent_FileSegmentRemoveMicroseconds` ([UInt64](/reference/data-types/int-uint)) — File segment remove() time -- `ProfileEvent_FileSegmentHolderCompleteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — File segments holder complete() time -- `ProfileEvent_FileSegmentFailToIncreasePriority` ([UInt64](/reference/data-types/int-uint)) — Number of times the priority was not increased due to a high contention on the cache lock -- `ProfileEvent_FilesystemCacheFailToReserveSpaceBecauseOfLockContention` ([UInt64](/reference/data-types/int-uint)) — Number of times space reservation was skipped due to a high contention on the cache lock -- `ProfileEvent_FilesystemCacheFailToReserveSpaceBecauseOfCacheResize` ([UInt64](/reference/data-types/int-uint)) — Number of times space reservation was skipped due to the cache is being resized -- `ProfileEvent_FilesystemCacheHoldFileSegments` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache file segments count, which were hold -- `ProfileEvent_FilesystemCacheUnusedHoldFileSegments` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache file segments count, which were hold, but not used (because of seek or LIMIT n, etc) -- `ProfileEvent_FilesystemCacheFreeSpaceKeepingThreadRun` ([UInt64](/reference/data-types/int-uint)) — Number of times background thread executed free space keeping job -- `ProfileEvent_FilesystemCacheFreeSpaceKeepingThreadWorkMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Time for which background thread executed free space keeping job -- `ProfileEvent_FilesystemCacheFailedEvictionCandidates` ([UInt64](/reference/data-types/int-uint)) — Number of file segments which unexpectedly failed to be evicted during dynamic filesystem cache eviction -- `ProfileEvent_RemoteFSSeeks` ([UInt64](/reference/data-types/int-uint)) — Total number of seeks for async buffer -- `ProfileEvent_RemoteFSPrefetches` ([UInt64](/reference/data-types/int-uint)) — Number of prefetches made with asynchronous reading from remote filesystem -- `ProfileEvent_RemoteFSCancelledPrefetches` ([UInt64](/reference/data-types/int-uint)) — Number of cancelled prefecthes (because of seek) -- `ProfileEvent_RemoteFSUnusedPrefetches` ([UInt64](/reference/data-types/int-uint)) — Number of prefetches pending at buffer destruction -- `ProfileEvent_RemoteFSPrefetchedReads` ([UInt64](/reference/data-types/int-uint)) — Number of reads from prefecthed buffer -- `ProfileEvent_RemoteFSPrefetchedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes from prefecthed buffer -- `ProfileEvent_RemoteFSUnprefetchedReads` ([UInt64](/reference/data-types/int-uint)) — Number of reads from unprefetched buffer -- `ProfileEvent_RemoteFSUnprefetchedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes from unprefetched buffer -- `ProfileEvent_RemoteFSLazySeeks` ([UInt64](/reference/data-types/int-uint)) — Number of lazy seeks -- `ProfileEvent_RemoteFSSeeksWithReset` ([UInt64](/reference/data-types/int-uint)) — Number of seeks which lead to a new connection -- `ProfileEvent_RemoteFSBuffers` ([UInt64](/reference/data-types/int-uint)) — Number of buffers created for asynchronous reading from remote filesystem -- `ProfileEvent_MergeTreePrefetchedReadPoolInit` ([UInt64](/reference/data-types/int-uint)) — Time spent preparing tasks in MergeTreePrefetchedReadPool -- `ProfileEvent_WaitPrefetchTaskMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spend waiting for prefetched reader -- `ProfileEvent_ThreadpoolReaderTaskMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent getting the data in asynchronous reading -- `ProfileEvent_ThreadpoolReaderPrepareMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent on preparation (e.g. call to reader seek() method) -- `ProfileEvent_ThreadpoolReaderReadBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from a threadpool task in asynchronous reading -- `ProfileEvent_ThreadpoolReaderSubmit` ([UInt64](/reference/data-types/int-uint)) — Bytes read from a threadpool task in asynchronous reading -- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronously` ([UInt64](/reference/data-types/int-uint)) — How many times we haven't scheduled a task on the thread pool and read synchronously instead -- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronouslyBytes` ([UInt64](/reference/data-types/int-uint)) — How many bytes were read synchronously -- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronouslyMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How much time we spent reading synchronously -- `ProfileEvent_ThreadpoolReaderSubmitLookupInCacheMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How much time we spent checking if content is cached -- `ProfileEvent_AsynchronousReaderIgnoredBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes ignored during asynchronous reading -- `ProfileEvent_ReadBufferSeekCancelConnection` ([UInt64](/reference/data-types/int-uint)) — Number of seeks which lead to new connection (s3, http) -- `ProfileEvent_SleepFunctionCalls` ([UInt64](/reference/data-types/int-uint)) — Number of times a sleep function (sleep, sleepEachRow) has been called. -- `ProfileEvent_SleepFunctionMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time set to sleep in a sleep function (sleep, sleepEachRow). -- `ProfileEvent_SleepFunctionElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent sleeping in a sleep function (sleep, sleepEachRow). -- `ProfileEvent_ThreadPoolReaderPageCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times the read inside ThreadPoolReader was done from the page cache. -- `ProfileEvent_ThreadPoolReaderPageCacheHitBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read inside ThreadPoolReader when it was done from the page cache. -- `ProfileEvent_ThreadPoolReaderPageCacheHitElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent reading data from page cache in ThreadPoolReader. -- `ProfileEvent_ThreadPoolReaderPageCacheMiss` ([UInt64](/reference/data-types/int-uint)) — Number of times the read inside ThreadPoolReader was not done from page cache and was hand off to thread pool. -- `ProfileEvent_ThreadPoolReaderPageCacheMissBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read inside ThreadPoolReader when read was not done from page cache and was hand off to thread pool. -- `ProfileEvent_ThreadPoolReaderPageCacheMissElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent reading data inside the asynchronous job in ThreadPoolReader - when read was not done from the page cache. -- `ProfileEvent_AsynchronousReadWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in waiting for asynchronous reads in asynchronous local read. -- `ProfileEvent_SynchronousReadWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in waiting for synchronous reads in asynchronous local read. -- `ProfileEvent_AsynchronousRemoteReadWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in waiting for asynchronous remote reads. -- `ProfileEvent_SynchronousRemoteReadWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in waiting for synchronous remote reads. -- `ProfileEvent_ExternalDataSourceLocalCacheReadBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from local cache buffer in RemoteReadBufferCache -- `ProfileEvent_MainConfigLoads` ([UInt64](/reference/data-types/int-uint)) — Number of times the main configuration was reloaded. -- `ProfileEvent_AggregationPreallocatedElementsInHashTables` ([UInt64](/reference/data-types/int-uint)) — How many elements were preallocated in hash tables for aggregation. -- `ProfileEvent_AggregationHashTablesInitializedAsTwoLevel` ([UInt64](/reference/data-types/int-uint)) — How many hash tables were inited as two-level for aggregation. -- `ProfileEvent_AggregationOptimizedEqualRangesOfKeys` ([UInt64](/reference/data-types/int-uint)) — For how many blocks optimization of equal ranges of keys was applied -- `ProfileEvent_HashJoinPreallocatedElementsInHashTables` ([UInt64](/reference/data-types/int-uint)) — How many elements were preallocated in hash tables for hash join. -- `ProfileEvent_MetadataFromKeeperCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times an object storage metadata request was answered from cache without making request to Keeper -- `ProfileEvent_MetadataFromKeeperCacheMiss` ([UInt64](/reference/data-types/int-uint)) — Number of times an object storage metadata request had to be answered from Keeper -- `ProfileEvent_MetadataFromKeeperCacheTooManyInvalidated` ([UInt64](/reference/data-types/int-uint)) — Number of times filesystem cache returned too many invalidated entries -- `ProfileEvent_MetadataFromKeeperCacheUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent in updating the cache including waiting for responses from Keeper -- `ProfileEvent_MetadataFromKeeperUpdateCacheOneLevel` ([UInt64](/reference/data-types/int-uint)) — Number of times a cache update for one level of directory tree was done -- `ProfileEvent_MetadataFromKeeperTransactionCommit` ([UInt64](/reference/data-types/int-uint)) — Number of times metadata transaction commit was attempted -- `ProfileEvent_MetadataFromKeeperTransactionCommitRetry` ([UInt64](/reference/data-types/int-uint)) — Number of times metadata transaction commit was retried -- `ProfileEvent_MetadataFromKeeperCleanupTransactionCommit` ([UInt64](/reference/data-types/int-uint)) — Number of times metadata transaction commit for deleted objects cleanup was attempted -- `ProfileEvent_MetadataFromKeeperCleanupTransactionCommitRetry` ([UInt64](/reference/data-types/int-uint)) — Number of times metadata transaction commit for deleted objects cleanup was retried -- `ProfileEvent_MetadataFromKeeperOperations` ([UInt64](/reference/data-types/int-uint)) — Number of times a request was made to Keeper -- `ProfileEvent_MetadataFromKeeperIndividualOperations` ([UInt64](/reference/data-types/int-uint)) — Number of paths read or written by single or multi requests to Keeper -- `ProfileEvent_MetadataFromKeeperIndividualOperationsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spend during single or multi requests to Keeper -- `ProfileEvent_MetadataFromKeeperReconnects` ([UInt64](/reference/data-types/int-uint)) — Number of times a reconnect to Keeper was done -- `ProfileEvent_MetadataFromKeeperBackgroundCleanupObjects` ([UInt64](/reference/data-types/int-uint)) — Number of times a old deleted object clean up was performed by background task -- `ProfileEvent_MetadataFromKeeperBackgroundCleanupTransactions` ([UInt64](/reference/data-types/int-uint)) — Number of times old transaction idempotency token was cleaned up by background task -- `ProfileEvent_MetadataFromKeeperBackgroundCleanupBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of times an empty blob layout part was cleaned up by background task -- `ProfileEvent_MetadataFromKeeperBackgroundCleanupErrors` ([UInt64](/reference/data-types/int-uint)) — Number of times an error was encountered in background cleanup task -- `ProfileEvent_BlobKillerThreadRuns` ([UInt64](/reference/data-types/int-uint)) — Number of BlobKiller thread executes -- `ProfileEvent_BlobKillerThreadLockedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs returned from metadata storage -- `ProfileEvent_BlobKillerThreadRemoveTasks` ([UInt64](/reference/data-types/int-uint)) — Number of remove tasks created by BlobKiller -- `ProfileEvent_BlobKillerThreadRemovedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs removed by BlobKiller -- `ProfileEvent_BlobKillerThreadRecordedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs which removal by BlobKiller was recorded in metadata storage -- `ProfileEvent_BlobKillerThreadLockBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs lock errors occurred during BlobKiller execution -- `ProfileEvent_BlobKillerThreadRemoveBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs removal errors occurred during BlobKiller execution -- `ProfileEvent_BlobKillerThreadRecordBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs recording errors occurred during BlobKiller execution -- `ProfileEvent_BlobCopierThreadRuns` ([UInt64](/reference/data-types/int-uint)) — Number of BlobCopier thread executes -- `ProfileEvent_BlobCopierThreadLockedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs returned from metadata storage -- `ProfileEvent_BlobCopierThreadReplicatedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs replicated by BlobCopier -- `ProfileEvent_BlobCopierThreadRecordedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs which replication by BlobCopier was recorded in metadata storage -- `ProfileEvent_BlobCopierThreadLockBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs lock errors occurred during BlobCopier execution -- `ProfileEvent_BlobCopierThreadReplicateBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs replication errors occurred during BlobCopier execution -- `ProfileEvent_BlobCopierThreadRecordBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs recording errors occurred during BlobCopier execution -- `ProfileEvent_SharedMergeTreeMetadataCacheHintLoadedFromCache` ([UInt64](/reference/data-types/int-uint)) — Number of times metadata cache hint was found without going to Keeper -- `ProfileEvent_KafkaRebalanceRevocations` ([UInt64](/reference/data-types/int-uint)) — Number of partition revocations (the first stage of consumer group rebalance) -- `ProfileEvent_KafkaRebalanceAssignments` ([UInt64](/reference/data-types/int-uint)) — Number of partition assignments (the final stage of consumer group rebalance) -- `ProfileEvent_KafkaRebalanceErrors` ([UInt64](/reference/data-types/int-uint)) — Number of failed consumer group rebalances -- `ProfileEvent_KafkaMessagesPolled` ([UInt64](/reference/data-types/int-uint)) — Number of Kafka messages polled from librdkafka to ClickHouse -- `ProfileEvent_KafkaMessagesRead` ([UInt64](/reference/data-types/int-uint)) — Number of Kafka messages already processed by ClickHouse -- `ProfileEvent_KafkaMessagesFailed` ([UInt64](/reference/data-types/int-uint)) — Number of Kafka messages ClickHouse failed to parse -- `ProfileEvent_KafkaRowsRead` ([UInt64](/reference/data-types/int-uint)) — Number of rows parsed from Kafka messages -- `ProfileEvent_KafkaRowsRejected` ([UInt64](/reference/data-types/int-uint)) — Number of parsed rows which were later rejected (due to rebalances / errors or similar reasons). Those rows will be consumed again after the rebalance. -- `ProfileEvent_KafkaDirectReads` ([UInt64](/reference/data-types/int-uint)) — Number of direct selects from Kafka tables since server start -- `ProfileEvent_KafkaBackgroundReads` ([UInt64](/reference/data-types/int-uint)) — Number of background reads populating materialized views from Kafka since server start -- `ProfileEvent_KafkaCommits` ([UInt64](/reference/data-types/int-uint)) — Number of successful commits of consumed offsets to Kafka (normally should be the same as KafkaBackgroundReads) -- `ProfileEvent_KafkaCommitFailures` ([UInt64](/reference/data-types/int-uint)) — Number of failed commits of consumed offsets to Kafka (usually is a sign of some data duplication) -- `ProfileEvent_KafkaConsumerErrors` ([UInt64](/reference/data-types/int-uint)) — Number of errors reported by librdkafka during polls -- `ProfileEvent_KafkaMVNotReady` ([UInt64](/reference/data-types/int-uint)) — Number of failed attempts to stream data to a materialized view that is not ready -- `ProfileEvent_KafkaWrites` ([UInt64](/reference/data-types/int-uint)) — Number of writes (inserts) to Kafka tables -- `ProfileEvent_KafkaRowsWritten` ([UInt64](/reference/data-types/int-uint)) — Number of rows inserted into Kafka tables -- `ProfileEvent_KafkaProducerFlushes` ([UInt64](/reference/data-types/int-uint)) — Number of explicit flushes to Kafka producer -- `ProfileEvent_KafkaMessagesProduced` ([UInt64](/reference/data-types/int-uint)) — Number of messages produced to Kafka -- `ProfileEvent_KafkaProducerErrors` ([UInt64](/reference/data-types/int-uint)) — Number of errors during producing the messages to Kafka -- `ProfileEvent_ScalarSubqueriesGlobalCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was done using the global cache -- `ProfileEvent_ScalarSubqueriesLocalCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was done using the local cache -- `ProfileEvent_ScalarSubqueriesCacheMiss` ([UInt64](/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was not cached and had to be calculated completely -- `ProfileEvent_SchemaInferenceCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times the requested source is found in schema cache -- `ProfileEvent_SchemaInferenceCacheSchemaHits` ([UInt64](/reference/data-types/int-uint)) — Number of times the schema is found in schema cache during schema inference -- `ProfileEvent_SchemaInferenceCacheNumRowsHits` ([UInt64](/reference/data-types/int-uint)) — Number of times the number of rows is found in schema cache during count from files -- `ProfileEvent_SchemaInferenceCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times the requested source is not in schema cache -- `ProfileEvent_SchemaInferenceCacheSchemaMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times the requested source is in cache but the schema is not in cache during schema inference -- `ProfileEvent_SchemaInferenceCacheNumRowsMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times the requested source is in cache but the number of rows is not in cache while count from files -- `ProfileEvent_SchemaInferenceCacheEvictions` ([UInt64](/reference/data-types/int-uint)) — Number of times a schema from cache was evicted due to overflow -- `ProfileEvent_SchemaInferenceCacheInvalidations` ([UInt64](/reference/data-types/int-uint)) — Number of times a schema in cache became invalid due to changes in data -- `ProfileEvent_KeeperPacketsSent` ([UInt64](/reference/data-types/int-uint)) — Packets sent by keeper server -- `ProfileEvent_KeeperPacketsReceived` ([UInt64](/reference/data-types/int-uint)) — Packets received by keeper server -- `ProfileEvent_KeeperRequestTotal` ([UInt64](/reference/data-types/int-uint)) — Total requests number on keeper server -- `ProfileEvent_KeeperRequestTotalWithSubrequests` ([UInt64](/reference/data-types/int-uint)) — Total requests number on keeper server, counting each subrequest within a multi request -- `ProfileEvent_KeeperLatency` ([UInt64](/reference/data-types/int-uint)) — Keeper latency -- `ProfileEvent_KeeperTotalElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Keeper total latency for a single request -- `ProfileEvent_KeeperProcessElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Keeper commit latency for a single request -- `ProfileEvent_KeeperPreprocessElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Keeper preprocessing latency for a single request -- `ProfileEvent_KeeperStorageLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper storage lock -- `ProfileEvent_KeeperStorageSharedLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper storage shared lock -- `ProfileEvent_KeeperChangelogLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper changelog lock -- `ProfileEvent_KeeperServerWriteLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper server write lock -- `ProfileEvent_KeeperSessionCallbackLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper session callback lock -- `ProfileEvent_KeeperReadRequestQueueLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper read request queue lock -- `ProfileEvent_KeeperProcessAndResponsesLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper process and responses lock -- `ProfileEvent_KeeperCommitWaitElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for certain log to be committed -- `ProfileEvent_KeeperBatchMaxCount` ([UInt64](/reference/data-types/int-uint)) — Number of times the size of batch was limited by the amount -- `ProfileEvent_KeeperBatchMaxTotalSize` ([UInt64](/reference/data-types/int-uint)) — Number of times the size of batch was limited by the total bytes size -- `ProfileEvent_KeeperReadBatchCount` ([UInt64](/reference/data-types/int-uint)) — Number of read request batches processed by Keeper -- `ProfileEvent_KeeperReadBatchTotalRequests` ([UInt64](/reference/data-types/int-uint)) — Total number of read requests processed in batches by Keeper -- `ProfileEvent_KeeperCommits` ([UInt64](/reference/data-types/int-uint)) — Number of successful commits -- `ProfileEvent_KeeperCommitsFailed` ([UInt64](/reference/data-types/int-uint)) — Number of failed commits -- `ProfileEvent_KeeperSnapshotCreations` ([UInt64](/reference/data-types/int-uint)) — Number of snapshots creations -- `ProfileEvent_KeeperSnapshotCreationsFailed` ([UInt64](/reference/data-types/int-uint)) — Number of failed snapshot creations -- `ProfileEvent_KeeperSnapshotApplys` ([UInt64](/reference/data-types/int-uint)) — Number of snapshot applying -- `ProfileEvent_KeeperSnapshotApplysFailed` ([UInt64](/reference/data-types/int-uint)) — Number of failed snapshot applying -- `ProfileEvent_KeeperReadSnapshot` ([UInt64](/reference/data-types/int-uint)) — Number of completed snapshot reads -- `ProfileEvent_KeeperReadSnapshotObject` ([UInt64](/reference/data-types/int-uint)) — Number of snapshot objects sent to followers -- `ProfileEvent_KeeperReadSnapshotFailed` ([UInt64](/reference/data-types/int-uint)) — Number of failed snapshot reads -- `ProfileEvent_KeeperSnapshotRemoteLoaderErrors` ([UInt64](/reference/data-types/int-uint)) — Number of remote read errors in RemoteSnapshotLoader while serving a snapshot to a follower -- `ProfileEvent_KeeperSaveSnapshotObject` ([UInt64](/reference/data-types/int-uint)) — Number of snapshot objects received from leader -- `ProfileEvent_KeeperSaveSnapshotFailed` ([UInt64](/reference/data-types/int-uint)) — Number of failed snapshot saves -- `ProfileEvent_KeeperSaveSnapshot` ([UInt64](/reference/data-types/int-uint)) — Number of snapshot save -- `ProfileEvent_KeeperCreateRequest` ([UInt64](/reference/data-types/int-uint)) — Number of create requests -- `ProfileEvent_KeeperRemoveRequest` ([UInt64](/reference/data-types/int-uint)) — Number of remove requests -- `ProfileEvent_KeeperSetRequest` ([UInt64](/reference/data-types/int-uint)) — Number of set requests -- `ProfileEvent_KeeperReconfigRequest` ([UInt64](/reference/data-types/int-uint)) — Number of reconfig requests -- `ProfileEvent_KeeperCheckRequest` ([UInt64](/reference/data-types/int-uint)) — Number of check requests -- `ProfileEvent_KeeperMultiRequest` ([UInt64](/reference/data-types/int-uint)) — Number of multi requests -- `ProfileEvent_KeeperMultiReadRequest` ([UInt64](/reference/data-types/int-uint)) — Number of multi read requests -- `ProfileEvent_KeeperGetRequest` ([UInt64](/reference/data-types/int-uint)) — Number of get requests -- `ProfileEvent_KeeperListRequest` ([UInt64](/reference/data-types/int-uint)) — Number of list requests -- `ProfileEvent_KeeperListRecursiveRequest` ([UInt64](/reference/data-types/int-uint)) — Number of get children recursive requests -- `ProfileEvent_KeeperExistsRequest` ([UInt64](/reference/data-types/int-uint)) — Number of exists requests -- `ProfileEvent_KeeperSetWatchesRequest` ([UInt64](/reference/data-types/int-uint)) — Number of set watches requests -- `ProfileEvent_KeeperAddWatchRequest` ([UInt64](/reference/data-types/int-uint)) — Number of add watches requests -- `ProfileEvent_KeeperRemoveWatchRequest` ([UInt64](/reference/data-types/int-uint)) — Number of remove watches requests -- `ProfileEvent_KeeperCheckWatchRequest` ([UInt64](/reference/data-types/int-uint)) — Number of remove watches requests -- `ProfileEvent_KeeperRequestRejectedDueToSoftMemoryLimitCount` ([UInt64](/reference/data-types/int-uint)) — Number requests that have been rejected due to soft memory limit exceeded -- `ProfileEvent_KeeperStaleRequestsSkipped` ([UInt64](/reference/data-types/int-uint)) — Number of Keeper requests skipped because the session is no longer live -- `ProfileEvent_KeeperLiveSessionsLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting to acquire Keeper live sessions lock -- `ProfileEvent_OverflowBreak` ([UInt64](/reference/data-types/int-uint)) — Number of times, data processing was cancelled by query complexity limitation with setting '*_overflow_mode' = 'break' and the result is incomplete. -- `ProfileEvent_OverflowThrow` ([UInt64](/reference/data-types/int-uint)) — Number of times, data processing was cancelled by query complexity limitation with setting '*_overflow_mode' = 'throw' and exception was thrown. -- `ProfileEvent_OverflowAny` ([UInt64](/reference/data-types/int-uint)) — Number of times approximate GROUP BY was in effect: when aggregation was performed only on top of first 'max_rows_to_group_by' unique keys and other keys were ignored due to 'group_by_overflow_mode' = 'any'. -- `ProfileEvent_S3QueueSetFileProcessingMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to set file as processing -- `ProfileEvent_S3QueueSetFileProcessedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to set file as processed -- `ProfileEvent_S3QueueSetFileFailedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to set file as failed -- `ProfileEvent_ObjectStorageQueueFailedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of files which failed to be processed -- `ProfileEvent_ObjectStorageQueueProcessedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of files which were processed -- `ProfileEvent_ObjectStorageQueueCleanupMaxSetSizeOrTTLMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to set file as failed -- `ProfileEvent_ObjectStorageQueuePullMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to read file data -- `ProfileEvent_ObjectStorageQueueFailedToBatchSetProcessing` ([UInt64](/reference/data-types/int-uint)) — Number of times batched set processing request failed -- `ProfileEvent_ObjectStorageQueueTrySetProcessingRequests` ([UInt64](/reference/data-types/int-uint)) — The number of times we tried to make set processing request -- `ProfileEvent_ObjectStorageQueueTrySetProcessingSucceeded` ([UInt64](/reference/data-types/int-uint)) — The number of times we successfully set file as processing -- `ProfileEvent_ObjectStorageQueueTrySetProcessingFailed` ([UInt64](/reference/data-types/int-uint)) — The number of times we unsuccessfully set file as processing -- `ProfileEvent_ObjectStorageQueueListedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of listed files in StorageS3(Azure)Queue -- `ProfileEvent_ObjectStorageQueueFilteredFiles` ([UInt64](/reference/data-types/int-uint)) — Number of filtered files in StorageS3(Azure)Queue -- `ProfileEvent_ObjectStorageQueueReadFiles` ([UInt64](/reference/data-types/int-uint)) — Number of read files (not equal to the number of actually inserted files) -- `ProfileEvent_ObjectStorageQueueReadRows` ([UInt64](/reference/data-types/int-uint)) — Number of read rows (not equal to the number of actually inserted rows) -- `ProfileEvent_ObjectStorageQueueReadBytes` ([UInt64](/reference/data-types/int-uint)) — Number of read bytes (not equal to the number of actually inserted bytes) -- `ProfileEvent_ObjectStorageQueueExceptionsDuringRead` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions during read in S3(Azure)Queue -- `ProfileEvent_ObjectStorageQueueExceptionsDuringInsert` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions during insert in S3(Azure)Queue -- `ProfileEvent_ObjectStorageQueueMovedObjects` ([UInt64](/reference/data-types/int-uint)) — Number of objects moved as part of after_processing = move -- `ProfileEvent_ObjectStorageQueueRemovedObjects` ([UInt64](/reference/data-types/int-uint)) — Number of objects removed as part of after_processing = delete -- `ProfileEvent_ObjectStorageQueueTaggedObjects` ([UInt64](/reference/data-types/int-uint)) — Number of objects tagged as part of after_processing = tag -- `ProfileEvent_ObjectStorageQueueInsertIterations` ([UInt64](/reference/data-types/int-uint)) — Number of insert iterations -- `ProfileEvent_ObjectStorageQueueCommitRequests` ([UInt64](/reference/data-types/int-uint)) — Number of keeper requests to commit files as either failed or processed -- `ProfileEvent_ObjectStorageQueueSuccessfulCommits` ([UInt64](/reference/data-types/int-uint)) — Number of successful keeper commits -- `ProfileEvent_ObjectStorageQueueUnsuccessfulCommits` ([UInt64](/reference/data-types/int-uint)) — Number of unsuccessful keeper commits -- `ProfileEvent_ObjectStorageQueueCancelledFiles` ([UInt64](/reference/data-types/int-uint)) — Number cancelled files in StorageS3(Azure)Queue -- `ProfileEvent_ObjectStorageQueueProcessedRows` ([UInt64](/reference/data-types/int-uint)) — Number of processed rows in StorageS3(Azure)Queue -- `ProfileEvent_ObjectStorageListedObjects` ([UInt64](/reference/data-types/int-uint)) — Total objects returned by object storage listing API before any filtering. -- `ProfileEvent_ObjectStorageGlobFilteredObjects` ([UInt64](/reference/data-types/int-uint)) — Objects that did not match the glob or regex pattern and were skipped during listing. -- `ProfileEvent_ObjectStoragePredicateFilteredObjects` ([UInt64](/reference/data-types/int-uint)) — Objects removed by virtual column predicate filtering on _path/_file. -- `ProfileEvent_ObjectStorageReadObjects` ([UInt64](/reference/data-types/int-uint)) — Objects actually opened for reading by the object storage source. -- `ProfileEvent_ServerStartupMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Time elapsed from starting server to listening to sockets in milliseconds -- `ProfileEvent_IOUringSQEsSubmitted` ([UInt64](/reference/data-types/int-uint)) — Total number of io_uring SQEs submitted -- `ProfileEvent_IOUringSQEsResubmitsAsync` ([UInt64](/reference/data-types/int-uint)) — Total number of asynchronous io_uring SQE resubmits performed -- `ProfileEvent_IOUringSQEsResubmitsSync` ([UInt64](/reference/data-types/int-uint)) — Total number of synchronous io_uring SQE resubmits performed -- `ProfileEvent_IOUringCQEsCompleted` ([UInt64](/reference/data-types/int-uint)) — Total number of successfully completed io_uring CQEs -- `ProfileEvent_IOUringCQEsFailed` ([UInt64](/reference/data-types/int-uint)) — Total number of completed io_uring CQEs with failures -- `ProfileEvent_BackupsOpenedForRead` ([UInt64](/reference/data-types/int-uint)) — Number of backups opened for reading -- `ProfileEvent_BackupsOpenedForWrite` ([UInt64](/reference/data-types/int-uint)) — Number of backups opened for writing -- `ProfileEvent_BackupsOpenedForUnlock` ([UInt64](/reference/data-types/int-uint)) — Number of backups opened for unlocking -- `ProfileEvent_BackupReadMetadataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent reading backup metadata from .backup file -- `ProfileEvent_BackupWriteMetadataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent writing backup metadata to .backup file -- `ProfileEvent_BackupEntriesCollectorMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent making backup entries -- `ProfileEvent_BackupEntriesCollectorForTablesDataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent making backup entries for tables data -- `ProfileEvent_BackupEntriesCollectorRunPostTasksMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent running post tasks after making backup entries -- `ProfileEvent_BackupPreparingFileInfosMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent preparing file infos for backup entries -- `ProfileEvent_BackupReadLocalFilesToCalculateChecksums` ([UInt64](/reference/data-types/int-uint)) — Number of files read locally to calculate checksums for backup entries -- `ProfileEvent_BackupReadLocalBytesToCalculateChecksums` ([UInt64](/reference/data-types/int-uint)) — Total size of files read locally to calculate checksums for backup entries -- `ProfileEvent_BackupReadRemoteFilesToCalculateChecksums` ([UInt64](/reference/data-types/int-uint)) — Number of files read from remote disks to calculate checksums for backup entries -- `ProfileEvent_BackupReadRemoteBytesToCalculateChecksums` ([UInt64](/reference/data-types/int-uint)) — Total size of files read from remote disks to calculate checksums for backup entries -- `ProfileEvent_BackupLockFileReads` ([UInt64](/reference/data-types/int-uint)) — How many times the '.lock' file was read while making backup -- `ProfileEvent_RestorePartsSkippedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of files skipped while restoring parts -- `ProfileEvent_RestorePartsSkippedBytes` ([UInt64](/reference/data-types/int-uint)) — Total size of files skipped while restoring parts -- `ProfileEvent_ReadTaskRequestsReceived` ([UInt64](/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the initiator server side. -- `ProfileEvent_MergeTreeReadTaskRequestsReceived` ([UInt64](/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the initiator server side. -- `ProfileEvent_ReadTaskRequestsSent` ([UInt64](/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the remote server side. -- `ProfileEvent_MergeTreeReadTaskRequestsSent` ([UInt64](/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the remote server side. -- `ProfileEvent_MergeTreeAllRangesAnnouncementsSent` ([UInt64](/reference/data-types/int-uint)) — The number of announcements sent from the remote server to the initiator server about the set of data parts (for MergeTree tables). Measured on the remote server side. -- `ProfileEvent_ReadTaskRequestsSentElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the remote server side. -- `ProfileEvent_MergeTreeReadTaskRequestsSentElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the remote server side. -- `ProfileEvent_MergeTreeAllRangesAnnouncementsSentElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in sending the announcement from the remote server to the initiator server about the set of data parts (for MergeTree tables). Measured on the remote server side. -- `ProfileEvent_MergerMutatorsGetPartsForMergeElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to take data parts snapshot to build ranges from them. -- `ProfileEvent_MergerMutatorPrepareRangesForMergeElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to prepare parts ranges which can be merged according to merge predicate. -- `ProfileEvent_MergerMutatorSelectPartsForMergeElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to select parts from ranges which can be merged. -- `ProfileEvent_MergerMutatorRangesForMergeCount` ([UInt64](/reference/data-types/int-uint)) — Amount of candidate ranges for merge -- `ProfileEvent_MergerMutatorPartsInRangesForMergeCount` ([UInt64](/reference/data-types/int-uint)) — Amount of candidate parts for merge -- `ProfileEvent_MergerMutatorSelectRangePartsCount` ([UInt64](/reference/data-types/int-uint)) — Amount of parts in selected range for merge -- `ProfileEvent_ConnectionPoolIsFullMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for a slot in connection pool. -- `ProfileEvent_AsyncLoaderWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting for async loader jobs. -- `ProfileEvent_DistrCacheServerSwitches` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of server switches between distributed cache servers in read/write-through cache -- `ProfileEvent_DistrCacheReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent reading from distributed cache -- `ProfileEvent_DistrCacheFallbackReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spend reading from fallback buffer instead of distributed cache -- `ProfileEvent_DistrCachePrecomputeRangesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent to precompute read ranges -- `ProfileEvent_DistrCacheNextImplMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spend in ReadBufferFromDistributedCache::nextImpl -- `ProfileEvent_DistrCacheStartRangeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent to start a new read range with distributed cache -- `ProfileEvent_DistrCacheRangeChange` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we changed read range because of seek/last_position change -- `ProfileEvent_DistrCacheRangeResetBackward` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we reset read range because of seek/last_position change -- `ProfileEvent_DistrCacheRangeResetForward` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we reset read range because of seek/last_position change -- `ProfileEvent_DistrCacheReconnectsAfterTimeout` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. The number of reconnects after timeout -- `ProfileEvent_DistrCacheServerUpdates` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache event. The number of server switches during read or write because the hash-chosen server changed (e.g. due to server deregistration) -- `ProfileEvent_DistrCacheReadErrors` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of distributed cache errors during read -- `ProfileEvent_DistrCacheWriteErrors` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of distributed cache errors during write -- `ProfileEvent_DistrCacheWriteReconnectsAfterTimeout` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. The number of reconnects after timeout -- `ProfileEvent_DistrCacheWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. Time spent in WriteBufferFromDistributedCache::writeToFileSegment -- `ProfileEvent_DistrCacheWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of bytes written to distributed cache -- `ProfileEvent_DistrCacheObjectStorageWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. Time spent writing to object storage -- `ProfileEvent_DistrCacheObjectStorageWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of bytes written to object storage -- `ProfileEvent_DistrCacheGetResponseMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Time spend to wait for response from distributed cache -- `ProfileEvent_DistrCacheMakeRequestErrors` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Number of distributed cache errors when making a request -- `ProfileEvent_DistrCacheReceiveResponseErrors` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Number of distributed cache errors when receiving response a request -- `ProfileEvent_DistrCacheReceivedDataPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received data packets received from distributed cache -- `ProfileEvent_DistrCacheReceivedDataPacketsBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets received from distributed cache -- `ProfileEvent_DistrCacheReceivedOkPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Ok packets received from distributed cache -- `ProfileEvent_DistrCacheReceivedErrorPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Error packets received from distributed cache -- `ProfileEvent_DistrCacheReceivedCredentialsRefreshPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received RefreshCredentials packets received from distributed cache -- `ProfileEvent_DistrCacheReceivedStopPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Stop packets received from distributed cache -- `ProfileEvent_DistrCacheSentDataPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of data packets sent to distributed cache -- `ProfileEvent_DistrCacheSentDataPacketsBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets sent to distributed cache -- `ProfileEvent_DistrCacheUnusedPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Number of skipped unused packets from distributed cache -- `ProfileEvent_DistrCacheUnusedDataPacketsBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets which were ignored -- `ProfileEvent_DistrCacheUnusedPacketsBufferAllocations` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. The number of extra buffer allocations in case we could not reuse existing buffer -- `ProfileEvent_DistrCacheLockRegistryMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. Time spent to take DistributedCacheRegistry lock -- `ProfileEvent_DistrCacheRegistryUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. Time spent updating distributed cache registry -- `ProfileEvent_DistrCacheRegistryUpdates` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. Number of distributed cache registry updates -- `ProfileEvent_DistrCacheHashRingRebuilds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. Number of distributed cache hash ring rebuilds -- `ProfileEvent_DistrCacheSuccessfulRegistryUpdates` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. The number of successful server registry updates -- `ProfileEvent_DistrCacheUnsuccessfulRegistryUpdates` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. The number of unsuccessful server registry updates -- `ProfileEvent_DistrCacheReadBytesFromFallbackBuffer` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Bytes read from fallback buffer -- `ProfileEvent_DistrCacheOpenedConnections` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of open connections to distributed cache -- `ProfileEvent_DistrCacheReusedConnections` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of reused connections to distributed cache -- `ProfileEvent_DistrCacheStaleReconnections` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of reconnections due to stale (peer-closed) pooled connections -- `ProfileEvent_DistrCacheRemoveOutdatedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The time spent removing outdated connections from the pool -- `ProfileEvent_DistrCacheOpenedConnectionsBypassingPool` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of open connections to distributed cache bypassing pool -- `ProfileEvent_DistrCacheConnectMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The time spent to connect to distributed cache -- `ProfileEvent_DistrCacheConnectAttempts` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of connection attempts to distributed cache -- `ProfileEvent_DistrCacheSuccessfulConnectAttempts` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of successful connection attempts to distributed cache -- `ProfileEvent_DistrCacheUnsuccessfulConnectAttempts` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of unsuccessful connection attempts to distributed cache -- `ProfileEvent_DistrCacheGetClientMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. Time spent getting client for distributed cache -- `ProfileEvent_DistrCacheTemporaryFilesCreated` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. Number of temporary files created in distributed cache -- `ProfileEvent_DistrCacheTemporaryFilesBytesWritten` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. Number of bytes written to temporary files created in distributed cache -- `ProfileEvent_DistrCacheServerProcessRequestMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Time spent processing request on DistributedCache server side -- `ProfileEvent_DistrCacheServerStartRequestPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Number of StartRequest packets in DistributedCacheServer -- `ProfileEvent_DistrCacheServerContinueRequestPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Number of ContinueRequest packets in DistributedCacheServer -- `ProfileEvent_DistrCacheServerEndRequestPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Number of EndRequest packets in DistributedCacheServer -- `ProfileEvent_DistrCacheServerReceivedCredentialsRefreshPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Number of RefreshCredentials client packets in DistributedCacheServer -- `ProfileEvent_DistrCacheServerAckRequestPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Number of AckRequest packets in DistributedCacheServer -- `ProfileEvent_DistrCacheServerNewS3CachedClients` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of new cached s3 clients -- `ProfileEvent_DistrCacheServerReusedS3CachedClients` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of reused cached s3 clients -- `ProfileEvent_DistrCacheServerCredentialsRefresh` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of expired credentials were refreshed -- `ProfileEvent_DistrCacheServerCachedReadBufferCacheHits` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache hit the cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerCachedReadBufferCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache missed the cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerCachedReadBufferCacheWrittenBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes written to cache in distributed cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerCachedReadBufferCacheReadBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from cache in distributed cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerCachedReadBufferObjectStorageReadBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from object storage in distributed cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerCachedReadBufferCachePredownloadBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from object storage for predownload in distributed cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerSkipped` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache server was skipped because of previous failed connection attempts -- `ProfileEvent_LogTest` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Test -- `ProfileEvent_LogTrace` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Trace -- `ProfileEvent_LogDebug` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Debug -- `ProfileEvent_LogInfo` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Info -- `ProfileEvent_LogWarning` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Warning -- `ProfileEvent_LogError` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Error -- `ProfileEvent_LogFatal` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Fatal -- `ProfileEvent_LoggerElapsedNanoseconds` ([UInt64](/reference/data-types/int-uint)) — Cumulative time spend in logging -- `ProfileEvent_InterfaceHTTPSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through HTTP interfaces -- `ProfileEvent_InterfaceHTTPReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through HTTP interfaces -- `ProfileEvent_InterfaceNativeSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through native interfaces -- `ProfileEvent_InterfaceNativeReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through native interfaces -- `ProfileEvent_InterfacePrometheusSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through Prometheus interfaces -- `ProfileEvent_InterfacePrometheusReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through Prometheus interfaces -- `ProfileEvent_InterfaceInterserverSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through interserver interfaces -- `ProfileEvent_InterfaceInterserverReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through interserver interfaces -- `ProfileEvent_InterfaceMySQLSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through MySQL interfaces -- `ProfileEvent_InterfaceMySQLReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through MySQL interfaces -- `ProfileEvent_InterfacePostgreSQLSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through PostgreSQL interfaces -- `ProfileEvent_InterfacePostgreSQLReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through PostgreSQL interfaces -- `ProfileEvent_ParallelReplicasUsedCount` ([UInt64](/reference/data-types/int-uint)) — Number of replicas used to execute a query with task-based parallel replicas -- `ProfileEvent_ParallelReplicasAvailableCount` ([UInt64](/reference/data-types/int-uint)) — Number of replicas available to execute a query with task-based parallel replicas -- `ProfileEvent_ParallelReplicasUnavailableCount` ([UInt64](/reference/data-types/int-uint)) — Number of replicas which was chosen, but found to be unavailable during query execution with task-based parallel replicas -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdates` ([UInt64](/reference/data-types/int-uint)) — Virtual parts update count -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesByLeader` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates by leader -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Virtual parts update microseconds -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromZooKeeper` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates count from ZooKeeper -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromZooKeeperMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates from ZooKeeper microseconds -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesPeerNotFound` ([UInt64](/reference/data-types/int-uint)) — Virtual updates from peer failed because no one found -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromPeer` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates count from peer -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromPeerMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates from peer microseconds -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesForMergesOrStatus` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates from non-default background job -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesLeaderFailedElection` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates leader election failed -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesLeaderSuccessfulElection` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates leader election successful -- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentAttempt` ([UInt64](/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation -- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentFailedWithNothingToDo` ([UInt64](/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation and failed because nothing to merge -- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentFailedWithConflict` ([UInt64](/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation and failed because of conflict in Keeper -- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentSuccessful` ([UInt64](/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation -- `ProfileEvent_SharedMergeTreeMergePartsMovedToOudated` ([UInt64](/reference/data-types/int-uint)) — How many parts moved to outdated directory -- `ProfileEvent_SharedMergeTreeMergePartsMovedToCondemned` ([UInt64](/reference/data-types/int-uint)) — How many parts moved to condemned directory -- `ProfileEvent_SharedMergeTreeOutdatedPartsConfirmationRequest` ([UInt64](/reference/data-types/int-uint)) — How many ZooKeeper requests were used to config outdated parts -- `ProfileEvent_SharedMergeTreeOutdatedPartsConfirmationInvocations` ([UInt64](/reference/data-types/int-uint)) — How many invocations were made to confirm outdated parts -- `ProfileEvent_SharedMergeTreeOutdatedPartsHTTPRequest` ([UInt64](/reference/data-types/int-uint)) — How many HTTP requests were send to confirm outdated parts -- `ProfileEvent_SharedMergeTreeOutdatedPartsHTTPResponse` ([UInt64](/reference/data-types/int-uint)) — How many HTTP responses were send to confirm outdated parts -- `ProfileEvent_SharedMergeTreeCondemnedPartsKillRequest` ([UInt64](/reference/data-types/int-uint)) — How many ZooKeeper requests were used to remove condemned parts -- `ProfileEvent_SharedMergeTreeCondemnedPartsLockConflict` ([UInt64](/reference/data-types/int-uint)) — How many times we failed to acquire lock because of conflict -- `ProfileEvent_SharedMergeTreeCondemnedPartsRemoved` ([UInt64](/reference/data-types/int-uint)) — How many condemned parts were removed -- `ProfileEvent_SharedMergeTreePartsKillerRuns` ([UInt64](/reference/data-types/int-uint)) — How many times parts killer has been running -- `ProfileEvent_SharedMergeTreePartsKillerMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How much time does parts killer main thread takes -- `ProfileEvent_SharedMergeTreePartsKillerParts` ([UInt64](/reference/data-types/int-uint)) — How many parts has been scheduled by the killer -- `ProfileEvent_SharedMergeTreePartsKillerPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How many time does it take to remove parts (executed from multiple threads) -- `ProfileEvent_SharedMergeTreeMergeSelectingTaskMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Merge selecting task microseconds for SMT -- `ProfileEvent_SharedMergeTreeReplicaSetUpdateTaskRuns` ([UInt64](/reference/data-types/int-uint)) — Number of times updateReplicaSetTask has run -- `ProfileEvent_SharedMergeTreeOptimizeAsync` ([UInt64](/reference/data-types/int-uint)) — Asynchronous OPTIMIZE queries executed -- `ProfileEvent_SharedMergeTreeOptimizeSync` ([UInt64](/reference/data-types/int-uint)) — Synchronous OPTIMIZE queries executed -- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJob` ([UInt64](/reference/data-types/int-uint)) — How many times scheduleDataProcessingJob called/ -- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJobNothingToScheduled` ([UInt64](/reference/data-types/int-uint)) — How many times scheduleDataProcessingJob called but nothing to do -- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJobMicroseconds` ([UInt64](/reference/data-types/int-uint)) — scheduleDataProcessingJob execute time -- `ProfileEvent_SharedMergeTreeHandleBlockingParts` ([UInt64](/reference/data-types/int-uint)) — How many blocking parts to handle in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeHandleBlockingPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of handling blocking parts in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeHandleFetchPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of handling fetched parts in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeHandleOutdatedParts` ([UInt64](/reference/data-types/int-uint)) — How many outdated parts to handle in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeHandleOutdatedPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of handling outdated parts in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeSelectPartsForRendezvousFetchMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of selectPartsForRendezvousFetch -- `ProfileEvent_SharedMergeTreeSelectPartsForRendezvousFetchParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts selected by selectPartsForRendezvousFetch -- `ProfileEvent_SharedMergeTreeSelectPartsForCoordinatedFetchMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of selectPartsForCoordinatedFetch -- `ProfileEvent_SharedMergeTreeSelectPartsForCoordinatedFetchParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts selected by selectPartsForCoordinatedFetch -- `ProfileEvent_SharedMergeTreeSelectPartsForFullFetchMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of selectPartsForFullFetch -- `ProfileEvent_SharedMergeTreeSelectPartsForFullFetchParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts selected by selectPartsForFullFetch -- `ProfileEvent_SharedMergeTreeTryUpdateDiskMetadataCacheForPartMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of tryUpdateDiskMetadataCacheForPart in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeLoadChecksumAndIndexesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of loadColumnsChecksumsIndexes only for SharedMergeTree -- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanRequest` ([UInt64](/reference/data-types/int-uint)) — How many times SnapshotCleanerThread decides to clean a part -- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerParts` ([UInt64](/reference/data-types/int-uint)) — How long time SnapshotCleanerThread tries to clean a part -- `ProfileEvent_SharedMergeTreeSnapshotPartsRemoved` ([UInt64](/reference/data-types/int-uint)) — How many times SnapshotCleanerThread successfully clean a part -- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerRuns` ([UInt64](/reference/data-types/int-uint)) — How many times SnapshotCleanerThread runs -- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How long time SnapshotCleanerThread has run -- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How long time SnapshotCleanerThread takes to clean parts -- `ProfileEvent_SharedMergeTreeDataPartsFetchAttempt` ([UInt64](/reference/data-types/int-uint)) — How many times we tried to fetch data parts -- `ProfileEvent_SharedMergeTreeDataPartsFetchFromPeer` ([UInt64](/reference/data-types/int-uint)) — How many times we fetch data parts from peer -- `ProfileEvent_SharedMergeTreeDataPartsFetchFromPeerMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Data parts fetch from peer microseconds -- `ProfileEvent_SharedMergeTreeDataPartsFetchFromS3` ([UInt64](/reference/data-types/int-uint)) — How many times we fetch data parts from S3 -- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeper` ([UInt64](/reference/data-types/int-uint)) — How many times we have update replica set from ZooKeeper -- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeperRequests` ([UInt64](/reference/data-types/int-uint)) — How many total ZooKeeper requests we made to update replica set -- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeperMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How much time we spend to update replica set -- `ProfileEvent_KeeperLogsEntryReadFromLatestCache` ([UInt64](/reference/data-types/int-uint)) — Number of log entries in Keeper being read from latest logs cache -- `ProfileEvent_KeeperLogsEntryReadFromCommitCache` ([UInt64](/reference/data-types/int-uint)) — Number of log entries in Keeper being read from commit logs cache -- `ProfileEvent_KeeperLogsEntryReadFromFile` ([UInt64](/reference/data-types/int-uint)) — Number of log entries in Keeper being read directly from the changelog file -- `ProfileEvent_KeeperLogsPrefetchedEntries` ([UInt64](/reference/data-types/int-uint)) — Number of log entries in Keeper being prefetched from the changelog file -- `ProfileEvent_KeeperChangelogWrittenBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to the changelog in Keeper -- `ProfileEvent_KeeperChangelogFileSyncMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in fsync for Keeper changelog (uncompressed logs only) -- `ProfileEvent_KeeperSnapshotWrittenBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to snapshot files in Keeper -- `ProfileEvent_KeeperSnapshotFileSyncMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in fsync for Keeper snapshot files -- `ProfileEvent_StorageConnectionsCreated` ([UInt64](/reference/data-types/int-uint)) — Number of created connections for storages -- `ProfileEvent_StorageConnectionsReused` ([UInt64](/reference/data-types/int-uint)) — Number of reused connections for storages -- `ProfileEvent_StorageConnectionsReset` ([UInt64](/reference/data-types/int-uint)) — Number of reset connections for storages -- `ProfileEvent_StorageConnectionsPreserved` ([UInt64](/reference/data-types/int-uint)) — Number of preserved connections for storages -- `ProfileEvent_StorageConnectionsExpired` ([UInt64](/reference/data-types/int-uint)) — Number of expired connections for storages -- `ProfileEvent_StorageConnectionsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of cases when creation of a connection for storage is failed -- `ProfileEvent_StorageConnectionsElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on creating connections for storages -- `ProfileEvent_DiskConnectionsCreated` ([UInt64](/reference/data-types/int-uint)) — Number of created connections for disk -- `ProfileEvent_DiskConnectionsReused` ([UInt64](/reference/data-types/int-uint)) — Number of reused connections for disk -- `ProfileEvent_DiskConnectionsReset` ([UInt64](/reference/data-types/int-uint)) — Number of reset connections for disk -- `ProfileEvent_DiskConnectionsPreserved` ([UInt64](/reference/data-types/int-uint)) — Number of preserved connections for disk -- `ProfileEvent_DiskConnectionsExpired` ([UInt64](/reference/data-types/int-uint)) — Number of expired connections for disk -- `ProfileEvent_DiskConnectionsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of cases when creation of a connection for disk is failed -- `ProfileEvent_DiskConnectionsElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on creating connections for disk -- `ProfileEvent_HTTPConnectionsCreated` ([UInt64](/reference/data-types/int-uint)) — Number of created client HTTP connections -- `ProfileEvent_HTTPConnectionsReused` ([UInt64](/reference/data-types/int-uint)) — Number of reused client HTTP connections -- `ProfileEvent_HTTPConnectionsReset` ([UInt64](/reference/data-types/int-uint)) — Number of reset client HTTP connections -- `ProfileEvent_HTTPConnectionsPreserved` ([UInt64](/reference/data-types/int-uint)) — Number of preserved client HTTP connections -- `ProfileEvent_HTTPConnectionsExpired` ([UInt64](/reference/data-types/int-uint)) — Number of expired client HTTP connections -- `ProfileEvent_HTTPConnectionsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of cases when creation of a client HTTP connection failed -- `ProfileEvent_HTTPConnectionsElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on creating client HTTP connections -- `ProfileEvent_HTTPServerConnectionsCreated` ([UInt64](/reference/data-types/int-uint)) — Number of created server HTTP connections -- `ProfileEvent_HTTPServerConnectionsReused` ([UInt64](/reference/data-types/int-uint)) — Number of reused server HTTP connections -- `ProfileEvent_HTTPServerConnectionsPreserved` ([UInt64](/reference/data-types/int-uint)) — Number of preserved server HTTP connections. Connection kept alive successfully -- `ProfileEvent_HTTPServerConnectionsExpired` ([UInt64](/reference/data-types/int-uint)) — Number of expired server HTTP connections. -- `ProfileEvent_HTTPServerConnectionsClosed` ([UInt64](/reference/data-types/int-uint)) — Number of closed server HTTP connections. Keep alive has not been negotiated -- `ProfileEvent_HTTPServerConnectionsReset` ([UInt64](/reference/data-types/int-uint)) — Number of reset server HTTP connections. Server closes connection -- `ProfileEvent_AddressesDiscovered` ([UInt64](/reference/data-types/int-uint)) — Total count of new addresses in DNS resolve results for HTTP connections -- `ProfileEvent_AddressesExpired` ([UInt64](/reference/data-types/int-uint)) — Total count of expired addresses which is no longer presented in DNS resolve results for HTTP connections -- `ProfileEvent_AddressesMarkedAsFailed` ([UInt64](/reference/data-types/int-uint)) — Total count of addresses which have been marked as faulty due to connection errors for HTTP connections -- `ProfileEvent_ReadWriteBufferFromHTTPRequestsSent` ([UInt64](/reference/data-types/int-uint)) — Number of HTTP requests sent by ReadWriteBufferFromHTTP -- `ProfileEvent_ReadWriteBufferFromHTTPBytes` ([UInt64](/reference/data-types/int-uint)) — Total size of payload bytes received and sent by ReadWriteBufferFromHTTP. Doesn't include HTTP headers. -- `ProfileEvent_WriteBufferFromHTTPRequestsSent` ([UInt64](/reference/data-types/int-uint)) — Number of HTTP requests sent by WriteBufferFromHTTP -- `ProfileEvent_WriteBufferFromHTTPBytes` ([UInt64](/reference/data-types/int-uint)) — Total size of payload bytes received and sent by WriteBufferFromHTTP. Doesn't include HTTP headers. -- `ProfileEvent_ConcurrencyControlSlotsGranted` ([UInt64](/reference/data-types/int-uint)) — Number of CPU slot granted according to guarantee of 1 thread per query and for queries with setting 'use_concurrency_control' = 0 -- `ProfileEvent_ConcurrencyControlSlotsDelayed` ([UInt64](/reference/data-types/int-uint)) — Number of CPU slot not granted initially and required to wait for a free CPU slot -- `ProfileEvent_ConcurrencyControlSlotsAcquired` ([UInt64](/reference/data-types/int-uint)) — Total number of CPU slots acquired -- `ProfileEvent_ConcurrencyControlSlotsAcquiredNonCompeting` ([UInt64](/reference/data-types/int-uint)) — Total number of noncompeting CPU slot acquired -- `ProfileEvent_ConcurrencyControlQueriesDelayed` ([UInt64](/reference/data-types/int-uint)) — Total number of CPU slot allocations (queries) that were required to wait for slots to upscale -- `ProfileEvent_ConcurrencyControlWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for CPU slots. -- `ProfileEvent_ConcurrencyControlPreemptedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting due to preemption of CPU slots. -- `ProfileEvent_ConcurrencyControlPreemptions` ([UInt64](/reference/data-types/int-uint)) — Total number of CPU preemptions -- `ProfileEvent_ConcurrencyControlUpscales` ([UInt64](/reference/data-types/int-uint)) — Total number of CPU upscaling events -- `ProfileEvent_ConcurrencyControlDownscales` ([UInt64](/reference/data-types/int-uint)) — Total number of CPU downscaling events -- `ProfileEvent_ConcurrentQuerySlotsAcquired` ([UInt64](/reference/data-types/int-uint)) — Total number of query slots acquired -- `ProfileEvent_ConcurrentQueryWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting for a query slots -- `ProfileEvent_CoordinatedMergesMergeCoordinatorUpdateCount` ([UInt64](/reference/data-types/int-uint)) — Total number of merge coordinator updates -- `ProfileEvent_CoordinatedMergesMergeCoordinatorUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on updating merge coordinator state -- `ProfileEvent_CoordinatedMergesMergeCoordinatorFetchMetadataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on fetching fresh metadata inside merge coordinator -- `ProfileEvent_CoordinatedMergesMergeCoordinatorFilterMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on filtering prepared merges inside merge coordinator -- `ProfileEvent_CoordinatedMergesMergeCoordinatorSelectMergesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on finding merge using merge selectors inside merge coordinator -- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateForShareCount` ([UInt64](/reference/data-types/int-uint)) — Total number of for share captures of coordinator state lock -- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateExclusivelyCount` ([UInt64](/reference/data-types/int-uint)) — Total number of exclusive captures of coordinator state lock -- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateForShareMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on locking coordinator state mutex for share -- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateExclusivelyMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on locking coordinator state mutex exclusively -- `ProfileEvent_CoordinatedMergesMergeWorkerUpdateCount` ([UInt64](/reference/data-types/int-uint)) — Total number merge worker updates -- `ProfileEvent_CoordinatedMergesMergeWorkerUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on updating local state of assigned merges on worker -- `ProfileEvent_CoordinatedMergesMergeAssignmentRequest` ([UInt64](/reference/data-types/int-uint)) — Total number of merge assignment requests -- `ProfileEvent_CoordinatedMergesMergeAssignmentResponse` ([UInt64](/reference/data-types/int-uint)) — Total number of merge assignment requests -- `ProfileEvent_CoordinatedMergesMergeAssignmentRequestMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend in merge assignment client -- `ProfileEvent_CoordinatedMergesMergeAssignmentResponseMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend in merge assignment handler -- `ProfileEvent_SharedDatabaseCatalogFailedToApplyState` ([UInt64](/reference/data-types/int-uint)) — Number of failures to apply new state in SharedDatabaseCatalog -- `ProfileEvent_SharedDatabaseCatalogStateApplicationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on application of new state in SharedDatabaseCatalog -- `ProfileEvent_MemoryWorkerRun` ([UInt64](/reference/data-types/int-uint)) — Number of runs done by MemoryWorker in background -- `ProfileEvent_MemoryWorkerRunElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent by MemoryWorker for background work -- `ProfileEvent_ParquetFetchWaitTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of waiting for parquet file reads from decoding threads (not prefetching threads) -- `ProfileEvent_WasmSerializationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent executing WebAssembly code -- `ProfileEvent_WasmDeserializationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent executing WebAssembly code -- `ProfileEvent_WasmGuestExecuteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent executing WebAssembly code -- `ProfileEvent_WasmTotalExecuteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent executing WebAssembly code -- `ProfileEvent_WasmModuleInstatiate` ([UInt64](/reference/data-types/int-uint)) — Number of WebAssembly compartments created -- `ProfileEvent_WasmMemoryAllocated` ([UInt64](/reference/data-types/int-uint)) — Total memory allocated for WebAssembly compartments -- `ProfileEvent_ParquetReadRowGroups` ([UInt64](/reference/data-types/int-uint)) — The total number of row groups read from parquet data -- `ProfileEvent_ParquetPrunedRowGroups` ([UInt64](/reference/data-types/int-uint)) — The total number of row groups pruned from parquet data -- `ProfileEvent_ParquetDecodingTasks` ([UInt64](/reference/data-types/int-uint)) — Tasks issued by parquet reader -- `ProfileEvent_ParquetDecodingTaskBatches` ([UInt64](/reference/data-types/int-uint)) — Task groups sent to a thread pool by parquet reader -- `ProfileEvent_ParquetPrefetcherReadRandomRead` ([UInt64](/reference/data-types/int-uint)) — The total number of reads with ReadMode::RandomRead by DB::Parquet::Prefetcher -- `ProfileEvent_ParquetPrefetcherReadSeekAndRead` ([UInt64](/reference/data-types/int-uint)) — The total number of reads with ReadMode::SeekAndRead by DB::Parquet::Prefetcher -- `ProfileEvent_ParquetPrefetcherReadEntireFile` ([UInt64](/reference/data-types/int-uint)) — The total number of read with ReadMode::EntireFileIsInMemory by DB::Parquet::Prefetcher -- `ProfileEvent_ParquetRowsFilterExpression` ([UInt64](/reference/data-types/int-uint)) — The total number of rows that were passed through filter -- `ProfileEvent_ParquetColumnsFilterExpression` ([UInt64](/reference/data-types/int-uint)) — The total number of columns that were passed through filter -- `ProfileEvent_FilterTransformPassedRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows that passed the filter in the query -- `ProfileEvent_FilterTransformPassedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes that passed the filter in the query -- `ProfileEvent_QueryPreempted` ([UInt64](/reference/data-types/int-uint)) — How many times tasks are paused and waiting due to 'priority' setting -- `ProfileEvent_IndexBinarySearchAlgorithm` ([UInt64](/reference/data-types/int-uint)) — Number of times the binary search algorithm is used over the index marks -- `ProfileEvent_IndexGenericExclusionSearchAlgorithm` ([UInt64](/reference/data-types/int-uint)) — Number of times the generic exclusion search algorithm is used over the index marks -- `ProfileEvent_ParallelReplicasQueryCount` ([UInt64](/reference/data-types/int-uint)) — Number of (sub)queries executed using parallel replicas during a query execution -- `ProfileEvent_DistributedConnectionReconnectCount` ([UInt64](/reference/data-types/int-uint)) — Number of reconnects to other servers done during distributed query execution. It can happen when a stale connection has been acquired from connection pool -- `ProfileEvent_DistributedConnectionConnectCount` ([UInt64](/reference/data-types/int-uint)) — Number of connects to other servers done during distributed query execution. Happens when new connection is established instead of using existing from pool. -- `ProfileEvent_RefreshableViewRefreshSuccess` ([UInt64](/reference/data-types/int-uint)) — How many times refreshable materialized views refreshed -- `ProfileEvent_RefreshableViewRefreshFailed` ([UInt64](/reference/data-types/int-uint)) — How many times refreshable materialized views failed to refresh -- `ProfileEvent_RefreshableViewSyncReplicaSuccess` ([UInt64](/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view did an implicit SYNC REPLICA -- `ProfileEvent_RefreshableViewSyncReplicaRetry` ([UInt64](/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view failed and retried an implicit SYNC REPLICA -- `ProfileEvent_RefreshableViewLockTableRetry` ([UInt64](/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view had to switch to a new table because the old table was dropped -- `ProfileEvent_AsyncLoggingConsoleTotalMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the console log -- `ProfileEvent_AsyncLoggingFileLogTotalMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the file log -- `ProfileEvent_AsyncLoggingErrorFileLogTotalMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the error file log -- `ProfileEvent_AsyncLoggingSyslogTotalMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the syslog -- `ProfileEvent_AsyncLoggingTextLogTotalMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the text_log -- `ProfileEvent_AsyncLoggingConsoleDroppedMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages have been dropped from the console log due to the async log queue being full -- `ProfileEvent_AsyncLoggingFileLogDroppedMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages have been dropped from the file log due to the async log queue being full -- `ProfileEvent_AsyncLoggingErrorFileLogDroppedMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages have been dropped from error file log due to the async log queue being full -- `ProfileEvent_AsyncLoggingSyslogDroppedMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages have been dropped from the syslog due to the async log queue being full -- `ProfileEvent_AsyncLoggingTextLogDroppedMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages have been dropped from text_log due to the async log queue being full -- `ProfileEvent_JemallocFailedAllocationSampleTracking` ([UInt64](/reference/data-types/int-uint)) — Total number of times tracking of jemalloc allocation sample failed -- `ProfileEvent_JemallocFailedDeallocationSampleTracking` ([UInt64](/reference/data-types/int-uint)) — Total number of times tracking of jemalloc deallocation sample failed -- `ProfileEvent_LoadedStatisticsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Elapsed time of loading statistics from parts -- `ProfileEvent_RuntimeDataflowStatisticsInputBytes` ([UInt64](/reference/data-types/int-uint)) — Collected statistics on the number of bytes replicas would read if the query was executed with parallel replicas -- `ProfileEvent_RuntimeDataflowStatisticsOutputBytes` ([UInt64](/reference/data-types/int-uint)) — Collected statistics on the number of bytes replicas would send to the initiator if the query was executed with parallel replicas -- `ProfileEvent_S3CachedCredentialsProvidersReused` ([UInt64](/reference/data-types/int-uint)) — Total number of reused credentials provider from the cache -- `ProfileEvent_S3CachedCredentialsProvidersAdded` ([UInt64](/reference/data-types/int-uint)) — Total number of newly added credentials providers to the cache -- `ProfileEvent_RuntimeFiltersCreated` ([UInt64](/reference/data-types/int-uint)) — Number of distinct JOIN Runtime Filters created within a query -- `ProfileEvent_RuntimeFilterBlocksProcessed` ([UInt64](/reference/data-types/int-uint)) — Number of blocks processed by JOIN Runtime Filters -- `ProfileEvent_RuntimeFilterBlocksSkipped` ([UInt64](/reference/data-types/int-uint)) — Number of blocks skipped by JOIN Runtime Filters without processing due to filter being dynamically disabled because of poor filtering ratio -- `ProfileEvent_RuntimeFilterRowsChecked` ([UInt64](/reference/data-types/int-uint)) — Number of rows checked by JOIN Runtime Filters -- `ProfileEvent_RuntimeFilterRowsPassed` ([UInt64](/reference/data-types/int-uint)) — Number of rows that passed (not filtered out by) JOIN Runtime Filters -- `ProfileEvent_RuntimeFilterRowsSkipped` ([UInt64](/reference/data-types/int-uint)) — Number of rows in blocks that were skipped by JOIN Runtime Filters -- `ProfileEvent_JoinBuildPostProcessingMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Elapsed time of post-processing steps after building the right JOIN side. -- `ProfileEvent_AIInputTokens` ([UInt64](/reference/data-types/int-uint)) — Total prompt tokens consumed across all AI function calls in the query. -- `ProfileEvent_AIOutputTokens` ([UInt64](/reference/data-types/int-uint)) — Total completion tokens consumed across all AI function calls in the query. -- `ProfileEvent_AIAPICalls` ([UInt64](/reference/data-types/int-uint)) — Number of HTTP requests dispatched to AI providers. -- `ProfileEvent_AIRowsProcessed` ([UInt64](/reference/data-types/int-uint)) — Number of rows that received an AI result. -- `ProfileEvent_AIRowsSkipped` ([UInt64](/reference/data-types/int-uint)) — Number of rows that received a default value due to quota or error. -- `CurrentMetric_Query` ([Int64](/reference/data-types/int-uint)) — Number of executing queries -- `CurrentMetric_ASTFuzzerAccumulatedFragments` ([Int64](/reference/data-types/int-uint)) — Number of AST fragments accumulated by the server-side AST fuzzer for use in future mutations. -- `CurrentMetric_QueryNonInternal` ([Int64](/reference/data-types/int-uint)) — Number of executing non-internal queries (queries initiated by users, excluding internal queries from ClickHouse) -- `CurrentMetric_Merge` ([Int64](/reference/data-types/int-uint)) — Number of executing background merges -- `CurrentMetric_MergeParts` ([Int64](/reference/data-types/int-uint)) — Number of source parts participating in current background merges -- `CurrentMetric_Move` ([Int64](/reference/data-types/int-uint)) — Number of currently executing moves -- `CurrentMetric_PartMutation` ([Int64](/reference/data-types/int-uint)) — Number of mutations (ALTER DELETE/UPDATE) -- `CurrentMetric_ReplicatedFetch` ([Int64](/reference/data-types/int-uint)) — Number of data parts being fetched from replica -- `CurrentMetric_ReplicatedSend` ([Int64](/reference/data-types/int-uint)) — Number of data parts being sent to replicas -- `CurrentMetric_ReplicatedChecks` ([Int64](/reference/data-types/int-uint)) — Number of data parts checking for consistency -- `CurrentMetric_BackgroundMergesAndMutationsPoolTask` ([Int64](/reference/data-types/int-uint)) — Number of active merges and mutations in an associated background pool -- `CurrentMetric_BackgroundMergesAndMutationsPoolSize` ([Int64](/reference/data-types/int-uint)) — Limit on number of active merges and mutations in an associated background pool -- `CurrentMetric_BackgroundFetchesPoolTask` ([Int64](/reference/data-types/int-uint)) — Number of active fetches in an associated background pool -- `CurrentMetric_BackgroundFetchesPoolSize` ([Int64](/reference/data-types/int-uint)) — Limit on number of simultaneous fetches in an associated background pool -- `CurrentMetric_BackgroundCommonPoolTask` ([Int64](/reference/data-types/int-uint)) — Number of active tasks in an associated background pool -- `CurrentMetric_BackgroundCommonPoolSize` ([Int64](/reference/data-types/int-uint)) — Limit on number of tasks in an associated background pool -- `CurrentMetric_BackgroundMovePoolTask` ([Int64](/reference/data-types/int-uint)) — Number of active tasks in BackgroundProcessingPool for moves -- `CurrentMetric_BackgroundMovePoolSize` ([Int64](/reference/data-types/int-uint)) — Limit on number of tasks in BackgroundProcessingPool for moves -- `CurrentMetric_AzureRequests` ([Int64](/reference/data-types/int-uint)) — Number of currently executing Azure requests -- `CurrentMetric_BackgroundSchedulePoolTask` ([Int64](/reference/data-types/int-uint)) — Number of active tasks in BackgroundSchedulePool. This pool is used for periodic ReplicatedMergeTree tasks, like cleaning old data parts, altering data parts, replica re-initialization, etc. -- `CurrentMetric_BackgroundSchedulePoolSize` ([Int64](/reference/data-types/int-uint)) — Limit on number of tasks in BackgroundSchedulePool. This pool is used for periodic ReplicatedMergeTree tasks, like cleaning old data parts, altering data parts, replica re-initialization, etc. -- `CurrentMetric_BackgroundBufferFlushSchedulePoolTask` ([Int64](/reference/data-types/int-uint)) — Number of active tasks in BackgroundBufferFlushSchedulePool. This pool is used for periodic Buffer flushes -- `CurrentMetric_BackgroundBufferFlushSchedulePoolSize` ([Int64](/reference/data-types/int-uint)) — Limit on number of tasks in BackgroundBufferFlushSchedulePool -- `CurrentMetric_BackgroundDistributedSchedulePoolTask` ([Int64](/reference/data-types/int-uint)) — Number of active tasks in BackgroundDistributedSchedulePool. This pool is used for distributed sends that is done in background. -- `CurrentMetric_BackgroundDistributedSchedulePoolSize` ([Int64](/reference/data-types/int-uint)) — Limit on number of tasks in BackgroundDistributedSchedulePool -- `CurrentMetric_BackgroundMessageBrokerSchedulePoolTask` ([Int64](/reference/data-types/int-uint)) — Number of active tasks in BackgroundMessageBrokerSchedulePool for message streaming -- `CurrentMetric_BackgroundMessageBrokerSchedulePoolSize` ([Int64](/reference/data-types/int-uint)) — Limit on number of tasks in BackgroundMessageBrokerSchedulePool for message streaming -- `CurrentMetric_CacheDictionaryUpdateQueueBatches` ([Int64](/reference/data-types/int-uint)) — Number of 'batches' (a set of keys) in update queue in CacheDictionaries. -- `CurrentMetric_CacheDictionaryUpdateQueueKeys` ([Int64](/reference/data-types/int-uint)) — Exact number of keys in update queue in CacheDictionaries. -- `CurrentMetric_DiskSpaceReservedForMerge` ([Int64](/reference/data-types/int-uint)) — Disk space reserved for currently running background merges. It is slightly more than the total size of currently merging parts. -- `CurrentMetric_DistributedSend` ([Int64](/reference/data-types/int-uint)) — Number of connections to remote servers sending data that was INSERTed into Distributed tables. Both synchronous and asynchronous mode. -- `CurrentMetric_QueryPreempted` ([Int64](/reference/data-types/int-uint)) — Number of running tasks which are paused and waiting due to 'priority' setting. -- `CurrentMetric_TCPConnection` ([Int64](/reference/data-types/int-uint)) — Number of connections to TCP server (clients with native interface), also included server-server distributed query connections -- `CurrentMetric_MySQLConnection` ([Int64](/reference/data-types/int-uint)) — Number of client connections using MySQL protocol -- `CurrentMetric_HTTPConnection` ([Int64](/reference/data-types/int-uint)) — Number of connections to HTTP server -- `CurrentMetric_InterserverConnection` ([Int64](/reference/data-types/int-uint)) — Number of connections from other replicas to fetch parts -- `CurrentMetric_PostgreSQLConnection` ([Int64](/reference/data-types/int-uint)) — Number of client connections using PostgreSQL protocol -- `CurrentMetric_OpenFileForRead` ([Int64](/reference/data-types/int-uint)) — Number of files open for reading -- `CurrentMetric_OpenFileForWrite` ([Int64](/reference/data-types/int-uint)) — Number of files open for writing -- `CurrentMetric_Compressing` ([Int64](/reference/data-types/int-uint)) — Number of compress operations using internal compression codecs -- `CurrentMetric_Decompressing` ([Int64](/reference/data-types/int-uint)) — Number of decompress operations using internal compression codecs -- `CurrentMetric_ParallelCompressedWriteBufferThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in all instances of ParallelCompressedWriteBuffer - these threads are doing parallel compression and writing -- `CurrentMetric_ParallelCompressedWriteBufferWait` ([Int64](/reference/data-types/int-uint)) — Number of threads in all instances of ParallelCompressedWriteBuffer that are currently waiting for buffer to become available for writing -- `CurrentMetric_TotalTemporaryFiles` ([Int64](/reference/data-types/int-uint)) — Number of temporary files created -- `CurrentMetric_TemporaryFilesForSort` ([Int64](/reference/data-types/int-uint)) — Number of temporary files created for external sorting -- `CurrentMetric_TemporaryFilesForAggregation` ([Int64](/reference/data-types/int-uint)) — Number of temporary files created for external aggregation -- `CurrentMetric_TemporaryFilesForJoin` ([Int64](/reference/data-types/int-uint)) — Number of temporary files created for JOIN -- `CurrentMetric_TemporaryFilesForMerge` ([Int64](/reference/data-types/int-uint)) — Number of temporary files for vertical merge -- `CurrentMetric_TemporaryFilesUnknown` ([Int64](/reference/data-types/int-uint)) — Number of temporary files created without known purpose -- `CurrentMetric_Read` ([Int64](/reference/data-types/int-uint)) — Number of read (read, pread, io_getevents, etc.) syscalls in fly -- `CurrentMetric_RemoteRead` ([Int64](/reference/data-types/int-uint)) — Number of read with remote reader in fly -- `CurrentMetric_Write` ([Int64](/reference/data-types/int-uint)) — Number of write (write, pwrite, io_getevents, etc.) syscalls in fly -- `CurrentMetric_NetworkReceive` ([Int64](/reference/data-types/int-uint)) — Number of threads receiving data from network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. -- `CurrentMetric_NetworkSend` ([Int64](/reference/data-types/int-uint)) — Number of threads sending data to network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. -- `CurrentMetric_SendScalars` ([Int64](/reference/data-types/int-uint)) — Number of connections that are sending data for scalars to remote servers. -- `CurrentMetric_SendExternalTables` ([Int64](/reference/data-types/int-uint)) — Number of connections that are sending data for external tables to remote servers. External tables are used to implement GLOBAL IN and GLOBAL JOIN operators with distributed subqueries. -- `CurrentMetric_QueryThread` ([Int64](/reference/data-types/int-uint)) — Number of query processing threads -- `CurrentMetric_ReadonlyReplica` ([Int64](/reference/data-types/int-uint)) — Number of Replicated tables that are currently in readonly state due to re-initialization after ZooKeeper session loss or due to startup without ZooKeeper configured. -- `CurrentMetric_ReplicaReady` ([Int64](/reference/data-types/int-uint)) — Indicates if the replica is ready for queries: 0 = no, 1 = yes -- `CurrentMetric_MemoryTracking` ([Int64](/reference/data-types/int-uint)) — Total amount of memory (bytes) allocated by the server. -- `CurrentMetric_MemoryTrackingUncorrected` ([Int64](/reference/data-types/int-uint)) — Total amount of memory (bytes) allocated by the server not corrected by RSS. -- `CurrentMetric_MergesMutationsMemoryTracking` ([Int64](/reference/data-types/int-uint)) — Total amount of memory (bytes) allocated by background tasks (merges and mutations). -- `CurrentMetric_EphemeralNode` ([Int64](/reference/data-types/int-uint)) — Number of ephemeral nodes hold in ZooKeeper. -- `CurrentMetric_MaxAllocatedEphemeralLockSequentialNumber` ([Int64](/reference/data-types/int-uint)) — The maximum sequential number allocated for ephemeral lock znodes in ZooKeeper. Primarily influenced by the block numbers. -- `CurrentMetric_ZooKeeperSession` ([Int64](/reference/data-types/int-uint)) — Number of sessions (connections) to ZooKeeper. Should be no more than one, because using more than one connection to ZooKeeper may lead to bugs due to lack of linearizability (stale reads) that ZooKeeper consistency model allows. -- `CurrentMetric_ZooKeeperSessionExpired` ([Int64](/reference/data-types/int-uint)) — Number of expired global ZooKeeper sessions. -- `CurrentMetric_ZooKeeperConnectionLossStartedTimestampSeconds` ([Int64](/reference/data-types/int-uint)) — Unix timestamp in seconds when ZooKeeper connection was lost, or 0 if connected successfully. -- `CurrentMetric_ZooKeeperWatch` ([Int64](/reference/data-types/int-uint)) — Number of watches (event subscriptions) in ZooKeeper. -- `CurrentMetric_ZooKeeperRequest` ([Int64](/reference/data-types/int-uint)) — Number of requests to ZooKeeper in fly. -- `CurrentMetric_DelayedInserts` ([Int64](/reference/data-types/int-uint)) — Number of INSERT queries that are throttled due to high number of active data parts for partition in a MergeTree table. -- `CurrentMetric_ContextLockWait` ([Int64](/reference/data-types/int-uint)) — Number of threads waiting for lock in Context. This is global lock. -- `CurrentMetric_StorageBufferRows` ([Int64](/reference/data-types/int-uint)) — Number of rows in buffers of Buffer tables -- `CurrentMetric_StorageBufferBytes` ([Int64](/reference/data-types/int-uint)) — Number of bytes in buffers of Buffer tables -- `CurrentMetric_DictCacheRequests` ([Int64](/reference/data-types/int-uint)) — Number of requests in fly to data sources of dictionaries of cache type. -- `CurrentMetric_Revision` ([Int64](/reference/data-types/int-uint)) — Revision of the server. It is a number incremented for every release or release candidate except patch releases. -- `CurrentMetric_VersionInteger` ([Int64](/reference/data-types/int-uint)) — Version of the server in a single integer number in base-1000. For example, version 11.22.33 is translated to 11022033. -- `CurrentMetric_RWLockWaitingReaders` ([Int64](/reference/data-types/int-uint)) — Number of threads waiting for read on a table RWLock. -- `CurrentMetric_RWLockWaitingWriters` ([Int64](/reference/data-types/int-uint)) — Number of threads waiting for write on a table RWLock. -- `CurrentMetric_RWLockActiveReaders` ([Int64](/reference/data-types/int-uint)) — Number of threads holding read lock in a table RWLock. -- `CurrentMetric_RWLockActiveWriters` ([Int64](/reference/data-types/int-uint)) — Number of threads holding write lock in a table RWLock. -- `CurrentMetric_GlobalThread` ([Int64](/reference/data-types/int-uint)) — Number of threads in global thread pool. -- `CurrentMetric_GlobalThreadActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in global thread pool running a task. -- `CurrentMetric_GlobalThreadScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in global thread pool. -- `CurrentMetric_LocalThread` ([Int64](/reference/data-types/int-uint)) — Obsolete. Number of threads in local thread pools. The threads in local thread pools are taken from the global thread pool. -- `CurrentMetric_LocalThreadActive` ([Int64](/reference/data-types/int-uint)) — Obsolete. Number of threads in local thread pools running a task. -- `CurrentMetric_LocalThreadScheduled` ([Int64](/reference/data-types/int-uint)) — Obsolete. Number of queued or active jobs in local thread pools. -- `CurrentMetric_MergeTreeDataSelectExecutorThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the MergeTreeDataSelectExecutor thread pool. -- `CurrentMetric_MergeTreeDataSelectExecutorThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the MergeTreeDataSelectExecutor thread pool running a task. -- `CurrentMetric_MergeTreeDataSelectExecutorThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the MergeTreeDataSelectExecutor thread pool. -- `CurrentMetric_BackupsThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for BACKUP. -- `CurrentMetric_BackupsThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in thread pool for BACKUP running a task. -- `CurrentMetric_BackupsThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs for BACKUP. -- `CurrentMetric_RestoreThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for RESTORE. -- `CurrentMetric_RestoreThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for RESTORE running a task. -- `CurrentMetric_RestoreThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs for RESTORE. -- `CurrentMetric_MarksLoaderThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in thread pool for loading marks. -- `CurrentMetric_MarksLoaderThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for loading marks running a task. -- `CurrentMetric_MarksLoaderThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool for loading marks. -- `CurrentMetric_IOPrefetchThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the IO prefetch thread pool. -- `CurrentMetric_IOPrefetchThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the IO prefetch thread pool running a task. -- `CurrentMetric_IOPrefetchThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the IO prefetch thread pool. -- `CurrentMetric_IOWriterThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the IO writer thread pool. -- `CurrentMetric_IOWriterThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the IO writer thread pool running a task. -- `CurrentMetric_IOWriterThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the IO writer thread pool. -- `CurrentMetric_IOThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the IO thread pool. -- `CurrentMetric_IOThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the IO thread pool running a task. -- `CurrentMetric_IOThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the IO thread pool. -- `CurrentMetric_CompressionThread` ([Int64](/reference/data-types/int-uint)) — Number of threads in compression thread pools. -- `CurrentMetric_CompressionThreadActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in compression thread pools running a task. -- `CurrentMetric_CompressionThreadScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in compression thread pools. -- `CurrentMetric_ThreadPoolRemoteFSReaderThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for remote_filesystem_read_method=threadpool. -- `CurrentMetric_ThreadPoolRemoteFSReaderThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for remote_filesystem_read_method=threadpool running a task. -- `CurrentMetric_ThreadPoolRemoteFSReaderThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool for remote_filesystem_read_method=threadpool. -- `CurrentMetric_ThreadPoolFSReaderThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for local_filesystem_read_method=threadpool. -- `CurrentMetric_ThreadPoolFSReaderThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for local_filesystem_read_method=threadpool running a task. -- `CurrentMetric_ThreadPoolFSReaderThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool for local_filesystem_read_method=threadpool. -- `CurrentMetric_ObjectStorageQueueShutdownThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in object storage queue shutdown pool. -- `CurrentMetric_ObjectStorageQueueShutdownThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in object storage queue shutdown pool running a task. -- `CurrentMetric_ObjectStorageQueueShutdownThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in object storage queue shutdown pool. -- `CurrentMetric_ObjectStorageQueueMetadataCacheSizeBytes` ([Int64](/reference/data-types/int-uint)) — Size in bytes of ObjectStorageQueue metadata cache. -- `CurrentMetric_ObjectStorageQueueMetadataCacheSizeElements` ([Int64](/reference/data-types/int-uint)) — Size in elements of ObjectStorageQueue metadata cache. -- `CurrentMetric_DeltaLakeSnapshotCacheSizeElements` ([Int64](/reference/data-types/int-uint)) — Size in elements of DeltaLake snapshot cache. -- `CurrentMetric_BackupsIOThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the BackupsIO thread pool. -- `CurrentMetric_BackupsIOThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the BackupsIO thread pool running a task. -- `CurrentMetric_BackupsIOThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the BackupsIO thread pool. -- `CurrentMetric_DiskObjectStorageAsyncThreads` ([Int64](/reference/data-types/int-uint)) — Obsolete metric, shows nothing. -- `CurrentMetric_DiskObjectStorageAsyncThreadsActive` ([Int64](/reference/data-types/int-uint)) — Obsolete metric, shows nothing. -- `CurrentMetric_StorageHiveThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the StorageHive thread pool. -- `CurrentMetric_StorageHiveThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the StorageHive thread pool running a task. -- `CurrentMetric_StorageHiveThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the StorageHive thread pool. -- `CurrentMetric_TablesLoaderBackgroundThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the tables loader background thread pool. -- `CurrentMetric_TablesLoaderBackgroundThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the tables loader background thread pool running a task. -- `CurrentMetric_TablesLoaderBackgroundThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the tables loader background thread pool. -- `CurrentMetric_TablesLoaderForegroundThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the tables loader foreground thread pool. -- `CurrentMetric_TablesLoaderForegroundThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the tables loader foreground thread pool running a task. -- `CurrentMetric_TablesLoaderForegroundThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the tables loader foreground thread pool. -- `CurrentMetric_DatabaseOnDiskThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the DatabaseOnDisk thread pool. -- `CurrentMetric_DatabaseOnDiskThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the DatabaseOnDisk thread pool running a task. -- `CurrentMetric_DatabaseOnDiskThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the DatabaseOnDisk thread pool. -- `CurrentMetric_DatabaseBackupThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the DatabaseBackup thread pool. -- `CurrentMetric_DatabaseBackupThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the DatabaseBackup thread pool running a task. -- `CurrentMetric_DatabaseBackupThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the DatabaseBackup thread pool. -- `CurrentMetric_DatabaseCatalogThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the DatabaseCatalog thread pool. -- `CurrentMetric_DatabaseCatalogThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the DatabaseCatalog thread pool running a task. -- `CurrentMetric_DatabaseCatalogThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the DatabaseCatalog thread pool. -- `CurrentMetric_DestroyAggregatesThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for destroy aggregate states. -- `CurrentMetric_DestroyAggregatesThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for destroy aggregate states running a task. -- `CurrentMetric_DestroyAggregatesThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool for destroy aggregate states. -- `CurrentMetric_ConcurrentHashJoinPoolThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for concurrent hash join. -- `CurrentMetric_ConcurrentHashJoinPoolThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for concurrent hash join running a task. -- `CurrentMetric_ConcurrentHashJoinPoolThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool for concurrent hash join. -- `CurrentMetric_HashedDictionaryThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the HashedDictionary thread pool. -- `CurrentMetric_HashedDictionaryThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the HashedDictionary thread pool running a task. -- `CurrentMetric_HashedDictionaryThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the HashedDictionary thread pool. -- `CurrentMetric_CacheDictionaryThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the CacheDictionary thread pool. -- `CurrentMetric_CacheDictionaryThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the CacheDictionary thread pool running a task. -- `CurrentMetric_CacheDictionaryThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the CacheDictionary thread pool. -- `CurrentMetric_ParallelFormattingOutputFormatThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the ParallelFormattingOutputFormatThreads thread pool. -- `CurrentMetric_ParallelFormattingOutputFormatThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the ParallelFormattingOutputFormatThreads thread pool running a task. -- `CurrentMetric_ParallelFormattingOutputFormatThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the ParallelFormattingOutputFormatThreads thread pool. -- `CurrentMetric_MergeTreeBackgroundExecutorThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the MergeTreeBackgroundExecutor thread pool. -- `CurrentMetric_MergeTreeBackgroundExecutorThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the MergeTreeBackgroundExecutor thread pool running a task. -- `CurrentMetric_MergeTreeBackgroundExecutorThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the MergeTreeBackgroundExecutor thread pool. -- `CurrentMetric_AsynchronousInsertThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the AsynchronousInsert thread pool. -- `CurrentMetric_AsynchronousInsertThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the AsynchronousInsert thread pool running a task. -- `CurrentMetric_AsynchronousInsertThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the AsynchronousInsert thread pool. -- `CurrentMetric_AsynchronousInsertQueueSize` ([Int64](/reference/data-types/int-uint)) — Number of pending tasks in the AsynchronousInsert queue. -- `CurrentMetric_AsynchronousInsertQueueBytes` ([Int64](/reference/data-types/int-uint)) — Number of pending bytes in the AsynchronousInsert queue. -- `CurrentMetric_StartupSystemTablesThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the StartupSystemTables thread pool. -- `CurrentMetric_StartupSystemTablesThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the StartupSystemTables thread pool running a task. -- `CurrentMetric_StartupSystemTablesThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the StartupSystemTables thread pool. -- `CurrentMetric_AggregatorThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the Aggregator thread pool. -- `CurrentMetric_AggregatorThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the Aggregator thread pool running a task. -- `CurrentMetric_AggregatorThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the Aggregator thread pool. -- `CurrentMetric_DDLWorkerThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the DDLWorker thread pool for ON CLUSTER queries. -- `CurrentMetric_DDLWorkerThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the DDLWORKER thread pool for ON CLUSTER queries running a task. -- `CurrentMetric_DDLWorkerThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the DDLWORKER thread pool for ON CLUSTER queries. -- `CurrentMetric_StorageDistributedThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the StorageDistributed thread pool. -- `CurrentMetric_StorageDistributedThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the StorageDistributed thread pool running a task. -- `CurrentMetric_StorageDistributedThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the StorageDistributed thread pool. -- `CurrentMetric_DistributedInsertThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads used for INSERT into Distributed. -- `CurrentMetric_DistributedInsertThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads used for INSERT into Distributed running a task. -- `CurrentMetric_DistributedInsertThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs used for INSERT into Distributed. -- `CurrentMetric_StorageS3Threads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the StorageS3 thread pool. -- `CurrentMetric_StorageS3ThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the StorageS3 thread pool running a task. -- `CurrentMetric_StorageS3ThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the StorageS3 thread pool. -- `CurrentMetric_ObjectStorageS3Threads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the S3ObjectStorage thread pool. -- `CurrentMetric_ObjectStorageS3ThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the S3ObjectStorage thread pool running a task. -- `CurrentMetric_ObjectStorageS3ThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the S3ObjectStorage thread pool. -- `CurrentMetric_StorageObjectStorageThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the remote table engines thread pools. -- `CurrentMetric_StorageObjectStorageThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the remote table engines thread pool running a task. -- `CurrentMetric_StorageObjectStorageThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in remote table engines thread pool. -- `CurrentMetric_ObjectStorageAzureThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the AzureObjectStorage thread pool. -- `CurrentMetric_ObjectStorageAzureThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the AzureObjectStorage thread pool running a task. -- `CurrentMetric_ObjectStorageAzureThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the AzureObjectStorage thread pool. -- `CurrentMetric_BuildVectorSimilarityIndexThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the build vector similarity index thread pool. -- `CurrentMetric_BuildVectorSimilarityIndexThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the build vector similarity index thread pool running a task. -- `CurrentMetric_BuildVectorSimilarityIndexThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the build vector similarity index thread pool. -- `CurrentMetric_DistributedIndexAnalysisThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for distributed index analysis. -- `CurrentMetric_DistributedIndexAnalysisThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool for distributed index analysis running a task. -- `CurrentMetric_DistributedIndexAnalysisThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the distributed index analysis thread pool. -- `CurrentMetric_ObjectStorageQueueRegisteredServers` ([Int64](/reference/data-types/int-uint)) — Number of registered servers in StorageS3(Azure)Queue -- `CurrentMetric_IcebergCatalogThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the IcebergCatalog thread pool. -- `CurrentMetric_IcebergCatalogThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the IcebergCatalog thread pool running a task. -- `CurrentMetric_IcebergCatalogThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the IcebergCatalog thread pool. -- `CurrentMetric_IcebergSchedulePoolTask` ([Int64](/reference/data-types/int-uint)) — Number of tasks in the background schedule pool for Iceberg tables. -- `CurrentMetric_IcebergSchedulePoolSize` ([Int64](/reference/data-types/int-uint)) — Limit on number of tasks in the background schedule pool for Iceberg tables. -- `CurrentMetric_ParallelWithQueryThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for processing PARALLEL WITH queries. -- `CurrentMetric_ParallelWithQueryActiveThreads` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for processing PARALLEL WITH queries. -- `CurrentMetric_ParallelWithQueryScheduledThreads` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for processing PARALLEL WITH queries. -- `CurrentMetric_DiskPlainRewritableAzureDirectoryMapSize` ([Int64](/reference/data-types/int-uint)) — Number of local-to-remote path entries in the 'plain_rewritable' in-memory map for AzureObjectStorage. -- `CurrentMetric_DiskPlainRewritableAzureFileCount` ([Int64](/reference/data-types/int-uint)) — Number of file entries in the 'plain_rewritable' in-memory map for AzureObjectStorage. -- `CurrentMetric_DiskPlainRewritableLocalDirectoryMapSize` ([Int64](/reference/data-types/int-uint)) — Number of local-to-remote path entries in the 'plain_rewritable' in-memory map for LocalObjectStorage. -- `CurrentMetric_DiskPlainRewritableLocalFileCount` ([Int64](/reference/data-types/int-uint)) — Number of file entries in the 'plain_rewritable' in-memory map for LocalObjectStorage. -- `CurrentMetric_DiskPlainRewritableS3DirectoryMapSize` ([Int64](/reference/data-types/int-uint)) — Number of local-to-remote path entries in the 'plain_rewritable' in-memory map for S3ObjectStorage. -- `CurrentMetric_DiskPlainRewritableS3FileCount` ([Int64](/reference/data-types/int-uint)) — Number of file entries in the 'plain_rewritable' in-memory map for S3ObjectStorage. -- `CurrentMetric_MergeTreeFetchPartitionThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads for ALTER TABLE FETCH PARTITION -- `CurrentMetric_MergeTreeFetchPartitionThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads for ALTER TABLE FETCH PARTITION fetching part -- `CurrentMetric_MergeTreeFetchPartitionThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active part fetches in ALTER TABLE FETCH PARTITION -- `CurrentMetric_MergeTreePartsLoaderThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the MergeTree parts loader thread pool. -- `CurrentMetric_MergeTreePartsLoaderThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the MergeTree parts loader thread pool running a task. -- `CurrentMetric_MergeTreePartsLoaderThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the MergeTree parts loader thread pool. -- `CurrentMetric_MergeTreeOutdatedPartsLoaderThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for loading Outdated data parts. -- `CurrentMetric_MergeTreeOutdatedPartsLoaderThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for loading Outdated data parts. -- `CurrentMetric_MergeTreeOutdatedPartsLoaderThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for loading Outdated data parts. -- `CurrentMetric_MergeTreeUnexpectedPartsLoaderThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for loading Unexpected data parts. -- `CurrentMetric_MergeTreeUnexpectedPartsLoaderThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for loading Unexpected data parts. -- `CurrentMetric_MergeTreeUnexpectedPartsLoaderThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for loading Unexpected data parts. -- `CurrentMetric_MergeTreePartsCleanerThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the MergeTree parts cleaner thread pool. -- `CurrentMetric_MergeTreePartsCleanerThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the MergeTree parts cleaner thread pool running a task. -- `CurrentMetric_MergeTreePartsCleanerThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the MergeTree parts cleaner thread pool. -- `CurrentMetric_DatabaseReplicatedCreateTablesThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for table creation in DatabaseReplicated. -- `CurrentMetric_DatabaseReplicatedCreateTablesThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for table creation in DatabaseReplicated. -- `CurrentMetric_DatabaseReplicatedCreateTablesThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for table creation in DatabaseReplicated. -- `CurrentMetric_IDiskCopierThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads for copying data between disks of different types. -- `CurrentMetric_IDiskCopierThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads for copying data between disks of different types running a task. -- `CurrentMetric_IDiskCopierThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs for copying data between disks of different types. -- `CurrentMetric_SystemReplicasThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the system.replicas thread pool. -- `CurrentMetric_SystemDatabaseReplicasThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the system.database_replicas thread pool. -- `CurrentMetric_SystemReplicasThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the system.replicas thread pool running a task. -- `CurrentMetric_SystemDatabaseReplicasThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the system.database_replicas thread pool running a task. -- `CurrentMetric_SystemReplicasThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the system.replicas thread pool. -- `CurrentMetric_SystemDatabaseReplicasThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the system.database_replicas thread pool. -- `CurrentMetric_RestartReplicaThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the RESTART REPLICA thread pool. -- `CurrentMetric_RestartReplicaThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the RESTART REPLICA thread pool running a task. -- `CurrentMetric_RestartReplicaThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the RESTART REPLICA thread pool. -- `CurrentMetric_QueryPipelineExecutorThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the PipelineExecutor thread pool. -- `CurrentMetric_QueryPipelineExecutorThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the PipelineExecutor thread pool running a task. -- `CurrentMetric_QueryPipelineExecutorThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the PipelineExecutor thread pool. -- `CurrentMetric_ParquetEncoderThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in ParquetBlockOutputFormat thread pool. -- `CurrentMetric_ParquetEncoderThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in ParquetBlockOutputFormat thread pool running a task. -- `CurrentMetric_ParquetEncoderThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in ParquetBlockOutputFormat thread pool. -- `CurrentMetric_MergeTreeSubcolumnsReaderThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool used for subcolumns reading in MergeTree. -- `CurrentMetric_MergeTreeSubcolumnsReaderThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool used for subcolumns reading in MergeTree running a task. -- `CurrentMetric_MergeTreeSubcolumnsReaderThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool used for subcolumns reading in MergeTree. -- `CurrentMetric_FormatParsingThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool used for parsing input. -- `CurrentMetric_FormatParsingThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool used for parsing input running a task. -- `CurrentMetric_FormatParsingThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the thread pool used for parsing input. -- `CurrentMetric_OutdatedPartsLoadingThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for loading Outdated data parts. -- `CurrentMetric_OutdatedPartsLoadingThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for loading Outdated data parts. -- `CurrentMetric_OutdatedPartsLoadingThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for loading Outdated data parts. -- `CurrentMetric_FreezePartThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for freezing data parts. -- `CurrentMetric_FreezePartThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for freezing data parts. -- `CurrentMetric_FreezePartThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for freezing data parts. -- `CurrentMetric_PolygonDictionaryThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for polygon dictionaries. -- `CurrentMetric_PolygonDictionaryThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for polygon dictionaries. -- `CurrentMetric_PolygonDictionaryThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for polygon dictionaries. -- `CurrentMetric_KeeperReadThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for keeper server reads. -- `CurrentMetric_KeeperReadThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for keeper server reads. -- `CurrentMetric_KeeperReadThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for keeper server reads. Meaningless metric, the actual read tasks on this thread pool are scheduled through a different mechanism. -- `CurrentMetric_DistributedBytesToInsert` ([Int64](/reference/data-types/int-uint)) — Number of pending bytes to process for asynchronous insertion into Distributed tables. Number of bytes for every shard is summed. -- `CurrentMetric_BrokenDistributedBytesToInsert` ([Int64](/reference/data-types/int-uint)) — Number of bytes for asynchronous insertion into Distributed tables that has been marked as broken. Number of bytes for every shard is summed. -- `CurrentMetric_DistributedFilesToInsert` ([Int64](/reference/data-types/int-uint)) — Number of pending files to process for asynchronous insertion into Distributed tables. Number of files for every shard is summed. -- `CurrentMetric_BrokenDistributedFilesToInsert` ([Int64](/reference/data-types/int-uint)) — Number of files for asynchronous insertion into Distributed tables that has been marked as broken. Number of files for every shard is summed. -- `CurrentMetric_TablesToDropQueueSize` ([Int64](/reference/data-types/int-uint)) — Number of dropped tables, that are waiting for background data removal. -- `CurrentMetric_MaxDDLEntryID` ([Int64](/reference/data-types/int-uint)) — Max processed DDL entry of DDLWorker. -- `CurrentMetric_MaxPushedDDLEntryID` ([Int64](/reference/data-types/int-uint)) — Max DDL entry of DDLWorker that pushed to zookeeper. -- `CurrentMetric_PartsTemporary` ([Int64](/reference/data-types/int-uint)) — The part is generating now, it is not in data_parts list. -- `CurrentMetric_PartsPreCommitted` ([Int64](/reference/data-types/int-uint)) — Deprecated. See PartsPreActive. -- `CurrentMetric_PartsCommitted` ([Int64](/reference/data-types/int-uint)) — Deprecated. See PartsActive. -- `CurrentMetric_PartsPreActive` ([Int64](/reference/data-types/int-uint)) — The part is in data_parts, but not used for SELECTs. -- `CurrentMetric_PartsActive` ([Int64](/reference/data-types/int-uint)) — Active data part, used by current and upcoming SELECTs. -- `CurrentMetric_AttachedDatabase` ([Int64](/reference/data-types/int-uint)) — Active databases. -- `CurrentMetric_AttachedTable` ([Int64](/reference/data-types/int-uint)) — Active tables. -- `CurrentMetric_AttachedReplicatedTable` ([Int64](/reference/data-types/int-uint)) — Active replicated tables. -- `CurrentMetric_AttachedView` ([Int64](/reference/data-types/int-uint)) — Active views. -- `CurrentMetric_AttachedDictionary` ([Int64](/reference/data-types/int-uint)) — Active dictionaries. -- `CurrentMetric_PartsOutdated` ([Int64](/reference/data-types/int-uint)) — Not active data part, but could be used by only current SELECTs, could be deleted after SELECTs finishes. -- `CurrentMetric_PartsDeleting` ([Int64](/reference/data-types/int-uint)) — Not active data part with identity refcounter, it is deleting right now by a cleaner. -- `CurrentMetric_PartsDeleteOnDestroy` ([Int64](/reference/data-types/int-uint)) — Part was moved to another disk and should be deleted in own destructor. -- `CurrentMetric_PartsWide` ([Int64](/reference/data-types/int-uint)) — Wide parts. -- `CurrentMetric_PartsCompact` ([Int64](/reference/data-types/int-uint)) — Compact parts. -- `CurrentMetric_MMappedFiles` ([Int64](/reference/data-types/int-uint)) — Total number of mmapped files. -- `CurrentMetric_MMappedFileBytes` ([Int64](/reference/data-types/int-uint)) — Sum size of mmapped file regions. -- `CurrentMetric_AsynchronousReadWait` ([Int64](/reference/data-types/int-uint)) — Number of threads waiting for asynchronous read. -- `CurrentMetric_PendingAsyncInsert` ([Int64](/reference/data-types/int-uint)) — Number of asynchronous inserts that are waiting for flush. -- `CurrentMetric_KafkaConsumers` ([Int64](/reference/data-types/int-uint)) — Number of active Kafka consumers -- `CurrentMetric_KafkaConsumersWithAssignment` ([Int64](/reference/data-types/int-uint)) — Number of active Kafka consumers which have some partitions assigned. -- `CurrentMetric_KafkaProducers` ([Int64](/reference/data-types/int-uint)) — Number of active Kafka producer created -- `CurrentMetric_KafkaLibrdkafkaThreads` ([Int64](/reference/data-types/int-uint)) — Number of active librdkafka threads -- `CurrentMetric_KafkaBackgroundReads` ([Int64](/reference/data-types/int-uint)) — Number of background reads currently working (populating materialized views from Kafka) -- `CurrentMetric_KafkaConsumersInUse` ([Int64](/reference/data-types/int-uint)) — Number of consumers which are currently used by direct or background reads -- `CurrentMetric_KafkaWrites` ([Int64](/reference/data-types/int-uint)) — Number of currently running inserts to Kafka -- `CurrentMetric_KafkaAssignedPartitions` ([Int64](/reference/data-types/int-uint)) — Number of partitions Kafka tables currently assigned to -- `CurrentMetric_FilesystemCacheReadBuffers` ([Int64](/reference/data-types/int-uint)) — Number of active cache buffers -- `CurrentMetric_CacheFileSegments` ([Int64](/reference/data-types/int-uint)) — Number of existing cache file segments -- `CurrentMetric_CacheDetachedFileSegments` ([Int64](/reference/data-types/int-uint)) — Number of existing detached cache file segments -- `CurrentMetric_FilesystemCacheSize` ([Int64](/reference/data-types/int-uint)) — Filesystem cache size in bytes -- `CurrentMetric_FilesystemCacheSizeLimit` ([Int64](/reference/data-types/int-uint)) — Filesystem cache size limit in bytes -- `CurrentMetric_FilesystemCacheElements` ([Int64](/reference/data-types/int-uint)) — Filesystem cache elements (file segments) -- `CurrentMetric_FilesystemCacheDownloadQueueElements` ([Int64](/reference/data-types/int-uint)) — Filesystem cache elements in download queue -- `CurrentMetric_FilesystemCacheDelayedCleanupElements` ([Int64](/reference/data-types/int-uint)) — Filesystem cache elements in background cleanup queue -- `CurrentMetric_FilesystemCacheHoldFileSegments` ([Int64](/reference/data-types/int-uint)) — Filesystem cache file segment which are currently hold as unreleasable -- `CurrentMetric_FilesystemCacheKeys` ([Int64](/reference/data-types/int-uint)) — Number of keys in filesystem cache -- `CurrentMetric_FilesystemCacheReserveThreads` ([Int64](/reference/data-types/int-uint)) — Threads number trying to reserve space in cache -- `CurrentMetric_AsyncInsertCacheSize` ([Int64](/reference/data-types/int-uint)) — Number of async insert hash id in cache -- `CurrentMetric_IcebergMetadataFilesCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the Iceberg metadata cache in bytes -- `CurrentMetric_IcebergMetadataFilesCacheFiles` ([Int64](/reference/data-types/int-uint)) — Number of cached files in the Iceberg metadata cache -- `CurrentMetric_ParquetMetadataCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the Parquet metadata cache in bytes -- `CurrentMetric_ParquetMetadataCacheFiles` ([Int64](/reference/data-types/int-uint)) — Number of cached files in the Parquet metadata cache -- `CurrentMetric_AvroSchemaCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the Avro schema cache in bytes -- `CurrentMetric_AvroSchemaCacheCells` ([Int64](/reference/data-types/int-uint)) — Number of cached Avro schemas -- `CurrentMetric_AvroSchemaRegistryCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the Avro schema registry cache in bytes -- `CurrentMetric_AvroSchemaRegistryCacheCells` ([Int64](/reference/data-types/int-uint)) — Number of entries in Avro schema registry cache -- `CurrentMetric_HiveFilesCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the hive cache in bytes -- `CurrentMetric_HiveFilesCacheFiles` ([Int64](/reference/data-types/int-uint)) — Number of cached files in the hive cache -- `CurrentMetric_HiveMetadataFilesCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the hive metadata cache in bytes -- `CurrentMetric_HiveMetadataFilesCacheFiles` ([Int64](/reference/data-types/int-uint)) — Number of cached files in the hive metadata cache -- `CurrentMetric_VectorSimilarityIndexCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the vector similarity index cache in bytes -- `CurrentMetric_VectorSimilarityIndexCacheCells` ([Int64](/reference/data-types/int-uint)) — Number of entries in the vector similarity index cache -- `CurrentMetric_TextIndexTokensCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the text index tokens cache in bytes -- `CurrentMetric_TextIndexTokensCacheCells` ([Int64](/reference/data-types/int-uint)) — Number of entries in the text index tokens cache -- `CurrentMetric_TextIndexHeaderCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the text index header cache in bytes -- `CurrentMetric_TextIndexHeaderCacheCells` ([Int64](/reference/data-types/int-uint)) — Number of entries in text index header cache -- `CurrentMetric_TextIndexPostingsCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the text index posting lists cache in bytes -- `CurrentMetric_TextIndexPostingsCacheCells` ([Int64](/reference/data-types/int-uint)) — Number of entries in the text index posting lists cache -- `CurrentMetric_DNSHostsCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the DNS hosts cache in bytes -- `CurrentMetric_DNSHostsCacheSize` ([Int64](/reference/data-types/int-uint)) — Number of cached DNS hosts -- `CurrentMetric_DNSAddressesCacheBytes` ([Int64](/reference/data-types/int-uint)) — Size of the DNS addresses cache in bytes -- `CurrentMetric_DNSAddressesCacheSize` ([Int64](/reference/data-types/int-uint)) — Number of cached DNS addresses -- `CurrentMetric_MarkCacheBytes` ([Int64](/reference/data-types/int-uint)) — Total size of mark cache in bytes -- `CurrentMetric_MarkCacheFiles` ([Int64](/reference/data-types/int-uint)) — Total number of mark files cached in the mark cache -- `CurrentMetric_NamedCollection` ([Int64](/reference/data-types/int-uint)) — Number of named collections -- `CurrentMetric_PrimaryIndexCacheBytes` ([Int64](/reference/data-types/int-uint)) — Total size of primary index cache in bytes -- `CurrentMetric_PrimaryIndexCacheFiles` ([Int64](/reference/data-types/int-uint)) — Total number of index files cached in the primary index cache -- `CurrentMetric_PageCacheBytes` ([Int64](/reference/data-types/int-uint)) — Total size of userspace page cache in bytes -- `CurrentMetric_PageCacheCells` ([Int64](/reference/data-types/int-uint)) — Total number of entries in the userspace page cache -- `CurrentMetric_UncompressedCacheBytes` ([Int64](/reference/data-types/int-uint)) — Total size of uncompressed cache in bytes. Uncompressed cache does not usually improve the performance and should be mostly avoided -- `CurrentMetric_UncompressedCacheCells` ([Int64](/reference/data-types/int-uint)) — Total number of entries in the uncompressed cache. Each entry represents a decompressed block of data. Uncompressed cache does not usually improve performance and should be mostly avoided -- `CurrentMetric_IndexMarkCacheBytes` ([Int64](/reference/data-types/int-uint)) — Total size of mark cache for secondary indices in bytes -- `CurrentMetric_IndexMarkCacheFiles` ([Int64](/reference/data-types/int-uint)) — Total number of mark files cached in the mark cache for secondary indices -- `CurrentMetric_IndexUncompressedCacheBytes` ([Int64](/reference/data-types/int-uint)) — Total size of uncompressed cache in bytes for secondary indices. Uncompressed cache does not usually improve the performance and should be mostly avoided -- `CurrentMetric_IndexUncompressedCacheCells` ([Int64](/reference/data-types/int-uint)) — Total number of entries in the uncompressed cache for secondary indices. Each entry represents a decompressed block of data. Uncompressed cache does not usually improve performance and should be mostly avoided -- `CurrentMetric_MMapCacheCells` ([Int64](/reference/data-types/int-uint)) — The number of files opened with `mmap` (mapped in memory). This is used for queries with the setting `local_filesystem_read_method` set to `mmap`. The files opened with `mmap` are kept in the cache to avoid costly TLB flushes. -- `CurrentMetric_QueryCacheBytes` ([Int64](/reference/data-types/int-uint)) — Total size of the query cache in bytes -- `CurrentMetric_QueryCacheEntries` ([Int64](/reference/data-types/int-uint)) — Total number of entries in the query cache -- `CurrentMetric_QueryConditionCacheBytes` ([Int64](/reference/data-types/int-uint)) — Total size of the query condition cache in bytes -- `CurrentMetric_QueryConditionCacheEntries` ([Int64](/reference/data-types/int-uint)) — Total number of entries in the query condition cache -- `CurrentMetric_CompiledExpressionCacheBytes` ([Int64](/reference/data-types/int-uint)) — Total bytes used for the cache of JIT-compiled code -- `CurrentMetric_CompiledExpressionCacheCount` ([Int64](/reference/data-types/int-uint)) — Total entries in the cache of JIT-compiled code -- `CurrentMetric_SerializationCacheBytesInMemoryAllocated` ([Int64](/reference/data-types/int-uint)) — Total size of the serialization cache in bytes including keys and overhead from empty slots -- `CurrentMetric_SerializationCacheBytesInMemory` ([Int64](/reference/data-types/int-uint)) — Total size of the serialization cache in bytes including only the values -- `CurrentMetric_SerializationCacheCount` ([Int64](/reference/data-types/int-uint)) — Total number of entries in the serialization cache -- `CurrentMetric_MergeJoinBlocksCacheBytes` ([Int64](/reference/data-types/int-uint)) — Total bytes used for cached blocks in MergeJoin -- `CurrentMetric_MergeJoinBlocksCacheCount` ([Int64](/reference/data-types/int-uint)) — Total cached blocks in MergeJoin -- `CurrentMetric_BcryptCacheBytes` ([Int64](/reference/data-types/int-uint)) — Total size of the bcrypt authentication cache in bytes -- `CurrentMetric_BcryptCacheSize` ([Int64](/reference/data-types/int-uint)) — Total number of entries in the bcrypt authentication cache -- `CurrentMetric_ColumnsDescriptionsCacheSize` ([Int64](/reference/data-types/int-uint)) — Size of ColumnsDescriptions cache (per-table cache) -- `CurrentMetric_S3Requests` ([Int64](/reference/data-types/int-uint)) — S3 requests count -- `CurrentMetric_KeeperAliveConnections` ([Int64](/reference/data-types/int-uint)) — Number of alive connections -- `CurrentMetric_KeeperOutstandingRequests` ([Int64](/reference/data-types/int-uint)) — Number of outstanding requests -- `CurrentMetric_ThreadsInOvercommitTracker` ([Int64](/reference/data-types/int-uint)) — Number of waiting threads inside of OvercommitTracker -- `CurrentMetric_IOUringPendingEvents` ([Int64](/reference/data-types/int-uint)) — Number of io_uring SQEs waiting to be submitted -- `CurrentMetric_IOUringInFlightEvents` ([Int64](/reference/data-types/int-uint)) — Number of io_uring SQEs in flight -- `CurrentMetric_ReadTaskRequestsSent` ([Int64](/reference/data-types/int-uint)) — The current number of callback requests in flight from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the remote server side. -- `CurrentMetric_MergeTreeReadTaskRequestsSent` ([Int64](/reference/data-types/int-uint)) — The current number of callback requests in flight from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the remote server side. -- `CurrentMetric_MergeTreeAllRangesAnnouncementsSent` ([Int64](/reference/data-types/int-uint)) — The current number of announcement being sent in flight from the remote server to the initiator server about the set of data parts (for MergeTree tables). Measured on the remote server side. -- `CurrentMetric_CreatedTimersInQueryProfiler` ([Int64](/reference/data-types/int-uint)) — Number of Created thread local timers in QueryProfiler -- `CurrentMetric_ActiveTimersInQueryProfiler` ([Int64](/reference/data-types/int-uint)) — Number of Active thread local timers in QueryProfiler -- `CurrentMetric_RefreshableViews` ([Int64](/reference/data-types/int-uint)) — Number materialized views with periodic refreshing (REFRESH) -- `CurrentMetric_RefreshingViews` ([Int64](/reference/data-types/int-uint)) — Number of materialized views currently executing a refresh -- `CurrentMetric_StorageBufferFlushThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads for background flushes in StorageBuffer -- `CurrentMetric_StorageBufferFlushThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads for background flushes in StorageBuffer running a task -- `CurrentMetric_StorageBufferFlushThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active threads for background flushes in StorageBuffer -- `CurrentMetric_SharedMergeTreeThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pools in internals of SharedMergeTree -- `CurrentMetric_SharedMergeTreeThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pools in internals of SharedMergeTree running a task -- `CurrentMetric_SharedMergeTreeThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active threads in the thread pools in internals of SharedMergeTree -- `CurrentMetric_SharedMergeTreeFetch` ([Int64](/reference/data-types/int-uint)) — Number of fetches in progress -- `CurrentMetric_SharedMergeTreeAssignedCurrentParts` ([Int64](/reference/data-types/int-uint)) — Number of parts locked by merge or mutation -- `CurrentMetric_SharedMergeTreeOutdatedPartsInKeeper` ([Int64](/reference/data-types/int-uint)) — How many outdated part records stored in keeper -- `CurrentMetric_SharedMergeTreeCondemnedPartsInKeeper` ([Int64](/reference/data-types/int-uint)) — How many condemned part records stored in keeper -- `CurrentMetric_SharedMergeTreeBrokenCondemnedPartsInKeeper` ([Int64](/reference/data-types/int-uint)) — How many broken condemned part records stored in keeper -- `CurrentMetric_SharedMergeTreeMaxActiveReplicas` ([Int64](/reference/data-types/int-uint)) — The maximum number of active replicas registered in Keeper -- `CurrentMetric_SharedMergeTreeMaxInactiveReplicas` ([Int64](/reference/data-types/int-uint)) — The maximum number of inactive replicas registered in Keeper -- `CurrentMetric_SharedMergeTreeMaxReplicas` ([Int64](/reference/data-types/int-uint)) — The maximum number of replicas registered in Keeper across all tables. Note it might not be a sum of SharedMergeTreeMaxActiveReplicas and SharedMergeTreeMaxInactiveReplicas -- `CurrentMetric_SharedMergeTreeMinActiveReplicas` ([Int64](/reference/data-types/int-uint)) — The minimum number of active replicas registered in Keeper -- `CurrentMetric_SharedMergeTreeMinInactiveReplicas` ([Int64](/reference/data-types/int-uint)) — The minimum number of inactive replicas registered in Keeper -- `CurrentMetric_SharedMergeTreeMinReplicas` ([Int64](/reference/data-types/int-uint)) — The minimum number of replicas registered in Keeper across all tables. Note it might not be a sum of SharedMergeTreeMinActiveReplicas and SharedMergeTreeMinInactiveReplicas -- `CurrentMetric_SharedMergeTreeMinPartitions` ([Int64](/reference/data-types/int-uint)) — The minimum number of partitions registered in Keeper across all SharedMergeTree tables -- `CurrentMetric_SharedMergeTreeMaxPartitions` ([Int64](/reference/data-types/int-uint)) — The maximum number of partitions registered in Keeper across all SharedMergeTree tables -- `CurrentMetric_CacheWarmerBytesInProgress` ([Int64](/reference/data-types/int-uint)) — Total size of remote file segments waiting to be asynchronously loaded into filesystem cache. -- `CurrentMetric_DistrCacheOpenedConnections` ([Int64](/reference/data-types/int-uint)) — Number of open connections to Distributed Cache -- `CurrentMetric_DistrCacheSharedLimitCount` ([Int64](/reference/data-types/int-uint)) — Number of opened connections according to DistributedCache::ConnectionPool::SharedLimit -- `CurrentMetric_DistrCacheUsedConnections` ([Int64](/reference/data-types/int-uint)) — Number of currently used connections to Distributed Cache -- `CurrentMetric_DistrCacheAllocatedConnections` ([Int64](/reference/data-types/int-uint)) — Number of currently allocated connections to Distributed Cache connection pool -- `CurrentMetric_DistrCacheBorrowedConnections` ([Int64](/reference/data-types/int-uint)) — Number of currently borrowed connections to Distributed Cache connection pool -- `CurrentMetric_DistrCacheReadRequests` ([Int64](/reference/data-types/int-uint)) — Number of executed Read requests to Distributed Cache -- `CurrentMetric_DistrCacheWriteRequests` ([Int64](/reference/data-types/int-uint)) — Number of executed Write requests to Distributed Cache -- `CurrentMetric_DistrCacheWriteBuffers` ([Int64](/reference/data-types/int-uint)) — Number of distributed cache write buffers -- `CurrentMetric_DistrCacheReadBuffers` ([Int64](/reference/data-types/int-uint)) — Number of distributed cache read buffers -- `CurrentMetric_DistrCacheServerConnections` ([Int64](/reference/data-types/int-uint)) — Number of open connections to ClickHouse server from Distributed Cache -- `CurrentMetric_DistrCacheRegisteredServers` ([Int64](/reference/data-types/int-uint)) — Number of distributed cache registered servers -- `CurrentMetric_DistrCacheRegisteredServersCurrentAZ` ([Int64](/reference/data-types/int-uint)) — Number of distributed cache registered servers in current az -- `CurrentMetric_DistrCacheServerS3CachedClients` ([Int64](/reference/data-types/int-uint)) — Number of distributed cache S3 cached clients -- `CurrentMetric_DistrCacheServerRegistryConnections` ([Int64](/reference/data-types/int-uint)) — Number of active connections to ClickHouse server from Distributed Cache (not marked as cancelled because of limit) -- `CurrentMetric_SchedulerIOReadScheduled` ([Int64](/reference/data-types/int-uint)) — Number of IO reads are being scheduled currently -- `CurrentMetric_SchedulerIOWriteScheduled` ([Int64](/reference/data-types/int-uint)) — Number of IO writes are being scheduled currently -- `CurrentMetric_StorageConnectionsStored` ([Int64](/reference/data-types/int-uint)) — Total count of sessions stored in the session pool for storages -- `CurrentMetric_StorageConnectionsTotal` ([Int64](/reference/data-types/int-uint)) — Total count of all sessions: stored in the pool and actively used right now for storages -- `CurrentMetric_DiskConnectionsStored` ([Int64](/reference/data-types/int-uint)) — Total count of sessions stored in the session pool for disks -- `CurrentMetric_DiskConnectionsTotal` ([Int64](/reference/data-types/int-uint)) — Total count of all sessions: stored in the pool and actively used right now for disks -- `CurrentMetric_BlobKillerThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool of the object storage disk background removal process -- `CurrentMetric_BlobKillerThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool of the object storage disk background removal process running a task -- `CurrentMetric_BlobKillerThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active tasks in the thread pool of the object storage disk background removal process -- `CurrentMetric_BlobCopierThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool of the object storage disk background replication process -- `CurrentMetric_BlobCopierThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the thread pool of the object storage disk background replication process running a task -- `CurrentMetric_BlobCopierThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active tasks in the thread pool of the object storage disk background replication process -- `CurrentMetric_HTTPConnectionsStored` ([Int64](/reference/data-types/int-uint)) — Total count of sessions stored in the session pool for http hosts -- `CurrentMetric_HTTPConnectionsTotal` ([Int64](/reference/data-types/int-uint)) — Total count of all sessions: stored in the pool and actively used right now for http hosts -- `CurrentMetric_AddressesActive` ([Int64](/reference/data-types/int-uint)) — Total count of addresses which are used for creation connections with connection pools -- `CurrentMetric_AddressesBanned` ([Int64](/reference/data-types/int-uint)) — Total count of addresses which are banned as faulty for creation connections with connection pools -- `CurrentMetric_FilteringMarksWithPrimaryKey` ([Int64](/reference/data-types/int-uint)) — Number of threads currently doing filtering of mark ranges by the primary key -- `CurrentMetric_FilteringMarksWithSecondaryKeys` ([Int64](/reference/data-types/int-uint)) — Number of threads currently doing filtering of mark ranges by secondary keys -- `CurrentMetric_ConcurrencyControlScheduled` ([Int64](/reference/data-types/int-uint)) — Total number of CPU slot requests are being scheduled currently -- `CurrentMetric_ConcurrencyControlAcquired` ([Int64](/reference/data-types/int-uint)) — Total number of acquired CPU slots -- `CurrentMetric_ConcurrencyControlAcquiredNonCompeting` ([Int64](/reference/data-types/int-uint)) — Total number of acquired CPU slots that are not considered competing (the first thread if fair_round_robin scheduler is in use) -- `CurrentMetric_ConcurrencyControlSoftLimit` ([Int64](/reference/data-types/int-uint)) — Value of soft limit on number of CPU slots -- `CurrentMetric_ConcurrencyControlPreempted` ([Int64](/reference/data-types/int-uint)) — Total number of preempted threads waiting for CPU slot -- `CurrentMetric_ConcurrentQueryScheduled` ([Int64](/reference/data-types/int-uint)) — Total number of query slot requests are being scheduled currently -- `CurrentMetric_ConcurrentQueryAcquired` ([Int64](/reference/data-types/int-uint)) — Total number of acquired query slots -- `CurrentMetric_DiskS3NoSuchKeyErrors` ([Int64](/reference/data-types/int-uint)) — The number of `NoSuchKey` errors that occur when reading data from S3 cloud storage through ClickHouse disks. -- `CurrentMetric_SharedCatalogStateApplicationThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for state application in Shared Catalog. -- `CurrentMetric_SharedCatalogStateApplicationThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for state application in Shared Catalog. -- `CurrentMetric_SharedCatalogStateApplicationThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for state application in Shared Catalog. -- `CurrentMetric_SharedCatalogDropLocalThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for drop of local tables in Shared Catalog. -- `CurrentMetric_SharedCatalogDropLocalThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for drop of local tables in Shared Catalog. -- `CurrentMetric_SharedCatalogDropLocalThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for drop of local tables in Shared Catalog. -- `CurrentMetric_SharedCatalogDropZooKeeperThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for drop of object in ZooKeeper in Shared Catalog. -- `CurrentMetric_SharedCatalogDropZooKeeperThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for drop of object in ZooKeeper in Shared Catalog. -- `CurrentMetric_SharedCatalogDropZooKeeperThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for drop of object in ZooKeeper in Shared Catalog. -- `CurrentMetric_CoordinatedMergesCoordinatorRunningMerges` ([Int64](/reference/data-types/int-uint)) — Number of running merges visible for merge coordinator. -- `CurrentMetric_CoordinatedMergesCoordinatorAssignedMerges` ([Int64](/reference/data-types/int-uint)) — Number of assigned merges in merge coordinator state. -- `CurrentMetric_CoordinatedMergesWorkerAssignedMerges` ([Int64](/reference/data-types/int-uint)) — Number of assigned merges in merge worker state. -- `CurrentMetric_SharedDatabaseCatalogTablesInLocalDropDetachQueue` ([Int64](/reference/data-types/int-uint)) — Number of tables in the queue for local drop or detach in Shared Catalog. -- `CurrentMetric_SharedCatalogDropDetachLocalTablesErrors` ([Int64](/reference/data-types/int-uint)) — Number of errors that occurred when attempting to drop or detach local tables in Shared Catalog. -- `CurrentMetric_SharedCatalogNumberOfObjectsInState` ([Int64](/reference/data-types/int-uint)) — Number of objects in the current state of Shared Catalog. -- `CurrentMetric_MetadataFromKeeperCacheObjects` ([Int64](/reference/data-types/int-uint)) — Number of objects in disk metadata cache. -- `CurrentMetric_LicenseRemainingSeconds` ([Int64](/reference/data-types/int-uint)) — Remaining seconds of the license validity period. -- `CurrentMetric_StartupScriptsExecutionState` ([Int64](/reference/data-types/int-uint)) — State of startup scripts execution: 0 = not finished, 1 = success, 2 = failure. -- `CurrentMetric_IsServerShuttingDown` ([Int64](/reference/data-types/int-uint)) — Indicates if the server is shutting down: 0 = no, 1 = yes -- `CurrentMetric_StatelessWorkerThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the stateless worker thread pool. -- `CurrentMetric_StatelessWorkerThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the stateless worker thread pool running a task. -- `CurrentMetric_StatelessWorkerThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the stateless worker thread pool. -- `CurrentMetric_ReadonlyDisks` ([Int64](/reference/data-types/int-uint)) — Number of disks that were marked as readonly during disk check. -- `CurrentMetric_BrokenDisks` ([Int64](/reference/data-types/int-uint)) — Number of disks disks that were marked as broken during disk check. -- `CurrentMetric_TaskTrackerThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads used by the distributed query remote task tracker. -- `CurrentMetric_TaskTrackerThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of threads in the distributed query remote task tracker thread pool running a task. -- `CurrentMetric_TaskTrackerThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the distributed query remote task tracker thread pool. -- `CurrentMetric_DropDistributedCacheThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads in the threadpool for drop distributed cache query. -- `CurrentMetric_DropDistributedCacheThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads in the threadpool for drop distributed cache query. -- `CurrentMetric_DropDistributedCacheThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of queued or active jobs in the threadpool for drop distributed cache. -- `CurrentMetric_S3CachedCredentialsProviders` ([Int64](/reference/data-types/int-uint)) — Total number of cached credentials providers -- `CurrentMetric_MergeTreeSnapshotCommitThreads` ([Int64](/reference/data-types/int-uint)) — Number of threads used to commit snapshot -- `CurrentMetric_MergeTreeSnapshotCommitThreadsActive` ([Int64](/reference/data-types/int-uint)) — Number of active threads used to commit snapshot -- `CurrentMetric_MergeTreeSnapshotCommitThreadsScheduled` ([Int64](/reference/data-types/int-uint)) — Number of scheduled threads used to commit snapshot -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.metric_log LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -hostname: clickhouse.eu-central1.internal -event_date: 2020-09-05 -event_time: 2020-09-05 16:22:33 -event_time_microseconds: 2020-09-05 16:22:33.196807 -milliseconds: 196 -ProfileEvent_Query: 0 -ProfileEvent_SelectQuery: 0 -ProfileEvent_InsertQuery: 0 -ProfileEvent_FailedQuery: 0 -ProfileEvent_FailedSelectQuery: 0 -... -... -CurrentMetric_Revision: 54439 -CurrentMetric_VersionInteger: 20009001 -CurrentMetric_RWLockWaitingReaders: 0 -CurrentMetric_RWLockWaitingWriters: 0 -CurrentMetric_RWLockActiveReaders: 0 -CurrentMetric_RWLockActiveWriters: 0 -CurrentMetric_GlobalThread: 74 -CurrentMetric_GlobalThreadActive: 26 -CurrentMetric_LocalThread: 0 -CurrentMetric_LocalThreadActive: 0 -CurrentMetric_DistributedFilesToInsert: 0 -``` - -**Schema** -This table can be configured with different schema types using the XML tag ``. The default schema type is `wide`, where each metric or profile event is stored as a separate column. This schema is the most performant and efficient for single-column reads. - -The `transposed` schema stores data in a format similar to `system.asynchronous_metric_log`, where metrics and events are stored as rows. This schema is useful for low-resource setups because it reduces resource consumption during merges. - -**Histograms** - -Each row also carries a snapshot of every registered histogram metric in a `histograms` Nested column with fields `metric`, `labels`, `histogram`, `count`, and `sum`. Bucket counts are cumulative since server startup. By default, histograms whose total `count` is zero are not emitted, and zero-counter buckets within an emitted histogram are omitted from the `histogram` map; set `system_metric_log_show_zero_values_in_histograms = 1` (in the default user profile) to keep all histograms and all buckets. - -Example query: - -```sql -SELECT h.metric, h.labels, h.histogram, h.count, h.sum -FROM system.metric_log -ARRAY JOIN histograms AS h -WHERE h.metric = 'keeper_response_time_ms' AND h.labels['operation_type'] = 'readonly' -ORDER BY event_time DESC -LIMIT 1; -``` - -## See Also {#see-also} - -- [metric_log setting](/reference/settings/server-settings/settings#metric_log) — Enabling and disabling the setting. -- [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) — Contains periodically calculated metrics. -- [system.events](/reference/system-tables/events) — Contains a number of events that occurred. -- [system.metrics](/reference/system-tables/metrics) — Contains instantly calculated metrics. -- [Monitoring](/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. diff --git a/reference/system-tables/moves.mdx b/reference/system-tables/moves.mdx deleted file mode 100644 index 9f1d7ef8..00000000 --- a/reference/system-tables/moves.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -description: 'System table containing information about in-progress data part moves - of MergeTree tables. Each data part movement is represented by a single row.' -keywords: ['system table', 'moves'] -slug: /operations/system-tables/moves -title: 'system.moves' -doc_type: 'reference' ---- - -## Description {#description} - -The table contains information about in-progress [data part moves](/reference/statements/alter/partition#move-partitionpart) of [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables. Each data part movement is represented by a single row. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Name of the database. -- `table` ([String](/reference/data-types)) — Name of the table containing moving data part. -- `elapsed` ([Float64](/reference/data-types)) — Time elapsed (in seconds) since data part movement started. -- `target_disk_name` ([String](/reference/data-types)) — Name of disk to which the data part is moving. -- `target_disk_path` ([String](/reference/data-types)) — Path to the mount point of the disk in the file system. -- `part_name` ([String](/reference/data-types)) — Name of the data part being moved. -- `part_size` ([UInt64](/reference/data-types)) — Data part size. -- `thread_id` ([UInt64](/reference/data-types)) — Identifier of a thread performing the movement. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.moves -``` - -```response -┌─database─┬─table─┬─────elapsed─┬─target_disk_name─┬─target_disk_path─┬─part_name─┬─part_size─┬─thread_id─┐ -│ default │ test2 │ 1.668056039 │ s3 │ ./disks/s3/ │ all_3_3_0 │ 136 │ 296146 │ -└──────────┴───────┴─────────────┴──────────────────┴──────────────────┴───────────┴───────────┴───────────┘ -``` - -## See Also {#see-also} - -- [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) table engine -- [Using Multiple Block Devices for Data Storage](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes) -- [ALTER TABLE ... MOVE PART](/reference/statements/alter/partition#move-partitionpart) command diff --git a/reference/system-tables/mutations.mdx b/reference/system-tables/mutations.mdx deleted file mode 100644 index 38980b0e..00000000 --- a/reference/system-tables/mutations.mdx +++ /dev/null @@ -1,87 +0,0 @@ ---- -description: 'System table containing information about mutations of MergeTree tables - and their progress. Each mutation command is represented by a single row.' -keywords: ['system table', 'mutations'] -slug: /operations/system-tables/mutations -title: 'system.mutations' -doc_type: 'reference' ---- - -## Description {#description} - -The table contains information about [mutations](/reference/statements/alter#mutations) of [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables and their progress. Each mutation command is represented by a single row. - -## Columns: {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — The name of the database to which the mutation was applied. -- `table` ([String](/reference/data-types)) — The name of the table to which the mutation was applied. -- `mutation_id` ([String](/reference/data-types)) — The ID of the mutation. For replicated tables these IDs correspond to znode names in the `/mutations/` directory in ClickHouse Keeper. For non-replicated tables the IDs correspond to file names in the data directory of the table. -- `command` ([String](/reference/data-types)) — The mutation command string (the part of the query after ALTER TABLE [db.]table). -- `create_time` ([DateTime](/reference/data-types)) — Date and time when the mutation command was submitted for execution. -- `block_numbers.partition_id` ([Array(String)](/reference/data-types)) — For mutations of replicated tables, the array contains the partitions' IDs (one record for each partition). For mutations of non-replicated tables the array is empty. -- `block_numbers.number` ([Array(Int64)](/reference/data-types)) — For mutations of replicated tables, the array contains one record for each partition, with the block number that was acquired by the mutation. Only parts that contain blocks with numbers less than this number will be mutated in the partition.In non-replicated tables, block numbers in all partitions form a single sequence. This means that for mutations of non-replicated tables, the column will contain one record with a single block number acquired by the mutation. -- `parts_in_progress_names` ([Array(String)](/reference/data-types)) — An array of names of data parts that are currently being mutated. -- `parts_to_do_names` ([Array(String)](/reference/data-types)) — An array of names of data parts that need to be mutated for the mutation to complete. -- `parts_to_do` ([Int64](/reference/data-types)) — The number of data parts that need to be mutated for the mutation to complete. Note: even if `parts_to_do` = 0, a mutation of a replicated table may not be completed yet due to a long-running INSERT that is creating a new data part that will need to be mutated. -- `parts_postpone_reasons` ([Map(String, String)](/reference/data-types)) — A map of part names to reasons why they are postponed. -- `is_done` ([UInt8](/reference/data-types)) — The flag whether the mutation is done or not. Possible values: 1 if the mutation is completed, 0 if the mutation is still in process. -- `is_killed` ([UInt8](/reference/data-types)) — Indicates whether a mutation has been killed. Only available in ClickHouse Cloud.Note: is_killed=1 does not necessarily mean the mutation is completely finalized.It is possible for a mutation to remain in a state where is_killed=1 and is_done=0 for an extended period.This can occur if another long-running mutation is blocking the killed mutation. This is a normal situation. -- `latest_failed_part` ([String](/reference/data-types)) — The name of the most recent part that could not be mutated. -- `latest_fail_time` ([DateTime](/reference/data-types)) — The date and time of the most recent part mutation failure. -- `latest_fail_reason` ([String](/reference/data-types)) — The exception message that caused the most recent part mutation failure. -- `latest_fail_error_code_name` ([String](/reference/data-types)) — The error code of the exception that caused the most recent part mutation failure. -{/*AUTOGENERATED_END*/} - - -- If a part name is not in `parts_postpone_reasons` and has not yet been mutated, it means the part is yet not scheduled for mutation. -- The part name `all_parts` represents all parts that have not yet been mutated. - - -- `is_killed` ([UInt8](/reference/data-types/int-uint)) — Indicates whether a mutation has been killed. **Only available in ClickHouse Cloud.** - - -`is_killed=1` does not necessarily mean the mutation is completely finalized. It is possible for a mutation to remain in a state where `is_killed=1` and `is_done=0` for an extended period. This can happen if another long-running mutation is blocking the killed mutation. This is a normal situation. - - -- `is_done` ([UInt8](/reference/data-types/int-uint)) — The flag whether the mutation is done or not. Possible values: - - `1` if the mutation is completed, - - `0` if the mutation is still in process. - - -Even if `parts_to_do = 0` it is possible that a mutation of a replicated table is not completed yet because of a long-running `INSERT` query, that will create a new data part needed to be mutated. - - -If there were problems with mutating some data parts, the following columns contain additional information: - -- `latest_failed_part` ([String](/reference/data-types/string)) — The name of the most recent part that could not be mutated. -- `latest_fail_time` ([DateTime](/reference/data-types/datetime)) — The date and time of the most recent part mutation failure. -- `latest_fail_reason` ([String](/reference/data-types/string)) — The exception message that caused the most recent part mutation failure. - -## Monitoring Mutations {#monitoring-mutations} - -To track the progress on the `system.mutations` table, use the following query: - -```sql -SELECT * FROM clusterAllReplicas('cluster_name', 'system', 'mutations') -WHERE is_done = 0 AND table = 'tmp'; - --- or - -SELECT * FROM clusterAllReplicas('cluster_name', 'system.mutations') -WHERE is_done = 0 AND table = 'tmp'; -``` - -Note: this requires read permissions on the `system.*` tables. - - -**Cloud usage** - -In ClickHouse Cloud the `system.mutations` table on each node has all the mutations in the cluster, and there is no need for `clusterAllReplicas`. - - -## See Also {#see-also} - -- [Mutations](/reference/statements/alter#mutations) -- [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) table engine -- [ReplicatedMergeTree](/reference/engines/table-engines/mergetree-family/replication) family diff --git a/reference/system-tables/opentelemetry_span_log.mdx b/reference/system-tables/opentelemetry_span_log.mdx deleted file mode 100644 index 178a6868..00000000 --- a/reference/system-tables/opentelemetry_span_log.mdx +++ /dev/null @@ -1,62 +0,0 @@ ---- -description: 'System table containing information about trace spans for executed queries.' -keywords: ['system table', 'opentelemetry_span_log'] -slug: /operations/system-tables/opentelemetry_span_log -title: 'system.opentelemetry_span_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about [trace spans](https://opentracing.io/docs/overview/spans/) for executed queries. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — The hostname where this span was captured. -- `trace_id` ([UUID](/reference/data-types/uuid)) — ID of the trace for executed query. -- `span_id` ([UInt64](/reference/data-types/int-uint)) — ID of the trace span. -- `parent_span_id` ([UInt64](/reference/data-types/int-uint)) — ID of the parent trace span. -- `operation_name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — The name of the operation. -- `kind` ([Enum8('INTERNAL' = 0, 'SERVER' = 1, 'CLIENT' = 2, 'PRODUCER' = 3, 'CONSUMER' = 4)](/reference/data-types/enum)) — The SpanKind of the span. INTERNAL — Indicates that the span represents an internal operation within an application. SERVER — Indicates that the span covers server-side handling of a synchronous RPC or other remote request. CLIENT — Indicates that the span describes a request to some remote service. PRODUCER — Indicates that the span describes the initiators of an asynchronous request. This parent span will often end before the corresponding child CONSUMER span, possibly even before the child span starts. CONSUMER - Indicates that the span describes a child of an asynchronous PRODUCER request. -- `start_time_us` ([UInt64](/reference/data-types/int-uint)) — The start time of the trace span (in microseconds). -- `finish_time_us` ([UInt64](/reference/data-types/int-uint)) — The finish time of the trace span (in microseconds). -- `finish_date` ([Date](/reference/data-types/date)) — The finish date of the trace span. -- `status_code` ([Enum8('UNSET' = 0, 'OK' = 1, 'ERROR' = 2)](/reference/data-types/enum)) — The status code of the span. -- `status_message` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Error message. -- `attribute` ([Map(LowCardinality(String), String)](/reference/data-types/map)) — Attribute depending on the trace span. They are filled in according to the recommendations in the OpenTelemetry standard. - -**Aliases:** - -- `attribute.names` — Alias for `mapKeys(attribute)`. -- `attribute.values` — Alias for `mapValues(attribute)`. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql title="Query" -SELECT * FROM system.opentelemetry_span_log LIMIT 1 FORMAT Vertical; -``` - -```text title="Response" -Row 1: -────── -trace_id: cdab0847-0d62-61d5-4d38-dd65b19a1914 -span_id: 701487461015578150 -parent_span_id: 2991972114672045096 -operation_name: DB::Block DB::InterpreterSelectQuery::getSampleBlockImpl() -kind: INTERNAL -start_time_us: 1612374594529090 -finish_time_us: 1612374594529108 -finish_date: 2021-02-03 -attribute.names: [] -attribute.values: [] -``` - -## See Also {#see-also} - -- [OpenTelemetry](/guides/oss/deployment-and-scaling/monitoring/opentelemetry) diff --git a/reference/system-tables/part_log.mdx b/reference/system-tables/part_log.mdx deleted file mode 100644 index 9d93997d..00000000 --- a/reference/system-tables/part_log.mdx +++ /dev/null @@ -1,105 +0,0 @@ ---- -description: 'System table containing information about events that occurred with - data parts in the MergeTree family tables, such as adding or merging of data.' -keywords: ['system table', 'part_log'] -slug: /operations/system-tables/part_log -title: 'system.part_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -The `system.part_log` table is created only if the [part_log](/reference/settings/server-settings/settings#part_log) server setting is specified. - -This table contains information about events that occurred with [data parts](/reference/engines/table-engines/mergetree-family/custom-partitioning-key) in the [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) family tables, such as adding or merging data. - -The `system.part_log` table contains the following columns: - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `query_id` ([String](/reference/data-types/string)) — Identifier of the INSERT query that created this data part. -- `event_type` ([Enum8('NewPart' = 1, 'MergeParts' = 2, 'DownloadPart' = 3, 'RemovePart' = 4, 'MutatePart' = 5, 'MovePart' = 6, 'MergePartsStart' = 7, 'MutatePartStart' = 8)](/reference/data-types/enum)) — Type of the event that occurred with the data part. Can have one of the following values: NewPart — Inserting of a new data part, MergePartsStart — Merging of data parts has started, MergeParts — Merging of data parts has finished, DownloadPart — Downloading a data part, RemovePart — Removing or detaching a data part using [DETACH PARTITION](/reference/statements/alter/partition#detach-partitionpart).MutatePartStart — Mutating of a data part has started, MutatePart — Mutating of a data part has finished, MovePart — Moving the data part from the one disk to another one. -- `merge_reason` ([Enum8('NotAMerge' = 1, 'RegularMerge' = 2, 'TTLDeleteMerge' = 3, 'TTLRecompressMerge' = 4, 'TTLDropMerge' = 5)](/reference/data-types/enum)) — The reason for the event with type MERGE_PARTS. Can have one of the following values: NotAMerge — The current event has the type other than MERGE_PARTS, RegularMerge — Some regular merge, TTLDeleteMerge, TTLDropMerge — Cleaning up expired data. TTLRecompressMerge — Recompressing data part with the. -- `merge_algorithm` ([Enum8('Undecided' = 0, 'Vertical' = 1, 'Horizontal' = 2)](/reference/data-types/enum)) — Merge algorithm for the event with type MERGE_PARTS. Can have one of the following values: Undecided, Horizontal, Vertical -- `event_date` ([Date](/reference/data-types/date)) — Event date. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Event time with microseconds precision. -- `duration_ms` ([UInt64](/reference/data-types/int-uint)) — Duration of this operation. -- `database` ([String](/reference/data-types/string)) — Name of the database the data part is in. -- `table` ([String](/reference/data-types/string)) — Name of the table the data part is in. -- `table_uuid` ([UUID](/reference/data-types/uuid)) — UUID of the table the data part belongs to. -- `part_name` ([String](/reference/data-types/string)) — Name of the data part. -- `partition_id` ([String](/reference/data-types/string)) — ID of the partition that the data part was inserted to. The column takes the `all` value if the partitioning is by `tuple()`. -- `partition` ([String](/reference/data-types/string)) — The partition name. -- `part_type` ([String](/reference/data-types/string)) — The type of the part. Possible values: Wide and Compact. -- `part_storage_type` ([String](/reference/data-types/string)) — The type of DataPartStorage. Possible values: Packed - all files are stored in a single blob, Full - a blob per file. -- `disk_name` ([String](/reference/data-types/string)) — The disk name data part lies on. -- `path_on_disk` ([String](/reference/data-types/string)) — Absolute path to the folder with data part files. -- `rows` ([UInt64](/reference/data-types/int-uint)) — The number of rows in the data part. -- `size_in_bytes` ([UInt64](/reference/data-types/int-uint)) — Size of the data part on disk in bytes. -- `merged_from` ([Array(String)](/reference/data-types/array)) — An array of the source parts names which the current part was made up from. -- `bytes_uncompressed` ([UInt64](/reference/data-types/int-uint)) — Uncompressed size of the resulting part in bytes. -- `read_rows` ([UInt64](/reference/data-types/int-uint)) — The number of rows was read during the merge. -- `read_bytes` ([UInt64](/reference/data-types/int-uint)) — The number of bytes was read during the merge. -- `peak_memory_usage` ([UInt64](/reference/data-types/int-uint)) — The maximum amount of used during merge RAM -- `deduplication_block_ids` ([Array(String)](/reference/data-types/array)) — An array of block IDs used for deduplication when inserting this part. -- `error` ([UInt16](/reference/data-types/int-uint)) — The error code of the occurred exception. -- `exception` ([String](/reference/data-types/string)) — Text message of the occurred error. -- `mutation_ids` ([Array(String)](/reference/data-types/array)) — An array of mutation IDs applied to the source part (merged_from) for the event with type MUTATE_PART_START and MUTATE_PART. -- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/reference/data-types/map)) — All the profile events captured during this operation. -- `projections_duration_ms` ([Map(LowCardinality(String), UInt64)](/reference/data-types/map)) — Per-projection merge/rebuild duration in milliseconds. - -**Aliases:** - -- `ProfileEvents.Names` — Alias for `mapKeys(ProfileEvents)`. -- `ProfileEvents.Values` — Alias for `mapValues(ProfileEvents)`. -- `name` — Alias for `part_name`. -{/*AUTOGENERATED_END*/} - -The `system.part_log` table is created after the first inserting data to the `MergeTree` table. - -## Example {#example} - -```sql -SELECT * FROM system.part_log LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -hostname: clickhouse.eu-central1.internal -query_id: -event_type: MergeParts -merge_reason: RegularMerge -merge_algorithm: Vertical -event_date: 2025-07-19 -event_time: 2025-07-19 23:54:19 -event_time_microseconds: 2025-07-19 23:54:19.710761 -duration_ms: 2158 -database: default -table: github_events -table_uuid: 1ad33424-f5f5-402b-ac03-ec82282634ab -part_name: all_1_7_1 -partition_id: all -partition: tuple() -part_type: Wide -disk_name: default -path_on_disk: ./data/store/1ad/1ad33424-f5f5-402b-ac03-ec82282634ab/all_1_7_1/ -rows: 3285726 -- 3.29 million -size_in_bytes: 438968542 -- 438.97 million -merged_from: ['all_1_1_0','all_2_2_0','all_3_3_0','all_4_4_0','all_5_5_0','all_6_6_0','all_7_7_0'] -bytes_uncompressed: 1373137767 -- 1.37 billion -read_rows: 3285726 -- 3.29 million -read_bytes: 1429206946 -- 1.43 billion -peak_memory_usage: 303611887 -- 303.61 million -error: 0 -exception: -mutation_ids: -ProfileEvents: {'FileOpen':703,'ReadBufferFromFileDescriptorRead':3824,'ReadBufferFromFileDescriptorReadBytes':439601681,'WriteBufferFromFileDescriptorWrite':592,'WriteBufferFromFileDescriptorWriteBytes':438988500,'ReadCompressedBytes':439601681,'CompressedReadBufferBlocks':6314,'CompressedReadBufferBytes':1539835748,'OpenedFileCacheHits':50,'OpenedFileCacheMisses':484,'OpenedFileCacheMicroseconds':222,'IOBufferAllocs':1914,'IOBufferAllocBytes':319810140,'ArenaAllocChunks':8,'ArenaAllocBytes':131072,'MarkCacheMisses':7,'CreatedReadBufferOrdinary':534,'DiskReadElapsedMicroseconds':139058,'DiskWriteElapsedMicroseconds':51639,'AnalyzePatchRangesMicroseconds':28,'ExternalProcessingFilesTotal':1,'RowsReadByMainReader':170857759,'WaitMarksLoadMicroseconds':988,'LoadedMarksFiles':7,'LoadedMarksCount':14,'LoadedMarksMemoryBytes':728,'Merge':2,'MergeSourceParts':14,'MergedRows':3285733,'MergedColumns':4,'GatheredColumns':51,'MergedUncompressedBytes':1429207058,'MergeTotalMilliseconds':2158,'MergeExecuteMilliseconds':2155,'MergeHorizontalStageTotalMilliseconds':145,'MergeHorizontalStageExecuteMilliseconds':145,'MergeVerticalStageTotalMilliseconds':2008,'MergeVerticalStageExecuteMilliseconds':2006,'MergeProjectionStageTotalMilliseconds':5,'MergeProjectionStageExecuteMilliseconds':4,'MergingSortedMilliseconds':7,'GatheringColumnMilliseconds':56,'ContextLock':2091,'PartsLockHoldMicroseconds':77,'PartsLockWaitMicroseconds':1,'RealTimeMicroseconds':2157475,'CannotWriteToWriteBufferDiscard':36,'LogTrace':6,'LogDebug':59,'LoggerElapsedNanoseconds':514040,'ConcurrencyControlSlotsGranted':53,'ConcurrencyControlSlotsAcquired':53} -``` diff --git a/reference/system-tables/part_moves_between_shards.mdx b/reference/system-tables/part_moves_between_shards.mdx deleted file mode 100644 index 002005be..00000000 --- a/reference/system-tables/part_moves_between_shards.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -description: 'Contains information about parts which are currently in a process of moving between shards and their progress.' -keywords: ['system table', 'part_moves_between_shards'] -slug: /operations/system-tables/part_moves_between_shards -title: 'system.part_moves_between_shards' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about parts which are currently in a process of moving between shards and their progress. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — The name of the database where move is performed. -- `table` ([String](/reference/data-types)) — The name of the table where move is performed. -- `task_name` ([String](/reference/data-types)) — The name of the moving task. -- `task_uuid` ([UUID](/reference/data-types)) — The identifier of the moving task. -- `create_time` ([DateTime](/reference/data-types)) — The time when the task was created. -- `part_name` ([String](/reference/data-types)) — The name of the part which is in a process of moving. -- `part_uuid` ([UUID](/reference/data-types)) — The UUID of the part which is in a process of moving. -- `to_shard` ([String](/reference/data-types)) — The name of the destination shard. -- `dst_part_name` ([String](/reference/data-types)) — The result part name. -- `update_time` ([DateTime](/reference/data-types)) — The last time update was performed. -- `state` ([String](/reference/data-types)) — The current state of the move. -- `rollback` ([UInt8](/reference/data-types)) — The flag which indicated whether the operation was rolled back. -- `num_tries` ([UInt32](/reference/data-types)) — The number of tries to complete the operation. -- `last_exception` ([String](/reference/data-types)) — The last exception name if any. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/parts.mdx b/reference/system-tables/parts.mdx deleted file mode 100644 index 350f399a..00000000 --- a/reference/system-tables/parts.mdx +++ /dev/null @@ -1,154 +0,0 @@ ---- -description: 'System table containing information about parts of MergeTree' -keywords: ['system table', 'parts'] -slug: /operations/system-tables/parts -title: 'system.parts' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about parts of [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables. - -Each row describes one data part. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `partition` ([String](/reference/data-types)) — Partition identifier (string representation derived from the table partition key expression). -- `name` ([String](/reference/data-types)) — -Name of the data part. The part naming structure can be used to determine many aspects of the data, ingest, and merge patterns. The part naming format is the following: - -```text -____ -``` - -* Definitions: - - `partition_id` - identifies the partition key - - `minimum_block_number` - identifies the minimum block number in the part. ClickHouse always merges continuous blocks - - `maximum_block_number` - identifies the maximum block number in the part - - `level` - incremented by one with each additional merge on the part. A level of 0 indicates this is a new part that has not been merged. It is important to remember that all parts in ClickHouse are always immutable - - `data_version` - optional value, incremented when a part is mutated (again, mutated data is always only written to a new part, since parts are immutable) - -- `uuid` ([UUID](/reference/data-types)) — The UUID of data part. -- `part_type` ([String](/reference/data-types)) — The data part storing format. Possible values: `Wide` — each column is stored in a separate file, `Compact` — all columns are stored in one file. Data storing format is controlled by the `min_bytes_for_wide_part` and `min_rows_for_wide_part` settings of the MergeTree table. -- `active` ([UInt8](/reference/data-types)) — Flag that indicates whether the data part is active. If a data part is active, it's used in a table. Otherwise, it's about to be deleted. Inactive data parts appear after merging and mutating operations. -- `marks` ([UInt64](/reference/data-types)) — The number of marks. To get the approximate number of rows in a data part, multiply marks by the index granularity (usually 8192) (this hint does not work for adaptive granularity). -- `rows` ([UInt64](/reference/data-types)) — The number of rows. -- `files` ([UInt64](/reference/data-types)) — The number of files in the data part. -- `bytes_on_disk` ([UInt64](/reference/data-types)) — Total size of all the data part files in bytes. -- `data_compressed_bytes` ([UInt64](/reference/data-types)) — Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included. -- `data_uncompressed_bytes` ([UInt64](/reference/data-types)) — Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included. -- `primary_key_size` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) used by primary key values in the primary.idx/cidx file on disk. -- `marks_bytes` ([UInt64](/reference/data-types)) — The size of the file with marks. -- `secondary_indices_compressed_bytes` ([UInt64](/reference/data-types)) — Total size of compressed data for secondary indices in the data part. All the auxiliary files (for example, files with marks) are not included. -- `secondary_indices_uncompressed_bytes` ([UInt64](/reference/data-types)) — Total size of uncompressed data for secondary indices in the data part. All the auxiliary files (for example, files with marks) are not included. -- `secondary_indices_marks_bytes` ([UInt64](/reference/data-types)) — The size of the file with marks for secondary indices. -- `modification_time` ([DateTime](/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation. -- `remove_time` ([DateTime](/reference/data-types)) — The time when the data part became inactive. -- `refcount` ([UInt32](/reference/data-types)) — The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges. -- `min_date` ([Date](/reference/data-types)) — The minimum value of the date key in the data part. -- `max_date` ([Date](/reference/data-types)) — The maximum value of the date key in the data part. -- `min_time` ([DateTime](/reference/data-types)) — The minimum value of the date and time key in the data part. -- `max_time` ([DateTime](/reference/data-types)) — The maximum value of the date and time key in the data part. -- `partition_id` ([String](/reference/data-types)) — ID of the partition. -- `min_block_number` ([Int64](/reference/data-types)) — The minimum number of data parts that make up the current part after merging. -- `max_block_number` ([Int64](/reference/data-types)) — The maximum number of data parts that make up the current part after merging. -- `level` ([UInt32](/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. -- `data_version` ([UInt64](/reference/data-types)) — Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than data_version). -- `primary_key_bytes_in_memory` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) used by primary key values. Will be 0 when `primary_key_lazy_load` is enabled and the key is not loaded. When non-zero the bytes live in the part itself and are accounted within `jemalloc.mergetree_arena.active_bytes`. They are NEVER counted in `PrimaryIndexCacheBytes` — those are mutually exclusive per part: an index lives either in the part (this metric) or in the shared `PrimaryIndexCache` (the other), depending on `primary_key_lazy_load` and `use_primary_key_cache`. -- `primary_key_bytes_in_memory_allocated` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) reserved for primary key values. Will be 0 when `primary_key_lazy_load` is enabled and the key is not loaded. When non-zero, included in `jemalloc.mergetree_arena.active_bytes`. See the note on `primary_key_bytes_in_memory` for the relationship with `PrimaryIndexCacheBytes`. -- `index_granularity_bytes_in_memory` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) used by index granularity values (will be 0 in case of primary_key_lazy_load=1 and use_primary_key_cache=1). When non-zero the bytes are part-owned and accounted within `jemalloc.mergetree_arena.active_bytes`. -- `index_granularity_bytes_in_memory_allocated` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) reserved for index granularity values (will be 0 in case of primary_key_lazy_load=1 and use_primary_key_cache=1). When non-zero, included in `jemalloc.mergetree_arena.active_bytes`. -- `is_frozen` ([UInt8](/reference/data-types)) — Flag that shows that a partition data backup exists. 1, the backup exists. 0, the backup does not exist. For more details, see FREEZE PARTITION. -- `database` ([String](/reference/data-types)) — Name of the database. -- `table` ([String](/reference/data-types)) — Name of the table. -- `engine` ([String](/reference/data-types)) — Name of the table engine without parameters. -- `disk_name` ([String](/reference/data-types)) — Name of a disk that stores the data part. -- `path` ([String](/reference/data-types)) — Absolute path to the folder with data part files. -- `hash_of_all_files` ([String](/reference/data-types)) — sipHash128 of compressed files. -- `hash_of_uncompressed_files` ([String](/reference/data-types)) — sipHash128 of uncompressed files (files with marks, index file etc.). -- `uncompressed_hash_of_compressed_files` ([String](/reference/data-types)) — sipHash128 of data in the compressed files as if they were uncompressed. -- `delete_ttl_info_min` ([DateTime](/reference/data-types)) — The minimum value of the date and time key for TTL DELETE rule. -- `delete_ttl_info_max` ([DateTime](/reference/data-types)) — The maximum value of the date and time key for TTL DELETE rule. -- `move_ttl_info.expression` ([Array(String)](/reference/data-types)) — Array of expressions. Each expression defines a TTL MOVE rule. -- `move_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — Array of date and time values. Each element describes the minimum key value for a TTL MOVE rule. -- `move_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — Array of date and time values. Each element describes the maximum key value for a TTL MOVE rule. -- `default_compression_codec` ([String](/reference/data-types)) — The name of the codec used to compress this data part (in case when there is no explicit codec for columns). -- `recompression_ttl_info.expression` ([Array(String)](/reference/data-types)) — The TTL expression. -- `recompression_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. -- `recompression_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. -- `group_by_ttl_info.expression` ([Array(String)](/reference/data-types)) — The TTL expression. -- `group_by_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. -- `group_by_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. -- `rows_where_ttl_info.expression` ([Array(String)](/reference/data-types)) — The TTL expression. -- `rows_where_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. -- `rows_where_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. -- `projections` ([Array(String)](/reference/data-types)) — The list of projection names calculated for this part. -- `visible` ([UInt8](/reference/data-types)) — Flag which indicated whether this part is visible for SELECT queries. -- `creation_tid` ([Tuple(UInt64, UInt64, UUID)](/reference/data-types)) — ID of transaction that has created/is trying to create this object. -- `removal_tid_lock` ([UInt64](/reference/data-types)) — Hash of removal_tid, used to lock an object for removal. -- `removal_tid` ([Tuple(UInt64, UInt64, UUID)](/reference/data-types)) — ID of transaction that has removed/is trying to remove this object -- `creation_csn` ([UInt64](/reference/data-types)) — CSN of transaction that has created this object -- `removal_csn` ([UInt64](/reference/data-types)) — CSN of transaction that has removed this object -- `has_lightweight_delete` ([UInt8](/reference/data-types)) — The flag which indicated whether the part has lightweight delete mask. -- `last_removal_attempt_time` ([DateTime](/reference/data-types)) — The last time the server tried to delete this part. -- `removal_state` ([String](/reference/data-types)) — The current state of part removal process. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.parts LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -partition: tuple() -name: all_1_4_1_6 -part_type: Wide -active: 1 -marks: 2 -rows: 6 -bytes_on_disk: 310 -data_compressed_bytes: 157 -data_uncompressed_bytes: 91 -secondary_indices_compressed_bytes: 58 -secondary_indices_uncompressed_bytes: 6 -secondary_indices_marks_bytes: 48 -marks_bytes: 144 -modification_time: 2020-06-18 13:01:49 -remove_time: 1970-01-01 00:00:00 -refcount: 1 -min_date: 1970-01-01 -max_date: 1970-01-01 -min_time: 1970-01-01 00:00:00 -max_time: 1970-01-01 00:00:00 -partition_id: all -min_block_number: 1 -max_block_number: 4 -level: 1 -data_version: 6 -primary_key_bytes_in_memory: 8 -primary_key_bytes_in_memory_allocated: 64 -is_frozen: 0 -database: default -table: months -engine: MergeTree -disk_name: default -path: /var/lib/clickhouse/data/default/months/all_1_4_1_6/ -hash_of_all_files: 2d0657a16d9430824d35e327fcbd87bf -hash_of_uncompressed_files: 84950cc30ba867c77a408ae21332ba29 -uncompressed_hash_of_compressed_files: 1ad78f1c6843bbfb99a2c931abe7df7d -delete_ttl_info_min: 1970-01-01 00:00:00 -delete_ttl_info_max: 1970-01-01 00:00:00 -move_ttl_info.expression: [] -move_ttl_info.min: [] -move_ttl_info.max: [] -``` - -## See Also {#see-also} - -- [MergeTree family](/reference/engines/table-engines/mergetree-family/mergetree) -- [TTL for Columns and Tables](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) diff --git a/reference/system-tables/parts_columns.mdx b/reference/system-tables/parts_columns.mdx deleted file mode 100644 index df143539..00000000 --- a/reference/system-tables/parts_columns.mdx +++ /dev/null @@ -1,127 +0,0 @@ ---- -description: 'System table containing information about parts and columns of MergeTree - tables.' -keywords: ['system table', 'parts_columns'] -slug: /operations/system-tables/parts_columns -title: 'system.parts_columns' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about parts and columns of [MergeTree](/reference/engines/table-engines/mergetree-family/mergetree) tables. -Each row describes one data part. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `partition` ([String](/reference/data-types)) — The partition name. -- `name` ([String](/reference/data-types)) — Name of the data part. -- `uuid` ([UUID](/reference/data-types)) — The parts UUID. -- `part_type` ([String](/reference/data-types)) — The data part storing format. Possible values: Wide — Each column is stored in a separate file in a filesystem, Compact — All columns are stored in one file in a filesystem. -- `active` ([UInt8](/reference/data-types)) — Flag that indicates whether the data part is active. If a data part is active, it's used in a table. Otherwise, it's deleted. Inactive data parts remain after merging. -- `marks` ([UInt64](/reference/data-types)) — The number of marks. To get the approximate number of rows in a data part, multiply marks by the index granularity (usually 8192) (this hint does not work for adaptive granularity). -- `rows` ([UInt64](/reference/data-types)) — The number of rows. -- `bytes_on_disk` ([UInt64](/reference/data-types)) — Total size of all the data part files in bytes. -- `data_compressed_bytes` ([UInt64](/reference/data-types)) — Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included. -- `data_uncompressed_bytes` ([UInt64](/reference/data-types)) — Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included. -- `marks_bytes` ([UInt64](/reference/data-types)) — The size of the file with marks. -- `modification_time` ([DateTime](/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation. -- `remove_time` ([DateTime](/reference/data-types)) — The time when the data part became inactive. -- `refcount` ([UInt32](/reference/data-types)) — The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges. -- `min_date` ([Date](/reference/data-types)) — The minimum value for the Date column if that is included in the partition key. -- `max_date` ([Date](/reference/data-types)) — The maximum value for the Date column if that is included in the partition key. -- `min_time` ([DateTime](/reference/data-types)) — The minimum value for the DateTime column if that is included in the partition key. -- `max_time` ([DateTime](/reference/data-types)) — The maximum value for the DateTime column if that is included in the partition key. -- `partition_id` ([String](/reference/data-types)) — ID of the partition. -- `min_block_number` ([Int64](/reference/data-types)) — The minimum number of data parts that make up the current part after merging. -- `max_block_number` ([Int64](/reference/data-types)) — The maximum number of data parts that make up the current part after merging. -- `level` ([UInt32](/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. -- `data_version` ([UInt64](/reference/data-types)) — Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than data_version). -- `primary_key_bytes_in_memory` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) used by primary key values. -- `primary_key_bytes_in_memory_allocated` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) reserved for primary key values. -- `database` ([String](/reference/data-types)) — Name of the database. -- `table` ([String](/reference/data-types)) — Name of the table. -- `engine` ([String](/reference/data-types)) — Name of the table engine without parameters. -- `disk_name` ([String](/reference/data-types)) — Name of a disk that stores the data part. -- `path` ([String](/reference/data-types)) — Absolute path to the folder with data part files. -- `column` ([String](/reference/data-types)) — Name of the column. -- `type` ([String](/reference/data-types)) — Column type. -- `column_position` ([UInt64](/reference/data-types)) — Ordinal position of a column in a table starting with 1. -- `default_kind` ([String](/reference/data-types)) — Expression type (DEFAULT, MATERIALIZED, ALIAS) for the default value, or an empty string if it is not defined. -- `default_expression` ([String](/reference/data-types)) — Expression for the default value, or an empty string if it is not defined. -- `column_bytes_on_disk` ([UInt64](/reference/data-types)) — Total size of the column in bytes. -- `column_data_compressed_bytes` ([UInt64](/reference/data-types)) — Total size of the compressed data in the column, in bytes. -- `column_data_uncompressed_bytes` ([UInt64](/reference/data-types)) — Total size of the decompressed data in the column, in bytes. -- `column_marks_bytes` ([UInt64](/reference/data-types)) — The size of the marks for column, in bytes. -- `column_modification_time` ([Nullable(DateTime)](/reference/data-types)) — The last time the column was modified. -- `column_ttl_min` ([Nullable(DateTime)](/reference/data-types)) — The minimum value of the calculated TTL expression of the column. -- `column_ttl_max` ([Nullable(DateTime)](/reference/data-types)) — The maximum value of the calculated TTL expression of the column. -- `statistics` ([Array(String)](/reference/data-types)) — The statistics of the column. -- `estimates.min` ([Nullable(String)](/reference/data-types)) — Estimated minimum value of the column. -- `estimates.max` ([Nullable(String)](/reference/data-types)) — Estimated maximum value of the column. -- `estimates.cardinality` ([Nullable(UInt64)](/reference/data-types)) — Estimated cardinality of the column. -- `estimates.null_count` ([Nullable(UInt64)](/reference/data-types)) — Estimated number of NULL values in the column. -- `serialization_kind` ([String](/reference/data-types)) — Kind of serialization of a column -- `substreams` ([Array(String)](/reference/data-types)) — Names of substreams to which column is serialized -- `filenames` ([Array(String)](/reference/data-types)) — Names of files for each substream of a column respectively -- `subcolumns.names` ([Array(String)](/reference/data-types)) — Names of subcolumns of a column -- `subcolumns.types` ([Array(String)](/reference/data-types)) — Types of subcolumns of a column -- `subcolumns.serializations` ([Array(String)](/reference/data-types)) — Kinds of serialization of subcolumns of a column -- `subcolumns.bytes_on_disk` ([Array(UInt64)](/reference/data-types)) — Sizes in bytes for each subcolumn -- `subcolumns.data_compressed_bytes` ([Array(UInt64)](/reference/data-types)) — Sizes of the compressed data for each subcolumn, in bytes -- `subcolumns.data_uncompressed_bytes` ([Array(UInt64)](/reference/data-types)) — Sizes of the decompressed data for each subcolumn, in bytes -- `subcolumns.marks_bytes` ([Array(UInt64)](/reference/data-types)) — Sizes of the marks for each subcolumn of a column, in bytes -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.parts_columns LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -partition: tuple() -name: all_1_2_1 -part_type: Wide -active: 1 -marks: 2 -rows: 2 -bytes_on_disk: 155 -data_compressed_bytes: 56 -data_uncompressed_bytes: 4 -marks_bytes: 96 -modification_time: 2020-09-23 10:13:36 -remove_time: 2106-02-07 06:28:15 -refcount: 1 -min_date: 1970-01-01 -max_date: 1970-01-01 -partition_id: all -min_block_number: 1 -max_block_number: 2 -level: 1 -data_version: 1 -primary_key_bytes_in_memory: 2 -primary_key_bytes_in_memory_allocated: 64 -database: default -table: 53r93yleapyears -engine: MergeTree -disk_name: default -path: /var/lib/clickhouse/data/default/53r93yleapyears/all_1_2_1/ -column: id -type: Int8 -column_position: 1 -default_kind: -default_expression: -column_bytes_on_disk: 76 -column_data_compressed_bytes: 28 -column_data_uncompressed_bytes: 2 -column_marks_bytes: 48 -``` - -## See Also {#see-also} - -- [MergeTree family](/reference/engines/table-engines/mergetree-family/mergetree) -- [Calculating the number and size of compact and wide parts](/resources/support-center/knowledge-base/troubleshooting/count-parts-by-type) diff --git a/reference/system-tables/predicate_statistics_log.mdx b/reference/system-tables/predicate_statistics_log.mdx deleted file mode 100644 index bd07670f..00000000 --- a/reference/system-tables/predicate_statistics_log.mdx +++ /dev/null @@ -1,90 +0,0 @@ ---- -description: 'System table containing sampled filter and index selectivity statistics - collected from `MergeTree` read pipelines during query execution.' -keywords: ['system table', 'predicate_statistics_log'] -slug: /operations/system-tables/predicate_statistics_log -title: 'system.predicate_statistics_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains sampled selectivity statistics collected while reading from `MergeTree` tables. The table is populated only when [`predicate_statistics_sample_rate`](/reference/settings/session-settings#predicate_statistics_sample_rate) is greater than `0`. - -Use this table to inspect how selective user predicates are in real workloads and how many granules remain after primary-key or skip-index filtering. The data is intended as input for workload-driven index and projection recommendations. - -## Row shapes {#row-shapes} - -A single query can produce two kinds of rows in `system.predicate_statistics_log`: - -- **Filter rows**, emitted per prewhere/filter step in `MergeTreeSelectProcessor`. They populate `predicate_expression`, `input_rows`, `passed_rows`, `filter_selectivity`, and the whole-predicate columns `total_input_rows`, `total_passed_rows`, `total_selectivity`. Index-related columns are empty. -- **Index rows**, emitted per read step in `ReadFromMergeTree`. They populate the `index_names`, `index_types`, `total_granules`, `granules_after`, and `index_selectivities` arrays, one entry per index stage (primary key, partition, skip indexes). Predicate-related columns are empty. - -Filter rows and index rows for the same query share the same `query_id` and `table`, so they can be joined when both are needed. - -## Sampling and overhead {#sampling-and-overhead} - -Sampling is controlled by [`predicate_statistics_sample_rate`](/reference/settings/session-settings#predicate_statistics_sample_rate): - -- `0` disables collection. -- `1` samples every query. -- `N > 1` samples approximately `1 / N` of queries, hashed by `query_id`. - -Lower values produce more data but add CPU work on the read path and more writes to the system log. After enabling the setting, use [`SYSTEM FLUSH LOGS`](/reference/statements/system#flush-logs) if you need rows to appear immediately. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Event date. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Timestamp when this log entry was written. -- `database` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Database name of the target table. -- `table` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Table name of the target table. -- `query_id` ([String](/reference/data-types/string)) — Query ID for linking back to query_log. -- `predicate_expression` ([String](/reference/data-types/string)) — Whole filter expression handled by this prewhere/filter step (ActionsDAG dump). -- `input_rows` ([UInt64](/reference/data-types/int-uint)) — Rows entering this prewhere/filter step. -- `passed_rows` ([UInt64](/reference/data-types/int-uint)) — Rows surviving this prewhere/filter step. -- `filter_selectivity` ([Float64](/reference/data-types/float)) — Selectivity of this step: passed_rows / input_rows. -- `total_input_rows` ([UInt64](/reference/data-types/int-uint)) — Rows entering the first prewhere step (total rows read from granules). -- `total_passed_rows` ([UInt64](/reference/data-types/int-uint)) — Rows surviving all prewhere steps (rows delivered to the query). -- `total_selectivity` ([Float64](/reference/data-types/float)) — Selectivity of the whole predicate: total_passed_rows / total_input_rows. -- `index_names` ([Array(LowCardinality(String))](/reference/data-types/array)) — Names of indexes applied, e.g. ['PrimaryKey', 'idx_bf_status'] (index rows only). -- `index_types` ([Array(LowCardinality(String))](/reference/data-types/array)) — Types of indexes applied: PrimaryKey, Skip, MinMax, Partition (index rows only). -- `total_granules` ([Array(UInt64)](/reference/data-types/array)) — Granules entering each index stage (index rows only). -- `granules_after` ([Array(UInt64)](/reference/data-types/array)) — Granules remaining after each index stage (index rows only). -- `index_selectivities` ([Array(Float64)](/reference/data-types/array)) — Per-index selectivity: granules_after / total_granules (index rows only). -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SET predicate_statistics_sample_rate = 1; - -SELECT * -FROM hits -WHERE URL LIKE '%/product/%' AND EventDate >= today() - 7 -FORMAT Null; - -SYSTEM FLUSH LOGS predicate_statistics_log; - -SELECT - query_id, - predicate_expression, - round(filter_selectivity, 3) AS step_selectivity, - round(total_selectivity, 3) AS query_selectivity, - index_names, - index_selectivities -FROM system.predicate_statistics_log -WHERE table = 'hits' -ORDER BY event_time DESC -LIMIT 10; -``` - -## See also {#see-also} - -- [`predicate_statistics_sample_rate`](/reference/settings/session-settings#predicate_statistics_sample_rate) -- [system.query_log](/reference/system-tables/query_log) diff --git a/reference/system-tables/processes.mdx b/reference/system-tables/processes.mdx deleted file mode 100644 index 23b54454..00000000 --- a/reference/system-tables/processes.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -description: 'System table used for implementing the `SHOW PROCESSLIST` query.' -keywords: ['system table', 'processes'] -slug: /operations/system-tables/processes -title: 'system.processes' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -This system table is used for implementing the `SHOW PROCESSLIST` query. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `is_initial_query` ([UInt8](/reference/data-types)) — Whether this query comes directly from user or was issues by ClickHouse server in a scope of distributed query execution. -- `user` ([String](/reference/data-types)) — The user who made the query. Keep in mind that for distributed processing, queries are sent to remote servers under the default user. The field contains the username for a specific query, not for a query that this query initiated. -- `query_id` ([String](/reference/data-types)) — Query ID, if defined. -- `address` ([IPv6](/reference/data-types)) — The IP address the query was made from. The same for distributed processing. To track where a distributed query was originally made from, look at system.processes on the query requestor server. -- `port` ([UInt16](/reference/data-types)) — The client port the query was made from. -- `initial_user` ([String](/reference/data-types)) — Name of the user who ran the initial query (for distributed query execution). -- `initial_query_id` ([String](/reference/data-types)) — ID of the initial query (for distributed query execution). -- `initial_address` ([IPv6](/reference/data-types)) — IP address that the parent query was launched from. -- `initial_port` ([UInt16](/reference/data-types)) — The client port that was used to make the parent query. -- `interface` ([UInt8](/reference/data-types)) — The interface which was used to send the query. TCP = 1, HTTP = 2, GRPC = 3, MYSQL = 4, POSTGRESQL = 5, LOCAL = 6, TCP_INTERSERVER = 7. -- `os_user` ([String](/reference/data-types)) — Operating system username who runs clickhouse-client. -- `client_hostname` ([String](/reference/data-types)) — Hostname of the client machine where the clickhouse-client or another TCP client is run. -- `client_name` ([String](/reference/data-types)) — The clickhouse-client or another TCP client name. -- `client_revision` ([UInt64](/reference/data-types)) — Revision of the clickhouse-client or another TCP client. -- `client_version_major` ([UInt64](/reference/data-types)) — Major version of the clickhouse-client or another TCP client. -- `client_version_minor` ([UInt64](/reference/data-types)) — Minor version of the clickhouse-client or another TCP client. -- `client_version_patch` ([UInt64](/reference/data-types)) — Patch component of the clickhouse-client or another TCP client version. -- `http_method` ([UInt8](/reference/data-types)) — HTTP method that initiated the query. Possible values: 0 — The query was launched from the TCP interface. 1 — GET method was used. 2 — POST method was used. -- `http_user_agent` ([String](/reference/data-types)) — HTTP header UserAgent passed in the HTTP query. -- `http_referer` ([String](/reference/data-types)) — HTTP header Referer passed in the HTTP query (contains an absolute or partial address of the page making the query). -- `forwarded_for` ([String](/reference/data-types)) — HTTP header X-Forwarded-For passed in the HTTP query. -- `quota_key` ([String](/reference/data-types)) — The quota key specified in the quotas setting (see keyed). -- `distributed_depth` ([UInt64](/reference/data-types)) — The number of times query was retransmitted between server nodes internally. -- `elapsed` ([Float64](/reference/data-types)) — The time in seconds since request execution started. -- `is_cancelled` ([UInt8](/reference/data-types)) — Was query cancelled. -- `is_all_data_sent` ([UInt8](/reference/data-types)) — Was all data sent to the client (in other words query had been finished on the server). -- `read_rows` ([UInt64](/reference/data-types)) — The number of rows read from the table. For distributed processing, on the requestor server, this is the total for all remote servers. -- `read_bytes` ([UInt64](/reference/data-types)) — The number of uncompressed bytes read from the table. For distributed processing, on the requestor server, this is the total for all remote servers. -- `total_rows_approx` ([UInt64](/reference/data-types)) — The approximation of the total number of rows that should be read. For distributed processing, on the requestor server, this is the total for all remote servers. It can be updated during request processing, when new sources to process become known. -- `written_rows` ([UInt64](/reference/data-types)) — The amount of rows written to the storage. -- `written_bytes` ([UInt64](/reference/data-types)) — The amount of bytes written to the storage. -- `memory_usage` ([Int64](/reference/data-types)) — Amount of RAM the query uses. It might not include some types of dedicated memory -- `peak_memory_usage` ([Int64](/reference/data-types)) — The current peak of memory usage. -- `query` ([String](/reference/data-types)) — The query text. For INSERT, it does not include the data to insert. -- `normalized_query_hash` ([UInt64](/reference/data-types)) — A numeric hash value, such as it is identical for queries differ only by values of literals. -- `query_kind` ([String](/reference/data-types)) — The type of the query - SELECT, INSERT, etc. -- `thread_ids` ([Array(UInt64)](/reference/data-types)) — The list of identifiers of all threads which participated in this query. -- `peak_threads_usage` ([UInt64](/reference/data-types)) — Maximum count of simultaneous threads executing the query. -- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/reference/data-types)) — ProfileEvents calculated for this query. -- `Settings` ([Map(LowCardinality(String), LowCardinality(String))](/reference/data-types)) — The list of modified user-level settings. -- `current_database` ([String](/reference/data-types)) — The name of the current database. -- `is_internal` ([UInt8](/reference/data-types)) — Indicates whether it is an auxiliary query executed internally. -{/*AUTOGENERATED_END*/} - -```sql -SELECT * FROM system.processes LIMIT 10 FORMAT Vertical; -``` - -```response -Row 1: -────── -is_initial_query: 1 -user: default -query_id: 35a360fa-3743-441d-8e1f-228c938268da -address: ::ffff:172.23.0.1 -port: 47588 -initial_user: default -initial_query_id: 35a360fa-3743-441d-8e1f-228c938268da -initial_address: ::ffff:172.23.0.1 -initial_port: 47588 -interface: 1 -os_user: bharatnc -client_hostname: tower -client_name: ClickHouse -client_revision: 54437 -client_version_major: 20 -client_version_minor: 7 -client_version_patch: 2 -http_method: 0 -http_user_agent: -quota_key: -elapsed: 0.000582537 -is_cancelled: 0 -is_all_data_sent: 0 -read_rows: 0 -read_bytes: 0 -total_rows_approx: 0 -written_rows: 0 -written_bytes: 0 -memory_usage: 0 -peak_memory_usage: 0 -query: SELECT * from system.processes LIMIT 10 FORMAT Vertical; -thread_ids: [67] -ProfileEvents: {'Query':1,'SelectQuery':1,'ReadCompressedBytes':36,'CompressedReadBufferBlocks':1,'CompressedReadBufferBytes':10,'IOBufferAllocs':1,'IOBufferAllocBytes':89,'ContextLock':15,'RWLockAcquiredReadLocks':1} -Settings: {'background_pool_size':'32','load_balancing':'random','allow_suspicious_low_cardinality_types':'1','distributed_aggregation_memory_efficient':'1','skip_unavailable_shards':'1','log_queries':'1','max_bytes_before_external_group_by':'20000000000','max_bytes_before_external_sort':'20000000000','allow_introspection_functions':'1'} - -1 rows in set. Elapsed: 0.002 sec. -``` diff --git a/reference/system-tables/processors_profile_log.mdx b/reference/system-tables/processors_profile_log.mdx deleted file mode 100644 index 5491b2c6..00000000 --- a/reference/system-tables/processors_profile_log.mdx +++ /dev/null @@ -1,95 +0,0 @@ ---- -description: 'System table containing profiling information on the processors level - (which can be found in `EXPLAIN PIPELINE`)' -keywords: ['system table', 'processors_profile_log', 'EXPLAIN PIPELINE'] -slug: /operations/system-tables/processors_profile_log -title: 'system.processors_profile_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -This table contains profiling on processors level (that you can find in [`EXPLAIN PIPELINE`](/reference/statements/explain#explain-pipeline)). - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — The date when the event happened. -- `event_time` ([DateTime](/reference/data-types/datetime)) — The date and time when the event happened. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — The date and time with microseconds precision when the event happened. -- `id` ([UInt64](/reference/data-types/int-uint)) — ID of processor. -- `parent_ids` ([Array(UInt64)](/reference/data-types/array)) — Parent processors IDs. -- `plan_step` ([UInt64](/reference/data-types/int-uint)) — ID of the query plan step which created this processor. The value is zero if the processor was not added from any step. -- `plan_step_name` ([String](/reference/data-types/string)) — Name of the query plan step which created this processor. The value is empty if the processor was not added from any step. -- `plan_step_description` ([String](/reference/data-types/string)) — Description of the query plan step which created this processor. The value is empty if the processor was not added from any step. -- `plan_group` ([UInt64](/reference/data-types/int-uint)) — Group of the processor if it was created by query plan step. A group is a logical partitioning of processors added from the same query plan step. Group is used only for beautifying the result of EXPLAIN PIPELINE result. -- `initial_query_id` ([String](/reference/data-types/string)) — ID of the initial query (for distributed query execution). -- `query_id` ([String](/reference/data-types/string)) — ID of the query. -- `name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the processor. -- `elapsed_us` ([UInt64](/reference/data-types/int-uint)) — Number of microseconds this processor was executed. -- `input_wait_elapsed_us` ([UInt64](/reference/data-types/int-uint)) — Number of microseconds this processor was waiting for data (from other processor). -- `output_wait_elapsed_us` ([UInt64](/reference/data-types/int-uint)) — Number of microseconds this processor was waiting because output port was full. -- `input_rows` ([UInt64](/reference/data-types/int-uint)) — The number of rows consumed by processor. -- `input_bytes` ([UInt64](/reference/data-types/int-uint)) — The number of bytes consumed by processor. -- `output_rows` ([UInt64](/reference/data-types/int-uint)) — The number of rows generated by processor. -- `output_bytes` ([UInt64](/reference/data-types/int-uint)) — The number of bytes generated by processor. -- `processor_uniq_id` ([String](/reference/data-types/string)) — The uniq processor id in pipeline. -- `step_uniq_id` ([String](/reference/data-types/string)) — The uniq step id in plan. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql title="Query" -EXPLAIN PIPELINE -SELECT sleep(1) -┌─explain─────────────────────────┐ -│ (Expression) │ -│ ExpressionTransform │ -│ (SettingQuotaAndLimits) │ -│ (ReadFromStorage) │ -│ SourceFromSingleChunk 0 → 1 │ -└─────────────────────────────────┘ - -SELECT sleep(1) -SETTINGS log_processors_profiles = 1 -Query id: feb5ed16-1c24-4227-aa54-78c02b3b27d4 -┌─sleep(1)─┐ -│ 0 │ -└──────────┘ -1 rows in set. Elapsed: 1.018 sec. - -SELECT - name, - elapsed_us, - input_wait_elapsed_us, - output_wait_elapsed_us -FROM system.processors_profile_log -WHERE query_id = 'feb5ed16-1c24-4227-aa54-78c02b3b27d4' -ORDER BY name ASC -``` - -```text title="Response" -┌─name────────────────────┬─elapsed_us─┬─input_wait_elapsed_us─┬─output_wait_elapsed_us─┐ -│ ExpressionTransform │ 1000497 │ 2823 │ 197 │ -│ LazyOutputFormat │ 36 │ 1002188 │ 0 │ -│ LimitsCheckingTransform │ 10 │ 1002994 │ 106 │ -│ NullSource │ 5 │ 1002074 │ 0 │ -│ NullSource │ 1 │ 1002084 │ 0 │ -│ SourceFromSingleChunk │ 45 │ 4736 │ 1000819 │ -└─────────────────────────┴────────────┴───────────────────────┴────────────────────────┘ -``` - -Here you can see: - -- `ExpressionTransform` was executing `sleep(1)` function, so it `work` will takes 1e6, and so `elapsed_us` > 1e6. -- `SourceFromSingleChunk` need to wait, because `ExpressionTransform` does not accept any data during execution of `sleep(1)`, so it will be in `PortFull` state for 1e6 us, and so `output_wait_elapsed_us` > 1e6. -- `LimitsCheckingTransform`/`NullSource`/`LazyOutputFormat` need to wait until `ExpressionTransform` will execute `sleep(1)` to process the result, so `input_wait_elapsed_us` > 1e6. - -## See Also {#see-also} - -- [`EXPLAIN PIPELINE`](/reference/statements/explain#explain-pipeline) diff --git a/reference/system-tables/projection_parts.mdx b/reference/system-tables/projection_parts.mdx deleted file mode 100644 index d3e6b478..00000000 --- a/reference/system-tables/projection_parts.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -description: 'System table containing information about projection parts for tables of the MergeTree family.' -keywords: ['system table', 'projection_parts'] -slug: /operations/system-tables/projection_parts -title: 'system.projection_parts' -doc_type: 'reference' ---- - -## Description {#description} - -This table contains information about projection parts for tables of the MergeTree family. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `partition` ([String](/reference/data-types)) — The partition name. -- `name` ([String](/reference/data-types)) — Name of the data part. -- `part_type` ([String](/reference/data-types)) — The data part storing format. Possible Values: Wide (a file per column) and Compact (a single file for all columns). -- `parent_name` ([String](/reference/data-types)) — The name of the source (parent) data part. -- `parent_uuid` ([UUID](/reference/data-types)) — The UUID of the source (parent) data part. -- `parent_part_type` ([String](/reference/data-types)) — The source (parent) data part storing format. -- `active` ([UInt8](/reference/data-types)) — Flag that indicates whether the data part is active. If a data part is active, it's used in a table. Otherwise, it's about to be deleted. Inactive data parts appear after merging and mutating operations. -- `marks` ([UInt64](/reference/data-types)) — The number of marks. To get the approximate number of rows in a data part, multiply marks by the index granularity (usually 8192) (this hint does not work for adaptive granularity). -- `rows` ([UInt64](/reference/data-types)) — The number of rows. -- `bytes_on_disk` ([UInt64](/reference/data-types)) — Total size of all the data part files in bytes. -- `data_compressed_bytes` ([UInt64](/reference/data-types)) — Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included. -- `data_uncompressed_bytes` ([UInt64](/reference/data-types)) — Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included. -- `marks_bytes` ([UInt64](/reference/data-types)) — The size of the file with marks. -- `parent_marks` ([UInt64](/reference/data-types)) — The number of marks in the source (parent) part. -- `parent_rows` ([UInt64](/reference/data-types)) — The number of rows in the source (parent) part. -- `parent_bytes_on_disk` ([UInt64](/reference/data-types)) — Total size of all the source (parent) data part files in bytes. -- `parent_data_compressed_bytes` ([UInt64](/reference/data-types)) — Total size of compressed data in the source (parent) data part. -- `parent_data_uncompressed_bytes` ([UInt64](/reference/data-types)) — Total size of uncompressed data in the source (parent) data part. -- `parent_marks_bytes` ([UInt64](/reference/data-types)) — The size of the file with marks in the source (parent) data part. -- `modification_time` ([DateTime](/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation. -- `remove_time` ([DateTime](/reference/data-types)) — The time when the data part became inactive. -- `refcount` ([UInt32](/reference/data-types)) — The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges. -- `min_date` ([Date](/reference/data-types)) — The minimum value of the date key in the data part. -- `max_date` ([Date](/reference/data-types)) — The maximum value of the date key in the data part. -- `min_time` ([DateTime](/reference/data-types)) — The minimum value of the date and time key in the data part. -- `max_time` ([DateTime](/reference/data-types)) — The maximum value of the date and time key in the data part. -- `partition_id` ([String](/reference/data-types)) — ID of the partition. -- `min_block_number` ([Int64](/reference/data-types)) — The minimum number of data parts that make up the current part after merging. -- `max_block_number` ([Int64](/reference/data-types)) — The maximum number of data parts that make up the current part after merging. -- `level` ([UInt32](/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. -- `data_version` ([UInt64](/reference/data-types)) — Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than data_version). -- `primary_key_bytes_in_memory` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) used by primary key values. -- `primary_key_bytes_in_memory_allocated` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) reserved for primary key values. -- `is_frozen` ([UInt8](/reference/data-types)) — Flag that shows that a partition data backup exists. 1, the backup exists. 0, the backup does not exist. -- `database` ([String](/reference/data-types)) — Name of the database. -- `table` ([String](/reference/data-types)) — Name of the table. -- `engine` ([String](/reference/data-types)) — Name of the table engine without parameters. -- `disk_name` ([String](/reference/data-types)) — Name of a disk that stores the data part. -- `path` ([String](/reference/data-types)) — Absolute path to the folder with data part files. -- `hash_of_all_files` ([String](/reference/data-types)) — sipHash128 of compressed files. -- `hash_of_uncompressed_files` ([String](/reference/data-types)) — sipHash128 of uncompressed files (files with marks, index file etc.). -- `uncompressed_hash_of_compressed_files` ([String](/reference/data-types)) — sipHash128 of data in the compressed files as if they were uncompressed. -- `delete_ttl_info_min` ([DateTime](/reference/data-types)) — The minimum value of the date and time key for TTL DELETE rule. -- `delete_ttl_info_max` ([DateTime](/reference/data-types)) — The maximum value of the date and time key for TTL DELETE rule. -- `move_ttl_info.expression` ([Array(String)](/reference/data-types)) — Array of expressions. Each expression defines a TTL MOVE rule. -- `move_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — Array of date and time values. Each element describes the minimum key value for a TTL MOVE rule. -- `move_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — Array of date and time values. Each element describes the maximum key value for a TTL MOVE rule. -- `default_compression_codec` ([String](/reference/data-types)) — The name of the codec used to compress this data part (in case when there is no explicit codec for columns). -- `recompression_ttl_info.expression` ([Array(String)](/reference/data-types)) — The TTL expression. -- `recompression_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. -- `recompression_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. -- `group_by_ttl_info.expression` ([Array(String)](/reference/data-types)) — The TTL expression. -- `group_by_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. -- `group_by_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. -- `rows_where_ttl_info.expression` ([Array(String)](/reference/data-types)) — The TTL expression. -- `rows_where_ttl_info.min` ([Array(DateTime)](/reference/data-types)) — The minimum value of the calculated TTL expression within this part. Used to understand whether we have at least one row with expired TTL. -- `rows_where_ttl_info.max` ([Array(DateTime)](/reference/data-types)) — The maximum value of the calculated TTL expression within this part. Used to understand whether we have all rows with expired TTL. -- `is_broken` ([UInt8](/reference/data-types)) — Whether projection part is broken -- `exception_code` ([Int32](/reference/data-types)) — Exception message explaining broken state of the projection part -- `exception` ([String](/reference/data-types)) — Exception code explaining broken state of the projection part -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/projection_parts_columns.mdx b/reference/system-tables/projection_parts_columns.mdx deleted file mode 100644 index 7ab1810a..00000000 --- a/reference/system-tables/projection_parts_columns.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -description: 'System table containing information about columns in projection parts for tables of the MergeTree family' -keywords: ['system table', 'projection_parts_columns'] -slug: /operations/system-tables/projection_parts_columns -title: 'system.projection_parts_columns' -doc_type: 'reference' ---- - -## Description {#description} - -This table contains information about columns in projection parts for tables of the MergeTree family. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `partition` ([String](/reference/data-types)) — The partition name. -- `name` ([String](/reference/data-types)) — Name of the data part. -- `part_type` ([String](/reference/data-types)) — The data part storing format. -- `parent_name` ([String](/reference/data-types)) — The name of the source (parent) data part. -- `parent_uuid` ([UUID](/reference/data-types)) — The UUID of the source (parent) data part. -- `parent_part_type` ([String](/reference/data-types)) — The source (parent) data part storing format. -- `active` ([UInt8](/reference/data-types)) — Flag that indicates whether the data part is active -- `marks` ([UInt64](/reference/data-types)) — The number of marks. -- `rows` ([UInt64](/reference/data-types)) — The number of rows. -- `bytes_on_disk` ([UInt64](/reference/data-types)) — Total size of all the data part files in bytes. -- `data_compressed_bytes` ([UInt64](/reference/data-types)) — Total size of compressed data in the data part. All the auxiliary files (for example, files with marks) are not included. -- `data_uncompressed_bytes` ([UInt64](/reference/data-types)) — Total size of uncompressed data in the data part. All the auxiliary files (for example, files with marks) are not included. -- `marks_bytes` ([UInt64](/reference/data-types)) — The size of the file with marks. -- `parent_marks` ([UInt64](/reference/data-types)) — The number of marks in the source (parent) part. -- `parent_rows` ([UInt64](/reference/data-types)) — The number of rows in the source (parent) part. -- `parent_bytes_on_disk` ([UInt64](/reference/data-types)) — Total size of all the source (parent) data part files in bytes. -- `parent_data_compressed_bytes` ([UInt64](/reference/data-types)) — Total size of compressed data in the source (parent) data part. -- `parent_data_uncompressed_bytes` ([UInt64](/reference/data-types)) — Total size of uncompressed data in the source (parent) data part. -- `parent_marks_bytes` ([UInt64](/reference/data-types)) — The size of the file with marks in the source (parent) data part. -- `modification_time` ([DateTime](/reference/data-types)) — The time the directory with the data part was modified. This usually corresponds to the time of data part creation. -- `remove_time` ([DateTime](/reference/data-types)) — The time when the data part became inactive. -- `refcount` ([UInt32](/reference/data-types)) — The number of places where the data part is used. A value greater than 2 indicates that the data part is used in queries or merges. -- `min_date` ([Date](/reference/data-types)) — The minimum value for the Date column if that is included in the partition key. -- `max_date` ([Date](/reference/data-types)) — The maximum value for the Date column if that is included in the partition key. -- `min_time` ([DateTime](/reference/data-types)) — The minimum value for the DateTime column if that is included in the partition key. -- `max_time` ([DateTime](/reference/data-types)) — The maximum value for the DateTime column if that is included in the partition key. -- `partition_id` ([String](/reference/data-types)) — ID of the partition. -- `min_block_number` ([Int64](/reference/data-types)) — The minimum number of data parts that make up the current part after merging. -- `max_block_number` ([Int64](/reference/data-types)) — The maximum number of data parts that make up the current part after merging. -- `level` ([UInt32](/reference/data-types)) — Depth of the merge tree. Zero means that the current part was created by insert rather than by merging other parts. -- `data_version` ([UInt64](/reference/data-types)) — Number that is used to determine which mutations should be applied to the data part (mutations with a version higher than data_version). -- `primary_key_bytes_in_memory` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) used by primary key values. -- `primary_key_bytes_in_memory_allocated` ([UInt64](/reference/data-types)) — The amount of memory (in bytes) reserved for primary key values. -- `database` ([String](/reference/data-types)) — Name of the database. -- `table` ([String](/reference/data-types)) — Name of the table. -- `engine` ([String](/reference/data-types)) — Name of the table engine without parameters. -- `disk_name` ([String](/reference/data-types)) — Name of a disk that stores the data part. -- `path` ([String](/reference/data-types)) — Absolute path to the folder with data part files. -- `column` ([String](/reference/data-types)) — Name of the column. -- `type` ([String](/reference/data-types)) — Column type. -- `column_position` ([UInt64](/reference/data-types)) — Ordinal position of a column in a table starting with 1. -- `default_kind` ([String](/reference/data-types)) — Expression type (DEFAULT, MATERIALIZED, ALIAS) for the default value, or an empty string if it is not defined. -- `default_expression` ([String](/reference/data-types)) — Expression for the default value, or an empty string if it is not defined. -- `column_bytes_on_disk` ([UInt64](/reference/data-types)) — Total size of the column in bytes. -- `column_data_compressed_bytes` ([UInt64](/reference/data-types)) — Total size of compressed data in the column, in bytes. -- `column_data_uncompressed_bytes` ([UInt64](/reference/data-types)) — Total size of the decompressed data in the column, in bytes. -- `column_marks_bytes` ([UInt64](/reference/data-types)) — The size of the column with marks, in bytes. -- `column_modification_time` ([Nullable(DateTime)](/reference/data-types)) — The last time the column was modified. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/query_cache.mdx b/reference/system-tables/query_cache.mdx deleted file mode 100644 index 65fab40c..00000000 --- a/reference/system-tables/query_cache.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -description: 'System table which shows the content of the query cache.' -keywords: ['system table', 'query_cache'] -slug: /operations/system-tables/query_cache -title: 'system.query_cache' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Shows the content of the [query cache](/concepts/features/performance/caches/query-cache). - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `query` ([String](/reference/data-types)) — Query string. -- `query_id` ([String](/reference/data-types)) — ID of the query. -- `result_size` ([UInt64](/reference/data-types)) — Size of the query cache entry. -- `tag` ([LowCardinality(String)](/reference/data-types)) — Tag of the query cache entry. -- `stale` ([UInt8](/reference/data-types)) — If the query cache entry is stale. -- `shared` ([UInt8](/reference/data-types)) — If the query cache entry is shared between multiple users. -- `compressed` ([UInt8](/reference/data-types)) — If the query cache entry is compressed. -- `expires_at` ([DateTime](/reference/data-types)) — When the query cache entry becomes stale. -- `key_hash` ([UInt64](/reference/data-types)) — A hash of the query string, used as a key to find query cache entries. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.query_cache FORMAT Vertical; -``` - -```text -Row 1: -────── -query: SELECT 1 SETTINGS use_query_cache = 1 -query_id: 7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6 -result_size: 128 -tag: -stale: 0 -shared: 0 -compressed: 1 -expires_at: 2023-10-13 13:35:45 -key_hash: 12188185624808016954 - -1 row in set. Elapsed: 0.004 sec. -``` diff --git a/reference/system-tables/query_log.mdx b/reference/system-tables/query_log.mdx deleted file mode 100644 index d5ba9f4d..00000000 --- a/reference/system-tables/query_log.mdx +++ /dev/null @@ -1,237 +0,0 @@ ---- -description: 'System table containing information about executed queries, for example, - start time, duration of processing, error messages.' -keywords: ['system table', 'query_log'] -slug: /operations/system-tables/query_log -title: 'system.query_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Stores metadata and statistics about executed queries, such as start time, duration, error messages, resource usage, and other execution details. It does not store the results of queries. - -You can change settings of queries logging in the [query_log](/reference/settings/server-settings/settings#query_log) section of the server configuration. - -You can disable queries logging by setting [log_queries = 0](/reference/settings/session-settings#log_queries). We do not recommend to turn off logging because information in this table is important for solving issues. - -The flushing period of data is set in `flush_interval_milliseconds` parameter of the [query_log](/reference/settings/server-settings/settings#query_log) server settings section. To force flushing, use the [SYSTEM FLUSH LOGS](/reference/statements/system#flush-logs) query. - -ClickHouse does not delete data from the table automatically. See [Introduction](/reference/system-tables/overview#system-tables-introduction) for more details. - -The `system.query_log` table registers two kinds of queries: - -1. Initial queries that were run directly by the client. -2. Child queries that were initiated by other queries (for distributed query execution). For these types of queries, information about the parent queries is shown in the `initial_*` columns. - -Each query creates one or two rows in the `query_log` table, depending on the status (see the `type` column) of the query: - -1. If the query execution was successful, two rows with the `QueryStart` and `QueryFinish` types are created. -2. If an error occurred during query processing, two events with the `QueryStart` and `ExceptionWhileProcessing` types are created. -3. If an error occurred before launching the query, a single event with the `ExceptionBeforeStart` type is created. - -You can use the [log_queries_probability](/reference/settings/session-settings#log_queries_probability) setting to reduce the number of queries, registered in the `query_log` table. - -You can use the [log_formatted_queries](/reference/settings/session-settings#log_formatted_queries) setting to log formatted queries to the `formatted_query` column. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `type` ([Enum8('QueryStart' = 1, 'QueryFinish' = 2, 'ExceptionBeforeStart' = 3, 'ExceptionWhileProcessing' = 4)](/reference/data-types/enum)) — Type of an event that occurred when executing the query. Values: `QueryStart` — successful start of query execution, `QueryFinish` — successful end of query execution, `ExceptionBeforeStart` — exception before the start of query execution, `ExceptionWhileProcessing` — exception during the query execution. -- `event_date` ([Date](/reference/data-types/date)) — Query starting date. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Query starting time. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Query starting time with microseconds precision. -- `query_start_time` ([DateTime](/reference/data-types/datetime)) — Start time of query execution. -- `query_start_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Start time of query execution with microsecond precision. -- `query_duration_ms` ([UInt64](/reference/data-types/int-uint)) — Duration of query execution in milliseconds. -- `read_rows` ([UInt64](/reference/data-types/int-uint)) — Total number of rows read from all tables and table functions participated in query. It includes usual subqueries, subqueries for IN and JOIN. For distributed queries read_rows includes the total number of rows read at all replicas. Each replica sends it's read_rows value, and the server-initiator of the query summarizes all received and local values. The cache volumes do not affect this value. -- `read_bytes` ([UInt64](/reference/data-types/int-uint)) — Total number of bytes read from all tables and table functions participated in query. It includes usual subqueries, subqueries for IN and JOIN. For distributed queries read_bytes includes the total number of rows read at all replicas. Each replica sends it's read_bytes value, and the server-initiator of the query summarizes all received and local values. The cache volumes do not affect this value. -- `written_rows` ([UInt64](/reference/data-types/int-uint)) — For INSERT queries, the number of written rows. For other queries, the column value is 0. -- `written_bytes` ([UInt64](/reference/data-types/int-uint)) — For INSERT queries, the number of written bytes (uncompressed). For other queries, the column value is 0. -- `result_rows` ([UInt64](/reference/data-types/int-uint)) — Number of rows in a result of the SELECT query, or a number of rows in the INSERT query. -- `result_bytes` ([UInt64](/reference/data-types/int-uint)) — RAM volume in bytes used to store a query result. -- `memory_usage` ([UInt64](/reference/data-types/int-uint)) — Memory consumption by the query. -- `current_database` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the current database. -- `query` ([String](/reference/data-types/string)) — Query string. -- `formatted_query` ([String](/reference/data-types/string)) — Formatted query string. -- `normalized_query_hash` ([UInt64](/reference/data-types/int-uint)) — A numeric hash value, such as it is identical for queries differ only by values of literals. -- `query_kind` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Type of the query. -- `databases` ([Array(LowCardinality(String))](/reference/data-types/array)) — Names of the databases present in the query. -- `tables` ([Array(LowCardinality(String))](/reference/data-types/array)) — Names of the tables present in the query. -- `columns` ([Array(LowCardinality(String))](/reference/data-types/array)) — Names of the columns present in the query. -- `partitions` ([Array(LowCardinality(String))](/reference/data-types/array)) — Names of the partitions present in the query. -- `projections` ([Array(LowCardinality(String))](/reference/data-types/array)) — Names of the projections used during the query execution. -- `views` ([Array(LowCardinality(String))](/reference/data-types/array)) — Names of the (materialized or live) views present in the query. -- `exception_code` ([Int32](/reference/data-types/int-uint)) — Code of an exception. -- `exception` ([String](/reference/data-types/string)) — Exception message. -- `stack_trace` ([String](/reference/data-types/string)) — Stack trace. An empty string, if the query was completed successfully. -- `is_initial_query` ([UInt8](/reference/data-types/int-uint)) — Query type. Possible values: 1 — query was initiated by the client, 0 — query was initiated by another query as part of distributed query execution. -- `connection_address` ([IPv6](/reference/data-types/ipv6)) — The client IP address from which the connection was made. When connected through a proxy, this will be the address of the proxy. -- `connection_port` ([UInt16](/reference/data-types/int-uint)) — The client port from which the connection was made. When connected through a proxy, this will be the port of the proxy. -- `user` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the user who initiated the current query. -- `query_id` ([String](/reference/data-types/string)) — ID of the query. -- `address` ([IPv6](/reference/data-types/ipv6)) — IP address that was used to make the query. When connected through a proxy and `auth_use_forwarded_address` is set, this will be the address of the client instead of the proxy. -- `port` ([UInt16](/reference/data-types/int-uint)) — The client port that was used to make the query. When connected through a proxy and `auth_use_forwarded_address` is set, this will be the port of the client instead of the proxy. -- `initial_user` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the user who ran the initial query (for distributed query execution). -- `initial_query_id` ([String](/reference/data-types/string)) — ID of the initial query (for distributed query execution). -- `initial_address` ([IPv6](/reference/data-types/ipv6)) — IP address that the parent query was launched from. -- `initial_port` ([UInt16](/reference/data-types/int-uint)) — The client port that was used to make the parent query. -- `initial_query_start_time` ([DateTime](/reference/data-types/datetime)) — Initial query starting time (for distributed query execution). -- `initial_query_start_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Initial query starting time with microseconds precision (for distributed query execution). -- `authenticated_user` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the user who was authenticated in the session. -- `interface` ([UInt8](/reference/data-types/int-uint)) — Interface that the query was initiated from. Possible values: 1 — TCP, 2 — HTTP. -- `is_secure` ([UInt8](/reference/data-types/int-uint)) — The flag whether a query was executed over a secure interface -- `os_user` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Operating system username who runs clickhouse-client. -- `client_hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the client machine where the clickhouse-client or another TCP client is run. -- `client_name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — The clickhouse-client or another TCP client name. -- `client_revision` ([UInt32](/reference/data-types/int-uint)) — Revision of the clickhouse-client or another TCP client. -- `client_version_major` ([UInt32](/reference/data-types/int-uint)) — Major version of the clickhouse-client or another TCP client. -- `client_version_minor` ([UInt32](/reference/data-types/int-uint)) — Minor version of the clickhouse-client or another TCP client. -- `client_version_patch` ([UInt32](/reference/data-types/int-uint)) — Patch component of the clickhouse-client or another TCP client version. -- `script_query_number` ([UInt32](/reference/data-types/int-uint)) — The query number in a script with multiple queries for clickhouse-client. -- `script_line_number` ([UInt32](/reference/data-types/int-uint)) — The line number of the query start in a script with multiple queries for clickhouse-client. -- `http_method` ([UInt8](/reference/data-types/int-uint)) — HTTP method that initiated the query. Possible values: 0 — The query was launched from the TCP interface, 1 — GET method was used, 2 — POST method was used. -- `http_user_agent` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — HTTP header UserAgent passed in the HTTP query. -- `http_referer` ([String](/reference/data-types/string)) — HTTP header Referer passed in the HTTP query (contains an absolute or partial address of the page making the query). -- `forwarded_for` ([String](/reference/data-types/string)) — HTTP header X-Forwarded-For passed in the HTTP query. -- `quota_key` ([String](/reference/data-types/string)) — The quota key specified in the quotas setting (see keyed). -- `distributed_depth` ([UInt64](/reference/data-types/int-uint)) — How many times a query was forwarded between servers. -- `revision` ([UInt32](/reference/data-types/int-uint)) — ClickHouse revision. -- `log_comment` ([String](/reference/data-types/string)) — Log comment. It can be set to arbitrary string no longer than max_query_size. An empty string if it is not defined. -- `thread_ids` ([Array(UInt64)](/reference/data-types/array)) — Thread ids that are participating in query execution. These threads may not have run simultaneously. -- `peak_threads_usage` ([UInt64](/reference/data-types/int-uint)) — Maximum count of simultaneous threads executing the query. -- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/reference/data-types/map)) — ProfileEvents that measure different metrics. The description of them could be found in the table system.events -- `Settings` ([Map(LowCardinality(String), LowCardinality(String))](/reference/data-types/map)) — Settings that were changed when the client ran the query. To enable logging changes to settings, set the log_query_settings parameter to 1. -- `used_aggregate_functions` ([Array(LowCardinality(String))](/reference/data-types/array)) — Canonical names of aggregate functions, which were used during query execution. -- `used_aggregate_function_combinators` ([Array(LowCardinality(String))](/reference/data-types/array)) — Canonical names of aggregate functions combinators, which were used during query execution. -- `used_database_engines` ([Array(LowCardinality(String))](/reference/data-types/array)) — Canonical names of database engines, which were used during query execution. -- `used_data_type_families` ([Array(LowCardinality(String))](/reference/data-types/array)) — Canonical names of data type families, which were used during query execution. -- `used_dictionaries` ([Array(LowCardinality(String))](/reference/data-types/array)) — Canonical names of dictionaries, which were used during query execution. -- `used_formats` ([Array(LowCardinality(String))](/reference/data-types/array)) — Canonical names of formats, which were used during query execution. -- `used_functions` ([Array(LowCardinality(String))](/reference/data-types/array)) — Canonical names of functions, which were used during query execution. -- `used_storages` ([Array(LowCardinality(String))](/reference/data-types/array)) — Canonical names of storages, which were used during query execution. -- `used_table_functions` ([Array(LowCardinality(String))](/reference/data-types/array)) — Canonical names of table functions, which were used during query execution. -- `used_executable_user_defined_functions` ([Array(LowCardinality(String))](/reference/data-types/array)) — Canonical names of executable user defined functions, which were used during query execution. -- `used_sql_user_defined_functions` ([Array(LowCardinality(String))](/reference/data-types/array)) — Canonical names of sql user defined functions, which were used during query execution. -- `used_row_policies` ([Array(LowCardinality(String))](/reference/data-types/array)) — The list of row policies names that were used during query execution. -- `used_privileges` ([Array(LowCardinality(String))](/reference/data-types/array)) — Privileges which were successfully checked during query execution. -- `missing_privileges` ([Array(LowCardinality(String))](/reference/data-types/array)) — Privileges that are missing during query execution. -- `transaction_id` ([Tuple(UInt64, UInt64, UUID)](/reference/data-types/tuple)) — The identifier of the transaction in scope of which this query was executed. -- `query_cache_usage` ([Enum8('Unknown' = 0, 'None' = 1, 'Write' = 2, 'Read' = 3)](/reference/data-types/enum)) — Usage of the query cache during query execution. Values: 'Unknown' = Status unknown, 'None' = The query result was neither written into nor read from the query result cache, 'Write' = The query result was written into the query result cache, 'Read' = The query result was read from the query result cache. -- `asynchronous_read_counters` ([Map(LowCardinality(String), UInt64)](/reference/data-types/map)) — Metrics for asynchronous reading. -- `is_internal` ([UInt8](/reference/data-types/int-uint)) — Indicates whether it is an auxiliary query executed internally. - -**Aliases:** - -- `ProfileEvents.Names` — Alias for `mapKeys(ProfileEvents)`. -- `ProfileEvents.Values` — Alias for `mapValues(ProfileEvents)`. -- `Settings.Names` — Alias for `mapKeys(Settings)`. -- `Settings.Values` — Alias for `mapValues(Settings)`. -{/*AUTOGENERATED_END*/} - -## Examples {#examples} - -**Basic example** - -```sql -SELECT * FROM system.query_log WHERE type = 'QueryFinish' ORDER BY query_start_time DESC LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -hostname: clickhouse.eu-central1.internal -type: QueryFinish -event_date: 2021-11-03 -event_time: 2021-11-03 16:13:54 -event_time_microseconds: 2021-11-03 16:13:54.953024 -query_start_time: 2021-11-03 16:13:54 -query_start_time_microseconds: 2021-11-03 16:13:54.952325 -query_duration_ms: 0 -read_rows: 69 -read_bytes: 6187 -written_rows: 0 -written_bytes: 0 -result_rows: 69 -result_bytes: 48256 -memory_usage: 0 -current_database: default -query: DESCRIBE TABLE system.query_log -formatted_query: -normalized_query_hash: 8274064835331539124 -query_kind: -databases: [] -tables: [] -columns: [] -projections: [] -views: [] -exception_code: 0 -exception: -stack_trace: -is_initial_query: 1 -user: default -query_id: 7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6 -address: ::ffff:127.0.0.1 -port: 40452 -initial_user: default -initial_query_id: 7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6 -initial_address: ::ffff:127.0.0.1 -initial_port: 40452 -initial_query_start_time: 2021-11-03 16:13:54 -initial_query_start_time_microseconds: 2021-11-03 16:13:54.952325 -interface: 1 -os_user: sevirov -client_hostname: clickhouse.eu-central1.internal -client_name: ClickHouse -client_revision: 54449 -client_version_major: 21 -client_version_minor: 10 -client_version_patch: 1 -http_method: 0 -http_user_agent: -http_referer: -forwarded_for: -quota_key: -revision: 54456 -log_comment: -thread_ids: [30776,31174] -ProfileEvents: {'Query':1,'NetworkSendElapsedMicroseconds':59,'NetworkSendBytes':2643,'SelectedRows':69,'SelectedBytes':6187,'ContextLock':9,'RWLockAcquiredReadLocks':1,'RealTimeMicroseconds':817,'UserTimeMicroseconds':427,'SystemTimeMicroseconds':212,'OSCPUVirtualTimeMicroseconds':639,'OSReadChars':894,'OSWriteChars':319} -Settings: {'load_balancing':'random','max_memory_usage':'10000000000'} -used_aggregate_functions: [] -used_aggregate_function_combinators: [] -used_database_engines: [] -used_data_type_families: [] -used_dictionaries: [] -used_formats: [] -used_functions: [] -used_storages: [] -used_table_functions: [] -used_executable_user_defined_functions:[] -used_sql_user_defined_functions: [] -used_privileges: [] -missing_privileges: [] -query_cache_usage: None -``` - -**Cloud example** - -In ClickHouse Cloud, `system.query_log` is local to each node; to see all entries you must query via [`clusterAllReplicas`](/reference/functions/table-functions/cluster). - -For example, to aggregate query_log rows from every replica in the “default” cluster you can write: - -```sql -SELECT * -FROM clusterAllReplicas('default', system.query_log) -WHERE event_time >= now() - toIntervalHour(1) -LIMIT 10 -SETTINGS skip_unavailable_shards = 1; -``` - -## See Also {#see-also} - -- [system.query_thread_log](/reference/system-tables/query_thread_log) — This table contains information about each query execution thread. diff --git a/reference/system-tables/query_metric_log.mdx b/reference/system-tables/query_metric_log.mdx deleted file mode 100644 index 5c545553..00000000 --- a/reference/system-tables/query_metric_log.mdx +++ /dev/null @@ -1,1316 +0,0 @@ ---- -description: 'System table containing a history of memory and metric values from table - `system.events` for individual queries, periodically flushed to disk.' -keywords: ['system table', 'query_metric_log'] -slug: /operations/system-tables/query_metric_log -title: 'system.query_metric_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains a history of memory and metric values from table `system.events` for individual queries, periodically flushed to disk. - -Once a query starts, data is collected at periodic intervals of `query_metric_log_interval` milliseconds (which is set to 1000 -by default). The data is also collected when the query finishes if the query takes longer than `query_metric_log_interval`. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `query_id` ([String](/reference/data-types/string)) — Query ID. -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Event date. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Event time with microseconds resolution. -- `memory_usage` ([UInt64](/reference/data-types/int-uint)) — Amount of RAM the query uses. It might not include some types of dedicated memory. -- `peak_memory_usage` ([UInt64](/reference/data-types/int-uint)) — Maximum amount of RAM the query used. -- `ProfileEvent_Query` ([UInt64](/reference/data-types/int-uint)) — Number of queries to be interpreted and potentially executed. Does not include queries that failed to parse or were rejected due to AST size limits, quota limits or limits on the number of simultaneously running queries. May include internal queries initiated by ClickHouse itself. Does not count subqueries. -- `ProfileEvent_SelectQuery` ([UInt64](/reference/data-types/int-uint)) — Same as Query, but only for SELECT queries. -- `ProfileEvent_InsertQuery` ([UInt64](/reference/data-types/int-uint)) — Same as Query, but only for INSERT queries. -- `ProfileEvent_InitialQuery` ([UInt64](/reference/data-types/int-uint)) — Same as Query, but only counts initial queries (see is_initial_query). -- `ProfileEvent_InitialSelectQuery` ([UInt64](/reference/data-types/int-uint)) — Same as InitialQuery, but only for SELECT queries. -- `ProfileEvent_QueriesWithSubqueries` ([UInt64](/reference/data-types/int-uint)) — Count queries with all subqueries -- `ProfileEvent_SelectQueriesWithSubqueries` ([UInt64](/reference/data-types/int-uint)) — Count SELECT queries with all subqueries -- `ProfileEvent_InsertQueriesWithSubqueries` ([UInt64](/reference/data-types/int-uint)) — Count INSERT queries with all subqueries -- `ProfileEvent_SelectQueriesWithPrimaryKeyUsage` ([UInt64](/reference/data-types/int-uint)) — Count SELECT queries which use the primary key to evaluate the WHERE condition -- `ProfileEvent_AsyncInsertQuery` ([UInt64](/reference/data-types/int-uint)) — Same as InsertQuery, but only for asynchronous INSERT queries. -- `ProfileEvent_AsyncInsertBytes` ([UInt64](/reference/data-types/int-uint)) — Data size in bytes of asynchronous INSERT queries. -- `ProfileEvent_AsyncInsertRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows inserted by asynchronous INSERT queries. -- `ProfileEvent_AsyncInsertCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a duplicate hash id has been found in asynchronous INSERT hash id cache. -- `ProfileEvent_FailedInternalQuery` ([UInt64](/reference/data-types/int-uint)) — Number of failed internal queries. -- `ProfileEvent_FailedInternalSelectQuery` ([UInt64](/reference/data-types/int-uint)) — Same as FailedInternalQuery, but only for SELECT queries. -- `ProfileEvent_FailedInternalInsertQuery` ([UInt64](/reference/data-types/int-uint)) — Same as FailedInternalQuery, but only for INSERT queries. -- `ProfileEvent_FailedInitialQuery` ([UInt64](/reference/data-types/int-uint)) — Number of failed initial queries. -- `ProfileEvent_FailedInitialSelectQuery` ([UInt64](/reference/data-types/int-uint)) — Same as FailedInitialQuery, but only for SELECT queries. -- `ProfileEvent_FailedQuery` ([UInt64](/reference/data-types/int-uint)) — Number of total failed queries, both internal and user queries. -- `ProfileEvent_FailedSelectQuery` ([UInt64](/reference/data-types/int-uint)) — Same as FailedQuery, but only for SELECT queries. -- `ProfileEvent_FailedInsertQuery` ([UInt64](/reference/data-types/int-uint)) — Same as FailedQuery, but only for INSERT queries. -- `ProfileEvent_FailedAsyncInsertQuery` ([UInt64](/reference/data-types/int-uint)) — Number of failed ASYNC INSERT queries. -- `ProfileEvent_ASTFuzzerQueries` ([UInt64](/reference/data-types/int-uint)) — Number of fuzzed queries attempted by the server-side AST fuzzer. -- `ProfileEvent_QueryTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time of all queries. -- `ProfileEvent_SelectQueryTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time of SELECT queries. -- `ProfileEvent_InsertQueryTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time of INSERT queries. -- `ProfileEvent_OtherQueryTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time of queries that are not SELECT or INSERT. -- `ProfileEvent_FileOpen` ([UInt64](/reference/data-types/int-uint)) — Number of files opened. -- `ProfileEvent_Seek` ([UInt64](/reference/data-types/int-uint)) — Number of times the 'lseek' function was called. -- `ProfileEvent_ReadBufferFromFileDescriptorRead` ([UInt64](/reference/data-types/int-uint)) — Number of reads (read/pread) from a file descriptor. Does not include sockets. -- `ProfileEvent_ReadBufferFromFileDescriptorReadFailed` ([UInt64](/reference/data-types/int-uint)) — Number of times the read (read/pread) from a file descriptor have failed. -- `ProfileEvent_ReadBufferFromFileDescriptorReadBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read from file descriptors. If the file is compressed, this will show the compressed data size. -- `ProfileEvent_WriteBufferFromFileDescriptorWrite` ([UInt64](/reference/data-types/int-uint)) — Number of writes (write/pwrite) to a file descriptor. Does not include sockets. -- `ProfileEvent_WriteBufferFromFileDescriptorWriteFailed` ([UInt64](/reference/data-types/int-uint)) — Number of times the write (write/pwrite) to a file descriptor have failed. -- `ProfileEvent_WriteBufferFromFileDescriptorWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to file descriptors. If the file is compressed, this will show compressed data size. -- `ProfileEvent_FileSync` ([UInt64](/reference/data-types/int-uint)) — Number of times the F_FULLFSYNC/fsync/fdatasync function was called for files. -- `ProfileEvent_DirectorySync` ([UInt64](/reference/data-types/int-uint)) — Number of times the F_FULLFSYNC/fsync/fdatasync function was called for directories. -- `ProfileEvent_FileSyncElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for F_FULLFSYNC/fsync/fdatasync syscall for files. -- `ProfileEvent_DirectorySyncElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for F_FULLFSYNC/fsync/fdatasync syscall for directories. -- `ProfileEvent_ReadCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes (the number of bytes before decompression) read from compressed sources (files, network). -- `ProfileEvent_CompressedReadBufferBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of compressed blocks (the blocks of data that are compressed independent of each other) read from compressed sources (files, network). -- `ProfileEvent_CompressedReadBufferBytes` ([UInt64](/reference/data-types/int-uint)) — Number of uncompressed bytes (the number of bytes after decompression) read from compressed sources (files, network). -- `ProfileEvent_CompressedReadBufferChecksumDoesntMatch` ([UInt64](/reference/data-types/int-uint)) — Number of times the compressed block checksum did not match. -- `ProfileEvent_CompressedReadBufferChecksumDoesntMatchSingleBitMismatch` ([UInt64](/reference/data-types/int-uint)) — Number of times a compressed block checksum mismatch was caused by a single-bit difference. -- `ProfileEvent_CompressedReadBufferChecksumDoesntMatchMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent detecting bit-flips due to compressed block checksum mismatches. -- `ProfileEvent_UncompressedCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a block of data has been found in the uncompressed cache (and decompression was avoided). -- `ProfileEvent_UncompressedCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a block of data has not been found in the uncompressed cache (and required decompression). -- `ProfileEvent_UncompressedCacheWeightLost` ([UInt64](/reference/data-types/int-uint)) — Number of bytes evicted from the uncompressed cache. -- `ProfileEvent_PageCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a block of data has been found in the userspace page cache. -- `ProfileEvent_PageCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a block of data has not been found in the userspace page cache. -- `ProfileEvent_PageCacheWeightLost` ([UInt64](/reference/data-types/int-uint)) — Number of bytes evicted from the userspace page cache -- `ProfileEvent_PageCacheResized` ([UInt64](/reference/data-types/int-uint)) — Number of times the userspace page cache was auto-resized (typically happens a few times per second, controlled by memory_worker_period_ms). -- `ProfileEvent_PageCacheOvercommitResize` ([UInt64](/reference/data-types/int-uint)) — Number of times the userspace page cache was auto-resized to free memory during a memory allocation. -- `ProfileEvent_PageCacheReadBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read from userspace page cache. -- `ProfileEvent_MMappedFileCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a file has been found in the MMap cache (for the 'mmap' read_method), so we didn't have to mmap it again. -- `ProfileEvent_MMappedFileCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a file has not been found in the MMap cache (for the 'mmap' read_method), so we had to mmap it again. -- `ProfileEvent_OpenedFileCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a file has been found in the opened file cache, so we didn't have to open it again. -- `ProfileEvent_OpenedFileCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a file has been found in the opened file cache, so we had to open it again. -- `ProfileEvent_OpenedFileCacheMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Amount of time spent executing OpenedFileCache methods. -- `ProfileEvent_AIOWrite` ([UInt64](/reference/data-types/int-uint)) — Number of writes with Linux or FreeBSD AIO interface -- `ProfileEvent_AIOWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written with Linux or FreeBSD AIO interface -- `ProfileEvent_AIORead` ([UInt64](/reference/data-types/int-uint)) — Number of reads with Linux or FreeBSD AIO interface -- `ProfileEvent_AIOReadBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read with Linux or FreeBSD AIO interface -- `ProfileEvent_IOBufferAllocs` ([UInt64](/reference/data-types/int-uint)) — Number of allocations of IO buffers (for ReadBuffer/WriteBuffer). -- `ProfileEvent_IOBufferAllocBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes allocated for IO buffers (for ReadBuffer/WriteBuffer). -- `ProfileEvent_ArenaAllocChunks` ([UInt64](/reference/data-types/int-uint)) — Number of chunks allocated for memory Arena (used for GROUP BY and similar operations) -- `ProfileEvent_ArenaAllocBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes allocated for memory Arena (used for GROUP BY and similar operations) -- `ProfileEvent_FunctionExecute` ([UInt64](/reference/data-types/int-uint)) — Number of SQL ordinary function calls (SQL functions are called on per-block basis, so this number represents the number of blocks). -- `ProfileEvent_TableFunctionExecute` ([UInt64](/reference/data-types/int-uint)) — Number of table function calls. -- `ProfileEvent_DefaultImplementationForNullsRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows processed by default implementation for nulls in function execution -- `ProfileEvent_DefaultImplementationForNullsRowsWithNulls` ([UInt64](/reference/data-types/int-uint)) — Number of rows which contain null values processed by default implementation for nulls in function execution -- `ProfileEvent_MarkCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has been found in the mark cache, so we didn't have to load a mark file. -- `ProfileEvent_MarkCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has not been found in the mark cache, so we had to load a mark file in memory, which is a costly operation, adding to query latency. -- `ProfileEvent_PrimaryIndexCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has been found in the primary index cache, so we didn't have to load a index file. -- `ProfileEvent_PrimaryIndexCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has not been found in the primary index cache, so we had to load a index file in memory, which is a costly operation, adding to query latency. -- `ProfileEvent_IcebergMetadataFilesCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times iceberg metadata files have been found in the cache. -- `ProfileEvent_IcebergMetadataFilesCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times iceberg metadata files have not been found in the iceberg metadata cache and had to be read from (remote) disk. -- `ProfileEvent_IcebergMetadataFilesCacheStaleMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times iceberg metadata files have been found in the cache, but were considered stale and had to be read from (remote) disk. -- `ProfileEvent_IcebergMetadataFilesCacheWeightLost` ([UInt64](/reference/data-types/int-uint)) — Approximate number of bytes evicted from the iceberg metadata cache. -- `ProfileEvent_IcebergMetadataReadWaitTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time data readers spend waiting for iceberg metadata files to be read and parsed, summed across all reader threads. -- `ProfileEvent_ParquetMetadataCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times parquet metadata has been found in the cache. -- `ProfileEvent_ParquetMetadataCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times parquet metadata has not been found in the cache and had to be read from disk. -- `ProfileEvent_ParquetMetadataCacheWeightLost` ([UInt64](/reference/data-types/int-uint)) — Approximate number of bytes evicted from the parquet metadata cache. -- `ProfileEvent_IcebergIteratorInitializationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent on synchronous initialization of iceberg data iterators. -- `ProfileEvent_IcebergMetadataUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent on synchronous initialization of iceberg data iterators. -- `ProfileEvent_IcebergMetadataReturnedObjectInfos` ([UInt64](/reference/data-types/int-uint)) — Total number of returned object infos from iceberg iterator. -- `ProfileEvent_IcebergMinMaxNonPrunedDeleteFiles` ([UInt64](/reference/data-types/int-uint)) — Total number of accepted data files-position delete file pairs by minmax analysis from pairs suitable by partitioning and sequence number. -- `ProfileEvent_IcebergMinMaxPrunedDeleteFiles` ([UInt64](/reference/data-types/int-uint)) — Total number of accepted data files-position delete file pairs by minmax analysis from pairs suitable by partitioning and sequence number. -- `ProfileEvent_VectorSimilarityIndexCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times an index granule has been found in the vector index cache. -- `ProfileEvent_VectorSimilarityIndexCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times an index granule has not been found in the vector index cache and had to be read from disk. -- `ProfileEvent_VectorSimilarityIndexCacheWeightLost` ([UInt64](/reference/data-types/int-uint)) — Approximate number of bytes evicted from the vector index cache. -- `ProfileEvent_TextIndexReadDictionaryBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of times a text index dictionary block has been read from disk. -- `ProfileEvent_TextIndexTokensCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a text index token info has been found in the cache. -- `ProfileEvent_TextIndexTokensCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a text index token info has not been found in the cache. -- `ProfileEvent_TextIndexHeaderCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a header has been found in the cache. -- `ProfileEvent_TextIndexHeaderCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a header has not been found in the cache. -- `ProfileEvent_TextIndexPostingsCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a text index posting list has been found in the cache. -- `ProfileEvent_TextIndexPostingsCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a a text index posting list has not been found in the cache. -- `ProfileEvent_TextIndexReadSparseIndexBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of times a sparse index block has been read from the text index. -- `ProfileEvent_TextIndexReaderTotalMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent reading the text index. -- `ProfileEvent_TextIndexReadGranulesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent reading and analyzing granules of the text index. -- `ProfileEvent_TextIndexReadPostings` ([UInt64](/reference/data-types/int-uint)) — Number of times a posting list has been read from the text index. -- `ProfileEvent_TextIndexUsedEmbeddedPostings` ([UInt64](/reference/data-types/int-uint)) — Number of times a posting list embedded in the dictionary has been used. -- `ProfileEvent_TextIndexUseHint` ([UInt64](/reference/data-types/int-uint)) — Number of index granules where a direct reading from the text index was added as hint and was used. -- `ProfileEvent_TextIndexDiscardHint` ([UInt64](/reference/data-types/int-uint)) — Number of index granules where a direct reading from the text index was added as hint and was discarded due to low selectivity. -- `ProfileEvent_TextIndexDiscardPatternScan` ([UInt64](/reference/data-types/int-uint)) — Number of times pattern-based dictionary scan in a text index was discarded because the number of posting lists to read exceeded the threshold. -- `ProfileEvent_QueryConditionCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has been found in the query condition cache (and reading of marks can be skipped). Only updated for SELECT queries with SETTING use_query_condition_cache = 1. -- `ProfileEvent_QueryConditionCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times an entry has not been found in the query condition cache (and reading of mark cannot be skipped). Only updated for SELECT queries with SETTING use_query_condition_cache = 1. -- `ProfileEvent_QueryCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times a query result has been found in the query cache (and query computation was avoided). Only updated for SELECT queries with SETTING use_query_cache = 1. -- `ProfileEvent_QueryCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times a query result has not been found in the query cache (and required query computation). Only updated for SELECT queries with SETTING use_query_cache = 1. -- `ProfileEvent_QueryCacheAgeSeconds` ([UInt64](/reference/data-types/int-uint)) — The sum of ages of found query cache entries in seconds. The value is set both for hits and misses. -- `ProfileEvent_QueryCacheReadRows` ([UInt64](/reference/data-types/int-uint)) — The number of rows read from the query cache. -- `ProfileEvent_QueryCacheReadBytes` ([UInt64](/reference/data-types/int-uint)) — The number of (uncompressed) bytes read from the query cache. -- `ProfileEvent_QueryCacheWrittenRows` ([UInt64](/reference/data-types/int-uint)) — The number of rows saved into the query cache. -- `ProfileEvent_QueryCacheWrittenBytes` ([UInt64](/reference/data-types/int-uint)) — The number of (uncompressed) bytes saved into the query cache -- `ProfileEvent_CreatedReadBufferOrdinary` ([UInt64](/reference/data-types/int-uint)) — Number of times ordinary read buffer was created for reading data (while choosing among other read methods). -- `ProfileEvent_CreatedReadBufferDirectIO` ([UInt64](/reference/data-types/int-uint)) — Number of times a read buffer with O_DIRECT was created for reading data (while choosing among other read methods). -- `ProfileEvent_CreatedReadBufferDirectIOFailed` ([UInt64](/reference/data-types/int-uint)) — Number of times a read buffer with O_DIRECT was attempted to be created for reading data (while choosing among other read methods), but the OS did not allow it (due to lack of filesystem support or other reasons) and we fallen back to the ordinary reading method. -- `ProfileEvent_CreatedReadBufferMMap` ([UInt64](/reference/data-types/int-uint)) — Number of times a read buffer using 'mmap' was created for reading data (while choosing among other read methods). -- `ProfileEvent_CreatedReadBufferMMapFailed` ([UInt64](/reference/data-types/int-uint)) — Number of times a read buffer with 'mmap' was attempted to be created for reading data (while choosing among other read methods), but the OS did not allow it (due to lack of filesystem support or other reasons) and we fallen back to the ordinary reading method. -- `ProfileEvent_DiskReadElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for read syscall. This include reads from page cache. -- `ProfileEvent_DiskWriteElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for write syscall. This include writes to page cache. -- `ProfileEvent_NetworkReceiveElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for data to receive or receiving data from network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. -- `ProfileEvent_NetworkSendElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for data to send to network or sending data to network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. -- `ProfileEvent_NetworkReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Total number of bytes received from network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. -- `ProfileEvent_NetworkSendBytes` ([UInt64](/reference/data-types/int-uint)) — Total number of bytes send to network. Only ClickHouse-related network interaction is included, not by 3rd party libraries. -- `ProfileEvent_FilterPartsByVirtualColumnsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent in filterPartsByVirtualColumns function. -- `ProfileEvent_GlobalThreadPoolExpansions` ([UInt64](/reference/data-types/int-uint)) — Counts the total number of times new threads have been added to the global thread pool. This metric indicates the frequency of expansions in the global thread pool to accommodate increased processing demands. -- `ProfileEvent_GlobalThreadPoolShrinks` ([UInt64](/reference/data-types/int-uint)) — Counts the total number of times the global thread pool has shrunk by removing threads. This occurs when the number of idle threads exceeds max_thread_pool_free_size, indicating adjustments in the global thread pool size in response to decreased thread utilization. -- `ProfileEvent_GlobalThreadPoolThreadCreationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for new threads to start. -- `ProfileEvent_GlobalThreadPoolLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time threads have spent waiting for locks in the global thread pool. -- `ProfileEvent_GlobalThreadPoolJobs` ([UInt64](/reference/data-types/int-uint)) — Counts the number of jobs that have been pushed to the global thread pool. -- `ProfileEvent_GlobalThreadPoolJobWaitTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Measures the elapsed time from when a job is scheduled in the thread pool to when it is picked up for execution by a worker thread. This metric helps identify delays in job processing, indicating the responsiveness of the thread pool to new tasks. -- `ProfileEvent_LocalThreadPoolExpansions` ([UInt64](/reference/data-types/int-uint)) — Counts the total number of times threads have been borrowed from the global thread pool to expand local thread pools. -- `ProfileEvent_LocalThreadPoolShrinks` ([UInt64](/reference/data-types/int-uint)) — Counts the total number of times threads have been returned to the global thread pool from local thread pools. -- `ProfileEvent_LocalThreadPoolThreadCreationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time local thread pools have spent waiting to borrow a thread from the global pool. -- `ProfileEvent_LocalThreadPoolLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time threads have spent waiting for locks in the local thread pools. -- `ProfileEvent_LocalThreadPoolJobs` ([UInt64](/reference/data-types/int-uint)) — Counts the number of jobs that have been pushed to the local thread pools. -- `ProfileEvent_LocalThreadPoolBusyMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time threads have spent executing the actual work. -- `ProfileEvent_LocalThreadPoolJobWaitTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Measures the elapsed time from when a job is scheduled in the thread pool to when it is picked up for execution by a worker thread. This metric helps identify delays in job processing, indicating the responsiveness of the thread pool to new tasks. -- `ProfileEvent_DiskS3GetRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 GET and SELECT requests passed through throttler: blocked and not blocked. -- `ProfileEvent_DiskS3GetRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 GET and SELECT requests blocked by throttler. -- `ProfileEvent_DiskS3GetRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform DiskS3 GET and SELECT request throttling. -- `ProfileEvent_DiskS3PutRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 PUT, COPY, POST and LIST requests passed through throttler: blocked and not blocked. -- `ProfileEvent_DiskS3PutRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 PUT, COPY, POST and LIST requests blocked by throttler. -- `ProfileEvent_DiskS3PutRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform DiskS3 PUT, COPY, POST and LIST request throttling. -- `ProfileEvent_S3GetRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of S3 GET and SELECT requests passed through throttler: blocked and not blocked. -- `ProfileEvent_S3GetRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of S3 GET and SELECT requests blocked by throttler. -- `ProfileEvent_S3GetRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform S3 GET and SELECT request throttling. -- `ProfileEvent_S3PutRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of S3 PUT, COPY, POST and LIST requests passed through throttler: blocked and not blocked. -- `ProfileEvent_S3PutRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of S3 PUT, COPY, POST and LIST requests blocked by throttler. -- `ProfileEvent_S3PutRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform S3 PUT, COPY, POST and LIST request throttling. -- `ProfileEvent_ACMEAPIRequests` ([UInt64](/reference/data-types/int-uint)) — Number of ACME API requests issued. -- `ProfileEvent_ACMECertificateOrders` ([UInt64](/reference/data-types/int-uint)) — Number of ACME certificate orders issued. -- `ProfileEvent_DiskAzureReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for Azure disk read requests. -- `ProfileEvent_DiskAzureReadRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk read requests. -- `ProfileEvent_DiskAzureReadRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk read request errors. -- `ProfileEvent_DiskAzureReadRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk read requests throttled. -- `ProfileEvent_DiskAzureReadRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk read request redirects. -- `ProfileEvent_DiskAzureWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for Azure disk write requests. -- `ProfileEvent_DiskAzureWriteRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk write requests. -- `ProfileEvent_DiskAzureWriteRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk write request errors. -- `ProfileEvent_DiskAzureWriteRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk write requests throttled. -- `ProfileEvent_DiskAzureWriteRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk write request redirects. -- `ProfileEvent_AzureReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for Azure read requests. -- `ProfileEvent_AzureReadRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure read requests. -- `ProfileEvent_AzureReadRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of Azure read request errors. -- `ProfileEvent_AzureReadRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of Azure read requests throttled. -- `ProfileEvent_AzureReadRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure read request redirects. -- `ProfileEvent_AzureWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for Azure write requests. -- `ProfileEvent_AzureWriteRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure write requests. -- `ProfileEvent_AzureWriteRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of Azure write request errors. -- `ProfileEvent_AzureWriteRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of Azure write requests throttled. -- `ProfileEvent_AzureWriteRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure write request redirects. -- `ProfileEvent_AzureGetRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure GET requests passed through throttler: blocked and not blocked. -- `ProfileEvent_AzureGetRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of Azure GET requests blocked by throttler. -- `ProfileEvent_AzureGetRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure GET request throttling. -- `ProfileEvent_DiskAzureGetRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk GET requests passed through throttler: blocked and not blocked. -- `ProfileEvent_DiskAzureGetRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk GET requests blocked by throttler. -- `ProfileEvent_DiskAzureGetRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure disk GET request throttling. -- `ProfileEvent_AzurePutRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure PUT requests passed through throttler: blocked and not blocked. -- `ProfileEvent_AzurePutRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of Azure PUT requests blocked by throttler. -- `ProfileEvent_AzurePutRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure PUT request throttling. -- `ProfileEvent_DiskAzurePutRequestThrottlerCount` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk PUT requests passed through throttler: blocked and not blocked. -- `ProfileEvent_DiskAzurePutRequestThrottlerBlocked` ([UInt64](/reference/data-types/int-uint)) — Number of Azure disk PUT requests blocked by throttler. -- `ProfileEvent_DiskAzurePutRequestThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform Azure disk PUT request throttling. -- `ProfileEvent_RemoteReadThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_remote_read_network_bandwidth_for_server'/'max_remote_read_network_bandwidth' throttler. -- `ProfileEvent_RemoteReadThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_read_network_bandwidth_for_server'/'max_remote_read_network_bandwidth' throttling. -- `ProfileEvent_RemoteWriteThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_remote_write_network_bandwidth_for_server'/'max_remote_write_network_bandwidth' throttler. -- `ProfileEvent_RemoteWriteThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_write_network_bandwidth_for_server'/'max_remote_write_network_bandwidth' throttling. -- `ProfileEvent_LocalReadThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_local_read_bandwidth_for_server'/'max_local_read_bandwidth' throttler. -- `ProfileEvent_LocalReadThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_read_bandwidth_for_server'/'max_local_read_bandwidth' throttling. -- `ProfileEvent_LocalWriteThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_local_write_bandwidth_for_server'/'max_local_write_bandwidth' throttler. -- `ProfileEvent_LocalWriteThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_write_bandwidth_for_server'/'max_local_write_bandwidth' throttling. -- `ProfileEvent_BackupThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_backup_bandwidth_for_server' throttler. -- `ProfileEvent_BackupThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_backup_bandwidth_for_server' throttling. -- `ProfileEvent_MergesThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_merges_bandwidth_for_server' throttler. -- `ProfileEvent_MergesThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_merges_bandwidth_for_server' throttling. -- `ProfileEvent_MutationsThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_mutations_bandwidth_for_server' throttler. -- `ProfileEvent_MutationsThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_mutations_bandwidth_for_server' throttling. -- `ProfileEvent_UserThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_network_bandwidth_for_user' throttler. -- `ProfileEvent_UserThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_network_bandwidth_for_user' throttling. -- `ProfileEvent_AllUsersThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_network_bandwidth_for_all_users' throttler. -- `ProfileEvent_AllUsersThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_network_bandwidth_for_all_users' throttling. -- `ProfileEvent_QueryRemoteReadThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_remote_read_network_bandwidth' throttler. -- `ProfileEvent_QueryRemoteReadThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_read_network_bandwidth' throttling. -- `ProfileEvent_QueryRemoteWriteThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_remote_write_network_bandwidth' throttler. -- `ProfileEvent_QueryRemoteWriteThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_remote_write_network_bandwidth' throttling. -- `ProfileEvent_QueryLocalReadThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_local_read_bandwidth' throttler. -- `ProfileEvent_QueryLocalReadThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_read_bandwidth' throttling. -- `ProfileEvent_QueryLocalWriteThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_local_write_bandwidth' throttler. -- `ProfileEvent_QueryLocalWriteThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_local_write_bandwidth' throttling. -- `ProfileEvent_QueryBackupThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_backup_bandwidth' throttler. -- `ProfileEvent_QueryBackupThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_backup_bandwidth' throttling. -- `ProfileEvent_DistrCacheReadThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_distributed_cache_read_bandwidth_for_server' throttler. -- `ProfileEvent_DistrCacheReadThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_distributed_cache_read_bandwidth_for_server' throttling. -- `ProfileEvent_DistrCacheWriteThrottlerBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through 'max_distributed_cache_write_bandwidth_for_server' throttler. -- `ProfileEvent_DistrCacheWriteThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform 'max_distributed_cache_write_bandwidth_for_server' throttling. -- `ProfileEvent_ThrottlerSleepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was sleeping to conform all throttling settings. -- `ProfileEvent_ReadTasksWithAppliedPatches` ([UInt64](/reference/data-types/int-uint)) — Total number of read tasks for which there was any patch part applied -- `ProfileEvent_PatchesAppliedInAllReadTasks` ([UInt64](/reference/data-types/int-uint)) — Total number of applied patch parts among all read tasks -- `ProfileEvent_PatchesMergeAppliedInAllReadTasks` ([UInt64](/reference/data-types/int-uint)) — Total number of applied patch parts with Merge mode among all read tasks -- `ProfileEvent_PatchesJoinAppliedInAllReadTasks` ([UInt64](/reference/data-types/int-uint)) — Total number of applied patch parts with Join mode among all read tasks -- `ProfileEvent_PatchesReadRows` ([UInt64](/reference/data-types/int-uint)) — Total number of rows read from patch parts -- `ProfileEvent_PatchesReadUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Total number of uncompressed bytes read from patch parts -- `ProfileEvent_PatchesJoinRowsAddedToHashTable` ([UInt64](/reference/data-types/int-uint)) — Total number of rows added to hash tables when applying patch parts with Join mode -- `ProfileEvent_ApplyPatchesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent applying patch parts to blocks -- `ProfileEvent_ReadPatchesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent reading patch parts -- `ProfileEvent_BuildPatchesMergeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent building indexes for applying patch parts with Merge mode -- `ProfileEvent_BuildPatchesJoinMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent building indexes and hash tables for applying patch parts with Join mode -- `ProfileEvent_AnalyzePatchRangesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent analyzing index of patch parts -- `ProfileEvent_ReadTasksWithAppliedMutationsOnFly` ([UInt64](/reference/data-types/int-uint)) — Total number of read tasks for which there was any mutation applied on fly -- `ProfileEvent_MutationsAppliedOnFlyInAllReadTasks` ([UInt64](/reference/data-types/int-uint)) — Total number of applied mutations on-fly among all read tasks -- `ProfileEvent_PatchesAcquireLockTries` ([UInt64](/reference/data-types/int-uint)) — Total number of tries to acquire lock for executing lightweight updates -- `ProfileEvent_PatchesAcquireLockMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total number of microseconds spent to acquire lock for executing lightweight updates -- `ProfileEvent_DiskObjectStorageWaitBlobRemovalMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for pending blob removal after committing metadata transaction -- `ProfileEvent_SchedulerIOReadRequests` ([UInt64](/reference/data-types/int-uint)) — Resource requests passed through scheduler for IO reads. -- `ProfileEvent_SchedulerIOReadBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through scheduler for IO reads. -- `ProfileEvent_SchedulerIOReadWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for IO reads. -- `ProfileEvent_SchedulerIOWriteRequests` ([UInt64](/reference/data-types/int-uint)) — Resource requests passed through scheduler for IO writes. -- `ProfileEvent_SchedulerIOWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes passed through scheduler for IO writes. -- `ProfileEvent_SchedulerIOWriteWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for IO writes. -- `ProfileEvent_QueryMaskingRulesMatch` ([UInt64](/reference/data-types/int-uint)) — Number of times query masking rules was successfully matched. -- `ProfileEvent_ReplicatedPartFetches` ([UInt64](/reference/data-types/int-uint)) — Number of times a data part was downloaded from replica of a ReplicatedMergeTree table. -- `ProfileEvent_ReplicatedPartFailedFetches` ([UInt64](/reference/data-types/int-uint)) — Number of times a data part was failed to download from replica of a ReplicatedMergeTree table. -- `ProfileEvent_ObsoleteReplicatedParts` ([UInt64](/reference/data-types/int-uint)) — Number of times a data part was covered by another data part that has been fetched from a replica (so, we have marked a covered data part as obsolete and no longer needed). -- `ProfileEvent_ReplicatedPartMerges` ([UInt64](/reference/data-types/int-uint)) — Number of times data parts of ReplicatedMergeTree tables were successfully merged. -- `ProfileEvent_ReplicatedPartFetchesOfMerged` ([UInt64](/reference/data-types/int-uint)) — Number of times we prefer to download already merged part from replica of ReplicatedMergeTree table instead of performing a merge ourself (usually we prefer doing a merge ourself to save network traffic). This happens when we have not all source parts to perform a merge or when the data part is old enough. -- `ProfileEvent_ReplicatedPartMutations` ([UInt64](/reference/data-types/int-uint)) — Number of times data parts of ReplicatedMergeTree tables were successfully mutated. -- `ProfileEvent_ReplicatedPartChecks` ([UInt64](/reference/data-types/int-uint)) — Number of times we had to perform advanced search for a data part on replicas or to clarify the need of an existing data part. -- `ProfileEvent_ReplicatedPartChecksFailed` ([UInt64](/reference/data-types/int-uint)) — Number of times the advanced search for a data part on replicas did not give result or when unexpected part has been found and moved away. -- `ProfileEvent_ReplicatedDataLoss` ([UInt64](/reference/data-types/int-uint)) — Number of times a data part that we wanted doesn't exist on any replica (even on replicas that are offline right now). That data parts are definitely lost. This is normal due to asynchronous replication (if quorum inserts were not enabled), when the replica on which the data part was written was failed and when it became online after fail it doesn't contain that data part. -- `ProfileEvent_ReplicatedCoveredPartsInZooKeeperOnStart` ([UInt64](/reference/data-types/int-uint)) — For debugging purposes. Number of parts in ZooKeeper that have a covering part, but doesn't exist on disk. Checked on server start. -- `ProfileEvent_QuorumParts` ([UInt64](/reference/data-types/int-uint)) — Number of data parts written with quorum. It counts as one part for sync insert and maybe up to async inserts count for insert which flushes async inserts. -- `ProfileEvent_QuorumWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for quorum during inserts. -- `ProfileEvent_QuorumFailedInserts` ([UInt64](/reference/data-types/int-uint)) — Number of inserts failed due to quorum not reaching. -- `ProfileEvent_InsertedRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows INSERTed to all tables. -- `ProfileEvent_InsertedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes (uncompressed; for columns as they stored in memory) INSERTed to all tables. -- `ProfileEvent_DelayedInserts` ([UInt64](/reference/data-types/int-uint)) — Number of times the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition. -- `ProfileEvent_RejectedInserts` ([UInt64](/reference/data-types/int-uint)) — Number of times the INSERT of a block to a MergeTree table was rejected with 'Too many parts' exception due to high number of active data parts for partition. -- `ProfileEvent_DelayedInsertsMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total number of milliseconds spent while the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition. -- `ProfileEvent_DelayedMutations` ([UInt64](/reference/data-types/int-uint)) — Number of times the mutation of a MergeTree table was throttled due to high number of unfinished mutations for table. -- `ProfileEvent_RejectedMutations` ([UInt64](/reference/data-types/int-uint)) — Number of times the mutation of a MergeTree table was rejected with 'Too many mutations' exception due to high number of unfinished mutations for table. -- `ProfileEvent_DelayedMutationsMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total number of milliseconds spent while the mutation of a MergeTree table was throttled due to high number of unfinished mutations for table. -- `ProfileEvent_RejectedLightweightUpdates` ([UInt64](/reference/data-types/int-uint)) — Number of time the lightweight update was rejected due to too many uncompressed bytes in patches. -- `ProfileEvent_DistributedDelayedInserts` ([UInt64](/reference/data-types/int-uint)) — Number of times the INSERT of a block to a Distributed table was throttled due to high number of pending bytes. -- `ProfileEvent_DistributedRejectedInserts` ([UInt64](/reference/data-types/int-uint)) — Number of times the INSERT of a block to a Distributed table was rejected with 'Too many bytes' exception due to high number of pending bytes. -- `ProfileEvent_DistributedDelayedInsertsMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total number of milliseconds spent while the INSERT of a block to a Distributed table was throttled due to high number of pending bytes. -- `ProfileEvent_DuplicatedInsertedBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of the synchronous inserts to a *MergeTree table was deduplicated. -- `ProfileEvent_SelfDuplicatedAsyncInserts` ([UInt64](/reference/data-types/int-uint)) — Number of async inserts in the INSERTed block to a ReplicatedMergeTree table was self deduplicated. -- `ProfileEvent_DuplicatedAsyncInserts` ([UInt64](/reference/data-types/int-uint)) — Number of async inserts in the INSERTed block to a ReplicatedMergeTree table was deduplicated. -- `ProfileEvent_DuplicationElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent checking for duplication of INSERTed blocks to *MergeTree tables. -- `ProfileEvent_ZooKeeperInit` ([UInt64](/reference/data-types/int-uint)) — Number of times connection with ZooKeeper has been established. -- `ProfileEvent_ZooKeeperTransactions` ([UInt64](/reference/data-types/int-uint)) — Number of ZooKeeper operations, which include both read and write operations as well as multi-transactions. -- `ProfileEvent_ZooKeeperList` ([UInt64](/reference/data-types/int-uint)) — Number of 'list' (getChildren) requests to ZooKeeper. -- `ProfileEvent_ZooKeeperListRecursive` ([UInt64](/reference/data-types/int-uint)) — Number of 'listRecursive' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperCreate` ([UInt64](/reference/data-types/int-uint)) — Number of 'create' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperRemove` ([UInt64](/reference/data-types/int-uint)) — Number of 'remove' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperExists` ([UInt64](/reference/data-types/int-uint)) — Number of 'exists' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperGet` ([UInt64](/reference/data-types/int-uint)) — Number of 'get' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperSet` ([UInt64](/reference/data-types/int-uint)) — Number of 'set' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperMulti` ([UInt64](/reference/data-types/int-uint)) — Number of 'multi' requests to ZooKeeper (compound transactions). -- `ProfileEvent_ZooKeeperMultiRead` ([UInt64](/reference/data-types/int-uint)) — Number of read 'multi' requests to ZooKeeper (compound transactions). -- `ProfileEvent_ZooKeeperMultiWrite` ([UInt64](/reference/data-types/int-uint)) — Number of write 'multi' requests to ZooKeeper (compound transactions). -- `ProfileEvent_ZooKeeperCheck` ([UInt64](/reference/data-types/int-uint)) — Number of 'check' requests to ZooKeeper. Usually they don't make sense in isolation, only as part of a complex transaction. -- `ProfileEvent_ZooKeeperSync` ([UInt64](/reference/data-types/int-uint)) — Number of 'sync' requests to ZooKeeper. These requests are rarely needed or usable. -- `ProfileEvent_ZooKeeperReconfig` ([UInt64](/reference/data-types/int-uint)) — Number of 'reconfig' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperClose` ([UInt64](/reference/data-types/int-uint)) — Number of times connection with ZooKeeper has been closed voluntary. -- `ProfileEvent_ZooKeeperGetACL` ([UInt64](/reference/data-types/int-uint)) — Number of 'getACL' requests to ZooKeeper. -- `ProfileEvent_ZooKeeperWatchResponse` ([UInt64](/reference/data-types/int-uint)) — Number of times watch notification has been received from ZooKeeper. -- `ProfileEvent_ZooKeeperUserExceptions` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper related to the data (no node, bad version or similar). -- `ProfileEvent_ZooKeeperHardwareExceptions` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper related to network (connection loss or similar). -- `ProfileEvent_ZooKeeperOtherExceptions` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while working with ZooKeeper other than ZooKeeperUserExceptions and ZooKeeperHardwareExceptions. -- `ProfileEvent_ZooKeeperWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Number of microseconds spent waiting for responses from ZooKeeper after creating a request, summed across all the requesting threads. -- `ProfileEvent_ZooKeeperBytesSent` ([UInt64](/reference/data-types/int-uint)) — Number of bytes send over network while communicating with ZooKeeper. -- `ProfileEvent_ZooKeeperBytesReceived` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received over network while communicating with ZooKeeper. -- `ProfileEvent_DistributedConnectionTries` ([UInt64](/reference/data-types/int-uint)) — Total count of distributed connection attempts. -- `ProfileEvent_DistributedConnectionUsable` ([UInt64](/reference/data-types/int-uint)) — Total count of successful distributed connections to a usable server (with required table, but maybe stale). -- `ProfileEvent_DistributedConnectionFailTry` ([UInt64](/reference/data-types/int-uint)) — Total count when distributed connection fails with retry. -- `ProfileEvent_DistributedConnectionMissingTable` ([UInt64](/reference/data-types/int-uint)) — Number of times we rejected a replica from a distributed query, because it did not contain a table needed for the query. -- `ProfileEvent_DistributedConnectionStaleReplica` ([UInt64](/reference/data-types/int-uint)) — Number of times we rejected a replica from a distributed query, because some table needed for a query had replication lag higher than the configured threshold. -- `ProfileEvent_DistributedConnectionSkipReadOnlyReplica` ([UInt64](/reference/data-types/int-uint)) — Number of replicas skipped during INSERT into Distributed table due to replicas being read-only -- `ProfileEvent_DistributedConnectionFailAtAll` ([UInt64](/reference/data-types/int-uint)) — Total count when distributed connection fails after all retries finished. -- `ProfileEvent_Shards` ([UInt64](/reference/data-types/int-uint)) — The number of shards involved in a query, summed across all distributed tables and table functions. A single host is counted multiple times if it appears in multiple tables. The number counts the total expected number of shards, which includes skipped shards with the `skip_unavailable_shards` setting. -- `ProfileEvent_HedgedRequestsChangeReplica` ([UInt64](/reference/data-types/int-uint)) — Total count when timeout for changing replica expired in hedged requests. -- `ProfileEvent_SuspendSendingQueryToShard` ([UInt64](/reference/data-types/int-uint)) — Total count when sending query to shard was suspended when async_query_sending_for_remote is enabled. -- `ProfileEvent_CompileFunction` ([UInt64](/reference/data-types/int-uint)) — Number of times a compilation of generated LLVM code (to create fused function for complex expressions) was initiated. -- `ProfileEvent_CompiledFunctionExecute` ([UInt64](/reference/data-types/int-uint)) — Number of times a compiled function was executed. -- `ProfileEvent_CompileExpressionsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for compilation of expressions to LLVM code. -- `ProfileEvent_CompileExpressionsBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes used for expressions compilation. -- `ProfileEvent_ExecuteShellCommand` ([UInt64](/reference/data-types/int-uint)) — Number of shell command executions. -- `ProfileEvent_ExternalProcessingCompressedBytesTotal` ([UInt64](/reference/data-types/int-uint)) — Number of compressed bytes written by external processing (sorting/aggregating/joining) -- `ProfileEvent_ExternalProcessingUncompressedBytesTotal` ([UInt64](/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written by external processing (sorting/aggregating/joining) -- `ProfileEvent_ExternalProcessingFilesTotal` ([UInt64](/reference/data-types/int-uint)) — Number of files used by external processing (sorting/aggregating/joining) -- `ProfileEvent_ExternalSortWritePart` ([UInt64](/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for sorting in external memory. -- `ProfileEvent_ExternalSortMerge` ([UInt64](/reference/data-types/int-uint)) — Number of times temporary files were merged for sorting in external memory. -- `ProfileEvent_ExternalSortCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of compressed bytes written for sorting in external memory. -- `ProfileEvent_ExternalSortUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written for sorting in external memory. -- `ProfileEvent_ExternalAggregationWritePart` ([UInt64](/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for aggregation in external memory. -- `ProfileEvent_ExternalAggregationMerge` ([UInt64](/reference/data-types/int-uint)) — Number of times temporary files were merged for aggregation in external memory. -- `ProfileEvent_ExternalAggregationCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to disk for aggregation in external memory. -- `ProfileEvent_ExternalAggregationUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written to disk for aggregation in external memory. -- `ProfileEvent_ExternalJoinWritePart` ([UInt64](/reference/data-types/int-uint)) — Number of times a temporary file was written to disk for JOIN in external memory. -- `ProfileEvent_ExternalJoinMerge` ([UInt64](/reference/data-types/int-uint)) — Number of times temporary files were merged for JOIN in external memory. -- `ProfileEvent_ExternalJoinCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of compressed bytes written for JOIN in external memory. -- `ProfileEvent_ExternalJoinUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Amount of data (uncompressed, before compression) written for JOIN in external memory. -- `ProfileEvent_IcebergPartitionPrunedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of skipped files during Iceberg partition pruning -- `ProfileEvent_IcebergTrivialCountOptimizationApplied` ([UInt64](/reference/data-types/int-uint)) — Trivial count optimization applied while reading from Iceberg -- `ProfileEvent_IcebergVersionHintUsed` ([UInt64](/reference/data-types/int-uint)) — Number of times version-hint.text has been used. -- `ProfileEvent_IcebergMinMaxIndexPrunedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of skipped files by using MinMax index in Iceberg -- `ProfileEvent_JoinBuildTableRowCount` ([UInt64](/reference/data-types/int-uint)) — Total number of rows in the build table for a JOIN operation. -- `ProfileEvent_JoinProbeTableRowCount` ([UInt64](/reference/data-types/int-uint)) — Total number of rows in the probe table for a JOIN operation. -- `ProfileEvent_JoinResultRowCount` ([UInt64](/reference/data-types/int-uint)) — Total number of rows in the result of a JOIN operation. -- `ProfileEvent_JoinNonJoinedTransformBlockCount` ([UInt64](/reference/data-types/int-uint)) — Number of blocks emitted by NonJoinedBlocksTransform. -- `ProfileEvent_JoinNonJoinedTransformRowCount` ([UInt64](/reference/data-types/int-uint)) — Number of non-joined rows emitted by NonJoinedBlocksTransform. -- `ProfileEvent_JoinDelayedJoinedTransformBlockCount` ([UInt64](/reference/data-types/int-uint)) — Number of blocks emitted by DelayedJoinedBlocksWorkerTransform. -- `ProfileEvent_JoinDelayedJoinedTransformRowCount` ([UInt64](/reference/data-types/int-uint)) — Number of rows emitted by DelayedJoinedBlocksWorkerTransform. -- `ProfileEvent_JoinSpillingHashJoinSwitchedToGraceJoin` ([UInt64](/reference/data-types/int-uint)) — Number of times a (Concurrent)HashJoin was switched to GraceHashJoin due to memory limit in SpillingHashJoin. -- `ProfileEvent_JoinReorderMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent executing JOIN reordering algorithm. -- `ProfileEvent_JoinOptimizeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent executing JOIN plan optimizations. -- `ProfileEvent_QueryPlanOptimizeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent executing query plan optimizations. -- `ProfileEvent_DeltaLakePartitionPrunedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of skipped files during DeltaLake partition pruning -- `ProfileEvent_DeltaLakeSnapshotInitializations` ([UInt64](/reference/data-types/int-uint)) — Number of times a DeltaLake table snapshot was initialized (loaded from object storage) -- `ProfileEvent_DeltaLakeScannedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of files scanned during DeltaLake scan callbacks -- `ProfileEvent_SlowRead` ([UInt64](/reference/data-types/int-uint)) — Number of reads from a file that were slow. This indicate system overload. Thresholds are controlled by read_backoff_* settings. -- `ProfileEvent_ReadBackoff` ([UInt64](/reference/data-types/int-uint)) — Number of times the number of query processing threads was lowered due to slow reads. -- `ProfileEvent_ReplicaPartialShutdown` ([UInt64](/reference/data-types/int-uint)) — How many times Replicated table has to deinitialize its state due to session expiration in ZooKeeper. The state is reinitialized every time when ZooKeeper is available again. -- `ProfileEvent_IndexAnalysisRounds` ([UInt64](/reference/data-types/int-uint)) — Number of times index analysis was performed within the query. -- `ProfileEvent_SelectedParts` ([UInt64](/reference/data-types/int-uint)) — Number of data parts selected to read from a MergeTree table. -- `ProfileEvent_SelectedPartsTotal` ([UInt64](/reference/data-types/int-uint)) — Number of total data parts before selecting which ones to read from a MergeTree table. -- `ProfileEvent_SelectedRanges` ([UInt64](/reference/data-types/int-uint)) — Number of (non-adjacent) ranges in all data parts selected to read from a MergeTree table. -- `ProfileEvent_SelectedMarks` ([UInt64](/reference/data-types/int-uint)) — Number of marks (index granules) selected to read from a MergeTree table. -- `ProfileEvent_SelectedMarksTotal` ([UInt64](/reference/data-types/int-uint)) — Number of total marks (index granules) before selecting which ones to read from a MergeTree table. -- `ProfileEvent_SelectedRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows SELECTed from all tables. -- `ProfileEvent_SelectedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes (uncompressed; for columns as they stored in memory) SELECTed from all tables. -- `ProfileEvent_RowsReadByMainReader` ([UInt64](/reference/data-types/int-uint)) — Number of rows read from MergeTree tables by the main reader (after PREWHERE step). -- `ProfileEvent_RowsReadByPrewhereReaders` ([UInt64](/reference/data-types/int-uint)) — Number of rows read from MergeTree tables (in total) by prewhere readers. -- `ProfileEvent_LoadedDataParts` ([UInt64](/reference/data-types/int-uint)) — Number of data parts loaded by MergeTree tables during initialization. -- `ProfileEvent_LoadedDataPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Microseconds spent by MergeTree tables for loading data parts during initialization. -- `ProfileEvent_FilteringMarksWithPrimaryKeyProcessedMarks` ([UInt64](/reference/data-types/int-uint)) — Total marks processed during PK analysis. -- `ProfileEvent_FilteringMarksWithPrimaryKeyMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent filtering parts by PK. -- `ProfileEvent_FilteringMarksWithSecondaryKeysMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent filtering parts by skip indexes. -- `ProfileEvent_DistributedIndexAnalysisMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent during distributed index analysis -- `ProfileEvent_DistributedIndexAnalysisScheduledReplicas` ([UInt64](/reference/data-types/int-uint)) — Number of replicas (local replica will be accounted once) to which distributed index analysis has been scheduled -- `ProfileEvent_DistributedIndexAnalysisReplicaUnavailable` ([UInt64](/reference/data-types/int-uint)) — Number of times distributed index analysis failed on one of replicas without fallback (failed during connect) -- `ProfileEvent_DistributedIndexAnalysisReplicaFallback` ([UInt64](/reference/data-types/int-uint)) — Number of times distributed index analysis failed on one of replicas with fallback to local replica -- `ProfileEvent_DistributedIndexAnalysisParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts send for distributed index analysis -- `ProfileEvent_DistributedIndexAnalysisMissingParts` ([UInt64](/reference/data-types/int-uint)) — Number of missing parts during distributed index analysis that will be resolved locally -- `ProfileEvent_WaitMarksLoadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent loading marks -- `ProfileEvent_BackgroundLoadingMarksTasks` ([UInt64](/reference/data-types/int-uint)) — Number of background tasks for loading marks -- `ProfileEvent_MarksTasksFromCache` ([UInt64](/reference/data-types/int-uint)) — Number of times marks were loaded synchronously because they were already present in the cache. -- `ProfileEvent_LoadingMarksTasksCanceled` ([UInt64](/reference/data-types/int-uint)) — Number of times background tasks for loading marks were canceled -- `ProfileEvent_LoadedMarksFiles` ([UInt64](/reference/data-types/int-uint)) — Number of mark files loaded. -- `ProfileEvent_LoadedMarksCount` ([UInt64](/reference/data-types/int-uint)) — Number of marks loaded (total across columns). -- `ProfileEvent_LoadedMarksMemoryBytes` ([UInt64](/reference/data-types/int-uint)) — Size of in-memory representations of loaded marks. -- `ProfileEvent_MarkCacheEvictedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes evicted from the mark cache. -- `ProfileEvent_MarkCacheEvictedMarks` ([UInt64](/reference/data-types/int-uint)) — Number of marks evicted from the mark cache. -- `ProfileEvent_MarkCacheEvictedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of mark files evicted from the mark cache. -- `ProfileEvent_LoadedPrimaryIndexFiles` ([UInt64](/reference/data-types/int-uint)) — Number of primary index files loaded. -- `ProfileEvent_LoadedPrimaryIndexRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows of primary key loaded. -- `ProfileEvent_LoadedPrimaryIndexBytes` ([UInt64](/reference/data-types/int-uint)) — Number of rows of primary key loaded. -- `ProfileEvent_Merge` ([UInt64](/reference/data-types/int-uint)) — Number of launched background merges. -- `ProfileEvent_MergeSourceParts` ([UInt64](/reference/data-types/int-uint)) — Number of source parts scheduled for merges. -- `ProfileEvent_MergedRows` ([UInt64](/reference/data-types/int-uint)) — Rows read for background merges. This is the number of rows before merge. -- `ProfileEvent_MergedColumns` ([UInt64](/reference/data-types/int-uint)) — Number of columns merged during the horizontal stage of merges. -- `ProfileEvent_GatheredColumns` ([UInt64](/reference/data-types/int-uint)) — Number of columns gathered during the vertical stage of merges. -- `ProfileEvent_MergedProjections` ([UInt64](/reference/data-types/int-uint)) — Number of projections merged (not rebuilt) during MergeTree merges. -- `ProfileEvent_RebuiltProjections` ([UInt64](/reference/data-types/int-uint)) — Number of projections rebuilt from scratch during MergeTree merges. -- `ProfileEvent_MergedUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) that was read for background merges. This is the number before merge. -- `ProfileEvent_MergeWrittenRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows written during the merge. -- `ProfileEvent_MergeTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for background merges -- `ProfileEvent_MergeExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of background merges -- `ProfileEvent_MergeCommitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for committing merge results (part renaming, checksum verification, ZooKeeper updates) -- `ProfileEvent_MergeHorizontalStageTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for horizontal stage of background merges -- `ProfileEvent_MergeHorizontalStageExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of horizontal stage of background merges -- `ProfileEvent_MergeVerticalStageTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for vertical stage of background merges -- `ProfileEvent_MergeVerticalStageExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of vertical stage of background merges -- `ProfileEvent_MergeTextIndexStageTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for text index stage of background merges -- `ProfileEvent_MergeTextIndexStageExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of text index stage of background merges -- `ProfileEvent_MergeProjectionStageTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for projection stage of background merges -- `ProfileEvent_MergeProjectionStageExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of projection stage of background merges -- `ProfileEvent_MergePrewarmStageTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for prewarm stage of background merges -- `ProfileEvent_MergePrewarmStageExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of prewarm stage of background merges -- `ProfileEvent_MergesRejectedByMemoryLimit` ([UInt64](/reference/data-types/int-uint)) — Number of background merges rejected due to memory limit -- `ProfileEvent_MergingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while merging sorted columns -- `ProfileEvent_AggregatingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while aggregating sorted columns -- `ProfileEvent_CoalescingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while coalescing sorted columns -- `ProfileEvent_CollapsingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while collapsing sorted columns -- `ProfileEvent_ReplacingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while replacing sorted columns -- `ProfileEvent_SummingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while summing sorted columns -- `ProfileEvent_VersionedCollapsingSortedMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while version collapsing sorted columns -- `ProfileEvent_GatheringColumnMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent while gathering columns for vertical merge -- `ProfileEvent_MutationTotalParts` ([UInt64](/reference/data-types/int-uint)) — Number of total parts for which mutations tried to be applied -- `ProfileEvent_MutationUntouchedParts` ([UInt64](/reference/data-types/int-uint)) — Number of total parts for which mutations tried to be applied but which was completely skipped according to predicate -- `ProfileEvent_MutationCreatedEmptyParts` ([UInt64](/reference/data-types/int-uint)) — Number of total parts which were replaced to empty parts instead of running mutation -- `ProfileEvent_MutatedRows` ([UInt64](/reference/data-types/int-uint)) — Rows read for mutations. This is the number of rows before mutation -- `ProfileEvent_MutatedUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) that was read for mutations. This is the number before mutation. -- `ProfileEvent_MutationAffectedRowsUpperBound` ([UInt64](/reference/data-types/int-uint)) — The upper bound of number of rows that were affected by mutation (e.g. number of rows that satisfy the predicate of UPDATE or DELETE mutation). The actual number may be slightly less -- `ProfileEvent_MutationTotalMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for mutations. -- `ProfileEvent_MutationExecuteMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total busy time spent for execution of mutations. -- `ProfileEvent_MutationCommitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for committing mutation results (part renaming, checksum verification, ZooKeeper updates) -- `ProfileEvent_MutationAllPartColumns` ([UInt64](/reference/data-types/int-uint)) — Number of times when task to mutate all columns in part was created -- `ProfileEvent_MutationSomePartColumns` ([UInt64](/reference/data-types/int-uint)) — Number of times when task to mutate some columns in part was created -- `ProfileEvent_MutateTaskProjectionsCalculationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent calculating projections in mutations -- `ProfileEvent_MergeTreeDataWriterRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows INSERTed to MergeTree tables. -- `ProfileEvent_MergeTreeDataWriterUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) INSERTed to MergeTree tables. -- `ProfileEvent_MergeTreeDataWriterCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes written to filesystem for data INSERTed to MergeTree tables. -- `ProfileEvent_MergeTreeDataWriterBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables. Each block forms a data part of level zero. -- `ProfileEvent_MergeTreeDataWriterBlocksAlreadySorted` ([UInt64](/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables that appeared to be already sorted. -- `ProfileEvent_MergeMutateBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in executeStep() for MergeMutate executor tasks. -- `ProfileEvent_MergeMutateBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in cancel() for MergeMutate executor tasks. -- `ProfileEvent_MergeMutateBackgroundExecutorTaskResetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent resetting task for MergeMutate executor. -- `ProfileEvent_MergeMutateBackgroundExecutorWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for completion in MergeMutate executor. -- `ProfileEvent_MoveBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in executeStep() for Move executor tasks. -- `ProfileEvent_MoveBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in cancel() for Move executor tasks. -- `ProfileEvent_MoveBackgroundExecutorTaskResetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent resetting task for Move executor. -- `ProfileEvent_MoveBackgroundExecutorWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for completion in Move executor. -- `ProfileEvent_FetchBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in executeStep() for Fetch executor tasks. -- `ProfileEvent_FetchBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in cancel() for Fetch executor tasks. -- `ProfileEvent_FetchBackgroundExecutorTaskResetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent resetting task for Fetch executor. -- `ProfileEvent_FetchBackgroundExecutorWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for completion in Fetch executor. -- `ProfileEvent_CommonBackgroundExecutorTaskExecuteStepMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in executeStep() for Common executor tasks. -- `ProfileEvent_CommonBackgroundExecutorTaskCancelMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in cancel() for Common executor tasks. -- `ProfileEvent_CommonBackgroundExecutorTaskResetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent resetting task for Common executor. -- `ProfileEvent_CommonBackgroundExecutorWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for completion in Common executor. -- `ProfileEvent_MergeTreeDataWriterSkipIndicesCalculationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent calculating skip indices -- `ProfileEvent_MergeTreeDataWriterStatisticsCalculationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent calculating statistics -- `ProfileEvent_MergeTreeDataWriterSortingBlocksMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent sorting blocks -- `ProfileEvent_MergeTreeDataWriterMergingBlocksMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent merging input blocks (for special MergeTree engines) -- `ProfileEvent_MergeTreeDataWriterProjectionsCalculationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent calculating projections -- `ProfileEvent_MergeTreeDataProjectionWriterSortingBlocksMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent sorting blocks (for projection it might be a key different from table's sorting key) -- `ProfileEvent_MergeTreeDataProjectionWriterMergingBlocksMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent merging blocks -- `ProfileEvent_InsertedWideParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts inserted in Wide format. -- `ProfileEvent_InsertedCompactParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts inserted in Compact format. -- `ProfileEvent_MergedIntoWideParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts merged into Wide format. -- `ProfileEvent_MergedIntoCompactParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts merged into Compact format. -- `ProfileEvent_MergeTreeDataProjectionWriterRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows INSERTed to MergeTree tables projection. -- `ProfileEvent_MergeTreeDataProjectionWriterUncompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Uncompressed bytes (for columns as they stored in memory) INSERTed to MergeTree tables projection. -- `ProfileEvent_MergeTreeDataProjectionWriterCompressedBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes written to filesystem for data INSERTed to MergeTree tables projection. -- `ProfileEvent_MergeTreeDataProjectionWriterBlocks` ([UInt64](/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables projection. Each block forms a data part of level zero. -- `ProfileEvent_MergeTreeDataProjectionWriterBlocksAlreadySorted` ([UInt64](/reference/data-types/int-uint)) — Number of blocks INSERTed to MergeTree tables projection that appeared to be already sorted. -- `ProfileEvent_CannotRemoveEphemeralNode` ([UInt64](/reference/data-types/int-uint)) — Number of times an error happened while trying to remove ephemeral node. This is not an issue, because our implementation of ZooKeeper library guarantee that the session will expire and the node will be removed. -- `ProfileEvent_RegexpWithMultipleNeedlesCreated` ([UInt64](/reference/data-types/int-uint)) — Regular expressions with multiple needles (VectorScan library) compiled. -- `ProfileEvent_RegexpWithMultipleNeedlesGlobalCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times we fetched compiled regular expression with multiple needles (VectorScan library) from the global cache. -- `ProfileEvent_RegexpWithMultipleNeedlesGlobalCacheMiss` ([UInt64](/reference/data-types/int-uint)) — Number of times we failed to fetch compiled regular expression with multiple needles (VectorScan library) from the global cache. -- `ProfileEvent_RegexpLocalCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times we fetched compiled regular expression from a local cache. -- `ProfileEvent_RegexpLocalCacheMiss` ([UInt64](/reference/data-types/int-uint)) — Number of times we failed to fetch compiled regular expression from a local cache. -- `ProfileEvent_ContextLock` ([UInt64](/reference/data-types/int-uint)) — Number of times the lock of Context was acquired or tried to acquire. This is global lock. -- `ProfileEvent_ContextLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Context lock wait time in microseconds -- `ProfileEvent_StorageBufferFlush` ([UInt64](/reference/data-types/int-uint)) — Number of times a buffer in a 'Buffer' table was flushed. -- `ProfileEvent_StorageBufferErrorOnFlush` ([UInt64](/reference/data-types/int-uint)) — Number of times a buffer in the 'Buffer' table has not been able to flush due to error writing in the destination table. -- `ProfileEvent_StorageBufferPassedAllMinThresholds` ([UInt64](/reference/data-types/int-uint)) — Number of times a criteria on min thresholds has been reached to flush a buffer in a 'Buffer' table. -- `ProfileEvent_StorageBufferPassedTimeMaxThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times a criteria on max time threshold has been reached to flush a buffer in a 'Buffer' table. -- `ProfileEvent_StorageBufferPassedRowsMaxThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times a criteria on max rows threshold has been reached to flush a buffer in a 'Buffer' table. -- `ProfileEvent_StorageBufferPassedBytesMaxThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times a criteria on max bytes threshold has been reached to flush a buffer in a 'Buffer' table. -- `ProfileEvent_StorageBufferPassedTimeFlushThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times background-only flush threshold on time has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. -- `ProfileEvent_StorageBufferPassedRowsFlushThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times background-only flush threshold on rows has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. -- `ProfileEvent_StorageBufferPassedBytesFlushThreshold` ([UInt64](/reference/data-types/int-uint)) — Number of times background-only flush threshold on bytes has been reached to flush a buffer in a 'Buffer' table. This is expert-only metric. If you read this and you are not an expert, stop reading. -- `ProfileEvent_StorageBufferLayerLockReadersWaitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Time for waiting for Buffer layer during reading. -- `ProfileEvent_StorageBufferLayerLockWritersWaitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Time for waiting free Buffer layer to write to (can be used to tune Buffer layers). -- `ProfileEvent_SystemLogErrorOnFlush` ([UInt64](/reference/data-types/int-uint)) — Number of times any of the system logs have failed to flush to the corresponding system table. Attempts to flush are repeated. -- `ProfileEvent_DictCacheKeysRequested` ([UInt64](/reference/data-types/int-uint)) — Number of keys requested from the data source for the dictionaries of 'cache' types. -- `ProfileEvent_DictCacheKeysRequestedMiss` ([UInt64](/reference/data-types/int-uint)) — Number of keys requested from the data source for dictionaries of 'cache' types but not found in the data source. -- `ProfileEvent_DictCacheKeysRequestedFound` ([UInt64](/reference/data-types/int-uint)) — Number of keys requested from the data source for dictionaries of 'cache' types and found in the data source. -- `ProfileEvent_DictCacheKeysExpired` ([UInt64](/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and found in the cache but they were obsolete. -- `ProfileEvent_DictCacheKeysNotFound` ([UInt64](/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and not found. -- `ProfileEvent_DictCacheKeysHit` ([UInt64](/reference/data-types/int-uint)) — Number of keys looked up in the dictionaries of 'cache' types and found in the cache. -- `ProfileEvent_DictCacheRequestTimeNs` ([UInt64](/reference/data-types/int-uint)) — Number of nanoseconds spend in querying the external data sources for the dictionaries of 'cache' types. -- `ProfileEvent_DictCacheRequests` ([UInt64](/reference/data-types/int-uint)) — Number of bulk requests to the external data sources for the dictionaries of 'cache' types. -- `ProfileEvent_DictCacheLockWriteNs` ([UInt64](/reference/data-types/int-uint)) — Number of nanoseconds spend in waiting for write lock to update the data for the dictionaries of 'cache' types. -- `ProfileEvent_DictCacheLockReadNs` ([UInt64](/reference/data-types/int-uint)) — Number of nanoseconds spend in waiting for read lock to lookup the data for the dictionaries of 'cache' types. -- `ProfileEvent_DistributedSyncInsertionTimeoutExceeded` ([UInt64](/reference/data-types/int-uint)) — A timeout has exceeded while waiting for shards during synchronous insertion into a Distributed table (with 'distributed_foreground_insert' = 1) -- `ProfileEvent_DistributedAsyncInsertionFailures` ([UInt64](/reference/data-types/int-uint)) — Number of failures for asynchronous insertion into a Distributed table (with 'distributed_foreground_insert' = 0) -- `ProfileEvent_DataAfterMergeDiffersFromReplica` ([UInt64](/reference/data-types/int-uint)) — Number of times data after merge is not byte-identical to the data on another replicas. There could be several reasons: - 1. Using newer version of compression library after server update. - 2. Using another compression method. - 3. Non-deterministic compression algorithm (highly unlikely). - 4. Non-deterministic merge algorithm due to logical error in code. - 5. Data corruption in memory due to bug in code. - 6. Data corruption in memory due to hardware issue. - 7. Manual modification of source data after server startup. - 8. Manual modification of checksums stored in ZooKeeper. - 9. Part format related settings like 'enable_mixed_granularity_parts' are different on different replicas. - The server successfully detected this situation and will download merged part from the replica to force the byte-identical result. -- `ProfileEvent_DataAfterMutationDiffersFromReplica` ([UInt64](/reference/data-types/int-uint)) — Number of times data after mutation is not byte-identical to the data on other replicas. In addition to the reasons described in 'DataAfterMergeDiffersFromReplica', it is also possible due to non-deterministic mutation. -- `ProfileEvent_PolygonsAddedToPool` ([UInt64](/reference/data-types/int-uint)) — A polygon has been added to the cache (pool) for the 'pointInPolygon' function. -- `ProfileEvent_PolygonsInPoolAllocatedBytes` ([UInt64](/reference/data-types/int-uint)) — The number of bytes for polygons added to the cache (pool) for the 'pointInPolygon' function. -- `ProfileEvent_NaiveBayesClassifierModelsLoaded` ([UInt64](/reference/data-types/int-uint)) — Number of Naive Bayes Classifier models loaded. -- `ProfileEvent_NaiveBayesClassifierModelsAllocatedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes allocated for Naive Bayes Classifier models. -- `ProfileEvent_USearchAddCount` ([UInt64](/reference/data-types/int-uint)) — Number of vectors added to usearch indexes. -- `ProfileEvent_USearchAddVisitedMembers` ([UInt64](/reference/data-types/int-uint)) — Number of nodes visited when adding vectors to usearch indexes. -- `ProfileEvent_USearchAddComputedDistances` ([UInt64](/reference/data-types/int-uint)) — Number of times distance was computed when adding vectors to usearch indexes. -- `ProfileEvent_USearchSearchCount` ([UInt64](/reference/data-types/int-uint)) — Number of search operations performed in usearch indexes. -- `ProfileEvent_USearchSearchVisitedMembers` ([UInt64](/reference/data-types/int-uint)) — Number of nodes visited when searching in usearch indexes. -- `ProfileEvent_USearchSearchComputedDistances` ([UInt64](/reference/data-types/int-uint)) — Number of times distance was computed when searching usearch indexes. -- `ProfileEvent_RWLockAcquiredReadLocks` ([UInt64](/reference/data-types/int-uint)) — Number of times a read lock was acquired (in a heavy RWLock). -- `ProfileEvent_RWLockAcquiredWriteLocks` ([UInt64](/reference/data-types/int-uint)) — Number of times a write lock was acquired (in a heavy RWLock). -- `ProfileEvent_RWLockReadersWaitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for a read lock to be acquired (in a heavy RWLock). -- `ProfileEvent_RWLockWritersWaitMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for a write lock to be acquired (in a heavy RWLock). -- `ProfileEvent_DNSError` ([UInt64](/reference/data-types/int-uint)) — Total count of errors in DNS resolution -- `ProfileEvent_PartsLockHoldMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent holding data parts lock in MergeTree tables -- `ProfileEvent_PartsLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for data parts lock in MergeTree tables -- `ProfileEvent_PartsLocks` ([UInt64](/reference/data-types/int-uint)) — Number of times data parts lock has been acquired for MergeTree tables -- `ProfileEvent_SharedPartsLockHoldMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent holding shared data parts lock in MergeTree tables -- `ProfileEvent_SharedPartsLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for shared data parts lock in MergeTree tables -- `ProfileEvent_SharedPartsLocks` ([UInt64](/reference/data-types/int-uint)) — Number of times shared data parts lock has been acquired for MergeTree tables -- `ProfileEvent_RealTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total (wall clock) time spent in processing (queries and other tasks) threads (note that this is a sum). -- `ProfileEvent_UserTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent in processing (queries and other tasks) threads executing CPU instructions in user mode. This includes time CPU pipeline was stalled due to main memory access, cache misses, branch mispredictions, hyper-threading, etc. -- `ProfileEvent_SystemTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent in processing (queries and other tasks) threads executing CPU instructions in OS kernel mode. This is time spent in syscalls, excluding waiting time during blocking syscalls. -- `ProfileEvent_MemoryOvercommitWaitTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent in waiting for memory to be freed in OvercommitTracker. -- `ProfileEvent_MemoryAllocatorPurge` ([UInt64](/reference/data-types/int-uint)) — Total number of times memory allocator purge was requested -- `ProfileEvent_MemoryAllocatorPurgeTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent for memory allocator purge -- `ProfileEvent_SoftPageFaults` ([UInt64](/reference/data-types/int-uint)) — The number of soft page faults in query execution threads. Soft page fault usually means a miss in the memory allocator cache, which requires a new memory mapping from the OS and subsequent allocation of a page of physical memory. -- `ProfileEvent_HardPageFaults` ([UInt64](/reference/data-types/int-uint)) — The number of hard page faults in query execution threads. High values indicate either that you forgot to turn off swap on your server, or eviction of memory pages of the ClickHouse binary during very high memory pressure, or successful usage of the 'mmap' read method for the tables data. -- `ProfileEvent_OSIOWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a thread spent waiting for a result of IO operation, from the OS point of view. This is real IO that doesn't include page cache. -- `ProfileEvent_OSCPUWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a thread was ready for execution but waiting to be scheduled by OS, from the OS point of view. -- `ProfileEvent_OSCPUVirtualTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — CPU time spent seen by OS. Does not include involuntary waits due to virtualization. -- `ProfileEvent_OSReadBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read from disks or block devices. Doesn't include bytes read from page cache. May include excessive data due to block size, readahead, etc. -- `ProfileEvent_OSWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to disks or block devices. Doesn't include bytes that are in page cache dirty pages. May not include data that was written by OS asynchronously. -- `ProfileEvent_OSReadChars` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read from filesystem, including page cache, as well as network and other files. -- `ProfileEvent_OSWriteChars` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to filesystem, including page cache, as well as network and other files. -- `ProfileEvent_ParallelReplicasHandleRequestMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent processing requests for marks from replicas -- `ProfileEvent_ParallelReplicasHandleAnnouncementMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent processing replicas announcements -- `ProfileEvent_ParallelReplicasAnnouncementMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to send an announcement -- `ProfileEvent_ParallelReplicasReadRequestMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent for read requests -- `ProfileEvent_ParallelReplicasReadAssignedMarks` ([UInt64](/reference/data-types/int-uint)) — Sum across all replicas of how many of scheduled marks were assigned by consistent hash -- `ProfileEvent_ParallelReplicasReadUnassignedMarks` ([UInt64](/reference/data-types/int-uint)) — Sum across all replicas of how many unassigned marks were scheduled -- `ProfileEvent_ParallelReplicasReadAssignedForStealingMarks` ([UInt64](/reference/data-types/int-uint)) — Sum across all replicas of how many of scheduled marks were assigned for stealing by consistent hash -- `ProfileEvent_ParallelReplicasReadMarks` ([UInt64](/reference/data-types/int-uint)) — How many marks were read by the given replica -- `ProfileEvent_ParallelReplicasStealingByHashMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent collecting segments meant for stealing by hash -- `ProfileEvent_ParallelReplicasProcessingPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent processing data parts -- `ProfileEvent_ParallelReplicasStealingLeftoversMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent collecting orphaned segments -- `ProfileEvent_ParallelReplicasCollectingOwnedSegmentsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent collecting segments meant by hash -- `ProfileEvent_ParallelReplicasNumRequests` ([UInt64](/reference/data-types/int-uint)) — Number of requests to the initiator. -- `ProfileEvent_ParallelReplicasDeniedRequests` ([UInt64](/reference/data-types/int-uint)) — Number of completely denied requests to the initiator -- `ProfileEvent_CacheWarmerBytesDownloaded` ([UInt64](/reference/data-types/int-uint)) — Amount of data fetched into filesystem cache by dedicated background threads. -- `ProfileEvent_CacheWarmerDataPartsDownloaded` ([UInt64](/reference/data-types/int-uint)) — Number of data parts that were fully fetched by CacheWarmer. -- `ProfileEvent_IgnoredColdParts` ([UInt64](/reference/data-types/int-uint)) — See setting ignore_cold_parts_seconds. Number of times read queries ignored very new parts that weren't pulled into cache by CacheWarmer yet. -- `ProfileEvent_PreferredWarmedUnmergedParts` ([UInt64](/reference/data-types/int-uint)) — See setting prefer_warmed_unmerged_parts_seconds. Number of times read queries used outdated pre-merge parts that are in cache instead of merged part that wasn't pulled into cache by CacheWarmer yet. -- `ProfileEvent_PerfCPUCycles` ([UInt64](/reference/data-types/int-uint)) — Total cycles. Be wary of what happens during CPU frequency scaling. -- `ProfileEvent_PerfInstructions` ([UInt64](/reference/data-types/int-uint)) — Retired instructions. Be careful, these can be affected by various issues, most notably hardware interrupt counts. -- `ProfileEvent_PerfCacheReferences` ([UInt64](/reference/data-types/int-uint)) — Cache accesses. Usually, this indicates Last Level Cache accesses, but this may vary depending on your CPU. This may include prefetches and coherency messages; again this depends on the design of your CPU. -- `ProfileEvent_PerfCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Cache misses. Usually this indicates Last Level Cache misses; this is intended to be used in conjunction with the PERFCOUNTHWCACHEREFERENCES event to calculate cache miss rates. -- `ProfileEvent_PerfBranchInstructions` ([UInt64](/reference/data-types/int-uint)) — Retired branch instructions. Prior to Linux 2.6.35, this used the wrong event on AMD processors. -- `ProfileEvent_PerfBranchMisses` ([UInt64](/reference/data-types/int-uint)) — Mispredicted branch instructions. -- `ProfileEvent_PerfBusCycles` ([UInt64](/reference/data-types/int-uint)) — Bus cycles, which can be different from total cycles. -- `ProfileEvent_PerfStalledCyclesFrontend` ([UInt64](/reference/data-types/int-uint)) — Stalled cycles during issue. -- `ProfileEvent_PerfStalledCyclesBackend` ([UInt64](/reference/data-types/int-uint)) — Stalled cycles during retirement. -- `ProfileEvent_PerfRefCPUCycles` ([UInt64](/reference/data-types/int-uint)) — Total cycles; not affected by CPU frequency scaling. -- `ProfileEvent_PerfCPUClock` ([UInt64](/reference/data-types/int-uint)) — The CPU clock, a high-resolution per-CPU timer -- `ProfileEvent_PerfTaskClock` ([UInt64](/reference/data-types/int-uint)) — A clock count specific to the task that is running -- `ProfileEvent_PerfContextSwitches` ([UInt64](/reference/data-types/int-uint)) — Number of context switches -- `ProfileEvent_PerfCPUMigrations` ([UInt64](/reference/data-types/int-uint)) — Number of times the process has migrated to a new CPU -- `ProfileEvent_PerfAlignmentFaults` ([UInt64](/reference/data-types/int-uint)) — Number of alignment faults. These happen when unaligned memory accesses happen; the kernel can handle these but it reduces performance. This happens only on some architectures (never on x86). -- `ProfileEvent_PerfEmulationFaults` ([UInt64](/reference/data-types/int-uint)) — Number of emulation faults. The kernel sometimes traps on unimplemented instructions and emulates them for user space. This can negatively impact performance. -- `ProfileEvent_PerfMinEnabledTime` ([UInt64](/reference/data-types/int-uint)) — For all events, minimum time that an event was enabled. Used to track event multiplexing influence -- `ProfileEvent_PerfMinEnabledRunningTime` ([UInt64](/reference/data-types/int-uint)) — Running time for event with minimum enabled time. Used to track the amount of event multiplexing -- `ProfileEvent_PerfDataTLBReferences` ([UInt64](/reference/data-types/int-uint)) — Data TLB references -- `ProfileEvent_PerfDataTLBMisses` ([UInt64](/reference/data-types/int-uint)) — Data TLB misses -- `ProfileEvent_PerfInstructionTLBReferences` ([UInt64](/reference/data-types/int-uint)) — Instruction TLB references -- `ProfileEvent_PerfInstructionTLBMisses` ([UInt64](/reference/data-types/int-uint)) — Instruction TLB misses -- `ProfileEvent_PerfLocalMemoryReferences` ([UInt64](/reference/data-types/int-uint)) — Local NUMA node memory reads -- `ProfileEvent_PerfLocalMemoryMisses` ([UInt64](/reference/data-types/int-uint)) — Local NUMA node memory read misses -- `ProfileEvent_CannotWriteToWriteBufferDiscard` ([UInt64](/reference/data-types/int-uint)) — Number of stack traces dropped by query profiler or signal handler because pipe is full or cannot write to pipe. -- `ProfileEvent_QueryProfilerSignalOverruns` ([UInt64](/reference/data-types/int-uint)) — Number of times we drop processing of a query profiler signal due to overrun plus the number of signals that OS has not delivered due to overrun. -- `ProfileEvent_QueryProfilerConcurrencyOverruns` ([UInt64](/reference/data-types/int-uint)) — Number of times we drop processing of a query profiler signal due to too many concurrent query profilers in other threads, which may indicate overload. -- `ProfileEvent_QueryProfilerRuns` ([UInt64](/reference/data-types/int-uint)) — Number of times QueryProfiler had been run. -- `ProfileEvent_QueryProfilerErrors` ([UInt64](/reference/data-types/int-uint)) — Invalid memory accesses during asynchronous stack unwinding. -- `ProfileEvent_CreatedLogEntryForMerge` ([UInt64](/reference/data-types/int-uint)) — Successfully created log entry to merge parts in ReplicatedMergeTree. -- `ProfileEvent_NotCreatedLogEntryForMerge` ([UInt64](/reference/data-types/int-uint)) — Log entry to merge parts in ReplicatedMergeTree is not created due to concurrent log update by another replica. -- `ProfileEvent_CreatedLogEntryForMutation` ([UInt64](/reference/data-types/int-uint)) — Successfully created log entry to mutate parts in ReplicatedMergeTree. -- `ProfileEvent_NotCreatedLogEntryForMutation` ([UInt64](/reference/data-types/int-uint)) — Log entry to mutate parts in ReplicatedMergeTree is not created due to concurrent log update by another replica. -- `ProfileEvent_S3ReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of GET and HEAD requests to S3 storage. -- `ProfileEvent_S3ReadRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of GET and HEAD requests to S3 storage. -- `ProfileEvent_S3ReadRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of non-throttling errors in GET and HEAD requests to S3 storage. -- `ProfileEvent_S3ReadRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of 429 and 503 errors in GET and HEAD requests to S3 storage. -- `ProfileEvent_S3ReadRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of redirects in GET and HEAD requests to S3 storage. -- `ProfileEvent_S3ReadRequestAttempts` ([UInt64](/reference/data-types/int-uint)) — Number of attempts for GET and HEAD requests, including the initial try and any retries, but excluding retries performed internally by the S3 retry strategy -- `ProfileEvent_S3ReadRequestRetryableErrors` ([UInt64](/reference/data-types/int-uint)) — Number of retryable errors for GET and HEAD requests, excluding retries performed internally by the S3 retry strategy -- `ProfileEvent_S3WriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of POST, DELETE, PUT and PATCH requests to S3 storage. -- `ProfileEvent_S3WriteRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of POST, DELETE, PUT and PATCH requests to S3 storage. -- `ProfileEvent_S3WriteRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of non-throttling errors in POST, DELETE, PUT and PATCH requests to S3 storage. -- `ProfileEvent_S3WriteRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of 429 and 503 errors in POST, DELETE, PUT and PATCH requests to S3 storage. -- `ProfileEvent_S3WriteRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of redirects in POST, DELETE, PUT and PATCH requests to S3 storage. -- `ProfileEvent_S3WriteRequestAttempts` ([UInt64](/reference/data-types/int-uint)) — Number of attempts for POST, DELETE, PUT and PATCH requests, including the initial try and any retries, but excluding retries performed internally by the retry strategy -- `ProfileEvent_S3WriteRequestRetryableErrors` ([UInt64](/reference/data-types/int-uint)) — Number of retryable errors for POST, DELETE, PUT and PATCH requests, excluding retries performed internally by the retry strategy -- `ProfileEvent_DiskS3ReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of GET and HEAD requests to DiskS3 storage. -- `ProfileEvent_DiskS3ReadRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of GET and HEAD requests to DiskS3 storage. -- `ProfileEvent_DiskS3ReadRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of non-throttling errors in GET and HEAD requests to DiskS3 storage. -- `ProfileEvent_DiskS3ReadRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of 429 and 503 errors in GET and HEAD requests to DiskS3 storage. -- `ProfileEvent_DiskS3ReadRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of redirects in GET and HEAD requests to DiskS3 storage. -- `ProfileEvent_DiskS3ReadRequestAttempts` ([UInt64](/reference/data-types/int-uint)) — Number of attempts for GET and HEAD requests to DiskS3 storage, including the initial try and any retries, but excluding retries performed internally by the S3 retry strategy -- `ProfileEvent_DiskS3ReadRequestRetryableErrors` ([UInt64](/reference/data-types/int-uint)) — Number of retryable errors for GET and HEAD requests to DiskS3 storage, excluding retries performed internally by the S3 retry strategy -- `ProfileEvent_DiskS3WriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of POST, DELETE, PUT and PATCH requests to DiskS3 storage. -- `ProfileEvent_DiskS3WriteRequestsCount` ([UInt64](/reference/data-types/int-uint)) — Number of POST, DELETE, PUT and PATCH requests to DiskS3 storage. -- `ProfileEvent_DiskS3WriteRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of non-throttling errors in POST, DELETE, PUT and PATCH requests to DiskS3 storage. -- `ProfileEvent_DiskS3WriteRequestsThrottling` ([UInt64](/reference/data-types/int-uint)) — Number of 429 and 503 errors in POST, DELETE, PUT and PATCH requests to DiskS3 storage. -- `ProfileEvent_DiskS3WriteRequestsRedirects` ([UInt64](/reference/data-types/int-uint)) — Number of redirects in POST, DELETE, PUT and PATCH requests to DiskS3 storage. -- `ProfileEvent_DiskS3WriteRequestAttempts` ([UInt64](/reference/data-types/int-uint)) — Number of attempts for POST, DELETE, PUT and PATCH requests to DiskS3 storage, including the initial try and any retries, but excluding retries performed internally by the retry strategy -- `ProfileEvent_DiskS3WriteRequestRetryableErrors` ([UInt64](/reference/data-types/int-uint)) — Number of retryable errors for POST, DELETE, PUT and PATCH requests to DiskS3 storage, excluding retries performed internally by the retry strategy -- `ProfileEvent_S3DeleteObjects` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API DeleteObject(s) calls. -- `ProfileEvent_S3CopyObject` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API CopyObject calls. -- `ProfileEvent_S3ListObjects` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API ListObjects calls. -- `ProfileEvent_S3HeadObject` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API HeadObject calls. -- `ProfileEvent_S3GetObjectTagging` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API GetObjectTagging calls. -- `ProfileEvent_S3CreateMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API CreateMultipartUpload calls. -- `ProfileEvent_S3UploadPartCopy` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API UploadPartCopy calls. -- `ProfileEvent_S3UploadPart` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API UploadPart calls. -- `ProfileEvent_S3AbortMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API AbortMultipartUpload calls. -- `ProfileEvent_S3CompleteMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API CompleteMultipartUpload calls. -- `ProfileEvent_S3PutObject` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API PutObject calls. -- `ProfileEvent_S3GetObject` ([UInt64](/reference/data-types/int-uint)) — Number of S3 API GetObject calls. -- `ProfileEvent_DiskS3DeleteObjects` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API DeleteObject(s) calls. -- `ProfileEvent_DiskS3CopyObject` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API CopyObject calls. -- `ProfileEvent_DiskS3ListObjects` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API ListObjects calls. -- `ProfileEvent_DiskS3HeadObject` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API HeadObject calls. -- `ProfileEvent_DiskS3GetObjectTagging` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API GetObjectTagging calls. -- `ProfileEvent_DiskS3CreateMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API CreateMultipartUpload calls. -- `ProfileEvent_DiskS3UploadPartCopy` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API UploadPartCopy calls. -- `ProfileEvent_DiskS3UploadPart` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API UploadPart calls. -- `ProfileEvent_DiskS3AbortMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API AbortMultipartUpload calls. -- `ProfileEvent_DiskS3CompleteMultipartUpload` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API CompleteMultipartUpload calls. -- `ProfileEvent_DiskS3PutObject` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API PutObject calls. -- `ProfileEvent_DiskS3GetObject` ([UInt64](/reference/data-types/int-uint)) — Number of DiskS3 API GetObject calls. -- `ProfileEvent_DiskPlainRewritableAzureDirectoryCreated` ([UInt64](/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for AzureObjectStorage. -- `ProfileEvent_DiskPlainRewritableAzureDirectoryRemoved` ([UInt64](/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for AzureObjectStorage. -- `ProfileEvent_DiskPlainRewritableLocalDirectoryCreated` ([UInt64](/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for LocalObjectStorage. -- `ProfileEvent_DiskPlainRewritableLocalDirectoryRemoved` ([UInt64](/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for LocalObjectStorage. -- `ProfileEvent_DiskPlainRewritableS3DirectoryCreated` ([UInt64](/reference/data-types/int-uint)) — Number of directories created by the 'plain_rewritable' metadata storage for S3ObjectStorage. -- `ProfileEvent_DiskPlainRewritableS3DirectoryRemoved` ([UInt64](/reference/data-types/int-uint)) — Number of directories removed by the 'plain_rewritable' metadata storage for S3ObjectStorage. -- `ProfileEvent_DiskPlainRewritableLegacyLayoutDiskCount` ([UInt64](/reference/data-types/int-uint)) — Number of the 'plain_rewritable' disks with legacy layout. -- `ProfileEvent_S3Clients` ([UInt64](/reference/data-types/int-uint)) — Number of created S3 clients. -- `ProfileEvent_TinyS3Clients` ([UInt64](/reference/data-types/int-uint)) — Number of S3 clients copies which reuse an existing auth provider from another client. -- `ProfileEvent_EngineFileLikeReadFiles` ([UInt64](/reference/data-types/int-uint)) — Number of files read in table engines working with files (like File/S3/URL/HDFS). -- `ProfileEvent_ReadBufferFromS3Microseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent on reading from S3. -- `ProfileEvent_ReadBufferFromS3InitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent initializing connection to S3. -- `ProfileEvent_ReadBufferFromS3Bytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from S3. -- `ProfileEvent_ReadBufferFromS3RequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while reading from S3. -- `ProfileEvent_WriteBufferFromS3Microseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent on writing to S3. -- `ProfileEvent_WriteBufferFromS3Bytes` ([UInt64](/reference/data-types/int-uint)) — Bytes written to S3. -- `ProfileEvent_WriteBufferFromS3RequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while writing to S3. -- `ProfileEvent_WriteBufferFromS3WaitInflightLimitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent on waiting while some of the current requests are done when its number reached the limit defined by s3_max_inflight_parts_for_one_file. -- `ProfileEvent_QueryMemoryLimitExceeded` ([UInt64](/reference/data-types/int-uint)) — Number of times when memory limit exceeded for query. -- `ProfileEvent_MemoryAllocatedWithoutCheck` ([UInt64](/reference/data-types/int-uint)) — Number of times memory has been allocated without checking for memory constraints. -- `ProfileEvent_MemoryAllocatedWithoutCheckBytes` ([UInt64](/reference/data-types/int-uint)) — Amount of bytes that has been allocated without checking for memory constraints. -- `ProfileEvent_AzureGetObject` ([UInt64](/reference/data-types/int-uint)) — Number of Azure API GetObject calls. -- `ProfileEvent_AzureUpload` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API Upload calls -- `ProfileEvent_AzureStageBlock` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API StageBlock calls -- `ProfileEvent_AzureCommitBlockList` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API CommitBlockList calls -- `ProfileEvent_AzureCopyObject` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API CopyObject calls -- `ProfileEvent_AzureDeleteObjects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API DeleteObject(s) calls. -- `ProfileEvent_AzureListObjects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API ListObjects calls. -- `ProfileEvent_AzureGetProperties` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API GetProperties calls. -- `ProfileEvent_AzureCreateContainer` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API CreateContainer calls. -- `ProfileEvent_DiskAzureGetObject` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure API GetObject calls. -- `ProfileEvent_DiskAzureUpload` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API Upload calls -- `ProfileEvent_DiskAzureStageBlock` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API StageBlock calls -- `ProfileEvent_DiskAzureCommitBlockList` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CommitBlockList calls -- `ProfileEvent_DiskAzureCopyObject` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CopyObject calls -- `ProfileEvent_DiskAzureListObjects` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API ListObjects calls. -- `ProfileEvent_DiskAzureDeleteObjects` ([UInt64](/reference/data-types/int-uint)) — Number of Azure blob storage API DeleteObject(s) calls. -- `ProfileEvent_DiskAzureGetProperties` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API GetProperties calls. -- `ProfileEvent_DiskAzureCreateContainer` ([UInt64](/reference/data-types/int-uint)) — Number of Disk Azure blob storage API CreateContainer calls. -- `ProfileEvent_ReadBufferFromAzureMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent on reading from Azure. -- `ProfileEvent_ReadBufferFromAzureInitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent initializing connection to Azure. -- `ProfileEvent_ReadBufferFromAzureBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from Azure. -- `ProfileEvent_ReadBufferFromAzureRequestsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions while reading from Azure -- `ProfileEvent_CachedReadBufferReadFromCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times the read from filesystem cache hit the cache. -- `ProfileEvent_CachedReadBufferReadFromCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times the read from filesystem cache miss the cache. -- `ProfileEvent_CachedReadBufferReadFromSourceMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time reading from filesystem cache source (from remote filesystem, etc) -- `ProfileEvent_CachedReadBufferWaitReadBufferMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spend waiting for internal read buffer (includes cache waiting) -- `ProfileEvent_CachedReadBufferPredownloadedFromSourceMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time reading from filesystem cache source for predownload (from remote filesystem, etc) -- `ProfileEvent_CachedReadBufferReadFromCacheMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time reading from filesystem cache -- `ProfileEvent_CachedReadBufferReadFromSourceBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from filesystem cache source (from remote fs, etc) -- `ProfileEvent_CachedReadBufferPredownloadedFromSourceBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from filesystem cache source for predownload (from remote fs, etc) -- `ProfileEvent_CachedReadBufferReadFromCacheBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from filesystem cache -- `ProfileEvent_CachedReadBufferPredownloadedBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from filesystem cache source. Cache segments are read from left to right as a whole, it might be that we need to predownload some part of the segment irrelevant for the current task just to get to the needed data -- `ProfileEvent_CachedReadBufferCacheWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes written from source (remote fs, etc) to filesystem cache -- `ProfileEvent_CachedReadBufferCacheWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent writing data into filesystem cache -- `ProfileEvent_CachedReadBufferCreateBufferMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Prepare buffer time -- `ProfileEvent_CachedWriteBufferCacheWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes written from source (remote fs, etc) to filesystem cache -- `ProfileEvent_CachedWriteBufferCacheWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent writing data into filesystem cache -- `ProfileEvent_FilesystemCacheLoadMetadataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent loading filesystem cache metadata -- `ProfileEvent_FilesystemCacheEvictedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes evicted from filesystem cache -- `ProfileEvent_FilesystemCacheCreatedKeyDirectories` ([UInt64](/reference/data-types/int-uint)) — Number of created key directories -- `ProfileEvent_FilesystemCacheEvictedFileSegments` ([UInt64](/reference/data-types/int-uint)) — Number of file segments evicted from filesystem cache -- `ProfileEvent_FilesystemCacheEvictedFileSegmentsDuringPriorityIncrease` ([UInt64](/reference/data-types/int-uint)) — Number of file segments evicted from filesystem cache when increasing priority of file segments (Applies to SLRU cache policy) -- `ProfileEvent_FilesystemCacheBackgroundDownloadQueuePush` ([UInt64](/reference/data-types/int-uint)) — Number of file segments sent for background download in filesystem cache -- `ProfileEvent_FilesystemCacheEvictionSkippedFileSegments` ([UInt64](/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in unreleasable state -- `ProfileEvent_FilesystemCacheEvictionSkippedEvictingFileSegments` ([UInt64](/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in evicting state -- `ProfileEvent_FilesystemCacheEvictionSkippedMovingFileSegments` ([UInt64](/reference/data-types/int-uint)) — Number of file segments skipped for eviction because of being in moving state -- `ProfileEvent_FilesystemCacheEvictionTries` ([UInt64](/reference/data-types/int-uint)) — Number of filesystem cache eviction attempts -- `ProfileEvent_FilesystemCacheEvictionReusedIterator` ([UInt64](/reference/data-types/int-uint)) — Number of filesystem cache iterator reusing -- `ProfileEvent_FilesystemCacheLockKeyMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock cache key time -- `ProfileEvent_FilesystemCacheLockMetadataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock filesystem cache metadata time -- `ProfileEvent_FilesystemCachePriorityWriteLockMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock filesystem cache time for write to priority queue -- `ProfileEvent_FilesystemCachePriorityReadLockMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock filesystem cache time for read in priority queue -- `ProfileEvent_FilesystemCacheStateLockMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock filesystem cache time for state lock -- `ProfileEvent_FilesystemCacheReserveMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache space reservation time -- `ProfileEvent_FilesystemCacheReserveAttempts` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache space reservation attempt -- `ProfileEvent_FilesystemCacheEvictMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache eviction time -- `ProfileEvent_FilesystemCacheGetOrSetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache getOrSet() time -- `ProfileEvent_FilesystemCacheGetMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache get() time -- `ProfileEvent_FilesystemCacheBackgroundEvictedFileSegments` ([UInt64](/reference/data-types/int-uint)) — Number of file segments evicted by background thread -- `ProfileEvent_FilesystemCacheBackgroundEvictedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes evicted by background thread -- `ProfileEvent_FilesystemCacheCheckCorrectness` ([UInt64](/reference/data-types/int-uint)) — Number of times FileCache::assertCacheCorrectness was called -- `ProfileEvent_FilesystemCacheCheckCorrectnessMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How much time does FileCache::assertCacheCorrectness takes -- `ProfileEvent_FileSegmentWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Wait on DOWNLOADING state -- `ProfileEvent_FileSegmentCompleteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Duration of FileSegment::complete() in filesystem cache -- `ProfileEvent_FileSegmentLockMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Lock file segment time -- `ProfileEvent_FileSegmentWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — File segment write() time -- `ProfileEvent_FileSegmentIncreasePriorityMicroseconds` ([UInt64](/reference/data-types/int-uint)) — File segment increase priority time -- `ProfileEvent_FileSegmentRemoveMicroseconds` ([UInt64](/reference/data-types/int-uint)) — File segment remove() time -- `ProfileEvent_FileSegmentHolderCompleteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — File segments holder complete() time -- `ProfileEvent_FileSegmentFailToIncreasePriority` ([UInt64](/reference/data-types/int-uint)) — Number of times the priority was not increased due to a high contention on the cache lock -- `ProfileEvent_FilesystemCacheFailToReserveSpaceBecauseOfLockContention` ([UInt64](/reference/data-types/int-uint)) — Number of times space reservation was skipped due to a high contention on the cache lock -- `ProfileEvent_FilesystemCacheFailToReserveSpaceBecauseOfCacheResize` ([UInt64](/reference/data-types/int-uint)) — Number of times space reservation was skipped due to the cache is being resized -- `ProfileEvent_FilesystemCacheHoldFileSegments` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache file segments count, which were hold -- `ProfileEvent_FilesystemCacheUnusedHoldFileSegments` ([UInt64](/reference/data-types/int-uint)) — Filesystem cache file segments count, which were hold, but not used (because of seek or LIMIT n, etc) -- `ProfileEvent_FilesystemCacheFreeSpaceKeepingThreadRun` ([UInt64](/reference/data-types/int-uint)) — Number of times background thread executed free space keeping job -- `ProfileEvent_FilesystemCacheFreeSpaceKeepingThreadWorkMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Time for which background thread executed free space keeping job -- `ProfileEvent_FilesystemCacheFailedEvictionCandidates` ([UInt64](/reference/data-types/int-uint)) — Number of file segments which unexpectedly failed to be evicted during dynamic filesystem cache eviction -- `ProfileEvent_RemoteFSSeeks` ([UInt64](/reference/data-types/int-uint)) — Total number of seeks for async buffer -- `ProfileEvent_RemoteFSPrefetches` ([UInt64](/reference/data-types/int-uint)) — Number of prefetches made with asynchronous reading from remote filesystem -- `ProfileEvent_RemoteFSCancelledPrefetches` ([UInt64](/reference/data-types/int-uint)) — Number of cancelled prefecthes (because of seek) -- `ProfileEvent_RemoteFSUnusedPrefetches` ([UInt64](/reference/data-types/int-uint)) — Number of prefetches pending at buffer destruction -- `ProfileEvent_RemoteFSPrefetchedReads` ([UInt64](/reference/data-types/int-uint)) — Number of reads from prefecthed buffer -- `ProfileEvent_RemoteFSPrefetchedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes from prefecthed buffer -- `ProfileEvent_RemoteFSUnprefetchedReads` ([UInt64](/reference/data-types/int-uint)) — Number of reads from unprefetched buffer -- `ProfileEvent_RemoteFSUnprefetchedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes from unprefetched buffer -- `ProfileEvent_RemoteFSLazySeeks` ([UInt64](/reference/data-types/int-uint)) — Number of lazy seeks -- `ProfileEvent_RemoteFSSeeksWithReset` ([UInt64](/reference/data-types/int-uint)) — Number of seeks which lead to a new connection -- `ProfileEvent_RemoteFSBuffers` ([UInt64](/reference/data-types/int-uint)) — Number of buffers created for asynchronous reading from remote filesystem -- `ProfileEvent_MergeTreePrefetchedReadPoolInit` ([UInt64](/reference/data-types/int-uint)) — Time spent preparing tasks in MergeTreePrefetchedReadPool -- `ProfileEvent_WaitPrefetchTaskMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spend waiting for prefetched reader -- `ProfileEvent_ThreadpoolReaderTaskMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent getting the data in asynchronous reading -- `ProfileEvent_ThreadpoolReaderPrepareMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent on preparation (e.g. call to reader seek() method) -- `ProfileEvent_ThreadpoolReaderReadBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from a threadpool task in asynchronous reading -- `ProfileEvent_ThreadpoolReaderSubmit` ([UInt64](/reference/data-types/int-uint)) — Bytes read from a threadpool task in asynchronous reading -- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronously` ([UInt64](/reference/data-types/int-uint)) — How many times we haven't scheduled a task on the thread pool and read synchronously instead -- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronouslyBytes` ([UInt64](/reference/data-types/int-uint)) — How many bytes were read synchronously -- `ProfileEvent_ThreadpoolReaderSubmitReadSynchronouslyMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How much time we spent reading synchronously -- `ProfileEvent_ThreadpoolReaderSubmitLookupInCacheMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How much time we spent checking if content is cached -- `ProfileEvent_AsynchronousReaderIgnoredBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes ignored during asynchronous reading -- `ProfileEvent_ReadBufferSeekCancelConnection` ([UInt64](/reference/data-types/int-uint)) — Number of seeks which lead to new connection (s3, http) -- `ProfileEvent_SleepFunctionCalls` ([UInt64](/reference/data-types/int-uint)) — Number of times a sleep function (sleep, sleepEachRow) has been called. -- `ProfileEvent_SleepFunctionMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time set to sleep in a sleep function (sleep, sleepEachRow). -- `ProfileEvent_SleepFunctionElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent sleeping in a sleep function (sleep, sleepEachRow). -- `ProfileEvent_ThreadPoolReaderPageCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times the read inside ThreadPoolReader was done from the page cache. -- `ProfileEvent_ThreadPoolReaderPageCacheHitBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read inside ThreadPoolReader when it was done from the page cache. -- `ProfileEvent_ThreadPoolReaderPageCacheHitElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent reading data from page cache in ThreadPoolReader. -- `ProfileEvent_ThreadPoolReaderPageCacheMiss` ([UInt64](/reference/data-types/int-uint)) — Number of times the read inside ThreadPoolReader was not done from page cache and was hand off to thread pool. -- `ProfileEvent_ThreadPoolReaderPageCacheMissBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes read inside ThreadPoolReader when read was not done from page cache and was hand off to thread pool. -- `ProfileEvent_ThreadPoolReaderPageCacheMissElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent reading data inside the asynchronous job in ThreadPoolReader - when read was not done from the page cache. -- `ProfileEvent_AsynchronousReadWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in waiting for asynchronous reads in asynchronous local read. -- `ProfileEvent_SynchronousReadWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in waiting for synchronous reads in asynchronous local read. -- `ProfileEvent_AsynchronousRemoteReadWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in waiting for asynchronous remote reads. -- `ProfileEvent_SynchronousRemoteReadWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in waiting for synchronous remote reads. -- `ProfileEvent_ExternalDataSourceLocalCacheReadBytes` ([UInt64](/reference/data-types/int-uint)) — Bytes read from local cache buffer in RemoteReadBufferCache -- `ProfileEvent_MainConfigLoads` ([UInt64](/reference/data-types/int-uint)) — Number of times the main configuration was reloaded. -- `ProfileEvent_AggregationPreallocatedElementsInHashTables` ([UInt64](/reference/data-types/int-uint)) — How many elements were preallocated in hash tables for aggregation. -- `ProfileEvent_AggregationHashTablesInitializedAsTwoLevel` ([UInt64](/reference/data-types/int-uint)) — How many hash tables were inited as two-level for aggregation. -- `ProfileEvent_AggregationOptimizedEqualRangesOfKeys` ([UInt64](/reference/data-types/int-uint)) — For how many blocks optimization of equal ranges of keys was applied -- `ProfileEvent_HashJoinPreallocatedElementsInHashTables` ([UInt64](/reference/data-types/int-uint)) — How many elements were preallocated in hash tables for hash join. -- `ProfileEvent_MetadataFromKeeperCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times an object storage metadata request was answered from cache without making request to Keeper -- `ProfileEvent_MetadataFromKeeperCacheMiss` ([UInt64](/reference/data-types/int-uint)) — Number of times an object storage metadata request had to be answered from Keeper -- `ProfileEvent_MetadataFromKeeperCacheTooManyInvalidated` ([UInt64](/reference/data-types/int-uint)) — Number of times filesystem cache returned too many invalidated entries -- `ProfileEvent_MetadataFromKeeperCacheUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent in updating the cache including waiting for responses from Keeper -- `ProfileEvent_MetadataFromKeeperUpdateCacheOneLevel` ([UInt64](/reference/data-types/int-uint)) — Number of times a cache update for one level of directory tree was done -- `ProfileEvent_MetadataFromKeeperTransactionCommit` ([UInt64](/reference/data-types/int-uint)) — Number of times metadata transaction commit was attempted -- `ProfileEvent_MetadataFromKeeperTransactionCommitRetry` ([UInt64](/reference/data-types/int-uint)) — Number of times metadata transaction commit was retried -- `ProfileEvent_MetadataFromKeeperCleanupTransactionCommit` ([UInt64](/reference/data-types/int-uint)) — Number of times metadata transaction commit for deleted objects cleanup was attempted -- `ProfileEvent_MetadataFromKeeperCleanupTransactionCommitRetry` ([UInt64](/reference/data-types/int-uint)) — Number of times metadata transaction commit for deleted objects cleanup was retried -- `ProfileEvent_MetadataFromKeeperOperations` ([UInt64](/reference/data-types/int-uint)) — Number of times a request was made to Keeper -- `ProfileEvent_MetadataFromKeeperIndividualOperations` ([UInt64](/reference/data-types/int-uint)) — Number of paths read or written by single or multi requests to Keeper -- `ProfileEvent_MetadataFromKeeperIndividualOperationsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spend during single or multi requests to Keeper -- `ProfileEvent_MetadataFromKeeperReconnects` ([UInt64](/reference/data-types/int-uint)) — Number of times a reconnect to Keeper was done -- `ProfileEvent_MetadataFromKeeperBackgroundCleanupObjects` ([UInt64](/reference/data-types/int-uint)) — Number of times a old deleted object clean up was performed by background task -- `ProfileEvent_MetadataFromKeeperBackgroundCleanupTransactions` ([UInt64](/reference/data-types/int-uint)) — Number of times old transaction idempotency token was cleaned up by background task -- `ProfileEvent_MetadataFromKeeperBackgroundCleanupBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of times an empty blob layout part was cleaned up by background task -- `ProfileEvent_MetadataFromKeeperBackgroundCleanupErrors` ([UInt64](/reference/data-types/int-uint)) — Number of times an error was encountered in background cleanup task -- `ProfileEvent_BlobKillerThreadRuns` ([UInt64](/reference/data-types/int-uint)) — Number of BlobKiller thread executes -- `ProfileEvent_BlobKillerThreadLockedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs returned from metadata storage -- `ProfileEvent_BlobKillerThreadRemoveTasks` ([UInt64](/reference/data-types/int-uint)) — Number of remove tasks created by BlobKiller -- `ProfileEvent_BlobKillerThreadRemovedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs removed by BlobKiller -- `ProfileEvent_BlobKillerThreadRecordedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs which removal by BlobKiller was recorded in metadata storage -- `ProfileEvent_BlobKillerThreadLockBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs lock errors occurred during BlobKiller execution -- `ProfileEvent_BlobKillerThreadRemoveBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs removal errors occurred during BlobKiller execution -- `ProfileEvent_BlobKillerThreadRecordBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs recording errors occurred during BlobKiller execution -- `ProfileEvent_BlobCopierThreadRuns` ([UInt64](/reference/data-types/int-uint)) — Number of BlobCopier thread executes -- `ProfileEvent_BlobCopierThreadLockedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs returned from metadata storage -- `ProfileEvent_BlobCopierThreadReplicatedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs replicated by BlobCopier -- `ProfileEvent_BlobCopierThreadRecordedBlobs` ([UInt64](/reference/data-types/int-uint)) — Number of blobs which replication by BlobCopier was recorded in metadata storage -- `ProfileEvent_BlobCopierThreadLockBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs lock errors occurred during BlobCopier execution -- `ProfileEvent_BlobCopierThreadReplicateBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs replication errors occurred during BlobCopier execution -- `ProfileEvent_BlobCopierThreadRecordBlobsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of blobs recording errors occurred during BlobCopier execution -- `ProfileEvent_SharedMergeTreeMetadataCacheHintLoadedFromCache` ([UInt64](/reference/data-types/int-uint)) — Number of times metadata cache hint was found without going to Keeper -- `ProfileEvent_KafkaRebalanceRevocations` ([UInt64](/reference/data-types/int-uint)) — Number of partition revocations (the first stage of consumer group rebalance) -- `ProfileEvent_KafkaRebalanceAssignments` ([UInt64](/reference/data-types/int-uint)) — Number of partition assignments (the final stage of consumer group rebalance) -- `ProfileEvent_KafkaRebalanceErrors` ([UInt64](/reference/data-types/int-uint)) — Number of failed consumer group rebalances -- `ProfileEvent_KafkaMessagesPolled` ([UInt64](/reference/data-types/int-uint)) — Number of Kafka messages polled from librdkafka to ClickHouse -- `ProfileEvent_KafkaMessagesRead` ([UInt64](/reference/data-types/int-uint)) — Number of Kafka messages already processed by ClickHouse -- `ProfileEvent_KafkaMessagesFailed` ([UInt64](/reference/data-types/int-uint)) — Number of Kafka messages ClickHouse failed to parse -- `ProfileEvent_KafkaRowsRead` ([UInt64](/reference/data-types/int-uint)) — Number of rows parsed from Kafka messages -- `ProfileEvent_KafkaRowsRejected` ([UInt64](/reference/data-types/int-uint)) — Number of parsed rows which were later rejected (due to rebalances / errors or similar reasons). Those rows will be consumed again after the rebalance. -- `ProfileEvent_KafkaDirectReads` ([UInt64](/reference/data-types/int-uint)) — Number of direct selects from Kafka tables since server start -- `ProfileEvent_KafkaBackgroundReads` ([UInt64](/reference/data-types/int-uint)) — Number of background reads populating materialized views from Kafka since server start -- `ProfileEvent_KafkaCommits` ([UInt64](/reference/data-types/int-uint)) — Number of successful commits of consumed offsets to Kafka (normally should be the same as KafkaBackgroundReads) -- `ProfileEvent_KafkaCommitFailures` ([UInt64](/reference/data-types/int-uint)) — Number of failed commits of consumed offsets to Kafka (usually is a sign of some data duplication) -- `ProfileEvent_KafkaConsumerErrors` ([UInt64](/reference/data-types/int-uint)) — Number of errors reported by librdkafka during polls -- `ProfileEvent_KafkaMVNotReady` ([UInt64](/reference/data-types/int-uint)) — Number of failed attempts to stream data to a materialized view that is not ready -- `ProfileEvent_KafkaWrites` ([UInt64](/reference/data-types/int-uint)) — Number of writes (inserts) to Kafka tables -- `ProfileEvent_KafkaRowsWritten` ([UInt64](/reference/data-types/int-uint)) — Number of rows inserted into Kafka tables -- `ProfileEvent_KafkaProducerFlushes` ([UInt64](/reference/data-types/int-uint)) — Number of explicit flushes to Kafka producer -- `ProfileEvent_KafkaMessagesProduced` ([UInt64](/reference/data-types/int-uint)) — Number of messages produced to Kafka -- `ProfileEvent_KafkaProducerErrors` ([UInt64](/reference/data-types/int-uint)) — Number of errors during producing the messages to Kafka -- `ProfileEvent_ScalarSubqueriesGlobalCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was done using the global cache -- `ProfileEvent_ScalarSubqueriesLocalCacheHit` ([UInt64](/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was done using the local cache -- `ProfileEvent_ScalarSubqueriesCacheMiss` ([UInt64](/reference/data-types/int-uint)) — Number of times a read from a scalar subquery was not cached and had to be calculated completely -- `ProfileEvent_SchemaInferenceCacheHits` ([UInt64](/reference/data-types/int-uint)) — Number of times the requested source is found in schema cache -- `ProfileEvent_SchemaInferenceCacheSchemaHits` ([UInt64](/reference/data-types/int-uint)) — Number of times the schema is found in schema cache during schema inference -- `ProfileEvent_SchemaInferenceCacheNumRowsHits` ([UInt64](/reference/data-types/int-uint)) — Number of times the number of rows is found in schema cache during count from files -- `ProfileEvent_SchemaInferenceCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times the requested source is not in schema cache -- `ProfileEvent_SchemaInferenceCacheSchemaMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times the requested source is in cache but the schema is not in cache during schema inference -- `ProfileEvent_SchemaInferenceCacheNumRowsMisses` ([UInt64](/reference/data-types/int-uint)) — Number of times the requested source is in cache but the number of rows is not in cache while count from files -- `ProfileEvent_SchemaInferenceCacheEvictions` ([UInt64](/reference/data-types/int-uint)) — Number of times a schema from cache was evicted due to overflow -- `ProfileEvent_SchemaInferenceCacheInvalidations` ([UInt64](/reference/data-types/int-uint)) — Number of times a schema in cache became invalid due to changes in data -- `ProfileEvent_KeeperPacketsSent` ([UInt64](/reference/data-types/int-uint)) — Packets sent by keeper server -- `ProfileEvent_KeeperPacketsReceived` ([UInt64](/reference/data-types/int-uint)) — Packets received by keeper server -- `ProfileEvent_KeeperRequestTotal` ([UInt64](/reference/data-types/int-uint)) — Total requests number on keeper server -- `ProfileEvent_KeeperRequestTotalWithSubrequests` ([UInt64](/reference/data-types/int-uint)) — Total requests number on keeper server, counting each subrequest within a multi request -- `ProfileEvent_KeeperLatency` ([UInt64](/reference/data-types/int-uint)) — Keeper latency -- `ProfileEvent_KeeperTotalElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Keeper total latency for a single request -- `ProfileEvent_KeeperProcessElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Keeper commit latency for a single request -- `ProfileEvent_KeeperPreprocessElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Keeper preprocessing latency for a single request -- `ProfileEvent_KeeperStorageLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper storage lock -- `ProfileEvent_KeeperStorageSharedLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper storage shared lock -- `ProfileEvent_KeeperChangelogLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper changelog lock -- `ProfileEvent_KeeperServerWriteLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper server write lock -- `ProfileEvent_KeeperSessionCallbackLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper session callback lock -- `ProfileEvent_KeeperReadRequestQueueLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper read request queue lock -- `ProfileEvent_KeeperProcessAndResponsesLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for acquiring Keeper process and responses lock -- `ProfileEvent_KeeperCommitWaitElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting for certain log to be committed -- `ProfileEvent_KeeperBatchMaxCount` ([UInt64](/reference/data-types/int-uint)) — Number of times the size of batch was limited by the amount -- `ProfileEvent_KeeperBatchMaxTotalSize` ([UInt64](/reference/data-types/int-uint)) — Number of times the size of batch was limited by the total bytes size -- `ProfileEvent_KeeperReadBatchCount` ([UInt64](/reference/data-types/int-uint)) — Number of read request batches processed by Keeper -- `ProfileEvent_KeeperReadBatchTotalRequests` ([UInt64](/reference/data-types/int-uint)) — Total number of read requests processed in batches by Keeper -- `ProfileEvent_KeeperCommits` ([UInt64](/reference/data-types/int-uint)) — Number of successful commits -- `ProfileEvent_KeeperCommitsFailed` ([UInt64](/reference/data-types/int-uint)) — Number of failed commits -- `ProfileEvent_KeeperSnapshotCreations` ([UInt64](/reference/data-types/int-uint)) — Number of snapshots creations -- `ProfileEvent_KeeperSnapshotCreationsFailed` ([UInt64](/reference/data-types/int-uint)) — Number of failed snapshot creations -- `ProfileEvent_KeeperSnapshotApplys` ([UInt64](/reference/data-types/int-uint)) — Number of snapshot applying -- `ProfileEvent_KeeperSnapshotApplysFailed` ([UInt64](/reference/data-types/int-uint)) — Number of failed snapshot applying -- `ProfileEvent_KeeperReadSnapshot` ([UInt64](/reference/data-types/int-uint)) — Number of completed snapshot reads -- `ProfileEvent_KeeperReadSnapshotObject` ([UInt64](/reference/data-types/int-uint)) — Number of snapshot objects sent to followers -- `ProfileEvent_KeeperReadSnapshotFailed` ([UInt64](/reference/data-types/int-uint)) — Number of failed snapshot reads -- `ProfileEvent_KeeperSnapshotRemoteLoaderErrors` ([UInt64](/reference/data-types/int-uint)) — Number of remote read errors in RemoteSnapshotLoader while serving a snapshot to a follower -- `ProfileEvent_KeeperSaveSnapshotObject` ([UInt64](/reference/data-types/int-uint)) — Number of snapshot objects received from leader -- `ProfileEvent_KeeperSaveSnapshotFailed` ([UInt64](/reference/data-types/int-uint)) — Number of failed snapshot saves -- `ProfileEvent_KeeperSaveSnapshot` ([UInt64](/reference/data-types/int-uint)) — Number of snapshot save -- `ProfileEvent_KeeperCreateRequest` ([UInt64](/reference/data-types/int-uint)) — Number of create requests -- `ProfileEvent_KeeperRemoveRequest` ([UInt64](/reference/data-types/int-uint)) — Number of remove requests -- `ProfileEvent_KeeperSetRequest` ([UInt64](/reference/data-types/int-uint)) — Number of set requests -- `ProfileEvent_KeeperReconfigRequest` ([UInt64](/reference/data-types/int-uint)) — Number of reconfig requests -- `ProfileEvent_KeeperCheckRequest` ([UInt64](/reference/data-types/int-uint)) — Number of check requests -- `ProfileEvent_KeeperMultiRequest` ([UInt64](/reference/data-types/int-uint)) — Number of multi requests -- `ProfileEvent_KeeperMultiReadRequest` ([UInt64](/reference/data-types/int-uint)) — Number of multi read requests -- `ProfileEvent_KeeperGetRequest` ([UInt64](/reference/data-types/int-uint)) — Number of get requests -- `ProfileEvent_KeeperListRequest` ([UInt64](/reference/data-types/int-uint)) — Number of list requests -- `ProfileEvent_KeeperListRecursiveRequest` ([UInt64](/reference/data-types/int-uint)) — Number of get children recursive requests -- `ProfileEvent_KeeperExistsRequest` ([UInt64](/reference/data-types/int-uint)) — Number of exists requests -- `ProfileEvent_KeeperSetWatchesRequest` ([UInt64](/reference/data-types/int-uint)) — Number of set watches requests -- `ProfileEvent_KeeperAddWatchRequest` ([UInt64](/reference/data-types/int-uint)) — Number of add watches requests -- `ProfileEvent_KeeperRemoveWatchRequest` ([UInt64](/reference/data-types/int-uint)) — Number of remove watches requests -- `ProfileEvent_KeeperCheckWatchRequest` ([UInt64](/reference/data-types/int-uint)) — Number of remove watches requests -- `ProfileEvent_KeeperRequestRejectedDueToSoftMemoryLimitCount` ([UInt64](/reference/data-types/int-uint)) — Number requests that have been rejected due to soft memory limit exceeded -- `ProfileEvent_KeeperStaleRequestsSkipped` ([UInt64](/reference/data-types/int-uint)) — Number of Keeper requests skipped because the session is no longer live -- `ProfileEvent_KeeperLiveSessionsLockWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent waiting to acquire Keeper live sessions lock -- `ProfileEvent_OverflowBreak` ([UInt64](/reference/data-types/int-uint)) — Number of times, data processing was cancelled by query complexity limitation with setting '*_overflow_mode' = 'break' and the result is incomplete. -- `ProfileEvent_OverflowThrow` ([UInt64](/reference/data-types/int-uint)) — Number of times, data processing was cancelled by query complexity limitation with setting '*_overflow_mode' = 'throw' and exception was thrown. -- `ProfileEvent_OverflowAny` ([UInt64](/reference/data-types/int-uint)) — Number of times approximate GROUP BY was in effect: when aggregation was performed only on top of first 'max_rows_to_group_by' unique keys and other keys were ignored due to 'group_by_overflow_mode' = 'any'. -- `ProfileEvent_S3QueueSetFileProcessingMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to set file as processing -- `ProfileEvent_S3QueueSetFileProcessedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to set file as processed -- `ProfileEvent_S3QueueSetFileFailedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to set file as failed -- `ProfileEvent_ObjectStorageQueueFailedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of files which failed to be processed -- `ProfileEvent_ObjectStorageQueueProcessedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of files which were processed -- `ProfileEvent_ObjectStorageQueueCleanupMaxSetSizeOrTTLMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to set file as failed -- `ProfileEvent_ObjectStorageQueuePullMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to read file data -- `ProfileEvent_ObjectStorageQueueFailedToBatchSetProcessing` ([UInt64](/reference/data-types/int-uint)) — Number of times batched set processing request failed -- `ProfileEvent_ObjectStorageQueueTrySetProcessingRequests` ([UInt64](/reference/data-types/int-uint)) — The number of times we tried to make set processing request -- `ProfileEvent_ObjectStorageQueueTrySetProcessingSucceeded` ([UInt64](/reference/data-types/int-uint)) — The number of times we successfully set file as processing -- `ProfileEvent_ObjectStorageQueueTrySetProcessingFailed` ([UInt64](/reference/data-types/int-uint)) — The number of times we unsuccessfully set file as processing -- `ProfileEvent_ObjectStorageQueueListedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of listed files in StorageS3(Azure)Queue -- `ProfileEvent_ObjectStorageQueueFilteredFiles` ([UInt64](/reference/data-types/int-uint)) — Number of filtered files in StorageS3(Azure)Queue -- `ProfileEvent_ObjectStorageQueueReadFiles` ([UInt64](/reference/data-types/int-uint)) — Number of read files (not equal to the number of actually inserted files) -- `ProfileEvent_ObjectStorageQueueReadRows` ([UInt64](/reference/data-types/int-uint)) — Number of read rows (not equal to the number of actually inserted rows) -- `ProfileEvent_ObjectStorageQueueReadBytes` ([UInt64](/reference/data-types/int-uint)) — Number of read bytes (not equal to the number of actually inserted bytes) -- `ProfileEvent_ObjectStorageQueueExceptionsDuringRead` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions during read in S3(Azure)Queue -- `ProfileEvent_ObjectStorageQueueExceptionsDuringInsert` ([UInt64](/reference/data-types/int-uint)) — Number of exceptions during insert in S3(Azure)Queue -- `ProfileEvent_ObjectStorageQueueMovedObjects` ([UInt64](/reference/data-types/int-uint)) — Number of objects moved as part of after_processing = move -- `ProfileEvent_ObjectStorageQueueRemovedObjects` ([UInt64](/reference/data-types/int-uint)) — Number of objects removed as part of after_processing = delete -- `ProfileEvent_ObjectStorageQueueTaggedObjects` ([UInt64](/reference/data-types/int-uint)) — Number of objects tagged as part of after_processing = tag -- `ProfileEvent_ObjectStorageQueueInsertIterations` ([UInt64](/reference/data-types/int-uint)) — Number of insert iterations -- `ProfileEvent_ObjectStorageQueueCommitRequests` ([UInt64](/reference/data-types/int-uint)) — Number of keeper requests to commit files as either failed or processed -- `ProfileEvent_ObjectStorageQueueSuccessfulCommits` ([UInt64](/reference/data-types/int-uint)) — Number of successful keeper commits -- `ProfileEvent_ObjectStorageQueueUnsuccessfulCommits` ([UInt64](/reference/data-types/int-uint)) — Number of unsuccessful keeper commits -- `ProfileEvent_ObjectStorageQueueCancelledFiles` ([UInt64](/reference/data-types/int-uint)) — Number cancelled files in StorageS3(Azure)Queue -- `ProfileEvent_ObjectStorageQueueProcessedRows` ([UInt64](/reference/data-types/int-uint)) — Number of processed rows in StorageS3(Azure)Queue -- `ProfileEvent_ObjectStorageListedObjects` ([UInt64](/reference/data-types/int-uint)) — Total objects returned by object storage listing API before any filtering. -- `ProfileEvent_ObjectStorageGlobFilteredObjects` ([UInt64](/reference/data-types/int-uint)) — Objects that did not match the glob or regex pattern and were skipped during listing. -- `ProfileEvent_ObjectStoragePredicateFilteredObjects` ([UInt64](/reference/data-types/int-uint)) — Objects removed by virtual column predicate filtering on _path/_file. -- `ProfileEvent_ObjectStorageReadObjects` ([UInt64](/reference/data-types/int-uint)) — Objects actually opened for reading by the object storage source. -- `ProfileEvent_ServerStartupMilliseconds` ([UInt64](/reference/data-types/int-uint)) — Time elapsed from starting server to listening to sockets in milliseconds -- `ProfileEvent_IOUringSQEsSubmitted` ([UInt64](/reference/data-types/int-uint)) — Total number of io_uring SQEs submitted -- `ProfileEvent_IOUringSQEsResubmitsAsync` ([UInt64](/reference/data-types/int-uint)) — Total number of asynchronous io_uring SQE resubmits performed -- `ProfileEvent_IOUringSQEsResubmitsSync` ([UInt64](/reference/data-types/int-uint)) — Total number of synchronous io_uring SQE resubmits performed -- `ProfileEvent_IOUringCQEsCompleted` ([UInt64](/reference/data-types/int-uint)) — Total number of successfully completed io_uring CQEs -- `ProfileEvent_IOUringCQEsFailed` ([UInt64](/reference/data-types/int-uint)) — Total number of completed io_uring CQEs with failures -- `ProfileEvent_BackupsOpenedForRead` ([UInt64](/reference/data-types/int-uint)) — Number of backups opened for reading -- `ProfileEvent_BackupsOpenedForWrite` ([UInt64](/reference/data-types/int-uint)) — Number of backups opened for writing -- `ProfileEvent_BackupsOpenedForUnlock` ([UInt64](/reference/data-types/int-uint)) — Number of backups opened for unlocking -- `ProfileEvent_BackupReadMetadataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent reading backup metadata from .backup file -- `ProfileEvent_BackupWriteMetadataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent writing backup metadata to .backup file -- `ProfileEvent_BackupEntriesCollectorMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent making backup entries -- `ProfileEvent_BackupEntriesCollectorForTablesDataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent making backup entries for tables data -- `ProfileEvent_BackupEntriesCollectorRunPostTasksMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent running post tasks after making backup entries -- `ProfileEvent_BackupPreparingFileInfosMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent preparing file infos for backup entries -- `ProfileEvent_BackupReadLocalFilesToCalculateChecksums` ([UInt64](/reference/data-types/int-uint)) — Number of files read locally to calculate checksums for backup entries -- `ProfileEvent_BackupReadLocalBytesToCalculateChecksums` ([UInt64](/reference/data-types/int-uint)) — Total size of files read locally to calculate checksums for backup entries -- `ProfileEvent_BackupReadRemoteFilesToCalculateChecksums` ([UInt64](/reference/data-types/int-uint)) — Number of files read from remote disks to calculate checksums for backup entries -- `ProfileEvent_BackupReadRemoteBytesToCalculateChecksums` ([UInt64](/reference/data-types/int-uint)) — Total size of files read from remote disks to calculate checksums for backup entries -- `ProfileEvent_BackupLockFileReads` ([UInt64](/reference/data-types/int-uint)) — How many times the '.lock' file was read while making backup -- `ProfileEvent_RestorePartsSkippedFiles` ([UInt64](/reference/data-types/int-uint)) — Number of files skipped while restoring parts -- `ProfileEvent_RestorePartsSkippedBytes` ([UInt64](/reference/data-types/int-uint)) — Total size of files skipped while restoring parts -- `ProfileEvent_ReadTaskRequestsReceived` ([UInt64](/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the initiator server side. -- `ProfileEvent_MergeTreeReadTaskRequestsReceived` ([UInt64](/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the initiator server side. -- `ProfileEvent_ReadTaskRequestsSent` ([UInt64](/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the remote server side. -- `ProfileEvent_MergeTreeReadTaskRequestsSent` ([UInt64](/reference/data-types/int-uint)) — The number of callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the remote server side. -- `ProfileEvent_MergeTreeAllRangesAnnouncementsSent` ([UInt64](/reference/data-types/int-uint)) — The number of announcements sent from the remote server to the initiator server about the set of data parts (for MergeTree tables). Measured on the remote server side. -- `ProfileEvent_ReadTaskRequestsSentElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in callbacks requested from the remote server back to the initiator server to choose the read task (for s3Cluster table function and similar). Measured on the remote server side. -- `ProfileEvent_MergeTreeReadTaskRequestsSentElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in callbacks requested from the remote server back to the initiator server to choose the read task (for MergeTree tables). Measured on the remote server side. -- `ProfileEvent_MergeTreeAllRangesAnnouncementsSentElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in sending the announcement from the remote server to the initiator server about the set of data parts (for MergeTree tables). Measured on the remote server side. -- `ProfileEvent_MergerMutatorsGetPartsForMergeElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to take data parts snapshot to build ranges from them. -- `ProfileEvent_MergerMutatorPrepareRangesForMergeElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to prepare parts ranges which can be merged according to merge predicate. -- `ProfileEvent_MergerMutatorSelectPartsForMergeElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent to select parts from ranges which can be merged. -- `ProfileEvent_MergerMutatorRangesForMergeCount` ([UInt64](/reference/data-types/int-uint)) — Amount of candidate ranges for merge -- `ProfileEvent_MergerMutatorPartsInRangesForMergeCount` ([UInt64](/reference/data-types/int-uint)) — Amount of candidate parts for merge -- `ProfileEvent_MergerMutatorSelectRangePartsCount` ([UInt64](/reference/data-types/int-uint)) — Amount of parts in selected range for merge -- `ProfileEvent_ConnectionPoolIsFullMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent waiting for a slot in connection pool. -- `ProfileEvent_AsyncLoaderWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting for async loader jobs. -- `ProfileEvent_DistrCacheServerSwitches` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of server switches between distributed cache servers in read/write-through cache -- `ProfileEvent_DistrCacheReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent reading from distributed cache -- `ProfileEvent_DistrCacheFallbackReadMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spend reading from fallback buffer instead of distributed cache -- `ProfileEvent_DistrCachePrecomputeRangesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent to precompute read ranges -- `ProfileEvent_DistrCacheNextImplMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spend in ReadBufferFromDistributedCache::nextImpl -- `ProfileEvent_DistrCacheStartRangeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Time spent to start a new read range with distributed cache -- `ProfileEvent_DistrCacheRangeChange` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we changed read range because of seek/last_position change -- `ProfileEvent_DistrCacheRangeResetBackward` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we reset read range because of seek/last_position change -- `ProfileEvent_DistrCacheRangeResetForward` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of times we reset read range because of seek/last_position change -- `ProfileEvent_DistrCacheReconnectsAfterTimeout` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. The number of reconnects after timeout -- `ProfileEvent_DistrCacheServerUpdates` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache event. The number of server switches during read or write because the hash-chosen server changed (e.g. due to server deregistration) -- `ProfileEvent_DistrCacheReadErrors` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Number of distributed cache errors during read -- `ProfileEvent_DistrCacheWriteErrors` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of distributed cache errors during write -- `ProfileEvent_DistrCacheWriteReconnectsAfterTimeout` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. The number of reconnects after timeout -- `ProfileEvent_DistrCacheWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. Time spent in WriteBufferFromDistributedCache::writeToFileSegment -- `ProfileEvent_DistrCacheWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of bytes written to distributed cache -- `ProfileEvent_DistrCacheObjectStorageWriteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. Time spent writing to object storage -- `ProfileEvent_DistrCacheObjectStorageWriteBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache write buffer event. Number of bytes written to object storage -- `ProfileEvent_DistrCacheGetResponseMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Time spend to wait for response from distributed cache -- `ProfileEvent_DistrCacheMakeRequestErrors` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Number of distributed cache errors when making a request -- `ProfileEvent_DistrCacheReceiveResponseErrors` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Number of distributed cache errors when receiving response a request -- `ProfileEvent_DistrCacheReceivedDataPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received data packets received from distributed cache -- `ProfileEvent_DistrCacheReceivedDataPacketsBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets received from distributed cache -- `ProfileEvent_DistrCacheReceivedOkPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Ok packets received from distributed cache -- `ProfileEvent_DistrCacheReceivedErrorPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Error packets received from distributed cache -- `ProfileEvent_DistrCacheReceivedCredentialsRefreshPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received RefreshCredentials packets received from distributed cache -- `ProfileEvent_DistrCacheReceivedStopPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of received Stop packets received from distributed cache -- `ProfileEvent_DistrCacheSentDataPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Total number of data packets sent to distributed cache -- `ProfileEvent_DistrCacheSentDataPacketsBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets sent to distributed cache -- `ProfileEvent_DistrCacheUnusedPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. Number of skipped unused packets from distributed cache -- `ProfileEvent_DistrCacheUnusedDataPacketsBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. The number of bytes in Data packets which were ignored -- `ProfileEvent_DistrCacheUnusedPacketsBufferAllocations` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache client event. The number of extra buffer allocations in case we could not reuse existing buffer -- `ProfileEvent_DistrCacheLockRegistryMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. Time spent to take DistributedCacheRegistry lock -- `ProfileEvent_DistrCacheRegistryUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. Time spent updating distributed cache registry -- `ProfileEvent_DistrCacheRegistryUpdates` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. Number of distributed cache registry updates -- `ProfileEvent_DistrCacheHashRingRebuilds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. Number of distributed cache hash ring rebuilds -- `ProfileEvent_DistrCacheSuccessfulRegistryUpdates` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. The number of successful server registry updates -- `ProfileEvent_DistrCacheUnsuccessfulRegistryUpdates` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache registry event. The number of unsuccessful server registry updates -- `ProfileEvent_DistrCacheReadBytesFromFallbackBuffer` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache read buffer event. Bytes read from fallback buffer -- `ProfileEvent_DistrCacheOpenedConnections` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of open connections to distributed cache -- `ProfileEvent_DistrCacheReusedConnections` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of reused connections to distributed cache -- `ProfileEvent_DistrCacheStaleReconnections` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of reconnections due to stale (peer-closed) pooled connections -- `ProfileEvent_DistrCacheRemoveOutdatedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The time spent removing outdated connections from the pool -- `ProfileEvent_DistrCacheOpenedConnectionsBypassingPool` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of open connections to distributed cache bypassing pool -- `ProfileEvent_DistrCacheConnectMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The time spent to connect to distributed cache -- `ProfileEvent_DistrCacheConnectAttempts` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of connection attempts to distributed cache -- `ProfileEvent_DistrCacheSuccessfulConnectAttempts` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of successful connection attempts to distributed cache -- `ProfileEvent_DistrCacheUnsuccessfulConnectAttempts` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. The number of unsuccessful connection attempts to distributed cache -- `ProfileEvent_DistrCacheGetClientMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. Time spent getting client for distributed cache -- `ProfileEvent_DistrCacheTemporaryFilesCreated` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. Number of temporary files created in distributed cache -- `ProfileEvent_DistrCacheTemporaryFilesBytesWritten` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache connection event. Number of bytes written to temporary files created in distributed cache -- `ProfileEvent_DistrCacheServerProcessRequestMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Time spent processing request on DistributedCache server side -- `ProfileEvent_DistrCacheServerStartRequestPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Number of StartRequest packets in DistributedCacheServer -- `ProfileEvent_DistrCacheServerContinueRequestPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Number of ContinueRequest packets in DistributedCacheServer -- `ProfileEvent_DistrCacheServerEndRequestPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Number of EndRequest packets in DistributedCacheServer -- `ProfileEvent_DistrCacheServerReceivedCredentialsRefreshPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Number of RefreshCredentials client packets in DistributedCacheServer -- `ProfileEvent_DistrCacheServerAckRequestPackets` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. Number of AckRequest packets in DistributedCacheServer -- `ProfileEvent_DistrCacheServerNewS3CachedClients` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of new cached s3 clients -- `ProfileEvent_DistrCacheServerReusedS3CachedClients` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of reused cached s3 clients -- `ProfileEvent_DistrCacheServerCredentialsRefresh` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of expired credentials were refreshed -- `ProfileEvent_DistrCacheServerCachedReadBufferCacheHits` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache hit the cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerCachedReadBufferCacheMisses` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache missed the cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerCachedReadBufferCacheWrittenBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes written to cache in distributed cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerCachedReadBufferCacheReadBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from cache in distributed cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerCachedReadBufferObjectStorageReadBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from object storage in distributed cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerCachedReadBufferCachePredownloadBytes` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of bytes read from object storage for predownload in distributed cache while reading from filesystem cache -- `ProfileEvent_DistrCacheServerSkipped` ([UInt64](/reference/data-types/int-uint)) — Distributed Cache server event. The number of times distributed cache server was skipped because of previous failed connection attempts -- `ProfileEvent_LogTest` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Test -- `ProfileEvent_LogTrace` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Trace -- `ProfileEvent_LogDebug` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Debug -- `ProfileEvent_LogInfo` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Info -- `ProfileEvent_LogWarning` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Warning -- `ProfileEvent_LogError` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Error -- `ProfileEvent_LogFatal` ([UInt64](/reference/data-types/int-uint)) — Number of log messages with level Fatal -- `ProfileEvent_LoggerElapsedNanoseconds` ([UInt64](/reference/data-types/int-uint)) — Cumulative time spend in logging -- `ProfileEvent_InterfaceHTTPSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through HTTP interfaces -- `ProfileEvent_InterfaceHTTPReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through HTTP interfaces -- `ProfileEvent_InterfaceNativeSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through native interfaces -- `ProfileEvent_InterfaceNativeReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through native interfaces -- `ProfileEvent_InterfacePrometheusSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through Prometheus interfaces -- `ProfileEvent_InterfacePrometheusReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through Prometheus interfaces -- `ProfileEvent_InterfaceInterserverSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through interserver interfaces -- `ProfileEvent_InterfaceInterserverReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through interserver interfaces -- `ProfileEvent_InterfaceMySQLSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through MySQL interfaces -- `ProfileEvent_InterfaceMySQLReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through MySQL interfaces -- `ProfileEvent_InterfacePostgreSQLSendBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes sent through PostgreSQL interfaces -- `ProfileEvent_InterfacePostgreSQLReceiveBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes received through PostgreSQL interfaces -- `ProfileEvent_ParallelReplicasUsedCount` ([UInt64](/reference/data-types/int-uint)) — Number of replicas used to execute a query with task-based parallel replicas -- `ProfileEvent_ParallelReplicasAvailableCount` ([UInt64](/reference/data-types/int-uint)) — Number of replicas available to execute a query with task-based parallel replicas -- `ProfileEvent_ParallelReplicasUnavailableCount` ([UInt64](/reference/data-types/int-uint)) — Number of replicas which was chosen, but found to be unavailable during query execution with task-based parallel replicas -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdates` ([UInt64](/reference/data-types/int-uint)) — Virtual parts update count -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesByLeader` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates by leader -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Virtual parts update microseconds -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromZooKeeper` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates count from ZooKeeper -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromZooKeeperMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates from ZooKeeper microseconds -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesPeerNotFound` ([UInt64](/reference/data-types/int-uint)) — Virtual updates from peer failed because no one found -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromPeer` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates count from peer -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesFromPeerMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates from peer microseconds -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesForMergesOrStatus` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates from non-default background job -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesLeaderFailedElection` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates leader election failed -- `ProfileEvent_SharedMergeTreeVirtualPartsUpdatesLeaderSuccessfulElection` ([UInt64](/reference/data-types/int-uint)) — Virtual parts updates leader election successful -- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentAttempt` ([UInt64](/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation -- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentFailedWithNothingToDo` ([UInt64](/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation and failed because nothing to merge -- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentFailedWithConflict` ([UInt64](/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation and failed because of conflict in Keeper -- `ProfileEvent_SharedMergeTreeMergeMutationAssignmentSuccessful` ([UInt64](/reference/data-types/int-uint)) — How many times we tried to assign merge or mutation -- `ProfileEvent_SharedMergeTreeMergePartsMovedToOudated` ([UInt64](/reference/data-types/int-uint)) — How many parts moved to outdated directory -- `ProfileEvent_SharedMergeTreeMergePartsMovedToCondemned` ([UInt64](/reference/data-types/int-uint)) — How many parts moved to condemned directory -- `ProfileEvent_SharedMergeTreeOutdatedPartsConfirmationRequest` ([UInt64](/reference/data-types/int-uint)) — How many ZooKeeper requests were used to config outdated parts -- `ProfileEvent_SharedMergeTreeOutdatedPartsConfirmationInvocations` ([UInt64](/reference/data-types/int-uint)) — How many invocations were made to confirm outdated parts -- `ProfileEvent_SharedMergeTreeOutdatedPartsHTTPRequest` ([UInt64](/reference/data-types/int-uint)) — How many HTTP requests were send to confirm outdated parts -- `ProfileEvent_SharedMergeTreeOutdatedPartsHTTPResponse` ([UInt64](/reference/data-types/int-uint)) — How many HTTP responses were send to confirm outdated parts -- `ProfileEvent_SharedMergeTreeCondemnedPartsKillRequest` ([UInt64](/reference/data-types/int-uint)) — How many ZooKeeper requests were used to remove condemned parts -- `ProfileEvent_SharedMergeTreeCondemnedPartsLockConflict` ([UInt64](/reference/data-types/int-uint)) — How many times we failed to acquire lock because of conflict -- `ProfileEvent_SharedMergeTreeCondemnedPartsRemoved` ([UInt64](/reference/data-types/int-uint)) — How many condemned parts were removed -- `ProfileEvent_SharedMergeTreePartsKillerRuns` ([UInt64](/reference/data-types/int-uint)) — How many times parts killer has been running -- `ProfileEvent_SharedMergeTreePartsKillerMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How much time does parts killer main thread takes -- `ProfileEvent_SharedMergeTreePartsKillerParts` ([UInt64](/reference/data-types/int-uint)) — How many parts has been scheduled by the killer -- `ProfileEvent_SharedMergeTreePartsKillerPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How many time does it take to remove parts (executed from multiple threads) -- `ProfileEvent_SharedMergeTreeMergeSelectingTaskMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Merge selecting task microseconds for SMT -- `ProfileEvent_SharedMergeTreeReplicaSetUpdateTaskRuns` ([UInt64](/reference/data-types/int-uint)) — Number of times updateReplicaSetTask has run -- `ProfileEvent_SharedMergeTreeOptimizeAsync` ([UInt64](/reference/data-types/int-uint)) — Asynchronous OPTIMIZE queries executed -- `ProfileEvent_SharedMergeTreeOptimizeSync` ([UInt64](/reference/data-types/int-uint)) — Synchronous OPTIMIZE queries executed -- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJob` ([UInt64](/reference/data-types/int-uint)) — How many times scheduleDataProcessingJob called/ -- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJobNothingToScheduled` ([UInt64](/reference/data-types/int-uint)) — How many times scheduleDataProcessingJob called but nothing to do -- `ProfileEvent_SharedMergeTreeScheduleDataProcessingJobMicroseconds` ([UInt64](/reference/data-types/int-uint)) — scheduleDataProcessingJob execute time -- `ProfileEvent_SharedMergeTreeHandleBlockingParts` ([UInt64](/reference/data-types/int-uint)) — How many blocking parts to handle in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeHandleBlockingPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of handling blocking parts in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeHandleFetchPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of handling fetched parts in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeHandleOutdatedParts` ([UInt64](/reference/data-types/int-uint)) — How many outdated parts to handle in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeHandleOutdatedPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of handling outdated parts in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeSelectPartsForRendezvousFetchMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of selectPartsForRendezvousFetch -- `ProfileEvent_SharedMergeTreeSelectPartsForRendezvousFetchParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts selected by selectPartsForRendezvousFetch -- `ProfileEvent_SharedMergeTreeSelectPartsForCoordinatedFetchMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of selectPartsForCoordinatedFetch -- `ProfileEvent_SharedMergeTreeSelectPartsForCoordinatedFetchParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts selected by selectPartsForCoordinatedFetch -- `ProfileEvent_SharedMergeTreeSelectPartsForFullFetchMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of selectPartsForFullFetch -- `ProfileEvent_SharedMergeTreeSelectPartsForFullFetchParts` ([UInt64](/reference/data-types/int-uint)) — Number of parts selected by selectPartsForFullFetch -- `ProfileEvent_SharedMergeTreeTryUpdateDiskMetadataCacheForPartMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of tryUpdateDiskMetadataCacheForPart in scheduleDataProcessingJob -- `ProfileEvent_SharedMergeTreeLoadChecksumAndIndexesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of loadColumnsChecksumsIndexes only for SharedMergeTree -- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanRequest` ([UInt64](/reference/data-types/int-uint)) — How many times SnapshotCleanerThread decides to clean a part -- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerParts` ([UInt64](/reference/data-types/int-uint)) — How long time SnapshotCleanerThread tries to clean a part -- `ProfileEvent_SharedMergeTreeSnapshotPartsRemoved` ([UInt64](/reference/data-types/int-uint)) — How many times SnapshotCleanerThread successfully clean a part -- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerRuns` ([UInt64](/reference/data-types/int-uint)) — How many times SnapshotCleanerThread runs -- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How long time SnapshotCleanerThread has run -- `ProfileEvent_SharedMergeTreeSnapshotPartsCleanerPartsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How long time SnapshotCleanerThread takes to clean parts -- `ProfileEvent_SharedMergeTreeDataPartsFetchAttempt` ([UInt64](/reference/data-types/int-uint)) — How many times we tried to fetch data parts -- `ProfileEvent_SharedMergeTreeDataPartsFetchFromPeer` ([UInt64](/reference/data-types/int-uint)) — How many times we fetch data parts from peer -- `ProfileEvent_SharedMergeTreeDataPartsFetchFromPeerMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Data parts fetch from peer microseconds -- `ProfileEvent_SharedMergeTreeDataPartsFetchFromS3` ([UInt64](/reference/data-types/int-uint)) — How many times we fetch data parts from S3 -- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeper` ([UInt64](/reference/data-types/int-uint)) — How many times we have update replica set from ZooKeeper -- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeperRequests` ([UInt64](/reference/data-types/int-uint)) — How many total ZooKeeper requests we made to update replica set -- `ProfileEvent_SharedMergeTreeReplicaSetUpdatesFromZooKeeperMicroseconds` ([UInt64](/reference/data-types/int-uint)) — How much time we spend to update replica set -- `ProfileEvent_KeeperLogsEntryReadFromLatestCache` ([UInt64](/reference/data-types/int-uint)) — Number of log entries in Keeper being read from latest logs cache -- `ProfileEvent_KeeperLogsEntryReadFromCommitCache` ([UInt64](/reference/data-types/int-uint)) — Number of log entries in Keeper being read from commit logs cache -- `ProfileEvent_KeeperLogsEntryReadFromFile` ([UInt64](/reference/data-types/int-uint)) — Number of log entries in Keeper being read directly from the changelog file -- `ProfileEvent_KeeperLogsPrefetchedEntries` ([UInt64](/reference/data-types/int-uint)) — Number of log entries in Keeper being prefetched from the changelog file -- `ProfileEvent_KeeperChangelogWrittenBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to the changelog in Keeper -- `ProfileEvent_KeeperChangelogFileSyncMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in fsync for Keeper changelog (uncompressed logs only) -- `ProfileEvent_KeeperSnapshotWrittenBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes written to snapshot files in Keeper -- `ProfileEvent_KeeperSnapshotFileSyncMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent in fsync for Keeper snapshot files -- `ProfileEvent_StorageConnectionsCreated` ([UInt64](/reference/data-types/int-uint)) — Number of created connections for storages -- `ProfileEvent_StorageConnectionsReused` ([UInt64](/reference/data-types/int-uint)) — Number of reused connections for storages -- `ProfileEvent_StorageConnectionsReset` ([UInt64](/reference/data-types/int-uint)) — Number of reset connections for storages -- `ProfileEvent_StorageConnectionsPreserved` ([UInt64](/reference/data-types/int-uint)) — Number of preserved connections for storages -- `ProfileEvent_StorageConnectionsExpired` ([UInt64](/reference/data-types/int-uint)) — Number of expired connections for storages -- `ProfileEvent_StorageConnectionsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of cases when creation of a connection for storage is failed -- `ProfileEvent_StorageConnectionsElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on creating connections for storages -- `ProfileEvent_DiskConnectionsCreated` ([UInt64](/reference/data-types/int-uint)) — Number of created connections for disk -- `ProfileEvent_DiskConnectionsReused` ([UInt64](/reference/data-types/int-uint)) — Number of reused connections for disk -- `ProfileEvent_DiskConnectionsReset` ([UInt64](/reference/data-types/int-uint)) — Number of reset connections for disk -- `ProfileEvent_DiskConnectionsPreserved` ([UInt64](/reference/data-types/int-uint)) — Number of preserved connections for disk -- `ProfileEvent_DiskConnectionsExpired` ([UInt64](/reference/data-types/int-uint)) — Number of expired connections for disk -- `ProfileEvent_DiskConnectionsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of cases when creation of a connection for disk is failed -- `ProfileEvent_DiskConnectionsElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on creating connections for disk -- `ProfileEvent_HTTPConnectionsCreated` ([UInt64](/reference/data-types/int-uint)) — Number of created client HTTP connections -- `ProfileEvent_HTTPConnectionsReused` ([UInt64](/reference/data-types/int-uint)) — Number of reused client HTTP connections -- `ProfileEvent_HTTPConnectionsReset` ([UInt64](/reference/data-types/int-uint)) — Number of reset client HTTP connections -- `ProfileEvent_HTTPConnectionsPreserved` ([UInt64](/reference/data-types/int-uint)) — Number of preserved client HTTP connections -- `ProfileEvent_HTTPConnectionsExpired` ([UInt64](/reference/data-types/int-uint)) — Number of expired client HTTP connections -- `ProfileEvent_HTTPConnectionsErrors` ([UInt64](/reference/data-types/int-uint)) — Number of cases when creation of a client HTTP connection failed -- `ProfileEvent_HTTPConnectionsElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on creating client HTTP connections -- `ProfileEvent_HTTPServerConnectionsCreated` ([UInt64](/reference/data-types/int-uint)) — Number of created server HTTP connections -- `ProfileEvent_HTTPServerConnectionsReused` ([UInt64](/reference/data-types/int-uint)) — Number of reused server HTTP connections -- `ProfileEvent_HTTPServerConnectionsPreserved` ([UInt64](/reference/data-types/int-uint)) — Number of preserved server HTTP connections. Connection kept alive successfully -- `ProfileEvent_HTTPServerConnectionsExpired` ([UInt64](/reference/data-types/int-uint)) — Number of expired server HTTP connections. -- `ProfileEvent_HTTPServerConnectionsClosed` ([UInt64](/reference/data-types/int-uint)) — Number of closed server HTTP connections. Keep alive has not been negotiated -- `ProfileEvent_HTTPServerConnectionsReset` ([UInt64](/reference/data-types/int-uint)) — Number of reset server HTTP connections. Server closes connection -- `ProfileEvent_AddressesDiscovered` ([UInt64](/reference/data-types/int-uint)) — Total count of new addresses in DNS resolve results for HTTP connections -- `ProfileEvent_AddressesExpired` ([UInt64](/reference/data-types/int-uint)) — Total count of expired addresses which is no longer presented in DNS resolve results for HTTP connections -- `ProfileEvent_AddressesMarkedAsFailed` ([UInt64](/reference/data-types/int-uint)) — Total count of addresses which have been marked as faulty due to connection errors for HTTP connections -- `ProfileEvent_ReadWriteBufferFromHTTPRequestsSent` ([UInt64](/reference/data-types/int-uint)) — Number of HTTP requests sent by ReadWriteBufferFromHTTP -- `ProfileEvent_ReadWriteBufferFromHTTPBytes` ([UInt64](/reference/data-types/int-uint)) — Total size of payload bytes received and sent by ReadWriteBufferFromHTTP. Doesn't include HTTP headers. -- `ProfileEvent_WriteBufferFromHTTPRequestsSent` ([UInt64](/reference/data-types/int-uint)) — Number of HTTP requests sent by WriteBufferFromHTTP -- `ProfileEvent_WriteBufferFromHTTPBytes` ([UInt64](/reference/data-types/int-uint)) — Total size of payload bytes received and sent by WriteBufferFromHTTP. Doesn't include HTTP headers. -- `ProfileEvent_ConcurrencyControlSlotsGranted` ([UInt64](/reference/data-types/int-uint)) — Number of CPU slot granted according to guarantee of 1 thread per query and for queries with setting 'use_concurrency_control' = 0 -- `ProfileEvent_ConcurrencyControlSlotsDelayed` ([UInt64](/reference/data-types/int-uint)) — Number of CPU slot not granted initially and required to wait for a free CPU slot -- `ProfileEvent_ConcurrencyControlSlotsAcquired` ([UInt64](/reference/data-types/int-uint)) — Total number of CPU slots acquired -- `ProfileEvent_ConcurrencyControlSlotsAcquiredNonCompeting` ([UInt64](/reference/data-types/int-uint)) — Total number of noncompeting CPU slot acquired -- `ProfileEvent_ConcurrencyControlQueriesDelayed` ([UInt64](/reference/data-types/int-uint)) — Total number of CPU slot allocations (queries) that were required to wait for slots to upscale -- `ProfileEvent_ConcurrencyControlWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting on resource requests for CPU slots. -- `ProfileEvent_ConcurrencyControlPreemptedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting due to preemption of CPU slots. -- `ProfileEvent_ConcurrencyControlPreemptions` ([UInt64](/reference/data-types/int-uint)) — Total number of CPU preemptions -- `ProfileEvent_ConcurrencyControlUpscales` ([UInt64](/reference/data-types/int-uint)) — Total number of CPU upscaling events -- `ProfileEvent_ConcurrencyControlDownscales` ([UInt64](/reference/data-types/int-uint)) — Total number of CPU downscaling events -- `ProfileEvent_ConcurrentQuerySlotsAcquired` ([UInt64](/reference/data-types/int-uint)) — Total number of query slots acquired -- `ProfileEvent_ConcurrentQueryWaitMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time a query was waiting for a query slots -- `ProfileEvent_CoordinatedMergesMergeCoordinatorUpdateCount` ([UInt64](/reference/data-types/int-uint)) — Total number of merge coordinator updates -- `ProfileEvent_CoordinatedMergesMergeCoordinatorUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on updating merge coordinator state -- `ProfileEvent_CoordinatedMergesMergeCoordinatorFetchMetadataMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on fetching fresh metadata inside merge coordinator -- `ProfileEvent_CoordinatedMergesMergeCoordinatorFilterMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on filtering prepared merges inside merge coordinator -- `ProfileEvent_CoordinatedMergesMergeCoordinatorSelectMergesMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on finding merge using merge selectors inside merge coordinator -- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateForShareCount` ([UInt64](/reference/data-types/int-uint)) — Total number of for share captures of coordinator state lock -- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateExclusivelyCount` ([UInt64](/reference/data-types/int-uint)) — Total number of exclusive captures of coordinator state lock -- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateForShareMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on locking coordinator state mutex for share -- `ProfileEvent_CoordinatedMergesMergeCoordinatorLockStateExclusivelyMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on locking coordinator state mutex exclusively -- `ProfileEvent_CoordinatedMergesMergeWorkerUpdateCount` ([UInt64](/reference/data-types/int-uint)) — Total number merge worker updates -- `ProfileEvent_CoordinatedMergesMergeWorkerUpdateMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on updating local state of assigned merges on worker -- `ProfileEvent_CoordinatedMergesMergeAssignmentRequest` ([UInt64](/reference/data-types/int-uint)) — Total number of merge assignment requests -- `ProfileEvent_CoordinatedMergesMergeAssignmentResponse` ([UInt64](/reference/data-types/int-uint)) — Total number of merge assignment requests -- `ProfileEvent_CoordinatedMergesMergeAssignmentRequestMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend in merge assignment client -- `ProfileEvent_CoordinatedMergesMergeAssignmentResponseMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend in merge assignment handler -- `ProfileEvent_SharedDatabaseCatalogFailedToApplyState` ([UInt64](/reference/data-types/int-uint)) — Number of failures to apply new state in SharedDatabaseCatalog -- `ProfileEvent_SharedDatabaseCatalogStateApplicationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spend on application of new state in SharedDatabaseCatalog -- `ProfileEvent_MemoryWorkerRun` ([UInt64](/reference/data-types/int-uint)) — Number of runs done by MemoryWorker in background -- `ProfileEvent_MemoryWorkerRunElapsedMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Total time spent by MemoryWorker for background work -- `ProfileEvent_ParquetFetchWaitTimeMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time of waiting for parquet file reads from decoding threads (not prefetching threads) -- `ProfileEvent_WasmSerializationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent executing WebAssembly code -- `ProfileEvent_WasmDeserializationMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent executing WebAssembly code -- `ProfileEvent_WasmGuestExecuteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent executing WebAssembly code -- `ProfileEvent_WasmTotalExecuteMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Time spent executing WebAssembly code -- `ProfileEvent_WasmModuleInstatiate` ([UInt64](/reference/data-types/int-uint)) — Number of WebAssembly compartments created -- `ProfileEvent_WasmMemoryAllocated` ([UInt64](/reference/data-types/int-uint)) — Total memory allocated for WebAssembly compartments -- `ProfileEvent_ParquetReadRowGroups` ([UInt64](/reference/data-types/int-uint)) — The total number of row groups read from parquet data -- `ProfileEvent_ParquetPrunedRowGroups` ([UInt64](/reference/data-types/int-uint)) — The total number of row groups pruned from parquet data -- `ProfileEvent_ParquetDecodingTasks` ([UInt64](/reference/data-types/int-uint)) — Tasks issued by parquet reader -- `ProfileEvent_ParquetDecodingTaskBatches` ([UInt64](/reference/data-types/int-uint)) — Task groups sent to a thread pool by parquet reader -- `ProfileEvent_ParquetPrefetcherReadRandomRead` ([UInt64](/reference/data-types/int-uint)) — The total number of reads with ReadMode::RandomRead by DB::Parquet::Prefetcher -- `ProfileEvent_ParquetPrefetcherReadSeekAndRead` ([UInt64](/reference/data-types/int-uint)) — The total number of reads with ReadMode::SeekAndRead by DB::Parquet::Prefetcher -- `ProfileEvent_ParquetPrefetcherReadEntireFile` ([UInt64](/reference/data-types/int-uint)) — The total number of read with ReadMode::EntireFileIsInMemory by DB::Parquet::Prefetcher -- `ProfileEvent_ParquetRowsFilterExpression` ([UInt64](/reference/data-types/int-uint)) — The total number of rows that were passed through filter -- `ProfileEvent_ParquetColumnsFilterExpression` ([UInt64](/reference/data-types/int-uint)) — The total number of columns that were passed through filter -- `ProfileEvent_FilterTransformPassedRows` ([UInt64](/reference/data-types/int-uint)) — Number of rows that passed the filter in the query -- `ProfileEvent_FilterTransformPassedBytes` ([UInt64](/reference/data-types/int-uint)) — Number of bytes that passed the filter in the query -- `ProfileEvent_QueryPreempted` ([UInt64](/reference/data-types/int-uint)) — How many times tasks are paused and waiting due to 'priority' setting -- `ProfileEvent_IndexBinarySearchAlgorithm` ([UInt64](/reference/data-types/int-uint)) — Number of times the binary search algorithm is used over the index marks -- `ProfileEvent_IndexGenericExclusionSearchAlgorithm` ([UInt64](/reference/data-types/int-uint)) — Number of times the generic exclusion search algorithm is used over the index marks -- `ProfileEvent_ParallelReplicasQueryCount` ([UInt64](/reference/data-types/int-uint)) — Number of (sub)queries executed using parallel replicas during a query execution -- `ProfileEvent_DistributedConnectionReconnectCount` ([UInt64](/reference/data-types/int-uint)) — Number of reconnects to other servers done during distributed query execution. It can happen when a stale connection has been acquired from connection pool -- `ProfileEvent_DistributedConnectionConnectCount` ([UInt64](/reference/data-types/int-uint)) — Number of connects to other servers done during distributed query execution. Happens when new connection is established instead of using existing from pool. -- `ProfileEvent_RefreshableViewRefreshSuccess` ([UInt64](/reference/data-types/int-uint)) — How many times refreshable materialized views refreshed -- `ProfileEvent_RefreshableViewRefreshFailed` ([UInt64](/reference/data-types/int-uint)) — How many times refreshable materialized views failed to refresh -- `ProfileEvent_RefreshableViewSyncReplicaSuccess` ([UInt64](/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view did an implicit SYNC REPLICA -- `ProfileEvent_RefreshableViewSyncReplicaRetry` ([UInt64](/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view failed and retried an implicit SYNC REPLICA -- `ProfileEvent_RefreshableViewLockTableRetry` ([UInt64](/reference/data-types/int-uint)) — How many times a SELECT from refreshable materialized view had to switch to a new table because the old table was dropped -- `ProfileEvent_AsyncLoggingConsoleTotalMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the console log -- `ProfileEvent_AsyncLoggingFileLogTotalMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the file log -- `ProfileEvent_AsyncLoggingErrorFileLogTotalMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the error file log -- `ProfileEvent_AsyncLoggingSyslogTotalMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the syslog -- `ProfileEvent_AsyncLoggingTextLogTotalMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages (accepted or dropped) have been sent to the async queue for the text_log -- `ProfileEvent_AsyncLoggingConsoleDroppedMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages have been dropped from the console log due to the async log queue being full -- `ProfileEvent_AsyncLoggingFileLogDroppedMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages have been dropped from the file log due to the async log queue being full -- `ProfileEvent_AsyncLoggingErrorFileLogDroppedMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages have been dropped from error file log due to the async log queue being full -- `ProfileEvent_AsyncLoggingSyslogDroppedMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages have been dropped from the syslog due to the async log queue being full -- `ProfileEvent_AsyncLoggingTextLogDroppedMessages` ([UInt64](/reference/data-types/int-uint)) — How many messages have been dropped from text_log due to the async log queue being full -- `ProfileEvent_JemallocFailedAllocationSampleTracking` ([UInt64](/reference/data-types/int-uint)) — Total number of times tracking of jemalloc allocation sample failed -- `ProfileEvent_JemallocFailedDeallocationSampleTracking` ([UInt64](/reference/data-types/int-uint)) — Total number of times tracking of jemalloc deallocation sample failed -- `ProfileEvent_LoadedStatisticsMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Elapsed time of loading statistics from parts -- `ProfileEvent_RuntimeDataflowStatisticsInputBytes` ([UInt64](/reference/data-types/int-uint)) — Collected statistics on the number of bytes replicas would read if the query was executed with parallel replicas -- `ProfileEvent_RuntimeDataflowStatisticsOutputBytes` ([UInt64](/reference/data-types/int-uint)) — Collected statistics on the number of bytes replicas would send to the initiator if the query was executed with parallel replicas -- `ProfileEvent_S3CachedCredentialsProvidersReused` ([UInt64](/reference/data-types/int-uint)) — Total number of reused credentials provider from the cache -- `ProfileEvent_S3CachedCredentialsProvidersAdded` ([UInt64](/reference/data-types/int-uint)) — Total number of newly added credentials providers to the cache -- `ProfileEvent_RuntimeFiltersCreated` ([UInt64](/reference/data-types/int-uint)) — Number of distinct JOIN Runtime Filters created within a query -- `ProfileEvent_RuntimeFilterBlocksProcessed` ([UInt64](/reference/data-types/int-uint)) — Number of blocks processed by JOIN Runtime Filters -- `ProfileEvent_RuntimeFilterBlocksSkipped` ([UInt64](/reference/data-types/int-uint)) — Number of blocks skipped by JOIN Runtime Filters without processing due to filter being dynamically disabled because of poor filtering ratio -- `ProfileEvent_RuntimeFilterRowsChecked` ([UInt64](/reference/data-types/int-uint)) — Number of rows checked by JOIN Runtime Filters -- `ProfileEvent_RuntimeFilterRowsPassed` ([UInt64](/reference/data-types/int-uint)) — Number of rows that passed (not filtered out by) JOIN Runtime Filters -- `ProfileEvent_RuntimeFilterRowsSkipped` ([UInt64](/reference/data-types/int-uint)) — Number of rows in blocks that were skipped by JOIN Runtime Filters -- `ProfileEvent_JoinBuildPostProcessingMicroseconds` ([UInt64](/reference/data-types/int-uint)) — Elapsed time of post-processing steps after building the right JOIN side. -- `ProfileEvent_AIInputTokens` ([UInt64](/reference/data-types/int-uint)) — Total prompt tokens consumed across all AI function calls in the query. -- `ProfileEvent_AIOutputTokens` ([UInt64](/reference/data-types/int-uint)) — Total completion tokens consumed across all AI function calls in the query. -- `ProfileEvent_AIAPICalls` ([UInt64](/reference/data-types/int-uint)) — Number of HTTP requests dispatched to AI providers. -- `ProfileEvent_AIRowsProcessed` ([UInt64](/reference/data-types/int-uint)) — Number of rows that received an AI result. -- `ProfileEvent_AIRowsSkipped` ([UInt64](/reference/data-types/int-uint)) — Number of rows that received a default value due to quota or error. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.query_metric_log LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -query_id: 97c8ba04-b6d4-4bd7-b13e-6201c5c6e49d -hostname: clickhouse.eu-central1.internal -event_date: 2020-09-05 -event_time: 2020-09-05 16:22:33 -event_time_microseconds: 2020-09-05 16:22:33.196807 -memory_usage: 313434219 -peak_memory_usage: 598951986 -ProfileEvent_Query: 0 -ProfileEvent_SelectQuery: 0 -ProfileEvent_InsertQuery: 0 -ProfileEvent_FailedQuery: 0 -ProfileEvent_FailedSelectQuery: 0 -... -``` - -## See Also {#see-also} - -- [query_metric_log setting](/reference/settings/server-settings/settings#query_metric_log) — Enabling and disabling the setting. -- [query_metric_log_interval](/reference/settings/session-settings#query_metric_log_interval) -- [system.asynchronous_metrics](/reference/system-tables/asynchronous_metrics) — Contains periodically calculated metrics. -- [system.events](/reference/system-tables/events) — Contains a number of events that occurred. -- [system.metrics](/reference/system-tables/metrics) — Contains instantly calculated metrics. -- [Monitoring](/guides/oss/deployment-and-scaling/monitoring/monitoring) — Base concepts of ClickHouse monitoring. diff --git a/reference/system-tables/query_thread_log.mdx b/reference/system-tables/query_thread_log.mdx deleted file mode 100644 index 61831afe..00000000 --- a/reference/system-tables/query_thread_log.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -description: 'System table containing information about threads that execute queries, - for example, thread name, thread start time, duration of query processing.' -keywords: ['system table', 'query_thread_log'] -slug: /operations/system-tables/query_thread_log -title: 'system.query_thread_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about threads that execute queries, for example, thread name, thread start time, duration of query processing. - -To start logging: - -1. Configure parameters in the [query_thread_log](/reference/settings/server-settings/settings#query_thread_log) section. -2. Set [log_query_threads](/reference/settings/session-settings#log_query_threads) to 1. - -The flushing period of data is set in `flush_interval_milliseconds` parameter of the [query_thread_log](/reference/settings/server-settings/settings#query_thread_log) server settings section. To force flushing, use the [SYSTEM FLUSH LOGS](/reference/statements/system#flush-logs) query. - -ClickHouse does not delete data from the table automatically. See [Introduction](/reference/system-tables/overview#system-tables-introduction) for more details. - -You can use the [log_queries_probability](/reference/settings/session-settings#log_queries_probability)) setting to reduce the number of queries, registered in the `query_thread_log` table. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — The date when the thread has finished execution of the query. -- `event_time` ([DateTime](/reference/data-types/datetime)) — The date and time when the thread has finished execution of the query. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — The date and time when the thread has finished execution of the query with microseconds precision. -- `query_start_time` ([DateTime](/reference/data-types/datetime)) — Start time of query execution. -- `query_start_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Start time of query execution with microsecond precision. -- `query_duration_ms` ([UInt64](/reference/data-types/int-uint)) — Duration of query execution. -- `read_rows` ([UInt64](/reference/data-types/int-uint)) — Number of read rows. -- `read_bytes` ([UInt64](/reference/data-types/int-uint)) — Number of read bytes. -- `written_rows` ([UInt64](/reference/data-types/int-uint)) — For INSERT queries, the number of written rows. For other queries, the column value is 0. -- `written_bytes` ([UInt64](/reference/data-types/int-uint)) — For INSERT queries, the number of written bytes. For other queries, the column value is 0. -- `memory_usage` ([Int64](/reference/data-types/int-uint)) — The difference between the amount of allocated and freed memory in context of this thread. -- `peak_memory_usage` ([Int64](/reference/data-types/int-uint)) — The maximum difference between the amount of allocated and freed memory in context of this thread. -- `thread_name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the thread. -- `thread_id` ([UInt64](/reference/data-types/int-uint)) — Internal thread ID. -- `master_thread_id` ([UInt64](/reference/data-types/int-uint)) — OS initial ID of initial thread. -- `current_database` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the current database. -- `query` ([String](/reference/data-types/string)) — Query string. -- `normalized_query_hash` ([UInt64](/reference/data-types/int-uint)) — The hash of normalized query - with wiped constants, etc. -- `is_initial_query` ([UInt8](/reference/data-types/int-uint)) — Query type. Possible values: 1 — Query was initiated by the client, 0 — Query was initiated by another query for distributed query execution. -- `connection_address` ([IPv6](/reference/data-types/ipv6)) — The client IP address from which the connection was made. When connected through a proxy, this will be the address of the proxy. -- `connection_port` ([UInt16](/reference/data-types/int-uint)) — The client port from which the connection was made. When connected through a proxy, this will be the port of the proxy. -- `user` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the user who initiated the current query. -- `query_id` ([String](/reference/data-types/string)) — ID of the query. -- `address` ([IPv6](/reference/data-types/ipv6)) — IP address that was used to make the query. When connected through a proxy and `auth_use_forwarded_address` is set, this will be the address of the client instead of the proxy. -- `port` ([UInt16](/reference/data-types/int-uint)) — The client port that was used to make the query. When connected through a proxy and `auth_use_forwarded_address` is set, this will be the port of the client instead of the proxy. -- `initial_user` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the user who ran the initial query (for distributed query execution). -- `initial_query_id` ([String](/reference/data-types/string)) — ID of the initial query (for distributed query execution). -- `initial_address` ([IPv6](/reference/data-types/ipv6)) — IP address that the parent query was launched from. -- `initial_port` ([UInt16](/reference/data-types/int-uint)) — The client port that was used to make the parent query. -- `initial_query_start_time` ([DateTime](/reference/data-types/datetime)) — Start time of the initial query execution. -- `initial_query_start_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Start time of the initial query execution -- `authenticated_user` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the user who was authenticated in the session. -- `interface` ([UInt8](/reference/data-types/int-uint)) — Interface that the query was initiated from. Possible values: 1 — TCP, 2 — HTTP. -- `is_secure` ([UInt8](/reference/data-types/int-uint)) — The flag which shows whether the connection was secure. -- `os_user` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — OSs username who runs clickhouse-client. -- `client_hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the client machine where the clickhouse-client or another TCP client is run. -- `client_name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — The clickhouse-client or another TCP client name. -- `client_revision` ([UInt32](/reference/data-types/int-uint)) — Revision of the clickhouse-client or another TCP client. -- `client_version_major` ([UInt32](/reference/data-types/int-uint)) — Major version of the clickhouse-client or another TCP client. -- `client_version_minor` ([UInt32](/reference/data-types/int-uint)) — Minor version of the clickhouse-client or another TCP client. -- `client_version_patch` ([UInt32](/reference/data-types/int-uint)) — Patch component of the clickhouse-client or another TCP client version. -- `script_query_number` ([UInt32](/reference/data-types/int-uint)) — A sequential query number in a multi-query script. -- `script_line_number` ([UInt32](/reference/data-types/int-uint)) — A line number in a multi-query script where the current query starts. -- `http_method` ([UInt8](/reference/data-types/int-uint)) — HTTP method that initiated the query. Possible values: 0 — The query was launched from the TCP interface, 1 — GET method was used., 2 — POST method was used. -- `http_user_agent` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — The UserAgent header passed in the HTTP request. -- `http_referer` ([String](/reference/data-types/string)) — HTTP header `Referer` passed in the HTTP query (contains an absolute or partial address of the page making the query). -- `forwarded_for` ([String](/reference/data-types/string)) — HTTP header `X-Forwarded-For` passed in the HTTP query. -- `quota_key` ([String](/reference/data-types/string)) — The 'quota key' specified in the quotas setting. -- `distributed_depth` ([UInt64](/reference/data-types/int-uint)) — How many times a query was forwarded between servers. -- `revision` ([UInt32](/reference/data-types/int-uint)) — ClickHouse revision. -- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/reference/data-types/map)) — ProfileEvents that measure different metrics for this thread. The description of them could be found in the table system.events. - -**Aliases:** - -- `ProfileEvents.Names` — Alias for `mapKeys(ProfileEvents)`. -- `ProfileEvents.Values` — Alias for `mapValues(ProfileEvents)`. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql - SELECT * FROM system.query_thread_log LIMIT 1 \G -``` - -```text -Row 1: -────── -hostname: clickhouse.eu-central1.internal -event_date: 2020-09-11 -event_time: 2020-09-11 10:08:17 -event_time_microseconds: 2020-09-11 10:08:17.134042 -query_start_time: 2020-09-11 10:08:17 -query_start_time_microseconds: 2020-09-11 10:08:17.063150 -query_duration_ms: 70 -read_rows: 0 -read_bytes: 0 -written_rows: 1 -written_bytes: 12 -memory_usage: 4300844 -peak_memory_usage: 4300844 -thread_name: TCPHandler -thread_id: 638133 -master_thread_id: 638133 -query: INSERT INTO test1 VALUES -is_initial_query: 1 -user: default -query_id: 50a320fd-85a8-49b8-8761-98a86bcbacef -address: ::ffff:127.0.0.1 -port: 33452 -initial_user: default -initial_query_id: 50a320fd-85a8-49b8-8761-98a86bcbacef -initial_address: ::ffff:127.0.0.1 -initial_port: 33452 -interface: 1 -os_user: bharatnc -client_hostname: tower -client_name: ClickHouse -client_revision: 54437 -client_version_major: 20 -client_version_minor: 7 -client_version_patch: 2 -http_method: 0 -http_user_agent: -quota_key: -revision: 54440 -ProfileEvents: {'Query':1,'SelectQuery':1,'ReadCompressedBytes':36,'CompressedReadBufferBlocks':1,'CompressedReadBufferBytes':10,'IOBufferAllocs':1,'IOBufferAllocBytes':89,'ContextLock':15,'RWLockAcquiredReadLocks':1} -``` - -## See Also {#see-also} - -- [system.query_log](/reference/system-tables/query_log) — Description of the `query_log` system table which contains common information about queries execution. -- [system.query_views_log](/reference/system-tables/query_views_log) — This table contains information about each view executed during a query. diff --git a/reference/system-tables/query_views_log.mdx b/reference/system-tables/query_views_log.mdx deleted file mode 100644 index 05c2fb94..00000000 --- a/reference/system-tables/query_views_log.mdx +++ /dev/null @@ -1,95 +0,0 @@ ---- -description: 'System table containing information about the dependent views executed - when running a query, for example, the view type or the execution time.' -keywords: ['system table', 'query_views_log'] -slug: /operations/system-tables/query_views_log -title: 'system.query_views_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about the dependent views executed when running a query, for example, the view type or the execution time. - -To start logging: - -1. Configure parameters in the [query_views_log](/reference/settings/server-settings/settings#query_views_log) section. -2. Set [log_query_views](/reference/settings/session-settings#log_query_views) to 1. - -The flushing period of data is set in `flush_interval_milliseconds` parameter of the [query_views_log](/reference/settings/server-settings/settings#query_views_log) server settings section. To force flushing, use the [SYSTEM FLUSH LOGS](/reference/statements/system#flush-logs) query. - -ClickHouse does not delete data from the table automatically. See [Introduction](/reference/system-tables/overview#system-tables-introduction) for more details. - -You can use the [log_queries_probability](/reference/settings/session-settings#log_queries_probability)) setting to reduce the number of queries, registered in the `query_views_log` table. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — The date when the last event of the view happened. -- `event_time` ([DateTime](/reference/data-types/datetime)) — The date and time when the view finished execution. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — The date and time when the view finished execution with microseconds precision. -- `view_duration_ms` ([UInt64](/reference/data-types/int-uint)) — Duration of view execution (sum of its stages) in milliseconds. -- `initial_query_id` ([String](/reference/data-types/string)) — ID of the initial query (for distributed query execution). -- `view_name` ([String](/reference/data-types/string)) — Name of the view. -- `view_uuid` ([UUID](/reference/data-types/uuid)) — UUID of the view. -- `view_type` ([Enum8('Default' = 1, 'Materialized' = 2, 'Live' = 3, 'Window' = 4)](/reference/data-types/enum)) — Type of the view. Values: 'Default' = 1 — Default views. Should not appear in this log, 'Materialized' = 2 — Materialized views, 'Live' = 3 — Live views. -- `view_query` ([String](/reference/data-types/string)) — The query executed by the view. -- `view_target` ([String](/reference/data-types/string)) — The name of the view target table. -- `read_rows` ([UInt64](/reference/data-types/int-uint)) — Number of read rows. -- `read_bytes` ([UInt64](/reference/data-types/int-uint)) — Number of read bytes. -- `written_rows` ([UInt64](/reference/data-types/int-uint)) — Number of written rows. -- `written_bytes` ([UInt64](/reference/data-types/int-uint)) — Number of written bytes. -- `peak_memory_usage` ([Int64](/reference/data-types/int-uint)) — The maximum difference between the amount of allocated and freed memory in context of this view. -- `ProfileEvents` ([Map(LowCardinality(String), UInt64)](/reference/data-types/map)) — ProfileEvents that measure different metrics. The description of them could be found in the table system.events. -- `status` ([Enum8('QueryStart' = 1, 'QueryFinish' = 2, 'ExceptionBeforeStart' = 3, 'ExceptionWhileProcessing' = 4)](/reference/data-types/enum)) — Status of the view. Values: 'QueryStart' = 1 — Successful start the view execution. Should not appear, 'QueryFinish' = 2 — Successful end of the view execution, 'ExceptionBeforeStart' = 3 — Exception before the start of the view execution., 'ExceptionWhileProcessing' = 4 — Exception during the view execution. -- `exception_code` ([Int32](/reference/data-types/int-uint)) — Code of an exception. -- `exception` ([String](/reference/data-types/string)) — Exception message. -- `stack_trace` ([String](/reference/data-types/string)) — Stack trace. An empty string, if the query was completed successfully. - -**Aliases:** - -- `ProfileEvents.Names` — Alias for `mapKeys(ProfileEvents)`. -- `ProfileEvents.Values` — Alias for `mapValues(ProfileEvents)`. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql title="Query" -SELECT * FROM system.query_views_log LIMIT 1 \G; -``` - -```text title="Response" -Row 1: -────── -hostname: clickhouse.eu-central1.internal -event_date: 2021-06-22 -event_time: 2021-06-22 13:23:07 -event_time_microseconds: 2021-06-22 13:23:07.738221 -view_duration_ms: 0 -initial_query_id: c3a1ac02-9cad-479b-af54-9e9c0a7afd70 -view_name: default.matview_inner -view_uuid: 00000000-0000-0000-0000-000000000000 -view_type: Materialized -view_query: SELECT * FROM default.table_b -view_target: default.`.inner.matview_inner` -read_rows: 4 -read_bytes: 64 -written_rows: 2 -written_bytes: 32 -peak_memory_usage: 4196188 -ProfileEvents: {'FileOpen':2,'WriteBufferFromFileDescriptorWrite':2,'WriteBufferFromFileDescriptorWriteBytes':187,'IOBufferAllocs':3,'IOBufferAllocBytes':3145773,'FunctionExecute':3,'DiskWriteElapsedMicroseconds':13,'InsertedRows':2,'InsertedBytes':16,'SelectedRows':4,'SelectedBytes':48,'ContextLock':16,'RWLockAcquiredReadLocks':1,'RealTimeMicroseconds':698,'SoftPageFaults':4,'OSReadChars':463} -status: QueryFinish -exception_code: 0 -exception: -stack_trace: -``` - -## See Also {#see-also} - -{/*AUTOGENERATED_START*/} -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/quota_limits.mdx b/reference/system-tables/quota_limits.mdx deleted file mode 100644 index 528ee366..00000000 --- a/reference/system-tables/quota_limits.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -description: 'System table containing information about maximums for all intervals - of all quotas. Any number of rows or zero can correspond to one quota.' -keywords: ['system table', 'quota_limits'] -slug: /operations/system-tables/quota_limits -title: 'system.quota_limits' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about maximums for all intervals of all quotas. Any number of rows or zero can correspond to one quota. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `quota_name` ([String](/reference/data-types)) — Quota name. -- `duration` ([UInt32](/reference/data-types)) — Length of the time interval for calculating resource consumption, in seconds. -- `is_randomized_interval` ([UInt8](/reference/data-types)) — Boolean value. It shows whether the interval is randomized. Interval always starts at the same time if it is not randomized. For example, an interval of 1 minute always starts at an integer number of minutes (i.e. it can start at 11:20:00, but it never starts at 11:20:01), an interval of one day always starts at midnight UTC. If interval is randomized, the very first interval starts at random time, and subsequent intervals starts one by one. Values: 0 — Interval is not randomized, 1 — Interval is randomized. -- `max_queries` ([Nullable(UInt64)](/reference/data-types)) — The maximum allowed number of queries of all types allowed to be executed. -- `max_query_selects` ([Nullable(UInt64)](/reference/data-types)) — The maximum allowed number of SELECT queries allowed to be executed. -- `max_query_inserts` ([Nullable(UInt64)](/reference/data-types)) — The maximum allowed number of INSERT queries allowed to be executed. -- `max_errors` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of queries resulted in an error allowed within the specified period of time. -- `max_result_rows` ([Nullable(UInt64)](/reference/data-types)) — The maximum total number of rows in the result set of all queries allowed within the specified period of time. -- `max_result_bytes` ([Nullable(UInt64)](/reference/data-types)) — The maximum total number of bytes in the result set of all queries allowed within the specified period of time. -- `max_read_rows` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of rows to read during execution of all queries allowed within the specified period of time. -- `max_read_bytes` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of bytes to read during execution of all queries allowed within the specified period of time. -- `max_execution_time` ([Nullable(Float64)](/reference/data-types)) — The maximum amount of time (in nanoseconds) allowed for all queries to execute within the specified period of time -- `max_written_bytes` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of bytes to written during execution of all queries allowed within the specified period of time. -- `max_failed_sequential_authentications` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of consecutive authentication failures allowed within the specified period of time. -- `max_queries_per_normalized_hash` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of executions of any single normalized query allowed within the specified period of time. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/quota_usage.mdx b/reference/system-tables/quota_usage.mdx deleted file mode 100644 index 39c85361..00000000 --- a/reference/system-tables/quota_usage.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -description: 'System table containing formation about quota usage by the current user - such as how much of the quota is used and how much is left.' -keywords: ['system table', 'quota_usage'] -slug: /operations/system-tables/quota_usage -title: 'system.quota_usage' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Quota usage by the current user: how much is used and how much is left. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `quota_name` ([String](/reference/data-types)) — Quota name. -- `quota_key` ([String](/reference/data-types)) — Key value. -- `start_time` ([Nullable(DateTime)](/reference/data-types)) — Start time for calculating resource consumption. -- `end_time` ([Nullable(DateTime)](/reference/data-types)) — End time for calculating resource consumption. -- `duration` ([Nullable(UInt32)](/reference/data-types)) — Length of the time interval for calculating resource consumption, in seconds. -- `queries` ([Nullable(UInt64)](/reference/data-types)) — The current number of executed queries. -- `max_queries` ([Nullable(UInt64)](/reference/data-types)) — The maximum allowed number of queries of all types allowed to be executed. -- `query_selects` ([Nullable(UInt64)](/reference/data-types)) — The current number of executed SELECT queries. -- `max_query_selects` ([Nullable(UInt64)](/reference/data-types)) — The maximum allowed number of SELECT queries allowed to be executed. -- `query_inserts` ([Nullable(UInt64)](/reference/data-types)) — The current number of executed INSERT queries. -- `max_query_inserts` ([Nullable(UInt64)](/reference/data-types)) — The maximum allowed number of INSERT queries allowed to be executed. -- `errors` ([Nullable(UInt64)](/reference/data-types)) — The current number of queries resulted in an error. -- `max_errors` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of queries resulted in an error allowed within the specified period of time. -- `result_rows` ([Nullable(UInt64)](/reference/data-types)) — The current total number of rows in the result set of all queries within the current period of time. -- `max_result_rows` ([Nullable(UInt64)](/reference/data-types)) — The maximum total number of rows in the result set of all queries allowed within the specified period of time. -- `result_bytes` ([Nullable(UInt64)](/reference/data-types)) — The current total number of bytes in the result set of all queries within the current period of time. -- `max_result_bytes` ([Nullable(UInt64)](/reference/data-types)) — The maximum total number of bytes in the result set of all queries allowed within the specified period of time. -- `read_rows` ([Nullable(UInt64)](/reference/data-types)) — The current total number of rows read during execution of all queries within the current period of time. -- `max_read_rows` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of rows to read during execution of all queries allowed within the specified period of time. -- `read_bytes` ([Nullable(UInt64)](/reference/data-types)) — The current total number of bytes read during execution of all queries within the current period of time. -- `max_read_bytes` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of bytes to read during execution of all queries allowed within the specified period of time. -- `execution_time` ([Nullable(Float64)](/reference/data-types)) — The current total amount of time (in nanoseconds) spent to execute queries within the current period of time -- `max_execution_time` ([Nullable(Float64)](/reference/data-types)) — The maximum amount of time (in nanoseconds) allowed for all queries to execute within the specified period of time -- `written_bytes` ([Nullable(UInt64)](/reference/data-types)) — The current total number of bytes written during execution of all queries within the current period of time. -- `max_written_bytes` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of bytes to written during execution of all queries allowed within the specified period of time. -- `failed_sequential_authentications` ([Nullable(UInt64)](/reference/data-types)) — The current number of consecutive authentication failures within the current period of time. -- `max_failed_sequential_authentications` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of consecutive authentication failures allowed within the specified period of time. -- `queries_per_normalized_hash` ([Nullable(UInt64)](/reference/data-types)) — The current maximum number of executions of any single normalized query within the current period of time. -- `max_queries_per_normalized_hash` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of executions of any single normalized query allowed within the specified period of time. -{/*AUTOGENERATED_END*/} - -## See Also {#see-also} - -- [SHOW QUOTA](/reference/statements/show#show-quota)) diff --git a/reference/system-tables/quotas.mdx b/reference/system-tables/quotas.mdx deleted file mode 100644 index ad8eff4c..00000000 --- a/reference/system-tables/quotas.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -description: 'System table containing information about quotas.' -keywords: ['system table', 'quotas', 'quota'] -slug: /operations/system-tables/quotas -title: 'system.quotas' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about [quotas](/reference/system-tables/quotas). - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Quota name. -- `id` ([UUID](/reference/data-types)) — Quota ID. -- `storage` ([String](/reference/data-types)) — Storage of quotas. Possible value: 'users.xml' if a quota configured in the users.xml file, 'disk' if a quota configured by an SQL-query. -- `keys` ([Array(Enum8('user_name' = 1, 'ip_address' = 2, 'forwarded_ip_address' = 3, 'client_key' = 4, 'normalized_query_hash' = 7))](/reference/data-types)) — Key specifies how the quota should be shared. If two connections use the same quota and key, they share the same amounts of resources. Values: [] — All users share the same quota, ['user_name'] — Connections with the same user name share the same quota, ['ip_address'] — Connections from the same IP share the same quota. ['client_key'] — Connections with the same key share the same quota. A key must be explicitly provided by a client. When using clickhouse-client, pass a key value in the --quota_key parameter, or use the quota_key parameter in the client configuration file. When using HTTP interface, use the X-ClickHouse-Quota header, ['user_name', 'client_key'] — Connections with the same client_key share the same quota. If a key isn't provided by a client, the quota is tracked for `user_name`, ['client_key', 'ip_address'] — Connections with the same client_key share the same quota. If a key isn't provided by a client, the quota is tracked for ip_address. -- `durations` ([Array(UInt32)](/reference/data-types)) — Time interval lengths in seconds. -- `apply_to_all` ([UInt8](/reference/data-types)) — Logical value. It shows which users the quota is applied to. Values: 0 — The quota applies to users specify in the apply_to_list. 1 — The quota applies to all users except those listed in apply_to_except. -- `apply_to_list` ([Array(String)](/reference/data-types)) — List of user names/roles that the quota should be applied to. -- `apply_to_except` ([Array(String)](/reference/data-types)) — List of user names/roles that the quota should not apply to. -{/*AUTOGENERATED_END*/} - -## See Also {#see-also} - -- [SHOW QUOTAS](/reference/statements/show#show-quotas) diff --git a/reference/system-tables/quotas_usage.mdx b/reference/system-tables/quotas_usage.mdx deleted file mode 100644 index 8f743e13..00000000 --- a/reference/system-tables/quotas_usage.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -description: 'System table containing formation about quota usage by all users.' -keywords: ['system table', 'quotas_usage', 'quota'] -slug: /operations/system-tables/quotas_usage -title: 'system.quotas_usage' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Quota usage by all users. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `quota_name` ([String](/reference/data-types)) — Quota name. -- `quota_key` ([String](/reference/data-types)) — Key value. -- `is_current` ([UInt8](/reference/data-types)) — Quota usage for current user. -- `start_time` ([Nullable(DateTime)](/reference/data-types)) — Start time for calculating resource consumption. -- `end_time` ([Nullable(DateTime)](/reference/data-types)) — End time for calculating resource consumption. -- `duration` ([Nullable(UInt32)](/reference/data-types)) — Length of the time interval for calculating resource consumption, in seconds. -- `queries` ([Nullable(UInt64)](/reference/data-types)) — The current number of executed queries. -- `max_queries` ([Nullable(UInt64)](/reference/data-types)) — The maximum allowed number of queries of all types allowed to be executed. -- `query_selects` ([Nullable(UInt64)](/reference/data-types)) — The current number of executed SELECT queries. -- `max_query_selects` ([Nullable(UInt64)](/reference/data-types)) — The maximum allowed number of SELECT queries allowed to be executed. -- `query_inserts` ([Nullable(UInt64)](/reference/data-types)) — The current number of executed INSERT queries. -- `max_query_inserts` ([Nullable(UInt64)](/reference/data-types)) — The maximum allowed number of INSERT queries allowed to be executed. -- `errors` ([Nullable(UInt64)](/reference/data-types)) — The current number of queries resulted in an error. -- `max_errors` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of queries resulted in an error allowed within the specified period of time. -- `result_rows` ([Nullable(UInt64)](/reference/data-types)) — The current total number of rows in the result set of all queries within the current period of time. -- `max_result_rows` ([Nullable(UInt64)](/reference/data-types)) — The maximum total number of rows in the result set of all queries allowed within the specified period of time. -- `result_bytes` ([Nullable(UInt64)](/reference/data-types)) — The current total number of bytes in the result set of all queries within the current period of time. -- `max_result_bytes` ([Nullable(UInt64)](/reference/data-types)) — The maximum total number of bytes in the result set of all queries allowed within the specified period of time. -- `read_rows` ([Nullable(UInt64)](/reference/data-types)) — The current total number of rows read during execution of all queries within the current period of time. -- `max_read_rows` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of rows to read during execution of all queries allowed within the specified period of time. -- `read_bytes` ([Nullable(UInt64)](/reference/data-types)) — The current total number of bytes read during execution of all queries within the current period of time. -- `max_read_bytes` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of bytes to read during execution of all queries allowed within the specified period of time. -- `execution_time` ([Nullable(Float64)](/reference/data-types)) — The current total amount of time (in nanoseconds) spent to execute queries within the current period of time -- `max_execution_time` ([Nullable(Float64)](/reference/data-types)) — The maximum amount of time (in nanoseconds) allowed for all queries to execute within the specified period of time -- `written_bytes` ([Nullable(UInt64)](/reference/data-types)) — The current total number of bytes written during execution of all queries within the current period of time. -- `max_written_bytes` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of bytes to written during execution of all queries allowed within the specified period of time. -- `failed_sequential_authentications` ([Nullable(UInt64)](/reference/data-types)) — The current number of consecutive authentication failures within the current period of time. -- `max_failed_sequential_authentications` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of consecutive authentication failures allowed within the specified period of time. -- `queries_per_normalized_hash` ([Nullable(UInt64)](/reference/data-types)) — The current maximum number of executions of any single normalized query within the current period of time. -- `max_queries_per_normalized_hash` ([Nullable(UInt64)](/reference/data-types)) — The maximum number of executions of any single normalized query allowed within the specified period of time. -{/*AUTOGENERATED_END*/} - -## See Also {#see-also} - -- [SHOW QUOTA](/reference/statements/show#show-quota)) diff --git a/reference/system-tables/replicas.mdx b/reference/system-tables/replicas.mdx deleted file mode 100644 index 1260fa4b..00000000 --- a/reference/system-tables/replicas.mdx +++ /dev/null @@ -1,105 +0,0 @@ ---- -description: 'System table containing information about and status of replicated tables - residing on the local server. Useful for monitoring.' -keywords: ['system table', 'replicas'] -slug: /operations/system-tables/replicas -title: 'system.replicas' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information and status for replicated tables residing on the local server. -This table can be used for monitoring. The table contains a row for every Replicated\* table. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Database name. -- `table` ([String](/reference/data-types)) — Table name. -- `uuid` ([UUID](/reference/data-types)) — Table UUID. -- `engine` ([String](/reference/data-types)) — Table engine name. -- `is_leader` ([UInt8](/reference/data-types)) — Whether the replica is the leader. Multiple replicas can be leaders at the same time. A replica can be prevented from becoming a leader using the merge_tree setting replicated_can_become_leader. The leaders are responsible for scheduling background merges. Note that writes can be performed to any replica that is available and has a session in ZK, regardless of whether it is a leader. -- `can_become_leader` ([UInt8](/reference/data-types)) — Whether the replica can be a leader. -- `is_readonly` ([UInt8](/reference/data-types)) — Whether the replica is in read-only mode. This mode is turned on if the config does not have sections with ClickHouse Keeper, if an unknown error occurred when reinitializing sessions in ClickHouse Keeper, and during session reinitialization in ClickHouse Keeper. -- `readonly_start_time` ([Nullable(DateTime)](/reference/data-types)) — The timestamp when the replica transitioned into readonly mode. Null if the replica is not in readonly mode. -- `is_session_expired` ([UInt8](/reference/data-types)) — Whether the session with ClickHouse Keeper has expired. Basically the same as `is_readonly`. -- `future_parts` ([UInt32](/reference/data-types)) — The number of data parts that will appear as the result of INSERTs or merges that haven't been done yet. -- `parts_to_check` ([UInt32](/reference/data-types)) — The number of data parts in the queue for verification. A part is put in the verification queue if there is suspicion that it might be damaged. -- `zookeeper_name` ([String](/reference/data-types)) — The name of the [Zoo]Keeper cluster (possibly auxiliary one) where the table's metadata is stored -- `zookeeper_path` ([String](/reference/data-types)) — Path to table data in ClickHouse Keeper. -- `replica_name` ([String](/reference/data-types)) — Replica name in ClickHouse Keeper. Different replicas of the same table have different names. -- `replica_path` ([String](/reference/data-types)) — Path to replica data in ClickHouse Keeper. The same as concatenating 'zookeeper_path/replicas/replica_path'. -- `columns_version` ([Int32](/reference/data-types)) — Version number of the table structure. Indicates how many times ALTER was performed. If replicas have different versions, it means some replicas haven't made all of the ALTERs yet. -- `queue_size` ([UInt32](/reference/data-types)) — Size of the queue for operations waiting to be performed. Operations include inserting blocks of data, merges, and certain other actions. It usually coincides with future_parts. -- `inserts_in_queue` ([UInt32](/reference/data-types)) — Number of inserts of blocks of data that need to be made. Insertions are usually replicated fairly quickly. If this number is large, it means something is wrong. -- `merges_in_queue` ([UInt32](/reference/data-types)) — The number of merges waiting to be made. Sometimes merges are lengthy, so this value may be greater than zero for a long time. -- `part_mutations_in_queue` ([UInt32](/reference/data-types)) — The number of mutations waiting to be made. -- `queue_oldest_time` ([DateTime](/reference/data-types)) — If `queue_size` greater than 0, shows when the oldest operation was added to the queue. -- `inserts_oldest_time` ([DateTime](/reference/data-types)) — See `queue_oldest_time`. -- `merges_oldest_time` ([DateTime](/reference/data-types)) — See `queue_oldest_time`. -- `part_mutations_oldest_time` ([DateTime](/reference/data-types)) — See `queue_oldest_time`. -- `oldest_part_to_get` ([String](/reference/data-types)) — The name of the part to fetch from other replicas obtained from the oldest GET_PARTS entry in the replication queue. -- `oldest_part_to_merge_to` ([String](/reference/data-types)) — The result part name to merge to obtained from the oldest MERGE_PARTS entry in the replication queue. -- `oldest_part_to_mutate_to` ([String](/reference/data-types)) — The result part name to mutate to obtained from the oldest MUTATE_PARTS entry in the replication queue. -- `log_max_index` ([UInt64](/reference/data-types)) — Maximum entry number in the log of general activity. This column and the next three (`log_pointer`, `total_replicas`, `active_replicas`) have a non-zero value only where there is an active session with ClickHouse Keeper. -- `log_pointer` ([UInt64](/reference/data-types)) — Maximum entry number in the log of general activity that the replica copied to its execution queue, plus one. If log_pointer is much smaller than log_max_index, something is wrong. -- `last_queue_update` ([DateTime](/reference/data-types)) — When the queue was updated last time. -- `absolute_delay` ([UInt64](/reference/data-types)) — How big lag in seconds the current replica has. -- `total_replicas` ([UInt32](/reference/data-types)) — The total number of known replicas of this table. -- `active_replicas` ([UInt32](/reference/data-types)) — The number of replicas of this table that have a session in ClickHouse Keeper (i.e., the number of functioning replicas). -- `lost_part_count` ([UInt64](/reference/data-types)) — The number of data parts lost in the table by all replicas in total since table creation. Value is persisted in ClickHouse Keeper and can only increase. -- `last_queue_update_exception` ([String](/reference/data-types)) — When the queue contains broken entries. Especially important when ClickHouse breaks backward compatibility between versions and log entries written by newer versions aren't parseable by old versions. -- `zookeeper_exception` ([String](/reference/data-types)) — The last exception message, got if the error happened when fetching the info from ClickHouse Keeper. -- `replica_is_active` ([Map(String, UInt8)](/reference/data-types)) — Map between replica name and is replica active. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * -FROM system.replicas -WHERE table = 'test_table' -FORMAT Vertical -``` - -```text -Query id: dc6dcbcb-dc28-4df9-ae27-4354f5b3b13e - -Row 1: -─────── -database: db -table: test_table -engine: ReplicatedMergeTree -is_leader: 1 -can_become_leader: 1 -is_readonly: 0 -is_session_expired: 0 -future_parts: 0 -parts_to_check: 0 -zookeeper_path: /test/test_table -replica_name: r1 -replica_path: /test/test_table/replicas/r1 -columns_version: -1 -queue_size: 27 -inserts_in_queue: 27 -merges_in_queue: 0 -part_mutations_in_queue: 0 -queue_oldest_time: 2021-10-12 14:48:48 -inserts_oldest_time: 2021-10-12 14:48:48 -merges_oldest_time: 1970-01-01 03:00:00 -part_mutations_oldest_time: 1970-01-01 03:00:00 -oldest_part_to_get: 1_17_17_0 -oldest_part_to_merge_to: -oldest_part_to_mutate_to: -log_max_index: 206 -log_pointer: 207 -last_queue_update: 2021-10-12 14:50:08 -absolute_delay: 99 -total_replicas: 5 -active_replicas: 5 -lost_part_count: 0 -last_queue_update_exception: -zookeeper_exception: -replica_is_active: {'r1':1,'r2':1} -``` diff --git a/reference/system-tables/replicated_fetches.mdx b/reference/system-tables/replicated_fetches.mdx deleted file mode 100644 index a9302984..00000000 --- a/reference/system-tables/replicated_fetches.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -description: 'System table containing information about currently running background - fetches.' -keywords: ['system table', 'replicated_fetches'] -slug: /operations/system-tables/replicated_fetches -title: 'system.replicated_fetches' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about currently running background fetches. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Name of the database. -- `table` ([String](/reference/data-types)) — Name of the table. -- `elapsed` ([Float64](/reference/data-types)) — The time elapsed (in seconds) since showing currently running background fetches started. -- `progress` ([Float64](/reference/data-types)) — The percentage of completed work from 0 to 1. -- `result_part_name` ([String](/reference/data-types)) — The name of the part that will be formed as the result of showing currently running background fetches. -- `result_part_path` ([String](/reference/data-types)) — Absolute path to the part that will be formed as the result of showing currently running background fetches. -- `partition_id` ([String](/reference/data-types)) — ID of the partition. -- `total_size_bytes_compressed` ([UInt64](/reference/data-types)) — The total size (in bytes) of the compressed data in the result part. -- `bytes_read_compressed` ([UInt64](/reference/data-types)) — The number of compressed bytes read from the result part. -- `source_replica_path` ([String](/reference/data-types)) — Absolute path to the source replica. -- `source_replica_hostname` ([String](/reference/data-types)) — Hostname of the source replica. -- `source_replica_port` ([UInt16](/reference/data-types)) — Port number of the source replica. -- `interserver_scheme` ([String](/reference/data-types)) — Name of the interserver scheme. -- `URI` ([String](/reference/data-types)) — Uniform resource identifier. -- `to_detached` ([UInt8](/reference/data-types)) — The flag indicates whether the currently running background fetch is being performed using the TO DETACHED expression. -- `thread_id` ([UInt64](/reference/data-types)) — Thread identifier. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.replicated_fetches LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -database: default -table: t -elapsed: 7.243039876 -progress: 0.41832135995612835 -result_part_name: all_0_0_0 -result_part_path: /var/lib/clickhouse/store/700/70080a04-b2de-4adf-9fa5-9ea210e81766/all_0_0_0/ -partition_id: all -total_size_bytes_compressed: 1052783726 -bytes_read_compressed: 440401920 -source_replica_path: /clickhouse/test/t/replicas/1 -source_replica_hostname: node1 -source_replica_port: 9009 -interserver_scheme: http -URI: http://node1:9009/?endpoint=DataPartsExchange%3A%2Fclickhouse%2Ftest%2Ft%2Freplicas%2F1&part=all_0_0_0&client_protocol_version=4&compress=false -to_detached: 0 -thread_id: 54 -``` - -## See Also {#see-also} - -- [Managing ReplicatedMergeTree Tables](/reference/statements/system#managing-replicatedmergetree-tables) diff --git a/reference/system-tables/replication_queue.mdx b/reference/system-tables/replication_queue.mdx deleted file mode 100644 index 468d8c9d..00000000 --- a/reference/system-tables/replication_queue.mdx +++ /dev/null @@ -1,73 +0,0 @@ ---- -description: 'System table containing information about tasks from replication queues - stored in ClickHouse Keeper, or ZooKeeper, for tables in the `ReplicatedMergeTree` - family.' -keywords: ['system table', 'replication_queue'] -slug: /operations/system-tables/replication_queue -title: 'system.replication_queue' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about tasks from replication queues stored in ClickHouse Keeper, or ZooKeeper, for tables in the `ReplicatedMergeTree` family. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Name of the database. -- `table` ([String](/reference/data-types)) — Name of the table. -- `replica_name` ([String](/reference/data-types)) — Replica name in ClickHouse Keeper. Different replicas of the same table have different names. -- `position` ([UInt32](/reference/data-types)) — Position of the task in the queue. -- `node_name` ([String](/reference/data-types)) — Node name in ClickHouse Keeper. -- `type` ([String](/reference/data-types)) — Type of the task in the queue, one of: • GET_PART — Get the part from another replica, • ATTACH_PART — Attach the part, possibly from our own replica (if found in the detached folder). You may think of it as a GET_PART with some optimizations as they're nearly identical, • MERGE_PARTS — Merge the parts, • DROP_RANGE — Delete the parts in the specified partition in the specified number range. • CLEAR_COLUMN — NOTE: Deprecated. Drop specific column from specified partition. • CLEAR_INDEX — NOTE: Deprecated. Drop specific index from specified partition. • REPLACE_RANGE — Drop a certain range of parts and replace them with new ones. • MUTATE_PART — Apply one or several mutations to the part. • ALTER_METADATA — Apply alter modification according to global /metadata and /columns paths. -- `create_time` ([DateTime](/reference/data-types)) — Date and time when the task was submitted for execution. -- `required_quorum` ([UInt32](/reference/data-types)) — The number of replicas waiting for the task to complete with confirmation of completion. This column is only relevant for the GET_PARTS task. -- `source_replica` ([String](/reference/data-types)) — Name of the source replica. -- `new_part_name` ([String](/reference/data-types)) — Name of the new part. -- `parts_to_merge` ([Array(String)](/reference/data-types)) — Names of parts to merge or update. -- `is_detach` ([UInt8](/reference/data-types)) — The flag indicates whether the DETACH_PARTS task is in the queue. -- `is_currently_executing` ([UInt8](/reference/data-types)) — The flag indicates whether a specific task is being performed right now. -- `num_tries` ([UInt32](/reference/data-types)) — The number of failed attempts to complete the task. -- `last_exception` ([String](/reference/data-types)) — Text message about the last error that occurred (if any). -- `last_exception_time` ([DateTime](/reference/data-types)) — Date and time when the last error occurred. -- `last_attempt_time` ([DateTime](/reference/data-types)) — Date and time when the task was last attempted. -- `num_postponed` ([UInt32](/reference/data-types)) — The number of times the action was postponed. -- `postpone_reason` ([String](/reference/data-types)) — The reason why the task was postponed. -- `last_postpone_time` ([DateTime](/reference/data-types)) — Date and time when the task was last postponed. -- `merge_type` ([String](/reference/data-types)) — Type of the current merge. Empty if it's a mutation. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.replication_queue LIMIT 1 FORMAT Vertical; -``` - -```text -Row 1: -────── -database: merge -table: visits_v2 -replica_name: mtgiga001-1t -position: 15 -node_name: queue-0009325559 -type: MERGE_PARTS -create_time: 2020-12-07 14:04:21 -required_quorum: 0 -source_replica: mtgiga001-1t -new_part_name: 20201130_121373_121384_2 -parts_to_merge: ['20201130_121373_121378_1','20201130_121379_121379_0','20201130_121380_121380_0','20201130_121381_121381_0','20201130_121382_121382_0','20201130_121383_121383_0','20201130_121384_121384_0'] -is_detach: 0 -is_currently_executing: 0 -num_tries: 36 -last_exception: Code: 226, e.displayText() = DB::Exception: Marks file '/opt/clickhouse/data/merge/visits_v2/tmp_fetch_20201130_121373_121384_2/CounterID.mrk' does not exist (version 20.8.7.15 (official build)) -last_attempt_time: 2020-12-08 17:35:54 -num_postponed: 0 -postpone_reason: -last_postpone_time: 1970-01-01 03:00:00 -``` - -## See Also {#see-also} - -- [Managing ReplicatedMergeTree Tables](/reference/statements/system#managing-replicatedmergetree-tables) diff --git a/reference/system-tables/resources.mdx b/reference/system-tables/resources.mdx deleted file mode 100644 index 2042a7f8..00000000 --- a/reference/system-tables/resources.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -description: 'System table containing information about resources residing on the - local server with one row for every resource.' -keywords: ['system table', 'resources'] -slug: /operations/system-tables/resources -title: 'system.resources' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about [resources](/concepts/features/configuration/server-config/workload-scheduling#workload_entity_storage) residing on the local server. The table contains a row for every resource. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — The name of the resource. -- `read_disks` ([Array(String)](/reference/data-types)) — The list of disk names that uses this resource for read operations. -- `write_disks` ([Array(String)](/reference/data-types)) — The list of disk names that uses this resource for write operations. -- `unit` ([String](/reference/data-types)) — Resource unit used for cost measurements. -- `create_query` ([String](/reference/data-types)) — CREATE query of the resource. -{/*AUTOGENERATED_END*/} - -Example: - -```sql -SELECT * -FROM system.resources -FORMAT Vertical -``` - -```text -Row 1: -────── -name: io_read -read_disks: ['s3'] -write_disks: [] -create_query: CREATE RESOURCE io_read (READ DISK s3) - -Row 2: -────── -name: io_write -read_disks: [] -write_disks: ['s3'] -create_query: CREATE RESOURCE io_write (WRITE DISK s3) -``` diff --git a/reference/system-tables/role_grants.mdx b/reference/system-tables/role_grants.mdx deleted file mode 100644 index 8563ddba..00000000 --- a/reference/system-tables/role_grants.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -description: 'System table containing the role grants for users and roles.' -keywords: ['system table', 'role_grants'] -slug: /operations/system-tables/role_grants -title: 'system.role_grants' -doc_type: 'reference' ---- - -## Description {#description} - -Contains the role grants for users and roles. To add entries to this table, use `GRANT role TO user`. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `user_name` ([Nullable(String)](/reference/data-types)) — User name. -- `role_name` ([Nullable(String)](/reference/data-types)) — Role name. -- `granted_role_name` ([String](/reference/data-types)) — Name of role granted to the `role_name` role. To grant one role to another one use `GRANT role1 TO role2`. -- `granted_role_id` ([UUID](/reference/data-types)) — The ID of the role. -- `granted_role_is_default` ([UInt8](/reference/data-types)) — Flag that shows whether `granted_role` is a default role. Possible values: • 1 — `granted_role` is a default role, • 0 — `granted_role` is not a default role. -- `with_admin_option` ([UInt8](/reference/data-types)) — Flag that shows whether `granted_role` is a role with `ADMIN OPTION` privilege. Possible values: • 1 — The role has `ADMIN OPTION` privilege.• 0 — The role without `ADMIN OPTION` privilege. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/roles.mdx b/reference/system-tables/roles.mdx deleted file mode 100644 index 95061030..00000000 --- a/reference/system-tables/roles.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -description: 'System table containing information about configured roles.' -keywords: ['system table', 'roles'] -slug: /operations/system-tables/roles -title: 'system.roles' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about configured [roles](/concepts/features/security/access-rights#role-management). - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Role name. -- `id` ([UUID](/reference/data-types)) — Role ID. -- `storage` ([String](/reference/data-types)) — Path to the storage of roles. Configured in the `access_control_path` parameter. -{/*AUTOGENERATED_END*/} - -## See Also {#see-also} - -- [SHOW ROLES](/reference/statements/show#show-roles) diff --git a/reference/system-tables/row_policies.mdx b/reference/system-tables/row_policies.mdx deleted file mode 100644 index 7b9623cd..00000000 --- a/reference/system-tables/row_policies.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -description: 'System table containing filters for one particular table, as well as - a list of roles and/or users which should use this row policy.' -keywords: ['system table', 'row_policies'] -slug: /operations/system-tables/row_policies -title: 'system.row_policies' -doc_type: 'reference' ---- - -## Description {#description} - -Contains filters for one particular table, as well as a list of roles and/or users which should use this row policy. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Name of a row policy. -- `short_name` ([String](/reference/data-types)) — Short name of a row policy. Names of row policies are compound, for example: myfilter ON mydb.mytable. Here 'myfilter ON mydb.mytable' is the name of the row policy, 'myfilter' is it's short name. -- `database` ([String](/reference/data-types)) — Database name. -- `table` ([String](/reference/data-types)) — Table name. Empty if policy for database. -- `id` ([UUID](/reference/data-types)) — Row policy ID. -- `storage` ([String](/reference/data-types)) — Name of the directory where the row policy is stored. -- `select_filter` ([Nullable(String)](/reference/data-types)) — Expression which is used for filtering in SELECT queries. -- `is_restrictive` ([UInt8](/reference/data-types)) — Shows whether the row policy restricts access to rows. Value: • 0 — The row policy is defined with `AS PERMISSIVE` clause, • 1 — The row policy is defined with AS RESTRICTIVE clause. -- `apply_to_all` ([UInt8](/reference/data-types)) — Shows that the row policies set for all roles and/or users. -- `apply_to_list` ([Array(String)](/reference/data-types)) — List of the roles and/or users to which the row policies is applied. -- `apply_to_except` ([Array(String)](/reference/data-types)) — The row policies is applied to all roles and/or users excepting of the listed ones. -{/*AUTOGENERATED_END*/} - -## See Also {#see-also} - -- [SHOW POLICIES](/reference/statements/show#show-policies) diff --git a/reference/system-tables/s3_queue_settings.mdx b/reference/system-tables/s3_queue_settings.mdx deleted file mode 100644 index 00ce0147..00000000 --- a/reference/system-tables/s3_queue_settings.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -description: 'System table containing information about the settings of S3Queue tables. - Available from server version `24.10`.' -keywords: ['system table', 's3_queue_settings'] -slug: /operations/system-tables/s3_queue_settings -title: 'system.s3_queue_settings' -doc_type: 'reference' ---- - -## Description {#description} - -Contains information about the settings of [S3Queue](/reference/engines/table-engines/integrations/s3queue) tables. Available from server version `24.10`. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — Database of the table with S3Queue engine. -- `table` ([String](/reference/data-types)) — Name of the table with S3Queue engine. -- `name` ([String](/reference/data-types)) — Setting name. -- `value` ([String](/reference/data-types)) — Setting value. -- `type` ([String](/reference/data-types)) — Setting type (implementation specific string value). -- `changed` ([UInt8](/reference/data-types)) — 1 if the setting was explicitly defined in the config or explicitly changed. -- `description` ([String](/reference/data-types)) — Setting description. -- `alterable` ([UInt8](/reference/data-types)) — Shows whether the current user can change the setting via ALTER TABLE MODIFY SETTING: 0 — Current user can't change the setting, 1 — Current user can change the setting. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/s3queue_log.mdx b/reference/system-tables/s3queue_log.mdx deleted file mode 100644 index c6f32ee2..00000000 --- a/reference/system-tables/s3queue_log.mdx +++ /dev/null @@ -1,34 +0,0 @@ ---- -description: 'Contains log entries with information about files processed by the S3Queue engine. - -It is safe to truncate or drop this table at any time.' -keywords: ['system table', 's3queue_log'] -slug: /operations/system-tables/s3queue_log -title: 'system.s3queue_log' -doc_type: 'reference' ---- - -Contains log entries with information about files processed by the S3Queue engine. - -It is safe to truncate or drop this table at any time. - -Columns: - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname -- `event_date` ([Date](/reference/data-types/date)) — Event date of writing this log row -- `event_time` ([DateTime](/reference/data-types/datetime)) — Event time of writing this log row -- `database` ([String](/reference/data-types/string)) — The name of the database where the queue table (`S3Queue` or `AzureQueue`) lives. -- `table` ([String](/reference/data-types/string)) — The name of the queue table (`S3Queue` or `AzureQueue`). -- `uuid` ([String](/reference/data-types/string)) — The UUID of the queue table (`S3Queue` or `AzureQueue`). -- `file_name` ([String](/reference/data-types/string)) — File name of the processing file. -- `rows_processed` ([UInt64](/reference/data-types/int-uint)) — Number of processed rows. -- `status` ([Enum8('Processed' = 0, 'Failed' = 1)](/reference/data-types/enum)) — Status of the processing file. -- `processing_start_time` ([Nullable(DateTime)](/reference/data-types/nullable)) — Time of the start of processing the file. -- `processing_end_time` ([Nullable(DateTime)](/reference/data-types/nullable)) — Time of the end of processing the file. -- `exception` ([String](/reference/data-types/string)) — Exception message if happened. -- `commit_id` ([UInt64](/reference/data-types/int-uint)) — Id of the transaction in which this file was committed. -- `commit_time` ([DateTime](/reference/data-types/datetime)) — Time of committing file in keeper (as either failed or processed). -- `transaction_start_time` ([DateTime](/reference/data-types/datetime)) — Time when the whole processing transaction started. -- `get_object_time_ms` ([UInt64](/reference/data-types/int-uint)) — Time which took us to find the object in object storage. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/s3queue_metadata_cache.mdx b/reference/system-tables/s3queue_metadata_cache.mdx deleted file mode 100644 index c24bbfe3..00000000 --- a/reference/system-tables/s3queue_metadata_cache.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -description: 'Contains in-memory state of S3Queue metadata and currently processed rows per file.' -keywords: ['system table', 's3queue_metadata_cache'] -slug: /operations/system-tables/s3queue_metadata_cache -title: 'system.s3queue_metadata_cache' -doc_type: 'reference' ---- - -## Description {#description} - -Contains in-memory state of S3Queue metadata and currently processed rows per file. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `zookeeper_path` ([String](/reference/data-types)) — Path in zookeeper to metadata -- `file_path` ([String](/reference/data-types)) — File path of a file which is being processed -- `file_name` ([String](/reference/data-types)) — File name of a file which is being processed -- `rows_processed` ([UInt64](/reference/data-types)) — Currently processed number of rows -- `status` ([String](/reference/data-types)) — Status of processing: Processed, Processing, Failed -- `processing_start_time` ([Nullable(DateTime)](/reference/data-types)) — Time at which processing of the file started -- `processing_end_time` ([Nullable(DateTime)](/reference/data-types)) — Time at which processing of the file ended -- `exception` ([String](/reference/data-types)) — Exception which happened during processing -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/scheduler.mdx b/reference/system-tables/scheduler.mdx deleted file mode 100644 index 04224e4b..00000000 --- a/reference/system-tables/scheduler.mdx +++ /dev/null @@ -1,89 +0,0 @@ ---- -description: 'System table containing information about and status of scheduling nodes - residing on the local server.' -keywords: ['system table', 'scheduler'] -slug: /operations/system-tables/scheduler -title: 'system.scheduler' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about and status of [scheduling nodes](/concepts/features/configuration/server-config/workload-scheduling#hierarchy) residing on the local server. -This table can be used for monitoring. The table contains a row for every scheduling node. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `resource` ([String](/reference/data-types)) — Resource name -- `path` ([String](/reference/data-types)) — Path to a scheduling node within this resource scheduling hierarchy -- `type` ([String](/reference/data-types)) — Type of a scheduling node. -- `weight` ([Float64](/reference/data-types)) — Weight of a node, used by a parent node of `fair` type. -- `priority` ([Int64](/reference/data-types)) — Priority of a node, used by a parent node of 'priority' type (Lower value means higher priority). -- `is_active` ([UInt8](/reference/data-types)) — Whether this node is currently active - has resource requests to be dequeued and constraints satisfied. -- `active_children` ([UInt64](/reference/data-types)) — The number of children in active state. -- `dequeued_requests` ([UInt64](/reference/data-types)) — The total number of resource requests dequeued from this node. -- `canceled_requests` ([UInt64](/reference/data-types)) — The total number of resource requests canceled from this node. -- `dequeued_cost` ([Int64](/reference/data-types)) — The sum of costs (e.g. size in bytes) of all requests dequeued from this node. -- `throughput` ([Float64](/reference/data-types)) — Current average throughput (dequeued cost per second). -- `canceled_cost` ([Int64](/reference/data-types)) — The sum of costs (e.g. size in bytes) of all requests canceled from this node. -- `busy_periods` ([UInt64](/reference/data-types)) — The total number of deactivations of this node. -- `vruntime` ([Nullable(Float64)](/reference/data-types)) — For children of `fair` nodes only. Virtual runtime of a node used by SFQ algorithm to select the next child to process in a max-min fair manner. -- `system_vruntime` ([Nullable(Float64)](/reference/data-types)) — For `fair` nodes only. Virtual runtime showing `vruntime` of the last processed resource request. Used during child activation as the new value of `vruntime`. -- `queue_length` ([Nullable(UInt64)](/reference/data-types)) — For `fifo` nodes only. Current number of resource requests residing in the queue. -- `queue_cost` ([Nullable(Int64)](/reference/data-types)) — For fifo nodes only. Sum of costs (e.g. size in bytes) of all requests residing in the queue. -- `budget` ([Nullable(Int64)](/reference/data-types)) — For fifo nodes only. The number of available 'cost units' for new resource requests. Can appear in case of discrepancy of estimated and real costs of resource requests (e.g. after read/write failure) -- `is_satisfied` ([Nullable(UInt8)](/reference/data-types)) — For constraint nodes only (e.g. `inflight_limit`). Equals to `1` if all the constraint of this node are satisfied. -- `inflight_requests` ([Nullable(Int64)](/reference/data-types)) — For `inflight_limit` nodes only. The number of resource requests dequeued from this node, that are currently in consumption state. -- `inflight_cost` ([Nullable(Int64)](/reference/data-types)) — For `inflight_limit` nodes only. The sum of costs (e.g. bytes) of all resource requests dequeued from this node, that are currently in consumption state. -- `max_requests` ([Nullable(Int64)](/reference/data-types)) — For `inflight_limit` nodes only. Upper limit for inflight_requests leading to constraint violation. -- `max_cost` ([Nullable(Int64)](/reference/data-types)) — For `inflight_limit` nodes only. Upper limit for inflight_cost leading to constraint violation. -- `max_speed` ([Nullable(Float64)](/reference/data-types)) — For `bandwidth_limit` nodes only. Upper limit for bandwidth in tokens per second. -- `max_burst` ([Nullable(Float64)](/reference/data-types)) — For `bandwidth_limit` nodes only. Upper limit for tokens available in token-bucket throttler. -- `throttling_us` ([Nullable(Int64)](/reference/data-types)) — For `bandwidth_limit` nodes only. Total number of microseconds this node was in throttling state. -- `tokens` ([Nullable(Float64)](/reference/data-types)) — For `bandwidth_limit` nodes only. Number of tokens currently available in token-bucket throttler. -{/*AUTOGENERATED_END*/} - -Example: - -```sql -SELECT * -FROM system.scheduler -WHERE resource = 'network_read' AND path = '/prio/fair/prod' -FORMAT Vertical -``` - -```text -Row 1: -────── -resource: network_read -path: /prio/fair/prod -type: fifo -weight: 5 -priority: 0 -is_active: 0 -active_children: 0 -dequeued_requests: 67 -canceled_requests: 0 -dequeued_cost: 4692272 -canceled_cost: 0 -busy_periods: 63 -vruntime: 938454.1999999989 -system_vruntime: ᴺᵁᴸᴸ -queue_length: 0 -queue_cost: 0 -budget: -60524 -is_satisfied: ᴺᵁᴸᴸ -inflight_requests: ᴺᵁᴸᴸ -inflight_cost: ᴺᵁᴸᴸ -max_requests: ᴺᵁᴸᴸ -max_cost: ᴺᵁᴸᴸ -max_speed: ᴺᵁᴸᴸ -max_burst: ᴺᵁᴸᴸ -throttling_us: ᴺᵁᴸᴸ -tokens: ᴺᵁᴸᴸ -``` diff --git a/reference/system-tables/session_log.mdx b/reference/system-tables/session_log.mdx deleted file mode 100644 index 55958fe5..00000000 --- a/reference/system-tables/session_log.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -description: 'System table containing information about all successful and failed - login and logout events.' -keywords: ['system table', 'session_log'] -slug: /operations/system-tables/session_log -title: 'system.session_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains information about all successful and failed login and logout events. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `type` ([Enum8('LoginFailure' = 0, 'LoginSuccess' = 1, 'Logout' = 2)](/reference/data-types/enum)) — Login/logout result. Possible values: LoginFailure — Login error. LoginSuccess — Successful login. Logout — Logout from the system. -- `auth_id` ([UUID](/reference/data-types/uuid)) — Authentication ID, which is a UUID that is automatically generated each time user logins. -- `session_id` ([String](/reference/data-types/string)) — Session ID that is passed by client via HTTP interface. -- `event_date` ([Date](/reference/data-types/date)) — Login/logout date. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Login/logout time. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Login/logout starting time with microseconds precision. -- `user` ([Nullable(String)](/reference/data-types/nullable)) — User name. -- `auth_type` ([Nullable(Enum8('NO_PASSWORD' = 0, 'PLAINTEXT_PASSWORD' = 1, 'SHA256_PASSWORD' = 2, 'DOUBLE_SHA1_PASSWORD' = 3, 'LDAP' = 4, 'KERBEROS' = 5, 'SSL_CERTIFICATE' = 6, 'BCRYPT_PASSWORD' = 7, 'SSH_KEY' = 8, 'HTTP' = 9, 'JWT' = 10, 'SCRAM_SHA256_PASSWORD' = 11, 'NO_AUTHENTICATION' = 12))](/reference/data-types/nullable)) — The authentication type. -- `profiles` ([Array(LowCardinality(String))](/reference/data-types/array)) — The list of profiles set for all roles and/or users. -- `roles` ([Array(LowCardinality(String))](/reference/data-types/array)) — The list of roles to which the profile is applied. -- `settings` ([Array(Tuple(LowCardinality(String), String))](/reference/data-types/array)) — Settings that were changed when the client logged in/out. -- `client_address` ([IPv6](/reference/data-types/ipv6)) — The IP address that was used to log in/out. -- `client_port` ([UInt16](/reference/data-types/int-uint)) — The client port that was used to log in/out. -- `interface` ([Enum8('TCP' = 1, 'HTTP' = 2, 'gRPC' = 3, 'MySQL' = 4, 'PostgreSQL' = 5, 'Local' = 6, 'TCP_Interserver' = 7, 'Prometheus' = 8, 'Background' = 9)](/reference/data-types/enum)) — The interface from which the login was initiated. -- `client_hostname` ([String](/reference/data-types/string)) — The hostname of the client machine where the clickhouse-client or another TCP client is run. -- `client_name` ([String](/reference/data-types/string)) — The clickhouse-client or another TCP client name. -- `client_revision` ([UInt32](/reference/data-types/int-uint)) — Revision of the clickhouse-client or another TCP client. -- `client_version_major` ([UInt32](/reference/data-types/int-uint)) — The major version of the clickhouse-client or another TCP client. -- `client_version_minor` ([UInt32](/reference/data-types/int-uint)) — The minor version of the clickhouse-client or another TCP client. -- `client_version_patch` ([UInt32](/reference/data-types/int-uint)) — Patch component of the clickhouse-client or another TCP client version. -- `failure_reason` ([String](/reference/data-types/string)) — The exception message containing the reason for the login/logout failure. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql title="Query" -SELECT * FROM system.session_log LIMIT 1 FORMAT Vertical; -``` - -```text title="Response" -Row 1: -────── -hostname: clickhouse.eu-central1.internal -type: LoginSuccess -auth_id: 45e6bd83-b4aa-4a23-85e6-bd83b4aa1a23 -session_id: -event_date: 2021-10-14 -event_time: 2021-10-14 20:33:52 -event_time_microseconds: 2021-10-14 20:33:52.104247 -user: default -auth_type: PLAINTEXT_PASSWORD -profiles: ['default'] -roles: [] -settings: [('load_balancing','random'),('max_memory_usage','10000000000')] -client_address: ::ffff:127.0.0.1 -client_port: 38490 -interface: TCP -client_hostname: -client_name: ClickHouse client -client_revision: 54449 -client_version_major: 21 -client_version_minor: 10 -client_version_patch: 0 -failure_reason: -``` diff --git a/reference/system-tables/settings_profile_elements.mdx b/reference/system-tables/settings_profile_elements.mdx deleted file mode 100644 index 56a6f89c..00000000 --- a/reference/system-tables/settings_profile_elements.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -description: 'System table which describes the content of the settings profile: constraints, - roles and users that the setting applies to, parent settings profiles.' -keywords: ['system table', 'settings_profile_elements'] -slug: /operations/system-tables/settings_profile_elements -title: 'system.settings_profile_elements' -doc_type: 'reference' ---- - -## Description {#description} - -Describes the content of the settings profile: - -- Сonstraints. -- Roles and users that the setting applies to. -- Parent settings profiles. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `profile_name` ([Nullable(String)](/reference/data-types)) — Setting profile name. -- `user_name` ([Nullable(String)](/reference/data-types)) — User name. -- `role_name` ([Nullable(String)](/reference/data-types)) — Role name. -- `index` ([UInt64](/reference/data-types)) — Sequential number of the settings profile element. -- `setting_name` ([Nullable(String)](/reference/data-types)) — Setting name. -- `value` ([Nullable(String)](/reference/data-types)) — Setting value. -- `min` ([Nullable(String)](/reference/data-types)) — The minimum value of the setting. NULL if not set. -- `max` ([Nullable(String)](/reference/data-types)) — The maximum value of the setting. NULL if not set. -- `writability` ([Nullable(Enum8('WRITABLE' = 0, 'CONST' = 1, 'CHANGEABLE_IN_READONLY' = 2))](/reference/data-types)) — The property which shows whether a setting can be changed or not. -- `inherit_profile` ([Nullable(String)](/reference/data-types)) — A parent profile for this setting profile. NULL if not set. Setting profile will inherit all the settings' values and constraints (min, max, readonly) from its parent profiles. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/settings_profiles.mdx b/reference/system-tables/settings_profiles.mdx deleted file mode 100644 index ab8d668e..00000000 --- a/reference/system-tables/settings_profiles.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -description: 'System table which contains properties of configured setting profiles.' -keywords: ['system table', 'settings_profiles'] -slug: /operations/system-tables/settings_profiles -title: 'system.settings_profiles' -doc_type: 'reference' ---- - -## Description {#description} - -Contains properties of configured setting profiles. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — Setting profile name. -- `id` ([UUID](/reference/data-types)) — Setting profile ID. -- `storage` ([String](/reference/data-types)) — Path to the storage of setting profiles. Configured in the `access_control_path` parameter. -- `num_elements` ([UInt64](/reference/data-types)) — Number of elements for this profile in the `system.settings_profile_elements` table. -- `apply_to_all` ([UInt8](/reference/data-types)) — Shows that the settings profile set for all roles and/or users. -- `apply_to_list` ([Array(String)](/reference/data-types)) — List of the roles and/or users to which the setting profile is applied. -- `apply_to_except` ([Array(String)](/reference/data-types)) — The setting profile is applied to all roles and/or users excepting of the listed ones. -{/*AUTOGENERATED_END*/} - -## See Also {#see-also} - -- [SHOW PROFILES](/reference/statements/show#show-profiles) diff --git a/reference/system-tables/tables.mdx b/reference/system-tables/tables.mdx deleted file mode 100644 index bb48e00b..00000000 --- a/reference/system-tables/tables.mdx +++ /dev/null @@ -1,131 +0,0 @@ ---- -description: 'System table containing metadata of each table that the server knows - about.' -keywords: ['system table', 'tables'] -slug: /operations/system-tables/tables -title: 'system.tables' -doc_type: 'reference' ---- - -## Description {#description} - -Contains metadata of each table that the server knows about. - -[Detached](/reference/statements/detach) tables are not shown in `system.tables`. - -[Temporary tables](/reference/statements/create/table#temporary-tables) are visible in the `system.tables` only in those session where they have been created. They are shown with the empty `database` field and with the `is_temporary` flag switched on. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — The name of the database the table is in. -- `name` ([String](/reference/data-types)) — Table name. -- `uuid` ([UUID](/reference/data-types)) — Table uuid (Atomic database). -- `engine` ([String](/reference/data-types)) — Table engine name (without parameters). -- `is_temporary` ([UInt8](/reference/data-types)) — Flag that indicates whether the table is temporary. -- `data_paths` ([Array(String)](/reference/data-types)) — Paths to the table data in the file systems. -- `metadata_path` ([String](/reference/data-types)) — Path to the table metadata in the file system. -- `metadata_modification_time` ([DateTime](/reference/data-types)) — Time of latest modification of the table metadata. -- `metadata_version` ([Int32](/reference/data-types)) — Metadata version for ReplicatedMergeTree table, 0 for non ReplicatedMergeTree table. -- `dependencies_database` ([Array(String)](/reference/data-types)) — Database dependencies. -- `dependencies_table` ([Array(String)](/reference/data-types)) — Table dependencies (materialized views the current table). -- `create_table_query` ([String](/reference/data-types)) — The query that was used to create the table. -- `engine_full` ([String](/reference/data-types)) — Parameters of the table engine. -- `as_select` ([String](/reference/data-types)) — SELECT query for view. -- `parameterized_view_parameters` ([Array(Tuple(name String, type String))](/reference/data-types)) — Parameters of parameterized view. -- `partition_key` ([String](/reference/data-types)) — The partition key expression specified in the table. -- `sorting_key` ([String](/reference/data-types)) — The sorting key expression specified in the table. -- `primary_key` ([String](/reference/data-types)) — The primary key expression specified in the table. -- `sampling_key` ([String](/reference/data-types)) — The sampling key expression specified in the table. -- `unique_key` ([String](/reference/data-types)) — The unique key expression specified in the table (UNIQUE KEY clause). -- `storage_policy` ([String](/reference/data-types)) — The storage policy. Relevant for tables using MergeTree and Distributed engines. -- `total_rows` ([Nullable(UInt64)](/reference/data-types)) — Total number of rows, if it is possible to quickly determine exact number of rows in the table, otherwise NULL (including underlying Buffer table). -- `total_bytes` ([Nullable(UInt64)](/reference/data-types)) — Total number of bytes, if it is possible to quickly determine exact number of bytes for the table on storage, otherwise NULL (does not includes any underlying storage). If the table stores data on disk, returns used space on disk (i.e. compressed). If the table stores data in memory, returns approximated number of used bytes in memory. -- `total_bytes_uncompressed` ([Nullable(UInt64)](/reference/data-types)) — Total number of uncompressed bytes, if it's possible to quickly determine the exact number of bytes from the part checksums for the table on storage, otherwise NULL (does not take underlying storage (if any) into account). -- `parts` ([Nullable(UInt64)](/reference/data-types)) — The total number of parts in this table. -- `active_parts` ([Nullable(UInt64)](/reference/data-types)) — The number of active parts in this table. -- `total_marks` ([Nullable(UInt64)](/reference/data-types)) — The total number of marks in all parts in this table. -- `active_on_fly_data_mutations` ([UInt64](/reference/data-types)) — Total number of active data mutations (UPDATEs and DELETEs) suitable for applying on the fly. -- `active_on_fly_alter_mutations` ([UInt64](/reference/data-types)) — Total number of active alter mutations (MODIFY COLUMN) suitable for applying on the fly. -- `active_on_fly_metadata_mutations` ([UInt64](/reference/data-types)) — Total number of active metadata mutations (RENAMEs) suitable for applying on the fly. -- `columns_descriptions_cache_size` ([UInt64](/reference/data-types)) — Size of columns description cache for *MergeTree tables -- `lifetime_rows` ([Nullable(UInt64)](/reference/data-types)) — Total number of rows INSERTed since server start (only for Buffer tables). -- `lifetime_bytes` ([Nullable(UInt64)](/reference/data-types)) — Total number of bytes INSERTed since server start (only for Buffer tables). -- `comment` ([String](/reference/data-types)) — The comment for the table. -- `has_own_data` ([UInt8](/reference/data-types)) — Flag that indicates whether the table itself stores some data on disk or only accesses some other source. -- `loading_dependencies_database` ([Array(String)](/reference/data-types)) — Database loading dependencies (list of objects which should be loaded before the current object). -- `loading_dependencies_table` ([Array(String)](/reference/data-types)) — Table loading dependencies (list of objects which should be loaded before the current object). -- `loading_dependent_database` ([Array(String)](/reference/data-types)) — Dependent loading database. -- `loading_dependent_table` ([Array(String)](/reference/data-types)) — Dependent loading table. -- `definer` ([String](/reference/data-types)) — SQL security definer's name used for the table. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.tables LIMIT 2 FORMAT Vertical; -``` - -```text -Row 1: -────── -database: base -name: t1 -uuid: 81b1c20a-b7c6-4116-a2ce-7583fb6b6736 -engine: MergeTree -is_temporary: 0 -data_paths: ['/var/lib/clickhouse/store/81b/81b1c20a-b7c6-4116-a2ce-7583fb6b6736/'] -metadata_path: /var/lib/clickhouse/store/461/461cf698-fd0b-406d-8c01-5d8fd5748a91/t1.sql -metadata_modification_time: 2021-01-25 19:14:32 -dependencies_database: [] -dependencies_table: [] -create_table_query: CREATE TABLE base.t1 (`n` UInt64) ENGINE = MergeTree ORDER BY n -engine_full: MergeTree ORDER BY n -as_select: SELECT database AS table_catalog -partition_key: -sorting_key: n -primary_key: n -sampling_key: -storage_policy: default -total_rows: 1 -total_bytes: 99 -lifetime_rows: ᴺᵁᴸᴸ -lifetime_bytes: ᴺᵁᴸᴸ -comment: -has_own_data: 0 -loading_dependencies_database: [] -loading_dependencies_table: [] -loading_dependent_database: [] -loading_dependent_table: [] - -Row 2: -────── -database: default -name: 53r93yleapyears -uuid: 00000000-0000-0000-0000-000000000000 -engine: MergeTree -is_temporary: 0 -data_paths: ['/var/lib/clickhouse/data/default/53r93yleapyears/'] -metadata_path: /var/lib/clickhouse/metadata/default/53r93yleapyears.sql -metadata_modification_time: 2020-09-23 09:05:36 -dependencies_database: [] -dependencies_table: [] -create_table_query: CREATE TABLE default.`53r93yleapyears` (`id` Int8, `febdays` Int8) ENGINE = MergeTree ORDER BY id -engine_full: MergeTree ORDER BY id -as_select: SELECT name AS catalog_name -partition_key: -sorting_key: id -primary_key: id -sampling_key: -storage_policy: default -total_rows: 2 -total_bytes: 155 -lifetime_rows: ᴺᵁᴸᴸ -lifetime_bytes: ᴺᵁᴸᴸ -comment: -has_own_data: 0 -loading_dependencies_database: [] -loading_dependencies_table: [] -loading_dependent_database: [] -loading_dependent_table: [] -``` diff --git a/reference/system-tables/text_log.mdx b/reference/system-tables/text_log.mdx deleted file mode 100644 index c45f4ba3..00000000 --- a/reference/system-tables/text_log.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -description: 'System table containing logging entries.' -keywords: ['system table', 'text_log'] -slug: /operations/system-tables/text_log -title: 'system.text_log' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Contains logging entries. The logging level which goes to this table can be limited to the `text_log.level` server setting. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `event_date` ([Date](/reference/data-types/date)) — Date of the entry. -- `event_time` ([DateTime](/reference/data-types/datetime)) — Time of the entry. -- `event_time_microseconds` ([DateTime64(6)](/reference/data-types/datetime64)) — Time of the entry with microseconds precision. -- `thread_name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the thread from which the logging was done. -- `thread_id` ([UInt64](/reference/data-types/int-uint)) — OS thread ID. -- `level` ([Enum8('Fatal' = 1, 'Critical' = 2, 'Error' = 3, 'Warning' = 4, 'Notice' = 5, 'Information' = 6, 'Debug' = 7, 'Trace' = 8, 'Test' = 9)](/reference/data-types/enum)) — Entry level. Possible values: 1 or 'Fatal', 2 or 'Critical', 3 or 'Error', 4 or 'Warning', 5 or 'Notice', 6 or 'Information', 7 or 'Debug', 8 or 'Trace'. -- `query_id` ([String](/reference/data-types/string)) — ID of the query. -- `logger_name` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Name of the logger (e.g., DDLWorker). -- `message` ([String](/reference/data-types/string)) — The message itself. -- `revision` ([UInt32](/reference/data-types/int-uint)) — ClickHouse revision. -- `source_file` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Source file from which the logging was done. -- `source_line` ([UInt64](/reference/data-types/int-uint)) — Source line from which the logging was done. -- `message_format_string` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — A format string that was used to format the message. -- `value1` ([String](/reference/data-types/string)) — Argument 1 that was used to format the message. -- `value2` ([String](/reference/data-types/string)) — Argument 2 that was used to format the message. -- `value3` ([String](/reference/data-types/string)) — Argument 3 that was used to format the message. -- `value4` ([String](/reference/data-types/string)) — Argument 4 that was used to format the message. -- `value5` ([String](/reference/data-types/string)) — Argument 5 that was used to format the message. -- `value6` ([String](/reference/data-types/string)) — Argument 6 that was used to format the message. -- `value7` ([String](/reference/data-types/string)) — Argument 7 that was used to format the message. -- `value8` ([String](/reference/data-types/string)) — Argument 8 that was used to format the message. -- `value9` ([String](/reference/data-types/string)) — Argument 9 that was used to format the message. -- `value10` ([String](/reference/data-types/string)) — Argument 10 that was used to format the message. -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT * FROM system.text_log LIMIT 1 \G -``` - -```text -Row 1: -────── -hostname: clickhouse.eu-central1.internal -event_date: 2020-09-10 -event_time: 2020-09-10 11:23:07 -event_time_microseconds: 2020-09-10 11:23:07.871397 -microseconds: 871397 -thread_name: clickhouse-serv -thread_id: 564917 -level: Information -query_id: -logger_name: DNSCacheUpdater -message: Update period 15 seconds -revision: 54440 -source_file: /ClickHouse/src/Interpreters/DNSCacheUpdater.cpp; void DB::DNSCacheUpdater::start() -source_line: 45 -message_format_string: Update period {} seconds -value1: 15 -value2: -value3: -value4: -value5: -value6: -value7: -value8: -value9: -value10: -``` diff --git a/reference/system-tables/transactions.mdx b/reference/system-tables/transactions.mdx deleted file mode 100644 index 81c0ff18..00000000 --- a/reference/system-tables/transactions.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -description: 'Contains a list of transactions and their state.' -keywords: ['system table', 'transactions'] -slug: /operations/system-tables/transactions -title: 'system.transactions' -doc_type: 'reference' ---- - -## Description {#description} - -Contains a list of transactions and their state. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `tid` ([Tuple(UInt64, UInt64, UUID)](/reference/data-types/tuple)) — The identifier of the transaction. -- `tid_hash` ([UInt64](/reference/data-types/int-uint)) — The hash of the identifier. -- `elapsed` ([Float64](/reference/data-types/float)) — The amount of time the transaction being processed. -- `is_readonly` ([UInt8](/reference/data-types/int-uint)) — The flag which shows whether the transaction has executed any write operation. -- `state` ([Enum8('RUNNING' = 0, 'COMMITTING' = 1, 'COMMITTED' = 2, 'ROLLED_BACK' = 3)](/reference/data-types/enum)) — The state of the transaction. Possible values: RUNNING, COMMITTING, COMMITTED, ROLLED_BACK. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/transactions_info_log.mdx b/reference/system-tables/transactions_info_log.mdx deleted file mode 100644 index a27e0514..00000000 --- a/reference/system-tables/transactions_info_log.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -description: 'Contains information about all transactions executed on a current server. - -It is safe to truncate or drop this table at any time.' -keywords: ['system table', 'transactions_info_log'] -slug: /operations/system-tables/transactions_info_log -title: 'system.transactions_info_log' -doc_type: 'reference' ---- - -Contains information about all transactions executed on a current server. - -It is safe to truncate or drop this table at any time. - -Columns: - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — The hostname where transaction was executed. -- `type` ([Enum8('Begin' = 1, 'Commit' = 2, 'Rollback' = 3, 'AddPart' = 10, 'LockPart' = 11, 'UnlockPart' = 12)](/reference/data-types/enum)) — The type of the transaction. Possible values: Begin, Commit, Rollback, AddPart, LockPart, UnlockPart. -- `event_date` ([Date](/reference/data-types/date)) — Date of the entry. -- `event_time` ([DateTime64(6)](/reference/data-types/datetime64)) — Time of the entry -- `thread_id` ([UInt64](/reference/data-types/int-uint)) — The identifier of a thread. -- `query_id` ([String](/reference/data-types/string)) — The ID of a query executed in a scope of transaction. -- `tid` ([Tuple(UInt64, UInt64, UUID)](/reference/data-types/tuple)) — The identifier of a transaction. -- `tid_hash` ([UInt64](/reference/data-types/int-uint)) — The hash of the identifier. -- `csn` ([UInt64](/reference/data-types/int-uint)) — The Commit Sequence Number -- `database` ([String](/reference/data-types/string)) — The name of the database the transaction was executed against. -- `table` ([String](/reference/data-types/string)) — The name of the table the transaction was executed against. -- `uuid` ([UUID](/reference/data-types/uuid)) — The uuid of the table the transaction was executed against. -- `part` ([String](/reference/data-types/string)) — The name of the part participated in the transaction. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/user_defined_functions.mdx b/reference/system-tables/user_defined_functions.mdx deleted file mode 100644 index e8033795..00000000 --- a/reference/system-tables/user_defined_functions.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -description: 'System table containing loading status and configuration metadata for User-Defined Functions (UDFs).' -keywords: ['system table', 'user_defined_functions', 'udf', 'executable'] -slug: /operations/system-tables/user_defined_functions -title: 'system.user_defined_functions' -doc_type: 'reference' ---- - -## Description {#description} - -Contains loading status, error information, and configuration metadata for [User-Defined Functions (UDFs)](/reference/functions/regular-functions/udf). - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — UDF name. -- `load_status` ([Enum8('Success' = 0, 'Failed' = 1)](/reference/data-types)) — Loading status.Possible values: - - **Success** — UDF loaded and ready to use - - **Failed** — UDF failed to load (see field 'loading_error_message' for details). -- `loading_error_message` ([String](/reference/data-types)) — Detailed error message when loading failed. Empty if loaded successfully. -- `last_successful_update_time` ([Nullable(DateTime)](/reference/data-types)) — Timestamp of the last successful update. NULL if never succeeded. -- `loading_duration_ms` ([UInt64](/reference/data-types)) — Time spent loading the UDF, in milliseconds. -- `type` ([Enum8('executable' = 0, 'executable_pool' = 1)](/reference/data-types)) — UDF type: 'executable' (single process) or 'executable_pool' (process pool). -- `command` ([String](/reference/data-types)) — Script or command to execute for this UDF. -- `format` ([String](/reference/data-types)) — Data format for I/O (e.g., 'TabSeparated', 'JSONEachRow'). -- `return_type` ([String](/reference/data-types)) — Function return type (e.g., 'String', 'UInt64'). -- `return_name` ([String](/reference/data-types)) — Optional return value identifier. Empty if not configured. -- `argument_types` ([Array(String)](/reference/data-types)) — Array of argument types (e.g., ['String', 'UInt64']). -- `argument_names` ([Array(String)](/reference/data-types)) — Array of argument names. Empty strings for unnamed arguments. -- `max_command_execution_time` ([UInt64](/reference/data-types)) — Maximum seconds to process a data block. Only for 'executable_pool' type. -- `command_termination_timeout` ([UInt64](/reference/data-types)) — Seconds before sending SIGTERM to command process. -- `command_read_timeout` ([UInt64](/reference/data-types)) — Milliseconds for reading from command stdout. -- `command_write_timeout` ([UInt64](/reference/data-types)) — Milliseconds for writing to command stdin. -- `pool_size` ([UInt64](/reference/data-types)) — Number of command process instances. Only for 'executable_pool' type. -- `send_chunk_header` ([UInt8](/reference/data-types)) — Whether to send row count before each data chunk (boolean). -- `execute_direct` ([UInt8](/reference/data-types)) — Whether to execute command directly (1) or via /bin/bash (0). -- `lifetime` ([UInt64](/reference/data-types)) — Reload interval in seconds. 0 means reload is disabled. -- `deterministic` ([UInt8](/reference/data-types)) — Whether function returns the same result for the same arguments (boolean). -{/*AUTOGENERATED_END*/} - -## Example {#example} - -View all UDFs and their loading status: - -```sql -SELECT - name, - load_status, - type, - command, - return_type, - argument_types -FROM system.user_defined_functions -FORMAT Vertical; -``` - -```response -Row 1: -────── -name: my_sum_udf -load_status: Success -type: executable -command: /var/lib/clickhouse/user_scripts/sum.py -return_type: UInt64 -argument_types: ['UInt64','UInt64'] -``` - -Find failed UDFs: - -```sql -SELECT - name, - loading_error_message -FROM system.user_defined_functions -WHERE load_status = 'Failed'; -``` - -## See Also {#see-also} - -- [User-Defined Functions](/reference/functions/regular-functions/udf) — How to create and configure UDFs. diff --git a/reference/system-tables/users.mdx b/reference/system-tables/users.mdx deleted file mode 100644 index 81c57a66..00000000 --- a/reference/system-tables/users.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -description: 'System table containing a list of user accounts configured on the server.' -keywords: ['system table', 'users'] -slug: /operations/system-tables/users -title: 'system.users' -doc_type: 'reference' ---- - -## Description {#description} - -Contains a list of [user accounts](/concepts/features/security/access-rights#user-account-management) configured on the server. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `name` ([String](/reference/data-types)) — User name. -- `id` ([UUID](/reference/data-types)) — User ID. -- `storage` ([String](/reference/data-types)) — Path to the storage of users. Configured in the access_control_path parameter. -- `auth_type` ([Array(Enum8('no_password' = 0, 'plaintext_password' = 1, 'sha256_password' = 2, 'double_sha1_password' = 3, 'ldap' = 4, 'kerberos' = 5, 'ssl_certificate' = 6, 'bcrypt_password' = 7, 'ssh_key' = 8, 'http' = 9, 'jwt' = 10, 'scram_sha256_password' = 11, 'no_authentication' = 12))](/reference/data-types)) — Shows the authentication types. There are multiple ways of user identification: with no password, with plain text password, with SHA256-encoded password, with double SHA-1-encoded password or with bcrypt-encoded password. -- `auth_params` ([Array(String)](/reference/data-types)) — Authentication parameters in the JSON format depending on the auth_type. -- `valid_until` ([Array(DateTime)](/reference/data-types)) — The expiration date and time for user credentials. -- `host_ip` ([Array(String)](/reference/data-types)) — IP addresses of hosts that are allowed to connect to the ClickHouse server. -- `host_names` ([Array(String)](/reference/data-types)) — Names of hosts that are allowed to connect to the ClickHouse server. -- `host_names_regexp` ([Array(String)](/reference/data-types)) — Regular expression for host names that are allowed to connect to the ClickHouse server. -- `host_names_like` ([Array(String)](/reference/data-types)) — Names of hosts that are allowed to connect to the ClickHouse server, set using the LIKE predicate. -- `default_roles_all` ([UInt8](/reference/data-types)) — Shows that all granted roles set for user by default. -- `default_roles_list` ([Array(String)](/reference/data-types)) — List of granted roles provided by default. -- `default_roles_except` ([Array(String)](/reference/data-types)) — All the granted roles set as default excepting of the listed ones. -- `grantees_any` ([UInt8](/reference/data-types)) — The flag that indicates whether a user with any grant option can grant it to anyone. -- `grantees_list` ([Array(String)](/reference/data-types)) — The list of users or roles to which this user is allowed to grant options to. -- `grantees_except` ([Array(String)](/reference/data-types)) — The list of users or roles to which this user is forbidden from grant options to. -- `default_database` ([String](/reference/data-types)) — The name of the default database for this user. -{/*AUTOGENERATED_END*/} - -## See also {#see-also} - -- [SHOW USERS](/reference/statements/show#show-users) diff --git a/reference/system-tables/view_refreshes.mdx b/reference/system-tables/view_refreshes.mdx deleted file mode 100644 index 612bc6d1..00000000 --- a/reference/system-tables/view_refreshes.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -description: 'System table containing information about Refreshable Materialized Views.' -keywords: ['system table', 'view_refreshes'] -slug: /operations/system-tables/view_refreshes -title: 'system.view_refreshes' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -Information about [Refreshable Materialized Views](/reference/statements/create/view#refreshable-materialized-view). Contains all refreshable materialized views, regardless of whether there's a refresh in progress or not. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `database` ([String](/reference/data-types)) — The name of the database the table is in. -- `view` ([String](/reference/data-types)) — Table name. -- `uuid` ([UUID](/reference/data-types)) — Table uuid (Atomic database). -- `status` ([String](/reference/data-types)) — Current state of the refresh. -- `last_success_time` ([Nullable(DateTime)](/reference/data-types)) — Time when the latest successful refresh started. NULL if no successful refreshes happened since server startup or table creation. -- `last_success_duration_ms` ([Nullable(UInt64)](/reference/data-types)) — How long the latest refresh took. -- `last_refresh_time` ([Nullable(DateTime)](/reference/data-types)) — Time when the latest refresh attempt finished (if known) or started (if unknown or still running). NULL if no refresh attempts happened since server startup or table creation. -- `last_refresh_replica` ([String](/reference/data-types)) — If coordination is enabled, name of the replica that made the current (if running) or previous (if not running) refresh attempt. -- `next_refresh_time` ([Nullable(DateTime)](/reference/data-types)) — Time at which the next refresh is scheduled to start, if status = Scheduled. -- `exception` ([String](/reference/data-types)) — Error message from previous attempt if it failed. -- `retry` ([UInt64](/reference/data-types)) — How many failed attempts there were so far, for the current refresh. Not available if status is `RunningOnAnotherReplica`. -- `progress` ([Nullable(Float64)](/reference/data-types)) — Progress of the current running or most recently completed refresh at the given replica, between 0 and 1. NULL if status is `RunningOnAnotherReplica` or the refresh is not running. -- `read_rows` ([Nullable(UInt64)](/reference/data-types)) — Number of rows read by the current running or most recently completed refresh at the given replica. NULL if status is `RunningOnAnotherReplica`. -- `read_bytes` ([Nullable(UInt64)](/reference/data-types)) — Number of bytes read by the current running or most recently completed refresh at the given replica. NULL if status is `RunningOnAnotherReplica` -- `total_rows` ([Nullable(UInt64)](/reference/data-types)) — Estimated total number of rows that need to be read by the current running or most recently completed refresh at the given replica. NULL if status is `RunningOnAnotherReplica` -- `written_rows` ([Nullable(UInt64)](/reference/data-types)) — Number of rows written by the current running or most recently completed refresh at the given replica. NULL if status is `RunningOnAnotherReplica` -- `written_bytes` ([Nullable(UInt64)](/reference/data-types)) — Number of bytes written by the current running or most recently completed refresh at the given replica. NULL if status is `RunningOnAnotherReplica` -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql -SELECT - database, - view, - status, - last_refresh_result, - last_refresh_time, - next_refresh_time -FROM system.view_refreshes - -┌─database─┬─view───────────────────────┬─status────┬─last_refresh_result─┬───last_refresh_time─┬───next_refresh_time─┐ -│ default │ hello_documentation_reader │ Scheduled │ Finished │ 2023-12-01 01:24:00 │ 2023-12-01 01:25:00 │ -└──────────┴────────────────────────────┴───────────┴─────────────────────┴─────────────────────┴─────────────────────┘ -``` diff --git a/reference/system-tables/zookeeper_info.mdx b/reference/system-tables/zookeeper_info.mdx deleted file mode 100644 index 33540a93..00000000 --- a/reference/system-tables/zookeeper_info.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -description: 'System table which outputs introspection of all available keeper nodes.' -keywords: ['system table', 'zookeeper_info'] -slug: /operations/system-tables/zookeeper_info -title: 'system.zookeeper_info' -doc_type: 'reference' ---- - -import SystemTableCloud from '/snippets/_system_table_cloud.mdx'; - - - -## Description {#description} - -This table outputs combined introspection about zookeeper and the nodes are taken from config. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `zookeeper_cluster_name` ([String](/reference/data-types/string)) — ZooKeeper cluster's name. -- `host` ([String](/reference/data-types/string)) — The hostname/IP of the ZooKeeper node that ClickHouse connected to. -- `port` ([UInt16](/reference/data-types/int-uint)) — The port of the ZooKeeper node that ClickHouse connected to. -- `index` ([Nullable(UInt8)](/reference/data-types/int-uint)) — The index of the ZooKeeper node that ClickHouse connected to. The index is from ZooKeeper config. If not connected, this column is NULL. -- `is_connected` ([Nullable(UInt8)](/reference/data-types/int-uint)) — If zookeeper is connected or not. -- `is_readonly` ([UInt8](/reference/data-types/int-uint)) — Is read only. -- `version` ([String](/reference/data-types/string)) — The ZooKeeper version. -- `avg_latency` ([UInt64](/reference/data-types/int-uint)) — The average latency. -- `max_latency` ([UInt64](/reference/data-types/int-uint)) — The max latency. -- `min_latency` ([UInt64](/reference/data-types/int-uint)) — The min latency. -- `packets_received` ([UInt64](/reference/data-types/int-uint)) — The number of packets received. -- `packets_sent` ([UInt64](/reference/data-types/int-uint)) — The number of packets sent. -- `outstanding_requests` ([UInt64](/reference/data-types/int-uint)) — The number of outstanding requests. -- `server_state` ([String](/reference/data-types/string)) — Server state. -- `is_leader` ([UInt8](/reference/data-types/int-uint)) — Is this zookeeper leader. -- `znode_count` ([UInt64](/reference/data-types/int-uint)) — The znode count. -- `watch_count` ([UInt64](/reference/data-types/int-uint)) — The watch count. -- `ephemerals_count` ([UInt64](/reference/data-types/int-uint)) — The ephemerals count. -- `approximate_data_size` ([UInt64](/reference/data-types/int-uint)) — The approximate data size. -- `followers` ([UInt64](/reference/data-types/int-uint)) — The followers of the leader. This field is only exposed by the leader. -- `synced_followers` ([UInt64](/reference/data-types/int-uint)) — TThe synced followers of the leader. This field is only exposed by the leader. -- `pending_syncs` ([UInt64](/reference/data-types/int-uint)) — The pending syncs of the leader. This field is only exposed by the leader. -- `open_file_descriptor_count` ([UInt64](/reference/data-types/int-uint)) — The open file descriptor count. Only available on Unix platforms. -- `max_file_descriptor_count` ([UInt64](/reference/data-types/int-uint)) — The max file descriptor count. Only available on Unix platforms. -- `connections` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper connections. -- `outstanding` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper outstanding. -- `zxid` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper zxid. -- `node_count` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper node count. -- `snapshot_dir_size` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper snapshot directory size. -- `log_dir_size` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper log directory size. -- `first_log_idx` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper first log index. -- `first_log_term` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper first log term. -- `last_log_idx` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper last log index. -- `last_log_term` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper last log term. -- `last_committed_idx` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper last committed index. -- `leader_committed_log_idx` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper leader committed log index. -- `target_committed_log_idx` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper target committed log index. -- `last_snapshot_idx` ([UInt64](/reference/data-types/int-uint)) — The ZooKeeper last snapshot index. -{/*AUTOGENERATED_END*/} diff --git a/reference/system-tables/zookeeper_log.mdx b/reference/system-tables/zookeeper_log.mdx deleted file mode 100644 index c9ad78cd..00000000 --- a/reference/system-tables/zookeeper_log.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -description: 'System table containing information about the parameters of the request - to the ZooKeeper server and the response from it.' -keywords: ['system table', 'zookeeper_log'] -slug: /operations/system-tables/zookeeper_log -title: 'system.zookeeper_log' -doc_type: 'reference' ---- - -## Description {#description} - -This table contains information about the parameters of the request to the ZooKeeper server and the response from it. - -For requests, only columns with request parameters are filled in, and the remaining columns are filled with default values (`0` or `NULL`). When the response arrives, the data from the response is added to the other columns. - -## Columns {#columns} - -{/*AUTOGENERATED_START*/} -- `hostname` ([LowCardinality(String)](/reference/data-types/lowcardinality)) — Hostname of the server executing the query. -- `type` ([Enum8('Request' = 1, 'Response' = 2, 'Finalize' = 3)](/reference/data-types/enum)) — Event type in the ZooKeeper client. Can have one of the following values: Request — The request has been sent, Response — The response was received, Finalize — The connection is lost, no response was received. -- `event_date` ([Date](/reference/data-types/date)) — The date when the event happened. -- `event_time` ([DateTime64(6)](/reference/data-types/datetime64)) — The date and time when the event happened. -- `thread_id` ([UInt64](/reference/data-types/int-uint)) — The ID of the thread executed this request. -- `query_id` ([String](/reference/data-types/string)) — The ID of a query in scope of which this request was executed. -- `address` ([IPv6](/reference/data-types/ipv6)) — IP address of ZooKeeper server that was used to make the request. -- `port` ([UInt16](/reference/data-types/int-uint)) — The port of ZooKeeper server that was used to make the request. -- `session_id` ([Int64](/reference/data-types/int-uint)) — The session ID that the ZooKeeper server sets for each connection. -- `duration_microseconds` ([UInt64](/reference/data-types/int-uint)) — The time taken by ZooKeeper to execute the request. -- `xid` ([Int64](/reference/data-types/int-uint)) — The ID of the request within the session. This is usually a sequential request number. It is the same for the request row and the paired response/finalize row. -- `has_watch` ([UInt8](/reference/data-types/int-uint)) — The request whether the watch has been set. -- `op_num` ([Enum16('Close' = -11, 'Error' = -1, 'Watch' = 0, 'Create' = 1, 'Remove' = 2, 'Exists' = 3, 'Get' = 4, 'Set' = 5, 'GetACL' = 6, 'SetACL' = 7, 'SimpleList' = 8, 'Sync' = 9, 'Heartbeat' = 11, 'List' = 12, 'Check' = 13, 'Multi' = 14, 'Create2' = 15, 'Reconfig' = 16, 'CheckWatch' = 17, 'RemoveWatch' = 18, 'MultiRead' = 22, 'Auth' = 100, 'SetWatch' = 101, 'SetWatch2' = 105, 'AddWatch' = 106, 'FilteredList' = 500, 'CheckNotExists' = 501, 'CreateIfNotExists' = 502, 'RemoveRecursive' = 503, 'CheckStat' = 504, 'TryRemove' = 505, 'FilteredListWithStatsAndData' = 506, 'ListRecursive' = 507, 'SessionID' = 997)](/reference/data-types/enum)) — The type of request or response. -- `path` ([String](/reference/data-types/string)) — The path to the ZooKeeper node specified in the request, or an empty string if the request not requires specifying a path. -- `data` ([String](/reference/data-types/string)) — The data written to the ZooKeeper node (for the SET and CREATE requests — what the request wanted to write, for the response to the GET request — what was read) or an empty string. -- `is_ephemeral` ([UInt8](/reference/data-types/int-uint)) — Is the ZooKeeper node being created as an ephemeral. -- `is_sequential` ([UInt8](/reference/data-types/int-uint)) — Is the ZooKeeper node being created as an sequential. -- `version` ([Nullable(Int32)](/reference/data-types/nullable)) — The version of the ZooKeeper node that the request expects when executing. This is supported for CHECK, SET, REMOVE requests (is relevant -1 if the request does not check the version or NULL for other requests that do not support version checking). -- `requests_size` ([UInt32](/reference/data-types/int-uint)) — The number of requests included in the multi request (this is a special request that consists of several consecutive ordinary requests and executes them atomically). All requests included in multi request will have the same xid. -- `request_idx` ([UInt32](/reference/data-types/int-uint)) — The number of the request included in multi request (for multi request — 0, then in order from 1). -- `zxid` ([Int64](/reference/data-types/int-uint)) — ZooKeeper transaction ID. The serial number issued by the ZooKeeper server in response to a successfully executed request (0 if the request was not executed/returned an error/the client does not know whether the request was executed). -- `error` ([Nullable(Enum8('ZNOWATCHER' = -121, 'ZNOTREADONLY' = -119, 'ZSESSIONMOVED' = -118, 'ZNOTHING' = -117, 'ZCLOSING' = -116, 'ZAUTHFAILED' = -115, 'ZINVALIDACL' = -114, 'ZINVALIDCALLBACK' = -113, 'ZSESSIONEXPIRED' = -112, 'ZNOTEMPTY' = -111, 'ZNODEEXISTS' = -110, 'ZNOCHILDRENFOREPHEMERALS' = -108, 'ZBADVERSION' = -103, 'ZNOAUTH' = -102, 'ZNONODE' = -101, 'ZAPIERROR' = -100, 'ZOUTOFMEMORY' = -10, 'ZINVALIDSTATE' = -9, 'ZBADARGUMENTS' = -8, 'ZOPERATIONTIMEOUT' = -7, 'ZUNIMPLEMENTED' = -6, 'ZMARSHALLINGERROR' = -5, 'ZCONNECTIONLOSS' = -4, 'ZDATAINCONSISTENCY' = -3, 'ZRUNTIMEINCONSISTENCY' = -2, 'ZSYSTEMERROR' = -1, 'ZOK' = 0))](/reference/data-types/nullable)) — Error code. Can have many values, here are just some of them: ZOK — The request was executed successfully, ZCONNECTIONLOSS — The connection was lost, ZOPERATIONTIMEOUT — The request execution timeout has expired, ZSESSIONEXPIRED — The session has expired, NULL — The request is completed. -- `watch_type` ([Nullable(Enum8('NOTWATCHING' = -2, 'SESSION' = -1, 'CREATED' = 1, 'DELETED' = 2, 'CHANGED' = 3, 'CHILD' = 4))](/reference/data-types/nullable)) — The type of the watch event (for responses with op_num = Watch), for the remaining responses: NULL. -- `watch_state` ([Nullable(Enum16('AUTH_FAILED' = -113, 'EXPIRED_SESSION' = -112, 'CONNECTING' = 1, 'ASSOCIATING' = 2, 'CONNECTED' = 3, 'READONLY' = 5, 'NOTCONNECTED' = 999))](/reference/data-types/nullable)) — The status of the watch event (for responses with op_num = Watch), for the remaining responses: NULL. -- `path_created` ([String](/reference/data-types/string)) — The path to the created ZooKeeper node (for responses to the CREATE request), may differ from the path if the node is created as a sequential. -- `stat_czxid` ([Int64](/reference/data-types/int-uint)) — The zxid of the change that caused this ZooKeeper node to be created. -- `stat_mzxid` ([Int64](/reference/data-types/int-uint)) — The zxid of the change that last modified this ZooKeeper node. -- `stat_pzxid` ([Int64](/reference/data-types/int-uint)) — The transaction ID of the change that last modified children of this ZooKeeper node. -- `stat_version` ([Int32](/reference/data-types/int-uint)) — The number of changes to the data of this ZooKeeper node. -- `stat_cversion` ([Int32](/reference/data-types/int-uint)) — The number of changes to the children of this ZooKeeper node. -- `stat_dataLength` ([Int32](/reference/data-types/int-uint)) — The length of the data field of this ZooKeeper node. -- `stat_numChildren` ([Int32](/reference/data-types/int-uint)) — The number of children of this ZooKeeper node. -- `children` ([Array(String)](/reference/data-types/array)) — The list of child ZooKeeper nodes (for responses to LIST request). -{/*AUTOGENERATED_END*/} - -## Example {#example} - -```sql title="Query" -SELECT * FROM system.zookeeper_log WHERE (session_id = '106662742089334927') AND (xid = '10858') FORMAT Vertical; -``` - -```text title="Response" -Row 1: -────── -hostname: clickhouse.eu-central1.internal -type: Request -event_date: 2021-08-09 -event_time: 2021-08-09 21:38:30.291792 -address: :: -port: 2181 -session_id: 106662742089334927 -xid: 10858 -has_watch: 1 -op_num: List -path: /clickhouse/task_queue/ddl -data: -is_ephemeral: 0 -is_sequential: 0 -version: ᴺᵁᴸᴸ -requests_size: 0 -request_idx: 0 -zxid: 0 -error: ᴺᵁᴸᴸ -watch_type: ᴺᵁᴸᴸ -watch_state: ᴺᵁᴸᴸ -path_created: -stat_czxid: 0 -stat_mzxid: 0 -stat_pzxid: 0 -stat_version: 0 -stat_cversion: 0 -stat_dataLength: 0 -stat_numChildren: 0 -children: [] - -Row 2: -────── -type: Response -event_date: 2021-08-09 -event_time: 2021-08-09 21:38:30.292086 -address: :: -port: 2181 -session_id: 106662742089334927 -xid: 10858 -has_watch: 1 -op_num: List -path: /clickhouse/task_queue/ddl -data: -is_ephemeral: 0 -is_sequential: 0 -version: ᴺᵁᴸᴸ -requests_size: 0 -request_idx: 0 -zxid: 16926267 -error: ZOK -watch_type: ᴺᵁᴸᴸ -watch_state: ᴺᵁᴸᴸ -path_created: -stat_czxid: 16925469 -stat_mzxid: 16925469 -stat_pzxid: 16926179 -stat_version: 0 -stat_cversion: 7 -stat_dataLength: 0 -stat_numChildren: 7 -children: ['query-0000000006','query-0000000005','query-0000000004','query-0000000003','query-0000000002','query-0000000001','query-0000000000'] -``` - -## See also {#see-also} - -- [ZooKeeper](/guides/oss/best-practices/tips#zookeeper) -- [ZooKeeper guide](https://zookeeper.apache.org/doc/r3.3.3/zookeeperProgrammers.html) diff --git a/resources/about/index.mdx b/resources/about/index.mdx index 34310e77..84185824 100644 --- a/resources/about/index.mdx +++ b/resources/about/index.mdx @@ -13,6 +13,6 @@ the table of contents below for a list of pages in this section of the docs. |----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Adopters](/resources/about/adopters) | A list of companies using ClickHouse and their success stories, assembled from public sources | | [Support](/resources/about/support) | An introduction to ClickHouse Cloud support services and their mission. | -| [Beta features and experimental features](/reference/settings/beta-and-experimental-features) | Learn about how ClickHouse uses "Beta" and "Experimental" labels to distinguish between officially supported and early-stage, unsupported features due to varied development speeds from community contributions. | +| [Beta features and experimental features](/core/reference/settings/beta-and-experimental-features) | Learn about how ClickHouse uses "Beta" and "Experimental" labels to distinguish between officially supported and early-stage, unsupported features due to varied development speeds from community contributions. | | [Cloud service](/resources/about/cloud) | Discover ClickHouse Cloud - a fully managed service that allows you to spin up open-source ClickHouse databases and offers benefits like fast time to value, seamless scaling, and serverless operations. | | [ClickHouse history](/resources/about/history) | Learn more about the history of ClickHouse. | diff --git a/resources/about/navigation.json b/resources/about/navigation.json new file mode 100644 index 00000000..b385a833 --- /dev/null +++ b/resources/about/navigation.json @@ -0,0 +1,16 @@ +{ + "item": "About", + "icon": "/images/icons/icon-about.svg", + "groups": [ + { + "group": "About ClickHouse", + "root": "resources/about/index", + "pages": [ + "resources/about/history", + "resources/about/adopters", + "resources/about/cloud", + "resources/about/support" + ] + } + ] +} diff --git a/resources/changelogs/cloud.mdx b/resources/changelogs/cloud/2026.mdx similarity index 97% rename from resources/changelogs/cloud.mdx rename to resources/changelogs/cloud/2026.mdx index 32339f91..18224b53 100644 --- a/resources/changelogs/cloud.mdx +++ b/resources/changelogs/cloud/2026.mdx @@ -27,9 +27,9 @@ Powered by [pg_stat_ch](https://github.com/ClickHouse/pg_stat_ch), an open-sourc We have expanded our support of [data catalog integrations](/products/cloud/features/data-catalogs) via the Data Sources UI with more auth methods, table formats, and data catalog flavors: -* IAM support for [AWS Glue Catalog](/guides/data-warehousing/glue-catalog) -* [BigLake Metastore](/guides/data-warehousing/biglake-catalog) support for data catalog integration -* Delta Tables support on [Unity Catalog](/guides/data-warehousing/unity-catalog) +* IAM support for [AWS Glue Catalog](/core/guides/use-cases/data-warehousing/glue-catalog) +* [BigLake Metastore](/core/guides/use-cases/data-warehousing/biglake-catalog) support for data catalog integration +* Delta Tables support on [Unity Catalog](/core/guides/use-cases/data-warehousing/unity-catalog) ## May 2, 2026 {#2026-05-02} diff --git a/resources/changelogs/cloud/archive/2022.mdx b/resources/changelogs/cloud/archive/2022.mdx index b32f7035..996e49d2 100644 --- a/resources/changelogs/cloud/archive/2022.mdx +++ b/resources/changelogs/cloud/archive/2022.mdx @@ -104,7 +104,7 @@ This release enables dictionaries from local ClickHouse table and HTTP sources, ### General changes {#general-changes-5} -- Added support for [dictionaries](/reference/statements/create/dictionary) from local ClickHouse table and HTTP sources +- Added support for [dictionaries](/core/reference/statements/create/dictionary) from local ClickHouse table and HTTP sources - Introduced support for the Mumbai [region](/products/cloud/reference/supported-regions) ### Console changes {#console-changes-30} diff --git a/resources/changelogs/cloud/archive/2023.mdx b/resources/changelogs/cloud/archive/2023.mdx index 3d030342..7577cdf1 100644 --- a/resources/changelogs/cloud/archive/2023.mdx +++ b/resources/changelogs/cloud/archive/2023.mdx @@ -141,7 +141,7 @@ This release brings the beta release of the PowerBI Desktop official connector, This release adds support for the MySQL interface to the ClickHouse database, introduces a new official PowerBI connector, adds a new "Running Queries" view in the cloud console, and updates the ClickHouse version to 23.7. ### General updates {#general-updates-2} -- Added support for the [MySQL wire protocol](/integrations/connectors/data-integrations/drivers-and-interfaces/mysql), which (among other use cases) enables compatibility with many existing BI tools. Please reach out to support to enable this feature for your organization. +- Added support for the [MySQL wire protocol](/core/concepts/features/interfaces/mysql), which (among other use cases) enables compatibility with many existing BI tools. Please reach out to support to enable this feature for your organization. - Introduced a new official PowerBI connector ### Console changes {#console-changes-13} @@ -194,7 +194,7 @@ This release brings the ability to spin up Dedicated Services, a new AWS region - Metabase: updated JDBC driver version, added DateTime64 support, performance improvements. ### Core database changes {#core-database-changes} -- [Query cache](/concepts/features/performance/caches/query-cache) can be enabled in ClickHouse Cloud. When it is enabled, successful queries are cached for a minute by default and subsequent queries will use the cached result. +- [Query cache](/core/concepts/features/performance/caches/query-cache) can be enabled in ClickHouse Cloud. When it is enabled, successful queries are cached for a minute by default and subsequent queries will use the cached result. ## June 20, 2023 {#june-20-2023} @@ -491,14 +491,14 @@ This release updates the ClickHouse version to 22.12, enables dictionaries for m - New s3source macro - Python client [v0.4.8](https://github.com/ClickHouse/clickhouse-connect/blob/main/CHANGELOG.md#048-2023-01-02) - File insert support - - Server-side query [parameters binding](/integrations/connectors/data-integrations/drivers-and-interfaces/client#cli-queries-with-parameters) + - Server-side query [parameters binding](/core/concepts/features/interfaces/client#cli-queries-with-parameters) - Go client [v2.5.0](https://github.com/ClickHouse/clickhouse-go/releases/tag/v2.5.0) - Reduced memory usage for compression - - Server-side query [parameters binding](/integrations/connectors/data-integrations/drivers-and-interfaces/client#cli-queries-with-parameters) + - Server-side query [parameters binding](/core/concepts/features/interfaces/client#cli-queries-with-parameters) ### Reliability and performance {#reliability-and-performance-2} - Improved read performance for queries that fetch a large number of small files on object store -- Set the [compatibility](/reference/settings/session-settings#compatibility) setting to the version with which the service is initially launched, for newly launched services +- Set the [compatibility](/core/reference/settings/session-settings#compatibility) setting to the version with which the service is initially launched, for newly launched services ### Bug fixes {#bug-fixes-4} Using the Advanced Scaling slider to reserve resources now takes effect right away. \ No newline at end of file diff --git a/resources/changelogs/cloud/archive/2024.mdx b/resources/changelogs/cloud/archive/2024.mdx index 4b027138..889dad28 100644 --- a/resources/changelogs/cloud/archive/2024.mdx +++ b/resources/changelogs/cloud/archive/2024.mdx @@ -65,7 +65,7 @@ We are launching Beta for our native JSON support in ClickHouse Cloud. To get st We are announcing vector similarity indexes for approximate vector search in early access. -ClickHouse already offers robust support for vector-based use cases, with a wide range of [distance functions]https://clickhouse.com/blog/reinvent-2024-product-announcements#vector-search-using-vector-similarity-indexes-early-access) and the ability to perform linear scans. In addition, more recently, we added an experimental[ approximate vector search](/reference/engines/table-engines/mergetree-family/annindexes) approach powered by the [usearch](https://github.com/unum-cloud/usearch) library and the Hierarchical Navigable Small Worlds (HNSW) approximate nearest neighbor search algorithm. +ClickHouse already offers robust support for vector-based use cases, with a wide range of [distance functions]https://clickhouse.com/blog/reinvent-2024-product-announcements#vector-search-using-vector-similarity-indexes-early-access) and the ability to perform linear scans. In addition, more recently, we added an experimental[ approximate vector search](/core/reference/engines/table-engines/mergetree-family/annindexes) approach powered by the [usearch](https://github.com/unum-cloud/usearch) library and the Hierarchical Navigable Small Worlds (HNSW) approximate nearest neighbor search algorithm. To get started, [please sign up for the early access waitlist](https://clickhouse.com/cloud/vector-search-index-waitlist). @@ -97,7 +97,7 @@ From now on, any new services created on AWS will allow a maximum available repl Previously, the advanced observability dashboard that allows you to monitor ClickHouse server metrics and hardware resource utilization was only available in open-source ClickHouse. We are happy to announce that this feature is now available in the ClickHouse Cloud console. -This dashboard allows you to view queries based on the [system.dashboards](/reference/system-tables/dashboards) table in an all-in-one UI. Visit **Monitoring > Service Health** page to start using the advanced observability dashboard today. +This dashboard allows you to view queries based on the [system.dashboards](/core/reference/system-tables/dashboards) table in an all-in-one UI. Visit **Monitoring > Service Health** page to start using the advanced observability dashboard today. @@ -203,7 +203,7 @@ In our last cloud changelog, we announced the Private Preview for exporting [Pro ### Table inspector in Cloud console {#table-inspector-in-cloud-console} -ClickHouse has commands like [`DESCRIBE`](/reference/statements/describe-table) that allow you to introspect your table to examine schema. These commands output to the console, but they are often not convenient to use as you need to combine several queries to retrieve all pertinent data about your tables and columns. +ClickHouse has commands like [`DESCRIBE`](/core/reference/statements/describe-table) that allow you to introspect your table to examine schema. These commands output to the console, but they are often not convenient to use as you need to combine several queries to retrieve all pertinent data about your tables and columns. We recently launched a **Table Inspector** in the cloud console which allows you to retrieve important table and column information in the UI, without having to write SQL. You can try out the Table Inspector for your services by checking out the cloud console. It provides information about your schema, storage, compression, and more in one unified interface. @@ -508,7 +508,7 @@ This release brings availability of ClickPipes for Azure Event Hub, dramatically ## January 18, 2024 {#january-18-2024} -This release brings a new region in AWS (London / eu-west-2), adds ClickPipes support for Redpanda, Upstash, and Warpstream, and improves reliability of the [is_deleted](/reference/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) core database capability. +This release brings a new region in AWS (London / eu-west-2), adds ClickPipes support for Redpanda, Upstash, and Warpstream, and improves reliability of the [is_deleted](/core/reference/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) core database capability. ### General changes {#general-changes} - New AWS Region: London (eu-west-2) @@ -529,4 +529,4 @@ This release brings a new region in AWS (London / eu-west-2), adds ClickPipes su - Python client: Added Nothing type support for SQLAlchemy ### Reliability changes {#reliability-changes} -- User-facing backward incompatible change: Previously, two features ([is_deleted](/reference/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) and ``OPTIMIZE CLEANUP``) under certain conditions could lead to corruption of the data in ClickHouse. To protect the integrity of the data of our users, while keeping the core of the functionality, we adjusted how this feature works. Specifically, the MergeTree setting ``clean_deleted_rows`` is now deprecated and has no effect anymore. The ``CLEANUP`` keyword is not allowed by default (to use it you will need to enable ``allow_experimental_replacing_merge_with_cleanup``). If you decide to use ``CLEANUP``, you need to make sure that it is always used together with ``FINAL``, and you must guarantee that no rows with older versions will be inserted after you run ``OPTIMIZE FINAL CLEANUP``. +- User-facing backward incompatible change: Previously, two features ([is_deleted](/core/reference/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) and ``OPTIMIZE CLEANUP``) under certain conditions could lead to corruption of the data in ClickHouse. To protect the integrity of the data of our users, while keeping the core of the functionality, we adjusted how this feature works. Specifically, the MergeTree setting ``clean_deleted_rows`` is now deprecated and has no effect anymore. The ``CLEANUP`` keyword is not allowed by default (to use it you will need to enable ``allow_experimental_replacing_merge_with_cleanup``). If you decide to use ``CLEANUP``, you need to make sure that it is always used together with ``FINAL``, and you must guarantee that no rows with older versions will be inserted after you run ``OPTIMIZE FINAL CLEANUP``. diff --git a/resources/changelogs/cloud/changelog.mdx b/resources/changelogs/cloud/changelog.mdx index eb513d80..add47aa1 100644 --- a/resources/changelogs/cloud/changelog.mdx +++ b/resources/changelogs/cloud/changelog.mdx @@ -540,7 +540,7 @@ We are launching Beta for our native JSON support in ClickHouse Cloud. To get st We are announcing vector similarity indexes for approximate vector search in early access. -ClickHouse already offers robust support for vector-based use cases, with a wide range of [distance functions]https://clickhouse.com/blog/reinvent-2024-product-announcements#vector-search-using-vector-similarity-indexes-early-access) and the ability to perform linear scans. In addition, more recently, we added an experimental[ approximate vector search](/reference/engines/table-engines/mergetree-family/annindexes) approach powered by the [usearch](https://github.com/unum-cloud/usearch) library and the Hierarchical Navigable Small Worlds (HNSW) approximate nearest neighbor search algorithm. +ClickHouse already offers robust support for vector-based use cases, with a wide range of [distance functions]https://clickhouse.com/blog/reinvent-2024-product-announcements#vector-search-using-vector-similarity-indexes-early-access) and the ability to perform linear scans. In addition, more recently, we added an experimental[ approximate vector search](/core/reference/engines/table-engines/mergetree-family/annindexes) approach powered by the [usearch](https://github.com/unum-cloud/usearch) library and the Hierarchical Navigable Small Worlds (HNSW) approximate nearest neighbor search algorithm. To get started, [please sign up for the early access waitlist](https://clickhouse.com/cloud/vector-search-index-waitlist). @@ -574,7 +574,7 @@ From now on, any new services created on AWS will allow a maximum available repl Previously, the advanced observability dashboard that allows you to monitor ClickHouse server metrics and hardware resource utilization was only available in open-source ClickHouse. We are happy to announce that this feature is now available in the ClickHouse Cloud console. -This dashboard allows you to view queries based on the [system.dashboards](/reference/system-tables/dashboards) table in an all-in-one UI. Visit **Monitoring > Service Health** page to start using the advanced observability dashboard today. +This dashboard allows you to view queries based on the [system.dashboards](/core/reference/system-tables/dashboards) table in an all-in-one UI. Visit **Monitoring > Service Health** page to start using the advanced observability dashboard today. ClickHouse Cloud advanced observability dashboard showing server metrics and resource utilization @@ -690,7 +690,7 @@ In our last cloud changelog, we announced the Private Preview for exporting [Pro ### Table inspector in Cloud console -ClickHouse has commands like [`DESCRIBE`](/reference/statements/describe-table) that allow you to introspect your table to examine schema. These commands output to the console, but they are often not convenient to use as you need to combine several queries to retrieve all pertinent data about your tables and columns. +ClickHouse has commands like [`DESCRIBE`](/core/reference/statements/describe-table) that allow you to introspect your table to examine schema. These commands output to the console, but they are often not convenient to use as you need to combine several queries to retrieve all pertinent data about your tables and columns. We recently launched a **Table Inspector** in the cloud console which allows you to retrieve important table and column information in the UI, without having to write SQL. You can try out the Table Inspector for your services by checking out the cloud console. It provides information about your schema, storage, compression, and more in one unified interface. @@ -1021,7 +1021,7 @@ This release brings availability of ClickPipes for Azure Event Hub, dramatically -This release brings a new region in AWS (London / eu-west-2), adds ClickPipes support for Redpanda, Upstash, and Warpstream, and improves reliability of the [is_deleted](/reference/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) core database capability. +This release brings a new region in AWS (London / eu-west-2), adds ClickPipes support for Redpanda, Upstash, and Warpstream, and improves reliability of the [is_deleted](/core/reference/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) core database capability. ### General changes - New AWS Region: London (eu-west-2) @@ -1042,7 +1042,7 @@ This release brings a new region in AWS (London / eu-west-2), adds ClickPipes su - Python client: Added Nothing type support for SQLAlchemy ### Reliability changes -- User-facing backward incompatible change: Previously, two features ([is_deleted](/reference/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) and ``OPTIMIZE CLEANUP``) under certain conditions could lead to corruption of the data in ClickHouse. To protect the integrity of the data of our users, while keeping the core of the functionality, we adjusted how this feature works. Specifically, the MergeTree setting ``clean_deleted_rows`` is now deprecated and has no effect anymore. The ``CLEANUP`` keyword is not allowed by default (to use it you will need to enable ``allow_experimental_replacing_merge_with_cleanup``). If you decide to use ``CLEANUP``, you need to make sure that it is always used together with ``FINAL``, and you must guarantee that no rows with older versions will be inserted after you run ``OPTIMIZE FINAL CLEANUP``. +- User-facing backward incompatible change: Previously, two features ([is_deleted](/core/reference/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) and ``OPTIMIZE CLEANUP``) under certain conditions could lead to corruption of the data in ClickHouse. To protect the integrity of the data of our users, while keeping the core of the functionality, we adjusted how this feature works. Specifically, the MergeTree setting ``clean_deleted_rows`` is now deprecated and has no effect anymore. The ``CLEANUP`` keyword is not allowed by default (to use it you will need to enable ``allow_experimental_replacing_merge_with_cleanup``). If you decide to use ``CLEANUP``, you need to make sure that it is always used together with ``FINAL``, and you must guarantee that no rows with older versions will be inserted after you run ``OPTIMIZE FINAL CLEANUP``. @@ -1193,7 +1193,7 @@ This release brings the beta release of the PowerBI Desktop official connector, This release adds support for the MySQL interface to the ClickHouse database, introduces a new official PowerBI connector, adds a new "Running Queries" view in the cloud console, and updates the ClickHouse version to 23.7. ### General updates -- Added support for the [MySQL wire protocol](/integrations/connectors/data-integrations/drivers-and-interfaces/mysql), which (among other use cases) enables compatibility with many existing BI tools. Please reach out to support to enable this feature for your organization. +- Added support for the [MySQL wire protocol](/core/concepts/features/interfaces/mysql), which (among other use cases) enables compatibility with many existing BI tools. Please reach out to support to enable this feature for your organization. - Introduced a new official PowerBI connector ### Console changes @@ -1250,7 +1250,7 @@ This release brings the ability to spin up Dedicated Services, a new AWS region - Metabase: updated JDBC driver version, added DateTime64 support, performance improvements. ### Core database changes -- [Query cache](/concepts/features/performance/caches/query-cache) can be enabled in ClickHouse Cloud. When it is enabled, successful queries are cached for a minute by default and subsequent queries will use the cached result. +- [Query cache](/core/concepts/features/performance/caches/query-cache) can be enabled in ClickHouse Cloud. When it is enabled, successful queries are cached for a minute by default and subsequent queries will use the cached result. @@ -1567,14 +1567,14 @@ This release updates the ClickHouse version to 22.12, enables dictionaries for m - New s3source macro - Python client [v0.4.8](https://github.com/ClickHouse/clickhouse-connect/blob/main/CHANGELOG.md#048-2023-01-02) - File insert support - - Server-side query [parameters binding](/integrations/connectors/data-integrations/drivers-and-interfaces/cli#cli-queries-with-parameters) + - Server-side query [parameters binding](/core/concepts/features/interfaces/cli#cli-queries-with-parameters) - Go client [v2.5.0](https://github.com/ClickHouse/clickhouse-go/releases/tag/v2.5.0) - Reduced memory usage for compression - - Server-side query [parameters binding](/integrations/connectors/data-integrations/drivers-and-interfaces/cli#cli-queries-with-parameters) + - Server-side query [parameters binding](/core/concepts/features/interfaces/cli#cli-queries-with-parameters) ### Reliability and performance - Improved read performance for queries that fetch a large number of small files on object store -- Set the [compatibility](/reference/settings/session-settings#compatibility) setting to the version with which the service is initially launched, for newly launched services +- Set the [compatibility](/core/reference/settings/session-settings#compatibility) setting to the version with which the service is initially launched, for newly launched services ### Bug fixes Using the Advanced Scaling slider to reserve resources now takes effect right away. @@ -1684,7 +1684,7 @@ This release enables dictionaries from local ClickHouse table and HTTP sources, ### General changes -- Added support for [dictionaries](/concepts/features/dictionaries) from local ClickHouse table and HTTP sources +- Added support for [dictionaries](/core/concepts/features/dictionaries) from local ClickHouse table and HTTP sources - Introduced support for the Mumbai [region](/products/cloud/reference/supported-regions) ### Console changes diff --git a/resources/changelogs/cloud/release-notes/24_02.mdx b/resources/changelogs/cloud/release-notes/24_02.mdx index 01125d25..9df9c436 100644 --- a/resources/changelogs/cloud/release-notes/24_02.mdx +++ b/resources/changelogs/cloud/release-notes/24_02.mdx @@ -19,7 +19,7 @@ doc_type: 'changelog' * The obsolete in-memory data parts have been deprecated since version 23.5 and have not been supported since version 23.10. Now the remaining code is removed. Continuation of [#55186](https://github.com/ClickHouse/ClickHouse/issues/55186) and [#45409](https://github.com/ClickHouse/ClickHouse/issues/45409). It is unlikely that you have used in-memory data parts because they were available only before version 23.5 and only when you enabled them manually by specifying the corresponding SETTINGS for a MergeTree table. To check if you have in-memory data parts, run the following query: `SELECT part_type, count() FROM system.parts GROUP BY part_type ORDER BY part_type`. To disable the usage of in-memory data parts, do `ALTER TABLE ... MODIFY SETTING min_bytes_for_compact_part = DEFAULT, min_rows_for_compact_part = DEFAULT`. Before upgrading from old ClickHouse releases, first check that you don't have in-memory data parts. If there are in-memory data parts, disable them first, then wait while there are no in-memory data parts and continue the upgrade. [#61127](https://github.com/ClickHouse/ClickHouse/pull/61127) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * Forbid `SimpleAggregateFunction` in `ORDER BY` of `MergeTree` tables (like `AggregateFunction` is forbidden, but they are forbidden because they are not comparable) by default (use `allow_suspicious_primary_key` to allow them). [#61399](https://github.com/ClickHouse/ClickHouse/pull/61399) ([Azat Khuzhin](https://github.com/azat)). * ClickHouse allows arbitrary binary data in the String data type, which is typically UTF-8. Parquet/ORC/Arrow Strings only support UTF-8. That's why you can choose which Arrow's data type to use for the ClickHouse String data type - String or Binary. This is controlled by the settings, `output_format_parquet_string_as_string`, `output_format_orc_string_as_string`, `output_format_arrow_string_as_string`. While Binary would be more correct and compatible, using String by default will correspond to user expectations in most cases. Parquet/ORC/Arrow supports many compression methods, including lz4 and zstd. ClickHouse supports each and every compression method. Some inferior tools lack support for the faster `lz4` compression method, that's why we set `zstd` by default. This is controlled by the settings `output_format_parquet_compression_method`, `output_format_orc_compression_method`, and `output_format_arrow_compression_method`. We changed the default to `zstd` for Parquet and ORC, but not Arrow (it is emphasized for low-level usages). [#61817](https://github.com/ClickHouse/ClickHouse/pull/61817) ([Alexey Milovidov](https://github.com/alexey-milovidov)). -* Fix for the materialized view security issue, which allowed a user to insert into a table without required grants for that. Fix validates that the user has permission to insert not only into a materialized view but also into all underlying tables. This means that some queries, which worked before, now can fail with Not enough privileges. To address this problem, the release introduces a new feature of SQL security for views [https://clickhouse.com/docs/sql-reference/statements/create/view#sql_security](/reference/statements/create/view#sql_security). [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) ([pufit](https://github.com/pufit)) +* Fix for the materialized view security issue, which allowed a user to insert into a table without required grants for that. Fix validates that the user has permission to insert not only into a materialized view but also into all underlying tables. This means that some queries, which worked before, now can fail with Not enough privileges. To address this problem, the release introduces a new feature of SQL security for views [https://clickhouse.com/docs/sql-reference/statements/create/view#sql_security](/core/reference/statements/create/view#sql_security). [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) ([pufit](https://github.com/pufit)) #### New feature {#new-feature} * Topk/topkweighed support mode, which return count of values and it's error. [#54508](https://github.com/ClickHouse/ClickHouse/pull/54508) ([UnamedRus](https://github.com/UnamedRus)). diff --git a/resources/changelogs/cloud/release-notes/24_12.mdx b/resources/changelogs/cloud/release-notes/24_12.mdx index 519c9f8d..3cbcb35e 100644 --- a/resources/changelogs/cloud/release-notes/24_12.mdx +++ b/resources/changelogs/cloud/release-notes/24_12.mdx @@ -29,7 +29,7 @@ Relevant changes for ClickHouse Cloud services based on the v24.12 release. - Implement SYSTEM LOAD PRIMARY KEY command to load primary indexes for all parts of a specified table or for all tables if no table is specified. This will be useful for benchmarks and to prevent extra latency during query execution. [#66252](https://github.com/ClickHouse/ClickHouse/pull/66252) ([ZAWA_ll](https://github.com/Zawa-ll)). - Added statement `SYSTEM LOAD PRIMARY KEY` for loading the primary indexes of all parts in a specified table or for all tables if no table is specified. This can be useful for benchmarking and to prevent extra latency during query execution. [#67733](https://github.com/ClickHouse/ClickHouse/pull/67733) ([ZAWA_ll](https://github.com/Zawa-ll)). - Add `CHECK GRANT` query to check whether the current user/role has been granted the specific privilege and whether the corresponding table/column exists in the memory. [#68885](https://github.com/ClickHouse/ClickHouse/pull/68885) ([Unalian](https://github.com/Unalian)). -- Added SQL syntax to describe workload and resource management. See [docs](/concepts/features/configuration/server-config/workload-scheduling). [#69187](https://github.com/ClickHouse/ClickHouse/pull/69187) ([Sergei Trifonov](https://github.com/serxa)). +- Added SQL syntax to describe workload and resource management. See [docs](/core/concepts/features/configuration/server-config/workload-scheduling). [#69187](https://github.com/ClickHouse/ClickHouse/pull/69187) ([Sergei Trifonov](https://github.com/serxa)). - [The Iceberg data storage](https://iceberg.apache.org/spec/#file-system-operations) format provides the user with extensive options for modifying the schema of their table. In this pull request, reading a table in Iceberg format has been implemented, where the order of columns, column names, and simple type extensions have been changed. [#69445](https://github.com/ClickHouse/ClickHouse/pull/69445) ([Daniil Ivanik](https://github.com/divanik)). - Allow each authentication method to have its own expiration date, remove from user entity. [#70090](https://github.com/ClickHouse/ClickHouse/pull/70090) ([Arthur Passos](https://github.com/arthurpassos)). - Push external user roles from query originator to other nodes in cluster. Helpful when only originator has access to the external authenticator (like LDAP). [#70332](https://github.com/ClickHouse/ClickHouse/pull/70332) ([Andrey Zvonov](https://github.com/zvonand)). diff --git a/resources/changelogs/cloud/release-notes/25_08.mdx b/resources/changelogs/cloud/release-notes/25_08.mdx index fdda2c27..4d1fb0ab 100644 --- a/resources/changelogs/cloud/release-notes/25_08.mdx +++ b/resources/changelogs/cloud/release-notes/25_08.mdx @@ -12,19 +12,19 @@ doc_type: 'changelog' ### JSON and data format changes {#json-and-data-format-changes} * Disable quoting 64 bit integers in JSON formats by default. [#74079](https://github.com/ClickHouse/ClickHouse/pull/74079) ([Pavel Kruglov](https://github.com/Avogar)). -* Infer `Array(Dynamic)` instead of unnamed `Tuple` for arrays of values with different types in JSON. To use the previous behaviour, disable setting [`input_format_json_infer_array_of_dynamic_from_array_of_different_types`](/reference/settings/formats#input_format_json_infer_array_of_dynamic_from_array_of_different_types). [#80859](https://github.com/ClickHouse/ClickHouse/pull/80859) ([Pavel Kruglov](https://github.com/Avogar)). +* Infer `Array(Dynamic)` instead of unnamed `Tuple` for arrays of values with different types in JSON. To use the previous behaviour, disable setting [`input_format_json_infer_array_of_dynamic_from_array_of_different_types`](/core/reference/settings/formats#input_format_json_infer_array_of_dynamic_from_array_of_different_types). [#80859](https://github.com/ClickHouse/ClickHouse/pull/80859) ([Pavel Kruglov](https://github.com/Avogar)). * Write values of `Enum` type as `BYTE_ARRAY` with `ENUM` logical type in Parquet output format by default. [#84169](https://github.com/ClickHouse/ClickHouse/pull/84169) ([Pavel Kruglov](https://github.com/Avogar)). ### Storage and partitioning {#storage-and-partitioning} * Add support for hive partition style writes and refactor reads implementation (hive partition columns are no longer virtual). [#76802](https://github.com/ClickHouse/ClickHouse/pull/76802) ([Arthur Passos](https://github.com/arthurpassos)). -* Enable MergeTree setting [`write_marks_for_substreams_in_compact_parts`](/reference/settings/merge-tree-settings#write_marks_for_substreams_in_compact_parts) by default. It significantly improves performance of subcolumns reading from newly created Compact parts. Servers with version less than 25.5 won't be able to read the new ompact parts. [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar)). +* Enable MergeTree setting [`write_marks_for_substreams_in_compact_parts`](/core/reference/settings/merge-tree-settings#write_marks_for_substreams_in_compact_parts) by default. It significantly improves performance of subcolumns reading from newly created Compact parts. Servers with version less than 25.5 won't be able to read the new ompact parts. [#84171](https://github.com/ClickHouse/ClickHouse/pull/84171) ([Pavel Kruglov](https://github.com/Avogar)). * Disallow `RENAME COLUMN` or `DROP COLUMN` involving explicitly listed columns to sum in SummingMergeTree. Closes [#81836](https://github.com/ClickHouse/ClickHouse/issues/81836). [#82821](https://github.com/ClickHouse/ClickHouse/pull/82821) ([Alexey Milovidov](https://github.com/alexey-milovidov)). ### Function enhancements {#function-enhancements} -* Introduce a new argument `unexpected_quoting_character_strategy` to the [`extractKeyValuePairs`](/reference/functions/regular-functions/tuple-map-functions#extractKeyValuePairs) function that controls what happens when a `quoting_character` is unexpectedly found. For more details see the docs for [`extractKeyValuePairs`](/reference/functions/regular-functions/tuple-map-functions#extractKeyValuePairs). [#80657](https://github.com/ClickHouse/ClickHouse/pull/80657) ([Arthur Passos](https://github.com/arthurpassos)). -* Previously, the function [`countMatches`](/reference/functions/regular-functions/string-search-functions#countMatches) would stop counting at the first empty match even if the pattern accepts it. To overcome this issue, `countMatches` now continues execution by advancing by a single character when an empty match occurs. Users who would like to retain the old behavior can enable setting `count_matches_stop_at_empty_match`. [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)). +* Introduce a new argument `unexpected_quoting_character_strategy` to the [`extractKeyValuePairs`](/core/reference/functions/regular-functions/tuple-map-functions#extractKeyValuePairs) function that controls what happens when a `quoting_character` is unexpectedly found. For more details see the docs for [`extractKeyValuePairs`](/core/reference/functions/regular-functions/tuple-map-functions#extractKeyValuePairs). [#80657](https://github.com/ClickHouse/ClickHouse/pull/80657) ([Arthur Passos](https://github.com/arthurpassos)). +* Previously, the function [`countMatches`](/core/reference/functions/regular-functions/string-search-functions#countMatches) would stop counting at the first empty match even if the pattern accepts it. To overcome this issue, `countMatches` now continues execution by advancing by a single character when an empty match occurs. Users who would like to retain the old behavior can enable setting `count_matches_stop_at_empty_match`. [#81676](https://github.com/ClickHouse/ClickHouse/pull/81676) ([Elmi Ahmadov](https://github.com/ahmadov)). ### Data type improvements {#data-type-improvements} @@ -33,8 +33,8 @@ doc_type: 'changelog' ### Performance and resource management {#performance-and-resource-management} * Previously, `BACKUP` queries, merges and mutations were not using server-wide throttlers for local (`max_local_read_bandwidth_for_server` and `max_local_write_bandwidth_for_server`) and remote (`max_remote_read_network_bandwidth_for_server` and `max_remote_write_network_bandwidth_for_server`) traffic, instead they were only throttled by dedicated server settings (`max_backup_bandwidth_for_server`, `max_mutations_bandwidth_for_server` and `max_merges_bandwidth_for_server`). Now, they use both types of throttlers simultaneously. [#81753](https://github.com/ClickHouse/ClickHouse/pull/81753) ([Sergei Trifonov](https://github.com/serxa)). -* Added a new setting [`cluster_function_process_archive_on_multiple_nodes`](/reference/settings/session-settings#cluster_function_process_archive_on_multiple_nodes) which increases performance of processing archives in cluster functions when set to true (by default). Should be set to `false` for compatibility and to avoid errors during upgrade to 25.7+ if using cluster functions with archives on earlier versions. [#82355](https://github.com/ClickHouse/ClickHouse/pull/82355) ([Kseniia Sumarokova](https://github.com/kssenii)). -* The previous [`concurrent_threads_scheduler`](/reference/settings/server-settings/settings#concurrent_threads_scheduler) default value was `round_robin`, which proved unfair in the presence of a high number of single-threaded queries (e.g., `INSERT`s). This change makes a safer alternative `fair_round_robin` scheduler, the default. [#84747](https://github.com/ClickHouse/ClickHouse/pull/84747) ([Sergei Trifonov](https://github.com/serxa)). +* Added a new setting [`cluster_function_process_archive_on_multiple_nodes`](/core/reference/settings/session-settings#cluster_function_process_archive_on_multiple_nodes) which increases performance of processing archives in cluster functions when set to true (by default). Should be set to `false` for compatibility and to avoid errors during upgrade to 25.7+ if using cluster functions with archives on earlier versions. [#82355](https://github.com/ClickHouse/ClickHouse/pull/82355) ([Kseniia Sumarokova](https://github.com/kssenii)). +* The previous [`concurrent_threads_scheduler`](/core/reference/settings/server-settings/settings#concurrent_threads_scheduler) default value was `round_robin`, which proved unfair in the presence of a high number of single-threaded queries (e.g., `INSERT`s). This change makes a safer alternative `fair_round_robin` scheduler, the default. [#84747](https://github.com/ClickHouse/ClickHouse/pull/84747) ([Sergei Trifonov](https://github.com/serxa)). * Lazy materialization is enabled only with the analyzer to avoid maintenance without the analyzer which can have some issues (for example, when using `indexHint()` in conditions). [#83791](https://github.com/ClickHouse/ClickHouse/pull/83791) ([Igor Nikonov](https://github.com/devcrafter)). ### Schema and SQL syntax {#schema-and-sql-syntax} @@ -52,26 +52,26 @@ doc_type: 'changelog' ### Data types {#data-types} -* Add new data types: [`Time`](/reference/data-types/time) `([H]HH:MM:SS)` and [`Time64`](/reference/data-types/time64) `([H]HH:MM:SS[.fractional])`, and some basic cast functions and functions to interact with other data types. Added settings for compatibility with a legacy function `ToTime`. [#81217](https://github.com/ClickHouse/ClickHouse/pull/81217) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). +* Add new data types: [`Time`](/core/reference/data-types/time) `([H]HH:MM:SS)` and [`Time64`](/core/reference/data-types/time64) `([H]HH:MM:SS[.fractional])`, and some basic cast functions and functions to interact with other data types. Added settings for compatibility with a legacy function `ToTime`. [#81217](https://github.com/ClickHouse/ClickHouse/pull/81217) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). ### Functions {#functions} -* Add [`NumericIndexedVector`](/reference/functions/regular-functions/numeric-indexed-vector-functions), a new vector data-structure backed by bit-sliced, roaring-bitmap compression, together with more than 20 functions for building, analysing and point-wise arithmetic. Can cut storage and speed up joins, filters and aggregations on sparse data. Implements [#70582](https://github.com/ClickHouse/ClickHouse/issues/70582) and ["Large-Scale Metric Computation in Online Controlled Experiment Platform" paper](https://arxiv.org/abs/2405.08411) by T. Xiong and Y. Wang from VLDB 2024. [#74193](https://github.com/ClickHouse/ClickHouse/pull/74193) ([FriendLey](https://github.com/FriendLey)). -* Add financial functions: [`financialInternalRateOfReturnExtended`](/reference/functions/regular-functions/financial-functions#financialInternalRateOfReturnExtended) (`XIRR`), [`financialInternalRateOfReturn`](/reference/functions/regular-functions/financial-functions#financialInternalRateOfReturn) (`IRR`), [`financialNetPresentValueExtended`](/reference/functions/regular-functions/financial-functions#financialNetPresentValueExtended) (`XNPV`), [`financialNetPresentValue`](/reference/functions/regular-functions/financial-functions#financialNetPresentValue) (`NPV`). [#81599](https://github.com/ClickHouse/ClickHouse/pull/81599) ([Joanna Hulboj](https://github.com/jh0x)). -* Add the geospatial functions [`polygonIntersectsCartesian`](/reference/functions/regular-functions/geo/polygon#polygonsintersectcartesian) and [`polygonIntersectsSpherical`](/reference/functions/regular-functions/geo/polygon#polygonsintersectspherical) to check if two polygons intersect. [#81882](https://github.com/ClickHouse/ClickHouse/pull/81882) ([Paul Lamb](https://github.com/plamb)). -* Support [`lag`](/reference/functions/window-functions/lag) and [`lead`](/reference/functions/window-functions/lead) window functions. Closes [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887). [#82108](https://github.com/ClickHouse/ClickHouse/pull/82108) ([Dmitry Novik](https://github.com/novikd)). -* Add functions [`colorSRGBToOkLCH`](/reference/functions/regular-functions/other-functions#colorSRGBToOKLCH) and [`colorOkLCHToSRGB`](/reference/functions/regular-functions/other-functions#colorOKLCHToSRGB) for converting colours between the sRGB and OkLCH colour spaces. [#83679](https://github.com/ClickHouse/ClickHouse/pull/83679) ([Fgrtue](https://github.com/Fgrtue)). -* You can now do case-insensitive JSON key lookups using [`JSONExtractCaseInsensitive`](/reference/functions/regular-functions/json-functions#JSONExtractCaseInsensitive) (and other variants of `JSONExtract`). [#83770](https://github.com/ClickHouse/ClickHouse/pull/83770) ([Alistair Evans](https://github.com/alistairjevans)). -* Add a new function [`nowInBlock64`](/reference/functions/regular-functions/date-time-functions#nowInBlock64). [#84178](https://github.com/ClickHouse/ClickHouse/pull/84178) ([Halersson Paris](https://github.com/halersson)). -* Add function [`dateTimeToUUIDv7`](/reference/functions/regular-functions/uuid-functions#dateTimeToUUIDv7) to convert a DateTime value to a UUIDv7. Example usage: `SELECT dateTimeToUUIDv7(toDateTime('2025-08-15 18:57:56'))` returns `0198af18-8320-7a7d-abd3-358db23b9d5c`. [#84319](https://github.com/ClickHouse/ClickHouse/pull/84319) ([samradovich](https://github.com/samradovich)). -* Add [`timeSeriesDerivToGrid`](/reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid) and [`timeSeriesPredictLinearToGrid`](/reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid) aggregate functions to re-sample data to a time grid defined by the specified start timestamp, end timestamp, and step; calculates PromQL-like `deriv` and `predict_linear`, respectively. [#84328](https://github.com/ClickHouse/ClickHouse/pull/84328) ([Stephen Chi](https://github.com/stephchi0)). -* Add [`timeSeriesRange`](/reference/functions/regular-functions/time-series-functions#timeSeriesRange) and [`timeSeriesFromGrid`](/reference/functions/regular-functions/time-series-functions#timeSeriesFromGrid) functions. [#85435](https://github.com/ClickHouse/ClickHouse/pull/85435) ([Vitaly Baranov](https://github.com/vitlibar)). +* Add [`NumericIndexedVector`](/core/reference/functions/regular-functions/numeric-indexed-vector-functions), a new vector data-structure backed by bit-sliced, roaring-bitmap compression, together with more than 20 functions for building, analysing and point-wise arithmetic. Can cut storage and speed up joins, filters and aggregations on sparse data. Implements [#70582](https://github.com/ClickHouse/ClickHouse/issues/70582) and ["Large-Scale Metric Computation in Online Controlled Experiment Platform" paper](https://arxiv.org/abs/2405.08411) by T. Xiong and Y. Wang from VLDB 2024. [#74193](https://github.com/ClickHouse/ClickHouse/pull/74193) ([FriendLey](https://github.com/FriendLey)). +* Add financial functions: [`financialInternalRateOfReturnExtended`](/core/reference/functions/regular-functions/financial-functions#financialInternalRateOfReturnExtended) (`XIRR`), [`financialInternalRateOfReturn`](/core/reference/functions/regular-functions/financial-functions#financialInternalRateOfReturn) (`IRR`), [`financialNetPresentValueExtended`](/core/reference/functions/regular-functions/financial-functions#financialNetPresentValueExtended) (`XNPV`), [`financialNetPresentValue`](/core/reference/functions/regular-functions/financial-functions#financialNetPresentValue) (`NPV`). [#81599](https://github.com/ClickHouse/ClickHouse/pull/81599) ([Joanna Hulboj](https://github.com/jh0x)). +* Add the geospatial functions [`polygonIntersectsCartesian`](/core/reference/functions/regular-functions/geo/polygon#polygonsintersectcartesian) and [`polygonIntersectsSpherical`](/core/reference/functions/regular-functions/geo/polygon#polygonsintersectspherical) to check if two polygons intersect. [#81882](https://github.com/ClickHouse/ClickHouse/pull/81882) ([Paul Lamb](https://github.com/plamb)). +* Support [`lag`](/core/reference/functions/window-functions/lag) and [`lead`](/core/reference/functions/window-functions/lead) window functions. Closes [#9887](https://github.com/ClickHouse/ClickHouse/issues/9887). [#82108](https://github.com/ClickHouse/ClickHouse/pull/82108) ([Dmitry Novik](https://github.com/novikd)). +* Add functions [`colorSRGBToOkLCH`](/core/reference/functions/regular-functions/other-functions#colorSRGBToOKLCH) and [`colorOkLCHToSRGB`](/core/reference/functions/regular-functions/other-functions#colorOKLCHToSRGB) for converting colours between the sRGB and OkLCH colour spaces. [#83679](https://github.com/ClickHouse/ClickHouse/pull/83679) ([Fgrtue](https://github.com/Fgrtue)). +* You can now do case-insensitive JSON key lookups using [`JSONExtractCaseInsensitive`](/core/reference/functions/regular-functions/json-functions#JSONExtractCaseInsensitive) (and other variants of `JSONExtract`). [#83770](https://github.com/ClickHouse/ClickHouse/pull/83770) ([Alistair Evans](https://github.com/alistairjevans)). +* Add a new function [`nowInBlock64`](/core/reference/functions/regular-functions/date-time-functions#nowInBlock64). [#84178](https://github.com/ClickHouse/ClickHouse/pull/84178) ([Halersson Paris](https://github.com/halersson)). +* Add function [`dateTimeToUUIDv7`](/core/reference/functions/regular-functions/uuid-functions#dateTimeToUUIDv7) to convert a DateTime value to a UUIDv7. Example usage: `SELECT dateTimeToUUIDv7(toDateTime('2025-08-15 18:57:56'))` returns `0198af18-8320-7a7d-abd3-358db23b9d5c`. [#84319](https://github.com/ClickHouse/ClickHouse/pull/84319) ([samradovich](https://github.com/samradovich)). +* Add [`timeSeriesDerivToGrid`](/core/reference/functions/aggregate-functions/reference/timeSeriesDerivToGrid) and [`timeSeriesPredictLinearToGrid`](/core/reference/functions/aggregate-functions/reference/timeSeriesPredictLinearToGrid) aggregate functions to re-sample data to a time grid defined by the specified start timestamp, end timestamp, and step; calculates PromQL-like `deriv` and `predict_linear`, respectively. [#84328](https://github.com/ClickHouse/ClickHouse/pull/84328) ([Stephen Chi](https://github.com/stephchi0)). +* Add [`timeSeriesRange`](/core/reference/functions/regular-functions/time-series-functions#timeSeriesRange) and [`timeSeriesFromGrid`](/core/reference/functions/regular-functions/time-series-functions#timeSeriesFromGrid) functions. [#85435](https://github.com/ClickHouse/ClickHouse/pull/85435) ([Vitaly Baranov](https://github.com/vitlibar)). ### System tables {#system-tables} -* Add a [`system.dead_letter_queue`](/reference/system-tables/dead_letter_queue) table to keep erroneous incoming messages from engines like Kafka. [#68873](https://github.com/ClickHouse/ClickHouse/pull/68873) ([Ilya Golshtein](https://github.com/ilejn)). -* Add [`system.zookeeper_connection_log`](/reference/system-tables/zookeeper_connection_log) system table to store historical information about ZooKeeper connections. [#79494](https://github.com/ClickHouse/ClickHouse/pull/79494) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Added a new system table [`system.codecs`](/reference/system-tables/codecs) to introspect the available codecs. (issue [#81525](https://github.com/ClickHouse/ClickHouse/issues/81525)). [#81600](https://github.com/ClickHouse/ClickHouse/pull/81600) ([Jimmy Aguilar Mena](https://github.com/Ergus)). +* Add a [`system.dead_letter_queue`](/core/reference/system-tables/dead_letter_queue) table to keep erroneous incoming messages from engines like Kafka. [#68873](https://github.com/ClickHouse/ClickHouse/pull/68873) ([Ilya Golshtein](https://github.com/ilejn)). +* Add [`system.zookeeper_connection_log`](/core/reference/system-tables/zookeeper_connection_log) system table to store historical information about ZooKeeper connections. [#79494](https://github.com/ClickHouse/ClickHouse/pull/79494) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Added a new system table [`system.codecs`](/core/reference/system-tables/codecs) to introspect the available codecs. (issue [#81525](https://github.com/ClickHouse/ClickHouse/issues/81525)). [#81600](https://github.com/ClickHouse/ClickHouse/pull/81600) ([Jimmy Aguilar Mena](https://github.com/Ergus)). * Introduction of `system.completions` table. Closes [#81889](https://github.com/ClickHouse/ClickHouse/issues/81889). [#83833](https://github.com/ClickHouse/ClickHouse/pull/83833) ([|2ustam](https://github.com/RuS2m)). ### Iceberg and DeltaLake {#iceberg-and-deltalake} @@ -99,7 +99,7 @@ doc_type: 'changelog' ### Protocol and client Support {#protocol-and-client-support} -* Implement support for [ArrowFlight RPC](https://arrow.apache.org/docs/format/Flight.html) protocol by adding the [`arrowflight`](/reference/engines/table-engines/integrations/arrowflight) table engine. [#74184](https://github.com/ClickHouse/ClickHouse/pull/74184) ([zakr600](https://github.com/zakr600)). +* Implement support for [ArrowFlight RPC](https://arrow.apache.org/docs/format/Flight.html) protocol by adding the [`arrowflight`](/core/reference/engines/table-engines/integrations/arrowflight) table engine. [#74184](https://github.com/ClickHouse/ClickHouse/pull/74184) ([zakr600](https://github.com/zakr600)). * Add PostgreSQL protocol `COPY` command support. [#74344](https://github.com/ClickHouse/ClickHouse/pull/74344) ([scanhex12](https://github.com/scanhex12)). * Support C# client for mysql protocol. This closes [#83992](https://github.com/ClickHouse/ClickHouse/issues/83992). [#84397](https://github.com/ClickHouse/ClickHouse/pull/84397) ([scanhex12](https://github.com/scanhex12)). * Force secure connection for `mysql_port` and `postgresql_port`. [#82962](https://github.com/ClickHouse/ClickHouse/pull/82962) ([Shaohua Wang](https://github.com/tiandiwonder)). @@ -108,17 +108,17 @@ doc_type: 'changelog' * Support `DESCRIBE SELECT` in addition to `DESCRIBE (SELECT ...)`. [#82947](https://github.com/ClickHouse/ClickHouse/pull/82947) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). * Support writing `USE DATABASE {name}`. [#81307](https://github.com/ClickHouse/ClickHouse/pull/81307) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). -* Reading from projections is implemented for parallel replicas. A new setting [`parallel_replicas_support_projection`](/reference/settings/session-settings#parallel_replicas_support_projection) has been added to control whether projection support is enabled. To simplify the implementation, support for projection is only enabled when `parallel_replicas_local_plan` is active. [#82807](https://github.com/ClickHouse/ClickHouse/pull/82807) ([zoomxi](https://github.com/zoomxi)). +* Reading from projections is implemented for parallel replicas. A new setting [`parallel_replicas_support_projection`](/core/reference/settings/session-settings#parallel_replicas_support_projection) has been added to control whether projection support is enabled. To simplify the implementation, support for projection is only enabled when `parallel_replicas_local_plan` is active. [#82807](https://github.com/ClickHouse/ClickHouse/pull/82807) ([zoomxi](https://github.com/zoomxi)). ### Formats {#formats} -* Add [`format_schema_source`](/reference/settings/formats#format_schema_source) setting which defines the source of `format_schema`. [#80874](https://github.com/ClickHouse/ClickHouse/pull/80874) ([Tuan Pham Anh](https://github.com/tuanpach)). +* Add [`format_schema_source`](/core/reference/settings/formats#format_schema_source) setting which defines the source of `format_schema`. [#80874](https://github.com/ClickHouse/ClickHouse/pull/80874) ([Tuan Pham Anh](https://github.com/tuanpach)). * Added `Hash` as a new output format. It calculates a single hash value for all columns and rows of the result. This is useful for calculating a "fingerprint" of the result, for example, in use cases where data transfer is a bottleneck. Example: `SELECT arrayJoin(['abc', 'def']), 42 FORMAT Hash` returns `e5f9e676db098fdb9530d2059d8c23ef`. [#84607](https://github.com/ClickHouse/ClickHouse/pull/84607) ([Robert Schulze](https://github.com/rschu1ze)). ### Server configuration and workload management {#server-configuration-and-workload-management} -* Server setting [`cpu_slot_preemption`](/reference/settings/server-settings/settings#cpu_slot_preemption) enables preemptive CPU scheduling for workloads and ensures max-min fair allocation of CPU time among workloads. New workload settings for CPU throttling are added: `max_cpus`, `max_cpu_share` and `max_burst_cpu_seconds`. [#80879](https://github.com/ClickHouse/ClickHouse/pull/80879) ([Sergei Trifonov](https://github.com/serxa)). -* The workload setting [`max_waiting_queries`](/reference/settings/server-settings/settings#max_waiting_queries) is now supported. It can be used to limit the size of the query queue. If the limit is reached, all subsequent queries will be terminated with the `SERVER_OVERLOADED` error. [#81250](https://github.com/ClickHouse/ClickHouse/pull/81250) ([Oleg Doronin](https://github.com/dorooleg)). +* Server setting [`cpu_slot_preemption`](/core/reference/settings/server-settings/settings#cpu_slot_preemption) enables preemptive CPU scheduling for workloads and ensures max-min fair allocation of CPU time among workloads. New workload settings for CPU throttling are added: `max_cpus`, `max_cpu_share` and `max_burst_cpu_seconds`. [#80879](https://github.com/ClickHouse/ClickHouse/pull/80879) ([Sergei Trifonov](https://github.com/serxa)). +* The workload setting [`max_waiting_queries`](/core/reference/settings/server-settings/settings#max_waiting_queries) is now supported. It can be used to limit the size of the query queue. If the limit is reached, all subsequent queries will be terminated with the `SERVER_OVERLOADED` error. [#81250](https://github.com/ClickHouse/ClickHouse/pull/81250) ([Oleg Doronin](https://github.com/dorooleg)). * Drop TCP connection after configured number of queries or time threshold. Resolves [#68000](https://github.com/ClickHouse/ClickHouse/issues/68000). [#81472](https://github.com/ClickHouse/ClickHouse/pull/81472) ([Kenny Sun](https://github.com/hwabis)). ### Cloud storage {#cloud-storage} @@ -154,7 +154,7 @@ doc_type: 'changelog' ### Query execution and aggregation {#query-execution-and-aggregation} * Trivial optimization for `-If` aggregate function combinator. [#78454](https://github.com/ClickHouse/ClickHouse/pull/78454) ([李扬](https://github.com/taiyang-li)). -* Added new logic (controlled by the setting [`enable_producing_buckets_out_of_order_in_aggregation`](/reference/settings/session-settings#enable_producing_buckets_out_of_order_in_aggregation), enabled by default) that allows sending some buckets out of order during memory-efficient aggregation. When some aggregation buckets take significantly longer to merge than others, it improves performance by allowing the initiator to merge buckets with higher bucket id-s in the meantime. The downside is potentially higher memory usage (shouldn't be significant). [#80179](https://github.com/ClickHouse/ClickHouse/pull/80179) ([Nikita Taranov](https://github.com/nickitat)). +* Added new logic (controlled by the setting [`enable_producing_buckets_out_of_order_in_aggregation`](/core/reference/settings/session-settings#enable_producing_buckets_out_of_order_in_aggregation), enabled by default) that allows sending some buckets out of order during memory-efficient aggregation. When some aggregation buckets take significantly longer to merge than others, it improves performance by allowing the initiator to merge buckets with higher bucket id-s in the meantime. The downside is potentially higher memory usage (shouldn't be significant). [#80179](https://github.com/ClickHouse/ClickHouse/pull/80179) ([Nikita Taranov](https://github.com/nickitat)). * Make the pipeline after the `TOTALS` step multithreaded. [#80331](https://github.com/ClickHouse/ClickHouse/pull/80331) ([UnamedRus](https://github.com/UnamedRus)). * When the aggregation query contains only a single `COUNT()` function on a `NOT NULL` column, the aggregation logic is fully inlined during hash table probing. This avoids allocating and maintaining any aggregation state, significantly reducing memory usage and CPU overhead. This partially addresses [#81982](https://github.com/ClickHouse/ClickHouse/issues/81982). [#82104](https://github.com/ClickHouse/ClickHouse/pull/82104) ([Amos Bird](https://github.com/amosbird)). * Calculate serialized key columnarly when group by multiple string or number columns. [#83884](https://github.com/ClickHouse/ClickHouse/pull/83884) ([李扬](https://github.com/taiyang-li)). @@ -162,7 +162,7 @@ doc_type: 'changelog' ### JOIN optimizations {#join-optimizations} -* Add new setting [`min_joined_block_size_rows`](/reference/settings/session-settings#min_joined_block_size_rows) (analogous to `min_joined_block_size_bytes`; defaults to 65409) to control the minimum block size (in rows) for JOIN input and output blocks (if the join algorithm supports it). Small blocks will be squashed. [#81886](https://github.com/ClickHouse/ClickHouse/pull/81886) ([Nikita Taranov](https://github.com/nickitat)). +* Add new setting [`min_joined_block_size_rows`](/core/reference/settings/session-settings#min_joined_block_size_rows) (analogous to `min_joined_block_size_bytes`; defaults to 65409) to control the minimum block size (in rows) for JOIN input and output blocks (if the join algorithm supports it). Small blocks will be squashed. [#81886](https://github.com/ClickHouse/ClickHouse/pull/81886) ([Nikita Taranov](https://github.com/nickitat)). * Performance of `HashJoin` optimised by removing the additional loop over hash maps in the typical case of only one key column, also `null_map` and `join_mask` checks are eliminated when they're always `true`/`false`. [#82308](https://github.com/ClickHouse/ClickHouse/pull/82308) ([Nikita Taranov](https://github.com/nickitat)). * The optimizations for `null_map` and `JoinMask` from [#82308](https://github.com/ClickHouse/ClickHouse/issues/82308) were applied to the case of JOIN with multiple disjuncts. Also, the `KnownRowsHolder` data structure was optimized. [#83041](https://github.com/ClickHouse/ClickHouse/pull/83041) ([Nikita Taranov](https://github.com/nickitat)). * Plain `std::vector` is used for join flags to avoid calculating a hash on each access to flags. [#83043](https://github.com/ClickHouse/ClickHouse/pull/83043) ([Nikita Taranov](https://github.com/nickitat)). @@ -195,7 +195,7 @@ doc_type: 'changelog' ### Azure Blob Storage improvements {#azure-blob-storage-improvements} -* [`azureBlobStorage`](/reference/engines/table-engines/integrations/azureBlobStorage) table engine now cachees and reuses managed identity authentication tokens when possible to avoid throttling. [#79860](https://github.com/ClickHouse/ClickHouse/pull/79860) ([Nick Blakely](https://github.com/niblak)). +* [`azureBlobStorage`](/core/reference/engines/table-engines/integrations/azureBlobStorage) table engine now cachees and reuses managed identity authentication tokens when possible to avoid throttling. [#79860](https://github.com/ClickHouse/ClickHouse/pull/79860) ([Nick Blakely](https://github.com/niblak)). * Replace curl HTTP client with poco HTTP client for azure blob storage. Introduced multiple settings for these clients which mirror settings from S3. Introduced aggressive connect timeouts for both Azure and S3. Improved introspection into Azure profile events and metrics. New client is enabled by default, provide much better latencies for cold queries on top of Azure Blob Storage. Old `Curl` client can be returned back by setting `azure_sdk_use_native_client=false`. [#83294](https://github.com/ClickHouse/ClickHouse/pull/83294) ([alesapin](https://github.com/alesapin)). ### Storage engine improvements {#storage-engine-improvements} @@ -264,8 +264,8 @@ doc_type: 'changelog' * Allow backups for PostgreSQL, MySQL & DataLake databases. A backup of such a database would only save the definition and not the data inside of it. [#79982](https://github.com/ClickHouse/ClickHouse/pull/79982) ([Nikolay Degterinsky](https://github.com/evillique)). * Set all log messages for writing backup files to TRACE. [#82907](https://github.com/ClickHouse/ClickHouse/pull/82907) ([Hans Krutzer](https://github.com/hkrutzer)). -* Introduce [`backup_restore_s3_retry_initial_backoff_ms`](/reference/settings/session-settings#backup_restore_s3_retry_initial_backoff_ms), [`backup_restore_s3_retry_max_backoff_ms`](/reference/settings/session-settings#backup_restore_s3_retry_max_backoff_ms), [`backup_restore_s3_retry_jitter_factor`](/reference/settings/session-settings#backup_restore_s3_retry_jitter_factor) to configure the S3 retry backoff strategy used during backup and restore operations. [#84421](https://github.com/ClickHouse/ClickHouse/pull/84421) ([Julia Kartseva](https://github.com/jkartseva)). -* Introduce a new [`backup_slow_all_threads_after_retryable_s3_error`](/reference/settings/session-settings#backup_slow_all_threads_after_retryable_s3_error) setting to reduce pressure on S3 during retry storms caused by errors such as `SlowDown`, by slowing down all threads once a single retryable error is observed. [#84854](https://github.com/ClickHouse/ClickHouse/pull/84854) ([Julia Kartseva](https://github.com/jkartseva)). +* Introduce [`backup_restore_s3_retry_initial_backoff_ms`](/core/reference/settings/session-settings#backup_restore_s3_retry_initial_backoff_ms), [`backup_restore_s3_retry_max_backoff_ms`](/core/reference/settings/session-settings#backup_restore_s3_retry_max_backoff_ms), [`backup_restore_s3_retry_jitter_factor`](/core/reference/settings/session-settings#backup_restore_s3_retry_jitter_factor) to configure the S3 retry backoff strategy used during backup and restore operations. [#84421](https://github.com/ClickHouse/ClickHouse/pull/84421) ([Julia Kartseva](https://github.com/jkartseva)). +* Introduce a new [`backup_slow_all_threads_after_retryable_s3_error`](/core/reference/settings/session-settings#backup_slow_all_threads_after_retryable_s3_error) setting to reduce pressure on S3 during retry storms caused by errors such as `SlowDown`, by slowing down all threads once a single retryable error is observed. [#84854](https://github.com/ClickHouse/ClickHouse/pull/84854) ([Julia Kartseva](https://github.com/jkartseva)). ### Data integrity and validation {#data-integrity-and-validation} @@ -282,7 +282,7 @@ doc_type: 'changelog' * Support iceberg writes to read from pyiceberg. [#84466](https://github.com/ClickHouse/ClickHouse/pull/84466) ([scanhex12](https://github.com/scanhex12)). * Adds snapshot version to data lake table engines. [#84659](https://github.com/ClickHouse/ClickHouse/pull/84659) ([Pete Hampton](https://github.com/pjhampton)). * Support writing of a version-hint file with Iceberg. This closes [#85097](https://github.com/ClickHouse/ClickHouse/issues/85097). [#85130](https://github.com/ClickHouse/ClickHouse/pull/85130) ([scanhex12](https://github.com/scanhex12)). -* Support compressed `.metadata.json` file via [`iceberg_metadata_compression_method`](/reference/settings/session-settings#iceberg_metadata_compression_method) setting. It supports all clickhouse compression methods. This closes [#84895](https://github.com/ClickHouse/ClickHouse/issues/84895). [#85196](https://github.com/ClickHouse/ClickHouse/pull/85196) ([scanhex12](https://github.com/scanhex12)). +* Support compressed `.metadata.json` file via [`iceberg_metadata_compression_method`](/core/reference/settings/session-settings#iceberg_metadata_compression_method) setting. It supports all clickhouse compression methods. This closes [#84895](https://github.com/ClickHouse/ClickHouse/issues/84895). [#85196](https://github.com/ClickHouse/ClickHouse/pull/85196) ([scanhex12](https://github.com/scanhex12)). * Optimized memory usage for Iceberg positional delete files. Instead of loading all delete file data into memory, only the current row-group from Parquet delete files is kept in RAM. This significantly reduces memory consumption when working with large positional delete files. [#85329](https://github.com/ClickHouse/ClickHouse/pull/85329) ([scanhex12](https://github.com/scanhex12)). * Allow asynchronously iterating objects from Iceberg table without storing objects for each data file explicitly. [#85369](https://github.com/ClickHouse/ClickHouse/pull/85369) ([Daniil Ivanik](https://github.com/divanik)). * Support Iceberg equality deletes. [#85843](https://github.com/ClickHouse/ClickHouse/pull/85843) ([Han Fei](https://github.com/hanfei1991)). @@ -294,8 +294,8 @@ doc_type: 'changelog' * Fix reading partitioned data in DeltaLakeCluster table function. In this PR cluster functions protocol version is increased, allowing to send extra info from initiator to replicas. This extra info contains delta-kernel transform expression, which is needed to parse partition columns (and some other staff in the future, like generated columns, etc). [#82132](https://github.com/ClickHouse/ClickHouse/pull/82132) ([Kseniia Sumarokova](https://github.com/kssenii)). * Now database Datalake throw more convenient exception. Fixes [#81211](https://github.com/ClickHouse/ClickHouse/issues/81211). [#82304](https://github.com/ClickHouse/ClickHouse/pull/82304) ([alesapin](https://github.com/alesapin)). * Implement internal `delta-kernel-rs` filtering (statistics and partition pruning) in storage `DeltaLake`. [#84006](https://github.com/ClickHouse/ClickHouse/pull/84006) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Add a setting [`delta_lake_enable_expression_visitor_logging`](/reference/settings/session-settings#delta_lake_enable_expression_visitor_logging) to turn off expression visitor logs as they can be too verbose even for test log level when debugging something. [#84315](https://github.com/ClickHouse/ClickHouse/pull/84315) ([Kseniia Sumarokova](https://github.com/kssenii)). -* Add setting [`delta_lake_snapshot_version`](/reference/settings/session-settings#delta_lake_snapshot_version) to allow reading specific snapshot version in table engine `DeltaLake`. [#85295](https://github.com/ClickHouse/ClickHouse/pull/85295) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add a setting [`delta_lake_enable_expression_visitor_logging`](/core/reference/settings/session-settings#delta_lake_enable_expression_visitor_logging) to turn off expression visitor logs as they can be too verbose even for test log level when debugging something. [#84315](https://github.com/ClickHouse/ClickHouse/pull/84315) ([Kseniia Sumarokova](https://github.com/kssenii)). +* Add setting [`delta_lake_snapshot_version`](/core/reference/settings/session-settings#delta_lake_snapshot_version) to allow reading specific snapshot version in table engine `DeltaLake`. [#85295](https://github.com/ClickHouse/ClickHouse/pull/85295) ([Kseniia Sumarokova](https://github.com/kssenii)). ### Data lake integration {#data-lake-integration} @@ -327,7 +327,7 @@ doc_type: 'changelog' ### Kafka integration {#kafka-integration} * Count consumed messages manually to avoid depending on previous committed offset in StorageKafka2. [#81662](https://github.com/ClickHouse/ClickHouse/pull/81662) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). -* Integrate `StorageKafka2` to [`system.kafka_consumers`](/reference/system-tables/kafka_consumers). [#82652](https://github.com/ClickHouse/ClickHouse/pull/82652) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). +* Integrate `StorageKafka2` to [`system.kafka_consumers`](/core/reference/system-tables/kafka_consumers). [#82652](https://github.com/ClickHouse/ClickHouse/pull/82652) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)). ### ClickHouse Keeper improvements {#clickhouse-keeper-improvements} @@ -371,7 +371,7 @@ doc_type: 'changelog' * Tune TCP servers queue (64 by default) based on listen_backlog (4096 by default). [#82045](https://github.com/ClickHouse/ClickHouse/pull/82045) ([Azat Khuzhin](https://github.com/azat)). * Add ability to reload `max_local_read_bandwidth_for_server` and `max_local_write_bandwidth_for_server` on fly without restart server. [#82083](https://github.com/ClickHouse/ClickHouse/pull/82083) ([Kai Zhu](https://github.com/nauu)). * Introduce setting `enable_vector_similarity_index` which must be enabled to use the vector similarity index. The existing setting `allow_experimental_vector_similarity_index` is now obsolete. It still works in case someone needs it. [#83459](https://github.com/ClickHouse/ClickHouse/pull/83459) ([Robert Schulze](https://github.com/rschu1ze)). -* Add [`max_joined_block_size_bytes`](/reference/settings/session-settings#max_joined_block_size_bytes) in addition to `max_joined_block_size_rows` to limit the memory usage of JOINs with heavy columns. [#83869](https://github.com/ClickHouse/ClickHouse/pull/83869) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). +* Add [`max_joined_block_size_bytes`](/core/reference/settings/session-settings#max_joined_block_size_bytes) in addition to `max_joined_block_size_rows` to limit the memory usage of JOINs with heavy columns. [#83869](https://github.com/ClickHouse/ClickHouse/pull/83869) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * Fix compatibility for cluster_function_process_archive_on_multiple_nodes. [#83968](https://github.com/ClickHouse/ClickHouse/pull/83968) ([Kseniia Sumarokova](https://github.com/kssenii)). * Enable correlated subqueries support by default. [#85107](https://github.com/ClickHouse/ClickHouse/pull/85107) ([Dmitry Novik](https://github.com/novikd)). * Add `database_replicated` settings defining the default values of DatabaseReplicatedSettings. If the setting is not present in the Replicated DB create query, the value from this setting is used. [#85127](https://github.com/ClickHouse/ClickHouse/pull/85127) ([Tuan Pham Anh](https://github.com/tuanpach)). @@ -391,7 +391,7 @@ doc_type: 'changelog' * Add process resource metrics (such as `UserTimeMicroseconds`, `SystemTimeMicroseconds`, `RealTimeMicroseconds`) to part_log profile events for `MergeParts` entries. [#83460](https://github.com/ClickHouse/ClickHouse/pull/83460) ([Vladimir Cherkasov](https://github.com/vdimir)). * Cgroup-level and system-wide metrics are reported now altogether. Cgroup-level metrics have names `CGroup` and OS-level metrics (collected from procfs) have names `OS`. [#84317](https://github.com/ClickHouse/ClickHouse/pull/84317) ([Nikita Taranov](https://github.com/nickitat)). * Add dimensional metrics to monitor the size of concurrent bounded queues, labeled by queue type and instance ID for better observability. [#84675](https://github.com/ClickHouse/ClickHouse/pull/84675) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). -* The [`system.columns`](/reference/system-tables/columns) table now provides `column` as an alias for the existing `name` column. [#84695](https://github.com/ClickHouse/ClickHouse/pull/84695) ([Yunchi Pang](https://github.com/yunchipang)). +* The [`system.columns`](/core/reference/system-tables/columns) table now provides `column` as an alias for the existing `name` column. [#84695](https://github.com/ClickHouse/ClickHouse/pull/84695) ([Yunchi Pang](https://github.com/yunchipang)). * Add format string column to `system.errors`. This column is needed to group by the same error type in alerting rules. [#84776](https://github.com/ClickHouse/ClickHouse/pull/84776) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). * Make limits tunable for Async Log and add introspection. [#85105](https://github.com/ClickHouse/ClickHouse/pull/85105) ([Raúl Marín](https://github.com/Algunenano)). * Ignore `UNKNOWN_DATABASE` while obtaining table columns sizes for system.columns. [#85632](https://github.com/ClickHouse/ClickHouse/pull/85632) ([Azat Khuzhin](https://github.com/azat)). @@ -441,7 +441,7 @@ doc_type: 'changelog' * Add MergeTree setting `search_orphaned_parts_drives` to limit scope to look for parts e.g. by disks with local metadata. [#84710](https://github.com/ClickHouse/ClickHouse/pull/84710) ([Ilya Golshtein](https://github.com/ilejn)). * Add missing support of `read_in_order_use_virtual_row` for `WHERE`. It allows to skip reading more parts for queries with filters that were not fully pushed to `PREWHERE`. [#84835](https://github.com/ClickHouse/ClickHouse/pull/84835) ([Nikolai Kochetov](https://github.com/KochetovNicolai)). * Fix usage of "compact" Variant discriminators serialization in MergeTree. Perviously it wasn't used in some cases when it could be used. [#84141](https://github.com/ClickHouse/ClickHouse/pull/84141) ([Pavel Kruglov](https://github.com/Avogar)). -* Add limit (table setting [`max_uncompressed_bytes_in_patches`](/reference/settings/merge-tree-settings#max_uncompressed_bytes_in_patches)) for total uncompressed bytes in patch parts. It prevents significant slowdowns of `SELECT` queries after lightweight updates and prevents possible misuse of lightweight updates. [#85641](https://github.com/ClickHouse/ClickHouse/pull/85641) ([Anton Popov](https://github.com/CurtizJ)). +* Add limit (table setting [`max_uncompressed_bytes_in_patches`](/core/reference/settings/merge-tree-settings#max_uncompressed_bytes_in_patches)) for total uncompressed bytes in patch parts. It prevents significant slowdowns of `SELECT` queries after lightweight updates and prevents possible misuse of lightweight updates. [#85641](https://github.com/ClickHouse/ClickHouse/pull/85641) ([Anton Popov](https://github.com/CurtizJ)). ### Cache and memory management {#cache-and-memory-management} diff --git a/resources/changelogs/navigation.json b/resources/changelogs/navigation.json new file mode 100644 index 00000000..753917d5 --- /dev/null +++ b/resources/changelogs/navigation.json @@ -0,0 +1,59 @@ +{ + "item": "Changelogs", + "icon": "/images/icons/icon-changelogs.svg", + "root": "resources/changelogs/cloud/changelog", + "groups": [ + { + "group": "Cloud", + "root": "resources/changelogs/cloud/index", + "pages": [ + "resources/changelogs/cloud/changelog", + "resources/changelogs/cloud/release-status", + { + "group": "Release notes", + "root": "resources/changelogs/cloud/release-notes-index", + "pages": [ + "resources/changelogs/cloud/release-notes/26_02", + "resources/changelogs/cloud/release-notes/25_12", + "resources/changelogs/cloud/release-notes/25_10", + "resources/changelogs/cloud/release-notes/25_08", + "resources/changelogs/cloud/release-notes/25_06", + "resources/changelogs/cloud/release-notes/25_04", + "resources/changelogs/cloud/release-notes/24_12", + "resources/changelogs/cloud/release-notes/24_10", + "resources/changelogs/cloud/release-notes/24_08", + "resources/changelogs/cloud/release-notes/24_06", + "resources/changelogs/cloud/release-notes/24_05", + "resources/changelogs/cloud/release-notes/24_02" + ] + }, + "resources/changelogs/cloud/2026", + { + "group": "Archive", + "pages": [ + "resources/changelogs/cloud/archive/2025", + "resources/changelogs/cloud/archive/2024", + "resources/changelogs/cloud/archive/2023", + "resources/changelogs/cloud/archive/2022" + ] + } + ] + }, + { + "group": "Self-managed", + "pages": [ + "resources/changelogs/oss/2026", + "resources/changelogs/oss/2025", + "resources/changelogs/oss/2024", + "resources/changelogs/oss/2023", + "resources/changelogs/oss/2022", + "resources/changelogs/oss/2021", + "resources/changelogs/oss/2020", + "resources/changelogs/oss/2019", + "resources/changelogs/oss/2018", + "resources/changelogs/oss/2017", + "resources/changelogs/security-changelog" + ] + } + ] +} diff --git a/resources/changelogs/oss/2017.mdx b/resources/changelogs/oss/2017.mdx index 26191d46..589c661c 100644 --- a/resources/changelogs/oss/2017.mdx +++ b/resources/changelogs/oss/2017.mdx @@ -28,7 +28,7 @@ This release contains bug fixes for the previous release 1.1.54310: #### New Features: {#new-features} - Custom partitioning key for the MergeTree family of table engines. -- [Kafka](/reference/engines/table-engines/integrations/kafka) table engine. +- [Kafka](/core/reference/engines/table-engines/integrations/kafka) table engine. - Added support for loading [CatBoost](https://yandex.com/dev/catboost/) models and applying them to data stored in ClickHouse. - Added support for time zones with non-integer offsets from UTC. - Added support for arithmetic operations with time intervals. diff --git a/resources/changelogs/oss/2021.mdx b/resources/changelogs/oss/2021.mdx index 4927a358..4e3debf8 100644 --- a/resources/changelogs/oss/2021.mdx +++ b/resources/changelogs/oss/2021.mdx @@ -1904,7 +1904,7 @@ keywords: ['ClickHouse 2021', 'changelog 2021', 'release notes', 'version histor * Export current max ddl entry executed by DDLWorker via server metric. It's useful to check if DDLWorker hangs somewhere. [#17464](https://github.com/ClickHouse/ClickHouse/pull/17464) ([Amos Bird](https://github.com/amosbird)). * Export asynchronous metrics of all servers current threads. It's useful to track down issues like [this](https://github.com/ClickHouse-Extras/poco/pull/28). [#17463](https://github.com/ClickHouse/ClickHouse/pull/17463) ([Amos Bird](https://github.com/amosbird)). * Include dynamic columns like MATERIALIZED / ALIAS for wildcard query when settings `asterisk_include_materialized_columns` and `asterisk_include_alias_columns` are turned on. [#17462](https://github.com/ClickHouse/ClickHouse/pull/17462) ([Ken Chen](https://github.com/chenziliang)). -* Allow specifying [TTL](/reference/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl) to remove old entries from [system log tables](/reference/system-tables), using the `` attribute in `config.xml`. [#17438](https://github.com/ClickHouse/ClickHouse/pull/17438) ([Du Chuan](https://github.com/spongedu)). +* Allow specifying [TTL](/core/reference/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl) to remove old entries from [system log tables](/core/reference/system-tables), using the `` attribute in `config.xml`. [#17438](https://github.com/ClickHouse/ClickHouse/pull/17438) ([Du Chuan](https://github.com/spongedu)). * Now queries coming to the server via MySQL and PostgreSQL protocols have distinctive interface types (which can be seen in the `interface` column of the table`system.query_log`): `4` for MySQL, and `5` for PostgreSQL, instead of formerly used `1` which is now used for the native protocol only. [#17437](https://github.com/ClickHouse/ClickHouse/pull/17437) ([Vitaly Baranov](https://github.com/vitlibar)). * Fix parsing of SETTINGS clause of the `INSERT ... SELECT ... SETTINGS` query. [#17414](https://github.com/ClickHouse/ClickHouse/pull/17414) ([Azat Khuzhin](https://github.com/azat)). * Correctly account memory in RadixSort. [#17412](https://github.com/ClickHouse/ClickHouse/pull/17412) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). diff --git a/resources/changelogs/oss/2023.mdx b/resources/changelogs/oss/2023.mdx index c3edd543..66bbff87 100644 --- a/resources/changelogs/oss/2023.mdx +++ b/resources/changelogs/oss/2023.mdx @@ -573,7 +573,7 @@ doc_type: 'changelog' #### New Feature {#new-feature-3} * Improve schema inference from JSON formats: 1) Now it's possible to infer named Tuples from JSON objects without experimental JSON type under a setting `input_format_json_try_infer_named_tuples_from_objects` in JSON formats. Previously without experimental type JSON we could only infer JSON objects as Strings or Maps, now we can infer named Tuple. Resulting Tuple type will conain all keys of objects that were read in data sample during schema inference. It can be useful for reading structured JSON data without sparse objects. The setting is enabled by default. 2) Allow parsing JSON array into a column with type String under setting `input_format_json_read_arrays_as_strings`. It can help reading arrays with values with different types. 3) Allow to use type String for JSON keys with unkown types (`null`/`[]`/`{}`) in sample data under setting `input_format_json_infer_incomplete_types_as_strings`. Now in JSON formats we can read any value into String column and we can avoid getting error `Cannot determine type for column 'column_name' by first 25000 rows of data, most likely this column contains only Nulls or empty Arrays/Maps` during schema inference by using type String for unknown types, so the data will be read successfully. [#54427](https://github.com/ClickHouse/ClickHouse/pull/54427) ([Kruglov Pavel](https://github.com/Avogar)). -* Added IO scheduling support for remote disks. Storage configuration for disk types `s3`, `s3_plain`, `hdfs` and `azure_blob_storage` can now contain `read_resource` and `write_resource` elements holding resource names. Scheduling policies for these resources can be configured in a separate server configuration section `resources`. Queries can be marked using setting `workload` and classified using server configuration section `workload_classifiers` to achieve diverse resource scheduling goals. More details in [the docs](/concepts/features/configuration/server-config/workload-scheduling). [#47009](https://github.com/ClickHouse/ClickHouse/pull/47009) ([Sergei Trifonov](https://github.com/serxa)). Added "bandwidth_limit" IO scheduling node type. It allows you to specify `max_speed` and `max_burst` constraints on traffic passing though this node. [#54618](https://github.com/ClickHouse/ClickHouse/pull/54618) ([Sergei Trifonov](https://github.com/serxa)). +* Added IO scheduling support for remote disks. Storage configuration for disk types `s3`, `s3_plain`, `hdfs` and `azure_blob_storage` can now contain `read_resource` and `write_resource` elements holding resource names. Scheduling policies for these resources can be configured in a separate server configuration section `resources`. Queries can be marked using setting `workload` and classified using server configuration section `workload_classifiers` to achieve diverse resource scheduling goals. More details in [the docs](/core/concepts/features/configuration/server-config/workload-scheduling). [#47009](https://github.com/ClickHouse/ClickHouse/pull/47009) ([Sergei Trifonov](https://github.com/serxa)). Added "bandwidth_limit" IO scheduling node type. It allows you to specify `max_speed` and `max_burst` constraints on traffic passing though this node. [#54618](https://github.com/ClickHouse/ClickHouse/pull/54618) ([Sergei Trifonov](https://github.com/serxa)). * Added new type of authentication based on SSH keys. It works only for the native TCP protocol. [#41109](https://github.com/ClickHouse/ClickHouse/pull/41109) ([George Gamezardashvili](https://github.com/InfJoker)). * Added a new column `_block_number` for MergeTree tables. [#44532](https://github.com/ClickHouse/ClickHouse/issues/44532). [#47532](https://github.com/ClickHouse/ClickHouse/pull/47532) ([SmitaRKulkarni](https://github.com/SmitaRKulkarni)). * Add `IF EMPTY` clause for `DROP TABLE` queries. [#48915](https://github.com/ClickHouse/ClickHouse/pull/48915) ([Pavel Novitskiy](https://github.com/pnovitskiy)). @@ -1945,7 +1945,7 @@ doc_type: 'changelog' * Functions "multi[Fuzzy]Match(Any|AnyIndex|AllIndices}" now reject regexes which will likely evaluate very slowly in vectorscan. [#46167](https://github.com/ClickHouse/ClickHouse/pull/46167) ([Robert Schulze](https://github.com/rschu1ze)). * When `insert_null_as_default` is enabled and column doesn't have defined default value, the default of column type will be used. Also this PR fixes using default values on nulls in case of LowCardinality columns. [#46171](https://github.com/ClickHouse/ClickHouse/pull/46171) ([Kruglov Pavel](https://github.com/Avogar)). * Prefer explicitly defined access keys for S3 clients. If `use_environment_credentials` is set to `true`, and the user has provided the access key through query or config, they will be used instead of the ones from the environment variable. [#46191](https://github.com/ClickHouse/ClickHouse/pull/46191) ([Antonio Andelic](https://github.com/antonio2368)). -* Add an alias "DATE_FORMAT()" for function "formatDateTime()" to improve compatibility with MySQL's SQL dialect, extend function `formatDateTime` with substitutions "a", "b", "c", "h", "i", "k", "l" "r", "s", "W". ### Documentation entry for user-facing changes User-readable short description: `DATE_FORMAT` is an alias of `formatDateTime`. Formats a Time according to the given Format string. Format is a constant expression, so you cannot have multiple formats for a single result column. (Provide link to [formatDateTime](/reference/functions/regular-functions/date-time-functions#formatDateTime)). [#46302](https://github.com/ClickHouse/ClickHouse/pull/46302) ([Jake Bamrah](https://github.com/JakeBamrah)). +* Add an alias "DATE_FORMAT()" for function "formatDateTime()" to improve compatibility with MySQL's SQL dialect, extend function `formatDateTime` with substitutions "a", "b", "c", "h", "i", "k", "l" "r", "s", "W". ### Documentation entry for user-facing changes User-readable short description: `DATE_FORMAT` is an alias of `formatDateTime`. Formats a Time according to the given Format string. Format is a constant expression, so you cannot have multiple formats for a single result column. (Provide link to [formatDateTime](/core/reference/functions/regular-functions/date-time-functions#formatDateTime)). [#46302](https://github.com/ClickHouse/ClickHouse/pull/46302) ([Jake Bamrah](https://github.com/JakeBamrah)). * Add `ProfileEvents` and `CurrentMetrics` about the callback tasks for parallel replicas (`s3Cluster` and `MergeTree` tables). [#46313](https://github.com/ClickHouse/ClickHouse/pull/46313) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * Add support for `DELETE` and `UPDATE` for tables using `KeeperMap` storage engine. [#46330](https://github.com/ClickHouse/ClickHouse/pull/46330) ([Antonio Andelic](https://github.com/antonio2368)). * Allow writing RENAME queries with query parameters. Resolves [#45778](https://github.com/ClickHouse/ClickHouse/issues/45778). [#46407](https://github.com/ClickHouse/ClickHouse/pull/46407) ([Nikolay Degterinsky](https://github.com/evillique)). diff --git a/resources/changelogs/oss/2024.mdx b/resources/changelogs/oss/2024.mdx index dd4a307f..b0797a90 100644 --- a/resources/changelogs/oss/2024.mdx +++ b/resources/changelogs/oss/2024.mdx @@ -1840,7 +1840,7 @@ doc_type: 'changelog' * Lower memory consumption in backups to S3. [#58962](https://github.com/ClickHouse/ClickHouse/pull/58962) ([Vitaly Baranov](https://github.com/vitlibar)). #### Improvement {#improvement-11} -* Added comments (brief descriptions) to all columns of system tables. There are several reasons for this: - We use system tables a lot, and sometimes it could be very difficult for developer to understand the purpose and the meaning of a particular column. - We change (add new ones or modify existing) system tables a lot and the documentation for them is always outdated. For example take a look at the documentation page for [`system.parts`](/reference/system-tables/parts). It misses a lot of columns - We would like to eventually generate documentation directly from ClickHouse. [#58356](https://github.com/ClickHouse/ClickHouse/pull/58356) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). +* Added comments (brief descriptions) to all columns of system tables. There are several reasons for this: - We use system tables a lot, and sometimes it could be very difficult for developer to understand the purpose and the meaning of a particular column. - We change (add new ones or modify existing) system tables a lot and the documentation for them is always outdated. For example take a look at the documentation page for [`system.parts`](/core/reference/system-tables/parts). It misses a lot of columns - We would like to eventually generate documentation directly from ClickHouse. [#58356](https://github.com/ClickHouse/ClickHouse/pull/58356) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)). * Allow queries without aliases for subqueries for `PASTE JOIN`. [#58654](https://github.com/ClickHouse/ClickHouse/pull/58654) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). * Enable `MySQL`/`MariaDB` integration on macOS. This closes [#21191](https://github.com/ClickHouse/ClickHouse/issues/21191). [#46316](https://github.com/ClickHouse/ClickHouse/pull/46316) ([Alexey Milovidov](https://github.com/alexey-milovidov)) ([Robert Schulze](https://github.com/rschu1ze)). * Disable `max_rows_in_set_to_optimize_join` by default. [#56396](https://github.com/ClickHouse/ClickHouse/pull/56396) ([vdimir](https://github.com/vdimir)). diff --git a/resources/changelogs/oss/2025.mdx b/resources/changelogs/oss/2025.mdx index f10a1113..f5aad34e 100644 --- a/resources/changelogs/oss/2025.mdx +++ b/resources/changelogs/oss/2025.mdx @@ -259,7 +259,7 @@ doc_type: 'changelog' * Fix logical error caused by asterisks argument in `remote` function. Closes [#90568](https://github.com/ClickHouse/ClickHouse/issues/90568). [#91524](https://github.com/ClickHouse/ClickHouse/pull/91524) ([Nihal Z. Miaji](https://github.com/nihalzp)). * Fixes an overflow while reading from ORC format for Date and DateTime64 types. Closes [#70976](https://github.com/ClickHouse/ClickHouse/issues/70976). [#91572](https://github.com/ClickHouse/ClickHouse/pull/91572) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). * Disallow ALTERs for Object Storage table engines. For example, ALTER ADD PROJECTION could have led to an inability to restart the server, since Object Storage engines do not support projections. [#91573](https://github.com/ClickHouse/ClickHouse/pull/91573) ([Nikolay Degterinsky](https://github.com/evillique)). -* Fixed [`L2DistanceTransposed`](/reference/functions/regular-functions/distance-functions#L2DistanceTransposed) returning incorrect results when using non-constant reference vectors (e.g., from a table). [#91517](https://github.com/ClickHouse/ClickHouse/issues/91517). [#91593](https://github.com/ClickHouse/ClickHouse/pull/91593) ([Raufs Dunamalijevs](https://github.com/rienath)). +* Fixed [`L2DistanceTransposed`](/core/reference/functions/regular-functions/distance-functions#L2DistanceTransposed) returning incorrect results when using non-constant reference vectors (e.g., from a table). [#91517](https://github.com/ClickHouse/ClickHouse/issues/91517). [#91593](https://github.com/ClickHouse/ClickHouse/pull/91593) ([Raufs Dunamalijevs](https://github.com/rienath)). * Fixes a bug for JOINs on FALSE conditions returning `LOGICAL_ERROR` during a dispatch stage. Closes [#91173](https://github.com/ClickHouse/ClickHouse/issues/91173). [#91598](https://github.com/ClickHouse/ClickHouse/pull/91598) ([Yarik Briukhovetskyi](https://github.com/yariks5s)). * Fix increased memory usage in join with "additional filter", close [#91011](https://github.com/ClickHouse/ClickHouse/issues/91011). [#91664](https://github.com/ClickHouse/ClickHouse/pull/91664) ([Vladimir Cherkasov](https://github.com/vdimir)). * Fixes JOIN queries with view and enabled parallel replicas. [#91813](https://github.com/ClickHouse/ClickHouse/pull/91813) ([Igor Nikonov](https://github.com/devcrafter)). @@ -1548,7 +1548,7 @@ doc_type: 'changelog' * Support `disk` setting for `Atomic` and `Ordinary` database engines, specifying the disk to store table metadata files. [#80546](https://github.com/ClickHouse/ClickHouse/pull/80546) ([Tuan Pham Anh](https://github.com/tuanpach)). This allows attaching databases from external sources. * A new type of MergeTree, `CoalescingMergeTree` - the engine takes the first non-Null value during background merges. This closes [#78869](https://github.com/ClickHouse/ClickHouse/issues/78869). [#79344](https://github.com/ClickHouse/ClickHouse/pull/79344) ([scanhex12](https://github.com/scanhex12)). * Support functions to read WKB ("Well-Known Binary" is a format for binary encoding of various geometry types, used in GIS applications). See [#43941](https://github.com/ClickHouse/ClickHouse/issues/43941). [#80139](https://github.com/ClickHouse/ClickHouse/pull/80139) ([scanhex12](https://github.com/scanhex12)). -* Added query slot scheduling for workloads, see [workload scheduling](/concepts/features/configuration/server-config/workload-scheduling#query_scheduling) for details. [#78415](https://github.com/ClickHouse/ClickHouse/pull/78415) ([Sergei Trifonov](https://github.com/serxa)). +* Added query slot scheduling for workloads, see [workload scheduling](/core/concepts/features/configuration/server-config/workload-scheduling#query_scheduling) for details. [#78415](https://github.com/ClickHouse/ClickHouse/pull/78415) ([Sergei Trifonov](https://github.com/serxa)). * `timeSeries*` helper functions to speedup some scenarios when working with time series data: - re-sample the data to the time grid with specified start timestamp, end timestamp and step - calculate PromQL-like `delta`, `rate`, `idelta` and `irate`. [#80590](https://github.com/ClickHouse/ClickHouse/pull/80590) ([Alexander Gololobov](https://github.com/davenger)). * Add `mapContainsValuesLike`/`mapContainsValues`/`mapExtractValuesLike` functions to filter on map values and their support in bloom filter based indexes. [#78171](https://github.com/ClickHouse/ClickHouse/pull/78171) ([UnamedRus](https://github.com/UnamedRus)). * Now settings constraints can specify a set of disallowed values. [#78499](https://github.com/ClickHouse/ClickHouse/pull/78499) ([Bharat Nallan](https://github.com/bharatnc)). @@ -1977,7 +1977,7 @@ doc_type: 'changelog' * Enhance `SummingMergeTree` validation to skip aggregation for columns used in partition or sort keys. [#78022](https://github.com/ClickHouse/ClickHouse/pull/78022) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)). #### New Feature -* Added CPU slot scheduling for workloads, see [the docs](/concepts/features/configuration/server-config/workload-scheduling#cpu_scheduling) for details. [#77595](https://github.com/ClickHouse/ClickHouse/pull/77595) ([Sergei Trifonov](https://github.com/serxa)). +* Added CPU slot scheduling for workloads, see [the docs](/core/concepts/features/configuration/server-config/workload-scheduling#cpu_scheduling) for details. [#77595](https://github.com/ClickHouse/ClickHouse/pull/77595) ([Sergei Trifonov](https://github.com/serxa)). * `clickhouse-local` will retain its databases after restart if you specify the `--path` command line argument. This closes [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647). This closes [#49947](https://github.com/ClickHouse/ClickHouse/issues/49947). [#71722](https://github.com/ClickHouse/ClickHouse/pull/71722) ([Alexey Milovidov](https://github.com/alexey-milovidov)). * Reject queries when the server is overloaded. The decision is made based on the ratio of wait time (`OSCPUWaitMicroseconds`) to busy time (`OSCPUVirtualTimeMicroseconds`). The query is dropped with some probability, when this ratio is between `min_os_cpu_wait_time_ratio_to_throw` and `max_os_cpu_wait_time_ratio_to_throw` (those are query level settings). [#63206](https://github.com/ClickHouse/ClickHouse/pull/63206) ([Alexey Katsman](https://github.com/alexkats)). * Time travel in `Iceberg`: add setting to query `Iceberg` tables as of a specific timestamp. [#71072](https://github.com/ClickHouse/ClickHouse/pull/71072) ([Brett Hoerner](https://github.com/bretthoerner)). [#77439](https://github.com/ClickHouse/ClickHouse/pull/77439) ([Daniil Ivanik](https://github.com/divanik)). diff --git a/resources/changelogs/oss/2026.mdx b/resources/changelogs/oss/2026.mdx index 23659bc4..780f628c 100644 --- a/resources/changelogs/oss/2026.mdx +++ b/resources/changelogs/oss/2026.mdx @@ -560,7 +560,7 @@ doc_type: 'changelog' * Keeper improvement: `find_super_nodes` is a very useful command for debugging unexpected growth in the node count in Keeper. Unfortunately, if there are multiple super nodes, it's almost impossible to find more than one, because the command gets stuck forever traversing the children of the first encountered super node. This PR forbids traversing the children of super nodes. [#97819](https://github.com/ClickHouse/ClickHouse/pull/97819) ([pufit](https://github.com/pufit)). * Initial completion support for `clickhouse-keeper-client`. [#97828](https://github.com/ClickHouse/ClickHouse/pull/97828) ([Konstantin Bogdanov](https://github.com/thevar1able)). * Flush async logging buffers in case of crash. [#97836](https://github.com/ClickHouse/ClickHouse/pull/97836) ([Azat Khuzhin](https://github.com/azat)). -* Enable the impersonate feature by default (see [EXECUTE AS target_user](/reference/statements/execute_as)). [#97870](https://github.com/ClickHouse/ClickHouse/pull/97870) ([Vitaly Baranov](https://github.com/vitlibar)). +* Enable the impersonate feature by default (see [EXECUTE AS target_user](/core/reference/statements/execute_as)). [#97870](https://github.com/ClickHouse/ClickHouse/pull/97870) ([Vitaly Baranov](https://github.com/vitlibar)). * Improve canceling queries with SQLite table engine by KILL QUERY and cancel query (Ctrl+C) in clickhouse-client. [#97944](https://github.com/ClickHouse/ClickHouse/pull/97944) ([Roman Vasin](https://github.com/rvasin)). * Add server setting `jemalloc_profiler_sampling_rate` to control jemalloc's `lg_prof_sample` and expose it as `jemalloc.prof.lg_sample` asynchronous metric. [#97945](https://github.com/ClickHouse/ClickHouse/pull/97945) ([Antonio Andelic](https://github.com/antonio2368)). * Support weights in concurrent bounded queue implementation. [#97962](https://github.com/ClickHouse/ClickHouse/pull/97962) ([Daniil Ivanik](https://github.com/divanik)). @@ -1310,7 +1310,7 @@ doc_type: 'changelog' * Support SYSTEM NOTIFY FAILPOINT for pausable failpoints. - Support SYSTEM WAIT FAILPOINT fp PAUSE/RESUME. [#92368](https://github.com/ClickHouse/ClickHouse/pull/92368) ([Shaohua Wang](https://github.com/tiandiwonder)). * Add `creation` (implicit/explicit) column to `system.data_skipping_indices`. [#92378](https://github.com/ClickHouse/ClickHouse/pull/92378) ([Raúl Marín](https://github.com/Algunenano)). * Allow passing the description of columns for YTsaurus dyn tables to the dictionary source. [#92391](https://github.com/ClickHouse/ClickHouse/pull/92391) ([MikhailBurdukov](https://github.com/MikhailBurdukov)). -* In [#63985](https://github.com/ClickHouse/ClickHouse/pull/63985), we made it possible to specify all the parameters needed for TLS configuration on a per-port basis (see [composable protocols](/concepts/features/configuration/server-config/composable-protocols)), so we don't have to rely on global TLS config. However, the implementation still implicitly requires a global `openSSL.server` config section to exist, which conflicts with setups where different TLS configurations are needed for different ports. For example, in keeper-in-server deployments, we need separate TLS configs for inter-keeper communication and clickhouse client connections. [#92457](https://github.com/ClickHouse/ClickHouse/pull/92457) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). +* In [#63985](https://github.com/ClickHouse/ClickHouse/pull/63985), we made it possible to specify all the parameters needed for TLS configuration on a per-port basis (see [composable protocols](/core/concepts/features/configuration/server-config/composable-protocols)), so we don't have to rely on global TLS config. However, the implementation still implicitly requires a global `openSSL.server` config section to exist, which conflicts with setups where different TLS configurations are needed for different ports. For example, in keeper-in-server deployments, we need separate TLS configs for inter-keeper communication and clickhouse client connections. [#92457](https://github.com/ClickHouse/ClickHouse/pull/92457) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)). * Introduce a new setting `input_format_binary_max_type_complexity` that limits the total number of type nodes that can be decoded in binary format to prevent malicious payloads. [#92519](https://github.com/ClickHouse/ClickHouse/pull/92519) ([Raufs Dunamalijevs](https://github.com/rienath)). * Reflect running tasks in `system.background_schedule_pool{,_log}`. Add documentation. [#92587](https://github.com/ClickHouse/ClickHouse/pull/92587) ([Azat Khuzhin](https://github.com/azat)). * Execute current query in Ctrl+R search in client if no history match found. [#92749](https://github.com/ClickHouse/ClickHouse/pull/92749) ([Azat Khuzhin](https://github.com/azat)). diff --git a/resources/contribute/index.mdx b/resources/contribute/index.mdx deleted file mode 100644 index 0aedd114..00000000 --- a/resources/contribute/index.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -description: 'Index page for Development and Contributing' -slug: /development/ -title: 'Development and Contributing' -doc_type: 'landing-page' ---- - -In this section of the docs you will find the following pages: - -{/* The table of contents below is automatically generated from the YAML - front matter fields: title, description, slug by the script found here: - - https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh - - If you've spotted an error or wish to improve the descriptions, please edit - the files themselves directly. -*/} - -{/*AUTOGENERATED_START*/} -| Page | Description | -|-----|-----| -| [Developer Prerequisites](/resources/contribute/developer-instruction) | Prerequisites and setup instructions for ClickHouse development | -| [How to Build ClickHouse on Linux](/resources/contribute/build) | Step-by-step guide for building ClickHouse from source on Linux systems | -| [Build on macOS for macOS](/resources/contribute/build-osx) | Guide for building ClickHouse from source on macOS systems | -| [Build on Linux for macOS](/resources/contribute/build-cross-osx) | Guide for cross-compiling ClickHouse from Linux for macOS systems | -| [How to Build ClickHouse on Linux for AARCH64](/resources/contribute/build-cross-arm) | Guide for building ClickHouse from source for the AARCH64 architecture | -| [How to Build ClickHouse on Linux for RISC-V 64](/resources/contribute/build-cross-riscv) | Guide for building ClickHouse from source for the RISC-V 64 architecture | -| [Build on Linux for s390x (zLinux)](/resources/contribute/build-cross-s390x) | Guide for building ClickHouse from source for the s390x architecture | -| [Build on Linux for E2K](/resources/contribute/build-e2k) | Guide for building ClickHouse from source for the E2K architecture | -| [Build on Linux for LoongArch64](/resources/contribute/build-cross-loongarch) | Guide for building ClickHouse from source for the LoongArch64 architecture | -| [Testing ClickHouse](/resources/contribute/tests) | Guide to testing ClickHouse and running the test suite | -| [Architecture Overview](/resources/contribute/architecture) | A comprehensive overview of ClickHouse architecture and its column-oriented design | -| [Continuous Integration (CI)](/resources/contribute/continuous-integration) | Overview of the ClickHouse continuous integration system | -| [Backport System](/resources/contribute/backports) | Overview of the ClickHouse backport policy and automation | -| [Third-Party Libraries](/resources/contribute/contrib) | Page describing ClickHouse third-party usage and how to add and maintain third-party libraries. | -| [C++ Style Guide](/resources/contribute/style) | Coding style guidelines for ClickHouse C++ development | -| [Integrating Rust Libraries](/resources/contribute/integrating-rust-libraries) | Guide for integrating Rust libraries into ClickHouse | -{/*AUTOGENERATED_END*/} diff --git a/resources/contribute/native-protocol/columns.mdx b/resources/contribute/native-protocol/columns.mdx deleted file mode 100644 index bc8a55cf..00000000 --- a/resources/contribute/native-protocol/columns.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -slug: /native-protocol/columns -title: 'Native protocol column types' -description: 'Column types for the native protocol' -keywords: ['native protocol columns', 'column types', 'data types', 'protocol data types', 'binary encoding'] -doc_type: 'reference' ---- - -See [Data Types](/reference/data-types) for general reference. - - -Numeric types encoding matches memory layout of little endian CPUs like AMD64 or ARM64, allowing very efficient encoding and decoding. - - -| Type | Encoding | -|------|----------| -| **Integers** ([Int/UInt](/reference/data-types/int-uint)) | 8, 16, 32, 64, 128 or 256 bits in little endian | -| **Floats** ([Float32/Float64](/reference/data-types/float)) | IEEE 754 binary representation | -| [String](/reference/data-types/string) | Array of strings as (len, value) | -| [FixedString(N)](/reference/data-types/fixedstring) | Array of N-byte sequences | -| [IPv4](/reference/data-types/ipv4) | Alias of `UInt32`, represented as UInt32 | -| [IPv6](/reference/data-types/ipv6) | Alias of `FixedString(16)`, represented as binary | -| [Tuple](/reference/data-types/tuple) | Array of columns encoded continuously. Example: `Tuple(String, UInt8)` = two continuous columns | -| [Map](/reference/data-types/map) | `Map(K, V)` = three columns: `Offsets ColUInt64, Keys K, Values V`. Row count in Keys/Values = last Offsets value | -| [Array](/reference/data-types/array) | `Array(T)` = two columns: `Offsets ColUInt64, Data T`. Row count in Data = last Offsets value | -| [Nullable](/reference/data-types/nullable) | `Nullable(T)` = two columns: `Nulls ColUInt8, Values T` with same row count. Nulls is mask: 1=null, 0=value | -| [UUID](/reference/data-types/uuid) | Alias of `FixedString(16)`, represented as binary | -| [Enum](/reference/data-types/enum) | Alias of `Int8` or `Int16`, each integer mapped to a String value | -| [LowCardinality](/reference/data-types/lowcardinality) | `LowCardinality(T)` = two columns: `Index T, Keys K` where K is UInt8/16/32/64. Index contains unique values, Keys contains indexes into Index | -| [Bool](/reference/data-types/boolean) | Alias of `UInt8`: 0=false, 1=true | - -**Example: Nullable encoding** - -```text -To encode [null, "", "hello", null, "world"]: - Values: ["", "", "hello", "", "world"] (len: 5) - Nulls: [ 1, 0, 0, 1, 0] (len: 5) -``` - -**Example: LowCardinality encoding** - -```text -To encode ["Eko", "Eko", "Amadela", "Amadela", "Amadela", "Amadela"]: - Index: ["Eko", "Amadela"] (String) - Keys: [0, 0, 1, 1, 1, 1] (UInt8) -``` diff --git a/resources/contribute/build-cross-arm.mdx b/resources/develop-contribute/build/build-cross-arm.mdx similarity index 100% rename from resources/contribute/build-cross-arm.mdx rename to resources/develop-contribute/build/build-cross-arm.mdx diff --git a/resources/contribute/build-cross-loongarch.mdx b/resources/develop-contribute/build/build-cross-loongarch.mdx similarity index 100% rename from resources/contribute/build-cross-loongarch.mdx rename to resources/develop-contribute/build/build-cross-loongarch.mdx diff --git a/resources/contribute/build-cross-osx.mdx b/resources/develop-contribute/build/build-cross-osx.mdx similarity index 94% rename from resources/contribute/build-cross-osx.mdx rename to resources/develop-contribute/build/build-cross-osx.mdx index 9b92f251..c4498e8a 100644 --- a/resources/contribute/build-cross-osx.mdx +++ b/resources/develop-contribute/build/build-cross-osx.mdx @@ -8,9 +8,9 @@ doc_type: 'guide' This is for the case when you have a Linux machine and want to use it to build `clickhouse` binary that will run on OS X. The main use case is continuous integration checks which run on Linux machines. -If you want to build ClickHouse directly on macOS, proceed with the [native build instructions](/resources/contribute/build-osx). +If you want to build ClickHouse directly on macOS, proceed with the [native build instructions](/resources/develop-contribute/build/build-osx). -The cross-build for macOS is based on the [Build instructions](/resources/contribute/build), follow them first. +The cross-build for macOS is based on the [Build instructions](/resources/develop-contribute/build/build), follow them first. The following sections provide a walk-through for building ClickHouse for `x86_64` macOS. If you're targeting ARM architecture, simply substitute all occurrences of `x86_64` with `aarch64`. diff --git a/resources/contribute/build-cross-riscv.mdx b/resources/develop-contribute/build/build-cross-riscv.mdx similarity index 100% rename from resources/contribute/build-cross-riscv.mdx rename to resources/develop-contribute/build/build-cross-riscv.mdx diff --git a/resources/contribute/build-cross-s390x.mdx b/resources/develop-contribute/build/build-cross-s390x.mdx similarity index 97% rename from resources/contribute/build-cross-s390x.mdx rename to resources/develop-contribute/build/build-cross-s390x.mdx index 68f59516..b7febc64 100644 --- a/resources/contribute/build-cross-s390x.mdx +++ b/resources/develop-contribute/build/build-cross-s390x.mdx @@ -12,7 +12,7 @@ ClickHouse has experimental support for s390x. s390x, as other platforms, builds OpenSSL as a static library. If you want to build with dynamic OpenSSL, you need to pass `-DENABLE_OPENSSL_DYNAMIC=1` to CMake. -These instructions assume that the host machine is Linux x86_64/ARM and has all the tooling required to build natively based on the [build instructions](/resources/contribute/build). It also assumes that the host is Ubuntu 22.04 but the following instructions should also work on Ubuntu 20.04. +These instructions assume that the host machine is Linux x86_64/ARM and has all the tooling required to build natively based on the [build instructions](/resources/develop-contribute/build/build). It also assumes that the host is Ubuntu 22.04 but the following instructions should also work on Ubuntu 20.04. In addition to installing the tooling used to build natively, the following additional packages need to be installed: diff --git a/resources/contribute/build-e2k.mdx b/resources/develop-contribute/build/build-e2k.mdx similarity index 100% rename from resources/contribute/build-e2k.mdx rename to resources/develop-contribute/build/build-e2k.mdx diff --git a/resources/contribute/build-osx.mdx b/resources/develop-contribute/build/build-osx.mdx similarity index 95% rename from resources/contribute/build-osx.mdx rename to resources/develop-contribute/build/build-osx.mdx index 8471d24f..d3405ca9 100644 --- a/resources/contribute/build-osx.mdx +++ b/resources/develop-contribute/build/build-osx.mdx @@ -10,7 +10,7 @@ doc_type: 'guide' **This build guide is for contributors modifying ClickHouse itself.** -If you are not changing ClickHouse source code, you can install pre-built ClickHouse as described in [Quick Start](/get-started/setup/overview). +If you are not changing ClickHouse source code, you can install pre-built ClickHouse as described in [Quick Start](/core/get-started/setup/install). ClickHouse can be compiled on macOS x86_64 (Intel) and arm64 (Apple Silicon) using on macOS 10.15 (Catalina) or higher. @@ -19,7 +19,7 @@ As compiler, only Clang from homebrew is supported. ## Install prerequisites {#install-prerequisites} -First, see the generic [prerequisites documentation](/resources/contribute/developer-instruction). +First, see the generic [prerequisites documentation](/resources/develop-contribute/introduction/developer-instruction). Next, install [Homebrew](https://brew.sh/) and run diff --git a/resources/contribute/build.mdx b/resources/develop-contribute/build/build.mdx similarity index 98% rename from resources/contribute/build.mdx rename to resources/develop-contribute/build/build.mdx index afbd2a95..71e7d100 100644 --- a/resources/contribute/build.mdx +++ b/resources/develop-contribute/build/build.mdx @@ -9,7 +9,7 @@ doc_type: 'guide' **This build guide is for contributors modifying ClickHouse itself.** -If you are not changing ClickHouse source code, you can install pre-built ClickHouse as described in [Quick Start](/get-started/setup/overview). +If you are not changing ClickHouse source code, you can install pre-built ClickHouse as described in [Quick Start](/core/get-started/setup/install). ClickHouse can be build on the following platforms: @@ -29,7 +29,7 @@ The tutorial assumes that you have the ClickHouse repository and all submodules ## Install prerequisites {#install-prerequisites} -First, see the generic [prerequisites documentation](/resources/contribute/developer-instruction). +First, see the generic [prerequisites documentation](/resources/develop-contribute/introduction/developer-instruction). ClickHouse uses CMake and Ninja for building. diff --git a/resources/contribute/backports.mdx b/resources/develop-contribute/contribute/backports.mdx similarity index 100% rename from resources/contribute/backports.mdx rename to resources/develop-contribute/contribute/backports.mdx diff --git a/resources/contribute/building-and-benchmarking-deflate-qpl.mdx b/resources/develop-contribute/contribute/building-and-benchmarking-deflate-qpl.mdx similarity index 94% rename from resources/contribute/building-and-benchmarking-deflate-qpl.mdx rename to resources/develop-contribute/contribute/building-and-benchmarking-deflate-qpl.mdx index 337ca521..272e3faa 100644 --- a/resources/contribute/building-and-benchmarking-deflate-qpl.mdx +++ b/resources/develop-contribute/contribute/building-and-benchmarking-deflate-qpl.mdx @@ -9,7 +9,7 @@ doc_type: 'guide' - Make sure your host machine meet the QPL required [prerequisites](https://intel.github.io/qpl/documentation/get_started_docs/installation.html#prerequisites) - deflate_qpl is enabled by default during cmake build. In case you accidentally change it, please double-check build flag: ENABLE_QPL=1 -- For generic requirements, please refer to Clickhouse generic [build instructions](/resources/contribute/build) +- For generic requirements, please refer to Clickhouse generic [build instructions](/resources/develop-contribute/build){/* MIGRATE: unknown slug */}{/* MIGRATE: unknown slug */} ## Files list @@ -17,7 +17,7 @@ The folders `benchmark_sample` under [qpl-cmake](https://github.com/ClickHouse/C `client_scripts` contains python scripts for running typical benchmark, for example: - `client_stressing_test.py`: The python script for query stress test with [1~4] server instances. -- `queries_ssb.sql`: The file lists all queries for [Star Schema Benchmark](/get-started/sample-datasets/star-schema) +- `queries_ssb.sql`: The file lists all queries for [Star Schema Benchmark](/core/get-started/sample-datasets/star-schema) - `allin1_ssb.sh`: This shell script executes benchmark workflow all in one automatically. `database_files` means it will store database files according to lz4/deflate/zstd codec. @@ -70,7 +70,7 @@ $ cd ./benchmark_sample $ mkdir rawdata_dir && cd rawdata_dir ``` -Use [`dbgen`](/get-started/sample-datasets/star-schema) to generate 100 million rows data with the parameters: +Use [`dbgen`](/core/get-started/sample-datasets/star-schema) to generate 100 million rows data with the parameters: -s 20 The files like `*.tbl` are expected to output under `./benchmark_sample/rawdata_dir/ssb-dbgen`: @@ -87,7 +87,7 @@ $ [CLICKHOUSE_EXE] client Here you should see the message `Connected to ClickHouse server` from console which means client successfully setup connection with server. -Complete below three steps mentioned in [Star Schema Benchmark](/get-started/sample-datasets/star-schema) +Complete below three steps mentioned in [Star Schema Benchmark](/core/get-started/sample-datasets/star-schema) - Creating tables in ClickHouse - Inserting data. Here should use `./benchmark_sample/rawdata_dir/ssb-dbgen/*.tbl` as input data. - Converting "star schema" to de-normalized "flat schema" @@ -321,4 +321,4 @@ Each time before launch new clickhouse server, please make sure no background cl $ ps -aux| grep clickhouse $ kill -9 [PID] ``` -By comparing the query list in ./client_scripts/queries_ssb.sql with official [Star Schema Benchmark](/get-started/sample-datasets/star-schema), you will find 3 queries are not included: Q1.2/Q1.3/Q3.4 . This is because cpu utilization% is very low < 10% for these queries which means cannot demonstrate performance differences. +By comparing the query list in ./client_scripts/queries_ssb.sql with official [Star Schema Benchmark](/core/get-started/sample-datasets/star-schema), you will find 3 queries are not included: Q1.2/Q1.3/Q3.4 . This is because cpu utilization% is very low < 10% for these queries which means cannot demonstrate performance differences. diff --git a/resources/contribute/continuous-integration.mdx b/resources/develop-contribute/contribute/continuous-integration.mdx similarity index 94% rename from resources/contribute/continuous-integration.mdx rename to resources/develop-contribute/contribute/continuous-integration.mdx index f6f62052..2c08dfc2 100644 --- a/resources/contribute/continuous-integration.mdx +++ b/resources/develop-contribute/contribute/continuous-integration.mdx @@ -6,7 +6,7 @@ title: 'Continuous Integration (CI)' doc_type: 'reference' --- -When you submit a pull request, some automated checks are ran for your code by the ClickHouse [continuous integration (CI) system](/resources/contribute/tests#test-automation). +When you submit a pull request, some automated checks are ran for your code by the ClickHouse [continuous integration (CI) system](/resources/develop-contribute/contribute/tests#test-automation). This happens after a repository maintainer (someone from ClickHouse team) has screened your code and added the `can be tested` label to your pull request. The results of the checks are listed on the GitHub pull request page as described in the [GitHub checks documentation](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-status-checks). If a check is failing, you might be required to fix it. @@ -66,7 +66,7 @@ Basic checks in the Style Check job: ##### cpp {#cpp} Performs simple regex-based code style checks using the [`ci/jobs/scripts/check_style/check_cpp.sh`](https://github.com/ClickHouse/ClickHouse/blob/master/ci/jobs/scripts/check_style/check_cpp.sh) script (which can also be run locally). -If it fails, fix the style issues according to the [code style guide](/resources/contribute/style). +If it fails, fix the style issues according to the [code style guide](/resources/develop-contribute/contribute/style). ##### codespell, aspell {#codespell} Check for grammatical mistakes and typos. @@ -203,17 +203,17 @@ To run a local debug build: python -m ci.praktika run "Build (amd_debug)" ``` -If the above approach does not work for you, use the cmake options from the build log and follow the [general build process](/resources/contribute/build). +If the above approach does not work for you, use the cmake options from the build log and follow the [general build process](/resources/develop-contribute/build/build). ## Functional stateless tests {#functional-stateless-tests} -Runs [stateless functional tests](/resources/contribute/tests#functional-tests) for ClickHouse binaries built in various configurations -- release, debug, with sanitizers, etc. -Look at the report to see which tests fail, then reproduce the failure locally as described [here](/resources/contribute/tests#functional-tests). +Runs [stateless functional tests](/resources/develop-contribute/contribute/tests#functional-tests) for ClickHouse binaries built in various configurations -- release, debug, with sanitizers, etc. +Look at the report to see which tests fail, then reproduce the failure locally as described [here](/resources/develop-contribute/contribute/tests#functional-tests). Note that you have to use the correct build configuration to reproduce -- a test might fail under AddressSanitizer but pass in Debug. -Download the binary from [CI build checks page](/get-started/setup/self-managed/advanced), or build it locally. +Download the binary from [CI build checks page](/core/get-started/setup/self-managed/advanced), or build it locally. ## Integration tests {#integration-tests} -Runs [integration tests](/resources/contribute/tests#integration-tests). +Runs [integration tests](/resources/develop-contribute/contribute/tests#integration-tests). ## Bugfix validate check {#bugfix-validate-check} diff --git a/resources/contribute/contrib.mdx b/resources/develop-contribute/contribute/contrib.mdx similarity index 100% rename from resources/contribute/contrib.mdx rename to resources/develop-contribute/contribute/contrib.mdx diff --git a/resources/contribute/integrating-rust-libraries.mdx b/resources/develop-contribute/contribute/integrating-rust-libraries.mdx similarity index 100% rename from resources/contribute/integrating-rust-libraries.mdx rename to resources/develop-contribute/contribute/integrating-rust-libraries.mdx diff --git a/resources/contribute/profile-guided-optimization.mdx b/resources/develop-contribute/contribute/profile-guided-optimization.mdx similarity index 100% rename from resources/contribute/profile-guided-optimization.mdx rename to resources/develop-contribute/contribute/profile-guided-optimization.mdx diff --git a/resources/contribute/style.mdx b/resources/develop-contribute/contribute/style.mdx similarity index 99% rename from resources/contribute/style.mdx rename to resources/develop-contribute/contribute/style.mdx index ffc81a90..f5154c1a 100644 --- a/resources/contribute/style.mdx +++ b/resources/develop-contribute/contribute/style.mdx @@ -788,7 +788,7 @@ If your code in the `master` branch is not buildable yet, exclude it from the bu **1.** The C++20 standard library is used (experimental extensions are allowed), as well as `boost` and `Poco` frameworks. -**2.** It is not allowed to use libraries from OS packages. It is also not allowed to use pre-installed libraries. All libraries should be placed in form of source code in `contrib` directory and built with ClickHouse. See [Guidelines for adding new third-party libraries](/resources/contribute/contrib#adding-and-maintaining-third-party-libraries) for details. +**2.** It is not allowed to use libraries from OS packages. It is also not allowed to use pre-installed libraries. All libraries should be placed in form of source code in `contrib` directory and built with ClickHouse. See [Guidelines for adding new third-party libraries](/resources/develop-contribute/contribute/contrib#adding-and-maintaining-third-party-libraries) for details. **3.** Preference is always given to libraries that are already in use. diff --git a/resources/contribute/tests.mdx b/resources/develop-contribute/contribute/tests.mdx similarity index 99% rename from resources/contribute/tests.mdx rename to resources/develop-contribute/contribute/tests.mdx index df6a7d82..efca49a7 100644 --- a/resources/contribute/tests.mdx +++ b/resources/develop-contribute/contribute/tests.mdx @@ -129,7 +129,7 @@ You should get Failed: 0, Passed: 8497, Skipped: 103 ``` -Note. `python -m ci.praktika run` invocations run a specific continuous integration job, you can read more about ClickHouse CI [here](/resources/contribute/continuous-integration#running-stateless-tests). +Note. `python -m ci.praktika run` invocations run a specific continuous integration job, you can read more about ClickHouse CI [here](/resources/develop-contribute/contribute/continuous-integration#running-stateless-tests). ### Adding a new test {#adding-a-new-test} @@ -537,7 +537,7 @@ ClickHouse provides diagnostics that will help ops engineers to find faulty hard ## Code style {#code-style} -Code style rules are described [here](/resources/contribute/style). +Code style rules are described [here](/resources/develop-contribute/contribute/style). To check for some common style violations, you can use `utils/check-style` script. diff --git a/resources/contribute/images/concurrency.png b/resources/develop-contribute/images/concurrency.png similarity index 100% rename from resources/contribute/images/concurrency.png rename to resources/develop-contribute/images/concurrency.png diff --git a/resources/contribute/images/find-build-artifact.png b/resources/develop-contribute/images/find-build-artifact.png similarity index 100% rename from resources/contribute/images/find-build-artifact.png rename to resources/develop-contribute/images/find-build-artifact.png diff --git a/resources/develop-contribute/index.mdx b/resources/develop-contribute/index.mdx new file mode 100644 index 00000000..a7e7a6f2 --- /dev/null +++ b/resources/develop-contribute/index.mdx @@ -0,0 +1,38 @@ +--- +description: 'Index page for Development and Contributing' +slug: /development/ +title: 'Development and Contributing' +doc_type: 'landing-page' +--- + +In this section of the docs you will find the following pages: + +{/* The table of contents below is automatically generated from the YAML + front matter fields: title, description, slug by the script found here: + + https://github.com/ClickHouse/clickhouse-docs/blob/main/scripts/autogenerate-table-of-contents.sh + + If you've spotted an error or wish to improve the descriptions, please edit + the files themselves directly. +*/} + +{/*AUTOGENERATED_START*/} +| Page | Description | +|-----|-----| +| [Developer Prerequisites](/resources/develop-contribute/introduction/developer-instruction) | Prerequisites and setup instructions for ClickHouse development | +| [How to Build ClickHouse on Linux](/resources/develop-contribute/build/build) | Step-by-step guide for building ClickHouse from source on Linux systems | +| [Build on macOS for macOS](/resources/develop-contribute/build/build-osx) | Guide for building ClickHouse from source on macOS systems | +| [Build on Linux for macOS](/resources/develop-contribute/build/build-cross-osx) | Guide for cross-compiling ClickHouse from Linux for macOS systems | +| [How to Build ClickHouse on Linux for AARCH64](/resources/develop-contribute/build/build-cross-arm) | Guide for building ClickHouse from source for the AARCH64 architecture | +| [How to Build ClickHouse on Linux for RISC-V 64](/resources/develop-contribute/build/build-cross-riscv) | Guide for building ClickHouse from source for the RISC-V 64 architecture | +| [Build on Linux for s390x (zLinux)](/resources/develop-contribute/build/build-cross-s390x) | Guide for building ClickHouse from source for the s390x architecture | +| [Build on Linux for E2K](/resources/develop-contribute/build/build-e2k) | Guide for building ClickHouse from source for the E2K architecture | +| [Build on Linux for LoongArch64](/resources/develop-contribute/build/build-cross-loongarch) | Guide for building ClickHouse from source for the LoongArch64 architecture | +| [Testing ClickHouse](/resources/develop-contribute/contribute/tests) | Guide to testing ClickHouse and running the test suite | +| [Architecture Overview](/resources/develop-contribute/introduction/architecture) | A comprehensive overview of ClickHouse architecture and its column-oriented design | +| [Continuous Integration (CI)](/resources/develop-contribute/contribute/continuous-integration) | Overview of the ClickHouse continuous integration system | +| [Backport System](/resources/develop-contribute/contribute/backports) | Overview of the ClickHouse backport policy and automation | +| [Third-Party Libraries](/resources/develop-contribute/contribute/contrib) | Page describing ClickHouse third-party usage and how to add and maintain third-party libraries. | +| [C++ Style Guide](/resources/develop-contribute/contribute/style) | Coding style guidelines for ClickHouse C++ development | +| [Integrating Rust Libraries](/resources/develop-contribute/contribute/integrating-rust-libraries) | Guide for integrating Rust libraries into ClickHouse | +{/*AUTOGENERATED_END*/} diff --git a/resources/contribute/architecture.mdx b/resources/develop-contribute/introduction/architecture.mdx similarity index 98% rename from resources/contribute/architecture.mdx rename to resources/develop-contribute/introduction/architecture.mdx index cf0b3cc4..cefb34cb 100644 --- a/resources/contribute/architecture.mdx +++ b/resources/develop-contribute/introduction/architecture.mdx @@ -130,7 +130,7 @@ There are ordinary functions and aggregate functions. For aggregate functions, s Ordinary functions do not change the number of rows – they work as if they are processing each row independently. In fact, functions are not called for individual rows, but for `Block`'s of data to implement vectorized query execution. -There are some miscellaneous functions, like [blockSize](/reference/functions/regular-functions/other-functions#blockSize), [rowNumberInBlock](/reference/functions/regular-functions/other-functions#rowNumberInBlock), and [runningAccumulate](/reference/functions/regular-functions/other-functions#runningAccumulate), that exploit block processing and violate the independence of rows. +There are some miscellaneous functions, like [blockSize](/core/reference/functions/regular-functions/other-functions#blockSize), [rowNumberInBlock](/core/reference/functions/regular-functions/other-functions#rowNumberInBlock), and [runningAccumulate](/core/reference/functions/regular-functions/other-functions#runningAccumulate), that exploit block processing and violate the independence of rows. ClickHouse has strong typing, so there's no implicit type conversion. If a function does not support a specific combination of types, it throws an exception. But functions can work (be overloaded) for many different combinations of types. For example, the `plus` function (to implement the `+` operator) works for any combination of numeric types: `UInt8` + `Float32`, `UInt16` + `Int8`, and so on. Also, some variadic functions can accept any number of arguments, such as the `concat` function. diff --git a/resources/contribute/developer-instruction.mdx b/resources/develop-contribute/introduction/developer-instruction.mdx similarity index 98% rename from resources/contribute/developer-instruction.mdx rename to resources/develop-contribute/introduction/developer-instruction.mdx index 79b8509a..eadc3e23 100644 --- a/resources/contribute/developer-instruction.mdx +++ b/resources/develop-contribute/introduction/developer-instruction.mdx @@ -92,10 +92,10 @@ It is better to specify the remote and branch names explicitly, e.g. `git push o Below you can find some quick links which may be useful when writing code for ClickHouse: -- [ClickHouse Architecture](/resources/contribute/architecture). -- [Code style guide](/resources/contribute/style). -- [Third-party libraries](/resources/contribute/contrib#adding-and-maintaining-third-party-libraries) -- [Writing tests](/resources/contribute/tests) +- [ClickHouse Architecture](/resources/develop-contribute/introduction/architecture). +- [Code style guide](/resources/develop-contribute/contribute/style). +- [Third-party libraries](/resources/develop-contribute/contribute/contrib#adding-and-maintaining-third-party-libraries) +- [Writing tests](/resources/develop-contribute/contribute/tests) - [Open issues](https://github.com/ClickHouse/ClickHouse/issues?q=is%3Aopen+is%3Aissue+label%3A%22easy+task%22) ### IDE {#ide} diff --git a/resources/contribute/native-protocol/basics.mdx b/resources/develop-contribute/native-protocol/basics.mdx similarity index 100% rename from resources/contribute/native-protocol/basics.mdx rename to resources/develop-contribute/native-protocol/basics.mdx diff --git a/resources/contribute/native-protocol/client.mdx b/resources/develop-contribute/native-protocol/client.mdx similarity index 98% rename from resources/contribute/native-protocol/client.mdx rename to resources/develop-contribute/native-protocol/client.mdx index 70e59365..1e03b80b 100644 --- a/resources/contribute/native-protocol/client.mdx +++ b/resources/develop-contribute/native-protocol/client.mdx @@ -123,4 +123,4 @@ No packet body. Server should cancel query. ## Ping {#ping} -No packet body. Server should [respond with pong](/resources/contribute/native-protocol/server#pong). +No packet body. Server should [respond with pong](/resources/develop-contribute/native-protocol/server#pong). diff --git a/resources/develop-contribute/native-protocol/columns.mdx b/resources/develop-contribute/native-protocol/columns.mdx new file mode 100644 index 00000000..4cd08643 --- /dev/null +++ b/resources/develop-contribute/native-protocol/columns.mdx @@ -0,0 +1,46 @@ +--- +slug: /native-protocol/columns +title: 'Native protocol column types' +description: 'Column types for the native protocol' +keywords: ['native protocol columns', 'column types', 'data types', 'protocol data types', 'binary encoding'] +doc_type: 'reference' +--- + +See [Data Types](/core/reference/data-types) for general reference. + + +Numeric types encoding matches memory layout of little endian CPUs like AMD64 or ARM64, allowing very efficient encoding and decoding. + + +| Type | Encoding | +|------|----------| +| **Integers** ([Int/UInt](/core/reference/data-types/int-uint)) | 8, 16, 32, 64, 128 or 256 bits in little endian | +| **Floats** ([Float32/Float64](/core/reference/data-types/float)) | IEEE 754 binary representation | +| [String](/core/reference/data-types/string) | Array of strings as (len, value) | +| [FixedString(N)](/core/reference/data-types/fixedstring) | Array of N-byte sequences | +| [IPv4](/core/reference/data-types/ipv4) | Alias of `UInt32`, represented as UInt32 | +| [IPv6](/core/reference/data-types/ipv6) | Alias of `FixedString(16)`, represented as binary | +| [Tuple](/core/reference/data-types/tuple) | Array of columns encoded continuously. Example: `Tuple(String, UInt8)` = two continuous columns | +| [Map](/core/reference/data-types/map) | `Map(K, V)` = three columns: `Offsets ColUInt64, Keys K, Values V`. Row count in Keys/Values = last Offsets value | +| [Array](/core/reference/data-types/array) | `Array(T)` = two columns: `Offsets ColUInt64, Data T`. Row count in Data = last Offsets value | +| [Nullable](/core/reference/data-types/nullable) | `Nullable(T)` = two columns: `Nulls ColUInt8, Values T` with same row count. Nulls is mask: 1=null, 0=value | +| [UUID](/core/reference/data-types/uuid) | Alias of `FixedString(16)`, represented as binary | +| [Enum](/core/reference/data-types/enum) | Alias of `Int8` or `Int16`, each integer mapped to a String value | +| [LowCardinality](/core/reference/data-types/lowcardinality) | `LowCardinality(T)` = two columns: `Index T, Keys K` where K is UInt8/16/32/64. Index contains unique values, Keys contains indexes into Index | +| [Bool](/core/reference/data-types/boolean) | Alias of `UInt8`: 0=false, 1=true | + +**Example: Nullable encoding** + +```text +To encode [null, "", "hello", null, "world"]: + Values: ["", "", "hello", "", "world"] (len: 5) + Nulls: [ 1, 0, 0, 1, 0] (len: 5) +``` + +**Example: LowCardinality encoding** + +```text +To encode ["Eko", "Eko", "Amadela", "Amadela", "Amadela", "Amadela"]: + Index: ["Eko", "Amadela"] (String) + Keys: [0, 0, 1, 1, 1, 1] (UInt8) +``` diff --git a/resources/contribute/native-protocol/hash.mdx b/resources/develop-contribute/native-protocol/hash.mdx similarity index 100% rename from resources/contribute/native-protocol/hash.mdx rename to resources/develop-contribute/native-protocol/hash.mdx diff --git a/resources/contribute/native-protocol/server.mdx b/resources/develop-contribute/native-protocol/server.mdx similarity index 95% rename from resources/contribute/native-protocol/server.mdx rename to resources/develop-contribute/native-protocol/server.mdx index 646d0f7d..2e019a2f 100644 --- a/resources/contribute/native-protocol/server.mdx +++ b/resources/develop-contribute/native-protocol/server.mdx @@ -9,7 +9,7 @@ keywords: ['native protocol', 'tcp protocol', 'client-server', 'protocol specifi | value | name | description | |-------|----------------------------------|-----------------------------------------------------------------| | 0 | [Hello](#hello) | Server handshake response | -| 1 | Data | Same as [client data](/resources/contribute/native-protocol/client#data) | +| 1 | Data | Same as [client data](/resources/develop-contribute/native-protocol/client#data) | | 2 | [Exception](#exception) | Query processing exception | | 3 | [Progress](#progress) | Query progress | | 4 | [Pong](#pong) | Ping response | @@ -28,7 +28,7 @@ The `Data`, `Totals` and `Extremes` can be compressed. ## Hello {#hello} -Response to [client hello](/resources/contribute/native-protocol/client#hello). +Response to [client hello](/resources/develop-contribute/native-protocol/client#hello). | field | type | value | description | |---------------|---------|-----------------|----------------------| @@ -74,7 +74,7 @@ Progress reported in **deltas**. For totals, accumulate it on client. ## Pong {#pong} -Response for [client ping](/resources/contribute/native-protocol/client#ping), no packet body. +Response for [client ping](/resources/develop-contribute/native-protocol/client#ping), no packet body. ## End of stream {#end-of-stream} diff --git a/resources/develop-contribute/navigation.json b/resources/develop-contribute/navigation.json new file mode 100644 index 00000000..9489a0a5 --- /dev/null +++ b/resources/develop-contribute/navigation.json @@ -0,0 +1,56 @@ +{ + "item": "Development & contributing", + "icon": "/images/icons/icon-contribute.svg", + "root": "resources/develop-contribute/index", + "groups": [ + { + "group": "Introduction", + "pages": [ + "resources/develop-contribute/introduction/developer-instruction", + "resources/develop-contribute/introduction/architecture" + ] + }, + { + "group": "Building", + "pages": [ + "resources/develop-contribute/build/build", + "resources/develop-contribute/build/build-osx", + "resources/develop-contribute/build/build-cross-osx", + "resources/develop-contribute/build/build-cross-arm", + "resources/develop-contribute/build/build-cross-riscv", + "resources/develop-contribute/build/build-cross-s390x", + "resources/develop-contribute/build/build-cross-loongarch", + "resources/develop-contribute/build/build-e2k" + ] + }, + { + "group": "Native protocol", + "pages": [ + "resources/develop-contribute/native-protocol/basics", + "resources/develop-contribute/native-protocol/client", + "resources/develop-contribute/native-protocol/server", + "resources/develop-contribute/native-protocol/columns", + "resources/develop-contribute/native-protocol/hash" + ] + }, + { + "group": "Contributing", + "pages": [ + "resources/develop-contribute/contribute/tests", + "resources/develop-contribute/contribute/continuous-integration", + "resources/develop-contribute/contribute/contrib", + "resources/develop-contribute/contribute/style", + "resources/develop-contribute/contribute/building-and-benchmarking-deflate-qpl", + "resources/develop-contribute/contribute/integrating-rust-libraries", + "resources/develop-contribute/contribute/profile-guided-optimization", + "resources/develop-contribute/contribute/backports" + ] + }, + { + "group": "Roadmap", + "pages": [ + "resources/develop-contribute/roadmap" + ] + } + ] +} diff --git a/resources/contribute/roadmap.mdx b/resources/develop-contribute/roadmap.mdx similarity index 100% rename from resources/contribute/roadmap.mdx rename to resources/develop-contribute/roadmap.mdx diff --git a/resources/support-center/knowledge-base/cloud-services/custom-dns-alias-for-instance.mdx b/resources/support-center/knowledge-base/cloud-services/custom-dns-alias-for-instance.mdx index a0d8edab..36ebf5b0 100644 --- a/resources/support-center/knowledge-base/cloud-services/custom-dns-alias-for-instance.mdx +++ b/resources/support-center/knowledge-base/cloud-services/custom-dns-alias-for-instance.mdx @@ -24,7 +24,7 @@ This step is not needed if you are using signed certificates. Create a self-signed certificate with the domain name of your choice. In this example we will use a domain name `xyz-customdomain.com` and -create a certificate called `MyCertificate.crt`. Refer to ["Create SSL certificates"](/concepts/features/security/tls/configuring-tls#2-create-tls-certificates) +create a certificate called `MyCertificate.crt`. Refer to ["Create SSL certificates"](/core/concepts/features/security/tls/configuring-tls#2-create-tls-certificates) for further details. Add the certificate to `/etc/clickhouse-client/config.xml`: diff --git a/resources/support-center/knowledge-base/cloud-services/execute-system-queries-in-cloud.mdx b/resources/support-center/knowledge-base/cloud-services/execute-system-queries-in-cloud.mdx index c2ad318f..274af963 100644 --- a/resources/support-center/knowledge-base/cloud-services/execute-system-queries-in-cloud.mdx +++ b/resources/support-center/knowledge-base/cloud-services/execute-system-queries-in-cloud.mdx @@ -10,19 +10,19 @@ keywords: ['clusterAllReplicas'] {/* truncate */} ## Answer {#answer} -In order to execute the same query on all nodes of a ClickHouse Cloud service, we can use [clusterAllReplicas](/reference/functions/table-functions/cluster). +In order to execute the same query on all nodes of a ClickHouse Cloud service, we can use [clusterAllReplicas](/core/reference/functions/table-functions/cluster). For example, in order to get entries from a (node-local) system table from all nodes, you can use: ```sql SELECT ... FROM clusterAllReplicas(default, system.TABLE) ...; ``` -Similarly, you can execute the same [SYSTEM statement](/reference/statements/system) on all nodes with a single statement, by using the [ON CLUSTER](/reference/statements/distributed-ddl) clause: +Similarly, you can execute the same [SYSTEM statement](/core/reference/statements/system) on all nodes with a single statement, by using the [ON CLUSTER](/core/reference/statements/distributed-ddl) clause: ```sql SYSTEM ... ON CLUSTER default; ``` -For example for [dropping the filesystem cache](/reference/statements/system#drop-filesystem-cache) from all nodes, you can use: +For example for [dropping the filesystem cache](/core/reference/statements/system#drop-filesystem-cache) from all nodes, you can use: ```sql SYSTEM DROP FILESYSTEM CACHE ON CLUSTER default; ``` diff --git a/resources/support-center/knowledge-base/cloud-services/ingest-failures-23-9-release.mdx b/resources/support-center/knowledge-base/cloud-services/ingest-failures-23-9-release.mdx index 1a94a51a..4fb37e69 100644 --- a/resources/support-center/knowledge-base/cloud-services/ingest-failures-23-9-release.mdx +++ b/resources/support-center/knowledge-base/cloud-services/ingest-failures-23-9-release.mdx @@ -10,7 +10,7 @@ keywords: ['GRANT', 'Permission Errors'] {/* truncate */} ## Resolving Ingest Failures After ClickHouse 23.9 Release {#resolving-ingest-failures-after-clickhouse-239-release} -The root cause of these permissions errors has been identified and is due to more strict checking of grants in the new release for [`async_inserts`](/concepts/operations/insert/asyncinserts). +The root cause of these permissions errors has been identified and is due to more strict checking of grants in the new release for [`async_inserts`](/core/concepts/features/operations/insert/asyncinserts). To fix this issue, grants must be updated for your service to work. Check the error message indicating the missing grants and add those needed grants manually. The required additional grants for the tables using `async_inserts` will either be the `SELECT` or `dictGet` grant. @@ -23,6 +23,6 @@ GRANT SELECT ON mydb.insertTable TO insert_role WITH GRANT OPTION GRANT dictGet ON mydb.insertDictionary TO insert_role ``` -To learn more about the `GRANT` command, please see [this page](/reference/statements/grant). +To learn more about the `GRANT` command, please see [this page](/core/reference/statements/grant). If you are unable to perform this change, then please contact [ClickHouse Support](https://clickhouse.com/support/program) for assistance. diff --git a/resources/support-center/knowledge-base/cloud-services/multi-region-replication.mdx b/resources/support-center/knowledge-base/cloud-services/multi-region-replication.mdx index a7303d56..5e709fae 100644 --- a/resources/support-center/knowledge-base/cloud-services/multi-region-replication.mdx +++ b/resources/support-center/knowledge-base/cloud-services/multi-region-replication.mdx @@ -12,4 +12,4 @@ The short answer is "yes". However, we recommend keeping latency between all reg Configuration-wise there's no difference compared to single-region replication, simply use hosts that are located in different locations for replicas. -For more information, see [full article on data replication](/reference/engines/table-engines/mergetree-family/replication). +For more information, see [full article on data replication](/core/reference/engines/table-engines/mergetree-family/replication). diff --git a/resources/support-center/knowledge-base/configuration-settings/about-quotas-and-query-complexity.mdx b/resources/support-center/knowledge-base/configuration-settings/about-quotas-and-query-complexity.mdx index e3c73c44..60f40908 100644 --- a/resources/support-center/knowledge-base/configuration-settings/about-quotas-and-query-complexity.mdx +++ b/resources/support-center/knowledge-base/configuration-settings/about-quotas-and-query-complexity.mdx @@ -10,7 +10,7 @@ description: 'Quotas and Query Complexity are powerful ways to limit and restric {/* truncate */} ## About Quotas and Query complexity {#about-quotas-and-query-complexity} -[Quotas](/concepts/features/configuration/server-config/quotas) and [query complexity](/concepts/features/configuration/settings/query-complexity) are powerful ways to limit and restrict what users can do in ClickHouse. +[Quotas](/core/concepts/features/configuration/server-config/quotas) and [query complexity](/core/concepts/features/configuration/settings/query-complexity) are powerful ways to limit and restrict what users can do in ClickHouse. Quotas do apply restrictions within the context of a time interval, while query complexity applies regardless of time intervals. diff --git a/resources/support-center/knowledge-base/configuration-settings/alter-user-settings-exception.mdx b/resources/support-center/knowledge-base/configuration-settings/alter-user-settings-exception.mdx index a59dbd1b..32f64dec 100644 --- a/resources/support-center/knowledge-base/configuration-settings/alter-user-settings-exception.mdx +++ b/resources/support-center/knowledge-base/configuration-settings/alter-user-settings-exception.mdx @@ -17,12 +17,12 @@ Here are a few options to troubleshoot this error: ## Edit users.xml directly {#edit-usersxml-directly} You can edit or add the desired settings for a specific user in `users.xml` directly in the file `/etc/clickhouse-server/users.d`. -Read more about `users.xml` [here](/concepts/features/configuration/settings/settings-profiles). +Read more about `users.xml` [here](/core/concepts/features/configuration/settings/settings-profiles). ## Create another user {#create-another-user} You can create another user with the specified settings, then connect to ClickHouse using that new user. -View [this page](/reference/statements/create/user) to learn how to create users. +View [this page](/core/reference/statements/create/user) to learn how to create users. ## Enable SQL-driven access control {#enable-sql-driven-access-control} -You can enable SQL-drive access control and account management for the default user. The steps to enable this are specified in this [page](/concepts/features/security/access-rights#enabling-access-control). \ No newline at end of file +You can enable SQL-drive access control and account management for the default user. The steps to enable this are specified in this [page](/core/concepts/features/security/access-rights#enabling-access-control). \ No newline at end of file diff --git a/resources/support-center/knowledge-base/data-import-export/cannot-append-data-to-parquet-format.mdx b/resources/support-center/knowledge-base/data-import-export/cannot-append-data-to-parquet-format.mdx index 4449af5f..379330bb 100644 --- a/resources/support-center/knowledge-base/data-import-export/cannot-append-data-to-parquet-format.mdx +++ b/resources/support-center/knowledge-base/data-import-export/cannot-append-data-to-parquet-format.mdx @@ -49,7 +49,7 @@ INSERT INTO parquet_test VALUES Code: 641. DB::Exception: Received from localhost:9000. DB::Exception: Cannot append data in format Parquet to file, because this format doesn't support appends. You can allow to create a new file on each insert by enabling setting engine_file_allow_create_multiple_files. (CANNOT_APPEND_TO_FILE) ``` -You can not append to Parquet files in ClickHouse. But you can tell ClickHouse to create a new file for every `INSERT` by enabling the [`engine_file_allow_create_multiple_files` setting](/reference/settings/session-settings#engine_file_allow_create_multiple_files). If enabled, on each insert a new file will be created with a name following this pattern: +You can not append to Parquet files in ClickHouse. But you can tell ClickHouse to create a new file for every `INSERT` by enabling the [`engine_file_allow_create_multiple_files` setting](/core/reference/settings/session-settings#engine_file_allow_create_multiple_files). If enabled, on each insert a new file will be created with a name following this pattern: `data.Parquet` -> `data.1.Parquet` -> `data.2.Parquet`, etc.: diff --git a/resources/support-center/knowledge-base/data-import-export/file-export.mdx b/resources/support-center/knowledge-base/data-import-export/file-export.mdx index 34afa033..2d169fb8 100644 --- a/resources/support-center/knowledge-base/data-import-export/file-export.mdx +++ b/resources/support-center/knowledge-base/data-import-export/file-export.mdx @@ -10,7 +10,7 @@ keywords: ['Exporting Data', 'INTO OUTFILE', 'File Table Engine'] {/* truncate */} ## Using INTO OUTFILE Clause {#using-into-outfile-clause} -Add an [INTO OUTFILE](/reference/statements/select/into-outfile) clause to your query. +Add an [INTO OUTFILE](/core/reference/statements/select/into-outfile) clause to your query. For example: @@ -34,7 +34,7 @@ FROM nyc_taxi INTO OUTFILE 'taxi_rides.tsv.gz' ``` -If ClickHouse can not determine the format from the file extension, then the output format defaults to [TabSeparated](/reference/formats) for output data. To specify the [output format](/reference/formats), use the [FORMAT clause](/reference/statements/select/format). +If ClickHouse can not determine the format from the file extension, then the output format defaults to [TabSeparated](/core/reference/formats) for output data. To specify the [output format](/core/reference/formats), use the [FORMAT clause](/core/reference/statements/select/format). For example: @@ -46,7 +46,7 @@ FORMAT CSV ``` ## Using the File table engine {#using-a-file-engine-table} -Another option is to use the [File](/reference/engines/table-engines/special/file) table engine, where ClickHouse uses the file to store the data. You can perform queries and inserts directly on the file. +Another option is to use the [File](/core/reference/engines/table-engines/special/file) table engine, where ClickHouse uses the file to store the data. You can perform queries and inserts directly on the file. For example: @@ -79,4 +79,4 @@ Using the `File` table engine is incredibly handy for creating and querying file $ clickhouse-client --query "SELECT * from table" --format FormatName > result.txt ``` -See [clickhouse-client](/integrations/connectors/data-integrations/drivers-and-interfaces/cli). +See [clickhouse-client](/core/concepts/features/interfaces/cli). diff --git a/resources/support-center/knowledge-base/data-import-export/importing-and-working-with-json-array-objects.mdx b/resources/support-center/knowledge-base/data-import-export/importing-and-working-with-json-array-objects.mdx index 259e1234..946bc918 100644 --- a/resources/support-center/knowledge-base/data-import-export/importing-and-working-with-json-array-objects.mdx +++ b/resources/support-center/knowledge-base/data-import-export/importing-and-working-with-json-array-objects.mdx @@ -296,4 +296,4 @@ Query id: d4882fc3-9f99-4e87-9f89-47683f10656d Please remember, at the time of writing this article the current implementation of JSON is experimental and not suited for production. -This example highlights how to quickly import JSON and start querying it and represents a tradeoff between the ease of use where we import the JSON objects as `JSON` type with no need to specify upfront the schema type. Convenient for a quick test however for long term use of the data we would like to, with regards to this example to store the data using the most appropriate types, so for the `time` field, use `DateTime` instead of `String`, in order to avoid any post-ingestion phase conversion as illustrated above. Please refer to the [documentation](/integrations/connectors/data-ingestion/data-formats/json/intro) for more about handling JSON. +This example highlights how to quickly import JSON and start querying it and represents a tradeoff between the ease of use where we import the JSON objects as `JSON` type with no need to specify upfront the schema type. Convenient for a quick test however for long term use of the data we would like to, with regards to this example to store the data using the most appropriate types, so for the `time` field, use `DateTime` instead of `String`, in order to avoid any post-ingestion phase conversion as illustrated above. Please refer to the [documentation](/core/guides/clickhouse/data-formats/json/intro) for more about handling JSON. diff --git a/resources/support-center/knowledge-base/data-import-export/importing-geojason-with-nested-object-array.mdx b/resources/support-center/knowledge-base/data-import-export/importing-geojason-with-nested-object-array.mdx index 9de2c682..4383bd72 100644 --- a/resources/support-center/knowledge-base/data-import-export/importing-geojason-with-nested-object-array.mdx +++ b/resources/support-center/knowledge-base/data-import-export/importing-geojason-with-nested-object-array.mdx @@ -50,7 +50,7 @@ DESCRIBE TABLE file('geojson.json', 'JSON')
    The requirement here is to generate a row for each `object` in the `features array`. -The data type inferred for the field `geometry` suggests that it translates to ClickHouse's **MultiPolygon** [data type](/reference/data-types/geo#multipolygon). +The data type inferred for the field `geometry` suggests that it translates to ClickHouse's **MultiPolygon** [data type](/core/reference/data-types/geo#multipolygon). ```sql create table geojson @@ -171,7 +171,7 @@ ARRAY JOIN features ``` It can be fixed by casting `multipolygon.properties.coordinates` to `Array(Array(Array(Tuple(Float64,Float64))))`. -To do so, we can use the function [arrayMap(func,arr1,...)](/reference/functions/regular-functions/array-functions#arraymapfunc-arr1-). +To do so, we can use the function [arrayMap(func,arr1,...)](/core/reference/functions/regular-functions/array-functions#arraymapfunc-arr1-). ```sql SELECT distinct @@ -241,4 +241,4 @@ FROM geojson ### Conclusion {#conclusion} Handling JSON can result in a complex task. This tutorial addressed a scenario where a nested object array could make this task even more difficult. -For any other JSON-related requirements, please refer to our [documentation](/integrations/connectors/data-ingestion/data-formats/json/intro). +For any other JSON-related requirements, please refer to our [documentation](/core/guides/clickhouse/data-formats/json/intro). diff --git a/resources/support-center/knowledge-base/data-import-export/json-extract-example.mdx b/resources/support-center/knowledge-base/data-import-export/json-extract-example.mdx index 69a933f0..7ddbede2 100644 --- a/resources/support-center/knowledge-base/data-import-export/json-extract-example.mdx +++ b/resources/support-center/knowledge-base/data-import-export/json-extract-example.mdx @@ -8,7 +8,7 @@ keywords: ['JSON', 'extract base types'] ## JSON Extract example -This is just a short example that illustrates the use of [JSONExtract](/reference/functions/regular-functions/json-functions) functions. +This is just a short example that illustrates the use of [JSONExtract](/core/reference/functions/regular-functions/json-functions) functions. Create a table: diff --git a/resources/support-center/knowledge-base/data-import-export/json-import.mdx b/resources/support-center/knowledge-base/data-import-export/json-import.mdx index 642d835c..6f52012e 100644 --- a/resources/support-center/knowledge-base/data-import-export/json-import.mdx +++ b/resources/support-center/knowledge-base/data-import-export/json-import.mdx @@ -8,17 +8,17 @@ keywords: ['JSON import', 'JSONEachRow format', 'data import', 'JSON ingestion', doc_type: 'guide' --- -ClickHouse supports a wide range of [data formats for input and output](/reference/formats). There are multiple JSON variations among them, but the most commonly used for data ingestion is [JSONEachRow](/reference/formats/JSON/JSONEachRow). It expects one JSON object per row, each object separated by a newline. +ClickHouse supports a wide range of [data formats for input and output](/core/reference/formats). There are multiple JSON variations among them, but the most commonly used for data ingestion is [JSONEachRow](/core/reference/formats/JSON/JSONEachRow). It expects one JSON object per row, each object separated by a newline. ## Examples {#examples} -Using [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http): +Using [HTTP interface](/core/concepts/features/interfaces/http): ``` bash $ echo '{"foo":"bar"}' | curl 'http://localhost:8123/?query=INSERT%20INTO%20test%20FORMAT%20JSONEachRow' --data-binary @- ``` -Using [CLI interface](/integrations/connectors/data-integrations/drivers-and-interfaces/cli): +Using [CLI interface](/core/concepts/features/interfaces/cli): ``` bash $ echo '{"foo":"bar"}' | clickhouse-client --query="INSERT INTO test FORMAT JSONEachRow" @@ -29,7 +29,7 @@ Instead of inserting data manually, you might consider to use an [integration to ## Useful settings {#useful-settings} - `input_format_skip_unknown_fields` allows to insert JSON even if there were additional fields not present in table schema (by discarding them). -- `input_format_import_nested_json` allows to insert nested JSON objects into columns of [Nested](/reference/data-types/nested-data-structures) type. +- `input_format_import_nested_json` allows to insert nested JSON objects into columns of [Nested](/core/reference/data-types/nested-data-structures) type. Settings are specified as `GET` parameters for the HTTP interface or as additional command-line arguments prefixed with `--` for the `CLI` interface. diff --git a/resources/support-center/knowledge-base/data-import-export/kafka-clickhouse-json.mdx b/resources/support-center/knowledge-base/data-import-export/kafka-clickhouse-json.mdx index 4e934afe..6b17a572 100644 --- a/resources/support-center/knowledge-base/data-import-export/kafka-clickhouse-json.mdx +++ b/resources/support-center/knowledge-base/data-import-export/kafka-clickhouse-json.mdx @@ -9,7 +9,7 @@ tags: ['Data Formats', 'Data Ingestion'] {/* truncate */} ## Kafka and the JSON Data Type {#kafka-and-the-json-data-type} -With the introduction of the new [`JSON`](/reference/data-types/newjson) data type, ClickHouse is now a good choice of [database for doing JSON analytics](https://clickhouse.com/engineering-resources/json-database). +With the introduction of the new [`JSON`](/core/reference/data-types/newjson) data type, ClickHouse is now a good choice of [database for doing JSON analytics](https://clickhouse.com/engineering-resources/json-database). In this guide, we're going to learn how to load JSON messages from Apache Kafka directly into a single `JSON` column in ClickHouse. ## Setup Kafka {#setup-kafka} @@ -66,7 +66,7 @@ ENGINE = Kafka( ); ``` -Note that we're using the [`JSONAsObject`](/reference/formats/JSON/JSONAsObject) format, which will ensure that incoming messages are made available as a JSON object. +Note that we're using the [`JSONAsObject`](/core/reference/formats/JSON/JSONAsObject) format, which will ensure that incoming messages are made available as a JSON object. This format can only be parsed into a table that has a single column with the `JSON` type. Next, we'll create the underlying table to store the Wiki data: diff --git a/resources/support-center/knowledge-base/data-import-export/mysql-to-parquet-csv-json.mdx b/resources/support-center/knowledge-base/data-import-export/mysql-to-parquet-csv-json.mdx index 3f69a10d..8e5665ae 100644 --- a/resources/support-center/knowledge-base/data-import-export/mysql-to-parquet-csv-json.mdx +++ b/resources/support-center/knowledge-base/data-import-export/mysql-to-parquet-csv-json.mdx @@ -12,7 +12,7 @@ keywords: ['MySQL', 'Parquet', 'CSV', 'JSON'] ## Exporting MySQL Data to Parquet, CSV, or JSON Using ClickHouse {#exporting-mysql-data-to-parquet-csv-or-json-using-clickhouse} The `clickhouse-local` tool makes it quick and easy to read data from MySQL and output the data into lots of different formats, including Parquet, CSV, and JSON. We are going to: -- Use the [`mysql` table function](/reference/functions/table-functions/mysql) to read the data +- Use the [`mysql` table function](/core/reference/functions/table-functions/mysql) to read the data - Use the `INTO OUTFILE _filename_ FORMAT` clause and specify the desired output format The `clickhouse-local` tool is a part of the ClickHouse binary. Download it using the following: @@ -84,4 +84,4 @@ To go from MySQL to JSON, just change the extension on the filename to `jsonl` o INTO OUTFILE 'my_output_file.ndjson'" ``` -It's impressive how simple yet powerful the `clickhouse-local` tool really is. You can easily read data from a database like MySQL and output it into [all types of different output formats](/reference/formats). +It's impressive how simple yet powerful the `clickhouse-local` tool really is. You can easily read data from a database like MySQL and output it into [all types of different output formats](/core/reference/formats). diff --git a/resources/support-center/knowledge-base/data-import-export/parquet-to-csv-json.mdx b/resources/support-center/knowledge-base/data-import-export/parquet-to-csv-json.mdx index d5ae685a..feeedc87 100644 --- a/resources/support-center/knowledge-base/data-import-export/parquet-to-csv-json.mdx +++ b/resources/support-center/knowledge-base/data-import-export/parquet-to-csv-json.mdx @@ -10,9 +10,9 @@ keywords: ['Converting', 'Parquet', 'CSV', 'JSON'] {/* truncate */} ## Converting Files from Parquet to CSV or JSON {#converting-files-from-parquet-to-csv-or-json} -You can use `clickhouse-local` to convert files between any of the [input and output formats](/reference/formats) that ClickHouse supports (which is over 70 different formats!). In this article, we are convert a Parquet file in S3 into a CSV and JSON file. +You can use `clickhouse-local` to convert files between any of the [input and output formats](/core/reference/formats) that ClickHouse supports (which is over 70 different formats!). In this article, we are convert a Parquet file in S3 into a CSV and JSON file. -Let's start at the beginning. ClickHouse has a collection of [table functions](/reference/functions/table-functions) that read from files, databases and other resoures and converts the data to a table. To demonstrate, suppose we have a Parquet file in S3. We will use the `s3` table function to read it (ClickHouse knows it's a Parquet file based on the filename). +Let's start at the beginning. ClickHouse has a collection of [table functions](/core/reference/functions/table-functions) that read from files, databases and other resoures and converts the data to a table. To demonstrate, suppose we have a Parquet file in S3. We will use the `s3` table function to read it (ClickHouse knows it's a Parquet file based on the filename). But first, let's download the `clickhouse` binary: @@ -132,4 +132,4 @@ FROM file('house_prices.csv') INTO OUTFILE 'house_prices.parquet'" ``` -As we mentioned above, you can use any of the ClickHouse [input and output formats](/reference/formats) along with `clickhouse local` to easily convert files into different formats. +As we mentioned above, you can use any of the ClickHouse [input and output formats](/core/reference/formats) along with `clickhouse local` to easily convert files into different formats. diff --git a/resources/support-center/knowledge-base/data-import-export/postgresql-to-parquet-csv-json.mdx b/resources/support-center/knowledge-base/data-import-export/postgresql-to-parquet-csv-json.mdx index 6a022a21..a08e22fe 100644 --- a/resources/support-center/knowledge-base/data-import-export/postgresql-to-parquet-csv-json.mdx +++ b/resources/support-center/knowledge-base/data-import-export/postgresql-to-parquet-csv-json.mdx @@ -12,10 +12,10 @@ keywords: ['PostgreSQL', 'Parquet', 'CSV', 'JSON'] ## How to export PostgreSQL data to Parquet, CSV or JSON {#how-to-export-postgresql-data-to-parquet-csv-or-json} This one is easy with `clickhouse-local`: -- Use the [`postgresql` table function](/reference/functions/table-functions/postgresql) to read the data +- Use the [`postgresql` table function](/core/reference/functions/table-functions/postgresql) to read the data - Use the `INTO OUTFILE _filename_ FORMAT` clause and specify the desired output format -The output format can be any of the supported [ouput formats](/reference/formats) in ClickHouse. Let's look at a few examples... +The output format can be any of the supported [ouput formats](/core/reference/formats) in ClickHouse. Let's look at a few examples... These examples use `clickhouse-local`, which is a part of the ClickHouse binary. Download it using the following: @@ -89,7 +89,7 @@ INTO OUTFILE 'my_output_file.ndjson'" ``` -You don't have to stop here - you can use `clickhouse-local` to pull data from PostgreSQL and send it to [all types of output formats](/reference/formats). +You don't have to stop here - you can use `clickhouse-local` to pull data from PostgreSQL and send it to [all types of output formats](/core/reference/formats). If ClickHouse can not determine the output type by the filename extension, or if you want to specifically choose a format, add the `FOMRAT` clause: diff --git a/resources/support-center/knowledge-base/data-management/calculate-ratio-of-zero-sparse-serialization.mdx b/resources/support-center/knowledge-base/data-management/calculate-ratio-of-zero-sparse-serialization.mdx index 5d106c6b..167e2d86 100644 --- a/resources/support-center/knowledge-base/data-management/calculate-ratio-of-zero-sparse-serialization.mdx +++ b/resources/support-center/knowledge-base/data-management/calculate-ratio-of-zero-sparse-serialization.mdx @@ -8,7 +8,7 @@ keywords: ['Empty/Zero Ratio', 'Calculate'] ## How to calculate the ratio of empty/zero values in every column in a table -If a column is sparse (empty or contains mostly zeros), ClickHouse can encode it in a sparse format and automatically optimize calculations - the data does not require full decompression during queries. In fact, if you know how sparse a column is, you can define its ratio using the [`ratio_of_defaults_for_sparse_serialization` setting](/reference/settings/merge-tree-settings#ratio_of_defaults_for_sparse_serialization) to optimize serialization. +If a column is sparse (empty or contains mostly zeros), ClickHouse can encode it in a sparse format and automatically optimize calculations - the data does not require full decompression during queries. In fact, if you know how sparse a column is, you can define its ratio using the [`ratio_of_defaults_for_sparse_serialization` setting](/core/reference/settings/merge-tree-settings#ratio_of_defaults_for_sparse_serialization) to optimize serialization. This handy query can take a while, but it analyzes every row in your table and determines the ratio of values that are zero (or the default) in every column in the specified table: @@ -19,7 +19,7 @@ FROM table_name FORMAT Vertical ``` -For example, we ran this query above on the [environmental sensors dataset](/get-started/sample-datasets/environmental-sensors) table named `sensors` which has over 20B rows and 19 columns: +For example, we ran this query above on the [environmental sensors dataset](/core/get-started/sample-datasets/environmental-sensors) table named `sensors` which has over 20B rows and 19 columns: ```sql SELECT * diff --git a/resources/support-center/knowledge-base/data-management/read-consistency.mdx b/resources/support-center/knowledge-base/data-management/read-consistency.mdx index bf1140a1..c7f66873 100644 --- a/resources/support-center/knowledge-base/data-management/read-consistency.mdx +++ b/resources/support-center/knowledge-base/data-management/read-consistency.mdx @@ -27,7 +27,7 @@ A) 3. run `SYSTEM SYNC REPLICA db.table_name LIGHTWEIGHT` 4. read the latest data -See `SYSTEM` commands [reference](/reference/statements/system#sync-replica) +See `SYSTEM` commands [reference](/core/reference/statements/system#sync-replica) OR @@ -41,7 +41,7 @@ SETTINGS select_sequential_consistency = 1 Note that when using ClickHouse Cloud and its default [SharedMergeTree](/products/cloud/features/infrastructure/shared-merge-tree) table engine, using `insert_quorum_parallel` is not required — all inserts to SharedMergeTree are quorum inserts (by design). -Using [`SYSTEM SYNC REPLICAS`](/reference/statements/system#sync-replica) or [`select_sequential_consistency`](/reference/settings/session-settings#select_sequential_consistency) will increase the load on ClickHouse Keeper and might have slower performance depending on the load on the service. +Using [`SYSTEM SYNC REPLICAS`](/core/reference/statements/system#sync-replica) or [`select_sequential_consistency`](/core/reference/settings/session-settings#select_sequential_consistency) will increase the load on ClickHouse Keeper and might have slower performance depending on the load on the service. The recommended approach is to do the write/read using the same session or the native protocol (sticky connection). diff --git a/resources/support-center/knowledge-base/data-management/when-is-ttl-applied.mdx b/resources/support-center/knowledge-base/data-management/when-is-ttl-applied.mdx index d93fdc93..28e98dd6 100644 --- a/resources/support-center/knowledge-base/data-management/when-is-ttl-applied.mdx +++ b/resources/support-center/knowledge-base/data-management/when-is-ttl-applied.mdx @@ -8,7 +8,7 @@ keywords: ['TTL'] ## TTL Rules and Control -TTL is going to be ***eventually*** applied. What does that mean? The `MergeTree` table setting [`merge_with_ttl_timeout`](/reference/engines/table-engines/mergetree-family/mergetree#merge_with_ttl_timeout) sets the minimum delay in seconds before repeating a merge with delete TTL. The default value is 14400 seconds (4 hours). But that is just the minimum delay, it can take longer until a merge for delete TTL is triggered. +TTL is going to be ***eventually*** applied. What does that mean? The `MergeTree` table setting [`merge_with_ttl_timeout`](/core/reference/engines/table-engines/mergetree-family/mergetree#merge_with_ttl_timeout) sets the minimum delay in seconds before repeating a merge with delete TTL. The default value is 14400 seconds (4 hours). But that is just the minimum delay, it can take longer until a merge for delete TTL is triggered. You can view all of your current TTL settings (like `merge_with_ttl_timeout`) with this query: @@ -67,7 +67,7 @@ The response looks like: └──────────────────────┴───────┴─────────┴─────────────────────────────────┴──────┴──────┴──────────┴────────┴─────────┴───────────┘ ``` -Check the docs for how to modify the [`background_pool_size` setting](/reference/settings/server-settings/settings#background_pool_size), which is configured as: +Check the docs for how to modify the [`background_pool_size` setting](/core/reference/settings/server-settings/settings#background_pool_size), which is configured as: ```xml 16 diff --git a/resources/support-center/knowledge-base/general-faqs/columnar-database.mdx b/resources/support-center/knowledge-base/general-faqs/columnar-database.mdx index eb2aceb7..bc258b29 100644 --- a/resources/support-center/knowledge-base/general-faqs/columnar-database.mdx +++ b/resources/support-center/knowledge-base/general-faqs/columnar-database.mdx @@ -28,6 +28,6 @@ Here is the illustration of the difference between traditional row-oriented syst **Columnar** -A columnar database is the preferred choice for analytical applications because it allows having many columns in a table just in case, but to not pay the cost for unused columns on read query execution time (a traditional OLTP database reads all of the data during queries as the data is stored in rows and not columns). Column-oriented databases are designed for big data processing and data warehousing, they often natively scale using distributed clusters of low-cost hardware to increase throughput. ClickHouse does it with combination of [distributed](/reference/engines/table-engines/special/distributed) and [replicated](/reference/engines/table-engines/mergetree-family/replication) tables. +A columnar database is the preferred choice for analytical applications because it allows having many columns in a table just in case, but to not pay the cost for unused columns on read query execution time (a traditional OLTP database reads all of the data during queries as the data is stored in rows and not columns). Column-oriented databases are designed for big data processing and data warehousing, they often natively scale using distributed clusters of low-cost hardware to increase throughput. ClickHouse does it with combination of [distributed](/core/reference/engines/table-engines/special/distributed) and [replicated](/core/reference/engines/table-engines/mergetree-family/replication) tables. If you'd like a deep dive into the history of column databases, how they differ from row-oriented databases, and the use cases for a column database, see [the column databases guide](https://clickhouse.com/engineering-resources/what-is-columnar-database). diff --git a/resources/support-center/knowledge-base/general-faqs/distributed-join.mdx b/resources/support-center/knowledge-base/general-faqs/distributed-join.mdx index bdb2bd18..c51f0247 100644 --- a/resources/support-center/knowledge-base/general-faqs/distributed-join.mdx +++ b/resources/support-center/knowledge-base/general-faqs/distributed-join.mdx @@ -17,5 +17,5 @@ When the data isn't co-located, ClickHouse allows a broadcast join, when parts o As of 2025, ClickHouse does not perform shuffle joins, meaning neither side of the join is redistributed across the cluster network according to the join keys. -For information on joins in ClickHouse more generally, see the ["JOIN clause"](/reference/statements/select/join#supported-types-of-join) page. +For information on joins in ClickHouse more generally, see the ["JOIN clause"](/core/reference/statements/select/join#supported-types-of-join) page. diff --git a/resources/support-center/knowledge-base/general-faqs/faq-index.mdx b/resources/support-center/knowledge-base/general-faqs/faq-index.mdx index 0d9356ef..a7bd9952 100644 --- a/resources/support-center/knowledge-base/general-faqs/faq-index.mdx +++ b/resources/support-center/knowledge-base/general-faqs/faq-index.mdx @@ -1,5 +1,5 @@ --- -slug: /concepts/faq +slug: /core/concepts/faq title: 'FAQ' description: 'Landing page for FAQ' doc_type: 'landing-page' diff --git a/resources/support-center/knowledge-base/general-faqs/index.mdx b/resources/support-center/knowledge-base/general-faqs/index.mdx index 317e8fba..df407fe0 100644 --- a/resources/support-center/knowledge-base/general-faqs/index.mdx +++ b/resources/support-center/knowledge-base/general-faqs/index.mdx @@ -7,14 +7,14 @@ description: 'Index page listing general questions about ClickHouse' doc_type: 'landing-page' --- -- [What is ClickHouse?](/get-started/about/intro) -- [Why is ClickHouse so fast?](/get-started/about/why-clickhouse-is-so-fast) +- [What is ClickHouse?](/core/get-started/about/intro) +- [Why is ClickHouse so fast?](/core/get-started/about/why-clickhouse-is-so-fast) - [Who is using ClickHouse?](/resources/support-center/knowledge-base/general-faqs/who-is-using-clickhouse) - [What does "ClickHouse" mean?](/resources/support-center/knowledge-base/general-faqs/dbms-naming) - [What does "Не тормозит" mean?](/resources/support-center/knowledge-base/general-faqs/ne-tormozit) - [What is OLAP?](/resources/support-center/knowledge-base/general-faqs/olap) - [What is a columnar database?](/resources/support-center/knowledge-base/general-faqs/columnar-database) -- [How do I choose a primary key?](/guides/cloud-oss/data-modelling/sparse-primary-indexes) +- [How do I choose a primary key?](/core/guides/clickhouse/data-modelling/sparse-primary-indexes) - [Why not use something like MapReduce?](/resources/support-center/knowledge-base/general-faqs/mapreduce) - [How do I contribute code to ClickHouse?](/resources/support-center/knowledge-base/general-faqs/how-do-i-contribute-code-to-clickhouse) diff --git a/resources/support-center/knowledge-base/general-faqs/key-value.mdx b/resources/support-center/knowledge-base/general-faqs/key-value.mdx index 785b2fae..00513506 100644 --- a/resources/support-center/knowledge-base/general-faqs/key-value.mdx +++ b/resources/support-center/knowledge-base/general-faqs/key-value.mdx @@ -14,6 +14,6 @@ However, there might be situations where it still makes sense to use ClickHouse If you decide to go against recommendations and run some key-value-like queries against ClickHouse, here are some tips: -- The key reason why point queries are expensive in ClickHouse is its sparse primary index of main [MergeTree table engine family](/reference/engines/table-engines/mergetree-family/mergetree). This index can't point to each specific row of data, instead, it points to each N-th and the system has to scan from the neighboring N-th row to the desired one, reading excessive data along the way. In a key-value scenario, it might be useful to reduce the value of N with the `index_granularity` setting. +- The key reason why point queries are expensive in ClickHouse is its sparse primary index of main [MergeTree table engine family](/core/reference/engines/table-engines/mergetree-family/mergetree). This index can't point to each specific row of data, instead, it points to each N-th and the system has to scan from the neighboring N-th row to the desired one, reading excessive data along the way. In a key-value scenario, it might be useful to reduce the value of N with the `index_granularity` setting. - ClickHouse keeps each column in a separate set of files, so to assemble one complete row it needs to go through each of those files. Their count increases linearly with the number of columns, so in the key-value scenario, it might be worth avoiding using many columns and put all your payload in a single `String` column encoded in some serialization format like JSON, Protobuf, or whatever makes sense. -- There's an alternative approach that uses [Join](/reference/engines/table-engines/special/join) table engine instead of normal `MergeTree` tables and [joinGet](/reference/functions/regular-functions/other-functions#joinGet) function to retrieve the data. It can provide better query performance but might have some usability and reliability issues. Here's an [usage example](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/00800_versatile_storage_join.sql#L49-L51). +- There's an alternative approach that uses [Join](/core/reference/engines/table-engines/special/join) table engine instead of normal `MergeTree` tables and [joinGet](/core/reference/functions/regular-functions/other-functions#joinGet) function to retrieve the data. It can provide better query performance but might have some usability and reliability issues. Here's an [usage example](https://github.com/ClickHouse/ClickHouse/blob/master/tests/queries/0_stateless/00800_versatile_storage_join.sql#L49-L51). diff --git a/resources/support-center/knowledge-base/general-faqs/olap.mdx b/resources/support-center/knowledge-base/general-faqs/olap.mdx index a1654699..70a8322a 100644 --- a/resources/support-center/knowledge-base/general-faqs/olap.mdx +++ b/resources/support-center/knowledge-base/general-faqs/olap.mdx @@ -33,7 +33,7 @@ All database management systems could be classified into two groups: OLAP (Onlin In practice OLAP and OLTP aren't categories, it's more like a spectrum. Most real systems usually focus on one of them but provide some solutions or workarounds if the opposite kind of workload is also desired. This situation often forces businesses to operate multiple storage systems integrated, which might be not so big deal but having more systems make it more expensive to maintain. So the trend of recent years is HTAP (**Hybrid Transactional/Analytical Processing**) when both kinds of the workload are handled equally well by a single database management system. -Even if a DBMS started as a pure OLAP or pure OLTP, they're forced to move towards that HTAP direction to keep up with their competition. And ClickHouse is no exception, initially, it has been designed as [fast-as-possible OLAP system](/get-started/about/why-clickhouse-is-so-fast) and it still doesn't have full-fledged transaction support, but some features like consistent read/writes and mutations for updating/deleting data had to be added. +Even if a DBMS started as a pure OLAP or pure OLTP, they're forced to move towards that HTAP direction to keep up with their competition. And ClickHouse is no exception, initially, it has been designed as [fast-as-possible OLAP system](/core/get-started/about/why-clickhouse-is-so-fast) and it still doesn't have full-fledged transaction support, but some features like consistent read/writes and mutations for updating/deleting data had to be added. The fundamental trade-off between OLAP and OLTP systems remains: diff --git a/resources/support-center/knowledge-base/general-faqs/operations-index.mdx b/resources/support-center/knowledge-base/general-faqs/operations-index.mdx index c9bcb4b1..1aa293aa 100644 --- a/resources/support-center/knowledge-base/general-faqs/operations-index.mdx +++ b/resources/support-center/knowledge-base/general-faqs/operations-index.mdx @@ -10,10 +10,10 @@ keywords: ['operations', 'administration', 'deployment', 'cluster management', ' - [Which ClickHouse version should I use in production?](/resources/support-center/knowledge-base/setup-installation/production) - [Is it possible to deploy ClickHouse with separate storage and compute?](/resources/support-center/knowledge-base/general-faqs/separate-storage) - [Is it possible to delete old records from a ClickHouse table?](/resources/support-center/knowledge-base/tables-schema/delete-old-data) -- [How do I configure ClickHouse Keeper?](/guides/oss/deployment-and-scaling/keeper) -- [Can ClickHouse integrate with LDAP?](/concepts/features/security/configuring-ldap) -- [How do I configure users, roles and permissions in ClickHouse?](/concepts/features/security/access-rights) -- [Can you update or delete rows in ClickHouse?](/get-started/oss/starter-guides/mutations) +- [How do I configure ClickHouse Keeper?](/core/guides/oss/deployment-and-scaling/keeper) +- [Can ClickHouse integrate with LDAP?](/core/concepts/features/security/configuring-ldap) +- [How do I configure users, roles and permissions in ClickHouse?](/core/concepts/features/security/access-rights) +- [Can you update or delete rows in ClickHouse?](/core/get-started/quickstarts/mutations) - [Does ClickHouse support multi-region replication?](/resources/support-center/knowledge-base/cloud-services/multi-region-replication) diff --git a/resources/support-center/knowledge-base/general-faqs/separate-storage.mdx b/resources/support-center/knowledge-base/general-faqs/separate-storage.mdx index bd95e6ff..05b53b82 100644 --- a/resources/support-center/knowledge-base/general-faqs/separate-storage.mdx +++ b/resources/support-center/knowledge-base/general-faqs/separate-storage.mdx @@ -11,4 +11,4 @@ keywords: ['storage', 'disk configuration', 'data organization', 'volume managem The short answer is "yes". -Object storage (S3, GCS) can be used as the elastic primary storage backend for data in ClickHouse tables. [S3-backed MergeTree](/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse) and [GCS-backed MergeTree](/reference/functions/table-functions/gcs) guides are published. Only metadata is stored locally on compute nodes in this configuration. You can easily upscale and downscale compute resources in this setup as additional nodes only need to replicate metadata. +Object storage (S3, GCS) can be used as the elastic primary storage backend for data in ClickHouse tables. [S3-backed MergeTree](/integrations/connectors/data-ingestion/AWS/integrating-s3-with-clickhouse) and [GCS-backed MergeTree](/core/reference/functions/table-functions/gcs) guides are published. Only metadata is stored locally on compute nodes in this configuration. You can easily upscale and downscale compute resources in this setup as additional nodes only need to replicate metadata. diff --git a/resources/support-center/knowledge-base/general-faqs/time-series.mdx b/resources/support-center/knowledge-base/general-faqs/time-series.mdx index 72e75d7e..7c685199 100644 --- a/resources/support-center/knowledge-base/general-faqs/time-series.mdx +++ b/resources/support-center/knowledge-base/general-faqs/time-series.mdx @@ -10,10 +10,10 @@ keywords: ['time series', 'temporal data', 'use case', 'time-based analytics', ' _Note: Please see the blog [Working with Time series data in ClickHouse](https://clickhouse.com/blog/working-with-time-series-data-and-functions-ClickHouse) for additional examples of using ClickHouse for time series analysis._ -ClickHouse is a generic data storage solution for [OLAP](/resources/support-center/knowledge-base/general-faqs/olap) workloads, while there are many specialized [time-series database management systems](https://clickhouse.com/engineering-resources/what-is-time-series-database). Nevertheless, ClickHouse's [focus on query execution speed](/get-started/about/why-clickhouse-is-so-fast) allows it to outperform specialized systems in many cases. There are many independent benchmarks on this topic out there, so we're not going to conduct one here. Instead, let's focus on ClickHouse features that are important to use if that's your use case. +ClickHouse is a generic data storage solution for [OLAP](/resources/support-center/knowledge-base/general-faqs/olap) workloads, while there are many specialized [time-series database management systems](https://clickhouse.com/engineering-resources/what-is-time-series-database). Nevertheless, ClickHouse's [focus on query execution speed](/core/get-started/about/why-clickhouse-is-so-fast) allows it to outperform specialized systems in many cases. There are many independent benchmarks on this topic out there, so we're not going to conduct one here. Instead, let's focus on ClickHouse features that are important to use if that's your use case. -First of all, there are **[specialized codecs](/reference/statements/create/table#specialized-codecs)** which make typical time-series. Either common algorithms like `DoubleDelta` and `Gorilla` or specific to ClickHouse like `T64`. +First of all, there are **[specialized codecs](/core/reference/statements/create/table#specialized-codecs)** which make typical time-series. Either common algorithms like `DoubleDelta` and `Gorilla` or specific to ClickHouse like `T64`. -Second, time-series queries often hit only recent data, like one day or one week old. It makes sense to use servers that have both fast NVMe/SSD drives and high-capacity HDD drives. ClickHouse [TTL](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) feature allows to configure keeping fresh hot data on fast drives and gradually move it to slower drives as it ages. Rollup or removal of even older data is also possible if your requirements demand it. +Second, time-series queries often hit only recent data, like one day or one week old. It makes sense to use servers that have both fast NVMe/SSD drives and high-capacity HDD drives. ClickHouse [TTL](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl) feature allows to configure keeping fresh hot data on fast drives and gradually move it to slower drives as it ages. Rollup or removal of even older data is also possible if your requirements demand it. -Even though it's against ClickHouse philosophy of storing and processing raw data, you can use [materialized views](/reference/statements/create/view) to fit into even tighter latency or costs requirements. +Even though it's against ClickHouse philosophy of storing and processing raw data, you can use [materialized views](/core/reference/statements/create/view) to fit into even tighter latency or costs requirements. diff --git a/resources/support-center/knowledge-base/general-faqs/use-clickhouse-for-log-analytics.mdx b/resources/support-center/knowledge-base/general-faqs/use-clickhouse-for-log-analytics.mdx index a42ee273..37ce45b9 100644 --- a/resources/support-center/knowledge-base/general-faqs/use-clickhouse-for-log-analytics.mdx +++ b/resources/support-center/knowledge-base/general-faqs/use-clickhouse-for-log-analytics.mdx @@ -12,4 +12,4 @@ keywords: ['Log Analytics'] ## Using ClickHouse for Log Analytics {#using-clickhouse-for-log-analytics} ClickHouse is popular for logs and metrics analysis because of the real-time analytics capabilities provided. -See our official [Observability guide](/guides/observability) for further details. +See our official [Observability guide](/core/guides/use-cases/observability) for further details. diff --git a/resources/support-center/knowledge-base/general-faqs/vector-search.mdx b/resources/support-center/knowledge-base/general-faqs/vector-search.mdx index edf0628c..23676a7e 100644 --- a/resources/support-center/knowledge-base/general-faqs/vector-search.mdx +++ b/resources/support-center/knowledge-base/general-faqs/vector-search.mdx @@ -61,4 +61,4 @@ This query returns the `_file` names and `caption` of the top 10 images most lik ## Further Reading {#further-reading} To follow a more in-depth tutorial on vector search using ClickHouse, please see: -- [Exact and Approximate Vector Search](/reference/engines/table-engines/mergetree-family/annindexes) +- [Exact and Approximate Vector Search](/core/reference/engines/table-engines/mergetree-family/annindexes) diff --git a/resources/support-center/knowledge-base/general-faqs/why-recommend-clickhouse-keeper-over-zookeeper.mdx b/resources/support-center/knowledge-base/general-faqs/why-recommend-clickhouse-keeper-over-zookeeper.mdx index 0c478e50..6f138422 100644 --- a/resources/support-center/knowledge-base/general-faqs/why-recommend-clickhouse-keeper-over-zookeeper.mdx +++ b/resources/support-center/knowledge-base/general-faqs/why-recommend-clickhouse-keeper-over-zookeeper.mdx @@ -27,4 +27,4 @@ ClickHouse Keeper provides the coordination system for data replication and dist In addition, ClickHouse Support has observed a massive decrease in cluster problems in cases with sites who use `clickhouse-keeper` rather than ZooKeeper. -Check out the [Keeper docs page](/guides/oss/deployment-and-scaling/keeper) for more details on how to configure and run ClickHouse Keeper. \ No newline at end of file +Check out the [Keeper docs page](/core/guides/oss/deployment-and-scaling/keeper) for more details on how to configure and run ClickHouse Keeper. \ No newline at end of file diff --git a/resources/support-center/knowledge-base/integrations/how-to-set-up-ch-on-docker-odbc-connect-mssql.mdx b/resources/support-center/knowledge-base/integrations/how-to-set-up-ch-on-docker-odbc-connect-mssql.mdx index 09197651..1c45c099 100644 --- a/resources/support-center/knowledge-base/integrations/how-to-set-up-ch-on-docker-odbc-connect-mssql.mdx +++ b/resources/support-center/knowledge-base/integrations/how-to-set-up-ch-on-docker-odbc-connect-mssql.mdx @@ -223,5 +223,5 @@ Query id: 94724368-485d-4364-ae58-a435a225c37d For more information, please see: - [https://hub.docker.com/_/clickhouse](https://hub.docker.com/_/clickhouse) -- [https://clickhouse.com/docs/engines/table-engines/integrations/odbc](/reference/engines/table-engines/integrations/odbc) +- [https://clickhouse.com/docs/engines/table-engines/integrations/odbc](/core/reference/engines/table-engines/integrations/odbc) - [https://github.com/ClickHouse/clickhouse-odbc](https://github.com/ClickHouse/clickhouse-odbc) diff --git a/resources/support-center/knowledge-base/integrations/index.mdx b/resources/support-center/knowledge-base/integrations/index.mdx index 222da4e3..21ddb084 100644 --- a/resources/support-center/knowledge-base/integrations/index.mdx +++ b/resources/support-center/knowledge-base/integrations/index.mdx @@ -8,11 +8,11 @@ doc_type: 'landing-page' --- - [How do I export data from ClickHouse to a file?](/resources/support-center/knowledge-base/data-import-export/file-export) -- [How to import JSON into ClickHouse?](/integrations/connectors/data-ingestion/data-formats/json/intro) +- [How to import JSON into ClickHouse?](/core/guides/clickhouse/data-formats/json/intro) - [How do I connect Kafka to ClickHouse?](/integrations/connectors/data-ingestion/kafka) - [Can I connect my Java application to ClickHouse?](/integrations/connectors/data-ingestion/jdbc-with-clickhouse) - [Can ClickHouse read tables from MySQL?](/integrations/connectors/data-sources/mysql) -- [Can ClickHouse read tables from PostgreSQL](/integrations/connectors/data-ingestion/postgresql/connecting-to-postgresql) +- [Can ClickHouse read tables from PostgreSQL](/integrations/clickpipes/postgres/connecting-to-postgresql) - [What if I have a problem with encodings when connecting to Oracle via ODBC?](/resources/support-center/knowledge-base/integrations/oracle-odbc) diff --git a/resources/support-center/knowledge-base/materialized-views/are-materialized-views-inserted-asynchronously.mdx b/resources/support-center/knowledge-base/materialized-views/are-materialized-views-inserted-asynchronously.mdx index e0f807f2..677f0d5f 100644 --- a/resources/support-center/knowledge-base/materialized-views/are-materialized-views-inserted-asynchronously.mdx +++ b/resources/support-center/knowledge-base/materialized-views/are-materialized-views-inserted-asynchronously.mdx @@ -14,7 +14,7 @@ keywords: ['Materialized View'] 1. When an `INSERT` succeeds, the data is inserted both to the table and all materialized views. 2. The insert is not atomic with respect to materialized views. At the moment of time when the `INSERT` is in progress, concurrent clients may see the intermediate state, when the data is inserted to the main table, but not to materialized views, or vice versa. -3. If you are using [async inserts](/concepts/operations/insert/asyncinserts), they collect the data and perform a regular insert under the hood, returning the same type of answer to the client as for regular inserts. If the client received success from an async insert with the option `wait_for_async_insert` (as by default), the data is inserted into both the table and all of its materialized views. +3. If you are using [async inserts](/core/concepts/features/operations/insert/asyncinserts), they collect the data and perform a regular insert under the hood, returning the same type of answer to the client as for regular inserts. If the client received success from an async insert with the option `wait_for_async_insert` (as by default), the data is inserted into both the table and all of its materialized views. **Question:** How about chained/cascaded materialized views? diff --git a/resources/support-center/knowledge-base/monitoring-debugging/check-query-cache-in-use.mdx b/resources/support-center/knowledge-base/monitoring-debugging/check-query-cache-in-use.mdx index 2c5685d8..d2999117 100644 --- a/resources/support-center/knowledge-base/monitoring-debugging/check-query-cache-in-use.mdx +++ b/resources/support-center/knowledge-base/monitoring-debugging/check-query-cache-in-use.mdx @@ -10,7 +10,7 @@ keywords: ['Query Cache'] {/* truncate */} ## How can I check that query cache is being used in my query? {#how-can-i-check-that-query-cache-is-being-used-in-my-query} -See this example using [clickhouse client](/integrations/connectors/data-integrations/drivers-and-interfaces/cli) and ClickHouse Cloud service. +See this example using [clickhouse client](/core/concepts/features/interfaces/cli) and ClickHouse Cloud service. create a `query_cache_test` table @@ -213,5 +213,5 @@ In the last results we see 1 `QueryCacheMisses` for the first time the query `SE Keep also in mind that the default maximum cache entry size is 1048576 bytes (= 1 MiB) and by default results are stored in cache for 60 seconds only (you can use `query_cache_ttl=300` in `SETTINGS` for example to have a query cache result stored for 5 minutes instead). -You can find more detailed info on ClickHouse Query Cache [here](/concepts/features/performance/caches/query-cache) +You can find more detailed info on ClickHouse Query Cache [here](/core/concepts/features/performance/caches/query-cache) diff --git a/resources/support-center/knowledge-base/monitoring-debugging/profiling-clickhouse-with-llvm-xray.mdx b/resources/support-center/knowledge-base/monitoring-debugging/profiling-clickhouse-with-llvm-xray.mdx index fcc6bc4c..747dc8eb 100644 --- a/resources/support-center/knowledge-base/monitoring-debugging/profiling-clickhouse-with-llvm-xray.mdx +++ b/resources/support-center/knowledge-base/monitoring-debugging/profiling-clickhouse-with-llvm-xray.mdx @@ -30,9 +30,9 @@ affecting the overall performance when not enabled. The idea is to enable the mi instrumentation points to get valuable information. We can add a new profile instrumentation point using the [SYSTEM INSTRUMENT ADD -PROFILE](/reference/statements/system#instrument-add-profile) +PROFILE](/core/reference/statements/system#instrument-add-profile) statement. The functions to be instrumented can be collected from -[system.symbols](/reference/system-tables/symbols) system table. Say we +[system.symbols](/core/reference/system-tables/symbols) system table. Say we want to profile the `sleepForNanoseconds` function, which is a convenient function to check how long it takes to run. @@ -47,7 +47,7 @@ SYSTEM INSTRUMENT REMOVE ALL ``` We convert the data collected in system.trace_log [to Chrome -format](/reference/system-tables/trace_log#chrome-event-trace-format) to +format](/core/reference/system-tables/trace_log#chrome-event-trace-format) to visualize it in [Perfetto](https://ui.perfetto.dev). Notice the query_id, cpu_id and stacktrace for every entry. @@ -152,13 +152,13 @@ generating a flamegraph and a sandwich view of your data. ## Check out the docs {#check-out-the-docs} -- [SYSTEM INSTRUMENT](/reference/statements/system#instrument) — Add +- [SYSTEM INSTRUMENT](/core/reference/statements/system#instrument) — Add or remove instrumentation points. -- [system.instrumentation](/reference/system-tables/instrumentation) +- [system.instrumentation](/core/reference/system-tables/instrumentation) — Inspect instrumented points. -- [system.symbols](/reference/system-tables/symbols) — Inspect +- [system.symbols](/core/reference/system-tables/symbols) — Inspect symbols to add instrumentation points. -- [system.trace_log](/reference/system-tables/trace_log) — Inspect data +- [system.trace_log](/core/reference/system-tables/trace_log) — Inspect data collected using instrumentation points. - [XRay Instrumentation](https://llvm.org/docs/XRay.html) - [Debugging with XRay](https://llvm.org/docs/XRayExample.html) documentation to learn more details. diff --git a/resources/support-center/knowledge-base/monitoring-debugging/send-logs-level.mdx b/resources/support-center/knowledge-base/monitoring-debugging/send-logs-level.mdx index a473aaa9..ca66a973 100644 --- a/resources/support-center/knowledge-base/monitoring-debugging/send-logs-level.mdx +++ b/resources/support-center/knowledge-base/monitoring-debugging/send-logs-level.mdx @@ -24,4 +24,4 @@ One useful scenario is to use `send_logs_level` to monitor the insertion of rows - Inserts into a distributed table are asynchronous by default. The data is written into a local buffer on disk, then sent to remote servers in background. - Logs will be sent from all nodes participating in the query processing (distributed tracing) -To check the status of distributed inserts, check the [`system.distribution_queue` table](/reference/system-tables/distribution_queue). This table contains information about local files that are in the queue to be sent to the shards. These local files contain new parts that are created by inserting new data into the `Distributed` table in asynchronous mode. +To check the status of distributed inserts, check the [`system.distribution_queue` table](/core/reference/system-tables/distribution_queue). This table contains information about local files that are in the queue to be sent to the shards. These local files contain new parts that are created by inserting new data into the `Distributed` table in asynchronous mode. diff --git a/resources/support-center/knowledge-base/monitoring-debugging/view-number-of-active-mutations.mdx b/resources/support-center/knowledge-base/monitoring-debugging/view-number-of-active-mutations.mdx index b46cd743..ed858e53 100644 --- a/resources/support-center/knowledge-base/monitoring-debugging/view-number-of-active-mutations.mdx +++ b/resources/support-center/knowledge-base/monitoring-debugging/view-number-of-active-mutations.mdx @@ -12,7 +12,7 @@ How do I view the number of active or queued mutations? ## Answer -Monitoring the number of active or queued mutations is important if you are performing a lot of `ALTER` or `UPDATE` statements on your tables. These queries rewrite data parts and are not atomic - they are ordered by their creation part and applied to each part in that order. You can find more details on mutations in the [docs](/reference/statements/alter#mutations). +Monitoring the number of active or queued mutations is important if you are performing a lot of `ALTER` or `UPDATE` statements on your tables. These queries rewrite data parts and are not atomic - they are ordered by their creation part and applied to each part in that order. You can find more details on mutations in the [docs](/core/reference/statements/alter#mutations). Each mutation generates an entry in the `system.mutations` table. When performing a large number of mutations, you can monitor the count running and queued mutations with this: diff --git a/resources/support-center/knowledge-base/monitoring-debugging/which-processes-are-currently-running.mdx b/resources/support-center/knowledge-base/monitoring-debugging/which-processes-are-currently-running.mdx index 594fdcbe..de490564 100644 --- a/resources/support-center/knowledge-base/monitoring-debugging/which-processes-are-currently-running.mdx +++ b/resources/support-center/knowledge-base/monitoring-debugging/which-processes-are-currently-running.mdx @@ -25,7 +25,7 @@ FORMAT Vertical SETTINGS allow_introspection_functions = 1; ``` -The query result will show the locations in the ClickHouse source code where the threads are running or waiting. (You will need to set `allow_introspection_functions` to `1` to enable the [introspection functions](/reference/functions/regular-functions/introspection).) The response looks like: +The query result will show the locations in the ClickHouse source code where the threads are running or waiting. (You will need to set `allow_introspection_functions` to `1` to enable the [introspection functions](/core/reference/functions/regular-functions/introspection).) The response looks like: ```response Row 1: @@ -224,12 +224,12 @@ If you've installed ClickHouse as a single-binary, it already contains the debug For more high-level information, check out some of these other system tables: -- [system.processes](/reference/system-tables/processes) -- [system.query_log](/reference/system-tables/query_log) -- [system.metric_log](/reference/system-tables/metric_log) -- [system.asynchronous_metric_log](/reference/system-tables/asynchronous_metric_log) -- [system.trace_log](/reference/system-tables/trace_log) -- [system.processor_profile_log](/reference/system-tables/processors_profile_log) +- [system.processes](/core/reference/system-tables/processes) +- [system.query_log](/core/reference/system-tables/query_log) +- [system.metric_log](/core/reference/system-tables/metric_log) +- [system.asynchronous_metric_log](/core/reference/system-tables/asynchronous_metric_log) +- [system.trace_log](/core/reference/system-tables/trace_log) +- [system.processor_profile_log](/core/reference/system-tables/processors_profile_log) -And there is handy info in the [other system tables](/reference/system-tables) also. +And there is handy info in the [other system tables](/core/reference/system-tables) also. \ No newline at end of file diff --git a/resources/support-center/knowledge-base/monitoring-debugging/why-default-logging-verbose.mdx b/resources/support-center/knowledge-base/monitoring-debugging/why-default-logging-verbose.mdx index deecdb0a..5b28707a 100644 --- a/resources/support-center/knowledge-base/monitoring-debugging/why-default-logging-verbose.mdx +++ b/resources/support-center/knowledge-base/monitoring-debugging/why-default-logging-verbose.mdx @@ -20,7 +20,7 @@ If the database runs stably, users may re-configure the log level, which we expl ## Change the log level -The different log levels available are documented [here](/reference/settings/server-settings/settings#logger) +The different log levels available are documented [here](/core/reference/settings/server-settings/settings#logger) You'll need to edit the ClickHouse server configuration file (`/etc/clickhouse-server/config.xml`) to modify the log level. diff --git a/resources/support-center/knowledge-base/performance-optimization/async-vs-optimize-read-in-order.mdx b/resources/support-center/knowledge-base/performance-optimization/async-vs-optimize-read-in-order.mdx index 316b7e8c..7ecd70be 100644 --- a/resources/support-center/knowledge-base/performance-optimization/async-vs-optimize-read-in-order.mdx +++ b/resources/support-center/knowledge-base/performance-optimization/async-vs-optimize-read-in-order.mdx @@ -8,7 +8,7 @@ keywords: ['Synchronous', 'Asynchronous', 'Data Reading'] The new setting allow_asynchronous_read_from_io_pool_for_merge_tree allows the number of reading threads (streams) to be higher than the number of threads in the rest of the query execution pipeline. -Normally the [max_threads](/reference/settings/session-settings#settings-max_threads) setting [controls](https://clickhouse.com/company/events/query-performance-introspection) the number of parallel reading threads and parallel query processing threads: +Normally the [max_threads](/core/reference/settings/session-settings#settings-max_threads) setting [controls](https://clickhouse.com/company/events/query-performance-introspection) the number of parallel reading threads and parallel query processing threads: @@ -26,7 +26,7 @@ Note that there is also the [max_streams_to_max_threads_ratio](https://github.co ### What about optimize_read_in_order? -With the [optimize_read_in_order optimization](/reference/statements/select/order-by#optimization-of-data-reading), ClickHouse can [skip](https://clickhouse.com/blog/clickhouse-faster-queries-with-projections-and-primary-indexes) resorting data in memory if the queries sort order reflects the physical order of data on disk, **but that requires reading the data in order (in contrast to asynchronous reading)**: +With the [optimize_read_in_order optimization](/core/reference/statements/select/order-by#optimization-of-data-reading), ClickHouse can [skip](https://clickhouse.com/blog/clickhouse-faster-queries-with-projections-and-primary-indexes) resorting data in memory if the queries sort order reflects the physical order of data on disk, **but that requires reading the data in order (in contrast to asynchronous reading)**: @@ -36,7 +36,7 @@ When ClickHouse sees that `optimize_read_in_order optimization` can be applied, ### Example demonstrating all of the above -- Create and load the [UK Property Price Paid table](/get-started/sample-datasets/uk-price-paid) +- Create and load the [UK Property Price Paid table](/core/get-started/sample-datasets/uk-price-paid) - Check set value of max_threads (by default the amount of CPU cores that ClickHouse sees on the node executing the query ``` diff --git a/resources/support-center/knowledge-base/performance-optimization/find-expensive-queries.mdx b/resources/support-center/knowledge-base/performance-optimization/find-expensive-queries.mdx index c029f0ef..18cc5bb1 100644 --- a/resources/support-center/knowledge-base/performance-optimization/find-expensive-queries.mdx +++ b/resources/support-center/knowledge-base/performance-optimization/find-expensive-queries.mdx @@ -62,7 +62,7 @@ FROM clusterAllReplicas(default, system.query_log) WHERE initial_query_id = '7fc488a5-838f-410d-88ee-2f492825a26b' ``` -It turns out to be the query we used to insert a few billion rows of data into a table named `youtube` (see the [YouTube dislikes dataset](/get-started/sample-datasets/youtube-dislikes)): +It turns out to be the query we used to insert a few billion rows of data into a table named `youtube` (see the [YouTube dislikes dataset](/core/get-started/sample-datasets/youtube-dislikes)): ```sql INSERT INTO youtube @@ -208,4 +208,4 @@ giving: └────────────────────────┴─────────────┴─────────────────────┴──────────────────────────────────────┴──────────────────────────────────────┴────────────┴─────────┴───────────┴───────────────────────┘ ``` -As for other System Tables, you can find more details about the meaning of each field in our [docs](/reference/system-tables/query_log). +As for other System Tables, you can find more details about the meaning of each field in our [docs](/core/reference/system-tables/query_log). diff --git a/resources/support-center/knowledge-base/performance-optimization/finding-expensive-queries-by-memory-usage.mdx b/resources/support-center/knowledge-base/performance-optimization/finding-expensive-queries-by-memory-usage.mdx index e9fd02b2..50597043 100644 --- a/resources/support-center/knowledge-base/performance-optimization/finding-expensive-queries-by-memory-usage.mdx +++ b/resources/support-center/knowledge-base/performance-optimization/finding-expensive-queries-by-memory-usage.mdx @@ -48,7 +48,7 @@ The response looks like: ``` -If you do not have a `system.query_log` table, then you likely do not have query logging enabled. View the details of the [`query_log` setting](/reference/settings/server-settings/settings#server_configuration_parameters-query-log) for details on how to enable it. +If you do not have a `system.query_log` table, then you likely do not have query logging enabled. View the details of the [`query_log` setting](/core/reference/settings/server-settings/settings#server_configuration_parameters-query-log) for details on how to enable it. If you do not have a cluster, use can just query your one `system.query_log` table directly: diff --git a/resources/support-center/knowledge-base/performance-optimization/improve-map-performance.mdx b/resources/support-center/knowledge-base/performance-optimization/improve-map-performance.mdx index 74a4235b..0eaa434e 100644 --- a/resources/support-center/knowledge-base/performance-optimization/improve-map-performance.mdx +++ b/resources/support-center/knowledge-base/performance-optimization/improve-map-performance.mdx @@ -10,7 +10,7 @@ keywords: ['Map Performance'] {/* truncate */} ## Problem {#problem} -Map lookup such as `a['key']` works with linear complexity (mentioned [here](/reference/data-types/map)) and can be inefficient. This is because selecting a value with a specific key from a table would require iterating through all keys (~M) across all rows (N) in the Map column, resulting in ~MxN lookups. +Map lookup such as `a['key']` works with linear complexity (mentioned [here](/core/reference/data-types/map)) and can be inefficient. This is because selecting a value with a specific key from a table would require iterating through all keys (~M) across all rows (N) in the Map column, resulting in ~MxN lookups. A lookup using Map can be 10x slower than a String column. The experiment below also shows ~10x slowdown for cold query, and difference in multiple magnitudes of data processed (7.21 MB vs 5.65 GB). diff --git a/resources/support-center/knowledge-base/performance-optimization/insert-select-settings-tuning.mdx b/resources/support-center/knowledge-base/performance-optimization/insert-select-settings-tuning.mdx index 23339b68..8f08a9cd 100644 --- a/resources/support-center/knowledge-base/performance-optimization/insert-select-settings-tuning.mdx +++ b/resources/support-center/knowledge-base/performance-optimization/insert-select-settings-tuning.mdx @@ -15,24 +15,24 @@ How can I solve this? Below are some of the settings to tune to avoid this error, this is expert level tuning of ClickHouse and these values should be set only after understanding the specifications of the ClickHouse cloud service or on-prem cluster where these will be used, so do not take these values as "one size fits all". -[max_insert_block_size](/reference/settings/session-settings#settings-max_insert_block_size) = `100_000_000` (default `1_048_576`) +[max_insert_block_size](/core/reference/settings/session-settings#settings-max_insert_block_size) = `100_000_000` (default `1_048_576`) Increase from ~1M to 100M would allow larger blocks to form Note: This setting only applies when the server forms the blocks. i.e. INSERT via the HTTP interface, and not for clickhouse-client -[min_insert_block_size_rows](/reference/settings/session-settings#min-insert-block-size-rows) = `100_000_000` (default `1_048_576`) +[min_insert_block_size_rows](/core/reference/settings/session-settings#min-insert-block-size-rows) = `100_000_000` (default `1_048_576`) Increase from ~1M to 100M would allow larger blocks to form. -[min_insert_block_size_bytes](/reference/settings/session-settings#min-insert-block-size-bytes) = `500_000_000` (default `268_435_456`) +[min_insert_block_size_bytes](/core/reference/settings/session-settings#min-insert-block-size-bytes) = `500_000_000` (default `268_435_456`) Increase from 268.44 MB to 500 MB would allow larger blocks to form. -[parts_to_delay_insert](/reference/settings/merge-tree-settings#parts-to-delay-insert) = `500` (default `150`) +[parts_to_delay_insert](/core/reference/settings/merge-tree-settings#parts-to-delay-insert) = `500` (default `150`) Increasing this so that INSERTs are not artificially slowed down when the number of active parts in a single partition is reached. -[parts_to_throw_insert](/reference/settings/merge-tree-settings#parts-to-throw-insert) = `1500` (default `3000`) +[parts_to_throw_insert](/core/reference/settings/merge-tree-settings#parts-to-throw-insert) = `1500` (default `3000`) Increasing this would generally affect query performance to the table, but this would be fine for data migration. diff --git a/resources/support-center/knowledge-base/performance-optimization/memory-limit-exceeded-for-query.mdx b/resources/support-center/knowledge-base/performance-optimization/memory-limit-exceeded-for-query.mdx index 335cadcb..f33da212 100644 --- a/resources/support-center/knowledge-base/performance-optimization/memory-limit-exceeded-for-query.mdx +++ b/resources/support-center/knowledge-base/performance-optimization/memory-limit-exceeded-for-query.mdx @@ -25,9 +25,9 @@ Users, in this case, have a few options. ### Aggregations {#aggregations} For memory-intensive aggregations or sorting scenarios, users can use the settings -[`max_bytes_before_external_group_by`](/reference/settings/session-settings#max_bytes_before_external_group_by) -and [`max_bytes_before_external_sort`](/reference/settings/session-settings#max_bytes_ratio_before_external_sort) respectively. -The former of which is discussed extensively [here](/reference/statements/select/group-by#group-by-in-external-memory). +[`max_bytes_before_external_group_by`](/core/reference/settings/session-settings#max_bytes_before_external_group_by) +and [`max_bytes_before_external_sort`](/core/reference/settings/session-settings#max_bytes_ratio_before_external_sort) respectively. +The former of which is discussed extensively [here](/core/reference/statements/select/group-by#group-by-in-external-memory). In summary, this ensures any aggregations can “spill” out to disk if a memory threshold is exceeded. This will invariably impact query performance but will @@ -35,7 +35,7 @@ help ensure queries do not OOM. The latter sorting setting helps address similar issues with memory-intensive sorts. This can be particularly important in distributed environments where a coordinating node receives sorted responses from child shards. In this case, the coordinating server can be asked to sort a -dataset larger than its available memory. With [`max_bytes_before_external_sort`](/reference/settings/session-settings#max_bytes_ratio_before_external_sort), +dataset larger than its available memory. With [`max_bytes_before_external_sort`](/core/reference/settings/session-settings#max_bytes_ratio_before_external_sort), sorting can be allowed to spill over to disk. This setting is also helpful for cases where the user has an `ORDER BY` after a `GROUP BY` with a `LIMIT`, especially in cases where the query is distributed. @@ -48,7 +48,7 @@ This algorithm loads the right-hand table of the `JOIN` into an in-memory hash table, against which the left-hand table is then evaluated. To minimize memory, users should thus place the smaller table on the right side. This approach still has limitations in memory-bound cases, however. In these cases, `partial_merge` -join can be enabled via the [`join_algorithm`](/reference/settings/session-settings#join_algorithm) +join can be enabled via the [`join_algorithm`](/core/reference/settings/session-settings#join_algorithm) setting. This derivative of the [sort-merge algorithm](https://en.wikipedia.org/wiki/Sort-merge_join), first sorts the right table into blocks and creates a min-max index for them. It then sorts parts of the left table by the join key and joins them over the @@ -67,5 +67,5 @@ This instructs ClickHouse to apply an adaptive join approach, where the hash-joi algorithm is preferred until memory limits are violated, at which point the partial_merge algorithm is attempted. Finally, concerning joins, we encourage readers to be aware of the behavior of distributed joins and how to minimize -their memory consumption. More information can be found [here](/reference/statements/in#distributed-subqueries). +their memory consumption. More information can be found [here](/core/reference/statements/in#distributed-subqueries). diff --git a/resources/support-center/knowledge-base/performance-optimization/why-is-my-primary-key-not-used.mdx b/resources/support-center/knowledge-base/performance-optimization/why-is-my-primary-key-not-used.mdx index 99089837..8d7d488d 100644 --- a/resources/support-center/knowledge-base/performance-optimization/why-is-my-primary-key-not-used.mdx +++ b/resources/support-center/knowledge-base/performance-optimization/why-is-my-primary-key-not-used.mdx @@ -98,10 +98,10 @@ PrimaryKey code ``` -Granules are the unit of data processing in ClickHouse, with each typically holding 8192 rows. For further details on granules and how they are filtered we recommend reading [this guide](/guides/cloud-oss/data-modelling/sparse-primary-indexes#mark-files-are-used-for-locating-granules). +Granules are the unit of data processing in ClickHouse, with each typically holding 8192 rows. For further details on granules and how they are filtered we recommend reading [this guide](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#mark-files-are-used-for-locating-granules). -Filtering on keys later in an ordering key will not be as efficient as filtering on those that are earlier in the tuple. For reasons why, see [here](/guides/cloud-oss/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient) +Filtering on keys later in an ordering key will not be as efficient as filtering on those that are earlier in the tuple. For reasons why, see [here](/core/guides/clickhouse/data-modelling/sparse-primary-indexes#secondary-key-columns-can-not-be-inefficient) ## Multi-key filtering @@ -149,7 +149,7 @@ In this case both ordering keys are used to filter rows, resulting in the need t ClickHouse can also exploit ordering keys for efficient sorting. Specifically, -When the [optimize_read_in_order](/reference/statements/select/order-by#optimization-of-data-reading) setting is enabled (by default), the ClickHouse server uses the table index and reads the data in order of the ORDER BY key. This allows us to avoid reading all data in case of specified LIMIT. So, queries on big data with small limits are processed faster. See [here](/reference/statements/select/order-by#optimization-of-data-reading) and [here](/resources/support-center/knowledge-base/performance-optimization/async-vs-optimize-read-in-order#what-about-optimize_read_in_order) for further details. +When the [optimize_read_in_order](/core/reference/statements/select/order-by#optimization-of-data-reading) setting is enabled (by default), the ClickHouse server uses the table index and reads the data in order of the ORDER BY key. This allows us to avoid reading all data in case of specified LIMIT. So, queries on big data with small limits are processed faster. See [here](/core/reference/statements/select/order-by#optimization-of-data-reading) and [here](/resources/support-center/knowledge-base/performance-optimization/async-vs-optimize-read-in-order#what-about-optimize_read_in_order) for further details. This, however, requires alignment of the keys used. diff --git a/resources/support-center/knowledge-base/queries-sql/compare-resultsets.mdx b/resources/support-center/knowledge-base/queries-sql/compare-resultsets.mdx index 655a7569..79692783 100644 --- a/resources/support-center/knowledge-base/queries-sql/compare-resultsets.mdx +++ b/resources/support-center/knowledge-base/queries-sql/compare-resultsets.mdx @@ -34,7 +34,7 @@ WITH ) AS q2_resultset_hash SELECT equals(q1_resultset_hash,q2_resultset_hash) as Q1_equals_Q2 ``` -The example uses a [CTE](/reference/statements/select/with) to calculate sums of the [cityHash](/reference/functions/regular-functions/hash-functions#cityhash64) value of each row in these two queries and will return `1` if the two resultsets are identical. +The example uses a [CTE](/core/reference/statements/select/with) to calculate sums of the [cityHash](/core/reference/functions/regular-functions/hash-functions#cityhash64) value of each row in these two queries and will return `1` if the two resultsets are identical. Using some integers sequence data and some pretty formatting: diff --git a/resources/support-center/knowledge-base/queries-sql/filtered-aggregates.mdx b/resources/support-center/knowledge-base/queries-sql/filtered-aggregates.mdx index 9cd83ed0..b1c1d14b 100644 --- a/resources/support-center/knowledge-base/queries-sql/filtered-aggregates.mdx +++ b/resources/support-center/knowledge-base/queries-sql/filtered-aggregates.mdx @@ -12,7 +12,7 @@ keywords: ['Filtered Aggregates'] ## Using Filtered Aggregates {#using-filtered-aggregates} ClickHouse provides a simple and intuitive way to write _filtered aggregates_. - For example, compare the standard SQL way to write filtered aggregates (which work fine in ClickHouse) with the shorthand syntax using the `-If` [aggregate function combinator](/reference/functions/aggregate-functions/combinators), which can be appended to any aggregate function: + For example, compare the standard SQL way to write filtered aggregates (which work fine in ClickHouse) with the shorthand syntax using the `-If` [aggregate function combinator](/core/reference/functions/aggregate-functions/combinators), which can be appended to any aggregate function: ```sql --standard SQL @@ -50,5 +50,5 @@ SELECT WHERE segment1 OR segment2 ``` -Check out the [aggregate function combinator](/reference/functions/aggregate-functions/combinators) page in the docs +Check out the [aggregate function combinator](/core/reference/functions/aggregate-functions/combinators) page in the docs for more details. diff --git a/resources/support-center/knowledge-base/queries-sql/how-to-filter-a-clickhouse-table-by-an-array-column.mdx b/resources/support-center/knowledge-base/queries-sql/how-to-filter-a-clickhouse-table-by-an-array-column.mdx index 239b58e6..b81c0eb3 100644 --- a/resources/support-center/knowledge-base/queries-sql/how-to-filter-a-clickhouse-table-by-an-array-column.mdx +++ b/resources/support-center/knowledge-base/queries-sql/how-to-filter-a-clickhouse-table-by-an-array-column.mdx @@ -10,7 +10,7 @@ keywords: ['Filter', 'Array-Column'] {/* truncate */} ## Introduction {#introduction} -Filtering a ClickHouse table by an array-column is a common task and the product offers a lot of [functions](/reference/functions/regular-functions/array-functions) to work with array-columns. +Filtering a ClickHouse table by an array-column is a common task and the product offers a lot of [functions](/core/reference/functions/regular-functions/array-functions) to work with array-columns. In this article, we're going to focus on filtering a table by an array-column, but the video below covers a lot of other array-related functions: diff --git a/resources/support-center/knowledge-base/queries-sql/pivot.mdx b/resources/support-center/knowledge-base/queries-sql/pivot.mdx index 35cd16b9..dc292065 100644 --- a/resources/support-center/knowledge-base/queries-sql/pivot.mdx +++ b/resources/support-center/knowledge-base/queries-sql/pivot.mdx @@ -10,7 +10,7 @@ keywords: ['PIVOT', 'Aggregate Function Combinators'] {/* truncate */} ## Introduction {#introduction} -ClickHouse has no pivot operator, but we can achieve similar behavior using [aggregate function combinators](/reference/functions/aggregate-functions/combinators) and, in particular, the ones with the [`-Map` suffix](/reference/functions/aggregate-functions/combinators#-map). +ClickHouse has no pivot operator, but we can achieve similar behavior using [aggregate function combinators](/core/reference/functions/aggregate-functions/combinators) and, in particular, the ones with the [`-Map` suffix](/core/reference/functions/aggregate-functions/combinators#-map). In this article, we're going to learn how to do that. There is also a video covering the same material, which you can see below: @@ -20,7 +20,7 @@ There is also a video covering the same material, which you can see below: ## Understanding aggregate function combinators {#understanding-aggregate-function-combinators} -Let's start with a simple example. We're going to use [clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local), which you can launch by running the following: +Let's start with a simple example. We're going to use [clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local), which you can launch by running the following: ```bash clickhouse -m --output_format_pretty_row_numbers=0 @@ -229,7 +229,7 @@ LIMIT 10; ## Applying functions to map values {#applying-functions-to-map-values} Alternatively, we can compute the average price using `avgMap`. -Those values have a lot of decimal points, which we can clean up by using the [`mapApply`](/reference/functions/regular-functions/tuple-map-functions#mapApply) function to call the [`floor`](/reference/functions/regular-functions/rounding-functions#floor) function on each value in the map: +Those values have a lot of decimal points, which we can clean up by using the [`mapApply`](/core/reference/functions/regular-functions/tuple-map-functions#mapApply) function to call the [`floor`](/core/reference/functions/regular-functions/rounding-functions#floor) function on each value in the map: ```sql WITH year(toStartOfInterval(date, toIntervalYear(10))) AS year diff --git a/resources/support-center/knowledge-base/security/row-column-policy.mdx b/resources/support-center/knowledge-base/security/row-column-policy.mdx index b1e0344d..c8e8beba 100644 --- a/resources/support-center/knowledge-base/security/row-column-policy.mdx +++ b/resources/support-center/knowledge-base/security/row-column-policy.mdx @@ -12,6 +12,6 @@ keywords: ['Row-Level', 'Column-Level', 'Security'] ## ClickHouse and ClickHouse Cloud both support row and column-level access restrictions {#clickhouse-and-clickhouse-cloud-both-support-row-and-column-level-access-restrictions} ClickHouse and ClickHouse Cloud both support row and column-level access restrictions for read-only users necessary to achieve a role-based access control (RBAC) model. -[Row Policies](/concepts/features/security/access-rights#row-policy-management) can be used to specify which rows will be returned to a read-only user when they query a table. ClickHouse Cloud is configured to enable the SQL-driven workflow by default. To leverage this workflow [CREATE](/reference/statements/create/user) a user, [GRANT](/reference/statements/grant) the user privileges on a table, then set the appropriate [ROW POLICY](/concepts/features/security/access-rights#row-policy-management). When the user performs a `SELECT * FROM table`, only rows allowed by the policy will be displayed. +[Row Policies](/core/concepts/features/security/access-rights#row-policy-management) can be used to specify which rows will be returned to a read-only user when they query a table. ClickHouse Cloud is configured to enable the SQL-driven workflow by default. To leverage this workflow [CREATE](/core/reference/statements/create/user) a user, [GRANT](/core/reference/statements/grant) the user privileges on a table, then set the appropriate [ROW POLICY](/core/concepts/features/security/access-rights#row-policy-management). When the user performs a `SELECT * FROM table`, only rows allowed by the policy will be displayed. -Column-level restrictions may be specified directly using the [GRANT statement](/reference/statements/grant) to enable table-level access for users and roles. Users *may only* include columns for which they have access in a query. Selecting restricted columns from a table in which the user does not have access to all the specified columns, such as in the query `SELECT * FROM table`, will return an error stating the user has insufficient permissions. +Column-level restrictions may be specified directly using the [GRANT statement](/core/reference/statements/grant) to enable table-level access for users and roles. Users *may only* include columns for which they have access in a query. Selecting restricted columns from a table in which the user does not have access to all the specified columns, such as in the query `SELECT * FROM table`, will return an error stating the user has insufficient permissions. diff --git a/resources/support-center/knowledge-base/setup-installation/difference-between-official-builds-and-3rd-party.mdx b/resources/support-center/knowledge-base/setup-installation/difference-between-official-builds-and-3rd-party.mdx index 792b4693..7cad0248 100644 --- a/resources/support-center/knowledge-base/setup-installation/difference-between-official-builds-and-3rd-party.mdx +++ b/resources/support-center/knowledge-base/setup-installation/difference-between-official-builds-and-3rd-party.mdx @@ -22,7 +22,7 @@ Here are some of the differences we have observed with other builds: - They might not be available for all architectures (like ARM, etc.) - Sometimes they include patches targeted for one particular customer that can break compatibility and introduce extra risk -We recommend running the latest version of ClickHouse using the official builds following the [install instructions](/get-started/setup/self-managed/install) in the documentation: +We recommend running the latest version of ClickHouse using the official builds following the [install instructions](/core/get-started/setup/install) in the documentation: - We release a **stable version** every month, and three latest stable releases are supported in terms of diagnostics and backporting of bug fixes. - We also release a **long-term support (LTS) version** twice a year that is supported for a year after its initial release, which is really only meant for companies that do not allow for frequent upgrades or using non-LTS software. (We are big fans of the monthly stable builds!) diff --git a/resources/support-center/knowledge-base/setup-installation/how-to-increase-thread-pool-size.mdx b/resources/support-center/knowledge-base/setup-installation/how-to-increase-thread-pool-size.mdx index 550f2d27..d8770c7a 100644 --- a/resources/support-center/knowledge-base/setup-installation/how-to-increase-thread-pool-size.mdx +++ b/resources/support-center/knowledge-base/setup-installation/how-to-increase-thread-pool-size.mdx @@ -30,4 +30,4 @@ You can also free up resources if your server has a lot of idle threads - using 2000 ``` -Check out the [docs](/reference/settings/server-settings/settings#max-thread-pool-size) for more details on the settings above and other settings that affect the Global Thread pool. +Check out the [docs](/core/reference/settings/server-settings/settings#max-thread-pool-size) for more details on the settings above and other settings that affect the Global Thread pool. diff --git a/resources/support-center/knowledge-base/setup-installation/production.mdx b/resources/support-center/knowledge-base/setup-installation/production.mdx index 5d6c7117..4322ba65 100644 --- a/resources/support-center/knowledge-base/setup-installation/production.mdx +++ b/resources/support-center/knowledge-base/setup-installation/production.mdx @@ -35,7 +35,7 @@ Here are some key points to get reasonable fidelity in a pre-production environm The second area to invest in is **automated testing infrastructure**. Don't assume that if some kind of query has executed successfully once, it'll continue to do so forever. It's OK to have some unit tests where ClickHouse is mocked, but make sure your product has a reasonable set of automated tests that are run against real ClickHouse and check that all important use cases are still working as expected. -An extra step forward could be contributing those automated tests to [ClickHouse's open-source test infrastructure](https://github.com/ClickHouse/ClickHouse/tree/master/tests) that are continuously used in its day-to-day development. It definitely will take some additional time and effort to learn [how to run it](/resources/contribute/tests) and then how to adapt your tests to this framework, but it'll pay off by ensuring that ClickHouse releases are already tested against them when they're announced stable, instead of repeatedly losing time on reporting the issue after the fact and then waiting for a bugfix to be implemented, backported and released. Some companies even have such test contributions to infrastructure by its use as an internal policy, (called [Beyonce's Rule](https://www.oreilly.com/library/view/software-engineering-at/9781492082781/ch01.html#policies_that_scale_well) at Google). +An extra step forward could be contributing those automated tests to [ClickHouse's open-source test infrastructure](https://github.com/ClickHouse/ClickHouse/tree/master/tests) that are continuously used in its day-to-day development. It definitely will take some additional time and effort to learn [how to run it](/resources/develop-contribute/contribute/tests) and then how to adapt your tests to this framework, but it'll pay off by ensuring that ClickHouse releases are already tested against them when they're announced stable, instead of repeatedly losing time on reporting the issue after the fact and then waiting for a bugfix to be implemented, backported and released. Some companies even have such test contributions to infrastructure by its use as an internal policy, (called [Beyonce's Rule](https://www.oreilly.com/library/view/software-engineering-at/9781492082781/ch01.html#policies_that_scale_well) at Google). When you have your pre-production environment and testing infrastructure in place, choosing the best version is straightforward: diff --git a/resources/support-center/knowledge-base/tables-schema/add-column.mdx b/resources/support-center/knowledge-base/tables-schema/add-column.mdx index efd3a8be..23a1aa81 100644 --- a/resources/support-center/knowledge-base/tables-schema/add-column.mdx +++ b/resources/support-center/knowledge-base/tables-schema/add-column.mdx @@ -48,7 +48,7 @@ FROM events; ## Adding a new column {#adding-a-new-column} Now let's say we're going to add a new column called `favoriteNumber`, which will be a `Float64`. -We can do this using the [`ALTER TABLE...ADD COLUMN`](/reference/statements/alter/column#add-column) clause: +We can do this using the [`ALTER TABLE...ADD COLUMN`](/core/reference/statements/alter/column#add-column) clause: ```sql ALTER TABLE events @@ -83,7 +83,7 @@ If we query the `events` table, we'll see the following output: ``` ## Modifying a column's default value {#modifying-a-columns-default-value} -If we modify the `favoriteNumber` column to have a different type using the [`ALTER TABLE...MODIFY COLUMN`](/reference/statements/alter/column#modify-column) clause, things get interesting: +If we modify the `favoriteNumber` column to have a different type using the [`ALTER TABLE...MODIFY COLUMN`](/core/reference/statements/alter/column#modify-column) clause, things get interesting: ```sql ALTER TABLE events @@ -105,7 +105,7 @@ If we query `events` again, we'll see this output: `Tyler` keeps a value of `7`, which was the default when that row was created. `Alexey` picks up the new default of `99` because the `favoriteNumber` column didn't exist when that row was created. -If we want the `Alexey` row to use the current default right away, we need to call [`OPTIMIZE TABLE` ](/reference/statements/optimize) to force current defaults to be written to disk: +If we want the `Alexey` row to use the current default right away, we need to call [`OPTIMIZE TABLE` ](/core/reference/statements/optimize) to force current defaults to be written to disk: ```sql OPTIMIZE TABLE events; diff --git a/resources/support-center/knowledge-base/tables-schema/delete-old-data.mdx b/resources/support-center/knowledge-base/tables-schema/delete-old-data.mdx index 778dac3e..6c65d031 100644 --- a/resources/support-center/knowledge-base/tables-schema/delete-old-data.mdx +++ b/resources/support-center/knowledge-base/tables-schema/delete-old-data.mdx @@ -20,10 +20,10 @@ The key advantage of this approach is that it doesn't need any external system t TTL can also be used to move data not only to [/dev/null](https://en.wikipedia.org/wiki/Null_device), but also between different storage systems, like from SSD to HDD. -More details on [configuring TTL](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). +More details on [configuring TTL](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-ttl). ## DELETE FROM {#delete-from} -[DELETE FROM](/reference/statements/delete) allows standard DELETE queries to be run in ClickHouse. The rows targeted in the filter clause are marked as deleted, and removed from future result sets. Cleanup of the rows happens asynchronously. +[DELETE FROM](/core/reference/statements/delete) allows standard DELETE queries to be run in ClickHouse. The rows targeted in the filter clause are marked as deleted, and removed from future result sets. Cleanup of the rows happens asynchronously. DELETE FROM is generally available from version 23.3 and newer. On older versions, it is experimental and must be enabled with: @@ -34,22 +34,22 @@ SET allow_experimental_lightweight_delete = true; ## ALTER DELETE {#alter-delete} -ALTER DELETE removes rows using asynchronous batch operations. Unlike DELETE FROM, queries run after the ALTER DELETE and before the batch operations complete will include the rows targeted for deletion. For more details see the [ALTER DELETE](/reference/statements/alter/delete) docs. +ALTER DELETE removes rows using asynchronous batch operations. Unlike DELETE FROM, queries run after the ALTER DELETE and before the batch operations complete will include the rows targeted for deletion. For more details see the [ALTER DELETE](/core/reference/statements/alter/delete) docs. `ALTER DELETE` can be issued to flexibly remove old data. If you need to do it regularly, the main downside will be the need to have an external system to submit the query. There are also some performance considerations since mutations rewrite complete parts even there is only a single row to be deleted. This is the most common approach to make your system based on ClickHouse [GDPR](https://gdpr-info.eu)-compliant. -More details on [mutations](/reference/statements/alter#mutations). +More details on [mutations](/core/reference/statements/alter#mutations). ## DROP PARTITION {#drop-partition} `ALTER TABLE ... DROP PARTITION` provides a cost-efficient way to drop a whole partition. It's not that flexible and needs proper partitioning scheme configured on table creation, but still covers most common cases. Like mutations need to be executed from an external system for regular use. -More details on [manipulating partitions](/reference/statements/alter/partition). +More details on [manipulating partitions](/core/reference/statements/alter/partition). ## TRUNCATE {#truncate} It's rather radical to drop all data from a table, but in some cases it might be exactly what you need. -More details on [table truncation](/reference/statements/truncate). +More details on [table truncation](/core/reference/statements/truncate). diff --git a/resources/support-center/knowledge-base/tables-schema/exchangeStatementToSwitchTables.mdx b/resources/support-center/knowledge-base/tables-schema/exchangeStatementToSwitchTables.mdx index 6aad4b0b..fcd79c75 100644 --- a/resources/support-center/knowledge-base/tables-schema/exchangeStatementToSwitchTables.mdx +++ b/resources/support-center/knowledge-base/tables-schema/exchangeStatementToSwitchTables.mdx @@ -11,7 +11,7 @@ keywords: ['EXCHANGE'] --- ## Question {#question} -How do I use the [`EXCHANGE`](/reference/statements/exchange) command to switch table names? +How do I use the [`EXCHANGE`](/core/reference/statements/exchange) command to switch table names? ## Answer {#answer} The `EXCHANGE` command is useful when you need to switch a current table with another table that is temporary where possibly Primary Keys or other settings were updated. diff --git a/resources/support-center/knowledge-base/tables-schema/how-to-create-table-to-query-multiple-remote-clusters.mdx b/resources/support-center/knowledge-base/tables-schema/how-to-create-table-to-query-multiple-remote-clusters.mdx index fe67e9b7..b1d2bff0 100644 --- a/resources/support-center/knowledge-base/tables-schema/how-to-create-table-to-query-multiple-remote-clusters.mdx +++ b/resources/support-center/knowledge-base/tables-schema/how-to-create-table-to-query-multiple-remote-clusters.mdx @@ -148,5 +148,5 @@ Query id: 46b6e741-bbd1-47ed-b40e-69ddb6e0c364 ``` For more info: -- [Remote table function](/reference/functions/table-functions/remote) -- [Merge table engine](/reference/engines/table-engines/special/merge) \ No newline at end of file +- [Remote table function](/core/reference/functions/table-functions/remote) +- [Merge table engine](/core/reference/engines/table-engines/special/merge) \ No newline at end of file diff --git a/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error.mdx b/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error.mdx index b70e9179..a91f35d5 100644 --- a/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error.mdx +++ b/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error.mdx @@ -42,4 +42,4 @@ Here is an example configuration: ## Additional resources -View [https://clickhouse.com/docs/interfaces/cli/#configuration_files](/integrations/connectors/data-integrations/drivers-and-interfaces/cli#configuration_files) +View [https://clickhouse.com/docs/interfaces/cli/#configuration_files](/core/concepts/features/interfaces/cli#configuration_files) diff --git a/resources/support-center/knowledge-base/troubleshooting/connection-timeout-remote-remoteSecure.mdx b/resources/support-center/knowledge-base/troubleshooting/connection-timeout-remote-remoteSecure.mdx index ba4544bf..de8fcff3 100644 --- a/resources/support-center/knowledge-base/troubleshooting/connection-timeout-remote-remoteSecure.mdx +++ b/resources/support-center/knowledge-base/troubleshooting/connection-timeout-remote-remoteSecure.mdx @@ -9,7 +9,7 @@ keywords: ['Connection tries failed'] ## Code: 279. DB::NetException: All connection tries failed. **Problem** -[`remote()` or `remoteSecure()`](/reference/functions/table-functions/remote) table function allows the access of remote table from another ClickHouse node. +[`remote()` or `remoteSecure()`](/core/reference/functions/table-functions/remote) table function allows the access of remote table from another ClickHouse node. When using these functions on a node that is located more than 100ms (latency wise) away from the remote node, it is common to encounter a timeout error. diff --git a/resources/support-center/navigation.json b/resources/support-center/navigation.json new file mode 100644 index 00000000..460feb89 --- /dev/null +++ b/resources/support-center/navigation.json @@ -0,0 +1,250 @@ +{ + "item": "Support center", + "icon": "/images/icons/icon-support-center.svg", + "groups": [ + { + "group": "Knowledgebase", + "root": "resources/support-center/home", + "pages": [ + { + "group": "Performance & Optimization", + "pages": [ + "resources/support-center/knowledge-base/performance-optimization/insert-select-settings-tuning", + "resources/support-center/knowledge-base/performance-optimization/async-vs-optimize-read-in-order", + "resources/support-center/knowledge-base/performance-optimization/check-query-processing-time-only", + "resources/support-center/knowledge-base/performance-optimization/find-expensive-queries", + "resources/support-center/knowledge-base/performance-optimization/finding-expensive-queries-by-memory-usage", + "resources/support-center/knowledge-base/performance-optimization/improve-map-performance", + "resources/support-center/knowledge-base/performance-optimization/memory-limit-exceeded-for-query", + "resources/support-center/knowledge-base/performance-optimization/optimize-final-vs-final", + "resources/support-center/knowledge-base/performance-optimization/query-max-execution-time", + "resources/support-center/knowledge-base/performance-optimization/tips-tricks-optimizing-basic-data-types-in-clickhouse", + "resources/support-center/knowledge-base/performance-optimization/why-is-my-primary-key-not-used" + ] + }, + { + "group": "Cloud", + "pages": [ + "resources/support-center/knowledge-base/cloud-services/aws-privatelink-setup-for-clickpipes", + "resources/support-center/knowledge-base/cloud-services/aws-privatelink-setup-for-msk-clickpipes", + "resources/support-center/knowledge-base/cloud-services/change-billing-email", + "resources/support-center/knowledge-base/cloud-services/clickhouse-cloud-api-usage", + "resources/support-center/knowledge-base/cloud-services/custom-dns-alias-for-instance", + "resources/support-center/knowledge-base/cloud-services/execute-system-queries-in-cloud", + "resources/support-center/knowledge-base/cloud-services/how-to-check-my-clickhouse-cloud-sevice-state", + "resources/support-center/knowledge-base/cloud-services/how-to-connect-to-ch-cloud-using-ssh-keys", + "resources/support-center/knowledge-base/cloud-services/ingest-failures-23-9-release", + "resources/support-center/knowledge-base/cloud-services/multi-region-replication", + "resources/support-center/knowledge-base/cloud-services/unable-to-access-cloud-service" + ] + }, + { + "group": "Data Import & Export", + "pages": [ + "resources/support-center/knowledge-base/data-import-export/cannot-append-data-to-parquet-format", + "resources/support-center/knowledge-base/data-import-export/file-export", + "resources/support-center/knowledge-base/data-import-export/importing-geojason-with-nested-object-array", + "resources/support-center/knowledge-base/data-import-export/importing-and-working-with-json-array-objects", + "resources/support-center/knowledge-base/data-import-export/ingest-parquet-files-in-s3", + "resources/support-center/knowledge-base/data-import-export/json-import", + "resources/support-center/knowledge-base/data-import-export/json-extract-example", + "resources/support-center/knowledge-base/data-import-export/json-simple-example", + "resources/support-center/knowledge-base/data-import-export/kafka-clickhouse-json", + "resources/support-center/knowledge-base/data-import-export/kafka-to-clickhouse-setup", + "resources/support-center/knowledge-base/data-import-export/mysql-to-parquet-csv-json", + "resources/support-center/knowledge-base/data-import-export/parquet-to-csv-json", + "resources/support-center/knowledge-base/data-import-export/postgresql-to-parquet-csv-json", + "resources/support-center/knowledge-base/data-import-export/s3-export-data-year-month-folders" + ] + }, + { + "group": "Configuration & Settings", + "pages": [ + "resources/support-center/knowledge-base/configuration-settings/about-quotas-and-query-complexity", + "resources/support-center/knowledge-base/configuration-settings/alter-user-settings-exception", + "resources/support-center/knowledge-base/configuration-settings/change-the-prompt-in-clickhouse-client", + "resources/support-center/knowledge-base/configuration-settings/configure-a-user-setting", + "resources/support-center/knowledge-base/configuration-settings/configure-cap-ipc-lock-and-cap-sys-nice-in-docker", + "resources/support-center/knowledge-base/configuration-settings/ignoring-incorrect-settings", + "resources/support-center/knowledge-base/configuration-settings/maximum-number-of-tables-and-databases" + ] + }, + { + "group": "Integrations & Client Libraries", + "pages": [ + "resources/support-center/knowledge-base/integrations/node-js-example", + "resources/support-center/knowledge-base/integrations/ODBC-authentication-failed-error-using-PowerBI-CH-connector", + "resources/support-center/knowledge-base/integrations/oracle-odbc", + "resources/support-center/knowledge-base/integrations/how-to-set-up-ch-on-docker-odbc-connect-mssql", + "resources/support-center/knowledge-base/integrations/python-clickhouse-connect-example", + "resources/support-center/knowledge-base/integrations/python-http-requests", + "resources/support-center/knowledge-base/integrations/terraform-example" + ] + }, + { + "group": "Troubleshooting & Errors", + "root": "resources/support-center/troubleshooting/index", + "pages": [ + "resources/support-center/troubleshooting/troubleshooting", + "resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error", + "resources/support-center/knowledge-base/troubleshooting/configure-cap-ipc-lock-and-cap-sys-nice-in-docker", + "resources/support-center/knowledge-base/troubleshooting/connection-timeout-remote-remoteSecure", + "resources/support-center/knowledge-base/troubleshooting/count-parts-by-type", + "resources/support-center/knowledge-base/troubleshooting/exception-too-many-parts", + "resources/support-center/knowledge-base/troubleshooting/fix-developer-verification-error-in-macos", + "resources/support-center/knowledge-base/troubleshooting/part-intersects-previous-part" + ] + }, + { + "group": "Tables & Schema", + "pages": [ + "resources/support-center/knowledge-base/tables-schema/add-column", + "resources/support-center/knowledge-base/tables-schema/delete-old-data", + "resources/support-center/knowledge-base/tables-schema/exchangeStatementToSwitchTables", + "resources/support-center/knowledge-base/tables-schema/how-to-create-table-to-query-multiple-remote-clusters", + "resources/support-center/knowledge-base/tables-schema/recreate-table-across-terminals", + "resources/support-center/knowledge-base/tables-schema/schema-migration-tools", + "resources/support-center/knowledge-base/tables-schema/search-across-node-for-tables-with-a-wildcard" + ] + }, + { + "group": "Queries & SQL", + "pages": [ + "resources/support-center/knowledge-base/queries-sql/calculate-pi-using-sql", + "resources/support-center/knowledge-base/queries-sql/compare-resultsets", + "resources/support-center/knowledge-base/queries-sql/comparing-metrics-between-queries", + "resources/support-center/knowledge-base/queries-sql/filtered-aggregates", + "resources/support-center/knowledge-base/queries-sql/how-to-filter-a-clickhouse-table-by-an-array-column", + "resources/support-center/knowledge-base/queries-sql/how-to-insert-all-rows-from-another-table", + "resources/support-center/knowledge-base/queries-sql/pivot", + "resources/support-center/knowledge-base/queries-sql/useful-queries-for-troubleshooting", + "resources/support-center/knowledge-base/queries-sql/using-array-join-to-extract-and-query-attributes" + ] + }, + { + "group": "Materialized Views & Projections", + "pages": [ + "resources/support-center/knowledge-base/materialized-views/are-materialized-views-inserted-asynchronously", + "resources/support-center/knowledge-base/materialized-views/how-to-display-queries-using-mv", + "resources/support-center/knowledge-base/materialized-views/how-to-use-parametrised-views", + "resources/support-center/knowledge-base/materialized-views/projection-example" + ] + }, + { + "group": "Monitoring & Debugging", + "pages": [ + "resources/support-center/knowledge-base/monitoring-debugging/check-query-cache-in-use", + "resources/support-center/knowledge-base/monitoring-debugging/generate-har-file", + "resources/support-center/knowledge-base/monitoring-debugging/mapping-of-system-metrics-to-prometheus-metrics", + "resources/support-center/knowledge-base/monitoring-debugging/outputSendLogsLevelTracesToFile", + "resources/support-center/knowledge-base/monitoring-debugging/profiling-clickhouse-with-llvm-xray", + "resources/support-center/knowledge-base/monitoring-debugging/send-logs-level", + "resources/support-center/knowledge-base/monitoring-debugging/which-processes-are-currently-running", + "resources/support-center/knowledge-base/monitoring-debugging/view-number-of-active-mutations", + "resources/support-center/knowledge-base/monitoring-debugging/why-default-logging-verbose" + ] + }, + { + "group": "Security & Access Control", + "pages": [ + "resources/support-center/knowledge-base/security/check-users-roles", + "resources/support-center/knowledge-base/security/common-rbac-queries", + "resources/support-center/knowledge-base/security/remove-default-user", + "resources/support-center/knowledge-base/security/row-column-policy", + "resources/support-center/knowledge-base/security/windows-active-directory-to-ch-roles" + ] + }, + { + "group": "Data Management", + "pages": [ + "resources/support-center/knowledge-base/data-management/backing-up-a-specific-partition", + "resources/support-center/knowledge-base/data-management/calculate-ratio-of-zero-sparse-serialization", + "resources/support-center/knowledge-base/data-management/dictionaries-consistent-state", + "resources/support-center/knowledge-base/data-management/dictionary-using-strings", + "resources/support-center/knowledge-base/data-management/read-consistency", + "resources/support-center/knowledge-base/data-management/when-is-ttl-applied" + ] + }, + { + "group": "Setup & Installation", + "pages": [ + "resources/support-center/knowledge-base/setup-installation/difference-between-official-builds-and-3rd-party", + "resources/support-center/knowledge-base/setup-installation/enabling-ssl-with-lets-encrypt", + "resources/support-center/knowledge-base/setup-installation/how-to-increase-thread-pool-size", + "resources/support-center/knowledge-base/setup-installation/install-clickhouse-windows10", + "resources/support-center/knowledge-base/setup-installation/llvm-clang-up-to-date", + "resources/support-center/knowledge-base/setup-installation/production" + ] + }, + { + "group": "General & FAQs", + "root": "resources/support-center/knowledge-base/general-faqs/faq-index", + "pages": [ + { + "group": "General", + "root": "resources/support-center/knowledge-base/general-faqs/index", + "pages": [ + "resources/support-center/knowledge-base/general-faqs/columnar-database", + "resources/support-center/knowledge-base/general-faqs/concurrency", + "resources/support-center/knowledge-base/general-faqs/cost-based", + "resources/support-center/knowledge-base/general-faqs/datalake", + "resources/support-center/knowledge-base/general-faqs/dbms-naming", + "resources/support-center/knowledge-base/general-faqs/dependencies", + "resources/support-center/knowledge-base/general-faqs/distributed-join", + "resources/support-center/knowledge-base/general-faqs/federated", + "resources/support-center/knowledge-base/general-faqs/how-do-i-contribute-code-to-clickhouse", + "resources/support-center/knowledge-base/general-faqs/mapreduce", + "resources/support-center/knowledge-base/general-faqs/ne-tormozit", + "resources/support-center/knowledge-base/general-faqs/olap", + "resources/support-center/knowledge-base/general-faqs/sql", + "resources/support-center/knowledge-base/general-faqs/updates", + "resources/support-center/knowledge-base/general-faqs/who-is-using-clickhouse", + "resources/support-center/knowledge-base/general-faqs/why-recommend-clickhouse-keeper-over-zookeeper" + ] + }, + { + "group": "Use Cases", + "root": "resources/support-center/knowledge-base/general-faqs/use-cases-index", + "pages": [ + "resources/support-center/knowledge-base/general-faqs/key-value", + "resources/support-center/knowledge-base/general-faqs/time-series", + "resources/support-center/knowledge-base/general-faqs/use-clickhouse-for-log-analytics", + "resources/support-center/knowledge-base/general-faqs/vector-search" + ] + }, + { + "group": "Integration", + "root": "resources/support-center/knowledge-base/integrations/index", + "pages": [ + "resources/support-center/knowledge-base/data-import-export/json-import", + "resources/support-center/knowledge-base/integrations/oracle-odbc" + ] + }, + { + "group": "Operations", + "root": "resources/support-center/knowledge-base/general-faqs/operations-index", + "pages": [ + "resources/support-center/knowledge-base/tables-schema/delete-old-data", + "resources/support-center/knowledge-base/cloud-services/multi-region-replication", + "resources/support-center/knowledge-base/setup-installation/production", + "resources/support-center/knowledge-base/general-faqs/separate-storage" + ] + } + ] + }, + { + "group": "Tips & Tricks", + "pages": [ + "resources/support-center/tips-and-tricks/community-wisdom", + "resources/support-center/tips-and-tricks/cost-optimization", + "resources/support-center/tips-and-tricks/debugging-insights", + "resources/support-center/tips-and-tricks/materialized-views", + "resources/support-center/tips-and-tricks/performance-optimization", + "resources/support-center/tips-and-tricks/success-stories", + "resources/support-center/tips-and-tricks/too-many-parts" + ] + } + ] + } + ] +} diff --git a/resources/support-center/tips-and-tricks/community-wisdom.mdx b/resources/support-center/tips-and-tricks/community-wisdom.mdx index 037b96f6..1a3d25a9 100644 --- a/resources/support-center/tips-and-tricks/community-wisdom.mdx +++ b/resources/support-center/tips-and-tricks/community-wisdom.mdx @@ -22,7 +22,7 @@ description: 'Learn from the ClickHouse community with real world scenarios and *These interactive guides represent collective wisdom from hundreds of production deployments. Each runnable example helps you understand ClickHouse patterns using real GitHub events data - practice these concepts to avoid common mistakes and accelerate your success.* -Combine this collected knowledge with our [Best Practices](/concepts/best-practices) guide for optimal ClickHouse Experience. +Combine this collected knowledge with our [Best Practices](/core/concepts/best-practices) guide for optimal ClickHouse Experience. ## Problem-specific quick jumps {#problem-specific-quick-jumps} diff --git a/resources/support-center/tips-and-tricks/cost-optimization.mdx b/resources/support-center/tips-and-tricks/cost-optimization.mdx index e9fa5865..64f3535a 100644 --- a/resources/support-center/tips-and-tricks/cost-optimization.mdx +++ b/resources/support-center/tips-and-tricks/cost-optimization.mdx @@ -28,7 +28,7 @@ description: 'Cost optimization strategies from ClickHouse community meetups wit When Microsoft Clarity needed to handle hundreds of terabytes of data, they discovered that compression choices have dramatic cost implications. At their scale, every bit of storage savings matters, and they faced a classic trade-off: performance versus storage costs. Microsoft Clarity handles massive volumes—two petabytes of uncompressed data per month across all accounts, processing around 60,000 queries per hour across eight nodes and serving billions of page views from millions of websites. At this scale, compression strategy becomes a critical cost factor. -They initially used ClickHouse's default [LZ4](/reference/statements/create/table#lz4) compression but discovered significant cost savings were possible with [ZSTD](/reference/statements/create/table#zstd). While LZ4 is faster, ZSTD provides better compression at the cost of slightly slower performance. After testing both approaches, they made a strategic decision to prioritize storage savings. The results were significant: 50% storage savings on large tables with manageable performance impact on ingestion and queries. +They initially used ClickHouse's default [LZ4](/core/reference/statements/create/table#lz4) compression but discovered significant cost savings were possible with [ZSTD](/core/reference/statements/create/table#zstd). While LZ4 is faster, ZSTD provides better compression at the cost of slightly slower performance. After testing both approaches, they made a strategic decision to prioritize storage savings. The results were significant: 50% storage savings on large tables with manageable performance impact on ingestion and queries. **Key results:** - 50% storage savings on large tables through ZSTD compression @@ -49,7 +49,7 @@ This data-driven approach enables strategic decisions about retention policies a - Monitor query patterns for data-driven decisions **Related docs** -- [Managing Data - Column Level TTL](/guides/observability/build-your-own/managing-data) +- [Managing Data - Column Level TTL](/core/guides/use-cases/observability/build-your-own/managing-data) ## Partition-based data management {#partition-management} @@ -62,7 +62,7 @@ Microsoft Clarity discovered that partitioning strategy impacts both performance - Easier operational management **Related docs** -- [Managing Data - Partitions](/guides/observability/build-your-own/managing-data#partitions) +- [Managing Data - Partitions](/core/guides/use-cases/observability/build-your-own/managing-data#partitions) ## String-to-integer conversion strategy {#string-integer-conversion} @@ -81,7 +81,7 @@ This architecture preserves the user experience - people still see meaningful la - Lower network transfer costs for large result sets -This is a an example specifically used for Microsoft Clarity's data scenario. If you have all your data in ClickHouse or don't have constraints against moving data to ClickHouse, try using [dictionaries](/concepts/features/dictionaries) instead. +This is a an example specifically used for Microsoft Clarity's data scenario. If you have all your data in ClickHouse or don't have constraints against moving data to ClickHouse, try using [dictionaries](/core/concepts/features/dictionaries) instead. ## Video sources {#video-sources} diff --git a/resources/support-center/tips-and-tricks/debugging-insights.mdx b/resources/support-center/tips-and-tricks/debugging-insights.mdx index 7cf4d724..a36d3c69 100644 --- a/resources/support-center/tips-and-tricks/debugging-insights.mdx +++ b/resources/support-center/tips-and-tricks/debugging-insights.mdx @@ -98,7 +98,7 @@ Small frequent inserts create performance problems. The community has identified - Use buffer tables for server-side batching - Configure Kafka for controlled batch sizes -[Official recommendation](/concepts/best-practices/selecting-an-insert-strategy#batch-inserts-if-synchronous): minimum 1,000 rows per insert, ideally 10,000 to 100,000. +[Official recommendation](/core/concepts/best-practices/selecting-an-insert-strategy#batch-inserts-if-synchronous): minimum 1,000 rows per insert, ideally 10,000 to 100,000. ### Invalid timestamps issues {#data-quality-issues} @@ -122,7 +122,7 @@ Test schema changes on smaller datasets first. ### External aggregation {#external-aggregation} -Enable external aggregation for memory-intensive operations. It's slower but prevents out-of-memory crashes by spilling to disk. You can do this by using `max_bytes_before_external_group_by` which will help prevent out of memory crashes on large `GROUP BY` operations. You can learn more about this setting [here](/reference/settings/session-settings#max_bytes_before_external_group_by). +Enable external aggregation for memory-intensive operations. It's slower but prevents out-of-memory crashes by spilling to disk. You can do this by using `max_bytes_before_external_group_by` which will help prevent out of memory crashes on large `GROUP BY` operations. You can learn more about this setting [here](/core/reference/settings/session-settings#max_bytes_before_external_group_by). ```sql SELECT @@ -140,7 +140,7 @@ SETTINGS max_bytes_before_external_group_by = 1000000000; -- 1GB threshold Async insert automatically batches small inserts server-side to improve performance. You can configure whether to wait for data to be written to disk before returning acknowledgment - immediate return is faster but less durable. Modern versions support deduplication to handle duplicate data within batches. **Related docs** -- [Selecting an insert strategy](/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts) +- [Selecting an insert strategy](/core/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts) ### Distributed table configuration {#distributed-table-configuration} @@ -156,7 +156,7 @@ Community-recommended monitoring thresholds: - Insert rate: limit to about 1 per second for optimal performance **Related docs** -- [Custom partitioning key](/reference/engines/table-engines/mergetree-family/custom-partitioning-key) +- [Custom partitioning key](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key) ## Quick reference {#quick-reference} diff --git a/resources/support-center/tips-and-tricks/materialized-views.mdx b/resources/support-center/tips-and-tricks/materialized-views.mdx index 60ac4bf6..b6dda7e8 100644 --- a/resources/support-center/tips-and-tricks/materialized-views.mdx +++ b/resources/support-center/tips-and-tricks/materialized-views.mdx @@ -22,7 +22,7 @@ description: 'Real world examples of materialized views, problems and solutions' *This guide is part of a collection of findings gained from community meetups. For more real world solutions and insights you can [browse by specific problem](/resources/support-center/tips-and-tricks/community-wisdom).* *Too many parts bogging your database down? Check out the [Too Many Parts](/resources/support-center/tips-and-tricks/too-many-parts) community insights guide.* -*Learn more about [Materialized Views](/concepts/features/materialized-views).* +*Learn more about [Materialized Views](/core/concepts/features/materialized-views).* ## The 10x storage anti-pattern {#storage-antipattern} diff --git a/resources/support-center/tips-and-tricks/performance-optimization.mdx b/resources/support-center/tips-and-tricks/performance-optimization.mdx index 6419be49..a556bb63 100644 --- a/resources/support-center/tips-and-tricks/performance-optimization.mdx +++ b/resources/support-center/tips-and-tricks/performance-optimization.mdx @@ -22,14 +22,14 @@ description: 'Real world examples of performance optimization strategies' *This guide is part of a collection of findings gained from community meetups. For more real world solutions and insights you can [browse by specific problem](/resources/support-center/tips-and-tricks/community-wisdom).* *Having trouble with Materialized Views? Check out the [Materialized Views](/resources/support-center/tips-and-tricks/materialized-views) community insights guide.* -*If you're experiencing slow queries and want more examples, we also have a [Query Optimization](/guides/cloud-oss/performance-and-monitoring/query-optimization) guide.* +*If you're experiencing slow queries and want more examples, we also have a [Query Optimization](/core/guides/clickhouse/performance-and-monitoring/query-optimization) guide.* ## Order by cardinality (lowest to highest) {#cardinality-ordering} ClickHouse's primary index works best when low-cardinality columns come first, allowing it to skip large chunks of data efficiently. High-cardinality columns later in the key provide fine-grained sorting within those chunks. Start with columns that have few unique values (like status, category, country) and end with columns that have many unique values (like user_id, timestamp, session_id). Check out more documentation on cardinality and primary indexes: -- [Choosing a Primary Key](/concepts/best-practices/choosing-a-primary-key) -- [Primary indexes](/concepts/core-concepts/primary-indexes) +- [Choosing a Primary Key](/core/concepts/best-practices/choosing-a-primary-key) +- [Primary indexes](/core/concepts/core-concepts/primary-indexes) ## Time granularity matters {#time-granularity} When using timestamps in your ORDER BY clause, consider the cardinality vs precision trade-off. Microsecond-precision timestamps create very high cardinality (nearly one unique value per row), which reduces the effectiveness of ClickHouse's sparse primary index. Rounded timestamps create lower cardinality that enables better index skipping, but you lose precision for time-based queries. @@ -133,5 +133,5 @@ From Sentry's engineering team: "These heavy queries are more than 10x faster an - [ClickHouse Meetup: Query Optimization Techniques](https://www.youtube.com/watch?v=JBomQk4Icjo) - Community optimization strategies **Read Next**: -- [Query Optimization Guide](/guides/cloud-oss/performance-and-monitoring/query-optimization) +- [Query Optimization Guide](/core/guides/clickhouse/performance-and-monitoring/query-optimization) - [Materialized Views Community Insights](/resources/support-center/tips-and-tricks/materialized-views) diff --git a/resources/support-center/tips-and-tricks/too-many-parts.mdx b/resources/support-center/tips-and-tricks/too-many-parts.mdx index ccd26093..b907a05a 100644 --- a/resources/support-center/tips-and-tricks/too-many-parts.mdx +++ b/resources/support-center/tips-and-tricks/too-many-parts.mdx @@ -28,9 +28,9 @@ description: 'Solutions and prevention of Too Many Parts' ClickHouse will throw a "Too many parts" error to prevent severe performance degradation. Small parts cause multiple issues: poor query performance from reading and merging more files during queries, increased memory usage since each part requires metadata in memory, reduced compression efficiency as smaller data blocks compress less effectively, higher I/O overhead from more file handles and seek operations, and slower background merges giving the merge scheduler more work. **Related Docs** -- [MergeTree Engine](/reference/engines/table-engines/mergetree-family/mergetree) -- [Parts](/concepts/core-concepts/parts) -- [Parts System Table](/reference/system-tables/parts) +- [MergeTree Engine](/core/reference/engines/table-engines/mergetree-family/mergetree) +- [Parts](/core/concepts/core-concepts/parts) +- [Parts System Table](/core/reference/system-tables/parts) ## Recognize the problem early {#recognize-parts-problem} diff --git a/resources/support-center/troubleshooting/index.mdx b/resources/support-center/troubleshooting/index.mdx index f5e6e978..d65349e9 100644 --- a/resources/support-center/troubleshooting/index.mdx +++ b/resources/support-center/troubleshooting/index.mdx @@ -29,27 +29,27 @@ Queries running slowly, timeouts, or getting specific error messages like "Memor ### Query performance {#query-performance} - [Find which queries are using the most resources](/resources/support-center/knowledge-base/performance-optimization/find-expensive-queries) -- [Complete query optimization guide](/guides/cloud-oss/performance-and-monitoring/query-optimization) -- [Optimize JOIN operations](/concepts/best-practices/minimize-optimize-joins) +- [Complete query optimization guide](/core/guides/clickhouse/performance-and-monitoring/query-optimization) +- [Optimize JOIN operations](/core/concepts/best-practices/minimize-optimize-joins) - [Run diagnostic queries to find bottlenecks](/resources/support-center/knowledge-base/queries-sql/useful-queries-for-troubleshooting)
    ### Data insertion performance {#data-insertion-performance} -- [Speed up data insertion](/concepts/operations/insert/bulkinserts) -- [Set up asynchronous inserts](/concepts/operations/insert/asyncinserts) +- [Speed up data insertion](/core/concepts/features/operations/insert/bulkinserts) +- [Set up asynchronous inserts](/core/concepts/features/operations/insert/asyncinserts)
    ### Advanced analysis tools {#advanced-analysis-tools} {/* - [Profile with LLVM XRay](/resources/support-center/knowledge-base/monitoring-debugging/profiling-clickhouse-with-llvm-xray) */} - [Check what processes are running](/resources/support-center/knowledge-base/monitoring-debugging/which-processes-are-currently-running) -- [Monitor system performance](/reference/system-tables/processes) +- [Monitor system performance](/core/reference/system-tables/processes)
    ### Error messages {#error-messages} -- **"Memory limit exceeded"** → [Debug memory limit errors](/concepts/features/performance/troubleshoot/debugging-memory-issues) +- **"Memory limit exceeded"** → [Debug memory limit errors](/core/concepts/features/performance/troubleshoot/debugging-memory-issues) - **"Connection refused"** → [Fix connection problems](#connections-and-authentication) -- **"Login failures"** → [Set up users, roles, and permissions](/concepts/features/security/access-rights) +- **"Login failures"** → [Set up users, roles, and permissions](/core/concepts/features/security/access-rights) - **"SSL certificate errors"** → [Fix certificate problems](/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error) -- **"Table/database errors"** → [Database creation guide](/reference/statements/create/database) | [Table UUID problems](/reference/engines/database-engines/atomic) -- **"Network timeouts"** → [Network troubleshooting](/integrations/connectors/data-integrations/drivers-and-interfaces/http) -- **Other issues** → [Track errors across your cluster](/reference/system-tables/errors) +- **"Table/database errors"** → [Database creation guide](/core/reference/statements/create/database) | [Table UUID problems](/core/reference/engines/database-engines/atomic) +- **"Network timeouts"** → [Network troubleshooting](/core/concepts/features/interfaces/http) +- **Other issues** → [Track errors across your cluster](/core/reference/system-tables/errors)
    ## Memory and resources {#memory-and-resources} @@ -59,20 +59,20 @@ High memory usage, out-of-memory crashes, or need help sizing your ClickHouse de ### Memory debugging and monitoring: {#memory-debugging-and-monitoring} -- [Identify what's using memory](/concepts/features/performance/troubleshoot/debugging-memory-issues) -- [Check current memory usage](/reference/system-tables/processes) -- [Memory allocation profiling](/concepts/features/performance/allocation-profiling) -- [Analyze memory usage patterns](/reference/system-tables/query_log) +- [Identify what's using memory](/core/concepts/features/performance/troubleshoot/debugging-memory-issues) +- [Check current memory usage](/core/reference/system-tables/processes) +- [Memory allocation profiling](/core/concepts/features/performance/allocation-profiling) +- [Analyze memory usage patterns](/core/reference/system-tables/query_log)
    ### Memory configuration: {#memory-configuration} -- [Configure memory limits](/concepts/features/configuration/settings/memory-overcommit) -- [Server memory settings](/reference/settings/server-settings/settings) -- [Session memory settings](/reference/settings/session-settings) +- [Configure memory limits](/core/concepts/features/configuration/settings/memory-overcommit) +- [Server memory settings](/core/reference/settings/server-settings/settings) +- [Session memory settings](/core/reference/settings/session-settings)
    ### Scaling and sizing: {#scaling-and-sizing} -- [Right-size your service](/guides/oss/best-practices/tips) +- [Right-size your service](/core/guides/oss/best-practices/tips) - [Configure automatic scaling](/products/cloud/features/autoscaling/overview)
    @@ -82,20 +82,20 @@ Can't connect to ClickHouse, authentication failures, SSL certificate errors, or ### Basic Connection issues {#basic-connection-issues} -- [Fix HTTP interface issues](/integrations/connectors/data-integrations/drivers-and-interfaces/http) +- [Fix HTTP interface issues](/core/concepts/features/interfaces/http) - [Handle SSL certificate problems](/resources/support-center/knowledge-base/troubleshooting/certificate-verify-failed-error) -- [User authentication setup](/concepts/features/security/access-rights) +- [User authentication setup](/core/concepts/features/security/access-rights)
    ### Client interfaces {#client-interfaces} -- [Native ClickHouse clients](/integrations/connectors/data-integrations/drivers-and-interfaces/native-clients-interfaces-index) -- [MySQL interface problems](/integrations/connectors/data-integrations/drivers-and-interfaces/mysql) -- [PostgreSQL interface issues](/integrations/connectors/data-integrations/drivers-and-interfaces/postgresql) -- [gRPC interface configuration](/integrations/connectors/data-integrations/drivers-and-interfaces/grpc) -- [SSH interface setup](/integrations/connectors/data-integrations/drivers-and-interfaces/ssh) +- [Native ClickHouse clients](/core/concepts/features/interfaces/native-clients-interfaces-index) +- [MySQL interface problems](/core/concepts/features/interfaces/mysql) +- [PostgreSQL interface issues](/core/concepts/features/interfaces/postgresql) +- [gRPC interface configuration](/core/concepts/features/interfaces/grpc) +- [SSH interface setup](/core/concepts/features/interfaces/ssh)
    ### Network and data {#network-and-data} -- [Network security settings](/reference/settings/server-settings/settings) -- [Data format parsing issues](/reference/formats) +- [Network security settings](/core/reference/settings/server-settings/settings) +- [Data format parsing issues](/core/reference/formats)
    ## Setup and configuration {#setup-and-configuration} @@ -104,27 +104,27 @@ Initial installation, server configuration, database creation, data ingestion is ### Initial setup {#initial-setup} -- [Configure server settings](/reference/settings/server-settings/settings) -- [Set up security and access control](/concepts/features/security/access-rights) -- [Configure hardware properly](/guides/oss/best-practices/tips) +- [Configure server settings](/core/reference/settings/server-settings/settings) +- [Set up security and access control](/core/concepts/features/security/access-rights) +- [Configure hardware properly](/core/guides/oss/best-practices/tips)
    ### Database management {#database-management} -- [Create and manage databases](/reference/statements/create/database) -- [Choose the right table engine](/reference/engines/table-engines) -{/* - [Modify schemas safely](/reference/statements/alter) */} +- [Create and manage databases](/core/reference/statements/create/database) +- [Choose the right table engine](/core/reference/engines/table-engines) +{/* - [Modify schemas safely](/core/reference/statements/alter) */}
    ### Data operations {#data-operations} -- [Optimize bulk data insertion](/concepts/operations/insert/bulkinserts) -- [Handle data format problems](/reference/formats) -- [Set up streaming data pipelines](/concepts/operations/insert/asyncinserts) +- [Optimize bulk data insertion](/core/concepts/features/operations/insert/bulkinserts) +- [Handle data format problems](/core/reference/formats) +- [Set up streaming data pipelines](/core/concepts/features/operations/insert/asyncinserts) - [Improve S3 integration performance](/integrations/connectors/data-ingestion/AWS/performance)
    ### Advanced configuration {#advanced-configuration} -- [Set up data replication](/reference/engines/table-engines/mergetree-family/replication) -- [Configure distributed tables](/reference/engines/table-engines/special/distributed) -{/* - [ClickHouse Keeper setup](/guides/oss/deployment-and-scaling/keeper) */} -- [Set up backup and recovery](/concepts/features/backup-restore/overview) -- [Configure monitoring](/reference/system-tables/overview) +- [Set up data replication](/core/reference/engines/table-engines/mergetree-family/replication) +- [Configure distributed tables](/core/reference/engines/table-engines/special/distributed) +{/* - [ClickHouse Keeper setup](/core/guides/oss/deployment-and-scaling/keeper) */} +- [Set up backup and recovery](/core/concepts/features/backup-restore/overview) +- [Configure monitoring](/core/reference/system-tables/overview)
    ## Still need help? {#still-need-help} @@ -132,7 +132,7 @@ Initial installation, server configuration, database creation, data ingestion is If you can't find a solution: 1. **Ask AI** - Ask AI for instant answers. -1. **Check system tables** - [Overview](/reference/system-tables/overview) +1. **Check system tables** - [Overview](/core/reference/system-tables/overview) 2. **Review server logs** - Look for error messages in your ClickHouse logs 3. **Ask the community** - [Join Our Community Slack](https://clickhouse.com/slack), [GitHub Discussions](https://github.com/ClickHouse/ClickHouse/discussions) 4. **Get professional support** - [ClickHouse Cloud support](https://clickhouse.com/support) diff --git a/get-started/oss/starter-guides/troubleshooting.mdx b/resources/support-center/troubleshooting/troubleshooting.mdx similarity index 89% rename from get-started/oss/starter-guides/troubleshooting.mdx rename to resources/support-center/troubleshooting/troubleshooting.mdx index 96efad51..5b302cb8 100644 --- a/get-started/oss/starter-guides/troubleshooting.mdx +++ b/resources/support-center/troubleshooting/troubleshooting.mdx @@ -1,7 +1,7 @@ --- title: 'Troubleshooting' description: 'Installation troubleshooting guide' -slug: /guides/troubleshooting +slug: /core/guides/troubleshooting doc_type: 'guide' keywords: ['troubleshooting', 'debugging', 'problem solving', 'errors', 'diagnostics'] --- @@ -10,7 +10,7 @@ keywords: ['troubleshooting', 'debugging', 'problem solving', 'errors', 'diagnos ### Can't import GPG keys from keyserver.ubuntu.com with apt-key {#cant-import-gpg-keys-from-keyserverubuntucom-with-apt-key} -The `apt-key` feature with the [Advanced package tool (APT) has been deprecated](https://manpages.debian.org/bookworm/apt/apt-key.8.en.html). You should use the `gpg` command instead. Please refer the [install guide](/get-started/setup/self-managed/install) article. +The `apt-key` feature with the [Advanced package tool (APT) has been deprecated](https://manpages.debian.org/bookworm/apt/apt-key.8.en.html). You should use the `gpg` command instead. Please refer the [install guide](/core/get-started/setup/install) article. ### Can't import GPG keys from keyserver.ubuntu.com with gpg {#cant-import-gpg-keys-from-keyserverubuntucom-with-gpg} @@ -23,13 +23,13 @@ sudo apt-get install gnupg ### Can't get deb packages from ClickHouse repository with apt-get {#cant-get-deb-packages-from-clickhouse-repository-with-apt-get} 1. Check firewall settings. -1. If you can't access the repository for any reason, download packages as described in the [install guide](/get-started/setup/self-managed/install) article and install them manually using the `sudo dpkg -i ` command. You will also need the `tzdata` package. +1. If you can't access the repository for any reason, download packages as described in the [install guide](/core/get-started/setup/install) article and install them manually using the `sudo dpkg -i ` command. You will also need the `tzdata` package. ### Can't update deb packages from ClickHouse repository with apt-get {#cant-update-deb-packages-from-clickhouse-repository-with-apt-get} The issue may be happened when the GPG key is changed. -Please use the manual from the [setup](/get-started/setup/self-managed/debian-ubuntu) page to update the repository configuration. +Please use the manual from the [setup](/core/get-started/setup/self-managed/debian-ubuntu) page to update the repository configuration. ### You get different warnings with `apt-get update` {#you-get-different-warnings-with-apt-get-update} @@ -74,7 +74,7 @@ sudo find /var/lib/yum/repos/ /var/cache/yum/ -name 'clickhouse-*' -type d -exec sudo rm -f /etc/yum.repos.d/clickhouse.repo ``` -After that follow the [install guide](/get-started/setup/self-managed/redhat) +After that follow the [install guide](/core/get-started/setup/self-managed/redhat) ## Connecting to the server {#connecting-to-the-server} @@ -159,7 +159,7 @@ Check: - If you run ClickHouse in Docker in an IPv6 network, make sure that `network=host` is set. 1. Endpoint settings. - - Check [listen_host](/reference/settings/server-settings/settings#listen_host) and [tcp_port](/reference/settings/server-settings/settings#tcp_port) settings. + - Check [listen_host](/core/reference/settings/server-settings/settings#listen_host) and [tcp_port](/core/reference/settings/server-settings/settings#tcp_port) settings. - ClickHouse server accepts localhost connections only by default. 1. HTTP protocol settings: @@ -169,8 +169,8 @@ Check: 1. Secure connection settings. - Check: - - The [tcp_port_secure](/reference/settings/server-settings/settings#tcp_port_secure) setting. - - Settings for [SSL certificates](/reference/settings/server-settings/settings#openssl). + - The [tcp_port_secure](/core/reference/settings/server-settings/settings#tcp_port_secure) setting. + - Settings for [SSL certificates](/core/reference/settings/server-settings/settings#openssl). - Use proper parameters while connecting. For example, use the `port_secure` parameter with `clickhouse_client`. 1. User settings: diff --git a/scripts/__pycache__/generate-slug-map.cpython-314.pyc b/scripts/__pycache__/generate-slug-map.cpython-314.pyc deleted file mode 100644 index a7a20bd45f56027ccc2cab23b993c41af03d2ad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13671 zcmcIKTX0*)b$jt3p2UMs@O}A^NKkx8q9jV9UX&nzWfd1~5ngzE*0taXF|s zpidlZRbrYS@5+4Gs`E?5e4#Sla6xOU|1xYNl6qp49lBgSQ}V~zP?wv11ME~Y`CBdF zr{o9?c>`Y7#d~SaAD-@-1S>q)V&q4~5vE%RRGSOVc~L=n0qqGR@C;^V_rDP>^ox?DS;2w9>AC zhjs`3ey^L)3>b1vds{i^1;P{?4Dhoqp7*l!C5+_$OI=X2Gq3+F8dC4G8N51Zk9W!y z_Ve^XK*Yz<7(g7*7w~wm!91tEnQMq6dR4?S=W}Pl#Y7VoK9NzsDJ7 z{V>`A$aYS;IPanE0~q9x1R|m4obvg-02p$?S_Y@cI%Vg9(Gph~FCXWc6}Ly~BjCL% z4I_0YjU|1H-Q$f4hGA8&@!kOE3kEW1oSdQq!QAeV;bvSMAmQT47I)CIF7`5gDI9>6 zch7h|u;$v6foziw+C|o`mBU+4!^&cEAX6d}V!eJB@4Moq`5+Bj&2>G?1p{#@@R7Wn}g7rMGSL-v4%`AOYQhJCPmKm)U6g|Z`bzyvbouE2FIUSb&D>-PYj zXE|6tOoKEXx(*8vpgA{;#&g}%8Dj6m@Pyby*S{_tolms%i`@fW?lK*d32K#;=@-9~_I(NvHHBH(cEO~OF; zSGNvT_*M1fQBm&(x7_8 zDDZC=%m9Z51TFIb6mc^yn24YVhP(km;RAUh6oo?`kbQy%rtI;7DB!IMRt+r$ zYDQ4HXTpKYENm*`@X^>x(?>)sHCfzP8Y&3wJ_8v*=To(D(eSb%skTJ=(;Dq!#X`lB zVzKr+wb7D$(}sboP5^?#od{??XA#R;(8xDDGS6d*xuX zbWK+mSJXXJLHT0sBMwu>inV{Q@)vt`N7b4Q2fhgEU^l1-Es*)D1J5X#qHa0tgNntp z47(5v^5VJIT%L4t;Yp8=Ww9E_Vj6x_;rDU;GkiGY_dbJ}RtF8o{=x+oBV(mlJtQJu zAnQU7GKqHJiYAEgX)dLV_i+?ctm9;*lqB(C7bzth=FUH@nb{~G{3TFR1a-lgnxOKv zw2<5`FGOjQhL=4RuqL(04onWRI2hK0_tFU2AHw6c# z9uoEe_9Dw2-i|PIfwOJTo{f<5F%WX;^w==LZwgG7tAvUext+>aEg52B&>)ogx4#RtN3vn(m^zH;mqW0ONqGJ2T2uXI6K1pmdM1mZ&IYD-LQe;wc=m`XMcv4W{b>uMZZ3Q-kgUG4M zGkUdi!=%`~07%a0pF<{s*7ZnN966TO6t8KjB1hA@;>CRn`xg6N?n@g>=C$c!MX7p^Zp|MK%u*R7eGGjDrV>vw*rFH0MYi?a)}(Sf9)ab6Cr3;^-> z(WIdvW!RQ5Y+HtG_q-hXTsrsNmtv)B#+Em^<(@aLrCNIvt-W^?cihR=qie>a^NO@u zx2RpvE*)FyyQ^-vZ$^fi^%A5vMox+R0?Qdm)+itkr~B)wJB0IzONv_(M#r|`+>^N4 z5CCyC5Mi!Xj=35{OD*d-iP!8PpE>jZjs(m|0X^k|9|4mi>$EA;I25&xO>K97B>jh&cdv*GE02IE6f0G26oz$V$vm zG4tOPOj%`R5NbEF;bB-^Ps3g4(SW5XwH z&ViH6m{lgoy0#07kc;IxyysgptWR?Qv;1oz_K;AW;evUZq*ONwEjTRKJ_9`BhThxf zV&gx!e%DC<_}qUIt?!%VmDKp)BW0MM>fFm>rU@gey#aU70|pXc`79e`x&5QQxC#_b z7H_H5#BPIx#qyKw#8DTHx*-zea9b6W1X)3YbzmnC@F3zB#WbPBQ`n78wya!S2RT ziWwLU^zB&?7H(HSpk_sRA&QI4qNy?~#g0LfA^39-A&Q_+w0e*a#pcEH3+JQqMd#O+ z10U-Quk<7gy~|_oocqzaq@j1QXR+ty4J9dE?+3bGkRa?g_{CxB<~#xknuK7uF;YBVIVQu6g>v6DeeNsbvHwy^!<6ZL5z4`U(boaA^aY>|*i#2pbao#OMR}20VXq zZ`dl{8}K1yaYSYc+BK#)onfi$M$M}=(XphtaZT44S2X5kDT&XoyZjkbhj{BzgW5#& zP;&DT6##PQd6EL)!FWqX3LRB*A3+r5*Kx8eCto=f0hR=8W&jFNKKK=6z(gUT4tAMB zvOT8-NSwUTl?2;wB*Oz3Gblzu%)Ky9Ey!57@K82jN1Fqql={SM3I`8J0=UXhOpzn2 z4dkG#pksxo%@+%NeVqH#L2SPKDqG({Vr(T+!Af@?%9;*|We+z5mHyIHFxX8jv0byC zOV9v}vS4-qBjlxSsJbLt`AA*_yVOOG2Sc5HkUW0+QnsabLrbt#5uXyepOPY>EPNr3+rJ+?-&4_zhrs`NY-8bmH;(Pds=9?SmDo;5=E$nIPk@wz zat~{=IoPxIkOs72)BaVkto^KK=Qrjf5${~%IQfbC8TR&Vb zwRWuybI48MOO#23$}sFOz{53Sb8uu82duPbt}>vPPW+J#tG%1T6W3O2!#eh+P}5~3SVaxk5e9)6BdgFd%)WCrofaj52q_0|!sS`PZ?GGrjn1q)oEXOPn3fi4gg$CxE4b2E z+2HE8IY^XXJG{9j?^UAuF{4%gzl>J%n9*v!VzlzFnj2I5m>z5Yw>@?%CVq}Dy~F>W zxwzIb@XNjOfIZvD)PqMv1N`ZWs9PQ~0i_-J@*3NYeYuQjl<*3fq1C{bA)e5x#4#kb zvCEhy@EmBC=+*=#fWhZQJ{T$mi?3Oa>?+LZLuHPW*;WN*oV_%kn`LnCCB)+fuy`Xbc<+MyJ}@~{k3sa;oa^;F%t{i(Ja z3rRty(yn4!^HwPv&~+`blA&*D^(X7iLo$M5+yJ-kAbPl@jN)M zh5M<^gQx;$%B2!+Anz(OJf}8PmpAH8doA?TW3PkrlQqkNj0Z0< zVi2r*(i`}3*~ojMG4ly;0MM7U$g18J^ihUY`v{_Z?il`eO1wi~;vfHj7| z8*_*dSE9KsQlk*-y8>_IoxSc}&y;uHzAg#jE_k1stIN$)yzdjYoM0GSy5JT+SF>?0 z8!EB=lM9Afx0jnUaN$r0+!H$8;ELd7=M35RDuNBMBC|*F>@f3(nI3~gP=TY6-xu%- zMwm**Lyed~1@)|N8hf>Q1mzUC4tNFAtSb<9`Tf_O;LYT|3>C!^h!el&3%cy5iyswK z8Mh}vll6cSG~j&Tn+}7g53wl_Gaz6=0^A%#Ux+fuMBp9=+;)SvhL!pZ8-6mjK7qQH zZ~wv%5kkeR%NNMAP-lD{mZ6RqY9r`Q{~g!Q2gvmw%xUt=-s^M5O|O-6a{Bk^4VdA3 zI9P(I2UzXQn%lwb6Qc4=QQ1d~jM2R$bH*}8clH1@22#ORGFbdWkO-7J-zLHy!DW@3 z<{(+w--AjH+x3W*z3I@q`)xswTqnwt2|JOp`V=&&jK0R@Fy#%oKB!Fr&Fk5Tvx$oi@1^jb2tI#7aRhCP_QS7 z-sSN)p%2nh^r$EqI6l~ac4XW+aOT+AvHr8n*)c&ge&Xa981QXp1T7g3x8VeBj(%Bu z#S)a{Spk!=ID2A`C(pL{ks17TJggkUDX@bEc?Br+U?8(CeOI`yoNeXgs@D#KI z;ETq9)fRAU8d#SjWf?qo zC7;z1i|p&7IM;?WZDVRu#iiZzJ*cAzW}GQxGrP67RO- zk_qfXaB$(^D~BTkpXiK>hZhc~bd3pJV@lWjfv!2N)-I|S)bY~oD`oFByxS1p-XAv~ zT~!}T11vO4=^7Hc259ktt}zSSwamZs!tEE9gK_hrRrTRd&6a4{t%jQoNwYO_>YkxF zHt^P&*UuykyCOqrg(0OVPbkWlrdJj9B4pjox}>=^a_ZCe-9Pmt+xsFTAC)&OXuuyq zUACsKPN^Fc>c&{}UG-M%kVUU+QJLk&!B-E)`qoOj;ye1+O8esj<7=hkk&$~l4*b=4 za>voQqB5;2O{uCAs_K-g_5)RI+FX}1Hz&-^v1515ZS(zEZ;9_bAARoDwVT)8-gUR3 zJ8f!yYw-2KHPg0~X=lQ;b7jYS2j4yTe%asE{h}_}bLOtec3+7~tboFfp2%ogrTg}^ zZ(RHKOW$}YrLrVd7W@te{uqlF7B0kwR+#w#e44@y;oU%H?A-*W8EP^#rrqUBVw zWhB+YBwCnc%Xr$-4sUi7w*t@ce4Fxs{KT~{lxo|DeIYp^-R+GRNAs-S^kddwrZs~*>)(^HV|(cc)uyt zI-F=7PPU$2*C@ADER811TJNinr5)Vh4ExqAklqj(NE<4n=IHRUd3pGbIbPfs8B7~X z7hhO-A!Te%7-5Bz#5td+FBs=F zOS{tLbxWtBd~_;avSnU%uc9HQc+2>@amBhu_a!S1%bVuX8H{%wPSqdzp#Dg@sv}jkJyErNrRu%5miBo#YmHIuYID!ZsXNd8>~ymEXuRoIykcN}C|zE^FnF)nv{e0y zGy2?WF`c&5-O}FFCa`!+HXTY@4ngY*3x=c@20yV>=RW5L(`v)~l|@6eaZO$Gis2Je zeah67Fg3+?!E1x5V_un7>lbwky0pG7%0u)+F1GKFUrg(3qUX~3@};YpsBCE}t*?sq zrS%n2!TFX8Wt@Jmc_b-x+N|)u`)Sdm(uK8)$F^& z+%uQmsDG_KCVQJ-8MtHq+0c6#OQ| z>gWh0}IAp5He2ZR2V$Au_HCsLfHt8zK5%1te3@RaY2`P)yMwmqTZmw zq6)lXMNI{eCNEk}?0m)r{Z~NjgLVQs5c@6MUNI8{HR2C&$Jk6r+!+LL6_^cS6-{#* zl$?_zCr6L7BN)19;LLdc$OwxqMnpd#dW)#RjN&q^7!bjQR|{(>fI5D9C7P`$+|&oe zH95ro8Y-~n%>5i9c$cTB`-(D3@kKkLntzLoA0h2WNb?ag{024u23h`9Z(6dvGMdsi zCG<^6eM?HeEur6*((g>@cSbbn@~Ru>UOV^wXJY%-$~)rSN7l-Z#8HW$pMW}5MMRO- z>KEHzZjYDu-YNO(+P|nxY6l~#w7K*~^=sAf+U+Y%?^)lqCd~&ThA)c1G5ui)__Kb| s0q$R4Y=^h_FSPIu{2#R*imF>5l_Q0Ier{D>^`S!jtw9henTNao0cc|&M*si- diff --git a/scripts/__pycache__/update_release_notes.cpython-314.pyc b/scripts/__pycache__/update_release_notes.cpython-314.pyc deleted file mode 100644 index ce2a17b50014db30feb3d8cd759fd0335c26cdcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17970 zcmb_@eQ;FQmFIokuUq{kwLX#12YLtuYNVEs_%H||5C{+kf!qi|Y?*dT{UkNCy4&x) z=A(%dWj2|B?JPKP*2=_Nqf|T-xyn-^RjG#BHXovQg`{t%I{lxJtnCTvnu`;Q1_ zyqoOS?(f{!ue&8T;MvNP&b_DayWbz@oO{lB%|(SShG)$u--vw8&)Dzihxs_u$b+Y? zjD^?~3;azb)7Ecg8VfK@IL89QQHy5bu~oD3Sky!w+cX=G?OFkk9Xz%ib@n+mXFWrj z^{A`Qt+_ca9`*DUYK478T2Y@@^Y#^M#eF4ONj(eL0`@>bz|m#_<^<;Am>ZafV}-zq zIOYXb%&`(+rEQj0yH@%!gSPy6bYyfNoGy*mOHUpXfKEM`0GoS_F2ebm(09yg=fDXVm zz;?h6z)rwZfL(yyfKI?3Ko?*ypc}9cupiI^H~=^Z=mi`C90nW#^Z||no(3EP90&9R zP5@2<1^~|h0)SJ1LBMIi5a0~pEZ|FkX93Rvh5^q5&H;je7XTr^2w)Tt2FQRhz&Kz6 z5CNPATmVD?lYkf?4oCoA1SkL%paGJAi-1dj%YZ9@6yPf0%Yc^vUjcj-Fa`J;;I9Dx z4)ArrHvoSP_$J^Q;5y)Cz$<`PF9=#y;9FSFf6v!*ZQus*n;fqWyaxQ+9Ipv{2l(q8 zuMK<`_ZyuIxyq-P3Zav$cPS`FO2=<_` zfrIb+p=u<$PK_#&geGZmX-w8eC!`}0tuHwuDRNW}sj@1K#TDsbG%|XjFP>CoDH@86 zCqv`1G#ZV_F-?_1v9L5Q$7Cg>$*%rLOp8Xwu1H;{6JaEDOQZ40L_EfGMq-jSfr4>G zkyRvyBe8L_9e*sY$!hCl__8z>i2`%EPE+ggSoDfCa7CMl$0St?Mh;|0;bPM3t|$kD;R(+7fsCyyOEv3GnT5o~R3l@jUd_`ub+ zB=2c3J>a0xk;E0(37?=lXb@UtQU)##gtQ5tO}F;MuIOTKWK`3|;}KQU9VZi7BpwSz zb=zPv5tVgOkrVM$Rd&|eFj=D)CTIfv=T%*#A*MRQ@lmzSoKJsxKHJWRE{0UzwYGGZ zvU8KF%U|bcJQkBjwNz{VDvbf>sqPV79FM2A5ui)Kp9UT9l-!<*8@wBL@&g!C_!N93FH6nPNlioMqS7aRiZG%bpP? zgn%$?oH2yM787m35jCGS9KE+K|3dF{yCQ2zCFZjz1@zOZY6|w49j9$Fq^ZPT}(qk7N>_^HJ%Z_s(Gfp!rV*|DO55hWg*1mS4aJ-Nr&XVoonRWC^A(5>UL_BK<>(3Dbw zKrco@a6F<-Bu9e0R)v;;54r-#6uajxywQ2R^G5ge?&;Qfw{K4L@!~6%o1_jJ_Jfys zna3}8z>;0??BwJweZV>_q9Xnb+cTJnuwjRZZnNZ;%f;KQm^@J_L{5der`wF-6#@6z z6fdRIW>Tnrg;qhKHhqFpjL6tie2Vxk-~sJrwF3cdg=V4rJ_T={TBhios-JH7hdPeF zxBUb0gH!*!;r+9}EV{GjB+q3`S?>C$r%ZhCDN?6cD@$0;2?^`Da6+sB%Nb%G7O)J7 z2(3d_59_ceY}v{BqC08GX6~efeaJpQ<6ZRx#DHykx?lC|5qTia<>V1Ir|Sr>q0{_` zGLC?ANI<_W*^)I+It!-on$yQ2yE%eALQqIrlGb2`O(zP5xgbp02Ru22(&&0NR4_mb zz3MU9`~aPRRZqZWwr9o(N5D;g+i8R2sb^;$<_wHu%ha+OHfY%Z7^pLH^6TMJ)BK4*j9OsUmP za_5-n*Q#frd{qK|+F2M=Qp*y~VIp+=33vu=*n5S8&Ved3EgR!a5#HobYx5oL)a;1s zSiqfd?sL-o7+6GzFr%kFZ|Zlh!(56AMWd!@0}+a-S|}@7CE`+2CE+I#8jr+6Bs@TD z=~2d2Luw)Mp>such)xahOAxZa?h^3^63W0PTDgqFi9jZM0t|y>5h*k}Dyu5wI-;vh z5aN19siAZV$w>wgPPa*tj1(U;J1vDF-=up^LR*?j_Y53ub*1ViG%cZawzY*4kyeA! zwnEP1eN)>~WhPHn_n|jI3{u{kvTx$CZtp?A5?ZPzlt@4*;)8Fy7z?NCX+DqMr^?Uz zjRyTaiHLs)Lqg9}u8yr89sc%qf5$GpuqO$bP>G~?1*w7qa!8RC=})$#Hs;@TB2^+u zhZF^)=0Yvab;{By>4M}d*6m3p3PDmYAfXW~R4)jm5mzW24o=9Su&n3>$Q6f#sf*Ml z-4>09!VujQyw&Ytc{CoDb(>6W=+3^u!2#Z!Zc8W-fpw9;29FO>S-X5$gQ%)oqjJpW z;bvVIx?9vd+dI2+nF$?hm)5SIcFk;> zEuXb7TZO`{%U0&}eClA{iW{-(vBjc|w~IE;oSHB4U9&DZ+&7A@7u~!(x4wJ9u`m5| zuF^mInEo7&5qxaZ=IQI*}LHBUKVZ6(vM3j-&ptBy2X;sw@Wt9 zS{F-N7D`%fi62+iypj5LYG&h)d_VC0uz9gz`|XD9x6aHr?47UdzA1iYWu^YlJgm5U z$y2gi$~@&$Czrj_&}?7n$q#f_o8BZI?kI%|w0o{{GjzlBsgd7fr zG=-#rw*@W@JdX2EAe&0mjyS(t*l?eMH%FH#dTW&b$_hnBn?zQ5cf|(@UNGC8eB2wn z>JhSFAj3gTx|$G%guJ}mYUUu(C-wKP!<_Kp(kUH1b<)3U=hk+Ku4uR$;@pi(AywM^ zB|QHAet&Q8<`q;mca}O=7N;AYSw%(!%_Vs&X=N|9Xpmq{4u8H;U3fNSZ{E7KbL-ZW zqw!1r#z}u;7?K+aC3+z>5K-esc_KoIXlN8?A43@9S51r3MHww&O{Ef>(x=>QlnByz zm0rByOK5DIPs^FBbkSM=D`)+TXHnXITiSl>)Vodd(!qIW@6>@MNW6Ql@41lnFy}Lmf{p6~v7?BiUx_!)Tsd_9e!gY#j@@ z2Iz{o>KU?_eFJ@QC;t)W!F4JWi)fLQoGY<$U6@4sTT=NXuUvz`k*0$Myu21m-+_#kCR4>uC=PvL_{l*00sH&)az0*rX~}KxIz>qUF*}Q z&Pt;bk!V;Uxxp_TfQ%y{(LVyg;sVjTQ7A4#qo4<_cL@m7gs!mhz?YWkF{ zL5T6I+7%Qh2??zu8zm0M{C>X=t;H_Ny!TKg_6(lQ`c!^SxR`H5VqFEu1F%d?`R4X%SjoI!n2_*8BafTlV?=-O#Go#-bQh%6qPrl$@PaP5d@kLh$k5OvM|6Ad$-$oE$8~4_ z>EnY(j~_j8NO!4_W1;kn$*OLT@+C!@7E(0z5|j|S9fB?ie>Fi_9StSqV0wjukr)*U za!FA5#?F^_-t^Cu&J6yv^k-{-vUb6}XQ~&% zpYdj{bmPqUtoB~VFS>r-wczfX>irn(1V!k@#4Yi?1HU-_^WzKdqf@87c&U8tRR8aaE3S!m%PQa4^V**8?7ik#a+fW-*WGrnn@%pe8-L|)T$20? zwf<}UOPZWcK+TyCAvaGxP~3o;g>cOYXS%Jva? z`9tf;x!e{mxaaVy{2U1U%+yC1^nN&_e;dkZ-9Y`HW9$-YP__?Q&skcimGpB?;HCtV z7893U^<*h7DEKDO;>`PjjM^%b#K09T0c#~gDU5@jggBhxIoY~6^?p)o&!?%kn2#&1 zpx(A*BT?@|{E!hL$V(+T!J`uyQgTV9aTaqZ=1RJKm0LMpl79Qw-9^ron`hq7-P*Y@NRMmp4;QjbJx0Z>@_Nw;y6O0Fh_ z$LT$h7b&5{N1`&60g=&MZeY-waAu4-1H=X1+4RD5=U#Yz%L~4g_}tZ(p67QGW33pY zZAPr}0SN^pW(}Cf$IOA)6c_@GZ=Q?*7U1_1UAUUE@rj}cvqVIAT!|+WK!i!Iiri$7 zD@Ru}G&vFub?g4e5XjapFtAWm?FM3Ge;=Jt*CLo=?+U*t_<6y9a=w3RVOQVmnK}RI ze;P-?kCxJhEWQHe7$V)qNww~jW64QwuTla?R*uuV3bXa|>g6CY!yqw2Wsr*7_?gGu zo`||$n4ViGHt44iq02ikI(D288#>lgR5b;h3Va>N6#H}?EA-yzd%5rC@XYpkPZOwQ z{rai?du6rLr#~#)aJ}G~fE)U?7r(XRX3wjgcRgztJ<@HDG*kYeXA@{&`IiX4DQTg4z}md|QSl z^@0R6b~IXR0)Yc`VVtk5@FK*Q1OQqoB{_0M7qHrDXfmPO(=8RKXopv-!stt8O*IXsyQVHZP4x`9)pa5s!>u4)NpAT;Dt9VADGy#r$b|P_IcT<= zt|v`M(T%L`n--x{8bp}kUEqT`?8~^(tY(P30B49Xbco-x;HVIlAq4QNPL?}o8vWc3 z;!LlXFU;f3efbs$$~h55`IDoZQ(iy{-&D}n8BC}@1UHMv>F4z3yu2vO19L694^V$* zD~h&``wYSB2j1v=t#6sox5{|R=eHvDmXG*7Adh16=Q8(WuAxiIb10B`OhF(!`rUXJ zhMfjC`@EvVIhMV1lQt%wc#+L>P6${9){<$D;lSknqNBjoped1LD}<1&{^kGT!GuF^ zK-a1GC6HHd@Kn#?LqXaa!NHy*r(k)1fnGbXX@fD)^cBiB2Q=x1UT*V~79*XJF9fad z6k94Qf8(jwo|Bm@8&#pOWulU;cpARS1==d-!;=d6PT-N zy5nt{-Fe5`KIdrXtCni)YHHi(YkIE7|7^&gdVcuQ7GG1-zRqFwxpUpmZ}H(3UUy?W z)H)~0!0!Pc3{ZPpA21o2S1s3{`Ju?G=suUZ zs+|!Yr_u{p1h$P#kJcd`Ln;1a*D2CKm^vu(EdsrS5+-68@M0Qn2M{nMF0%2P3t99a z9Ke8>LwVDa-YFeU!g$H6Nhf`d*pinMT~C^zw=t_X)DzHZj7A|e#>RsX<06wJ_o*#t zj07N<)nIo_Rh?^st_2#H;TTjjTz$lU_)Zwox-Cs8(QOdQeyoUbkgbrZup53$3HK1> z?rgn;^SEG6hm_wV58oAsfk5~!PYd636S*BgW~rfqfq?8 zHY5J$ZN__JWVr;MuI5};N%6{t%@MP#S|MQ_&XgFm?8)r(airG5gr9Z$;fiNEWvd>O zeI!Jjc;gk zk($f?`fPm^l@?HO!!CVXU@-#%on#$9bLAwlIq1`>2|R+U)(Tt^ll;U zy3RRa+_SY zsz*s~9jL*O+{7G@D$a|j{>Sm620DX8_UR1PkcSSb_48mSG}b{5f+7K3D0nnzAP}ndj5GMRz`io7F7_ zJS*kRBz%;TmISjE1@y%@Cr>K9Rq%afKHfi(!5)PxIlU{ftnk}ZG+JZ3OQntN>IsB z2`V8Z>VDIw+;nL%9J4u@%HD)bZD0o-I69hBY)1Hz?FY7**sYNTX*WMugFXw?Gx8O( zwZlXOms+BNaPWy;h`|D7Fj!*WoXe&xE|>B&et}w2_n`Q|QW%;-qI-r)ut4GDVVN?x zGK3K-uk>{5Rin<{;&1lUbFlC?Nj{=V&C1`byH7&R917X zV5z9$#)az_rnk&Q=8Lw%ji_VNZO&F`n9ct|g^(`OehcYxCk3Nq6@2Bn9j^afB>xJU`6nyM0TeebMzu~Rk zcgo%wovr%26L;#j@x*&J=Y1Pq8k`_AQdE(-n)ISl;sp5)nJGqPXd}OWXN5D<`?e$F zPXpl$?!>4q59Q?aAFa`ouw?0ImL{5(q)dC@FSRVEJv(Y99=7U%P*`7>%q1uR z{t$5F(%m6j?yrRX%t(&m!5B#%zl9B_m7Rs z;TGvIj3T&-p*7`FM1?*s<(8x~Ati=>cS@4Pn>7&zo<~Hq{E84%{==rs` z{I0iZ(c5s_+c0}%&f75W-9FX#amA*Y%kvdmzjk8k*dN?$P;9Pv+pVKNJMohfbK4HS z-#J%wV!?3|W$(EuqkAiSEKBQV#5*vMYj;YUr;gn%C|xL6N41NEi(=Jnv1+NAE8-&996ub&! zG$NxLc$az7BwBpX3X%l9h}pf2{VxF$k|6@o?eBzf$&;~LD zJJTnYFD(Jl7o>_Nfj|!QRA7z~gwK&%%TPgP)=E~*nsW$l>Kz%yD+JYXusm8a{+t=l zwCWhjxb27We#P9oR@VY&b<43=QB$_3p4EAd;h>PS)R4vOT^PJ@MZJaQi0F&i4Y{=y zt$YJ#_>z7oeI!!kL2!kGi`JUjpP@~;-}G<-1?yd_1P618z9fVN9J(VFHf|EAWeIZI z6*wwgYCUYYPt&$Yt>M1*M4?U6%0=vyDB(7pa!Ar)PPRZ2)9;&9UuvBsors$W^m!vF zTb8DQz)6yE4G&9$>CK?{qJg`EHl_=F6HF%Q|kCbu5iFH#N{~!%HN;JC>CK(rx(dIYvNbm^es>QPWku1Yvh838Y^C~G%MJX&e7#}W|e*2QmBB={&^&}N?qH#1_DVR$goS0Lu6fB2!| z>p!a4_%Mu!*yGp)bx>_XKy1Pxi1#V@tfgA8{E;Deb@26#ud8n!ym|S%t#=C7->0-c z`jLfCm#;yoL~rzhU=ZJJqFtgU${GsDL;*YT6;&@XzQSlte}thl&>K%Wk$+cV_)8a% zM1{{ajFV#5u8{P?KWsBb!pBrVb(6fwr@=U0o%FMpf@di>MZs?2^|+^tA>gMX%uVn6&(d_5ru|0-fC z9+We|^AU6Mf7eH>;v-h}8&>xlR`m(nc86_S_AsY+u6PR^+2)FSmu*&?ec8p6+IZ6b z+$1AcmywiPusb(bGcUL|H_0fNuFGHDXqj?9pw)WViH|-Xy6~Of!(jnF{|{^7di^jg zz$b0FSEwqpEQtlnR*IcoBQB{n;@Soy-sm^tww*@2YafsAqMQxo?xGxz;hD$dsyZXC zZ#H88HY47#+lcoZ26AFO?`_Zm)@zRG3(0jfvH*H?a+yP0ZJ3V(q(4Y|lZ#L=Oo^ zGx#y#nKWL^Y>wp;YO)v~4VYN@S`({jFtLq311n`V*K!$^C}%d$a)p5vtue8xS`%Bh z(ZJTwI#g1=HLS4I#LBBp40|a3cH&nOO5S1FNM`)=`OC<|;9n%L$x6Kj9U#CBtkr3)Vrp3dOM@%gxszLAF7NY!s--ZdtM!;?;{ zZ!$4#f1b997G*P)*u;t|Obk0GomRKm#C+RKY)6-gbsrE+v{yKm!TV{W^9q`%dLLEa z#EMEyth~m+w$N-e)7ve~Rb*f-w1R$0Yhj);18b$UHl$5?AMPaQn1@?on0+XbE$ZPG w=)fO#LH+TtSHL}F`MAJD&$ZNobuFmSH~apo@A}{?Lm!Ie_pMB<<}Bv_0Y|qUQvd(} diff --git a/snippets/_async_inserts.mdx b/snippets/_async_inserts.mdx index 9b2af8c7..a0187ff4 100644 --- a/snippets/_async_inserts.mdx +++ b/snippets/_async_inserts.mdx @@ -7,7 +7,7 @@ Sending many small batches in synchronous mode isn't recommended, leading to man Asynchronous inserts shift batching responsibility from the client to the server by writing incoming data to an in-memory buffer, then flushing it to storage based on configurable thresholds. This approach significantly reduces part creation overhead, lowers CPU usage, and ensures ingestion remains efficient—even under high concurrency. -The core behavior is controlled via the [`async_insert`](/reference/settings/session-settings#async_insert) setting. +The core behavior is controlled via the [`async_insert`](/core/reference/settings/session-settings#async_insert) setting. @@ -15,17 +15,17 @@ Asynchronous inserts are supported over both the HTTP and native TCP interfaces. When enabled (`async_insert = 1`), inserts are buffered and only written to disk once one of the flush conditions is met: -- The buffer reaches a specified data size ([`async_insert_max_data_size`](/reference/settings/session-settings#async_insert_max_data_size), default 100 MiB). -- A time threshold elapses ([`async_insert_busy_timeout_ms`](/reference/settings/session-settings#async_insert_busy_timeout_max_ms), default 200 ms or 1000 ms on Cloud). -- A maximum number of insert queries accumulate ([`async_insert_max_query_number`](/reference/settings/session-settings#async_insert_max_query_number), default 450). +- The buffer reaches a specified data size ([`async_insert_max_data_size`](/core/reference/settings/session-settings#async_insert_max_data_size), default 100 MiB). +- A time threshold elapses ([`async_insert_busy_timeout_ms`](/core/reference/settings/session-settings#async_insert_busy_timeout_max_ms), default 200 ms or 1000 ms on Cloud). +- A maximum number of insert queries accumulate ([`async_insert_max_query_number`](/core/reference/settings/session-settings#async_insert_max_query_number), default 450). Whichever threshold is reached first triggers the flush. -This batching process is invisible to clients and helps ClickHouse efficiently merge insert traffic from multiple sources. However, until a flush occurs, the data can't be queried. Importantly, there are multiple buffers per insert shape and settings combination, and in clusters, buffers are maintained per node—enabling fine-grained control across multi-tenant environments. Insert mechanics are otherwise identical to those described for [synchronous inserts](/concepts/best-practices/selecting-an-insert-strategy#synchronous-inserts-by-default). +This batching process is invisible to clients and helps ClickHouse efficiently merge insert traffic from multiple sources. However, until a flush occurs, the data can't be queried. Importantly, there are multiple buffers per insert shape and settings combination, and in clusters, buffers are maintained per node—enabling fine-grained control across multi-tenant environments. Insert mechanics are otherwise identical to those described for [synchronous inserts](/core/concepts/best-practices/selecting-an-insert-strategy#synchronous-inserts-by-default). ### Choosing a return mode {#choosing-a-return-mode} -The behavior of asynchronous inserts is further refined using the [`wait_for_async_insert`](/reference/settings/session-settings#wait_for_async_insert) setting. +The behavior of asynchronous inserts is further refined using the [`wait_for_async_insert`](/core/reference/settings/session-settings#wait_for_async_insert) setting. When set to 1 (the default), ClickHouse only acknowledges the insert after the data is successfully flushed to disk. This ensures strong durability guarantees and makes error handling straightforward: if something goes wrong during the flush, the error is returned to the client. This mode is recommended for most production scenarios, especially when insert failures must be tracked reliably. @@ -41,15 +41,15 @@ Our strong recommendation is to use `async_insert=1,wait_for_async_insert=1` if ### Adaptive async inserts {#adaptive-async-inserts} -Since version 24.2, ClickHouse uses adaptive flush timeouts by default ([`async_insert_use_adaptive_busy_timeout`](/reference/settings/session-settings#async_insert_use_adaptive_busy_timeout)). Instead of a fixed flush interval, the timeout dynamically adjusts between a minimum ([`async_insert_busy_timeout_min_ms`](/reference/settings/session-settings#async_insert_busy_timeout_min_ms), default 50 ms) and maximum ([`async_insert_busy_timeout_max_ms`](/reference/settings/session-settings#async_insert_busy_timeout_max_ms), default 200 ms or 1000 ms on Cloud) based on incoming data rate. +Since version 24.2, ClickHouse uses adaptive flush timeouts by default ([`async_insert_use_adaptive_busy_timeout`](/core/reference/settings/session-settings#async_insert_use_adaptive_busy_timeout)). Instead of a fixed flush interval, the timeout dynamically adjusts between a minimum ([`async_insert_busy_timeout_min_ms`](/core/reference/settings/session-settings#async_insert_busy_timeout_min_ms), default 50 ms) and maximum ([`async_insert_busy_timeout_max_ms`](/core/reference/settings/session-settings#async_insert_busy_timeout_max_ms), default 200 ms or 1000 ms on Cloud) based on incoming data rate. When data arrives frequently, the timeout stays closer to the minimum to flush sooner and reduce end-to-end latency. When data is sparse, it grows toward the maximum to accumulate larger batches. This is especially useful in default mode (`wait_for_async_insert=1`), where a fixed high timeout would force clients to block for the full interval even when data is ready to flush. ### Error handling {#error-handling} -Schema validation and data parsing happen during buffer flush, not when the insert is received. If any row in an insert query has a parsing or type error, **none of the data from that query is flushed** — the entire query's payload is rejected. In default mode (`wait_for_async_insert=1`), the error is returned to the client. In fire-and-forget mode, errors are written to server logs and the [`system.asynchronous_inserts`](/reference/system-tables/asynchronous_inserts) table. +Schema validation and data parsing happen during buffer flush, not when the insert is received. If any row in an insert query has a parsing or type error, **none of the data from that query is flushed** — the entire query's payload is rejected. In default mode (`wait_for_async_insert=1`), the error is returned to the client. In fire-and-forget mode, errors are written to server logs and the [`system.asynchronous_inserts`](/core/reference/system-tables/asynchronous_inserts) table. -Each flush creates at least one part per distinct partition key value in the buffer. Even for tables without a partition key, a single flush can produce multiple parts if the buffered data exceeds [`max_insert_block_size`](/reference/settings/session-settings#max_insert_block_size) (default ~1 million rows). +Each flush creates at least one part per distinct partition key value in the buffer. Even for tables without a partition key, a single flush can produce multiple parts if the buffered data exceeds [`max_insert_block_size`](/core/reference/settings/session-settings#max_insert_block_size) (default ~1 million rows). Despite using async inserts, you can still encounter ["too many parts"](/resources/support-center/knowledge-base/troubleshooting/exception-too-many-parts) errors if the partitioning key has high cardinality. @@ -96,7 +96,7 @@ This ensures any buffered data is written to storage before the server stops. ### Comparison with buffer tables {#comparison-with-buffer-tables} -Asynchronous inserts are the modern replacement for [Buffer tables](/reference/engines/table-engines/special/buffer). Key differences: +Asynchronous inserts are the modern replacement for [Buffer tables](/core/reference/engines/table-engines/special/buffer). Key differences: - **No DDL changes required.** Async inserts are transparent — you enable a setting, not create additional tables. - **Per-shape buffering.** Async inserts maintain separate buffers per unique query shape and settings combination, enabling granular flush policies. Buffer tables use a single buffer per target table. diff --git a/snippets/_avoid_mutations.mdx b/snippets/_avoid_mutations.mdx index eb56b409..451d2552 100644 --- a/snippets/_avoid_mutations.mdx +++ b/snippets/_avoid_mutations.mdx @@ -1,10 +1,10 @@ In ClickHouse, **mutations** refer to operations that modify or delete existing data in a table—typically using `ALTER TABLE ... DELETE` or `ALTER TABLE ... UPDATE`. While these statements may appear similar to standard SQL operations, they're fundamentally different under the hood. -Rather than modifying rows in place, mutations in ClickHouse are asynchronous background processes that rewrite entire [data parts](/concepts/core-concepts/parts) affected by the change. This approach is necessary due to ClickHouse's column-oriented, immutable storage model, and it can lead to significant I/O and resource usage. +Rather than modifying rows in place, mutations in ClickHouse are asynchronous background processes that rewrite entire [data parts](/core/concepts/core-concepts/parts) affected by the change. This approach is necessary due to ClickHouse's column-oriented, immutable storage model, and it can lead to significant I/O and resource usage. When a mutation is issued, ClickHouse schedules the creation of new **mutated parts**, leaving the original parts untouched until the new ones are ready. Once ready, the mutated parts atomically replace the originals. However, because the operation rewrites entire parts, even a minor change (such as updating a single row) may result in large-scale rewrites and excessive write amplification. -For large datasets, this can produce a substantial spike in disk I/O and degrade overall cluster performance. Unlike merges, mutations can't be rolled back once submitted and will continue to execute even after server restarts unless explicitly cancelled—see [`KILL MUTATION`](/reference/statements/kill#kill-mutation). +For large datasets, this can produce a substantial spike in disk I/O and degrade overall cluster performance. Unlike merges, mutations can't be rolled back once submitted and will continue to execute even after server restarts unless explicitly cancelled—see [`KILL MUTATION`](/core/reference/statements/kill#kill-mutation). **Monitoring the number of active or queued mutations in ClickHouse** @@ -14,6 +14,6 @@ For how to monitor the number of active or queued mutations refer to the followi Mutations are **totally ordered**: they apply to data inserted before the mutation was issued, while newer data remains unaffected. They don't block inserts but can still overlap with other ongoing queries. A SELECT running during a mutation may read a mix of mutated and unmutated parts, which can lead to inconsistent views of the data during execution. ClickHouse executes mutations in parallel per part, which can further intensify memory and CPU usage, especially when complex subqueries (like x IN (SELECT ...)) are involved. -As a rule, **avoid frequent or large-scale mutations**, especially on high-volume tables. Instead, use alternative table engines such as [ReplacingMergeTree](/concepts/operations/update/replacing-merge-tree) or [CollapsingMergeTree](/reference/engines/table-engines/mergetree-family/collapsingmergetree), which are designed to handle data corrections more efficiently at query time or during merges. If mutations are absolutely necessary, monitor them carefully using the system.mutations table and use `KILL MUTATION` if a process is stuck or misbehaving. Misusing mutations can lead to degraded performance, excessive storage churn, and potential service instability—so apply them with caution and sparingly. +As a rule, **avoid frequent or large-scale mutations**, especially on high-volume tables. Instead, use alternative table engines such as [ReplacingMergeTree](/core/concepts/features/operations/update/replacing-merge-tree) or [CollapsingMergeTree](/core/reference/engines/table-engines/mergetree-family/collapsingmergetree), which are designed to handle data corrections more efficiently at query time or during merges. If mutations are absolutely necessary, monitor them carefully using the system.mutations table and use `KILL MUTATION` if a process is stuck or misbehaving. Misusing mutations can lead to degraded performance, excessive storage churn, and potential service instability—so apply them with caution and sparingly. -For deleting data, you can also consider [Lightweight deletes](/concepts/operations/delete/lightweight-delete) or the management of data through [partitions](/concepts/best-practices/partitioning-keys) which allow entire parts to be [dropped efficiently](/reference/statements/alter/partition#drop-partitionpart). +For deleting data, you can also consider [Lightweight deletes](/core/concepts/features/operations/delete/lightweight-delete) or the management of data through [partitions](/core/concepts/best-practices/partitioning-keys) which allow entire parts to be [dropped efficiently](/core/reference/statements/alter/partition#drop-partitionpart). diff --git a/snippets/_avoid_nullable_columns.mdx b/snippets/_avoid_nullable_columns.mdx index c849a9c0..dce5d05e 100644 --- a/snippets/_avoid_nullable_columns.mdx +++ b/snippets/_avoid_nullable_columns.mdx @@ -1,4 +1,4 @@ -[`Nullable` column](/reference/data-types/nullable) (e.g. `Nullable(String)`) creates a separate column of `UInt8` type. This additional column has to be processed every time a user works with a Nullable column. This leads to additional storage space used and almost always negatively affects performance. +[`Nullable` column](/core/reference/data-types/nullable) (e.g. `Nullable(String)`) creates a separate column of `UInt8` type. This additional column has to be processed every time a user works with a Nullable column. This leads to additional storage space used and almost always negatively affects performance. To avoid `Nullable` columns, consider setting a default value for that column. For example, instead of: diff --git a/snippets/_avoid_optimize_final.mdx b/snippets/_avoid_optimize_final.mdx index 1c2fbe99..74c32212 100644 --- a/snippets/_avoid_optimize_final.mdx +++ b/snippets/_avoid_optimize_final.mdx @@ -1,7 +1,7 @@ ClickHouse tables using the **MergeTree engine** store data on disk as **immutable parts**, which are created every time data is inserted. -Each insert creates a new part containing sorted, compressed column files, along with metadata like indexes and checksums. For a detailed description of part structures and how they're formed we recommend this [guide](/concepts/core-concepts/parts). +Each insert creates a new part containing sorted, compressed column files, along with metadata like indexes and checksums. For a detailed description of part structures and how they're formed we recommend this [guide](/core/concepts/core-concepts/parts). Over time, background processes merge smaller parts into larger ones to reduce fragmentation and improve query performance. @@ -40,11 +40,11 @@ These steps are **CPU and I/O-intensive** and can put significant strain on your ### It ignores safety limits {#it-ignores-safety-limits} -Normally, ClickHouse avoids merging parts larger than ~150 GB (configurable via [max_bytes_to_merge_at_max_space_in_pool](/reference/settings/merge-tree-settings#max_bytes_to_merge_at_max_space_in_pool)). But `OPTIMIZE FINAL` **ignores this safeguard**, which means: +Normally, ClickHouse avoids merging parts larger than ~150 GB (configurable via [max_bytes_to_merge_at_max_space_in_pool](/core/reference/settings/merge-tree-settings#max_bytes_to_merge_at_max_space_in_pool)). But `OPTIMIZE FINAL` **ignores this safeguard**, which means: * It may try to merge **multiple 150 GB parts** into one massive part * This could result in **long merge times**, **memory pressure**, or even **out-of-memory errors** -* These large parts may become challenging to merge, i.e. attempts to merge them further fails for the reasons stated above. In cases where merges are required for correct query time behavior, this can result in undesired consequences such as [duplicates accumulating for a ReplacingMergeTree](/concepts/operations/insert/deduplication#using-replacingmergetree-for-upserts), diminishing query time performance. +* These large parts may become challenging to merge, i.e. attempts to merge them further fails for the reasons stated above. In cases where merges are required for correct query time behavior, this can result in undesired consequences such as [duplicates accumulating for a ReplacingMergeTree](/core/concepts/features/operations/insert/deduplication#using-replacingmergetree-for-upserts), diminishing query time performance. ## Let background merges do the work {#let-background-merges-do-the-work} diff --git a/snippets/_bulk_inserts.mdx b/snippets/_bulk_inserts.mdx index 6dec3a59..4d40c9a3 100644 --- a/snippets/_bulk_inserts.mdx +++ b/snippets/_bulk_inserts.mdx @@ -4,8 +4,8 @@ We recommend inserting data in batches of at least 1,000 rows, and ideally betwe **For a synchronous insert strategy to be effective this client-side batching is required.** -If you're unable to batch data client-side, ClickHouse supports asynchronous inserts that shift batching to the server ([see Asynchronous inserts](/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts)). +If you're unable to batch data client-side, ClickHouse supports asynchronous inserts that shift batching to the server ([see Asynchronous inserts](/core/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts)). -Regardless of the size of your inserts, we recommend keeping the number of insert queries around one insert query per second. The reason for this recommendation is that the created parts are merged to larger parts in the background (in order to optimize your data for read queries), and sending too many insert queries per second can lead to situations where the background merging can't keep up with the number of new parts. However, you can use a higher rate of insert queries per second when you use asynchronous inserts (see [Asynchronous inserts](/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts)). +Regardless of the size of your inserts, we recommend keeping the number of insert queries around one insert query per second. The reason for this recommendation is that the created parts are merged to larger parts in the background (in order to optimize your data for read queries), and sending too many insert queries per second can lead to situations where the background merging can't keep up with the number of new parts. However, you can use a higher rate of insert queries per second when you use asynchronous inserts (see [Asynchronous inserts](/core/concepts/best-practices/selecting-an-insert-strategy#asynchronous-inserts)). diff --git a/snippets/_cli_install.mdx b/snippets/_cli_install.mdx index 0b885cfa..38f5f6c6 100644 --- a/snippets/_cli_install.mdx +++ b/snippets/_cli_install.mdx @@ -63,7 +63,7 @@ local-host :) You're now ready to start sending SQL commands to ClickHouse! -The [Quick Start](/get-started/setup/overview) walks you through the steps for creating tables and inserting data. +The [Quick Start](/core/get-started/setup/install) walks you through the steps for creating tables and inserting data.
    diff --git a/snippets/_clickhouse_mysql_cloud_setup.mdx b/snippets/_clickhouse_mysql_cloud_setup.mdx index 55dd23d3..9432b9bb 100644 --- a/snippets/_clickhouse_mysql_cloud_setup.mdx +++ b/snippets/_clickhouse_mysql_cloud_setup.mdx @@ -58,7 +58,7 @@ For a ClickHouse Cloud hostname like `foobar.us-east1.aws.clickhouse.cloud`, the #### Create a readonly settings profile {#create-a-custom-settings-user} -Create a [settings profile](/reference/statements/create/settings-profile) to apply to your readonly user, +Create a [settings profile](/core/reference/statements/create/settings-profile) to apply to your readonly user, setting the `readonly` setting to `1`: ```sql @@ -67,7 +67,7 @@ CREATE SETTINGS PROFILE readonly_profile SETTINGS readonly = 1 #### Create a new readonly MySQL user {#create-a-readonly-mysql-user} -[Create a user](/reference/statements/create/user) with a name following this format: +[Create a user](/core/reference/statements/create/user) with a name following this format: ```sql mysql4_ @@ -83,7 +83,7 @@ SETTINGS PROFILE 'readonly_profile'; #### Grant the new user permissions to access the desired tables {#grant-the-new-user-the-necessary-permissions} -[Grant](/reference/statements/grant) the new user the necessary permissions to interact with the desired tables or databases. +[Grant](/core/reference/statements/grant) the new user the necessary permissions to interact with the desired tables or databases. For example, if you want to grant access to `system.query_log` only: ```sql diff --git a/snippets/_clickhouse_mysql_on_premise_setup.mdx b/snippets/_clickhouse_mysql_on_premise_setup.mdx index a21be93a..df62b158 100644 --- a/snippets/_clickhouse_mysql_on_premise_setup.mdx +++ b/snippets/_clickhouse_mysql_on_premise_setup.mdx @@ -1,4 +1,4 @@ -Please refer to [the official documentation](/integrations/connectors/data-integrations/drivers-and-interfaces/mysql) +Please refer to [the official documentation](/core/concepts/features/interfaces/mysql) on how to set up a ClickHouse server with enabled MySQL interface. Aside from adding an entry to the server's `config.xml` @@ -10,7 +10,7 @@ Aside from adding an entry to the server's `config.xml` ``` it is also _required_ to use -[Double SHA1 password encryption](/concepts/features/configuration/settings/settings-users#user-namepassword) +[Double SHA1 password encryption](/core/concepts/features/configuration/settings/settings-users#user-namepassword) for the user that will be using MySQL interface. Generating a random password encrypted with Double SHA1 from the shell: diff --git a/snippets/_create_clickpipe.mdx b/snippets/_create_clickpipe.mdx index 12b19066..131f9e82 100644 --- a/snippets/_create_clickpipe.mdx +++ b/snippets/_create_clickpipe.mdx @@ -54,7 +54,7 @@ In that case, the UI will allow you to map fields from the source to the ClickHo -You can also map [virtual columns](/reference/functions/table-functions/s3#virtual-columns), like `_path` or `_size`, to fields. +You can also map [virtual columns](/core/reference/functions/table-functions/s3#virtual-columns), like `_path` or `_size`, to fields. diff --git a/snippets/_docker.mdx b/snippets/_docker.mdx index 6559f5c6..812ae558 100644 --- a/snippets/_docker.mdx +++ b/snippets/_docker.mdx @@ -50,7 +50,7 @@ docker run -it --rm --network=container:some-clickhouse-server --entrypoint clic docker exec -it some-clickhouse-server clickhouse-client ``` -See [ClickHouse client](/integrations/connectors/data-integrations/drivers-and-interfaces/cli) for more information about ClickHouse client. +See [ClickHouse client](/core/concepts/features/interfaces/cli) for more information about ClickHouse client. ### Connect to it using curl {#connect-to-it-using-curl} @@ -58,7 +58,7 @@ See [ClickHouse client](/integrations/connectors/data-integrations/drivers-and-i echo "SELECT 'Hello, ClickHouse!'" | docker run -i --rm --network=container:some-clickhouse-server buildpack-deps:curl curl 'http://localhost:8123/?query=' -s --data-binary @- ``` -See [ClickHouse HTTP Interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http) for more information about the HTTP interface. +See [ClickHouse HTTP Interface](/core/concepts/features/interfaces/http) for more information about the HTTP interface. ### Stopping / removing the container {#stopping-removing-container} @@ -130,9 +130,9 @@ For more information see ["Configuring CAP_IPC_LOCK and CAP_SYS_NICE Capabilitie ## Configuration {#configuration} -The container exposes port 8123 for the [HTTP interface](/integrations/connectors/data-integrations/drivers-and-interfaces/http) and port 9000 for the [native client](/integrations/connectors/data-integrations/drivers-and-interfaces/tcp). +The container exposes port 8123 for the [HTTP interface](/core/concepts/features/interfaces/http) and port 9000 for the [native client](/core/concepts/features/interfaces/tcp). -ClickHouse configuration is represented with a file "config.xml" ([documentation](/concepts/features/configuration/server-config/configuration-files)) +ClickHouse configuration is represented with a file "config.xml" ([documentation](/core/concepts/features/configuration/server-config/configuration-files)) ### Start server instance with custom configuration {#start-server-instance-with-custom-config} diff --git a/snippets/_generic_settings.mdx b/snippets/_generic_settings.mdx index 331a3262..59fa66ad 100644 --- a/snippets/_generic_settings.mdx +++ b/snippets/_generic_settings.mdx @@ -1,13 +1,13 @@ | Setting | Description | Default value | |--------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------| | `id` | ID of backup or restore operation, randomly generated UUID is used if not specified. If there's already a running operation with the same ID, an exception is thrown. | | -| `compression_method` | Specifies the compression method for the backup. See section ["column compression codecs"](/reference/statements/create/table#column_compression_codec) | | +| `compression_method` | Specifies the compression method for the backup. See section ["column compression codecs"](/core/reference/statements/create/table#column_compression_codec) | | | `compression_level` | Specifies the compression level for the backup | | | `password` | Password for the backup archive. Only supported for ZIP archives (`.zip`, `.zipx`). | | | `base_backup` | The destination of the base backup used for incremental backups. For example: `Disk('backups', '1.zip')` | | | `use_same_password_for_base_backup` | Whether base backup archive should inherit the password from the query. | | | `structure_only` | If enabled, only backs up or restores the CREATE statements without the actual table data. | | -| `storage_policy` | Storage policy for the tables being restored. See ["using multiple block devices for data storage](/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes). Only applicable to the `RESTORE` command. Applies only to tables with an engine from the `MergeTree` family. | | +| `storage_policy` | Storage policy for the tables being restored. See ["using multiple block devices for data storage](/core/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes). Only applicable to the `RESTORE` command. Applies only to tables with an engine from the `MergeTree` family. | | | `allow_non_empty_tables` | Allows `RESTORE TABLE` to insert data into non-empty tables. This will mix earlier data in the table with the data extracted from the backup. This setting can therefore cause data duplication in the table, use with caution. | `0` | | `backup_restore_keeper_max_retries` | Max retries for [Zoo]Keeper operations in the middle of a BACKUP or RESTORE operation. Should be big enough so the whole operation won't fail because of a temporary [Zoo]Keeper failure. | `1000` | | `backup_restore_keeper_retry_initial_backoff_ms` | Initial backoff timeout for [Zoo]Keeper operations during backup or restore | `100` | diff --git a/snippets/_json_support.mdx b/snippets/_json_support.mdx index 95219cff..92f1acaa 100644 --- a/snippets/_json_support.mdx +++ b/snippets/_json_support.mdx @@ -1,5 +1,5 @@ ## Schema choice: Map vs JSON {#schema-choice-map-vs-json} -ClickStack stores attributes as `Map(LowCardinality(String), String)` columns by default. This is the recommended schema for observability workloads. Combined with [bucketed map serialization](/reference/data-types/map#bucketed-map-serialization) and text indexes on map keys and values, it provides selective lookups without the per-key ingest overhead of dynamic JSON subcolumns. +ClickStack stores attributes as `Map(LowCardinality(String), String)` columns by default. This is the recommended schema for observability workloads. Combined with [bucketed map serialization](/core/reference/data-types/map#bucketed-map-serialization) and text indexes on map keys and values, it provides selective lookups without the per-key ingest overhead of dynamic JSON subcolumns. A `JSON`-typed schema is available in beta for evaluation on workloads with a small, stable attribute key-set. It is **not recommended** as the default. See [Map vs JSON type](/products/clickstack/ingesting-data/schema/map-vs-json) for the full comparison and the env vars required to enable JSON support. diff --git a/snippets/_macos.mdx b/snippets/_macos.mdx index 47faa8aa..f0e95a29 100644 --- a/snippets/_macos.mdx +++ b/snippets/_macos.mdx @@ -5,7 +5,7 @@ import Recommendations from '/snippets/recommendations.mdx'; Installation using the Homebrew Formulae has now been deprecated and will be disabled on 2026-09-01. -We recommend using the [quick install](/get-started/setup/self-managed/quick-install) method which works on any platform instead. +We recommend using the [quick install](/core/get-started/setup/self-managed/quick-install) method which works on any platform instead. diff --git a/snippets/_migration_guide.mdx b/snippets/_migration_guide.mdx index 3af9dcb2..a4882204 100644 --- a/snippets/_migration_guide.mdx +++ b/snippets/_migration_guide.mdx @@ -66,7 +66,7 @@ To use this option, you need to set up a ClickHouse JDBC Bridge. ClickHouse JDBC Deploy the ClickHouse JDBC Bridge. For more details, see our user guide on [JDBC for External Data sources](/integrations/connectors/data-ingestion/jdbc-with-clickhouse) -If you're using ClickHouse Cloud, you will need to run your ClickHouse JDBC Bridge on a separate environment and connect to ClickHouse Cloud using the [remoteSecure](/reference/functions/table-functions/remote) function +If you're using ClickHouse Cloud, you will need to run your ClickHouse JDBC Bridge on a separate environment and connect to ClickHouse Cloud using the [remoteSecure](/core/reference/functions/table-functions/remote) function diff --git a/snippets/_performance_optimizations_table_of_contents.mdx b/snippets/_performance_optimizations_table_of_contents.mdx index 5db2bc51..37f08622 100644 --- a/snippets/_performance_optimizations_table_of_contents.mdx +++ b/snippets/_performance_optimizations_table_of_contents.mdx @@ -1,17 +1,17 @@ | Topic | Description | |---------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Query optimization guide](/guides/cloud-oss/performance-and-monitoring/query-optimization) | Start here for query optimization fundamentals, covering common scenarios and performance techniques to improve query execution speed. | -| [Primary indexes advanced guide](/guides/cloud-oss/data-modelling/sparse-primary-indexes) | Deep dive into ClickHouse's unique sparse primary indexing system, how it differs from traditional databases, and best practices for optimal indexing strategies. | -| [Query parallelism](/concepts/core-concepts/query-parallelism) | Learn how ClickHouse parallelizes query execution using processing lanes and `max_threads` settings, including how to inspect and optimize parallel execution. | -| [Partitioning key](/concepts/best-practices/partitioning-keys) | Master partition key selection to dramatically improve query performance by enabling efficient data segment pruning and avoiding common partitioning pitfalls. | -| [Data skipping indexes](/concepts/features/performance/skip-indexes/skipping-indexes) | Apply secondary indexes strategically to skip irrelevant data blocks and accelerate filtered queries on non-primary key columns. | -| [`PREWHERE` optimization](/concepts/features/performance/prewhere) | Understand how `PREWHERE` automatically reduces I/O by filtering data before reading unnecessary columns, plus how to monitor its effectiveness. | -| [Bulk inserts](/concepts/operations/insert/bulkinserts) | Maximize ingestion throughput and reduce resource overhead by batching data insertions effectively. | -| [Asynchronous inserts](/concepts/operations/insert/asyncinserts) | Improve insert performance by leveraging server-side batching to reduce client-side complexity and increase throughput for high-frequency insertions. | -| [Avoid mutations](/concepts/best-practices/avoid-mutations) | Design append-only workflows that eliminate costly `UPDATE` and `DELETE` operations while maintaining data accuracy and performance. | -| [Avoid nullable columns](/concepts/best-practices/avoidnullablecolumns) | Reduce storage overhead and improve query performance by using default values instead of nullable columns where possible. | -| [Avoid `OPTIMIZE FINAL`](/concepts/best-practices/avoid-optimize-final) | Understand when you should and shouldn't use `OPTIMIZE TABLE FINAL` | -| [Analyzer](/guides/cloud-oss/performance-and-monitoring/analyzer) | Leverage ClickHouse's new query analyzer to identify performance bottlenecks and optimize query execution plans for better efficiency. | -| [Query profiling](/concepts/features/performance/troubleshoot/sampling-query-profiler) | Use the sampling query profiler to analyze query execution patterns, identify performance hot spots, and optimize resource usage. | -| [Query cache](/concepts/features/performance/caches/query-cache) | Accelerate frequently executed `SELECT` queries by enabling and configuring ClickHouse's built-in query result caching. | -| [Testing hardware](/concepts/features/performance/troubleshoot/performance-test) | Run ClickHouse performance benchmarks on any server without installation to evaluate hardware capabilities. (Not applicable to ClickHouse Cloud) | +| [Query optimization guide](/core/guides/clickhouse/performance-and-monitoring/query-optimization) | Start here for query optimization fundamentals, covering common scenarios and performance techniques to improve query execution speed. | +| [Primary indexes advanced guide](/core/guides/clickhouse/data-modelling/sparse-primary-indexes) | Deep dive into ClickHouse's unique sparse primary indexing system, how it differs from traditional databases, and best practices for optimal indexing strategies. | +| [Query parallelism](/core/concepts/core-concepts/query-parallelism) | Learn how ClickHouse parallelizes query execution using processing lanes and `max_threads` settings, including how to inspect and optimize parallel execution. | +| [Partitioning key](/core/concepts/best-practices/partitioning-keys) | Master partition key selection to dramatically improve query performance by enabling efficient data segment pruning and avoiding common partitioning pitfalls. | +| [Data skipping indexes](/core/concepts/features/performance/skip-indexes/skipping-indexes) | Apply secondary indexes strategically to skip irrelevant data blocks and accelerate filtered queries on non-primary key columns. | +| [`PREWHERE` optimization](/core/concepts/features/performance/prewhere) | Understand how `PREWHERE` automatically reduces I/O by filtering data before reading unnecessary columns, plus how to monitor its effectiveness. | +| [Bulk inserts](/core/concepts/features/operations/insert/bulkinserts) | Maximize ingestion throughput and reduce resource overhead by batching data insertions effectively. | +| [Asynchronous inserts](/core/concepts/features/operations/insert/asyncinserts) | Improve insert performance by leveraging server-side batching to reduce client-side complexity and increase throughput for high-frequency insertions. | +| [Avoid mutations](/core/concepts/best-practices/avoid-mutations) | Design append-only workflows that eliminate costly `UPDATE` and `DELETE` operations while maintaining data accuracy and performance. | +| [Avoid nullable columns](/core/concepts/best-practices/avoidnullablecolumns) | Reduce storage overhead and improve query performance by using default values instead of nullable columns where possible. | +| [Avoid `OPTIMIZE FINAL`](/core/concepts/best-practices/avoid-optimize-final) | Understand when you should and shouldn't use `OPTIMIZE TABLE FINAL` | +| [Analyzer](/core/guides/clickhouse/performance-and-monitoring/analyzer) | Leverage ClickHouse's new query analyzer to identify performance bottlenecks and optimize query execution plans for better efficiency. | +| [Query profiling](/core/concepts/features/performance/troubleshoot/sampling-query-profiler) | Use the sampling query profiler to analyze query execution patterns, identify performance hot spots, and optimize resource usage. | +| [Query cache](/core/concepts/features/performance/caches/query-cache) | Accelerate frequently executed `SELECT` queries by enabling and configuring ClickHouse's built-in query result caching. | +| [Testing hardware](/core/concepts/features/performance/troubleshoot/performance-test) | Run ClickHouse performance benchmarks on any server without installation to evaluate hardware capabilities. (Not applicable to ClickHouse Cloud) | diff --git a/snippets/_quick_install.mdx b/snippets/_quick_install.mdx index 515a1d72..7b52e6a3 100644 --- a/snippets/_quick_install.mdx +++ b/snippets/_quick_install.mdx @@ -24,7 +24,7 @@ powerful SQL syntax and without the need for configuration. Table data is stored in a temporary location, meaning that after a restart of `clickhouse-local` previously created tables are no longer available. -Run the following command to start [clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local): +Run the following command to start [clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local): ```bash ./clickhouse @@ -65,14 +65,14 @@ Table data is stored in the current directory and will still be available after of the ClickHouse server. If necessary, you can pass `-C config.xml` as an additional command line argument to `./clickhouse server` and provide further configuration in a configuration -file. All available configuration settings are documented [here](/reference/settings/server-settings/settings) and in the +file. All available configuration settings are documented [here](/core/reference/settings/server-settings/settings) and in the [example configuration file template](https://github.com/ClickHouse/ClickHouse/blob/master/programs/server/config.xml). You're now ready to start sending SQL commands to ClickHouse! -The [Quick Start](/get-started/setup/overview) walks you through the steps for creating tables and inserting data. +The [Quick Start](/core/get-started/setup/install) walks you through the steps for creating tables and inserting data. diff --git a/snippets/_redshift_migration_guide.mdx b/snippets/_redshift_migration_guide.mdx index a06d3ee0..df5ea289 100644 --- a/snippets/_redshift_migration_guide.mdx +++ b/snippets/_redshift_migration_guide.mdx @@ -64,7 +64,7 @@ To use this option, you need to set up a ClickHouse JDBC Bridge. ClickHouse JDBC Deploy the ClickHouse JDBC Bridge. For more details, see our user guide on [JDBC for External Data sources](/integrations/connectors/data-ingestion/jdbc-with-clickhouse) -If you are using ClickHouse Cloud, you will need to run your ClickHouse JDBC Bridge on a separate environment and connect to ClickHouse Cloud using the [remoteSecure](/reference/functions/table-functions/remote) function +If you are using ClickHouse Cloud, you will need to run your ClickHouse JDBC Bridge on a separate environment and connect to ClickHouse Cloud using the [remoteSecure](/core/reference/functions/table-functions/remote) function
    diff --git a/snippets/_replication-sharding-terminology.mdx b/snippets/_replication-sharding-terminology.mdx index 079c7640..72c7b31e 100644 --- a/snippets/_replication-sharding-terminology.mdx +++ b/snippets/_replication-sharding-terminology.mdx @@ -3,7 +3,7 @@ A copy of data. ClickHouse always has at least one copy of your data, and so the minimum number of **replicas** is one. This is an important detail, you may not be used to counting the original copy of your data as a replica, but that is the term used in ClickHouse code and documentation. Adding a second replica of your data provides fault tolerance. ### Shard {#shard} -A subset of data. ClickHouse always has at least one shard for your data, so if you don't split the data across multiple servers, your data will be stored in one shard. Sharding data across multiple servers can be used to divide the load if you exceed the capacity of a single server. The destination server is determined by the **sharding key**, and is defined when you create the distributed table. The sharding key can be random or as an output of a [hash function](/reference/functions/regular-functions/hash-functions). The deployment examples involving sharding will use `rand()` as the sharding key, and will provide further information on when and how to choose a different sharding key. +A subset of data. ClickHouse always has at least one shard for your data, so if you don't split the data across multiple servers, your data will be stored in one shard. Sharding data across multiple servers can be used to divide the load if you exceed the capacity of a single server. The destination server is determined by the **sharding key**, and is defined when you create the distributed table. The sharding key can be random or as an output of a [hash function](/core/reference/functions/regular-functions/hash-functions). The deployment examples involving sharding will use `rand()` as the sharding key, and will provide further information on when and how to choose a different sharding key. ### Distributed coordination {#distributed-coordination} ClickHouse Keeper provides the coordination system for data replication and distributed DDL queries execution. ClickHouse Keeper is compatible with Apache ZooKeeper. diff --git a/snippets/_syntax.mdx b/snippets/_syntax.mdx index 28d111e3..17c93c27 100644 --- a/snippets/_syntax.mdx +++ b/snippets/_syntax.mdx @@ -22,5 +22,5 @@ AzureBlobStorage('/', '', '', ' **Querying in ClickHouse Cloud** -The data in this system table is held locally on each node in ClickHouse Cloud. Obtaining a complete view of all data, therefore, requires the `clusterAllReplicas` function. See [here](/reference/system-tables/overview#system-tables-in-clickhouse-cloud) for further details. +The data in this system table is held locally on each node in ClickHouse Cloud. Obtaining a complete view of all data, therefore, requires the `clusterAllReplicas` function. See [here](/core/reference/system-tables/overview#system-tables-in-clickhouse-cloud) for further details. diff --git a/snippets/_table_of_contents.mdx b/snippets/_table_of_contents.mdx index af077360..786ac957 100644 --- a/snippets/_table_of_contents.mdx +++ b/snippets/_table_of_contents.mdx @@ -1,12 +1,12 @@ | Page | Description | |--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------| -| [Choosing a Primary Key](/concepts/best-practices/choosing-a-primary-key) | How to select primary keys that maximize query performance and minimize storage overhead. | -| [Select Data Types](/concepts/best-practices/select-data-type) | Choose optimal data types to reduce memory usage, improve compression, and accelerate queries. | -| [Use Materialized Views](/concepts/best-practices/use-materialized-views) | Leverage materialized views to pre-aggregate data and dramatically speed up analytical queries. | -| [Minimize and Optimize JOINs](/concepts/best-practices/minimize-optimize-joins) | Best practices for using ClickHouse's `JOIN` capabilities efficiently. | -| [Choosing a Partitioning Key](/concepts/best-practices/partitioning-keys) | Select partitioning strategies that enable efficient data pruning and faster query execution. | -| [Selecting an Insert Strategy](/concepts/best-practices/selecting-an-insert-strategy) | Optimize data ingestion throughput and reduce resource consumption with proper insert patterns. | -| [Data Skipping Indices](/concepts/best-practices/using-data-skipping-indices) | Apply secondary indices strategically to skip irrelevant data blocks and accelerate filtered queries. | -| [Avoid Mutations](/concepts/best-practices/avoid-mutations) | Design schemas and workflows that eliminate costly `UPDATE`/`DELETE` operations for better performance. | -| [Avoid OPTIMIZE FINAL](/concepts/best-practices/avoid-optimize-final) | Prevent performance bottlenecks by understanding when `OPTIMIZE FINAL` hurts more than it helps. | -| [Use JSON where appropriate](/concepts/best-practices/json-type) | Balance flexibility and performance when working with semi-structured JSON data in ClickHouse. | +| [Choosing a Primary Key](/core/concepts/best-practices/choosing-a-primary-key) | How to select primary keys that maximize query performance and minimize storage overhead. | +| [Select Data Types](/core/concepts/best-practices/select-data-type) | Choose optimal data types to reduce memory usage, improve compression, and accelerate queries. | +| [Use Materialized Views](/core/concepts/best-practices/use-materialized-views) | Leverage materialized views to pre-aggregate data and dramatically speed up analytical queries. | +| [Minimize and Optimize JOINs](/core/concepts/best-practices/minimize-optimize-joins) | Best practices for using ClickHouse's `JOIN` capabilities efficiently. | +| [Choosing a Partitioning Key](/core/concepts/best-practices/partitioning-keys) | Select partitioning strategies that enable efficient data pruning and faster query execution. | +| [Selecting an Insert Strategy](/core/concepts/best-practices/selecting-an-insert-strategy) | Optimize data ingestion throughput and reduce resource consumption with proper insert patterns. | +| [Data Skipping Indices](/core/concepts/best-practices/using-data-skipping-indices) | Apply secondary indices strategically to skip irrelevant data blocks and accelerate filtered queries. | +| [Avoid Mutations](/core/concepts/best-practices/avoid-mutations) | Design schemas and workflows that eliminate costly `UPDATE`/`DELETE` operations for better performance. | +| [Avoid OPTIMIZE FINAL](/core/concepts/best-practices/avoid-optimize-final) | Prevent performance bottlenecks by understanding when `OPTIMIZE FINAL` hurts more than it helps. | +| [Use JSON where appropriate](/core/concepts/best-practices/json-type) | Balance flexibility and performance when working with semi-structured JSON data in ClickHouse. | diff --git a/snippets/_windows_install.mdx b/snippets/_windows_install.mdx index 168bcc0e..4c7704e2 100644 --- a/snippets/_windows_install.mdx +++ b/snippets/_windows_install.mdx @@ -47,7 +47,7 @@ powerful SQL syntax and without the need for configuration. Table data is stored in a temporary location, meaning that after a restart of `clickhouse-local` previously created tables are no longer available. -Run the following command to start [clickhouse-local](/concepts/features/tools-and-utilities/clickhouse-local): +Run the following command to start [clickhouse-local](/core/concepts/features/tools-and-utilities/clickhouse-local): ```bash ./clickhouse @@ -88,7 +88,7 @@ Table data is stored in the current directory and still available after a restar of ClickHouse server. If necessary, you can pass `-C config.xml` as an additional command line argument to `./clickhouse server` and provide further configuration in a configuration -file. All available configuration settings are documented [here](/reference/settings/server-settings/settings) and in the +file. All available configuration settings are documented [here](/core/reference/settings/server-settings/settings) and in the [example configuration file template](https://github.com/ClickHouse/ClickHouse/blob/master/programs/server/config.xml). diff --git a/snippets/alter-delete.mdx b/snippets/alter-delete.mdx index 7e36009b..9edae418 100644 --- a/snippets/alter-delete.mdx +++ b/snippets/alter-delete.mdx @@ -2,23 +2,23 @@ ALTER TABLE [db.]table [ON CLUSTER cluster] DELETE WHERE filter_expr ``` -Deletes data matching the specified filtering expression. Implemented as a [mutation](/reference/statements/alter#mutations). +Deletes data matching the specified filtering expression. Implemented as a [mutation](/core/reference/statements/alter#mutations). -The `ALTER TABLE` prefix makes this syntax different from most other systems supporting SQL. It is intended to signify that unlike similar queries in OLTP databases this is a heavy operation not designed for frequent use. `ALTER TABLE` is considered a heavyweight operation that requires the underlying data to be merged before it is deleted. For MergeTree tables, consider using the [`DELETE FROM` query](/reference/statements/delete), which performs a lightweight delete and can be considerably faster. +The `ALTER TABLE` prefix makes this syntax different from most other systems supporting SQL. It is intended to signify that unlike similar queries in OLTP databases this is a heavy operation not designed for frequent use. `ALTER TABLE` is considered a heavyweight operation that requires the underlying data to be merged before it is deleted. For MergeTree tables, consider using the [`DELETE FROM` query](/core/reference/statements/delete), which performs a lightweight delete and can be considerably faster. The `filter_expr` must be of type `UInt8`. The query deletes rows in the table for which this expression takes a non-zero value. One query can contain several commands separated by commas. -The synchronicity of the query processing is defined by the [mutations_sync](/reference/settings/session-settings#mutations_sync) setting. By default, it is asynchronous. +The synchronicity of the query processing is defined by the [mutations_sync](/core/reference/settings/session-settings#mutations_sync) setting. By default, it is asynchronous. **See also** -- [Mutations](/reference/statements/alter#mutations) -- [Synchronicity of ALTER Queries](/reference/statements/alter#synchronicity-of-alter-queries) -- [mutations_sync](/reference/settings/session-settings#mutations_sync) setting +- [Mutations](/core/reference/statements/alter#mutations) +- [Synchronicity of ALTER Queries](/core/reference/statements/alter#synchronicity-of-alter-queries) +- [mutations_sync](/core/reference/settings/session-settings#mutations_sync) setting ## Related content {#related-content} diff --git a/snippets/clickstack/_json_support.mdx b/snippets/clickstack/_json_support.mdx index 4a4724de..f9a0786b 100644 --- a/snippets/clickstack/_json_support.mdx +++ b/snippets/clickstack/_json_support.mdx @@ -9,7 +9,7 @@ JSON type support in **ClickStack** is a **beta feature**. While the JSON type itself is production-ready in ClickHouse 25.3+, its integration within ClickStack is still under active development and may have limitations, change in the future, or contain bugs. -ClickStack has beta support for the [JSON type](/reference/formats/JSON/JSON) from version `2.0.4`. +ClickStack has beta support for the [JSON type](/core/reference/formats/JSON/JSON) from version `2.0.4`. For the benefits of this type see [Benefits of the JSON type](/products/clickstack/ingesting-data/collector#benefits-json-type). diff --git a/snippets/clickstack/_navigate_managed.mdx b/snippets/clickstack/_navigate_managed.mdx index 6734beab..bc3e293f 100644 --- a/snippets/clickstack/_navigate_managed.mdx +++ b/snippets/clickstack/_navigate_managed.mdx @@ -21,7 +21,7 @@ We also recommend updating the `Default SELECT` to explicitly define which colum In the example above, a `Body` column doesn't exist in the data. Instead, it is defined using a SQL expression that reconstructs an Nginx log line from the available fields. -For other possible options, see the [configuration reference](/products/clickstack/config). +For other possible options, see the [configuration reference](/products/clickstack/managing/config). Once created, you should be directed to the search view where you can immediately begin exploring your data. diff --git a/snippets/clickstack/_setup_managed_ingestion.mdx b/snippets/clickstack/_setup_managed_ingestion.mdx index 5c4e6109..6fe8f58d 100644 --- a/snippets/clickstack/_setup_managed_ingestion.mdx +++ b/snippets/clickstack/_setup_managed_ingestion.mdx @@ -32,7 +32,7 @@ This command should include your connection credentials pre-populated. **Deploying to production** -While this command uses the `default` user to connect Managed ClickStack, you should create a dedicated user when [going to production](/products/clickstack/managing#create-a-database-ingestion-user-managed) and modifying your configuration. +While this command uses the `default` user to connect Managed ClickStack, you should create a dedicated user when [going to production](/products/clickstack/managing/overview#create-a-database-ingestion-user-managed) and modifying your configuration. Running this single command starts the ClickStack collector with OTLP endpoints exposed on ports 4317 (gRPC) and 4318 (HTTP). If you already have OpenTelemetry instrumentation and agents, you can immediately begin sending telemetry data to these endpoints. @@ -121,9 +121,9 @@ ENGINE = MergeTree ORDER BY (toStartOfMinute(time_local), status, remote_addr); ``` -Your table must align with the output schema produced by Vector. Adjust the schema as needed for your data, following the recommended [schema best practices](/concepts/best-practices/select-data-type). +Your table must align with the output schema produced by Vector. Adjust the schema as needed for your data, following the recommended [schema best practices](/core/concepts/best-practices/select-data-type). -We strongly recommend understanding how [Primary keys](/concepts/core-concepts/primary-indexes) work in ClickHouse and choosing an ordering key based on your access patterns. See the [ClickStack-specific](/products/clickstack/managing/performance-tuning#choosing-a-primary-key) guidance on choosing a primary key. +We strongly recommend understanding how [Primary keys](/core/concepts/core-concepts/primary-indexes) work in ClickHouse and choosing an ordering key based on your access patterns. See the [ClickStack-specific](/products/clickstack/managing/performance-tuning#choosing-a-primary-key) guidance on choosing a primary key. Once the table exists, copy the configuration snippet shown. Adjust the input to consume your existing pipelines, as well as the target table and database if required. Credentials should be pre-populated. diff --git a/snippets/common-pretty-format-settings.mdx b/snippets/common-pretty-format-settings.mdx index d0277fe6..39997436 100644 --- a/snippets/common-pretty-format-settings.mdx +++ b/snippets/common-pretty-format-settings.mdx @@ -4,11 +4,11 @@ The following settings are common to all `Pretty` formats: | Setting | Description | Default | |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| -| [`output_format_pretty_max_rows`](/reference/settings/formats#output_format_pretty_max_rows) | Row limit for Pretty formats. | `10000` | -| [`output_format_pretty_max_column_pad_width`](/reference/settings/formats#output_format_pretty_max_column_pad_width) | Maximum width to pad all values in a column in Pretty formats. | `250` | -| [`output_format_pretty_max_value_width`](/reference/settings/formats#output_format_pretty_max_value_width) | Maximum width of value to display in Pretty formats. If greater - it will be cut. | `10000` | -| [`output_format_pretty_color`](/reference/settings/formats#output_format_pretty_color) | Use ANSI escape sequences to paint colors in Pretty formats. | `true` | -| [`output_format_pretty_grid_charset`](/reference/settings/formats#output_format_pretty_grid_charset) | Charset for printing grid borders. Available charsets: ASCII, UTF-8. | `UTF-8` | -| [`output_format_pretty_row_numbers`](/reference/settings/formats#output_format_pretty_row_numbers) | Add row numbers before each row for pretty output format. | `true` | -| [`output_format_pretty_display_footer_column_names`](/reference/settings/formats#output_format_pretty_display_footer_column_names) | Display column names in the footer if table contains many rows. | `true` | -| [`output_format_pretty_display_footer_column_names_min_rows`](/reference/settings/formats#output_format_pretty_display_footer_column_names_min_rows) | Sets the minimum number of rows for which a footer will be displayed if [`output_format_pretty_display_footer_column_names`](/reference/settings/formats#output_format_pretty_display_footer_column_names) is enabled. | `50` | +| [`output_format_pretty_max_rows`](/core/reference/settings/formats#output_format_pretty_max_rows) | Row limit for Pretty formats. | `10000` | +| [`output_format_pretty_max_column_pad_width`](/core/reference/settings/formats#output_format_pretty_max_column_pad_width) | Maximum width to pad all values in a column in Pretty formats. | `250` | +| [`output_format_pretty_max_value_width`](/core/reference/settings/formats#output_format_pretty_max_value_width) | Maximum width of value to display in Pretty formats. If greater - it will be cut. | `10000` | +| [`output_format_pretty_color`](/core/reference/settings/formats#output_format_pretty_color) | Use ANSI escape sequences to paint colors in Pretty formats. | `true` | +| [`output_format_pretty_grid_charset`](/core/reference/settings/formats#output_format_pretty_grid_charset) | Charset for printing grid borders. Available charsets: ASCII, UTF-8. | `UTF-8` | +| [`output_format_pretty_row_numbers`](/core/reference/settings/formats#output_format_pretty_row_numbers) | Add row numbers before each row for pretty output format. | `true` | +| [`output_format_pretty_display_footer_column_names`](/core/reference/settings/formats#output_format_pretty_display_footer_column_names) | Display column names in the footer if table contains many rows. | `true` | +| [`output_format_pretty_display_footer_column_names_min_rows`](/core/reference/settings/formats#output_format_pretty_display_footer_column_names_min_rows) | Sets the minimum number of rows for which a footer will be displayed if [`output_format_pretty_display_footer_column_names`](/core/reference/settings/formats#output_format_pretty_display_footer_column_names) is enabled. | `50` | diff --git a/snippets/common-row-binary-format-settings.mdx b/snippets/common-row-binary-format-settings.mdx index a8b3478b..1ffb5db7 100644 --- a/snippets/common-row-binary-format-settings.mdx +++ b/snippets/common-row-binary-format-settings.mdx @@ -4,8 +4,8 @@ The following settings are common to all `RowBinary` type formats. | Setting | Description | Default | |------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| -| [`format_binary_max_string_size`](/reference/settings/formats#format_binary_max_string_size) | The maximum allowed size for String in RowBinary format. | `1GiB` | -| [`output_format_binary_encode_types_in_binary_format`](/reference/settings/formats#input_format_binary_decode_types_in_binary_format) | Allows to write types in header using [`binary encoding`](/reference/data-types/data-types-binary-encoding) instead of strings with type names in [`RowBinaryWithNamesAndTypes`](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) output format. | `false` | -| [`input_format_binary_decode_types_in_binary_format`](/reference/settings/formats#input_format_binary_decode_types_in_binary_format) | Allows to read types in header using [`binary encoding`](/reference/data-types/data-types-binary-encoding) instead of strings with type names in [`RowBinaryWithNamesAndTypes`](/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) input format. | `false` | -| [`output_format_binary_write_json_as_string`](/reference/settings/formats#output_format_binary_write_json_as_string) | Allows to write values of the [`JSON`](/reference/data-types/newjson) data type as `JSON` [String](/reference/data-types/string) values in [`RowBinary`](/reference/formats/RowBinary/RowBinary) output format. | `false` | -| [`input_format_binary_read_json_as_string`](/reference/settings/formats#input_format_binary_read_json_as_string) | Allows to read values of the [`JSON`](/reference/data-types/newjson) data type as `JSON` [String](/reference/data-types/string) values in [`RowBinary`](/reference/formats/RowBinary/RowBinary) input format. | `false` | +| [`format_binary_max_string_size`](/core/reference/settings/formats#format_binary_max_string_size) | The maximum allowed size for String in RowBinary format. | `1GiB` | +| [`output_format_binary_encode_types_in_binary_format`](/core/reference/settings/formats#input_format_binary_decode_types_in_binary_format) | Allows to write types in header using [`binary encoding`](/core/reference/data-types/data-types-binary-encoding) instead of strings with type names in [`RowBinaryWithNamesAndTypes`](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) output format. | `false` | +| [`input_format_binary_decode_types_in_binary_format`](/core/reference/settings/formats#input_format_binary_decode_types_in_binary_format) | Allows to read types in header using [`binary encoding`](/core/reference/data-types/data-types-binary-encoding) instead of strings with type names in [`RowBinaryWithNamesAndTypes`](/core/reference/formats/RowBinary/RowBinaryWithNamesAndTypes) input format. | `false` | +| [`output_format_binary_write_json_as_string`](/core/reference/settings/formats#output_format_binary_write_json_as_string) | Allows to write values of the [`JSON`](/core/reference/data-types/newjson) data type as `JSON` [String](/core/reference/data-types/string) values in [`RowBinary`](/core/reference/formats/RowBinary/RowBinary) output format. | `false` | +| [`input_format_binary_read_json_as_string`](/core/reference/settings/formats#input_format_binary_read_json_as_string) | Allows to read values of the [`JSON`](/core/reference/data-types/newjson) data type as `JSON` [String](/core/reference/data-types/string) values in [`RowBinary`](/core/reference/formats/RowBinary/RowBinary) input format. | `false` | diff --git a/snippets/compatibility.mdx b/snippets/compatibility.mdx index a0fb4ce3..621647e4 100644 --- a/snippets/compatibility.mdx +++ b/snippets/compatibility.mdx @@ -2,7 +2,7 @@ **Compatibility** If you're noticing differences in behavior between your self-hosted ClickHouse deployment and your ClickHouse Cloud service, -it may be related to the [compatibility setting](/reference/settings/session-settings#compatibility). +it may be related to the [compatibility setting](/core/reference/settings/session-settings#compatibility). In Cloud, compatibility is set when a service is created and doesn't change at the service level to ensure that clients get consistent behavior even as the service upgrades. If you wish to change compatibility, you may request to do so via [support](https://clickhouse.com/support/program). \ No newline at end of file diff --git a/snippets/components/QuickStartsGrid/QuickStartsGrid.jsx b/snippets/components/QuickStartsGrid/QuickStartsGrid.jsx index d4daa1b0..a2f1e364 100644 --- a/snippets/components/QuickStartsGrid/QuickStartsGrid.jsx +++ b/snippets/components/QuickStartsGrid/QuickStartsGrid.jsx @@ -238,7 +238,7 @@ export const QuickStartsGrid = ({ quickStartsData, featuredIds = [] }) => { return ( <> -
    +
    {/* Featured quickstarts section - full width */} {featuredQuickStarts.length > 0 && ( diff --git a/snippets/connecting-to-postgresql.mdx b/snippets/connecting-to-postgresql.mdx index febf8ddd..3f79ad2e 100644 --- a/snippets/connecting-to-postgresql.mdx +++ b/snippets/connecting-to-postgresql.mdx @@ -109,7 +109,7 @@ Check the ClickHouse [Cloud Endpoints API](/products/cloud/guides/sql-console/qu |password |password to connect to postgres|ClickHouse_123 | - View the [PostgreSQL table engine](/reference/engines/table-engines/integrations/postgresql) doc page for a complete list of parameters. + View the [PostgreSQL table engine](/core/reference/engines/table-engines/integrations/postgresql) doc page for a complete list of parameters. ### 3 Test the Integration {#3-test-the-integration} @@ -179,7 +179,7 @@ Check the ClickHouse [Cloud Endpoints API](/products/cloud/guides/sql-console/qu ``` This example demonstrated the basic integration between PostgreSQL and ClickHouse using the `PostrgeSQL` table engine. -Check out the [doc page for the PostgreSQL table engine](/reference/engines/table-engines/integrations/postgresql) for more features, such as specifying schemas, returning only a subset of columns, and connecting to multiple replicas. Also check out the [ClickHouse and PostgreSQL - a match made in data heaven - part 1](https://clickhouse.com/blog/migrating-data-between-clickhouse-postgres) blog. +Check out the [doc page for the PostgreSQL table engine](/core/reference/engines/table-engines/integrations/postgresql) for more features, such as specifying schemas, returning only a subset of columns, and connecting to multiple replicas. Also check out the [ClickHouse and PostgreSQL - a match made in data heaven - part 1](https://clickhouse.com/blog/migrating-data-between-clickhouse-postgres) blog. ## Using the MaterializedPostgreSQL database engine {#using-the-materializedpostgresql-database-engine} @@ -339,5 +339,5 @@ Query id: b0729816-3917-44d3-8d1a-fed912fb59ce This integration guide focused on a simple example on how to replicate a database with a table, however, there exist more advanced options which include replicating the whole database or adding new tables and schemas to the existing replications. Although DDL commands aren't supported for this replication, the engine can be set to detect changes and reload the tables when there are structural changes made. -For more features available for advanced options, please see the [reference documentation](/reference/engines/database-engines/materialized-postgresql). +For more features available for advanced options, please see the [reference documentation](/core/reference/engines/database-engines/materialized-postgresql). diff --git a/snippets/data-types-matching.mdx b/snippets/data-types-matching.mdx index f1dbb4e4..17e5fafd 100644 --- a/snippets/data-types-matching.mdx +++ b/snippets/data-types-matching.mdx @@ -1,34 +1,34 @@ -The table below shows all data types supported by the Apache Avro format, and their corresponding ClickHouse [data types](/reference/data-types) in `INSERT` and `SELECT` queries. +The table below shows all data types supported by the Apache Avro format, and their corresponding ClickHouse [data types](/core/reference/data-types) in `INSERT` and `SELECT` queries. | Avro data type `INSERT` | ClickHouse data type | Avro data type `SELECT` | |---------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|---------------------------------| -| `boolean`, `int`, `long`, `float`, `double` | [Int(8\16\32)](/reference/data-types/int-uint), [UInt(8\16\32)](/reference/data-types/int-uint) | `int` | -| `boolean`, `int`, `long`, `float`, `double` | [Int64](/reference/data-types/int-uint), [UInt64](/reference/data-types/int-uint) | `long` | -| `boolean`, `int`, `long`, `float`, `double` | [Float32](/reference/data-types/float) | `float` | -| `boolean`, `int`, `long`, `float`, `double` | [Float64](/reference/data-types/float) | `double` | -| `bytes`, `string`, `fixed`, `enum` | [String](/reference/data-types/string) | `bytes` or `string` \* | -| `bytes`, `string`, `fixed` | [FixedString(N)](/reference/data-types/fixedstring) | `fixed(N)` | -| `enum` | [Enum(8\16)](/reference/data-types/enum) | `enum` | -| `array(T)` | [Array(T)](/reference/data-types/array) | `array(T)` | -| `map(V, K)` | [Map(V, K)](/reference/data-types/map) | `map(string, K)` | -| `union(null, T)`, `union(T, null)` | [Nullable(T)](/reference/data-types/date) | `union(null, T)` | -| `union(T1, T2, …)` \** | [Variant(T1, T2, …)](/reference/data-types/variant) | `union(T1, T2, …)` \** | -| `null` | [Nullable(Nothing)](/reference/data-types/special-data-types/nothing) | `null` | -| `int (date)` \**\* | [Date](/reference/data-types/date), [Date32](/reference/data-types/date32) | `int (date)` \**\* | -| `long (timestamp-millis)` \**\* | [DateTime64(3)](/reference/data-types/datetime) | `long (timestamp-millis)` \**\* | -| `long (timestamp-micros)` \**\* | [DateTime64(6)](/reference/data-types/datetime) | `long (timestamp-micros)` \**\* | -| `bytes (decimal)` \**\* | [DateTime64(N)](/reference/data-types/datetime) | `bytes (decimal)` \**\* | -| `int` | [IPv4](/reference/data-types/ipv4) | `int` | -| `fixed(16)` | [IPv6](/reference/data-types/ipv6) | `fixed(16)` | -| `bytes (decimal)` \**\* | [Decimal(P, S)](/reference/data-types/decimal) | `bytes (decimal)` \**\* | -| `string (uuid)` \**\* | [UUID](/reference/data-types/uuid) | `string (uuid)` \**\* | -| `fixed(16)` | [Int128/UInt128](/reference/data-types/int-uint) | `fixed(16)` | -| `fixed(32)` | [Int256/UInt256](/reference/data-types/int-uint) | `fixed(32)` | -| `record` | [Tuple](/reference/data-types/tuple) | `record` | +| `boolean`, `int`, `long`, `float`, `double` | [Int(8\16\32)](/core/reference/data-types/int-uint), [UInt(8\16\32)](/core/reference/data-types/int-uint) | `int` | +| `boolean`, `int`, `long`, `float`, `double` | [Int64](/core/reference/data-types/int-uint), [UInt64](/core/reference/data-types/int-uint) | `long` | +| `boolean`, `int`, `long`, `float`, `double` | [Float32](/core/reference/data-types/float) | `float` | +| `boolean`, `int`, `long`, `float`, `double` | [Float64](/core/reference/data-types/float) | `double` | +| `bytes`, `string`, `fixed`, `enum` | [String](/core/reference/data-types/string) | `bytes` or `string` \* | +| `bytes`, `string`, `fixed` | [FixedString(N)](/core/reference/data-types/fixedstring) | `fixed(N)` | +| `enum` | [Enum(8\16)](/core/reference/data-types/enum) | `enum` | +| `array(T)` | [Array(T)](/core/reference/data-types/array) | `array(T)` | +| `map(V, K)` | [Map(V, K)](/core/reference/data-types/map) | `map(string, K)` | +| `union(null, T)`, `union(T, null)` | [Nullable(T)](/core/reference/data-types/date) | `union(null, T)` | +| `union(T1, T2, …)` \** | [Variant(T1, T2, …)](/core/reference/data-types/variant) | `union(T1, T2, …)` \** | +| `null` | [Nullable(Nothing)](/core/reference/data-types/special-data-types/nothing) | `null` | +| `int (date)` \**\* | [Date](/core/reference/data-types/date), [Date32](/core/reference/data-types/date32) | `int (date)` \**\* | +| `long (timestamp-millis)` \**\* | [DateTime64(3)](/core/reference/data-types/datetime) | `long (timestamp-millis)` \**\* | +| `long (timestamp-micros)` \**\* | [DateTime64(6)](/core/reference/data-types/datetime) | `long (timestamp-micros)` \**\* | +| `bytes (decimal)` \**\* | [DateTime64(N)](/core/reference/data-types/datetime) | `bytes (decimal)` \**\* | +| `int` | [IPv4](/core/reference/data-types/ipv4) | `int` | +| `fixed(16)` | [IPv6](/core/reference/data-types/ipv6) | `fixed(16)` | +| `bytes (decimal)` \**\* | [Decimal(P, S)](/core/reference/data-types/decimal) | `bytes (decimal)` \**\* | +| `string (uuid)` \**\* | [UUID](/core/reference/data-types/uuid) | `string (uuid)` \**\* | +| `fixed(16)` | [Int128/UInt128](/core/reference/data-types/int-uint) | `fixed(16)` | +| `fixed(32)` | [Int256/UInt256](/core/reference/data-types/int-uint) | `fixed(32)` | +| `record` | [Tuple](/core/reference/data-types/tuple) | `record` | -\* `bytes` is default, controlled by setting [`output_format_avro_string_column_pattern`](/reference/settings/formats#output_format_avro_string_column_pattern) +\* `bytes` is default, controlled by setting [`output_format_avro_string_column_pattern`](/core/reference/settings/formats#output_format_avro_string_column_pattern) -\** The [Variant type](/reference/data-types/variant) implicitly accepts `null` as a field value, so for example the Avro `union(T1, T2, null)` will be converted to `Variant(T1, T2)`. +\** The [Variant type](/core/reference/data-types/variant) implicitly accepts `null` as a field value, so for example the Avro `union(T1, T2, null)` will be converted to `Variant(T1, T2)`. As a result, when producing Avro from ClickHouse, we have to always include the `null` type to the Avro `union` type set as we don't know if any value is actually `null` during the schema inference. \**\* [Avro logical types](https://avro.apache.org/docs/current/spec.html#Logical+Types) diff --git a/snippets/delete.mdx b/snippets/delete.mdx index a44e64e3..c84a0005 100644 --- a/snippets/delete.mdx +++ b/snippets/delete.mdx @@ -13,7 +13,7 @@ The lightweight `DELETE` statement removes rows from the table `[db.]table` that DELETE FROM [db.]table [ON CLUSTER cluster] [IN PARTITION partition_expr] WHERE expr; ``` -It is called "lightweight `DELETE`" to contrast it to the [ALTER TABLE ... DELETE](/reference/statements/alter/delete) command, which is a heavyweight process. +It is called "lightweight `DELETE`" to contrast it to the [ALTER TABLE ... DELETE](/core/reference/statements/alter/delete) command, which is a heavyweight process. ## Examples {#examples} @@ -24,25 +24,25 @@ DELETE FROM hits WHERE Title LIKE '%hello%'; ## Lightweight `DELETE` does not delete data immediately {#lightweight-delete-does-not-delete-data-immediately} -Lightweight `DELETE` is implemented as a [mutation](/reference/statements/alter#mutations) that marks rows as deleted but does not immediately physically delete them. +Lightweight `DELETE` is implemented as a [mutation](/core/reference/statements/alter#mutations) that marks rows as deleted but does not immediately physically delete them. -By default, `DELETE` statements wait until marking the rows as deleted is completed before returning. This can take a long time if the amount of data is large. Alternatively, you can run it asynchronously in the background using the setting [`lightweight_deletes_sync`](/reference/settings/session-settings#lightweight_deletes_sync). If disabled, the `DELETE` statement is going to return immediately, but the data can still be visible to queries until the background mutation is finished. +By default, `DELETE` statements wait until marking the rows as deleted is completed before returning. This can take a long time if the amount of data is large. Alternatively, you can run it asynchronously in the background using the setting [`lightweight_deletes_sync`](/core/reference/settings/session-settings#lightweight_deletes_sync). If disabled, the `DELETE` statement is going to return immediately, but the data can still be visible to queries until the background mutation is finished. The mutation does not physically delete the rows that have been marked as deleted, this will only happen during the next merge. As a result, it is possible that for an unspecified period, data is not actually deleted from storage and is only marked as deleted. -If you need to guarantee that your data is deleted from storage in a predictable time, consider using the table setting [`min_age_to_force_merge_seconds`](/reference/settings/merge-tree-settings#min_age_to_force_merge_seconds). Or you can use the [ALTER TABLE ... DELETE](/reference/statements/alter/delete) command. Note that deleting data using `ALTER TABLE ... DELETE` may consume significant resources as it recreates all affected parts. +If you need to guarantee that your data is deleted from storage in a predictable time, consider using the table setting [`min_age_to_force_merge_seconds`](/core/reference/settings/merge-tree-settings#min_age_to_force_merge_seconds). Or you can use the [ALTER TABLE ... DELETE](/core/reference/statements/alter/delete) command. Note that deleting data using `ALTER TABLE ... DELETE` may consume significant resources as it recreates all affected parts. ## Deleting large amounts of data {#deleting-large-amounts-of-data} -Large deletes can negatively affect ClickHouse performance. If you are attempting to delete all rows from a table, consider using the [`TRUNCATE TABLE`](/reference/statements/truncate) command. +Large deletes can negatively affect ClickHouse performance. If you are attempting to delete all rows from a table, consider using the [`TRUNCATE TABLE`](/core/reference/statements/truncate) command. -If you anticipate frequent deletes, consider using a [custom partitioning key](/reference/engines/table-engines/mergetree-family/custom-partitioning-key). You can then use the [`ALTER TABLE ... DROP PARTITION`](/reference/statements/alter/partition#drop-partitionpart) command to quickly drop all rows associated with that partition. +If you anticipate frequent deletes, consider using a [custom partitioning key](/core/reference/engines/table-engines/mergetree-family/custom-partitioning-key). You can then use the [`ALTER TABLE ... DROP PARTITION`](/core/reference/statements/alter/partition#drop-partitionpart) command to quickly drop all rows associated with that partition. ## Limitations of lightweight `DELETE` {#limitations-of-lightweight-delete} ### Lightweight `DELETE`s with projections {#lightweight-deletes-with-projections} -By default, `DELETE` does not work for tables with projections. This is because rows in a projection may be affected by a `DELETE` operation. But there is a [MergeTree setting](/reference/settings/merge-tree-settings) `lightweight_mutation_projection_mode` to change the behavior. +By default, `DELETE` does not work for tables with projections. This is because rows in a projection may be affected by a `DELETE` operation. But there is a [MergeTree setting](/core/reference/settings/merge-tree-settings) `lightweight_mutation_projection_mode` to change the behavior. ## Performance considerations when using lightweight `DELETE` {#performance-considerations-when-using-lightweight-delete} diff --git a/snippets/engines/table-engines/integrations/odbc.mdx b/snippets/engines/table-engines/integrations/odbc.mdx index 66844553..399b1bb4 100644 --- a/snippets/engines/table-engines/integrations/odbc.mdx +++ b/snippets/engines/table-engines/integrations/odbc.mdx @@ -13,7 +13,7 @@ Allows ClickHouse to connect to external databases via [ODBC](https://en.wikiped To safely implement ODBC connections, ClickHouse uses a separate program `clickhouse-odbc-bridge`. If the ODBC driver is loaded directly from `clickhouse-server`, driver problems can crash the ClickHouse server. ClickHouse automatically starts `clickhouse-odbc-bridge` when it is required. The ODBC bridge program is installed from the same package as the `clickhouse-server`. -This engine supports the [Nullable](/reference/data-types/nullable) data type. +This engine supports the [Nullable](/core/reference/data-types/nullable) data type. ## Creating a table {#creating-a-table} @@ -27,13 +27,13 @@ CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ENGINE = ODBC(datasource, external_database, external_table) ``` -See a detailed description of the [CREATE TABLE](/reference/statements/create/table) query. +See a detailed description of the [CREATE TABLE](/core/reference/statements/create/table) query. The table structure can differ from the source table structure: - Column names should be the same as in the source table, but you can use just some of these columns and in any order. -- Column types may differ from those in the source table. ClickHouse tries to [cast](/reference/functions/regular-functions/type-conversion-functions#CAST) values to the ClickHouse data types. -- The [external_table_functions_use_nulls](/reference/settings/session-settings#external_table_functions_use_nulls) setting defines how to handle Nullable columns. Default value: 1. If 0, the table function does not make Nullable columns and inserts default values instead of nulls. This is also applicable for NULL values inside arrays. +- Column types may differ from those in the source table. ClickHouse tries to [cast](/core/reference/functions/regular-functions/type-conversion-functions#CAST) values to the ClickHouse data types. +- The [external_table_functions_use_nulls](/core/reference/settings/session-settings#external_table_functions_use_nulls) setting defines how to handle Nullable columns. Default value: 1. If 0, the table function does not make Nullable columns and inserts default values instead of nulls. This is also applicable for NULL values inside arrays. **Engine Parameters** @@ -41,7 +41,7 @@ The table structure can differ from the source table structure: - `external_database` — Name of a database in an external DBMS. - `external_table` — Name of a table in the `external_database`. -These parameters can also be passed using [named collections](/concepts/features/configuration/server-config/named-collections). +These parameters can also be passed using [named collections](/core/concepts/features/configuration/server-config/named-collections). ## Usage example {#usage-example} @@ -134,5 +134,5 @@ SELECT * FROM odbc_t ## See also {#see-also} -- [ODBC dictionaries](/reference/statements/create/dictionary/sources/odbc) -- [ODBC table function](/reference/functions/table-functions/odbc) +- [ODBC dictionaries](/core/reference/statements/create/dictionary/sources/odbc) +- [ODBC table function](/core/reference/functions/table-functions/odbc) diff --git a/snippets/recommendations.mdx b/snippets/recommendations.mdx index 7eaf4e63..10b05798 100644 --- a/snippets/recommendations.mdx +++ b/snippets/recommendations.mdx @@ -12,4 +12,4 @@ To estimate the disk space needed for your data: 2. **Apply the compression coefficient:** Load a sample into ClickHouse and compare the original data size with the stored table size. Clickstream data, for example, is typically compressed 6-10x. 3. **Account for replicas:** If you plan to store data in multiple replicas, multiply the estimated volume by the number of replicas. -For more detailed hardware requirements, see ["Sizing and hardware recommendations"](/guides/oss/best-practices/sizing-and-hardware-recommendations) +For more detailed hardware requirements, see ["Sizing and hardware recommendations"](/core/guides/oss/best-practices/sizing-and-hardware-recommendations) diff --git a/snippets/truncate.mdx b/snippets/truncate.mdx index 5eae0561..e576540b 100644 --- a/snippets/truncate.mdx +++ b/snippets/truncate.mdx @@ -12,9 +12,9 @@ TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster] [SYNC] | `ON CLUSTER cluster`| Runs the command across a specified cluster. | | `SYNC` | Makes the truncation synchronous across replicas when using replicated tables. If omitted, truncation happens asynchronously by default. | -You can use the [alter_sync](/reference/settings/session-settings#alter_sync) setting to set up waiting for actions to be executed on replicas. +You can use the [alter_sync](/core/reference/settings/session-settings#alter_sync) setting to set up waiting for actions to be executed on replicas. -You can specify how long (in seconds) to wait for inactive replicas to execute `TRUNCATE` queries with the [replication_wait_for_inactive_replica_timeout](/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout) setting. +You can specify how long (in seconds) to wait for inactive replicas to execute `TRUNCATE` queries with the [replication_wait_for_inactive_replica_timeout](/core/reference/settings/session-settings#replication_wait_for_inactive_replica_timeout) setting. If the `alter_sync` is set to `2` and some replicas are not active for more than the time, specified by the `replication_wait_for_inactive_replica_timeout` setting, then an exception `UNFINISHED` is thrown. @@ -22,11 +22,11 @@ If the `alter_sync` is set to `2` and some replicas are not active for more than The `TRUNCATE TABLE` query is **not supported** for the following table engines: -- [`View`](/reference/engines/table-engines/special/view) -- [`File`](/reference/engines/table-engines/special/file) -- [`URL`](/reference/engines/table-engines/special/url) -- [`Buffer`](/reference/engines/table-engines/special/buffer) -- [`Null`](/reference/engines/table-engines/special/null) +- [`View`](/core/reference/engines/table-engines/special/view) +- [`File`](/core/reference/engines/table-engines/special/file) +- [`URL`](/core/reference/engines/table-engines/special/url) +- [`Buffer`](/core/reference/engines/table-engines/special/buffer) +- [`Null`](/core/reference/engines/table-engines/special/null) ## TRUNCATE ALL TABLES {#truncate-all-tables} ```sql diff --git a/use-cases/index.mdx b/use-cases/index.mdx deleted file mode 100644 index 7ca6a244..00000000 --- a/use-cases/index.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -slug: /use-cases -title: 'Use case guides' -description: 'Landing page for use case guides' -doc_type: 'landing-page' -keywords: ['use cases', 'observability', 'time-series', 'data lake', 'machine learning', 'AI'] ---- - -In this section of the docs you can find our use case guides. - -| Page | Description | -|--------------------------------|-------------------------------------------------------------------------------| -| [Observability](/guides/observability) | Use case guide on how to setup and use ClickHouse for Observability | -| [Time-Series](/guides/real-time-analytics/time-series) | Use case guide on how to setup and use ClickHouse for time-series | -| [Data Lake](/guides/data-warehousing) | Use case guide on Data Lakes in ClickHouse | -| [Machine Learning and GenAI](/guides/ai-ml) | Use case guides for Machine Learning and GenAI applications with ClickHouse | From 0a18ab7c717eeb4e69a6c08c7c2ab8698c4094dd Mon Sep 17 00:00:00 2001 From: Shaun Struwig <41984034+Blargian@users.noreply.github.com> Date: Thu, 21 May 2026 12:14:44 +0200 Subject: [PATCH 2/2] fix a few additional issues --- _migration/slug-map.csv | 2 +- _site/styles.css | 10 + index.mdx | 4 +- resources/changelogs/cloud/changelog.mdx | 1764 ----------------- resources/changelogs/cloud/release-status.mdx | 6 +- resources/changelogs/navigation.json | 23 +- resources/support-center/home.mdx | 31 +- .../ReleaseSchedule/ReleaseSchedule.jsx | 69 +- 8 files changed, 59 insertions(+), 1850 deletions(-) delete mode 100644 resources/changelogs/cloud/changelog.mdx diff --git a/_migration/slug-map.csv b/_migration/slug-map.csv index 011e7eb7..a719a278 100644 --- a/_migration/slug-map.csv +++ b/_migration/slug-map.csv @@ -227,7 +227,7 @@ docusaurus_slug,docusaurus_file,mintlify_file,old_url,new_url,status,source_hash /cloud/reference/shared-merge-tree,docs/cloud/features/05_infrastructure/shared-merge-tree.md,products/cloud/features/infrastructure/shared-merge-tree.mdx,https://clickhouse.com/docs/cloud/reference/shared-merge-tree,https://private-7c7dfe99.mintlify.app/products/cloud/features/infrastructure/shared-merge-tree,matched,c827eb762dcd0803,true,c827eb762dcd0803,2026-05-08T09:09:20+00:00,false /cloud/reference/supported-regions,docs/cloud/reference/05_supported-regions.md,products/cloud/reference/supported-regions.mdx,https://clickhouse.com/docs/cloud/reference/supported-regions,https://private-7c7dfe99.mintlify.app/products/cloud/reference/supported-regions,matched,7fde55fbfbbbb0ce,true,7fde55fbfbbbb0ce,2026-05-19T11:08:53+00:00,false /cloud/reference/warehouses,docs/cloud/features/05_infrastructure/warehouses.md,products/cloud/features/infrastructure/warehouses.mdx,https://clickhouse.com/docs/cloud/reference/warehouses,https://private-7c7dfe99.mintlify.app/products/cloud/features/infrastructure/warehouses,matched,4678c6c9f1486652,true,4678c6c9f1486652,2026-05-13T13:16:51+00:00,false -/cloud/release-status,docs/cloud/reference/01_changelog/02_release_status.md,resources/changelogs/cloud/release-status.mdx,https://clickhouse.com/docs/cloud/release-status,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/release-status,matched,7a6a53150ca43ae2,true,7a6a53150ca43ae2,2026-05-08T18:58:07+00:00,false +/cloud/release-status,docs/cloud/reference/01_changelog/02_release_status.md,resources/changelogs/cloud/release-status.mdx,https://clickhouse.com/docs/cloud/release-status,https://private-7c7dfe99.mintlify.app/resources/changelogs/cloud/release-status,matched,7a6a53150ca43ae2,true,7a6a53150ca43ae2,2026-05-21T09:36:47+00:00,false /cloud/security,docs/cloud/features/07_security.md,products/cloud/features/security.mdx,https://clickhouse.com/docs/cloud/security,https://private-7c7dfe99.mintlify.app/products/cloud/features/security,matched,f53e4db9252bf0e0,true,f53e4db9252bf0e0,2026-05-13T13:16:51+00:00,false /cloud/security/ai-compliance,docs/cloud/reference/09_security/03_compliance/02_ai-compliance.md,products/cloud/reference/security/ai-compliance.mdx,https://clickhouse.com/docs/cloud/security/ai-compliance,https://private-7c7dfe99.mintlify.app/products/cloud/reference/security/ai-compliance,matched,a435dac5919dd5be,true,a435dac5919dd5be,2026-05-13T13:16:51+00:00,false /cloud/security/audit-logging,docs/cloud/reference/09_security/02_audit-logging.md,products/cloud/reference/security/audit-logging.mdx,https://clickhouse.com/docs/cloud/security/audit-logging,https://private-7c7dfe99.mintlify.app/products/cloud/reference/security/audit-logging,matched,e8f70f164f2c79a0,true,e8f70f164f2c79a0,2026-05-08T09:09:20+00:00,false diff --git a/_site/styles.css b/_site/styles.css index b8b61c86..7fefda9b 100644 --- a/_site/styles.css +++ b/_site/styles.css @@ -2020,6 +2020,16 @@ html:not(.dark) [data-callout-type] [data-component-part="callout-content"] code border: 1px solid rgba(0, 0, 0, 0.18); } +/* List items inside the dark-mode warning callout — prose-invert overrides + the callout-content color rule for li elements specifically, making bullet + text white-on-cream and invisible. Force them to match the callout text. */ +.dark [data-callout-type="warning"] [data-component-part="callout-content"] ul li, +:is(.dark) [data-callout-type="warning"] [data-component-part="callout-content"] ul li, +.dark [data-callout-type="warning"] [data-component-part="callout-content"] ol li, +:is(.dark) [data-callout-type="warning"] [data-component-part="callout-content"] ol li { + color: #000000 !important; +} + /* Links inside the dark-mode warning callout — without this they pick up the page's primary yellow (.dark .prose a:not(.card):not(.card *), which is !important), and the yellow is invisible against the cream background. diff --git a/index.mdx b/index.mdx index 852dadcf..ba7e2759 100644 --- a/index.mdx +++ b/index.mdx @@ -239,7 +239,7 @@ export const ContentSwitcher = () => { { label: "Data modelling topics", href: "/core/guides/clickhouse/data-modelling/schema-design" }, { label: "Performance and query optimization", href: "/core/guides/clickhouse/performance-and-monitoring/query-optimization" }, { label: "ClickHouse Cloud topics", href: "/products/cloud/guides" }, - { label: "Use-case guides", href: "/core/guides/use_case_guides/time-series/time-series-filling-gaps" }, + { label: "Use-case guides", href: "/core/guides/use-cases" }, ]} /> { filename="product-cloud-light.png" title="ClickHouse Private" description="ClickHouse Private is a deployment option that allows customers to run ClickHouse in their own infrastructure while maintaining isolation from the public cloud." - href="/products/clickhouse-private/deployment/bare-metal" + href="/products/clickhouse-private/overview/overview" /> - -### Custom date range for Usage Breakdown -Users can now view usage costs across all billing dimensions on the usage breakdown screen using a custom date range. Select a start and end date (inclusive) to filter costs by a specific period and download the results as a CSV. The date range is limited to a maximum of 31 days. - - - - - -### ClickPipes automatic cleanup -Reverse private endpoints in an inactive state will now be automatically removed after a defined grace period. This ensures unused or misconfigured endpoints are not persisted indefinitely in the backend. See the automatic clean up [documentation](/integrations/clickpipes/aws-privatelink#automatic-cleanup) for more details. - - - - - -### BigQuery Connector -[BigQuery Connector](/integrations/clickpipes/bigquery/overview) is now in Private Preview. Read this [blogpost](https://clickhouse.com/blog/bigquery-clickpipe-private-preview) for more details and join the [waitlist](https://clickhouse.com/cloud/clickpipes/bigquery-connector) for access. - -### PCI deployments for Google Cloud -Support for PCI deployments for Google Cloud. Regions supported: -- GCP europe-west4 (Netherlands) -- GCP us-central1 (Iowa) -- GCP us-east1 (South Carolina) - -### Crash report collection preferences -Crash report collection preferences can now be configured at the organization level. This setting was previously available only at the service level. When disabled at the organization level, all existing and future services will be opted out automatically. - - - - - -### ClickPipes in AWS eu-west-1 -ClickPipes is now available in AWS `eu-west-1`. For new ClickHouse Cloud services created from January 20 in that region, the matching region will be used for ClickPipes. For older services, ClickPipes defaults to `eu-central-1`. See the [documentation](/integrations/clickpipes/home#list-of-static-ips) for more details. - - - - - -### Service-level usage cost filtering via API -The API now supports filtering organization usage costs by specific service tags, making it easier to analyze spend at a more granular level. - -### Data Catalog integration -Connect an external data catalog as a data source. ClickHouse Cloud supports AWS Glue and Unity Catalog (with more coming soon). Once connected, the catalog appears as a database, allowing you to read Iceberg tables directly—without duplicating data. For access, contact support to request access. - -### ClickPipes -- The MongoDB connector has been promoted to Public Beta, and is now available to new and existing ClickHouse Cloud customers, in all service tiers. Read the [blogpost](https://clickhouse.com/blog/mongodb-cdc-connector-clickpipes-beta) for an overview of new features and head to the [documentation](/integrations/clickpipes/mongodb) to get started. -- The [S3 ClickPipe](/integrations/clickpipes/object-storage/amazon-s3/overview) is now compatible with OVH Object Storage, the S3 API-compatible object storage service in OVHcloud. - - - - - -### PCI compliance in AWS ap-south-1 -AWS ap-south-1 now supports launching PCI compliant services. - -### Unified user identity private preview -Customers interested in managing database users from the console may enable a new authentication method for SQL console. This allows customers to try out the new authentication method while we continue work to bring database user management to the console. - -### Unordered mode in S3 ClickPipes -Customers can now ingest data from Amazon S3 into ClickHouse Cloud in any order for event-driven analytics. Files are no longer required to be in lexicographical order for consumption. More details available in the announcement [blog](https://clickhouse.com/blog/clickpipes-s3-unordered-mode). - -### Fivetran connector beta -The Fivetran connector has recently moved to beta. If you're using Fivetran and want to set up ClickHouse as a destination, check out these [docs](https://fivetran.com/docs/destinations/clickhouse/setup-guide). - - - - - -### SAML SSO self-serve setup -Enterprise customers may now complete SAML setup in the console without a support ticket. Additionally, SAML customers may set a default role that will be assigned to new users added via their identity provider and set custom session timeout settings. For more information, please review our [docs](/products/cloud/guides/security/cloud-access-management/saml-sso-setup). - -### Maximum replica size and scaling limits in Azure -Customers can now set the maximum replica size as 356 GiB in all Azure regions, except `eastus2` where the available maximum replica size is 120 GiB. - - - - - -### AWS Israel (Tel Aviv) region -ClickHouse Cloud is now available in **AWS Israel (Tel Aviv) — il-central-1**. - -### Marketplace onboarding improvements -Improved the marketplace onboarding experience for setting up ClickHouse organizations to bill to marketplace pay-as-you-go subscriptions or private offers. - - - - - -### New public regions -ClickHouse Cloud is now available in two additional public regions: -- **GCP Japan (asia-northeast1)** -- **AWS Seoul (Asia Pacific, ap-northeast-2)** — now also supported in **ClickPipes** - -These regions were previously available as private regions and are now open to all users. - -### Terraform and API tags -Terraform and API now support adding tags to services and filtering services by tags. - - - - - -### Granular replica sizing -ClickHouse Cloud console now supports configuring replica sizes in increments of 1 vCPU, 4 GiB from the cloud console. These options are available both when setting up a new service as well as when setting minimum and maximum replica sizes on the settings page. - -### Custom hardware profiles with idling -Custom hardware profiles (available on the Enterprise tier) now support idling. - -### Simplified AWS Marketplace purchasing -ClickHouse Cloud now offers a simplified purchasing experience through AWS Marketplace, with separate options for [pay-as-you-go](https://aws.amazon.com/marketplace/pp/prodview-p4gwofrqpkltu?sr=0-2&ref_=beagle&applicationId=AWSMPContessa) and [committed spend contracts](https://aws.amazon.com/marketplace/pp/prodview-4qyeihstyym2s?sr=0-3&ref_=beagle&applicationId=AWSMPContessa). - -### ClickStack alerting -Alerting is now available for ClickStack users in ClickHouse Cloud. You can now create and manage alerts directly in the HyperDX UI, across logs, metrics, and traces with no extra setup, no extra infra or service, and no config. Alerts integrate with Slack, PagerDuty, and more. For more information see the [alerting documentation](/products/clickstack/features/alerts). - - - - - -### Service Monitoring - Resource Utilization Dashboard - The CPU utilization and memory utilization metrics display will change to show the maximum utilization metric during a particular time period to better surface instances of underprovisionment, from average. - In addition, the CPU utilization metric will show a kubernetes-level CPU utilization metric which more closely resembles the metric used by ClickHouse Cloud’s autoscaler. - -### External Buckets - ClickHouse Cloud now lets you export backups directly to your own cloud service provider account. - Connect your external storage bucket - AWS S3, Google Cloud Storage, or Azure Blob Storage - and take control of your backup management. - - - - - -### ClickHouse Cloud Azure Private Link -[ClickHouse Cloud Azure Private Link](/products/cloud/guides/security/connectivity/private-networking/azure-privatelink) has switched from using Resource GUID to Resource ID filters for resource identification. You can still use the legacy Resource GUID, which is backward compatible, but we recommend switching to Resource ID filters. For migration details see the [docs](/products/cloud/guides/security/connectivity/private-networking/azure-privatelink#obtaining-private-endpoint-resourceid) for Azure Private Link. - - - - - -### ClickHouse Connector for AWS Glue - You can now use the official [ClickHouse Connector for AWS Glue](/integrations/connectors/data-ingestion/AWS/glue) that is available from the [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-eqvmuopqzdg7s). Utilizes AWS Glue’s Apache - Spark-based serverless engine for extracting, transforming and loading data integration between ClickHouse and other data sources. Get - started by following along with the announcement [blogpost](http://clickhouse.com/blog/clickhouse-connector-aws-glue) for how to create tables, write and read data between ClickHouse and Spark. -### Change to the minimum number of replicas in a service - Services which have been scaled up can now be [scaled back down](/products/cloud/features/autoscaling/overview) to use a single replica (previously the minimum was 2 replicas). Note: single replica services have reduced availability and are not recommended for production usage. -- ClickHouse Cloud will begin to send notifications related to service scaling and service version upgrades, by default for administrator roles. Users can adjust their notification preferences in their notification settings. - - - - - -### ClickPipes for MongoDB CDC now in Private Preview - You can now use ClickPipes to replicate data from MongoDB into ClickHouse Cloud in a few clicks, enabling - real-time analytics without the need for external ETL tools. The connector supports continuous - replication as well as one-time migrations, and is compatible with MongoDB Atlas and self-hosted MongoDB - deployments. Read the [blogpost](https://clickhouse.com/blog/mongodb-cdc-clickhouse-preview) for an overview of the MongoDB CDC connector and [sign up for early access here](https://clickhouse.com/cloud/clickpipes/mongodb-cdc-connector)! - - - - - -### Notifications -Users will now receive a UI notification when their service starts upgrading to a new ClickHouse version. Additional Email and Slack notifications can be added via the notification center. -### ClickPipes -Azure Blob Storage (ABS) ClickPipes support was added to the ClickHouse Terraform provider. See the provider documentation for an example of how to programmatically create an ABS ClickPipe. - - [Bug fix] Object storage ClickPipes writing to a destination table using the Null engine now report "Total records" and "Data ingested" metrics in the UI. - - [Bug fix] The “Time period” selector for metrics in the UI defaulted to “24 hours” regardless of the selected time period. This has now been fixed, and the UI correctly updates the charts for the selected time period. -### Cross-region private link (AWS) -Cross-region private link (AWS) is now Generally Available. Please refer to the [documentation](/products/cloud/guides/security/connectivity/private-networking/aws-privatelink) for the list of supported regions. - - - - - -### Vertical scaling for ClickPipes now available -[Vertical scaling is now available for streaming ClickPipes](https://clickhouse.com/blog/clickpipes-flexible-scaling-monitoring). -This feature allows you to control the size of each replica, in addition to the -number of replicas (horizontal scaling). The details page for each ClickPipe now -also includes per-replica CPU and memory utilization, which helps you better -understand your workloads and plan re-sizing operations with confidence. - - - - - -### ClickPipes for MySQL CDC now in public beta -The MySQL CDC connector in ClickPipes is now widely available in public beta. With just a few clicks, -you can start replicating your MySQL (or MariaDB) data directly into ClickHouse Cloud in real-time, -with no external dependencies. Read the [blogpost](https://clickhouse.com/blog/mysql-cdc-connector-clickpipes-beta) -for an overview of the connector and follow the [quickstart](/integrations/clickpipes/mysql) -to get up and running. - - - - - -### SharedCatalog -New services now store database and table metadata in a central **SharedCatalog**, -a new model for coordination and object lifecycles which enables: -- **Cloud-scale DDL**, even under high concurrency -- **Resilient deletion and new DDL operations** -- **Fast spin-up and wake-ups** as stateless nodes now launch with no disk dependencies -- **Stateless compute across both native and open formats**, including Iceberg and Delta Lake - -Read more about SharedCatalog in our [blog](https://clickhouse.com/blog/clickhouse-cloud-stateless-compute) - -### HIPAA compliance in GCP -We now support the ability to launch HIPAA compliant services in GCP `europe-west4` - - - - - -### Terraform provider for database privileges -We now officially support a Terraform provider for managing database privileges -which is also compatible with self-managed deployments. Please refer to the -[blog](https://clickhouse.com/blog/new-terraform-provider-manage-clickhouse-database-users-roles-and-privileges-with-code) -and our [docs](https://registry.terraform.io/providers/ClickHouse/clickhousedbops/latest/docs) -for more information. - -### Slow release channel -Enterprise tier services can now enlist in the [slow release channel](/products/cloud/features/admin-features/upgrades#slow-release-channel-deferred-upgrades) to defer -upgrades by two weeks after the regular release to permit additional time for -testing. - - - - - -- We're excited to announce that ClickHouse Cloud Dashboards are now generally available. Dashboards allow users to visualize queries on dashboards, interact with data via filters and query parameters, and manage sharing. -- API key IP filters: we are introducing an additional layer of protection for your interactions with ClickHouse Cloud. When generating an API key, you may setup an IP allow list to limit where the API key may be used. Please refer to the [documentation](/products/cloud/guides/security/connectivity/setting-ip-filters) for details. - - - - - -- We're excited to announce general availability of **ClickPipes for Postgres CDC** - in ClickHouse Cloud. With just a few clicks, you can now replicate your Postgres - databases and unlock blazing-fast, real-time analytics. The connector delivers - faster data synchronization, latency as low as a few seconds, automatic schema changes, - fully secure connectivity, and more. Refer to the - [blog](https://clickhouse.com/blog/postgres-cdc-connector-clickpipes-ga) for - more information. To get started, refer to the instructions [here](/integrations/clickpipes/postgres). - -- Introduced new improvements to the SQL console dashboards: - - Sharing: You can share your dashboard with your team members. Four levels of access are supported, that can be adjusted both globally and on a per-user basis: - - _Write access_: Add/edit visualizations, refresh settings, interact with dashboards via filters. - - _Owner_: Share a dashboard, delete a dashboard, and all other permissions of a user with "write access". - - _Read-only access_: View and interact with dashboard via filters - - _No access_: Cannot view a dashboard - - For existing dashboards that have already been created, Organization Administrators can assign existing dashboards to themselves as owners. - - You can now add a table or chart from the SQL console to a dashboard from the query view. - -Dashboards improvements - -- We are enlisting preview participants for [Distributed cache](https://clickhouse.com/cloud/distributed-cache-waitlist) - for AWS and GCP. Read more in the [blog](https://clickhouse.com/blog/building-a-distributed-cache-for-s3). - - - - - -- Introduced the Resource Utilization Dashboard which provides a view of - resources being used by a service in ClickHouse Cloud. The following metrics - are scraped from system tables, and displayed on this dashboard: - * Memory & CPU: Graphs for `CGroupMemoryTotal` (Allocated Memory), `CGroupMaxCPU` (allocated CPU), - `MemoryResident` (memory used), and `ProfileEvent_OSCPUVirtualTimeMicroseconds` (CPU used) - * Data Transfer: Graphs showing data ingress and egress from ClickHouse Cloud. Learn more [here](/products/cloud/reference/billing/network-data-transfer). -- We're excited to announce the launch of our new ClickHouse Cloud Prometheus/Grafana mix-in, - built to simplify monitoring for your ClickHouse Cloud services. - This mix-in uses our Prometheus-compatible API endpoint to seamlessly integrate - ClickHouse metrics into your existing Prometheus and Grafana setup. It includes - a pre-configured dashboard that gives you real-time visibility into the health - and performance of your services. Refer to the launch [blog](https://clickhouse.com/blog/monitor-with-new-prometheus-grafana-mix-in) to read more. - - - - - -- Introduced a new **Member** organization level role and two new service level - roles: **Service Admin** and **Service Read Only**. - **Member** is an organization level role that is assigned to SAML SSO users by - default and provides only sign-in and profile update capabilities. **Service Admin** - and **Service Read Only** roles for one or more services can be assigned to users - with **Member**, **Developer**, or **Billing Admin** roles. For more information - see ["Access control in ClickHouse Cloud"](/products/cloud/guides/security/cloud-access-management/manage-database-users) -- ClickHouse Cloud now offers **HIPAA** and **PCI** services in the following regions - for **Enterprise** customers: AWS eu-central-1, AWS eu-west-2, AWS us-east-2. -- Introduced **user facing notifications for ClickPipes**. This feature sends - automatic alerts for ClickPipes failures via email, ClickHouse Cloud UI, and - Slack. Notifications via email and UI are enabled by default and can be - configured per pipe. For **Postgres CDC ClickPipes**, alerts also cover - replication slot threshold (configurable in the **Settings** tab), specific error - types, and self-serve steps to resolve failures. -### MySQL CDC private preview -MySQL CDC private preview is now open. This lets customers replicate MySQL - databases to ClickHouse Cloud in a few clicks, enabling fast analytics and - removing the need for external ETL tools. The connector supports both continuous - replication and one-time migrations, whether MySQL is on the cloud (RDS, - Aurora, Cloud SQL, Azure, etc.) or on-premises. You can sign up to the private - preview by [following this link](https://clickhouse.com/cloud/clickpipes/mysql-cdc-connector). - -### AWS PrivateLink for ClickPipes -You can use AWS PrivateLink to - establish secure connectivity between VPCs, AWS services, your on-premises - systems, and ClickHouse Cloud. This can be done without exposing traffic to - the public internet while moving data from sources like Postgres, MySQL, and - MSK on AWS. It also supports cross-region access through VPC service endpoints. - PrivateLink connectivity set-up is now [fully self-serve](/integrations/clickpipes/aws-privatelink) - through ClickPipes. - - - - - -- Slack notifications for ClickHouse Cloud: ClickHouse Cloud now supports Slack notifications for billing, scaling, and ClickPipes events, in addition to in-console and email notifications. These notifications are sent via the ClickHouse Cloud Slack application. Organization admins can configure these notifications via the notification center by specifying slack channels to which notifications should be sent. -- Users running Production and Development services will now see ClickPipes and data transfer usage price on their bills. - - - - - -- Cross-region Private Link connectivity on AWS is now in Beta. Please refer to - ClickHouse Cloud private link [docs](/products/cloud/guides/security/connectivity/private-networking/aws-privatelink) for - details of how to set up and list of supported regions. -- The maximum replica size available for services on AWS is now set to 236 GiB RAM. - This allows for efficient utilization, while ensuring we have resources - allocated to background processes. - - - - - -- New `UsageCost` API endpoint: The API specification now supports a new endpoint - for retrieving usage information. This is an organization endpoint and usage - costs can be queried for a maximum of 31 days. The metrics that can be - retrieved include Storage, Compute, Data Transfer and ClickPipes. Please refer - to the [documentation](/api-reference/billing/get-organization-usage-costs) for details. -- Terraform provider [v2.1.0](https://registry.terraform.io/providers/ClickHouse/clickhouse/2.1.0/docs/resources/service#nestedatt--endpoints_configuration) release supports enabling the MySQL endpoint. - - - - - -### ClickHouse Bring Your Own Cloud (BYOC) for AWS is now generally available - -In this deployment model, data plane components (compute, storage, backups, logs, metrics) -run in the Customer VPC, while the control plane (web access, APIs, and billing) -remains within the ClickHouse VPC. This setup is ideal for large workloads that -need to comply with strict data residency requirements by ensuring all data stays -within a secure customer environment. - -- For more details, you can refer to the [documentation](/products/cloud/guides/infrastructure/deployment-options/byoc/overview) for BYOC - or read our [announcement blog post](https://clickhouse.com/blog/announcing-general-availability-of-clickhouse-bring-your-own-cloud-on-aws). -- [Contact us](https://clickhouse.com/cloud/bring-your-own-cloud) to request access. - -### Postgres CDC connector for ClickPipes - -Postgres CDC connector for ClickPipes allows users to seamlessly replicate their Postgres databases to ClickHouse Cloud. - -- To get started, refer to the [documentation](/integrations/clickpipes/postgres) for ClickPipes Postgres CDC connector. -- For more information on customer use cases and features, please refer to the [landing page](https://clickhouse.com/cloud/clickpipes/postgres-cdc-connector) and the [launch blog](https://clickhouse.com/blog/postgres-cdc-connector-clickpipes-public-beta). - -### PCI compliance for ClickHouse Cloud on AWS - -ClickHouse Cloud now supports **PCI-compliant services** for **Enterprise tier** -customers in **us-east-1** and **us-west-2** regions. Users who wish to launch -a service in a PCI-compliant environment can contact [support](https://clickhouse.com/support/program) -for assistance. - -### Transparent Data Encryption and Customer Managed Encryption Keys on Google Cloud Platform - -Support for **Transparent Data Encryption (TDE)** and **Customer Managed -Encryption Keys (CMEK)** is now available for ClickHouse Cloud on **Google Cloud Platform (GCP)**. - -- Please refer to the [documentation](/products/cloud/guides/security/cmek#transparent-data-encryption-tde) of these features for more information. - -### AWS Middle East (UAE) availability - -New region support is added for ClickHouse Cloud, which is now available in the -**AWS Middle East (UAE) me-central-1** region. - -### ClickHouse Cloud guardrails - -To promote best practices and ensure stable use of ClickHouse Cloud, we are -introducing guardrails for the number of tables, databases, partitions and parts -in use. - -- Refer to the [usage limits](/products/cloud/guides/best-practices/usagelimits) - section of the documentation for details. -- If your service is already above these limits, we will permit a 10% increase. - Please contact [support](https://clickhouse.com/support/program) if you have any questions. - - - - - -### Changes to ClickHouse Cloud tiers - -We are dedicated to adapting our products to meet the ever-changing requirements of our customers. Since its introduction in GA over the past two years, ClickHouse Cloud has evolved substantially, and we've gained invaluable insights into how our customers leverage our cloud offerings. - -We are introducing new features to optimize the sizing and cost-efficiency of ClickHouse Cloud services for your workloads. These include **compute-compute separation**, high-performance machine types, and **single-replica services**. We are also evolving automatic scaling and managed upgrades to execute in a more seamless and reactive fashion. - -We are adding a **new Enterprise tier** to serve the needs of the most demanding customers and workloads, with focus on industry-specific security and compliance features, even more controls over underlying hardware and upgrades, and advanced disaster recovery features. - -To support these changes, we are restructuring our current **Development** and **Production** tiers to more closely match how our evolving customer base is using our offerings. We are introducing the **Basic** tier, oriented toward users that are testing out new ideas and projects, and the **Scale** tier, matching users working with production workloads and data at scale. - -You can read about these and other functional changes in this [blog](https://clickhouse.com/blog/evolution-of-clickhouse-cloud-new-features-superior-performance-tailored-offerings). Existing customers will need to take action to select a [new plan](https://clickhouse.com/pricing). Customer-facing communication was sent via email to organization administrators. - -### Warehouses: Compute-compute separation (GA) - -Compute-compute separation (also known as "Warehouses") is Generally Available; please refer to [blog](https://clickhouse.com/blog/introducing-warehouses-compute-compute-separation-in-clickhouse-cloud) for more details and the [documentation](/products/cloud/features/infrastructure/warehouses). - -### Single-replica services - -We are introducing the concept of a "single-replica service", both as a standalone offering and within warehouses. As a standalone offering, single-replica services are size limited and intended to be used for small test workloads. Within warehouses, single-replica services can be deployed at larger sizes, and utilized for workloads not requiring high availability at scale, such as restartable ETL jobs. - -### Vertical auto-scaling improvements - -We are introducing a new vertical scaling mechanism for compute replicas, which we call "Make Before Break" (MBB). This approach adds one or more replicas of the new size before removing the old replicas, preventing any loss of capacity during scaling operations. By eliminating the gap between removing existing replicas and adding new ones, MBB creates a more seamless and less disruptive scaling process. It is especially beneficial in scale-up scenarios, where high resource utilization triggers the need for additional capacity, since removing replicas prematurely would only exacerbate the resource constraints. - -### Horizontal scaling (GA) - -Horizontal scaling is now Generally Available. Users can add additional replicas to scale out their service through the APIs and the cloud console. Please refer to the [documentation](/products/cloud/features/autoscaling/overview#manual-horizontal-scaling) for information. - -### Configurable backups - -We now support the ability for customers to export backups to their own cloud account; please refer to the [documentation](/products/cloud/guides/backups/configurable-backups) for additional information. - -### Managed upgrade improvements - -Safe managed upgrades deliver significant value to our users by allowing them to stay current with the database as it moves forward to add features. With this rollout, we applied the "make before break" (or MBB) approach to upgrades, further reducing impact to running workloads. - -### HIPAA support - -We now support HIPAA in compliant regions, including AWS `us-east-1`, `us-west-2` and GCP `us-central1`, `us-east1`. Customers wishing to onboard must sign a Business Associate Agreement (BAA) and deploy to the compliant version of the region. For more information on HIPAA, please refer to the [documentation](/products/cloud/reference/security/compliance-overview). - -### Scheduled upgrades - -Users can schedule upgrades for their services. This feature is supported for Enterprise tier services only. For more information on Scheduled upgrades, please refer to the [documentation](/products/cloud/features/admin-features/upgrades). - -### Language client support for complex types - -[Golang](https://github.com/ClickHouse/clickhouse-go/releases/tag/v2.30.1), [Python](https://github.com/ClickHouse/clickhouse-connect/releases/tag/v0.8.11), and [NodeJS](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.10.1) clients added support for Dynamic, Variant, and JSON types. - -### DBT support for refreshable materialized views - -DBT now [supports Refreshable Materialized Views](https://github.com/ClickHouse/dbt-clickhouse/releases/tag/v1.8.7) in the `1.8.7` release. - -### JWT token support - -Support has been added for JWT-based authentication in the JDBC driver v2, clickhouse-java, [Python](https://github.com/ClickHouse/clickhouse-connect/releases/tag/v0.8.12), and[ NodeJS](https://github.com/ClickHouse/clickhouse-js/releases/tag/1.10.0) clients. - -JDBC / Java will be in[ 0.8.0](https://github.com/ClickHouse/clickhouse-java/releases/tag/v0.8.0) when it's released - ETA pending. - -### Prometheus integration improvements - -We've added several enhancements for the Prometheus integration: - -### Organization-level endpoint -We've introduced an enhancement to our Prometheus integration for ClickHouse Cloud. In addition to service-level metrics, the API now includes an endpoint for **organization-level metrics**. This new endpoint automatically collects metrics for all services within your organization, streamlining the process of exporting metrics into your Prometheus collector. These metrics can be integrated with visualization tools like Grafana and Datadog for a more comprehensive view of your organization's performance. - - This feature is available now for all users. You can find more details [here](/products/cloud/features/monitoring/prometheus). - -### Filtered metrics -We've added support for returning a filtered list of metrics in our Prometheus integration for ClickHouse Cloud. This feature helps reduce response payload size by enabling you to focus on metrics that are critical for monitoring the health of your service. - - This functionality is available via an optional query parameter in the API, making it easier to optimize your data collection and streamline integrations with tools like Grafana and Datadog. - - The filtered metrics feature is now available for all users. You can find more details [here](/products/cloud/features/monitoring/prometheus). - - - - - -### Marketplace subscription organization attachment - -You can now attach your new marketplace subscription to an existing ClickHouse Cloud organization. Once you finish subscribing to the marketplace and redirect to ClickHouse Cloud, you can connect an existing organization created in the past to the new marketplace subscription. From this point, your resources in the organization will be billed via the marketplace. - -ClickHouse Cloud interface showing how to add a marketplace subscription to an existing organization - -### Force OpenAPI key expiration - -It is now possible to restrict the expiry options of API keys so you don't create unexpired OpenAPI keys. Please contact the ClickHouse Cloud Support team to enable these restrictions for your organization. - -### Custom emails for notifications - -Org Admins can now add more email addresses to a specific notification as additional recipients. This is useful in case you want to send notifications to an alias or to other users within your organization who might not be users of ClickHouse Cloud. To configure this, go to the Notification Settings from the cloud console and edit the email addresses that you want to receive the email notifications. - - - - - -### BYOC (beta) - -Bring Your Own Cloud for AWS is now available in Beta. This deployment model allows you to deploy and run ClickHouse Cloud in your own AWS account. We support deployments in 11+ AWS regions, with more coming soon. Please [contact support](https://clickhouse.com/support/program) for access. Note that this deployment is reserved for large-scale deployments. - -### Postgres Change Data Capture (CDC) connector in ClickPipes - -This turnkey integration enables customers to replicate their Postgres databases to ClickHouse Cloud in just a few clicks and leverage ClickHouse for blazing-fast analytics. You can use this connector for both continuous replication and one-time migrations from Postgres. - -### Dashboards (beta) - -This week, we're excited to announce the Beta launch of Dashboards in ClickHouse Cloud. With Dashboards, users can turn saved queries into visualizations, organize visualizations onto dashboards, and interact with dashboards using query parameters. To get started, follow the [dashboards documentation](/products/cloud/features/sql-console-features/dashboards). - -ClickHouse Cloud interface showing the new Dashboards Beta feature with visualizations - -### Query API endpoints (GA) - -We are excited to announce the GA release of Query API Endpoints in ClickHouse Cloud. Query API Endpoints allow you to spin up RESTful API endpoints for saved queries in just a couple of clicks and begin consuming data in your application without wrangling language clients or authentication complexity. Since the initial launch, we have shipped a number of improvements, including: - -* Reducing endpoint latency, especially for cold-starts -* Increased endpoint RBAC controls -* Configurable CORS-allowed domains -* Result streaming -* Support for all ClickHouse-compatible output formats - -In addition to these improvements, we are excited to announce generic query API endpoints that, leveraging our existing framework, allow you to execute arbitrary SQL queries against your ClickHouse Cloud service(s). Generic endpoints can be enabled and configured from the service settings page. - -To get started, follow the [Query API Endpoints documentation](/products/cloud/guides/sql-console/query-endpoints). - -ClickHouse Cloud interface showing the API Endpoints configuration with various settings - -### Native JSON support (Beta) - -We are launching Beta for our native JSON support in ClickHouse Cloud. To get started, please get in touch with support[ to enable your cloud service](/products/cloud/features/support). - -### Vector search using vector similarity indexes (early access) - -We are announcing vector similarity indexes for approximate vector search in early access. - -ClickHouse already offers robust support for vector-based use cases, with a wide range of [distance functions]https://clickhouse.com/blog/reinvent-2024-product-announcements#vector-search-using-vector-similarity-indexes-early-access) and the ability to perform linear scans. In addition, more recently, we added an experimental[ approximate vector search](/core/reference/engines/table-engines/mergetree-family/annindexes) approach powered by the [usearch](https://github.com/unum-cloud/usearch) library and the Hierarchical Navigable Small Worlds (HNSW) approximate nearest neighbor search algorithm. - -To get started, [please sign up for the early access waitlist](https://clickhouse.com/cloud/vector-search-index-waitlist). - -### ClickHouse-connect (Python) and ClickHouse Kafka Connect users - -Notification emails went out to customers who had experienced issues where the clients could encounter a `MEMORY_LIMIT_EXCEEDED` exception. - -Please upgrade to: -- Kafka-Connect: > 1.2.5 -- ClickHouse-Connect (Java): > 0.8.6 - -### ClickPipes now supports cross-VPC resource access on AWS - -You can now grant uni-directional access to a specific data source like AWS MSK. With Cross-VPC resource access with AWS PrivateLink and VPC Lattice, you can share individual resources across VPC and account boundaries, or even from on-premise networks without compromising on privacy and security when going over a public network. To get started and set up a resource share, you can read the [announcement post](https://clickhouse.com/blog/clickpipes-crossvpc-resource-endpoints?utm_medium=web&utm_source=changelog). - -Diagram showing the Cross-VPC resource access architecture for ClickPipes connecting to AWS MSK - -### ClickPipes now supports IAM for AWS MSK - -You can now use IAM authentication to connect to an MSK broker with AWS MSK ClickPipes. To get started, review our [documentation](/integrations/clickpipes/kafka/best-practices#iam). - -### Maximum replica size for new services on AWS - -From now on, any new services created on AWS will allow a maximum available replica size of 236 GiB. - - - - - -### Built-in advanced observability dashboard for ClickHouse Cloud - -Previously, the advanced observability dashboard that allows you to monitor ClickHouse server metrics and hardware resource utilization was only available in open-source ClickHouse. We are happy to announce that this feature is now available in the ClickHouse Cloud console. - -This dashboard allows you to view queries based on the [system.dashboards](/core/reference/system-tables/dashboards) table in an all-in-one UI. Visit **Monitoring > Service Health** page to start using the advanced observability dashboard today. - -ClickHouse Cloud advanced observability dashboard showing server metrics and resource utilization - -### AI-powered SQL autocomplete - -We've improved autocomplete significantly, allowing you to get in-line SQL completions as you write your queries with the new AI Copilot. This feature can be enabled by toggling the **"Enable Inline Code Completion"** setting for any ClickHouse Cloud service. - -Animation showing the AI Copilot providing SQL autocompletion suggestions as a user types - -### New "billing" role - -You can now assign users in your organization to a new **Billing** role that allows them to view and manage billing information without giving them the ability to configure or manage services. Simply invite a new user or edit an existing user's role to assign the **Billing** role. - - - - - -### Customer Notifications in ClickHouse Cloud - -ClickHouse Cloud now provides in-console and email notifications for several billing and scaling events. Customers can configure these notifications via the cloud console notification center to only appear on the UI, receive emails, or both. You can configure the category and severity of the notifications you receive at the service level. - -In future, we will add notifications for other events, as well as additional ways to receive the notifications. - -Please see the [ClickHouse docs](/products/cloud/features/monitoring/notifications) to learn more about how to enable notifications for your service. - -ClickHouse Cloud notification center interface showing configuration options for different notification types - -
    - -
    - - - -### ClickHouse Cloud now offers HIPAA-ready services in Beta for GCP - -Customers looking for increased security for protected health information (PHI) can now onboard to ClickHouse Cloud in [Google Cloud Platform (GCP)](https://cloud.google.com/). ClickHouse has implemented administrative, physical and technical safeguards prescribed by the [HIPAA Security Rule](https://www.hhs.gov/hipaa/for-professionals/security/index.html) and now has configurable security settings that can be implemented, depending on your specific use case and workload. For more information on available security settings, please review our [Security features page](/products/cloud/features/security). - -Services are available in GCP `us-central-1` to customers with the **Dedicated** service type and require a Business Associate Agreement (BAA). Contact [sales](mailto:sales@clickhouse.com) or [support](https://clickhouse.com/support/program) to request access to this feature or join the wait list for additional GCP, AWS, and Azure regions. - -### Compute-compute separation is now in private preview for GCP and Azure - -We recently announced the Private Preview for Compute-Compute Separation for AWS. We're happy to announce that it is now available for GCP and Azure. - -Compute-compute separation allows you to designate specific services as read-write or read-only services, allowing you to design the optimal compute configuration for your application to optimize cost and performance. Please [read the docs](/products/cloud/features/infrastructure/warehouses) for more details. - -### Self-service MFA recovery codes - -Customers using multi-factor authentication can now obtain recovery codes that can be used in the event of a lost phone or accidentally deleted token. Customers enrolling in MFA for the first time will be provided the code on set up. Customers with existing MFA can obtain a recovery code by removing their existing MFA token and adding a new one. - -### ClickPipes update: custom certificates, latency insights, and more. - -We're excited to share the latest updates for ClickPipes, the easiest way to ingest data into your ClickHouse service. These new features are designed to enhance your control over data ingestion and provide greater visibility into performance metrics. - -*Custom Authentication Certificates for Kafka* - -ClickPipes for Kafka now supports custom authentication certificates for Kafka brokers using SASL & public SSL/TLS. You can easily upload your own certificate in the SSL Certificate section during ClickPipe setup, ensuring a more secure connection to Kafka. - -*Introducing Latency Metrics for Kafka and Kinesis* - -Performance visibility is crucial. ClickPipes now features a latency graph, giving you insight into the time between message production (whether from a Kafka Topic or a Kinesis Stream) to ingestion in ClickHouse Cloud. With this new metric, you can keep a closer eye on the performance of your data pipelines and optimize accordingly. - -ClickPipes interface showing latency metrics graph for data ingestion performance - -
    - -*Scaling Controls for Kafka and Kinesis (Private Beta)* - -High throughput can demand extra resources to meet your data volume and latency needs. We're introducing horizontal scaling for ClickPipes, available directly through our cloud console. This feature is currently in private beta, allowing you to scale resources more effectively based on your requirements. Please contact [support](https://clickhouse.com/support/program) to join the beta. - -*Raw Message Ingestion for Kafka and Kinesis* - -It is now possible to ingest an entire Kafka or Kinesis message without parsing it. ClickPipes now offers support for a `_raw_message` [virtual column](/integrations/clickpipes/kafka/reference#kafka-virtual-columns), allowing users to map the full message into a single String column. This gives you the flexibility to work with raw data as needed. - -
    - - - -### New Terraform provider version - v1.0.0 - -Terraform allows you to control your ClickHouse Cloud services programmatically, then store your configuration as code. Our Terraform provider has almost 200,000 downloads and is now officially v1.0.0. This new version includes improvements such as better retry logic and a new resource to attach private endpoints to your ClickHouse Cloud service. You can download the [Terraform provider here](https://registry.terraform.io/providers/ClickHouse/clickhouse/latest) and view the [full changelog here](https://github.com/ClickHouse/terraform-provider-clickhouse/releases/tag/v1.0.0). - -### 2024 SOC 2 Type II report and updated ISO 27001 certificate - -We are proud to announce the availability of our 2024 SOC 2 Type II report and updated ISO 27001 certificate, both of which include our recently launched services on Azure as well as continued coverage of services in AWS and GCP. - -Our SOC 2 Type II demonstrates our ongoing commitment to achieving security, availability, processing integrity and confidentiality of the services we provide to ClickHouse users. For more information, check out [SOC 2 - SOC for Service Organizations: Trust Services Criteria](https://www.aicpa-cima.com/resources/landing/system-and-organization-controls-soc-suite-of-services) issued by the American Institute of Certified Public Accountants (AICPA) and [What is ISO/IEC 27001](https://www.iso.org/standard/27001) from the International Standards Organization (ISO). - -Please also check out our [Trust Center](https://trust.clickhouse.com/) for security and compliance documents and reports. - - - - - -### Compute-compute separation is now in Private Preview for AWS - -For existing ClickHouse Cloud services, replicas handle both reads and writes, and there is no way to configure a certain replica to handle only one kind of operation. We have an upcoming new feature called Compute-compute separation that allows you to designate specific services as read-write or read-only services, allowing you to design the optimal compute configuration for your application to optimize cost and performance. - -Our new compute-compute separation feature enables you to create multiple compute node groups, each with its own endpoint, that are using the same object storage folder, and thus, with the same tables, views, etc. Read more about [Compute-compute separation here](/products/cloud/features/infrastructure/warehouses). Please [contact support](https://clickhouse.com/support/program) if you would like access to this feature in Private Preview. - -Diagram showing example architecture for compute-compute separation with read-write and read-only service groups - -### ClickPipes for S3 and GCS now in GA, Continuous mode support - -ClickPipes is the easiest way to ingest data into ClickHouse Cloud. We're happy to announce that [ClickPipes](https://clickhouse.com/cloud/clickpipes) for S3 and GCS is now **Generally Available**. ClickPipes supports both one-time batch ingest and "continuous mode". An ingest task will load all the files matched by a pattern from a specific remote bucket into the ClickHouse destination table. In "continuous mode", the ClickPipes job will run constantly, ingesting matching files that get added into the remote object storage bucket as they arrive. This will allow users to turn any object storage bucket into a fully fledged staging area for ingesting data into ClickHouse Cloud. Read more about ClickPipes in [our documentation](/integrations/clickpipes/home). - - - - - -### Prometheus endpoint for metrics is now generally available - -In our last cloud changelog, we announced the Private Preview for exporting [Prometheus](https://prometheus.io/) metrics from ClickHouse Cloud. This feature allows you to use the [ClickHouse Cloud API](/products/cloud/features/admin-features/api/api-overview) to get your metrics into tools like [Grafana](https://grafana.com/) and [Datadog](https://www.datadoghq.com/) for visualization. We're happy to announce that this feature is now **Generally Available**. Please see [our docs](/products/cloud/features/monitoring/prometheus) to learn more about this feature. - -### Table inspector in Cloud console - -ClickHouse has commands like [`DESCRIBE`](/core/reference/statements/describe-table) that allow you to introspect your table to examine schema. These commands output to the console, but they are often not convenient to use as you need to combine several queries to retrieve all pertinent data about your tables and columns. - -We recently launched a **Table Inspector** in the cloud console which allows you to retrieve important table and column information in the UI, without having to write SQL. You can try out the Table Inspector for your services by checking out the cloud console. It provides information about your schema, storage, compression, and more in one unified interface. - -ClickHouse Cloud Table Inspector interface showing detailed schema and storage information - -### New Java Client API - -Our [Java Client](https://github.com/ClickHouse/clickhouse-java) is one of the most popular clients that users use to connect to ClickHouse. We wanted to make it even easier and more intuitive to use, including a re-designed API and various performance optimizations. These changes will make it much easier to connect to ClickHouse from your Java applications. You can read more about how to use the updated Java Client in this [blog post](https://clickhouse.com/blog/java-client-sequel). - -### New Analyzer is enabled by default - -For the last couple of years, we've been working on a new analyzer for query analysis and optimization. This analyzer improves query performance and will allow us to make further optimizations, including faster and more efficient `JOIN`s. Previously, it was required that new users enable this feature using the setting `allow_experimental_analyzer`. This improved analyzer is now available on new ClickHouse Cloud services by default. - -Stay tuned for more improvements to the analyzer as we have many more optimizations planned. - - - - - -### ClickHouse Cloud for Microsoft Azure is now generally available - -We first announced Microsoft Azure support in Beta [this past May](https://clickhouse.com/blog/clickhouse-cloud-is-now-on-azure-in-public-beta). In this latest cloud release, we're happy to announce that our Azure support is transitioning from Beta to Generally Available. ClickHouse Cloud is now available on all the three major cloud platforms: AWS, Google Cloud Platform, and now Microsoft Azure. - -This release also includes support for subscriptions via the [Microsoft Azure Marketplace](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/clickhouse.clickhouse_cloud). The service will initially be supported in the following regions: -- United States: West US 3 (Arizona) -- United States: East US 2 (Virginia) -- Europe: Germany West Central (Frankfurt) - -If you'd like any specific region to be supported, please [contact us](https://clickhouse.com/support/program). - -### Query log insights - -Our new Query Insights UI in the Cloud console makes ClickHouse's built-in query log a lot easier to use. ClickHouse's `system.query_log` table is a key source of information for query optimization, debugging, and monitoring overall cluster health and performance. There's just one caveat: with 70+ fields and multiple records per query, interpreting the query log represents a steep learning curve. This initial version of query insights provides a blueprint for future work to simplify query debugging and optimization patterns. We'd love to hear your feedback as we continue to iterate on this feature, so please reach out—your input will be greatly appreciated. - -ClickHouse Cloud Query Insights UI showing query performance metrics and analysis - -### Prometheus endpoint for metrics (private preview) - -Perhaps one of our most requested features: you can now export [Prometheus](https://prometheus.io/) metrics from ClickHouse Cloud to [Grafana](https://grafana.com/) and [Datadog](https://www.datadoghq.com/) for visualization. Prometheus provides an open-source solution to monitor ClickHouse and set up custom alerts. Access to Prometheus metrics for your ClickHouse Cloud service is available via the [ClickHouse Cloud API](/products/cloud/features/monitoring/prometheus). This feature is currently in Private Preview. Please reach out to the [support team](https://clickhouse.com/support/program) to enable this feature for your organization. - -Grafana dashboard showing Prometheus metrics from ClickHouse Cloud - -### Other features -- [Configurable backups](/products/cloud/guides/backups/configurable-backups) to configure custom backup policies like frequency, retention, and schedule are now Generally Available. - - - - - -### Configurable offsets for Kafka ClickPipes Connector (Beta) - -Until recently, whenever you set up a new [Kafka Connector for ClickPipes](/integrations/clickpipes/kafka), it always consumed data from the beginning of the Kafka topic. In this situation, it may not be flexible enough to fit specific use cases when you need to reprocess historical data, monitor new incoming data, or resume from a precise point. - -ClickPipes for Kafka has added a new feature that enhances the flexibility and control over data consumption from Kafka topics. You can now configure the offset from which data is consumed. - -The following options are available: -- From the beginning: Start consuming data from the very beginning of the Kafka topic. This option is ideal for users who need to reprocess all historical data. -- From latest: Begin consuming data from the most recent offset. This is useful for users who are only interested in new messages. -- From a timestamp: Start consuming data from messages that were produced at or after a specific timestamp. This feature allows for more precise control, enabling users to resume processing from an exact point in time. - -ClickPipes Kafka connector configuration interface showing offset selection options - -### Enroll services to the Fast release channel - -The Fast release channel allows your services to receive updates ahead of the release schedule. Previously, this feature required assistance from the support team to enable. Now, you can use the ClickHouse Cloud console to enable this feature for your services directly. Simply navigate to **Settings**, and click **Enroll in fast releases**. Your service will now receive updates as soon as they are available. - -ClickHouse Cloud settings page showing the option to enroll in fast releases - -### Terraform support for horizontal scaling - -ClickHouse Cloud supports [horizontal scaling](/products/cloud/features/autoscaling/overview#how-scaling-works-in-clickhouse-cloud), or the ability to add additional replicas of the same size to your services. Horizontal scaling improves performance and parallelization to support concurrent queries. Previously, adding more replicas required either using the ClickHouse Cloud console or the API. You can now use Terraform to add or remove replicas from your service, allowing you to programmatically scale your ClickHouse services as needed. - -Please see the [ClickHouse Terraform provider](https://registry.terraform.io/providers/ClickHouse/clickhouse/latest/docs) for more information. - - - - - -### Share queries with your teammates - -When you write a SQL query, there's a good chance that other people on your team would also find that query useful. Previously, you'd have to send a query over Slack or email and there would be no way for a teammate to automatically receive updates for that query if you edit it. - -We're happy to announce that you can now easily share queries via the ClickHouse Cloud console. From the query editor, you can share a query directly with your entire team or a specific team member. You can also specify whether they have read or write only access. Click on the **Share** button in the query editor to try out the new shared queries feature. - -ClickHouse Cloud query editor showing the share functionality with permission options - -### ClickHouse Cloud for Microsoft Azure is now in beta - -We've finally launched the ability to create ClickHouse Cloud services on Microsoft Azure. We already have many customers using ClickHouse Cloud on Azure in production as part of our Private Preview program. Now, anyone can create their own service on Azure. All of your favorite ClickHouse features that are supported on AWS and GCP will also work on Azure. - -We expect to have ClickHouse Cloud for Azure ready for General Availability in the next few weeks. [Read this blog post](https://clickhouse.com/blog/clickhouse-cloud-is-now-on-azure-in-public-beta) to learn more, or create your new service using Azure via the ClickHouse Cloud console. - -Note: **Development** services for Azure are not supported at this time. - -### Set up Private Link via the Cloud console - -Our Private Link feature allows you to connect your ClickHouse Cloud services with internal services in your cloud provider account without having to direct traffic to the public internet, saving costs and enhancing security. Previously, this was difficult to set up and required using the ClickHouse Cloud API. - -You can now configure private endpoints in just a few clicks directly from the ClickHouse Cloud console. Simply go to your service's **Settings**, go to the **Security** section and click **Set up private endpoint**. - -ClickHouse Cloud console showing private endpoint setup interface in the security settings - - - - - -### Ingest data from Amazon Kinesis using ClickPipes (beta) - -ClickPipes is an exclusive service provided by ClickHouse Cloud to ingest data without code. Amazon Kinesis is AWS's fully managed streaming service to ingest and store data streams for processing. We are thrilled to launch the ClickPipes beta for Amazon Kinesis, one of our most requested integrations. We're looking to add more integrations to ClickPipes, so please let us know which data source you'd like us to support. Read more about this feature [here](https://clickhouse.com/blog/clickpipes-amazon-kinesis). - -You can try the new Amazon Kinesis integration for ClickPipes in the cloud console: - -ClickPipes interface showing Amazon Kinesis integration configuration options - -### Configurable backups (private preview) - -Backups are important for every database (no matter how reliable), and we've taken backups very seriously since day 1 of ClickHouse Cloud. This week, we launched Configurable Backups, which allows for much more flexibility for your service's backups. You can now control start time, retention, and frequency. This feature is available for **Production** and **Dedicated** services and is not available for **Development** services. As this feature is in private preview, please contact support@clickhouse.com to enable this for your service. Read more about configurable backups [here](https://clickhouse.com/blog/configurable-backups-in-clickhouse-cloud). - -### Create APIs from your SQL queries (Beta) - -When you write a SQL query for ClickHouse, you still need to connect to ClickHouse via a driver to expose your query to your application. Now with our now **Query Endpoints** feature, you can execute SQL queries directly from an API without any configuration. You can specify the query endpoints to return JSON, CSV, or TSVs. Click the "Share" button in the cloud console to try this new feature with your queries. Read more about Query Endpoints [here](https://clickhouse.com/blog/automatic-query-endpoints). - -ClickHouse Cloud interface showing Query Endpoints configuration with output format options - -### Official ClickHouse Certification is now available - -There are 12 free training modules in ClickHouse Develop training course. Prior to this week, there was no official way to prove your mastery in ClickHouse. We recently launched an official exam to become a **ClickHouse Certified Developer**. Completing this exam allows you to share with current and prospective employers your mastery in ClickHouse on topics including data ingestion, modeling, analysis, performance optimization, and more. You can take the exam [here](https://clickhouse.com/learn/certification) or read more about ClickHouse certification in this [blog post](https://clickhouse.com/blog/first-official-clickhouse-certification). - - - - - -### Load data from S3 and GCS using ClickPipes - -You may have noticed in our newly released cloud console that there's a new section called "Data sources". The "Data sources" page is powered by ClickPipes, a native ClickHouse Cloud feature which lets you easily insert data from a variety of sources into ClickHouse Cloud. - -Our most recent ClickPipes update features the ability to directly upload data directly from Amazon S3 and Google Cloud Storage. While you can still use our built-in table functions, ClickPipes is a fully-managed service via our UI that will let you ingest data from S3 and GCS in just a few clicks. This feature is still in Private Preview, but you can try it out today via the cloud console. - -ClickPipes interface showing configuration options for loading data from S3 and GCS buckets - -### Use Fivetran to load data from 500+ sources into ClickHouse Cloud - -ClickHouse can quickly query all of your large datasets, but of course, your data must first be inserted into ClickHouse. Thanks to Fivetran's comprehensive range of connectors, users can now quickly load data from over 500 sources. Whether you need to load data from Zendesk, Slack, or any of your favorite applications, the new ClickHouse destination for Fivetran now lets you use ClickHouse as the target database for your application data. - -This is an open-source integration built over many months of hard work by our Integrations team. You can check out our [release blog post](https://clickhouse.com/blog/fivetran-destination-clickhouse-cloud) here and the [GitHub repository](https://github.com/ClickHouse/clickhouse-fivetran-destination). - -### Other changes - -### Console changes -- Output formats support in the SQL console - -### Integrations changes -- ClickPipes Kafka connector supports multi-broker setup -- PowerBI connector supports providing ODBC driver configuration options. - - - - - -### AWS Tokyo region is now available for ClickHouse Cloud - -This release introduces the new AWS Tokyo region (`ap-northeast-1`) for ClickHouse Cloud. Because we want ClickHouse to be the fastest database, we are continuously adding more regions for every cloud to reduce latency as much as possible. You can create your new service in Tokyo in the updated cloud console. - -ClickHouse Cloud service creation interface showing Tokyo region selection - -Other changes: - -### Console changes -- Avro format support for ClickPipes for Kafka is now Generally Available -- Implement full support for importing resources (services and private endpoints) for the Terraform provider - -### Integrations changes -- NodeJS client major stable release: Advanced TypeScript support for query + ResultSet, URL configuration -- Kafka Connector: Fixed a bug with ignoring exceptions when writing into DLQ, added support for Avro Enum type, published guides for using the connector on [MSK](https://www.youtube.com/watch?v=6lKI_WlQ3-s) and [Confluent Cloud](https://www.youtube.com/watch?v=SQAiPVbd3gg) -- Grafana: Fixed support Nullable type support in UI, fixed support for dynamic OTEL tracing table name -- DBT: Fixed model settings for custom materialization. -- Java client: Fixed bug with incorrect error code parsing -- Python client: Fixed parameters binding for numeric types, fixed bugs with number list in query binding, added SQLAlchemy Point support. - - - - - -### Introducing the new ClickHouse Cloud console - -This release introduces a private preview for the new cloud console. - -At ClickHouse, we are constantly thinking about how to improve the developer experience. We recognize that it is not enough to provide the fastest real-time data warehouse, it also needs to be easy to use and manage. - -Thousands of ClickHouse Cloud users execute billions of queries on our SQL console every month, which is why we've decided to invest more in a world-class console to make it easier than ever to interact with your ClickHouse Cloud services. Our new cloud console experience combines our standalone SQL editor with our management console in one intuitive UI. - -Select customers will receive a preview of our new cloud console experience – a unified and immersive way to explore and manage your data in ClickHouse. Please reach out to us at support@clickhouse.com if you'd like priority access. - -Animation showing the new ClickHouse Cloud console interface with integrated SQL editor and management features - - - - - -This release introduces support for Microsoft Azure, Horizontal Scaling via API, and Release Channels in Private Preview. - -### General updates -- Introduced support for Microsoft Azure in Private Preview. To gain access, please reach out to account management or support, or join the [waitlist](https://clickhouse.com/cloud/azure-waitlist). -- Introduced Release Channels – the ability to specify the timing of upgrades based on environment type. In this release, we added the "fast" release channel, which enables you to upgrade your non-production environments ahead of production (please contact support to enable). - -### Administration changes -- Added support for horizontal scaling configuration via API (private preview, please contact support to enable) -- Improved autoscaling to scale up services encountering out of memory errors on startup -- Added support for CMEK for AWS via the Terraform provider - -### Console changes -- Added support for Microsoft social login -- Added parameterized query sharing capabilities in SQL console -- Improved query editor performance significantly (from 5 secs to 1.5 sec latency in some EU regions) - -### Integrations changes -- ClickHouse OpenTelemetry exporter: [Added support](https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/31920) for ClickHouse replication table engine and [added integration tests](https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/31896) -- ClickHouse DBT adapter: Added support for [materialization macro for dictionaries](https://github.com/ClickHouse/dbt-clickhouse/pull/255), [tests for TTL expression support](https://github.com/ClickHouse/dbt-clickhouse/pull/254) -- ClickHouse Kafka Connect Sink: [Added compatibility](https://github.com/ClickHouse/clickhouse-kafka-connect/issues/350) with Kafka plugin discovery (community contribution) -- ClickHouse Java Client: Introduced [a new package](https://github.com/ClickHouse/clickhouse-java/pull/1574) for new client API and [added test coverage](https://github.com/ClickHouse/clickhouse-java/pull/1575) for Cloud tests -- ClickHouse NodeJS Client: Extended tests and documentation for new HTTP keep-alive behavior. Available since v0.3.0 release -- ClickHouse Golang Client: [Fixed a bug](https://github.com/ClickHouse/clickhouse-go/pull/1236) for Enum as a key in Map; [fixed a bug](https://github.com/ClickHouse/clickhouse-go/pull/1237) when an errored connection is left in the connection pool (community contribution) -- ClickHouse Python Client: [Added support](https://github.com/ClickHouse/clickhouse-connect/issues/155) for query streaming via PyArrow (community contribution) - -### Security updates -- Updated ClickHouse Cloud to prevent ["Role-based Access Control is bypassed when query caching is enabled"](https://github.com/ClickHouse/ClickHouse/security/advisories/GHSA-45h5-f7g3-gr8r) (CVE-2024-22412) - - - - - -This release makes available in early access the new Cloud console experience, ClickPipes for bulk loading from S3 and GCS, and support for Avro format in ClickPipes for Kafka. It also upgrades the ClickHouse database version to 24.1, bringing support for new functions as well as performance and resource usage optimizations. - -### Console changes -- New Cloud console experience is available in early access (please contact support if you're interested in participating). -- ClickPipes for bulk loading from S3 and GCS are available in early access (please contact support if you're interested in participating). -- Support for Avro format in ClickPipes for Kafka is available in early access (please contact support if you're interested in participating). - -### ClickHouse version upgrade -- Optimizations for FINAL, vectorization improvements, faster aggregations - see [23.12 release blog](https://clickhouse.com/blog/clickhouse-release-23-12#optimizations-for-final) for details. -- New functions for processing punycode, string similarity, detecting outliers, as well as memory optimizations for merges and Keeper - see [24.1 release blog](https://clickhouse.com/blog/clickhouse-release-24-01) and [presentation](https://presentations.clickhouse.com/release_24.1/) for details. -- This ClickHouse cloud version is based on 24.1, you can see dozens of new features, performance improvements, and bug fixes. See core database [changelogs](/resources/changelogs/oss/2023#2312) for details. - -### Integrations changes -- Grafana: Fixed dashboard migration for v4, ad-hoc filtering logic -- Tableau Connector: Fixed DATENAME function and rounding for "real" arguments -- Kafka Connector: Fixed NPE in connection initialization, added ability to specify JDBC driver options -- Golang client: Reduced the memory footprint for handling responses, fixed Date32 extreme values, fixed error reporting when compression is enabled -- Python client: Improved timezone support in datetime parameters, improved performance for Pandas DataFrame - - - - - -This release improves SQL console application load time, adds support for SCRAM-SHA-256 authentication in ClickPipes, and extends nested structure support to Kafka Connect. - -### Console changes -- Optimized SQL console application initial load time -- Fixed SQL console race condition resulting in 'authentication failed' error -- Fixed behavior on the monitoring page where most recent memory allocation value was sometimes incorrect -- Fixed behavior where SQL console sometimes issue duplicate KILL QUERY commands -- Added support in ClickPipes for SCRAM-SHA-256 authentication method for Kafka-based data sources - -### Integrations changes -- Kafka Connector: Extended support for complex nested structures (Array, Map); added support for FixedString type; added support for ingestion into multiple databases -- Metabase: Fixed incompatibility with ClickHouse lower than version 23.8 -- DBT: Added the ability to pass settings to model creation -- Node.js client: Added support for long-running queries (>1hr) and handling of empty values gracefully - - - - - -This release upgrades the core database version, adds ability to set up private links via Terraform, and adds support for exactly once semantics for asynchronous inserts through Kafka Connect. - -### ClickHouse version upgrade -- S3Queue table engine for continuous, scheduled data loading from S3 is production-ready - [see 23.11 release blog](https://clickhouse.com/blog/clickhouse-release-23-11) for details. -- Significant performance improvements for FINAL and vectorization improvements for SIMD instructions resulting in faster queries - [see 23.12 release blog](https://clickhouse.com/blog/clickhouse-release-23-12#optimizations-for-final) for details. -- This ClickHouse cloud version is based on 23.12, you can see dozens of new features, performance improvements, and bug fixes. See [core database changelogs](/resources/changelogs/oss/2023#2312) for details. - -### Console changes -- Added ability to set up AWS Private Link and GCP Private Service Connect through Terraform provider -- Improved resiliency for remote file data imports -- Added import status details flyout to all data imports -- Added key/secret key credential support to s3 data imports - -### Integrations changes -* Kafka Connect - * Support async_insert for exactly once (disabled by default) -* Golang client - * Fixed DateTime binding - * Improved batch insert performance -* Java client - * Fixed request compression problem - -### Settings changes -* `use_mysql_types_in_show_columns` is no longer required. It will be automatically enabled when you connect through the MySQL interface. -* `async_insert_max_data_size` now has the default value of `10 MiB` - - - - - -This release brings availability of ClickPipes for Azure Event Hub, dramatically improves workflow for logs and traces navigation using v4 ClickHouse Grafana connector, and debuts support for Flyway and Atlas database schema management tools. - -### Console changes -* Added ClickPipes support for Azure Event Hub -* New services are launched with default idling time of 15 mins - -### Integrations changes -* [ClickHouse data source for Grafana](https://grafana.com/grafana/plugins/grafana-clickhouse-datasource/) v4 release - * Completely rebuilt query builder to have specialized editors for Table, Logs, Time Series, and Traces - * Completely rebuilt SQL generator to support more complicated and dynamic queries - * Added first-class support for OpenTelemetry in Log and Trace views - * Extended Configuration to allow to specify default tables and columns for Logs and Traces - * Added ability to specify custom HTTP headers - * And many more improvements - check the full [changelog](https://github.com/grafana/clickhouse-datasource/blob/main/CHANGELOG.md#400) -* Database schema management tools - * [Flyway added ClickHouse support](https://github.com/flyway/flyway-community-db-support/packages/2037428) - * [Ariga Atlas added ClickHouse support](https://atlasgo.io/blog/2023/12/19/atlas-v-0-16#clickhouse-beta-program) -* Kafka Connector Sink - * Optimized ingestion into a table with default values - * Added support for string-based dates in DateTime64 -* Metabase - * Added support for a connection to multiple databases - - - - - -This release brings a new region in AWS (London / eu-west-2), adds ClickPipes support for Redpanda, Upstash, and Warpstream, and improves reliability of the [is_deleted](/core/reference/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) core database capability. - -### General changes -- New AWS Region: London (eu-west-2) - -### Console changes -- Added ClickPipes support for Redpanda, Upstash, and Warpstream -- Made the ClickPipes authentication mechanism configurable in the UI - -### Integrations changes -- Java client: - - Breaking changes: Removed the ability to specify random URL handles in the call. This functionality has been removed from ClickHouse - - Deprecations: Java CLI client and GRPC packages - - Added support for RowBinaryWithDefaults format to reduce the batch size and workload on ClickHouse instance (request by Exabeam) - - Made Date32 and DateTime64 range boundaries compatible with ClickHouse, compatibility with Spark Array string type, node selection mechanism -- Kafka Connector: Added a JMX monitoring dashboard for Grafana -- PowerBI: Made ODBC driver settings configurable in the UI -- JavaScript client: Exposed query summary information, allow to provide a subset of specific columns for insertion, make keep_alive configurable for web client -- Python client: Added Nothing type support for SQLAlchemy - -### Reliability changes -- User-facing backward incompatible change: Previously, two features ([is_deleted](/core/reference/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) and ``OPTIMIZE CLEANUP``) under certain conditions could lead to corruption of the data in ClickHouse. To protect the integrity of the data of our users, while keeping the core of the functionality, we adjusted how this feature works. Specifically, the MergeTree setting ``clean_deleted_rows`` is now deprecated and has no effect anymore. The ``CLEANUP`` keyword is not allowed by default (to use it you will need to enable ``allow_experimental_replacing_merge_with_cleanup``). If you decide to use ``CLEANUP``, you need to make sure that it is always used together with ``FINAL``, and you must guarantee that no rows with older versions will be inserted after you run ``OPTIMIZE FINAL CLEANUP``. - - - - - -This release brings a new region in GCP (us-east1), ability to self-service secure endpoint connections, support for additional integrations including DBT 1.7, and numerous bug fixes and security enhancements. - -### General changes -- ClickHouse Cloud is now available in GCP us-east1 (South Carolina) region -- Enabled ability to set up AWS Private Link and GCP Private Service Connect via OpenAPI - -### Console changes -- Enabled seamless login to SQL console for users with the Developer role -- Streamlined workflow for setting idling controls during onboarding - -### Integrations changes -- DBT connector: Added support for DBT up to v1.7 -- Metabase: Added support for Metabase v0.48 -- PowerBI Connector: Added ability to run on PowerBI Cloud -- Make permissions for ClickPipes internal user configurable -- Kafka Connect - - Improved deduplication logic and ingestion of Nullable types. - - Add support text-based formats (CSV, TSV) -- Apache Beam: add support for Boolean and LowCardinality types -- Nodejs client: add support for Parquet format - -### Security announcements -- Patched 3 security vulnerabilities - see [security changelog](/resources/changelogs/security-changelog) for details: - - CVE 2023-47118 (CVSS 7.0) - a heap buffer overflow vulnerability affecting the native interface running by default on port 9000/tcp - - CVE-2023-48704 (CVSS 7.0) - a heap buffer overflow vulnerability affecting the native interface running by default on port 9000/tcp - - CVE 2023-48298 (CVSS 5.9) - an integer underflow vulnerability in the FPC compressions codec - - - - - -This release upgrades the core database version, improves login and authentication flow, and adds proxy support to Kafka Connect Sink. - -### ClickHouse version upgrade - -- Dramatically improved performance for reading Parquet files. See [23.8 release blog](https://clickhouse.com/blog/clickhouse-release-23-08) for details. -- Added type inference support for JSON. See [23.9 release blog](https://clickhouse.com/blog/clickhouse-release-23-09) for details. -- Introduced powerful analyst-facing functions like `ArrayFold`. See [23.10 release blog](https://clickhouse.com/blog/clickhouse-release-23-10) for details. -### User-facing backward-incompatible change -Disabled setting `input_format_json_try_infer_numbers_from_strings` by default to avoid inferring numbers from strings in JSON format. Doing so can create possible parsing errors when sample data contains strings similar to numbers. -- Dozens of new features, performance improvements, and bug fixes. See [core database changelogs](/resources/changelogs/oss/2026) for details. - -### Console changes - -- Improved login and authentication flow. -- Improved AI-based query suggestions to better support large schemas. - -### Integrations changes - -- Kafka Connect Sink: Added proxy support, `topic-tablename` mapping, and configurability for Keeper _exactly-once_ delivery properties. -- Node.js client: Added support for Parquet format. -- Metabase: Added `datetimeDiff` function support. -- Python client: Added support for special characters in column names. Fixed timezone parameter binding. - - - - - -This release adds more regional support for development services in Asia, introduces key rotation functionality to customer-managed encryption keys, improved granularity of tax settings in the billing console and a number of bug fixes across supported language clients. - -### General updates -- Development services are now available in AWS for `ap-south-1` (Mumbai) and `ap-southeast-1` (Singapore) -- Added support for key rotation in customer-managed encryption keys (CMEK) - -### Console changes -- Added ability to configure granular tax settings when adding a credit card - -### Integrations changes -- MySQL - - Improved Tableau Online and QuickSight support via MySQL -- Kafka Connector - - Introduced a new StringConverter to support text-based formats (CSV, TSV) - - Added support for Bytes and Decimal data types - - Adjusted Retryable Exceptions to now always be retried (even when errors.tolerance=all) -- Node.js client - - Fixed an issue with streamed large datasets providing corrupted results -- Python client - - Fixed timeouts on large inserts - - Fixed NumPy/Pandas Date32 issue -​​- Golang client - - Fixed insertion of an empty map into JSON column, compression buffer cleanup, query escaping, panic on zero/nil for IPv4 and IPv6 - - Added watchdog on canceled inserts -- DBT - - Improved distributed table support with tests - - - - - -This release brings usability and performance improvements in the SQL console, better IP data type handling in the Metabase connector, and new functionality in the Java and Node.js clients. - -### Console changes -- Improved usability of the SQL console (e.g. preserve column width between query executions) -- Improved performance of the SQL console - -### Integrations changes -- Java client: - - Switched the default network library to improve performance and reuse open connections - - Added proxy support - - Added support for secure connections with using Trust Store -- Node.js client: Fixed keep-alive behavior for insert queries -- Metabase: Fixed IPv4/IPv6 column serialization - - - - - -This release brings general availability of ClickPipes for Kafka, Confluent Cloud, and Amazon MSK and the Kafka Connect ClickHouse Sink, self-service workflow to secure access to Amazon S3 via IAM roles, and AI-assisted query suggestions ( private preview). - -### Console changes -- Added a self-service workflow to secure [access to Amazon S3 via IAM roles](/products/cloud/guides/data-sources/accessing-s3-data-securely) -- Introduced AI-assisted query suggestions in private preview (please [contact ClickHouse Cloud support](https://console.clickhouse.cloud/support) to try it out.) - -### Integrations changes -- Announced general availability of ClickPipes - a turnkey data ingestion service - for Kafka, Confluent Cloud, and Amazon MSK (see the [release blog](https://clickhouse.com/blog/clickpipes-is-generally-available)) -- Reached general availability of Kafka Connect ClickHouse Sink - - Extended support for customized ClickHouse settings using `clickhouse.settings` property - - Improved deduplication behavior to account for dynamic fields - - Added support for `tableRefreshInterval` to re-fetch table changes from ClickHouse -- Fixed an SSL connection issue and type mappings between [PowerBI](/integrations/connectors/data-visualization/powerbi-and-clickhouse) and ClickHouse data types - - - - - -This release brings the beta release of the PowerBI Desktop official connector, improved credit card payment handling for India, and multiple improvements across supported language clients. - -### Console changes -- Added remaining credits and payment retries to support charges from India - -### Integrations changes -- Kafka Connector: added support for configuring ClickHouse settings, added error.tolerance configuration option -- PowerBI Desktop: released the beta version of the official connector -- Grafana: added support for Point geo type, fixed Panels in Data Analyst dashboard, fixed timeInterval macro -- Python client: Compatible with Pandas 2.1.0, dropped Python 3.7 support, added support for nullable JSON type -- Node.js client: added default_format setting support -- Golang client: fixed bool type handling, removed string limits - - - - - -This release adds support for the MySQL interface to the ClickHouse database, introduces a new official PowerBI connector, adds a new "Running Queries" view in the cloud console, and updates the ClickHouse version to 23.7. - -### General updates -- Added support for the [MySQL wire protocol](/core/concepts/features/interfaces/mysql), which (among other use cases) enables compatibility with many existing BI tools. Please reach out to support to enable this feature for your organization. -- Introduced a new official PowerBI connector - -### Console changes -- Added support for "Running Queries" view in SQL Console - -### ClickHouse 23.7 version upgrade -- Added support for Azure Table function, promoted geo datatypes to production-ready, and improved join performance - see 23.5 release [blog](https://clickhouse.com/blog/clickhouse-release-23-05) for details -- Extended MongoDB integration support to version 6.0 - see 23.6 release [blog](https://clickhouse.com/blog/clickhouse-release-23-06) for details -- Improved performance of writing to Parquet format by 6x, added support for PRQL query language, and improved SQL compatibility - see 23.7 release [deck](https://presentations.clickhouse.com/release_23.7/) for details -- Dozens of new features, performance improvements, and bug fixes - see detailed [changelogs](/resources/changelogs/oss/2026) for 23.5, 23.6, 23.7 - -### Integrations changes -- Kafka Connector: Added support for Avro Date and Time types -- JavaScript client: Released a stable version for web-based environment -- Grafana: Improved filter logic, database name handling, and added support for TimeInteval with sub-second precision -- Golang Client: Fixed several batch and async data loading issues -- Metabase: Support v0.47, added connection impersonation, fixed data types mappings - - - - - -This release brings the private preview of ClickPipes for Kafka, a new data loading experience, and the ability to load a file from a URL using the cloud console. - -### Integrations changes -- Introduced the private preview of [ClickPipes](https://clickhouse.com/cloud/clickpipes) for Kafka, a cloud-native integration engine that makes ingesting massive volumes of data from Kafka and Confluent Cloud as simple as clicking a few buttons. Please sign up for the waitlist [here](https://clickhouse.com/cloud/clickpipes#joinwaitlist). -- JavaScript client: released support for web-based environment (browser, Cloudflare workers). The code is refactored to allow community creating connectors for custom environments. -- Kafka Connector: Added support for inline schema with Timestamp and Time Kafka types -- Python client: Fixed insert compression and LowCardinality reading issues - -### Console changes -- Added a new data loading experience with more table creation configuration options -- Introduced ability to load a file from a URL using the cloud console -- Improved invitation flow with additional options to join a different organization and see all your outstanding invitations - - - - - -This release brings the ability to spin up Dedicated Services, a new AWS region in Australia, and the ability to bring your own key for encrypting data on disk. - -### General updates -- New AWS Australia region: Sydney (ap-southeast-2) -- Dedicated tier services for demanding latency-sensitive workloads (please contact [support](https://console.clickhouse.cloud/support) to set it up) -- Bring your own key (BYOK) for encrypting data on disk (please contact [support](https://console.clickhouse.cloud/support) to set it up) - -### Console changes -- Improvements to observability metrics dashboard for asynchronous inserts -- Improved chatbot behavior for integration with support - -### Integrations changes -- NodeJS client: fixed a bug with a connection failure due to socket timeout -- Python client: added QuerySummary to insert queries, support special characters in the database name -- Metabase: updated JDBC driver version, added DateTime64 support, performance improvements. - -### Core database changes -- [Query cache](/core/concepts/features/performance/caches/query-cache) can be enabled in ClickHouse Cloud. When it is enabled, successful queries are cached for a minute by default and subsequent queries will use the cached result. - - - - - -This release makes ClickHouse Cloud on GCP generally available, brings a Terraform provider for the Cloud API, and updates the ClickHouse version to 23.4. - -### General updates -- ClickHouse Cloud on GCP is now GA, bringing GCP Marketplace integration, support for Private Service Connect, and automatic backups (see [blog](https://clickhouse.com/blog/clickhouse-cloud-on-google-cloud-platform-gcp-is-generally-available) and [press release](https://clickhouse.com/blog/clickhouse-cloud-expands-choice-with-launch-on-google-cloud-platform) for details) -- [Terraform provider](https://registry.terraform.io/providers/ClickHouse/clickhouse/latest/docs) for Cloud API is now available - -### Console changes -- Added a new consolidated settings page for services -- Adjusted metering accuracy for storage and compute - -### Integrations changes -- Python client: improved insert performance, refactored internal dependencies to support multiprocessing -- Kafka Connector: It can be uploaded and installed on Confluent Cloud, added retry for interim connection problems, reset the incorrect connector state automatically - -### ClickHouse 23.4 version upgrade -- Added JOIN support for parallel replicas (please contact [support](https://console.clickhouse.cloud/support) to set it up) -- Improved performance of lightweight deletes -- Improved caching while processing large inserts - -### Administration changes -- Expanded local dictionary creation for non "default" users - - - - - -This release brings the public release of the ClickHouse Cloud Programmatic API for Control Plane operations (see [blog](https://clickhouse.com/blog/using-the-new-clickhouse-cloud-api-to-automate-deployments) for details), S3 access using IAM roles, and additional scaling options. - -### General changes -- API Support for ClickHouse Cloud. With the new Cloud API, you can seamlessly integrate managing services in your existing CI/CD pipeline and manage your services programmatically -- S3 access using IAM roles. You can now leverage IAM roles to securely access your private Amazon Simple Storage Service (S3) buckets (please contact support to set it up) - -### Scaling changes -- [Horizontal scaling](/products/cloud/features/autoscaling/overview#manual-horizontal-scaling). Workloads that require more parallelization can now be configured with up to 10 replicas (please contact support to set it up) -- [CPU based autoscaling](/products/cloud/features/autoscaling/overview). CPU-bound workloads can now benefit from additional triggers for autoscaling policies - -### Console changes -- Migrate Dev service to Production service (please contact support to enable) -- Added scaling configuration controls during instance creation flows -- Fix connection string when default password is not present in memory - -### Integrations changes -- Golang client: fixed a problem leading to unbalanced connections in native protocol, added support for the custom settings in the native protocol -- Nodejs client: dropped support for nodejs v14, added support for v20 -- Kafka Connector: added support for LowCardinality type -- Metabase: fixed grouping by a time range, fixed support for integers in built-in Metabase questions - -### Performance and reliability -- Improved efficiency and performance of write heavy workloads -- Deployed incremental backup strategy to increase speed and efficiency of backups - - - - - -This release brings the public beta of ClickHouse Cloud on GCP -(see [blog](https://clickhouse.com/blog/clickhouse-cloud-on-gcp-available-in-public-beta) -for details), extends administrators' rights to grant terminate query permissions, -and adds more visibility into the status of MFA users in the Cloud console. - - -ClickHouse Cloud on GCP is now GA, see the entry for June twenty above. - - -### ClickHouse Cloud on GCP is now available in public beta - - -ClickHouse Cloud on GCP is now GA, see the [June 20th](#june-20-2023) entry above. - - -- Launches a fully-managed separated storage and compute ClickHouse offering, running on top of Google Compute and Google Cloud Storage -- Available in Iowa (us-central1), Netherlands (europe-west4), and Singapore (asia-southeast1) regions -- Supports both Development and Production services in all three initial regions -- Provides strong security by default: End-to-end encryption in transit, data-at-rest encryption, IP Allow Lists - -### Integrations changes -- Golang client: Added proxy environment variables support -- Grafana: Added the ability to specify ClickHouse custom settings and proxy environment variables in Grafana datasource setup -- Kafka Connector: Improved handling of empty records - -### Console changes -- Added an indicator for multifactor authentication (MFA) use in the user list - -### Performance and reliability -- Added more granular control over terminate query permission for administrators - - - - - -This release brings a new heatmap chart type, improves billing usage page, and improves service startup time. - -### Console changes -- Added heatmap chart type to SQL console -- Improved billing usage page to show credits consumed within each billing dimension - -### Integrations changes -- Kafka connector: Added retry mechanism for transient connection errors -- Python client: Added max_connection_age setting to ensure that HTTP connections are not reused forever. This can help with certain load-balancing issues -- Node.js client: Added support for Node.js v20 -- Java client: Improved client certificate authentication support, and added support for nested Tuple/Map/Nested types - -### Performance and reliability -- Improved service startup time in presence of a large number of parts -- Optimized long-running query cancellation logic in SQL console - -### Bug fixes -- Fixed a bug causing 'Cell Towers' sample dataset import to fail - - - - - -This release updates the ClickHouse version to 23.3, significantly improves the speed of cold reads, and brings real-time chat with support. - -### Console changes -- Added an option for real-time chat with support - -### Integrations changes -- Kafka connector: Added support for Nullable types -- Golang client: Added support for external tables, support boolean and pointer type parameter bindings - -### Configuration changes -- Adds ability to drop large tables–by overriding `max_table_size_to_drop` and `max_partition_size_to_drop` settings - -### Performance and reliability -- Improve speed of cold reads by the means of S3 prefetching via `allow_prefetched_read_pool_for_remote_filesystem` setting - -### ClickHouse 23.3 version upgrade -- Lightweight deletes are production-ready–see 23.3 release [blog](https://clickhouse.com/blog/clickhouse-release-23-03) for details -- Added support for multi-stage PREWHERE-see 23.2 release [blog](https://clickhouse.com/blog/clickhouse-release-23-03) for details -- Dozens of new features, performance improvements, and bug fixes–see detailed [changelogs](/resources/changelogs/oss/2026) for 23.3 and 23.2 - - - - - -This release brings an API for retrieving cloud endpoints, an advanced scaling control for minimum idle timeout, and support for external data in Python client query methods. - -### API changes -* Added ability to programmatically query ClickHouse Cloud endpoints via [Cloud Endpoints API](/products/cloud/guides/sql-console/query-endpoints) - -### Console changes -- Added 'minimum idle timeout' setting to advanced scaling settings -- Added best-effort datetime detection to schema inference in data loading modal - -### Integrations changes -- [Metabase](/integrations/connectors/data-visualization/metabase-and-clickhouse): Added support for multiple schemas -- [Go client](/integrations/language-clients/go): Fixed idle connection liveness check for TLS connections -- [Python client](/integrations/language-clients/python) - - Added support for external data in query methods - - Added timezone support for query results - - Added support for `no_proxy`/`NO_PROXY` environment variable - - Fixed server-side parameter binding of the NULL value for Nullable types - -### Bug fixes -* Fixed behavior where running `INSERT INTO ... SELECT ...` from the SQL console incorrectly applied the same row limit as select queries - - - - - -This release brings database password complexity rules, significant speedup in restoring large backups, and support for displaying traces in Grafana Trace View. - -### Security and reliability -- Core database endpoints now enforce password complexity rules -- Improved time to restore large backups - -### Console changes -- Streamlined onboarding workflow, introducing new defaults and more compact views -- Reduced sign-up and sign-in latencies - -### Integrations changes -- Grafana: - - Added support for displaying trace data stored in ClickHouse in Trace View - - Improved time range filters and added support for special characters in table names -- Superset: Added native ClickHouse support -- Kafka Connect Sink: Added automatic date conversion and Null column handling -- Metabase: Implemented compatibility with v0.46 -- Python client: Fixed inserts in temporary tables and added support for Pandas Null -- Golang client: Normalized Date types with timezone -- Java client - - Added to SQL parser support for compression, infile, and outfile keywords - - Added credentials overload - - Fixed batch support with `ON CLUSTER` -- Node.js client - - Added support for JSONStrings, JSONCompact, JSONCompactStrings, JSONColumnsWithMetadata formats - - `query_id` can now be provided for all main client methods - -### Bug fixes -- Fixed a bug resulting in slow initial provisioning and startup times for new services -- Fixed a bug that resulted in slower query performance due to cache misconfiguration - - - - - -This release improves observability dashboards, optimizes time to create large backups, and adds the configuration necessary to drop large tables and partitions. - -### Console changes -- Added advanced observability dashboards (preview) -- Introduced a memory allocation chart to the observability dashboards -- Improved spacing and newline handling in SQL Console spreadsheet view - -### Reliability and performance -- Optimized backup schedule to run backups only if data was modified -- Improved time to complete large backups - -### Configuration changes -- Added the ability to increase the limit to drop tables and partitions by overriding the settings `max_table_size_to_drop` and `max_partition_size_to_drop` on the query or connection level -- Added source IP to query log, to enable quota and access control enforcement based on source IP - -### Integrations -- [Python client](/integrations/language-clients/python): Improved Pandas support and fixed timezone-related issues -- [Metabase](/integrations/connectors/data-visualization/metabase-and-clickhouse): Metabase 0.46.x compatibility and support for SimpleAggregateFunction -- [Kafka-Connect](/integrations/connectors/data-ingestion/kafka): Implicit date conversion and better handling for null columns -- [Java Client](https://github.com/ClickHouse/clickhouse-java): Nested conversion to Java maps - - - - - -This release enables a subset of the features in the ClickHouse 23.1 core release, brings interoperability with Amazon Managed Streaming for Apache Kafka (MSK), and exposes advanced scaling and idling adjustments in the activity log. - -### ClickHouse 23.1 version upgrade - -Adds support for a subset of features in ClickHouse 23.1, for example: -- ARRAY JOIN with Map type -- SQL standard hex and binary literals -- New functions, including `age()`, `quantileInterpolatedWeighted()`, `quantilesInterpolatedWeighted()` -- Ability to use structure from insertion table in `generateRandom` without arguments -- Improved database creation and rename logic that allows the reuse of previous names -- See the 23.1 release [webinar slides](https://presentations.clickhouse.com/release_23.1/#cover) and [23.1 release changelog](/resources/changelogs/cloud/changelog#clickhouse-231-version-upgrade) for more details - -### Integrations changes -- [Kafka-Connect](/integrations/connectors/data-ingestion/kafka): Added support for Amazon MSK -- [Metabase](/integrations/connectors/data-visualization/metabase-and-clickhouse): First stable release 1.0.0 - - Made the connector is available on [Metabase Cloud](https://www.metabase.com/start/) - - Added a feature to explore all available databases - - Fixed synchronization of database with AggregationFunction type -- [DBT-clickhouse](/integrations/connectors/data-ingestion/etl-tools/dbt): Added support for the latest DBT version v1.4.1 -- [Python client](/integrations/language-clients/python): Improved proxy and ssh tunneling support; added a number of fixes and performance optimizations for Pandas DataFrames -- [Nodejs client](/integrations/language-clients/js): Released ability to attach `query_id` to query result, which can be used to retrieve query metrics from the `system.query_log` -- [Golang client](/integrations/language-clients/go): Optimized network connection with ClickHouse Cloud - -### Console changes -- Added advanced scaling and idling settings adjustments to the activity log -- Added user agent and IP information to reset password emails -- Improved signup flow mechanics for Google OAuth - -### Reliability and performance -- Speed up the resume time from idle for large services -- Improved reading latency for services with a large number of tables and partitions - -### Bug fixes -- Fixed behavior where resetting service password did not adhere to the password policy -- Made organization invite email validation case-insensitive - - - - - -This release brings an officially supported Metabase integration, a major Java client / JDBC driver release, and support for views and materialized views in the SQL console. - -### Integrations changes -- [Metabase](/integrations/connectors/data-visualization/metabase-and-clickhouse) plugin: Became an official solution maintained by ClickHouse -- [dbt](/integrations/connectors/data-ingestion/etl-tools/dbt) plugin: Added support for [multiple threads](https://github.com/ClickHouse/dbt-clickhouse/blob/main/CHANGELOG.md) -- [Grafana](/integrations/connectors/data-visualization/grafana) plugin: Better handling of connection errors -- [Python](/integrations/language-clients/python) client: [Streaming support](/integrations/language-clients/python/advanced-querying#streaming-queries) for insert operation -- [Go](/integrations/language-clients/go) client: [Bug fixes](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md): close canceled connections, better handling of connection errors -- [JS](/integrations/language-clients/js) client: [Breaking changes in exec/insert](https://github.com/ClickHouse/clickhouse-js/releases/tag/0.0.12); exposed query_id in the return types -- [Java](https://github.com/ClickHouse/clickhouse-java#readme) client / JDBC driver major release - - [Breaking changes](https://github.com/ClickHouse/clickhouse-java/releases): deprecated methods, classes and packages were removed - - Added R2DBC driver and file insert support - -### Console changes -- Added support for views and materialized views in SQL console - -### Performance and reliability -- Faster password reset for stopped/idling instances -- Improved the scale-down behavior via more accurate activity tracking -- Fixed a bug where SQL console CSV export was truncated -- Fixed a bug resulting in intermittent sample data upload failures - - - - - -This release updates the ClickHouse version to 22.12, enables dictionaries for many new sources, and improves query performance. - -### General changes -- Enabled dictionaries for additional sources, including external ClickHouse, Cassandra, MongoDB, MySQL, PostgreSQL, and Redis - -### ClickHouse 22.12 version upgrade -- Extended JOIN support to include Grace Hash Join -- Added Binary JSON (BSON) support for reading files -- Added support for GROUP BY ALL standard SQL syntax -- New mathematical functions for decimal operations with fixed precision -- See the [22.12 release blog](https://clickhouse.com/blog/clickhouse-release-22-12) and [detailed 22.12 changelog](/resources/changelogs/cloud/changelog#clickhouse-2212-version-upgrade) for the complete list of changes - -### Console changes -- Improved auto-complete capabilities in SQL Console -- Default region now takes into account continent locality -- Improved Billing Usage page to display both billing and website units - -### Integrations changes -- DBT release [v1.3.2](https://github.com/ClickHouse/dbt-clickhouse/blob/main/CHANGELOG.md#release-132-2022-12-23) - - Added experimental support for the delete+insert incremental strategy - - New s3source macro -- Python client [v0.4.8](https://github.com/ClickHouse/clickhouse-connect/blob/main/CHANGELOG.md#048-2023-01-02) - - File insert support - - Server-side query [parameters binding](/core/concepts/features/interfaces/cli#cli-queries-with-parameters) -- Go client [v2.5.0](https://github.com/ClickHouse/clickhouse-go/releases/tag/v2.5.0) - - Reduced memory usage for compression - - Server-side query [parameters binding](/core/concepts/features/interfaces/cli#cli-queries-with-parameters) - -### Reliability and performance -- Improved read performance for queries that fetch a large number of small files on object store -- Set the [compatibility](/core/reference/settings/session-settings#compatibility) setting to the version with which the service is initially launched, for newly launched services - -### Bug fixes -Using the Advanced Scaling slider to reserve resources now takes effect right away. - - - - - -This release introduces seamless logins for administrators to SQL console, improved read performance for cold reads, and an improved Metabase connector for ClickHouse Cloud. - -### Console changes -- Enabled seamless access to SQL console for admin users -- Changed default role for new invitees to "Administrator" -- Added onboarding survey - -### Reliability and performance -- Added retry logic for longer running insert queries to recover in the event of network failures -- Improved read performance of cold reads - -### Integrations changes -- The [Metabase plugin](/integrations/connectors/data-visualization/metabase-and-clickhouse) got a long-awaited v0.9.1 major update. Now it is compatible with the latest Metabase version and has been thoroughly tested against ClickHouse Cloud. - - - - - -ClickHouse Cloud is now production-ready with SOC2 Type II compliance, uptime SLAs for production workloads, and public status page. This release includes major new capabilities like AWS Marketplace integration, SQL console - a data exploration workbench for ClickHouse users, and ClickHouse Academy - self-paced learning in ClickHouse Cloud. Learn more in this [blog](https://clickhouse.com/blog/clickhouse-cloud-generally-available). - -### Production-ready -- SOC2 Type II compliance (details in [blog](https://clickhouse.com/blog/clickhouse-cloud-is-now-soc-2-type-ii-compliant) and [Trust Center](https://trust.clickhouse.com/)) -- Public [Status Page](https://status.clickhouse.com/) for ClickHouse Cloud -- Uptime SLA available for production use cases -- Availability on [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-jettukeanwrfc) - -### Major new capabilities -- Introduced SQL console, the data exploration workbench for ClickHouse users -- Launched [ClickHouse Academy](https://learn.clickhouse.com/visitor_class_catalog), self-paced learning in ClickHouse Cloud - -### Pricing and metering changes -- Extended trial to 30 days -- Introduced fixed-capacity, low-monthly-spend Development Services, well-suited for starter projects and development/staging environments -- Introduced new reduced pricing on Production Services, as we continue to improve how ClickHouse Cloud operates and scales -- Improved granularity and fidelity when metering compute - -### Integrations changes -- Enabled support for ClickHouse Postgres / MySQL integration engines -- Added support for SQL user-defined functions (UDFs) -- Advanced Kafka Connect sink to Beta status -- Improved Integrations UI by introducing rich meta-data about versions, update status, and more - -### Console changes - -- Multi-factor authentication support in the cloud console -- Improved cloud console navigation for mobile devices - -### Documentation changes - -- Introduced a dedicated [documentation](/products/cloud/getting-started/intro) section for ClickHouse Cloud - -### Bug fixes -- Addressed known issue where restore from backup did not always work due to dependency resolution - - - - - -This release brings SOC2 Type II compliance, updates the ClickHouse version to 22.11, and improves a number of ClickHouse clients and integrations. - -### General changes - -- Reached SOC2 Type II compliance (details in [blog](https://clickhouse.com/blog/clickhouse-cloud-is-now-soc-2-type-ii-compliant) and [Trust Center](https://trust.clickhouse.com)) - -### Console changes - -- Added an "Idle" status indicator to show that a service has been automatically paused - -### ClickHouse 22.11 version upgrade - -- Added support for Hudi and DeltaLake table engines and table functions -- Improved recursive directory traversal for S3 -- Added support for composite time interval syntax -- Improved insert reliability with retries on insert -- See the [detailed 22.11 changelog](/resources/changelogs/cloud/changelog#clickhouse-2211-version-upgrade) for the complete list of changes - -### Integrations - -- Python client: v3.11 support, improved insert performance -- Go client: fix DateTime and Int64 support -- JS client: support for mutual SSL authentication -- dbt-clickhouse: support for DBT v1.3 - -### Bug fixes - -- Fixed a bug that showed an outdated ClickHouse version after an upgrade -- Changing grants for the "default" account no longer interrupts sessions -- Newly created non-admin accounts no longer have system table access by default - -### Known issues in this release - -- Restore from backup may not work due to dependency resolution - - - - - -This release enables dictionaries from local ClickHouse table and HTTP sources, introduces support for the Mumbai region, and improves the cloud console user experience. - -### General changes - -- Added support for [dictionaries](/core/concepts/features/dictionaries) from local ClickHouse table and HTTP sources -- Introduced support for the Mumbai [region](/products/cloud/reference/supported-regions) - -### Console changes - -- Improved billing invoice formatting -- Streamlined user interface for payment method capture -- Added more granular activity logging for backups -- Improved error handling during file upload - -### Bug fixes -- Fixed a bug that could lead to failing backups if there were single large files in some parts -- Fixed a bug where restores from backup did not succeed if access list changes were applied at the same time - -### Known issues -- Restore from backup may not work due to dependency resolution - - - - - -This release removes read & write units from pricing (see the [pricing page](https://clickhouse.com/pricing) for details), updates the ClickHouse version to 22.10, adds support for higher vertical scaling for self-service customers, and improves reliability through better defaults. - -### General changes - -- Removed read/write units from the pricing model - -### Configuration changes - -- The settings `allow_suspicious_low_cardinality_types`, `allow_suspicious_fixed_string_types` and `allow_suspicious_codecs` (default is false) cannot be changed by users anymore for stability reasons. - -### Console changes - -- Increased the self-service maximum for vertical scaling to 720GB memory for paying customers -- Improved the restore from backup workflow to set IP Access List rules and password -- Introduced waitlists for GCP and Azure in the service creation dialog -- Improved error handling during file upload -- Improved workflows for billing administration - -### ClickHouse 22.10 version upgrade - -- Improved merges on top of object stores by relaxing the "too many parts" threshold in the presence of many large parts (at least 10 GiB). This enables up to petabytes of data in a single partition of a single table. -- Improved control over merging with the `min_age_to_force_merge_seconds` setting, to merge after a certain time threshold. -- Added MySQL-compatible syntax to reset settings `SET setting_name = DEFAULT`. -- Added functions for Morton curve encoding, Java integer hashing, and random number generation. -- See the [detailed 22.10 changelog](/resources/changelogs/cloud/changelog#clickhouse-2210-version-upgrade) for the complete list of changes. - - - - - -This release significantly lowers compute consumption for small workloads, lowers compute pricing (see [pricing](https://clickhouse.com/pricing) page for details), improves stability through better defaults, and enhances the Billing and Usage views in the ClickHouse Cloud console. - -### General changes - -- Reduced minimum service memory allocation to 24G -- Reduced service idle timeout from 30 minutes to 5 minutes - -### Configuration changes - -- Reduced max_parts_in_total from 100k to 10k. The default value of the `max_parts_in_total` setting for MergeTree tables has been lowered from 100,000 to 10,000. The reason for this change is that we observed that a large number of data parts is likely to cause a slow startup time of services in the cloud. A large number of parts usually indicates a choice of too granular partition key, which is typically done accidentally and should be avoided. The change of default will allow the detection of these cases earlier. - -### Console changes - -- Enhanced credit usage details in the Billing view for trial users -- Improved tooltips and help text, and added a link to the pricing page in the Usage view -- Improved workflow when switching options for IP filtering -- Added resend email confirmation button to the cloud console - - - - - -ClickHouse Cloud began its public Beta on October 4th, 2022. Learn more in this [blog](https://clickhouse.com/blog/clickhouse-cloud-public-beta). - -The ClickHouse Cloud version is based on ClickHouse core v22.10. For a list of compatible features, refer to the [Cloud Compatibility](/products/cloud/guides/cloud-compatibility) guide. - - diff --git a/resources/changelogs/cloud/release-status.mdx b/resources/changelogs/cloud/release-status.mdx index 2fcde8e3..dd8a3da3 100644 --- a/resources/changelogs/cloud/release-status.mdx +++ b/resources/changelogs/cloud/release-status.mdx @@ -32,7 +32,9 @@ Scheduled upgrade windows are available for all release channels for services in ## Release schedule {#release-schedule} -:::important Understanding release dates + +**Understanding release dates** + The dates shown below indicate when ClickHouse **begins the rollout** to each release channel, not when your individual service will be upgraded. - Rollouts are automated and occur gradually over multiple weeks @@ -40,7 +42,7 @@ The dates shown below indicate when ClickHouse **begins the rollout** to each re - Rollout completion may be delayed due to rollout pauses (e.g., holiday freezes) or health monitoring For advance testing before production upgrades, use the Fast or Regular channel for non-production services and the Slow channel for production services. -::: + - {` - /* Hide all anchor links on the homepage */ - [data-radix-popper-content-wrapper]:has(span[id^="radix-"]) { - display: none !important; - } - `} - +**Under construction** -{/* Hero Section */} -
    -
    -

    Support center

    -

    Knowledgebase and troubleshooting docs

    - {/*

    Get started with:

    */} +This page will get a dedicated in-page search -[//]: # (
    ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # (
    ) -
    -
    - ClickHouse Cloud dashboard showing real-time analytics -
    -
    diff --git a/snippets/components/ReleaseSchedule/ReleaseSchedule.jsx b/snippets/components/ReleaseSchedule/ReleaseSchedule.jsx index d339a62c..548bfe58 100644 --- a/snippets/components/ReleaseSchedule/ReleaseSchedule.jsx +++ b/snippets/components/ReleaseSchedule/ReleaseSchedule.jsx @@ -11,47 +11,34 @@ * ... * ]} /> */ -const StatusIndicator = ({ status }) => { - const color = - status === "green" ? "#22c55e" : - status === "orange" ? "#f59e0b" : - "#ef4444"; - return ( - - ); -}; -const DateCell = ({ date, note, status }) => ( -
    - - {date} - {note && ( - { + const StatusIndicator = ({ status }) => { + const color = + status === "green" ? "#22c55e" : + status === "orange" ? "#f59e0b" : + "#ef4444"; + return ( + i - )} -
    -); + background: color, + marginRight: 6, + }} /> + ); + }; + + const DateCell = ({ date, note, status }) => ( + + + {date} + {note && } + + ); -const ReleaseSchedule = ({ releases = [] }) => ( -
    + return (
    @@ -97,7 +84,7 @@ const ReleaseSchedule = ({ releases = [] }) => ( ))}
    - -); + ); +}; -export default ReleaseSchedule; +export default ReleaseSchedule; \ No newline at end of file